Skip to content

Commit 504d516

Browse files
authored
fix(inventory): updated wireguard fetching info (#112)
1 parent 8d693b3 commit 504d516

File tree

1 file changed

+17
-16
lines changed

1 file changed

+17
-16
lines changed

src/nethsec/inventory/__init__.py

Lines changed: 17 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -447,24 +447,25 @@ def fact_snmp (uci: EUci):
447447
return { 'enabled': snmp == 0 }
448448

449449
def fact_wireguard(uci: EUci):
450-
ret = { 'instances': 0, 'statistics':[] }
451-
wg= []
452-
user_db = {}
450+
servers = dict()
453451
interfaces = utils.get_all_by_type(uci, "network", "interface")
454452
for i in interfaces:
455-
interface = interfaces[i]
456-
if interface.get("proto") == "wireguard":
457-
wg.append(i)
458-
ret['instances'] += 1
459-
user_db.update({i:'main'})
460-
if interface.get("ns_user_db"):
461-
user_db.update({i:interface.get('ns_user_db')})
462-
## iterate over all wireguard interfaces from wg
463-
## find the number of peers from wireguard_wg1
464-
for w in wg:
465-
peers = utils.get_all_by_type(uci, "network", 'wireguard_'+w)
466-
ret['statistics'].append({'server': w, "peers": len(peers), "ns_user_db": user_db[w]})
467-
return ret
453+
if interfaces[i].get("proto", "") != "wireguard":
454+
continue
455+
peers = utils.get_all_by_type(uci, 'network', f'wireguard_{i}')
456+
routing_all_traffic = 0
457+
for peer in peers:
458+
if uci.get('network', peer, 'ns_route_all_traffic', dtype=bool, default=False):
459+
routing_all_traffic += 1
460+
servers[i] = {
461+
"peers": len(peers),
462+
"routing_all_traffic": routing_all_traffic
463+
}
464+
465+
return {
466+
"enabled": len(servers) > 0,
467+
"servers": servers
468+
}
468469

469470

470471
def fact_snort(uci: EUci):

0 commit comments

Comments
 (0)