r26401: Don't cache interfaces context in libnetif.
[samba.git] / source4 / smb_server / smb_server.c
index c1581f884224415cf5d88c4637ecb1205a22e41f..1dd022405a0b67eb322ac733f1cc4e09de802243 100644 (file)
@@ -218,15 +218,20 @@ static void smbsrv_task_init(struct task_server *task)
        task_server_set_title(task, "task[smbsrv]");
 
        if (lp_interfaces(task->lp_ctx) && lp_bind_interfaces_only(task->lp_ctx)) {
-               int num_interfaces = iface_count(task->lp_ctx);
+               int num_interfaces;
                int i;
+               struct interface *ifaces;
+
+               load_interfaces(lp_interfaces(task->lp_ctx), &ifaces);
+
+               num_interfaces = iface_count(ifaces);
 
                /* We have been given an interfaces line, and been 
                   told to only bind to those interfaces. Create a
                   socket per interface and bind to only these.
                */
                for(i = 0; i < num_interfaces; i++) {
-                       const char *address = iface_n_ip(task->lp_ctx, i);
+                       const char *address = iface_n_ip(ifaces, i);
                        status = smbsrv_add_socket(task->event_ctx, task->lp_ctx, task->model_ops, address);
                        if (!NT_STATUS_IS_OK(status)) goto failed;
                }