File tree Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Expand file tree Collapse file tree 1 file changed +19
-0
lines changed Original file line number Diff line number Diff line change @@ -2252,12 +2252,31 @@ func (c *Conn) SetDERPMap(dm *tailcfg.DERPMap) {
2252
2252
return
2253
2253
}
2254
2254
2255
+ old := c .derpMap
2255
2256
c .derpMap = dm
2256
2257
if dm == nil {
2257
2258
c .closeAllDerpLocked ("derp-disabled" )
2258
2259
return
2259
2260
}
2260
2261
2262
+ // Reconnect any DERP region that changed definitions.
2263
+ if old != nil {
2264
+ changes := false
2265
+ for rid , oldDef := range old .Regions {
2266
+ if reflect .DeepEqual (oldDef , dm .Regions [rid ]) {
2267
+ continue
2268
+ }
2269
+ changes = true
2270
+ if rid == c .myDerp {
2271
+ c .myDerp = 0
2272
+ }
2273
+ c .closeDerpLocked (rid , "derp-region-redefined" )
2274
+ }
2275
+ if changes {
2276
+ c .logActiveDerpLocked ()
2277
+ }
2278
+ }
2279
+
2261
2280
go c .ReSTUN ("derp-map-update" )
2262
2281
}
2263
2282
You can’t perform that action at this time.
0 commit comments