aboutsummaryrefslogtreecommitdiff
path: root/rpkid/rpki/https.py
diff options
context:
space:
mode:
Diffstat (limited to 'rpkid/rpki/https.py')
-rw-r--r--rpkid/rpki/https.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/rpkid/rpki/https.py b/rpkid/rpki/https.py
index b34883b7..a7d7acef 100644
--- a/rpkid/rpki/https.py
+++ b/rpkid/rpki/https.py
@@ -271,7 +271,7 @@ class http_stream(asynchat.async_chat):
rpki.log.traceback()
if etype not in (rpki.exceptions.HTTPSClientAborted,):
self.log("Closing due to error", rpki.log.warn)
- self.close()
+ self.close(force = True)
def handle_timeout(self):
self.log("Timeout, closing")
@@ -368,7 +368,12 @@ class http_stream(asynchat.async_chat):
self.retry_read = self.close
except POW.WantWriteError:
self.retry_write = self.close
-
+ except POW.SSLError, e:
+ self.log("socket shutdown threw %s, shutting down anyway" % e)
+ self.tls = None
+ asynchat.async_chat.close(self)
+ self.handle_close()
+
def log_cert(self, tag, x):
if debug_tls_certs:
rpki.log.debug("%r: HTTPS %s cert %r issuer %s [%s] subject %s [%s]" % (self, tag, x, x.getIssuer(), x.hAKI(), x.getSubject(), x.hSKI()))