mirror of
https://github.com/fosrl/olm.git
synced 2026-02-20 20:06:43 +00:00
Further adjust structure to include peer monitor
Former-commit-id: 5a2918b2a4
This commit is contained in:
37
olm/olm.go
37
olm/olm.go
@@ -407,28 +407,7 @@ func StartTunnel(config TunnelConfig) {
|
||||
LocalIP: interfaceIP,
|
||||
SharedBind: sharedBind,
|
||||
WSClient: wsClientForMonitor,
|
||||
StatusCallback: func(siteID int, connected bool, rtt time.Duration) {
|
||||
// Find the site config to get endpoint information
|
||||
var endpoint string
|
||||
var isRelay bool
|
||||
for _, site := range wgData.Sites {
|
||||
if site.SiteId == siteID {
|
||||
if site.RelayEndpoint != "" {
|
||||
endpoint = site.RelayEndpoint
|
||||
} else {
|
||||
endpoint = site.Endpoint
|
||||
}
|
||||
isRelay = site.RelayEndpoint != ""
|
||||
break
|
||||
}
|
||||
}
|
||||
apiServer.UpdatePeerStatus(siteID, connected, rtt, endpoint, isRelay)
|
||||
if connected {
|
||||
logger.Info("Peer %d is now connected (RTT: %v)", siteID, rtt)
|
||||
} else {
|
||||
logger.Warn("Peer %d is disconnected", siteID)
|
||||
}
|
||||
},
|
||||
APIServer: apiServer,
|
||||
})
|
||||
|
||||
for i := range wgData.Sites {
|
||||
@@ -450,14 +429,12 @@ func StartTunnel(config TunnelConfig) {
|
||||
logger.Info("Configured peer %s", site.PublicKey)
|
||||
}
|
||||
|
||||
peerManager.SetHolepunchStatusCallback(func(siteID int, endpoint string, connected bool, rtt time.Duration) {
|
||||
// This callback is for additional handling if needed
|
||||
// The PeerMonitor already logs status changes
|
||||
logger.Info("+++++++++++++++++++++++++ holepunch monitor callback for site %d, endpoint %s, connected: %v, rtt: %v", siteID, endpoint, connected, rtt)
|
||||
})
|
||||
|
||||
peerManager.Start()
|
||||
|
||||
if err := dnsProxy.Start(); err != nil { // start DNS proxy first so there is no downtime
|
||||
logger.Error("Failed to start DNS proxy: %v", err)
|
||||
}
|
||||
|
||||
if config.OverrideDNS {
|
||||
// Set up DNS override to use our DNS proxy
|
||||
if err := dnsOverride.SetupDNSOverride(interfaceName, dnsProxy); err != nil {
|
||||
@@ -466,10 +443,6 @@ func StartTunnel(config TunnelConfig) {
|
||||
}
|
||||
}
|
||||
|
||||
if err := dnsProxy.Start(); err != nil {
|
||||
logger.Error("Failed to start DNS proxy: %v", err)
|
||||
}
|
||||
|
||||
apiServer.SetRegistered(true)
|
||||
|
||||
connected = true
|
||||
|
||||
Reference in New Issue
Block a user