s4:web_server - immeditately assign "wdata" as private data for the stream socket
authorMatthias Dieter Wallnöfer <mdw@samba.org>
Fri, 14 Jan 2011 20:46:37 +0000 (21:46 +0100)
committerMatthias Dieter Wallnöfer <mdw@samba.org>
Fri, 14 Jan 2011 21:33:13 +0000 (22:33 +0100)
This fixes bug #7887.

Autobuild-User: Matthias Dieter Wallnöfer <mdw@samba.org>
Autobuild-Date: Fri Jan 14 22:33:13 CET 2011 on sn-devel-104

source4/web_server/web_server.c

index 9531115e88eb6e0f08417bd0280afdda282c7cec..8e8168511fcdbe78970f41d1587a4d576475c196 100644 (file)
@@ -305,6 +305,11 @@ static void websrv_task_init(struct task_server *task)
        model_ops = process_model_startup("single");
        if (!model_ops) goto failed;
 
+       /* startup the Python processor - unfortunately we can't do this
+          per connection as that wouldn't allow for session variables */
+       wdata = talloc_zero(task, struct web_server_data);
+       if (wdata == NULL) goto failed;
+
        if (lpcfg_interfaces(task->lp_ctx) && lpcfg_bind_interfaces_only(task->lp_ctx)) {
                int num_interfaces;
                int i;
@@ -321,25 +326,20 @@ static void websrv_task_init(struct task_server *task)
                                                     &web_stream_ops, 
                                                     "ipv4", address, 
                                                     &port, lpcfg_socket_options(task->lp_ctx),
-                                                    task);
+                                                    wdata);
                        if (!NT_STATUS_IS_OK(status)) goto failed;
                }
 
                talloc_free(ifaces);
        } else {
-               status = stream_setup_socket(task, task->event_ctx, task->lp_ctx,
-                                            model_ops, &web_stream_ops, 
+               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);
+                                            &port, lpcfg_socket_options(task->lp_ctx),
+                                            wdata);
                if (!NT_STATUS_IS_OK(status)) goto failed;
        }
-
-       /* startup the esp processor - unfortunately we can't do this
-          per connection as that wouldn't allow for session variables */
-       wdata = talloc_zero(task, struct web_server_data);
-       if (wdata == NULL)goto failed;
-
-       task->private_data = wdata;
        
        wdata->tls_params = tls_initialise(wdata, task->lp_ctx);
        if (wdata->tls_params == NULL) goto failed;