From 4f9ad1a3db5def3e59258a7f51413a85fb196850 Mon Sep 17 00:00:00 2001 From: Othmar Gsenger Date: Thu, 13 Mar 2008 16:46:09 +0000 Subject: renamed cpp files --- anyctr.cpp | 104 ---------------------------------------------------- anymux.cpp | 103 --------------------------------------------------- anytun-config.cpp | 104 ++++++++++++++++++++++++++++++++++++++++++++++++++++ anytun-controld.cpp | 103 +++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 207 insertions(+), 207 deletions(-) delete mode 100644 anyctr.cpp delete mode 100644 anymux.cpp create mode 100644 anytun-config.cpp create mode 100644 anytun-controld.cpp diff --git a/anyctr.cpp b/anyctr.cpp deleted file mode 100644 index 537fc81..0000000 --- a/anyctr.cpp +++ /dev/null @@ -1,104 +0,0 @@ -/* - * anytun - * - * The secure anycast tunneling protocol (satp) defines a protocol used - * for communication between any combination of unicast and anycast - * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel - * mode and allows tunneling of every ETHER TYPE protocol (e.g. - * ethernet, ip, arp ...). satp directly includes cryptography and - * message authentication based on the methodes used by SRTP. It is - * intended to deliver a generic, scaleable and secure solution for - * tunneling and relaying of packets of any protocol. - * - * - * Copyright (C) 2007 anytun.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING included with this - * distribution); if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include - -#include "datatypes.h" - -#include "log.h" -#include "buffer.h" -#include "keyDerivation.h" -#include "keyDerivationFactory.h" -#include "signalController.h" -#include "anyctrOptions.h" -#include "connectionList.h" -#include "routingTable.h" -#include "networkAddress.h" - -#include "syncQueue.h" -#include "syncSocketHandler.h" -#include "syncListenSocket.h" - -#include "syncSocket.h" -#include "syncClientSocket.h" -#include "syncCommand.h" - - - -void createConnection(const std::string & remote_host, u_int16_t remote_port, ConnectionList & cl, u_int16_t seqSize, SyncQueue & queue, mux_t mux) -{ - SeqWindow * seq = new SeqWindow(seqSize); - seq_nr_t seq_nr_ = 0; - KeyDerivation * kd = KeyDerivationFactory::create( gOpt.getKdPrf() ); - kd->init( gOpt.getKey(), gOpt.getSalt() ); - cLog.msg(Log::PRIO_NOTICE) << "added connection remote host " << remote_host << ":" << remote_port; - ConnectionParam connparam ( (*kd), (*seq), seq_nr_, remote_host, remote_port ); - cl.addConnection( connparam, mux ); - NetworkAddress addr( ipv4, gOpt.getIfconfigParamRemoteNetmask().c_str() ); - NetworkPrefix prefix( addr,gOpt.getNetworkPrefixLength() ); - -//TODO: FIX this not -// prefix.setNetworkPrefixLength(gOpt.getNetworkPrefixLength()); - - gRoutingTable.addRoute( prefix, mux ); - std::ostringstream sout; - boost::archive::text_oarchive oa( sout ); - const SyncCommand scom( cl, mux ); - const SyncCommand scom2( prefix ); - - oa << scom; - std::cout << std::setw(5) << std::setfill('0') << sout.str().size()<< ' ' << sout.str() << std::endl; - std::ostringstream sout2; - boost::archive::text_oarchive oa2( sout2 ); - oa2 << scom2; - std::cout << std::setw(5) << std::setfill('0') << sout2.str().size()<< ' ' << sout2.str() << std::endl; -} - -int main(int argc, char* argv[]) -{ - int ret=0; - if(!gOpt.parse(argc, argv)) - { - gOpt.printUsage(); - exit(-1); - } - - SignalController sig; - sig.init(); - - ConnectionList cl; - SyncQueue queue; - - createConnection(gOpt.getRemoteAddr(),gOpt.getRemotePort(),cl,gOpt.getSeqWindowSize(), queue, gOpt.getMux()); - - return ret; -} - diff --git a/anymux.cpp b/anymux.cpp deleted file mode 100644 index ff5db52..0000000 --- a/anymux.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * anytun - * - * The secure anycast tunneling protocol (satp) defines a protocol used - * for communication between any combination of unicast and anycast - * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel - * mode and allows tunneling of every ETHER TYPE protocol (e.g. - * ethernet, ip, arp ...). satp directly includes cryptography and - * message authentication based on the methodes used by SRTP. It is - * intended to deliver a generic, scaleable and secure solution for - * tunneling and relaying of packets of any protocol. - * - * - * Copyright (C) 2007 anytun.org - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program (see the file COPYING included with this - * distribution); if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include - -#include "datatypes.h" - -#include "log.h" -#include "signalController.h" -#include "anymuxOptions.h" - -#include "muxSocket.h" -#include "Sockets/ListenSocket.h" -#include "Sockets/SocketHandler.h" - - -class ThreadParam -{ -public: - ThreadParam() : port(0) {}; - u_int16_t port; -}; - - -void* syncListener(void* p ) -{ - ThreadParam* param = reinterpret_cast(p); - SOCKETS_NAMESPACE::SocketHandler h; - SOCKETS_NAMESPACE::ListenSocket l(h,true); - - if( l.Bind(param->port) ) - pthread_exit(NULL); - - Utility::ResolveLocal(); // resolve local hostname - h.Add(&l); - h.Select(1,0); - while (1) { - h.Select(1,0); - } -} -int main(int argc, char* argv[]) -{ - if(!gOpt.parse(argc, argv)) - { - gOpt.printUsage(); - exit(-1); - } - - std::ifstream file( gOpt.getFileName().c_str() ); - if( file.is_open() ) - file.close(); - else - { - std::cout << "ERROR: unable to open file!" << std::endl; - exit(-1); - } - - SignalController sig; - sig.init(); - - ThreadParam p; - p.port = gOpt.getLocalPort(); - pthread_t syncListenerThread; - pthread_create(&syncListenerThread, NULL, syncListener, &p); - - int ret = sig.run(); - - pthread_cancel(syncListenerThread); - - pthread_join(syncListenerThread, NULL); - - return ret; -} - diff --git a/anytun-config.cpp b/anytun-config.cpp new file mode 100644 index 0000000..537fc81 --- /dev/null +++ b/anytun-config.cpp @@ -0,0 +1,104 @@ +/* + * anytun + * + * The secure anycast tunneling protocol (satp) defines a protocol used + * for communication between any combination of unicast and anycast + * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel + * mode and allows tunneling of every ETHER TYPE protocol (e.g. + * ethernet, ip, arp ...). satp directly includes cryptography and + * message authentication based on the methodes used by SRTP. It is + * intended to deliver a generic, scaleable and secure solution for + * tunneling and relaying of packets of any protocol. + * + * + * Copyright (C) 2007 anytun.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program (see the file COPYING included with this + * distribution); if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include + +#include "datatypes.h" + +#include "log.h" +#include "buffer.h" +#include "keyDerivation.h" +#include "keyDerivationFactory.h" +#include "signalController.h" +#include "anyctrOptions.h" +#include "connectionList.h" +#include "routingTable.h" +#include "networkAddress.h" + +#include "syncQueue.h" +#include "syncSocketHandler.h" +#include "syncListenSocket.h" + +#include "syncSocket.h" +#include "syncClientSocket.h" +#include "syncCommand.h" + + + +void createConnection(const std::string & remote_host, u_int16_t remote_port, ConnectionList & cl, u_int16_t seqSize, SyncQueue & queue, mux_t mux) +{ + SeqWindow * seq = new SeqWindow(seqSize); + seq_nr_t seq_nr_ = 0; + KeyDerivation * kd = KeyDerivationFactory::create( gOpt.getKdPrf() ); + kd->init( gOpt.getKey(), gOpt.getSalt() ); + cLog.msg(Log::PRIO_NOTICE) << "added connection remote host " << remote_host << ":" << remote_port; + ConnectionParam connparam ( (*kd), (*seq), seq_nr_, remote_host, remote_port ); + cl.addConnection( connparam, mux ); + NetworkAddress addr( ipv4, gOpt.getIfconfigParamRemoteNetmask().c_str() ); + NetworkPrefix prefix( addr,gOpt.getNetworkPrefixLength() ); + +//TODO: FIX this not +// prefix.setNetworkPrefixLength(gOpt.getNetworkPrefixLength()); + + gRoutingTable.addRoute( prefix, mux ); + std::ostringstream sout; + boost::archive::text_oarchive oa( sout ); + const SyncCommand scom( cl, mux ); + const SyncCommand scom2( prefix ); + + oa << scom; + std::cout << std::setw(5) << std::setfill('0') << sout.str().size()<< ' ' << sout.str() << std::endl; + std::ostringstream sout2; + boost::archive::text_oarchive oa2( sout2 ); + oa2 << scom2; + std::cout << std::setw(5) << std::setfill('0') << sout2.str().size()<< ' ' << sout2.str() << std::endl; +} + +int main(int argc, char* argv[]) +{ + int ret=0; + if(!gOpt.parse(argc, argv)) + { + gOpt.printUsage(); + exit(-1); + } + + SignalController sig; + sig.init(); + + ConnectionList cl; + SyncQueue queue; + + createConnection(gOpt.getRemoteAddr(),gOpt.getRemotePort(),cl,gOpt.getSeqWindowSize(), queue, gOpt.getMux()); + + return ret; +} + diff --git a/anytun-controld.cpp b/anytun-controld.cpp new file mode 100644 index 0000000..ff5db52 --- /dev/null +++ b/anytun-controld.cpp @@ -0,0 +1,103 @@ +/* + * anytun + * + * The secure anycast tunneling protocol (satp) defines a protocol used + * for communication between any combination of unicast and anycast + * tunnel endpoints. It has less protocol overhead than IPSec in Tunnel + * mode and allows tunneling of every ETHER TYPE protocol (e.g. + * ethernet, ip, arp ...). satp directly includes cryptography and + * message authentication based on the methodes used by SRTP. It is + * intended to deliver a generic, scaleable and secure solution for + * tunneling and relaying of packets of any protocol. + * + * + * Copyright (C) 2007 anytun.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program (see the file COPYING included with this + * distribution); if not, write to the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include +#include +#include + +#include "datatypes.h" + +#include "log.h" +#include "signalController.h" +#include "anymuxOptions.h" + +#include "muxSocket.h" +#include "Sockets/ListenSocket.h" +#include "Sockets/SocketHandler.h" + + +class ThreadParam +{ +public: + ThreadParam() : port(0) {}; + u_int16_t port; +}; + + +void* syncListener(void* p ) +{ + ThreadParam* param = reinterpret_cast(p); + SOCKETS_NAMESPACE::SocketHandler h; + SOCKETS_NAMESPACE::ListenSocket l(h,true); + + if( l.Bind(param->port) ) + pthread_exit(NULL); + + Utility::ResolveLocal(); // resolve local hostname + h.Add(&l); + h.Select(1,0); + while (1) { + h.Select(1,0); + } +} +int main(int argc, char* argv[]) +{ + if(!gOpt.parse(argc, argv)) + { + gOpt.printUsage(); + exit(-1); + } + + std::ifstream file( gOpt.getFileName().c_str() ); + if( file.is_open() ) + file.close(); + else + { + std::cout << "ERROR: unable to open file!" << std::endl; + exit(-1); + } + + SignalController sig; + sig.init(); + + ThreadParam p; + p.port = gOpt.getLocalPort(); + pthread_t syncListenerThread; + pthread_create(&syncListenerThread, NULL, syncListener, &p); + + int ret = sig.run(); + + pthread_cancel(syncListenerThread); + + pthread_join(syncListenerThread, NULL); + + return ret; +} + -- cgit v1.2.3