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:604
int net_addr_from_url(NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size)
Definition net.cpp:359
const NETADDR NETADDR_ZEROED
Definition net.cpp:115
int net_addr_comp_noport(const NETADDR *a, const NETADDR *b)
Definition net.cpp:198
int net_addr_from_str(NETADDR *addr, const char *string)
Definition net.cpp:422
int net_addr_comp(const NETADDR *a, const NETADDR *b)
Definition net.cpp:160
bool net_addr_is_local(const NETADDR *addr)
Definition net.cpp:408
void net_addr_str(const NETADDR *addr, char *string, int max_length, bool add_port)
Definition net.cpp:275
int net_would_block()
Definition net.cpp:709
int net_set_non_blocking(NETSOCKET sock)
Definition net.cpp:699
int net_socket_type(NETSOCKET sock)
Definition net.cpp:666
int net_errno()
Definition net.cpp:641
void net_stats(NETSTATS *stats)
Definition net.cpp:661
int net_set_blocking(NETSOCKET sock)
Definition net.cpp:704
std::string net_error_message()
Definition net.cpp:650
void net_init()
Definition net.cpp:630
int net_socket_read_wait(NETSOCKET sock, std::chrono::nanoseconds nanoseconds)
Definition net.cpp:718
struct NETSOCKET_INTERNAL * NETSOCKET
Definition types.h:56
int net_tcp_connect_non_blocking(NETSOCKET sock, NETADDR bindaddr)
Definition net.cpp:1331
int net_tcp_listen(NETSOCKET sock, int backlog)
Definition net.cpp:1252
int net_tcp_accept(NETSOCKET sock, NETSOCKET *new_sock, NETADDR *addr)
Definition net.cpp:1266
int net_tcp_connect(NETSOCKET sock, const NETADDR *addr)
Definition net.cpp:1308
NETSOCKET net_tcp_create(NETADDR bindaddr)
Definition net.cpp:1214
int net_tcp_send(NETSOCKET sock, const void *data, int size)
Definition net.cpp:1339
int net_tcp_recv(NETSOCKET sock, void *data, int maxsize)
Definition net.cpp:1355
void net_tcp_close(NETSOCKET sock)
Definition net.cpp:1371
NETSOCKET net_udp_create(NETADDR bindaddr)
Definition net.cpp:895
void net_udp_close(NETSOCKET sock)
Definition net.cpp:1209
int net_udp_send(NETSOCKET sock, const NETADDR *addr, const void *data, int size)
Definition net.cpp:1005
int net_udp_recv(NETSOCKET sock, NETADDR *addr, unsigned char **data)
Definition net.cpp:1108
int net_unix_send(UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size)
Definition net.cpp:1382
int UNIXSOCKET
Definition net.h:42
void net_unix_set_addr(UNIXSOCKETADDR *addr, const char *path)
Definition net.cpp:1387
struct sockaddr_un UNIXSOCKETADDR
Definition net.h:47
UNIXSOCKET net_unix_create_unnamed()
Definition net.cpp:1377
void net_unix_close(UNIXSOCKET sock)
Definition net.cpp:1394
Definition types.h:114
Definition types.h:134