summaryrefslogtreecommitdiff
path: root/wrappers
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers')
-rw-r--r--wrappers/python/eduvpncommon/__init__.py11
-rw-r--r--wrappers/python/eduvpncommon/main.py22
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)
+