summaryrefslogtreecommitdiff
path: root/anytun.cpp
diff options
context:
space:
mode:
authorChristian Pointner <equinox@anytun.org>2007-06-20 01:09:52 +0000
committerChristian Pointner <equinox@anytun.org>2007-06-20 01:09:52 +0000
commit9f9798e2c818a133aacc5b0c7b4fc6a6d1d3fddf (patch)
treea7f4965c642e011b1ca28c7bf1b97425d20afe61 /anytun.cpp
parentadded PracticalTCP Socket (diff)
begin multi threading
added signal controller (not working yet)
Diffstat (limited to 'anytun.cpp')
-rw-r--r--anytun.cpp45
1 files changed, 27 insertions, 18 deletions
diff --git a/anytun.cpp b/anytun.cpp
index ba6c688..3047c46 100644
--- a/anytun.cpp
+++ b/anytun.cpp
@@ -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();;
}