diff options
| author | Kali Kaneko <kali@leap.se> | 2014-05-07 15:42:56 -0500 | 
|---|---|---|
| committer | Kali Kaneko <kali@leap.se> | 2014-05-12 11:25:19 -0500 | 
| commit | ca0e9b85a831f716a0959c5fdb9dbb571515de97 (patch) | |
| tree | 9b97c81873a767a72e82c147541815d4f4a1bfe5 | |
| parent | 14b208105a6417aefd351f5b38f33bb89358ddcd (diff) | |
tear down fw on quit-action too
| -rw-r--r-- | src/leap/bitmask/gui/mainwindow.py | 5 | ||||
| -rw-r--r-- | src/leap/bitmask/gui/twisted_main.py | 1 | ||||
| -rw-r--r-- | src/leap/bitmask/services/eip/vpnprocess.py | 22 | 
3 files changed, 18 insertions, 10 deletions
| diff --git a/src/leap/bitmask/gui/mainwindow.py b/src/leap/bitmask/gui/mainwindow.py index a5c81983..70fad204 100644 --- a/src/leap/bitmask/gui/mainwindow.py +++ b/src/leap/bitmask/gui/mainwindow.py @@ -19,6 +19,7 @@ Main window for Bitmask.  """  import logging  import socket +import time  from threading import Condition  from datetime import datetime @@ -2067,6 +2068,10 @@ class MainWindow(QtGui.QMainWindow):          logger.debug('Terminating vpn')          self._backend.stop_eip(shutdown=True) +        # XXX this *has* to block, since we have some delay in vpn.terminate +        # it should receive a signal from backend that everything is clear to +        # proceed, or timeout happened. +          self._cancel_ongoing_defers()          # TODO missing any more cancels? diff --git a/src/leap/bitmask/gui/twisted_main.py b/src/leap/bitmask/gui/twisted_main.py index f39d0bbe..dfd69033 100644 --- a/src/leap/bitmask/gui/twisted_main.py +++ b/src/leap/bitmask/gui/twisted_main.py @@ -26,7 +26,6 @@ logger = logging.getLogger(__name__)  def stop(): -    logger.debug("Really stoping all the things...")      QtCore.QCoreApplication.sendPostedEvents()      QtCore.QCoreApplication.flush()      try: diff --git a/src/leap/bitmask/services/eip/vpnprocess.py b/src/leap/bitmask/services/eip/vpnprocess.py index a8b833d0..420db971 100644 --- a/src/leap/bitmask/services/eip/vpnprocess.py +++ b/src/leap/bitmask/services/eip/vpnprocess.py @@ -223,9 +223,6 @@ class VPN(object):                    subprocess is 0.          :rtype: bool          """ -        # XXX this is a temporary solution for being able to use the root -        # helper while we still control the openvpn process. -          # XXX could check for wrapper existence, check it's root owned etc.          # XXX could check that the iptables rules are in place. @@ -257,8 +254,6 @@ class VPN(object):                  logger.debug("Process has been happily terminated.")                  # we try to bring the firewall up -                # XXX We could keep some state to be sure it was the -                # user who did turn EIP off.                  if IS_LINUX and self._user_stopped:                      firewall_down = self._tear_down_firewall()                      if firewall_down: @@ -310,12 +305,17 @@ class VPN(object):              # ...but we also trigger a countdown to be unpolite              # if strictly needed. - -            # XXX Watch out! This will fail NOW since we are running -            # openvpn as root as a workaround for some connection issues.              reactor.callLater(                  self.TERMINATE_WAIT, self._kill_if_left_alive) +            if shutdown: +                if IS_LINUX and self._user_stopped: +                    firewall_down = self._tear_down_firewall() +                    if firewall_down: +                        logger.debug("Firewall down") +                    else: +                        logger.warning("Could not tear firewall down") +      def _start_pollers(self):          """          Iterate through the registered observers @@ -892,9 +892,13 @@ class VPNProcess(protocol.ProcessProtocol, VPNManager):          return command      def getGateways(self): +        """ +        Get the gateways from the appropiate launcher. + +        :rtype: list +        """          gateways = self._launcher.get_gateways(              self._eipconfig, self._providerconfig) -        print "getGateways --> ", gateways          return gateways      # shutdown | 
