summaryrefslogtreecommitdiff
path: root/http_connection.cpp
diff options
context:
space:
mode:
authorVegard Storheil Eriksen <zyp@jvnv.net>2011-01-02 13:41:11 +0100
committerVegard Storheil Eriksen <zyp@jvnv.net>2011-01-02 13:41:11 +0100
commit77b0a5908e0871b1d3b8aae7b5a8cd241dff9d63 (patch)
tree53037cb3a16f6711fbd9b4d10118214be170b64a /http_connection.cpp
parent1a5f29542ff55be2bf31e164448c0c6e8179ee38 (diff)
Copy buffer contents to string to workaround bug with boost::asio::buffers_iterator.
Diffstat (limited to 'http_connection.cpp')
-rw-r--r--http_connection.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/http_connection.cpp b/http_connection.cpp
index e682037..0873985 100644
--- a/http_connection.cpp
+++ b/http_connection.cpp
@@ -62,10 +62,12 @@ void print(char c) {
}
bool HTTP::Connection::parse_request(boost::asio::streambuf& buf) {
- typedef boost::asio::buffers_iterator<boost::asio::streambuf::const_buffers_type> Iterator;
+ std::string data(boost::asio::buffers_begin(buf.data()), boost::asio::buffers_end(buf.data()));
- Iterator begin = Iterator::begin(buf.data());
- Iterator end = Iterator::end(buf.data());
+ typedef std::string::const_iterator Iterator;
+
+ Iterator begin = data.begin();
+ Iterator end = data.end();
qi::rule<Iterator, std::string()> word_p = +(qi::char_ - ' ' - '\r');