[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Thu Jul 2 13:42:24 2009 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #48733 (CURLOPT_WRITEHEADER|CURLOPT_FILE|CURLOPT_STDERR warns on files that have been opened with r+). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.174r2=1.175diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.174 php-src/ext/curl/interface.c:1.175 --- php-src/ext/curl/interface.c:1.174 Sat Jun 27 21:20:25 2009 +++ php-src/ext/curl/interface.cThu Jul 2 13:42:24 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.174 2009/06/27 21:20:25 pajoye Exp $ */ +/* $Id: interface.c,v 1.175 2009/07/02 13:42:24 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1665,7 +1665,7 @@ error = CURLE_OK; switch (option) { case CURLOPT_FILE: - if (((php_stream *) what)-mode[0] != 'r') { + if (((php_stream *) what)-mode[0] != 'r' || ((php_stream *) what)-mode[1] == '+') { zend_list_addref(Z_LVAL_PP(zvalue)); ch-handlers-write-fp = fp; ch-handlers-write-method = PHP_CURL_FILE; @@ -1676,7 +1676,7 @@ } break; case CURLOPT_WRITEHEADER: - if (((php_stream *) what)-mode[0] != 'r') { + if (((php_stream *) what)-mode[0] != 'r' || ((php_stream *) what)-mode[1] == '+') { zend_list_addref(Z_LVAL_PP(zvalue)); ch-handlers-write_header-fp = fp; ch-handlers-write_header-method = PHP_CURL_FILE; @@ -1692,7 +1692,7 @@ ch-handlers-read-fd = Z_LVAL_PP(zvalue); break; case CURLOPT_STDERR: - if (((php_stream *) what)-mode[0] != 'r') { + if (((php_stream *) what)-mode[0] != 'r' || ((php_stream *) what)-mode[1] == '+') { if (ch-handlers-std_err) { zval_ptr_dtor(ch-handlers-std_err); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Sat Jun 27 21:20:25 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - fix regression introduced by the fix for #48518 (Ilia, Rasmus) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.173r2=1.174diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.173 php-src/ext/curl/interface.c:1.174 --- php-src/ext/curl/interface.c:1.173 Mon Jun 15 12:38:57 2009 +++ php-src/ext/curl/interface.cSat Jun 27 21:20:25 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.173 2009/06/15 12:38:57 iliaa Exp $ */ +/* $Id: interface.c,v 1.174 2009/06/27 21:20:25 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2118,6 +2118,14 @@ RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 1); } + /* flush the file handle, so any remaining data is synched to disk */ + if (ch-handlers-write-method == PHP_CURL_FILE ch-handlers-write-fp) { + fflush(ch-handlers-write-fp); + } + if (ch-handlers-write_header-method == PHP_CURL_FILE ch-handlers-write_header-fp) { + fflush(ch-handlers-write_header-fp); + } + if (ch-handlers-write-method == PHP_CURL_RETURN) { RETURN_EMPTY_STRING(); } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Mon Jun 15 12:38:57 2009 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: 48518 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.172r2=1.173diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.172 php-src/ext/curl/interface.c:1.173 --- php-src/ext/curl/interface.c:1.172 Fri Jun 12 20:43:29 2009 +++ php-src/ext/curl/interface.cMon Jun 15 12:38:57 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.172 2009/06/12 20:43:29 felipe Exp $ */ +/* $Id: interface.c,v 1.173 2009/06/15 12:38:57 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2113,14 +2113,11 @@ RETURN_FALSE; } - ch-uses++; - if (ch-handlers-write-method == PHP_CURL_RETURN ch-handlers-write-buf.len 0) { - --ch-uses; smart_str_0(ch-handlers-write-buf); RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 1); } - --ch-uses; + if (ch-handlers-write-method == PHP_CURL_RETURN) { RETURN_EMPTY_STRING(); } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/curl/tests bug48514.phpt
felipe Fri Jun 12 20:43:29 2009 UTC Added files: /php-src/ext/curl/tests bug48514.phpt Modified files: /php-src/ext/curl interface.c Log: - Fixed bug #48514 (cURL extension uses same resource name for simple and multi APIs) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.171r2=1.172diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.171 php-src/ext/curl/interface.c:1.172 --- php-src/ext/curl/interface.c:1.171 Thu Jun 11 09:46:27 2009 +++ php-src/ext/curl/interface.cFri Jun 12 20:43:29 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.171 2009/06/11 09:46:27 tony2001 Exp $ */ +/* $Id: interface.c,v 1.172 2009/06/12 20:43:29 felipe Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -456,7 +456,7 @@ PHP_MINIT_FUNCTION(curl) { le_curl = zend_register_list_destructors_ex(_php_curl_close, NULL, curl, module_number); - le_curl_multi_handle = zend_register_list_destructors_ex(_php_curl_multi_close, NULL, curl, module_number); + le_curl_multi_handle = zend_register_list_destructors_ex(_php_curl_multi_close, NULL, curl_multi, module_number); /* See http://curl.haxx.se/lxr/source/docs/libcurl/symbols-in-versions or curl src/docs/libcurl/symbols-in-versions for a (almost) complete list http://cvs.php.net/viewvc.cgi/php-src/ext/curl/tests/bug48514.phpt?view=markuprev=1.1 Index: php-src/ext/curl/tests/bug48514.phpt +++ php-src/ext/curl/tests/bug48514.phpt --TEST-- Bug #48514 (cURL extension uses same resource name for simple and multi APIs) --FILE-- ?php $ch1 = curl_init(); var_dump($ch1); var_dump(get_resource_type($ch1)); $ch2 = curl_multi_init(); var_dump($ch2); var_dump(get_resource_type($ch2)); ? --EXPECTF-- resource(4) of type (curl) %string|unicode%(4) curl resource(5) of type (curl_multi) %string|unicode%(10) curl_multi -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Thu Jun 11 09:46:28 2009 UTC Modified files: /php-src/ext/curl interface.c Log: fix bug #48518 (curl crashes when writing into invalid file handle) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.170r2=1.171diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.170 php-src/ext/curl/interface.c:1.171 --- php-src/ext/curl/interface.c:1.170 Wed Jun 10 11:09:48 2009 +++ php-src/ext/curl/interface.cThu Jun 11 09:46:27 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.170 2009/06/10 11:09:48 tony2001 Exp $ */ +/* $Id: interface.c,v 1.171 2009/06/11 09:46:27 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1666,6 +1666,7 @@ switch (option) { case CURLOPT_FILE: if (((php_stream *) what)-mode[0] != 'r') { + zend_list_addref(Z_LVAL_PP(zvalue)); ch-handlers-write-fp = fp; ch-handlers-write-method = PHP_CURL_FILE; } else { @@ -1676,6 +1677,7 @@ break; case CURLOPT_WRITEHEADER: if (((php_stream *) what)-mode[0] != 'r') { + zend_list_addref(Z_LVAL_PP(zvalue)); ch-handlers-write_header-fp = fp; ch-handlers-write_header-method = PHP_CURL_FILE; } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Wed Jun 10 11:09:48 2009 UTC Modified files: /php-src/ext/curl interface.c Log: fix arginfo for curl_multi_info_read() http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.169r2=1.170diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.169 php-src/ext/curl/interface.c:1.170 --- php-src/ext/curl/interface.c:1.169 Thu May 28 09:45:20 2009 +++ php-src/ext/curl/interface.cWed Jun 10 11:09:48 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.169 2009/05/28 09:45:20 tony2001 Exp $ */ +/* $Id: interface.c,v 1.170 2009/06/10 11:09:48 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -278,7 +278,7 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_info_read, 0, 0, 1) ZEND_ARG_INFO(0, mh) - ZEND_ARG_INFO(0, msgs_in_queue) + ZEND_ARG_INFO(1, msgs_in_queue) ZEND_END_ARG_INFO() ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_close, 0) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c php_curl.h
janiThu May 28 09:09:03 2009 UTC Modified files: /php-src/ext/curl interface.c php_curl.h Log: - Fix build for winblows http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.167r2=1.168diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.167 php-src/ext/curl/interface.c:1.168 --- php-src/ext/curl/interface.c:1.167 Tue May 26 15:48:28 2009 +++ php-src/ext/curl/interface.cThu May 28 09:09:02 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.167 2009/05/26 15:48:28 jani Exp $ */ +/* $Id: interface.c,v 1.168 2009/05/28 09:09:02 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1691,11 +1691,11 @@ break; case CURLOPT_STDERR: if (((php_stream *) what)-mode[0] != 'r') { - if (ch-handlers-stderr) { - zval_ptr_dtor(ch-handlers-stderr); + if (ch-handlers-std_err) { + zval_ptr_dtor(ch-handlers-std_err); } zval_add_ref(zvalue); - ch-handlers-stderr = *zvalue; + ch-handlers-std_err = *zvalue; zend_list_addref(Z_LVAL_PP(zvalue)); } else { php_error_docref(NULL TSRMLS_CC, E_WARNING, the provided file handle is not writable); @@ -2349,8 +2349,8 @@ #endif /* Prevent crash inside cURL if passed file has already been closed */ - if (ch-handlers-stderr Z_REFCOUNT_P(ch-handlers-stderr) = 0) { - curl_easy_setopt(ch-cp, CURLOPT_STDERR, stderr); + if (ch-handlers-std_err Z_REFCOUNT_P(ch-handlers-std_err) = 0) { + curl_easy_setopt(ch-cp, CURLOPT_STDERR, std_err); } curl_easy_cleanup(ch-cp); @@ -2378,8 +2378,8 @@ if (ch-handlers-passwd) { zval_ptr_dtor(ch-handlers-passwd); } - if (ch-handlers-stderr) { - zval_ptr_dtor(ch-handlers-stderr); + if (ch-handlers-std_err) { + zval_ptr_dtor(ch-handlers-std_err); } if (ch-header.str_len 0) { efree(ch-header.str); http://cvs.php.net/viewvc.cgi/php-src/ext/curl/php_curl.h?r1=1.54r2=1.55diff_format=u Index: php-src/ext/curl/php_curl.h diff -u php-src/ext/curl/php_curl.h:1.54 php-src/ext/curl/php_curl.h:1.55 --- php-src/ext/curl/php_curl.h:1.54Tue May 26 15:48:28 2009 +++ php-src/ext/curl/php_curl.h Thu May 28 09:09:02 2009 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_curl.h,v 1.54 2009/05/26 15:48:28 jani Exp $ */ +/* $Id: php_curl.h,v 1.55 2009/05/28 09:09:02 jani Exp $ */ #ifndef _PHP_CURL_H #define _PHP_CURL_H @@ -107,7 +107,7 @@ php_curl_write *write_header; php_curl_read *read; zval *passwd; - zval *stderr; + zval *std_err; php_curl_progress *progress; } php_curl_handlers; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Thu May 28 09:45:20 2009 UTC Modified files: /php-src/ext/curl interface.c Log: fix build http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.168r2=1.169diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.168 php-src/ext/curl/interface.c:1.169 --- php-src/ext/curl/interface.c:1.168 Thu May 28 09:09:02 2009 +++ php-src/ext/curl/interface.cThu May 28 09:45:20 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.168 2009/05/28 09:09:02 jani Exp $ */ +/* $Id: interface.c,v 1.169 2009/05/28 09:45:20 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2350,7 +2350,7 @@ /* Prevent crash inside cURL if passed file has already been closed */ if (ch-handlers-std_err Z_REFCOUNT_P(ch-handlers-std_err) = 0) { - curl_easy_setopt(ch-cp, CURLOPT_STDERR, std_err); + curl_easy_setopt(ch-cp, CURLOPT_STDERR, stderr); } curl_easy_cleanup(ch-cp); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Strike 2 for me.. duh. Thanks for fixing that one..a bit too greedy search and replace. :) --Jani Antony Dovgal wrote: tony2001Thu May 28 09:45:20 2009 UTC Modified files: /php-src/ext/curl interface.c Log: fix build http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.168r2=1.169diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.168 php-src/ext/curl/interface.c:1.169 --- php-src/ext/curl/interface.c:1.168 Thu May 28 09:09:02 2009 +++ php-src/ext/curl/interface.cThu May 28 09:45:20 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.168 2009/05/28 09:09:02 jani Exp $ */ +/* $Id: interface.c,v 1.169 2009/05/28 09:45:20 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2350,7 +2350,7 @@ /* Prevent crash inside cURL if passed file has already been closed */ if (ch-handlers-std_err Z_REFCOUNT_P(ch-handlers-std_err) = 0) { - curl_easy_setopt(ch-cp, CURLOPT_STDERR, std_err); + curl_easy_setopt(ch-cp, CURLOPT_STDERR, stderr); } curl_easy_cleanup(ch-cp); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
On 28.05.2009 14:50, Jani Taskinen wrote: Strike 2 for me.. duh. Thanks for fixing that one..a bit too greedy search and replace. :) You're welcome, Jani =) -- Wbr, Antony Dovgal --- http://pinba.org - realtime statistics for PHP -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c php_curl.h
janiTue May 26 15:48:28 2009 UTC Modified files: /php-src/ext/curl interface.c php_curl.h Log: - Fixed bug #48203 (crash when CURLOPT_STDERR is set to regular file) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.166r2=1.167diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.166 php-src/ext/curl/interface.c:1.167 --- php-src/ext/curl/interface.c:1.166 Thu May 21 12:52:59 2009 +++ php-src/ext/curl/interface.cTue May 26 15:48:28 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.166 2009/05/21 12:52:59 iliaa Exp $ */ +/* $Id: interface.c,v 1.167 2009/05/26 15:48:28 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -459,7 +459,7 @@ le_curl_multi_handle = zend_register_list_destructors_ex(_php_curl_multi_close, NULL, curl, module_number); /* See http://curl.haxx.se/lxr/source/docs/libcurl/symbols-in-versions - or curl src/docs/libcurl/symbols-in-versions for a (almost) complete list + or curl src/docs/libcurl/symbols-in-versions for a (almost) complete list of options and which version they were introduced */ /* Constants for curl_setopt() */ @@ -1689,6 +1689,20 @@ ch-handlers-read-fp = fp; ch-handlers-read-fd = Z_LVAL_PP(zvalue); break; + case CURLOPT_STDERR: + if (((php_stream *) what)-mode[0] != 'r') { + if (ch-handlers-stderr) { + zval_ptr_dtor(ch-handlers-stderr); + } + zval_add_ref(zvalue); + ch-handlers-stderr = *zvalue; + zend_list_addref(Z_LVAL_PP(zvalue)); + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, the provided file handle is not writable); + RETVAL_FALSE; + return 1; + } + /* break omitted intentionally */ default: error = curl_easy_setopt(ch-cp, option, fp); break; @@ -2334,6 +2348,11 @@ fprintf(stderr, DTOR CALLED, ch = %x\n, ch); #endif + /* Prevent crash inside cURL if passed file has already been closed */ + if (ch-handlers-stderr Z_REFCOUNT_P(ch-handlers-stderr) = 0) { + curl_easy_setopt(ch-cp, CURLOPT_STDERR, stderr); + } + curl_easy_cleanup(ch-cp); #if LIBCURL_VERSION_NUM 0x071101 zend_llist_clean(ch-to_free.str); @@ -2353,12 +2372,15 @@ if (ch-handlers-write_header-func_name) { zval_ptr_dtor(ch-handlers-write_header-func_name); } - if(ch-handlers-progress-func_name) { + if (ch-handlers-progress-func_name) { zval_ptr_dtor(ch-handlers-progress-func_name); } if (ch-handlers-passwd) { zval_ptr_dtor(ch-handlers-passwd); } + if (ch-handlers-stderr) { + zval_ptr_dtor(ch-handlers-stderr); + } if (ch-header.str_len 0) { efree(ch-header.str); } http://cvs.php.net/viewvc.cgi/php-src/ext/curl/php_curl.h?r1=1.53r2=1.54diff_format=u Index: php-src/ext/curl/php_curl.h diff -u php-src/ext/curl/php_curl.h:1.53 php-src/ext/curl/php_curl.h:1.54 --- php-src/ext/curl/php_curl.h:1.53Sun May 3 14:58:06 2009 +++ php-src/ext/curl/php_curl.h Tue May 26 15:48:28 2009 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_curl.h,v 1.53 2009/05/03 14:58:06 pajoye Exp $ */ +/* $Id: php_curl.h,v 1.54 2009/05/26 15:48:28 jani Exp $ */ #ifndef _PHP_CURL_H #define _PHP_CURL_H @@ -107,6 +107,7 @@ php_curl_write *write_header; php_curl_read *read; zval *passwd; + zval *stderr; php_curl_progress *progress; } php_curl_handlers; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Thu May 21 12:52:59 2009 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #48207 (CURLOPT_(FILE|WRITEHEADER options do not error out when working with a non-writable stream) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.165r2=1.166diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.165 php-src/ext/curl/interface.c:1.166 --- php-src/ext/curl/interface.c:1.165 Wed May 20 09:26:03 2009 +++ php-src/ext/curl/interface.cThu May 21 12:52:59 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.165 2009/05/20 09:26:03 tony2001 Exp $ */ +/* $Id: interface.c,v 1.166 2009/05/21 12:52:59 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1665,12 +1665,24 @@ error = CURLE_OK; switch (option) { case CURLOPT_FILE: - ch-handlers-write-fp = fp; - ch-handlers-write-method = PHP_CURL_FILE; + if (((php_stream *) what)-mode[0] != 'r') { + ch-handlers-write-fp = fp; + ch-handlers-write-method = PHP_CURL_FILE; + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, the provided file handle is not writable); + RETVAL_FALSE; + return 1; + } break; case CURLOPT_WRITEHEADER: - ch-handlers-write_header-fp = fp; - ch-handlers-write_header-method = PHP_CURL_FILE; + if (((php_stream *) what)-mode[0] != 'r') { + ch-handlers-write_header-fp = fp; + ch-handlers-write_header-method = PHP_CURL_FILE; + } else { + php_error_docref(NULL TSRMLS_CC, E_WARNING, the provided file handle is not writable); + RETVAL_FALSE; + return 1; + } break; case CURLOPT_INFILE: zend_list_addref(Z_LVAL_PP(zvalue)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
On 18.05.2009 16:03, Pierre-Alain Joye wrote: while (*p != NULL) { - add_next_index_ascii_string(protocol_list, *p, 1); - *p++; + add_next_index_ascii_string(protocol_list, *p++, 1); HEAD chokes on this line. Program terminated with signal 11, Segmentation fault. #0 0x7f2b3a0e39c0 in u_charsToUChars_4_0 () from /usr/lib64/libicuuc.so.40 (gdb) bt #0 0x7f2b3a0e39c0 in u_charsToUChars_4_0 () from /usr/lib64/libicuuc.so.40 #1 0x0056c46e in zend_ascii_to_unicode (cs=0x0, cs_size=5, __zend_filename=0x9efd10 /local/qa/head/ext/curl/interface.c, __zend_lineno=1296) at /local/qa/head/Zend/zend_unicode.h:157 #2 0x0056c366 in zif_curl_version (ht=0, return_value=0x11c4e70, return_value_ptr=0x7f2b3cc62138, this_ptr=0x0, return_value_used=1) at /local/qa/head/ext/curl/interface.c:1296 #3 0x0089dc41 in zend_do_fcall_common_helper_SPEC (execute_data=0x7f2b3cc62090) at /local/qa/head/Zend/zend_vm_execute.h:321 #4 0x008a31f3 in ZEND_DO_FCALL_SPEC_CONST_HANDLER (execute_data=0x7f2b3cc62090) at /local/qa/head/Zend/zend_vm_execute.h:1588 #5 0x0089cebc in execute (op_array=0x11c5ad8) at /local/qa/head/Zend/zend_vm_execute.h:104 #6 0x008617ac in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /local/qa/head/Zend/zend.c:1752 #7 0x007d9df2 in php_execute_script (primary_file=0x7fff44d972f0) at /local/qa/head/main/main.c:2298 #8 0x00958999 in main (argc=60, argv=0x7fff44d97538) at /local/qa/head/sapi/cli/php_cli.c:1192 (gdb) f 2 #2 0x0056c366 in zif_curl_version (ht=0, return_value=0x11c4e70, return_value_ptr=0x7f2b3cc62138, this_ptr=0x0, return_value_used=1) at /local/qa/head/ext/curl/interface.c:1296 1296add_next_index_ascii_string(protocol_list, *p++, 1); -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Wed May 20 09:26:04 2009 UTC Modified files: /php-src/ext/curl interface.c Log: fix segfault http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.164r2=1.165diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.164 php-src/ext/curl/interface.c:1.165 --- php-src/ext/curl/interface.c:1.164 Tue May 19 18:08:13 2009 +++ php-src/ext/curl/interface.cWed May 20 09:26:03 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.164 2009/05/19 18:08:13 kalle Exp $ */ +/* $Id: interface.c,v 1.165 2009/05/20 09:26:03 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1293,7 +1293,8 @@ array_init(protocol_list); while (*p != NULL) { - add_next_index_ascii_string(protocol_list, *p++, 1); + add_next_index_ascii_string(protocol_list, *p, 1); + p++; } CAAZ(protocols, protocol_list); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c streams.c
kalle Tue May 19 18:08:13 2009 UTC Modified files: /php-src/ext/curl interface.c streams.c Log: Fixed compiler warnings # Is it intended that curl_progress should cast to long rather than keeping the # double? Or doesn't it matter? http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.163r2=1.164diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.163 php-src/ext/curl/interface.c:1.164 --- php-src/ext/curl/interface.c:1.163 Mon May 18 12:50:44 2009 +++ php-src/ext/curl/interface.cTue May 19 18:08:13 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.163 2009/05/18 12:50:44 jani Exp $ */ +/* $Id: interface.c,v 1.164 2009/05/19 18:08:13 kalle Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -967,10 +967,10 @@ MAKE_STD_ZVAL(zultotal); MAKE_STD_ZVAL(zulnow); - ZVAL_LONG(zdltotal, dltotal); - ZVAL_LONG(zdlnow, dlnow); - ZVAL_LONG(zultotal, ultotal); - ZVAL_LONG(zulnow, ulnow); + ZVAL_LONG(zdltotal, (long) dltotal); + ZVAL_LONG(zdlnow, (long) dlnow); + ZVAL_LONG(zultotal, (long) ultotal); + ZVAL_LONG(zulnow, (long) ulnow); argv[0] = zdltotal; argv[1] = zdlnow; @@ -1071,7 +1071,7 @@ #endif } else if (retval_ptr) { if (Z_TYPE_P(retval_ptr) == IS_STRING) { - length = MIN(size * nmemb, Z_STRLEN_P(retval_ptr)); + length = MIN((int) (size * nmemb), Z_STRLEN_P(retval_ptr)); memcpy(data, Z_STRVAL_P(retval_ptr), length); } zval_ptr_dtor(retval_ptr); http://cvs.php.net/viewvc.cgi/php-src/ext/curl/streams.c?r1=1.33r2=1.34diff_format=u Index: php-src/ext/curl/streams.c diff -u php-src/ext/curl/streams.c:1.33 php-src/ext/curl/streams.c:1.34 --- php-src/ext/curl/streams.c:1.33 Tue May 5 00:30:40 2009 +++ php-src/ext/curl/streams.c Tue May 19 18:08:13 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: streams.c,v 1.33 2009/05/05 00:30:40 jani Exp $ */ +/* $Id: streams.c,v 1.34 2009/05/19 18:08:13 kalle Exp $ */ /* This file implements cURL based wrappers. * NOTE: If you are implementing your own streams that are intended to @@ -132,7 +132,7 @@ /* our notification system only works in a single direction; we should detect which * direction is important and use the correct values in this call */ - php_stream_notify_progress(stream-context, dlnow, dltotal); + php_stream_notify_progress(stream-context, (size_t) dlnow, (size_t) dltotal); return 0; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon May 18 11:40:25 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - MFB: - disable file:// when open_basedir are enabled http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.157r2=1.158diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.157 php-src/ext/curl/interface.c:1.158 --- php-src/ext/curl/interface.c:1.157 Fri May 8 03:32:54 2009 +++ php-src/ext/curl/interface.cMon May 18 11:40:25 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.157 2009/05/08 03:32:54 shire Exp $ */ +/* $Id: interface.c,v 1.158 2009/05/18 11:40:25 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -147,6 +147,7 @@ #endif /* }}} */ +static void _php_curl_close_ex(php_curl *ch TSRMLS_DC); static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC); #define SAVE_CURL_ERROR(__handle, __err) (__handle)-err.no = (int) __err; @@ -162,29 +163,44 @@ #define php_curl_ret(__ret) RETVAL_FALSE; return; #endif -#define PHP_CURL_CHECK_OPEN_BASEDIR(str, len, __ret) \ - if ((PG(open_basedir) *PG(open_basedir)) \ - strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ - { \ - php_url *tmp_url; \ - \ - if (!(tmp_url = php_url_parse_ex(str, len))) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid URL '%s', str); \ - php_curl_ret(__ret); \ - } \ - \ - if (!php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, URL '%s' contains unencoded control characters, str); \ - php_url_free(tmp_url); \ - php_curl_ret(__ret); \ - } \ - \ - if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC)) { \ - php_url_free(tmp_url); \ - php_curl_ret(__ret); \ - } \ - php_url_free(tmp_url); \ +static int php_curl_option_url(php_curl *ch, const char *url, const int len) { + CURLcode error=CURLE_OK; +#if LIBCURL_VERSION_NUM 0x071100 + char *copystr = NULL; +#endif + TSRMLS_FETCH(); + + /* Disable file:// if open_basedir or safe_mode are used */ + if ((PG(open_basedir) *PG(open_basedir))) { +#if LIBCURL_VERSION_NUM = 0x071304 + error = curl_easy_setopt(ch-cp, CURLOPT_PROTOCOLS, CURLPROTO_ALL ~CURLPROTO_FILE); +#else + php_url *uri; + + if (!(uri = php_url_parse_ex(url, len))) { + php_error_docref(NULL
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon May 18 11:48:56 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - WS http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.158r2=1.159diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.158 php-src/ext/curl/interface.c:1.159 --- php-src/ext/curl/interface.c:1.158 Mon May 18 11:40:25 2009 +++ php-src/ext/curl/interface.cMon May 18 11:48:56 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.158 2009/05/18 11:40:25 pajoye Exp $ */ +/* $Id: interface.c,v 1.159 2009/05/18 11:48:56 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2000,7 +2000,7 @@ PHP_FUNCTION(curl_setopt) { zval *zid, **zvalue; - long options; + longoptions; php_curl*ch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, zlZ, zid, options, zvalue) == FAILURE) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon May 18 11:50:29 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - return NULL on invalid args http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.159r2=1.160diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.159 php-src/ext/curl/interface.c:1.160 --- php-src/ext/curl/interface.c:1.159 Mon May 18 11:48:56 2009 +++ php-src/ext/curl/interface.cMon May 18 11:50:29 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.159 2009/05/18 11:48:56 pajoye Exp $ */ +/* $Id: interface.c,v 1.160 2009/05/18 11:50:29 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -2117,7 +2117,7 @@ longoption = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z|l, zid, option) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon May 18 12:03:05 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - sync with 5.3 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.160r2=1.161diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.160 php-src/ext/curl/interface.c:1.161 --- php-src/ext/curl/interface.c:1.160 Mon May 18 11:50:29 2009 +++ php-src/ext/curl/interface.cMon May 18 12:03:05 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.160 2009/05/18 11:50:29 pajoye Exp $ */ +/* $Id: interface.c,v 1.161 2009/05/18 12:03:05 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1298,8 +1298,7 @@ array_init(protocol_list); while (*p != NULL) { - add_next_index_ascii_string(protocol_list, *p, 1); - *p++; + add_next_index_ascii_string(protocol_list, *p++, 1); } CAAZ(protocols, protocol_list); } @@ -1411,7 +1410,7 @@ php_curl*ch, *dupch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Can't you do it all in one commit? Now you've littered the log with these half-assed commits, and STILL didn't do everything..there are several RETURN_FALSE;'s there where simple return is necessary. --Jani Pierre-Alain Joye wrote: pajoye Mon May 18 12:03:05 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - sync with 5.3 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.160r2=1.161diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.160 php-src/ext/curl/interface.c:1.161 --- php-src/ext/curl/interface.c:1.160 Mon May 18 11:50:29 2009 +++ php-src/ext/curl/interface.cMon May 18 12:03:05 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.160 2009/05/18 11:50:29 pajoye Exp $ */ +/* $Id: interface.c,v 1.161 2009/05/18 12:03:05 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1298,8 +1298,7 @@ array_init(protocol_list); while (*p != NULL) { - add_next_index_ascii_string(protocol_list, *p, 1); - *p++; + add_next_index_ascii_string(protocol_list, *p++, 1); } CAAZ(protocols, protocol_list); } @@ -1411,7 +1410,7 @@ php_curl*ch, *dupch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
On Mon, May 18, 2009 at 2:07 PM, Jani Taskinen jani.taski...@sci.fi wrote: Can't you do it all in one commit? Now you've littered the log with these half-assed commits, and STILL didn't do everything..there are several RETURN_FALSE;'s there where simple return is necessary. I do, only missed the 2nd one... but I'm done now anyway. It is already less painful to merge head and 5.3 -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Pierre Joye wrote: On Mon, May 18, 2009 at 2:07 PM, Jani Taskinen jani.taski...@sci.fi wrote: Can't you do it all in one commit? Now you've littered the log with these half-assed commits, and STILL didn't do everything..there are several RETURN_FALSE;'s there where simple return is necessary. I do, only missed the 2nd one... but I'm done now anyway. It is already less painful to merge head and 5.3 You have missed 8 invalid parameters returning false parts. Also while adding the file:// thing, you added CS violating stuff, didn't add folding tags..etc. --Jani -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
janiMon May 18 12:14:25 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - Fix CS http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.161r2=1.162diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.161 php-src/ext/curl/interface.c:1.162 --- php-src/ext/curl/interface.c:1.161 Mon May 18 12:03:05 2009 +++ php-src/ext/curl/interface.cMon May 18 12:14:25 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.161 2009/05/18 12:03:05 pajoye Exp $ */ +/* $Id: interface.c,v 1.162 2009/05/18 12:14:25 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -158,13 +158,14 @@ #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #if defined(PHP_WIN32) || defined(__GNUC__) - #define php_curl_ret(__ret) RETVAL_FALSE; return __ret; +# define php_curl_ret(__ret) RETVAL_FALSE; return __ret; #else - #define php_curl_ret(__ret) RETVAL_FALSE; return; +# define php_curl_ret(__ret) RETVAL_FALSE; return; #endif -static int php_curl_option_url(php_curl *ch, const char *url, const int len) { - CURLcode error=CURLE_OK; +static int php_curl_option_url(php_curl *ch, const char *url, const int len) /* {{{ */ +{ + CURLcode error = CURLE_OK; #if LIBCURL_VERSION_NUM 0x071100 char *copystr = NULL; #endif @@ -201,6 +202,7 @@ return (error == CURLE_OK ? 1 : 0); } +/* }}} */ /* {{{ arginfo */ ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_version, 0, 0, 0) @@ -347,7 +349,7 @@ php_info_print_table_row(2, Age, str); /* To update on each new cURL release using src/main.c in cURL sources */ - if(d-features) { + if (d-features) { struct feat { const char *name; int bitmask; @@ -458,7 +460,6 @@ le_curl = zend_register_list_destructors_ex(_php_curl_close, NULL, curl, module_number); le_curl_multi_handle = zend_register_list_destructors_ex(_php_curl_multi_close, NULL, curl, module_number); - /* See http://curl.haxx.se/lxr/source/docs/libcurl/symbols-in-versions or curl src/docs/libcurl/symbols-in-versions for a (almost) complete list of options and which version they were introduced */ @@ -939,11 +940,7 @@ /* {{{ curl_progress */ -static size_t curl_progress(void *clientp, -double dltotal, -double dlnow, -double ultotal, -double ulnow) +static size_t curl_progress(void *clientp, double dltotal, double dlnow, double ultotal, double ulnow) { php_curl *ch = (php_curl *) clientp; php_curl_progress *t = ch-handlers-progress; @@ -1017,7 +1014,6 @@ } /* }}} */ - /* {{{ curl_read */ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx) @@ -1340,7 +1336,7 @@ zend_uchar url_type = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, url, url_len, url_type) == FAILURE) { - RETURN_FALSE; + return; } if (url.v url_type == IS_UNICODE) { @@ -2003,7 +1999,7 @@ php_curl*ch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, zlZ, zid, options, zvalue) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); @@ -2024,11 +2020,11 @@ php_curl*ch; ulong option; HashPositionpos; - zstrstring_key; - uintstr_key_len; + zstrstring_key; + uintstr_key_len; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, za, zid, arr) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); @@ -2074,7 +2070,7 @@ php_curl*ch; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { - RETURN_FALSE; + return; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); @@ -2203,13 +2199,13 @@ case CURLINFO_PRIVATE: case CURLINFO_EFFECTIVE_URL: case CURLINFO_CONTENT_TYPE: { - char *s_code = NULL; + char *s_code = NULL; - if (curl_easy_getinfo(ch-cp, option, s_code) == CURLE_OK s_code) { - RETURN_ASCII_STRING(s_code, 1); - } else { - RETURN_FALSE; - } + if (curl_easy_getinfo(ch-cp, option,
[PHP-CVS] cvs: php-src /ext/curl interface.c
janiMon May 18 12:50:44 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - fix CS, merged one parameter parsing patch missing from HEAD http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.162r2=1.163diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.162 php-src/ext/curl/interface.c:1.163 --- php-src/ext/curl/interface.c:1.162 Mon May 18 12:14:25 2009 +++ php-src/ext/curl/interface.cMon May 18 12:50:44 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.162 2009/05/18 12:14:25 jani Exp $ */ +/* $Id: interface.c,v 1.163 2009/05/18 12:50:44 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -284,7 +284,6 @@ ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_close, 0) ZEND_ARG_INFO(0, mh) ZEND_END_ARG_INFO() - /* }}} */ /* {{{ curl_functions[] @@ -361,7 +360,6 @@ #if LIBCURL_VERSION_NUM 0x070a06 /* 7.10.7 */ {AsynchDNS, CURL_VERSION_ASYNCHDNS}, #endif - #if LIBCURL_VERSION_NUM 0x070a05 /* 7.10.6 */ {Debug, CURL_VERSION_DEBUG}, {GSS-Negotiate, CURL_VERSION_GSSNEGOTIATE}, @@ -999,8 +997,9 @@ if (Z_TYPE_P(retval_ptr) != IS_LONG) { convert_to_long_ex(retval_ptr); } - if(0 != Z_LVAL_P(retval_ptr)) + if (0 != Z_LVAL_P(retval_ptr)) { rval = 1; + } zval_ptr_dtor(retval_ptr); } zval_ptr_dtor(argv[0]); @@ -1405,7 +1404,7 @@ zval*zid; php_curl*ch, *dupch; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, r, zid) == FAILURE) { return; } @@ -1621,7 +1620,6 @@ } } #endif - if (option == CURLOPT_URL) { if (!php_curl_option_url(ch, Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue))) { RETVAL_FALSE; @@ -1637,7 +1635,6 @@ zend_llist_add_element(ch-to_free.str, copystr); #endif } - break; } case CURLOPT_FILE: @@ -1760,11 +1757,11 @@ struct HttpPost *first = NULL; struct HttpPost *last = NULL; char *postval; - zstr string_key; - char *key; - ulongnum_key; - uint string_key_len; - int type = -1; + zstr string_key; + char *key; + ulong num_key; + uint string_key_len; + int type = -1; postfields = HASH_OF(*zvalue); if (!postfields) { @@ -1995,10 +1992,10 @@ PHP_FUNCTION(curl_setopt) { zval *zid, **zvalue; - longoptions; - php_curl*ch; + longoptions; + php_curl *ch; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, zlZ, zid, options, zvalue) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, rlZ, zid, options, zvalue) == FAILURE) { return; } @@ -2069,7 +2066,7 @@ zval*zid; php_curl*ch; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, r, zid) == FAILURE) { return; } @@ -2111,7 +2108,7 @@ php_curl*ch; longoption = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z|l, zid, option) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, r|l, zid, option) == FAILURE) { return; } @@ -2262,7 +2259,7 @@ zval*zid; php_curl*ch; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, r, zid) == FAILURE) { return; } @@ -2280,7 +2277,7 @@ zval*zid; php_curl*ch; - if
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon May 4 12:12:40 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - [DOC] #47739. add option CURLOPT_IPRESOLVE which accepts CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_V4 or CURL_IPRESOLVE_V6 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.153r2=1.154diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.153 php-src/ext/curl/interface.c:1.154 --- php-src/ext/curl/interface.c:1.153 Sun May 3 21:47:52 2009 +++ php-src/ext/curl/interface.cMon May 4 12:12:40 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.153 2009/05/03 21:47:52 pajoye Exp $ */ +/* $Id: interface.c,v 1.154 2009/05/04 12:12:40 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -443,6 +443,10 @@ le_curl_multi_handle = zend_register_list_destructors_ex(_php_curl_multi_close, NULL, curl, module_number); /* Constants for curl_setopt() */ + REGISTER_CURL_CONSTANT(CURLOPT_IPRESOLVE); + REGISTER_CURL_CONSTANT(CURL_IPRESOLVE_WHATEVER); + REGISTER_CURL_CONSTANT(CURL_IPRESOLVE_V4); + REGISTER_CURL_CONSTANT(CURL_IPRESOLVE_V6); REGISTER_CURL_CONSTANT(CURLOPT_DNS_USE_GLOBAL_CACHE); REGISTER_CURL_CONSTANT(CURLOPT_DNS_CACHE_TIMEOUT); REGISTER_CURL_CONSTANT(CURLOPT_PORT); @@ -1525,6 +1529,7 @@ case CURLOPT_REDIR_PROTOCOLS: case CURLOPT_PROTOCOLS: #endif + case CURLOPT_IPRESOLVE: convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c php_curl.h
pajoye Sun May 3 14:58:06 2009 UTC Modified files: /php-src/ext/curl interface.c php_curl.h Log: - [DOC] #41712, implement progress callback - add constants CURLOPT_NOPROGRESS and CURLOPT_PROGRESSFUNCTION http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.149r2=1.150diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.149 php-src/ext/curl/interface.c:1.150 --- php-src/ext/curl/interface.c:1.149 Mon Mar 16 15:05:21 2009 +++ php-src/ext/curl/interface.cSun May 3 14:58:06 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.149 2009/03/16 15:05:21 felipe Exp $ */ +/* $Id: interface.c,v 1.150 2009/05/03 14:58:06 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -456,6 +456,7 @@ REGISTER_CURL_CONSTANT(CURLOPT_HEADER); REGISTER_CURL_CONSTANT(CURLOPT_HTTPHEADER); REGISTER_CURL_CONSTANT(CURLOPT_NOPROGRESS); + REGISTER_CURL_CONSTANT(CURLOPT_PROGRESSFUNCTION); REGISTER_CURL_CONSTANT(CURLOPT_NOBODY); REGISTER_CURL_CONSTANT(CURLOPT_FAILONERROR); REGISTER_CURL_CONSTANT(CURLOPT_UPLOAD); @@ -902,6 +903,87 @@ } /* }}} */ +/* {{{ curl_progress + */ +static size_t curl_progress(void *clientp, +double dltotal, +double dlnow, +double ultotal, +double ulnow) +{ + php_curl *ch = (php_curl *) clientp; + php_curl_progress *t = ch-handlers-progress; + int length = -1; + size_t rval = 0; + +#if PHP_CURL_DEBUG + fprintf(stderr, curl_progress() called\n); + fprintf(stderr, clientp = %x, dltotal = %f, dlnow = %f, ultotal = %f, ulnow = %f\n, clientp, dltotal, dlnow, ultotal, ulnow); +#endif + + switch (t-method) { + case PHP_CURL_USER: { + zval **argv[4]; + zval *zdltotal = NULL; + zval *zdlnow = NULL; + zval *zultotal = NULL; + zval *zulnow = NULL; + zval *retval_ptr; + int error; + zend_fcall_info fci; + TSRMLS_FETCH_FROM_CTX(ch-thread_ctx); + + MAKE_STD_ZVAL(zdltotal); + MAKE_STD_ZVAL(zdlnow); + MAKE_STD_ZVAL(zultotal); + MAKE_STD_ZVAL(zulnow); + + ZVAL_LONG(zdltotal, dltotal); + ZVAL_LONG(zdlnow, dlnow); + ZVAL_LONG(zultotal, ultotal); + ZVAL_LONG(zulnow, ulnow); + + argv[0] = zdltotal; + argv[1] = zdlnow; + argv[2] = zultotal; + argv[3] = zulnow; + + fci.size = sizeof(fci); + fci.function_table = EG(function_table); + fci.function_name = t-func_name; + fci.object_ptr = NULL; + fci.retval_ptr_ptr = retval_ptr; + fci.param_count = 4; + fci.params = argv; + fci.no_separation = 0; + fci.symbol_table = NULL; + + ch-in_callback = 1; + error = zend_call_function(fci, t-fci_cache TSRMLS_CC); + ch-in_callback = 0; + if (error == FAILURE) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Cannot call the CURLOPT_READFUNCTION); + length = -1; + } else if (retval_ptr) { + if (Z_TYPE_P(retval_ptr) != IS_LONG) { + convert_to_long_ex(retval_ptr); + } + if(0 != Z_LVAL_P(retval_ptr)) + rval = 1; + zval_ptr_dtor(retval_ptr); + } + zval_ptr_dtor(argv[0]); + zval_ptr_dtor(argv[1]); + zval_ptr_dtor(argv[2]); + zval_ptr_dtor(argv[3]); + break; + } + } + return rval; +} +/* }}} */ + + /* {{{ curl_read */ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx) @@ -1199,6 +1281,7 @@ (*ch)-handlers-write= ecalloc(1, sizeof(php_curl_write)); (*ch)-handlers-write_header = ecalloc(1, sizeof(php_curl_write)); (*ch)-handlers-read = ecalloc(1, sizeof(php_curl_read)); + (*ch)-handlers-progress = ecalloc(1, sizeof(php_curl_progress)); (*ch)-in_callback = 0;
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Sun May 3 21:47:52 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - #47966, cannot access curl info array without binary To check: why add_assoc_ascii_string_ex fails while add_assoc_ascii_string works http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.152r2=1.153diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.152 php-src/ext/curl/interface.c:1.153 --- php-src/ext/curl/interface.c:1.152 Sun May 3 15:16:24 2009 +++ php-src/ext/curl/interface.cSun May 3 21:47:52 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.152 2009/05/03 15:16:24 pajoye Exp $ */ +/* $Id: interface.c,v 1.153 2009/05/03 21:47:52 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -153,7 +153,7 @@ #define CAAL(s, v) add_assoc_long_ex(return_value, s, sizeof(s), (long) v); #define CAAD(s, v) add_assoc_double_ex(return_value, s, sizeof(s), (double) v); -#define CAAS(s, v) add_assoc_ascii_string_ex(return_value, s, sizeof(s), (char *) (v ? v : ), 1); +#define CAAS(s, v) add_ascii_assoc_string(return_value, s, (v ? v : ), 1); #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #if defined(PHP_WIN32) || defined(__GNUC__) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
felipe Mon Mar 16 15:05:21 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - Fixed bug #47616 (curl keeps crashing) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.148r2=1.149diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.148 php-src/ext/curl/interface.c:1.149 --- php-src/ext/curl/interface.c:1.148 Fri Mar 13 19:41:48 2009 +++ php-src/ext/curl/interface.cMon Mar 16 15:05:21 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.148 2009/03/13 19:41:48 stas Exp $ */ +/* $Id: interface.c,v 1.149 2009/03/16 15:05:21 felipe Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1747,6 +1747,7 @@ } else { #if LIBCURL_VERSION_NUM = 0x071101 + convert_to_string_ex(zvalue); /* with curl 7.17.0 and later, we can use COPYPOSTFIELDS, but we have to provide size before */ error = curl_easy_setopt(ch-cp, CURLOPT_POSTFIELDSIZE, Z_STRLEN_PP(zvalue)); error = curl_easy_setopt(ch-cp, CURLOPT_COPYPOSTFIELDS, Z_STRVAL_PP(zvalue)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
stasFri Mar 13 19:41:48 2009 UTC Modified files: /php-src/ext/curl interface.c Log: add new CURL options http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.147r2=1.148diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.147 php-src/ext/curl/interface.c:1.148 --- php-src/ext/curl/interface.c:1.147 Tue Mar 10 23:39:11 2009 +++ php-src/ext/curl/interface.cFri Mar 13 19:41:48 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.147 2009/03/10 23:39:11 helly Exp $ */ +/* $Id: interface.c,v 1.148 2009/03/13 19:41:48 stas Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -734,6 +734,24 @@ REGISTER_CURL_CONSTANT(CURLE_SSH); #endif +#if LIBCURL_VERSION_NUM = 0x071304 + REGISTER_CURL_CONSTANT(CURLOPT_REDIR_PROTOCOLS); + REGISTER_CURL_CONSTANT(CURLOPT_PROTOCOLS); + REGISTER_CURL_CONSTANT(CURLPROTO_HTTP); + REGISTER_CURL_CONSTANT(CURLPROTO_HTTPS); + REGISTER_CURL_CONSTANT(CURLPROTO_FTP); + REGISTER_CURL_CONSTANT(CURLPROTO_FTPS); + REGISTER_CURL_CONSTANT(CURLPROTO_SCP); + REGISTER_CURL_CONSTANT(CURLPROTO_SFTP); + REGISTER_CURL_CONSTANT(CURLPROTO_TELNET); + REGISTER_CURL_CONSTANT(CURLPROTO_LDAP); + REGISTER_CURL_CONSTANT(CURLPROTO_LDAPS); + REGISTER_CURL_CONSTANT(CURLPROTO_DICT); + REGISTER_CURL_CONSTANT(CURLPROTO_FILE); + REGISTER_CURL_CONSTANT(CURLPROTO_TFTP); + REGISTER_CURL_CONSTANT(CURLPROTO_ALL); +#endif + #ifdef PHP_CURL_NEED_OPENSSL_TSL if (!CRYPTO_get_id_callback()) { int i, c = CRYPTO_num_locks(); @@ -1420,6 +1438,10 @@ #if LIBCURL_VERSION_NUM 0x070b01 /* CURLOPT_TCP_NODELAY is available since curl 7.11.2 */ case CURLOPT_TCP_NODELAY: #endif +#if LIBCURL_VERSION_NUM = 0x71304 + case CURLOPT_REDIR_PROTOCOLS: + case CURLOPT_PROTOCOLS: +#endif convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Mon Jan 26 15:21:50 2009 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #47217 (content-type is not set properly for file uploads) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.145r2=1.146diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.145 php-src/ext/curl/interface.c:1.146 --- php-src/ext/curl/interface.c:1.145 Sun Jan 25 23:02:18 2009 +++ php-src/ext/curl/interface.cMon Jan 26 15:21:49 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.145 2009/01/25 23:02:18 tony2001 Exp $ */ +/* $Id: interface.c,v 1.146 2009/01/26 15:21:49 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -378,7 +378,7 @@ #if LIBCURL_VERSION_NUM 0x070f03 /* 7.15.4 */ {CharConv, CURL_VERSION_CONV}, #endif - NULL, 0 + {NULL, 0} }; php_info_print_table_row(1, Features); @@ -1686,14 +1686,13 @@ return 1; } if (type) { - type++; error = curl_formadd(first, last, CURLFORM_COPYNAME, key, CURLFORM_NAMELENGTH, l, CURLFORM_FILE, postval, - CURLFORM_CONTENTTYPE, type, + CURLFORM_CONTENTTYPE, type + sizeof(;type=) - 1, CURLFORM_END); - *(type - 1) = ';'; + *type = ';'; } else { error = curl_formadd(first, last, CURLFORM_COPYNAME, key, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Sun Jan 25 16:27:27 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - [DOC] Add support for SSH via libssh2 - new constants: CURLE_SSH, CURLSSH_AUTH_NONE, CURLSSH_AUTH_PUBLICKEY, CURLSSH_AUTH_PASSWORD, CURLSSH_AUTH_HOST, CURLSSH_AUTH_KEYBOARD, CURLSSH_AUTH_DEFAULT, CURLOPT_SSH_AUTH_TYPES, CURLOPT_KEYPASSWD, CURLOPT_SSH_PUBLIC_KEYFILE, CURLOPT_SSH_PRIVATE_KEYFILE, CURLOPT_SSH_HOST_PUBLIC_KEY_MD5 See http://curl.haxx.se/libcurl/c/curl_easy_setopt.html fortheir roles or usages http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.141r2=1.142diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.141 php-src/ext/curl/interface.c:1.142 --- php-src/ext/curl/interface.c:1.141 Wed Dec 31 11:12:30 2008 +++ php-src/ext/curl/interface.cSun Jan 25 16:27:25 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.141 2008/12/31 11:12:30 sebastian Exp $ */ +/* $Id: interface.c,v 1.142 2009/01/25 16:27:25 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -431,7 +431,7 @@ } #endif -#if defined(CURLVERSION_FOURTH) CURLVERSION_NOW = CURLVERSION_FOURTH +#if LIBCURL_VERSION_NUM = 0x071300 if (d-iconv_ver_num) { php_info_print_table_row(2, IconV Version, d-iconv_ver_num); @@ -694,7 +694,9 @@ #if LIBCURL_VERSION_NUM = 0x070b00 REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED); #endif - +#ifdef LIBCURL_VERSION_NUM = 0x071300 + REGISTER_CURL_CONSTANT(CURLE_SSH); +#endif REGISTER_CURL_CONSTANT(CURLPROXY_HTTP); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS4); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5); @@ -731,6 +733,22 @@ REGISTER_CURL_CONSTANT(CURLFTPSSL_ALL); #endif +/* SSH support works in 7.19.0+ using libssh2 */ +#ifdef LIBCURL_VERSION_NUM = 0x071300 + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_NONE); + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PUBLICKEY); + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PASSWORD); + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_HOST); + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_KEYBOARD); + REGISTER_CURL_CONSTANT(CURLSSH_AUTH_DEFAULT); + REGISTER_CURL_CONSTANT(CURLOPT_SSH_AUTH_TYPES); + REGISTER_CURL_CONSTANT(CURLOPT_KEYPASSWD); + REGISTER_CURL_CONSTANT(CURLOPT_SSH_PUBLIC_KEYFILE); + REGISTER_CURL_CONSTANT(CURLOPT_SSH_PRIVATE_KEYFILE); + REGISTER_CURL_CONSTANT(CURLOPT_SSH_HOST_PUBLIC_KEY_MD5); + REGISTER_CURL_CONSTANT(CURLE_SSH); +#endif + #ifdef PHP_CURL_NEED_OPENSSL_TSL if (!CRYPTO_get_id_callback()) { int i, c = CRYPTO_num_locks(); @@ -1454,14 +1472,23 @@ case CURLOPT_SSLENGINE: case CURLOPT_SSLENGINE_DEFAULT: case CURLOPT_SSLCERTTYPE: - case CURLOPT_ENCODING: { + case CURLOPT_ENCODING: +#if LIBCURL_VERSION_NUM = 0x071300 + case CURLOPT_SSH_PUBLIC_KEYFILE: + case CURLOPT_SSH_PRIVATE_KEYFILE: +#endif + { #if LIBCURL_VERSION_NUM 0x071100 char *copystr = NULL; #endif convert_to_string_ex(zvalue); - if (option == CURLOPT_URL) { + if (option == CURLOPT_URL +#if LIBCURL_VERSION_NUM = 0x071300 + || option == CURLOPT_SSH_PUBLIC_KEYFILE || option == CURLOPT_SSH_PRIVATE_KEYFILE +#endif + ) { PHP_CURL_CHECK_OPEN_BASEDIR(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue), 1); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Sun Jan 25 17:12:24 2009 UTC Modified files: /php-src/ext/curl interface.c Log: - nicer features list http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.142r2=1.143diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.142 php-src/ext/curl/interface.c:1.143 --- php-src/ext/curl/interface.c:1.142 Sun Jan 25 16:27:25 2009 +++ php-src/ext/curl/interface.cSun Jan 25 17:12:22 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.142 2009/01/25 16:27:25 pajoye Exp $ */ +/* $Id: interface.c,v 1.143 2009/01/25 17:12:22 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -330,77 +330,65 @@ sprintf(str, %d, d-age); php_info_print_table_row(2, Age, str); -#ifdef CURL_VERSION_IPV6 - if (d-features CURL_VERSION_IPV6) { - n = sprintf(str, %s, IPv6-enabled, ); - } -#endif - -#ifdef CURL_VERSION_KERBEROS4 - if (d-features CURL_VERSION_KERBEROS4) { - n += sprintf(str + n, %s, kerberos auth is supported, ); - } -#endif + /* To update on each new cURL release using src/main.c in cURL sources */ + if(d-features) { + struct feat { + const char *name; + int bitmask; + }; -#ifdef CURL_VERSION_SSL - if (d-features CURL_VERSION_SSL) { - n += sprintf(str + n, %s, SSL options are present, ); - } -#endif + unsigned int i; -#ifdef CURL_VERSION_LIBZ - if (d-features CURL_VERSION_LIBZ) { - n += sprintf(str + n, %s, libz features are present, ); - } + static const struct feat feats[] = { +#if LIBCURL_VERSION_NUM 0x070a06 /* 7.10.7 */ + {AsynchDNS, CURL_VERSION_ASYNCHDNS}, #endif #if LIBCURL_VERSION_NUM 0x070a05 /* 7.10.6 */ - if (d-features CURL_VERSION_NTLM) { - n += sprintf(str + n, %s, NTLM auth is supported, ); - } - if (d-features CURL_VERSION_GSSNEGOTIATE) { - n += sprintf(str + n, %s, Negotiate auth support, ); - } - if (d-features CURL_VERSION_DEBUG) { - n += sprintf(str + n, %s, built with debug capabilities, ); - } + {Debug, CURL_VERSION_DEBUG}, + {GSS-Negotiate, CURL_VERSION_GSSNEGOTIATE}, #endif - -#if LIBCURL_VERSION_NUM 0x070a06 /* 7.10.7 */ - if (d-features CURL_VERSION_ASYNCHDNS) { - n += sprintf(str + n, %s, asynchronous dns resolves, ); - } +#if LIBCURL_VERSION_NUM 0x070b02 /* 7.12.0 */ + {IDN, CURL_VERSION_IDN}, #endif -#if LIBCURL_VERSION_NUM 0x070a07 /* 7.10.8 */ - if (d-features CURL_VERSION_SPNEGO) { - n += sprintf(str + n, %s, SPNEGO auth, ); - } +#ifdef CURL_VERSION_IPV6 + {IPv6, CURL_VERSION_IPV6}, #endif #if LIBCURL_VERSION_NUM 0x070a09 /* 7.10.1 */ - if (d-features CURL_VERSION_LARGEFILE) { - n += sprintf(str + n, %s, supports files bigger than 2GB, ); - } + {Largefile, CURL_VERSION_LARGEFILE}, #endif -#if LIBCURL_VERSION_NUM 0x070b02 /* 7.12.0 */ - if (d-features CURL_VERSION_IDN) { - n += sprintf(str + n, %s, International Domain Names support, ); - } +#if LIBCURL_VERSION_NUM 0x070a05 /* 7.10.6 */ + {NTLM, CURL_VERSION_NTLM}, +#endif +#if LIBCURL_VERSION_NUM 0x070a07 /* 7.10.8 */ + {SPNEGO, CURL_VERSION_SPNEGO}, +#endif +#ifdef CURL_VERSION_SSL + {SSL, CURL_VERSION_SSL}, #endif #if LIBCURL_VERSION_NUM 0x070d01 /* 7.13.2 */ - if (d-features CURL_VERSION_SSPI) { - n += sprintf(str + n, %s, SSPI is supported, ); - } + {SSPI, CURL_VERSION_SSPI}, +#endif +#ifdef CURL_VERSION_KERBEROS4 + {krb4, CURL_VERSION_KERBEROS4}, +#endif +#ifdef CURL_VERSION_LIBZ + {libz, CURL_VERSION_LIBZ}, #endif #if LIBCURL_VERSION_NUM 0x070f03 /* 7.15.4 */ - if (d-features CURL_VERSION_CONV) { - n += sprintf(str + n, %s, character conversions are supported, ); - } + {CharConv, CURL_VERSION_CONV}, #endif + NULL, 0 + }; - if (n 3) { - str[n - 2] = '\0'; + php_info_print_table_row(1, Features); + for(i=0; isizeof(feats)/sizeof(feats[0]); i++) { + if (feats[i].name) { + php_info_print_table_row(2, feats[i].name, d-features feats[i].bitmask ? Yes : No); + } + } } -
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Sun Jan 25 22:33:19 2009 UTC Modified files: /php-src/ext/curl interface.c Log: do not define CURLE_SSH twice http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.143r2=1.144diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.143 php-src/ext/curl/interface.c:1.144 --- php-src/ext/curl/interface.c:1.143 Sun Jan 25 17:12:22 2009 +++ php-src/ext/curl/interface.cSun Jan 25 22:33:19 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.143 2009/01/25 17:12:22 pajoye Exp $ */ +/* $Id: interface.c,v 1.144 2009/01/25 22:33:19 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -682,9 +682,6 @@ #if LIBCURL_VERSION_NUM = 0x070b00 REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED); #endif -#ifdef LIBCURL_VERSION_NUM = 0x071300 - REGISTER_CURL_CONSTANT(CURLE_SSH); -#endif REGISTER_CURL_CONSTANT(CURLPROXY_HTTP); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS4); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Sun Jan 25 23:02:19 2009 UTC Modified files: /php-src/ext/curl interface.c Log: ifdef - if http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.144r2=1.145diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.144 php-src/ext/curl/interface.c:1.145 --- php-src/ext/curl/interface.c:1.144 Sun Jan 25 22:33:19 2009 +++ php-src/ext/curl/interface.cSun Jan 25 23:02:18 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.144 2009/01/25 22:33:19 tony2001 Exp $ */ +/* $Id: interface.c,v 1.145 2009/01/25 23:02:18 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -719,7 +719,7 @@ #endif /* SSH support works in 7.19.0+ using libssh2 */ -#ifdef LIBCURL_VERSION_NUM = 0x071300 +#if LIBCURL_VERSION_NUM = 0x071300 REGISTER_CURL_CONSTANT(CURLSSH_AUTH_NONE); REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PUBLICKEY); REGISTER_CURL_CONSTANT(CURLSSH_AUTH_PASSWORD); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
janiWed Dec 17 15:38:32 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - Fix leak http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.139r2=1.140diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.139 php-src/ext/curl/interface.c:1.140 --- php-src/ext/curl/interface.c:1.139 Wed Dec 17 14:13:25 2008 +++ php-src/ext/curl/interface.cWed Dec 17 15:38:32 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.139 2008/12/17 14:13:25 jani Exp $ */ +/* $Id: interface.c,v 1.140 2008/12/17 15:38:32 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1262,6 +1262,10 @@ ZEND_REGISTER_RESOURCE(return_value, ch, le_curl); ch-id = Z_LVAL_P(return_value); + + if (url_type == IS_UNICODE) { + efree(url.s); + } } /* }}} */ @@ -1933,8 +1937,8 @@ longoption = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z|l, zid, option) == FAILURE) { -RETURN_FALSE; -} + RETURN_FALSE; + } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c php_curl.h
janiWed Dec 17 14:13:25 2008 UTC Modified files: /php-src/ext/curl interface.c php_curl.h Log: - Fixed bug #45161 (Reusing a curl handle leaks memory) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.138r2=1.139diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.138 php-src/ext/curl/interface.c:1.139 --- php-src/ext/curl/interface.c:1.138 Tue Dec 9 17:17:49 2008 +++ php-src/ext/curl/interface.cWed Dec 17 14:13:25 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.138 2008/12/09 17:17:49 iliaa Exp $ */ +/* $Id: interface.c,v 1.139 2008/12/17 14:13:25 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -323,7 +323,6 @@ char str[1024]; size_t n = 0; - d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); @@ -331,7 +330,6 @@ sprintf(str, %d, d-age); php_info_print_table_row(2, Age, str); - #ifdef CURL_VERSION_IPV6 if (d-features CURL_VERSION_IPV6) { n = sprintf(str, %s, IPv6-enabled, ); @@ -1102,6 +1100,7 @@ /* }}} */ #endif +#if LIBCURL_VERSION_NUM 0x071101 /* {{{ curl_free_string */ static void curl_free_string(void **string) @@ -1109,6 +1108,7 @@ efree(*string); } /* }}} */ +#endif /* {{{ curl_free_post */ @@ -1184,7 +1184,9 @@ memset((*ch)-err, 0, sizeof((*ch)-err)); +#if LIBCURL_VERSION_NUM 0x071101 zend_llist_init((*ch)-to_free.str, sizeof(char *), (llist_dtor_func_t) curl_free_string, 0); +#endif zend_llist_init((*ch)-to_free.slist, sizeof(struct curl_slist), (llist_dtor_func_t) curl_free_slist, 0); zend_llist_init((*ch)-to_free.post, sizeof(struct HttpPost), (llist_dtor_func_t) curl_free_post, 0); } @@ -1196,17 +1198,17 @@ { php_curl*ch; CURL*cp; - zstrsrc = NULL_ZSTR; - int src_len = 0; - zend_uchar src_type = 0; + zstrurl = NULL_ZSTR; + int url_len = 0; + zend_uchar url_type = 0; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, src, src_len, src_type) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, url, url_len, url_type) == FAILURE) { RETURN_FALSE; } - if (src.v src_type == IS_UNICODE) { - src.s = zend_unicode_to_ascii((UChar*)src.u, src_len TSRMLS_CC); - if (!src.s) { + if (url.v url_type == IS_UNICODE) { + url.s = zend_unicode_to_ascii((UChar*)url.u, url_len TSRMLS_CC); + if (!url.s) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); RETURN_FALSE; } @@ -1246,12 +1248,16 @@ curl_easy_setopt(ch-cp, CURLOPT_NOSIGNAL, 1); #endif - if (src.v) { + if (url.v) { +#if LIBCURL_VERSION_NUM = 0x071100 + curl_easy_setopt(ch-cp, CURLOPT_URL, url.s); +#else char *urlcopy; - urlcopy = estrndup(src.s, src_len); + urlcopy = estrndup(url.s, url_len); curl_easy_setopt(ch-cp, CURLOPT_URL, urlcopy); zend_llist_add_element(ch-to_free.str, urlcopy); +#endif } ZEND_REGISTER_RESOURCE(return_value, ch, le_curl); @@ -1318,9 +1324,11 @@ curl_easy_setopt(dupch-cp, CURLOPT_INFILE,(void *) dupch); curl_easy_setopt(dupch-cp, CURLOPT_WRITEHEADER, (void *) dupch); +#if LIBCURL_VERSION_NUM 0x071101 zend_llist_copy(dupch-to_free.str, ch-to_free.str); /* Don't try to free copied strings, they're free'd when the original handle is destroyed */ dupch-to_free.str.dtor = NULL; +#endif zend_llist_copy(dupch-to_free.slist, ch-to_free.slist); zend_llist_copy(dupch-to_free.post, ch-to_free.post); @@ -1443,7 +1451,9 @@ case CURLOPT_SSLENGINE_DEFAULT: case CURLOPT_SSLCERTTYPE: case CURLOPT_ENCODING: { +#if LIBCURL_VERSION_NUM 0x071100 char *copystr = NULL; +#endif convert_to_string_ex(zvalue); @@ -1451,9 +1461,14 @@ PHP_CURL_CHECK_OPEN_BASEDIR(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue), 1); } +#if LIBCURL_VERSION_NUM = 0x071100 + /* Strings passed to libcurl as ’char *’ arguments, are copied by the library... NOTE: before 7.17.0 strings were not copied. */ + error = curl_easy_setopt(ch-cp, option, Z_STRVAL_PP(zvalue)); +#else copystr =
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Dec 9 17:17:49 2008 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed missing initialization of uses when copying a curl handle http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.137r2=1.138diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.137 php-src/ext/curl/interface.c:1.138 --- php-src/ext/curl/interface.c:1.137 Thu Dec 4 13:12:49 2008 +++ php-src/ext/curl/interface.cTue Dec 9 17:17:49 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.137 2008/12/04 13:12:49 mkoppanen Exp $ */ +/* $Id: interface.c,v 1.138 2008/12/09 17:17:49 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1283,6 +1283,7 @@ TSRMLS_SET_CTX(dupch-thread_ctx); dupch-cp = cp; + dupch-uses = 0; dupch-handlers-write-method = ch-handlers-write-method; dupch-handlers-write-type = ch-handlers-write-type; dupch-handlers-read-method = ch-handlers-read-method; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
mkoppanen Thu Dec 4 13:12:49 2008 UTC Modified files: /php-src/ext/curl interface.c Log: Fixes bug #46739 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.136r2=1.137diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.136 php-src/ext/curl/interface.c:1.137 --- php-src/ext/curl/interface.c:1.136 Sun Nov 30 17:35:56 2008 +++ php-src/ext/curl/interface.cThu Dec 4 13:12:49 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.136 2008/11/30 17:35:56 iliaa Exp $ */ +/* $Id: interface.c,v 1.137 2008/12/04 13:12:49 mkoppanen Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1929,6 +1929,11 @@ if (curl_easy_getinfo(ch-cp, CURLINFO_CONTENT_TYPE, s_code) == CURLE_OK) { if (s_code != NULL) { CAAS(content_type, s_code); + } else { + zval *retnull; + MAKE_STD_ZVAL(retnull); + ZVAL_NULL(retnull); + CAAZ(content_type, retnull); } } if (curl_easy_getinfo(ch-cp, CURLINFO_HTTP_CODE, l_code) == CURLE_OK) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Sun Nov 30 17:35:56 2008 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #46711 (cURL curl_setopt leaks memory in foreach loops). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.135r2=1.136diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.135 php-src/ext/curl/interface.c:1.136 --- php-src/ext/curl/interface.c:1.135 Thu Nov 27 19:02:44 2008 +++ php-src/ext/curl/interface.cSun Nov 30 17:35:56 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.135 2008/11/27 19:02:44 dmitry Exp $ */ +/* $Id: interface.c,v 1.136 2008/11/30 17:35:56 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1793,17 +1793,17 @@ Set an option for a cURL transfer */ PHP_FUNCTION(curl_setopt) { - zval *zid, *zvalue; + zval *zid, **zvalue; long options; php_curl*ch; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, zlz, zid, options, zvalue) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, zlZ, zid, options, zvalue) == FAILURE) { RETURN_FALSE; } ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); - if (!_php_curl_setopt(ch, options, zvalue, return_value TSRMLS_CC)) { + if (!_php_curl_setopt(ch, options, zvalue, return_value TSRMLS_CC)) { RETURN_TRUE; } else { RETURN_FALSE; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/dom xpath.c /ext/mysql php_mysql.c /ext/mysqli mysqli.c /ext/pdo pdo_dbh.c pdo_stmt.c /ext/pdo_sqlite sqlite_driver.c /ext/pgsql pgsql.c /ext/r
dmitry Thu Nov 27 19:02:46 2008 UTC Modified files: /ZendEngine2zend_API.c zend_API.h zend_closures.c zend_closures.h zend_exceptions.c zend_execute_API.c zend_interfaces.c zend_object_handlers.c zend_object_handlers.h zend_vm_def.h zend_vm_execute.h /ZendEngine2/tests bug46409.phpt /php-src/ext/curl interface.c /php-src/ext/domxpath.c /php-src/ext/mysql php_mysql.c /php-src/ext/mysqli mysqli.c /php-src/ext/pdopdo_dbh.c pdo_stmt.c /php-src/ext/pdo_sqlite sqlite_driver.c /php-src/ext/pgsql pgsql.c /php-src/ext/reflection php_reflection.c /php-src/ext/soap soap.c /php-src/ext/splphp_spl.c spl_directory.c /php-src/ext/sqlite sqlite.c /php-src/ext/sqlite3sqlite3.c /php-src/ext/xmlxml.c /php-src/ext/xslxsltprocessor.c /php-src/main/streams userspace.c Log: Fixed bug #46409 (__invoke method called outside of object context when using array_map) http://cvs.php.net/viewvc.cgi/ZendEngine2/zend_API.c?r1=1.492r2=1.493diff_format=u Index: ZendEngine2/zend_API.c diff -u ZendEngine2/zend_API.c:1.492 ZendEngine2/zend_API.c:1.493 --- ZendEngine2/zend_API.c:1.492Tue Nov 25 22:23:28 2008 +++ ZendEngine2/zend_API.c Thu Nov 27 19:02:43 2008 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: zend_API.c,v 1.492 2008/11/25 22:23:28 stas Exp $ */ +/* $Id: zend_API.c,v 1.493 2008/11/27 19:02:43 dmitry Exp $ */ #include zend.h #include zend_execute.h @@ -2713,8 +2713,8 @@ } else { fcc-called_scope = EG(called_scope); fcc-calling_scope = EG(scope); - if (!fcc-object_pp) { - fcc-object_pp = EG(This) ? EG(This) : NULL; + if (!fcc-object_ptr) { + fcc-object_ptr = EG(This); } ret = 1; } @@ -2727,8 +2727,8 @@ } else { fcc-called_scope = EG(called_scope); fcc-calling_scope = EG(scope)-parent; - if (!fcc-object_pp) { - fcc-object_pp = EG(This) ? EG(This) : NULL; + if (!fcc-object_ptr) { + fcc-object_ptr = EG(This); } ret = 1; } @@ -2739,8 +2739,8 @@ } else { fcc-called_scope = EG(called_scope); fcc-calling_scope = EG(called_scope); - if (!fcc-object_pp) { - fcc-object_pp = EG(This) ? EG(This) : NULL; + if (!fcc-object_ptr) { + fcc-object_ptr = EG(This); } ret = 1; } @@ -2748,13 +2748,13 @@ zend_class_entry *scope = EG(active_op_array) ? EG(active_op_array)-scope : NULL; fcc-calling_scope = *pce; - if (scope !fcc-object_pp EG(This) + if (scope !fcc-object_ptr EG(This) instanceof_function(Z_OBJCE_P(EG(This)), scope TSRMLS_CC) instanceof_function(scope, fcc-calling_scope TSRMLS_CC)) { - fcc-object_pp = EG(This); - fcc-called_scope = Z_OBJCE_PP(fcc-object_pp); + fcc-object_ptr = EG(This); + fcc-called_scope = Z_OBJCE_P(fcc-object_ptr); } else { - fcc-called_scope = fcc-object_pp ? Z_OBJCE_PP(fcc-object_pp) : fcc-calling_scope; + fcc-called_scope = fcc-object_ptr ? Z_OBJCE_P(fcc-object_ptr) : fcc-calling_scope; } ret = 1; } else { @@ -2896,8 +2896,8 @@ fcc-function_handler = priv_fbc; } } - } else if (fcc-object_pp) { - if (Z_OBJ_HT_PP(fcc-object_pp)-get_method) { + } else if (fcc-object_ptr) { + if (Z_OBJ_HT_P(fcc-object_ptr)-get_method) { zstr method = mname; int method_len = mlen; @@ -2906,7 +2906,7 @@ } else if (!UG(unicode) Z_TYPE_P(callable) == IS_UNICODE) { zend_unicode_to_string(ZEND_U_CONVERTER(UG(runtime_encoding_conv)), method.s, method_len, mname.u, mlen TSRMLS_CC); } - fcc-function_handler = Z_OBJ_HT_PP(fcc-object_pp)-get_method(fcc-object_pp, method, method_len TSRMLS_CC); + fcc-function_handler =
[PHP-CVS] cvs: php-src /ext/curl interface.c
felipe Sat Nov 22 14:41:21 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - Fixed segfault [only in this branch, because add_next_* are macro] http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.132r2=1.133diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.132 php-src/ext/curl/interface.c:1.133 --- php-src/ext/curl/interface.c:1.132 Mon Nov 17 11:26:19 2008 +++ php-src/ext/curl/interface.cSat Nov 22 14:41:21 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.132 2008/11/17 11:26:19 felipe Exp $ */ +/* $Id: interface.c,v 1.133 2008/11/22 14:41:21 felipe Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1161,7 +1161,8 @@ array_init(protocol_list); while (*p != NULL) { - add_next_index_ascii_string(protocol_list, *p++, 1); + add_next_index_ascii_string(protocol_list, *p, 1); + *p++; } CAAZ(protocols, protocol_list); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Hello Pierre, Tuesday, November 11, 2008, 12:01:38 PM, you wrote: hi, On Tue, Nov 11, 2008 at 11:51 AM, Marcus Boerger [EMAIL PROTECTED] wrote: This is extremely bad code. We have tons of better APIs to do what you want. And besides wouldn't it be better to list all those entries with enabled/disabled as table rows anyway? I do not think adding a 30 lines table is better. About being an extremely bad code, in which way? What will you use then? Each of these features or protocols are present or not. The maximum size is known and the buffer is large enough to contain them. (spprintf, snprintf, strcat, smart-strings,...) (the problem is that adding something will mostlikely result in crashes as ppl will add the necessary three lines and be happy because something else is disabled for them. Then someone having all enabled gets crashes because they forgot to increase the size of the string. The problem is you do not know before hand which features are enabled. As I agree that dynamic allocation for the protocols string would be better, there is no need to use it now or in the mid term. The size of the tmp buffer is large enough to support much more protocols than curl or features can ever have. One thing I forgot to add is to check if n buffer size, it will solve the problem you are refering to. In case n buffersize you already crash. And as said you are creating a maintenance issue here. And besides your own one, people will copy this code and fail calculating the buffer correct. For one, ppl often do not know that there is a limited buffer or that a limited buffer could fail. And even if you know how to do it correct. Someone else taking on won't. p.s.: No one will ever need more that 640K RAM :-) Best regards, Marcus -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
janiTue Nov 11 11:56:39 2008 UTC Modified files: /php-src/ext/curl interface.c Log: fix build http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.129r2=1.130diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.129 php-src/ext/curl/interface.c:1.130 --- php-src/ext/curl/interface.c:1.129 Mon Nov 10 22:58:44 2008 +++ php-src/ext/curl/interface.cTue Nov 11 11:56:39 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.129 2008/11/10 22:58:44 pajoye Exp $ */ +/* $Id: interface.c,v 1.130 2008/11/11 11:56:39 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -336,94 +336,9 @@ */ PHP_MINFO_FUNCTION(curl) { - curl_version_info_data *d; - char **p; - char str[1024]; - size_t n = 0; - - - d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); - php_info_print_table_row(2, cURL Information, d-version); - sprintf(str, %d, d-age); - php_info_print_table_row(2, Age, str); - - - if (d-features CURL_VERSION_IPV6) { - n = sprintf(str, %s, IPv6-enabled, ); - } - if (d-features CURL_VERSION_KERBEROS4) { - n += sprintf(str + n, %s, kerberos auth is supported, ); - } - if (d-features CURL_VERSION_SSL) { - n += sprintf(str + n, %s, SSL options are present, ); - } - if (d-features CURL_VERSION_LIBZ) { - n += sprintf(str + n, %s, libz features are present, ); - } - if (d-features CURL_VERSION_NTLM) { - n += sprintf(str + n, %s, NTLM auth is supported, ); - } - if (d-features CURL_VERSION_GSSNEGOTIATE) { - n += sprintf(str + n, %s, Negotiate auth support, ); - } - if (d-features CURL_VERSION_DEBUG) { - n += sprintf(str + n, %s, built with debug capabilities, ); - } - if (d-features CURL_VERSION_ASYNCHDNS) { - n += sprintf(str + n, %s, asynchronous dns resolves, ); - } - if (d-features CURL_VERSION_SPNEGO) { - n += sprintf(str + n, %s, SPNEGO auth, ); - } - if (d-features CURL_VERSION_LARGEFILE) { - n += sprintf(str + n, %s, supports files bigger than 2GB, ); - } - if (d-features CURL_VERSION_IDN) { - n += sprintf(str + n, %s, International Domain Names support, ); - } - if (d-features CURL_VERSION_SSPI) { - n += sprintf(str + n, %s, SSPI is supported, ); - } - if (d-features CURL_VERSION_CONV) { - n += sprintf(str + n, %s, character conversions are supported, ); - } - - if (n 3) { - str[n - 2] = '\0'; - } - php_info_print_table_row(2, Features, str); - n = 0; - p = (char **) d-protocols; - while (*p != NULL) { - n += sprintf(str + n, %s%s, *p, *(p + 1) != NULL ? , : ); - p++; - } - php_info_print_table_row(2, Protocols, str); - - php_info_print_table_row(2, Host, d-host); - - if (d-ssl_version) { - php_info_print_table_row(2, SSL Version, d-ssl_version); - } - - if (d-libz_version) { - php_info_print_table_row(2, ZLib Version, d-libz_version); - } - - if (d-libz_version) { - php_info_print_table_row(2, libIDN Version, d-libidn); - } - - if (d-iconv_ver_num) { - php_info_print_table_row(2, IconV Version, d-iconv_ver_num); - } - - if (d-libssh_version) { - php_info_print_table_row(2, libSSH Version, d-libssh_version); - } - + php_info_print_table_row(2, cURL Information, curl_version()); php_info_print_table_end(); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
hi, On Tue, Nov 11, 2008 at 11:51 AM, Marcus Boerger [EMAIL PROTECTED] wrote: This is extremely bad code. We have tons of better APIs to do what you want. And besides wouldn't it be better to list all those entries with enabled/disabled as table rows anyway? I do not think adding a 30 lines table is better. About being an extremely bad code, in which way? What will you use then? Each of these features or protocols are present or not. The maximum size is known and the buffer is large enough to contain them. (spprintf, snprintf, strcat, smart-strings,...) (the problem is that adding something will mostlikely result in crashes as ppl will add the necessary three lines and be happy because something else is disabled for them. Then someone having all enabled gets crashes because they forgot to increase the size of the string. The problem is you do not know before hand which features are enabled. As I agree that dynamic allocation for the protocols string would be better, there is no need to use it now or in the mid term. The size of the tmp buffer is large enough to support much more protocols than curl or features can ever have. One thing I forgot to add is to check if n buffer size, it will solve the problem you are refering to. -- Pierre http://blog.thepimp.net | http://www.libgd.org -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Tue Nov 11 12:25:37 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - fix build with all curl versions, even very old (thx Felipe for having found all versions info) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.130r2=1.131diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.130 php-src/ext/curl/interface.c:1.131 --- php-src/ext/curl/interface.c:1.130 Tue Nov 11 11:56:39 2008 +++ php-src/ext/curl/interface.cTue Nov 11 12:25:37 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.130 2008/11/11 11:56:39 jani Exp $ */ +/* $Id: interface.c,v 1.131 2008/11/11 12:25:37 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -336,9 +336,131 @@ */ PHP_MINFO_FUNCTION(curl) { + curl_version_info_data *d; + char **p; + char str[1024]; + size_t n = 0; + + + d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); - php_info_print_table_row(2, cURL Information, curl_version()); + php_info_print_table_row(2, cURL Information, d-version); + sprintf(str, %d, d-age); + php_info_print_table_row(2, Age, str); + + +#ifdef CURL_VERSION_IPV6 + if (d-features CURL_VERSION_IPV6) { + n = sprintf(str, %s, IPv6-enabled, ); + } +#endif + +#ifdef CURL_VERSION_KERBEROS4 + if (d-features CURL_VERSION_KERBEROS4) { + n += sprintf(str + n, %s, kerberos auth is supported, ); + } +#endif + +#ifdef CURL_VERSION_SSL + if (d-features CURL_VERSION_SSL) { + n += sprintf(str + n, %s, SSL options are present, ); + } +#endif + +#ifdef CURL_VERSION_LIBZ + if (d-features CURL_VERSION_LIBZ) { + n += sprintf(str + n, %s, libz features are present, ); + } +#endif + +#if LIBCURL_VERSION_NUM 0x070a05 /* 7.10.6 */ + if (d-features CURL_VERSION_NTLM) { + n += sprintf(str + n, %s, NTLM auth is supported, ); + } + if (d-features CURL_VERSION_GSSNEGOTIATE) { + n += sprintf(str + n, %s, Negotiate auth support, ); + } + if (d-features CURL_VERSION_DEBUG) { + n += sprintf(str + n, %s, built with debug capabilities, ); + } +#endif + +#if LIBCURL_VERSION_NUM 0x070a06 /* 7.10.7 */ + if (d-features CURL_VERSION_ASYNCHDNS) { + n += sprintf(str + n, %s, asynchronous dns resolves, ); + } +#endif +#if LIBCURL_VERSION_NUM 0x070a07 /* 7.10.8 */ + if (d-features CURL_VERSION_SPNEGO) { + n += sprintf(str + n, %s, SPNEGO auth, ); + } +#endif +#if LIBCURL_VERSION_NUM 0x070a09 /* 7.10.1 */ + if (d-features CURL_VERSION_LARGEFILE) { + n += sprintf(str + n, %s, supports files bigger than 2GB, ); + } +#endif +#if LIBCURL_VERSION_NUM 0x070b02 /* 7.12.0 */ + if (d-features CURL_VERSION_IDN) { + n += sprintf(str + n, %s, International Domain Names support, ); + } +#endif +#if LIBCURL_VERSION_NUM 0x070d01 /* 7.13.2 */ + if (d-features CURL_VERSION_SSPI) { + n += sprintf(str + n, %s, SSPI is supported, ); + } +#endif +#if LIBCURL_VERSION_NUM 0x070f03 /* 7.15.4 */ + if (d-features CURL_VERSION_CONV) { + n += sprintf(str + n, %s, character conversions are supported, ); + } +#endif + + if (n 3) { + str[n - 2] = '\0'; + } + php_info_print_table_row(2, Features, str); + n = 0; + p = (char **) d-protocols; + while (*p != NULL) { + n += sprintf(str + n, %s%s, *p, *(p + 1) != NULL ? , : ); + p++; + } + php_info_print_table_row(2, Protocols, str); + + php_info_print_table_row(2, Host, d-host); + + if (d-ssl_version) { + php_info_print_table_row(2, SSL Version, d-ssl_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, ZLib Version, d-libz_version); + } + +#if defined(CURLVERSION_SECOND) CURLVERSION_NOW = CURLVERSION_SECOND + if (d-ares) { + php_info_print_table_row(2, ZLib Version, d-ares); + } +#endif + +#if defined(CURLVERSION_THIRD) CURLVERSION_NOW = CURLVERSION_THIRD + if (d-libidn) { + php_info_print_table_row(2, libIDN Version, d-libidn); + } +#endif + +#if defined(CURLVERSION_FOURTH) CURLVERSION_NOW = CURLVERSION_FOURTH + + if (d-iconv_ver_num) { + php_info_print_table_row(2, IconV Version, d-iconv_ver_num); + } + + if (d-libssh_version) { + php_info_print_table_row(2, libSSH Version,
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Hello Pierre-Alain, Monday, November 10, 2008, 11:58:44 PM, you wrote: pajoye Mon Nov 10 22:58:44 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - make the curl phpinfo more verbose http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.128r2=1.129diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.128 php-src/ext/curl/interface.c:1.129 --- php-src/ext/curl/interface.c:1.128 Sun Nov 2 21:10:07 2008 +++ php-src/ext/curl/interface.cMon Nov 10 22:58:44 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.128 2008/11/02 21:10:07 felipe Exp $ */ +/* $Id: interface.c,v 1.129 2008/11/10 22:58:44 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -336,9 +336,94 @@ */ PHP_MINFO_FUNCTION(curl) { + curl_version_info_data *d; + char **p; + char str[1024]; + size_t n = 0; + + + d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); - php_info_print_table_row(2, cURL Information, curl_version()); + php_info_print_table_row(2, cURL Information, d-version); + sprintf(str, %d, d-age); + php_info_print_table_row(2, Age, str); + + + if (d-features CURL_VERSION_IPV6) { + n = sprintf(str, %s, IPv6-enabled, ); + } + if (d-features CURL_VERSION_KERBEROS4) { + n += sprintf(str + n, %s, kerberos auth is supported, ); + } + if (d-features CURL_VERSION_SSL) { + n += sprintf(str + n, %s, SSL options are present, ); + } + if (d-features CURL_VERSION_LIBZ) { + n += sprintf(str + n, %s, libz features are present, ); + } + if (d-features CURL_VERSION_NTLM) { + n += sprintf(str + n, %s, NTLM auth is supported, ); + } + if (d-features CURL_VERSION_GSSNEGOTIATE) { + n += sprintf(str + n, %s, Negotiate auth support, ); + } + if (d-features CURL_VERSION_DEBUG) { + n += sprintf(str + n, %s, built with debug capabilities, ); + } + if (d-features CURL_VERSION_ASYNCHDNS) { + n += sprintf(str + n, %s, asynchronous dns resolves, ); + } + if (d-features CURL_VERSION_SPNEGO) { + n += sprintf(str + n, %s, SPNEGO auth, ); + } + if (d-features CURL_VERSION_LARGEFILE) { + n += sprintf(str + n, %s, supports files bigger than 2GB, ); + } + if (d-features CURL_VERSION_IDN) { + n += sprintf(str + n, %s, International Domain Names support, ); + } + if (d-features CURL_VERSION_SSPI) { + n += sprintf(str + n, %s, SSPI is supported, ); + } + if (d-features CURL_VERSION_CONV) { + n += sprintf(str + n, %s, character conversions are supported, ); + } This is extremely bad code. We have tons of better APIs to do what you want. And besides wouldn't it be better to list all those entries with enabled/disabled as table rows anyway? (spprintf, snprintf, strcat, smart-strings,...) (the problem is that adding something will mostlikely result in crashes as ppl will add the necessary three lines and be happy because something else is disabled for them. Then someone having all enabled gets crashes because they forgot to increase the size of the string. + + if (n 3) { + str[n - 2] = '\0'; + } + php_info_print_table_row(2, Features, str); + n = 0; + p = (char **) d-protocols; + while (*p != NULL) { + n += sprintf(str + n, %s%s, *p, *(p + 1) != NULL ? , : ); + p++; + } + php_info_print_table_row(2, Protocols, str); + + php_info_print_table_row(2, Host, d-host); + + if (d-ssl_version) { + php_info_print_table_row(2, SSL Version, d-ssl_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, ZLib Version, d-libz_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, libIDN Version, d-libidn); + } + + if (d-iconv_ver_num) { + php_info_print_table_row(2, IconV Version, d-iconv_ver_num); + } + + if (d-libssh_version) { + php_info_print_table_row(2, libSSH Version, d-libssh_version); + } + php_info_print_table_end(); } /* }}} */ Best regards, Marcus -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pajoye Mon Nov 10 22:58:44 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - make the curl phpinfo more verbose http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.128r2=1.129diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.128 php-src/ext/curl/interface.c:1.129 --- php-src/ext/curl/interface.c:1.128 Sun Nov 2 21:10:07 2008 +++ php-src/ext/curl/interface.cMon Nov 10 22:58:44 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.128 2008/11/02 21:10:07 felipe Exp $ */ +/* $Id: interface.c,v 1.129 2008/11/10 22:58:44 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -336,9 +336,94 @@ */ PHP_MINFO_FUNCTION(curl) { + curl_version_info_data *d; + char **p; + char str[1024]; + size_t n = 0; + + + d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); - php_info_print_table_row(2, cURL Information, curl_version()); + php_info_print_table_row(2, cURL Information, d-version); + sprintf(str, %d, d-age); + php_info_print_table_row(2, Age, str); + + + if (d-features CURL_VERSION_IPV6) { + n = sprintf(str, %s, IPv6-enabled, ); + } + if (d-features CURL_VERSION_KERBEROS4) { + n += sprintf(str + n, %s, kerberos auth is supported, ); + } + if (d-features CURL_VERSION_SSL) { + n += sprintf(str + n, %s, SSL options are present, ); + } + if (d-features CURL_VERSION_LIBZ) { + n += sprintf(str + n, %s, libz features are present, ); + } + if (d-features CURL_VERSION_NTLM) { + n += sprintf(str + n, %s, NTLM auth is supported, ); + } + if (d-features CURL_VERSION_GSSNEGOTIATE) { + n += sprintf(str + n, %s, Negotiate auth support, ); + } + if (d-features CURL_VERSION_DEBUG) { + n += sprintf(str + n, %s, built with debug capabilities, ); + } + if (d-features CURL_VERSION_ASYNCHDNS) { + n += sprintf(str + n, %s, asynchronous dns resolves, ); + } + if (d-features CURL_VERSION_SPNEGO) { + n += sprintf(str + n, %s, SPNEGO auth, ); + } + if (d-features CURL_VERSION_LARGEFILE) { + n += sprintf(str + n, %s, supports files bigger than 2GB, ); + } + if (d-features CURL_VERSION_IDN) { + n += sprintf(str + n, %s, International Domain Names support, ); + } + if (d-features CURL_VERSION_SSPI) { + n += sprintf(str + n, %s, SSPI is supported, ); + } + if (d-features CURL_VERSION_CONV) { + n += sprintf(str + n, %s, character conversions are supported, ); + } + + if (n 3) { + str[n - 2] = '\0'; + } + php_info_print_table_row(2, Features, str); + n = 0; + p = (char **) d-protocols; + while (*p != NULL) { + n += sprintf(str + n, %s%s, *p, *(p + 1) != NULL ? , : ); + p++; + } + php_info_print_table_row(2, Protocols, str); + + php_info_print_table_row(2, Host, d-host); + + if (d-ssl_version) { + php_info_print_table_row(2, SSL Version, d-ssl_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, ZLib Version, d-libz_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, libIDN Version, d-libidn); + } + + if (d-iconv_ver_num) { + php_info_print_table_row(2, IconV Version, d-iconv_ver_num); + } + + if (d-libssh_version) { + php_info_print_table_row(2, libSSH Version, d-libssh_version); + } + php_info_print_table_end(); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
2008/11/10 Pierre-Alain Joye [EMAIL PROTECTED]: pajoye Mon Nov 10 22:58:44 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - make the curl phpinfo more verbose http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.128r2=1.129diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.128 php-src/ext/curl/interface.c:1.129 --- php-src/ext/curl/interface.c:1.128 Sun Nov 2 21:10:07 2008 +++ php-src/ext/curl/interface.cMon Nov 10 22:58:44 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.128 2008/11/02 21:10:07 felipe Exp $ */ +/* $Id: interface.c,v 1.129 2008/11/10 22:58:44 pajoye Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -336,9 +336,94 @@ */ PHP_MINFO_FUNCTION(curl) { + curl_version_info_data *d; + char **p; + char str[1024]; + size_t n = 0; + + + d = curl_version_info(CURLVERSION_NOW); php_info_print_table_start(); php_info_print_table_row(2, cURL support,enabled); - php_info_print_table_row(2, cURL Information, curl_version()); + php_info_print_table_row(2, cURL Information, d-version); + sprintf(str, %d, d-age); + php_info_print_table_row(2, Age, str); + + + if (d-features CURL_VERSION_IPV6) { + n = sprintf(str, %s, IPv6-enabled, ); + } + if (d-features CURL_VERSION_KERBEROS4) { + n += sprintf(str + n, %s, kerberos auth is supported, ); + } + if (d-features CURL_VERSION_SSL) { + n += sprintf(str + n, %s, SSL options are present, ); + } + if (d-features CURL_VERSION_LIBZ) { + n += sprintf(str + n, %s, libz features are present, ); + } + if (d-features CURL_VERSION_NTLM) { + n += sprintf(str + n, %s, NTLM auth is supported, ); + } + if (d-features CURL_VERSION_GSSNEGOTIATE) { + n += sprintf(str + n, %s, Negotiate auth support, ); + } + if (d-features CURL_VERSION_DEBUG) { + n += sprintf(str + n, %s, built with debug capabilities, ); + } + if (d-features CURL_VERSION_ASYNCHDNS) { + n += sprintf(str + n, %s, asynchronous dns resolves, ); + } + if (d-features CURL_VERSION_SPNEGO) { + n += sprintf(str + n, %s, SPNEGO auth, ); + } + if (d-features CURL_VERSION_LARGEFILE) { + n += sprintf(str + n, %s, supports files bigger than 2GB, ); + } + if (d-features CURL_VERSION_IDN) { + n += sprintf(str + n, %s, International Domain Names support, ); + } + if (d-features CURL_VERSION_SSPI) { + n += sprintf(str + n, %s, SSPI is supported, ); + } + if (d-features CURL_VERSION_CONV) { + n += sprintf(str + n, %s, character conversions are supported, ); + } + + if (n 3) { + str[n - 2] = '\0'; + } + php_info_print_table_row(2, Features, str); + n = 0; + p = (char **) d-protocols; + while (*p != NULL) { + n += sprintf(str + n, %s%s, *p, *(p + 1) != NULL ? , : ); + p++; + } + php_info_print_table_row(2, Protocols, str); + + php_info_print_table_row(2, Host, d-host); + + if (d-ssl_version) { + php_info_print_table_row(2, SSL Version, d-ssl_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, ZLib Version, d-libz_version); + } + + if (d-libz_version) { + php_info_print_table_row(2, libIDN Version, d-libidn); + } + + if (d-iconv_ver_num) { + php_info_print_table_row(2, IconV Version, d-iconv_ver_num); + } + + if (d-libssh_version) { + php_info_print_table_row(2, libSSH Version, d-libssh_version); + } + php_info_print_table_end(); } /* }}} */ I don't remember which versions that ext/curl minimum supports, but the CURL_VERSION_CONV was added in 7.15.4 so unless thats below the minimum version required 7.15.4 is required. Also adding the CURL_VERSION_* constants to userland so they can use the bitmask exposed by curl_version()['features'] to check for such features might be a good ideal :) -- Kalle Sommer Nielsen -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/date php_date.c /ext/dom domimplementation.c /ext/exif exif.c /ext/gd gd.c /ext/openssl openssl.c /ext/simplexml simplexml.c /ext/soap soap.c
lbarnaudTue Oct 21 23:36:18 2008 UTC Modified files: /php-src/ext/curl interface.c /php-src/ext/date php_date.c /php-src/ext/domdomimplementation.c /php-src/ext/exif exif.c /php-src/ext/gd gd.c /php-src/ext/opensslopenssl.c /php-src/ext/simplexml simplexml.c /php-src/ext/soap soap.c /php-src/ext/socketssockets.c /php-src/ext/zipphp_zip.c Log: initialize optional vars http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.125r2=1.126diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.125 php-src/ext/curl/interface.c:1.126 --- php-src/ext/curl/interface.c:1.125 Tue Jul 29 10:42:15 2008 +++ php-src/ext/curl/interface.cTue Oct 21 23:36:16 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.125 2008/07/29 10:42:15 tony2001 Exp $ */ +/* $Id: interface.c,v 1.126 2008/10/21 23:36:16 lbarnaud Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1092,8 +1092,8 @@ php_curl*ch; CURL*cp; zstrsrc = NULL_ZSTR; - int src_len; - zend_uchar src_type; + int src_len = 0; + zend_uchar src_type = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, src, src_len, src_type) == FAILURE) { RETURN_FALSE; @@ -1783,7 +1783,7 @@ { zval*zid; php_curl*ch; - longoption; + longoption = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z|l, zid, option) == FAILURE) { RETURN_FALSE; http://cvs.php.net/viewvc.cgi/php-src/ext/date/php_date.c?r1=1.206r2=1.207diff_format=u Index: php-src/ext/date/php_date.c diff -u php-src/ext/date/php_date.c:1.206 php-src/ext/date/php_date.c:1.207 --- php-src/ext/date/php_date.c:1.206 Sat Aug 9 21:58:40 2008 +++ php-src/ext/date/php_date.c Tue Oct 21 23:36:17 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: php_date.c,v 1.206 2008/08/09 21:58:40 tony2001 Exp $ */ +/* $Id: php_date.c,v 1.207 2008/10/21 23:36:17 lbarnaud Exp $ */ #include php.h #include php_streams.h @@ -1511,7 +1511,7 @@ { char *format; int format_len; - longts; + longts = 0; int ret; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, s|l, format, format_len, ts) == FAILURE) { @@ -1574,7 +1574,7 @@ char *times, *initial_ts; int time_len, error1, error2; struct timelib_error_container *error; - long preset_ts, ts; + long preset_ts = 0, ts; timelib_time *t, *now; timelib_tzinfo *tzi; @@ -1631,7 +1631,7 @@ /* {{{ php_mktime - (gm)mktime helper */ PHPAPI void php_mktime(INTERNAL_FUNCTION_PARAMETERS, int gmt) { - long hou, min, sec, mon, day, yea, dst = -1; + long hou = 0, min = 0, sec = 0, mon = 0, day = 0, yea = 0, dst = -1; timelib_time *now; timelib_tzinfo *tzi = NULL; long ts, adjust_seconds = 0; @@ -1760,7 +1760,7 @@ { char*format, *buf; int format_len; - long timestamp; + long timestamp = 0; struct tmta; int max_reallocs = 5; size_t buf_len = 64, real_len; @@ -3962,7 +3962,7 @@ const timelib_tzdb_index_entry *table; int i, item_count; longwhat = PHP_DATE_TIMEZONE_GROUP_ALL; - char *option; + char *option = NULL; int option_len = 0; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |ls, what, option, option_len) == FAILURE) { @@ -4068,10 +4068,10 @@ */ static void php_do_date_sunrise_sunset(INTERNAL_FUNCTION_PARAMETERS, int calc_sunset) { - double latitude, longitude, zenith, gmt_offset = 0, altitude; + double latitude = 0.0, longitude = 0.0, zenith = 0.0, gmt_offset = 0, altitude; double h_rise, h_set, N; timelib_sll rise, set, transit; - long time, retformat; + long time, retformat = 0; int rs; timelib_time *t; timelib_tzinfo *tzi; http://cvs.php.net/viewvc.cgi/php-src/ext/dom/domimplementation.c?r1=1.27r2=1.28diff_format=u Index: php-src/ext/dom/domimplementation.c diff -u php-src/ext/dom/domimplementation.c:1.27 php-src/ext/dom/domimplementation.c:1.28 --- php-src/ext/dom/domimplementation.c:1.27Thu Aug 14 08:38:37 2008 +++ php-src/ext/dom/domimplementation.c Tue Oct 21 23:36:17 2008 @@ -17,7 +17,7 @@
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Tue Jul 29 10:42:15 2008 UTC Modified files: /php-src/ext/curl interface.c Log: fix 5 years old copy/paste error (patch by Mikko) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.124r2=1.125diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.124 php-src/ext/curl/interface.c:1.125 --- php-src/ext/curl/interface.c:1.124 Sat Jul 12 21:20:10 2008 +++ php-src/ext/curl/interface.cTue Jul 29 10:42:15 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.124 2008/07/12 21:20:10 felipe Exp $ */ +/* $Id: interface.c,v 1.125 2008/07/29 10:42:15 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1427,7 +1427,7 @@ case CURLOPT_READFUNCTION: if (ch-handlers-read-func_name) { zval_ptr_dtor(ch-handlers-read-func_name); - ch-handlers-write-fci_cache = empty_fcall_info_cache; + ch-handlers-read-fci_cache = empty_fcall_info_cache; } zval_add_ref(zvalue); ch-handlers-read-func_name = *zvalue; @@ -1436,7 +1436,7 @@ case CURLOPT_HEADERFUNCTION: if (ch-handlers-write_header-func_name) { zval_ptr_dtor(ch-handlers-write_header-func_name); - ch-handlers-write-fci_cache = empty_fcall_info_cache; + ch-handlers-write_header-fci_cache = empty_fcall_info_cache; } zval_add_ref(zvalue); ch-handlers-write_header-func_name = *zvalue; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
felipe Sat Jul 12 21:20:11 2008 UTC Modified files: /php-src/ext/curl interface.c Log: - MFB: Fixed bug #45220 (curl_read callback returns -1 when needs to return size_t (unsigned)) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.123r2=1.124diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.123 php-src/ext/curl/interface.c:1.124 --- php-src/ext/curl/interface.c:1.123 Tue Jul 1 08:10:47 2008 +++ php-src/ext/curl/interface.cSat Jul 12 21:20:10 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.123 2008/07/01 08:10:47 tony2001 Exp $ */ +/* $Id: interface.c,v 1.124 2008/07/12 21:20:10 felipe Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -785,7 +785,7 @@ { php_curl *ch = (php_curl *) ctx; php_curl_read *t = ch-handlers-read; - int length = -1; + int length = 0; switch (t-method) { case PHP_CURL_DIRECT: @@ -832,7 +832,9 @@ ch-in_callback = 0; if (error == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Cannot call the CURLOPT_READFUNCTION); - length = -1; +#if LIBCURL_VERSION_NUM = 0x070c01 /* 7.12.1 */ + length = CURL_READFUNC_ABORT; +#endif } else if (retval_ptr) { if (Z_TYPE_P(retval_ptr) == IS_STRING) { length = MIN(size * nmemb, Z_STRLEN_P(retval_ptr)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Tue Jul 1 08:10:47 2008 UTC Modified files: /php-src/ext/curl interface.c Log: fix curl_init() s in HEAD accepts zstr http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.122r2=1.123diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.122 php-src/ext/curl/interface.c:1.123 --- php-src/ext/curl/interface.c:1.122 Mon Dec 31 07:12:08 2007 +++ php-src/ext/curl/interface.cTue Jul 1 08:10:47 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.122 2007/12/31 07:12:08 sebastian Exp $ */ +/* $Id: interface.c,v 1.123 2008/07/01 08:10:47 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1089,17 +1089,17 @@ { php_curl*ch; CURL*cp; - char*src = NULL; + zstrsrc = NULL_ZSTR; int src_len; zend_uchar src_type; -if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, src, src_len, src_type) == FAILURE) { -RETURN_FALSE; -} + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, src, src_len, src_type) == FAILURE) { + RETURN_FALSE; + } - if (src src_type == IS_UNICODE) { - src = zend_unicode_to_ascii((UChar*)src, src_len TSRMLS_CC); - if (!src) { + if (src.v src_type == IS_UNICODE) { + src.s = zend_unicode_to_ascii((UChar*)src.u, src_len TSRMLS_CC); + if (!src.s) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); RETURN_FALSE; } @@ -1139,10 +1139,10 @@ curl_easy_setopt(ch-cp, CURLOPT_NOSIGNAL, 1); #endif - if (src) { + if (src.v) { char *urlcopy; - urlcopy = estrndup(src, src_len); + urlcopy = estrndup(src.s, src_len); curl_easy_setopt(ch-cp, CURLOPT_URL, urlcopy); zend_llist_add_element(ch-to_free.str, urlcopy); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Dec 18 13:48:19 2007 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #43620 (Workaround for a bug inside libcurl 7.16.2 that can result in a crash) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.120r2=1.121diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.120 php-src/ext/curl/interface.c:1.121 --- php-src/ext/curl/interface.c:1.120 Tue Dec 4 08:55:58 2007 +++ php-src/ext/curl/interface.cTue Dec 18 13:48:19 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.120 2007/12/04 08:55:58 tony2001 Exp $ */ +/* $Id: interface.c,v 1.121 2007/12/18 13:48:19 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -153,7 +153,7 @@ #define CAAL(s, v) add_assoc_long_ex(return_value, s, sizeof(s), (long) v); #define CAAD(s, v) add_assoc_double_ex(return_value, s, sizeof(s), (double) v); -#define CAAS(s, v) add_assoc_ascii_string_ex(return_value, s, sizeof(s), (char *) v, 1); +#define CAAS(s, v) add_assoc_ascii_string_ex(return_value, s, sizeof(s), (char *) (v ? v : ), 1); #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #if defined(PHP_WIN32) || defined(__GNUC__) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c multi.c
tony2001Tue Dec 4 08:55:59 2007 UTC Modified files: /php-src/ext/curl interface.c multi.c Log: fix folding http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.119r2=1.120diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.119 php-src/ext/curl/interface.c:1.120 --- php-src/ext/curl/interface.c:1.119 Fri Nov 16 14:18:59 2007 +++ php-src/ext/curl/interface.cTue Dec 4 08:55:58 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.119 2007/11/16 14:18:59 jani Exp $ */ +/* $Id: interface.c,v 1.120 2007/12/04 08:55:58 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -930,7 +930,7 @@ } /* }}} */ -static int curl_debug(CURL *cp, curl_infotype type, char *buf, size_t buf_len, void *ctx) +static int curl_debug(CURL *cp, curl_infotype type, char *buf, size_t buf_len, void *ctx) /* {{{ */ { php_curl*ch = (php_curl *) ctx; @@ -946,6 +946,7 @@ return 0; } +/* }}} */ #if CURLOPT_PASSWDFUNCTION != 0 /* {{{ curl_passwd @@ -1220,7 +1221,7 @@ } /* }}} */ -static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue, zval *return_value TSRMLS_DC) +static int _php_curl_setopt(php_curl *ch, long option, zval **zvalue, zval *return_value TSRMLS_DC) /* {{{ */ { CURLcode error=CURLE_OK; @@ -1659,6 +1660,7 @@ return 0; } } +/* }}} */ /* {{{ proto bool curl_setopt(resource ch, int option, mixed value) U Set an option for a cURL transfer */ http://cvs.php.net/viewvc.cgi/php-src/ext/curl/multi.c?r1=1.30r2=1.31diff_format=u Index: php-src/ext/curl/multi.c diff -u php-src/ext/curl/multi.c:1.30 php-src/ext/curl/multi.c:1.31 --- php-src/ext/curl/multi.c:1.30 Mon Jan 1 09:29:22 2007 +++ php-src/ext/curl/multi.cTue Dec 4 08:55:58 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: multi.c,v 1.30 2007/01/01 09:29:22 sebastian Exp $ */ +/* $Id: multi.c,v 1.31 2007/12/04 08:55:58 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -122,13 +122,13 @@ /* }}} */ /* Used internally as comparison routine passed to zend_list_del_element */ -static int curl_compare_resources( zval *z1, zval **z2 ) +static int curl_compare_resources( zval *z1, zval **z2 ) /* {{{ */ { return (Z_TYPE_P( z1 ) == Z_TYPE_PP( z2 ) Z_TYPE_P( z1 ) == IS_RESOURCE Z_LVAL_P( z1 ) == Z_LVAL_PP( z2 ) ); } - +/* }}} */ /* {{{ proto int curl_multi_remove_handle(resource mh, resource ch) U Remove a multi handle from a set of cURL handles */ @@ -155,7 +155,7 @@ } /* }}} */ -static void _make_timeval_struct(struct timeval *to, double timeout) +static void _make_timeval_struct(struct timeval *to, double timeout) /* {{{ */ { unsigned long conv; @@ -163,6 +163,7 @@ to-tv_sec = conv / 100; to-tv_usec = conv % 100; } +/* }}} */ /* {{{ proto int curl_multi_select(resource mh[, double timeout]) U Get all the sockets associated with the cURL extension, which can then be selected */ @@ -319,7 +320,7 @@ } /* }}} */ -void _php_curl_multi_close(zend_rsrc_list_entry *rsrc TSRMLS_DC) +void _php_curl_multi_close(zend_rsrc_list_entry *rsrc TSRMLS_DC) /* {{{ */ { php_curlm *mh = (php_curlm *) rsrc-ptr; if (mh) { @@ -329,6 +330,7 @@ rsrc-ptr = NULL; } } +/* }}} */ #endif -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
janiFri Nov 16 14:18:59 2007 UTC Modified files: /php-src/ext/curl interface.c Log: - Fixed bug #43092 (curl_copy_handle() crashes with 32 chars long URL) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.118r2=1.119diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.118 php-src/ext/curl/interface.c:1.119 --- php-src/ext/curl/interface.c:1.118 Wed Oct 3 20:32:52 2007 +++ php-src/ext/curl/interface.cFri Nov 16 14:18:59 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.118 2007/10/03 20:32:52 mike Exp $ */ +/* $Id: interface.c,v 1.119 2007/11/16 14:18:59 jani Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1076,9 +1076,9 @@ memset((*ch)-err, 0, sizeof((*ch)-err)); - zend_llist_init((*ch)-to_free.str, sizeof(char *), (void(*)(void *)) curl_free_string, 0); - zend_llist_init((*ch)-to_free.slist, sizeof(struct curl_slist), (void(*)(void *)) curl_free_slist, 0); - zend_llist_init((*ch)-to_free.post, sizeof(struct HttpPost), (void(*)(void *)) curl_free_post, 0); + zend_llist_init((*ch)-to_free.str, sizeof(char *), (llist_dtor_func_t) curl_free_string, 0); + zend_llist_init((*ch)-to_free.slist, sizeof(struct curl_slist), (llist_dtor_func_t) curl_free_slist, 0); + zend_llist_init((*ch)-to_free.post, sizeof(struct HttpPost), (llist_dtor_func_t) curl_free_post, 0); } /* }}} */ @@ -1210,6 +1210,8 @@ curl_easy_setopt(dupch-cp, CURLOPT_WRITEHEADER, (void *) dupch); zend_llist_copy(dupch-to_free.str, ch-to_free.str); + /* Don't try to free copied strings, they're free'd when the original handle is destroyed */ + dupch-to_free.str.dtor = NULL; zend_llist_copy(dupch-to_free.slist, ch-to_free.slist); zend_llist_copy(dupch-to_free.post, ch-to_free.post); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
mikeWed Oct 3 20:32:52 2007 UTC Modified files: /php-src/ext/curl interface.c Log: - fix CURLOPT_TIMEOUT_MS support (available since 7.16.2) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.117r2=1.118diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.117 php-src/ext/curl/interface.c:1.118 --- php-src/ext/curl/interface.c:1.117 Thu Sep 27 18:28:38 2007 +++ php-src/ext/curl/interface.cWed Oct 3 20:32:52 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.117 2007/09/27 18:28:38 dmitry Exp $ */ +/* $Id: interface.c,v 1.118 2007/10/03 20:32:52 mike Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -385,7 +385,7 @@ REGISTER_CURL_CONSTANT(CURLOPT_PROXYUSERPWD); REGISTER_CURL_CONSTANT(CURLOPT_RANGE); REGISTER_CURL_CONSTANT(CURLOPT_TIMEOUT); -#ifdef CURLOPT_TIMEOUT_MS +#if LIBCURL_VERSION_NUM 0x071002 REGISTER_CURL_CONSTANT(CURLOPT_TIMEOUT_MS); #endif REGISTER_CURL_CONSTANT(CURLOPT_POSTFIELDS); @@ -431,7 +431,7 @@ REGISTER_CURL_CONSTANT(CURLOPT_RANDOM_FILE); REGISTER_CURL_CONSTANT(CURLOPT_EGDSOCKET); REGISTER_CURL_CONSTANT(CURLOPT_CONNECTTIMEOUT); -#ifdef CURLOPT_CONNECTTIMEOUT_MS +#if LIBCURL_VERSION_NUM 0x071002 REGISTER_CURL_CONSTANT(CURLOPT_CONNECTTIMEOUT_MS); #endif REGISTER_CURL_CONSTANT(CURLOPT_SSL_VERIFYPEER); @@ -1239,7 +1239,7 @@ case CURLOPT_MUTE: #endif case CURLOPT_TIMEOUT: -#ifdef CURLOPT_TIMEOUT_MS +#if LIBCURL_VERSION_NUM 0x071002 case CURLOPT_TIMEOUT_MS: #endif case CURLOPT_FTP_USE_EPSV: @@ -1258,7 +1258,7 @@ case CURLOPT_FRESH_CONNECT: case CURLOPT_FORBID_REUSE: case CURLOPT_CONNECTTIMEOUT: -#ifdef CURLOPT_CONNECTTIMEOUT_MS +#if LIBCURL_VERSION_NUM 0x071002 case CURLOPT_CONNECTTIMEOUT_MS: #endif case CURLOPT_SSL_VERIFYHOST: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pollita Tue Aug 21 21:23:35 2007 UTC Modified files: /php-src/ext/curl interface.c Log: Bagder says I don't need these ifdefs http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.115r2=1.116diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.115 php-src/ext/curl/interface.c:1.116 --- php-src/ext/curl/interface.c:1.115 Mon Aug 20 18:56:05 2007 +++ php-src/ext/curl/interface.cTue Aug 21 21:23:35 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.115 2007/08/20 18:56:05 pollita Exp $ */ +/* $Id: interface.c,v 1.116 2007/08/21 21:23:35 pollita Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -594,9 +594,7 @@ #endif REGISTER_CURL_CONSTANT(CURLPROXY_HTTP); -#ifdef CURLPROXY_SOCKS4 REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS4); -#endif REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5); REGISTER_CURL_CONSTANT(CURL_NETRC_OPTIONAL); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Wed Jul 4 13:33:01 2007 UTC Modified files: /php-src/ext/curl interface.c Log: add CURLINFO_PRIVATE CURLOPT_PRIVATE patch by Andrey A. Belashkov http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.113r2=1.114diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.113 php-src/ext/curl/interface.c:1.114 --- php-src/ext/curl/interface.c:1.113 Mon Apr 23 14:36:38 2007 +++ php-src/ext/curl/interface.cWed Jul 4 13:33:01 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.113 2007/04/23 14:36:38 tony2001 Exp $ */ +/* $Id: interface.c,v 1.114 2007/07/04 13:33:01 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -480,6 +480,8 @@ REGISTER_CURL_CONSTANT(CURLOPT_FTP_CREATE_MISSING_DIRS); #endif + REGISTER_CURL_CONSTANT(CURLOPT_PRIVATE); + /* Constants effecting the way CURLOPT_CLOSEPOLICY works */ REGISTER_CURL_CONSTANT(CURLCLOSEPOLICY_LEAST_RECENTLY_USED); REGISTER_CURL_CONSTANT(CURLCLOSEPOLICY_LEAST_TRAFFIC); @@ -509,6 +511,7 @@ REGISTER_CURL_CONSTANT(CURLINFO_REDIRECT_TIME); REGISTER_CURL_CONSTANT(CURLINFO_REDIRECT_COUNT); REGISTER_CURL_CONSTANT(CURLINFO_HEADER_OUT); + REGISTER_CURL_CONSTANT(CURLINFO_PRIVATE); /* cURL protocol constants (curl_version) */ REGISTER_CURL_CONSTANT(CURL_VERSION_IPV6); @@ -1304,6 +1307,7 @@ } error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; + case CURLOPT_PRIVATE: case CURLOPT_URL: case CURLOPT_PROXY: case CURLOPT_USERPWD: @@ -1854,6 +1858,7 @@ } } else { switch (option) { + case CURLINFO_PRIVATE: case CURLINFO_EFFECTIVE_URL: case CURLINFO_CONTENT_TYPE: { char *s_code = NULL; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Mon Apr 23 14:36:38 2007 UTC Modified files: /php-src/ext/curl interface.c Log: add CURLOPT_FTP_CREATE_MISSING_DIRS http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.112r2=1.113diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.112 php-src/ext/curl/interface.c:1.113 --- php-src/ext/curl/interface.c:1.112 Tue Apr 17 18:39:18 2007 +++ php-src/ext/curl/interface.cMon Apr 23 14:36:38 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.112 2007/04/17 18:39:18 pollita Exp $ */ +/* $Id: interface.c,v 1.113 2007/04/23 14:36:38 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -475,8 +475,9 @@ REGISTER_CURL_CONSTANT(CURLAUTH_ANYSAFE); #endif -#if LIBCURL_VERSION_NUM 0x070a06 /* CURLOPT_PROXYAUTH is available since curl 7.10.7 */ +#if LIBCURL_VERSION_NUM 0x070a06 /* CURLOPT_PROXYAUTH CURLOPT_FTP_CREATE_MISSING_DIRS are available since curl 7.10.7 */ REGISTER_CURL_CONSTANT(CURLOPT_PROXYAUTH); + REGISTER_CURL_CONSTANT(CURLOPT_FTP_CREATE_MISSING_DIRS); #endif /* Constants effecting the way CURLOPT_CLOSEPOLICY works */ @@ -1271,8 +1272,9 @@ #if LIBCURL_VERSION_NUM 0x070a05 /* CURLOPT_HTTPAUTH is available since curl 7.10.6 */ case CURLOPT_HTTPAUTH: #endif -#if LIBCURL_VERSION_NUM 0x070a06 /* CURLOPT_PROXYAUTH is available since curl 7.10.7 */ +#if LIBCURL_VERSION_NUM 0x070a06 /* CURLOPT_PROXYAUTH CURLOPT_FTP_CREATE_MISSING_DIRS are available since curl 7.10.7 */ case CURLOPT_PROXYAUTH: + case CURLOPT_FTP_CREATE_MISSING_DIRS: #endif #if LIBCURL_VERSION_NUM = 0x070c02 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
rasmus Fri Mar 9 01:22:47 2007 UTC Modified files: /php-src/ext/curl interface.c Log: MFB Off by ! in file:/// control char check http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.110r2=1.111diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.110 php-src/ext/curl/interface.c:1.111 --- php-src/ext/curl/interface.c:1.110 Fri Feb 23 20:50:17 2007 +++ php-src/ext/curl/interface.cFri Mar 9 01:22:47 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.110 2007/02/23 20:50:17 tony2001 Exp $ */ +/* $Id: interface.c,v 1.111 2007/03/09 01:22:47 rasmus Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -173,7 +173,7 @@ php_curl_ret(__ret); \ } \ \ - if (php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) {\ + if (!php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, URL '%s' contains unencoded control characters, str); \ php_url_free(tmp_url); \ php_curl_ret(__ret); \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Fri Feb 23 20:50:17 2007 UTC Modified files: /php-src/ext/curl interface.c Log: fix leak no need to allocate the buffer if there was no data http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.109r2=1.110diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.109 php-src/ext/curl/interface.c:1.110 --- php-src/ext/curl/interface.c:1.109 Fri Jan 19 18:03:25 2007 +++ php-src/ext/curl/interface.cFri Feb 23 20:50:17 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.109 2007/01/19 18:03:25 tony2001 Exp $ */ +/* $Id: interface.c,v 1.110 2007/02/23 20:50:17 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -713,7 +713,9 @@ case PHP_CURL_FILE: return fwrite(data, size, nmemb, t-fp); case PHP_CURL_RETURN: - smart_str_appendl(t-buf, data, (int) length); + if (length 0) { + smart_str_appendl(t-buf, data, (int) length); + } break; case PHP_CURL_USER: { zval **argv[2]; @@ -852,7 +854,7 @@ case PHP_CURL_STDOUT: /* Handle special case write when we're returning the entire transfer */ - if (ch-handlers-write-method == PHP_CURL_RETURN) { + if (ch-handlers-write-method == PHP_CURL_RETURN length 0) { smart_str_appendl(ch-handlers-write-buf, data, (int) length); } else { PHPWRITE(data, length); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Fri Jan 19 15:38:02 2007 UTC Modified files: /php-src/ext/curl interface.c Log: fix #40169 (CURLOPT_TCP_NODELAY only available in curl = 7.11.2) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.107r2=1.108diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.107 php-src/ext/curl/interface.c:1.108 --- php-src/ext/curl/interface.c:1.107 Mon Jan 8 20:04:56 2007 +++ php-src/ext/curl/interface.cFri Jan 19 15:38:02 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.107 2007/01/08 20:04:56 pollita Exp $ */ +/* $Id: interface.c,v 1.108 2007/01/19 15:38:02 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -450,7 +450,9 @@ REGISTER_CURL_CONSTANT(CURLOPT_PROXYPORT); REGISTER_CURL_CONSTANT(CURLOPT_UNRESTRICTED_AUTH); REGISTER_CURL_CONSTANT(CURLOPT_FTP_USE_EPRT); +#if LIBCURL_VERSION_NUM 0x070b01 /* CURLOPT_TCP_NODELAY is available since curl 7.11.2 */ REGISTER_CURL_CONSTANT(CURLOPT_TCP_NODELAY); +#endif REGISTER_CURL_CONSTANT(CURLOPT_HTTP200ALIASES); REGISTER_CURL_CONSTANT(CURL_TIMECOND_IFMODSINCE); REGISTER_CURL_CONSTANT(CURL_TIMECOND_IFUNMODSINCE); @@ -1269,10 +1271,12 @@ case CURLOPT_PORT: case CURLOPT_AUTOREFERER: case CURLOPT_COOKIESESSION: +#if LIBCURL_VERSION_NUM 0x070b01 /* CURLOPT_TCP_NODELAY is available since curl 7.11.2 */ case CURLOPT_TCP_NODELAY: convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; +#endif case CURLOPT_FOLLOWLOCATION: convert_to_long_ex(zvalue); if (PG(open_basedir) *PG(open_basedir)) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
tony2001Fri Jan 19 18:03:25 2007 UTC Modified files: /php-src/ext/curl interface.c Log: improve the fix http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.108r2=1.109diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.108 php-src/ext/curl/interface.c:1.109 --- php-src/ext/curl/interface.c:1.108 Fri Jan 19 15:38:02 2007 +++ php-src/ext/curl/interface.cFri Jan 19 18:03:25 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.108 2007/01/19 15:38:02 tony2001 Exp $ */ +/* $Id: interface.c,v 1.109 2007/01/19 18:03:25 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1273,10 +1273,10 @@ case CURLOPT_COOKIESESSION: #if LIBCURL_VERSION_NUM 0x070b01 /* CURLOPT_TCP_NODELAY is available since curl 7.11.2 */ case CURLOPT_TCP_NODELAY: +#endif convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; -#endif case CURLOPT_FOLLOWLOCATION: convert_to_long_ex(zvalue); if (PG(open_basedir) *PG(open_basedir)) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
pollita Mon Jan 8 20:04:56 2007 UTC Modified files: /php-src/ext/curl interface.c Log: Add CURLOPT_TCP_NODELAY http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.106r2=1.107diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.106 php-src/ext/curl/interface.c:1.107 --- php-src/ext/curl/interface.c:1.106 Mon Jan 1 09:29:22 2007 +++ php-src/ext/curl/interface.cMon Jan 8 20:04:56 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.106 2007/01/01 09:29:22 sebastian Exp $ */ +/* $Id: interface.c,v 1.107 2007/01/08 20:04:56 pollita Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -450,6 +450,7 @@ REGISTER_CURL_CONSTANT(CURLOPT_PROXYPORT); REGISTER_CURL_CONSTANT(CURLOPT_UNRESTRICTED_AUTH); REGISTER_CURL_CONSTANT(CURLOPT_FTP_USE_EPRT); + REGISTER_CURL_CONSTANT(CURLOPT_TCP_NODELAY); REGISTER_CURL_CONSTANT(CURLOPT_HTTP200ALIASES); REGISTER_CURL_CONSTANT(CURL_TIMECOND_IFMODSINCE); REGISTER_CURL_CONSTANT(CURL_TIMECOND_IFUNMODSINCE); @@ -1268,6 +1269,7 @@ case CURLOPT_PORT: case CURLOPT_AUTOREFERER: case CURLOPT_COOKIESESSION: + case CURLOPT_TCP_NODELAY: convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Dec 26 16:57:51 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #39878 (CURL doesn't compile on Sun Studio Pro). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.104r2=1.105diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.104 php-src/ext/curl/interface.c:1.105 --- php-src/ext/curl/interface.c:1.104 Tue Dec 19 21:41:12 2006 +++ php-src/ext/curl/interface.cTue Dec 26 16:57:51 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.104 2006/12/19 21:41:12 mike Exp $ */ +/* $Id: interface.c,v 1.105 2006/12/26 16:57:51 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -156,6 +156,12 @@ #define CAAS(s, v) add_assoc_ascii_string_ex(return_value, s, sizeof(s), (char *) v, 1); #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); +#if defined(PHP_WIN32) || defined(__GNUC__) + #define php_curl_ret(__ret) RETVAL_FALSE; return __ret; +#else + #define php_curl_ret(__ret) RETVAL_FALSE; return; +#endif + #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len, __ret) \ if ((PG(open_basedir) *PG(open_basedir)) \ strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ @@ -164,20 +170,18 @@ \ if (!(tmp_url = php_url_parse_ex(str, len))) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid URL '%s', str); \ - RETVAL_FALSE; \ - return __ret; \ + php_curl_ret(__ret); \ } \ \ if (php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) {\ php_error_docref(NULL TSRMLS_CC, E_WARNING, URL '%s' contains unencoded control characters, str); \ - RETVAL_FALSE; \ - return __ret; \ + php_url_free(tmp_url); \ + php_curl_ret(__ret); \ } \ \ if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC)) { \ php_url_free(tmp_url); \ - RETVAL_FALSE; \ - return __ret; \ + php_curl_ret(__ret); \ } \ php_url_free(tmp_url); \ } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit:
[PHP-CVS] cvs: php-src /ext/curl interface.c
mikeTue Dec 19 21:41:13 2006 UTC Modified files: /php-src/ext/curl interface.c Log: - check CRYPTO_get_id_callback() if anyone else already set thread lock callbacks http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.103r2=1.104diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.103 php-src/ext/curl/interface.c:1.104 --- php-src/ext/curl/interface.c:1.103 Sat Dec 9 14:37:40 2006 +++ php-src/ext/curl/interface.cTue Dec 19 21:41:12 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.103 2006/12/09 14:37:40 iliaa Exp $ */ +/* $Id: interface.c,v 1.104 2006/12/19 21:41:12 mike Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -612,7 +612,7 @@ #endif #ifdef PHP_CURL_NEED_OPENSSL_TSL - { + if (!CRYPTO_get_id_callback()) { int i, c = CRYPTO_num_locks(); php_curl_openssl_tsl = malloc(c * sizeof(MUTEX_T)); @@ -665,16 +665,11 @@ php_unregister_url_stream_wrapper(ftp TSRMLS_CC); php_unregister_url_stream_wrapper(ldap TSRMLS_CC); #endif -#ifdef PHP_CURL_NEED_OPENSSL_TSL - /* ensure there are valid callbacks set */ - CRYPTO_set_id_callback(php_curl_ssl_id); - CRYPTO_set_locking_callback(php_curl_ssl_lock); -#endif curl_global_cleanup(); #ifdef PHP_CURL_NEED_OPENSSL_TSL if (php_curl_openssl_tsl) { int i, c = CRYPTO_num_locks(); - + CRYPTO_set_id_callback(NULL); CRYPTO_set_locking_callback(NULL); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
bjori Sat Dec 9 14:07:13 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Fix build http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.101r2=1.102diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.101 php-src/ext/curl/interface.c:1.102 --- php-src/ext/curl/interface.c:1.101 Fri Dec 8 03:13:41 2006 +++ php-src/ext/curl/interface.cSat Dec 9 14:07:13 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.101 2006/12/08 03:13:41 iliaa Exp $ */ +/* $Id: interface.c,v 1.102 2006/12/09 14:07:13 bjori Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -959,7 +959,7 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not call the CURLOPT_PASSWDFUNCTION); } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_P(retval) == IS_UNICODE) { if (Z_TYPE_P(retval) == IS_UNICODE) { - convert_to_string_ex(retval); + convert_to_string_ex(retval); } if (Z_STRLEN_P(retval) buflen) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Returned password is too long for libcurl to handle); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Sat Dec 9 14:37:40 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Improve handling of POST data with Andrei's help. http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.102r2=1.103diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.102 php-src/ext/curl/interface.c:1.103 --- php-src/ext/curl/interface.c:1.102 Sat Dec 9 14:07:13 2006 +++ php-src/ext/curl/interface.cSat Dec 9 14:37:40 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.102 2006/12/09 14:07:13 bjori Exp $ */ +/* $Id: interface.c,v 1.103 2006/12/09 14:37:40 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1451,22 +1451,36 @@ UErrorCode status = U_ZERO_ERROR; uint data_len; - SEPARATE_ZVAL(current); - - if (Z_TYPE_PP(current) == IS_UNICODE) { - zend_unicode_to_string_ex(UG(utf8_conv), postval, data_len, Z_USTRVAL_PP(current), Z_USTRLEN_PP(current), status); - } else { - convert_to_string_ex(current); - postval = Z_STRVAL_PP(current); - data_len = Z_STRLEN_PP(current); + switch (Z_TYPE_PP(current)) { + case IS_UNICODE: + ntype = HASH_KEY_IS_UNICODE; + break; + case IS_STRING: + ntype = HASH_KEY_IS_STRING; + break; + default: + if (type != -1) { + ntype = type; + } else { + ntype = HASH_KEY_IS_STRING; + } + break; } - zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); - - ntype = zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); if (type == -1) { type = ntype; } else if (type != ntype) { + goto type_conflict; + } + + SEPARATE_ZVAL(current); + convert_to_string_with_converter_ex(current, UG(utf8_conv)); + postval = Z_STRVAL_PP(current); + data_len = Z_STRLEN_PP(current); + + ntype = zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); + if (type != ntype ntype != HASH_KEY_IS_LONG) { +type_conflict: php_error_docref(NULL TSRMLS_CC, E_WARNING, Form parameters must either be all unicode or all binary); continue; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Fri Dec 8 00:46:01 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Allow POST of unicode data as utf8 http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.99r2=1.100diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.99 php-src/ext/curl/interface.c:1.100 --- php-src/ext/curl/interface.c:1.99 Thu Dec 7 01:06:54 2006 +++ php-src/ext/curl/interface.cFri Dec 8 00:46:01 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.99 2006/12/07 01:06:54 iliaa Exp $ */ +/* $Id: interface.c,v 1.100 2006/12/08 00:46:01 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -957,7 +957,7 @@ error = call_user_function(EG(function_table), NULL, func, retval, 2, argv TSRMLS_CC); if (error == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not call the CURLOPT_PASSWDFUNCTION); - } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_(retval) == IS_UNICODE) { + } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_P(retval) == IS_UNICODE) { if (Z_TYPE_(retval) == IS_UNICODE) { convert_to_string_ex(retval); } @@ -1449,13 +1449,19 @@ int ntype; int l; UErrorCode status = U_ZERO_ERROR; + uint data_len; SEPARATE_ZVAL(current); - convert_to_string_ex(current); + + if (Z_TYPE_PP(current) == IS_UNICODE) { + zend_unicode_to_string_ex(UG(utf8_conv), postval, data_len, Z_USTRVAL_PP(current), Z_USTRLEN_PP(current), status); + } else { + convert_to_string_ex(current); + postval = Z_STRVAL_PP(current); + data_len = Z_STRLEN_PP(current); + } zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); - - postval = Z_STRVAL_PP(current); ntype = zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); if (type == -1) { @@ -1499,7 +1505,7 @@ CURLFORM_COPYNAME, key, CURLFORM_NAMELENGTH, l, CURLFORM_COPYCONTENTS, postval, - CURLFORM_CONTENTSLENGTH, (long)Z_STRLEN_PP(current), + CURLFORM_CONTENTSLENGTH, (long)data_len, CURLFORM_END); } if (ntype == HASH_KEY_IS_UNICODE) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Fri Dec 8 03:13:41 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Fixed typo http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.100r2=1.101diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.100 php-src/ext/curl/interface.c:1.101 --- php-src/ext/curl/interface.c:1.100 Fri Dec 8 00:46:01 2006 +++ php-src/ext/curl/interface.cFri Dec 8 03:13:41 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.100 2006/12/08 00:46:01 iliaa Exp $ */ +/* $Id: interface.c,v 1.101 2006/12/08 03:13:41 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -958,7 +958,7 @@ if (error == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not call the CURLOPT_PASSWDFUNCTION); } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_P(retval) == IS_UNICODE) { - if (Z_TYPE_(retval) == IS_UNICODE) { + if (Z_TYPE_P(retval) == IS_UNICODE) { convert_to_string_ex(retval); } if (Z_STRLEN_P(retval) buflen) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
You can do it much simpler with: convert_to_string_with_converter_ex(current, UG(utf8_conv)); -Andrei On Dec 7, 2006, at 4:46 PM, Ilia Alshanetsky wrote: + + if (Z_TYPE_PP(current) == IS_UNICODE) { + zend_unicode_to_string_ex(UG(utf8_conv), postval, data_len, Z_USTRVAL_PP(current), Z_USTRLEN_PP(current), status); + } else { + convert_to_string_ex(current); + postval = Z_STRVAL_PP(current); + data_len = Z_STRLEN_PP(current); + } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Wed Dec 6 17:52:11 2006 UTC Modified files: /php-src/ext/curl interface.c Log: First part of unicode upgrade http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.96r2=1.97diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.96 php-src/ext/curl/interface.c:1.97 --- php-src/ext/curl/interface.c:1.96 Tue Nov 21 15:58:12 2006 +++ php-src/ext/curl/interface.cWed Dec 6 17:52:11 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.96 2006/11/21 15:58:12 iliaa Exp $ */ +/* $Id: interface.c,v 1.97 2006/12/06 17:52:11 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -153,7 +153,7 @@ #define CAAL(s, v) add_assoc_long_ex(return_value, s, sizeof(s), (long) v); #define CAAD(s, v) add_assoc_double_ex(return_value, s, sizeof(s), (double) v); -#define CAAS(s, v) add_assoc_string_ex(return_value, s, sizeof(s), (char *) v, 1); +#define CAAS(s, v) add_assoc_ascii_string_ex(return_value, s, sizeof(s), (char *) v, 1); #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len, __ret) \ @@ -1001,12 +1001,12 @@ } /* }}} */ -/* {{{ proto array curl_version([int version]) +/* {{{ proto array curl_version([int version]) U Return cURL version information. */ PHP_FUNCTION(curl_version) { curl_version_info_data *d; - longuversion = CURLVERSION_NOW; + long uversion = CURLVERSION_NOW; if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |l, uversion) == FAILURE) { return; @@ -1036,7 +1036,7 @@ array_init(protocol_list); while (*p != NULL) { - add_next_index_string(protocol_list, *p++, 1); + add_next_index_ascii_string(protocol_list, *p++, 1); } CAAZ(protocols, protocol_list); } @@ -1064,22 +1064,26 @@ } /* }}} */ -/* {{{ proto resource curl_init([string url]) +/* {{{ proto resource curl_init([string url]) U Initialize a cURL session */ PHP_FUNCTION(curl_init) { - zval **url; - php_curl*ch; - CURL*cp; - int argc = ZEND_NUM_ARGS(); - - if (argc 0 || argc 1 || zend_get_parameters_ex(argc, url) == FAILURE) { - WRONG_PARAM_COUNT; - } - - if (argc 0) { - convert_to_string_ex(url); - PHP_CURL_CHECK_OPEN_BASEDIR(Z_STRVAL_PP(url), Z_STRLEN_PP(url), (void) NULL); + php_curl*ch; + CURL*cp; + char*src = NULL; + int src_len; + zend_uchar src_type; + +if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |t, src, src_len, src_type) == FAILURE) { +RETURN_FALSE; +} + + if (src src_type == IS_UNICODE) { + src = zend_unicode_to_ascii((UChar*)src, src_len TSRMLS_CC); + if (!src) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); + RETURN_FALSE; + } } cp = curl_easy_init(); @@ -1116,10 +1120,10 @@ curl_easy_setopt(ch-cp, CURLOPT_NOSIGNAL, 1); #endif - if (argc 0) { + if (src) { char *urlcopy; - urlcopy = estrndup(Z_STRVAL_PP(url), Z_STRLEN_PP(url)); + urlcopy = estrndup(src, src_len); curl_easy_setopt(ch-cp, CURLOPT_URL, urlcopy); zend_llist_add_element(ch-to_free.str, urlcopy); } @@ -1129,19 +1133,19 @@ } /* }}} */ -/* {{{ proto resource curl_copy_handle(resource ch) +/* {{{ proto resource curl_copy_handle(resource ch) U Copy a cURL handle along with all of it's preferences */ PHP_FUNCTION(curl_copy_handle) { - zval **zid; - CURL *cp; - php_curl *ch; - php_curl *dupch; + CURL*cp; + zval*zid; + php_curl*ch, *dupch; + + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, z, zid) == FAILURE) { +RETURN_FALSE; +} - if (ZEND_NUM_ARGS() != 1 || zend_get_parameters_ex(1, zid) == FAILURE) { - WRONG_PARAM_COUNT; - } - ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); + ZEND_FETCH_RESOURCE(ch, php_curl *, zid, -1, le_curl_name, le_curl); cp = curl_easy_duphandle(ch-cp); if (!cp) { @@ -1579,18 +1583,17 @@ Set an option for a cURL transfer */ PHP_FUNCTION(curl_setopt) { - zval **zid, **zoption, **zvalue; + zval *zid, *zvalue; + long options;
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Wed Dec 6 18:40:55 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Final set of unicode changes http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.97r2=1.98diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.97 php-src/ext/curl/interface.c:1.98 --- php-src/ext/curl/interface.c:1.97 Wed Dec 6 17:52:11 2006 +++ php-src/ext/curl/interface.cWed Dec 6 18:40:55 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.97 2006/12/06 17:52:11 iliaa Exp $ */ +/* $Id: interface.c,v 1.98 2006/12/06 18:40:55 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -957,14 +957,17 @@ error = call_user_function(EG(function_table), NULL, func, retval, 2, argv TSRMLS_CC); if (error == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not call the CURLOPT_PASSWDFUNCTION); - } else if (Z_TYPE_P(retval) == IS_STRING) { + } else if (Z_TYPE_P(retval) == IS_STRING || Z_TYPE_(retval) == IS_UNICODE) { + if (Z_TYPE_(retval) == IS_UNICODE) { + convert_to_string_ex(retval); + } if (Z_STRLEN_P(retval) buflen) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Returned password is too long for libcurl to handle); } else { strlcpy(buf, Z_STRVAL_P(retval), Z_STRLEN_P(retval)); } } else { - php_error_docref(NULL TSRMLS_CC, E_WARNING, User handler '%s' did not return a string, Z_STRVAL_P(func)); + php_error_docref(NULL TSRMLS_CC, E_WARNING, User handler '%v' did not return a string, func); } zval_ptr_dtor(argv[0]); @@ -1426,12 +1429,13 @@ struct HttpPost *first = NULL; struct HttpPost *last = NULL; char *postval; - char *string_key = NULL; - ulong num_key; - uint string_key_len; + zstr string_key; + char *key; + ulongnum_key; + uint string_key_len; postfields = HASH_OF(*zvalue); - if (! postfields) { + if (!postfields) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Couldn't get HashTable in CURLOPT_POSTFIELDS); RETVAL_FALSE; return 1; @@ -1449,6 +1453,23 @@ postval = Z_STRVAL_PP(current); + switch (zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL)) { + case HASH_KEY_IS_UNICODE: + key = zend_unicode_to_ascii(string_key.u, string_key_len TSRMLS_CC); + if (!key) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); + continue; + } + break; + case HASH_KEY_IS_STRING: + key = string_key.s; + break; + case HASH_KEY_IS_LONG: + key = NULL; + string_key_len = 0; + break; + } + /* The arguments after _NAMELENGTH and _CONTENTSLENGTH * must be explicitly cast to long in curl_formadd * use since curl needs a long not an int. */ @@ -1460,13 +1481,13 @@ return 1; } error = curl_formadd(first, last, - CURLFORM_COPYNAME,
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
How're you dealing with POSTFIELDS? It seems you're just converting them to binary strings using runtime encoding. I think we may need to do something smarter than that in case people want to post Unicode content. -Andrei On Dec 6, 2006, at 9:52 AM, Ilia Alshanetsky wrote: iliaa Wed Dec 6 17:52:11 2006 UTC Modified files: /php-src/ext/curl interface.c Log: First part of unicode upgrade iliaa-20061206175211.txt-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
Dealing with post fields is tricky, because we need to check is the first char is @, in which case this is a name of a file to upload. As far as regular fields if someone wants to post data then there is issue of encoding, we could post it as utf8. However, the form may not be expecting utf-8, nor do we know what the form actually expects. We can of course just post binary as is right now and unicode as utf-8, but I am somewhat concerned about possible side- effects. Ilia Alshanetsky -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Thu Dec 7 01:06:54 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Allow submission of unicode data in utf8 form http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.98r2=1.99diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.98 php-src/ext/curl/interface.c:1.99 --- php-src/ext/curl/interface.c:1.98 Wed Dec 6 18:40:55 2006 +++ php-src/ext/curl/interface.cThu Dec 7 01:06:54 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.98 2006/12/06 18:40:55 iliaa Exp $ */ +/* $Id: interface.c,v 1.99 2006/12/07 01:06:54 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1294,7 +1294,7 @@ case CURLOPT_COOKIE: case CURLOPT_REFERER: case CURLOPT_INTERFACE: - case CURLOPT_KRB4LEVEL: + case CURLOPT_KRB4LEVEL: case CURLOPT_EGDSOCKET: case CURLOPT_CAINFO: case CURLOPT_CAPATH: @@ -1433,6 +1433,7 @@ char *key; ulongnum_key; uint string_key_len; + int type = -1; postfields = HASH_OF(*zvalue); if (!postfields) { @@ -1445,6 +1446,9 @@ zend_hash_get_current_data(postfields, (void **) current) == SUCCESS; zend_hash_move_forward(postfields) ) { + int ntype; + int l; + UErrorCode status = U_ZERO_ERROR; SEPARATE_ZVAL(current); convert_to_string_ex(current); @@ -1453,20 +1457,25 @@ postval = Z_STRVAL_PP(current); - switch (zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL)) { + ntype = zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); + if (type == -1) { + type = ntype; + } else if (type != ntype) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Form parameters must either be all unicode or all binary); + continue; + } + + switch (ntype) { case HASH_KEY_IS_UNICODE: - key = zend_unicode_to_ascii(string_key.u, string_key_len TSRMLS_CC); - if (!key) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); - continue; - } + zend_unicode_to_string_ex(UG(utf8_conv), key, l, string_key.u, string_key_len, status); break; case HASH_KEY_IS_STRING: key = string_key.s; + l = string_key_len - 1; break; case HASH_KEY_IS_LONG: key = NULL; - string_key_len = 0; + l = 0; break; } @@ -1482,17 +1491,20 @@ } error = curl_formadd(first, last, CURLFORM_COPYNAME, key, - CURLFORM_NAMELENGTH, (long)string_key_len - 1, + CURLFORM_NAMELENGTH, l,
Re: [PHP-CVS] cvs: php-src /ext/curl interface.c
What about the values? -Andrei On Dec 6, 2006, at 5:06 PM, Ilia Alshanetsky wrote: iliaa Thu Dec 7 01:06:54 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Allow submission of unicode data in utf8 form http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c? r1=1.98r2=1.99diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.98 php-src/ext/curl/ interface.c:1.99 --- php-src/ext/curl/interface.c:1.98 Wed Dec 6 18:40:55 2006 +++ php-src/ext/curl/interface.cThu Dec 7 01:06:54 2006 @@ -16,7 +16,7 @@ +- -+ */ -/* $Id: interface.c,v 1.98 2006/12/06 18:40:55 iliaa Exp $ */ +/* $Id: interface.c,v 1.99 2006/12/07 01:06:54 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1294,7 +1294,7 @@ case CURLOPT_COOKIE: case CURLOPT_REFERER: case CURLOPT_INTERFACE: - case CURLOPT_KRB4LEVEL: + case CURLOPT_KRB4LEVEL: case CURLOPT_EGDSOCKET: case CURLOPT_CAINFO: case CURLOPT_CAPATH: @@ -1433,6 +1433,7 @@ char *key; ulongnum_key; uint string_key_len; + int type = -1; postfields = HASH_OF(*zvalue); if (!postfields) { @@ -1445,6 +1446,9 @@ zend_hash_get_current_data(postfields, (void **) current) == SUCCESS; zend_hash_move_forward(postfields) ) { + int ntype; + int l; + UErrorCode status = U_ZERO_ERROR; SEPARATE_ZVAL(current); convert_to_string_ex(current); @@ -1453,20 +1457,25 @@ postval = Z_STRVAL_PP(current); - switch (zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL)) { + ntype = zend_hash_get_current_key_ex(postfields, string_key, string_key_len, num_key, 0, NULL); + if (type == -1) { + type = ntype; + } else if (type != ntype) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Form parameters must either be all unicode or all binary); + continue; + } + + switch (ntype) { case HASH_KEY_IS_UNICODE: - key = zend_unicode_to_ascii(string_key.u, string_key_len TSRMLS_CC); - if (!key) { -php_error_docref(NULL TSRMLS_CC, E_WARNING, Binary or ASCII-Unicode string expected, non-ASCII-Unicode string received); - continue; - } + zend_unicode_to_string_ex(UG(utf8_conv), key, l, string_key.u, string_key_len, status); break; case HASH_KEY_IS_STRING: key = string_key.s; + l = string_key_len - 1; break; case HASH_KEY_IS_LONG: key = NULL; - string_key_len = 0; + l = 0; break; } @@ -1482,17 +1491,20 @@ } error = curl_formadd(first, last, CURLFORM_COPYNAME, key, - CURLFORM_NAMELENGTH, (long)string_key_len - 1, + CURLFORM_NAMELENGTH, l, CURLFORM_FILE, postval, CURLFORM_END); } else
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Fri Nov 3 14:53:27 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #39354 (Allow building of curl extension against libcurl 7.16.0) http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.93r2=1.94diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.93 php-src/ext/curl/interface.c:1.94 --- php-src/ext/curl/interface.c:1.93 Tue Oct 10 23:13:13 2006 +++ php-src/ext/curl/interface.cFri Nov 3 14:53:27 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.93 2006/10/10 23:13:13 iliaa Exp $ */ +/* $Id: interface.c,v 1.94 2006/11/03 14:53:27 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -367,7 +367,9 @@ REGISTER_CURL_CONSTANT(CURLOPT_FTPAPPEND); REGISTER_CURL_CONSTANT(CURLOPT_NETRC); REGISTER_CURL_CONSTANT(CURLOPT_FOLLOWLOCATION); +#if CURLOPT_FTPASCII != 0 REGISTER_CURL_CONSTANT(CURLOPT_FTPASCII); +#endif REGISTER_CURL_CONSTANT(CURLOPT_PUT); #if CURLOPT_MUTE != 0 REGISTER_CURL_CONSTANT(CURLOPT_MUTE); @@ -407,7 +409,9 @@ REGISTER_CURL_CONSTANT(CURLOPT_FILETIME); REGISTER_CURL_CONSTANT(CURLOPT_WRITEFUNCTION); REGISTER_CURL_CONSTANT(CURLOPT_READFUNCTION); +#if CURLOPT_PASSWDFUNCTION != 0 REGISTER_CURL_CONSTANT(CURLOPT_PASSWDFUNCTION); +#endif REGISTER_CURL_CONSTANT(CURLOPT_HEADERFUNCTION); REGISTER_CURL_CONSTANT(CURLOPT_MAXREDIRS); REGISTER_CURL_CONSTANT(CURLOPT_MAXCONNECTS); @@ -1155,12 +1159,13 @@ dupch-handlers-write_header-fp = ch-handlers-write_header-fp; dupch-handlers-read-fp = ch-handlers-read-fp; dupch-handlers-read-fd = ch-handlers-read-fd; - +#if CURLOPT_PASSWDDATA != 0 if (ch-handlers-passwd) { zval_add_ref(ch-handlers-passwd); dupch-handlers-passwd = ch-handlers-passwd; curl_easy_setopt(ch-cp, CURLOPT_PASSWDDATA, (void *) dupch); } +#endif if (ch-handlers-write-func_name) { zval_add_ref(ch-handlers-write-func_name); dupch-handlers-write-func_name = ch-handlers-write-func_name; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Oct 10 23:13:13 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #39034 (curl_exec() with return transfer returns TRUE on empty files). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.92r2=1.93diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.92 php-src/ext/curl/interface.c:1.93 --- php-src/ext/curl/interface.c:1.92 Sun Oct 8 22:39:48 2006 +++ php-src/ext/curl/interface.cTue Oct 10 23:13:13 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.92 2006/10/08 22:39:48 iliaa Exp $ */ +/* $Id: interface.c,v 1.93 2006/10/10 23:13:13 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1669,7 +1669,11 @@ RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 1); } --ch-uses; - RETURN_TRUE; + if (ch-handlers-write-method == PHP_CURL_RETURN) { + RETURN_EMPTY_STRING(); + } else { + RETURN_TRUE; + } } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Sun Oct 8 22:39:48 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Added missing configuration checks http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.91r2=1.92diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.91 php-src/ext/curl/interface.c:1.92 --- php-src/ext/curl/interface.c:1.91 Sun Oct 8 13:34:21 2006 +++ php-src/ext/curl/interface.cSun Oct 8 22:39:48 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.91 2006/10/08 13:34:21 bjori Exp $ */ +/* $Id: interface.c,v 1.92 2006/10/08 22:39:48 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -561,9 +561,13 @@ REGISTER_CURL_CONSTANT(CURLE_SSL_CIPHER); REGISTER_CURL_CONSTANT(CURLE_SSL_CACERT); REGISTER_CURL_CONSTANT(CURLE_BAD_CONTENT_ENCODING); +#if LIBCURL_VERSION_NUM = 0x070a08 REGISTER_CURL_CONSTANT(CURLE_LDAP_INVALID_URL); REGISTER_CURL_CONSTANT(CURLE_FILESIZE_EXCEEDED); +#endif +#if LIBCURL_VERSION_NUM = 0x070b00 REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED); +#endif REGISTER_CURL_CONSTANT(CURLPROXY_HTTP); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Mon Sep 18 16:13:00 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #38574 (missing curl constants and improper constant detection). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.89r2=1.90diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.89 php-src/ext/curl/interface.c:1.90 --- php-src/ext/curl/interface.c:1.89 Sat Sep 9 20:03:55 2006 +++ php-src/ext/curl/interface.cMon Sep 18 16:13:00 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.89 2006/09/09 20:03:55 bjori Exp $ */ +/* $Id: interface.c,v 1.90 2006/09/18 16:13:00 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -561,15 +561,9 @@ REGISTER_CURL_CONSTANT(CURLE_SSL_CIPHER); REGISTER_CURL_CONSTANT(CURLE_SSL_CACERT); REGISTER_CURL_CONSTANT(CURLE_BAD_CONTENT_ENCODING); -#ifdef CURLE_LDAP_INVALID_URL REGISTER_CURL_CONSTANT(CURLE_LDAP_INVALID_URL); -#endif -#ifdef CURLE_FILESIZE_EXCEEDED REGISTER_CURL_CONSTANT(CURLE_FILESIZE_EXCEEDED); -#endif -#ifdef CURLE_FTP_SSL_FAILED REGISTER_CURL_CONSTANT(CURLE_FTP_SSL_FAILED); -#endif REGISTER_CURL_CONSTANT(CURLPROXY_HTTP); REGISTER_CURL_CONSTANT(CURLPROXY_SOCKS5); @@ -591,13 +585,21 @@ REGISTER_CURL_CONSTANT(CURLMSG_DONE); -#ifdef CURLOPT_FTPSSLAUTH +#if LIBCURL_VERSION_NUM = 0x070c02 REGISTER_CURL_CONSTANT(CURLOPT_FTPSSLAUTH); REGISTER_CURL_CONSTANT(CURLFTPAUTH_DEFAULT); REGISTER_CURL_CONSTANT(CURLFTPAUTH_SSL); REGISTER_CURL_CONSTANT(CURLFTPAUTH_TLS); #endif +#if LIBCURL_VERSION_NUM 0x070b00 + REGISTER_CURL_CONSTANT(CURLOPT_FTP_SSL); + REGISTER_CURL_CONSTANT(CURLFTPSSL_NONE); + REGISTER_CURL_CONSTANT(CURLFTPSSL_TRY); + REGISTER_CURL_CONSTANT(CURLFTPSSL_CONTROL); + REGISTER_CURL_CONSTANT(CURLFTPSSL_ALL); +#endif + #ifdef PHP_CURL_NEED_OPENSSL_TSL { int i, c = CRYPTO_num_locks(); @@ -1238,9 +1240,12 @@ case CURLOPT_PROXYAUTH: #endif -#ifdef CURLOPT_FTPSSLAUTH +#if LIBCURL_VERSION_NUM = 0x070c02 case CURLOPT_FTPSSLAUTH: #endif +#if LIBCURL_VERSION_NUM 0x070b00 + case CURLOPT_FTP_SSL: +#endif case CURLOPT_UNRESTRICTED_AUTH: case CURLOPT_PORT: case CURLOPT_AUTOREFERER: -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Aug 29 17:10:53 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle). http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.87r2=1.88diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.87 php-src/ext/curl/interface.c:1.88 --- php-src/ext/curl/interface.c:1.87 Thu Aug 10 19:02:32 2006 +++ php-src/ext/curl/interface.cTue Aug 29 17:10:52 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.87 2006/08/10 19:02:32 iliaa Exp $ */ +/* $Id: interface.c,v 1.88 2006/08/29 17:10:52 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1137,7 +1137,7 @@ } alloc_curl_handle(dupch); - TSRMLS_SET_CTX(ch-thread_ctx); + TSRMLS_SET_CTX(dupch-thread_ctx); dupch-cp = cp; dupch-handlers-write-method = ch-handlers-write-method; @@ -1145,6 +1145,38 @@ dupch-handlers-read-method = ch-handlers-read-method; dupch-handlers-write_header-method = ch-handlers-write_header-method; + dupch-handlers-write-fp = ch-handlers-write-fp; + dupch-handlers-write_header-fp = ch-handlers-write_header-fp; + dupch-handlers-read-fp = ch-handlers-read-fp; + dupch-handlers-read-fd = ch-handlers-read-fd; + + if (ch-handlers-passwd) { + zval_add_ref(ch-handlers-passwd); + dupch-handlers-passwd = ch-handlers-passwd; + curl_easy_setopt(ch-cp, CURLOPT_PASSWDDATA, (void *) dupch); + } + if (ch-handlers-write-func_name) { + zval_add_ref(ch-handlers-write-func_name); + dupch-handlers-write-func_name = ch-handlers-write-func_name; + } + if (ch-handlers-read-func_name) { + zval_add_ref(ch-handlers-read-func_name); + dupch-handlers-read-func_name = ch-handlers-read-func_name; + } + if (ch-handlers-write_header-func_name) { + zval_add_ref(ch-handlers-write_header-func_name); + dupch-handlers-write_header-func_name = ch-handlers-write_header-func_name; + } + + curl_easy_setopt(dupch-cp, CURLOPT_ERRORBUFFER, dupch-err.str); + curl_easy_setopt(dupch-cp, CURLOPT_FILE, (void *) dupch); + curl_easy_setopt(dupch-cp, CURLOPT_INFILE,(void *) dupch); + curl_easy_setopt(dupch-cp, CURLOPT_WRITEHEADER, (void *) dupch); + + zend_llist_copy(dupch-to_free.str, ch-to_free.str); + zend_llist_copy(dupch-to_free.slist, ch-to_free.slist); + zend_llist_copy(dupch-to_free.post, ch-to_free.post); + ZEND_REGISTER_RESOURCE(return_value, dupch, le_curl); dupch-id = Z_LVAL_P(return_value); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c streams.c /ext/standard string.c
iliaa Thu Aug 10 19:02:32 2006 UTC Modified files: /php-src/ext/standard string.c /php-src/ext/curl interface.c streams.c Log: MFB: Various security fixes http://cvs.php.net/viewvc.cgi/php-src/ext/standard/string.c?r1=1.574r2=1.575diff_format=u Index: php-src/ext/standard/string.c diff -u php-src/ext/standard/string.c:1.574 php-src/ext/standard/string.c:1.575 --- php-src/ext/standard/string.c:1.574 Thu Aug 10 09:31:24 2006 +++ php-src/ext/standard/string.c Thu Aug 10 19:02:32 2006 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: string.c,v 1.574 2006/08/10 09:31:24 tony2001 Exp $ */ +/* $Id: string.c,v 1.575 2006/08/10 19:02:32 iliaa Exp $ */ /* Synced with php 3.0 revision 1.193 1999-06-16 [ssb] */ @@ -834,7 +834,8 @@ { const char *text, *breakchar = \n; char *newtext; - int textlen, breakcharlen = 1, newtextlen, alloced, chk; + int textlen, breakcharlen = 1, newtextlen, chk; + size_t alloced; long current = 0, laststart = 0, lastspace = 0; long linelength = 75; zend_bool docut = 0; @@ -6246,8 +6247,8 @@ zend_uchar input_str_type; longmult; /* Multiplier */ void*result;/* Resulting string */ - int result_len; /* Length of the resulting string, in bytes */ - int result_chars; /* Chars/UChars in resulting string */ + size_t result_len; /* Length of the resulting string, in bytes */ + size_t result_chars; /* Chars/UChars in resulting string */ if ( zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, tl, input_str, input_str_chars, input_str_type, mult) == FAILURE ) { @@ -6273,23 +6274,12 @@ if ( input_str_type == IS_UNICODE ) { input_str_len = UBYTES(input_str_chars); result_len = UBYTES(result_chars); - if ( result_chars 1 || result_chars (2147483647/UBYTES(1)) ) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, You may not create strings longer than %ld characters, 2147483647/UBYTES(1)); - RETURN_FALSE; - } + result = (char *)safe_emalloc(UBYTES(input_str_chars), UBYTES(mult), UBYTES(1)); } else { input_str_len = input_str_chars; result_len = result_chars; - if ( result_chars 1 || result_chars 2147483647 ) { - if ( input_str_type == IS_STRING ) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, You may not create strings longer than 2147483647 characters); - } else { - php_error_docref(NULL TSRMLS_CC, E_WARNING, You may not create strings longer than 2147483647 bytes); - } - RETURN_FALSE; - } + result = (char *)safe_emalloc(input_str_chars, mult, 1); } - result = emalloc(result_len); /* Heavy optimization for situations where input string is 1 byte long */ if ( input_str_len == 1 ) { http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.86r2=1.87diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.86 php-src/ext/curl/interface.c:1.87 --- php-src/ext/curl/interface.c:1.86 Tue Jul 4 20:13:40 2006 +++ php-src/ext/curl/interface.cThu Aug 10 19:02:32 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.86 2006/07/04 20:13:40 iliaa Exp $ */ +/* $Id: interface.c,v 1.87 2006/08/10 19:02:32 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1166,7 +1166,6 @@ case CURLOPT_FTPLISTONLY: case CURLOPT_FTPAPPEND: case CURLOPT_NETRC: - case CURLOPT_FOLLOWLOCATION: case CURLOPT_PUT: #if CURLOPT_MUTE != 0 case CURLOPT_MUTE: @@ -1217,6 +1216,16 @@ convert_to_long_ex(zvalue); error = curl_easy_setopt(ch-cp, option, Z_LVAL_PP(zvalue)); break; + case CURLOPT_FOLLOWLOCATION: + convert_to_long_ex(zvalue); + if (PG(open_basedir) *PG(open_basedir)) { + if (Z_LVAL_PP(zvalue) != 0) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, CURLOPT_FOLLOWLOCATION cannot be activated when open_basedir is set); + RETURN_FALSE; + } + } + error =
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Tue Jul 4 20:13:40 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB: Eliminate some compiler warnings http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.85r2=1.86diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.85 php-src/ext/curl/interface.c:1.86 --- php-src/ext/curl/interface.c:1.85 Thu Jun 29 14:32:24 2006 +++ php-src/ext/curl/interface.cTue Jul 4 20:13:40 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.85 2006/06/29 14:32:24 bjori Exp $ */ +/* $Id: interface.c,v 1.86 2006/07/04 20:13:40 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1266,11 +1266,13 @@ ZEND_VERIFY_RESOURCE(what); if (FAILURE == php_stream_cast((php_stream *) what, PHP_STREAM_AS_STDIO, (void *) fp, REPORT_ERRORS)) { - RETURN_FALSE; + RETVAL_FALSE; + return 1; } if (!fp) { - RETURN_FALSE; + RETVAL_FALSE; + return 1; } error = CURLE_OK; @@ -1365,7 +1367,8 @@ postfields = HASH_OF(*zvalue); if (! postfields) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Couldn't get HashTable in CURLOPT_POSTFIELDS); - RETURN_FALSE; + RETVAL_FALSE; + return 1; } for (zend_hash_internal_pointer_reset(postfields); @@ -1387,7 +1390,8 @@ ++postval; /* open_basedir check */ if (php_check_open_basedir(postval TSRMLS_CC)) { - RETURN_FALSE; + RETVAL_FALSE; + return 1; } error = curl_formadd(first, last, CURLFORM_COPYNAME, string_key, @@ -1406,7 +1410,8 @@ SAVE_CURL_ERROR(ch, error); if (error != CURLE_OK) { - RETURN_FALSE; + RETVAL_FALSE + return 1; } zend_llist_add_element(ch-to_free.post, first); @@ -1434,7 +1439,8 @@ ph = HASH_OF(*zvalue); if (!ph) { php_error_docref(NULL TSRMLS_CC, E_WARNING, You must pass either an object or an array with the CURLOPT_HTTPHEADER, CURLOPT_QUOTE, CURLOPT_HTTP200ALIASES and CURLOPT_POSTQUOTE arguments); - RETURN_FALSE; + RETVAL_FALSE; + return 1; } for (zend_hash_internal_pointer_reset(ph); @@ -1451,7 +1457,8 @@ if (!slist) { efree(indiv); php_error_docref(NULL TSRMLS_CC, E_WARNING, Could not build curl_slist); - RETURN_FALSE; + RETVAL_FALSE; + return 1; } zend_llist_add_element(ch-to_free.str, indiv); } @@ -1473,7 +1480,8 @@ convert_to_string_ex(zvalue); if (php_check_open_basedir(Z_STRVAL_PP(zvalue) TSRMLS_CC)) { - RETURN_FALSE; + RETVAL_FALSE; + return 1; } copystr = estrndup(Z_STRVAL_PP(zvalue), Z_STRLEN_PP(zvalue)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/standard url.c
bjori Thu Jun 29 14:32:25 2006 UTC Modified files: /php-src/ext/curl interface.c /php-src/ext/standard url.c Log: MFB: url - URL http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.84r2=1.85diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.84 php-src/ext/curl/interface.c:1.85 --- php-src/ext/curl/interface.c:1.84 Mon Jun 26 14:10:57 2006 +++ php-src/ext/curl/interface.cThu Jun 29 14:32:24 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.84 2006/06/26 14:10:57 bjori Exp $ */ +/* $Id: interface.c,v 1.85 2006/06/29 14:32:24 bjori Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -163,12 +163,12 @@ php_url *tmp_url; \ \ if (!(tmp_url = php_url_parse_ex(str, len))) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid url '%s', str); \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid URL '%s', str); \ RETURN_FALSE; \ } \ \ if (php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) {\ - php_error_docref(NULL TSRMLS_CC, E_WARNING, Url '%s' contains unencoded control characters., str);\ + php_error_docref(NULL TSRMLS_CC, E_WARNING, URL '%s' contains unencoded control characters., str);\ RETURN_FALSE; \ } \ \ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/url.c?r1=1.93r2=1.94diff_format=u Index: php-src/ext/standard/url.c diff -u php-src/ext/standard/url.c:1.93 php-src/ext/standard/url.c:1.94 --- php-src/ext/standard/url.c:1.93 Sun Jun 25 19:19:31 2006 +++ php-src/ext/standard/url.c Thu Jun 29 14:32:24 2006 @@ -15,7 +15,7 @@ | Author: Jim Winstead [EMAIL PROTECTED] | +--+ */ -/* $Id: url.c,v 1.93 2006/06/25 19:19:31 bjori Exp $ */ +/* $Id: url.c,v 1.94 2006/06/29 14:32:24 bjori Exp $ */ #include stdlib.h #include string.h @@ -344,7 +344,7 @@ resource = php_url_parse_ex(str, str_len); if (resource == NULL) { - php_error_docref1(NULL TSRMLS_CC, str, E_WARNING, Unable to parse url); + php_error_docref1(NULL TSRMLS_CC, str, E_WARNING, Unable to parse URL); RETURN_FALSE; } @@ -375,7 +375,7 @@ if (resource-fragment != NULL) RETVAL_STRING(resource-fragment, 1); break; default: - php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid url component identifier %ld., key); + php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid URL component identifier %ld., key); RETVAL_FALSE; } goto done; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/dbase dbase.c /ext/gd gd.c
bjori Thu Jun 15 15:31:39 2006 UTC Modified files: /php-src/ext/curl interface.c /php-src/ext/dbase dbase.c /php-src/ext/gd gd.c Log: Revert array type hinting http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.81r2=1.82diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.81 php-src/ext/curl/interface.c:1.82 --- php-src/ext/curl/interface.c:1.81 Sat Jun 10 22:59:39 2006 +++ php-src/ext/curl/interface.cThu Jun 15 15:31:39 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.81 2006/06/10 22:59:39 bjori Exp $ */ +/* $Id: interface.c,v 1.82 2006/06/15 15:31:39 bjori Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -205,7 +205,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_curl_setopt_array, 0) ZEND_ARG_INFO(0, ch) - ZEND_ARG_ARRAY_INFO(0, options, 0) + ZEND_ARG_INFO(0, options)/* ARRAY_INFO(0, options, 0) */ ZEND_END_ARG_INFO() static http://cvs.php.net/viewcvs.cgi/php-src/ext/dbase/dbase.c?r1=1.79r2=1.80diff_format=u Index: php-src/ext/dbase/dbase.c diff -u php-src/ext/dbase/dbase.c:1.79 php-src/ext/dbase/dbase.c:1.80 --- php-src/ext/dbase/dbase.c:1.79 Sat Jun 10 22:59:40 2006 +++ php-src/ext/dbase/dbase.c Thu Jun 15 15:31:39 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: dbase.c,v 1.79 2006/06/10 22:59:40 bjori Exp $ */ +/* $Id: dbase.c,v 1.80 2006/06/15 15:31:39 bjori Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -749,13 +749,13 @@ static ZEND_BEGIN_ARG_INFO(arginfo_dbase_add_record, 0) ZEND_ARG_INFO(0, identifier) - ZEND_ARG_ARRAY_INFO(0, data, 0) + ZEND_ARG_INFO(0, data) /* ARRAY_INFO(0, data, 0) */ ZEND_END_ARG_INFO() static ZEND_BEGIN_ARG_INFO(arginfo_dbase_replace_record, 0) ZEND_ARG_INFO(0, identifier) - ZEND_ARG_ARRAY_INFO(0, data, 0) + ZEND_ARG_INFO(0, data) /* ARRAY_INFO(0, data, 0) */ ZEND_ARG_INFO(0, recnum) ZEND_END_ARG_INFO() @@ -780,7 +780,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_dbase_create, 0) ZEND_ARG_INFO(0, filename) - ZEND_ARG_ARRAY_INFO(0, fields, 0) + ZEND_ARG_INFO(0, fields) /* ARRAY_INFO(0, fields, 0) */ ZEND_END_ARG_INFO() static http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/gd.c?r1=1.350r2=1.351diff_format=u Index: php-src/ext/gd/gd.c diff -u php-src/ext/gd/gd.c:1.350 php-src/ext/gd/gd.c:1.351 --- php-src/ext/gd/gd.c:1.350 Sun Jun 11 19:59:53 2006 +++ php-src/ext/gd/gd.c Thu Jun 15 15:31:39 2006 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: gd.c,v 1.350 2006/06/11 19:59:53 bjori Exp $ */ +/* $Id: gd.c,v 1.351 2006/06/15 15:31:39 bjori Exp $ */ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center, Cold Spring Harbor Labs. */ @@ -148,7 +148,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagesetstyle, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_ARRAY_INFO(0, styles, 0) + ZEND_ARG_INFO(0, styles) /* ARRAY_INFO(0, styles, 0) */ ZEND_END_ARG_INFO() static @@ -627,7 +627,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagepolygon, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_ARRAY_INFO(0, points, 0) + ZEND_ARG_INFO(0, points) /* ARRAY_INFO(0, points, 0) */ ZEND_ARG_INFO(0, num_pos) ZEND_ARG_INFO(0, col) ZEND_END_ARG_INFO() @@ -635,7 +635,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagefilledpolygon, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_ARRAY_INFO(0, points, 0) + ZEND_ARG_INFO(0, points) /* ARRAY_INFO(0, points, 0) */ ZEND_ARG_INFO(0, num_pos) ZEND_ARG_INFO(0, col) ZEND_END_ARG_INFO() @@ -760,7 +760,7 @@ ZEND_ARG_INFO(0, float angle) ZEND_ARG_INFO(0, font_file) ZEND_ARG_INFO(0, text) - ZEND_ARG_ARRAY_INFO(0, extrainfo, 0) + ZEND_ARG_INFO(0, extrainfo) /* ARRAY_INFO(0, extrainfo, 0) */ ZEND_END_ARG_INFO() static @@ -773,7 +773,7 @@ ZEND_ARG_INFO(0, col) ZEND_ARG_INFO(0, font_file) ZEND_ARG_INFO(0, text) - ZEND_ARG_ARRAY_INFO(0, extrainfo, 0) + ZEND_ARG_INFO(0, extrainfo) /* ARRAY_INFO(0, extrainfo, 0) */ ZEND_END_ARG_INFO() #endif @@ -903,7 +903,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imageconvolution, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_ARRAY_INFO(0, matrix3x3, 0) + ZEND_ARG_INFO(0, matrix3x3) /* ARRAY_INFO(0, matrix3x3, 0) */ ZEND_ARG_INFO(0, div) ZEND_ARG_INFO(0, offset) ZEND_END_ARG_INFO() -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/dbase dbase.c /ext/gd gd.c
bjori Thu Jun 15 16:25:12 2006 UTC Modified files: /php-src/ext/dbase dbase.c /php-src/ext/gd gd.c /php-src/ext/curl interface.c Log: Add array type hinting Remove unnecessary array checkes http://cvs.php.net/viewcvs.cgi/php-src/ext/dbase/dbase.c?r1=1.80r2=1.81diff_format=u Index: php-src/ext/dbase/dbase.c diff -u php-src/ext/dbase/dbase.c:1.80 php-src/ext/dbase/dbase.c:1.81 --- php-src/ext/dbase/dbase.c:1.80 Thu Jun 15 15:31:39 2006 +++ php-src/ext/dbase/dbase.c Thu Jun 15 16:25:12 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: dbase.c,v 1.80 2006/06/15 15:31:39 bjori Exp $ */ +/* $Id: dbase.c,v 1.81 2006/06/15 16:25:12 bjori Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -261,10 +261,6 @@ WRONG_PARAM_COUNT; } convert_to_long_ex(dbh_id); - if (Z_TYPE_PP(fields) != IS_ARRAY) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Expected array as second parameter); - RETURN_FALSE; - } dbh = zend_list_find(Z_LVAL_PP(dbh_id), dbh_type); if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) { @@ -332,10 +328,6 @@ } convert_to_long_ex(dbh_id); convert_to_long_ex(recnum); - if (Z_TYPE_PP(fields) != IS_ARRAY) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Expected array as second parameter); - RETURN_FALSE; - } dbh = zend_list_find(Z_LVAL_PP(dbh_id), dbh_type); if (!dbh || dbh_type != DBase_GLOBAL(le_dbhead)) { @@ -581,11 +573,6 @@ } convert_to_string_ex(filename); - if (Z_TYPE_PP(fields) != IS_ARRAY) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Expected array as second parameter); - RETURN_FALSE; - } - if (php_check_open_basedir(Z_STRVAL_PP(filename) TSRMLS_CC)) { RETURN_FALSE; } @@ -638,12 +625,6 @@ RETURN_FALSE; } - if (Z_TYPE_PP (field) != IS_ARRAY) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, second parameter must be array of arrays); - free_dbf_head(dbh); - RETURN_FALSE; - } - /* field name */ if (zend_hash_index_find(Z_ARRVAL_PP(field), 0, (void **)value) == FAILURE) { php_error_docref(NULL TSRMLS_CC, E_WARNING, expected field name as first element of list in field %d, i); @@ -749,13 +730,13 @@ static ZEND_BEGIN_ARG_INFO(arginfo_dbase_add_record, 0) ZEND_ARG_INFO(0, identifier) - ZEND_ARG_INFO(0, data) /* ARRAY_INFO(0, data, 0) */ + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_END_ARG_INFO() static ZEND_BEGIN_ARG_INFO(arginfo_dbase_replace_record, 0) ZEND_ARG_INFO(0, identifier) - ZEND_ARG_INFO(0, data) /* ARRAY_INFO(0, data, 0) */ + ZEND_ARG_ARRAY_INFO(0, data, 0) ZEND_ARG_INFO(0, recnum) ZEND_END_ARG_INFO() @@ -780,7 +761,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_dbase_create, 0) ZEND_ARG_INFO(0, filename) - ZEND_ARG_INFO(0, fields) /* ARRAY_INFO(0, fields, 0) */ + ZEND_ARG_ARRAY_INFO(0, fields, 0) ZEND_END_ARG_INFO() static http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/gd.c?r1=1.351r2=1.352diff_format=u Index: php-src/ext/gd/gd.c diff -u php-src/ext/gd/gd.c:1.351 php-src/ext/gd/gd.c:1.352 --- php-src/ext/gd/gd.c:1.351 Thu Jun 15 15:31:39 2006 +++ php-src/ext/gd/gd.c Thu Jun 15 16:25:12 2006 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: gd.c,v 1.351 2006/06/15 15:31:39 bjori Exp $ */ +/* $Id: gd.c,v 1.352 2006/06/15 16:25:12 bjori Exp $ */ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center, Cold Spring Harbor Labs. */ @@ -148,7 +148,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagesetstyle, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_INFO(0, styles) /* ARRAY_INFO(0, styles, 0) */ + ZEND_ARG_ARRAY_INFO(0, styles, 0) ZEND_END_ARG_INFO() static @@ -627,7 +627,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagepolygon, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_INFO(0, points) /* ARRAY_INFO(0, points, 0) */ + ZEND_ARG_ARRAY_INFO(0, points, 0) ZEND_ARG_INFO(0, num_pos) ZEND_ARG_INFO(0, col) ZEND_END_ARG_INFO() @@ -635,7 +635,7 @@ static ZEND_BEGIN_ARG_INFO(arginfo_imagefilledpolygon, 0) ZEND_ARG_INFO(0, im) - ZEND_ARG_INFO(0, points) /* ARRAY_INFO(0, points, 0) */ + ZEND_ARG_ARRAY_INFO(0, points, 0) ZEND_ARG_INFO(0, num_pos) ZEND_ARG_INFO(0, col) ZEND_END_ARG_INFO() @@ -760,7 +760,7 @@ ZEND_ARG_INFO(0, float angle) ZEND_ARG_INFO(0, font_file) ZEND_ARG_INFO(0, text) - ZEND_ARG_INFO(0, extrainfo) /* ARRAY_INFO(0, extrainfo, 0) */ +
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Sun May 21 16:32:10 2006 UTC Modified files: /php-src/ext/curl interface.c Log: Added control character checks for cURL extension's open_basedir/safe_mode checks. http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.79r2=1.80diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.79 php-src/ext/curl/interface.c:1.80 --- php-src/ext/curl/interface.c:1.79 Thu Apr 13 11:26:43 2006 +++ php-src/ext/curl/interface.cSun May 21 16:32:10 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.79 2006/04/13 11:26:43 tony2001 Exp $ */ +/* $Id: interface.c,v 1.80 2006/05/21 16:32:10 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -161,11 +161,16 @@ strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ { \ php_url *tmp_url; \ - \ + \ if (!(tmp_url = php_url_parse_ex(str, len))) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid url '%s', str); \ RETURN_FALSE; \ } \ + \ + if (php_memnstr(str, tmp_url-path, strlen(tmp_url-path), str + len)) {\ + php_error_docref(NULL TSRMLS_CC, E_WARNING, Url '%s' contains unencoded control characters., str);\ + RETURN_FALSE; \ + } \ \ if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC)) { \ php_url_free(tmp_url); \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c multi.c
tony2001Thu Apr 13 11:26:43 2006 UTC Modified files: /php-src/ext/curl interface.c multi.c Log: MF51: fix bug #37061 (curl_exec() doesn't zero-terminate binary strings) - we get the data length from cURL, so it's binary safe. fix leak appearing when re-using curl handle http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.78r2=1.79diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.78 php-src/ext/curl/interface.c:1.79 --- php-src/ext/curl/interface.c:1.78 Tue Apr 11 11:32:06 2006 +++ php-src/ext/curl/interface.cThu Apr 13 11:26:43 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.78 2006/04/11 11:32:06 sniper Exp $ */ +/* $Id: interface.c,v 1.79 2006/04/13 11:26:43 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1206,6 +1206,8 @@ if (Z_LVAL_PP(zvalue)) { ch-handlers-write-type = PHP_CURL_BINARY; + } else { + ch-handlers-write-type = PHP_CURL_ASCII; } break; case CURLOPT_WRITEFUNCTION: @@ -1460,7 +1462,7 @@ void _php_curl_cleanup_handle(php_curl *ch) { if (ch-handlers-write-buf.len 0) { - memset(ch-handlers-write-buf, 0, sizeof(smart_str)); + smart_str_free(ch-handlers-write-buf); } if (ch-header.str_len) { efree(ch-header.str); @@ -1495,7 +1497,6 @@ if (ch-handlers-write-buf.len 0) { smart_str_free(ch-handlers-write-buf); } - RETURN_FALSE; } @@ -1503,10 +1504,8 @@ if (ch-handlers-write-method == PHP_CURL_RETURN ch-handlers-write-buf.len 0) { --ch-uses; - if (ch-handlers-write-type != PHP_CURL_BINARY) { - smart_str_0(ch-handlers-write-buf); - } - RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 0); + smart_str_0(ch-handlers-write-buf); + RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 1); } --ch-uses; RETURN_TRUE; @@ -1737,6 +1736,9 @@ zend_llist_clean(ch-to_free.slist); zend_llist_clean(ch-to_free.post); + if (ch-handlers-write-buf.len 0) { + smart_str_free(ch-handlers-write-buf); + } if (ch-handlers-write-func_name) { zval_ptr_dtor(ch-handlers-write-func_name); } @@ -1752,7 +1754,7 @@ if (ch-header.str_len 0) { efree(ch-header.str); } - + efree(ch-handlers-write); efree(ch-handlers-write_header); efree(ch-handlers-read); http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/multi.c?r1=1.21r2=1.22diff_format=u Index: php-src/ext/curl/multi.c diff -u php-src/ext/curl/multi.c:1.21 php-src/ext/curl/multi.c:1.22 --- php-src/ext/curl/multi.c:1.21 Sun Jan 1 13:09:48 2006 +++ php-src/ext/curl/multi.cThu Apr 13 11:26:43 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: multi.c,v 1.21 2006/01/01 13:09:48 sniper Exp $ */ +/* $Id: multi.c,v 1.22 2006/04/13 11:26:43 tony2001 Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -195,11 +195,8 @@ ZEND_FETCH_RESOURCE(ch, php_curl *, z_ch, -1, le_curl_name, le_curl); if (ch-handlers-write-method == PHP_CURL_RETURN ch-handlers-write-buf.len 0) { - if (ch-handlers-write-type != PHP_CURL_BINARY) { - smart_str_0(ch-handlers-write-buf); - } - - RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 0); + smart_str_0(ch-handlers-write-buf); + RETURN_STRINGL(ch-handlers-write-buf.c, ch-handlers-write-buf.len, 1); } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/gd php_gd.h /main safe_mode.c safe_mode.h
sniper Tue Apr 11 11:32:06 2006 UTC Removed files: /php-src/main safe_mode.c safe_mode.h Modified files: /php-src/ext/curl interface.c /php-src/ext/gd php_gd.h Log: - More safe_mode left-overs. http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.77r2=1.78diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.77 php-src/ext/curl/interface.c:1.78 --- php-src/ext/curl/interface.c:1.77 Sun Feb 19 05:05:42 2006 +++ php-src/ext/curl/interface.cTue Apr 11 11:32:06 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.77 2006/02/19 05:05:42 andi Exp $ */ +/* $Id: interface.c,v 1.78 2006/04/11 11:32:06 sniper Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1356,7 +1356,7 @@ break; } - /* the following options deal with files, therefor safe_mode open_basedir checks + /* the following options deal with files, therefore open_basedir checks * are required. */ case CURLOPT_COOKIEJAR: http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/php_gd.h?r1=1.69r2=1.70diff_format=u Index: php-src/ext/gd/php_gd.h diff -u php-src/ext/gd/php_gd.h:1.69 php-src/ext/gd/php_gd.h:1.70 --- php-src/ext/gd/php_gd.h:1.69Sun Mar 5 19:20:11 2006 +++ php-src/ext/gd/php_gd.h Tue Apr 11 11:32:06 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_gd.h,v 1.69 2006/03/05 19:20:11 pajoye Exp $ */ +/* $Id: php_gd.h,v 1.70 2006/04/11 11:32:06 sniper Exp $ */ #ifndef PHP_GD_H #define PHP_GD_H @@ -30,7 +30,7 @@ #if HAVE_LIBGD -/* open_basedir and safe_mode checks */ +/* open_basedir check */ #define PHP_GD_CHECK_OPEN_BASEDIR(filename, errormsg) \ if (!filename || php_check_open_basedir(filename TSRMLS_CC)) { \ php_error_docref(NULL TSRMLS_CC, E_WARNING, errormsg); \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/openssl openssl.c /ext/standard file.c ftok.c iptc.c
andiSun Feb 19 03:07:39 2006 UTC Modified files: /php-src/ext/curl interface.c /php-src/ext/opensslopenssl.c /php-src/ext/standard file.c ftok.c iptc.c Log: - More safe_mode nuking http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.75r2=1.76diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.75 php-src/ext/curl/interface.c:1.76 --- php-src/ext/curl/interface.c:1.75 Sun Feb 19 00:55:19 2006 +++ php-src/ext/curl/interface.cSun Feb 19 03:07:38 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.75 2006/02/19 00:55:19 andi Exp $ */ +/* $Id: interface.c,v 1.76 2006/02/19 03:07:38 andi Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1281,7 +1281,7 @@ * use since curl needs a long not an int. */ if (*postval == '@') { ++postval; - /* safe_mode / open_basedir check */ + /* open_basedir check */ if (php_check_open_basedir(postval TSRMLS_CC)) { RETURN_FALSE; } http://cvs.php.net/viewcvs.cgi/php-src/ext/openssl/openssl.c?r1=1.103r2=1.104diff_format=u Index: php-src/ext/openssl/openssl.c diff -u php-src/ext/openssl/openssl.c:1.103 php-src/ext/openssl/openssl.c:1.104 --- php-src/ext/openssl/openssl.c:1.103 Sun Feb 19 00:55:20 2006 +++ php-src/ext/openssl/openssl.c Sun Feb 19 03:07:38 2006 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: openssl.c,v 1.103 2006/02/19 00:55:20 andi Exp $ */ +/* $Id: openssl.c,v 1.104 2006/02/19 03:07:38 andi Exp $ */ #ifdef HAVE_CONFIG_H #include config.h @@ -179,17 +179,6 @@ } /* }}} */ -/* {{{ openssl open_basedir checks */ -inline static int php_openssl_safe_mode_chk(char *filename TSRMLS_DC) -{ - if (php_check_open_basedir(filename TSRMLS_CC)) { - return -1; - } - - return 0; -} -/* }}} */ - /* {{{ openssl - PHP bridging */ /* true global; readonly after module startup */ static char default_ssl_conf_filename[MAXPATHLEN]; @@ -439,7 +428,7 @@ /* read in the oids */ str = CONF_get_string(req-req_config, NULL, oid_file); - if (str !php_openssl_safe_mode_chk(str TSRMLS_CC)) { + if (str !php_check_open_basedir(str TSRMLS_CC)) { BIO *oid_bio = BIO_new_file(str, r); if (oid_bio) { OBJ_create_objects(oid_bio); @@ -748,7 +737,7 @@ /* read cert from the named file */ BIO *in; - if (php_openssl_safe_mode_chk(Z_STRVAL_PP(val) + (sizeof(file://) - 1) TSRMLS_CC)) { + if (php_check_open_basedir(Z_STRVAL_PP(val) + (sizeof(file://) - 1) TSRMLS_CC)) { return NULL; } @@ -800,7 +789,7 @@ return; } - if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { + if (php_check_open_basedir(filename TSRMLS_CC)) { return; } @@ -1000,7 +989,7 @@ goto end; } - if (php_openssl_safe_mode_chk(certfile TSRMLS_CC)) { + if (php_check_open_basedir(certfile TSRMLS_CC)) { goto end; } @@ -1400,7 +1389,7 @@ filename = Z_STRVAL_PP(val) + (sizeof(file://) - 1); } if (filename) { - if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { + if (php_check_open_basedir(filename TSRMLS_CC)) { return NULL; } in = BIO_new_file(filename, r); @@ -1436,7 +1425,7 @@ return; } - if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { + if (php_check_open_basedir(filename TSRMLS_CC)) { return; } @@ -1833,7 +1822,7 @@ BIO *in; if (filename) { - if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { + if (php_check_open_basedir(filename TSRMLS_CC)) { return NULL; } in = BIO_new_file(filename, r); @@ -2002,7 +1991,7 @@ RETURN_FALSE; } - if (php_openssl_safe_mode_chk(filename TSRMLS_CC)) { + if (php_check_open_basedir(filename TSRMLS_CC)) { RETURN_FALSE; } @@ -2188,7 +2177,7 @@ if (!store) { goto clean_exit; } - if
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/gd php_gd.h
andiSun Feb 19 05:05:42 2006 UTC Modified files: /php-src/ext/curl interface.c /php-src/ext/gd php_gd.h Log: - Couple of compile fixes. http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.76r2=1.77diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.76 php-src/ext/curl/interface.c:1.77 --- php-src/ext/curl/interface.c:1.76 Sun Feb 19 03:07:38 2006 +++ php-src/ext/curl/interface.cSun Feb 19 05:05:42 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.76 2006/02/19 03:07:38 andi Exp $ */ +/* $Id: interface.c,v 1.77 2006/02/19 05:05:42 andi Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -157,8 +157,8 @@ #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len) \ - if (((PG(open_basedir) *PG(open_basedir))) \ - strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ + if ((PG(open_basedir) *PG(open_basedir)) \ + strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ { \ php_url *tmp_url; \ \ @@ -167,8 +167,7 @@ RETURN_FALSE; \ } \ \ - if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC)) \ - ) { \ + if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC)) { \ php_url_free(tmp_url); \ RETURN_FALSE; \ } \ http://cvs.php.net/viewcvs.cgi/php-src/ext/gd/php_gd.h?r1=1.65r2=1.66diff_format=u Index: php-src/ext/gd/php_gd.h diff -u php-src/ext/gd/php_gd.h:1.65 php-src/ext/gd/php_gd.h:1.66 --- php-src/ext/gd/php_gd.h:1.65Sun Feb 19 00:55:19 2006 +++ php-src/ext/gd/php_gd.h Sun Feb 19 05:05:42 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: php_gd.h,v 1.65 2006/02/19 00:55:19 andi Exp $ */ +/* $Id: php_gd.h,v 1.66 2006/02/19 05:05:42 andi Exp $ */ #ifndef PHP_GD_H #define PHP_GD_H @@ -32,10 +32,9 @@ /* open_basedir and safe_mode checks */ #define PHP_GD_CHECK_OPEN_BASEDIR(filename, errormsg) \ - if (!filename || php_check_open_basedir(filename TSRMLS_CC)) \ - ) { \ - php_error_docref(NULL TSRMLS_CC, E_WARNING, errormsg); \ - RETURN_FALSE; \ + if (!filename || php_check_open_basedir(filename TSRMLS_CC)) { \ + php_error_docref(NULL TSRMLS_CC, E_WARNING, errormsg); \ + RETURN_FALSE;
[PHP-CVS] cvs: php-src /ext/curl interface.c
mikeThu Jan 26 13:20:56 2006 UTC Modified files: /php-src/ext/curl interface.c Log: - fix bug #36152 problems with curl+ssl and pgsql+ssl in same PHP http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.73r2=1.74diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.73 php-src/ext/curl/interface.c:1.74 --- php-src/ext/curl/interface.c:1.73 Thu Jan 5 18:06:15 2006 +++ php-src/ext/curl/interface.cThu Jan 26 13:20:56 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.73 2006/01/05 18:06:15 iliaa Exp $ */ +/* $Id: interface.c,v 1.74 2006/01/26 13:20:56 mike Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -47,13 +47,11 @@ /* {{{ cruft for thread safe SSL crypto locks */ #if defined(ZTS) defined(HAVE_CURL_SSL) # ifdef PHP_WIN32 -# define PHP_CURL_NEED_SSL_TSL # define PHP_CURL_NEED_OPENSSL_TSL # include openssl/crypto.h # else /* !PHP_WIN32 */ # if defined(HAVE_CURL_OPENSSL) # if defined(HAVE_OPENSSL_CRYPTO_H) -#define PHP_CURL_NEED_SSL_TSL #define PHP_CURL_NEED_OPENSSL_TSL #include openssl/crypto.h # else @@ -64,7 +62,6 @@ # endif # elif defined(HAVE_CURL_GNUTLS) # if defined(HAVE_GCRYPT_H) -#define PHP_CURL_NEED_SSL_TSL #define PHP_CURL_NEED_GNUTLS_TSL #include gcrypt.h # else @@ -94,10 +91,61 @@ int le_curl; int le_curl_multi_handle; -#ifdef PHP_CURL_NEED_SSL_TSL -static inline void php_curl_ssl_init(void); -static inline void php_curl_ssl_cleanup(void); +#ifdef PHP_CURL_NEED_OPENSSL_TSL /* {{{ */ +static MUTEX_T *php_curl_openssl_tsl = NULL; + +static void php_curl_ssl_lock(int mode, int n, const char * file, int line) +{ + if (mode CRYPTO_LOCK) { + tsrm_mutex_lock(php_curl_openssl_tsl[n]); + } else { + tsrm_mutex_unlock(php_curl_openssl_tsl[n]); + } +} + +static unsigned long php_curl_ssl_id(void) +{ + return (unsigned long) tsrm_thread_id(); +} #endif +/* }}} */ + +#ifdef PHP_CURL_NEED_GNUTLS_TSL /* {{{ */ +static int php_curl_ssl_mutex_create(void **m) +{ + if (*((MUTEX_T *) m) = tsrm_mutex_alloc()) { + return SUCCESS; + } else { + return FAILURE; + } +} + +static int php_curl_ssl_mutex_destroy(void **m) +{ + tsrm_mutex_free(*((MUTEX_T *) m)); + return SUCCESS; +} + +static int php_curl_ssl_mutex_lock(void **m) +{ + return tsrm_mutex_lock(*((MUTEX_T *) m)); +} + +static int php_curl_ssl_mutex_unlock(void **m) +{ + return tsrm_mutex_unlock(*((MUTEX_T *) m)); +} + +static struct gcry_thread_cbs php_curl_gnutls_tsl = { + GCRY_THREAD_OPTION_USER, + NULL, + php_curl_ssl_mutex_create, + php_curl_ssl_mutex_destroy, + php_curl_ssl_mutex_lock, + php_curl_ssl_mutex_unlock +}; +#endif +/* }}} */ static void _php_curl_close(zend_rsrc_list_entry *rsrc TSRMLS_DC); @@ -449,9 +497,24 @@ REGISTER_CURL_CONSTANT(CURLFTPAUTH_TLS); #endif -#ifdef PHP_CURL_NEED_SSL_TSL - php_curl_ssl_init(); +#ifdef PHP_CURL_NEED_OPENSSL_TSL + { + int i, c = CRYPTO_num_locks(); + + php_curl_openssl_tsl = malloc(c * sizeof(MUTEX_T)); + + for (i = 0; i c; ++i) { + php_curl_openssl_tsl[i] = tsrm_mutex_alloc(); + } + + CRYPTO_set_id_callback(php_curl_ssl_id); + CRYPTO_set_locking_callback(php_curl_ssl_lock); + } #endif +#ifdef PHP_CURL_NEED_GNUTLS_TSL + gcry_control(GCRYCTL_SET_THREAD_CBS, php_curl_gnutls_tsl); +#endif + if (curl_global_init(CURL_GLOBAL_SSL) != CURLE_OK) { return FAILURE; } @@ -488,9 +551,26 @@ php_unregister_url_stream_wrapper(ftp TSRMLS_CC); php_unregister_url_stream_wrapper(ldap TSRMLS_CC); #endif +#ifdef PHP_CURL_NEED_OPENSSL_TSL + /* ensure there are valid callbacks set */ + CRYPTO_set_id_callback(php_curl_ssl_id); + CRYPTO_set_locking_callback(php_curl_ssl_lock); +#endif curl_global_cleanup(); -#ifdef PHP_CURL_NEED_SSL_TSL - php_curl_ssl_cleanup(); +#ifdef PHP_CURL_NEED_OPENSSL_TSL + if (php_curl_openssl_tsl) { + int i, c = CRYPTO_num_locks(); + + CRYPTO_set_id_callback(NULL); + CRYPTO_set_locking_callback(NULL); + + for (i = 0; i c; ++i) { + tsrm_mutex_free(php_curl_openssl_tsl[i]); + } + + free(php_curl_openssl_tsl); + php_curl_openssl_tsl = NULL; + } #endif return SUCCESS; } @@ -1683,105 +1763,6 @@ } /* }}} */ -#ifdef PHP_CURL_NEED_OPENSSL_TSL -/* {{{ */ -static MUTEX_T *php_curl_openssl_tsl = NULL; - -static void
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Thu Jan 5 18:06:15 2006 UTC Modified files: /php-src/ext/curl interface.c Log: MFB4: Fixed bug #35908 (curl extension uses undefined GCRY_THREAD_OPTIONS_USER). http://cvs.php.net/viewcvs.cgi/php-src/ext/curl/interface.c?r1=1.72r2=1.73diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.72 php-src/ext/curl/interface.c:1.73 --- php-src/ext/curl/interface.c:1.72 Sun Jan 1 13:09:48 2006 +++ php-src/ext/curl/interface.cThu Jan 5 18:06:15 2006 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.72 2006/01/01 13:09:48 sniper Exp $ */ +/* $Id: interface.c,v 1.73 2006/01/05 18:06:15 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1762,7 +1762,7 @@ } static struct gcry_thread_cbs php_curl_gnutls_tsl = { - GCRY_THREAD_OPTIONS_USER, + GCRY_THREAD_OPTION_USER, NULL, php_curl_ssl_mutex_create, php_curl_ssl_mutex_destroy, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
sniper Sun Nov 27 15:10:15 2005 EDT Modified files: /php-src/ext/curl interface.c Log: MF51: improve open_basedir check http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.69r2=1.70ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.69 php-src/ext/curl/interface.c:1.70 --- php-src/ext/curl/interface.c:1.69 Mon Oct 31 18:45:50 2005 +++ php-src/ext/curl/interface.cSun Nov 27 15:10:15 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.69 2005/10/31 23:45:50 iliaa Exp $ */ +/* $Id: interface.c,v 1.70 2005/11/27 20:10:15 sniper Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -110,7 +110,7 @@ #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len) \ if (((PG(open_basedir) *PG(open_basedir)) || PG(safe_mode)) \ - strncasecmp(str, file://, sizeof(file://) - 1) == 0) \ + strncasecmp(str, file:, sizeof(file:) - 1) == 0) \ { \ php_url *tmp_url; \ \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Mon Oct 31 18:45:50 2005 EDT Modified files: /php-src/ext/curl interface.c Log: MFB51: Additional open_basedir/safe_mode checks. http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.68r2=1.69ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.68 php-src/ext/curl/interface.c:1.69 --- php-src/ext/curl/interface.c:1.68 Wed Oct 26 07:33:05 2005 +++ php-src/ext/curl/interface.cMon Oct 31 18:45:50 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.68 2005/10/26 11:33:05 sniper Exp $ */ +/* $Id: interface.c,v 1.69 2005/10/31 23:45:50 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -119,7 +119,7 @@ RETURN_FALSE; \ } \ \ - if (tmp_url-query || php_check_open_basedir(tmp_url-path TSRMLS_CC) || \ + if (tmp_url-query || tmp_url-fragment || php_check_open_basedir(tmp_url-path TSRMLS_CC) || \ (PG(safe_mode) !php_checkuid(tmp_url-path, rb+, CHECKUID_CHECK_MODE_PARAM)) \ ) { \ php_url_free(tmp_url); \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
sniper Wed Oct 26 07:33:08 2005 EDT Modified files: /php-src/ext/curl interface.c Log: Fix indent http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.67r2=1.68ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.67 php-src/ext/curl/interface.c:1.68 --- php-src/ext/curl/interface.c:1.67 Tue Oct 25 10:29:07 2005 +++ php-src/ext/curl/interface.cWed Oct 26 07:33:05 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.67 2005/10/25 14:29:07 mike Exp $ */ +/* $Id: interface.c,v 1.68 2005/10/26 11:33:05 sniper Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -46,40 +46,40 @@ /* {{{ cruft for thread safe SSL crypto locks */ #if defined(ZTS) defined(HAVE_CURL_SSL) -# ifdef PHP_WIN32 -# define PHP_CURL_NEED_SSL_TSL -# define PHP_CURL_NEED_OPENSSL_TSL -# include openssl/crypto.h -# else /* !PHP_WIN32 */ -# if defined(HAVE_CURL_OPENSSL) -# if defined(HAVE_OPENSSL_CRYPTO_H) -# define PHP_CURL_NEED_SSL_TSL -# define PHP_CURL_NEED_OPENSSL_TSL -# include openssl/crypto.h -# else -# warning \ - libcurl was compiled with OpenSSL support, but configure could not find \ - openssl/crypto.h; thus no SSL crypto locking callbacks will be set, which may \ - cause random crashes on SSL requests -# endif -# elif defined(HAVE_CURL_GNUTLS) -# if defined(HAVE_GCRYPT_H) -# define PHP_CURL_NEED_SSL_TSL -# define PHP_CURL_NEED_GNUTLS_TSL -# include gcrypt.h -# else -# warning \ - libcurl was compiled with GnuTLS support, but configure could not find \ - gcrypt.h; thus no SSL crypto locking callbacks will be set, which may \ - cause random crashes on SSL requests -# endif -# else -# warning \ - libcurl was compiled with SSL support, but configure could not determine which \ - library was used; thus no SSL crypto locking callbacks will be set, which may \ - cause random crashes on SSL requests -# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS */ -# endif /* PHP_WIN32 */ +# ifdef PHP_WIN32 +# define PHP_CURL_NEED_SSL_TSL +# define PHP_CURL_NEED_OPENSSL_TSL +# include openssl/crypto.h +# else /* !PHP_WIN32 */ +# if defined(HAVE_CURL_OPENSSL) +# if defined(HAVE_OPENSSL_CRYPTO_H) +#define PHP_CURL_NEED_SSL_TSL +#define PHP_CURL_NEED_OPENSSL_TSL +#include openssl/crypto.h +# else +#warning \ + libcurl was compiled with OpenSSL support, but configure could not find \ + openssl/crypto.h; thus no SSL crypto locking callbacks will be set, which may \ + cause random crashes on SSL requests +# endif +# elif defined(HAVE_CURL_GNUTLS) +# if defined(HAVE_GCRYPT_H) +#define PHP_CURL_NEED_SSL_TSL +#define PHP_CURL_NEED_GNUTLS_TSL +#include gcrypt.h +# else +#warning \ + libcurl was compiled with GnuTLS support, but configure could not find \ + gcrypt.h; thus no SSL crypto locking callbacks will be set, which may \ + cause random crashes on SSL requests +# endif +# else +# warning \ + libcurl was compiled with SSL support, but configure could not determine which \ + library was used; thus no SSL crypto locking callbacks will be set, which may \ + cause random crashes on SSL requests +# endif /* HAVE_CURL_OPENSSL || HAVE_CURL_GNUTLS */ +# endif /* PHP_WIN32 */ #endif /* ZTS HAVE_CURL_SSL */ /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Sun Oct 16 22:42:20 2005 EDT Modified files: /php-src/ext/curl interface.c Log: Further URL validations in safe_mode/open_basedir configs. http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.65r2=1.66ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.65 php-src/ext/curl/interface.c:1.66 --- php-src/ext/curl/interface.c:1.65 Thu Oct 6 16:37:25 2005 +++ php-src/ext/curl/interface.cSun Oct 16 22:42:17 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.65 2005/10/06 20:37:25 iliaa Exp $ */ +/* $Id: interface.c,v 1.66 2005/10/17 02:42:17 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -75,7 +75,7 @@ RETURN_FALSE; \ } \ \ - if (php_check_open_basedir(tmp_url-path TSRMLS_CC) || \ + if (tmp_url-query || php_check_open_basedir(tmp_url-path TSRMLS_CC) || \ (PG(safe_mode) !php_checkuid(tmp_url-path, rb+, CHECKUID_CHECK_MODE_PARAM)) \ ) { \ php_url_free(tmp_url); \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c /ext/gd gd.c gd_ctx.c
iliaa Thu Oct 6 16:37:25 2005 EDT Modified files: /php-src/ext/gd gd_ctx.c gd.c /php-src/ext/curl interface.c Log: Added missing safe_mode checks. http://cvs.php.net/diff.php/php-src/ext/gd/gd_ctx.c?r1=1.22r2=1.23ty=u Index: php-src/ext/gd/gd_ctx.c diff -u php-src/ext/gd/gd_ctx.c:1.22 php-src/ext/gd/gd_ctx.c:1.23 --- php-src/ext/gd/gd_ctx.c:1.22Wed Aug 3 10:07:13 2005 +++ php-src/ext/gd/gd_ctx.c Thu Oct 6 16:37:22 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: gd_ctx.c,v 1.22 2005/08/03 14:07:13 sniper Exp $ */ +/* $Id: gd_ctx.c,v 1.23 2005/10/06 20:37:22 iliaa Exp $ */ #include php_gd.h @@ -82,7 +82,7 @@ } if ((argc == 2) || (argc 2 Z_STRLEN_PP(file))) { - if (!fn || php_check_open_basedir(fn TSRMLS_CC)) { + if (!fn || php_check_open_basedir(fn TSRMLS_CC) || (PG(safe_mode) !php_checkuid(fn, rb+, CHECKUID_CHECK_FILE_AND_DIR))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid filename '%s', fn); RETURN_FALSE; } http://cvs.php.net/diff.php/php-src/ext/gd/gd.c?r1=1.314r2=1.315ty=u Index: php-src/ext/gd/gd.c diff -u php-src/ext/gd/gd.c:1.314 php-src/ext/gd/gd.c:1.315 --- php-src/ext/gd/gd.c:1.314 Sun Oct 2 14:06:12 2005 +++ php-src/ext/gd/gd.c Thu Oct 6 16:37:22 2005 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: gd.c,v 1.314 2005/10/02 18:06:12 pajoye Exp $ */ +/* $Id: gd.c,v 1.315 2005/10/06 20:37:22 iliaa Exp $ */ /* gd 1.2 is copyright 1994, 1995, Quest Protein Database Center, Cold Spring Harbor Labs. */ @@ -1709,7 +1709,7 @@ } if ((argc == 2) || (argc 2 Z_STRLEN_PP(file))) { - if (!fn || php_check_open_basedir(fn TSRMLS_CC)) { + if (!fn || php_check_open_basedir(fn TSRMLS_CC) || (PG(safe_mode) !php_checkuid(fn, rb+, CHECKUID_CHECK_FILE_AND_DIR))) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Invalid filename '%s', fn); RETURN_FALSE; } http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.64r2=1.65ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.64 php-src/ext/curl/interface.c:1.65 --- php-src/ext/curl/interface.c:1.64 Wed Oct 5 10:32:19 2005 +++ php-src/ext/curl/interface.cThu Oct 6 16:37:25 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.64 2005/10/05 14:32:19 iliaa Exp $ */ +/* $Id: interface.c,v 1.65 2005/10/06 20:37:25 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -65,7 +65,7 @@ #define CAAZ(s, v) add_assoc_zval_ex(return_value, s, sizeof(s), (zval *) v); #define PHP_CURL_CHECK_OPEN_BASEDIR(str, len) \ - if (PG(open_basedir) *PG(open_basedir) \ + if (((PG(open_basedir) *PG(open_basedir)) || PG(safe_mode)) \ strncasecmp(str, file://, sizeof(file://) - 1) == 0) \ { \ php_url *tmp_url; \ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/curl interface.c
iliaa Wed Oct 5 10:32:25 2005 EDT Modified files: /php-src/ext/curl interface.c Log: Missing safe_mode/open_basedir checks for file uploads. http://cvs.php.net/diff.php/php-src/ext/curl/interface.c?r1=1.63r2=1.64ty=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.63 php-src/ext/curl/interface.c:1.64 --- php-src/ext/curl/interface.c:1.63 Tue Aug 9 10:14:55 2005 +++ php-src/ext/curl/interface.cWed Oct 5 10:32:19 2005 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: interface.c,v 1.63 2005/08/09 14:14:55 iliaa Exp $ */ +/* $Id: interface.c,v 1.64 2005/10/05 14:32:19 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1152,10 +1152,15 @@ * must be explicitly cast to long in curl_formadd * use since curl needs a long not an int. */ if (*postval == '@') { + ++postval; + /* safe_mode / open_basedir check */ + if (php_check_open_basedir(postval TSRMLS_CC) || (PG(safe_mode) !php_checkuid(postval, rb+, CHECKUID_CHECK_MODE_PARAM))) { + RETURN_FALSE; + } error = curl_formadd(first, last, CURLFORM_COPYNAME, string_key, CURLFORM_NAMELENGTH, (long)string_key_len - 1, - CURLFORM_FILE, ++postval, + CURLFORM_FILE, postval, CURLFORM_END); } else { error = curl_formadd(first, last, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php