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. | |
| 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). | |
| void | GNUNET_NETWORK_unix_precheck (const struct sockaddr_un *un) |
| If services crash, they can leave a unix domain socket file on the disk. | |
| 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. | |
| struct GNUNET_NETWORK_Handle * | GNUNET_NETWORK_socket_box_native (int fd) |
| Box a native socket (and check that it is a socket). | |
| 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. | |
| 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. | |
| enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_close (struct GNUNET_NETWORK_Handle *desc) |
| Close a socket. | |
| void | GNUNET_NETWORK_socket_free_memory_only_ (struct GNUNET_NETWORK_Handle *desc) |
| Only free memory of a socket, keep the file descriptor untouched. | |
| 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. | |
| 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. | |
| enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_listen (const struct GNUNET_NETWORK_Handle *desc, int backlog) |
| Listen on a socket. | |
| ssize_t | GNUNET_NETWORK_socket_recvfrom_amount (const struct GNUNET_NETWORK_Handle *desc) |
| How much data is available to be read on this descriptor? | |
| 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). | |
| 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). | |
| 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. | |
| ssize_t | GNUNET_NETWORK_socket_send (const struct GNUNET_NETWORK_Handle *desc, const void *buffer, size_t length) |
| Send data (always non-blocking). | |
| 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). | |
| 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. | |
| enum GNUNET_GenericReturnValue | GNUNET_NETWORK_socket_shutdown (struct GNUNET_NETWORK_Handle *desc, int how) |
| Shut down socket operations. | |
| 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. | |
| struct GNUNET_NETWORK_Handle * | GNUNET_NETWORK_socket_create (int domain, int type, int protocol) |
| Create a new socket. | |
| void | GNUNET_NETWORK_fdset_zero (struct GNUNET_NETWORK_FDSet *fds) |
| Reset FD set (clears all file descriptors). | |
| void | GNUNET_NETWORK_fdset_set (struct GNUNET_NETWORK_FDSet *fds, const struct GNUNET_NETWORK_Handle *desc) |
| Add a socket to the FD set. | |
| 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. | |
| 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). | |
| void | GNUNET_NETWORK_fdset_copy (struct GNUNET_NETWORK_FDSet *to, const struct GNUNET_NETWORK_FDSet *from) |
| Copy one fd set to another. | |
| int | GNUNET_NETWORK_get_fd (const struct GNUNET_NETWORK_Handle *desc) |
| Return file descriptor for this network handle. | |
| struct sockaddr * | GNUNET_NETWORK_get_addr (const struct GNUNET_NETWORK_Handle *desc) |
| Return the sockaddr for this network handle. | |
| socklen_t | GNUNET_NETWORK_get_addrlen (const struct GNUNET_NETWORK_Handle *desc) |
| Return sockaddr length for this network handle. | |
| 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. | |
| void | GNUNET_NETWORK_fdset_set_native (struct GNUNET_NETWORK_FDSet *to, int nfd) |
| Set a native fd in a set. | |
| int | GNUNET_NETWORK_fdset_test_native (const struct GNUNET_NETWORK_FDSet *to, int nfd) |
| Test native fd in a set. | |
| 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. | |
| 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. | |
| 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. | |
| int | GNUNET_NETWORK_fdset_overlap (const struct GNUNET_NETWORK_FDSet *fds1, const struct GNUNET_NETWORK_FDSet *fds2) |
| Checks if two fd sets overlap. | |
| struct GNUNET_NETWORK_FDSet * | GNUNET_NETWORK_fdset_create (void) |
| Creates an fd set. | |
| void | GNUNET_NETWORK_fdset_destroy (struct GNUNET_NETWORK_FDSet *fds) |
| Releases the associated memory of an fd set. | |
| int | GNUNET_NETWORK_test_port_free (int ipproto, uint16_t port) |
| Test if the given port is available. | |
Basic low-level networking interface.
Definition in file gnunet_network_lib.h.