diff --git a/source/libtun/adapter.d b/source/libtun/adapter.d index 916934d..390def8 100644 --- a/source/libtun/adapter.d +++ b/source/libtun/adapter.d @@ -9,7 +9,7 @@ import core.stdc.stdio; /** * TUN maintenance routines in `test.c` */ -extern (C) int createTun(char* interafce); +extern (C) int createTun(char* interfaceName, short iffFlags); extern (C) int destroyTun(int fd); public class TUNAdapter @@ -23,7 +23,7 @@ public class TUNAdapter { int tunFD = open(cast(char*)"/dev/net/tun", _F_RDWR); writeln(tunFD); - writeln(createTun(cast(char*)"")); + writeln(createTun(cast(char*)"", 1)); writeln(destroyTun(1)); ioctl(0,0,cast(void*)0); } diff --git a/source/libtun/tunctl.c b/source/libtun/tunctl.c index cdb0c8d..6e02e45 100644 --- a/source/libtun/tunctl.c +++ b/source/libtun/tunctl.c @@ -18,10 +18,16 @@ #include #include -int createTun(char* interfaceName) +int createTun(char* interfaceName, short iffFlags) { /* TODO: Add all required error checking */ int tunFD = open("/dev/net/tun", O_RDWR); + + struct ifreq interfaceReqData; + + interfaceReqData.ifr_flags = iffFlags; + + return 69; }