summaryrefslogtreecommitdiff
path: root/exports
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-06-21 16:52:55 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-06-21 16:52:55 +0200
commitb4d744a80aa79d45f8a46119920abc1279ad4f20 (patch)
treec308df90904cdaf1657bd1480f6104ecfbbc2063 /exports
parentf6c074f4fb99fa29927d3b62dd10457bd659f3ed (diff)
State: Add functions for getting/setting a connection identifier
e.g. the uuid of the connection in case of NetworkManager on Linux
Diffstat (limited to 'exports')
-rw-r--r--exports/exports.go23
1 files changed, 23 insertions, 0 deletions
diff --git a/exports/exports.go b/exports/exports.go
index 79b3606..17a9a9b 100644
--- a/exports/exports.go
+++ b/exports/exports.go
@@ -151,6 +151,29 @@ func SetProfileID(name *C.char, data *C.char) *C.char {
return C.CString(ErrorToString(profileErr))
}
+//export GetIdentifier
+func GetIdentifier(name *C.char) (*C.char, *C.char) {
+ nameStr := C.GoString(name)
+ state, stateErr := GetVPNState(nameStr)
+ if stateErr != nil {
+ return C.CString(""), C.CString(ErrorToString(stateErr))
+ }
+ identifier := state.GetIdentifier()
+ return C.CString(identifier), C.CString("")
+}
+
+//export SetIdentifier
+func SetIdentifier(name *C.char, identifier *C.char) *C.char {
+ nameStr := C.GoString(name)
+ identifierStr := C.GoString(identifier)
+ state, stateErr := GetVPNState(nameStr)
+ if stateErr != nil {
+ return C.CString(ErrorToString(stateErr))
+ }
+ state.SetIdentifier(identifierStr)
+ return C.CString("")
+}
+
//export SetDisconnected
func SetDisconnected(name *C.char) *C.char {
nameStr := C.GoString(name)