From: Johannes Sixt Date: Wed, 02 Jul 2008 19:04:20 GMT Subject: Re: [PATCH 06/12] connect: Fix custom ports with plink (Putty's ssh) Message-ID: <200807022104.20146.johannes.sixt@telecom.at> In-Reply-To: <1214987532-23640-6-git-send-email-prohaska@zib.de> On Mittwoch, 2. Juli 2008, Steffen Prohaska wrote: > From: Edward Z. Yang > > PuTTY requires -P while OpenSSH requires -p; if plink is detected > as GIT_SSH, use the alternate flag. > > Signed-off-by: Edward Z. Yang > Signed-off-by: Steffen Prohaska > --- > connect.c | 4 +++- > 1 files changed, 3 insertions(+), 1 deletions(-) > > diff --git a/connect.c b/connect.c > index 574f42f..0d007f3 100644 > --- a/connect.c > +++ b/connect.c > @@ -599,11 +599,13 @@ struct child_process *git_connect(int fd[2], const > char *url_orig, conn->argv = arg = xcalloc(6, sizeof(*arg)); > if (protocol == PROTO_SSH) { > const char *ssh = getenv("GIT_SSH"); > + int putty = ssh && strstr(ssh, "plink"); > if (!ssh) ssh = "ssh"; > > *arg++ = ssh; > if (port) { > - *arg++ = "-p"; > + /* P is for PuTTY, p is for OpenSSH */ > + *arg++ = putty ? "-P" : "-p"; > *arg++ = port; > } > *arg++ = host; What about installing a wrapper script, plinkssh, that does this: #!/bin/bash if test "$1" = -p; then port="-P $2" shift; shift fi exec plink $port "$@" and require plink users to set GIT_SSH=plinkssh? -- Hannes