@@ -447,24 +447,25 @@ def fact_snmp (uci: EUci):
447447 return { 'enabled' : snmp == 0 }
448448
449449def 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
470471def fact_snort (uci : EUci ):
0 commit comments