summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client/client.go10
-rw-r--r--exports/exports.go8
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)
}