diff options
author | Ivan Alejandro <ivanalejandro0@gmail.com> | 2015-07-23 18:45:08 -0300 |
---|---|---|
committer | Ivan Alejandro <ivanalejandro0@gmail.com> | 2015-08-14 15:28:19 -0300 |
commit | 182dd2738f077079a47d3f56033b78dac9204986 (patch) | |
tree | 599cf5dc1dd6ba2f43e5ffae528793ba35e116dc | |
parent | ddd112e53179cbccbf852d3dd70a80cfc171a957 (diff) |
[bug] handle eip-config not providing locations
Is valid for a provider not to provide locations for their gateways.
- Resolves: #7281
-rw-r--r-- | changes/bug-7281_support-no-locations-for-eip | 1 | ||||
-rw-r--r-- | src/leap/bitmask/backend/components.py | 4 | ||||
-rw-r--r-- | src/leap/bitmask/services/eip/eipconfig.py | 7 |
3 files changed, 10 insertions, 2 deletions
diff --git a/changes/bug-7281_support-no-locations-for-eip b/changes/bug-7281_support-no-locations-for-eip new file mode 100644 index 00000000..9f4e748c --- /dev/null +++ b/changes/bug-7281_support-no-locations-for-eip @@ -0,0 +1 @@ +- Closes bug #7281. Support a provider not providing location for the eip gateways. diff --git a/src/leap/bitmask/backend/components.py b/src/leap/bitmask/backend/components.py index b833bf59..5f34d290 100644 --- a/src/leap/bitmask/backend/components.py +++ b/src/leap/bitmask/backend/components.py @@ -628,7 +628,9 @@ class EIP(object): # this only works for selecting the first gateway, as we're # currently doing. ccodes = gateway_selector.get_gateways_country_code() - gateway_ccode = ccodes[gateways[0]] + gateway_ccode = '' # '' instead of None due to needed signal argument + if ccodes is not None: + gateway_ccode = ccodes[gateways[0]] self._signaler.signal(self._signaler.eip_get_gateway_country_code, gateway_ccode) diff --git a/src/leap/bitmask/services/eip/eipconfig.py b/src/leap/bitmask/services/eip/eipconfig.py index b1d08393..43328af9 100644 --- a/src/leap/bitmask/services/eip/eipconfig.py +++ b/src/leap/bitmask/services/eip/eipconfig.py @@ -161,12 +161,17 @@ class VPNGatewaySelector(object): def get_gateways_country_code(self): """ Return a dict with ipaddress -> country code mapping. + Return None if there are no locations specified. - :rtype: dict + :rtype: dict or None """ country_codes = {} locations = self._eipconfig.get_locations() + + if not locations: + return + gateways = self._eipconfig.get_gateways() for idx, gateway in enumerate(gateways): |