diff --git a/src/tun.go b/src/tun.go index 54253b4..394ba9a 100644 --- a/src/tun.go +++ b/src/tun.go @@ -50,7 +50,9 @@ func (device *Device) RoutineTUNEventReader() { // begin listening for incomming datagrams logInfo.Println("Interface set up") device.tun.isUp.Set(true) - updateBind(device) + if err := updateBind(device); err != nil { + logInfo.Println("Failed to bind UDP socket:", err) + } } } @@ -59,7 +61,9 @@ func (device *Device) RoutineTUNEventReader() { // stop listening for incomming datagrams logInfo.Println("Interface set down") device.tun.isUp.Set(false) - closeBind(device) + if err := closeBind(device); err != nil { + logInfo.Println("Failed to close UDP socket:", err) + } } } } diff --git a/src/uapi.go b/src/uapi.go index 155f483..673d413 100644 --- a/src/uapi.go +++ b/src/uapi.go @@ -163,6 +163,9 @@ func ipcSetOperation(device *Device, socket *bufio.ReadWriter) *IPCError { device.net.mutex.Lock() device.net.fwmark = uint32(fwmark) + if err := device.net.bind.SetMark(fwmark); err != nil { + logError.Println("Failed to update fwmark:", err) + } device.net.mutex.Unlock() case "public_key":