mirror of https://github.com/deavmi/libtun.git
Throw exception on read failure (one of them atleast when status < 0)
Added close method to close tun interface
This commit is contained in:
parent
d98e10ba22
commit
00fd2bba7e
|
@ -55,6 +55,7 @@ public class TUNAdapter
|
||||||
{
|
{
|
||||||
sanityCheck();
|
sanityCheck();
|
||||||
|
|
||||||
|
/* TODO: Get device MTU and add functions for setting it */
|
||||||
ushort mtu = cast(ushort)-1;
|
ushort mtu = cast(ushort)-1;
|
||||||
|
|
||||||
/* Temporary scratchpad buffer */
|
/* Temporary scratchpad buffer */
|
||||||
|
@ -75,7 +76,7 @@ public class TUNAdapter
|
||||||
|
|
||||||
if(status < 0)
|
if(status < 0)
|
||||||
{
|
{
|
||||||
|
throw new TUNException("Read failed");
|
||||||
}
|
}
|
||||||
else if(status == 0)
|
else if(status == 0)
|
||||||
{
|
{
|
||||||
|
@ -103,6 +104,16 @@ public class TUNAdapter
|
||||||
|
|
||||||
tunWrite(tunFD, cast(char*)buffer.ptr, cast(int)buffer.length);
|
tunWrite(tunFD, cast(char*)buffer.ptr, cast(int)buffer.length);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void close()
|
||||||
|
{
|
||||||
|
int status = destroyTun(tunFD);
|
||||||
|
|
||||||
|
if(status)
|
||||||
|
{
|
||||||
|
throw new TUNException("Closing tun interface failed");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public final class TUNException : Exception
|
public final class TUNException : Exception
|
||||||
|
|
|
@ -50,7 +50,7 @@ int createTun(char* interfaceName, int iffFlags)
|
||||||
|
|
||||||
int destroyTun(int fd)
|
int destroyTun(int fd)
|
||||||
{
|
{
|
||||||
return 68;
|
return close(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
int tunWrite(int fd, char* data, int length)
|
int tunWrite(int fd, char* data, int length)
|
||||||
|
|
Loading…
Reference in New Issue