正在显示
1 个修改的文件
包含
24 行增加
和
4 行删除
@@ -292,7 +292,11 @@ int SrsForwarder::forward() | @@ -292,7 +292,11 @@ int SrsForwarder::forward() | ||
292 | } | 292 | } |
293 | } | 293 | } |
294 | 294 | ||
295 | + // ignore when no messages. | ||
295 | int count = (int)msgs.size(); | 296 | int count = (int)msgs.size(); |
297 | + if (msgs.empty()) { | ||
298 | + continue; | ||
299 | + } | ||
296 | 300 | ||
297 | // reportable | 301 | // reportable |
298 | if (pithy_print.can_print()) { | 302 | if (pithy_print.can_print()) { |
@@ -301,16 +305,32 @@ int SrsForwarder::forward() | @@ -301,16 +305,32 @@ int SrsForwarder::forward() | ||
301 | } | 305 | } |
302 | 306 | ||
303 | // all msgs to forward. | 307 | // all msgs to forward. |
304 | - for (int i = 0; i < count; i++) { | 308 | + int i = 0; |
309 | + for (i = 0; i < count; i++) { | ||
305 | SrsSharedPtrMessage* msg = msgs[i]; | 310 | SrsSharedPtrMessage* msg = msgs[i]; |
306 | msgs[i] = NULL; | 311 | msgs[i] = NULL; |
312 | + | ||
313 | + // we erased the sendout messages, the msg must not be NULL. | ||
314 | + srs_assert(msg); | ||
307 | 315 | ||
308 | - if ((ret = client->send_message(msg)) != ERROR_SUCCESS) { | 316 | + ret = client->send_message(msg); |
317 | + if (ret != ERROR_SUCCESS) { | ||
309 | srs_error("forwarder send message to server failed. ret=%d", ret); | 318 | srs_error("forwarder send message to server failed. ret=%d", ret); |
310 | - return ret; | 319 | + break; |
311 | } | 320 | } |
312 | } | 321 | } |
313 | - msgs.clear(); | 322 | + |
323 | + // clear sendout mesages. | ||
324 | + if (i < count) { | ||
325 | + srs_warn("clear forwarded msg, total=%d, forwarded=%d, ret=%d", count, i, ret); | ||
326 | + } else { | ||
327 | + srs_info("clear forwarded msg, total=%d, forwarded=%d, ret=%d", count, i, ret); | ||
328 | + } | ||
329 | + msgs.erase(msgs.begin(), msgs.begin() + i); | ||
330 | + | ||
331 | + if (ret != ERROR_SUCCESS) { | ||
332 | + break; | ||
333 | + } | ||
314 | } | 334 | } |
315 | 335 | ||
316 | return ret; | 336 | return ret; |
-
请 注册 或 登录 后发表评论