X-Git-Url: http://git.dolda2000.com/gitweb/?a=blobdiff_plain;f=python3%2Fashd%2Fserve.py;h=ebee436e511177e6c67c6db29e8af18f8ecdaaf0;hb=5c6e20a6cda40337414bb886ae7f0734085b7408;hp=9aae12c638f9783e4cc04f7e20925dcf8e5898ed;hpb=5345dcaf7afbc811d75d4826652144268dd7a863;p=ashd.git diff --git a/python3/ashd/serve.py b/python3/ashd/serve.py index 9aae12c..ebee436 100644 --- a/python3/ashd/serve.py +++ b/python3/ashd/serve.py @@ -23,7 +23,7 @@ class reqthread(threading.Thread): super().__init__(name=name, **kw) class wsgirequest(object): - def __init__(self, handler): + def __init__(self, *, handler): self.status = None self.headers = [] self.respsent = False @@ -272,15 +272,22 @@ class resplex(handler): data = next(respiter) except StopIteration: rem = True - req.flushreq() + try: + req.flushreq() + except: + log.error("exception occurred when handling response data", exc_info=True) except: rem = True log.error("exception occurred when iterating response", exc_info=True) if not rem: if data: - req.flushreq() - req.writedata(data) - else: + try: + req.flushreq() + req.writedata(data) + except: + log.error("exception occurred when handling response data", exc_info=True) + rem = True + if rem: current[req] = None try: if hasattr(respiter, "close"):