s4-ipv6: use iface_list_wildcard() to listen on IPv6
[bbaumbach/samba-autobuild/.git] / source4 / web_server / web_server.c
index ab8f63b2ec9f329b1339bc8d761176127394eea7..c43b2cfc7b17a268a8e9d6e86f45e1895eb703b4 100644 (file)
@@ -336,13 +336,23 @@ static void websrv_task_init(struct task_server *task)
 
                talloc_free(ifaces);
        } else {
-               status = stream_setup_socket(task, task->event_ctx,
-                                            task->lp_ctx, model_ops,
-                                            &web_stream_ops,
-                                            "ipv4", lpcfg_socket_address(task->lp_ctx),
-                                            &port, lpcfg_socket_options(task->lp_ctx),
-                                            task);
-               if (!NT_STATUS_IS_OK(status)) goto failed;
+               const char **wcard;
+               int i;
+               wcard = iface_list_wildcard(task, task->lp_ctx);
+               if (wcard == NULL) {
+                       DEBUG(0,("No wildcard addresses available\n"));
+                       goto failed;
+               }
+               for (i=0; wcard[i]; i++) {
+                       status = stream_setup_socket(task, task->event_ctx,
+                                                    task->lp_ctx, model_ops,
+                                                    &web_stream_ops,
+                                                    "ip", wcard[i],
+                                                    &port, lpcfg_socket_options(task->lp_ctx),
+                                                    wdata);
+                       if (!NT_STATUS_IS_OK(status)) goto failed;
+               }
+               talloc_free(wcard);
        }
 
        wdata->tls_params = tls_initialise(wdata, task->lp_ctx);