summaryrefslogtreecommitdiff
path: root/source4/web_server/http.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/web_server/http.c')
-rw-r--r--source4/web_server/http.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/source4/web_server/http.c b/source4/web_server/http.c
index 8dd594de20..3e27b8f089 100644
--- a/source4/web_server/http.c
+++ b/source4/web_server/http.c
@@ -755,8 +755,9 @@ static const struct Esp esp_control = {
void http_process_input(struct websrv_context *web)
{
NTSTATUS status;
- struct esp_state *esp;
+ struct esp_state *esp = NULL;
struct esp_data *edata = talloc_get_type(web->task->private, struct esp_data);
+ struct smbcalls_context *smbcalls_ctx;
char *p;
void *save_mpr_ctx = mprMemCtx();
void *ejs_save = ejs_save_state();
@@ -777,7 +778,16 @@ void http_process_input(struct websrv_context *web)
{"esp", "text/html", True}
};
- esp = talloc_zero(web, struct esp_state);
+ /*
+ * give the smbcalls a chance to find the event context
+ * and messaging context
+ */
+ smbcalls_ctx = talloc(web, struct smbcalls_context);
+ if (smbcalls_ctx == NULL) goto internal_error;
+ smbcalls_ctx->event_ctx = web->conn->event.ctx;
+ smbcalls_ctx->msg_ctx = web->conn->msg_ctx;
+
+ esp = talloc_zero(smbcalls_ctx, struct esp_state);
if (esp == NULL) goto internal_error;
esp->web = web;