GNU libmicrohttpd 0.9.77
|
#include "mhd_options.h"
#include <errno.h>
#include <fcntl.h>
#include "mhd_limits.h"
#include "sysfdsetsize.h"
#include <stdio.h>
#include <stdlib.h>
Go to the source code of this file.
Typedefs | |
typedef int | MHD_socket |
typedef int | MHD_SCKT_OPT_BOOL_ |
typedef size_t | MHD_SCKT_SEND_SIZE_ |
Functions | |
int | MHD_add_to_fd_set_ (MHD_socket fd, fd_set *set, MHD_socket *max_fd, unsigned int fd_setsize) |
int | MHD_socket_nonblocking_ (MHD_socket sock) |
int | MHD_socket_set_nodelay_ (MHD_socket sock, bool on) |
int | MHD_socket_noninheritable_ (MHD_socket sock) |
MHD_socket | MHD_socket_create_listen_ (int pf) |
#define _MHD_SYS_DEFAULT_FD_SETSIZE get_system_fdsetsize_value () |
Definition at line 139 of file mhd_sockets.h.
#define MHD_INVALID_SOCKET (-1) |
Definition at line 159 of file mhd_sockets.h.
#define MHD_PANIC | ( | msg | ) |
Definition at line 146 of file mhd_sockets.h.
#define MHD_POSIX_SOCKETS 1 |
Definition at line 56 of file mhd_sockets.h.
#define MHD_recv_ | ( | s, | |
b, | |||
l | |||
) | ((ssize_t) recv ((s),(void*) (b),(MHD_SCKT_SEND_SIZE_) (l), 0)) |
MHD_recv_ is wrapper for system's recv()
s | the socket to use |
b | the buffer for data to receive |
l | the length of b |
Definition at line 379 of file mhd_sockets.h.
Add FD to fd_set with specified FD_SETSIZE.
fd | the fd to add |
pset | the valid pointer to fd_set. |
setsize | the value of FD_SETSIZE. |
Definition at line 422 of file mhd_sockets.h.
#define MHD_SCKT_EACCESS_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 599 of file mhd_sockets.h.
#define MHD_SCKT_EAGAIN_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 502 of file mhd_sockets.h.
#define MHD_SCKT_EALREADY_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 609 of file mhd_sockets.h.
#define MHD_SCKT_EBADF_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 554 of file mhd_sockets.h.
#define MHD_SCKT_ECONNABORTED_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 524 of file mhd_sockets.h.
#define MHD_SCKT_ECONNRESET_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 519 of file mhd_sockets.h.
#define MHD_SCKT_EFAUL_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 574 of file mhd_sockets.h.
#define MHD_SCKT_EINPROGRESS_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 614 of file mhd_sockets.h.
#define MHD_SCKT_EINTR_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 514 of file mhd_sockets.h.
#define MHD_SCKT_EINVAL_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 564 of file mhd_sockets.h.
#define MHD_SCKT_EISCONN_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 619 of file mhd_sockets.h.
#define MHD_SCKT_EMFILE_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 534 of file mhd_sockets.h.
#define MHD_SCKT_ENETDOWN_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 604 of file mhd_sockets.h.
#define MHD_SCKT_ENFILE_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 539 of file mhd_sockets.h.
#define MHD_SCKT_ENOBUFS_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 549 of file mhd_sockets.h.
#define MHD_SCKT_ENOMEM_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 544 of file mhd_sockets.h.
#define MHD_SCKT_ENOPROTOOPT_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 584 of file mhd_sockets.h.
#define MHD_SCKT_ENOSYS_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 579 of file mhd_sockets.h.
#define MHD_SCKT_ENOTCONN_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 529 of file mhd_sockets.h.
#define MHD_SCKT_ENOTSOCK_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 559 of file mhd_sockets.h.
#define MHD_SCKT_ENOTSUP_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 589 of file mhd_sockets.h.
#define MHD_SCKT_EOPNOTSUPP_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 594 of file mhd_sockets.h.
#define MHD_SCKT_EPIPE_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 569 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_ | ( | err, | |
code | |||
) | ( (MHD_SCKT_MISSING_ERR_CODE_ != (code)) && ((code) == (err)) ) |
Check whether given socket error is equal to specified system native MHD_SCKT_E*_ code. If platform don't have specific error code, result is always boolean false.
Definition at line 741 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_DISCNN_BEFORE_ACCEPT_ | ( | err | ) | MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ECONNABORTED_) |
Check whether is given socket error is type of "incoming connection was disconnected before 'accept()' is called".
Definition at line 798 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_EAGAIN_ | ( | err | ) | MHD_SCKT_ERR_IS_ ((err),MHD_SCKT_EAGAIN_) |
Check whether given socket error is equal to system's socket error codes for EAGAIN or EWOULDBLOCK.
Definition at line 773 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_EINTR_ | ( | err | ) | MHD_SCKT_ERR_IS_ ((err),MHD_SCKT_EINTR_) |
Check whether given socket error is equal to system's socket error codes for EINTR.
Definition at line 764 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_LOW_RESOURCES_ | ( | err | ) |
Check whether given socket error is any kind of "low resource" error.
Definition at line 785 of file mhd_sockets.h.
#define MHD_SCKT_ERR_IS_REMOTE_DISCNN_ | ( | err | ) |
Check whether is given socket error is type of "connection was terminated by remote side".
Definition at line 811 of file mhd_sockets.h.
#define MHD_SCKT_EWOULDBLOCK_ MHD_SCKT_MISSING_ERR_CODE_ |
Definition at line 509 of file mhd_sockets.h.
#define MHD_SCKT_FD_FITS_FDSET_ | ( | fd, | |
pset | |||
) | MHD_SCKT_FD_FITS_FDSET_SETSIZE_ ((fd), (pset), FD_SETSIZE) |
Check whether FD can be added to fd_set with current FD_SETSIZE.
fd | the fd to check |
pset | the pointer to fd_set to check or NULL to check whether FD can be used with fd_sets. |
Definition at line 410 of file mhd_sockets.h.
#define MHD_SCKT_FD_FITS_FDSET_SETSIZE_ | ( | fd, | |
pset, | |||
setsize | |||
) | ((fd) < ((MHD_socket) setsize)) |
Check whether FD can be added to fd_set with specified FD_SETSIZE.
fd | the fd to check |
pset | the pointer to fd_set to check or NULL to check whether FD can be used with fd_sets. |
setsize | the value of FD_SETSIZE. |
Definition at line 393 of file mhd_sockets.h.
#define MHD_SCKT_LAST_ERR_IS_ | ( | code | ) | MHD_SCKT_ERR_IS_ (MHD_socket_get_error_ (), (code)) |
Check whether last socket error is equal to specified system native MHD_SCKT_E*_ code. If platform don't have specific error code, result is always boolean false.
Definition at line 753 of file mhd_sockets.h.
#define MHD_SCKT_MISSING_ERR_CODE_ 31450 |
Definition at line 494 of file mhd_sockets.h.
#define MHD_SCKT_SEND_MAX_SIZE_ SSIZE_MAX |
MHD_SCKT_SEND_MAX_SIZE_ is maximum send()/recv() size value.
Definition at line 317 of file mhd_sockets.h.
#define MHD_send4_ | ( | s, | |
b, | |||
l, | |||
f | |||
) |
MHD_send4_ is a wrapper for system's send()
s | the socket to use |
b | the buffer with data to send |
l | the length of data in b |
f | the additional flags |
Definition at line 357 of file mhd_sockets.h.
#define MHD_send_ | ( | s, | |
b, | |||
l | |||
) | MHD_send4_((s),(b),(l), 0) |
MHD_send_ is a simple wrapper for system's send()
s | the socket to use |
b | the buffer with data to send |
l | the length of data in b |
Definition at line 369 of file mhd_sockets.h.
#define MHD_SEND_SPIPE_SUPPRESS_NEEDED 1 |
Indicate that suppression of SIGPIPE is required.
Definition at line 942 of file mhd_sockets.h.
MHD_socket_close_(fd) close any FDs (non-W32) / close only socket FDs (W32). Note that on HP-UNIX, this function may leak the FD if errno is set to EINTR. Do not use HP-UNIX.
fd | descriptor to close |
Definition at line 333 of file mhd_sockets.h.
#define MHD_socket_close_chk_ | ( | fd | ) |
MHD_socket_close_chk_(fd) close socket and abort execution if error is detected.
fd | socket to close |
Definition at line 343 of file mhd_sockets.h.
#define MHD_SOCKET_DEFINED 1 |
Definition at line 165 of file mhd_sockets.h.
#define MHD_socket_fset_error_ | ( | err | ) | (errno = (err)) |
MHD_socket_fset_error_() set socket system native error code.
Definition at line 685 of file mhd_sockets.h.
#define MHD_socket_get_error_ | ( | ) | (errno) |
MHD_socket_error_ return system native error code for last socket error.
Definition at line 653 of file mhd_sockets.h.
#define MHD_socket_last_strerr_ | ( | ) | MHD_socket_strerr_ (MHD_socket_get_error_ ()) |
Definition at line 679 of file mhd_sockets.h.
#define MHD_socket_set_error_ | ( | err | ) | (errno = (err)) |
MHD_socket_set_error_() set socket system native error code to specified code or replacement code if specified code is not defined on system.
Definition at line 724 of file mhd_sockets.h.
#define MHD_socket_set_error_to_ENOMEM | ( | ) |
Set socket's error code to ENOMEM or equivalent if ENOMEM is not available on platform.
Definition at line 830 of file mhd_sockets.h.
#define MHD_socket_strerr_ | ( | err | ) | strerror ((err)) |
Definition at line 672 of file mhd_sockets.h.
#define MHD_socket_try_set_error_ | ( | err | ) |
MHD_socket_try_set_error_() set socket system native error code if specified code is defined on system.
Definition at line 698 of file mhd_sockets.h.
#define MHD_SYS_select_ | ( | n, | |
r, | |||
w, | |||
e, | |||
t | |||
) | select ((n),(r),(w),(e),(t)) |
Definition at line 436 of file mhd_sockets.h.
#define MSG_NOSIGNAL_OR_ZERO 0 |
Definition at line 189 of file mhd_sockets.h.
#define SOCK_CLOEXEC_OR_ZERO 0 |
Definition at line 171 of file mhd_sockets.h.
#define SOCK_NONBLOCK_OR_ZERO 0 |
Definition at line 177 of file mhd_sockets.h.
#define SOCK_NOSIGPIPE_OR_ZERO 0 |
Definition at line 183 of file mhd_sockets.h.
typedef int MHD_SCKT_OPT_BOOL_ |
MHD_SCKT_OPT_BOOL_ is type for bool parameters for setsockopt()/getsockopt()
Definition at line 298 of file mhd_sockets.h.
typedef size_t MHD_SCKT_SEND_SIZE_ |
MHD_SCKT_SEND_SIZE_ is type used to specify size for send and recv functions
Definition at line 308 of file mhd_sockets.h.
typedef int MHD_socket |
MHD_socket is type for socket FDs
Definition at line 158 of file mhd_sockets.h.
int MHD_add_to_fd_set_ | ( | MHD_socket | fd, |
fd_set * | set, | ||
MHD_socket * | max_fd, | ||
unsigned int | fd_setsize | ||
) |
Add fd to the set. If fd is greater than max_fd, set max_fd to fd.
fd | file descriptor to add to the set |
set | set to modify |
max_fd | maximum value to potentially update |
fd_setsize | value of FD_SETSIZE |
Definition at line 377 of file mhd_sockets.c.
References fd, MHD_INVALID_SOCKET, MHD_SCKT_ADD_FD_TO_FDSET_SETSIZE_, MHD_SCKT_FD_FITS_FDSET_SETSIZE_, and NULL.
Referenced by internal_get_fdset2(), internal_get_fdset2(), MHD_daemon_get_fdset2(), MHD_daemon_select_(), MHD_get_fdset2(), MHD_select(), and thread_main_handle_connection().
MHD_socket MHD_socket_create_listen_ | ( | int | pf | ) |
Create a listen socket, with noninheritable flag if possible.
pf | protocol family to use |
Definition at line 474 of file mhd_sockets.c.
References fd, MHD_INVALID_SOCKET, MHD_socket_close_, MHD_socket_fset_error_, MHD_socket_get_error_, MHD_socket_noninheritable_(), MSG_NOSIGNAL_OR_ZERO, NULL, SOCK_CLOEXEC_OR_ZERO, and SOCK_NOSIGPIPE_OR_ZERO.
Referenced by MHD_start_daemon_va(), and open_listen_socket().
int MHD_socket_nonblocking_ | ( | MHD_socket | sock | ) |
Change socket options to be non-blocking.
sock | socket to manipulate |
Definition at line 407 of file mhd_sockets.c.
Referenced by MHD_accept_connection(), MHD_accept_connection_(), MHD_add_connection(), MHD_daemon_add_connection(), MHD_daemon_start(), and MHD_start_daemon_va().
int MHD_socket_noninheritable_ | ( | MHD_socket | sock | ) |
Change socket options to be non-inheritable.
sock | socket to manipulate |
Definition at line 442 of file mhd_sockets.c.
Referenced by MHD_accept_connection(), MHD_accept_connection_(), MHD_add_connection(), MHD_daemon_add_connection(), and MHD_socket_create_listen_().
int MHD_socket_set_nodelay_ | ( | MHD_socket | sock, |
bool | on | ||
) |
Disable Nagle's algorithm on sock. This is what we do by default for all TCP sockets in MHD, unless the platform does not support the MSG_MORE or MSG_CORK or MSG_NOPUSH options.
sock | socket to manipulate |
on | value to use |
Definition at line 481 of file mhd_sockets.c.