From d128a39fb6d9ecf4f26af9858852bcd2ab8935dd Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa Date: Sat, 29 Jun 2013 23:20:43 +0900 Subject: HttpServer: Return bool for receiveHeader, use std::unique_ptr for headers --- src/HttpServerCommand.cc | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'src/HttpServerCommand.cc') 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& 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 header; - header = httpServer_->receiveRequest(); - if(!header) { + if(!httpServer_->receiveRequest()) { updateWriteCheck(); e_->addCommand(std::unique_ptr(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 -- cgit