Skip to content

Commit f907c5e

Browse files
committed
ncm: fixes to proxy device state
1 parent e3d8095 commit f907c5e

2 files changed

Lines changed: 25 additions & 8 deletions

File tree

model/network_client_model.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,12 @@ type ProxyConfig struct {
9999

100100
HttpsRequireAuth bool `json:"https_require_auth"`
101101

102-
InitialDeviceState *ProxyDeviceState `json:"initial_device_state,omitempty"`
102+
InitialDeviceState *ExtendedProxyDeviceState `json:"initial_device_state,omitempty"`
103+
}
104+
105+
type ExtendedProxyDeviceState struct {
106+
ProxyDeviceState
107+
CountryCode string `json:"country_code,omitempty"`
103108
}
104109

105110
type AuthNetworkClientResult struct {
@@ -247,12 +252,21 @@ func AuthNetworkClient(
247252
}
248253
}
249254

255+
proxyDeviceState := authClient.ProxyConfig.InitialDeviceState.ProxyDeviceState
256+
if proxyDeviceState.Location == nil {
257+
// try the country code
258+
proxyDeviceState.Location = GetConnectLocationForCountryCode(
259+
session.Ctx,
260+
authClient.ProxyConfig.InitialDeviceState.CountryCode,
261+
)
262+
}
263+
250264
proxyDeviceConfig := &ProxyDeviceConfig{
251265
ProxyDeviceConnection: ProxyDeviceConnection{
252266
ClientId: clientId,
253267
},
254268
LockSubnets: lockSubnets,
255-
InitialDeviceState: authClient.ProxyConfig.InitialDeviceState,
269+
InitialDeviceState: &proxyDeviceState,
256270
}
257271
err := CreateProxyDeviceConfig(session.Ctx, proxyDeviceConfig)
258272
if err == nil {

model/network_client_proxy_model.go

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -365,12 +365,15 @@ var countryCodeConnectCountries = sync.OnceValue(func() map[string]*connectCount
365365
LocationTypeCountry,
366366
)
367367
server.WithPgResult(result, err, func() {
368-
var c connectCountry
369-
server.Raise(result.Scan(
370-
&c.LocationId,
371-
&c.Country,
372-
&c.CountryCode,
373-
))
368+
for result.Next() {
369+
var c connectCountry
370+
server.Raise(result.Scan(
371+
&c.LocationId,
372+
&c.Country,
373+
&c.CountryCode,
374+
))
375+
m[c.CountryCode] = &c
376+
}
374377
})
375378
})
376379

0 commit comments

Comments
 (0)