X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=http_url_api.c;h=c1a4f81b0535125af32c8c1647dde675905cc5d8;hp=bdfd2cfc7e96d24b1f8b53afdf866bc813c50731;hb=20ee94e8fcdec7568c62e8791d4dd324e13323f9;hpb=4ff2f45b61907d9b943fa6179c03b54257bdfca5 diff --git a/http_url_api.c b/http_url_api.c index bdfd2cf..c1a4f81 100644 --- a/http_url_api.c +++ b/http_url_api.c @@ -175,6 +175,7 @@ PHP_HTTP_API void _http_build_url(int flags, const php_url *old_url, const php_u default: #endif case 80: + case 0: url->scheme = estrndup("http", lenof("http")); break; @@ -445,9 +446,7 @@ PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c return FAILURE; } } else { - zval val = zval_used_for_init; - ZVAL_ZVAL(&val, *data, 1, 0); - convert_to_string(&val); + zval *val = http_zsep(IS_STRING, *data); if (PHPSTR_LEN(str)) { phpstr_append(str, arg_sep, arg_sep_len); @@ -455,16 +454,16 @@ PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c phpstr_append(str, PHPSTR_VAL(&new_prefix), PHPSTR_LEN(&new_prefix)); phpstr_appends(str, "="); - if (Z_STRLEN(val) && Z_STRVAL(val)) { + if (Z_STRLEN_P(val) && Z_STRVAL_P(val)) { char *encoded_val; int encoded_len; - encoded_val = php_url_encode(Z_STRVAL(val), Z_STRLEN(val), &encoded_len); + encoded_val = php_url_encode(Z_STRVAL_P(val), Z_STRLEN_P(val), &encoded_len); phpstr_append(str, encoded_val, encoded_len); efree(encoded_val); } - zval_dtor(&val); + zval_ptr_dtor(&val); } phpstr_dtor(&new_prefix); }