summaryrefslogtreecommitdiff
path: root/httpd.cpp
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-12-28 00:43:12 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2010-12-28 00:43:12 +0100
commit1d05994fe1d9488193f01b47e92dcf11920c8f02 (patch)
treef4040712f6914b78004895ae6192cf2162ea0804 /httpd.cpp
parent1a8f351248c38445189a397035e8a2cb3182ea6a (diff)
Misc changes in HTTP code.
Diffstat (limited to 'httpd.cpp')
-rw-r--r--httpd.cpp14
1 files changed, 4 insertions, 10 deletions
diff --git a/httpd.cpp b/httpd.cpp
index 8eac976..6da58b1 100644
--- a/httpd.cpp
+++ b/httpd.cpp
@@ -18,29 +18,23 @@ void HTTPConnection::handle_write(const boost::system::error_code& error, size_t
void HTTPConnection::handle_read(const boost::system::error_code& error, size_t bytes_transferred) {
std::istream is(&buf);
-
HTTPRequest req(is);
- boost::asio::streambuf b;
- std::ostream os(&b);
+ boost::asio::streambuf hdr_buf, data_buf;
+ std::ostream hdr_os(&hdr_buf), data_os(&data_buf);
- HTTPResponse res;
+ HTTPResponse res(socket);
MusicListing *ml = music::find(req.path);
if(ml) {
res.code = 200;
res.status = "OK";
- res.add_header("content-type", "text/html");
- res.write_headers(os);
- ml->render(os);
+ ml->render(res);
} else {
res.code = 404;
res.status = "Not Found";
- res.write_headers(os);
}
-
- boost::asio::write(socket, b);
}
HTTPConnection::pointer HTTPConnection::create(boost::asio::io_service& io_service) {