Basic low-level networking interface. More...
#include "gnunet_common.h"
#include <sys/select.h>
#include "gnunet_disk_lib.h"
#include "gnunet_time_lib.h"
Go to the source code of this file.
Data Structures | |
struct | GNUNET_NETWORK_FDSet |
collection of IO descriptors More... | |
Functions | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_test_pf (int pf) |
Test if the given protocol family is supported by this system. More... | |
char * | GNUNET_NETWORK_shorten_unixpath (char *unixpath) |
Given a unixpath that is too long (larger than UNIX_PATH_MAX), shorten it to an acceptable length while keeping it unique and making sure it remains a valid filename (if possible). More... | |
void | GNUNET_NETWORK_unix_precheck (const struct sockaddr_un *un) |
If services crash, they can leave a unix domain socket file on the disk. More... | |
struct GNUNET_NETWORK_Handle * | GNUNET_NETWORK_socket_accept (const struct GNUNET_NETWORK_Handle *desc, struct sockaddr *address, socklen_t *address_len) |
Accept a new connection on a socket. More... | |
struct GNUNET_NETWORK_Handle * | GNUNET_NETWORK_socket_box_native (int fd) |
Box a native socket (and check that it is a socket). More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_set_blocking (struct GNUNET_NETWORK_Handle *fd, int doBlock) |
Set if a socket should use blocking or non-blocking IO. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_bind (struct GNUNET_NETWORK_Handle *desc, const struct sockaddr *address, socklen_t address_len) |
Bind a socket to a particular address. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_close (struct GNUNET_NETWORK_Handle *desc) |
Close a socket. More... | |
void | GNUNET_NETWORK_socket_free_memory_only_ (struct GNUNET_NETWORK_Handle *desc) |
Only free memory of a socket, keep the file descriptor untouched. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_connect (const struct GNUNET_NETWORK_Handle *desc, const struct sockaddr *address, socklen_t address_len) |
Connect a socket to some remote address. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_getsockopt (const struct GNUNET_NETWORK_Handle *desc, int level, int optname, void *optval, socklen_t *optlen) |
Get socket options. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_listen (const struct GNUNET_NETWORK_Handle *desc, int backlog) |
Listen on a socket. More... | |
ssize_t | GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle *desc) |
How much data is available to be read on this descriptor? More... | |
ssize_t | GNUNET_NETWORK_socket_recvfrom (const struct GNUNET_NETWORK_Handle *desc, void *buffer, size_t length, struct sockaddr *src_addr, socklen_t *addrlen) |
Read data from a socket (always non-blocking). More... | |
ssize_t | GNUNET_NETWORK_socket_recv (const struct GNUNET_NETWORK_Handle *desc, void *buffer, size_t length) |
Read data from a connected socket (always non-blocking). More... | |
int | GNUNET_NETWORK_socket_select (struct GNUNET_NETWORK_FDSet *rfds, struct GNUNET_NETWORK_FDSet *wfds, struct GNUNET_NETWORK_FDSet *efds, struct GNUNET_TIME_Relative timeout) |
Check if sockets meet certain conditions. More... | |
ssize_t | GNUNET_NETWORK_socket_send (const struct GNUNET_NETWORK_Handle *desc, const void *buffer, size_t length) |
Send data (always non-blocking). More... | |
ssize_t | GNUNET_NETWORK_socket_sendto (const struct GNUNET_NETWORK_Handle *desc, const void *message, size_t length, const struct sockaddr *dest_addr, socklen_t dest_len) |
Send data to a particular destination (always non-blocking). More... | |
int | GNUNET_NETWORK_socket_setsockopt (struct GNUNET_NETWORK_Handle *fd, int level, int option_name, const void *option_value, socklen_t option_len) |
Set socket option. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_shutdown (struct GNUNET_NETWORK_Handle *desc, int how) |
Shut down socket operations. More... | |
enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_disable_corking (struct GNUNET_NETWORK_Handle *desc) |
Disable the "CORK" feature for communication with the given socket, forcing the OS to immediately flush the buffer on transmission instead of potentially buffering multiple messages. More... | |
struct GNUNET_NETWORK_Handle * | GNUNET_NETWORK_socket_create (int domain, int type, int protocol) |
Create a new socket. More... | |
void | GNUNET_NETWORK_fdset_zero (struct GNUNET_NETWORK_FDSet *fds) |
Reset FD set (clears all file descriptors). More... | |
void | GNUNET_NETWORK_fdset_set (struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_NETWORK_Handle *desc) |
Add a socket to the FD set. More... | |
int | GNUNET_NETWORK_fdset_isset (const struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_NETWORK_Handle *desc) |
Check whether a socket is part of the fd set. More... | |
void | GNUNET_NETWORK_fdset_add (struct GNUNET_NETWORK_FDSet *dst, const struct GNUNET_NETWORK_FDSet *src) |
Add one fd set to another (computes the union). More... | |
void | GNUNET_NETWORK_fdset_copy (struct GNUNET_NETWORK_FDSet *to, const struct GNUNET_NETWORK_FDSet *from) |
Copy one fd set to another. More... | |
int | GNUNET_NETWORK_get_fd (const struct GNUNET_NETWORK_Handle *desc) |
Return file descriptor for this network handle. More... | |
struct sockaddr * | GNUNET_NETWORK_get_addr (const struct GNUNET_NETWORK_Handle *desc) |
Return the sockaddr for this network handle. More... | |
socklen_t | GNUNET_NETWORK_get_addrlen (const struct GNUNET_NETWORK_Handle *desc) |
Return sockaddr length for this network handle. More... | |
void | GNUNET_NETWORK_fdset_copy_native (struct GNUNET_NETWORK_FDSet *to, const fd_set *from, int nfds) |
Copy a native fd set into the GNUnet representation. More... | |
void | GNUNET_NETWORK_fdset_set_native (struct GNUNET_NETWORK_FDSet *to, int nfd) |
Set a native fd in a set. More... | |
int | GNUNET_NETWORK_fdset_test_native (const struct GNUNET_NETWORK_FDSet *to, int nfd) |
Test native fd in a set. More... | |
void | GNUNET_NETWORK_fdset_handle_set (struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_DISK_FileHandle *h) |
Add a file handle to the fd set. More... | |
void | GNUNET_NETWORK_fdset_handle_set_first (struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_DISK_FileHandle *h) |
Add a file handle to the fd set On W32: ensure that the handle is first in the array. More... | |
int | GNUNET_NETWORK_fdset_handle_isset (const struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_DISK_FileHandle *h) |
Check if a file handle is part of an fd set. More... | |
int | GNUNET_NETWORK_fdset_overlap (const struct GNUNET_NETWORK_FDSet *fds1, const struct GNUNET_NETWORK_FDSet *fds2) |
Checks if two fd sets overlap. More... | |
struct GNUNET_NETWORK_FDSet * | GNUNET_NETWORK_fdset_create (void) |
Creates an fd set. More... | |
void | GNUNET_NETWORK_fdset_destroy (struct GNUNET_NETWORK_FDSet *fds) |
Releases the associated memory of an fd set. More... | |
int | GNUNET_NETWORK_test_port_free (int ipproto, uint16_t port) |
Test if the given port is available. More... | |
Basic low-level networking interface.
Definition in file gnunet_network_lib.h.