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
 | 
			
		||||
				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)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
@ -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":
 | 
			
		||||
 | 
			
		||||
		Loading…
	
		Reference in New Issue
	
	Block a user