pierrick                                 Sat, 03 Dec 2011 23:53:27 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=320335

Log:
Add the curl handle to the progress callback function

Changed paths:
    U   php/php-src/trunk/ext/curl/interface.c

Modified: php/php-src/trunk/ext/curl/interface.c
===================================================================
--- php/php-src/trunk/ext/curl/interface.c      2011-12-03 23:53:05 UTC (rev 
320334)
+++ php/php-src/trunk/ext/curl/interface.c      2011-12-03 23:53:27 UTC (rev 
320335)
@@ -1290,7 +1290,8 @@

        switch (t->method) {
                case PHP_CURL_USER: {
-                       zval **argv[4];
+                       zval **argv[5];
+                       zval  *handle = NULL;
                        zval  *zdltotal = NULL;
                        zval  *zdlnow = NULL;
                        zval  *zultotal = NULL;
@@ -1300,27 +1301,31 @@
                        zend_fcall_info fci;
                        TSRMLS_FETCH_FROM_CTX(ch->thread_ctx);

+                       MAKE_STD_ZVAL(handle);
                        MAKE_STD_ZVAL(zdltotal);
                        MAKE_STD_ZVAL(zdlnow);
                        MAKE_STD_ZVAL(zultotal);
                        MAKE_STD_ZVAL(zulnow);

+                       ZVAL_RESOURCE(handle, ch->id);
+                       zend_list_addref(ch->id);
                        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;
-                       argv[2] = &zultotal;
-                       argv[3] = &zulnow;
+                       argv[0] = &handle;
+                       argv[1] = &zdltotal;
+                       argv[2] = &zdlnow;
+                       argv[3] = &zultotal;
+                       argv[4] = &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.param_count = 5;
                        fci.params = argv;
                        fci.no_separation = 0;
                        fci.symbol_table = NULL;
@@ -1343,6 +1348,7 @@
                        zval_ptr_dtor(argv[1]);
                        zval_ptr_dtor(argv[2]);
                        zval_ptr_dtor(argv[3]);
+                       zval_ptr_dtor(argv[4]);
                        break;
                }
        }

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

Reply via email to