aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/c/request.c
diff options
context:
space:
mode:
authorGravatar Adam Chlipala <adam@chlipala.net>2012-07-21 15:34:07 -0400
committerGravatar Adam Chlipala <adam@chlipala.net>2012-07-21 15:34:07 -0400
commit2fa860df89c8680b4782308511a74244e0179b4e (patch)
tree5d99ec63c6f0e52226ec8b82736968d686bf73a0 /src/c/request.c
parentcbce1b6184acae87ba220969ab2c69cf2697ea32 (diff)
Get regular forms working again
Diffstat (limited to 'src/c/request.c')
-rw-r--r--src/c/request.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/c/request.c b/src/c/request.c
index b23c251f..21011bd0 100644
--- a/src/c/request.c
+++ b/src/c/request.c
@@ -246,7 +246,7 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
char *inputs;
const char *prefix = uw_get_url_prefix(ctx);
char *s;
- int had_error = 0;
+ int had_error = 0, is_fancy = 0;
char errmsg[ERROR_BUF_LEN];
uw_reset(ctx);
@@ -284,6 +284,10 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
uw_isPost(ctx);
clen_s = uw_Basis_requestHeader(ctx, "Content-type");
+
+ if (!clen_s || strcasecmp(clen_s, "application/x-www-form-urlencoded"))
+ is_fancy = 1;
+
if (clen_s && !strncasecmp(clen_s, "multipart/form-data", 19)) {
if (strncasecmp(clen_s + 19, "; boundary=", 11)) {
log_error(logger_data, "Bad multipart boundary spec");
@@ -295,7 +299,7 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
boundary[1] = '-';
boundary_len = strlen(boundary);
} else if (clen_s) {
- uw_Basis_postBody pb = {clen_s, body};
+ uw_Basis_postBody pb = {clen_s, body, body_len};
uw_postBody(ctx, pb);
}
} else if (strcmp(method, "GET")) {
@@ -430,7 +434,7 @@ request_result uw_request(uw_request_context rc, uw_context ctx,
}
}
}
- else if (!uw_hasPostBody(ctx)) {
+ else if (!is_fancy) {
inputs = is_post ? body : query_string;
if (inputs) {