diff options
Diffstat (limited to 'ext/ftp/php_ftp.c')
-rw-r--r-- | ext/ftp/php_ftp.c | 280 |
1 files changed, 36 insertions, 244 deletions
diff --git a/ext/ftp/php_ftp.c b/ext/ftp/php_ftp.c index e3b425ef0f..f6208a9b77 100644 --- a/ext/ftp/php_ftp.c +++ b/ext/ftp/php_ftp.c @@ -34,219 +34,11 @@ #include "php_ftp.h" #include "ftp.h" +#include "ftp_arginfo.h" static int le_ftpbuf; #define le_ftpbuf_name "FTP Buffer" -/* {{{ arginfo */ -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_connect, 0, 0, 1) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, port) - ZEND_ARG_INFO(0, timeout) -ZEND_END_ARG_INFO() - -#ifdef HAVE_FTP_SSL -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_ssl_connect, 0, 0, 1) - ZEND_ARG_INFO(0, host) - ZEND_ARG_INFO(0, port) - ZEND_ARG_INFO(0, timeout) -ZEND_END_ARG_INFO() -#endif - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_login, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, username) - ZEND_ARG_INFO(0, password) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_pwd, 0) - ZEND_ARG_INFO(0, ftp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_cdup, 0) - ZEND_ARG_INFO(0, ftp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_chdir, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_exec, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, command) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_raw, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, command) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_mkdir, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_rmdir, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_chmod, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_alloc, 0, 0, 2) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, size) - ZEND_ARG_INFO(1, response) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_nlist, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_rawlist, 0, 0, 2) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) - ZEND_ARG_INFO(0, recursive) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_mlsd, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, directory) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_systype, 0) - ZEND_ARG_INFO(0, ftp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_fget, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, resumepos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_nb_fget, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, resumepos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_pasv, 0, 0, 2) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, pasv) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_get, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, local_file) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, resume_pos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_nb_get, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, local_file) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, resume_pos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_nb_continue, 0) - ZEND_ARG_INFO(0, ftp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_fput, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, startpos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_nb_fput, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, fp) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, startpos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_put, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, local_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, startpos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_append, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, local_file) - ZEND_ARG_INFO(0, mode) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO_EX(arginfo_ftp_nb_put, 0, 0, 3) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, remote_file) - ZEND_ARG_INFO(0, local_file) - ZEND_ARG_INFO(0, mode) - ZEND_ARG_INFO(0, startpos) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_size, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_mdtm, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, filename) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_rename, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, src) - ZEND_ARG_INFO(0, dest) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_delete, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, file) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_site, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, cmd) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_close, 0) - ZEND_ARG_INFO(0, ftp) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_set_option, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, option) - ZEND_ARG_INFO(0, value) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_ftp_get_option, 0) - ZEND_ARG_INFO(0, ftp) - ZEND_ARG_INFO(0, option) -ZEND_END_ARG_INFO() - -/* }}} */ - static const zend_function_entry php_ftp_functions[] = { PHP_FE(ftp_connect, arginfo_ftp_connect) #ifdef HAVE_FTP_SSL @@ -450,7 +242,7 @@ PHP_FUNCTION(ftp_login) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* log in */ @@ -476,7 +268,7 @@ PHP_FUNCTION(ftp_pwd) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (!(pwd = ftp_pwd(ftp))) { @@ -500,7 +292,7 @@ PHP_FUNCTION(ftp_cdup) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (!ftp_cdup(ftp)) { @@ -526,7 +318,7 @@ PHP_FUNCTION(ftp_chdir) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* change directories */ @@ -553,7 +345,7 @@ PHP_FUNCTION(ftp_exec) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* execute serverside command */ @@ -580,7 +372,7 @@ PHP_FUNCTION(ftp_raw) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* execute arbitrary ftp command */ @@ -603,7 +395,7 @@ PHP_FUNCTION(ftp_mkdir) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* create directory */ @@ -630,7 +422,7 @@ PHP_FUNCTION(ftp_rmdir) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* remove directorie */ @@ -654,11 +446,11 @@ PHP_FUNCTION(ftp_chmod) zend_long mode; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rlp", &z_ftp, &mode, &filename, &filename_len) == FAILURE) { - RETURN_FALSE; + return; } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (!ftp_chmod(ftp, mode, filename, filename_len)) { @@ -680,11 +472,11 @@ PHP_FUNCTION(ftp_alloc) zend_string *response = NULL; if (zend_parse_parameters(ZEND_NUM_ARGS(), "rl|z", &z_ftp, &size, &zresponse) == FAILURE) { - RETURN_FALSE; + return; } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } ret = ftp_alloc(ftp, size, zresponse ? &response : NULL); @@ -715,7 +507,7 @@ PHP_FUNCTION(ftp_nlist) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* get list of files */ @@ -746,7 +538,7 @@ PHP_FUNCTION(ftp_rawlist) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* get raw directory listing */ @@ -777,7 +569,7 @@ PHP_FUNCTION(ftp_mlsd) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* get raw directory listing */ @@ -812,7 +604,7 @@ PHP_FUNCTION(ftp_systype) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (NULL == (syst = ftp_syst(ftp))) { @@ -841,7 +633,7 @@ PHP_FUNCTION(ftp_fget) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } php_stream_from_res(stream, Z_RES_P(z_file)); XTYPE(xtype, mode); @@ -887,7 +679,7 @@ PHP_FUNCTION(ftp_nb_fget) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } php_stream_from_res(stream, Z_RES_P(z_file)); XTYPE(xtype, mode); @@ -933,7 +725,7 @@ PHP_FUNCTION(ftp_pasv) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (!ftp_pasv(ftp, pasv ? 1 : 0)) { @@ -961,7 +753,7 @@ PHP_FUNCTION(ftp_get) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } XTYPE(xtype, mode); @@ -1027,7 +819,7 @@ PHP_FUNCTION(ftp_nb_get) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } XTYPE(xtype, mode); @@ -1095,7 +887,7 @@ PHP_FUNCTION(ftp_nb_continue) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } if (!ftp->nb) { @@ -1139,7 +931,7 @@ PHP_FUNCTION(ftp_fput) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } php_stream_from_zval(stream, z_file); XTYPE(xtype, mode); @@ -1189,7 +981,7 @@ PHP_FUNCTION(ftp_nb_fput) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } php_stream_from_res(stream, Z_RES_P(z_file)); XTYPE(xtype, mode); @@ -1243,7 +1035,7 @@ PHP_FUNCTION(ftp_put) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } XTYPE(xtype, mode); @@ -1297,7 +1089,7 @@ PHP_FUNCTION(ftp_append) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } XTYPE(xtype, mode); @@ -1333,7 +1125,7 @@ PHP_FUNCTION(ftp_nb_put) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } XTYPE(xtype, mode); @@ -1392,7 +1184,7 @@ PHP_FUNCTION(ftp_size) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* get file size */ @@ -1414,7 +1206,7 @@ PHP_FUNCTION(ftp_mdtm) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* get file mod time */ @@ -1436,7 +1228,7 @@ PHP_FUNCTION(ftp_rename) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* rename the file */ @@ -1463,7 +1255,7 @@ PHP_FUNCTION(ftp_delete) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* delete the file */ @@ -1490,7 +1282,7 @@ PHP_FUNCTION(ftp_site) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } /* send the site command */ @@ -1515,7 +1307,7 @@ PHP_FUNCTION(ftp_close) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } ftp_quit(ftp); @@ -1537,7 +1329,7 @@ PHP_FUNCTION(ftp_set_option) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } switch (option) { @@ -1593,7 +1385,7 @@ PHP_FUNCTION(ftp_get_option) } if ((ftp = (ftpbuf_t *)zend_fetch_resource(Z_RES_P(z_ftp), le_ftpbuf_name, le_ftpbuf)) == NULL) { - RETURN_FALSE; + return; } switch (option) { |