summaryrefslogtreecommitdiff
path: root/wrappers/python
diff options
context:
space:
mode:
Diffstat (limited to 'wrappers/python')
-rw-r--r--wrappers/python/eduvpncommon/__init__.py12
-rw-r--r--wrappers/python/eduvpncommon/main.py42
2 files changed, 31 insertions, 23 deletions
diff --git a/wrappers/python/eduvpncommon/__init__.py b/wrappers/python/eduvpncommon/__init__.py
index e0fe0d0..1df305b 100644
--- a/wrappers/python/eduvpncommon/__init__.py
+++ b/wrappers/python/eduvpncommon/__init__.py
@@ -33,13 +33,13 @@ class DataError(Structure):
VPNStateChange = CFUNCTYPE(None, c_char_p, c_char_p, c_char_p)
# Exposed functions
-lib.Connect.argtypes, lib.Connect.restype = [c_char_p], DataError
-lib.Deregister.argtypes, lib.Deregister.restype = [], None
+lib.Connect.argtypes, lib.Connect.restype = [c_char_p, c_char_p], DataError
+lib.Deregister.argtypes, lib.Deregister.restype = [c_char_p], c_void_p
lib.Register.argtypes, lib.Register.restype = [c_char_p, c_char_p, VPNStateChange, c_int], c_void_p
-lib.GetOrganizationsList.argtypes, lib.GetOrganizationsList.restype = [], DataError
-lib.GetServersList.argtypes, lib.GetServersList.restype = [], DataError
-lib.CancelOAuth.argtypes, lib.CancelOAuth.restype = [], c_void_p
-lib.SetProfileID.argtypes, lib.SetProfileID.restype = [c_char_p], c_void_p
+lib.GetOrganizationsList.argtypes, lib.GetOrganizationsList.restype = [c_char_p], DataError
+lib.GetServersList.argtypes, lib.GetServersList.restype = [c_char_p], DataError
+lib.CancelOAuth.argtypes, lib.CancelOAuth.restype = [c_char_p], c_void_p
+lib.SetProfileID.argtypes, lib.SetProfileID.restype = [c_char_p, c_char_p], c_void_p
# 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.FreeString.argtypes, lib.FreeString.restype = [c_void_p], None
diff --git a/wrappers/python/eduvpncommon/main.py b/wrappers/python/eduvpncommon/main.py
index eae7014..5474ade 100644
--- a/wrappers/python/eduvpncommon/main.py
+++ b/wrappers/python/eduvpncommon/main.py
@@ -18,23 +18,29 @@ def Register(name, config_directory, state_callback, debug):
err_string = GetPtrString(ptr_err)
return err_string
-def CancelOAuth():
- ptr_err = lib.CancelOAuth()
+def CancelOAuth(name):
+ name_bytes = name.encode("utf-8")
+ ptr_err = lib.CancelOAuth(name_bytes)
err_string = GetPtrString(ptr_err)
return err_string
-def Deregister():
- lib.Deregister()
+def Deregister(name):
+ name_bytes = name.encode("utf-8")
+ ptr_err = lib.Deregister(name_bytes)
+ err_string = GetPtrString(ptr_err)
+ return err_string
-def GetDiscoServers():
- servers, serversErr = GetDataError(lib.GetServersList())
- organizations, organizationsErr = GetDataError(lib.GetOrganizationsList())
+def GetDiscoServers(name):
+ name_bytes = name.encode("utf-8")
+ servers, serversErr = GetDataError(lib.GetServersList(name_bytes))
+ organizations, organizationsErr = GetDataError(lib.GetOrganizationsList(name_bytes))
return servers, serversErr, organizations, organizationsErr
-def Connect(url):
+def Connect(name, url):
+ name_bytes = name.encode("utf-8")
url_bytes = url.encode("utf-8")
- data_error = lib.Connect(url_bytes)
+ data_error = lib.Connect(name_bytes, url_bytes)
return GetDataError(data_error)
@@ -51,8 +57,10 @@ def register_callback(eduvpn):
)
-def SetProfileID(profile_id) -> str:
- error_string = lib.SetProfileID(profile_id.encode("utf-8"))
+def SetProfileID(name, profile_id) -> str:
+ name_bytes = name.encode("utf-8")
+ profile_bytes = profile_id.encode("utf-8")
+ error_string = lib.SetProfileID(name_bytes, profile_bytes)
return GetPtrString(error_string)
@@ -64,19 +72,19 @@ class EduVPN(object):
register_callback(self)
def cancel_oauth(self) -> str:
- return CancelOAuth()
+ return CancelOAuth(self.name)
- def deregister(self):
- Deregister()
+ def deregister(self) -> str:
+ return Deregister(self.name)
def register(self, debug=False) -> bool:
return Register(self.name, self.config_directory, callback_function, debug) == ""
def get_disco(self):
- return GetDiscoServers()
+ return GetDiscoServers(self.name)
def connect(self, url):
- return Connect(url)
+ return Connect(self.name, url)
@property
def event(self):
@@ -86,7 +94,7 @@ class EduVPN(object):
self.event.run(old_state, new_state, data)
def set_profile(self, profile_id) -> str:
- return SetProfileID(profile_id)
+ return SetProfileID(self.name, profile_id)
class EventHandler(object):