tony2001                Thu Oct  5 15:06:41 2006 UTC

  Modified files:              (Branch: PHP_5_2)
    /php-src/ext/curl   multi.c php_curl.h 
  Log:
  MFH: decrement ch->uses (or destroy handle) when destroying multi handle
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/multi.c?r1=1.19.2.3.2.4&r2=1.19.2.3.2.5&diff_format=u
Index: php-src/ext/curl/multi.c
diff -u php-src/ext/curl/multi.c:1.19.2.3.2.4 
php-src/ext/curl/multi.c:1.19.2.3.2.5
--- php-src/ext/curl/multi.c:1.19.2.3.2.4       Fri Sep 15 15:04:59 2006
+++ php-src/ext/curl/multi.c    Thu Oct  5 15:06:40 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: multi.c,v 1.19.2.3.2.4 2006/09/15 15:04:59 tony2001 Exp $ */
+/* $Id: multi.c,v 1.19.2.3.2.5 2006/10/05 15:06:40 tony2001 Exp $ */
 
 #define ZEND_INCLUDE_FULL_WINDOWS_HEADERS
 
@@ -62,7 +62,7 @@
        mh = ecalloc(1, sizeof(php_curlm));
        mh->multi = curl_multi_init();
 
-       zend_llist_init(&mh->easyh, sizeof(zval), (llist_dtor_func_t) NULL, 0);
+       zend_llist_init(&mh->easyh, sizeof(zval), _php_curl_multi_cleanup_list, 
0);
 
        ZEND_REGISTER_RESOURCE(return_value, mh, le_curl_multi_handle);
 }
@@ -98,6 +98,27 @@
 }
 /* }}} */
 
+void _php_curl_multi_cleanup_list(void *data) /* {{{ */
+{
+       zval *z_ch = (zval *)data;
+       php_curl *ch;
+
+       if (!z_ch) {
+               return;
+       }
+       
+       ch = (php_curl *) zend_fetch_resource(&z_ch TSRMLS_CC, -1, 
le_curl_name, NULL, 1, le_curl);
+       if (!ch) {
+               return;
+       }
+
+       if (ch->uses) { 
+               ch->uses--;
+       } else {
+               zend_list_delete(Z_LVAL_P(z_ch));
+       }
+}
+/* }}} */
 
 /* Used internally as comparison routine passed to zend_list_del_element */
 static int curl_compare_resources( zval *z1, zval **z2 )
http://cvs.php.net/viewvc.cgi/php-src/ext/curl/php_curl.h?r1=1.44.2.2&r2=1.44.2.2.2.1&diff_format=u
Index: php-src/ext/curl/php_curl.h
diff -u php-src/ext/curl/php_curl.h:1.44.2.2 
php-src/ext/curl/php_curl.h:1.44.2.2.2.1
--- php-src/ext/curl/php_curl.h:1.44.2.2        Tue Jan 24 20:11:14 2006
+++ php-src/ext/curl/php_curl.h Thu Oct  5 15:06:40 2006
@@ -17,7 +17,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: php_curl.h,v 1.44.2.2 2006/01/24 20:11:14 iliaa Exp $ */
+/* $Id: php_curl.h,v 1.44.2.2.2.1 2006/10/05 15:06:40 tony2001 Exp $ */
 
 #ifndef _PHP_CURL_H
 #define _PHP_CURL_H
@@ -138,6 +138,7 @@
 } php_curlm;
 
 void _php_curl_cleanup_handle(php_curl *);
+void _php_curl_multi_cleanup_list(void *data);
 
 /* streams support */
 

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to