@@ -0,0 +1,42 @@
+Fall back to ipv4 if the host has an ipv6 address,
+but doesnt respond to ipv6 right now.
+
+---
+ subversion/libsvn_ra_svn/client.c | 20 ++++++++++++++++++++
+ 1 file changed, 20 insertions(+)
+
+Index: subversion-1.4.x/subversion/libsvn_ra_svn/client.c
+===================================================================
+--- subversion-1.4.x.orig/subversion/libsvn_ra_svn/client.c
++++ subversion-1.4.x/subversion/libsvn_ra_svn/client.c
+@@ -139,10 +139,30 @@ static svn_error_t *make_connection(cons
+ return svn_error_wrap_apr(status, _("Can't create socket"));
+
+ status = apr_socket_connect(*sock, sa);
++ if (!status)
++ goto out;
++ if (sa->family == APR_INET6) {
++ status = apr_sockaddr_info_get(&sa, hostname, APR_INET, port, 0, pool);
++ if (status)
++ return svn_error_createf(status, NULL, _("Unknown hostname '%s'"),
++ hostname);
++#ifdef MAX_SECS_TO_LINGER
++ /* ### old APR interface */
++ status = apr_socket_create(sock, sa->family, SOCK_STREAM, pool);
++#else
++ status = apr_socket_create(sock, sa->family, SOCK_STREAM, APR_PROTO_TCP,
++ pool);
++#endif
++ if (status)
++ return svn_error_wrap_apr(status, _("Can't create socket"));
++
++ status = apr_socket_connect(*sock, sa);
++ }
+ if (status)
+ return svn_error_wrap_apr(status, _("Can't connect to host '%s'"),
+ hostname);
+
++out:
+ return SVN_NO_ERROR;
+ }
+
|