diff options
author | Christian Pointner <equinox@anytun.org> | 2017-08-15 01:00:41 +0200 |
---|---|---|
committer | Christian Pointner <equinox@anytun.org> | 2017-08-15 01:00:41 +0200 |
commit | 05911a4b4613cd2bf45c0b5b16449884ca24f7e0 (patch) | |
tree | 0d1516d18069fd4287f5f64f31f7888d792f813e /tuntap | |
parent | implemented post up script (diff) |
improved workaround for interface name 0-byte padding
Diffstat (limited to 'tuntap')
-rw-r--r-- | tuntap/tuntap.go | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/tuntap/tuntap.go b/tuntap/tuntap.go index db1492f..18688b4 100644 --- a/tuntap/tuntap.go +++ b/tuntap/tuntap.go @@ -64,7 +64,7 @@ func (dev *Device) Configure(addr net.IPNet) error { // TODO: this only works on linux... ln, err := netlink.LinkByName(dev.ifname) if err != nil { - return fmt.Errorf("netlink(open netlink by name) failed: %v", dev.ifname, err) + return fmt.Errorf("netlink(open netlink by name) failed: %v", err) } if err = netlink.AddrAdd(ln, &netlink.Addr{IPNet: &addr}); err != nil { return fmt.Errorf("netlink(addr add) failed: %v", err) @@ -106,7 +106,13 @@ func NewTunDevice(name string) (dev *Device, err error) { if dev.iface, err = extlib.Open(name, extlib.DevTun, true); err != nil { return } - dev.ifname = strings.TrimRight(dev.iface.Name(), "\x00") // TODO: fix this upstream + dev.ifname = dev.iface.Name() + // TODO: remove the following as soon as https://github.com/lab11/go-tuntap/pull/3 is merged + idx := strings.IndexByte(dev.ifname, 0) + if idx < 0 { + idx = len(dev.ifname) + } + dev.ifname = dev.ifname[:idx] return } @@ -115,7 +121,13 @@ func NewTapDevice(name string) (dev *Device, err error) { if dev.iface, err = extlib.Open(name, extlib.DevTap, false); err != nil { return } - dev.ifname = strings.TrimRight(dev.iface.Name(), "\x00") // TODO: fix this upstream + dev.ifname = dev.iface.Name() + // TODO: remove the following as soon as https://github.com/lab11/go-tuntap/pull/3 is merged + idx := strings.IndexByte(dev.ifname, 0) + if idx < 0 { + idx = len(dev.ifname) + } + dev.ifname = dev.ifname[:idx] return } |