1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-13 13:18:06 +03:00

r9179: cope with simultaneous web requests using the same session variable

This commit is contained in:
Andrew Tridgell 2005-08-07 15:20:25 +00:00 committed by Gerald (Jerry) Carter
parent 0b96b3bfe3
commit 7d6e601219

View File

@ -751,6 +751,7 @@ void http_process_input(struct websrv_context *web)
struct esp_state *esp;
struct esp_data *edata = talloc_get_type(web->task->private, struct esp_data);
char *p;
void *save_mpr_ctx = mprMemCtx();
int i;
const char *file_type = NULL;
BOOL esp_enable = False;
@ -800,6 +801,7 @@ void http_process_input(struct websrv_context *web)
if (web->input.url == NULL) {
http_error(web, 400, "You must specify a GET or POST request");
mprSetCtx(save_mpr_ctx);
return;
}
@ -808,6 +810,7 @@ void http_process_input(struct websrv_context *web)
status = http_parse_post(esp);
if (!NT_STATUS_IS_OK(status)) {
http_error(web, 400, "Malformed POST data");
mprSetCtx(save_mpr_ctx);
return;
}
}
@ -815,6 +818,7 @@ void http_process_input(struct websrv_context *web)
status = http_parse_get(esp);
if (!NT_STATUS_IS_OK(status)) {
http_error(web, 400, "Malformed GET data");
mprSetCtx(save_mpr_ctx);
return;
}
}
@ -894,12 +898,14 @@ void http_process_input(struct websrv_context *web)
}
talloc_free(esp);
mprSetCtx(save_mpr_ctx);
return;
internal_error:
mprSetCtx(esp);
talloc_free(esp);
http_error(web, 500, "Internal server error");
mprSetCtx(save_mpr_ctx);
}