Răsfoiți Sursa

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.
Josh Guilfoyle 17 ani în urmă
părinte
comite
4c0f670465
1 a modificat fișierele cu 12 adăugiri și 5 ștergeri
  1. 12 5
      git_config.py

+ 12 - 5
git_config.py

@@ -356,10 +356,14 @@ class RefSpec(object):
 _ssh_cache = {}
 _ssh_cache = {}
 _ssh_master = True
 _ssh_master = True
 
 
-def _open_ssh(host, port):
+def _open_ssh(host, port=None):
   global _ssh_master
   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:
   if key in _ssh_cache:
     return True
     return True
 
 
@@ -372,10 +376,13 @@ def _open_ssh(host, port):
 
 
   command = ['ssh',
   command = ['ssh',
              '-o','ControlPath %s' % _ssh_sock(),
              '-o','ControlPath %s' % _ssh_sock(),
-             '-p',str(port),
              '-M',
              '-M',
              '-N',
              '-N',
              host]
              host]
+
+  if port is not None:
+    command[3:3] = ['-p',str(port)]
+
   try:
   try:
     Trace(': %s', ' '.join(command))
     Trace(': %s', ' '.join(command))
     p = subprocess.Popen(command)
     p = subprocess.Popen(command)
@@ -417,7 +424,7 @@ def _preconnect(url):
     if ':' in host:
     if ':' in host:
       host, port = host.split(':')
       host, port = host.split(':')
     else:
     else:
-      port = 22
+      port = None
     if scheme in ('ssh', 'git+ssh', 'ssh+git'):
     if scheme in ('ssh', 'git+ssh', 'ssh+git'):
       return _open_ssh(host, port)
       return _open_ssh(host, port)
     return False
     return False
@@ -425,7 +432,7 @@ def _preconnect(url):
   m = URI_SCP.match(url)
   m = URI_SCP.match(url)
   if m:
   if m:
     host = m.group(1)
     host = m.group(1)
-    return _open_ssh(host, 22)
+    return _open_ssh(host)
 
 
   return False
   return False