File curl-7.15.5-epsv-firewall.patch of Package yup

--- lib/ftp.c
+++ lib/ftp.c
@@ -1652,6 +1652,17 @@
                             &connected);
 
   Curl_resolv_unlock(data, addr); /* we're done using this address */
+  if (result && ftp->count1 == 0 && ftpcode == 229) {
+    infof(data, "got positive EPSV response, but can't connect\n");
+    /* disable it for next transfer */
+    conn->bits.ftp_use_epsv = FALSE;
+    infof(data, "disabling EPSV usage\n");
+
+    NBFTPSENDF(conn, "PASV", NULL);
+    ftp->count1++;
+    /* remain in the FTP_PASV state */
+    return result;
+ }
 
   if(result)
     return result;
openSUSE Build Service is sponsored by