diff options
author | ipknHama <ipknhama@gmail.com> | 2014-04-17 18:18:02 +0900 |
---|---|---|
committer | ipknHama <ipknhama@gmail.com> | 2014-04-17 18:19:06 +0900 |
commit | af6bc11fb4360ca8a1f244283e51065ee38ffc80 (patch) | |
tree | d60fc78b54a116b9521041ee98c62bef9ca0ba5f /http_connection.h | |
parent | 9ee37ce4bf664166807ff02b61d2e18181c4c1f9 (diff) | |
download | crow-af6bc11fb4360ca8a1f244283e51065ee38ffc80.tar.gz crow-af6bc11fb4360ca8a1f244283e51065ee38ffc80.zip |
resolve linking problem
Diffstat (limited to 'http_connection.h')
-rw-r--r-- | http_connection.h | 50 |
1 files changed, 33 insertions, 17 deletions
diff --git a/http_connection.h b/http_connection.h index a1a810c..3e1ae62 100644 --- a/http_connection.h +++ b/http_connection.h @@ -29,6 +29,28 @@ namespace flask void handle() { + static std::unordered_map<int, std::string> statusCodes = { + {200, "HTTP/1.1 200 OK\r\n"}, + {201, "HTTP/1.1 201 Created\r\n"}, + {202, "HTTP/1.1 202 Accepted\r\n"}, + {204, "HTTP/1.1 204 No Content\r\n"}, + + {300, "HTTP/1.1 300 Multiple Choices\r\n"}, + {301, "HTTP/1.1 301 Moved Permanently\r\n"}, + {302, "HTTP/1.1 302 Moved Temporarily\r\n"}, + {304, "HTTP/1.1 304 Not Modified\r\n"}, + + {400, "HTTP/1.1 400 Bad Request\r\n"}, + {401, "HTTP/1.1 401 Unauthorized\r\n"}, + {403, "HTTP/1.1 403 Forbidden\r\n"}, + {404, "HTTP/1.1 404 Not Found\r\n"}, + + {500, "HTTP/1.1 500 Internal Server Error\r\n"}, + {501, "HTTP/1.1 501 Not Implemented\r\n"}, + {502, "HTTP/1.1 502 Bad Gateway\r\n"}, + {503, "HTTP/1.1 503 Service Unavailable\r\n"}, + }; + request req = parser_.to_request(); res = handler_->handle(req); @@ -45,7 +67,7 @@ namespace flask buffers_.emplace_back(status.data(), status.size()); } - if (res.code > 400 && res.body.empty()) + if (res.code >= 400 && res.body.empty()) res.body = statusCodes[res.code].substr(9); bool has_content_length = false; @@ -103,18 +125,16 @@ namespace flask if (!ec) { bool ret = parser_.feed(buffer_.data(), bytes_transferred); - if (ret) - do_read(); - else - { - socket_.close(); - - life_--; - if ((int)life_ == 0) - { - delete this; - } - } + if (ret) + do_read(); + else + { + socket_.close(); + + life_--; + if ((int)life_ == 0) + delete this; + } } else { @@ -123,9 +143,7 @@ namespace flask life_--; if ((int)life_ == 0) - { delete this; - } } }); } @@ -153,9 +171,7 @@ namespace flask socket_.close(); life_--; if ((int)life_ == 0) - { delete this; - } } }); } |