Map: Clients an Servern

Ich habe eine Lösung gefunden die Clients an den Servern auszublenden.

Hier meine Änderrungen:

ffmap-backend:

nodedb.py
Bei mir ab Zeile 216:

if 'name' in alias:
     node.name = alias['name']

  if 'vpn' in alias and alias['vpn'] and mac and node.interfaces and mac in node.interfaces:
    node.interfaces[mac].vpn = True

  if 'gps' in alias:
    node.gps = alias['gps']

  if 'firmware' in alias:
    node.firmware = alias['firmware']

  if 'id' in alias:
    node.id = alias['id']

Darunter habe ich eingefügt:

  if 'clientcount' in alias:
    node.clientcount = alias['clientcount']

aliases.json:
Einfach zum eintrag „clientcount“ hinzufügen:

"9e:b1:3d:2d:59:5a": {"name": "SRV:dns", "vpn": true, "clientcount": 0, "firmware": "3.2.0-4-amd64"}

Danach Sollten die clients weg sein und der Graph ein wenig Sauberer!

3 Likes

Danke. Geht auch noch das die Nodes selber auch immer einen weniger anzeigen?

Das ist die nächste hürde. Ich versuche es aber mal.

Ich habe in der nodedb.py folgendes geändert: (Zeile 179)

for node in self._nodes:
  if node.clientcount > 0:
    node.clientcount -= 1

in

for node in self._nodes:
  if node.clientcount > 0:
    node.clientcount -= 2

Dann Zeigt er die Clients richtig an!

2 Likes

Moin!

Hab die Änderung mal Testweise bei uns eingepflegt. Unsere Map basiert auf der von Freifunk Münster. Die Änderung mit dem Clientcount hat aber nix bei uns bewirkt.

Danke Stefan! Gute Arbeit. Ich habe Deinen Patch

diff --git a/nodedb.py b/nodedb.py
index f0f7240..fce8ef3 100644
--- a/nodedb.py
+++ b/nodedb.py
@@ -178,7 +178,7 @@ class NodeDB:
     # don't count node as its own client
     for node in self._nodes:
       if node.clientcount > 0:
-        node.clientcount -= 1
+        node.clientcount -= 2
 
   def reduce_links(self):
     tmp_links = defaultdict(list)
@@ -228,6 +228,12 @@ class NodeDB:
       if 'id' in alias:
         node.id = alias['id']
 
+      if 'clientcount' in alias:
+        node.clientcount = alias['clientcount']
+
+      if 'gateway' in alias:
+        node.gateway = alias['gateway']
+
   def mark_gateway(self, gateway):
     try:
       node = self.maybe_node_by_mac((gateway, ))

bei uns eingepflegt. Wir haben schlagartig weniger Nutzer :wink: aber ihre Anzahl scheint zu stimmen. *freu Das Problem der Pseudoclients an den Servern über die aliases.json zu lösen, ist einfach genial.

Melde das mal @tcatm bzw. direkt im Github an Upstream.

so wie ich das sehe, wird durch

node.clientcount -= 1

schon vorher ein Client abgezogen. Da wir bat15 fahren oder wegen unserer Firmware, haben wir zwei TTs im Translocal, die dem Knoten selbst gehören:

root@/dev/tal:~# batctl tl
Locally retrieved addresses (from bat0) announced via TT (TTVN: 140):
       Client         VID Flags    Last seen (CRC       )
 * 10:fe:ed:e6:5b:68   -1 [.P....]   0.000   (0xd8fc265f)
 * 10:fe:ed:e6:5b:68    0 [.P....]   0.000   (0x7e9423b4)

Durch Deinen Patch verändert sich auch die Statistik der Knoten, aber das gibt ein neues Ziel: bald genau so viele oder noch mehr Nutzer als mit dem Bug im Graphen-Backend :wink: noch ein mal danke!

2 Likes