DDNet documentation
Loading...
Searching...
No Matches
net.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#ifndef BASE_NET_H
5#define BASE_NET_H
6
7#include "types.h"
8
9#include <chrono>
10#include <cstddef>
11#include <string>
12
13#ifdef CONF_FAMILY_UNIX
14#include <sys/un.h> // sockaddr_un
15#endif
16
20
26
32
36extern const NETADDR NETADDR_ZEROED;
37
38#ifdef CONF_FAMILY_UNIX
42typedef int UNIXSOCKET;
43
47typedef struct sockaddr_un UNIXSOCKETADDR;
48#endif
49
62int net_addr_comp(const NETADDR *a, const NETADDR *b);
63
76int net_addr_comp_noport(const NETADDR *a, const NETADDR *b);
77
90void net_addr_str(const NETADDR *addr, char *string, int max_length, bool add_port);
91
117int net_addr_from_url(NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size);
118
128bool net_addr_is_local(const NETADDR *addr);
129
140int net_addr_from_str(NETADDR *addr, const char *string);
141
153int net_host_lookup(const char *hostname, NETADDR *addr, int types);
154
162void net_init();
163
171int net_errno();
172
180std::string net_error_message();
181
189void net_stats(NETSTATS *stats);
190
201int net_socket_type(NETSOCKET sock);
202
213
224
232int net_would_block();
233
244int net_socket_read_wait(NETSOCKET sock, std::chrono::nanoseconds nanoseconds);
245
251
262
275int net_udp_send(NETSOCKET sock, const NETADDR *addr, const void *data, int size);
276
288int net_udp_recv(NETSOCKET sock, NETADDR *addr, unsigned char **data);
289
297void net_udp_close(NETSOCKET sock);
298
304
315
326int net_tcp_listen(NETSOCKET sock, int backlog);
327
339int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *addr);
340
352int net_tcp_connect(NETSOCKET sock, const NETADDR *addr);
353
365
377int net_tcp_send(NETSOCKET sock, const void *data, int size);
378
391int net_tcp_recv(NETSOCKET sock, void *data, int maxsize);
392
400void net_tcp_close(NETSOCKET sock);
401
402#if defined(CONF_FAMILY_UNIX)
408
417
430int net_unix_send(UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size);
431
440void net_unix_set_addr(UNIXSOCKETADDR *addr, const char *path);
441
449void net_unix_close(UNIXSOCKET sock);
450#endif
451
452#endif
int net_host_lookup(const char *hostname, NETADDR *addr, int types)
Definition net.cpp:609
int net_addr_from_url(NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size)
Definition net.cpp:364
const NETADDR NETADDR_ZEROED
Definition net.cpp:120
int net_addr_comp_noport(const NETADDR *a, const NETADDR *b)
Definition net.cpp:203
int net_addr_from_str(NETADDR *addr, const char *string)
Definition net.cpp:427
int net_addr_comp(const NETADDR *a, const NETADDR *b)
Definition net.cpp:165
bool net_addr_is_local(const NETADDR *addr)
Definition net.cpp:413
void net_addr_str(const NETADDR *addr, char *string, int max_length, bool add_port)
Definition net.cpp:280
int net_would_block()
Definition net.cpp:714
int net_set_non_blocking(NETSOCKET sock)
Definition net.cpp:704
int net_socket_type(NETSOCKET sock)
Definition net.cpp:671
int net_errno()
Definition net.cpp:646
void net_stats(NETSTATS *stats)
Definition net.cpp:666
int net_set_blocking(NETSOCKET sock)
Definition net.cpp:709
std::string net_error_message()
Definition net.cpp:655
void net_init()
Definition net.cpp:635
int net_socket_read_wait(NETSOCKET sock, std::chrono::nanoseconds nanoseconds)
Definition net.cpp:723
struct NETSOCKET_INTERNAL * NETSOCKET
Definition types.h:109
int net_tcp_connect_non_blocking(NETSOCKET sock, NETADDR bindaddr)
Definition net.cpp:1336
int net_tcp_listen(NETSOCKET sock, int backlog)
Definition net.cpp:1257
int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *addr)
Definition net.cpp:1271
int net_tcp_connect(NETSOCKET sock, const NETADDR *addr)
Definition net.cpp:1313
NETSOCKET net_tcp_create(NETADDR bindaddr)
Definition net.cpp:1219
int net_tcp_send(NETSOCKET sock, const void *data, int size)
Definition net.cpp:1344
int net_tcp_recv(NETSOCKET sock, void *data, int maxsize)
Definition net.cpp:1360
void net_tcp_close(NETSOCKET sock)
Definition net.cpp:1376
NETSOCKET net_udp_create(NETADDR bindaddr)
Definition net.cpp:900
void net_udp_close(NETSOCKET sock)
Definition net.cpp:1214
int net_udp_send(NETSOCKET sock, const NETADDR *addr, const void *data, int size)
Definition net.cpp:1010
int net_udp_recv(NETSOCKET sock, NETADDR *addr, unsigned char **data)
Definition net.cpp:1113
int net_unix_send(UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size)
Definition net.cpp:1387
int UNIXSOCKET
Definition net.h:42
void net_unix_set_addr(UNIXSOCKETADDR *addr, const char *path)
Definition net.cpp:1392
struct sockaddr_un UNIXSOCKETADDR
Definition net.h:47
UNIXSOCKET net_unix_create_unnamed()
Definition net.cpp:1382
void net_unix_close(UNIXSOCKET sock)
Definition net.cpp:1399
Definition types.h:168
Definition types.h:191