diff options
| author | Jeroen Wijenbergh <jeroenwijenbergh@protonmail.com> | 2022-03-21 17:16:28 +0100 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-03-21 17:16:28 +0100 |
| commit | 324202a50e440cac36a756d6a2628ebadd2f8d70 (patch) | |
| tree | 10381dc1e490eddb3b446a8f3ce599493f87d26d /wrappers | |
| parent | fc56f8770923ec1997444a8318a18be0a8397520 (diff) | |
Update python and add basic config support
Diffstat (limited to 'wrappers')
| -rw-r--r-- | wrappers/python/eduvpncommon/__init__.py | 11 | ||||
| -rw-r--r-- | wrappers/python/eduvpncommon/main.py | 22 |
2 files changed, 10 insertions, 23 deletions
diff --git a/wrappers/python/eduvpncommon/__init__.py b/wrappers/python/eduvpncommon/__init__.py index c21f8d4..a5efb40 100644 --- a/wrappers/python/eduvpncommon/__init__.py +++ b/wrappers/python/eduvpncommon/__init__.py @@ -19,17 +19,10 @@ _libfile = f"{_lib_prefixes[_os]}{_libname}{_lib_suffixes[_os]}" # Library should have been copied to the lib/ folder lib = cdll.LoadLibrary(str(pathlib.Path(__file__).parent / "lib" / _libfile)) -# Data types -class DataError(Structure): - _fields_ = [('data', c_void_p), - ('error', c_int64)] - -GOCB_StateChange = CFUNCTYPE(None, c_char_p, c_char_p) - +VPNStateChange = CFUNCTYPE(None, c_char_p, c_char_p, c_char_p) # Exposed functions -lib.Register.argtypes, lib.Register.restype = [c_char_p, c_char_p, GOCB_StateChange], None +lib.Register.argtypes, lib.Register.restype = [c_char_p, VPNStateChange], None # We have to use c_void_p instead of c_char_p to free it properly # See https://stackoverflow.com/questions/13445568/python-ctypes-how-to-free-memory-getting-invalid-pointer-error -lib.InitializeOAuth.argtypes, lib.InitializeOAuth.restype = [], c_void_p lib.FreeString.argtypes, lib.FreeString.restype = [c_void_p], None diff --git a/wrappers/python/eduvpncommon/main.py b/wrappers/python/eduvpncommon/main.py index b8278ad..f7afa17 100644 --- a/wrappers/python/eduvpncommon/main.py +++ b/wrappers/python/eduvpncommon/main.py @@ -1,22 +1,16 @@ -from . import lib, GOCB_StateChange +from . import lib, VPNStateChange from ctypes import * -@GOCB_StateChange -def state_change(old, new): - print(f"Python: State change {old.decode()} {new.decode()}") - -def InitializeOAuth(): - ptr = lib.InitializeOAuth() - value = cast(ptr, c_char_p).value - authURL = value.decode() - lib.FreeString(ptr) - return authURL +@VPNStateChange +def state_change(old, new, data): + print(f"Python: State change {old.decode()} {new.decode()} DATA {data.decode()}") # Registers the python app with the GO code # name: The name of the app to be registered # url: The url of the server to connect to, FIXME: To be removed # state_callback: The callback to trigger whenever a state is changed, FIXME: Remove whenever this wrapper has implemented callbacks using function decorations -def Register(name, url, state_callback): +def Register(name, config_directory, state_callback): name_bytes = name.encode('utf-8') - url_bytes = url.encode('utf-8') - lib.Register(name_bytes, url_bytes, state_callback) + dir_bytes = config_directory.encode('utf-8') + lib.Register(name_bytes, config_directory, state_callback) + |
