Ignore:
Timestamp:
Aug 31, 2007, 8:43:39 PM (15 years ago)
Author:
charles
Message:

add peer-mgr to act as the hub between { handshake, peer io, choking, incoming peers }

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/encryption/libtransmission/peer-io.c

    r2953 r2954  
    3131{
    3232    struct tr_handle * handle;
    33     struct tr_torrent * torrent;
    3433
    3534    struct in_addr in_addr;
     
    9897tr_peerIoNew( struct tr_handle  * handle,
    9998              struct in_addr    * in_addr,
    100               struct tr_torrent * torrent,
     99              const uint8_t     * torrentHash,
    101100              int                 isIncoming,
    102101              int                 socket )
     
    104103    tr_peerIo * c;
    105104    c = tr_new0( tr_peerIo, 1 );
    106     c->torrent = torrent;
    107     c->crypto = tr_cryptoNew( torrent ? torrent->info.hash : NULL, isIncoming );
     105    c->crypto = tr_cryptoNew( torrentHash, isIncoming );
    108106    c->handle = handle;
    109107    c->in_addr = *in_addr;
     
    132130                      struct in_addr    * in_addr,
    133131                      int                 port,
    134                       struct tr_torrent * torrent )
     132                      const uint8_t     * torrentHash )
    135133{
    136134    tr_peerIo * c;
     
    139137    assert( in_addr != NULL );
    140138    assert( port >= 0 );
    141     assert( torrent != NULL );
    142 
    143     c = tr_peerIoNew( handle, in_addr, torrent, 0,
     139    assert( torrentHash != NULL );
     140
     141    c = tr_peerIoNew( handle, in_addr, torrentHash, 0,
    144142                              tr_netOpenTCP( in_addr, port, 0 ) );
    145143    c->port = port;
     
    163161
    164162    return io->handle;
     163}
     164
     165const struct in_addr*
     166tr_peerIoGetAddress( const tr_peerIo * io, uint16_t * port )
     167{
     168    assert( io != NULL );
     169
     170    if( port != NULL )
     171       *port = io->port;
     172
     173    return &io->in_addr;
    165174}
    166175
     
    221230
    222231void
    223 tr_peerIoSetTorrent( tr_peerIo  * io,
    224                              struct tr_torrent  * torrent )
    225 {
    226     io->torrent = torrent;
    227 
    228     tr_cryptoSetTorrentHash( io->crypto, torrent->info.hash );
    229 }
    230 
    231 struct tr_torrent*
     232tr_peerIoSetTorrentHash( tr_peerIo     * io,
     233                         const uint8_t * hash )
     234{
     235    tr_cryptoSetTorrentHash( io->crypto, hash );
     236}
     237
     238const uint8_t*
    232239tr_peerIoGetTorrent( tr_peerIo * io )
    233240{
    234     return io->torrent;
    235 }
    236 
    237 /**
    238 ***
    239 **/
    240 
    241 void
    242 tr_peerIoSetPeersId( tr_peerIo * io,
    243                              const uint8_t    * peer_id )
     241    return tr_cryptoGetTorrentHash( io->crypto );
     242}
     243
     244/**
     245***
     246**/
     247
     248void
     249tr_peerIoSetPeersId( tr_peerIo     * io,
     250                     const uint8_t * peer_id )
    244251{
    245252    assert( io != NULL );
     
    265272
    266273void
    267 tr_peerIoSetExtension( tr_peerIo * io,
    268                                int                 extensions )
     274tr_peerIoSetExtension( tr_peerIo   * io,
     275                       int           extensions )
    269276{
    270277    assert( io != NULL );
Note: See TracChangeset for help on using the changeset viewer.