iliaa Tue Aug 29 17:10:40 2006 UTC Modified files: (Branch: PHP_5_2) /php-src NEWS /php-src/ext/curl interface.c Log: Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle). http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.224&r2=1.2027.2.547.2.225&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.224 php-src/NEWS:1.2027.2.547.2.225 --- php-src/NEWS:1.2027.2.547.2.224 Mon Aug 28 23:38:49 2006 +++ php-src/NEWS Tue Aug 29 17:10:40 2006 @@ -5,6 +5,8 @@ SoapServer::setClass() method). (Dmitry) - Added support for hexadecimal entity in imagettftext() for the bundled GD. (Pierre) +- Fixed bug #38637 (curl_copy_handle() fails to fully copy the cURL handle). + (Tony, Ilia) - Fixed bug #38624 (Strange warning when incrementing an object property and exception is thrown from __get method). (Tony) - Fixed bug #38543 (shutdown_executor() may segfault when memory_limit is too http://cvs.php.net/viewvc.cgi/php-src/ext/curl/interface.c?r1=1.62.2.14.2.7&r2=1.62.2.14.2.8&diff_format=u Index: php-src/ext/curl/interface.c diff -u php-src/ext/curl/interface.c:1.62.2.14.2.7 php-src/ext/curl/interface.c:1.62.2.14.2.8 --- php-src/ext/curl/interface.c:1.62.2.14.2.7 Thu Aug 10 14:40:13 2006 +++ php-src/ext/curl/interface.c Tue Aug 29 17:10:40 2006 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: interface.c,v 1.62.2.14.2.7 2006/08/10 14:40:13 iliaa Exp $ */ +/* $Id: interface.c,v 1.62.2.14.2.8 2006/08/29 17:10:40 iliaa Exp $ */ #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS @@ -1139,7 +1139,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; @@ -1147,6 +1147,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