From 5887d925486e7ce650c3440de6cd29dd2240e929 Mon Sep 17 00:00:00 2001 From: jwijenbergh Date: Tue, 15 Mar 2022 16:12:48 +0100 Subject: 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 --- wrappers/python/eduvpncommon/__init__.py | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'wrappers/python/eduvpncommon/__init__.py') 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 - -- cgit v1.2.3