]> git.ipfire.org Git - thirdparty/wireguard-go.git/commitdiff
tun: openbsd: don't change MTU when it's already the expected size
authorMichael Zeltner <m@niij.org>
Wed, 17 Jul 2019 21:04:01 +0000 (23:04 +0200)
committerJason A. Donenfeld <Jason@zx2c4.com>
Thu, 18 Jul 2019 08:25:20 +0000 (10:25 +0200)
Allows for running wireguard-go as non-root user.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
tun/tun_openbsd.go

index 1e6191f28d6ede5ae76630c7f871eecbe9874006..bbc0432cbf1cd854cc0590c166646a5d44499fff 100644 (file)
@@ -173,10 +173,13 @@ func CreateTUNFromFile(file *os.File, mtu int) (Device, error) {
 
        go tun.routineRouteListener(tunIfindex)
 
-       err = tun.setMTU(mtu)
-       if err != nil {
-               tun.Close()
-               return nil, err
+       currentMTU, err := tun.MTU()
+       if err != nil || currentMTU != mtu {
+               err = tun.setMTU(mtu)
+               if err != nil {
+                       tun.Close()
+                       return nil, err
+               }
        }
 
        return tun, nil