summaryrefslogtreecommitdiff
path: root/ext/curl/curl.c
diff options
context:
space:
mode:
authorDerick Rethans <derick@php.net>2002-03-24 10:40:21 +0000
committerDerick Rethans <derick@php.net>2002-03-24 10:40:21 +0000
commit66e510f60a55ace0594ac8f0a1d0cca509bea3fa (patch)
treed4a06ae5e541b058dc5b34e8f42afa614b2f09d6 /ext/curl/curl.c
parent365505daed9e3029d6496eb79462cd0ade5db788 (diff)
downloadphp-git-66e510f60a55ace0594ac8f0a1d0cca509bea3fa.tar.gz
- Fix for bug #16232 (Patch by Alan Knowles <alan@akbkhome.com>)
Diffstat (limited to 'ext/curl/curl.c')
-rw-r--r--ext/curl/curl.c33
1 files changed, 13 insertions, 20 deletions
diff --git a/ext/curl/curl.c b/ext/curl/curl.c
index a5ef48c5ae..9406138fb9 100644
--- a/ext/curl/curl.c
+++ b/ext/curl/curl.c
@@ -311,7 +311,7 @@ static size_t curl_write(char *data, size_t size, size_t nmemb, void *ctx)
ZVAL_RESOURCE(argv[0], ch->id);
zend_list_addref(ch->id);
- ZVAL_STRINGL(argv[1], data, (int) length, 1);
+ ZVAL_STRINGL(argv[1], data, length, 1);
error = call_user_function(EG(function_table),
NULL,
@@ -365,7 +365,7 @@ static size_t curl_read(char *data, size_t size, size_t nmemb, void *ctx)
zend_list_addref(ch->id);
ZVAL_RESOURCE(argv[1], t->fd);
zend_list_addref(t->fd);
- ZVAL_LONG(argv[2], size * nmemb);
+ ZVAL_LONG(argv[2], (int) size * nmemb);
error = call_user_function(EG(function_table),
NULL,
@@ -398,8 +398,7 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
{
php_curl *ch = (php_curl *) ctx;
php_curl_write *t = ch->handlers->write_header;
- int error;
- int length;
+ size_t length = size * nmemb;
TSRMLS_FETCH();
switch (t->method) {
@@ -407,33 +406,30 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
/* Handle special case write when we're returning the entire transfer
*/
if (ch->handlers->write->method == PHP_CURL_RETURN)
- smart_str_appendl(&ch->handlers->write->buf, data, size * nmemb);
+ smart_str_appendl(&ch->handlers->write->buf, data, (int) length);
else
PUTS(data);
-
- length = size * nmemb;
-
break;
case PHP_CURL_FILE:
- length = fwrite(data, size, nmemb, t->fp);
- break;
+ return fwrite(data, size, nmemb, t->fp);
case PHP_CURL_USER: {
zval *argv[2];
zval *retval;
+ int error;
TSRMLS_FETCH();
-
+
MAKE_STD_ZVAL(argv[0]);
MAKE_STD_ZVAL(argv[1]);
MAKE_STD_ZVAL(retval);
ZVAL_RESOURCE(argv[0], ch->id);
zend_list_addref(ch->id);
- ZVAL_STRINGL(argv[0], data, size * nmemb, 1);
+ ZVAL_STRINGL(argv[1], data, length, 1);
- error = call_user_function(EG(function_table),
- NULL,
+ error = call_user_function(EG(function_table),
+ NULL,
t->func,
- retval, 2, argv TSRMLS_CC);
+ retval, 2, argv TSRMLS_CC);
if (error == FAILURE) {
php_error(E_WARNING, "Couldn't call the CURLOPT_HEADERFUNCTION");
length = -1;
@@ -441,17 +437,14 @@ static size_t curl_write_header(char *data, size_t size, size_t nmemb, void *ctx
else {
length = Z_LVAL_P(retval);
}
-
zval_ptr_dtor(&argv[0]);
zval_ptr_dtor(&argv[1]);
zval_ptr_dtor(&retval);
break;
}
case PHP_CURL_IGNORE:
- length = size * nmemb;
- break;
- }
-
+ return length;
+ }
return length;
}
/* }}} */