diff options
| -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) } |
