mirror of
https://github.com/coder/coder.git
synced 2025-07-15 22:20:27 +00:00
fix(vpn): send subnet masks and prefix lengths from router (#16317)
These were somehow missed when I wrote the router.. Also updates `coder/tailscale` to bring in the DNS changes https://github.com/coder/tailscale/pull/64
This commit is contained in:
@ -36,12 +36,16 @@ func (*vpnRouter) Close() error {
|
||||
|
||||
func convertRouterConfig(cfg router.Config) *NetworkSettingsRequest {
|
||||
v4LocalAddrs := make([]string, 0)
|
||||
v4SubnetMasks := make([]string, 0)
|
||||
v6LocalAddrs := make([]string, 0)
|
||||
v6PrefixLengths := make([]uint32, 0)
|
||||
for _, addrs := range cfg.LocalAddrs {
|
||||
if addrs.Addr().Is4() {
|
||||
v4LocalAddrs = append(v4LocalAddrs, addrs.String())
|
||||
v4LocalAddrs = append(v4LocalAddrs, addrs.Addr().String())
|
||||
v4SubnetMasks = append(v4SubnetMasks, prefixToSubnetMask(addrs))
|
||||
} else if addrs.Addr().Is6() {
|
||||
v6LocalAddrs = append(v6LocalAddrs, addrs.String())
|
||||
v6LocalAddrs = append(v6LocalAddrs, addrs.Addr().String())
|
||||
v6PrefixLengths = append(v6PrefixLengths, uint32(addrs.Bits()))
|
||||
} else {
|
||||
continue
|
||||
}
|
||||
@ -69,18 +73,31 @@ func convertRouterConfig(cfg router.Config) *NetworkSettingsRequest {
|
||||
}
|
||||
}
|
||||
|
||||
return &NetworkSettingsRequest{
|
||||
Mtu: uint32(cfg.NewMTU),
|
||||
Ipv4Settings: &NetworkSettingsRequest_IPv4Settings{
|
||||
var v4Settings *NetworkSettingsRequest_IPv4Settings
|
||||
if len(v4LocalAddrs) > 0 || len(v4Routes) > 0 || len(v4ExcludedRoutes) > 0 {
|
||||
v4Settings = &NetworkSettingsRequest_IPv4Settings{
|
||||
Addrs: v4LocalAddrs,
|
||||
SubnetMasks: v4SubnetMasks,
|
||||
IncludedRoutes: v4Routes,
|
||||
ExcludedRoutes: v4ExcludedRoutes,
|
||||
},
|
||||
Ipv6Settings: &NetworkSettingsRequest_IPv6Settings{
|
||||
Router: "", // NA
|
||||
}
|
||||
}
|
||||
|
||||
var v6Settings *NetworkSettingsRequest_IPv6Settings
|
||||
if len(v6LocalAddrs) > 0 || len(v6Routes) > 0 || len(v6ExcludedRoutes) > 0 {
|
||||
v6Settings = &NetworkSettingsRequest_IPv6Settings{
|
||||
Addrs: v6LocalAddrs,
|
||||
PrefixLengths: v6PrefixLengths,
|
||||
IncludedRoutes: v6Routes,
|
||||
ExcludedRoutes: v6ExcludedRoutes,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
return &NetworkSettingsRequest{
|
||||
Mtu: uint32(cfg.NewMTU),
|
||||
Ipv4Settings: v4Settings,
|
||||
Ipv6Settings: v6Settings,
|
||||
TunnelOverheadBytes: 0, // N/A
|
||||
TunnelRemoteAddress: "", // N/A
|
||||
}
|
||||
|
Reference in New Issue
Block a user