diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2023-03-22 09:56:50 +0100 |
|---|---|---|
| committer | Jeroen Wijenbergh <46386452+jwijenbergh@users.noreply.github.com> | 2023-09-25 09:43:37 +0200 |
| commit | f5fe3d75801830ab9f1d380f5b3238b9006cf48b (patch) | |
| tree | 4179c591d37e2781f0cc43c8d3c17ebdfd6da878 | |
| parent | 713f93c46065a8af3509311e428c0ea7db9da5c8 (diff) | |
Exports + Client Register: Make sure to only update state if no err
| -rw-r--r-- | client/client.go | 10 | ||||
| -rw-r--r-- | exports/exports.go | 8 |
2 files changed, 12 insertions, 6 deletions
diff --git a/client/client.go b/client/client.go index 3d059df..6df078d 100644 --- a/client/client.go +++ b/client/client.go @@ -153,10 +153,6 @@ func (c *Client) Register( return errors.Errorf("version is not allowed: '%s', must be max 20 characters", version) } - http.RegisterAgent(userAgentName(name), version) - - c.Name = name - // Initialize the logger lvl := log.LevelWarning if debug { @@ -167,6 +163,12 @@ func (c *Client) Register( return err } + // set client name + c.Name = name + + // register HTTP agent + http.RegisterAgent(userAgentName(name), version) + // Initialize the FSM c.FSM = newFSM(stateCallback, directory, debug) diff --git a/exports/exports.go b/exports/exports.go index b38d0ff..0779104 100644 --- a/exports/exports.go +++ b/exports/exports.go @@ -101,8 +101,6 @@ func Register( return getCError(errors.New("failed to register, a VPN state is already present")) } state := &client.Client{} - VPNState = state - PStateCallback = stateCallback registerErr := state.Register( C.GoString(name), C.GoString(version), @@ -110,6 +108,12 @@ func Register( StateCallback, debug != 0, ) + // Only update the VPN state if we get no error when registering + if registerErr == nil { + VPNState = state + PStateCallback = stateCallback + return nil + } return getCError(registerErr) } |
