mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-13 22:53:44 +01:00
Under Windows, call WSAStartup before using the network
This commit is contained in:
parent
8db98c13b5
commit
2002d4acdf
@ -13,6 +13,7 @@
|
|||||||
* later date.
|
* later date.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "orconfig.h"
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -20,7 +21,10 @@
|
|||||||
#include <time.h>
|
#include <time.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "orconfig.h"
|
#ifdef MS_WINDOWS
|
||||||
|
#include <winsock2.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "tor-fw-helper.h"
|
#include "tor-fw-helper.h"
|
||||||
#ifdef NAT_PMP
|
#ifdef NAT_PMP
|
||||||
#include "tor-fw-helper-natpmp.h"
|
#include "tor-fw-helper-natpmp.h"
|
||||||
@ -219,6 +223,29 @@ tor_fw_add_dir_port(tor_fw_options_t *tor_fw_options,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Called before we make any calls to network-related functions.
|
||||||
|
* (Some operating systems require their network libraries to be
|
||||||
|
* initialized.) (from common/compat.c) */
|
||||||
|
static int
|
||||||
|
network_init(void)
|
||||||
|
{
|
||||||
|
#ifdef MS_WINDOWS
|
||||||
|
/* This silly exercise is necessary before windows will allow
|
||||||
|
* gethostbyname to work. */
|
||||||
|
WSADATA WSAData;
|
||||||
|
int r;
|
||||||
|
r = WSAStartup(0x101, &WSAData);
|
||||||
|
if (r) {
|
||||||
|
fprintf(stderr, "E: Error initializing Windows network layer - code was %d", r);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
/* WSAData.iMaxSockets might show the max sockets we're allowed to use.
|
||||||
|
* We might use it to complain if we're trying to be a server but have
|
||||||
|
* too few sockets available. */
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main(int argc, char **argv)
|
main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
@ -329,6 +356,10 @@ main(int argc, char **argv)
|
|||||||
tor_fw_options.public_dir_port);
|
tor_fw_options.public_dir_port);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Initialize networking
|
||||||
|
if (network_init())
|
||||||
|
exit(1);
|
||||||
|
|
||||||
// Initalize the various fw-helper backend helpers
|
// Initalize the various fw-helper backend helpers
|
||||||
r = init_backends(&tor_fw_options, &backend_state);
|
r = init_backends(&tor_fw_options, &backend_state);
|
||||||
if (r)
|
if (r)
|
||||||
|
Loading…
Reference in New Issue
Block a user