commit d5147a2bb12f9eb47ce3e60d15ba8a7ca5620fc3
parent a3a5829974afc48dbe89277f5e5a2224186bf4b0
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Sun, 11 May 2025 21:27:19 +0200
mhd_socket_pair_func(): improved portability
Diffstat:
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/src/mhd2/mhd_sockets_funcs.c b/src/mhd2/mhd_sockets_funcs.c
@@ -204,8 +204,8 @@ mhd_socket_pair_func (MHD_Socket sckt[2], bool non_blk)
listen_s = socket (AF_INET,
SOCK_STREAM,
- IPPROTO_TCP);
- if (INVALID_SOCKET == listen_s)
+ 0);
+ if (MHD_INVALID_SOCKET == listen_s)
break; /* can't create even single socket */
listen_addr.sin_family = AF_INET;
@@ -215,6 +215,10 @@ mhd_socket_pair_func (MHD_Socket sckt[2], bool non_blk)
#else
memcpy (&(listen_addr.sin_addr.s_addr), "\x7F\x00\x00\x01", 4);
#endif
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
+ listen_addr.sin_len = sizeof(listen_addr);
+#endif
+
if ( ((0 == bind (listen_s,
(struct sockaddr *) &listen_addr,
c_addinlen)) &&
@@ -224,11 +228,11 @@ mhd_socket_pair_func (MHD_Socket sckt[2], bool non_blk)
(struct sockaddr *) &listen_addr,
&addr_len))) )
{
- MHD_Socket client_s = socket (AF_INET, SOCK_STREAM, IPPROTO_TCP);
+ MHD_Socket client_s = socket (AF_INET, SOCK_STREAM, 0);
struct sockaddr_in accepted_from_addr;
struct sockaddr_in client_addr;
- if (INVALID_SOCKET != client_s)
+ if (MHD_INVALID_SOCKET != client_s)
{
if (mhd_socket_nonblocking (client_s) &&
( (0 == connect (client_s,
@@ -273,8 +277,8 @@ mhd_socket_pair_func (MHD_Socket sckt[2], bool non_blk)
mhd_socket_close (listen_s);
}
- sckt[0] = INVALID_SOCKET;
- sckt[1] = INVALID_SOCKET;
+ sckt[0] = MHD_INVALID_SOCKET;
+ sckt[1] = MHD_INVALID_SOCKET;
return false;
}