X-Git-Url: http://www.dolda2000.com/gitweb/?p=ashd.git;a=blobdiff_plain;f=python3%2Fscgi-wsgi3;h=428767fed9c1fbc007aaa654f0fb04d2db998c8e;hp=946513e7d55f522d6aa7bcc7179231995a15fc80;hb=fbcb2f86e82eafdec10e4164cd9c94f66c0901f6;hpb=c67f9f8bb7c20ab7c5a6fef9d69d3606f0ff144a diff --git a/python3/scgi-wsgi3 b/python3/scgi-wsgi3 index 946513e..428767f 100755 --- a/python3/scgi-wsgi3 +++ b/python3/scgi-wsgi3 @@ -100,20 +100,17 @@ reqhandler = ashd.serve.freethread() class request(ashd.serve.wsgirequest): def __init__(self, *, sk, **kw): super().__init__(**kw) - self.sk = sk.dup() + self.bsk = sk.dup() + self.sk = self.bsk.makefile("rwb") def mkenv(self): - fsk = self.sk.dup().makefile("rwb") - try: - return mkenv(ashd.scgi.readhead(fsk), fsk) - finally: - fsk.close() + return mkenv(ashd.scgi.readhead(self.sk), self.sk) def handlewsgi(self, env, startreq): return handler(env, startreq) def fileno(self): - return self.sk.fileno() + return self.bsk.fileno() def writehead(self, status, headers): w = self.buffer.extend @@ -124,13 +121,14 @@ class request(ashd.serve.wsgirequest): def flush(self): try: - ret = self.sk.send(self.buffer, socket.MSG_DONTWAIT) + ret = self.bsk.send(self.buffer, socket.MSG_DONTWAIT) self.buffer[:ret] = b"" except IOError: raise ashd.serve.closed() def close(self): self.sk.close() + self.bsk.close() try: while True: