Changeset 11933


Ignore:
Timestamp:
Feb 18, 2011, 12:36:19 AM (11 years ago)
Author:
jch
Message:

Implement outgoing uTP connections.

Location:
trunk/libtransmission
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/net.c

    r11709 r11933  
    4646
    4747#include <event2/util.h>
     48#include <libutp/utp.h>
    4849
    4950#include "transmission.h"
     
    5152#include "natpmp.h"
    5253#include "net.h"
     54#include "tr-utp.h"
    5355#include "peer-io.h"
    5456#include "platform.h"
     
    348350
    349351    return s;
     352}
     353
     354struct UTPSocket *
     355tr_netOpenPeerUTPSocket( tr_session        * session,
     356                         const tr_address  * addr,
     357                         tr_port             port,
     358                         tr_bool             clientIsSeed UNUSED )
     359{
     360    struct sockaddr_storage ss;
     361    socklen_t sslen;
     362    sslen = setup_sockaddr( addr, port, &ss );
     363
     364    return UTP_Create( tr_utpSendTo, (void*)session,
     365                       (struct sockaddr*)&ss, sslen );
    350366}
    351367
  • trunk/libtransmission/net.h

    r11709 r11933  
    103103                           tr_bool            clientIsSeed );
    104104
     105struct UTPSocket *
     106tr_netOpenPeerUTPSocket( tr_session        * session,
     107                         const tr_address  * addr,
     108                         tr_port             port,
     109                         tr_bool             clientIsSeed);
     110
    105111int  tr_netBindTCP( const tr_address * addr,
    106112                    tr_port            port,
  • trunk/libtransmission/peer-io.c

    r11931 r11933  
    589589                          &utp_function_table,
    590590                          io );
    591        
     591        if( !isIncoming )
     592            UTP_Connect( utp_socket );
    592593    }
    593594
     
    619620                      tr_port             port,
    620621                      const uint8_t     * torrentHash,
    621                       tr_bool             isSeed )
    622 {
    623     int fd;
     622                      tr_bool             isSeed,
     623                      tr_bool             utp )
     624{
     625    int fd = -1;
     626    struct UTPSocket *utp_socket = NULL;
    624627
    625628    assert( session );
     
    627630    assert( torrentHash );
    628631
    629     fd = tr_netOpenPeerSocket( session, addr, port, isSeed );
    630     dbgmsg( NULL, "tr_netOpenPeerSocket returned fd %d", fd );
    631 
    632     return fd < 0 ? NULL
    633                   : tr_peerIoNew( session, parent, addr, port,
    634                                   torrentHash, FALSE, isSeed, fd, NULL );
     632    if( !utp ) {
     633        fd = tr_netOpenPeerSocket( session, addr, port, isSeed );
     634        dbgmsg( NULL, "tr_netOpenPeerSocket returned fd %d", fd );
     635    } else {
     636        utp_socket =
     637            tr_netOpenPeerUTPSocket( session, addr, port, isSeed );
     638    }
     639
     640    if( fd < 0 && utp_socket == NULL )
     641        return NULL;
     642
     643    return tr_peerIoNew( session, parent, addr, port,
     644                         torrentHash, FALSE, isSeed, fd, utp_socket );
    635645}
    636646
  • trunk/libtransmission/peer-io.h

    r11929 r11933  
    124124                                  tr_port                   port,
    125125                                  const  uint8_t          * torrentHash,
    126                                   tr_bool                   isSeed );
     126                                  tr_bool                   isSeed,
     127                                  tr_bool                   utp );
     128
    127129
    128130tr_peerIo*  tr_peerIoNewIncoming( tr_session              * session,
  • trunk/libtransmission/peer-mgr.c

    r11920 r11933  
    38403840                               atom->port,
    38413841                               t->tor->info.hash,
    3842                                t->tor->completeness == TR_SEED );
     3842                               t->tor->completeness == TR_SEED,
     3843                               0 );
    38433844
    38443845    if( io == NULL )
Note: See TracChangeset for help on using the changeset viewer.