Changeset 11960


Ignore:
Timestamp:
Feb 18, 2011, 12:45:44 AM (11 years ago)
Author:
jordan
Message:

add configure script switch to enable/disable utp

Location:
trunk
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/configure.ac

    r11920 r11960  
    220220dnl  utp
    221221
    222 LIBUTP_CFLAGS="-I\$(top_srcdir)/third-party/"
    223 LIBUTP_LIBS="\$(top_builddir)/third-party/libutp/libutp.a"
     222AC_ARG_ENABLE([utp],
     223              AS_HELP_STRING([--enable-utp],[build µTP support]),
     224              [build_utp=${enableval}],
     225              [build_utp=no])
     226if test "x$build_utp" = "xyes" ; then
     227    LIBUTP_CFLAGS="-I\$(top_srcdir)/third-party/"
     228    LIBUTP_LIBS="\$(top_builddir)/third-party/libutp/libutp.a"
     229    AC_DEFINE([WITH_UTP],[1])
     230fi
    224231AC_SUBST(LIBUTP_CFLAGS)
    225232AC_SUBST(LIBUTP_LIBS)
     233AM_CONDITIONAL([BUILD_UTP],[test "x$build_utp" = "xyes"])
    226234
    227235
     
    508516
    509517      * optimized for low-resource systems:           ${enable_lightweight}
     518      * µTP enabled:                                  ${build_utp}
    510519
    511520   Build Command-Line client:                         ${build_cli}
  • trunk/libtransmission/net.c

    r11933 r11960  
    5252#include "natpmp.h"
    5353#include "net.h"
    54 #include "tr-utp.h"
    5554#include "peer-io.h"
    5655#include "platform.h"
    5756#include "session.h"
     57#include "tr-utp.h"
    5858#include "utils.h"
    5959
     
    352352}
    353353
     354#ifdef WITH_UTP
    354355struct UTPSocket *
    355356tr_netOpenPeerUTPSocket( tr_session        * session,
     
    365366                       (struct sockaddr*)&ss, sslen );
    366367}
     368#endif
    367369
    368370static int
  • trunk/libtransmission/net.h

    r11933 r11960  
    103103                           tr_bool            clientIsSeed );
    104104
     105#ifdef WITH_UTP
    105106struct UTPSocket *
    106107tr_netOpenPeerUTPSocket( tr_session        * session,
     
    108109                         tr_port             port,
    109110                         tr_bool             clientIsSeed);
     111#endif
    110112
    111113int  tr_netBindTCP( const tr_address * addr,
  • trunk/libtransmission/peer-io.c

    r11947 r11960  
    3838#include "trevent.h" /* tr_runInEventThread() */
    3939#include "utils.h"
     40
    4041
    4142#define MAGIC_NUMBER 206745
     
    369370}
    370371
     372#ifdef WITH_UTP
    371373/* UTP callbacks */
    372374
     
    477479};
    478480
     481
    479482/* Dummy UTP callbacks. */
    480483/* We switch a UTP socket to use these after the associated peerIo has been
     
    530533    .on_overhead = dummy_on_overhead
    531534};
     535
     536#endif /* #ifdef WITH_UTP */
    532537
    533538static tr_peerIo*
     
    550555    assert( tr_amInEventThread( session ) );
    551556    assert( (socket < 0) == (utp_socket != NULL) );
     557#ifndef WITH_UTP
     558    assert( socket >= 0 );
     559#endif
    552560
    553561    if( socket >= 0 ) {
     
    580588        io->event_write = event_new( session->event_base,
    581589                                     io->socket, EV_WRITE, event_write_cb, io );
    582     } else {
     590    }
     591#ifdef WITH_UTP
     592    else {
    583593        UTP_SetSockopt( utp_socket, SO_RCVBUF, UTP_READ_BUFFER_SIZE );
    584594        dbgmsg( io, "%s", "calling UTP_SetCallbacks &utp_function_table" );
     
    591601        }
    592602    }
     603#endif
    593604
    594605    return io;
     
    617628                      const uint8_t     * torrentHash,
    618629                      tr_bool             isSeed,
    619                       tr_bool             utp )
     630                      tr_bool             utp UNUSED )
    620631{
    621632    int fd = -1;
     
    626637    assert( torrentHash );
    627638
    628     if( !utp ) {
     639#ifdef WITH_UTP
     640    if( utp )
     641        utp_socket = tr_netOpenPeerUTPSocket( session, addr, port, isSeed );
     642#endif
     643    if( !utp_socket ) {
    629644        fd = tr_netOpenPeerSocket( session, addr, port, isSeed );
    630645        dbgmsg( NULL, "tr_netOpenPeerSocket returned fd %d", fd );
    631     } else {
    632         utp_socket =
    633             tr_netOpenPeerUTPSocket( session, addr, port, isSeed );
    634646    }
    635647
     
    723735****
    724736***/
     737static void
     738io_close_socket( tr_peerIo * io )
     739{
     740    if( io->socket >= 0 ) {
     741        tr_netClose( io->session, io->socket );
     742        io->socket = -1;
     743        event_free( io->event_read );
     744        event_free( io->event_write );
     745    }
     746
     747#ifdef WITH_UTP
     748    if( io->utp_socket ) {
     749        UTP_SetCallbacks( io->utp_socket,
     750                          &dummy_utp_function_table,
     751                          NULL );
     752        UTP_Close( io->utp_socket );
     753
     754        io->utp_socket = NULL;
     755    }
     756#endif
     757}
    725758
    726759static void
     
    738771    evbuffer_free( io->outbuf );
    739772    evbuffer_free( io->inbuf );
    740     if( io->socket >= 0 ) {
    741         event_free( io->event_read );
    742         event_free( io->event_write );
    743         tr_netClose( io->session, io->socket );
    744     }
    745     if( io->utp_socket != NULL ) {
    746         UTP_SetCallbacks( io->utp_socket,
    747                           &dummy_utp_function_table,
    748                           NULL );
    749         UTP_Close( io->utp_socket );
    750     }
     773    io_close_socket( io );
    751774    tr_cryptoFree( io->crypto );
    752775    tr_list_free( &io->outbuf_datatypes, tr_free );
     
    855878    event_disable( io, EV_READ | EV_WRITE );
    856879
    857     if( io->socket >= 0 ) {
    858         tr_netClose( session, io->socket );
    859         io->socket = -1;
    860         event_free( io->event_read );
    861         event_free( io->event_write );
    862     }
    863     if( io->utp_socket != NULL ) {
    864         UTP_SetCallbacks( io->utp_socket,
    865                           &dummy_utp_function_table,
    866                           NULL );
    867         UTP_Close(io->utp_socket);
    868         io->utp_socket = NULL;
    869     }
     880    io_close_socket( io );
    870881
    871882    io->socket = tr_netOpenPeerSocket( session, &io->addr, io->port, io->isSeed );
     
    11341145    if(( howmuch = tr_bandwidthClamp( &io->bandwidth, TR_DOWN, howmuch )))
    11351146    {
     1147#ifdef WITH_UTP
    11361148        if( io->utp_socket != NULL ) /* utp peer connection */
    11371149        {
     
    11431155        }
    11441156        else /* tcp peer connection */
     1157#endif
    11451158        {
    11461159            int e;
     
    11831196    if(( howmuch = tr_bandwidthClamp( &io->bandwidth, TR_UP, howmuch )))
    11841197    {
     1198#ifdef WITH_UTP
    11851199        if( io->utp_socket != NULL ) /* utp peer connection */
    11861200        {
     
    11901204        }
    11911205        else
     1206#endif
    11921207        {
    11931208            int e;
  • trunk/libtransmission/peer-mgr.c

    r11957 r11960  
    20492049        if(socket >= 0)
    20502050            tr_netClose( session, socket );
     2051#ifdef WITH_UTP
    20512052        else
    20522053            UTP_Close( utp_socket );
     2054#endif
    20532055    }
    20542056    else if( getExistingHandshake( &manager->incomingHandshakes, addr ) )
     
    20562058        if(socket >= 0)
    20572059            tr_netClose( session, socket );
     2060#ifdef WITH_UTP
    20582061        else
    20592062            UTP_Close( utp_socket );
     2063#endif
    20602064    }
    20612065    else /* we don't have a connection to them yet... */
  • trunk/libtransmission/session.c

    r11956 r11960  
    19801980    assert( tr_isSession( session ) );
    19811981
     1982#ifdef WITH_UTP
    19821983    return session->isUTPEnabled;
     1984#else
     1985    return FALSE;
     1986#endif
    19831987}
    19841988
  • trunk/libtransmission/tr-utp.c

    r11949 r11960  
    3434#include "peer-mgr.h"
    3535#include "tr-utp.h"
     36
     37#ifndef WITH_UTP
     38
     39int tr_utpPacket(const unsigned char *buf UNUSED, size_t buflen UNUSED,
     40                 const struct sockaddr *from UNUSED, socklen_t fromlen UNUSED,
     41                 tr_session *ss UNUSED) { return -1; }
     42
     43void tr_utpClose( tr_session * ss UNUSED ) { }
     44
     45void tr_utpSendTo(void *closure UNUSED,
     46                  const unsigned char *buf UNUSED, size_t buflen UNUSED,
     47                  const struct sockaddr *to UNUSED, socklen_t tolen UNUSED) { }
     48
     49#else
    3650
    3751/* Greg says 50ms works for them. */
     
    142156    }
    143157}
     158
     159#endif /* #ifndef WITH_UTP ... else */
  • trunk/libtransmission/tr-utp.h

    r11932 r11960  
    2222*/
    2323
     24#ifndef __TRANSMISSION__
     25 #error only libtransmission should #include this header.
     26#endif
     27
     28#ifndef _TR_UTP_H_
     29#define _TR_UTP_H_
     30
    2431int tr_utpPacket(const unsigned char *buf, size_t buflen,
    2532                 const struct sockaddr *from, socklen_t fromlen,
     
    3037void tr_utpSendTo(void *closure, const unsigned char *buf, size_t buflen,
    3138                  const struct sockaddr *to, socklen_t tolen);
     39
     40#endif /* #ifndef _TR_UTP_H_ */
  • trunk/third-party/Makefile.am

    r11920 r11960  
    1 SUBDIRS = libnatpmp miniupnp libutp dht
     1if BUILD_UTP
     2  UTP_DIR = libutp
     3endif
     4
     5SUBDIRS = \
     6  dht \
     7  libnatpmp \
     8  miniupnp \
     9  $(UTP_DIR)
    210
    311EXTRA_DIST = \
Note: See TracChangeset for help on using the changeset viewer.