提交 fd115395 authored 作者: Anthony Minessale's avatar Anthony Minessale

FSCORE-365

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13286 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 8286dedd
...@@ -786,16 +786,24 @@ SWITCH_DECLARE(switch_status_t) switch_pollset_create(switch_pollset_t **pollset ...@@ -786,16 +786,24 @@ SWITCH_DECLARE(switch_status_t) switch_pollset_create(switch_pollset_t **pollset
SWITCH_DECLARE(switch_status_t) switch_pollset_add(switch_pollset_t *pollset, const switch_pollfd_t *descriptor) SWITCH_DECLARE(switch_status_t) switch_pollset_add(switch_pollset_t *pollset, const switch_pollfd_t *descriptor)
{ {
if (!pollset) {
return SWITCH_STATUS_FALSE;
}
return apr_pollset_add((apr_pollset_t *)pollset, (const apr_pollfd_t *)descriptor); return apr_pollset_add((apr_pollset_t *)pollset, (const apr_pollfd_t *)descriptor);
} }
SWITCH_DECLARE(switch_status_t) switch_poll(switch_pollfd_t *aprset, int32_t numsock, int32_t *nsds, switch_interval_time_t timeout) SWITCH_DECLARE(switch_status_t) switch_poll(switch_pollfd_t *aprset, int32_t numsock, int32_t *nsds, switch_interval_time_t timeout)
{ {
apr_status_t st = apr_poll((apr_pollfd_t *)aprset, numsock, nsds, timeout); apr_status_t st = SWITCH_STATUS_FALSE;
if (aprset) {
st = apr_poll((apr_pollfd_t *)aprset, numsock, nsds, timeout);
if (st == APR_TIMEUP) { if (st == APR_TIMEUP) {
st = SWITCH_STATUS_TIMEOUT; st = SWITCH_STATUS_TIMEOUT;
} }
}
return st; return st;
} }
......
...@@ -1475,7 +1475,8 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ ...@@ -1475,7 +1475,8 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
int do_cng = 0; int do_cng = 0;
if (rtp_session->timer.interval) { if (rtp_session->timer.interval) {
if (switch_test_flag(rtp_session, SWITCH_RTP_FLAG_AUTOFLUSH) || switch_test_flag(rtp_session, SWITCH_RTP_FLAG_STICKY_FLUSH)) { if ((switch_test_flag(rtp_session, SWITCH_RTP_FLAG_AUTOFLUSH) || switch_test_flag(rtp_session, SWITCH_RTP_FLAG_STICKY_FLUSH)) &&
rtp_session->read_pollfd) {
if (switch_poll(rtp_session->read_pollfd, 1, &fdr, 1) == SWITCH_STATUS_SUCCESS) { if (switch_poll(rtp_session->read_pollfd, 1, &fdr, 1) == SWITCH_STATUS_SUCCESS) {
hot_socket = 1; hot_socket = 1;
} }
...@@ -1487,7 +1488,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_ ...@@ -1487,7 +1488,7 @@ static int rtp_common_read(switch_rtp_t *rtp_session, switch_payload_t *payload_
recvfrom: recvfrom:
if (!rtp_session->timer.interval) { if (!rtp_session->timer.interval && rtp_session->read_pollfd) {
poll_status = switch_poll(rtp_session->read_pollfd, 1, &fdr, poll_sec * 1000000); poll_status = switch_poll(rtp_session->read_pollfd, 1, &fdr, poll_sec * 1000000);
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论