summaryrefslogtreecommitdiff
path: root/exports/exports.go
diff options
context:
space:
mode:
Diffstat (limited to 'exports/exports.go')
-rw-r--r--exports/exports.go14
1 files changed, 6 insertions, 8 deletions
diff --git a/exports/exports.go b/exports/exports.go
index ce8faa2..5e4aab3 100644
--- a/exports/exports.go
+++ b/exports/exports.go
@@ -3,10 +3,10 @@ package main
/*
#include <stdlib.h>
-typedef void (*PythonCB)(const char* name, const char* oldstate, const char* newstate, const char* data);
+typedef void (*PythonCB)(const char* name, int oldstate, int newstate, const char* data);
__attribute__((weak))
-void call_callback(PythonCB callback, const char *name, const char* oldstate, const char* newstate, const char* data)
+void call_callback(PythonCB callback, const char *name, int oldstate, int newstate, const char* data)
{
callback(name, oldstate, newstate, data);
}
@@ -26,19 +26,17 @@ var P_StateCallbacks map[string]C.PythonCB
var VPNStates map[string]*eduvpn.VPNState
-func StateCallback(name string, old_state string, new_state string, data string) {
+func StateCallback(name string, old_state eduvpn.VPNStateID, new_state eduvpn.VPNStateID, data string) {
P_StateCallback, exists := P_StateCallbacks[name]
if !exists || P_StateCallback == nil {
return
}
name_c := C.CString(name)
- oldState_c := C.CString(old_state)
- newState_c := C.CString(new_state)
+ oldState_c := C.int(old_state)
+ newState_c := C.int(new_state)
data_c := C.CString(data)
C.call_callback(P_StateCallback, name_c, oldState_c, newState_c, data_c)
C.free(unsafe.Pointer(name_c))
- C.free(unsafe.Pointer(oldState_c))
- C.free(unsafe.Pointer(newState_c))
C.free(unsafe.Pointer(data_c))
}
@@ -67,7 +65,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 string, new string, data string) {
+ registerErr := state.Register(nameStr, C.GoString(config_directory), func(old eduvpn.VPNStateID, new eduvpn.VPNStateID, data string) {
StateCallback(nameStr, old, new, data)
}, debug != 0)