1 /* 2 +----------------------------------------------------------------------+ 3 | PHP Version 7 | 4 +----------------------------------------------------------------------+ 5 | Copyright (c) 1997-2018 The PHP Group | 6 +----------------------------------------------------------------------+ 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 +----------------------------------------------------------------------+ 15 | Author: Zeev Suraski <zeev@zend.com> | 16 +----------------------------------------------------------------------+ 17 */ 18 19 /* $Id$ */ 20 21 #ifndef PHP_GLOBALS_H 22 #define PHP_GLOBALS_H 23 24 #include "zend_globals.h" 25 26 typedef struct _php_core_globals php_core_globals; 27 28 #ifdef ZTS 29 # define PG(v) ZEND_TSRMG(core_globals_id, php_core_globals *, v) 30 extern PHPAPI int core_globals_id; 31 #else 32 # define PG(v) (core_globals.v) 33 extern ZEND_API struct _php_core_globals core_globals; 34 #endif 35 36 /* Error display modes */ 37 #define PHP_DISPLAY_ERRORS_STDOUT 1 38 #define PHP_DISPLAY_ERRORS_STDERR 2 39 40 /* Track vars */ 41 #define TRACK_VARS_POST 0 42 #define TRACK_VARS_GET 1 43 #define TRACK_VARS_COOKIE 2 44 #define TRACK_VARS_SERVER 3 45 #define TRACK_VARS_ENV 4 46 #define TRACK_VARS_FILES 5 47 #define TRACK_VARS_REQUEST 6 48 49 struct _php_tick_function_entry; 50 51 typedef struct _arg_separators { 52 char *output; 53 char *input; 54 } arg_separators; 55 56 struct _php_core_globals { 57 zend_bool implicit_flush; 58 59 zend_long output_buffering; 60 61 zend_bool enable_dl; 62 63 char *output_handler; 64 65 char *unserialize_callback_func; 66 zend_long serialize_precision; 67 68 zend_long memory_limit; 69 zend_long max_input_time; 70 71 zend_bool track_errors; 72 zend_bool display_errors; 73 zend_bool display_startup_errors; 74 zend_bool log_errors; 75 zend_long log_errors_max_len; 76 zend_bool ignore_repeated_errors; 77 zend_bool ignore_repeated_source; 78 zend_bool report_memleaks; 79 char *error_log; 80 81 char *doc_root; 82 char *user_dir; 83 char *include_path; 84 char *open_basedir; 85 char *extension_dir; 86 char *php_binary; 87 char *sys_temp_dir; 88 89 char *upload_tmp_dir; 90 zend_long upload_max_filesize; 91 92 char *error_append_string; 93 char *error_prepend_string; 94 95 char *auto_prepend_file; 96 char *auto_append_file; 97 98 char *input_encoding; 99 char *internal_encoding; 100 char *output_encoding; 101 102 arg_separators arg_separator; 103 104 char *variables_order; 105 106 HashTable rfc1867_protected_variables; 107 108 short connection_status; 109 110 /* In 7.1/7.2 branches, this was initially a short, 111 * maintain struct alignment with subsequent padding. 112 */ 113 zend_bool ignore_user_abort; 114 char ignore_user_abort_reserved_padding; 115 116 unsigned char header_is_being_sent; 117 118 zend_llist tick_functions; 119 120 zval http_globals[6]; 121 122 zend_bool expose_php; 123 124 zend_bool register_argc_argv; 125 zend_bool auto_globals_jit; 126 127 char *docref_root; 128 char *docref_ext; 129 130 zend_bool html_errors; 131 zend_bool xmlrpc_errors; 132 133 zend_long xmlrpc_error_number; 134 135 zend_bool activated_auto_globals[8]; 136 137 zend_bool modules_activated; 138 zend_bool file_uploads; 139 zend_bool during_request_startup; 140 zend_bool allow_url_fopen; 141 zend_bool enable_post_data_reading; 142 zend_bool report_zend_debug; 143 144 int last_error_type; 145 char *last_error_message; 146 char *last_error_file; 147 int last_error_lineno; 148 149 char *php_sys_temp_dir; 150 151 char *disable_functions; 152 char *disable_classes; 153 zend_bool allow_url_include; 154 #ifdef PHP_WIN32 155 zend_bool com_initialized; 156 #endif 157 zend_long max_input_nesting_level; 158 zend_long max_input_vars; 159 zend_bool in_user_include; 160 161 char *user_ini_filename; 162 zend_long user_ini_cache_ttl; 163 164 char *request_order; 165 166 zend_bool mail_x_header; 167 char *mail_log; 168 169 zend_bool in_error_log; 170 171 #ifdef PHP_WIN32 172 zend_bool windows_show_crt_warning; 173 #endif 174 }; 175 176 177 #endif /* PHP_GLOBALS_H */ 178 179 /* 180 * Local variables: 181 * tab-width: 4 182 * c-basic-offset: 4 183 * End: 184 * vim600: sw=4 ts=4 fdm=marker 185 * vim<600: sw=4 ts=4 186 */ 187