Re: [PATCH 06/12] connect: Fix custom ports with plink (Putty's ssh)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jul 3, 2008, 11:10 UTC
- Message-ID
- <alpine.DEB.1.00.0807031209440.9925@racer>
- In-Reply-To
- <200807022104.20146.johannes.sixt@telecom.at>
Hi,
On Wed, 2 Jul 2008, Johannes Sixt wrote:
Show 44 quoted lines
> On Mittwoch, 2. Juli 2008, Steffen Prohaska wrote:
> > From: Edward Z. Yang <edwardzyang@thewritingpot.com>
> >
> > PuTTY requires -P while OpenSSH requires -p; if plink is detected
> > as GIT_SSH, use the alternate flag.
> >
> > Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
> > Signed-off-by: Steffen Prohaska <prohaska@zib.de>
> > ---
> > 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?I like that better than this special-casing of plink.
Ciao, Dscho