diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/leap/config/leapsettings.py | 69 | ||||
| -rw-r--r-- | src/leap/config/providerconfig.py | 27 | ||||
| -rw-r--r-- | src/leap/crypto/srpauth.py | 68 | ||||
| -rw-r--r-- | src/leap/crypto/srpregister.py | 22 | ||||
| -rwxr-xr-x | src/leap/crypto/tests/fake_provider.py | 4 | ||||
| -rw-r--r-- | src/leap/gui/mainwindow.py | 38 | ||||
| -rw-r--r-- | src/leap/gui/wizard.py | 56 | ||||
| -rw-r--r-- | src/leap/platform_init/locks.py | 18 | ||||
| -rw-r--r-- | src/leap/services/eip/eipbootstrapper.py | 12 | ||||
| -rw-r--r-- | src/leap/services/eip/providerbootstrapper.py | 59 | ||||
| -rw-r--r-- | src/leap/services/eip/udstelnet.py | 1 | ||||
| -rw-r--r-- | src/leap/services/eip/vpn.py | 52 | ||||
| -rw-r--r-- | src/leap/services/eip/vpnlaunchers.py | 114 | ||||
| -rw-r--r-- | src/leap/util/checkerthread.py | 10 | ||||
| -rw-r--r-- | src/leap/util/privilege_policies.py | 6 | ||||
| -rw-r--r-- | src/leap/util/request_helpers.py | 6 | 
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 59aaf257..b9ca16cf 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 19b74856..af13ab8c 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, @@ -137,8 +137,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!") @@ -216,8 +216,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 = ""  | 
