diff --git a/daemon/daemon.c b/daemon/daemon.c index 7ec971580..88df3cc92 100644 --- a/daemon/daemon.c +++ b/daemon/daemon.c @@ -494,12 +494,15 @@ daemon_start (void * raw_arg, sd_notifyf (0, "MAINPID=%d\n", (int)getpid()); + /* should go before libevent calls */ + tr_net_init (); + /* setup event state */ - ev_base = event_base_new(); + ev_base = event_base_new (); if (ev_base == NULL) { char buf[256]; - tr_snprintf(buf, sizeof(buf), "Failed to init daemon event state: %s", tr_strerror(errno)); + tr_snprintf (buf, sizeof (buf), "Failed to init daemon event state: %s", tr_strerror (errno)); printMessage (logfile, TR_LOG_ERROR, MY_NAME, buf, __FILE__, __LINE__); return 1; } diff --git a/libtransmission/net.c b/libtransmission/net.c index 2894f6b42..53612fea8 100644 --- a/libtransmission/net.c +++ b/libtransmission/net.c @@ -55,21 +55,6 @@ const tr_address tr_in6addr_any = { TR_AF_INET6, { IN6ADDR_ANY_INIT } }; const tr_address tr_inaddr_any = { TR_AF_INET, { { { { INADDR_ANY, 0x00, 0x00, 0x00 } } } } }; -void -tr_netInit (void) -{ - static bool initialized = false; - - if (!initialized) - { -#ifdef _WIN32 - WSADATA wsaData; - WSAStartup (MAKEWORD (2, 2), &wsaData); -#endif - initialized = true; - } -} - char * tr_net_strerror (char * buf, size_t buflen, int err) { diff --git a/libtransmission/net.h b/libtransmission/net.h index ba7825c1d..5407de82d 100644 --- a/libtransmission/net.h +++ b/libtransmission/net.h @@ -163,8 +163,6 @@ void tr_netClose (tr_session * session, void tr_netCloseSocket (tr_socket_t fd); -void tr_netInit (void); - bool tr_net_hasIPv6 (tr_port); diff --git a/libtransmission/session.c b/libtransmission/session.c index 0fb63b232..7550d5220 100644 --- a/libtransmission/session.c +++ b/libtransmission/session.c @@ -610,7 +610,7 @@ tr_sessionInit (const char * tag, tr_logSetLevel (i); /* start the libtransmission thread */ - tr_netInit (); /* must go before tr_eventInit */ + tr_net_init (); /* must go before tr_eventInit */ tr_eventInit (session); assert (session->events != NULL); diff --git a/libtransmission/utils.c b/libtransmission/utils.c index 42c755671..d02bac882 100644 --- a/libtransmission/utils.c +++ b/libtransmission/utils.c @@ -29,6 +29,7 @@ #include /* nanosleep () */ #ifdef _WIN32 + #include /* WSAStartup () */ #include /* Sleep (), GetSystemTimeAsFileTime (), GetEnvironmentVariable () */ #include /* CommandLineToArgv () */ #else @@ -1842,3 +1843,22 @@ char * tr_env_get_string (const char * key, #endif } + +/*** +**** +***/ + +void +tr_net_init (void) +{ + static bool initialized = false; + + if (!initialized) + { +#ifdef _WIN32 + WSADATA wsaData; + WSAStartup (MAKEWORD (2, 2), &wsaData); +#endif + initialized = true; + } +} diff --git a/libtransmission/utils.h b/libtransmission/utils.h index d6fd03213..4499c2ff2 100644 --- a/libtransmission/utils.h +++ b/libtransmission/utils.h @@ -504,6 +504,12 @@ char * tr_env_get_string (const char * key, **** ***/ +void tr_net_init (void); + +/*** +**** +***/ + #ifdef __cplusplus } #endif