X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client_request.c;h=71a9129e3f994f6513c64c023c88ae66afcafb26;hp=05d4a81f5d75b0a00cf4d2484b328fa3bfa3c841;hb=d5d88f419c63a98f7cdef991e63f37b17f9ae413;hpb=a5e66b221dbf5a52cc770f4d7f46f05fe88784ba diff --git a/src/php_http_client_request.c b/src/php_http_client_request.c index 05d4a81..71a9129 100644 --- a/src/php_http_client_request.c +++ b/src/php_http_client_request.c @@ -12,6 +12,12 @@ #include "php_http_api.h" +static zend_class_entry *php_http_client_request_class_entry; +zend_class_entry *php_http_get_client_request_class_entry(void) +{ + return php_http_client_request_class_entry; +} + void php_http_client_options_set_subr(zval *this_ptr, char *key, size_t len, zval *opts, int overwrite); void php_http_client_options_set(zval *this_ptr, zval *opts); void php_http_client_options_get_subr(zval *this_ptr, char *key, size_t len, zval *return_value); @@ -36,7 +42,7 @@ static PHP_METHOD(HttpClientRequest, __construct) zval *zheaders = NULL, *zbody = NULL, *zurl = NULL; php_http_message_object_t *obj; - php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "|s!z!a!O!", &meth_str, &meth_len, &zurl, &zheaders, &zbody, php_http_message_body_class_entry), invalid_arg, return); + php_http_expect(SUCCESS == zend_parse_parameters(ZEND_NUM_ARGS(), "|s!z!a!O!", &meth_str, &meth_len, &zurl, &zheaders, &zbody, php_http_get_message_body_class_entry()), invalid_arg, return); obj = PHP_HTTP_OBJ(NULL, getThis()); @@ -53,7 +59,12 @@ static PHP_METHOD(HttpClientRequest, __construct) PHP_HTTP_INFO(obj->message).request.method = estrndup(meth_str, meth_len); } if (zurl) { - PHP_HTTP_INFO(obj->message).request.url = php_http_url_from_zval(zurl, ~0); + php_http_url_t *url = php_http_url_from_zval(zurl, PHP_HTTP_URL_STDFLAGS); + + if (url) { + PHP_HTTP_INFO(obj->message).request.url = php_http_url_mod(url, NULL, PHP_HTTP_URL_STDFLAGS); + php_http_url_free(&url); + } } if (zheaders) { array_copy(Z_ARRVAL_P(zheaders), &obj->message->hdrs); @@ -276,14 +287,12 @@ static zend_function_entry php_http_client_request_methods[] = { EMPTY_FUNCTION_ENTRY }; -zend_class_entry *php_http_client_request_class_entry; - PHP_MINIT_FUNCTION(http_client_request) { zend_class_entry ce = {0}; INIT_NS_CLASS_ENTRY(ce, "http\\Client", "Request", php_http_client_request_methods); - php_http_client_request_class_entry = zend_register_internal_class_ex(&ce, php_http_message_class_entry); + php_http_client_request_class_entry = zend_register_internal_class_ex(&ce, php_http_message_get_class_entry()); zend_declare_property_null(php_http_client_request_class_entry, ZEND_STRL("options"), ZEND_ACC_PROTECTED);