summaryrefslogtreecommitdiff
path: root/anytun.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'anytun.cpp')
-rw-r--r--anytun.cpp74
1 files changed, 46 insertions, 28 deletions
diff --git a/anytun.cpp b/anytun.cpp
index 75d311a..966c3a8 100644
--- a/anytun.cpp
+++ b/anytun.cpp
@@ -29,6 +29,7 @@
*/
#include <iostream>
+#include <poll.h>
#include "datatypes.h"
@@ -41,42 +42,59 @@ int main(int argc, char* argv[])
{
std::cout << "anytun - secure anycast tunneling protocol" << std::endl;
- u_int8_t test[100];
- for(int i=0;i<100;++i)
- test[i] = i;
+// u_int8_t test[100];
+// for(int i=0;i<100;++i)
+// test[i] = i;
- Buffer a(test, 100);
- Buffer b(a);
+// Buffer a(test, 100);
+// Buffer b(a);
- Buffer c;
- c = b;
- c.resize(500);
+// Buffer c;
+// c = b;
+// c.resize(500);
- for(unsigned int i=0;i<c.getLength();++i)
- c[i] = i;
+// for(unsigned int i=0;i<c.getLength();++i)
+// c[i] = i;
-// TunDevice* dev;
-
-// dev = new TunDevice("tun", "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;
+ TunDevice* dev;
+ dev = new TunDevice("tun", "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;
-// sleep(10);
+ sleep(10);
-// Buffer inBuf(2000);
+ Buffer inBuf(2000);
-// int32_t len = 0;
-// do
-// {
-// len = dev->read(inBuf);
-// std::cout << "read " << len << " bytes" << std::endl;
-// }
-// while(len >= 0);
-
-// delete dev;
-// std::cout << "dev destroyed" << std::endl;
+ while(1)
+ {
+ short revents = dev->read(inBuf);
+ if(revents & POLLIN)
+ std::cout << "POLLIN,";
+ else if(revents & POLLRDNORM)
+ std::cout << "POLLRDNORM,";
+ else if(revents & POLLRDBAND)
+ std::cout << "POLLRDBAND,";
+ else if(revents & POLLPRI)
+ std::cout << "POLLPRI,";
+ else if(revents & POLLOUT)
+ std::cout << "POLLOUT,";
+ else if(revents & POLLWRNORM)
+ std::cout << "POLLWRNORM,";
+ else if(revents & POLLWRBAND)
+ std::cout << "POLLWRBAND,";
+ else if(revents & POLLERR)
+ std::cout << "POLLERR,";
+ else if(revents & POLLHUP)
+ std::cout << "POLLHUP,";
+ else if(revents & POLLNVAL)
+ std::cout << "POLLNVAL,";
+ std::cout << std::endl;
+ }
+
+ delete dev;
+ std::cout << "dev destroyed" << std::endl;
// dev = new TunDevice("tap", "192.168.202.1", "255.255.255.0");
// std::cout << "dev created (opened)" << std::endl;