From: Jason A. Donenfeld Date: Fri, 17 May 2019 13:35:20 +0000 (+0200) Subject: device: fail to give bind if it doesn't exist X-Git-Tag: 0.0.20190805~70 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c718f3940d6546f83cc14c4f121d52470a705c31;p=thirdparty%2Fwireguard-go.git device: fail to give bind if it doesn't exist --- diff --git a/device/boundif_android.go b/device/boundif_android.go index ecc9331..6d0fecf 100644 --- a/device/boundif_android.go +++ b/device/boundif_android.go @@ -5,8 +5,14 @@ package device +import "errors" + func (device *Device) PeekLookAtSocketFd4() (fd int, err error) { - sysconn, err := device.net.bind.(*nativeBind).ipv4.SyscallConn() + nb, ok := device.net.bind.(*nativeBind) + if !ok { + return 0, errors.New("no socket exists") + } + sysconn, err := nb.ipv4.SyscallConn() if err != nil { return } @@ -20,7 +26,11 @@ func (device *Device) PeekLookAtSocketFd4() (fd int, err error) { } func (device *Device) PeekLookAtSocketFd6() (fd int, err error) { - sysconn, err := device.net.bind.(*nativeBind).ipv6.SyscallConn() + nb, ok := device.net.bind.(*nativeBind) + if !ok { + return 0, errors.New("no socket exists") + } + sysconn, err := nb.ipv6.SyscallConn() if err != nil { return } diff --git a/device/device.go b/device/device.go index ef269f5..fa7ed88 100644 --- a/device/device.go +++ b/device/device.go @@ -133,6 +133,7 @@ func deviceUpdateState(device *Device) { switch newIsUp { case true: if err := device.BindUpdate(); err != nil { + device.log.Error.Printf("Unable to update bind: %v\n", err) device.isUp.Set(false) break }