Fixed fwmark update without device status change
An update of the fwmark was missing, when the device was not bought up after the change.
This commit is contained in:
parent
9360bac632
commit
5f01086f19
|
@ -50,7 +50,9 @@ func (device *Device) RoutineTUNEventReader() {
|
||||||
// begin listening for incomming datagrams
|
// begin listening for incomming datagrams
|
||||||
logInfo.Println("Interface set up")
|
logInfo.Println("Interface set up")
|
||||||
device.tun.isUp.Set(true)
|
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
|
// stop listening for incomming datagrams
|
||||||
logInfo.Println("Interface set down")
|
logInfo.Println("Interface set down")
|
||||||
device.tun.isUp.Set(false)
|
device.tun.isUp.Set(false)
|
||||||
closeBind(device)
|
if err := closeBind(device); err != nil {
|
||||||
|
logInfo.Println("Failed to close UDP socket:", err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -163,6 +163,9 @@ func ipcSetOperation(device *Device, socket *bufio.ReadWriter) *IPCError {
|
||||||
|
|
||||||
device.net.mutex.Lock()
|
device.net.mutex.Lock()
|
||||||
device.net.fwmark = uint32(fwmark)
|
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()
|
device.net.mutex.Unlock()
|
||||||
|
|
||||||
case "public_key":
|
case "public_key":
|
||||||
|
|
Loading…
Reference in a new issue