Issue #23865: close() methods in multiple modules now are idempotent and more
robust at shutdown. If needs to release multiple resources, they are released
even if errors are occured.
diff --git a/Lib/telnetlib.py b/Lib/telnetlib.py
index eebb952..72dabc7 100644
--- a/Lib/telnetlib.py
+++ b/Lib/telnetlib.py
@@ -261,12 +261,13 @@
def close(self):
"""Close the connection."""
- if self.sock:
- self.sock.close()
- self.sock = 0
- self.eof = 1
+ sock = self.sock
+ self.sock = None
+ self.eof = True
self.iacseq = b''
self.sb = 0
+ if sock:
+ sock.close()
def get_socket(self):
"""Return the socket object used internally."""