Ignore:
Timestamp:
Nov 21, 2008, 4:32:55 PM (13 years ago)
Author:
charles
Message:

(libT) define peer connections' sockets' so_sndbuf size in the tr_session struct.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/net.c

    r7122 r7133  
    120120createSocket( int type )
    121121{
    122     const int fd = makeSocketNonBlocking( tr_fdSocketCreate( type ) );
    123 
    124     if( fd >= 0 ) {
    125         const int buffsize = 1500*3; /* 3x MTU for most ethernet/wireless */
    126         setsockopt( fd, SOL_SOCKET, SO_SNDBUF, &buffsize, sizeof( buffsize ) );
    127     }
    128 
    129     return fd;
    130 }
    131 
    132 int
    133 tr_netOpenTCP( const struct in_addr * addr,
    134                tr_port_t              port )
     122    return makeSocketNonBlocking( tr_fdSocketCreate( type ) );
     123}
     124
     125static void
     126setSndBuf( tr_session * session, int fd )
     127{
     128    if( fd >= 0 )
     129    {
     130        const int sndbuf = session->so_sndbuf;
     131        setsockopt( fd, SOL_SOCKET, SO_SNDBUF, &sndbuf, sizeof( sndbuf ) );
     132    }
     133}
     134
     135int
     136tr_netOpenTCP( tr_session            * session,
     137               const struct in_addr  * addr,
     138               tr_port_t               port )
    135139{
    136140    int                s;
     
    140144    if( ( s = createSocket( type ) ) < 0 )
    141145        return -1;
     146
     147    setSndBuf( session, s );
    142148
    143149    memset( &sock, 0, sizeof( sock ) );
     
    205211
    206212int
    207 tr_netAccept( int              b,
    208               struct in_addr * addr,
    209               tr_port_t *      port )
    210 {
    211     return makeSocketNonBlocking( tr_fdSocketAccept( b, addr, port ) );
     213tr_netAccept( tr_session      * session,
     214              int               b,
     215              struct in_addr  * addr,
     216              tr_port_t       * port )
     217{
     218    int fd = makeSocketNonBlocking( tr_fdSocketAccept( b, addr, port ) );
     219    setSndBuf( session, fd );
     220    return fd;
    212221}
    213222
Note: See TracChangeset for help on using the changeset viewer.