]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
s3:smbd: simplify binding to wildcard addresses
authorStefan Metzmacher <metze@samba.org>
Thu, 3 Apr 2025 12:42:44 +0000 (14:42 +0200)
committerStefan Metzmacher <metze@samba.org>
Fri, 18 Apr 2025 10:17:29 +0000 (10:17 +0000)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Volker Lendecke <vl@samba.org>
source3/smbd/server.c

index b966739cff670b782858616cbc684703cfc01f6e..17862eb82a0629d094319df4b97a612f229bb321 100644 (file)
@@ -1219,29 +1219,26 @@ static bool open_sockets_smbd(struct smbd_parent_context *parent,
        } else {
                /* Just bind to 0.0.0.0 - accept connections
                   from anywhere. */
-
-               const char *sock_addr;
-               char *sock_tok;
-               const char *sock_ptr;
-
+               const char * const sock_addrs[] = {
 #ifdef HAVE_IPV6
-               sock_addr = "::,0.0.0.0";
-#else
-               sock_addr = "0.0.0.0";
+                       "::",
 #endif
+                       "0.0.0.0",
+               };
+
+               for (i = 0; i < ARRAY_SIZE(sock_addrs); i++) {
+                       const char *sock_tok = sock_addrs[i];
+                       struct sockaddr_storage ss;
+
+                       /* open an incoming socket */
+                       if (!interpret_string_addr(&ss, sock_tok,
+                                       AI_NUMERICHOST|AI_PASSIVE)) {
+                               continue;
+                       }
 
-               for (sock_ptr=sock_addr;
-                    next_token_talloc(talloc_tos(), &sock_ptr, &sock_tok, " \t,"); ) {
                        for (j = 0; ports && ports[j]; j++) {
-                               struct sockaddr_storage ss;
                                unsigned port = atoi(ports[j]);
 
-                               /* open an incoming socket */
-                               if (!interpret_string_addr(&ss, sock_tok,
-                                               AI_NUMERICHOST|AI_PASSIVE)) {
-                                       continue;
-                               }
-
                                /*
                                 * If we fail to open any sockets
                                 * in this loop the parent-sockets == NULL