Browse Source

sanitize node data, i.e. set a 'clientcount' variable

Helge Jung 9 years ago
parent
commit
c03ba6f9b0
1 changed files with 12 additions and 0 deletions
  1. 12 0
      batcave.py

+ 12 - 0
batcave.py

@@ -114,6 +114,18 @@ while True:
 			temp[x]['clients'] = []
 			temp[x]['neighbours'] = []
 		storage.data = dict_merge(temp, newdata)
+		# sanitize each item's data
+		for itemid in storage.data:
+			if itemid.startswith('__'): continue
+			item = storage.data[itemid]
+
+			# remove node's MACs from clients list
+			clients = [ x for x in item['clients'] ] if 'clients' in item else []
+			if 'mac' in item and item['mac'] in clients: clients.remove(item['mac'])
+			if 'macs' in item:
+				for x in item['macs']:
+					if x in clients: clients.remove(x)
+			storage.data[itemid]['clientcount'] = len(clients)
 		logger.debug('I have data for ' + str(len(storage.data)) + ' nodes.')
 
 		storage.save()