- API juggling
[m6w6/ext-http] / http_request_api.c
index 24b1acc5a8bd3e0a3cd53f237f7cbbd5f916a158..a83cacfa6da3f0666d8890e1fc505414b15f5c19 100644 (file)
 #ifdef HAVE_CONFIG_H
 #      include "config.h"
 #endif
+#include "php.h"
+
+#include "php_http.h"
+#include "php_http_std_defs.h"
+#include "php_http_api.h"
+#include "php_http_request_api.h"
+#include "php_http_url_api.h"
+
+#include "phpstr/phpstr.h"
 
 #ifdef PHP_WIN32
 #      include <winsock2.h>
 
 #include <curl/curl.h>
 
-#include "phpstr/phpstr.h"
-
-#include "php.h"
-#include "php_http.h"
-#include "php_http_std_defs.h"
-#include "php_http_api.h"
-#include "php_http_request_api.h"
-#include "php_http_url_api.h"
+ZEND_EXTERN_MODULE_GLOBALS(http);
 
 #ifndef HTTP_CURL_USE_ZEND_MM
 #      define HTTP_CURL_USE_ZEND_MM 0
 #endif
 
-ZEND_EXTERN_MODULE_GLOBALS(http)
-
 #if LIBCURL_VERSION_NUM < 0x070c00
 #      define curl_easy_strerror(code) HTTP_G(request).error
 #endif
@@ -355,6 +355,7 @@ PHP_HTTP_API STATUS _http_request_init(CURL *ch, http_request_method meth, char
 
        /* progress callback */
        if (zoption = http_curl_getopt(options, "onprogress", 0)) {
+               HTTP_CURL_OPT(NOPROGRESS, 0);
                HTTP_CURL_OPT(PROGRESSFUNCTION, http_curl_progress_callback);
                HTTP_CURL_OPT(PROGRESSDATA,  http_curl_callback_data(zoption));
        } else {
@@ -507,7 +508,7 @@ PHP_HTTP_API STATUS _http_request_init(CURL *ch, http_request_method meth, char
        } else {
                HTTP_CURL_OPT(COOKIEFILE, NULL);
        }
-       
+
        /* cookiestore, read initial cookies from that file and store cookies back into that file */
        if ((zoption = http_curl_getopt(options, "cookiestore", IS_STRING)) && Z_STRLEN_P(zoption)) {
                HTTP_CURL_OPT(COOKIEFILE, http_request_data_copy(COPY_STRING, Z_STRVAL_P(zoption)));
@@ -920,6 +921,10 @@ static int http_curl_progress_callback(void *data, double dltotal, double dlnow,
        params_pass[2] = &params_local[2];
        params_pass[3] = &params_local[3];
 
+       INIT_PZVAL(params_pass[0]);
+       INIT_PZVAL(params_pass[1]);
+       INIT_PZVAL(params_pass[2]);
+       INIT_PZVAL(params_pass[3]);
        ZVAL_DOUBLE(params_pass[0], dltotal);
        ZVAL_DOUBLE(params_pass[1], dlnow);
        ZVAL_DOUBLE(params_pass[2], ultotal);
@@ -937,8 +942,10 @@ static int http_curl_debug_callback(CURL *ch, curl_infotype type, char *string,
        params_pass[0] = &params_local[0];
        params_pass[1] = &params_local[1];
 
+       INIT_PZVAL(params_pass[0]);
+       INIT_PZVAL(params_pass[1]);
        ZVAL_LONG(params_pass[0], type);
-       ZVAL_STRINGL(params_pass[1], string, length, 1);
+       ZVAL_STRINGL(params_pass[1], string, length, 0);
 
        call_user_function(EG(function_table), NULL, func, &retval, 2, params_pass TSRMLS_CC);