X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fuhttpd.git;a=blobdiff_plain;f=client.c;h=25cc271a32090ef109528bb55a46de52b5af1f12;hp=c5b82d22917c02d7fd8452173f79066c05f531ce;hb=a91df297fe85b29805a1a1591e9a6371b357f95c;hpb=0cf1ced116843d5faba6326b23b5925a9d64c267 diff --git a/client.c b/client.c index c5b82d2..25cc271 100644 --- a/client.c +++ b/client.c @@ -134,6 +134,7 @@ static int client_parse_request(struct client *cl, char *data) { struct http_request *req = &cl->request; char *type, *path, *version; + int h_method, h_version; type = strtok(data, " "); path = strtok(NULL, " "); @@ -143,13 +144,16 @@ static int client_parse_request(struct client *cl, char *data) memset(&cl->request, 0, sizeof(cl->request)); req->url = path; - req->method = find_idx(http_methods, ARRAY_SIZE(http_methods), type); - if (req->method < 0) - return CLIENT_STATE_DONE; - req->version = find_idx(http_versions, ARRAY_SIZE(http_versions), version); - if (cl->request.version < 0) + h_method = find_idx(http_methods, ARRAY_SIZE(http_methods), type); + h_version = find_idx(http_versions, ARRAY_SIZE(http_versions), version); + if (h_method < 0 || h_version < 0) { + req->version = UH_HTTP_VER_1_0; return CLIENT_STATE_DONE; + } + + req->method = h_method; + req->version = h_version; return CLIENT_STATE_HEADER; }