Fix unprivileged WireGuard status parsing

This commit is contained in:
sascha 2026-08-16 20:08:07 +02:00
parent 67d59536e9
commit e958f508cb

4
app.py
View file

@ -1231,7 +1231,7 @@ try:
for address in item.get("addr_info", []): for address in item.get("addr_info", []):
result["addresses"].append(address["local"] + "/" + str(address["prefixlen"])) result["addresses"].append(address["local"] + "/" + str(address["prefixlen"]))
result["routes"] = json.loads(run(["ip", "-j", "route", "show", "dev", "wg0"])) result["routes"] = json.loads(run(["ip", "-j", "route", "show", "dev", "wg0"]))
rows = run(["wg", "show", "wg0", "dump"]).splitlines() rows = run(["sudo", "-n", "wg", "show", "wg0", "dump"]).splitlines()
if rows: if rows:
interface = rows[0].split("\\t") interface = rows[0].split("\\t")
result["listen_port"] = int(interface[2]) result["listen_port"] = int(interface[2])
@ -1244,7 +1244,7 @@ try:
"latest_handshake": int(fields[4]), "latest_handshake": int(fields[4]),
"rx_bytes": int(fields[5]), "rx_bytes": int(fields[5]),
"tx_bytes": int(fields[6]), "tx_bytes": int(fields[6]),
"persistent_keepalive": int(fields[7]), "persistent_keepalive": 0 if fields[7] == "off" else int(fields[7]),
}) })
except Exception as exc: except Exception as exc:
result["error"] = str(exc)[:300] result["error"] = str(exc)[:300]