From 3ee01379dd54e0bc0bbe590b57eabd597b2f3a17 Mon Sep 17 00:00:00 2001 From: Adrian Schmutzler Date: Tue, 28 Aug 2018 18:17:06 +0200 Subject: [PATCH] router.html: Fix display of WebUI and remove try/catch Signed-off-by: Adrian Schmutzler --- ffmap/web/filters.py | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/ffmap/web/filters.py b/ffmap/web/filters.py index 18749e7..6701aff 100644 --- a/ffmap/web/filters.py +++ b/ffmap/web/filters.py @@ -192,16 +192,18 @@ def gravatar_url(email): @filters.app_template_filter('webui_addr') def webui_addr(router_netifs): - try: - for br_mesh in filter(lambda n: n["netif"] == "br-mesh", router_netifs): - for ipv6 in br_mesh["ipv6_addrs"]: - if ipv6.startswith("fd") and len(ipv6) > 25: - # This selects the first ULA address, if present - return ipv6 - if ipv6.startswith("fdff") and len(ipv6) > 15 and len(ipv6) <= 20: - return ipv6 - except (KeyError, TypeError): - return None + for br_mesh in filter(lambda n: n["netif"] == "br-mesh", router_netifs): + for ipv6 in br_mesh["ipv6_addrs"]: + ipv6 = bintoipv6(ipv6) + if not ipv6: + return None + if ipv6.startswith("fd43"): + # This selects the first ULA address, if present + return ipv6 + if ipv6.startswith("fdff") and len(ipv6) > 10: + # This selects the first fdff address, if present (and skips fdff::1) + return ipv6 + return None @filters.app_template_filter('format_airtime') def format_airtime(airtime):