aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2018-02-09 06:09:26 +0100
committerChristian Grothoff <christian@grothoff.org>2018-02-09 06:09:26 +0100
commitf65dd8e0969d6c43913da51b585437c7f8447cac (patch)
tree0540f61287c0e8c754959e89adaf91b80171e5f1
parent7512349b3bb7ec147195cf25864f637e1a99c569 (diff)
downloadlibmicrohttpd-f65dd8e0969d6c43913da51b585437c7f8447cac.tar.gz
libmicrohttpd-f65dd8e0969d6c43913da51b585437c7f8447cac.zip
allow passing pf instead of just v6 flag to listen socket creation
-rw-r--r--src/lib/mhd_sockets.c19
-rw-r--r--src/lib/mhd_sockets.h4
2 files changed, 7 insertions, 16 deletions
diff --git a/src/lib/mhd_sockets.c b/src/lib/mhd_sockets.c
index ddcc1f25..356d288f 100644
--- a/src/lib/mhd_sockets.c
+++ b/src/lib/mhd_sockets.c
@@ -464,31 +464,22 @@ MHD_socket_noninheritable_ (MHD_socket sock)
464/** 464/**
465 * Create a listen socket, with noninheritable flag if possible. 465 * Create a listen socket, with noninheritable flag if possible.
466 * 466 *
467 * @param use_ipv6 if set to non-zero IPv6 is used 467 * @param pf protocol family to use
468 * @return created socket or MHD_INVALID_SOCKET in case of errors 468 * @return created socket or MHD_INVALID_SOCKET in case of errors
469 */ 469 */
470MHD_socket 470MHD_socket
471MHD_socket_create_listen_ (bool use_ipv6) 471MHD_socket_create_listen_ (int pf)
472{ 472{
473 int domain;
474 MHD_socket fd; 473 MHD_socket fd;
475 int cloexec_set; 474 int cloexec_set;
476 475
477#ifdef HAVE_INET6
478 domain = (use_ipv6) ? PF_INET6 : PF_INET;
479#else /* ! HAVE_INET6 */
480 if (use_ipv6)
481 return MHD_INVALID_SOCKET;
482 domain = PF_INET;
483#endif /* ! HAVE_INET6 */
484
485#if defined(MHD_POSIX_SOCKETS) && defined(SOCK_CLOEXEC) 476#if defined(MHD_POSIX_SOCKETS) && defined(SOCK_CLOEXEC)
486 fd = socket (domain, 477 fd = socket (pf,
487 SOCK_STREAM | SOCK_CLOEXEC, 478 SOCK_STREAM | SOCK_CLOEXEC,
488 0); 479 0);
489 cloexec_set = !0; 480 cloexec_set = !0;
490#elif defined(MHD_WINSOCK_SOCKETS) && defined (WSA_FLAG_NO_HANDLE_INHERIT) 481#elif defined(MHD_WINSOCK_SOCKETS) && defined (WSA_FLAG_NO_HANDLE_INHERIT)
491 fd = WSASocketW (domain, 482 fd = WSASocketW (pf,
492 SOCK_STREAM, 483 SOCK_STREAM,
493 0, 484 0,
494 NULL, 485 NULL,
@@ -500,7 +491,7 @@ MHD_socket_create_listen_ (bool use_ipv6)
500#endif /* !SOCK_CLOEXEC */ 491#endif /* !SOCK_CLOEXEC */
501 if (MHD_INVALID_SOCKET == fd) 492 if (MHD_INVALID_SOCKET == fd)
502 { 493 {
503 fd = socket (domain, 494 fd = socket (pf,
504 SOCK_STREAM, 495 SOCK_STREAM,
505 0); 496 0);
506 cloexec_set = 0; 497 cloexec_set = 0;
diff --git a/src/lib/mhd_sockets.h b/src/lib/mhd_sockets.h
index c999ea35..9be34144 100644
--- a/src/lib/mhd_sockets.h
+++ b/src/lib/mhd_sockets.h
@@ -751,10 +751,10 @@ MHD_socket_noninheritable_ (MHD_socket sock);
751/** 751/**
752 * Create a listen socket, with noninheritable flag if possible. 752 * Create a listen socket, with noninheritable flag if possible.
753 * 753 *
754 * @param use_ipv6 if set to non-zero IPv6 is used 754 * @param pf protocol family to use
755 * @return created socket or MHD_INVALID_SOCKET in case of errors 755 * @return created socket or MHD_INVALID_SOCKET in case of errors
756 */ 756 */
757MHD_socket 757MHD_socket
758MHD_socket_create_listen_ (bool use_ipv6); 758MHD_socket_create_listen_ (int pf);
759 759
760#endif /* ! MHD_SOCKETS_H */ 760#endif /* ! MHD_SOCKETS_H */