diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-16 13:41:12 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-08-16 13:41:12 +0200 |
| commit | de8b2adbcc4a39c359f3dd30249ac4ee225d4b9c (patch) | |
| tree | ba51a86a850e24bb54637becc7834a38c51d2429 /exports | |
| parent | fec6ea1eba9cee325bbd9d82aa71b8ebf5ef90b0 (diff) | |
Refactor: Use an interface for the data in the FSM callback
Diffstat (limited to 'exports')
| -rw-r--r-- | exports/exports.go | 7 |
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) |
