diff options
Diffstat (limited to 'anytun.cpp')
-rw-r--r-- | anytun.cpp | 45 |
1 files changed, 27 insertions, 18 deletions
@@ -38,30 +38,39 @@ #include "package.h" #include "cypher.h" #include "authAlgo.h" +#include "signalController.h" -int main(int argc, char* argv[]) +void* receiver(void* d) { - std::cout << "anytun - secure anycast tunneling protocol" << std::endl; + TunDevice* dev = reinterpret_cast<TunDevice*>(d); - TunDevice* dev; -// dev = new TunDevice("tun", "192.168.200.1", "192.168.201.1"); - dev = new TunDevice("tap", "192.168.202.1", "255.255.255.0"); -// dev = new TunDevice("tun17", "192.168.200.1", "192.168.201.1"); - std::cout << "dev created (opened)" << std::endl; - std::cout << "dev opened - actual name is '" << dev->getActualName() << "'" << std::endl; - std::cout << "dev type is '" << dev->getType() << "'" << std::endl; - - Buffer inBuf(2000); - int len; - do + Buffer buf(1600); + while(1) { - len = dev->read(inBuf); + int len = dev->read(buf); std::cout << "read " << len << " bytes" << std::endl; } - while(len); + pthread_exit(NULL); +} - delete dev; - std::cout << "dev destroyed" << std::endl; +int main(int argc, char* argv[]) +{ + std::cout << "anytun - secure anycast tunneling protocol" << std::endl; + + SignalController sig; + sig.init(); + +// TunDevice dev("tun", "192.168.200.1", "192.168.201.1"); + TunDevice dev("tap", "192.168.202.1", "255.255.255.0"); +// TunDevice dev("tun17", "192.168.200.1", "192.168.201.1"); + + std::cout << "dev created (opened)" << std::endl; + std::cout << "dev opened - actual name is '" << dev.getActualName() << "'" << std::endl; + std::cout << "dev type is '" << dev.getType() << "'" << std::endl; + + pthread_t receiverThread; + pthread_create(&receiverThread, NULL, receiver, &dev); + pthread_detach(receiverThread); - return 0; + return sig.run();; } |