Initialise networking in daemon before making libevent calls
This commit is contained in:
parent
8beea92859
commit
0420699ad6
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -29,6 +29,7 @@
|
|||
#include <time.h> /* nanosleep () */
|
||||
|
||||
#ifdef _WIN32
|
||||
#include <ws2tcpip.h> /* WSAStartup () */
|
||||
#include <windows.h> /* Sleep (), GetSystemTimeAsFileTime (), GetEnvironmentVariable () */
|
||||
#include <shellapi.h> /* 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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -504,6 +504,12 @@ char * tr_env_get_string (const char * key,
|
|||
****
|
||||
***/
|
||||
|
||||
void tr_net_init (void);
|
||||
|
||||
/***
|
||||
****
|
||||
***/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue