bglibs
|
IP socket functions | |
int | socket_tcp4 (void) |
int | socket_tcp6 (void) |
int | socket_tcp (void) |
int | socket_udp4 (void) |
int | socket_udp6 (void) |
int | socket_udp (void) |
int | socket_connect4 (int sock, const ipv4addr *ip, ipv4port port) |
int | socket_connect4_timeout (int sock, const ipv4addr *ip, ipv4port port, int timeout) |
int | socket_connect6 (int sock, const ipv6addr *ip, ipv6port port) |
int | socket_connect6_timeout (int sock, const ipv6addr *ip, ipv6port port, int timeout) |
int | socket_bind4 (int sock, const ipv4addr *ip, ipv4port port) |
int | socket_bind6 (int sock, const ipv6addr *ip, ipv6port port) |
int | socket_accept4 (int sock, ipv4addr *ip, ipv4port *port) |
int | socket_accept6 (int sock, ipv6addr *ip, ipv6port *port) |
int | socket_recv4 (int sock, char *buffer, unsigned buflen, ipv4addr *ip, ipv4port *port) |
int | socket_recv6 (int sock, char *buffer, unsigned buflen, ipv6addr *ip, ipv6port *port) |
int | socket_send4 (int sock, const char *buffer, unsigned buflen, const ipv4addr *ip, ipv4port port) |
int | socket_send6 (int sock, const char *buffer, unsigned buflen, const ipv6addr *ip, ipv6port port) |
int | socket_getaddr4 (int sock, ipv4addr *ip, ipv4port *port) |
int | socket_getaddr6 (int sock, ipv6addr *ip, ipv6port *port) |
int | socket_cork (int sock) |
int | socket_uncork (int sock) |
int | socket_notcpdelay (int sock, int enable) |
UNIX local-domain socket functions | |
int | socket_unixdgm (void) |
int | socket_unixstr (void) |
int | socket_connectu (int sock, const char *path) |
int | socket_connectu_timeout (int sock, const char *path, int timeout) |
int | socket_bindu (int sock, const char *path) |
int | socket_acceptu (int sock) |
int | socket_recvu (int sock, char *buffer, unsigned buflen) |
int | socket_sendu (int sock, const char *buffer, unsigned buflen) |
int | socket_pairstr (int fd[2]) |
int | socket_pairdgm (int fd[2]) |
Functions for any type of socket | |
int | socket_broadcast (int sock) |
int | socket_connected (int sock) |
int | socket_linger (int fd, int onoff, int seconds) |
int | socket_listen (int sock, int backlog) |
int | socket_reuse (int sock) |
int | socket_shutdown (int sock, int shut_rd, int shut_wr) |
int | socket_sendfd (int sock, int fd) |
int | socket_recvfd (int sock) |
When calling a socket function, the socket file descriptor (where required) will always be the first parameter. Functions that return a file descriptor (either creating a new socket or accepting a connection on a socket return that file descriptor on success or -1
on error. All other functions return non-zero (true) on success or 0
(false) on error. All functions set errno on error.
Accept a connection on a socket from an IPv4 address.
References ipv4addr::addr.
Accept a connection on a socket from an IPv6 address.
References ipv6addr::addr.
int socket_acceptu | ( | int | sock | ) |
Accept a UNIX domain connection.
Bind a socket to an IPv4 address.
References ipv4addr::addr.
Referenced by dns_transmit_free(), and socket_connect4().
Bind a socket to an IPv6 address.
References ipv6addr::addr.
int socket_bindu | ( | int | sock, |
const char * | path | ||
) |
Bind a UNIX domain address (path) to a socket.
int socket_broadcast | ( | int | fd | ) |
Mark a socket for broadcast transmission.
Connect a socket to an IPv4 address.
References ipv4addr::addr, IPV4ADDR_ANY, IPV4ADDR_LOOPBACK, socket_bind4(), socket_listen(), socket_reuse(), and socket_tcp4().
Referenced by dns_transmit_free(), and socket_connect4_timeout().
Connect a socket to an IPv4 address, honouring a timeout.
References socket_connect4(), and socket_connected().
Connect a socket to an IPv6 address.
References ipv6addr::addr.
Referenced by socket_connect6_timeout().
Connect a socket to an IPv6 address, honouring a timeout.
References socket_connect6(), and socket_connected().
int socket_connected | ( | int | sock | ) |
Test if a socket is connected.
Referenced by dns_transmit_get(), socket_connect4_timeout(), socket_connect6_timeout(), and socket_connectu_timeout().
int socket_connectu | ( | int | sock, |
const char * | path | ||
) |
Make an UNIX domain connection.
Referenced by socket_connectu_timeout().
int socket_connectu_timeout | ( | int | sock, |
const char * | path, | ||
int | timeout | ||
) |
Connect a socket to an UNIX domain address, honouring a timeout.
References socket_connected(), and socket_connectu().
int socket_cork | ( | int | sock | ) |
Stop a TCP socket from sending short writes.
Several UNIX OS's have a facility which can prevent packets from being sent across the wire until they are completely full, even if short writes are sent to the socket that would normally result in output packets. This routine attempts to enable that facility to optimize throughput for bulk data transfers. It is known to work on Linux (with the TCP_CORK
option) and to at least compile on BSD (with the TCP_NOPUSH
option). On OS's which lack either of these two options, this function is essentially a no-op.
Determine the IPv4 address of a socket.
References ipv4addr::addr.
Determine the IPv6 address of a socket.
References ipv6addr::addr.
int socket_linger | ( | int | fd, |
int | onoff, | ||
int | seconds | ||
) |
Set the socket "linger" option.
int socket_listen | ( | int | sock, |
int | backlog | ||
) |
Listen to a socket.
Referenced by socket_connect4().
int socket_notcpdelay | ( | int | fd, |
int | on | ||
) |
Turn on or off TCP NODELAY flag.
Enabling NODELAY disables the standard Nagle algorithm, which tries to coalesce multiple short writes into one larger packet for better network efficiency. With NODELAY enabled, each write will immediately be sent out onto the network as a seperate packet.
int socket_pairdgm | ( | int | fd[2] | ) |
Create a pair of datagram sockets.
int socket_pairstr | ( | int | fd[2] | ) |
Create a pair of stream sockets.
Receive a datagram from a UDP socket.
References ipv4addr::addr.
Receive a datagram from an IPv6 UDP socket.
References ipv6addr::addr.
int socket_recvfd | ( | int | sock | ) |
Receive a file descriptor over a socket.
int socket_recvu | ( | int | sock, |
char * | buffer, | ||
unsigned | buflen | ||
) |
Receive a datagram from a UNIX domain socket.
int socket_reuse | ( | int | fd | ) |
Mark a socket for address reuse.
Referenced by socket_connect4().
int socket_send4 | ( | int | sock, |
const char * | buffer, | ||
unsigned | buflen, | ||
const ipv4addr * | ip, | ||
ipv4port | port | ||
) |
Send a datagram on a UDP socket.
References ipv4addr::addr.
int socket_send6 | ( | int | sock, |
const char * | buffer, | ||
unsigned | buflen, | ||
const ipv6addr * | ip, | ||
ipv6port | port | ||
) |
Send a datagram on an IPv6 UDP socket.
References ipv6addr::addr.
int socket_sendfd | ( | int | sock, |
int | fd | ||
) |
Send a file descriptor over a socket.
int socket_sendu | ( | int | sock, |
const char * | buffer, | ||
unsigned | buflen | ||
) |
Send a datagram on a UNIX domain socket.
int socket_shutdown | ( | int | sock, |
int | shut_rd, | ||
int | shut_wr | ||
) |
Shut down part or all of a socket.
int socket_tcp | ( | void | ) |
int socket_tcp4 | ( | void | ) |
Create a TCP/IPv4 socket.
Referenced by socket_connect4(), and socket_tcp().
int socket_tcp6 | ( | void | ) |
Create a TCP/IPv6 socket.
int socket_udp | ( | void | ) |
int socket_udp4 | ( | void | ) |
Create a UDP/IPv4 socket.
Referenced by socket_udp().
int socket_udp6 | ( | void | ) |
Create a UDP/IPv6 socket.
int socket_uncork | ( | int | sock | ) |
Unstop a TCP socket from sending short writes.
int socket_unixdgm | ( | void | ) |
Create UNIX domain datagram socket.
int socket_unixstr | ( | void | ) |
Create UNIX domain stream socket.