diff options
Diffstat (limited to 'exports')
| -rw-r--r-- | exports/exports.go | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/exports/exports.go b/exports/exports.go index e34721e..7d2b1ce 100644 --- a/exports/exports.go +++ b/exports/exports.go @@ -18,9 +18,9 @@ import "github.com/jwijenbergh/eduvpn-common/src" var P_StateCallback C.PythonCB -func StateCallback(old_state string, new_state string, data string) { +func StateCallback(old_state string, new_state string, data string) string { if P_StateCallback == nil { - return + return "" } oldState_c := C.CString(old_state) newState_c := C.CString(new_state) @@ -29,6 +29,12 @@ func StateCallback(old_state string, new_state string, data string) { C.free(unsafe.Pointer(oldState_c)) C.free(unsafe.Pointer(newState_c)) C.free(unsafe.Pointer(data_c)) + + // Get state data and reset + state := eduvpn.GetVPNState() + received_data := state.StateCallbackData + state.StateCallbackData = "" + return received_data } //export Register @@ -75,6 +81,11 @@ func GetServersList() (*C.char, *C.char) { return C.CString(servers), C.CString(ErrorToString(serversErr)) } +//export SendData +func SendData(data *C.char) { + eduvpn.GetVPNState().StateCallbackData = C.GoString(data) +} + //export FreeString func FreeString(addr *C.char) { C.free(unsafe.Pointer(addr)) |
