|
|
@@ -216,17 +216,28 @@ func (c *Conn) derpRegionCodeLocked(regionID int) string {
|
|
|
return ""
|
|
|
}
|
|
|
|
|
|
+// setHomeDERPGaugeLocked updates the home DERP gauge metric.
|
|
|
+//
|
|
|
+// c.mu must be held.
|
|
|
+func (c *Conn) setHomeDERPGaugeLocked(derpNum int) {
|
|
|
+ if c.homeDERPGauge != nil {
|
|
|
+ c.homeDERPGauge.Set(float64(derpNum))
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// c.mu must NOT be held.
|
|
|
func (c *Conn) setNearestDERP(derpNum int) (wantDERP bool) {
|
|
|
c.mu.Lock()
|
|
|
defer c.mu.Unlock()
|
|
|
if !c.wantDerpLocked() {
|
|
|
c.myDerp = 0
|
|
|
+ c.setHomeDERPGaugeLocked(0)
|
|
|
c.health.SetMagicSockDERPHome(0, c.homeless)
|
|
|
return false
|
|
|
}
|
|
|
if c.homeless {
|
|
|
c.myDerp = 0
|
|
|
+ c.setHomeDERPGaugeLocked(0)
|
|
|
c.health.SetMagicSockDERPHome(0, c.homeless)
|
|
|
return false
|
|
|
}
|
|
|
@@ -238,6 +249,7 @@ func (c *Conn) setNearestDERP(derpNum int) (wantDERP bool) {
|
|
|
metricDERPHomeChange.Add(1)
|
|
|
}
|
|
|
c.myDerp = derpNum
|
|
|
+ c.setHomeDERPGaugeLocked(derpNum)
|
|
|
c.health.SetMagicSockDERPHome(derpNum, c.homeless)
|
|
|
|
|
|
if c.privateKey.IsZero() {
|