Compare commits

...

3 Commits

Author SHA1 Message Date
dependabot[bot]
31e6822901 Bump github.com/miekg/dns in the patch-updates group
Bumps the patch-updates group with 1 update: [github.com/miekg/dns](https://github.com/miekg/dns).


Updates `github.com/miekg/dns` from 1.1.70 to 1.1.72
- [Commits](https://github.com/miekg/dns/compare/v1.1.70...v1.1.72)

---
updated-dependencies:
- dependency-name: github.com/miekg/dns
  dependency-version: 1.1.72
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patch-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Former-commit-id: 5ddc089fda
Former-commit-id: bedd240d3d
2026-02-03 02:33:38 +00:00
Owen
4850b1b332 Handle cross platform close
Former-commit-id: 89932bb736c7f4b3eb9bb2384b0cf6bd27872c1c
2026-01-31 17:50:31 -08:00
Owen
1ff74f7173 Dont go unregistered when low power mode
Former-commit-id: f55fc8fb39f8efc9d5438465f655dc2d734223c3
2026-01-31 17:15:30 -08:00
7 changed files with 31 additions and 15 deletions

2
go.mod
View File

@@ -7,7 +7,7 @@ require (
github.com/fosrl/newt v1.9.0 github.com/fosrl/newt v1.9.0
github.com/godbus/dbus/v5 v5.2.2 github.com/godbus/dbus/v5 v5.2.2
github.com/gorilla/websocket v1.5.3 github.com/gorilla/websocket v1.5.3
github.com/miekg/dns v1.1.70 github.com/miekg/dns v1.1.72
golang.org/x/sys v0.40.0 golang.org/x/sys v0.40.0
golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb golang.zx2c4.com/wireguard v0.0.0-20250521234502-f333402bd9cb
golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10 golang.zx2c4.com/wireguard/wgctrl v0.0.0-20241231184526-a9ab2273dd10

4
go.sum
View File

@@ -10,8 +10,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg=
github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/miekg/dns v1.1.70 h1:DZ4u2AV35VJxdD9Fo9fIWm119BsQL5cZU1cQ9s0LkqA= github.com/miekg/dns v1.1.72 h1:vhmr+TF2A3tuoGNkLDFK9zi36F2LS+hKTRW0Uf8kbzI=
github.com/miekg/dns v1.1.70/go.mod h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs= github.com/miekg/dns v1.1.72/go.mod h1:+EuEPhdHOsfk6Wk5TT2CzssZdqkmFhf8r+aVyDEToIs=
github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0= github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0=
github.com/vishvananda/netlink v1.3.1/go.mod h1:ARtKouGSTGchR8aMwmkzC0qiNPrrWO5JS/XMVl45+b4= github.com/vishvananda/netlink v1.3.1/go.mod h1:ARtKouGSTGchR8aMwmkzC0qiNPrrWO5JS/XMVl45+b4=
github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY=

View File

@@ -36,7 +36,7 @@ func (o *Olm) handleConnect(msg websocket.WSMessage) {
var wgData WgData var wgData WgData
if o.connected { if o.registered {
logger.Info("Already connected. Ignoring new connection request.") logger.Info("Already connected. Ignoring new connection request.")
return return
} }
@@ -208,7 +208,7 @@ func (o *Olm) handleConnect(msg websocket.WSMessage) {
o.apiServer.SetRegistered(true) o.apiServer.SetRegistered(true)
o.connected = true o.registered = true
// Start ping monitor now that we are registered and connected // Start ping monitor now that we are registered and connected
o.websocket.StartPingMonitor() o.websocket.StartPingMonitor()

View File

@@ -157,7 +157,7 @@ func (o *Olm) handleWgPeerUpdateData(msg websocket.WSMessage) {
func (o *Olm) handleSync(msg websocket.WSMessage) { func (o *Olm) handleSync(msg websocket.WSMessage) {
logger.Debug("Received sync message: %v", msg.Data) logger.Debug("Received sync message: %v", msg.Data)
if !o.connected { if !o.registered {
logger.Warn("Not connected, ignoring sync request") logger.Warn("Not connected, ignoring sync request")
return return
} }

View File

@@ -8,7 +8,6 @@ import (
_ "net/http/pprof" _ "net/http/pprof"
"os" "os"
"sync" "sync"
"syscall"
"time" "time"
"github.com/fosrl/newt/bind" "github.com/fosrl/newt/bind"
@@ -32,7 +31,7 @@ type Olm struct {
privateKey wgtypes.Key privateKey wgtypes.Key
logFile *os.File logFile *os.File
connected bool registered bool
tunnelRunning bool tunnelRunning bool
uapiListener net.Listener uapiListener net.Listener
@@ -386,10 +385,10 @@ func (o *Olm) StartTunnel(config TunnelConfig) {
o.apiServer.SetConnectionStatus(true) o.apiServer.SetConnectionStatus(true)
if o.connected { if o.registered {
o.websocket.StartPingMonitor() o.websocket.StartPingMonitor()
logger.Debug("Already connected, skipping registration") logger.Debug("Already registered, skipping registration")
return nil return nil
} }
@@ -576,7 +575,7 @@ func (o *Olm) Close() {
// If we never created a device from the FD, close it explicitly // If we never created a device from the FD, close it explicitly
// This can happen if tunnel is stopped during registration before handleConnect // This can happen if tunnel is stopped during registration before handleConnect
logger.Debug("Closing unused TUN file descriptor %d", o.tunnelConfig.FileDescriptorTun) logger.Debug("Closing unused TUN file descriptor %d", o.tunnelConfig.FileDescriptorTun)
if err := syscall.Close(int(o.tunnelConfig.FileDescriptorTun)); err != nil { if err := closeFD(o.tunnelConfig.FileDescriptorTun); err != nil {
logger.Error("Failed to close TUN file descriptor: %v", err) logger.Error("Failed to close TUN file descriptor: %v", err)
} else { } else {
logger.Info("Closed unused TUN file descriptor") logger.Info("Closed unused TUN file descriptor")
@@ -615,7 +614,7 @@ func (o *Olm) StopTunnel() error {
} }
// Reset the running state BEFORE cleanup to prevent callbacks from accessing nil pointers // Reset the running state BEFORE cleanup to prevent callbacks from accessing nil pointers
o.connected = false o.registered = false
o.tunnelRunning = false o.tunnelRunning = false
// Cancel the tunnel context if it exists // Cancel the tunnel context if it exists
@@ -739,9 +738,6 @@ func (o *Olm) SetPowerMode(mode string) error {
logger.Info("Switching to low power mode") logger.Info("Switching to low power mode")
// Mark as disconnected so we re-register on reconnect
o.connected = false
// Update API server connection status // Update API server connection status
if o.apiServer != nil { if o.apiServer != nil {
o.apiServer.SetConnectionStatus(false) o.apiServer.SetConnectionStatus(false)

10
olm/olm_unix.go Normal file
View File

@@ -0,0 +1,10 @@
//go:build !windows
package olm
import "syscall"
// closeFD closes a file descriptor in a platform-specific way
func closeFD(fd uint32) error {
return syscall.Close(int(fd))
}

10
olm/olm_windows.go Normal file
View File

@@ -0,0 +1,10 @@
//go:build windows
package olm
import "syscall"
// closeFD closes a file descriptor in a platform-specific way
func closeFD(fd uint32) error {
return syscall.Close(syscall.Handle(fd))
}