+ZEND_BEGIN_ARG_INFO_EX(ai_HttpClient_setDebug, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 1)
+ZEND_END_ARG_INFO();
+static PHP_METHOD(HttpClient, setDebug)
+{
+ zend_fcall_info fci;
+ zend_fcall_info_cache fcc;
+ php_http_client_object_t *client_obj;
+
+ fci.size = 0;
+ php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "|f", &fci, &fcc), invalid_arg, return);
+
+ client_obj = PHP_HTTP_OBJ(NULL, getThis());
+
+ if (client_obj->debug.fci.size > 0) {
+ zval_ptr_dtor(&client_obj->debug.fci.function_name);
+ client_obj->debug.fci.size = 0;
+ }
+ if (fci.size > 0) {
+ memcpy(&client_obj->debug.fci, &fci, sizeof(fci));
+ memcpy(&client_obj->debug.fcc, &fcc, sizeof(fcc));
+ Z_ADDREF_P(&fci.function_name);
+ client_obj->client->callback.debug.func = handle_debug;
+ client_obj->client->callback.debug.arg = client_obj;
+ } else {
+ client_obj->client->callback.debug.func = NULL;
+ client_obj->client->callback.debug.arg = NULL;
+ }
+
+ RETVAL_ZVAL(getThis(), 1, 0);
+}
+