projects
/
m6w6
/
ext-http
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
- use a more iterative approach in inflate code (instead of a retry-style)
[m6w6/ext-http]
/
http_url_api.c
diff --git
a/http_url_api.c
b/http_url_api.c
index cac64ec81ee880812cb10e186169363b50252855..bdda91161088340f01a72cf38738f41eae50d5db 100644
(file)
--- a/
http_url_api.c
+++ b/
http_url_api.c
@@
-66,16
+66,22
@@
PHP_MINIT_FUNCTION(http_url)
PHP_HTTP_API char *_http_absolute_url(const char *url TSRMLS_DC)
{
PHP_HTTP_API char *_http_absolute_url(const char *url TSRMLS_DC)
{
- char *abs =
estrdup(url)
;
- php_url *purl =
php_url_parse(abs)
;
+ char *abs =
NULL
;
+ php_url *purl =
NULL
;
- STR_SET(abs, NULL);
+ if (url) {
+ purl = php_url_parse(abs = estrdup(url));
+ STR_SET(abs, NULL);
+ if (!purl) {
+ http_error_ex(HE_WARNING, HTTP_E_URL, "Could not parse URL (%s)", url);
+ return NULL;
+ }
+ }
+
+ http_build_url(0, purl, NULL, NULL, &abs, NULL);
if (purl) {
if (purl) {
- http_build_url(0, purl, NULL, NULL, &abs, NULL);
php_url_free(purl);
php_url_free(purl);
- } else {
- http_error_ex(HE_WARNING, HTTP_E_URL, "Could not parse URL (%s)", url);
}
return abs;
}
return abs;
@@
-385,14
+391,14
@@
PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, c
phpstr_init(&new_prefix);
if (prefix && prefix_len) {
phpstr_append(&new_prefix, prefix, prefix_len);
phpstr_init(&new_prefix);
if (prefix && prefix_len) {
phpstr_append(&new_prefix, prefix, prefix_len);
- phpstr_appends(&new_prefix, "
[
");
+ phpstr_appends(&new_prefix, "
%5B
");
}
phpstr_append(&new_prefix, encoded_key, encoded_len);
efree(encoded_key);
if (prefix && prefix_len) {
}
phpstr_append(&new_prefix, encoded_key, encoded_len);
efree(encoded_key);
if (prefix && prefix_len) {
- phpstr_appends(&new_prefix, "
]
");
+ phpstr_appends(&new_prefix, "
%5D
");
}
phpstr_fix(&new_prefix);
}
}
phpstr_fix(&new_prefix);
}