chiark
/
gitweb
/
~mdw
/
hippotat
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a63dd50
)
wip
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Mon, 20 Mar 2017 08:46:27 +0000
(08:46 +0000)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Mon, 20 Mar 2017 08:46:27 +0000
(08:46 +0000)
server
patch
|
blob
|
blame
|
history
diff --git
a/server
b/server
index e813ca0b650e24f9dfe6a263f6b0b12c01d5517f..de28624452c8dec55a20be22ad2d08e3aee0b141 100755
(executable)
--- a/
server
+++ b/
server
@@
-1,5
+1,8
@@
#!/usr/bin/python3
#!/usr/bin/python3
+import signal
+signal.signal(signal.SIGINT, signal.SIG_DFL)
+
import sys
import os
import sys
import os
@@
-55,7
+58,7
@@
mtu = 1500
[server]
ipif = userv root ipif %(host)s,%(relay)s,%(mtu)s,slip %(network)s
addrs = 127.0.0.1 ::1
[server]
ipif = userv root ipif %(host)s,%(relay)s,%(mtu)s,slip %(network)s
addrs = 127.0.0.1 ::1
-port = 80
+port = 80
99
[limits]
max_batch_down = 262144
[limits]
max_batch_down = 262144
@@
-63,6
+66,20
@@
max_queue_time = 121
max_request_time = 121
'''
max_request_time = 121
'''
+#---------- error handling ----------
+
+def crash(err):
+ print('CRASH ', err, file=sys.stderr)
+ try: reactor.stop()
+ except twisted.internet.error.ReactorNotRunning: pass
+
+def crash_on_defer(defer):
+ defer.addErrback(lambda err: crash(err))
+
+def crash_on_critical(event):
+ if event.get('log_level') >= LogLevel.critical:
+ crash(twisted.logger.formatEvent(event))
+
#---------- "router" ----------
def route(packet, saddr, daddr):
#---------- "router" ----------
def route(packet, saddr, daddr):
@@
-288,8
+305,7
@@
def start_http():
addr = ipaddress.IPv6Address(addrspec)
endpointfactory = twisted.internet.endpoints.TCP6ServerEndpoint
ep = endpointfactory(reactor, cfg.getint('server','port'), addr)
addr = ipaddress.IPv6Address(addrspec)
endpointfactory = twisted.internet.endpoints.TCP6ServerEndpoint
ep = endpointfactory(reactor, cfg.getint('server','port'), addr)
- defer = ep.listen(sitefactory)
- defer.addErrback(lambda err: err.raiseException())
+ crash_on_defer(ep.listen(sitefactory))
#---------- config and setup ----------
#---------- config and setup ----------
@@
-334,14
+350,6
@@
def process_cfg():
ipif_command = cfg.get('server','ipif', vars=iic_vars)
ipif_command = cfg.get('server','ipif', vars=iic_vars)
-def crash_on_critical(event):
- if event.get('log_level') >= LogLevel.critical:
- print('crashing: ', twisted.logger.formatEvent(event), file=sys.stderr)
- #print('crashing!', file=sys.stderr)
- #os._exit(1)
- try: reactor.stop()
- except twisted.internet.error.ReactorNotRunning: pass
-
def startup():
global cfg
def startup():
global cfg
@@
-364,3
+372,4
@@
def startup():
startup()
reactor.run()
startup()
reactor.run()
+print('CRASHED (end)', file=sys.stderr)