#endif
static unsigned int php_sapi_filter(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC);
+static unsigned int php_sapi_filter_init(TSRMLS_D);
/* {{{ arginfo */
ZEND_BEGIN_ARG_INFO_EX(arginfo_filter_input, 0, 0, 2)
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_RES_RANGE", FILTER_FLAG_NO_RES_RANGE, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("FILTER_FLAG_NO_PRIV_RANGE", FILTER_FLAG_NO_PRIV_RANGE, CONST_CS | CONST_PERSISTENT);
- sapi_register_input_filter(php_sapi_filter);
+ sapi_register_input_filter(php_sapi_filter, php_sapi_filter_init);
return SUCCESS;
}
}
/* }}} */
+static unsigned int php_sapi_filter_init(TSRMLS_D)
+{
+ IF_G(get_array) = NULL;
+ IF_G(post_array) = NULL;
+ IF_G(cookie_array) = NULL;
+ IF_G(server_array) = NULL;
+ IF_G(env_array) = NULL;
+ IF_G(session_array) = NULL;
+ return SUCCESS;
+}
+
static void php_zval_filter(zval **value, long filter, long flags, zval *options, char* charset, zend_bool copy TSRMLS_DC) /* {{{ */
{
filter_list_entry filter_func;
sapi_module.activate(TSRMLS_C);
}
}
+ if (sapi_module.input_filter_init ) {
+ sapi_module.input_filter_init(TSRMLS_C);
+ }
}
/*
sapi_module.activate(TSRMLS_C);
}
}
+ if (sapi_module.input_filter_init ) {
+ sapi_module.input_filter_init(TSRMLS_C);
+ }
}
return SUCCESS;
}
-SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC))
+SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC), unsigned int (*input_filter_init)(TSRMLS_D))
{
TSRMLS_FETCH();
if (SG(sapi_started) && EG(in_execution)) {
return FAILURE;
}
sapi_module.input_filter = input_filter;
+ sapi_module.input_filter_init = input_filter_init;
return SUCCESS;
}
SAPI_API void sapi_unregister_post_entry(sapi_post_entry *post_entry TSRMLS_DC);
SAPI_API int sapi_register_default_post_reader(void (*default_post_reader)(TSRMLS_D));
SAPI_API int sapi_register_treat_data(void (*treat_data)(int arg, char *str, zval *destArray TSRMLS_DC));
-SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC));
+SAPI_API int sapi_register_input_filter(unsigned int (*input_filter)(int arg, char *var, char **val, unsigned int val_len, unsigned int *new_val_len TSRMLS_DC), unsigned int (*input_filter_init)(TSRMLS_D));
SAPI_API int sapi_flush(TSRMLS_D);
SAPI_API struct stat *sapi_get_stat(TSRMLS_D);
char *ini_entries;
const zend_function_entry *additional_functions;
+ unsigned int (*input_filter_init)(TSRMLS_D);
};
{
sapi_register_default_post_reader(php_default_post_reader);
sapi_register_treat_data(php_default_treat_data);
- sapi_register_input_filter(php_default_input_filter);
+ sapi_register_input_filter(php_default_input_filter, NULL);
return SUCCESS;
}
/* }}} */