[PATCH] GIT_SSH alternate ssh name or helper
- From
- Martin Sivak <mars@nomi.cz>
- Date
- Aug 3, 2005, 15:15 UTC
- Message-ID
- <20050803151542.GA6655@medusa>
This patch make possible to use alternate ssh binary or ssh helper script. The script can be used to give additional parameters to ssh binary (like private key, protocol version, ...).
Example script could look like this:
#!/bin/sh ssh -1 -i myprivatekey.key "$@"
The patch itself is realy very simple:
diff -uNr git-current/connect.c git-current-mars@nomi.cz/connect.c --- git-current/connect.c 2005-08-03 15:00:04.000000000 +0200 +++ git-current-mars@nomi.cz/connect.c 2005-08-03 16:32:36.000000000 +0200
@@ -166,6 +166,9 @@ int pipefd[2][2]; pid_t pid; enum protocol protocol; + char *sshprog; + + sshprog = getenv("GIT_SSH") ? : "ssh"; host = NULL; path = url; @@ -205,7 +208,7 @@ close(pipefd[1][0]); close(pipefd[1][1]); if (protocol == PROTO_SSH) - execlp("ssh", "ssh", host, command, NULL); + execlp(sshprog, "ssh", host, command, NULL); else execlp("sh", "sh", "-c", command, NULL); die("exec failed"); diff -uNr git-current/rsh.c git-current-mars@nomi.cz/rsh.c --- git-current/rsh.c 2005-08-03 15:00:04.000000000 +0200 +++ git-current-mars@nomi.cz/rsh.c 2005-08-03 16:26:39.000000000 +0200 @@ -17,6 +17,7 @@ char command[COMMAND_SIZE]; char *posn; int i; + char *prog; if (!strcmp(url, "-")) { *fd_in = 0; @@ -24,6 +25,8 @@ return 0; } + prog = getenv("GIT_SSH") ? : "ssh"; + host = strstr(url, "//"); if (host) { host += 2; @@ -59,7 +62,7 @@ close(sv[1]); dup2(sv[0], 0); dup2(sv[0], 1); - execlp("ssh", "ssh", host, command, NULL); + execlp(prog, "ssh", host, command, NULL); } close(sv[0]); *fd_in = sv[1]; Signed-off-by: Martin Sivak <mars@nomi.cz>
-- Martin Sivak mars@nomi.cz