branch off v1 as R_1_7
[m6w6/ext-http] / http_url_api.c
index c0fad60086942750e8358814687027b980b59fae..8a70b0f2fb18b3435110b436b7f1f68023cafb15 100644 (file)
@@ -6,7 +6,7 @@
     | modification, are permitted provided that the conditions mentioned |
     | in the accompanying LICENSE file are met.                          |
     +--------------------------------------------------------------------+
-    | Copyright (c) 2004-2007, Michael Wallner <mike@php.net>            |
+    | Copyright (c) 2004-2010, Michael Wallner <mike@php.net>            |
     +--------------------------------------------------------------------+
 */
 
@@ -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_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);
        }