- fix endless loop in http_build_url() with urls like "/.foo"
[m6w6/ext-http] / http_querystring_object.c
index 7a17391e946bbedfcaf5fddc7edfa972f0d12ca1..e026052e3c3394cb5c87c5c0f2f133b85276c6ef 100644 (file)
@@ -222,7 +222,9 @@ static inline int _http_querystring_modify_array(zval *qarray, zval *array TSRML
 #define http_querystring_modify(q, p) _http_querystring_modify((q), (p) TSRMLS_CC)
 static inline int _http_querystring_modify(zval *qarray, zval *params TSRMLS_DC)
 {
-       if (Z_TYPE_P(params) == IS_ARRAY) {
+       if ((Z_TYPE_P(params) == IS_OBJECT) && instanceof_function(Z_OBJCE_P(params), http_querystring_object_ce TSRMLS_CC)) {
+               return http_querystring_modify_array(qarray, GET_PROP_EX(params, queryArray));
+       } else if (Z_TYPE_P(params) == IS_ARRAY) {
                return http_querystring_modify_array(qarray, params);
        } else {
                int rv;