summaryrefslogtreecommitdiff
path: root/exports
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-08-16 13:41:12 +0200
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-08-16 13:41:12 +0200
commitde8b2adbcc4a39c359f3dd30249ac4ee225d4b9c (patch)
treeba51a86a850e24bb54637becc7834a38c51d2429 /exports
parentfec6ea1eba9cee325bbd9d82aa71b8ebf5ef90b0 (diff)
Refactor: Use an interface for the data in the FSM callback
Diffstat (limited to 'exports')
-rw-r--r--exports/exports.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/exports/exports.go b/exports/exports.go
index 5e4aab3..7f842ec 100644
--- a/exports/exports.go
+++ b/exports/exports.go
@@ -26,7 +26,7 @@ var P_StateCallbacks map[string]C.PythonCB
var VPNStates map[string]*eduvpn.VPNState
-func StateCallback(name string, old_state eduvpn.VPNStateID, new_state eduvpn.VPNStateID, data string) {
+func StateCallback(name string, old_state eduvpn.VPNStateID, new_state eduvpn.VPNStateID, data interface{}) {
P_StateCallback, exists := P_StateCallbacks[name]
if !exists || P_StateCallback == nil {
return
@@ -34,7 +34,8 @@ func StateCallback(name string, old_state eduvpn.VPNStateID, new_state eduvpn.VP
name_c := C.CString(name)
oldState_c := C.int(old_state)
newState_c := C.int(new_state)
- data_c := C.CString(data)
+ data_json, _ := json.Marshal(data)
+ data_c := C.CString(string(data_json))
C.call_callback(P_StateCallback, name_c, oldState_c, newState_c, data_c)
C.free(unsafe.Pointer(name_c))
C.free(unsafe.Pointer(data_c))
@@ -65,7 +66,7 @@ func Register(name *C.char, config_directory *C.char, stateCallback C.PythonCB,
}
VPNStates[nameStr] = state
P_StateCallbacks[nameStr] = stateCallback
- registerErr := state.Register(nameStr, C.GoString(config_directory), func(old eduvpn.VPNStateID, new eduvpn.VPNStateID, data string) {
+ registerErr := state.Register(nameStr, C.GoString(config_directory), func(old eduvpn.VPNStateID, new eduvpn.VPNStateID, data interface{}) {
StateCallback(nameStr, old, new, data)
}, debug != 0)