34 #define MHD_SOCKETS_H 1 48 #if defined(_MSC_FULL_VER) && ! defined(_SSIZE_T_DEFINED) 50 # define _SSIZE_T_DEFINED 51 typedef intptr_t ssize_t;
54 #if ! defined(MHD_POSIX_SOCKETS) && ! defined(MHD_WINSOCK_SOCKETS) 55 # if ! defined(_WIN32) || defined(__CYGWIN__) 56 # define MHD_POSIX_SOCKETS 1 58 # define MHD_WINSOCK_SOCKETS 1 69 #if defined(MHD_POSIX_SOCKETS) 70 # ifdef HAVE_SYS_TYPES_H 71 # include <sys/types.h> 73 # ifdef HAVE_SYS_TIME_H 74 # include <sys/time.h> 82 # ifdef HAVE_SYS_SOCKET_H 83 # include <sys/socket.h> 85 # if defined(__VXWORKS__) || defined(__vxworks) || defined(OS_VXWORKS) 87 # ifdef HAVE_SOCKLIB_H 90 # ifdef HAVE_INETLIB_H 94 # ifdef HAVE_NETINET_IN_H 95 # include <netinet/in.h> 97 # ifdef HAVE_ARPA_INET_H 98 # include <arpa/inet.h> 100 # ifdef HAVE_NET_IF_H 106 # ifdef HAVE_SYS_SELECT_H 107 # include <sys/select.h> 109 # ifdef EPOLL_SUPPORT 110 # include <sys/epoll.h> 112 # ifdef HAVE_NETINET_TCP_H 114 # include <netinet/tcp.h> 116 #elif defined(MHD_WINSOCK_SOCKETS) 117 # ifndef WIN32_LEAN_AND_MEAN 118 # define WIN32_LEAN_AND_MEAN 1 120 # include <winsock2.h> 121 # include <ws2tcpip.h> 124 #if defined(HAVE_POLL_H) && defined(HAVE_POLL) 129 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) 130 #include <sys/param.h> 135 #ifdef _MHD_FD_SETSIZE_IS_DEFAULT 136 # define _MHD_SYS_DEFAULT_FD_SETSIZE FD_SETSIZE 138 # ifndef MHD_SYS_FD_SETSIZE_ 140 # define _MHD_SYS_DEFAULT_FD_SETSIZE get_system_fdsetsize_value () 142 # define _MHD_SYS_DEFAULT_FD_SETSIZE MHD_SYS_FD_SETSIZE_ 150 # define MHD_PANIC(msg) \ 151 do { fprintf (stderr, \ 152 "Abnormal termination at %d line in file %s: %s\n", \ 153 (int) __LINE__, __FILE__, msg); abort (); \ 157 #ifndef MHD_SOCKET_DEFINED 161 # if defined(MHD_POSIX_SOCKETS) 163 # define MHD_INVALID_SOCKET (-1) 164 # elif defined(MHD_WINSOCK_SOCKETS) 166 # define MHD_INVALID_SOCKET (INVALID_SOCKET) 169 # define MHD_SOCKET_DEFINED 1 173 # define SOCK_CLOEXEC_OR_ZERO SOCK_CLOEXEC 175 # define SOCK_CLOEXEC_OR_ZERO 0 178 #ifdef HAVE_SOCK_NONBLOCK 179 # define SOCK_NONBLOCK_OR_ZERO SOCK_NONBLOCK 181 # define SOCK_NONBLOCK_OR_ZERO 0 184 #ifdef SOCK_NOSIGPIPE 185 # define SOCK_NOSIGPIPE_OR_ZERO SOCK_NOSIGPIPE 187 # define SOCK_NOSIGPIPE_OR_ZERO 0 191 # define MSG_NOSIGNAL_OR_ZERO MSG_NOSIGNAL 193 # define MSG_NOSIGNAL_OR_ZERO 0 196 #if ! defined(SHUT_WR) && defined(SD_SEND) 197 # define SHUT_WR SD_SEND 199 #if ! defined(SHUT_RD) && defined(SD_RECEIVE) 200 # define SHUT_RD SD_RECEIVE 202 #if ! defined(SHUT_RDWR) && defined(SD_BOTH) 203 # define SHUT_RDWR SD_BOTH 206 #if defined(HAVE_ACCEPT4) && (defined(HAVE_SOCK_NONBLOCK) || \ 207 defined(SOCK_CLOEXEC) || defined(SOCK_NOSIGPIPE)) 208 # define USE_ACCEPT4 1 211 #if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || \ 212 defined(__OpenBSD__) || defined(__NetBSD__) || \ 213 defined(MHD_WINSOCK_SOCKETS) || defined(__MACH__) || defined(__sun) || \ 216 #define MHD_ACCEPT_INHERIT_NONBLOCK 1 219 #if defined(HAVE_EPOLL_CREATE1) && defined(EPOLL_CLOEXEC) 220 # define USE_EPOLL_CREATE1 1 227 #define MHD_TCP_FASTOPEN_QUEUE_SIZE_DEFAULT 10 231 #if defined(TCP_CORK) 235 #define MHD_TCP_CORK_NOPUSH TCP_CORK 236 #elif defined(TCP_NOPUSH) 240 #define MHD_TCP_CORK_NOPUSH TCP_NOPUSH 244 #ifdef MHD_TCP_CORK_NOPUSH 249 #define _MHD_CORK_RESET_PUSH_DATA 1 254 #define _MHD_CORK_RESET_PUSH_DATA_ALWAYS 1 256 #if (defined(__FreeBSD__) && \ 257 ((__FreeBSD__ + 0) >= 5 || (__FreeBSD_version + 0) >= 450000)) || \ 258 (defined(__FreeBSD_kernel_version) && \ 259 (__FreeBSD_kernel_version + 0) >= 450000) 265 #define _MHD_CORK_RESET_PUSH_DATA 1 272 #define _MHD_CORK_RESET_PUSH_DATA 1 280 #define _MHD_NODELAY_SET_PUSH_DATA 1 285 #define _MHD_NODELAY_SET_PUSH_DATA_ALWAYS 1 296 #define MHD_USE_MSG_MORE 1 304 #ifdef MHD_POSIX_SOCKETS 314 #if ! defined(MHD_WINSOCK_SOCKETS) 323 #if ! defined(MHD_WINSOCK_SOCKETS) 324 # define MHD_SCKT_SEND_MAX_SIZE_ SSIZE_MAX 326 # define MHD_SCKT_SEND_MAX_SIZE_ INT_MAX 339 #if ! defined(MHD_WINSOCK_SOCKETS) 340 # define MHD_socket_close_(fd) ((0 == close ((fd))) || (EBADF != errno)) 342 # define MHD_socket_close_(fd) (0 == closesocket ((fd))) 350 #define MHD_socket_close_chk_(fd) do { \ 351 if (! MHD_socket_close_ (fd)) \ 352 MHD_PANIC (_ ("Close socket failed.\n")); \ 364 #define MHD_send4_(s,b,l,f) \ 365 ((ssize_t) send ((s),(const void*) (b),(MHD_SCKT_SEND_SIZE_) (l), \ 366 ((MSG_NOSIGNAL_OR_ZERO) | (f)))) 376 #define MHD_send_(s,b,l) MHD_send4_((s),(b),(l), 0) 386 #define MHD_recv_(s,b,l) \ 387 ((ssize_t) recv ((s),(void*) (b),(MHD_SCKT_SEND_SIZE_) (l), 0)) 399 #if defined(MHD_POSIX_SOCKETS) 400 # define MHD_SCKT_FD_FITS_FDSET_SETSIZE_(fd,pset,setsize) \ 401 ((fd) < ((MHD_socket) (setsize))) 402 #elif defined(MHD_WINSOCK_SOCKETS) 403 # define MHD_SCKT_FD_FITS_FDSET_SETSIZE_(fd,pset,setsize) \ 404 ( ((void*) (pset)== (void*) 0) || \ 405 (((fd_set*) (pset))->fd_count < ((unsigned) setsize)) || \ 406 (FD_ISSET ((fd), (pset))) ) 417 #define MHD_SCKT_FD_FITS_FDSET_(fd,pset) \ 418 MHD_SCKT_FD_FITS_FDSET_SETSIZE_ ((fd), (pset), FD_SETSIZE) 428 #if defined(MHD_POSIX_SOCKETS) 429 # define MHD_SCKT_ADD_FD_TO_FDSET_SETSIZE_(fd,pset,setsize) \ 430 FD_SET ((fd), (pset)) 431 #elif defined(MHD_WINSOCK_SOCKETS) 432 # define MHD_SCKT_ADD_FD_TO_FDSET_SETSIZE_(fd,pset,setsize) \ 435 fd_set*const _s_ = (fd_set*) (pset); \ 436 while ((_i_ < _s_->fd_count) && ((fd) != _s_->fd_array [_i_])) {++_i_;} \ 437 if ((_i_ == _s_->fd_count)) {_s_->fd_array [_s_->fd_count ++] = (fd);} \ 442 #if ! defined(MHD_WINSOCK_SOCKETS) 443 # define MHD_SYS_select_(n,r,w,e,t) select ((n),(r),(w),(e),(t)) 445 # define MHD_SYS_select_(n,r,w,e,t) \ 446 ( ( (((void*) (r) == (void*) 0) || ((fd_set*) (r))->fd_count == 0) && \ 447 (((void*) (w) == (void*) 0) || ((fd_set*) (w))->fd_count == 0) && \ 448 (((void*) (e) == (void*) 0) || ((fd_set*) (e))->fd_count == 0) ) ? \ 449 ( ((void*) (t) == (void*) 0) ? 0 : \ 450 (Sleep ((DWORD)((struct timeval*) (t))->tv_sec * 1000 \ 451 + (DWORD)((struct timeval*) (t))->tv_usec / 1000), 0) ) : \ 452 (select ((int) 0,(r),(w),(e),(t))) ) 455 #if defined(HAVE_POLL) 457 # if ! defined(MHD_WINSOCK_SOCKETS) 458 # define MHD_sys_poll_ poll 460 # define MHD_sys_poll_ WSAPoll 464 # define MHD_POLLPRI_OR_ZERO POLLPRI 466 # define MHD_POLLPRI_OR_ZERO 0 469 # define MHD_POLLRDBAND_OR_ZERO POLLRDBAND 471 # define MHD_POLLRDBAND_OR_ZERO 0 474 # define MHD_POLLNVAL_OR_ZERO POLLNVAL 476 # define MHD_POLLNVAL_OR_ZERO 0 481 # if defined(_WIN32) && ! defined(__CYGWIN__) 482 # define MHD_POLL_EVENTS_ERR_DISC POLLRDBAND 483 # elif defined(__linux__) 484 # define MHD_POLL_EVENTS_ERR_DISC POLLPRI 486 # define MHD_POLL_EVENTS_ERR_DISC \ 487 (MHD_POLLPRI_OR_ZERO | MHD_POLLRDBAND_OR_ZERO) 491 # define MHD_POLL_REVENTS_ERR_DISC \ 492 (MHD_POLLPRI_OR_ZERO | MHD_POLLRDBAND_OR_ZERO | MHD_POLLNVAL_OR_ZERO \ 496 # define MHD_POLL_REVENTS_ERRROR \ 497 (MHD_POLLPRI_OR_ZERO | MHD_POLLRDBAND_OR_ZERO | MHD_POLLNVAL_OR_ZERO \ 501 #define MHD_SCKT_MISSING_ERR_CODE_ 31450 503 #if defined(MHD_POSIX_SOCKETS) 505 # define MHD_SCKT_EAGAIN_ EAGAIN 506 # elif defined(EWOULDBLOCK) 507 # define MHD_SCKT_EAGAIN_ EWOULDBLOCK 509 # define MHD_SCKT_EAGAIN_ MHD_SCKT_MISSING_ERR_CODE_ 511 # if defined(EWOULDBLOCK) 512 # define MHD_SCKT_EWOULDBLOCK_ EWOULDBLOCK 513 # elif defined(EAGAIN) 514 # define MHD_SCKT_EWOULDBLOCK_ EAGAIN 516 # define MHD_SCKT_EWOULDBLOCK_ MHD_SCKT_MISSING_ERR_CODE_ 519 # define MHD_SCKT_EINTR_ EINTR 521 # define MHD_SCKT_EINTR_ MHD_SCKT_MISSING_ERR_CODE_ 524 # define MHD_SCKT_ECONNRESET_ ECONNRESET 526 # define MHD_SCKT_ECONNRESET_ MHD_SCKT_MISSING_ERR_CODE_ 529 # define MHD_SCKT_ECONNABORTED_ ECONNABORTED 531 # define MHD_SCKT_ECONNABORTED_ MHD_SCKT_MISSING_ERR_CODE_ 534 # define MHD_SCKT_ENOTCONN_ ENOTCONN 536 # define MHD_SCKT_ENOTCONN_ MHD_SCKT_MISSING_ERR_CODE_ 539 # define MHD_SCKT_EMFILE_ EMFILE 541 # define MHD_SCKT_EMFILE_ MHD_SCKT_MISSING_ERR_CODE_ 544 # define MHD_SCKT_ENFILE_ ENFILE 546 # define MHD_SCKT_ENFILE_ MHD_SCKT_MISSING_ERR_CODE_ 549 # define MHD_SCKT_ENOMEM_ ENOMEM 551 # define MHD_SCKT_ENOMEM_ MHD_SCKT_MISSING_ERR_CODE_ 554 # define MHD_SCKT_ENOBUFS_ ENOBUFS 556 # define MHD_SCKT_ENOBUFS_ MHD_SCKT_MISSING_ERR_CODE_ 559 # define MHD_SCKT_EBADF_ EBADF 561 # define MHD_SCKT_EBADF_ MHD_SCKT_MISSING_ERR_CODE_ 564 # define MHD_SCKT_ENOTSOCK_ ENOTSOCK 566 # define MHD_SCKT_ENOTSOCK_ MHD_SCKT_MISSING_ERR_CODE_ 569 # define MHD_SCKT_EINVAL_ EINVAL 571 # define MHD_SCKT_EINVAL_ MHD_SCKT_MISSING_ERR_CODE_ 574 # define MHD_SCKT_EPIPE_ EPIPE 576 # define MHD_SCKT_EPIPE_ MHD_SCKT_MISSING_ERR_CODE_ 579 # define MHD_SCKT_EFAUL_ EFAULT 581 # define MHD_SCKT_EFAUL_ MHD_SCKT_MISSING_ERR_CODE_ 584 # define MHD_SCKT_ENOSYS_ ENOSYS 586 # define MHD_SCKT_ENOSYS_ MHD_SCKT_MISSING_ERR_CODE_ 589 # define MHD_SCKT_ENOPROTOOPT_ ENOPROTOOPT 591 # define MHD_SCKT_ENOPROTOOPT_ MHD_SCKT_MISSING_ERR_CODE_ 594 # define MHD_SCKT_ENOTSUP_ ENOTSUP 596 # define MHD_SCKT_ENOTSUP_ MHD_SCKT_MISSING_ERR_CODE_ 599 # define MHD_SCKT_EOPNOTSUPP_ EOPNOTSUPP 601 # define MHD_SCKT_EOPNOTSUPP_ MHD_SCKT_MISSING_ERR_CODE_ 604 # define MHD_SCKT_EACCESS_ EACCES 606 # define MHD_SCKT_EACCESS_ MHD_SCKT_MISSING_ERR_CODE_ 609 # define MHD_SCKT_ENETDOWN_ ENETDOWN 611 # define MHD_SCKT_ENETDOWN_ MHD_SCKT_MISSING_ERR_CODE_ 614 # define MHD_SCKT_EALREADY_ EALREADY 616 # define MHD_SCKT_EALREADY_ MHD_SCKT_MISSING_ERR_CODE_ 619 # define MHD_SCKT_EINPROGRESS_ EINPROGRESS 621 # define MHD_SCKT_EINPROGRESS_ MHD_SCKT_MISSING_ERR_CODE_ 624 # define MHD_SCKT_EISCONN_ EISCONN 626 # define MHD_SCKT_EISCONN_ MHD_SCKT_MISSING_ERR_CODE_ 628 #elif defined(MHD_WINSOCK_SOCKETS) 629 # define MHD_SCKT_EAGAIN_ WSAEWOULDBLOCK 630 # define MHD_SCKT_EWOULDBLOCK_ WSAEWOULDBLOCK 631 # define MHD_SCKT_EINTR_ WSAEINTR 632 # define MHD_SCKT_ECONNRESET_ WSAECONNRESET 633 # define MHD_SCKT_ECONNABORTED_ WSAECONNABORTED 634 # define MHD_SCKT_ENOTCONN_ WSAENOTCONN 635 # define MHD_SCKT_EMFILE_ WSAEMFILE 636 # define MHD_SCKT_ENFILE_ MHD_SCKT_MISSING_ERR_CODE_ 637 # define MHD_SCKT_ENOMEM_ MHD_SCKT_MISSING_ERR_CODE_ 638 # define MHD_SCKT_ENOBUFS_ WSAENOBUFS 639 # define MHD_SCKT_EBADF_ WSAEBADF 640 # define MHD_SCKT_ENOTSOCK_ WSAENOTSOCK 641 # define MHD_SCKT_EINVAL_ WSAEINVAL 642 # define MHD_SCKT_EPIPE_ WSAESHUTDOWN 643 # define MHD_SCKT_EFAUL_ WSAEFAULT 644 # define MHD_SCKT_ENOSYS_ MHD_SCKT_MISSING_ERR_CODE_ 645 # define MHD_SCKT_ENOPROTOOPT_ WSAENOPROTOOPT 646 # define MHD_SCKT_ENOTSUP_ MHD_SCKT_MISSING_ERR_CODE_ 647 # define MHD_SCKT_EOPNOTSUPP_ WSAEOPNOTSUPP 648 # define MHD_SCKT_EACCESS_ WSAEACCES 649 # define MHD_SCKT_ENETDOWN_ WSAENETDOWN 650 # define MHD_SCKT_EALREADY_ WSAEALREADY 651 # define MHD_SCKT_EINPROGRESS_ WSAEINPROGRESS 652 # define MHD_SCKT_EISCONN_ WSAEISCONN 659 #if defined(MHD_POSIX_SOCKETS) 660 # define MHD_socket_get_error_() (errno) 661 #elif defined(MHD_WINSOCK_SOCKETS) 662 # define MHD_socket_get_error_() WSAGetLastError () 665 #ifdef MHD_WINSOCK_SOCKETS 673 const char *MHD_W32_strerror_winsock_ (
int err);
678 #if defined(MHD_POSIX_SOCKETS) 679 # define MHD_socket_strerr_(err) strerror ((err)) 680 #elif defined(MHD_WINSOCK_SOCKETS) 681 # define MHD_socket_strerr_(err) MHD_W32_strerror_winsock_ ((err)) 686 #define MHD_socket_last_strerr_() MHD_socket_strerr_ (MHD_socket_get_error_ ()) 691 #if defined(MHD_POSIX_SOCKETS) 692 # define MHD_socket_fset_error_(err) (errno = (err)) 693 #elif defined(MHD_WINSOCK_SOCKETS) 694 # define MHD_socket_fset_error_(err) (WSASetLastError ((err))) 705 #define MHD_socket_try_set_error_(err) \ 706 ( (MHD_SCKT_MISSING_ERR_CODE_ != (err)) ? \ 707 (MHD_socket_fset_error_ ((err)), ! 0) : 0) 714 #if defined(MHD_POSIX_SOCKETS) 716 # define MHD_socket_set_error_(err) ( (MHD_SCKT_MISSING_ERR_CODE_ == (err)) ? \ 717 (errno = ENOSYS) : (errno = (err)) ) 718 # elif defined(EOPNOTSUPP) 719 # define MHD_socket_set_error_(err) ( (MHD_SCKT_MISSING_ERR_CODE_ == (err)) ? \ 720 (errno = EOPNOTSUPP) : (errno = \ 722 # elif defined(EFAULT) 723 # define MHD_socket_set_error_(err) ( (MHD_SCKT_MISSING_ERR_CODE_ == (err)) ? \ 724 (errno = EFAULT) : (errno = (err)) ) 725 # elif defined(EINVAL) 726 # define MHD_socket_set_error_(err) ( (MHD_SCKT_MISSING_ERR_CODE_ == (err)) ? \ 727 (errno = EINVAL) : (errno = (err)) ) 730 No suitable replacement for missing socket error code is found. Edit this file and add replacement code which is defined on system. 731 # define MHD_socket_set_error_(err) (errno = (err)) 733 #elif defined(MHD_WINSOCK_SOCKETS) 734 # define MHD_socket_set_error_(err) ( (MHD_SCKT_MISSING_ERR_CODE_ == (err)) ? \ 735 (WSASetLastError ((WSAEOPNOTSUPP))) : \ 736 (WSASetLastError ((err))) ) 748 #define MHD_SCKT_ERR_IS_(err,code) \ 749 ( (MHD_SCKT_MISSING_ERR_CODE_ != (code)) && ((code) == (err)) ) 760 #define MHD_SCKT_LAST_ERR_IS_(code) \ 761 MHD_SCKT_ERR_IS_ (MHD_socket_get_error_ (), (code)) 771 #define MHD_SCKT_ERR_IS_EINTR_(err) MHD_SCKT_ERR_IS_ ((err),MHD_SCKT_EINTR_) 779 #if MHD_SCKT_EAGAIN_ == MHD_SCKT_EWOULDBLOCK_ 780 # define MHD_SCKT_ERR_IS_EAGAIN_(err) MHD_SCKT_ERR_IS_ ((err),MHD_SCKT_EAGAIN_) 782 # define MHD_SCKT_ERR_IS_EAGAIN_(err) \ 783 ( MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_EAGAIN_) || \ 784 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_EWOULDBLOCK_) ) 792 #define MHD_SCKT_ERR_IS_LOW_RESOURCES_(err) \ 793 ( MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_EMFILE_) || \ 794 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ENFILE_) || \ 795 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ENOMEM_) || \ 796 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ENOBUFS_) ) 804 #if defined(MHD_POSIX_SOCKETS) 805 # define MHD_SCKT_ERR_IS_DISCNN_BEFORE_ACCEPT_(err) \ 806 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ECONNABORTED_) 807 #elif defined(MHD_WINSOCK_SOCKETS) 808 # define MHD_SCKT_ERR_IS_DISCNN_BEFORE_ACCEPT_(err) \ 809 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ECONNRESET_) 818 #define MHD_SCKT_ERR_IS_REMOTE_DISCNN_(err) \ 819 ( MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ECONNRESET_) || \ 820 MHD_SCKT_ERR_IS_ ((err), MHD_SCKT_ECONNABORTED_) ) 828 #if MHD_SCKT_MISSING_ERR_CODE_ != MHD_SCKT_ENOMEM_ 829 # define MHD_socket_set_error_to_ENOMEM() \ 830 MHD_socket_set_error_ (MHD_SCKT_ENOMEM_) 831 #elif MHD_SCKT_MISSING_ERR_CODE_ != MHD_SCKT_ENOBUFS_ 832 # define MHD_socket_set_error_to_ENOMEM() \ 833 MHD_socket_set_error_ (MHD_SCKT_ENOBUFS_) 836 No suitable replacement for ENOMEM error codes is found. Edit this file and add replacement code which is defined on system. 837 # define MHD_socket_set_error_to_ENOMEM() MHD_socket_set_error_ ( \ 843 #if defined(AF_LOCAL) 844 # define MHD_SCKT_LOCAL AF_LOCAL 845 #elif defined(AF_UNIX) 846 # define MHD_SCKT_LOCAL AF_UNIX 849 #if defined(MHD_POSIX_SOCKETS) && defined(MHD_SCKT_LOCAL) 850 # define MHD_socket_pair_(fdarr) \ 851 (! socketpair (MHD_SCKT_LOCAL, SOCK_STREAM, 0, (fdarr))) 852 # if defined(HAVE_SOCK_NONBLOCK) 853 # define MHD_socket_pair_nblk_(fdarr) \ 854 (! socketpair (MHD_SCKT_LOCAL, SOCK_STREAM | SOCK_NONBLOCK, 0, (fdarr))) 856 #elif defined(MHD_WINSOCK_SOCKETS) 864 int MHD_W32_socket_pair_ (SOCKET sockets_pair[2],
int non_blk);
866 # define MHD_socket_pair_(fdarr) MHD_W32_socket_pair_ ((fdarr), 0) 867 # define MHD_socket_pair_nblk_(fdarr) MHD_W32_socket_pair_ ((fdarr), 1) 921 #if defined(SOL_SOCKET) && defined(SO_NOSIGPIPE) 922 static const int _MHD_socket_int_one = 1;
929 #define MHD_socket_nosignal_(sock) \ 930 (! setsockopt ((sock),SOL_SOCKET,SO_NOSIGPIPE,&_MHD_socket_int_one, \ 931 sizeof(_MHD_socket_int_one))) 935 #if defined(MHD_socket_nosignal_) || defined(MSG_NOSIGNAL) 942 #define MHD_SEND_SPIPE_SUPPRESS_POSSIBLE 1 945 #if ! defined(MHD_WINSOCK_SOCKETS) 949 #define MHD_SEND_SPIPE_SUPPRESS_NEEDED 1 int MHD_add_to_fd_set_(MHD_socket fd, fd_set *set, MHD_socket *max_fd, unsigned int fd_setsize)
additional automatic macros for MHD_config.h
int MHD_socket_nonblocking_(MHD_socket sock)
int MHD_socket_noninheritable_(MHD_socket sock)
size_t MHD_SCKT_SEND_SIZE_
int MHD_socket_set_nodelay_(MHD_socket sock, bool on)
Helper for obtaining FD_SETSIZE system default value.
MHD_socket MHD_socket_create_listen_(int pf)
limits values definitions