Changeset 4681

Show
Ignore:
Timestamp:
03/07/10 22:36:12 (4 years ago)
Author:
douglask
Message:

Set network buffer size to 1024, if not sucessful, divide by 2 until a size that is able to be allocated

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • vic/branches/mpeg4/net/net-ip.cpp

    r4629 r4681  
    477477        /* 
    478478         * XXX don't need this for the session socket. 
    479          */      
    480         int bufsize = 80 * 1024; 
    481         if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize, 
    482                         sizeof(bufsize)) < 0) { 
    483                 bufsize = 32 * 1024; 
     479         */ 
     480        for (int bufsize = 1024 * 1024; bufsize >= 32 * 1024; bufsize /= 2) { 
    484481                if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize, 
    485                                 sizeof(bufsize)) < 0) 
    486                         perror("SO_RCVBUF"); 
     482                               sizeof(bufsize)) >= 0) 
     483                { 
     484                        break; 
     485                } 
    487486        } 
    488487        return (fd); 
     
    593592         * XXX don't need this for the session socket. 
    594593         */ 
    595         int bufsize = 80 * 1024; 
    596         if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize, 
    597                        sizeof(bufsize)) < 0) { 
    598                 bufsize = 48 * 1024; 
    599                 if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize, 
    600                                sizeof(bufsize)) < 0) 
    601                         perror("SO_SNDBUF"); 
     594        for (int bufsize = 1024 * 1024; bufsize >= 32 * 1024; bufsize /= 2) { 
     595                if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize, 
     596                               sizeof(bufsize)) >= 0) 
     597                { 
     598                        break; 
     599                } 
    602600        } 
    603601        return (fd); 
     
    608606        memset((char *)&sin, 0, sizeof(sin)); 
    609607        sin.sin_family = AF_UNSPEC; 
    610         return connect(fd, (struct sockaddr *)&sin, sizeof(sin)); 
     608        return connect(fd, (struct sockaddr *)&sin, sizeof(sin)); 
    611609} 
    612610