summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobey Pointer <robey@lag.net>2005-05-04 02:44:00 +0000
committerRobey Pointer <robey@lag.net>2005-05-04 02:44:00 +0000
commite8efe095a68a764b1b9ebaa73510fea16707fd5a (patch)
treef1a139147d7a79fd0ca95f9690c323275ca990cd
parent2c264c7df565007b2083304b3fe8f99c7af9e059 (diff)
[project @ Arch-1:robey@lag.net--2005-master-shake%paramiko--dev--1--patch-7]
don't close the socket until the destructor -- we may drop a session before the socket is actually finished
-rw-r--r--paramiko/packet.py15
1 files changed, 9 insertions, 6 deletions
diff --git a/paramiko/packet.py b/paramiko/packet.py
index d93227cb..e75ea776 100644
--- a/paramiko/packet.py
+++ b/paramiko/packet.py
@@ -25,6 +25,7 @@ Packetizer.
import select, socket, struct, threading, time
from Crypto.Hash import HMAC
from common import *
+from ssh_exception import SSHException
from message import Message
import util
@@ -75,6 +76,12 @@ class Packetizer (object):
self.__keepalive_last = time.time()
self.__keepalive_callback = None
+ def __del__(self):
+ # this is not guaranteed to be called, but we should try.
+ try:
+ self.__socket.close()
+ except:
+ pass
def set_log(self, log):
"""
@@ -108,13 +115,10 @@ class Packetizer (object):
self.__received_packets = 0
self.__received_packets_overflow = 0
self.__need_rekey = False
-
+
def close(self):
self.__closed = True
- self.__block_engine_in = None
- self.__block_engine_out = None
- self.__socket.close()
-
+
def set_hexdump(self, hexdump):
self.__dump_packets = hexdump
@@ -146,7 +150,6 @@ class Packetizer (object):
self.__keepalive_interval = interval
self.__keepalive_callback = callback
self.__keepalive_last = time.time()
- self._log(DEBUG, 'SET KEEPALIVE %r' % interval)
def read_all(self, n):
"""