DDraceNetwork Documentation
Loading...
Searching...
No Matches
system.h
Go to the documentation of this file.
1/* (c) Magnus Auvinen. See licence.txt in the root of the distribution for more information. */
2/* If you are missing that file, acquire a complete release at teeworlds.com. */
3
4/*
5 Title: OS Abstraction
6*/
7
8#ifndef BASE_SYSTEM_H
9#define BASE_SYSTEM_H
10
11#include "dbg.h"
12#include "detect.h"
13#include "fs.h"
14#include "io.h"
15#include "mem.h"
16#include "secure.h"
17#include "str.h"
18#include "time.h"
19#include "types.h"
20
21#include <chrono>
22#include <cstdint>
23#include <ctime>
24#include <functional>
25#include <mutex>
26#include <optional>
27#include <string>
28
29#ifdef CONF_FAMILY_UNIX
30#include <sys/un.h>
31#endif
32
33#ifdef CONF_PLATFORM_LINUX
34#include <netinet/in.h>
35#include <sys/socket.h>
36#endif
37
41
47
51extern const NETADDR NETADDR_ZEROED;
52
53#ifdef CONF_FAMILY_UNIX
57typedef int UNIXSOCKET;
61typedef struct sockaddr_un UNIXSOCKETADDR;
62#endif
63
71void net_init();
72
84int net_host_lookup(const char *hostname, NETADDR *addr, int types);
85
98int net_addr_comp(const NETADDR *a, const NETADDR *b);
99
112int net_addr_comp_noport(const NETADDR *a, const NETADDR *b);
113
126void net_addr_str(const NETADDR *addr, char *string, int max_length, bool add_port);
127
153int net_addr_from_url(NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size);
154
164bool net_addr_is_local(const NETADDR *addr);
165
176int net_addr_from_str(NETADDR *addr, const char *string);
177
188
197
205int net_errno();
206
214std::string net_error_message();
215
223int net_would_block();
224
235int net_socket_read_wait(NETSOCKET sock, std::chrono::nanoseconds nanoseconds);
236
242
253int net_socket_type(NETSOCKET sock);
254
265
278int net_udp_send(NETSOCKET sock, const NETADDR *addr, const void *data, int size);
279
291int net_udp_recv(NETSOCKET sock, NETADDR *addr, unsigned char **data);
292
300void net_udp_close(NETSOCKET sock);
301
307
318
329int net_tcp_listen(NETSOCKET sock, int backlog);
330
342int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *addr);
343
355int net_tcp_connect(NETSOCKET sock, const NETADDR *addr);
356
368
380int net_tcp_send(NETSOCKET sock, const void *data, int size);
381
394int net_tcp_recv(NETSOCKET sock, void *data, int maxsize);
395
403void net_tcp_close(NETSOCKET sock);
404
405#if defined(CONF_FAMILY_UNIX)
411
420
433int net_unix_send(UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size);
434
443void net_unix_set_addr(UNIXSOCKETADDR *addr, const char *path);
444
452void net_unix_close(UNIXSOCKET sock);
453
454#endif
455
456void net_stats(NETSTATS *stats);
457
458#endif
int UNIXSOCKET
Definition system.h:57
int net_would_block()
Definition system.cpp:1298
int net_host_lookup(const char *hostname, NETADDR *addr, int types)
Definition system.cpp:370
int net_addr_from_url(NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size)
Definition system.cpp:451
int net_set_non_blocking(NETSOCKET sock)
Definition system.cpp:1144
int net_socket_type(NETSOCKET sock)
Definition system.cpp:713
const NETADDR NETADDR_ZEROED
Definition system.cpp:82
int net_errno()
Definition system.cpp:1278
std::string net_error_message()
Definition system.cpp:1287
int net_addr_comp_noport(const NETADDR *a, const NETADDR *b)
Definition system.cpp:165
void net_init()
Definition system.cpp:1307
int net_socket_read_wait(NETSOCKET sock, std::chrono::nanoseconds nanoseconds)
Definition system.cpp:1342
int net_addr_from_str(NETADDR *addr, const char *string)
Definition system.cpp:514
int net_addr_comp(const NETADDR *a, const NETADDR *b)
Definition system.cpp:127
struct sockaddr_un UNIXSOCKETADDR
Definition system.h:61
struct NETSOCKET_INTERNAL * NETSOCKET
Definition types.h:49
bool net_addr_is_local(const NETADDR *addr)
Definition system.cpp:500
void net_addr_str(const NETADDR *addr, char *string, int max_length, bool add_port)
Definition system.cpp:242
int net_tcp_connect_non_blocking(NETSOCKET sock, NETADDR bindaddr)
Definition system.cpp:1233
int net_tcp_listen(NETSOCKET sock, int backlog)
Definition system.cpp:1154
int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *addr)
Definition system.cpp:1168
int net_tcp_connect(NETSOCKET sock, const NETADDR *addr)
Definition system.cpp:1210
NETSOCKET net_tcp_create(NETADDR bindaddr)
Definition system.cpp:1078
int net_tcp_send(NETSOCKET sock, const void *data, int size)
Definition system.cpp:1241
int net_tcp_recv(NETSOCKET sock, void *data, int maxsize)
Definition system.cpp:1257
void net_tcp_close(NETSOCKET sock)
Definition system.cpp:1273
NETSOCKET net_udp_create(NETADDR bindaddr)
Definition system.cpp:718
void net_udp_close(NETSOCKET sock)
Definition system.cpp:1073
int net_udp_send(NETSOCKET sock, const NETADDR *addr, const void *data, int size)
Definition system.cpp:828
int net_udp_recv(NETSOCKET sock, NETADDR *addr, unsigned char **data)
Definition system.cpp:972
int net_unix_send(UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size)
Definition system.cpp:1324
void net_unix_set_addr(UNIXSOCKETADDR *addr, const char *path)
Definition system.cpp:1329
UNIXSOCKET net_unix_create_unnamed()
Definition system.cpp:1319
void net_unix_close(UNIXSOCKET sock)
Definition system.cpp:1336
Definition types.h:79
Definition types.h:99
void net_stats(NETSTATS *stats)
Definition system.cpp:1403
int net_set_blocking(NETSOCKET sock)
Definition system.cpp:1149