diff options
| author | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-03-15 16:12:48 +0100 |
|---|---|---|
| committer | jwijenbergh <jeroenwijenbergh@protonmail.com> | 2022-04-05 12:26:14 +0200 |
| commit | 5887d925486e7ce650c3440de6cd29dd2240e929 (patch) | |
| tree | 6bfce1ddb6a1de5647f23fe7131098ebb421034e /wrappers/python/eduvpncommon/__init__.py | |
| parent | a019e95fdbaea3d7af2d8ad10903fd656bfc4466 (diff) | |
Add callback state change and simplify wrappers
The python wrapper contained lots of code that should not be exposed.
The other wrappers I will update later
Diffstat (limited to 'wrappers/python/eduvpncommon/__init__.py')
| -rw-r--r-- | wrappers/python/eduvpncommon/__init__.py | 20 |
1 files changed, 5 insertions, 15 deletions
diff --git a/wrappers/python/eduvpncommon/__init__.py b/wrappers/python/eduvpncommon/__init__.py index 911c671..c21f8d4 100644 --- a/wrappers/python/eduvpncommon/__init__.py +++ b/wrappers/python/eduvpncommon/__init__.py @@ -19,27 +19,17 @@ _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)) - -class GoSlice(Structure): - _fields_ = [("data", POINTER(c_char)), ("len", c_int64), ("cap", c_int64)] - - @staticmethod - def make(bs: bytes) -> "GoSlice": - return GoSlice((c_char * len(bs))(*bs), len(bs), len(bs)) # type: ignore - - +# Data types class DataError(Structure): _fields_ = [('data', c_void_p), ('error', c_int64)] +GOCB_StateChange = CFUNCTYPE(None, c_char_p, c_char_p) + +# Exposed functions +lib.Register.argtypes, lib.Register.restype = [c_char_p, c_char_p, GOCB_StateChange], 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.Register.argtypes, lib.Register.restype = [c_char_p, c_char_p], None lib.InitializeOAuth.argtypes, lib.InitializeOAuth.restype = [], c_void_p -lib.GetOrganizationsList.argtypes, lib.GetOrganizationsList.restype = [], DataError -lib.GetServersList.argtypes, lib.GetServersList.restype = [], DataError lib.FreeString.argtypes, lib.FreeString.restype = [c_void_p], None -lib.Verify.argtypes, lib.Verify.restype = [GoSlice, GoSlice, GoSlice, c_uint64], c_int64 -lib.InsecureTestingSetExtraKey.argtypes, lib.InsecureTestingSetExtraKey.restype = [GoSlice], None - |
