* lan server including discovery and publishing added (only ping implemented in server)

This commit is contained in:
Kevin Froman 2020-03-16 02:28:41 -05:00
parent 92c4109572
commit 3aec35ef33
9 changed files with 99 additions and 45 deletions

View file

@ -4,6 +4,14 @@ LAN transport server thread
"""
from gevent.pywsgi import WSGIServer
from flask import Flask
from flask import Response
from gevent import sleep
from httpapi.fdsafehandler import FDSafeHandler
from netcontroller import get_open_port
import config
from coredb.blockmetadb import get_block_list
from lan.getip import lan_ips, best_ip
"""
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@ -24,10 +32,24 @@ class LANServer:
def __init__(self, shared_state):
app = Flask(__name__)
self.app = app
self.host = config.get('lan.bind_ip', '')
self.server = None
if self.host == '':
self.host = best_ip
self.port = None
@app.route("/")
@app.route('/blist/<time>')
def get_block_list_for_lan(time):
return Response(get_block_list(dateRec=time).split('\n'))
@app.route("/ping")
def ping():
return "pong!"
return Response("pong!")
def start_server(self):
self.server = WSGIServer((self.host, get_open_port()),
self.app, log=None,
handler_class=FDSafeHandler)
self.port = self.server.server_port
self.server.serve_forever()
def start_server():
return