From f5fe3d75801830ab9f1d380f5b3238b9006cf48b Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Wed, 22 Mar 2023 09:56:50 +0100 Subject: Exports + Client Register: Make sure to only update state if no err --- client/client.go | 10 ++++++---- 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) } -- cgit v1.2.3