| 211 | } |
| 212 | |
| 213 | func DERPMapFromProto(derpMap *proto.DERPMap) *tailcfg.DERPMap { |
| 214 | if derpMap == nil { |
| 215 | return nil |
| 216 | } |
| 217 | |
| 218 | regionScore := make(map[int]float64, len(derpMap.HomeParams.RegionScore)) |
| 219 | for k, v := range derpMap.HomeParams.RegionScore { |
| 220 | regionScore[int(k)] = v |
| 221 | } |
| 222 | |
| 223 | regions := make(map[int]*tailcfg.DERPRegion, len(derpMap.Regions)) |
| 224 | for regionID, region := range derpMap.Regions { |
| 225 | regions[int(regionID)] = DERPRegionFromProto(region) |
| 226 | } |
| 227 | |
| 228 | return &tailcfg.DERPMap{ |
| 229 | HomeParams: &tailcfg.DERPHomeParams{ |
| 230 | RegionScore: regionScore, |
| 231 | }, |
| 232 | Regions: regions, |
| 233 | } |
| 234 | } |
| 235 | |
| 236 | func DERPRegionFromProto(region *proto.DERPMap_Region) *tailcfg.DERPRegion { |
| 237 | if region == nil { |