Procházet zdrojové kódy

Properly handle port detection if AF_UNIX socket is used on *BSD, macOS

Evgeny Grin (Karlson2k) před 6 roky
rodič
revize
20eceebc77
1 změnil soubory, kde provedl 8 přidání a 0 odebrání
  1. 8 0
      src/microhttpd/daemon.c

+ 8 - 0
src/microhttpd/daemon.c

@@ -6124,6 +6124,14 @@ MHD_start_daemon_va (unsigned int flags,
                     _("Failed to get listen port number (`struct sockaddr_storage` too small!?)\n"));
 #endif /* HAVE_MESSAGES */
         }
+#ifndef __linux__
+      else if (0 == addrlen)
+        {
+          /* Many non-Linux-based platforms return zero addrlen
+           * for AF_UNIX sockets */
+          daemon->port = 0; /* special value for UNIX domain sockets */
+        }
+#endif /* __linux__ */
 #endif /* MHD_POSIX_SOCKETS */
       else
         {