Re: [PATCH] Ensure that SSH runs in non-interactive mode
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:58
Johannes Schindelin [off-list ref] writes:
quoted hunk
How about this instead? -- snipsnap --diff --git a/connect.c b/connect.c index 574f42f..7e7f4d3 100644 --- a/connect.c +++ b/connect.c@@ -603,7 +603,8 @@ struct child_process *git_connect(int fd[2], const char *url *arg++ = ssh; if (port) { - *arg++ = "-p"; + const char *opt = getenv("GIT_SSH_PORT_OPTION"); + *arg++ = opt ? opt : "-p"; *arg++ = port; } *arg++ = host;
If you only care only about the ones we currently want to support, I do not htink it makes any difference either way, but if we are shooting for having a minimum-but-reasonable framework to make it easy to support other ones that we haven't seen, it feels very much like an inadequate hack to waste an envirnoment variable for such a narrow special case. With this, what you really mean is "Plink uses -P instead of -p", right? I do not know if "plink" is used widely enough to be special cased, but if so, I think we would better have an explicit support for it. Will we add GIT_SSH_FORBID_X11_FORWARDING_OPTION environment variable and friends, too? The extra environment would not help dealing with an implementation that wants --port=90222 (i.e. not as two separate arguments but a single one), for example. You would need the extra wrapper support for that kind of thing anyway. That extra environment _solution_ will need to make an assuption that any reasonable implementation would have an option string to specify port which may not be "-p" and that is to be followed by a separate argument that is a decimal port number, which probably is reasonable for this particular "port" thing, but as a general design principle I do not think it is a good direction to go.