X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=src%2Fphp_http_url.c;h=21e38e248be4d2355ba5167f5ebc9ee61d1dc712;hb=3d3727416df3f7b51b10a5c5d5af7249d5500222;hp=ad4f14cb87d222c47c227602dd7c418b74d23d10;hpb=13662c61792685435496cd25c95ee1c1950cd9d7;p=m6w6%2Fext-http diff --git a/src/php_http_url.c b/src/php_http_url.c index ad4f14c..21e38e2 100644 --- a/src/php_http_url.c +++ b/src/php_http_url.c @@ -19,6 +19,7 @@ # include #endif #if PHP_HTTP_HAVE_LIBICU +# include # include #endif #if PHP_HTTP_HAVE_LIBIDNKIT || PHP_HTTP_HAVE_LIBIDNKIT2 @@ -534,7 +535,7 @@ HashTable *php_http_url_to_struct(const php_http_url_t *url, zval *strct) if (!strct || Z_TYPE_P(strct) == IS_ARRAY) { \ zend_hash_str_update(ht, part, lenof(part), &tmp); \ } else { \ - zend_update_property(Z_OBJCE_P(strct), strct, part, lenof(part), &tmp); \ + zend_update_property(Z_OBJCE_P(strct), Z_OBJ_P(strct), part, lenof(part), &tmp); \ zval_ptr_dtor(&tmp); \ } @@ -742,7 +743,11 @@ static inline size_t parse_mb(struct parse_state *state, parse_mb_what_t what, c if (what == PARSE_HOSTINFO && (state->flags & PHP_HTTP_URL_PARSE_TOIDN)) { /* idna */ } else if (state->flags & PHP_HTTP_URL_PARSE_MBUTF8) { +#if PHP_HTTP_HAVE_LIBICU + if (!u_isalnum(wchar)) { +#else if (!isualnum(wchar)) { +#endif break; } #if PHP_HTTP_HAVE_WCHAR @@ -1016,7 +1021,7 @@ static ZEND_RESULT_CODE parse_uidn_2003(struct parse_state *state, size_t prev_l # endif efree(uhost_str); - if (error > U_ZERO_ERROR) { + if (rc > U_ZERO_ERROR) { goto error; } @@ -1979,7 +1984,7 @@ PHP_METHOD(HttpUrl, mod) if ((old_purl = php_http_url_from_struct(HASH_OF(getThis())))) { php_http_url_t *res_purl; - ZVAL_OBJ(return_value, zend_objects_clone_obj(getThis())); + ZVAL_OBJ(return_value, zend_objects_clone_obj(Z_OBJ_P(getThis()))); res_purl = php_http_url_mod(old_purl, new_purl, flags); php_http_url_to_struct(res_purl, return_value); @@ -2030,7 +2035,7 @@ PHP_METHOD(HttpUrl, toArray) } static zend_function_entry php_http_url_methods[] = { - PHP_ME(HttpUrl, __construct, ai_HttpUrl___construct, ZEND_ACC_PUBLIC|ZEND_ACC_CTOR) + PHP_ME(HttpUrl, __construct, ai_HttpUrl___construct, ZEND_ACC_PUBLIC) PHP_ME(HttpUrl, mod, ai_HttpUrl_mod, ZEND_ACC_PUBLIC) PHP_ME(HttpUrl, toString, ai_HttpUrl_toString, ZEND_ACC_PUBLIC) ZEND_MALIAS(HttpUrl, __toString, toString, ai_HttpUrl_toString, ZEND_ACC_PUBLIC) @@ -2083,14 +2088,14 @@ PHP_MINIT_FUNCTION(http_url) #endif zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("PARSE_TOPCT"), PHP_HTTP_URL_PARSE_TOPCT); - INIT_NS_CLASS_ENTRY(ce, "http\\Env", "Url", php_http_url_methods); - php_http_env_url_class_entry = zend_register_internal_class_ex(&ce, php_http_url_class_entry); - zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("IGNORE_ERRORS"), PHP_HTTP_URL_IGNORE_ERRORS); zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("SILENT_ERRORS"), PHP_HTTP_URL_SILENT_ERRORS); zend_declare_class_constant_long(php_http_url_class_entry, ZEND_STRL("STDFLAGS"), PHP_HTTP_URL_STDFLAGS); + INIT_NS_CLASS_ENTRY(ce, "http\\Env", "Url", NULL); + php_http_env_url_class_entry = zend_register_internal_class_ex(&ce, php_http_url_class_entry); + return SUCCESS; }