Ignore:
Timestamp:
Aug 15, 2007, 9:26:24 PM (15 years ago)
Author:
joshe
Message:

Implement proposed extension to indicate which of azrueus or extended messaging are preferred.
This is disabled for now.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/peerparse.h

    r2769 r2772  
    604604{
    605605    tr_info_t * inf = &tor->info;
    606     int         ii;
     606    int         ii, extmsgs, azproto;
     607    char      * dbgsup, * dbgwant;
    607608
    608609    if( 0 != memcmp( peer->buf + HANDSHAKE_HASH_OFF, inf->hash,
     
    636637    }
    637638
     639    extmsgs = 0;
     640    azproto = 0;
     641    dbgsup  = "";
     642    dbgwant = "";
     643
    638644    if( HANDSHAKE_HAS_EXTMSGS( peer->buf + HANDSHAKE_FLAGS_OFF ) )
     645    {
     646        dbgsup = " extended messaging supported";
     647        extmsgs = 1;
     648    }
     649    if( HANDSHAKE_HAS_AZPROTO( peer->buf + HANDSHAKE_FLAGS_OFF ) )
     650    {
     651        dbgsup = " will use azureus protocol";
     652        azproto = 1;
     653    }
     654    if( extmsgs && azproto )
     655    {
     656        dbgsup = " both extended and azureus messaging supported";
     657        switch( HANDSHAKE_GET_EXTPREF( peer->buf + HANDSHAKE_FLAGS_OFF ) )
     658        {
     659            case HANDSHAKE_EXTPREF_FORCE_EXT:
     660                dbgwant = ", peer forces extended";
     661                azproto = 0;
     662                break;
     663            case HANDSHAKE_EXTPREF_WANT_EXT:
     664                dbgwant = ", peer prefers extended";
     665                azproto = 0;
     666                break;
     667            case HANDSHAKE_EXTPREF_WANT_AZ:
     668                dbgwant = ", peer prefers azureus";
     669                extmsgs = 0;
     670                break;
     671            case HANDSHAKE_EXTPREF_FORCE_AZ:
     672                dbgwant = ", peer forces azureus";
     673                extmsgs = 0;
     674                break;
     675        }
     676    }
     677    assert( !extmsgs || !azproto );
     678
     679    if( extmsgs )
    639680    {
    640681        peer->status = PEER_STATUS_CONNECTED;
    641682        peer->extStatus = EXTENDED_SUPPORTED;
    642         peer_dbg( "GET  handshake, ok (%s) extended messaging supported",
    643                   tr_peerClient( peer ) );
    644     }
    645     else if( HANDSHAKE_HAS_AZPROTO( peer->buf + HANDSHAKE_FLAGS_OFF ) )
     683    }
     684    else if( azproto )
    646685    {
    647686        peer->status  = PEER_STATUS_AZ_GIVER;
    648687        peer->azproto = 1;
    649688        peer->date    = tr_date();
    650         peer_dbg( "GET  handshake, ok (%s) will use azureus protocol",
    651                   tr_peerClient( peer ) );
    652689    }
    653690    else
    654691    {
    655692        peer->status = PEER_STATUS_CONNECTED;
    656         peer_dbg( "GET  handshake, ok (%s)", tr_peerClient( peer ) );
    657     }
     693    }
     694    peer_dbg( "GET  handshake, ok (%s)%s%s",
     695              tr_peerClient( peer ), dbgsup, dbgwant );
    658696
    659697    return TR_OK;
Note: See TracChangeset for help on using the changeset viewer.