--- gvpe/src/device-linux.C 2003/03/01 15:53:03 1.1 +++ gvpe/src/device-linux.C 2003/10/14 03:22:09 1.3 @@ -30,8 +30,10 @@ #include #include +#include + #ifdef LINUX_IF_TUN_H -#include LINUX_IF_TUN_H +# include LINUX_IF_TUN_H #else #include #endif @@ -41,6 +43,12 @@ #include "conf.h" +const char * +tap_device::info () +{ + return _("Linux tun/tap device"); +} + tap_device::tap_device () { struct ifreq ifr; @@ -74,9 +82,8 @@ exit (1); } - if (conf.ifpersist) - if (ioctl (fd, TUNSETPERSIST, 1)) - slog (L_WARN, _("cannot set persistent mode for device %s: %s"), ifrname, strerror (errno)); + if (ioctl (fd, TUNSETPERSIST, conf.ifpersist ? 1 : 0)) + slog (L_WARN, _("cannot set persistency mode for device %s: %s"), ifrname, strerror (errno)); slog (L_DEBUG, _("%s is a %s"), device, info ()); } @@ -95,9 +102,9 @@ if (pkt->len <= 0) { + delete pkt; slog (L_ERR, _("error while reading from %s %s: %s"), info (), DEFAULT_DEVICE, strerror (errno)); - free (pkt); return 0; }