summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain LE DISEZ <romain.le-disez@corp.ovh.com>2017-09-26 14:57:26 +0200
committerRomain LE DISEZ <romain.le-disez@corp.ovh.com>2019-08-09 10:31:44 -0400
commitfc21cde1c26bbb6c7abbc0890a88381aabed67fa (patch)
tree59a0c5aead5851aa230ed75a168f29b29d00134a
parentccf9f6a4e0bdbdf79efb2e80551f9ec4f6d5d547 (diff)
downloadceilometermiddleware-fc21cde1c26bbb6c7abbc0890a88381aabed67fa.tar.gz
Fix a socket leak in case of broken connectiontrain-em1.5.0
Change-Id: I39cbbe5915ab95fb0927b0899b8f09870b4c0b07
-rw-r--r--ceilometermiddleware/swift.py8
1 files changed, 8 insertions, 0 deletions
diff --git a/ceilometermiddleware/swift.py b/ceilometermiddleware/swift.py
index ee2d8d6..a44f45e 100644
--- a/ceilometermiddleware/swift.py
+++ b/ceilometermiddleware/swift.py
@@ -131,6 +131,11 @@ class InputProxy(object):
self.bytes_received += len(line)
return line
+ def close(self):
+ close_method = getattr(self.wsgi_input, 'close', None)
+ if callable(close_method):
+ close_method()
+
class KeystoneClientLoader(ksa_adapter.Adapter):
"""Keystone client adapter loader.
@@ -272,6 +277,9 @@ class Swift(object):
except StopIteration:
chunk = ''
finally:
+ close_method = getattr(iterable, 'close', None)
+ if callable(close_method):
+ close_method()
self.emit_event(env, input_proxy.bytes_received, bytes_sent)
try: