浏览代码

Refactored parse_http_message()

Sergey Lyubka 12 年之前
父节点
当前提交
cf18c932a4
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      mongoose.c

+ 5 - 2
mongoose.c

@@ -3060,8 +3060,11 @@ static int parse_http_message(char *buf, int len, struct mg_request_info *ri) {
     ri->request_method = skip(&buf, " ");
     ri->uri = skip(&buf, " ");
     ri->http_version = skip(&buf, "\r\n");
-    if (((is_request = is_valid_http_method(ri->request_method)) &&
-         memcmp(ri->http_version, "HTTP/", 5) != 0) ||
+
+    // HTTP message could be either HTTP request or HTTP response, e.g.
+    // "GET / HTTP/1.0 ...." or  "HTTP/1.0 200 OK ..."
+    is_request = is_valid_http_method(ri->request_method);
+    if ((is_request && memcmp(ri->http_version, "HTTP/", 5) != 0) ||
         (!is_request && memcmp(ri->request_method, "HTTP/", 5)) != 0) {
       request_length = -1;
     } else {