Cleanup.
This commit is contained in:
@@ -28,8 +28,12 @@ func (a *App) onStateTick() {
|
|||||||
|
|
||||||
switch p.State {
|
switch p.State {
|
||||||
case StateRelayed:
|
case StateRelayed:
|
||||||
// If we have an ep to probe, add it.
|
if p.DirectAlive() {
|
||||||
if ep := p.PreferredEndpoint(); ep.IsValid() {
|
// We may already have a valid direct endpoint due to wireguard
|
||||||
|
// roaming.
|
||||||
|
a.devPromote(p)
|
||||||
|
} else if ep := p.PreferredEndpoint(); ep.IsValid() {
|
||||||
|
// If we have an ep to probe, add it.
|
||||||
a.devAddProbe(p, ep)
|
a.devAddProbe(p, ep)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
|
||||||
|
|
||||||
"vppn/peer/control"
|
"vppn/peer/control"
|
||||||
|
"vppn/peer/wginterface"
|
||||||
)
|
)
|
||||||
|
|
||||||
type PeerState string
|
type PeerState string
|
||||||
@@ -61,6 +62,11 @@ func (p *Peer) Up() bool {
|
|||||||
return time.Since(p.LastPing) < 3*PingInterval
|
return time.Since(p.LastPing) < 3*PingInterval
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (p *Peer) DirectAlive() bool {
|
||||||
|
return p.WGEndpoint().IsValid() &&
|
||||||
|
time.Since(p.LastHandshakeTime()) < 2*wginterface.ProbeKeepalive
|
||||||
|
}
|
||||||
|
|
||||||
func (p *Peer) CanRelay() bool {
|
func (p *Peer) CanRelay() bool {
|
||||||
return p.IsRelay && p.Up()
|
return p.IsRelay && p.Up()
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user