Tor 0.4.9.0-alpha-dev
network_sys.c
Go to the documentation of this file.
1/* Copyright (c) 2018-2021, The Tor Project, Inc. */
2/* See LICENSE for licensing information */
3
4/**
5 * \file network_sys.c
6 * \brief Subsystem object for networking setup.
7 **/
8
9#include "orconfig.h"
10#include "lib/subsys/subsys.h"
11#include "lib/net/network_sys.h"
12#include "lib/net/resolve.h"
13#include "lib/net/socket.h"
14
15#ifdef _WIN32
16#include <winsock2.h>
17#include <windows.h>
18#endif
19
20static int
21subsys_network_initialize(void)
22{
23 if (network_init() < 0)
24 return -1;
25
26 return 0;
27}
28
29static void
30subsys_network_shutdown(void)
31{
32#ifdef _WIN32
33 WSACleanup();
34#endif
35 tor_free_getaddrinfo_cache();
36}
37
38const subsys_fns_t sys_network = {
39 .name = "network",
41 /* Network depends on logging, and a lot of other modules depend on network.
42 */
43 .level = -55,
44 .supported = true,
45 .initialize = subsys_network_initialize,
46 .shutdown = subsys_network_shutdown,
47};
Declare subsystem object for the network module.
Header for resolve.c.
int network_init(void)
Definition: socket.c:41
Header for socket.c.
const char * name
Definition: subsys.h:43
Types used to declare a subsystem.
#define SUBSYS_DECLARE_LOCATION()
Definition: subsys.h:211