version 1.1.1.1.2.7, 2012/03/09 16:42:31
|
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 137 www_initCGI(void)
|
Line 137 www_initCGI(void)
|
return NULL; |
return NULL; |
} else |
} else |
memset(str, 0, ctlen + 1); |
memset(str, 0, ctlen + 1); |
for (i = 0; i <= ctlen && (rlen = | for (i = 0; i < ctlen && (rlen = |
read(STDIN_FILENO, (void*) str + i, ctlen - i)) > 0; i += rlen); |
read(STDIN_FILENO, (void*) str + i, ctlen - i)) > 0; i += rlen); |
str[ctlen] = 0; |
str[ctlen] = 0; |
|
|
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; |
} |
} |
|
|