From 4c0f67046543c7c6ab24175e143001f14b76ea01 Mon Sep 17 00:00:00 2001 From: Josh Guilfoyle Date: Sun, 16 Aug 2009 09:44:40 -0700 Subject: [PATCH] Do not invoke ssh with -p argument when no port has been specified. This change allows local SSH configuration to choose the port number to use when not explicitly set in the manifest. --- git_config.py | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/git_config.py b/git_config.py index e1e2046..fe983c4 100644 --- a/git_config.py +++ b/git_config.py @@ -356,10 +356,14 @@ class RefSpec(object): _ssh_cache = {} _ssh_master = True -def _open_ssh(host, port): +def _open_ssh(host, port=None): global _ssh_master - key = '%s:%s' % (host, port) + if port is not None: + key = '%s:%s' % (host, port) + else: + key = host + if key in _ssh_cache: return True @@ -372,10 +376,13 @@ def _open_ssh(host, port): command = ['ssh', '-o','ControlPath %s' % _ssh_sock(), - '-p',str(port), '-M', '-N', host] + + if port is not None: + command[3:3] = ['-p',str(port)] + try: Trace(': %s', ' '.join(command)) p = subprocess.Popen(command) @@ -417,7 +424,7 @@ def _preconnect(url): if ':' in host: host, port = host.split(':') else: - port = 22 + port = None if scheme in ('ssh', 'git+ssh', 'ssh+git'): return _open_ssh(host, port) return False @@ -425,7 +432,7 @@ def _preconnect(url): m = URI_SCP.match(url) if m: host = m.group(1) - return _open_ssh(host, 22) + return _open_ssh(host) return False