diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/leap/gui/statuspanel.py | 5 | ||||
-rw-r--r-- | src/leap/platform_init/initializers.py | 35 | ||||
-rw-r--r-- | src/leap/services/eip/vpnlaunchers.py | 2 |
3 files changed, 32 insertions, 10 deletions
diff --git a/src/leap/gui/statuspanel.py b/src/leap/gui/statuspanel.py index 7c824e01..f3424c7c 100644 --- a/src/leap/gui/statuspanel.py +++ b/src/leap/gui/statuspanel.py @@ -86,6 +86,11 @@ class RateMovingAverage(object): rate = float(deltatraffic) / float(deltat) / 1024 except ZeroDivisionError: rate = 0 + + # In some cases we get negative rates + if rate < 0: + rate = 0 + return rate def get_total(self): diff --git a/src/leap/platform_init/initializers.py b/src/leap/platform_init/initializers.py index 3523c117..cc5f6e87 100644 --- a/src/leap/platform_init/initializers.py +++ b/src/leap/platform_init/initializers.py @@ -122,10 +122,15 @@ def check_missing(): logger.warning( "Installer not found for platform %s." % (_system,)) return - install_missing_fun( - # XXX maybe move constants to fun - UPDOWN_BADEXEC_MSG, - UPDOWN_NOTFOUND_MSG) + + # XXX maybe move constants to fun + ok = install_missing_fun(UPDOWN_BADEXEC_MSG, UPDOWN_NOTFOUND_MSG) + if not ok: + msg = QtGui.QMessageBox() + msg.setWindowTitle(msg.tr("Problem installing files")) + msg.setText(msg.tr('Some of the files could not be copied.')) + msg.setIcon(QtGui.QMessageBox.Warning) + msg.exec_() elif ret == QtGui.QMessageBox.No: logger.debug("Not installing missing scripts, " @@ -235,9 +240,12 @@ def _darwin_install_missing_scripts(badexec, notfound): :type badexec: str :param notfound: error for notifying missing path. :type notfound: str + :returns: True if the files could be copied successfully. + :rtype: bool """ # We expect to execute this from some way of bundle, since # the up/down scripts should be put in place by the installer. + success = False installer_path = os.path.join( os.getcwd(), "..", @@ -261,7 +269,9 @@ def _darwin_install_missing_scripts(badexec, notfound): ret = subprocess.call( cmdline, stdout=subprocess.PIPE, shell=True) - assert([ret]) # happy flakes + success = ret == 0 + if not success: + logger.error("Install missing scripts failed.") except Exception as exc: logger.error(badexec) logger.error("Error was: %r" % (exc,)) @@ -274,6 +284,8 @@ def _darwin_install_missing_scripts(badexec, notfound): logger.error(notfound) logger.debug('path searched: %s' % (installer_path,)) + return success + def DarwinInitializer(): """ @@ -339,10 +351,11 @@ def _linux_install_missing_scripts(badexec, notfound): :type badexec: str :param notfound: error for notifying missing path. :type notfound: str + :returns: True if the files could be copied successfully. + :rtype: bool """ - installer_path = os.path.join( - os.getcwd(), - "apps", "eip", "files") + success = False + installer_path = os.path.join(os.getcwd(), "apps", "eip", "files") launcher = vpnlaunchers.LinuxVPNLauncher # XXX refactor with darwin, same block. @@ -370,7 +383,9 @@ def _linux_install_missing_scripts(badexec, notfound): ret = subprocess.call( cmdline, stdout=subprocess.PIPE, shell=True) - assert([ret]) # happy flakes + success = ret == 0 + if not success: + logger.error("Install missing scripts failed.") except Exception as exc: logger.error(badexec) logger.error("Error was: %r" % (exc,)) @@ -383,6 +398,8 @@ def _linux_install_missing_scripts(badexec, notfound): logger.error(notfound) logger.debug('path searched: %s' % (installer_path,)) + return success + def LinuxInitializer(): """ diff --git a/src/leap/services/eip/vpnlaunchers.py b/src/leap/services/eip/vpnlaunchers.py index b591b3ca..0151c1c6 100644 --- a/src/leap/services/eip/vpnlaunchers.py +++ b/src/leap/services/eip/vpnlaunchers.py @@ -292,7 +292,7 @@ class LinuxVPNLauncher(VPNLauncher): """ to = kls.SYSTEM_CONFIG - cmd = '#!/bin/sh\nset -e\n' + cmd = '#!/bin/sh\n' cmd += 'mkdir -p "%s"\n' % (to, ) cmd += 'cp "%s/%s" "%s"\n' % (frompath, kls.UP_DOWN_FILE, to) cmd += 'cp "%s" "%s"\n' % (pol_file, kls.POLKIT_PATH) |