diff options
author | Sriram Natarajan <srinatar@php.net> | 2010-01-23 01:37:32 +0000 |
---|---|---|
committer | Sriram Natarajan <srinatar@php.net> | 2010-01-23 01:37:32 +0000 |
commit | 0ea435c6e0121f54016844bc3c26b1edf7e3b58b (patch) | |
tree | 04ee5300ccbc8d03b8cb3dcf5c59d59c33520685 /ext/curl | |
parent | add029adeff9955eeb1f1d9534cb8ee8d787438a (diff) | |
download | php-git-0ea435c6e0121f54016844bc3c26b1edf7e3b58b.tar.gz |
- Fixed bug #50756 (CURLOPT_FTP_SKIP_PASV_IP does not exist.)
Diffstat (limited to 'ext/curl')
-rw-r--r-- | ext/curl/interface.c | 2 | ||||
-rw-r--r-- | ext/curl/tests/curl_ftp_pasv.phpt | 59 |
2 files changed, 61 insertions, 0 deletions
diff --git a/ext/curl/interface.c b/ext/curl/interface.c index 942f403325..37388c59b8 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -789,6 +789,7 @@ PHP_MINIT_FUNCTION(curl) #if LIBCURL_VERSION_NUM >= 0x070f01 REGISTER_CURL_CONSTANT(CURLOPT_FTP_FILEMETHOD); + REGISTER_CURL_CONSTANT(CURLOPT_FTP_SKIP_PASV_IP); #endif #if LIBCURL_VERSION_NUM >= 0x071001 @@ -1657,6 +1658,7 @@ static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue, zval *retu #endif #if LIBCURL_VERSION_NUM >= 0x070f01 case CURLOPT_FTP_FILEMETHOD: + case CURLOPT_FTP_SKIP_PASV_IP: #endif #if LIBCURL_VERSION_NUM > 0x071301 case CURLOPT_CERTINFO: diff --git a/ext/curl/tests/curl_ftp_pasv.phpt b/ext/curl/tests/curl_ftp_pasv.phpt new file mode 100644 index 0000000000..6cd7429104 --- /dev/null +++ b/ext/curl/tests/curl_ftp_pasv.phpt @@ -0,0 +1,59 @@ +--TEST-- +Test curl_exec() function with basic functionality +--CREDITS-- +--SKIPIF-- +<?php +if (!extension_loaded("curl")) exit("skip curl extension not loaded"); +if (false === getenv('PHP_CURL_FTP_REMOTE_SERVER')) exit("skip PHP_CURL_FTP_REMOTE_SERVER env variable is not defined"); +if (false === getenv('PHP_CURL_FTP_REMOTE_USER')) exit("skip PHP_CURL_FTP_REMOTE_USER env variable is not defined"); +if (false === getenv('PHP_CURL_FTP_REMOTE_PASSWD')) exit("skip PHP_CURL_FTP_REMOTE_PASSWD env variable is not defined"); +?> +--FILE-- +<?php + $host = getenv('PHP_CURL_FTP_REMOTE_SERVER'); + $username = getenv('PHP_CURL_FTP_REMOTE_USER'); + $password = getenv('PHP_CURL_FTP_REMOTE_PASSWD'); + + // FTP this script to a server + $fp = fopen ( __FILE__ , "r" ); + $url = "ftp://$username:$password@$host/test.phpt" ; + + $ch = curl_init (); + + // enable below to get the output in verbose mode. + // curl_setopt ( $ch , CURLOPT_VERBOSE, 1 ); + + /* Without enabling SKIP_PASV_IP flag, the following output will be seen.. + < 227 Entering Passive Mode (10,5,80,146,100,199) + * Trying 10.5.80.146... * connected + * Connecting to 10.5.80.146 (10.5.80.146) port 25799 + */ + + /* After enabling SKIP_PASV_IP flag, the following output will be seen.. + < 227 Entering Passive Mode (10,5,80,146,50,229) + * Skips 10.5.80.146 for data connection, uses 10.5.80.146 instead + * Trying 10.5.80.146... * connected + */ + + curl_setopt ( $ch , CURLOPT_URL, $url ); + curl_setopt ( $ch , CURLOPT_TRANSFERTEXT, 1 ); + + //force passive connection + curl_setopt ( $ch , CURLOPT_FTP_USE_EPSV, 0 ); + curl_setopt ( $ch , CURLOPT_FTP_SKIP_PASV_IP, 1 ); + + // mark the file for upload.. + curl_setopt ( $ch , CURLOPT_INFILE, $fp ); + curl_setopt ( $ch , CURLOPT_INFILESIZE, filesize(__FILE__) ); + curl_setopt ( $ch , CURLOPT_PUT, 1 ); + curl_setopt ( $ch , CURLOPT_UPLOAD, 1 ); + + $result = curl_exec ( $ch ); + var_dump ( $result ); + curl_close ( $ch ); + +?> +===DONE=== +--EXPECTF-- +bool(true) +===DONE=== |