Changeset 773 for pjproject


Ignore:
Timestamp:
Oct 16, 2006 12:53:48 PM (18 years ago)
Author:
bennylp
Message:

Fixed bug in media UDP transport: when recv() returns error (e.g. ICMP packet is received on Windows), transport will be stopped! [thanks Tomer]

File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjmedia/src/pjmedia/transport_udp.c

    r721 r773  
    411411         * have been received. 
    412412         */ 
    413         if ((udp->options & PJMEDIA_UDP_NO_SRC_ADDR_CHECKING)==0) { 
     413        if (bytes_read>0 &&  
     414            (udp->options & PJMEDIA_UDP_NO_SRC_ADDR_CHECKING)==0)  
     415        { 
    414416            if ((udp->rem_rtp_addr.sin_addr.s_addr !=  
    415417                 udp->rtp_src_addr.sin_addr.s_addr) || 
     
    465467                                     &udp->rtp_addrlen); 
    466468 
    467     } while (status == PJ_SUCCESS); 
     469    } while (status != PJ_EPENDING); 
    468470} 
    469471 
     
    495497         * different. 
    496498         */ 
    497         if ((udp->options & PJMEDIA_UDP_NO_SRC_ADDR_CHECKING)==0 && 
     499        if (bytes_read>0 && 
     500            (udp->options & PJMEDIA_UDP_NO_SRC_ADDR_CHECKING)==0 && 
    498501            ((udp->rem_rtcp_addr.sin_addr.s_addr !=  
    499502               udp->rtcp_src_addr.sin_addr.s_addr) || 
     
    516519                                     &udp->rtcp_addr_len); 
    517520 
    518     } while (status == PJ_SUCCESS); 
     521    } while (status != PJ_EPENDING); 
    519522} 
    520523 
Note: See TracChangeset for help on using the changeset viewer.