summaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2013-09-20Changelog re #168Jeff Forcier
2013-09-20Merge branch '1.10' into 168-intJeff Forcier
Conflicts: NEWS setup.py
2013-09-20Changelog re #36Jeff Forcier
2013-09-20This fixes a Bad file descriptor error caused by attempting to access the ↵Jonathan Halcrow
request after it has already been closed.
2013-09-20Merge branch '1.11'Jeff Forcier
2013-09-20Clone changelog entry for 1.11Jeff Forcier
2013-09-20Merge branch '1.10' into 1.11Jeff Forcier
Conflicts: NEWS
2013-09-20Changelog entry re #162Jeff Forcier
2013-09-20Apply slightly modified version of patch from #162Jeff Forcier
2013-09-20Merge branch '1.11'Jeff Forcier
2013-08-01Tag nagJeff Forcier
2013-08-01Tag nagJeff Forcier
2013-07-26Version bump/dumb-fixJeff Forcier
2013-07-26Merge branch '1.10'Jeff Forcier
Conflicts: NEWS setup.py
2013-07-26Version bumpJeff Forcier
2013-07-26Update changelog for releaseJeff Forcier
2013-07-07Update doc upload task w/ static hostnameJeff Forcier
2013-06-28Add ML link to docs 'index'Jeff Forcier
Fixes #48
2013-06-28Port Makefile contents into fabfileJeff Forcier
2013-06-26Move reqs.txt to dev-reqs.txt, solidify tox reqJeff Forcier
2013-05-21updated config to be compatible with multiple localforward and remoteforward ↵Emre Yılmaz
options.
2013-05-05Merge branch '1.10'Jeff Forcier
2013-05-05Flip bad known_hosts line to INFO from WARN re #153Jeff Forcier
2013-04-30Add NEWS entryEthan Glasser-Camp
2013-04-28Bump dev versionJeff Forcier
2013-04-28Merge branch 'master' of github.com:paramiko/paramikoJeff Forcier
2013-04-28Merge branch '1.10'Jeff Forcier
2013-04-28Add explicit link to updated API docs. Fixes #160Jeff Forcier
2013-04-28Merge pull request #155 from Baconator507/patch-1Jeff Forcier
Update demo.py
2013-04-28Merge branch '1.10'Jeff Forcier
2013-04-28Warn on parse failure when reading known_hostsEthan Glasser-Camp
2013-04-28Merge pull request #153 from glasserc/log_bad_hostkeysJeff Forcier
Warn on parse failure when reading known_hosts
2013-04-28Warn on parse failure when reading known_hostsEthan Glasser-Camp
2013-04-27Merge branch '1.10'Jeff Forcier
Conflicts: NEWS
2013-04-27Changelog re #146 (also start 10.10.2 section)Jeff Forcier
2013-04-27Fix indentation at few places.Abhinav Upadhyay
2013-04-27Back out broken but non-required hostname hash changeJeff Forcier
2013-04-27Changelog re #87Jeff Forcier
2013-04-27do not write ,,garbage'' to known_hosts file(s)Mike Gabriel
2013-04-27Load host entries from the known_hosts file(s) before writing the file from ↵Mike Gabriel
RAM to disk. Avoids loss of host entries in case other SSH clients have written to the known_hosts file(s) meanwhile.
2013-04-27Assure that host entries in known_hosts files do not duplicate endlessly if ↵Mike Gabriel
keys from known_hosts are loaded via HostKeys.load() more than once (e.g. for refreshing the list of known hosts during runtime).
2013-04-27Store hostname hashes in memory rathen than the non-hashed host entries. ↵Mike Gabriel
Also assures that the host entries in known_hosts get saved in hashed format as it is currently standard in OpenSSH.
2013-04-11un-break Python 2.5 compatibility by using isAlive() instead of is_alive()Steven Noonan
Python's documentation has a bug[1], in that it doesn't correctly annotate is_alive as being a function introduced in Python 2.6. [1] http://bugs.python.org/issue15126 Signed-off-by: Steven Noonan <snoonan@amazon.com>
2013-04-11transport: Wait for thread termination before closing the socketFrank Arnold
Make sure the Thread.run() method has terminated before closing the socket. Currently, the socket is closed through Packetizer.close(), which happens too early. Move the socket.close() into Transport.close() and after the Thread.join() call. While at it, modify the stop_thread() method and use it in Transport.close() to avoid code duplication. Use join() with a timeout to make it possible to terminate the main thread with KeyboardInterrupt. Also, remove the now obsolete socket.close() from Transport.atfork(). This fixes a potential infinite loop if paramiko.SSHClient is connected through a paramiko.Channel instead of a regular socket (tunneling). Details: Using a debug patch to dump the current stack of the thread every couple of seconds while trying to close it, I've seen the following over and over again: Thread could not be stopped, still running. Current traceback (most recent call last): File "/usr/lib/python2.7/threading.py", line 524, in __bootstrap self.__bootstrap_inner() File "/usr/lib/python2.7/threading.py", line 551, in __bootstrap_inner self.run() File ".../paramiko/transport.py", line 1564, in run self._channel_handler_table[ptype](chan, m) File ".../paramiko/channel.py", line 1102, in _handle_close self.transport._send_user_message(m) File ".../paramiko/transport.py", line 1418, in _send_user_message self._send_message(data) File ".../paramiko/transport.py", line 1398, in _send_message self.packetizer.send_message(data) File ".../paramiko/packet.py", line 319, in send_message self.write_all(out) File ".../paramiko/packet.py", line 248, in write_all n = self.__socket.send(out) File ".../paramiko/channel.py", line 732, in send self.lock.release() The thread was running Packetizer.write_all() in an endless loop: while len(out) > 0: ... n = Channel.send(out) # n == 0 because channel got closed ... out = out[n:] # essentially out = out Signed-off-by: Frank Arnold <farnold@amazon.com>
2013-04-09Update demo.pyIvan Barria
why import threading?
2013-04-05Merge branch '1.10'Jeff Forcier
Conflicts: NEWS
2013-04-05Bump version to 1.10.1Jeff Forcier
2013-04-05Changelog re #154Jeff Forcier
2013-04-05Fix bug that leaves fds in select after EOF receivedKevin Tegtmeier
2013-04-05Merge branch '1.10'Jeff Forcier
Conflicts: NEWS