Ignore:
Timestamp:
Jan 12, 2006, 7:12:58 PM (16 years ago)
Author:
root
Message:

Update 2006-01-11

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/peerparse.h

    r3 r26  
    397397}
    398398
     399static inline int parseBufHeader( tr_peer_t * peer )
     400{
     401    uint8_t * p   = peer->buf;
     402
     403    if( 4 > peer->pos )
     404    {
     405        return 0;
     406    }
     407
     408    if( p[0] != 19 || memcmp( &p[1], "Bit", 3 ) )
     409    {
     410        /* Don't wait until we get 68 bytes, this is wrong
     411           already */
     412        peer_dbg( "GET  handshake, invalid" );
     413        tr_netSend( peer->socket, (uint8_t *) "Nice try...\r\n", 13 );
     414        return 1;
     415    }
     416    if( peer->pos < 68 )
     417    {
     418        return 0;
     419    }
     420    if( memcmp( &p[4], "Torrent protocol", 16 ) )
     421    {
     422        peer_dbg( "GET  handshake, invalid" );
     423        return 1;
     424    }
     425
     426    return 0;
     427}
     428
     429static uint8_t * parseBufHash( tr_peer_t * peer )
     430{
     431    if( 48 > peer->pos )
     432    {
     433        return NULL;
     434    }
     435    else
     436    {
     437        return peer->buf + 28;
     438    }
     439}
     440
    399441static inline int parseBuf( tr_torrent_t * tor, tr_peer_t * peer,
    400442                            int newBytes )
     
    413455            char * client;
    414456
    415             if( p[0] != 19 || memcmp( &p[1], "Bit", 3 ) )
    416             {
    417                 /* Don't wait until we get 68 bytes, this is wrong
    418                    already */
    419                 peer_dbg( "GET  handshake, invalid" );
    420                 tr_netSend( peer->socket, (uint8_t *) "Nice try...\r\n", 13 );
    421                 return 1;
    422             }
    423 
    424             if( peer->pos < 68 )
    425             {
    426                 break;
    427             }
    428 
    429             if( memcmp( &p[4], "Torrent protocol", 16 ) )
    430             {
    431                 peer_dbg( "GET  handshake, invalid" );
     457            if( parseBufHeader( peer ) )
     458            {
    432459                return 1;
    433460            }
Note: See TracChangeset for help on using the changeset viewer.