Changeset 6003
- Timestamp:
- May 23, 2019 5:47:55 PM (4 years ago)
- Location:
- pjproject/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
pjproject/trunk/pjlib/src/pj/ioqueue_common_abs.c
r5970 r6003 1030 1030 PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0 1031 1031 /* Special treatment for dead UDP sockets here, see ticket #1107 */ 1032 if (status ==PJ_STATUS_FROM_OS(EPIPE) && !IS_CLOSING(key) &&1033 key->fd_type ==pj_SOCK_DGRAM() && !restart_retry)1032 if (status == PJ_STATUS_FROM_OS(EPIPE) && !IS_CLOSING(key) && 1033 key->fd_type == pj_SOCK_DGRAM()) 1034 1034 { 1035 PJ_PERROR(4,(THIS_FILE, status, 1036 "Send error for socket %d, retrying", 1037 key->fd)); 1038 replace_udp_sock(key); 1039 restart_retry = PJ_TRUE; 1040 goto retry_on_restart; 1035 if (!restart_retry) { 1036 PJ_PERROR(4, (THIS_FILE, status, 1037 "Send error for socket %d, retrying", 1038 key->fd)); 1039 replace_udp_sock(key); 1040 restart_retry = PJ_TRUE; 1041 goto retry_on_restart; 1042 } else { 1043 status = PJ_ESOCKETSTOP; 1044 } 1041 1045 } 1042 1046 #endif -
pjproject/trunk/pjsip/src/pjsip/sip_transport_udp.c
r5991 r6003 143 143 goto on_return; 144 144 145 #if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \146 PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0147 145 if (-bytes_read == PJ_ESOCKETSTOP) { 148 146 --tp->read_loop_spin; … … 162 160 return; 163 161 } 164 #endif165 162 166 163 /* … … 325 322 tdata_op_key->tdata = NULL; 326 323 327 #if defined(PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT) && \328 PJ_IPHONE_OS_HAS_MULTITASKING_SUPPORT!=0329 324 if (-bytes_sent == PJ_ESOCKETSTOP) { 330 325 pj_status_t status; … … 344 339 return; 345 340 } 346 #endif347 341 348 342 if (tdata_op_key->callback) { … … 386 380 rem_addr, addr_len); 387 381 388 if (status != PJ_EPENDING) 382 if (status != PJ_EPENDING) { 383 if (status == PJ_ESOCKETSTOP) { 384 /* Try to recover by restarting the transport. */ 385 PJ_LOG(4,(tp->base.obj_name, "Restarting SIP UDP transport")); 386 status = pjsip_udp_transport_restart2( 387 &tp->base, 388 PJSIP_UDP_TRANSPORT_DESTROY_SOCKET, 389 PJ_INVALID_SOCKET, 390 &tp->base.local_addr, 391 &tp->base.local_name); 392 393 if (status != PJ_SUCCESS) { 394 PJ_PERROR(1,(THIS_FILE, status, 395 "Error restarting SIP UDP transport")); 396 } 397 } 389 398 tdata->op_key.tdata = NULL; 399 } 390 400 391 401 return status;
Note: See TracChangeset
for help on using the changeset viewer.