diff options
Diffstat (limited to 'src/leap/eip/eipconnection.py')
-rw-r--r-- | src/leap/eip/eipconnection.py | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/leap/eip/eipconnection.py b/src/leap/eip/eipconnection.py index f0a98d8c..a5b59892 100644 --- a/src/leap/eip/eipconnection.py +++ b/src/leap/eip/eipconnection.py @@ -35,6 +35,9 @@ class EIPConnection(OpenVPNConnection): status_signals = kwargs.pop('status_signals', None) self.status = EIPConnectionStatus(callbacks=status_signals) + checker_signals = kwargs.pop('checker_signals', None) + self.checker_signals = checker_signals + self.provider_cert_checker = provider_cert_checker() self.config_checker = config_checker() @@ -59,10 +62,14 @@ class EIPConnection(OpenVPNConnection): try: # network (1) + for signal in self.checker_signals: + signal('checking encryption keys') self.provider_cert_checker.run_all(skip_verify=skip_verify) except Exception as exc: push_err(exc) try: + for signal in self.checker_signals: + signal('checking provider config') self.config_checker.run_all(skip_download=skip_download) except Exception as exc: push_err(exc) @@ -125,6 +132,9 @@ class EIPConnection(OpenVPNConnection): """ return self.status.get_state_icon() + def get_leap_status(self): + return self.status.get_leap_status() + # # private methods # @@ -231,6 +241,22 @@ class EIPConnectionStatus(object): } return human_status[self.current] + def get_leap_status(self): + # XXX improve nomenclature + leap_status = { + 1: 'connecting to gateway', + 2: 'connecting to gateway', + 3: 'authenticating', + 4: 'establishing network encryption', + 5: 'establishing network encryption', + 6: 'establishing network encryption', + 7: 'connected', + 8: 'reconnecting', + 9: 'exiting', + 11: 'unrecoverable error', + } + return leap_status[self.current] + def get_state_icon(self): """ returns the high level icon |