diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-05-13 12:12:22 +0200 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-05-13 12:12:22 +0200 |
| commit | 5abf00ab87a55662eefc7716de52ead9749293c6 (patch) | |
| tree | 1cfa64b99482d7cc08b1d7da5d6833b75f5f7714 /exports | |
| parent | 57d6c2ac55a5fd1ea609c873d5410174b7cf6ca4 (diff) | |
Refactor: Adapt the API to the documentation
Diffstat (limited to 'exports')
| -rw-r--r-- | exports/exports.go | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/exports/exports.go b/exports/exports.go index 919f5d7..287a4b6 100644 --- a/exports/exports.go +++ b/exports/exports.go @@ -5,7 +5,6 @@ package main typedef void (*PythonCB)(const char* oldstate, const char* newstate, const char* data); -// FIXME: Remove this, see: https://stackoverflow.com/questions/58606884/multiple-definition-when-using-cgo __attribute__((weak)) void call_callback(PythonCB callback, const char* oldstate, const char* newstate, const char* data) { @@ -49,9 +48,11 @@ func GetVPNState(name string) (*eduvpn.VPNState, error) { //export Register func Register(name *C.char, config_directory *C.char, stateCallback C.PythonCB, debug C.int) *C.char { - state := &eduvpn.VPNState{} nameStr := C.GoString(name) - + state, stateErr := GetVPNState(nameStr) + if stateErr != nil { + state = &eduvpn.VPNState{} + } if VPNStates == nil { VPNStates = make(map[string]*eduvpn.VPNState) } @@ -97,21 +98,22 @@ func CancelOAuth(name *C.char) *C.char { } //export GetConnectConfig -func GetConnectConfig(name *C.char, url *C.char, isSecureInternet C.int, forceTCP C.int) (*C.char, *C.char) { +func GetConnectConfig(name *C.char, url *C.char, isSecureInternet C.int, forceTCP C.int) (*C.char, *C.char, *C.char) { nameStr := C.GoString(name) state, stateErr := GetVPNState(nameStr) if stateErr != nil { - return nil, C.CString(ErrorToString(stateErr)) + return nil, nil, C.CString(ErrorToString(stateErr)) } var config string + var configType string var configErr error forceTCPBool := forceTCP == 1 if isSecureInternet == 1 { - config, configErr = state.GetConfigSecureInternet(C.GoString(url), forceTCPBool) + config, configType, configErr = state.GetConfigSecureInternet(C.GoString(url), forceTCPBool) } else { - config, configErr = state.GetConfigInstituteAccess(C.GoString(url), forceTCPBool) + config, configType, configErr = state.GetConfigInstituteAccess(C.GoString(url), forceTCPBool) } - return C.CString(config), C.CString(ErrorToString(configErr)) + return C.CString(config), C.CString(configType), C.CString(ErrorToString(configErr)) } //export GetOrganizationsList |
