Merge branch 'qvarforth:main' into fixes

This commit is contained in:
Peter Buchegger 2022-02-09 22:34:07 +01:00 committed by GitHub
commit e9938daed9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 29 deletions

View File

@ -4,7 +4,7 @@
<div class="modal-inner-content modal-inner-content-about" style="padding-bottom: 30px;">
<h2>1. I have a question. Who may I contact?</h2>
<p>
Maintainer of this website is <a href="<?php echo getWebsiteConfig('owner_email'); ?>"><?php echo getWebsiteConfig('owner_name'); ?></a>.
Maintainer of this website is <a href="mailto:<?php echo getWebsiteConfig('owner_email'); ?>"><?php echo getWebsiteConfig('owner_name'); ?></a>.
</p>
<h2>2. What is APRS?</h2>

View File

@ -49,8 +49,9 @@ def master(options, trackDirectLogger):
childFDs={0: 0, 1: 1, 2: 2, port.fileno(): port.fileno()},
env=os.environ)
reactor.suggestThreadPoolSize(25)
reactor.run()
options.fd = port.fileno()
listen(options, trackDirectLogger)
except Exception as e:
trackDirectLogger.error(e, exc_info=1)
@ -69,34 +70,40 @@ def worker(options, trackDirectLogger):
trackDirectLogger.warning("Starting worker with PID " + str(workerPid) + " (on CPU id(s): " + ','.join(map(str, p.cpu_affinity())) + ")")
factory = WebSocketServerFactory(
"ws://" + config.websocketHostname + ":" + str(config.websocketPort),
externalPort = config.websocketExternalPort)
factory.protocol = trackdirect.TrackDirectWebsocketServer
listen(options, trackDirectLogger)
# Enable WebSocket extension "permessage-deflate".
# Function to accept offers from the client ..
def accept(offers):
for offer in offers:
if isinstance(offer, PerMessageDeflateOffer):
return PerMessageDeflateOfferAccept(offer)
factory.setProtocolOptions(perMessageCompressionAccept=accept)
reactor.suggestThreadPoolSize(25)
resource = WebSocketResource(factory)
root = File(".")
root.putChild(b"ws", resource)
site = Site(root)
# The master already created the socket, just start listening and accepting
reactor.adoptStreamPort(options.fd, AF_INET, factory)
reactor.run()
except Exception as e:
trackDirectLogger.error(e, exc_info=1)
def listen(options, trackDirectLogger) :
"""
Start to listen on websocket requests.
"""
config = trackdirect.TrackDirectConfig()
config.populate(options.config)
factory = WebSocketServerFactory(
"ws://" + config.websocketHostname + ":" + str(config.websocketPort),
externalPort = config.websocketExternalPort)
factory.protocol = trackdirect.TrackDirectWebsocketServer
# Enable WebSocket extension "permessage-deflate".
# Function to accept offers from the client ..
def accept(offers):
for offer in offers:
if isinstance(offer, PerMessageDeflateOffer):
return PerMessageDeflateOfferAccept(offer)
factory.setProtocolOptions(perMessageCompressionAccept=accept)
reactor.suggestThreadPoolSize(25)
# Socket already created, just start listening and accepting
reactor.adoptStreamPort(options.fd, AF_INET, factory)
reactor.run()
if __name__ == '__main__':
DEFAULT_WORKERS = psutil.cpu_count()

View File

@ -11,6 +11,7 @@ import datetime
import time
import psycopg2
import psycopg2.extras
import os
import re
from trackdirect.TrackDirectConfig import TrackDirectConfig
@ -63,11 +64,11 @@ class TrackDirectWebsocketServer(WebSocketServerProtocol):
"""
try:
if ('x-forwarded-for' in request.headers):
self.logger.warning("Client connecting from origin: {0}, x-forwarded-for: {1}".format(
request.origin, request.headers['x-forwarded-for']))
self.logger.warning("Client connecting from origin: {0}, x-forwarded-for: {1} (server pid {2})".format(
request.origin, request.headers['x-forwarded-for'], str(os.getpid())))
else:
self.logger.warning(
"Client connecting from origin: {0}".format(request.origin))
"Client connecting from origin: {0} (server pid {1})".format(request.origin, str(os.getpid())))
except Exception as e:
self.logger.error(e, exc_info=1)