}
void phpdbg_webdata_decompress(char *msg, int len TSRMLS_DC) {
- #ifdef HAVE_JSON
zval *free_zv = NULL;
- zval zv, *zvp = &zv, **zvpp;
+ zval zv, *zvp;
HashTable *ht;
- php_json_decode(&zv, msg, len, 1, 1000 /* enough */ TSRMLS_CC);
+ php_unserialize_data_t var_hash;
- if (JSON_G(error_code) != PHP_JSON_ERROR_NONE) {
- phpdbg_error("wait", "type=\"invaliddata\" import=\"fail\"", "Malformed JSON was sent to this socket, arborting");
+ PHP_VAR_UNSERIALIZE_INIT(var_hash);
- if (!php_var_unserialize(&zvp, (const unsigned char **) &msg, (unsigned char *) msg + len, &var_hash TSRMLS_CC)) {
++ if (!php_var_unserialize(&zv, (const unsigned char **) &msg, (unsigned char *) msg + len, &var_hash TSRMLS_CC)) {
+ PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
+ phpdbg_error("wait", "type=\"invaliddata\" import=\"fail\"", "Malformed serialized was sent to this socket, arborting");
return;
}
+ PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
ht = Z_ARRVAL(zv);
*/
#include "phpdbg_webdata_transfer.h"
- #include "ext/json/php_json.h"
+ #include "ext/standard/php_var.h"
+static int phpdbg_is_auto_global(char *name, int len TSRMLS_DC) {
+ int ret;
+ zend_string *str = zend_string_init(name, len, 0);
+ ret = zend_is_auto_global(str TSRMLS_CC);
+ efree(str);
+ return ret;
+}
+
PHPDBG_API void phpdbg_webdata_compress(char **msg, int *len TSRMLS_DC) {
- #ifdef HAVE_JSON
- smart_str buf = {0};
zval array;
HashTable *ht;
- /* I really need to change that to an array of zvals... */
- zval zv1 = {{0}}, *zvp1 = &zv1;
- zval zv2 = {{0}}, *zvp2 = &zv2;
- zval zv3 = {{0}}, *zvp3 = &zv3;
- zval zv4 = {{0}}, *zvp4 = &zv4;
- zval zv5 = {{0}}, *zvp5 = &zv5;
- zval zv6 = {{0}}, *zvp6 = &zv6;
- zval zv7 = {{0}}, *zvp7 = &zv7;
- zval zv8 = {{0}}, *zvp8 = &zv8;
+ zval zv[9] = {{{0}}};
array_init(&array);
ht = Z_ARRVAL(array);
}
/* encode data */
- php_json_encode(&buf, &array, 0 TSRMLS_CC);
- *msg = buf.s->val;
- *len = buf.s->len;
+ {
+ php_serialize_data_t var_hash;
+ smart_str buf = {0};
- zval *arrayptr = &array;
+
+ PHP_VAR_SERIALIZE_INIT(var_hash);
- php_var_serialize(&buf, &arrayptr, &var_hash TSRMLS_CC);
++ php_var_serialize(&buf, &array, &var_hash TSRMLS_CC);
+ PHP_VAR_SERIALIZE_DESTROY(var_hash);
- *msg = buf.c;
- *len = buf.len;
++ *msg = buf.s->val;
++ *len = buf.s->len;
+ }
+
zval_dtor(&array);
- #endif
}