<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/745a0501803e5fed08c0155ff13895a047433e50">https://github.com/macports/macports-ports/commit/745a0501803e5fed08c0155ff13895a047433e50</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 745a0501803e5fed08c0155ff13895a047433e50
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Sun Jan 19 00:40:28 2020 -0600

<span style='display:block; white-space:pre;color:#404040;'>    php: Add FTPS support to php5*-ftp
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/58438
</span>---
 lang/php/Portfile                                  |  14 +-
 .../files/patch-php52-ext-ftp-ftp_ssl_connect.diff | 262 ++++++++++++++++++++
 .../files/patch-php53-ext-ftp-ftp_ssl_connect.diff | 262 ++++++++++++++++++++
 .../files/patch-php54-ext-ftp-ftp_ssl_connect.diff | 271 +++++++++++++++++++++
 .../files/patch-php55-ext-ftp-ftp_ssl_connect.diff | 271 +++++++++++++++++++++
 .../files/patch-php56-ext-ftp-ftp_ssl_connect.diff | 271 +++++++++++++++++++++
 6 files changed, 1346 insertions(+), 5 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/Portfile b/lang/php/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c5972dc..d4f2b08 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -817,11 +817,11 @@ subport ${php}-exif {
</span> 
 subport ${php}-ftp {
     switch -- ${version} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        5.2.17              {revision 1}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        5.3.29              {revision 1}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        5.4.45              {revision 1}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        5.5.38              {revision 1}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        5.6.40              {revision 1}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5.2.17              {revision 2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5.3.29              {revision 2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5.4.45              {revision 2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5.5.38              {revision 2}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        5.6.40              {revision 2}
</span>         7.0.33              {revision 1}
         7.1.33              {revision 0}
         7.2.26              {revision 0}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -838,6 +838,10 @@ subport ${php}-ftp {
</span>     
     depends_lib-append      path:lib/libssl.dylib:openssl
     
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[vercmp ${branch} 7.0] < 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append   patch-${php}-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     configure.args-append   --with-openssl-dir=${prefix}
 }
 
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php52-ext-ftp-ftp_ssl_connect.diff b/lang/php/files/patch-php52-ext-ftp-ftp_ssl_connect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..25ab440
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php52-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,262 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable ftps for shared ext/ftp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/167979fe76215978efc64fccad454abb22de862a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.m4.orig 2005-10-31 18:32:21.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.m4      2020-01-19 00:36:18.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,5 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SETUP_OPENSSL(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SUBST(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_FTP_SSL,1,[Whether FTP over SSL is supported])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.w32.orig        2003-12-02 17:17:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.w32     2020-01-19 00:36:18.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARG_ENABLE("ftp", "ftp support", "yes");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (PHP_FTP == "yes") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXTENSION("ftp", "php_ftp.c ftp.c");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_FTP") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("ssleay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("libeay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ADD_EXTENSION_DEP("ftp", "openssl", true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          MESSAGE("Enabling SSL support for ext\\ftp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          AC_DEFINE('HAVE_FTP_SSL', 1, 'Have FTP over SSL support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.c.orig     2010-03-04 06:52:58.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.c  2020-01-19 00:36:18.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/select.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           data_close(ftp, ftp->data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,14 +241,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX *ctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && !ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (!ftp_putcmd(ftp, "AUTH", "TLS")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1243,7 +1243,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = SSL_write(ftp->ssl_handle, buf, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1251,7 +1251,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = send(s, buf, size, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (sent == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1283,7 +1283,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = SSL_read(ftp->ssl_handle, buf, len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1291,7 +1291,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = recv(s, buf, len, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (nr_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1490,7 +1490,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_sockaddr_storage addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   socklen_t                       size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1508,7 +1508,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_accepted:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* now enable ssl if we need to */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->use_ssl_for_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1558,7 +1558,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->listener != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   data->ssl_active = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1567,7 +1567,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           closesocket(data->listener);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }       
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   data->ssl_active = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.h.orig     2010-01-03 03:23:27.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.h  2020-01-19 00:36:18.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,7 +49,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_socket_t            fd;                     /* data connection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftptype_t       type;                   /* transfer type */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char            buf[FTP_BUFSIZE];       /* data buffer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL             *ssl_handle;    /* ssl handle */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             ssl_active;             /* flag if ssl is active or not */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             lastch;         /* last char of previous call */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             direction;      /* recv = 0 / send = 1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             closestream;/* close or not close stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl; /* enable(1) or disable(0) ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl_for_data; /* en/disable ssl for the dataconnection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             old_ssl;        /* old mode = forced data encryption */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.c.orig 2010-01-03 03:23:27.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.c      2020-01-19 00:36:57.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <novsock2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,7 +52,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, timeout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_END_ARG_INFO()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -276,7 +276,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_function_entry php_ftp_functions[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_connect,                     arginfo_ftp_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_ssl_connect,         arginfo_ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_login,                       arginfo_ftp_login)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -314,8 +314,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ ftp_deps */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const zend_module_dep ftp_deps[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZEND_MOD_REQUIRED("openssl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_module_entry php_ftp_module_entry = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    STANDARD_MODULE_HEADER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  STANDARD_MODULE_HEADER_EX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ftp_deps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ftp",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_ftp_functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINIT(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -323,7 +337,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINFO(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STANDARD_MODULE_PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -358,6 +372,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_row(2, "FTP support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "disabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_end();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -396,7 +415,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* autoseek for resuming */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* disable ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->use_ssl = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -405,7 +424,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Opens a FTP-SSL stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.h.orig 2010-01-03 03:23:27.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.h      2020-01-19 00:36:18.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_MINFO_FUNCTION(ftp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_login);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php53-ext-ftp-ftp_ssl_connect.diff b/lang/php/files/patch-php53-ext-ftp-ftp_ssl_connect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..0d180fb
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php53-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,262 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable ftps for shared ext/ftp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/167979fe76215978efc64fccad454abb22de862a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.m4.orig 2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.m4      2020-01-19 00:31:02.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,5 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SETUP_OPENSSL(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SUBST(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_FTP_SSL,1,[Whether FTP over SSL is supported])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.w32.orig        2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.w32     2020-01-19 00:31:02.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARG_ENABLE("ftp", "ftp support", "yes");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (PHP_FTP == "yes") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXTENSION("ftp", "php_ftp.c ftp.c");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_FTP") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("ssleay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("libeay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ADD_EXTENSION_DEP("ftp", "openssl", true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          MESSAGE("Enabling SSL support for ext\\ftp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          AC_DEFINE('HAVE_FTP_SSL', 1, 'Have FTP over SSL support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.c.orig     2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.c  2020-01-19 00:32:40.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/select.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -179,7 +179,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           data_close(ftp, ftp->data);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -241,14 +241,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX *ctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && !ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (!ftp_putcmd(ftp, "AUTH", "TLS")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1246,7 +1246,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = SSL_write(ftp->ssl_handle, buf, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1254,7 +1254,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = send(s, buf, size, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (sent == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1286,7 +1286,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = SSL_read(ftp->ssl_handle, buf, len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {     
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1294,7 +1294,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = recv(s, buf, len, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (nr_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1493,7 +1493,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_sockaddr_storage addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   socklen_t                       size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1511,7 +1511,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_accepted:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* now enable ssl if we need to */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->use_ssl_for_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1561,7 +1561,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->listener != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   data->ssl_active = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1570,7 +1570,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           closesocket(data->listener);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }       
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   data->ssl_active = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.h.orig     2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.h  2020-01-19 00:31:02.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,7 +49,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_socket_t            fd;                     /* data connection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftptype_t       type;                   /* transfer type */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char            buf[FTP_BUFSIZE];       /* data buffer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL             *ssl_handle;    /* ssl handle */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             ssl_active;             /* flag if ssl is active or not */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             lastch;         /* last char of previous call */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             direction;      /* recv = 0 / send = 1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             closestream;/* close or not close stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl; /* enable(1) or disable(0) ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl_for_data; /* en/disable ssl for the dataconnection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             old_ssl;        /* old mode = forced data encryption */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.c.orig 2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.c      2020-01-19 00:31:02.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <novsock2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, timeout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_END_ARG_INFO()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,7 +243,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const zend_function_entry php_ftp_functions[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_connect,                     arginfo_ftp_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_ssl_connect,         arginfo_ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_login,                       arginfo_ftp_login)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +281,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE_END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ ftp_deps */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const zend_module_dep ftp_deps[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZEND_MOD_REQUIRED("openssl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_module_entry php_ftp_module_entry = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    STANDARD_MODULE_HEADER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  STANDARD_MODULE_HEADER_EX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ftp_deps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ftp",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_ftp_functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINIT(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,7 +304,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINFO(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STANDARD_MODULE_PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -325,6 +339,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_row(2, "FTP support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "disabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_end();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -363,7 +382,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* autoseek for resuming */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* disable ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->use_ssl = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,7 +391,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Opens a FTP-SSL stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.h.orig 2014-08-13 14:22:50.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.h      2020-01-19 00:31:02.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_MINFO_FUNCTION(ftp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_login);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php54-ext-ftp-ftp_ssl_connect.diff b/lang/php/files/patch-php54-ext-ftp-ftp_ssl_connect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..432f04c
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php54-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,271 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable ftps for shared ext/ftp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/167979fe76215978efc64fccad454abb22de862a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.m4.orig 2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.m4      2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,5 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SETUP_OPENSSL(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SUBST(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_FTP_SSL,1,[Whether FTP over SSL is supported])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.w32.orig        2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.w32     2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARG_ENABLE("ftp", "ftp support", "yes");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (PHP_FTP == "yes") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXTENSION("ftp", "php_ftp.c ftp.c");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_FTP") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("ssleay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("libeay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ADD_EXTENSION_DEP("ftp", "openssl", true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          MESSAGE("Enabling SSL support for ext\\ftp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          AC_DEFINE('HAVE_FTP_SSL', 1, 'Have FTP over SSL support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.c.orig     2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.c  2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/select.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,7 +183,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_stream_close(ftp->stream);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_free(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,7 +246,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX *ctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long ssl_ctx_options = SSL_OP_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -254,7 +254,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && !ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (!ftp_putcmd(ftp, "AUTH", "TLS")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1249,7 +1249,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = SSL_write(ftp->ssl_handle, buf, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1257,7 +1257,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = send(s, buf, size, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (sent == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1289,7 +1289,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = SSL_read(ftp->ssl_handle, buf, len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1297,7 +1297,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = recv(s, buf, len, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (nr_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1496,7 +1496,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_sockaddr_storage addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   socklen_t                       size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long ssl_ctx_options = SSL_OP_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1515,7 +1515,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_accepted:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* now enable ssl if we need to */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->use_ssl_for_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1565,14 +1565,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ databuf_t*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_close(ftpbuf_t *ftp, databuf_t *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->listener != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ctx = SSL_get_SSL_CTX(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1586,7 +1586,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           closesocket(data->listener);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ctx = SSL_get_SSL_CTX(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_CTX_free(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.h.orig     2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.h  2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,7 +49,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_socket_t            fd;                     /* data connection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftptype_t       type;                   /* transfer type */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char            buf[FTP_BUFSIZE];       /* data buffer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL             *ssl_handle;    /* ssl handle */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             ssl_active;             /* flag if ssl is active or not */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             lastch;         /* last char of previous call */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             direction;      /* recv = 0 / send = 1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             closestream;/* close or not close stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl; /* enable(1) or disable(0) ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl_for_data; /* en/disable ssl for the dataconnection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             old_ssl;        /* old mode = forced data encryption */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.c.orig 2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.c      2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <novsock2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, timeout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_END_ARG_INFO()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,7 +243,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const zend_function_entry php_ftp_functions[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_connect,                     arginfo_ftp_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_ssl_connect,         arginfo_ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_login,                       arginfo_ftp_login)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +281,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE_END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ ftp_deps */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const zend_module_dep ftp_deps[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZEND_MOD_REQUIRED("openssl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_module_entry php_ftp_module_entry = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    STANDARD_MODULE_HEADER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  STANDARD_MODULE_HEADER_EX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ftp_deps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ftp",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_ftp_functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINIT(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,7 +304,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINFO(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STANDARD_MODULE_PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -325,6 +339,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_row(2, "FTP support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "disabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_end();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -363,7 +382,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* autoseek for resuming */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* disable ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->use_ssl = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,7 +391,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Opens a FTP-SSL stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.h.orig 2015-09-01 15:09:37.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.h      2020-01-19 00:27:36.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_MINFO_FUNCTION(ftp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_login);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php55-ext-ftp-ftp_ssl_connect.diff b/lang/php/files/patch-php55-ext-ftp-ftp_ssl_connect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..4296c38
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php55-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,271 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable ftps for shared ext/ftp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/167979fe76215978efc64fccad454abb22de862a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.m4.orig 2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.m4      2020-01-19 00:19:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,5 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SETUP_OPENSSL(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SUBST(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_FTP_SSL,1,[Whether FTP over SSL is supported])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.w32.orig        2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.w32     2020-01-19 00:19:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARG_ENABLE("ftp", "ftp support", "yes");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (PHP_FTP == "yes") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXTENSION("ftp", "php_ftp.c ftp.c");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_FTP") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("ssleay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("libeay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ADD_EXTENSION_DEP("ftp", "openssl", true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          MESSAGE("Enabling SSL support for ext\\ftp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          AC_DEFINE('HAVE_FTP_SSL', 1, 'Have FTP over SSL support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.c.orig     2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.c  2020-01-19 00:19:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/select.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,7 +183,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_stream_close(ftp->stream);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_free(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,7 +246,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX *ctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long ssl_ctx_options = SSL_OP_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -254,7 +254,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && !ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (!ftp_putcmd(ftp, "AUTH", "TLS")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1244,7 +1244,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = SSL_write(ftp->ssl_handle, buf, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1252,7 +1252,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = send(s, buf, size, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (sent == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1284,7 +1284,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = SSL_read(ftp->ssl_handle, buf, len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1292,7 +1292,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = recv(s, buf, len, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (nr_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1491,7 +1491,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_sockaddr_storage addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   socklen_t                       size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long ssl_ctx_options = SSL_OP_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1510,7 +1510,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_accepted:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* now enable ssl if we need to */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->use_ssl_for_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1560,14 +1560,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ databuf_t*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_close(ftpbuf_t *ftp, databuf_t *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->listener != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ctx = SSL_get_SSL_CTX(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1581,7 +1581,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           closesocket(data->listener);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   ctx = SSL_get_SSL_CTX(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_CTX_free(ctx);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.h.orig     2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.h  2020-01-19 00:19:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -49,7 +49,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_socket_t            fd;                     /* data connection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftptype_t       type;                   /* transfer type */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char            buf[FTP_BUFSIZE];       /* data buffer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL             *ssl_handle;    /* ssl handle */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             ssl_active;             /* flag if ssl is active or not */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -78,7 +78,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             lastch;         /* last char of previous call */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             direction;      /* recv = 0 / send = 1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             closestream;/* close or not close stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl; /* enable(1) or disable(0) ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl_for_data; /* en/disable ssl for the dataconnection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             old_ssl;        /* old mode = forced data encryption */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.c.orig 2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.c      2020-01-19 00:19:47.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <novsock2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, timeout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_END_ARG_INFO()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,7 +243,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const zend_function_entry php_ftp_functions[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_connect,                     arginfo_ftp_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_ssl_connect,         arginfo_ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_login,                       arginfo_ftp_login)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +281,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE_END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ ftp_deps */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const zend_module_dep ftp_deps[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZEND_MOD_REQUIRED("openssl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_module_entry php_ftp_module_entry = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    STANDARD_MODULE_HEADER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  STANDARD_MODULE_HEADER_EX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ftp_deps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ftp",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_ftp_functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINIT(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,7 +304,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINFO(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STANDARD_MODULE_PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -325,6 +339,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_row(2, "FTP support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "disabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_end();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -363,7 +382,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* autoseek for resuming */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* disable ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->use_ssl = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -372,7 +391,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Opens a FTP-SSL stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.h.orig 2016-07-20 03:41:48.000000000 -0500
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.h      2020-01-19 00:19:04.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -35,7 +35,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_MINFO_FUNCTION(ftp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_login);
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/php/files/patch-php56-ext-ftp-ftp_ssl_connect.diff b/lang/php/files/patch-php56-ext-ftp-ftp_ssl_connect.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 0000000..5f82945
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/php/files/patch-php56-ext-ftp-ftp_ssl_connect.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,271 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Enable ftps for shared ext/ftp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+https://github.com/php/php-src/commit/167979fe76215978efc64fccad454abb22de862a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.m4.orig 2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.m4      2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -18,5 +18,6 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if test "$PHP_OPENSSL" != "no" || test "$PHP_OPENSSL_DIR" != "no"; then
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SETUP_OPENSSL(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PHP_SUBST(FTP_SHARED_LIBADD)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_DEFINE(HAVE_FTP_SSL,1,[Whether FTP over SSL is supported])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/config.w32.orig        2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/config.w32     2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4,6 +4,16 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ARG_ENABLE("ftp", "ftp support", "yes");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if (PHP_FTP == "yes") {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXTENSION("ftp", "php_ftp.c ftp.c");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if (CHECK_HEADER_ADD_INCLUDE("openssl/ssl.h", "CFLAGS_FTP") &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("ssleay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          CHECK_LIB("libeay32.lib", "ftp", PHP_FTP) &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          ADD_EXTENSION_DEP("ftp", "openssl", true)) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          MESSAGE("Enabling SSL support for ext\\ftp");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          AC_DEFINE('HAVE_FTP_SSL', 1, 'Have FTP over SSL support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   AC_DEFINE('HAVE_FTP', 1, 'Have FTP support');
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.c.orig     2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.c  2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -65,7 +65,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/select.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -183,7 +183,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           php_stream_close(ftp->stream);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_free(ftp->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -246,7 +246,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ int
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ftp_login(ftpbuf_t *ftp, const char *user, const char *pass TSRMLS_DC)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX *ctx = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   long ssl_ctx_options = SSL_OP_ALL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -254,7 +254,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && !ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (!ftp_putcmd(ftp, "AUTH", "TLS")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1249,7 +1249,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = SSL_write(ftp->ssl_handle, buf, size);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1257,7 +1257,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   sent = send(s, buf, size, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (sent == -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1289,7 +1289,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return -1;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->fd == s && ftp->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = SSL_read(ftp->ssl_handle, buf, len);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else if (ftp->use_ssl && ftp->fd != s && ftp->use_ssl_for_data && ftp->data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1297,7 +1297,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           nr_bytes = recv(s, buf, len, 0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return (nr_bytes);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1496,7 +1496,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_sockaddr_storage addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   socklen_t                       size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_SESSION *session;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int result;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1516,7 +1516,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_accepted:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* now enable ssl if we need to */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (ftp->use_ssl && ftp->use_ssl_for_data) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1575,14 +1575,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ databuf_t*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ data_close(ftpbuf_t *ftp, databuf_t *data)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL_CTX         *ctx;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           return NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->listener != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* don't free the data context, it's the same as the control */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1593,7 +1593,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           closesocket(data->listener);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (data->fd != -1) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           if (data->ssl_active) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   /* don't free the data context, it's the same as the control */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   SSL_shutdown(data->ssl_handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/ftp.h.orig     2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/ftp.h  2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_socket_t            fd;                     /* data connection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftptype_t       type;                   /* transfer type */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   char            buf[FTP_BUFSIZE];       /* data buffer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   SSL             *ssl_handle;    /* ssl handle */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int             ssl_active;             /* flag if ssl is active or not */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,7 +80,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             lastch;         /* last char of previous call */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             direction;      /* recv = 0 / send = 1 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             closestream;/* close or not close stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl; /* enable(1) or disable(0) ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             use_ssl_for_data; /* en/disable ssl for the dataconnection */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int                             old_ssl;        /* old mode = forced data encryption */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.c.orig 2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.c      2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -29,7 +29,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <novsock2.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # include <openssl/ssl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -51,7 +51,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, timeout)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_END_ARG_INFO()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, host)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ZEND_ARG_INFO(0, port)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -243,7 +243,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const zend_function_entry php_ftp_functions[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_connect,                     arginfo_ftp_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_ssl_connect,         arginfo_ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE(ftp_login,                       arginfo_ftp_login)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -281,8 +281,22 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_FE_END
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/* {{{ ftp_deps */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++static const zend_module_dep ftp_deps[] = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ZEND_MOD_REQUIRED("openssl")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  {NULL, NULL, NULL}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++};/*}}}*/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ zend_module_entry php_ftp_module_entry = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    STANDARD_MODULE_HEADER,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  STANDARD_MODULE_HEADER_EX,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ftp_deps,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   "ftp",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_ftp_functions,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINIT(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -290,7 +304,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   NULL,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   PHP_MINFO(ftp),
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  NO_VERSION_YET,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   STANDARD_MODULE_PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -326,6 +340,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_start();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_row(2, "FTP support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "enabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  php_info_print_table_row(2, "FTPS support", "disabled");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   php_info_print_table_end();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -365,7 +384,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* autoseek for resuming */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->autoseek = FTP_DEFAULT_AUTOSEEK;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->usepasvaddress = FTP_DEFAULT_USEPASVADDRESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* disable ssl */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ftp->use_ssl = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -374,7 +393,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* }}} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#if HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /* {{{ proto resource ftp_ssl_connect(string host [, int port [, int timeout]])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    Opens a FTP-SSL stream */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- ext/ftp/php_ftp.h.orig 2019-01-09 03:54:13.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ ext/ftp/php_ftp.h      2020-01-19 00:11:06.000000000 -0600
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -36,7 +36,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_MINFO_FUNCTION(ftp);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_EXT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifdef HAVE_FTP_SSL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_ssl_connect);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ PHP_FUNCTION(ftp_login);
</span></pre><pre style='margin:0'>

</pre>