diff --git a/olm/olm.go b/olm/olm.go index 9803516..70ecc7c 100644 --- a/olm/olm.go +++ b/olm/olm.go @@ -31,6 +31,10 @@ type GlobalConfig struct { SocketPath string Version string + // Callbacks + OnRegistered func() + OnConnected func() + // Source tracking (not in JSON) sources map[string]string } @@ -525,6 +529,11 @@ func StartTunnel(config TunnelConfig) { connected = true + // Invoke onConnected callback if configured + if globalConfig.OnConnected != nil { + go globalConfig.OnConnected() + } + logger.Info("WireGuard device created.") }) @@ -987,6 +996,11 @@ func StartTunnel(config TunnelConfig) { "orgId": config.OrgID, // "doNotCreateNewClient": config.DoNotCreateNewClient, }, 1*time.Second) + + // Invoke onRegistered callback if configured + if globalConfig.OnRegistered != nil { + go globalConfig.OnRegistered() + } } go keepSendingPing(olm)