summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2013-12-30 13:58:29 +0100
committerNikita Popov <nikic@php.net>2013-12-30 13:58:29 +0100
commit71a36fb6aeb7b51b2819d857162564dbbbccae59 (patch)
tree707e84b0da1db7b7b923f325ace8743961e58378
parent33ef788abdf224d4ab3a7644ff5138190399f696 (diff)
parentc7ee97eea0c5ab23835f1fc1523c7c3e118d29d0 (diff)
downloadphp-git-71a36fb6aeb7b51b2819d857162564dbbbccae59.tar.gz
Merge branch 'PHP-5.5' into PHP-5.6
-rw-r--r--ext/ftp/ftp.c4
-rw-r--r--ext/ftp/php_ftp.c4
2 files changed, 8 insertions, 0 deletions
diff --git a/ext/ftp/ftp.c b/ext/ftp/ftp.c
index 30b3ba6285..98ab0c8552 100644
--- a/ext/ftp/ftp.c
+++ b/ext/ftp/ftp.c
@@ -178,6 +178,10 @@ ftp_close(ftpbuf_t *ftp)
if (ftp->data) {
data_close(ftp, ftp->data);
}
+ if (ftp->stream && ftp->closestream) {
+ TSRMLS_FETCH();
+ php_stream_close(ftp->stream);
+ }
if (ftp->fd != -1) {
#if HAVE_OPENSSL_EXT
if (ftp->ssl_active) {
diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c
index 21e13ea460..99f3808c38 100644
--- a/ext/ftp/php_ftp.c
+++ b/ext/ftp/php_ftp.c
@@ -963,6 +963,7 @@ PHP_FUNCTION(ftp_nb_get)
if ((ret = ftp_nb_get(ftp, outstream, remote, xtype, resumepos TSRMLS_CC)) == PHP_FTP_FAILED) {
php_stream_close(outstream);
+ ftp->stream = NULL;
VCWD_UNLINK(local);
php_error_docref(NULL TSRMLS_CC, E_WARNING, "%s", ftp->inbuf);
RETURN_LONG(PHP_FTP_FAILED);
@@ -970,6 +971,7 @@ PHP_FUNCTION(ftp_nb_get)
if (ret == PHP_FTP_FINISHED){
php_stream_close(outstream);
+ ftp->stream = NULL;
}
RETURN_LONG(ret);
@@ -1003,6 +1005,7 @@ PHP_FUNCTION(ftp_nb_continue)
if (ret != PHP_FTP_MOREDATA && ftp->closestream) {
php_stream_close(ftp->stream);
+ ftp->stream = NULL;
}
if (ret == PHP_FTP_FAILED) {
@@ -1214,6 +1217,7 @@ PHP_FUNCTION(ftp_nb_put)
if (ret != PHP_FTP_MOREDATA) {
php_stream_close(instream);
+ ftp->stream = NULL;
}
if (ret == PHP_FTP_FAILED) {