summaryrefslogtreecommitdiff
path: root/src/leap
diff options
context:
space:
mode:
authorkali <kali@leap.se>2013-05-03 02:59:22 +0900
committerkali <kali@leap.se>2013-05-11 21:59:58 +0900
commit2dae2703fb8c2ae7e721ce83020c0dd10ff9ca33 (patch)
tree280cb8751c56d43769fb15ead4fb4476960ae06c /src/leap
parentc85894efdbd6f65eb2b0c2edfc216827c192c1d1 (diff)
updated documentation
* documentation reviewed after rewrite, ready for 0.2.1 * updated docstrings format to fit sphinx autodoc
Diffstat (limited to 'src/leap')
-rw-r--r--src/leap/config/leapsettings.py69
-rw-r--r--src/leap/config/providerconfig.py27
-rw-r--r--src/leap/crypto/srpauth.py68
-rw-r--r--src/leap/crypto/srpregister.py22
-rwxr-xr-xsrc/leap/crypto/tests/fake_provider.py4
-rw-r--r--src/leap/gui/mainwindow.py38
-rw-r--r--src/leap/gui/wizard.py56
-rw-r--r--src/leap/platform_init/locks.py18
-rw-r--r--src/leap/services/eip/eipbootstrapper.py12
-rw-r--r--src/leap/services/eip/providerbootstrapper.py59
-rw-r--r--src/leap/services/eip/udstelnet.py1
-rw-r--r--src/leap/services/eip/vpn.py52
-rw-r--r--src/leap/services/eip/vpnlaunchers.py114
-rw-r--r--src/leap/util/checkerthread.py10
-rw-r--r--src/leap/util/privilege_policies.py6
-rw-r--r--src/leap/util/request_helpers.py6
16 files changed, 286 insertions, 276 deletions
diff --git a/src/leap/config/leapsettings.py b/src/leap/config/leapsettings.py
index df9c9f11..59a0a16d 100644
--- a/src/leap/config/leapsettings.py
+++ b/src/leap/config/leapsettings.py
@@ -34,10 +34,10 @@ def to_bool(val):
Returns the boolean value corresponding to val. Will return False
in case val is not a string or something that behaves like one.
- @param val: value to cast
- @type val: either bool already or str
+ :param val: value to cast
+ :type val: either bool already or str
- @rtype: bool
+ :rtype: bool
"""
if isinstance(val, bool):
return val
@@ -70,9 +70,9 @@ class LeapSettings(object):
"""
Constructor
- @param standalone: parameter used to define the location of
+ :param standalone: parameter used to define the location of
the config
- @type standalone: bool
+ :type standalone: bool
"""
settings_path = os.path.join(get_platform_prefixer()
@@ -86,7 +86,7 @@ class LeapSettings(object):
"""
Returns the saved geometry or None if it wasn't saved
- @rtype: bytearray or None
+ :rtype: bytearray or None
"""
return self._settings.value(self.GEOMETRY_KEY, None)
@@ -94,8 +94,8 @@ class LeapSettings(object):
"""
Saves the geometry to the settings
- @param geometry: bytearray representing the geometry
- @type geometry: bytearray
+ :param geometry: bytearray representing the geometry
+ :type geometry: bytearray
"""
leap_assert(geometry, "We need a geometry")
self._settings.setValue(self.GEOMETRY_KEY, geometry)
@@ -104,7 +104,7 @@ class LeapSettings(object):
"""
Returns the window state or None if it wasn't saved
- @rtype: bytearray or None
+ :rtype: bytearray or None
"""
return self._settings.value(self.WINDOWSTATE_KEY, None)
@@ -112,8 +112,8 @@ class LeapSettings(object):
"""
Saves the window state to the settings
- @param windowstate: bytearray representing the window state
- @type windowstate: bytearray
+ :param windowstate: bytearray representing the window state
+ :type windowstate: bytearray
"""
leap_assert(windowstate, "We need a window state")
self._settings.setValue(self.WINDOWSTATE_KEY, windowstate)
@@ -122,10 +122,10 @@ class LeapSettings(object):
"""
Returns a list of enabled services for the given provider
- @param provider: provider domain
- @type provider: str
+ :param provider: provider domain
+ :type provider: str
- @rtype: list of str
+ :rtype: list of str
"""
leap_assert(len(provider) > 0, "We need a nonempty provider")
@@ -140,10 +140,11 @@ class LeapSettings(object):
"""
Saves the list of enabled services for the given provider
- @param provider: provider domain
- @type provider: str
- @param services: list of services to save
- @type services: list of str
+ :param provider: provider domain
+ :type provider: str
+
+ :param services: list of services to save
+ :type services: list of str
"""
leap_assert(len(provider) > 0, "We need a nonempty provider")
@@ -156,7 +157,7 @@ class LeapSettings(object):
"""
Returns the configured user to remember, None if there isn't one
- @rtype: str or None
+ :rtype: str or None
"""
return self._settings.value(self.USER_KEY, None)
@@ -164,8 +165,8 @@ class LeapSettings(object):
"""
Saves the user to remember
- @param user: user name to remember
- @type user: str
+ :param user: user name to remember
+ :type user: str
"""
leap_assert(len(user) > 0, "We cannot save an empty user")
self._settings.setValue(self.USER_KEY, user)
@@ -174,7 +175,7 @@ class LeapSettings(object):
"""
Returns the value of the remember selection.
- @rtype: bool
+ :rtype: bool
"""
return to_bool(self._settings.value(self.REMEMBER_KEY, False))
@@ -182,9 +183,9 @@ class LeapSettings(object):
"""
Sets wheter the app should remember username and password
- @param remember: True if the app should remember username and
+ :param remember: True if the app should remember username and
password, False otherwise
- @rtype: bool
+ :rtype: bool
"""
leap_assert_type(remember, bool)
self._settings.setValue(self.REMEMBER_KEY, remember)
@@ -193,7 +194,7 @@ class LeapSettings(object):
"""
Returns True if the app should automatically login, False otherwise
- @rtype: bool
+ :rtype: bool
"""
return to_bool(self._settings.value(self.AUTOLOGIN_KEY, False))
@@ -201,8 +202,8 @@ class LeapSettings(object):
"""
Sets whether the app should automatically login
- @param autologin: True if the app should autologin, False otherwise
- @type autologin: bool
+ :param autologin: True if the app should autologin, False otherwise
+ :type autologin: bool
"""
leap_assert_type(autologin, bool)
self._settings.setValue(self.AUTOLOGIN_KEY, autologin)
@@ -211,19 +212,21 @@ class LeapSettings(object):
# just one for now
def get_properprovider(self):
"""
- Returns True if there is a properly configured provider
+ Returns True if there is a properly configured provider.
+
+ .. note:: this assumes only one provider for now.
- @rtype: bool
+ :rtype: bool
"""
return to_bool(self._settings.value(self.PROPERPROVIDER_KEY, False))
def set_properprovider(self, properprovider):
"""
- Sets wether the app should automatically login
+ Sets whether the app should automatically login.
- @param properprovider: True if the provider is properly
- configured, False otherwise
- @type properprovider: bool
+ :param properprovider: True if the provider is properly configured,
+ False otherwise.
+ :type properprovider: bool
"""
leap_assert_type(properprovider, bool)
self._settings.setValue(self.PROPERPROVIDER_KEY, properprovider)
diff --git a/src/leap/config/providerconfig.py b/src/leap/config/providerconfig.py
index 5aa0cc6e..8f75d4fe 100644
--- a/src/leap/config/providerconfig.py
+++ b/src/leap/config/providerconfig.py
@@ -68,7 +68,7 @@ class ProviderConfig(BaseConfig):
"""
Returns the enrollment policy
- @rtype: string
+ :rtype: string
"""
return self._safe_get_value("enrollment_policy")
@@ -82,27 +82,28 @@ class ProviderConfig(BaseConfig):
def get_services(self):
"""
Returns a list with the services supported by the
- current provider
+ current provider.
- @rtype: list
+ :rtype: list
"""
return self._safe_get_value("services")
def get_services_string(self):
"""
- Returns a string with the services supported by the current provider,
- ready to be shown to the user
+ Returns a string with the services supported by the current
+ provider, ready to be shown to the user.
"""
return ", ".join(self.get_services())
def get_ca_cert_path(self, about_to_download=False):
"""
- Returns the path to the certificate for the current provider
+ Returns the path to the certificate for the current provider.
- @param about_to_download: defines wether we want the path to
- download the cert or not. This helps avoid checking if the
- cert exists because we are about to write it.
- @type about_to_download: bool
+ :param about_to_download: defines wether we want the path to
+ download the cert or not. This helps avoid
+ checking if the cert exists because we
+ are about to write it.
+ :type about_to_download: bool
"""
cert_path = os.path.join(self.get_path_prefix(),
@@ -122,8 +123,10 @@ class ProviderConfig(BaseConfig):
def provides_eip(self):
"""
- Returns True if this particular provider has the EIP
- service. False otherwise
+ Returns True if this particular provider has the EIP service,
+ False otherwise.
+
+ :rtype: bool
"""
return "openvpn" in self.get_services()
diff --git a/src/leap/crypto/srpauth.py b/src/leap/crypto/srpauth.py
index ba8ac3f5..9446cee8 100644
--- a/src/leap/crypto/srpauth.py
+++ b/src/leap/crypto/srpauth.py
@@ -58,8 +58,8 @@ class SRPAuth(QtCore.QObject):
"""
Constructor for SRPAuth implementation
- @param server: Server to which we will authenticate
- @type server: str
+ :param server: Server to which we will authenticate
+ :type server: str
"""
QtCore.QObject.__init__(self)
@@ -91,11 +91,11 @@ class SRPAuth(QtCore.QObject):
Rounds the val to a multiple of 2 and returns the
unhexlified value
- @param val: hexlified value
- @type val: str
+ :param val: hexlified value
+ :type val: str
- @rtype: binary hex data
- @return: unhexlified val
+ :rtype: binary hex data
+ :return: unhexlified val
"""
return binascii.unhexlify(val) \
if (len(val) % 2 == 0) else binascii.unhexlify('0' + val)
@@ -104,10 +104,10 @@ class SRPAuth(QtCore.QObject):
"""
Generates the SRP.User to get the A SRP parameter
- @param username: username to login
- @type username: str
- @param password: password for the username
- @type password: str
+ :param username: username to login
+ :type username: str
+ :param password: password for the username
+ :type password: str
"""
logger.debug("Authentication preprocessing...")
self._srp_user = self._srp.User(username,
@@ -125,13 +125,13 @@ class SRPAuth(QtCore.QObject):
Might raise SRPAuthenticationError
- @param username: username to login
- @type username: str
- @param password: password for the username
- @type password: str
+ :param username: username to login
+ :type username: str
+ :param password: password for the username
+ :type password: str
- @return: salt and B parameters
- @rtype: tuple
+ :return: salt and B parameters
+ :rtype: tuple
"""
logger.debug("Starting authentication process...")
try:
@@ -184,15 +184,15 @@ class SRPAuth(QtCore.QObject):
Might throw SRPAuthenticationError
- @param salt: salt for the username
- @type salt: str
- @param B: B SRP parameter
- @type B: str
- @param username: username for this session
- @type username: str
+ :param salt: salt for the username
+ :type salt: str
+ :param B: B SRP parameter
+ :type B: str
+ :param username: username for this session
+ :type username: str
- @return: the M2 SRP parameter
- @rtype: str
+ :return: the M2 SRP parameter
+ :rtype: str
"""
logger.debug("Processing challenge...")
try:
@@ -261,8 +261,8 @@ class SRPAuth(QtCore.QObject):
Might throw SRPAuthenticationError
- @param M2: M2 SRP parameter
- @type M2: str
+ :param M2: M2 SRP parameter
+ :type M2: str
"""
logger.debug("Verifying session...")
try:
@@ -296,10 +296,10 @@ class SRPAuth(QtCore.QObject):
Might raise SRPAuthenticationError
- @param username: username for this session
- @type username: str
- @param password: password for this user
- @type password: str
+ :param username: username for this session
+ :type username: str
+ :param password: password for this user
+ :type password: str
"""
leap_assert(self.get_session_id() is None, "Already logged in")
@@ -390,10 +390,10 @@ class SRPAuth(QtCore.QObject):
Might raise SRPAuthenticationError
- @param username: username for this session
- @type username: str
- @param password: password for this user
- @type password: str
+ :param username: username for this session
+ :type username: str
+ :param password: password for this user
+ :type password: str
"""
try:
diff --git a/src/leap/crypto/srpregister.py b/src/leap/crypto/srpregister.py
index 749b6f8c..07b3c917 100644
--- a/src/leap/crypto/srpregister.py
+++ b/src/leap/crypto/srpregister.py
@@ -48,11 +48,11 @@ class SRPRegister(QtCore.QObject):
"""
Constructor
- @param provider_config: provider configuration instance,
+ :param provider_config: provider configuration instance,
properly loaded
- @type privider_config: ProviderConfig
- @param register_path: webapp path for registering users
- @type register_path; str
+ :type privider_config: ProviderConfig
+ :param register_path: webapp path for registering users
+ :type register_path; str
"""
QtCore.QObject.__init__(self)
leap_assert(provider_config, "Please provide a provider")
@@ -84,7 +84,7 @@ class SRPRegister(QtCore.QObject):
Returns the URI where the register request should be made for
the provider
- @rtype: str
+ :rtype: str
"""
uri = "https://%s:%s/%s/%s" % (
@@ -99,13 +99,13 @@ class SRPRegister(QtCore.QObject):
"""
Registers a user with the validator based on the password provider
- @param username: username to register
- @type username: str
- @param password: password for this username
- @type password: str
+ :param username: username to register
+ :type username: str
+ :param password: password for this username
+ :type password: str
- @rtype: tuple
- @rparam: (ok, request)
+ :rtype: tuple
+ :rparam: (ok, request)
"""
salt, verifier = self._srp.create_salted_verification_key(
username,
diff --git a/src/leap/crypto/tests/fake_provider.py b/src/leap/crypto/tests/fake_provider.py
index d533b82b..74a735ff 100755
--- a/src/leap/crypto/tests/fake_provider.py
+++ b/src/leap/crypto/tests/fake_provider.py
@@ -321,8 +321,8 @@ def get_provider_factory():
* port 8000 for http connections
* port 8443 for https connections
- @rparam: factory for a site
- @rtype: Site instance
+ :rparam: factory for a site
+ :rtype: Site instance
"""
root = Resource()
root.putChild("provider.json", File(
diff --git a/src/leap/gui/mainwindow.py b/src/leap/gui/mainwindow.py
index c9743f95..ccf97672 100644
--- a/src/leap/gui/mainwindow.py
+++ b/src/leap/gui/mainwindow.py
@@ -72,12 +72,12 @@ class MainWindow(QtGui.QMainWindow):
"""
Constructor for the client main window
- @param standalone: Set to true if the app should use configs
+ :param standalone: Set to true if the app should use configs
inside its pwd
- @type standalone: bool
- @param bypass_checks: Set to true if the app should bypass
+ :type standalone: bool
+ :param bypass_checks: Set to true if the app should bypass
first round of checks for CA certificates at bootstrap
- @type bypass_checks: bool
+ :type bypass_checks: bool
"""
QtGui.QMainWindow.__init__(self)
@@ -278,8 +278,8 @@ class MainWindow(QtGui.QMainWindow):
"""
Callback for the new updates event
- @param req: Request type
- @type req: leap.common.events.events_pb2.SignalRequest
+ :param req: Request type
+ :type req: leap.common.events.events_pb2.SignalRequest
"""
self.new_updates.emit(req)
@@ -482,7 +482,7 @@ class MainWindow(QtGui.QMainWindow):
"""
Returns the available providers based on the file structure
- @rtype: list
+ :rtype: list
"""
# TODO: check which providers have a valid certificate among
@@ -503,7 +503,7 @@ class MainWindow(QtGui.QMainWindow):
"""
Returns True if there are no configured providers. False otherwise
- @rtype: bool
+ :rtype: bool
"""
has_provider_on_disk = len(self._configured_providers()) != 0
is_proper_provider = self._settings.get_properprovider()
@@ -519,8 +519,8 @@ class MainWindow(QtGui.QMainWindow):
"""
Sets the status label at the login stage to status
- @param status: status message
- @type status: str
+ :param status: status message
+ :type status: str
"""
if error:
status = "<font color='red'><b>%s</b></font>" % (status,)
@@ -530,8 +530,8 @@ class MainWindow(QtGui.QMainWindow):
"""
Sets the status label at the VPN stage to status
- @param status: status message
- @type status: str
+ :param status: status message
+ :type status: str
"""
self._vpn_systray.setToolTip(status)
if error:
@@ -542,8 +542,8 @@ class MainWindow(QtGui.QMainWindow):
"""
Enables or disables all the login widgets
- @param enabled: wether they should be enabled or not
- @type enabled: bool
+ :param enabled: wether they should be enabled or not
+ :type enabled: bool
"""
self.ui.lnUser.setEnabled(enabled)
self.ui.lnPassword.setEnabled(enabled)
@@ -575,9 +575,9 @@ class MainWindow(QtGui.QMainWindow):
self._provider_config instance with it and starts the second
part of the bootstrapping sequence
- @param data: result from the last stage of the
+ :param data: result from the last stage of the
run_provider_select_checks
- @type data: dict
+ :type data: dict
"""
if data[self._provider_bootstrapper.PASSED_KEY]:
provider = self.ui.cmbProviders.currentText()
@@ -708,7 +708,7 @@ class MainWindow(QtGui.QMainWindow):
"""
Returns the socket and port to be used for VPN
- @rtype: tuple (str, str) (host, port)
+ :rtype: tuple (str, str) (host, port)
"""
# TODO: make this properly multiplatform
@@ -801,8 +801,8 @@ class MainWindow(QtGui.QMainWindow):
"""
Given a status step from the VPN thread, set the icon properly
- @param status: status step
- @type status: str
+ :param status: status step
+ :type status: str
"""
selected_pixmap = self.ERROR_ICON
tray_message = self.tr("Encryption is OFF")
diff --git a/src/leap/gui/wizard.py b/src/leap/gui/wizard.py
index 33c3ed0c..ad45dd8c 100644
--- a/src/leap/gui/wizard.py
+++ b/src/leap/gui/wizard.py
@@ -55,14 +55,14 @@ class Wizard(QtGui.QWizard):
"""
Constructor for the main Wizard.
- @param checker: Checker thread that the wizard should use.
- @type checker: CheckerThread
- @param standalone: If True, the application is running as standalone
+ :param checker: Checker thread that the wizard should use.
+ :type checker: CheckerThread
+ :param standalone: If True, the application is running as standalone
and the wizard should display some messages according to this.
- @type standalone: bool
- @param bypass_checks: Set to true if the app should bypass
+ :type standalone: bool
+ :param bypass_checks: Set to true if the app should bypass
first round of checks for CA certificates at bootstrap
- @type bypass_checks: bool
+ :type bypass_checks: bool
"""
QtGui.QWizard.__init__(self)
@@ -184,15 +184,15 @@ class Wizard(QtGui.QWizard):
"""
Performs basic password checks to avoid really easy passwords.
- @param username: username provided at the registrarion form
- @type username: str
- @param password: password from the registration form
- @type password: str
- @param password2: second password from the registration form
- @type password: str
+ :param username: username provided at the registrarion form
+ :type username: str
+ :param password: password from the registration form
+ :type password: str
+ :param password2: second password from the registration form
+ :type password: str
- @return: returns True if all the checks pass, False otherwise
- @rtype: bool
+ :return: returns True if all the checks pass, False otherwise
+ :rtype: bool
"""
message = None
@@ -266,8 +266,8 @@ class Wizard(QtGui.QWizard):
"""
Sets the status label in the registration page to status
- @param status: status message to display, can be HTML
- @type status: str
+ :param status: status message to display, can be HTML
+ :type status: str
"""
if error:
status = "<font color='red'><b>%s</b></font>" % (status,)
@@ -321,17 +321,17 @@ class Wizard(QtGui.QWizard):
"""
Checks a task and completes a page if specified
- @param data: data as it comes from the bootstrapper thread for
+ :param data: data as it comes from the bootstrapper thread for
a specific check
- @type data: dict
- @param label: label that displays the status icon for a
+ :type data: dict
+ :param label: label that displays the status icon for a
specific check that corresponds to the data
- @type label: QtGui.QLabel
- @param complete: if True, it completes the page specified,
+ :type label: QtGui.QLabel
+ :param complete: if True, it completes the page specified,
which must be of type WizardPage
- @type complete: bool
- @param complete_page: page id to complete
- @type complete_page: int
+ :type complete: bool
+ :param complete_page: page id to complete
+ :type complete_page: int
"""
passed = data[self._provider_bootstrapper.PASSED_KEY]
error = data[self._provider_bootstrapper.ERROR_KEY]
@@ -450,10 +450,10 @@ class Wizard(QtGui.QWizard):
Adds the service to the state if the state is checked, removes
it otherwise
- @param service: service to handle
- @type service: str
- @param state: state of the checkbox
- @type state: int
+ :param service: service to handle
+ :type service: str
+ :param state: state of the checkbox
+ :type state: int
"""
if state == QtCore.Qt.Checked:
self._selected_services = \
diff --git a/src/leap/platform_init/locks.py b/src/leap/platform_init/locks.py
index f1672d8e..e5b392a3 100644
--- a/src/leap/platform_init/locks.py
+++ b/src/leap/platform_init/locks.py
@@ -74,7 +74,7 @@ if platform_init.IS_UNIX:
"""
Tries to get a lock, returning True if successful
- @rtype: bool
+ :rtype: bool
"""
self._fd = os.open(self.path, os.O_CREAT | os.O_RDWR)
@@ -98,7 +98,7 @@ if platform_init.IS_UNIX:
Returns True if the pid in the pidfile
is ours.
- @rtype: bool
+ :rtype: bool
"""
gotit, pid = self._get_lock_and_pid()
return pid == os.getpid()
@@ -108,7 +108,7 @@ if platform_init.IS_UNIX:
Tries to get a lock over the file.
Returns (locked, pid) tuple.
- @rtype: tuple
+ :rtype: tuple
"""
if self._get_lock():
@@ -192,7 +192,7 @@ if platform_init.IS_WIN:
Returns True, pid if there is only one pidfile with the expected
base path
- @rtype: tuple
+ :rtype: tuple
"""
pidfiles = glob.glob(self.LOCKBASE + '-*')
if len(pidfiles) == 1:
@@ -205,7 +205,7 @@ if platform_init.IS_WIN:
"""
Returns the pid of the locking process
- @rtype: int
+ :rtype: int
"""
# XXX assert there is only one?
_, pid = self._is_one_pidfile()
@@ -238,7 +238,7 @@ if platform_init.IS_WIN:
Returns True if the pid in the pidfile
is ours.
- @rtype: bool
+ :rtype: bool
"""
_, pid = self._is_one_pidfile()
return pid == self.pid
@@ -248,7 +248,7 @@ if platform_init.IS_WIN:
Writes the port for windows control to the pidfile folder
Returns True if successful.
- @rtype: bool
+ :rtype: bool
"""
if not self.locked_by_us:
logger.warning("Tried to write control port to a "
@@ -264,7 +264,7 @@ if platform_init.IS_WIN:
Reads control port of the main instance from the port file
in the pidfile dir
- @rtype: int
+ :rtype: int
"""
pid = self.get_pid()
port_file = os.path.join(self.LOCKBASE + "-%s" % pid, "port")
@@ -288,7 +288,7 @@ def we_are_the_one_and_only():
If we came later, send a raise signal to the main instance of the
application
- @rtype: bool
+ :rtype: bool
"""
_sys = platform.system()
diff --git a/src/leap/services/eip/eipbootstrapper.py b/src/leap/services/eip/eipbootstrapper.py
index 83f0a0c2..a881f235 100644
--- a/src/leap/services/eip/eipbootstrapper.py
+++ b/src/leap/services/eip/eipbootstrapper.py
@@ -73,8 +73,8 @@ class EIPBootstrapper(QtCore.QObject):
"""
Downloads the EIP config for the given provider
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._provider_config,
@@ -140,8 +140,8 @@ class EIPBootstrapper(QtCore.QObject):
"""
Downloads the EIP client certificate for the given provider
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._provider_config, "We need a provider configuration!")
leap_assert(self._eip_config, "We need an eip configuration!")
@@ -219,8 +219,8 @@ class EIPBootstrapper(QtCore.QObject):
"""
Starts the checks needed for a new eip setup
- @param provider_config: Provider configuration
- @type provider_config: ProviderConfig
+ :param provider_config: Provider configuration
+ :type provider_config: ProviderConfig
"""
leap_assert(provider_config, "We need a provider config!")
leap_assert_type(provider_config, ProviderConfig)
diff --git a/src/leap/services/eip/providerbootstrapper.py b/src/leap/services/eip/providerbootstrapper.py
index f5559143..734d3867 100644
--- a/src/leap/services/eip/providerbootstrapper.py
+++ b/src/leap/services/eip/providerbootstrapper.py
@@ -62,9 +62,9 @@ class ProviderBootstrapper(QtCore.QObject):
"""
Constructor for provider bootstrapper object
- @param bypass_checks: Set to true if the app should bypass
+ :param bypass_checks: Set to true if the app should bypass
first round of checks for CA certificates at bootstrap
- @type bypass_checks: bool
+ :type bypass_checks: bool
"""
QtCore.QObject.__init__(self)
@@ -84,8 +84,8 @@ class ProviderBootstrapper(QtCore.QObject):
"""
Checks that the name resolution for the provider name works
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._domain, "Cannot check DNS without a domain")
@@ -115,8 +115,8 @@ class ProviderBootstrapper(QtCore.QObject):
Checks that https is working and that the provided certificate
checks out
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._domain, "Cannot check HTTPS without a domain")
@@ -154,8 +154,8 @@ class ProviderBootstrapper(QtCore.QObject):
"""
Downloads the provider.json defition
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._domain,
"Cannot download provider info without a domain")
@@ -211,16 +211,15 @@ class ProviderBootstrapper(QtCore.QObject):
"""
Populates the check queue
- @param checker: checker thread to be used to run this check
- @type checker: CheckerThread
- @param domain: domain to check
- @type domain: str
- @param download_if_needed: if True, makes the checks do not
- overwrite already downloaded data
- @type download_if_needed: bool
+ :param checker: checker thread to be used to run this check
+ :type checker: CheckerThread
+ :param domain: domain to check
+ :type domain: str
+ :param download_if_needed: if True, makes the checks do not overwrite already downloaded data
+ :type download_if_needed: bool
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(domain and len(domain) > 0, "We need a domain!")
@@ -238,7 +237,7 @@ class ProviderBootstrapper(QtCore.QObject):
Returns False if the certificate already exists for the given
provider. True otherwise
- @rtype: bool
+ :rtype: bool
"""
leap_assert(self._provider_config, "We need a provider config!")
@@ -252,8 +251,8 @@ class ProviderBootstrapper(QtCore.QObject):
"""
Downloads the CA cert that is going to be used for the api URL
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._provider_config, "Cannot download the ca cert "
@@ -310,8 +309,8 @@ class ProviderBootstrapper(QtCore.QObject):
Checks the CA cert fingerprint against the one provided in the
json definition
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._provider_config, "Cannot check the ca cert "
"without a provider config!")
@@ -362,8 +361,8 @@ class ProviderBootstrapper(QtCore.QObject):
Tries to make an API call with the downloaded cert and checks
if it validates against it
- @return: True if the checks passed, False otherwise
- @rtype: bool
+ :return: True if the checks passed, False otherwise
+ :rtype: bool
"""
leap_assert(self._provider_config, "Cannot check the ca cert "
"without a provider config!")
@@ -403,13 +402,13 @@ class ProviderBootstrapper(QtCore.QObject):
provider_config,
download_if_needed=False):
"""
- Starts the checks needed for a new provider setup
+ Starts the checks needed for a new provider setup.
- @param provider_config: Provider configuration
- @type provider_config: ProviderConfig
- @param download_if_needed: if True, makes the checks do not
- overwrite already downloaded data
- @type download_if_needed: bool
+ :param provider_config: Provider configuration
+ :type provider_config: ProviderConfig
+
+ :param download_if_needed: if True, makes the checks do not overwrite already downloaded data.
+ :type download_if_needed: bool
"""
leap_assert(provider_config, "We need a provider config!")
leap_assert_type(provider_config, ProviderConfig)
diff --git a/src/leap/services/eip/udstelnet.py b/src/leap/services/eip/udstelnet.py
index a47c24f4..e6c82350 100644
--- a/src/leap/services/eip/udstelnet.py
+++ b/src/leap/services/eip/udstelnet.py
@@ -40,7 +40,6 @@ class UDSTelnet(telnetlib.Telnet):
The optional second argument is the port number, which
defaults to the standard telnet port (23).
-
Don't try to reopen an already connected instance.
"""
self.eof = 0
diff --git a/src/leap/services/eip/vpn.py b/src/leap/services/eip/vpn.py
index 9d838609..af1febe6 100644
--- a/src/leap/services/eip/vpn.py
+++ b/src/leap/services/eip/vpn.py
@@ -85,8 +85,8 @@ class VPN(QtCore.QThread):
"""
Returns wether this thread should quit
- @rtype: bool
- @return: True if the thread should terminate itself, Flase otherwise
+ :rtype: bool
+ :return: True if the thread should terminate itself, Flase otherwise
"""
QtCore.QMutexLocker(self._should_quit_lock)
return self._should_quit
@@ -117,15 +117,15 @@ class VPN(QtCore.QThread):
"""
Launches OpenVPN and starts the thread to watch its output
- @param eipconfig: eip configuration object
- @type eipconfig: EIPConfig
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
+ :param eipconfig: eip configuration object
+ :type eipconfig: EIPConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+ :param socket_port: either string "unix" if it's a unix
socket, or port otherwise
- @type socket_port: str
+ :type socket_port: str
"""
leap_assert(eipconfig, "We need an eip config")
leap_assert_type(eipconfig, EIPConfig)
@@ -196,7 +196,7 @@ class VPN(QtCore.QThread):
"""
Looks for openvpn instances running
- @rtype: process
+ :rtype: process
"""
openvpn_process = None
for p in psutil.process_iter():
@@ -217,7 +217,7 @@ class VPN(QtCore.QThread):
"""
Checks if VPN is already running and tries to stop it
- @return: True if stopped, False otherwise
+ :return: True if stopped, False otherwise
"""
process = self._get_openvpn_process()
@@ -253,11 +253,11 @@ class VPN(QtCore.QThread):
def _connect(self, socket_host, socket_port):
"""
Connects to the specified socket_host socket_port
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+ :param socket_port: either string "unix" if it's a unix
socket, or port otherwise
- @type socket_port: str
+ :type socket_port: str
"""
try:
self._tn = UDSTelnet(socket_host, socket_port)
@@ -291,12 +291,12 @@ class VPN(QtCore.QThread):
Sends a command to the telnet connection and reads until END
is reached
- @param command: command to send
- @type command: str
- @param until: byte delimiter string for reading command output
- @type until: byte str
- @return: response read
- @rtype: list
+ :param command: command to send
+ :type command: str
+ :param until: byte delimiter string for reading command output
+ :type until: byte str
+ :return: response read
+ :rtype: list
"""
leap_assert(self._tn, "We need a tn connection!")
try:
@@ -315,9 +315,9 @@ class VPN(QtCore.QThread):
Parses the output of the state command and emits state_changed
signal when the state changes
- @param output: list of lines that the state command printed as
+ :param output: list of lines that the state command printed as
its output
- @type output: list
+ :type output: list
"""
for line in output:
stripped = line.strip()
@@ -345,9 +345,9 @@ class VPN(QtCore.QThread):
Parses the output of the status command and emits
status_changed signal when the status changes
- @param output: list of lines that the status command printed
+ :param output: list of lines that the status command printed
as its output
- @type output: list
+ :type output: list
"""
tun_tap_read = ""
tun_tap_write = ""
diff --git a/src/leap/services/eip/vpnlaunchers.py b/src/leap/services/eip/vpnlaunchers.py
index 3d36736d..540bc45e 100644
--- a/src/leap/services/eip/vpnlaunchers.py
+++ b/src/leap/services/eip/vpnlaunchers.py
@@ -67,18 +67,18 @@ class VPNLauncher:
"""
Returns the platform dependant vpn launching command
- @param eipconfig: eip configuration object
- @type eipconfig: EIPConfig
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
+ :param eipconfig: eip configuration object
+ :type eipconfig: EIPConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+ :param socket_port: either string "unix" if it's a unix
socket, or port otherwise
- @type socket_port: str
+ :type socket_port: str
- @return: A VPN command ready to be launched
- @rtype: list
+ :return: A VPN command ready to be launched
+ :rtype: list
"""
return []
@@ -89,10 +89,10 @@ class VPNLauncher:
This is mainly used for setting LD_LIBRARY_PATH to the correct
path when distributing a standalone client
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
- @rtype: dict
+ :rtype: dict
"""
return {}
@@ -148,18 +148,21 @@ class LinuxVPNLauncher(VPNLauncher):
Might raise VPNException.
- @param eipconfig: eip configuration object
- @type eipconfig: EIPConfig
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
- socket, or port otherwise
- @type socket_port: str
+ :param eipconfig: eip configuration object
+ :type eipconfig: EIPConfig
+
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
+
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+
+ :param socket_port: either string "unix" if it's a unix
+ socket, or port otherwise
+ :type socket_port: str
- @return: A VPN command ready to be launched
- @rtype: list
+ :return: A VPN command ready to be launched
+ :rtype: list
"""
leap_assert(eipconfig, "We need an eip config")
leap_assert_type(eipconfig, EIPConfig)
@@ -263,10 +266,10 @@ class LinuxVPNLauncher(VPNLauncher):
This is mainly used for setting LD_LIBRARY_PATH to the correct
path when distributing a standalone client
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
- @rtype: dict
+ :rtype: dict
"""
leap_assert(providerconfig, "We need a provider config")
leap_assert_type(providerconfig, ProviderConfig)
@@ -300,18 +303,21 @@ class DarwinVPNLauncher(VPNLauncher):
Might raise VPNException.
- @param eipconfig: eip configuration object
- @type eipconfig: EIPConfig
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
- socket, or port otherwise
- @type socket_port: str
+ :param eipconfig: eip configuration object
+ :type eipconfig: EIPConfig
+
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
+
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+
+ :param socket_port: either string "unix" if it's a unix
+ socket, or port otherwise
+ :type socket_port: str
- @return: A VPN command ready to be launched
- @rtype: list
+ :return: A VPN command ready to be launched
+ :rtype: list
"""
leap_assert(eipconfig, "We need an eip config")
leap_assert_type(eipconfig, EIPConfig)
@@ -405,10 +411,10 @@ class DarwinVPNLauncher(VPNLauncher):
This is mainly used for setting LD_LIBRARY_PATH to the correct
path when distributing a standalone client
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
- @rtype: dict
+ :rtype: dict
"""
return {"DYLD_LIBRARY_PATH": os.path.join(
providerconfig.get_path_prefix(),
@@ -431,18 +437,18 @@ class WindowsVPNLauncher(VPNLauncher):
Might raise VPNException.
- @param eipconfig: eip configuration object
- @type eipconfig: EIPConfig
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
- @param socket_host: either socket path (unix) or socket IP
- @type socket_host: str
- @param socket_port: either string "unix" if it's a unix
+ :param eipconfig: eip configuration object
+ :type eipconfig: EIPConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
+ :param socket_host: either socket path (unix) or socket IP
+ :type socket_host: str
+ :param socket_port: either string "unix" if it's a unix
socket, or port otherwise
- @type socket_port: str
+ :type socket_port: str
- @return: A VPN command ready to be launched
- @rtype: list
+ :return: A VPN command ready to be launched
+ :rtype: list
"""
leap_assert(eipconfig, "We need an eip config")
leap_assert_type(eipconfig, EIPConfig)
@@ -514,10 +520,10 @@ class WindowsVPNLauncher(VPNLauncher):
This is mainly used for setting LD_LIBRARY_PATH to the correct
path when distributing a standalone client
- @param providerconfig: provider specific configuration
- @type providerconfig: ProviderConfig
+ :param providerconfig: provider specific configuration
+ :type providerconfig: ProviderConfig
- @rtype: dict
+ :rtype: dict
"""
return {}
diff --git a/src/leap/util/checkerthread.py b/src/leap/util/checkerthread.py
index 47a96ec5..02aa333f 100644
--- a/src/leap/util/checkerthread.py
+++ b/src/leap/util/checkerthread.py
@@ -48,10 +48,10 @@ class CheckerThread(QtCore.QThread):
def get_should_quit(self):
"""
- Returns wether this thread should quit
+ Returns whether this thread should quit
- @rtype: bool
- @return: True if the thread should terminate itself, Flase otherwise
+ :return: True if the thread should terminate itself, Flase otherwise
+ :rtype: bool
"""
QtCore.QMutexLocker(self._should_quit_lock)
@@ -78,8 +78,8 @@ class CheckerThread(QtCore.QThread):
"""
Adds a list of checks to the ones being executed
- @param checks: check functions to perform
- @type checkes: list
+ :param checks: check functions to perform
+ :type checkes: list
"""
with QtCore.QMutexLocker(self._checks_lock):
self._checks += checks
diff --git a/src/leap/util/privilege_policies.py b/src/leap/util/privilege_policies.py
index e74c4d33..10224bcd 100644
--- a/src/leap/util/privilege_policies.py
+++ b/src/leap/util/privilege_policies.py
@@ -33,7 +33,7 @@ def is_missing_policy_permissions():
platform, or if the policy checker exists but it cannot find the
appropriate policy mechanisms in place.
- @rtype: bool
+ :rtype: bool
"""
_system = platform.system()
platform_checker = _system + "PolicyChecker"
@@ -60,7 +60,7 @@ class PolicyChecker:
Returns True if we could not find any policy mechanisms that
are defined to be in used for this particular platform.
- @rtype: bool
+ :rtype: bool
"""
return True
@@ -77,6 +77,6 @@ class LinuxPolicyChecker(PolicyChecker):
Returns True if we could not find the appropriate policykit file
in place
- @rtype: bool
+ :rtype: bool
"""
return not os.path.isfile(self.LINUX_POLKIT_FILE)
diff --git a/src/leap/util/request_helpers.py b/src/leap/util/request_helpers.py
index 019ff353..e06dabb8 100644
--- a/src/leap/util/request_helpers.py
+++ b/src/leap/util/request_helpers.py
@@ -32,10 +32,10 @@ def get_content(request):
property/function or from content, in that order.
Also returns the mtime for that content if available
- @param request: request as it is given by requests
- @type request: Response
+ :param request: request as it is given by requests
+ :type request: Response
- @rtype: tuple (contents, mtime)
+ :rtype: tuple (contents, mtime)
"""
contents = ""