diff options
Diffstat (limited to 'telnetd.cpp')
-rw-r--r-- | telnetd.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/telnetd.cpp b/telnetd.cpp new file mode 100644 index 0000000..9999d50 --- /dev/null +++ b/telnetd.cpp @@ -0,0 +1,19 @@ +#include "telnetd.h" + +#include <boost/bind.hpp> + +telnet::Server::Server(boost::asio::io_service& io_service, const tcp::endpoint& endpoint) : acceptor_(io_service, endpoint) { + start_accept(); +} + +void telnet::Server::start_accept() { + Connection::p new_connection = Connection::p(new Connection(acceptor_.io_service())); + acceptor_.async_accept(new_connection->socket, boost::bind(&Server::handle_accept, this, new_connection, boost::asio::placeholders::error)); +} + +void telnet::Server::handle_accept(Connection::p new_connection, const boost::system::error_code& error) { + if(!error) { + new_connection->start(); + start_accept(); + } +} |