X-Git-Url: https://git.syn-net.org/debian/?p=anytun.git;a=blobdiff_plain;f=src%2Fanytun-showtables.cpp;h=7e1e6aeeb3e92eb4e24f68db588d36438e82a875;hp=ff851c9ef6a8692cb2e49764768b8a65c905a95f;hb=ef0cacf2508418915d3f64b04003be3c13fed3cc;hpb=ece844834d2cecc028ce81ca283f5d441088580e diff --git a/src/anytun-showtables.cpp b/src/anytun-showtables.cpp index ff851c9..7e1e6ae 100644 --- a/src/anytun-showtables.cpp +++ b/src/anytun-showtables.cpp @@ -11,7 +11,7 @@ * tunneling and relaying of packets of any protocol. * * - * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, + * Copyright (C) 2007-2009 Othmar Gsenger, Erwin Nindl, * Christian Pointner * * This file is part of Anytun. @@ -51,86 +51,78 @@ void output() { - ConnectionList &cl(gConnectionList); - if( !cl.empty() ) - { - ConnectionMap::iterator it = cl.getBeginUnlocked(); - mux_t mux = it->first; - ConnectionParam &conn( it->second ); - std::cout << "Client " << mux << ": " ; - if( conn.remote_end_==PacketSourceEndpoint()) - { - std::cout<< "not registered"; - } else { - std::cout<< conn.remote_end_; - } - std::cout << std::endl; + ConnectionList& cl(gConnectionList); + if(!cl.empty()) { + ConnectionMap::iterator it = cl.getBeginUnlocked(); + mux_t mux = it->first; + ConnectionParam& conn(it->second); + std::cout << "Client " << mux << ": " ; + if(conn.remote_end_==PacketSourceEndpoint()) { + std::cout<< "not registered"; + } else { + std::cout<< conn.remote_end_; + } + std::cout << std::endl; //std::cout << "Connection: Keyderivation-Type: " << conn.kd_.printType() << std::endl; cl.clear(); - } else { - network_address_type_t types[] = {ipv4,ipv6,ethernet}; - for (int types_idx=0; types_idx<3; types_idx++) - { - network_address_type_t type = types[types_idx]; - if( !gRoutingTable.empty(type) ) - { - RoutingMap::iterator it = gRoutingTable.getBeginUnlocked(type); - NetworkPrefix pref( it->first ); - std::cout << "Route: " << pref.toString() << "/" << (int)pref.getNetworkPrefixLength() << " -> "; - mux_t mux = it->second; - std::cout << mux << std::endl; - gRoutingTable.clear(type); - } - } - } + } else { + network_address_type_t types[] = {ipv4,ipv6,ethernet}; + for(int types_idx=0; types_idx<3; types_idx++) { + network_address_type_t type = types[types_idx]; + if(!gRoutingTable.empty(type)) { + RoutingMap::iterator it = gRoutingTable.getBeginUnlocked(type); + NetworkPrefix pref(it->first); + std::cout << "Route: " << pref.toString() << "/" << (int)pref.getNetworkPrefixLength() << " -> "; + mux_t mux = it->second; + std::cout << mux << std::endl; + gRoutingTable.clear(type); + } + } + } } -void readExactly(size_t toread, std::iostream & result) +void readExactly(size_t toread, std::iostream& result) { size_t hasread = 0; - while (toread > hasread && std::cin.good()) - { - char a[1]; - std::cin.read(a,1); - result.write(a,1); - hasread++; + while(toread > hasread && std::cin.good()) { + char a[1]; + std::cin.read(a,1); + result.write(a,1); + hasread++; } } void readAndProcessOne() { size_t message_lenght ; - std::stringstream message_lenght_stream; - readExactly(5,message_lenght_stream); - message_lenght_stream >> message_lenght; - std::stringstream void_stream; - readExactly(1,void_stream); //skip space - if (!message_lenght) - return; - std::stringstream sync_command_stream; - readExactly(message_lenght, sync_command_stream); - //std::cout << message_lenght << std::endl; - //std::cout << sync_command_stream.str()<< std::endl; - boost::archive::text_iarchive ia(sync_command_stream); - SyncCommand scom(gConnectionList); - ia >> scom; + std::stringstream message_lenght_stream; + readExactly(5,message_lenght_stream); + message_lenght_stream >> message_lenght; + std::stringstream void_stream; + readExactly(1,void_stream); //skip space + if(!message_lenght) { + return; + } + std::stringstream sync_command_stream; + readExactly(message_lenght, sync_command_stream); + //std::cout << message_lenght << std::endl; + //std::cout << sync_command_stream.str()<< std::endl; + boost::archive::text_iarchive ia(sync_command_stream); + SyncCommand scom(gConnectionList); + ia >> scom; } int main(int argc, char* argv[]) { int ret = 0; - while( std::cin.good() ) - { - try - { - readAndProcessOne(); - } - catch(std::exception& e) - { - std::cout << "uncaught exception, exiting: " << e.what() << std::endl; - } - output(); + while(std::cin.good()) { + try { + readAndProcessOne(); + } catch(std::exception& e) { + std::cout << "uncaught exception, exiting: " << e.what() << std::endl; + } + output(); } return ret; }