aboutsummaryrefslogtreecommitdiffstats
path: root/parser.h
diff options
context:
space:
mode:
authoripknHama <ipknhama@gmail.com>2014-05-02 21:54:25 +0900
committeripknHama <ipknhama@gmail.com>2014-07-09 14:08:40 +0900
commitc19eed028535b847489ca03a43fc4dc42e7451cf (patch)
tree620867e8b8edbeefea0ac6a56ed7b4ab6635c884 /parser.h
parent23f9b528586610c43be8bccbe50e978afd47dfec (diff)
downloadcrow-c19eed028535b847489ca03a43fc4dc42e7451cf.tar.gz
crow-c19eed028535b847489ca03a43fc4dc42e7451cf.zip
add support for "Expect: 100-continue"
Diffstat (limited to 'parser.h')
-rw-r--r--parser.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/parser.h b/parser.h
index 5e686b2..87d9562 100644
--- a/parser.h
+++ b/parser.h
@@ -66,6 +66,7 @@ namespace crow
boost::algorithm::to_lower(self->header_field);
self->headers.emplace(std::move(self->header_field), std::move(self->header_value));
}
+ self->process_header();
return 0;
}
static int on_body(http_parser* self_, const char* at, size_t length)
@@ -118,16 +119,26 @@ namespace crow
body.clear();
}
+ void process_header()
+ {
+ handler_->handle_header();
+ }
+
void process_message()
{
handler_->handle();
}
- request to_request()
+ request to_request() const
{
return request{(HTTPMethod)method, std::move(url), std::move(headers), std::move(body)};
}
+ bool check_version(int major, int minor) const
+ {
+ return http_major == major && http_minor == minor;
+ }
+
std::string url;
int header_building_state = 0;
std::string header_field;