X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_misc.c;h=c4661b7befc2988875ba6cacfbbbaf96cff83c96;hp=fa4bbbf2854add35e959331ea20fc48065acc843;hb=19a017f746fe281d828d1783ef2a5991ce6114e4;hpb=f2f85ecef84a1dfc7982f9fd9b10f5a0dadb2540 diff --git a/php_http_misc.c b/php_http_misc.c index fa4bbbf..c4661b7 100644 --- a/php_http_misc.c +++ b/php_http_misc.c @@ -212,6 +212,22 @@ PHP_HTTP_API size_t php_http_pass_wrapper(php_http_pass_callback_arg_t *cb, cons return cb->cb_zts(cb->cb_arg, str, len TSRMLS_CC); } +PHP_HTTP_API size_t php_http_pass_fcall_callback(void *cb_arg, const char *str, size_t len) +{ + php_http_pass_fcall_arg_t *fcd = cb_arg; + zval *zdata; + TSRMLS_FETCH_FROM_CTX(fcd->ts); + + MAKE_STD_ZVAL(zdata); + ZVAL_STRINGL(zdata, str, len, 1); + if (SUCCESS == zend_fcall_info_argn(&fcd->fci TSRMLS_CC, 2, &fcd->fcz, &zdata)) { + zend_fcall_info_call(&fcd->fci, &fcd->fcc, NULL, NULL TSRMLS_CC); + zend_fcall_info_args_clear(&fcd->fci, 0); + } + zval_ptr_dtor(&zdata); + return len; +} + /* ERROR */ static inline int scope_error_handling(long type TSRMLS_DC)