mirror of
https://github.com/transmission/transmission.git
synced 2026-05-08 09:39:08 +01:00
(trunk) fix r9380 #2412 timing issue
This commit is contained in:
@@ -688,7 +688,7 @@ tr_sessionInitImpl( void * vdata )
|
||||
|
||||
tr_statsInit( session );
|
||||
|
||||
session->web = tr_webInit( session, &session->public_ipv4->addr );
|
||||
session->web = tr_webInit( session );
|
||||
--session->waiting;
|
||||
|
||||
///cccc
|
||||
@@ -794,6 +794,7 @@ sessionSetImpl( void * vdata )
|
||||
b.addr = tr_inaddr_any;
|
||||
b.socket = -1;
|
||||
session->public_ipv4 = tr_memdup( &b, sizeof( struct tr_bindinfo ) );
|
||||
tr_webSetInterface( session->web, &session->public_ipv4->addr );
|
||||
|
||||
str = TR_PREFS_KEY_BIND_ADDRESS_IPV6;
|
||||
tr_bencDictFindStr( settings, TR_PREFS_KEY_BIND_ADDRESS_IPV6, &str );
|
||||
|
||||
+12
-4
@@ -86,7 +86,8 @@ struct tr_web
|
||||
long timer_ms;
|
||||
CURLM * multi;
|
||||
tr_session * session;
|
||||
const tr_address * addr;
|
||||
tr_bool haveAddr;
|
||||
tr_address addr;
|
||||
struct event timer_event;
|
||||
tr_list * fds;
|
||||
};
|
||||
@@ -237,7 +238,8 @@ addTask( void * vtask )
|
||||
TR_NAME "/" LONG_VERSION_STRING );
|
||||
curl_easy_setopt( easy, CURLOPT_VERBOSE,
|
||||
getenv( "TR_CURL_VERBOSE" ) != NULL );
|
||||
curl_easy_setopt( easy, CURLOPT_INTERFACE, tr_ntop_non_ts( web->addr ) );
|
||||
if( web->haveAddr )
|
||||
curl_easy_setopt( easy, CURLOPT_INTERFACE, tr_ntop_non_ts( &web->addr ) );
|
||||
curl_easy_setopt( easy, CURLOPT_WRITEDATA, task );
|
||||
curl_easy_setopt( easy, CURLOPT_WRITEFUNCTION, writeFunc );
|
||||
if( task->range )
|
||||
@@ -523,8 +525,15 @@ tr_webRun( tr_session * session,
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
tr_webSetInterface( tr_web * web, const tr_address * addr )
|
||||
{
|
||||
if(( web->haveAddr = ( addr != NULL )))
|
||||
web->addr = *addr;
|
||||
}
|
||||
|
||||
tr_web*
|
||||
tr_webInit( tr_session * session, const struct tr_address * addr )
|
||||
tr_webInit( tr_session * session )
|
||||
{
|
||||
CURLMcode mcode;
|
||||
static int curlInited = FALSE;
|
||||
@@ -542,7 +551,6 @@ tr_webInit( tr_session * session, const struct tr_address * addr )
|
||||
web = tr_new0( struct tr_web, 1 );
|
||||
web->multi = curl_multi_init( );
|
||||
web->session = session;
|
||||
web->addr = addr;
|
||||
web->timer_ms = DEFAULT_TIMER_MSEC; /* overwritten by multi_timer_cb() */
|
||||
|
||||
evtimer_set( &web->timer_event, timer_cb, web );
|
||||
|
||||
@@ -16,11 +16,12 @@
|
||||
struct tr_address;
|
||||
typedef struct tr_web tr_web;
|
||||
|
||||
tr_web* tr_webInit( tr_session * session,
|
||||
const struct tr_address * addr );
|
||||
tr_web* tr_webInit( tr_session * session );
|
||||
|
||||
void tr_webClose( tr_web ** );
|
||||
|
||||
void tr_webSetInterface( tr_web * web, const struct tr_address * addr );
|
||||
|
||||
typedef void ( tr_web_done_func )( tr_session * session,
|
||||
long response_code,
|
||||
const void * response,
|
||||
|
||||
Reference in New Issue
Block a user