Audit changes.
This commit is contained in:
34
peer/app.go
34
peer/app.go
@@ -1,9 +1,12 @@
|
||||
package peer
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/netip"
|
||||
"os"
|
||||
"os/signal"
|
||||
"strings"
|
||||
"syscall"
|
||||
"time"
|
||||
|
||||
@@ -82,6 +85,8 @@ func (a *App) Run() error {
|
||||
signal.Notify(sig, syscall.SIGTERM, syscall.SIGINT)
|
||||
defer signal.Stop(sig)
|
||||
|
||||
tickCount := 0
|
||||
|
||||
for {
|
||||
select {
|
||||
case p := <-a.hubAddCh:
|
||||
@@ -94,6 +99,11 @@ func (a *App) Run() error {
|
||||
a.onMulticastDiscovery(e)
|
||||
case <-ticker.C:
|
||||
a.onTick()
|
||||
tickCount++
|
||||
if tickCount%8 == 0 {
|
||||
a.logNetworkState()
|
||||
}
|
||||
|
||||
case <-sig:
|
||||
return a.onShutdown()
|
||||
}
|
||||
@@ -103,3 +113,27 @@ func (a *App) Run() error {
|
||||
func (a *App) onShutdown() error {
|
||||
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())
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package peer
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/netip"
|
||||
"time"
|
||||
|
||||
@@ -37,9 +38,15 @@ func (a *App) onPing(e PingEvent) {
|
||||
if peer.State == StateDirect {
|
||||
if dst := e.ping.Dst; dst.IsValid() {
|
||||
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 {
|
||||
a.selfV6 = dst
|
||||
if dst != a.selfV6 {
|
||||
log.Printf("Local IPv6 updated: %s -> %s", a.selfV6, dst)
|
||||
a.selfV6 = dst
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user