Audit changes.
This commit is contained in:
34
peer/app.go
34
peer/app.go
@@ -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())
|
||||||
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user