| modification, are permitted provided that the conditions mentioned |
| in the accompanying LICENSE file are met. |
+--------------------------------------------------------------------+
- | Copyright (c) 2004-2006, Michael Wallner <mike@php.net> |
+ | Copyright (c) 2004-2007, Michael Wallner <mike@php.net> |
+--------------------------------------------------------------------+
*/
}
if (!url->scheme) {
- zval *https = http_get_server_var("HTTPS");
+ zval *https = http_get_server_var("HTTPS", 1);
if (https && !strcasecmp(Z_STRVAL_P(https), "ON")) {
url->scheme = estrndup("https", lenof("https"));
} else switch (url->port) {
if (!url->host) {
zval *zhost;
- if ((((zhost = http_get_server_var("HTTP_HOST")) ||
- (zhost = http_get_server_var("SERVER_NAME")))) && Z_STRLEN_P(zhost)) {
+ if ((((zhost = http_get_server_var("HTTP_HOST", 1)) ||
+ (zhost = http_get_server_var("SERVER_NAME", 1)))) && Z_STRLEN_P(zhost)) {
url->host = estrndup(Z_STRVAL_P(zhost), Z_STRLEN_P(zhost));
} else {
url->host = localhostname();
strlcat(*url_str, url->host, HTTP_URL_MAXLEN);
if (url->port) {
- char port_str[8] = {0};
+ char port_str[8];
- snprintf(port_str, lenof(port_str), "%d", (int) url->port);
+ snprintf(port_str, sizeof(port_str), "%d", (int) url->port);
strlcat(*url_str, ":", HTTP_URL_MAXLEN);
strlcat(*url_str, port_str, HTTP_URL_MAXLEN);
}
/* {{{ http_urlencode_hash_recursive */
PHP_HTTP_API STATUS _http_urlencode_hash_recursive(HashTable *ht, phpstr *str, const char *arg_sep, size_t arg_sep_len, const char *prefix, size_t prefix_len TSRMLS_DC)
{
- char *key = NULL;
- uint len = 0;
- ulong idx = 0;
+ HashKey key = initHashKey(0);
zval **data = NULL;
HashPosition pos;
return SUCCESS;
}
- FOREACH_HASH_KEYLENVAL(pos, ht, key, len, idx, data) {
+ FOREACH_HASH_KEYVAL(pos, ht, key, data) {
char *encoded_key;
int encoded_len;
phpstr new_prefix;
return FAILURE;
}
- if (key) {
- if (!*key) {
+ if (key.type == HASH_KEY_IS_STRING) {
+ if (!*key.str) {
/* only public properties */
continue;
}
- if (len && key[len - 1] == '\0') {
- --len;
+ if (key.len && key.str[key.len - 1] == '\0') {
+ --key.len;
}
- encoded_key = php_url_encode(key, len, &encoded_len);
- key = NULL;
+ encoded_key = php_url_encode(key.str, key.len, &encoded_len);
} else {
- encoded_len = spprintf(&encoded_key, 0, "%ld", idx);
+ encoded_len = spprintf(&encoded_key, 0, "%ld", key.num);
}
{