Changes in [970:cbc8b4533b79:972:51b9378e38ab] in mediastreamer2


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/mtu.c

    r856 r971  
    162162        int err,mtu=0,new_mtu; 
    163163        socklen_t optlen; 
    164         char buf[1500-28]={0}; 
    165164        char port[10]; 
    166165        struct addrinfo hints,*ai=NULL; 
     
    184183        } 
    185184        sock=socket(PF_INET,SOCK_DGRAM,0); 
    186  
     185        if(sock < 0) 
     186        { 
     187                ms_error("socket(): %s",strerror(errno)); 
     188                return sock; 
     189        } 
    187190        mtu=IP_PMTUDISC_DO; 
    188191        optlen=sizeof(mtu); 
     
    204207                return -1; 
    205208        } 
    206         mtu=sizeof(buf); 
     209        mtu=1500-28;//was the size of the inital buf 
    207210        do{ 
    208                 send(sock,buf,mtu,0); 
     211                int send_returned; 
     212                char *buf=ms_malloc(mtu);//avoid mtu greater than the beginning 
     213                if(buf == NULL) 
     214                { 
     215                        ms_error("malloc(): %s",strerror(errno)); 
     216                        err = close(sock); 
     217                        if (err!=0) 
     218                                ms_error("close(): %s", strerror(errno)); 
     219                        return -1; 
     220                } 
     221                send_returned = send(sock,buf,mtu,0); 
     222                ms_free(buf); 
     223                if( send_returned < 0)//mtu actually change... 
     224                { 
     225                        ms_error("send(): %s",strerror(errno)); 
     226                        err = close(sock); 
     227                        if (err!=0) 
     228                                ms_error("close(): %s", strerror(errno)); 
     229                        return -1; 
     230                } 
    209231                usleep(500000);/*wait for an icmp message come back */ 
    210232                err=getsockopt(sock,IPPROTO_IP,IP_MTU,&new_mtu,&optlen); 
Note: See TracChangeset for help on using the changeset viewer.