diff options
author | Rob Austein <sra@hactrn.net> | 2010-01-24 14:51:33 +0000 |
---|---|---|
committer | Rob Austein <sra@hactrn.net> | 2010-01-24 14:51:33 +0000 |
commit | fe215500a53d9914e04100f20c76813c5ff8dc11 (patch) | |
tree | 09f0f8576e17beb42330824e7be64d4da520230d | |
parent | 6ed89c99df60877c5ff26829b32faabfd7dec348 (diff) |
Tweak twisty maze of connection shutdown code to adhere more closely
to underlying asynchat event sequence. I think that violating the
underlying event model is why we were leaking file descriptors
("closed" connections that were not in fact being closed), overnight
test seems to bear this out.
svn path=/rpkid/rpki/https.py; revision=2970
-rw-r--r-- | rpkid/rpki/https.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/rpkid/rpki/https.py b/rpkid/rpki/https.py index 7f06f31a..62987b4c 100644 --- a/rpkid/rpki/https.py +++ b/rpkid/rpki/https.py @@ -281,6 +281,7 @@ class http_stream(asynchat.async_chat): self.log("Close event in HTTP stream handler") self.timer.cancel() self.timer.set_handler(None) + asynchat.async_chat.handle_close(self) def send(self, data): assert self.retry_read is None and self.retry_write is None, "%r: TLS I/O already in progress, r %r w %r" % (self, self.retry_read, self.retry_write) @@ -374,7 +375,6 @@ class http_stream(asynchat.async_chat): self.tls = None if self.tls is None: asynchat.async_chat.close(self) - self.handle_close() def log_cert(self, tag, x): if debug_tls_certs: |