File subversion.fallback-to-ipv4.patch of Package subversion

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;
 }
 
openSUSE Build Service is sponsored by