commit 240604a333229d672f97682c4547cc67b5732bac
parent 93d614ea838ffb0f9f595a8d6d1c3f2d6419afb2
Author: Evgeny Grin (Karlson2k) <k2k@narod.ru>
Date: Tue, 21 May 2019 20:56:53 +0300
MHD_start_daemon(): fixed port detection on some platforms,
avoid re-use variable names.
Diffstat:
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
@@ -6029,14 +6029,17 @@ MHD_start_daemon_va (unsigned int flags,
if ( (0 == daemon->port) &&
(0 == (*pflags & MHD_USE_NO_LISTEN_SOCKET)) )
{ /* Get port number. */
- struct sockaddr_storage servaddr;
+ struct sockaddr_storage bindaddr;
- memset (&servaddr,
+ memset (&bindaddr,
0,
sizeof (struct sockaddr_storage));
- addrlen = sizeof (servaddr);
+ addrlen = sizeof (struct sockaddr_storage);
+#ifdef HAVE_SOCKADDR_IN_SIN_LEN
+ bindaddr.sin_len = addrlen;
+#endif
if (0 != getsockname (listen_fd,
- (struct sockaddr *) &servaddr,
+ (struct sockaddr *) &bindaddr,
&addrlen))
{
#ifdef HAVE_MESSAGES
@@ -6046,7 +6049,7 @@ MHD_start_daemon_va (unsigned int flags,
#endif /* HAVE_MESSAGES */
}
#ifdef MHD_POSIX_SOCKETS
- else if (sizeof (servaddr) < addrlen)
+ else if (sizeof (bindaddr) < addrlen)
{
/* should be impossible with `struct sockaddr_storage` */
#ifdef HAVE_MESSAGES
@@ -6057,11 +6060,11 @@ MHD_start_daemon_va (unsigned int flags,
#endif /* MHD_POSIX_SOCKETS */
else
{
- switch (servaddr.ss_family)
+ switch (bindaddr.ss_family)
{
case AF_INET:
{
- struct sockaddr_in *s4 = (struct sockaddr_in *) &servaddr;
+ struct sockaddr_in *s4 = (struct sockaddr_in *) &bindaddr;
daemon->port = ntohs (s4->sin_port);
break;
@@ -6069,7 +6072,7 @@ MHD_start_daemon_va (unsigned int flags,
#ifdef HAVE_INET6
case AF_INET6:
{
- struct sockaddr_in6 *s6 = (struct sockaddr_in6 *) &servaddr;
+ struct sockaddr_in6 *s6 = (struct sockaddr_in6 *) &bindaddr;
daemon->port = ntohs(s6->sin6_port);
mhd_assert (0 != (*pflags & MHD_USE_IPv6));