Audit changes.

This commit is contained in:
jdl
2026-06-13 19:30:03 +02:00
parent c4a81cf553
commit c325180a1b
2 changed files with 43 additions and 2 deletions

View File

@@ -1,9 +1,12 @@
package peer package peer
import ( import (
"fmt"
"log"
"net/netip" "net/netip"
"os" "os"
"os/signal" "os/signal"
"strings"
"syscall" "syscall"
"time" "time"
@@ -82,6 +85,8 @@ func (a *App) Run() error {
signal.Notify(sig, syscall.SIGTERM, syscall.SIGINT) signal.Notify(sig, syscall.SIGTERM, syscall.SIGINT)
defer signal.Stop(sig) defer signal.Stop(sig)
tickCount := 0
for { for {
select { select {
case p := <-a.hubAddCh: case p := <-a.hubAddCh:
@@ -94,6 +99,11 @@ func (a *App) Run() error {
a.onMulticastDiscovery(e) a.onMulticastDiscovery(e)
case <-ticker.C: case <-ticker.C:
a.onTick() a.onTick()
tickCount++
if tickCount%8 == 0 {
a.logNetworkState()
}
case <-sig: case <-sig:
return a.onShutdown() return a.onShutdown()
} }
@@ -103,3 +113,27 @@ func (a *App) Run() error {
func (a *App) onShutdown() error { func (a *App) onShutdown() error {
return wginterface.Delete(a.dev.Name()) return wginterface.Delete(a.dev.Name())
} }
func (a *App) logNetworkState() {
var b strings.Builder
fmt.Fprintf(&b, "Network state (self: %s public=%v):\n", a.vpnIP, a.isPublic)
fmt.Fprintf(&b, " IPv4: %v\n", a.selfV4)
fmt.Fprintf(&b, " IPv6: %v\n", a.selfV6)
b.WriteString("Peers:\n")
for _, p := range a.peersByIP {
switch p.State {
case StateDirect:
fmt.Fprintf(&b, " %24s %s DIRECT @ %s rtt=%s\n",
p.Name, p.VPNIP, p.WGEndpoint(), p.RTT.Round(time.Millisecond))
case StateProbing:
fmt.Fprintf(&b, " %24s %s PROBING @ %s\n",
p.Name, p.VPNIP, p.PreferredEndpoint())
case StateRelayed:
fmt.Fprintf(&b, " %24s %s RELAYED\n", p.Name, p.VPNIP)
}
}
log.Print(b.String())
}

View File

@@ -1,6 +1,7 @@
package peer package peer
import ( import (
"log"
"net/netip" "net/netip"
"time" "time"
@@ -37,9 +38,15 @@ func (a *App) onPing(e PingEvent) {
if peer.State == StateDirect { if peer.State == StateDirect {
if dst := e.ping.Dst; dst.IsValid() { if dst := e.ping.Dst; dst.IsValid() {
if dst.Addr().Is4() { if dst.Addr().Is4() {
a.selfV4 = dst if dst != a.selfV4 {
log.Printf("Local IPv4 updated: %s -> %s", a.selfV4, dst)
a.selfV4 = dst
}
} else { } else {
a.selfV6 = dst if dst != a.selfV6 {
log.Printf("Local IPv6 updated: %s -> %s", a.selfV6, dst)
a.selfV6 = dst
}
} }
} }
return return