version 1.1.1.1.2.5, 2012/03/09 13:24:58
|
version 1.2.2.1, 2012/03/10 15:55:42
|
Line 99 www_initCGI(void)
|
Line 99 www_initCGI(void)
|
|
|
str = getenv("REQUEST_METHOD"); |
str = getenv("REQUEST_METHOD"); |
if (!str) { |
if (!str) { |
www_SetErr(EBADMSG, "Request method not found"); | www_SetErr(EFAULT, "Request method not found"); |
return NULL; |
return NULL; |
} |
} |
if (!strcmp(str, "GET") || !strcmp(str, "HEAD")) { |
if (!strcmp(str, "GET") || !strcmp(str, "HEAD")) { |
/* GET | HEAD */ |
/* GET | HEAD */ |
str = getenv("QUERY_STRING"); |
str = getenv("QUERY_STRING"); |
if (!str) { |
if (!str) { |
www_SetErr(EBADMSG, "Query string not found"); | www_SetErr(EFAULT, "Query string not found"); |
return NULL; |
return NULL; |
} |
} |
cgi = www_parseQuery(str); |
cgi = www_parseQuery(str); |
Line 114 www_initCGI(void)
|
Line 114 www_initCGI(void)
|
/* POST */ |
/* POST */ |
str = getenv("CONTENT_LENGTH"); |
str = getenv("CONTENT_LENGTH"); |
if (!str) { |
if (!str) { |
www_SetErr(EBADMSG, "Content length not found"); | www_SetErr(EFAULT, "Content length not found"); |
return NULL; |
return NULL; |
} else |
} else |
ctlen = strtol(str, NULL, 0); |
ctlen = strtol(str, NULL, 0); |
|
|
s = getenv("CONTENT_TYPE"); |
s = getenv("CONTENT_TYPE"); |
if (!s) { |
if (!s) { |
www_SetErr(EBADMSG, "Content type not found"); | www_SetErr(EFAULT, "Content type not found"); |
return NULL; |
return NULL; |
} |
} |
if (www_cmp(s, "multipart/form-data") && |
if (www_cmp(s, "multipart/form-data") && |
www_cmp(s, "application/x-www-form-urlencoded")) { |
www_cmp(s, "application/x-www-form-urlencoded")) { |
www_SetErr(EBADMSG, "MIME parts are broken"); | www_SetErr(EFAULT, "MIME parts are broken"); |
return NULL; |
return NULL; |
} |
} |
|
|
Line 149 www_initCGI(void)
|
Line 149 www_initCGI(void)
|
free(str); |
free(str); |
} else { |
} else { |
/* Unknown method */ |
/* Unknown method */ |
www_SetErr(EBADMSG, "Unknown request method"); | www_SetErr(EFAULT, "Unknown request method"); |
return NULL; |
return NULL; |
} |
} |
|
|
Line 533 www_parseMultiPart(const char *str, int ctlen, const c
|
Line 533 www_parseMultiPart(const char *str, int ctlen, const c
|
SLIST_FOREACH(m, mime, mime_node) { |
SLIST_FOREACH(m, mime, mime_node) { |
s = mime_getValue(m, "content-disposition"); |
s = mime_getValue(m, "content-disposition"); |
attr = www_parseAttributes(&s); |
attr = www_parseAttributes(&s); |
|
if (!www_getAttribute(attr, "name")) { |
|
www_freeAttributes(&attr); |
|
continue; |
|
} |
|
|
t = malloc(sizeof(struct tagCGI)); |
t = malloc(sizeof(struct tagCGI)); |
if (!t) { |
if (!t) { |