summaryrefslogtreecommitdiff
path: root/src/HttpServerCommand.cc
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-29 23:20:43 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2013-06-29 23:20:43 +0900
commitd128a39fb6d9ecf4f26af9858852bcd2ab8935dd (patch)
treea8685ca346e869e13e1ee8e6859fd59dd52c8fec /src/HttpServerCommand.cc
parent6a3e26a34d4e1c878e2d7d4ba2f72c362c5f8a3a (diff)
HttpServer: Return bool for receiveHeader, use std::unique_ptr for headers
Diffstat (limited to 'src/HttpServerCommand.cc')
-rw-r--r--src/HttpServerCommand.cc9
1 files changed, 4 insertions, 5 deletions
diff --git a/src/HttpServerCommand.cc b/src/HttpServerCommand.cc
index 1784611b..106d1b97 100644
--- a/src/HttpServerCommand.cc
+++ b/src/HttpServerCommand.cc
@@ -137,7 +137,7 @@ std::string createWebSocketServerKey(const std::string& clientKey)
} // namespace
namespace {
-int websocketHandshake(const std::shared_ptr<HttpHeader>& header)
+int websocketHandshake(const HttpHeader* header)
{
if(header->getMethod() != "GET" ||
header->find(HttpHeader::SEC_WEBSOCKET_KEY).empty()) {
@@ -190,9 +190,7 @@ bool HttpServerCommand::execute()
}
#endif // ENABLE_SSL
- std::shared_ptr<HttpHeader> header;
- header = httpServer_->receiveRequest();
- if(!header) {
+ if(!httpServer_->receiveRequest()) {
updateWriteCheck();
e_->addCommand(std::unique_ptr<Command>(this));
return false;
@@ -209,10 +207,11 @@ bool HttpServerCommand::execute()
e_->setNoWait(true);
return true;
}
+ auto& header = httpServer_->getRequestHeader();
if(header->fieldContains(HttpHeader::UPGRADE, "websocket") &&
header->fieldContains(HttpHeader::CONNECTION, "upgrade")) {
#ifdef ENABLE_WEBSOCKET
- int status = websocketHandshake(header);
+ int status = websocketHandshake(header.get());
if(status == 101) {
std::string serverKey =
createWebSocketServerKey