diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-31 01:25:38 +0100 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-12-31 01:25:38 +0100 |
commit | 0e7f2cef26bde782a5758b5e9a3dfe20f745df8f (patch) | |
tree | 736b53010218fba8134a1660c7a3ad5ef998f01c /telnetd.cpp | |
parent | b439fcd1916cef267bde32f3424d8311519d3d16 (diff) |
Added an echoing telnet server as a base for a telnet command interface.
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(); + } +} |