diff options
author | Eric Wong <normalperson@yhbt.net> | 2016-02-03 04:09:14 +0000 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-02-12 11:34:14 -0800 |
commit | c915f11eb4922e154e29cf62d3b549d65c06a170 (patch) | |
tree | c318d28aff355a3a42a6b7accc3fa0e71588584d /transport-helper.c | |
parent | pass transport verbosity down to git_connect (diff) | |
download | tgif-c915f11eb4922e154e29cf62d3b549d65c06a170.tar.xz |
connect & http: support -4 and -6 switches for remote operations
Sometimes it is necessary to force IPv4-only or IPv6-only operation
on networks where name lookups may return a non-routable address and
stall remote operations.
The ssh(1) command has an equivalent switches which we may pass when
we run them. There may be old ssh(1) implementations out there
which do not support these switches; they should report the
appropriate error in that case.
rsync support is untouched for now since it is deprecated and
scheduled to be removed.
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Reviewed-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'transport-helper.c')
-rw-r--r-- | transport-helper.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/transport-helper.c b/transport-helper.c index 0eb3cf01aa..d50242634f 100644 --- a/transport-helper.c +++ b/transport-helper.c @@ -320,6 +320,21 @@ static void standard_options(struct transport *t) if (n >= sizeof(buf)) die("impossibly large verbosity value"); set_helper_option(t, "verbosity", buf); + + switch (t->family) { + case TRANSPORT_FAMILY_ALL: + /* + * this is already the default, + * do not break old remote helpers by setting "all" here + */ + break; + case TRANSPORT_FAMILY_IPV4: + set_helper_option(t, "family", "ipv4"); + break; + case TRANSPORT_FAMILY_IPV6: + set_helper_option(t, "family", "ipv6"); + break; + } } static int release_helper(struct transport *transport) |