From c915f11eb4922e154e29cf62d3b549d65c06a170 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Wed, 3 Feb 2016 04:09:14 +0000 Subject: connect & http: support -4 and -6 switches for remote operations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Torsten Bögershausen Signed-off-by: Junio C Hamano --- transport.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'transport.c') diff --git a/transport.c b/transport.c index 9ae71849d6..afcec433f3 100644 --- a/transport.c +++ b/transport.c @@ -489,6 +489,12 @@ static int connect_setup(struct transport *transport, int for_push) if (data->conn) return 0; + switch (transport->family) { + case TRANSPORT_FAMILY_ALL: break; + case TRANSPORT_FAMILY_IPV4: flags |= CONNECT_IPV4; break; + case TRANSPORT_FAMILY_IPV6: flags |= CONNECT_IPV6; break; + } + data->conn = git_connect(data->fd, transport->url, for_push ? data->options.receivepack : data->options.uploadpack, -- cgit v1.2.3