summaryrefslogtreecommitdiff
path: root/telnetd.cpp
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2010-12-31 01:25:38 +0100
committerJon Bergli Heier <snakebite@jvnv.net>2010-12-31 01:25:38 +0100
commit0e7f2cef26bde782a5758b5e9a3dfe20f745df8f (patch)
tree736b53010218fba8134a1660c7a3ad5ef998f01c /telnetd.cpp
parentb439fcd1916cef267bde32f3424d8311519d3d16 (diff)
Added an echoing telnet server as a base for a telnet command interface.
Diffstat (limited to 'telnetd.cpp')
-rw-r--r--telnetd.cpp19
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();
+ }
+}