[svn-commits] twilson: trunk r135235 - in /trunk: main/http.c res/res_http_post.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Aug 1 16:56:08 CDT 2008


Author: twilson
Date: Fri Aug  1 16:56:07 2008
New Revision: 135235

URL: http://svn.digium.com/view/asterisk?view=rev&rev=135235
Log:
Fix mime parsing by re-adding support for passing headers to callback functions

Modified:
    trunk/main/http.c
    trunk/res/res_http_post.c

Modified: trunk/main/http.c
URL: http://svn.digium.com/view/asterisk/trunk/main/http.c?view=diff&rev=135235&r1=135234&r2=135235
==============================================================================
--- trunk/main/http.c (original)
+++ trunk/main/http.c Fri Aug  1 16:56:07 2008
@@ -657,6 +657,7 @@
 	int status = 200, contentlength = 0;
 	struct ast_str *out = NULL;
 	unsigned int static_content = 0;
+	struct ast_variable *tail = headers;
 
 	if (!fgets(buf, sizeof(buf), ser->f)) {
 		goto done;
@@ -686,6 +687,24 @@
 		}
 		if (!strncasecmp(cookie, "Cookie: ", 8)) {
 			vars = parse_cookies(cookie);
+		} else {
+			char *name, *val;
+
+			val = cookie;
+			name = strsep(&val, ":");
+			if (ast_strlen_zero(name) || ast_strlen_zero(val)) {
+				continue;
+			}
+			ast_trim_blanks(name);
+			val = ast_skip_blanks(val);
+
+			if (!headers) {
+				headers = ast_variable_new(name, val, __FILE__);
+				tail = headers;
+			} else {
+				tail->next = ast_variable_new(name, val, __FILE__);
+				tail = tail->next;
+			}
 		}
 	}
 

Modified: trunk/res/res_http_post.c
URL: http://svn.digium.com/view/asterisk/trunk/res/res_http_post.c?view=diff&rev=135235&r1=135234&r2=135235
==============================================================================
--- trunk/res/res_http_post.c (original)
+++ trunk/res/res_http_post.c Fri Aug  1 16:56:07 2008
@@ -203,6 +203,8 @@
 	}
 
 	for (var = headers; var; var = var->next) {
+		fprintf(f, "%s: %s\r\n", var->name, var->value);
+
 		if (!strcasecmp(var->name, "Content-Length")) {
 			if ((sscanf(var->value, "%u", &content_len)) != 1) {
 				ast_log(LOG_ERROR, "Invalid Content-Length in POST request!\n");
@@ -211,10 +213,10 @@
 				return NULL;
 			}
 			ast_debug(1, "Got a Content-Length of %d\n", content_len);
-		} else if (!strcasecmp(var->name, "Content-Type")) {
-			fprintf(f, "Content-Type: %s\r\n\r\n", var->value);
-		}
-	}
+		}
+	}
+
+	fprintf(f, "\r\n");
 
 	for (res = sizeof(buf); content_len; content_len -= res) {
 		if (content_len < res) {




More information about the svn-commits mailing list