DDraceNetwork Documentation
Loading...
Searching...
No Matches
system.cpp File Reference
#include "system.h"
#include "logger.h"
#include "windows.h"
#include <atomic>
#include <chrono>
#include <cmath>
#include <cstring>
#include <iterator>
#include <mutex>
#include <string_view>
#include <sys/stat.h>
#include <sys/time.h>
#include <unistd.h>
#include <arpa/inet.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
#include <cerrno>
Include dependency graph for system.cpp:

Classes

struct  NETSOCKET_BUFFER
struct  NETSOCKET_INTERNAL

Macros

#define VLEN   128
#define PACKETSIZE   1400

Functions

void net_buffer_init (NETSOCKET_BUFFER *buffer)
void net_buffer_reinit (NETSOCKET_BUFFER *buffer)
void net_buffer_simple (NETSOCKET_BUFFER *buffer, char **buf, int *size)
static void netaddr_to_sockaddr_in (const NETADDR *src, sockaddr_in *dest)
static void netaddr_to_sockaddr_in6 (const NETADDR *src, sockaddr_in6 *dest)
static void sockaddr_to_netaddr (const sockaddr *src, socklen_t src_len, NETADDR *dst)
int net_addr_comp (const NETADDR *a, const NETADDR *b)
int net_addr_comp_noport (const NETADDR *a, const NETADDR *b)
void net_addr_str_v6 (const unsigned short ip[8], int port, char *buffer, int buffer_size)
void net_addr_str (const NETADDR *addr, char *string, int max_length, bool add_port)
static int priv_net_extract (const char *hostname, char *host, int max_host, int *port)
static int net_host_lookup_fallback (const char *hostname, NETADDR *addr, int types, int port)
static int net_host_lookup_impl (const char *hostname, NETADDR *addr, int types)
int net_host_lookup (const char *hostname, NETADDR *addr, int types)
static int parse_int (int *out, const char **str)
static int parse_char (char c, const char **str)
static int parse_uint8 (unsigned char *out, const char **str)
static int parse_uint16 (unsigned short *out, const char **str)
int net_addr_from_url (NETADDR *addr, const char *string, char *host_buf, size_t host_buf_size)
bool net_addr_is_local (const NETADDR *addr)
int net_addr_from_str (NETADDR *addr, const char *string)
static void priv_net_close_socket (int sock)
static void priv_net_close_all_sockets (NETSOCKET sock)
static int priv_net_create_socket (int domain, int type, const NETADDR *bindaddr)
int net_socket_type (NETSOCKET sock)
NETSOCKET net_udp_create (NETADDR bindaddr)
int net_udp_send (NETSOCKET sock, const NETADDR *addr, const void *data, int size)
int net_udp_recv (NETSOCKET sock, NETADDR *addr, unsigned char **data)
void net_udp_close (NETSOCKET sock)
NETSOCKET net_tcp_create (NETADDR bindaddr)
static int net_set_blocking_impl (NETSOCKET sock, bool blocking)
int net_set_non_blocking (NETSOCKET sock)
int net_set_blocking (NETSOCKET sock)
int net_tcp_listen (NETSOCKET sock, int backlog)
int net_tcp_accept (NETSOCKET sock, NETSOCKET *new_sock, NETADDR *a)
int net_tcp_connect (NETSOCKET sock, const NETADDR *a)
int net_tcp_connect_non_blocking (NETSOCKET sock, NETADDR bindaddr)
int net_tcp_send (NETSOCKET sock, const void *data, int size)
int net_tcp_recv (NETSOCKET sock, void *data, int maxsize)
void net_tcp_close (NETSOCKET sock)
int net_errno ()
std::string net_error_message ()
int net_would_block ()
void net_init ()
UNIXSOCKET net_unix_create_unnamed ()
int net_unix_send (UNIXSOCKET sock, UNIXSOCKETADDR *addr, void *data, int size)
void net_unix_set_addr (UNIXSOCKETADDR *addr, const char *path)
void net_unix_close (UNIXSOCKET sock)
int net_socket_read_wait (NETSOCKET sock, std::chrono::nanoseconds nanoseconds)
void net_stats (NETSTATS *stats_inout)

Variables

static NETSTATS network_stats = {0}
static NETSOCKET_INTERNAL invalid_socket = {NETTYPE_INVALID, -1, -1, -1, -1}
const NETADDR NETADDR_ZEROED = {NETTYPE_INVALID, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 0}

Macro Definition Documentation

◆ PACKETSIZE

#define PACKETSIZE   1400

◆ VLEN

#define VLEN   128

Function Documentation

◆ net_addr_str_v6()

void net_addr_str_v6 ( const unsigned short ip[8],
int port,
char * buffer,
int buffer_size )

◆ net_buffer_init()

void net_buffer_init ( NETSOCKET_BUFFER * buffer)

◆ net_buffer_reinit()

void net_buffer_reinit ( NETSOCKET_BUFFER * buffer)

◆ net_buffer_simple()

void net_buffer_simple ( NETSOCKET_BUFFER * buffer,
char ** buf,
int * size )

◆ net_host_lookup_fallback()

int net_host_lookup_fallback ( const char * hostname,
NETADDR * addr,
int types,
int port )
static

◆ net_host_lookup_impl()

int net_host_lookup_impl ( const char * hostname,
NETADDR * addr,
int types )
static

◆ net_set_blocking()

int net_set_blocking ( NETSOCKET sock)

Make a socket block on operations.

Parameters
sockThe socket to set the mode on.
Returns
0 on success.

◆ net_set_blocking_impl()

int net_set_blocking_impl ( NETSOCKET sock,
bool blocking )
static

◆ net_stats()

void net_stats ( NETSTATS * stats_inout)

◆ netaddr_to_sockaddr_in()

void netaddr_to_sockaddr_in ( const NETADDR * src,
sockaddr_in * dest )
static

◆ netaddr_to_sockaddr_in6()

void netaddr_to_sockaddr_in6 ( const NETADDR * src,
sockaddr_in6 * dest )
static

◆ parse_char()

int parse_char ( char c,
const char ** str )
static

◆ parse_int()

int parse_int ( int * out,
const char ** str )
static

◆ parse_uint16()

int parse_uint16 ( unsigned short * out,
const char ** str )
static

◆ parse_uint8()

int parse_uint8 ( unsigned char * out,
const char ** str )
static

◆ priv_net_close_all_sockets()

void priv_net_close_all_sockets ( NETSOCKET sock)
static

◆ priv_net_close_socket()

void priv_net_close_socket ( int sock)
static

◆ priv_net_create_socket()

int priv_net_create_socket ( int domain,
int type,
const NETADDR * bindaddr )
static

◆ priv_net_extract()

int priv_net_extract ( const char * hostname,
char * host,
int max_host,
int * port )
static

◆ sockaddr_to_netaddr()

void sockaddr_to_netaddr ( const sockaddr * src,
socklen_t src_len,
NETADDR * dst )
static

Variable Documentation

◆ invalid_socket

NETSOCKET_INTERNAL invalid_socket = {NETTYPE_INVALID, -1, -1, -1, -1}
static

◆ network_stats

NETSTATS network_stats = {0}
static