From 9f78196611d8065f63ae4a81297723663d222ebe Mon Sep 17 00:00:00 2001 From: Jon Bergli Heier Date: Mon, 27 Dec 2010 02:47:56 +0100 Subject: Added a simple HTTP service which doesn't yet do anything useful. --- httpd.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 httpd.cpp (limited to 'httpd.cpp') diff --git a/httpd.cpp b/httpd.cpp new file mode 100644 index 0000000..5de9948 --- /dev/null +++ b/httpd.cpp @@ -0,0 +1,35 @@ +#include "httpd.h" + +#include + +#include + +HTTPConnection::HTTPConnection(boost::asio::io_service& io_service) : socket(io_service) { +} + +void HTTPConnection::handle_write(const boost::system::error_code& error, size_t bytes_transferred) { +} + +HTTPConnection::pointer HTTPConnection::create(boost::asio::io_service& io_service) { + return pointer(new HTTPConnection(io_service)); +} + +void HTTPConnection::start() { + std::cout << "kake" << std::endl; +} + +HTTPServer::HTTPServer(boost::asio::io_service& io_service) : acceptor_(io_service, tcp::endpoint(tcp::v4(), 8000)) { + start_accept(); +} + +void HTTPServer::start_accept() { + HTTPConnection::pointer new_connection = HTTPConnection::create(acceptor_.io_service()); + acceptor_.async_accept(new_connection->socket, boost::bind(&HTTPServer::handle_accept, this, new_connection, boost::asio::placeholders::error)); +} + +void HTTPServer::handle_accept(HTTPConnection::pointer new_connection, const boost::system::error_code& error) { + if(!error) { + new_connection->start(); + start_accept(); + } +} -- cgit v1.2.3