X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Console%2FServer.cc;h=ac9f034c693a644d01ded11c9141dbc4163cb7aa;hb=489be2bbd4d03259a17df14e4962a4524cd5b654;hp=d6491bf6c27cc66e2bd5bd6c336a916d0c3b05e3;hpb=1a7c3a40d3e477b789c3fdfe7cacb01649d47edf;p=senf.git diff --git a/Console/Server.cc b/Console/Server.cc index d6491bf..ac9f034 100644 --- a/Console/Server.cc +++ b/Console/Server.cc @@ -27,7 +27,6 @@ #include "Server.ih" // Custom includes -#include #include #include #include @@ -167,7 +166,8 @@ prefix_ void senf::console::detail::DumbClientReader::showPrompt() { std::string prompt (promptString()); - stream() << prompt << std::flush; + stream() << std::flush; + handle().write(prompt); promptLen_ = prompt.size(); promptActive_ = true; } @@ -197,6 +197,7 @@ prefix_ senf::console::Client::Client(Server & server, ClientHandle handle, : out_t(boost::ref(*this)), senf::log::IOStreamTarget(out_t::member), server_ (server), handle_ (handle), name_ (name), reader_ (new detail::SafeReadlineClientReader (*this)) { + executor_.autocd(true).autocomplete(true); handle_.facet().nodelay(); // route< senf::SenfLog, senf::log::NOTICE >(); } @@ -246,6 +247,24 @@ prefix_ void senf::console::Client::v_write(boost::posix_time::ptime timestamp, reader_->enablePrompt(); } +prefix_ std::ostream & senf::console::operator<<(std::ostream & os, Client const & client) +{ + // typedef senf::ClientSocketHandle::policy > v4Socket; + if( senf::check_socket_cast( client.handle())) { + os<( client.handle()).peer(); + } + else if( senf::check_socket_cast( client.handle())) { + os<( client.handle()).peer(); + } + else{ + os<<((void *)&client); + } + return os; +} +prefix_ std::ostream & senf::console::operator<<(std::ostream & os, Client * client) +{ + return os<<*client; +} ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ //#include "Server.mpp"