Support Connection: close header

This commit is contained in:
waga-git 2016-02-20 12:01:26 +09:00
commit c558a03148

View file

@ -59,8 +59,8 @@ namespace SimpleWeb {
class Request { class Request {
friend class ServerBase<socket_type>; friend class ServerBase<socket_type>;
public: public:
std::string method, path, protocol, http_version; std::string method, path, protocol, http_version;
bool con_close; bool con_close;
Content content; Content content;
@ -284,17 +284,17 @@ namespace SimpleWeb {
request->method=line.substr(0, method_end); request->method=line.substr(0, method_end);
request->path=line.substr(method_end+1, path_end-method_end-1); request->path=line.substr(method_end+1, path_end-method_end-1);
request->con_close = false; request->con_close = false;
request->protocol.clear(); request->protocol.clear();
request->http_version.clear(); request->http_version.clear();
size_t proto_end; size_t proto_end;
if((proto_end=line.find('/', path_end+1))!=std::string::npos) { if((proto_end=line.find('/', path_end+1))!=std::string::npos) {
request->protocol=line.substr(path_end+1, proto_end-path_end-1); request->protocol=line.substr(path_end+1, proto_end-path_end-1);
request->http_version=line.substr(proto_end+1, line.size()-(proto_end)-1); request->http_version=line.substr(proto_end+1, line.size()-(proto_end)-1);
} }
else else
request->http_version="1.0"; request->http_version="1.0";
getline(stream, line); getline(stream, line);
@ -305,13 +305,13 @@ namespace SimpleWeb {
if(line[value_start]==' ') if(line[value_start]==' ')
value_start++; value_start++;
if(value_start<line.size()) { if(value_start<line.size()) {
std::string key = line.substr(0, param_end); std::string key = line.substr(0, param_end);
std::string value = line.substr(value_start, line.size()-value_start-1); std::string value = line.substr(value_start, line.size()-value_start-1);
request->header.insert(std::make_pair(key, value)); request->header.insert(std::make_pair(key, value));
if(boost::iequals(key, "Connection") && boost::iequals(value, "close")) if(boost::iequals(key, "Connection") && boost::iequals(value, "close"))
request->con_close = true; request->con_close = true;
} }
} }