Changeset 1424


Ignore:
Timestamp:
Jan 21, 2007, 12:38:50 PM (15 years ago)
Author:
titer
Message:

clean up

Location:
trunk/libtransmission
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/peer.c

    r1422 r1424  
    314314    }
    315315
    316     /* Handle peers */
     316    /* Connect */
     317    if( ( peer->status & PEER_STATUS_IDLE ) &&
     318            !tr_fdSocketWillCreate( 0 ) )
     319    {
     320        peer->socket = tr_netOpenTCP( peer->addr, peer->port );
     321        if( peer->socket < 0 )
     322        {
     323            peer_dbg( "connection failed" );
     324            tr_fdSocketClosed( 0 );
     325            return TR_ERROR;
     326        }
     327        peer->status = PEER_STATUS_CONNECTING;
     328    }
     329
     330    /* Try to send handshake */
     331    if( peer->status & PEER_STATUS_CONNECTING )
     332    {
     333        uint8_t buf[68];
     334        tr_info_t * inf = &tor->info;
     335        int ret;
     336
     337        buf[0] = 19;
     338        memcpy( &buf[1], "BitTorrent protocol", 19 );
     339        memset( &buf[20], 0, 8 );
     340        memcpy( &buf[28], inf->hash, 20 );
     341        memcpy( &buf[48], tor->id, 20 );
     342
     343        switch( tr_netSend( peer->socket, buf, 68 ) )
     344        {
     345            case 68:
     346                peer_dbg( "SEND handshake" );
     347                peer->status = PEER_STATUS_HANDSHAKE;
     348                break;
     349            case TR_NET_BLOCK:
     350                break;
     351            default:
     352                peer_dbg( "connection closed" );
     353                return TR_ERROR;
     354        }
     355    }
    317356    if( peer->status < PEER_STATUS_HANDSHAKE )
    318357    {
    319         return TR_OK;;
    320     }
    321 
     358        /* Nothing more we can do till we sent the handshake */
     359        return TR_OK;
     360    }
     361
     362    /* Read incoming messages */
    322363    if( ( ret = tr_peerRead( peer ) ) )
    323364    {
    324365        return ret;
    325366    }
    326 
    327367    if( peer->status < PEER_STATUS_CONNECTED )
    328368    {
     369        /* Nothing more we can do till we got the other guy's handshake */
    329370        return TR_OK;
    330371    }
  • trunk/libtransmission/peerutils.h

    r1420 r1424  
    9696    }
    9797
    98     /* Connect */
    99     if( ( peer->status & PEER_STATUS_IDLE ) &&
    100         !tr_fdSocketWillCreate( 0 ) )
    101     {
    102         peer->socket = tr_netOpenTCP( peer->addr, peer->port );
    103         if( peer->socket < 0 )
    104         {
    105             peer_dbg( "connection failed" );
    106             tr_fdSocketClosed( 0 );
    107             return TR_ERROR;
    108         }
    109         peer->status = PEER_STATUS_CONNECTING;
    110     }
    111 
    112     /* Try to send handshake */
    113     if( peer->status & PEER_STATUS_CONNECTING )
    114     {
    115         uint8_t buf[68];
    116         tr_info_t * inf = &tor->info;
    117         int ret;
    118 
    119         buf[0] = 19;
    120         memcpy( &buf[1], "BitTorrent protocol", 19 );
    121         memset( &buf[20], 0, 8 );
    122         memcpy( &buf[28], inf->hash, 20 );
    123         memcpy( &buf[48], tor->id, 20 );
    124 
    125         ret = tr_netSend( peer->socket, buf, 68 );
    126         if( ret & TR_NET_CLOSE )
    127         {
    128             peer_dbg( "connection closed" );
    129             return TR_ERROR;
    130         }
    131         else if( !( ret & TR_NET_BLOCK ) )
    132         {
    133             peer_dbg( "SEND handshake" );
    134             peer->status = PEER_STATUS_HANDSHAKE;
    135         }
    136     }
    137 
    13898    return TR_OK;
    13999}
Note: See TracChangeset for help on using the changeset viewer.