svn commit: samba r9179 - in branches/SAMBA_4_0/source/web_server: .

tridge at samba.org tridge at samba.org
Sun Aug 7 15:20:25 GMT 2005


Author: tridge
Date: 2005-08-07 15:20:25 +0000 (Sun, 07 Aug 2005)
New Revision: 9179

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=9179

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







Modified:
   branches/SAMBA_4_0/source/web_server/http.c


Changeset:
Modified: branches/SAMBA_4_0/source/web_server/http.c
===================================================================
--- branches/SAMBA_4_0/source/web_server/http.c	2005-08-07 07:01:03 UTC (rev 9178)
+++ branches/SAMBA_4_0/source/web_server/http.c	2005-08-07 15:20:25 UTC (rev 9179)
@@ -751,6 +751,7 @@
 	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 @@
 
 	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 @@
 		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 @@
 		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 @@
 	}
 
 	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);
 }
 
 



More information about the samba-cvs mailing list