X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_client.c;h=0de62c9bdbd33bbcc9610459efb25dc1f1ed90e2;hp=de09590ffd23d2a1b1f968cc9b82f11d5dc00a6d;hb=628bdcb6edd65cb683b43af16cd0ce619b56d58a;hpb=305ac2f007710b684d96b05f33964b4f6a4e3e4d diff --git a/php_http_client.c b/php_http_client.c index de09590..0de62c9 100644 --- a/php_http_client.c +++ b/php_http_client.c @@ -296,11 +296,8 @@ zend_object_value php_http_client_object_new_ex(zend_class_entry *ce, php_http_c o = ecalloc(1, sizeof(*o)); zend_object_std_init((zend_object *) o, ce TSRMLS_CC); -#if PHP_VERSION_ID < 50339 - zend_hash_copy(((zend_object *) o)->properties, &(ce->default_properties), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval*)); -#else object_properties_init((zend_object *) o, ce); -#endif + ov.handle = zend_objects_store_put(o, NULL, php_http_client_object_free, NULL TSRMLS_CC); ov.handlers = &php_http_client_object_handlers; @@ -422,10 +419,10 @@ STATUS php_http_client_object_handle_response(zval *zclient TSRMLS_DC) zval_ptr_dtor(&info); if ((msg = obj->client->response.message)) { - /* FIXME: update history */ if (i_zend_is_true(zend_read_property(php_http_client_class_entry, zclient, ZEND_STRL("recordHistory"), 0 TSRMLS_CC))) { zval *new_hist, *old_hist = zend_read_property(php_http_client_class_entry, zclient, ZEND_STRL("history"), 0 TSRMLS_CC); - zend_object_value ov = php_http_client_object_message(zclient, php_http_message_copy(msg, NULL) TSRMLS_CC); + php_http_message_t *zipped = php_http_message_zip(obj->client->response.message, obj->client->request.message); + zend_object_value ov = php_http_client_object_message(zclient, zipped TSRMLS_CC); MAKE_STD_ZVAL(new_hist); ZVAL_OBJVAL(new_hist, ov, 0); @@ -461,7 +458,7 @@ STATUS php_http_client_object_handle_response(zval *zclient TSRMLS_DC) /* update the actual request message */ MAKE_STD_ZVAL(message); - ZVAL_OBJVAL(message, php_http_message_object_new_ex(php_http_message_get_class_entry(), php_http_message_copy_ex(msg, NULL, 0), NULL TSRMLS_CC), 0); + ZVAL_OBJVAL(message, php_http_message_object_new_ex(php_http_message_get_class_entry(), msg, NULL TSRMLS_CC), 0); zend_update_property(php_http_client_class_entry, zclient, ZEND_STRL("requestMessage"), message TSRMLS_CC); zval_ptr_dtor(&message); obj->client->request.message = php_http_message_init(NULL, 0 TSRMLS_CC); @@ -774,7 +771,7 @@ PHP_METHOD(HttpClient, addCookies) zval *opts = NULL; if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|a!/", &opts)) { - php_http_client_options_set_subr(getThis(), ZEND_STRS("ssl"), opts, 0 TSRMLS_CC); + php_http_client_options_set_subr(getThis(), ZEND_STRS("cookies"), opts, 0 TSRMLS_CC); RETVAL_ZVAL(getThis(), 1, 0); } @@ -919,7 +916,6 @@ PHP_METHOD(HttpClient, request) with_error_handling(EH_THROW, php_http_exception_get_class_entry()) { if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss|a!z!a!/", &meth_str, &meth_len, &url_str, &url_len, &zheader, &zbody, &zoptions)) { - php_http_client_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); php_http_message_object_t *msg_obj; zend_object_value ov; zval *req, *res = NULL; @@ -958,7 +954,7 @@ PHP_METHOD(HttpClient, send) RETVAL_FALSE; with_error_handling(EH_THROW, php_http_exception_get_class_entry()) { - if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O!", &zreq, php_http_client_request_get_class_entry())) { + if (SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "|O!", &zreq, php_http_client_request_get_class_entry())) { if (SUCCESS == php_http_client_object_handle_request(getThis(), &zreq TSRMLS_CC)) { php_http_client_object_t *obj = zend_object_store_get_object(getThis() TSRMLS_CC); php_http_message_object_t *req = zend_object_store_get_object(zreq TSRMLS_CC);