import io
class GeneralResponseConsumer(twisted.internet.protocol.Protocol):
- def __init__(self, cl, req, desc):
+ def __init__(self, cl, req, resp, desc):
self._cl = cl
self._req = req
self._desc = desc
self._log(DBG.HTTP_CTRL, 'connectionMade')
class ResponseConsumer(GeneralResponseConsumer):
- def __init__(self, cl, req):
- super().__init__(cl, req, 'RC')
+ def __init__(self, cl, req, resp):
+ super().__init__(cl, req, resp, 'RC')
ssddesc = '[%s] %s' % (id(req), self._desc)
self._ssd = SlipStreamDecoder(ssddesc, partial(queue_inbound, cl.ipif))
self._log(DBG.HTTP_CTRL, '__init__')
self._handleexception()
def connectionLost(self, reason):
- self._log(DBG.HTTP_CTRL, 'connectionLost ' + str(reason))
+ reason_msg = 'connectionLost ' + str(reason)
+ self._log(DBG.HTTP_CTRL, reason_msg)
if not reason.check(twisted.web.client.ResponseDone):
- self.latefailure()
+ self._latefailure(reason_msg)
return
try:
self._log(DBG.HTTP, 'ResponseDone')
class ErrorResponseConsumer(GeneralResponseConsumer):
def __init__(self, cl, req, resp):
- super().__init__(cl, req, 'ERROR-RC')
+ super().__init__(cl, req, resp, 'ERROR-RC')
self._resp = resp
self._m = b''
try:
'req_ok %d %s %s' % (resp.code, repr(resp.phrase), str(resp)),
idof=req)
if resp.code == 200:
- rc = ResponseConsumer(cl, req)
+ rc = ResponseConsumer(cl, req, resp)
else:
rc = ErrorResponseConsumer(cl, req, resp)
# later, by ResponsConsumer or ErrorResponsConsumer
try:
cl.log(DBG.HTTP_CTRL, 'req_err ' + str(err), idof=req)
+ cl.running_reported = False
if isinstance(err, twisted.python.failure.Failure):
err = err.getTraceback()
print('%s[%#x] %s' % (cl.desc, id(req), err.strip('\n').replace('\n',' / ')),