瀏覽代碼

server: store /vpn data in hidden key which does not show up in /list

Helge Jung 9 年之前
父節點
當前提交
d0fa04ef01
共有 1 個文件被更改,包括 10 次插入7 次删除
  1. 10 7
      ffstatus/server.py

+ 10 - 7
ffstatus/server.py

@@ -13,6 +13,8 @@ from SocketServer import ThreadingMixIn
 import time
 
 class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
+	DATAKEY_VPN = '__VPN__'
+
 	def __init__(self, request, client_address, server):
 		self.logger = logging.getLogger('API')
 		BaseHTTPRequestHandler.__init__(self, request, client_address, server)
@@ -117,6 +119,7 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 				data = sorteddata
 
 		for nodeid in data:
+			if nodeid.startswith('__'): continue
 			nodename = storage.data[nodeid]['hostname'] if 'hostname' in storage.data[nodeid] else '<?>'
 			self.wfile.write('<tr><td><a href="/node/' + nodeid + '.json">' + nodeid + '</a></td><td>' + nodename + '</td></tr>')
 
@@ -186,9 +189,9 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 			self.send_error(400, 'Bad key.')
 			return
 
-		if not 'vpn' in storage.data: storage.data['vpn'] = {}
-		if not key in storage.data['vpn']: storage.data['vpn'][key] = { 'active': {}, 'last': {} }
-		item = storage.data['vpn'][key]
+		if not self.DATAKEY_VPN in storage.data: storage.data[self.DATAKEY_VPN] = {}
+		if not key in storage.data[self.DATAKEY_VPN]: storage.data[self.DATAKEY_VPN][key] = { 'active': {}, 'last': {} }
+		item = storage.data[self.DATAKEY_VPN][key]
 
 		if action == 'establish':
 			item['active'][gw] = { 'establish': time.time(), 'peer': peername, 'remote': remote }
@@ -216,10 +219,10 @@ class BatcaveHttpRequestHandler(BaseHTTPRequestHandler):
 		self.wfile.write('<html><head><title>BATCAVE - VPN LIST</title></head>\n')
 		self.wfile.write('<body>\n')
 		self.wfile.write('<table>\n<thead><tr><th>key</th><th>active</th><th>last</th></tr></thead>\n')
-
-		if 'vpn' in storage.data:
-			for key in storage.data['vpn']:
-				item = storage.data['vpn'][key]
+		
+		if self.DATAKEY_VPN in storage.data:
+			for key in storage.data[self.DATAKEY_VPN]:
+				item = storage.data[self.DATAKEY_VPN][key]
 				self.wfile.write('<tr><td>' + str(key) + '</td>')
 				self.wfile.write('<td>' + json.dumps(item['active'] if 'active' in item else {}) + '</td>')
 				self.wfile.write('<td>' + json.dumps(item['last'] if 'last' in item else {}) + '</td>')