- if (Z_TYPE_P(value) == IS_ARRAY || Z_TYPE_P(value) == IS_OBJECT) {
- zval **val;
- HashTable *ht;
- HashPosition pos;
- php_http_array_hashkey_t key = php_http_array_hashkey_init(0);
- TSRMLS_FETCH_FROM_CTX(body->ts);
+ zend_string *zs = zval_get_string(value);
+ ZEND_RESULT_CODE rc = php_http_message_body_add_form_field(body, name, zs->val, zs->len);
+ zend_string_release(zs);
+ return rc;
+}
+
+static ZEND_RESULT_CODE add_recursive_fields(php_http_message_body_t *body, const char *name, HashTable *fields)
+{
+ zval *val;
+ php_http_arrkey_t key;
+
+ if (!ZEND_HASH_GET_APPLY_COUNT(fields)) {
+ ZEND_HASH_INC_APPLY_COUNT(fields);
+ ZEND_HASH_FOREACH_KEY_VAL_IND(fields, key.h, key.key, val)
+ {
+ char *str = format_key(&key, name);