summaryrefslogtreecommitdiff
path: root/ext/ftp/php_ftp.c
diff options
context:
space:
mode:
authorJason Greene <jason@php.net>2001-07-17 05:53:03 +0000
committerJason Greene <jason@php.net>2001-07-17 05:53:03 +0000
commit8eb5a4b856057e4188869e2064974d2ddae06555 (patch)
treea86992261ad22fa27e3d278ee3a653d347b776f7 /ext/ftp/php_ftp.c
parent18463f52a86b846f97f256adb5938f3141d8eee2 (diff)
downloadphp-git-8eb5a4b856057e4188869e2064974d2ddae06555.tar.gz
@Added support for socket and popen file types to ftp_fput (Jason)
Diffstat (limited to 'ext/ftp/php_ftp.c')
-rw-r--r--ext/ftp/php_ftp.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c
index 130bee1776..f2ed4fe891 100644
--- a/ext/ftp/php_ftp.c
+++ b/ext/ftp/php_ftp.c
@@ -618,7 +618,8 @@ PHP_FUNCTION(ftp_fput)
pval *arg1, *arg2, *arg3, *arg4;
ftpbuf_t *ftp;
ftptype_t xtype;
- FILE *fp;
+ int type;
+ void *rsrc;
/* arg1 - ftp
* arg2 - remote file
@@ -633,10 +634,11 @@ PHP_FUNCTION(ftp_fput)
FTPBUF(ftp, arg1);
convert_to_string(arg2);
- FILEP(fp, arg3);
+ rsrc = zend_fetch_resource(&arg3,-1,"File-Handle",&type,3,php_file_le_fopen(),php_file_le_popen(),php_file_le_socket());
+ ZEND_VERIFY_RESOURCE(rsrc);
XTYPE(xtype, arg4);
- if (!ftp_put(ftp, Z_STRVAL_P(arg2), fp, xtype)) {
+ if (!ftp_put(ftp, Z_STRVAL_P(arg2), (FILE*)rsrc, *(int*) rsrc, (type==php_file_le_socket()), xtype)) {
php_error(E_WARNING, "ftp_put: %s", ftp->inbuf);
RETURN_FALSE;
}
@@ -679,7 +681,7 @@ PHP_FUNCTION(ftp_put)
php_error(E_WARNING, "error opening %s", Z_STRVAL_P(arg3));
RETURN_FALSE;
}
- if ( !ftp_put(ftp, Z_STRVAL_P(arg2), infp, xtype) ||
+ if ( !ftp_put(ftp, Z_STRVAL_P(arg2), infp, 0, 0, xtype) ||
ferror(infp))
{
fclose(infp);