class DBG(twisted.python.constants.Names):
ROUTE = NamedConstant()
+ DROP = NamedConstant()
FLOW = NamedConstant()
HTTP = NamedConstant()
HTTP_CTRL = NamedConstant()
QUEUE = NamedConstant()
QUEUE_CTRL = NamedConstant()
-_hexcodec = codecs.getencoder('hex_codec')
+_hex_codec = codecs.getencoder('hex_codec')
log = twisted.logger.Logger()
msg = '[%d] %s' % (id(idof), msg)
if d is not None:
d = d[0:64]
- d = _hex_codec(d)[0]
+ d = _hex_codec(d)[0].decode('ascii')
msg += ' ' + d
log.info('{dflag} {msgcore}', dflag=dflag, msgcore=msg)
c = ConfigResults()
def log_discard(packet, saddr, daddr, why):
-
- Print('Drop ', Saddr, Daddr, why)
-# syslog.syslog(syslog.LOG_DEBUG,
-# 'discarded packet %s -> %s (%s)' % (saddr, daddr, why))
+ log_debug(DBG.DROP,
+ 'discarded packet %s -> %s (%s)' % (saddr, daddr, why),
+ d=packet)
#---------- packet parsing ----------
self._max_queue_time = max_queue_time
self._pq = collections.deque() # packets
- def _log(self, dflag, msg, **kwargs)
+ def _log(self, dflag, msg, **kwargs):
log_debug(dflag, self._desc+' pq: '+msg, **kwargs)
def append(self, packet):
self._log(DBG.QUEUE_CTRL,
'process... (sofar=%d, max=%d) encoded' % (sofar, max_batch),
- d=encoded
+ d=encoded)
if sofar > 0:
if sofar + len(slip.delimiter) + len(encoded) > max_batch:
#---------- error handling ----------
+_crashing = False
+
def crash(err):
+ global _crashing
+ _crashing = True
print('CRASH ', err, file=sys.stderr)
try: reactor.stop()
except twisted.internet.error.ReactorNotRunning: pass
except AttributeError: continue
setattr(c, d, v)
- print(repr(c))
+ #print(repr(c))
c.ipif_command = cfg.get(section,'ipif', vars=c.__dict__)
cfg.read(opts.configfile)
def common_run():
- log_debug(DBG.INIT, 'ready')
- reactor.run()
+ log_debug(DBG.INIT, 'entering reactor')
+ if not _crashing: reactor.run()
print('CRASHED (end)', file=sys.stderr)
.replace(end, esc + esc_end))
def decode(data):
- print('DECODE ', repr(data))
+ #print('DECODE ', repr(data))
out = []
for packet in data.split(end):
pdata = b''
else: raise ValueError('invalid SLIP escape')
packet = packet[eix+2 : ]
out.append(pdata)
- print('DECODED ', repr(out))
+ #print('DECODED ', repr(out))
return out
# -*- python -*-
self._log(DBG.INIT, 'new')
- def _log(self, pri, msg, **kwargs):
- log_debug(pri, 'client '+self._ip+': '+msg, **kwargs)
+ def _log(self, dflag, msg, **kwargs):
+ log_debug(dflag, ('client %s: ' % self._ip)+msg, **kwargs)
def process_arriving_data(self, d):
self._log(DBG.FLOW, 'req data', d=d)
desca['ci'] = ci
cl = clients[ci]
if pw != cl.pw: raise ValueError('bad password')
- desca['pwok'=True]
+ desca['pwok']=True
if tro != cl.target_requests_outstanding:
raise ValueError('tro must be %d' % cl.target_requests_outstanding)