Ignore:
Timestamp:
Jan 21, 2007, 7:16:18 AM (15 years ago)
Author:
titer
Message:

Officially give up on making libT reentrant, and simplify our code instead

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/natpmp.c

    r1356 r1420  
    6565    uint64_t             timeout;
    6666    int                  port;
    67     tr_fd_t *            fdlimit;
    6867    tr_natpmp_uptime_t * uptime;
    6968} tr_natpmp_req_t;
     
    8382    int                newport;
    8483    int                mappedport;
    85     tr_fd_t         *  fdlimit;
    8684    tr_lock_t          lock;
    8785    uint64_t           renew;
     
    9492checktime( tr_natpmp_uptime_t * uptime, uint32_t seen );
    9593static void
    96 killsock( int * fd, tr_fd_t * fdlimit );
     94killsock( int * fd );
    9795static tr_natpmp_req_t *
    98 newreq( int adding, struct in_addr addr, int port, tr_fd_t * fdlimit,
     96newreq( int adding, struct in_addr addr, int port,
    9997        tr_natpmp_uptime_t * uptime );
    10098static tr_tristate_t
    10199pulsereq( tr_natpmp_req_t * req, uint64_t * renew );
    102100static int
    103 mcastsetup( tr_fd_t * fdlimit );
     101mcastsetup();
    104102static void
    105103mcastpulse( tr_natpmp_t * pmp );
     
    113111
    114112tr_natpmp_t *
    115 tr_natpmpInit( tr_fd_t * fdlimit )
     113tr_natpmpInit()
    116114{
    117115    tr_natpmp_t * pmp;
     
    124122
    125123    pmp->state       = PMP_STATE_IDLE;
    126     pmp->fdlimit     = fdlimit;
    127124    pmp->mcastfd     = -1;
    128125
     
    159156        if( 0 > pmp->mcastfd )
    160157        {
    161             pmp->mcastfd = mcastsetup( pmp->fdlimit );
     158            pmp->mcastfd = mcastsetup();
    162159        }
    163160        /* XXX should I change state? */
     
    176173        tr_inf( "stopping nat-pmp" );
    177174        pmp->active = 0;
    178         killsock( &pmp->mcastfd, pmp->fdlimit );
     175        killsock( &pmp->mcastfd );
    179176        switch( pmp->state )
    180177        {
     
    320317                    {
    321318                        pmp->req = newreq( 1, pmp->dest, pmp->newport,
    322                                            pmp->fdlimit, &pmp->uptime );
     319                                           &pmp->uptime );
    323320                        if( NULL == pmp->req )
    324321                        {
     
    373370                    assert( 0 < pmp->mappedport );
    374371                    pmp->req = newreq( 0, pmp->dest, pmp->mappedport,
    375                                        pmp->fdlimit, &pmp->uptime );
     372                                       &pmp->uptime );
    376373                    if( NULL == pmp->req )
    377374                    {
     
    469466
    470467static void
    471 killsock( int * fd, tr_fd_t * fdlimit )
     468killsock( int * fd )
    472469{
    473470    if( 0 <= *fd )
     
    475472        tr_netClose( *fd );
    476473        *fd = -1;
    477         tr_fdSocketClosed( fdlimit, 0 );
     474        tr_fdSocketClosed( 0 );
    478475    }
    479476}
    480477
    481478static tr_natpmp_req_t *
    482 newreq( int adding, struct in_addr addr, int port, tr_fd_t * fdlimit,
     479newreq( int adding, struct in_addr addr, int port,
    483480        tr_natpmp_uptime_t * uptime )
    484481{
     
    492489    }
    493490    ret->fd = -1;
    494     if( tr_fdSocketWillCreate( fdlimit, 0 ) )
     491    if( tr_fdSocketWillCreate( 0 ) )
    495492    {
    496493        goto err;
     
    512509    ret->timeout = now + PMP_TOTAL_DELAY;
    513510    ret->port    = port;
    514     ret->fdlimit = fdlimit;
    515511    ret->uptime  = uptime;
    516512
     
    520516    if( NULL != ret )
    521517    {
    522         killsock( &ret->fd, fdlimit );
     518        killsock( &ret->fd );
    523519    }
    524520    free( ret );
     
    583579
    584580static int
    585 mcastsetup( tr_fd_t * fdlimit )
     581mcastsetup()
    586582{
    587583    int fd;
    588584    struct in_addr addr;
    589585
    590     if( tr_fdSocketWillCreate( fdlimit, 0 ) )
     586    if( tr_fdSocketWillCreate( 0 ) )
    591587    {
    592588        return -1;
     
    597593    if( 0 > fd )
    598594    {
    599         tr_fdSocketClosed( fdlimit, 0 );
     595        tr_fdSocketClosed( 0 );
    600596        return -1;
    601597    }
     
    622618    {
    623619        tr_err( "error reading nat-pmp multicast message" );
    624         killsock( &pmp->mcastfd, pmp->fdlimit );
     620        killsock( &pmp->mcastfd );
    625621        return;
    626622    }
     
    649645    if( NULL != *req )
    650646    {
    651         killsock( &(*req)->fd, (*req)->fdlimit );
     647        killsock( &(*req)->fd );
    652648        free( *req );
    653649        *req = NULL;
Note: See TracChangeset for help on using the changeset viewer.