Merge branch '1.11'

This commit is contained in:
Jeff Forcier 2013-09-20 14:47:34 -07:00
commit 6eea2b5ce7
3 changed files with 16 additions and 5 deletions

8
NEWS
View File

@ -18,6 +18,10 @@ v1.11.1 (20th Sep 2013)
* #162: Clean up HMAC module import to avoid deadlocks in certain uses of
SSHClient. Thanks to Gernot Hillier for the catch & suggested
fix.
* #168: Update config handling to properly handle multiple 'localforward' and
'remoteforward' keys. Thanks to Emre Yılmaz for the patch.
* #36: Fix the port-forwarding demo to avoid file descriptor errors. Thanks to
Jonathan Halcrow for catch & patch.
v1.10.3 (20th Sep 2013)
-----------------------
@ -25,6 +29,10 @@ v1.10.3 (20th Sep 2013)
* #162: Clean up HMAC module import to avoid deadlocks in certain uses of
SSHClient. Thanks to Gernot Hillier for the catch & suggested
fix.
* #36: Fix the port-forwarding demo to avoid file descriptor errors. Thanks to
Jonathan Halcrow for catch & patch.
* #168: Update config handling to properly handle multiple 'localforward' and
'remoteforward' keys. Thanks to Emre Yılmaz for the patch.
v1.11.0 (26th Jul 2013)
-----------------------

View File

@ -78,9 +78,11 @@ class Handler (SocketServer.BaseRequestHandler):
if len(data) == 0:
break
self.request.send(data)
peername = self.request.getpeername()
chan.close()
self.request.close()
verbose('Tunnel closed from %r' % (self.request.getpeername(),))
verbose('Tunnel closed from %r' % (peername,))
def forward_tunnel(local_port, remote_host, remote_port, transport):

View File

@ -126,14 +126,15 @@ class SSHConfig (object):
self._config.append(host)
value = value.split()
host = {key: value, 'config': {}}
#identityfile is a special case, since it is allowed to be
#identityfile, localforward, remoteforward keys are special cases, since they are allowed to be
# specified multiple times and they should be tried in order
# of specification.
elif key == 'identityfile':
elif key in ['identityfile', 'localforward', 'remoteforward']:
if key in host['config']:
host['config']['identityfile'].append(value)
host['config'][key].append(value)
else:
host['config']['identityfile'] = [value]
host['config'][key] = [value]
elif key not in host['config']:
host['config'].update({key: value})
self._config.append(host)