1<?php
2/*
3** Zabbix
4** Copyright (C) 2001-2021 Zabbix SIA
5**
6** This program is free software; you can redistribute it and/or modify
7** it under the terms of the GNU General Public License as published by
8** the Free Software Foundation; either version 2 of the License, or
9** (at your option) any later version.
10**
11** This program is distributed in the hope that it will be useful,
12** but WITHOUT ANY WARRANTY; without even the implied warranty of
13** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14** GNU General Public License for more details.
15**
16** You should have received a copy of the GNU General Public License
17** along with this program; if not, write to the Free Software
18** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19**/
20
21
22define('ZABBIX_VERSION',		'3.0.32');
23define('ZABBIX_API_VERSION',	'3.0.32');
24define('ZABBIX_EXPORT_VERSION',	'3.0');
25define('ZABBIX_DB_VERSION',		3000000);
26
27define('ZABBIX_COPYRIGHT_FROM',	'2001');
28define('ZABBIX_COPYRIGHT_TO',	'2021');
29
30define('ZBX_LOGIN_ATTEMPTS',	5);
31define('ZBX_LOGIN_BLOCK',		30); // sec
32
33define('ZBX_MIN_PERIOD',		60); // 1 minute
34define('ZBX_MAX_PERIOD',		63072000); // the maximum period for the time bar control, ~2 years (2 * 365 * 86400)
35define('ZBX_MAX_DATE',			2147483647); // 19 Jan 2038 05:14:07
36define('ZBX_PERIOD_DEFAULT',	3600); // 1 hour
37
38// the maximum period to display history data for the latest data and item overview pages in seconds
39// by default set to 86400 seconds (24 hours)
40define('ZBX_HISTORY_PERIOD', 86400);
41
42define('ZBX_WIDGET_ROWS', 20);
43
44define('ZBX_FONTPATH',				realpath('fonts')); // where to search for font (GD > 2.0.18)
45define('ZBX_GRAPH_FONT_NAME',		'DejaVuSans'); // font file name
46define('ZBX_GRAPH_LEGEND_HEIGHT',	120); // when graph height is less then this value, some legend will not show up
47
48define('ZBX_SCRIPT_TIMEOUT',		60); // in seconds
49
50define('GRAPH_YAXIS_SIDE_DEFAULT', 0); // 0 - LEFT SIDE, 1 - RIGHT SIDE
51
52define('ZBX_MAX_IMAGE_SIZE', 1048576); // 1024 * 1024
53
54define('ZBX_UNITS_ROUNDOFF_THRESHOLD',		0.01);
55define('ZBX_UNITS_ROUNDOFF_UPPER_LIMIT',	2);
56define('ZBX_UNITS_ROUNDOFF_MIDDLE_LIMIT',	4);
57define('ZBX_UNITS_ROUNDOFF_LOWER_LIMIT',	6);
58
59define('ZBX_PRECISION_10',	10);
60
61define('ZBX_DEFAULT_INTERVAL', '1-7,00:00-24:00');
62
63define('ZBX_SCRIPT_TYPE_CUSTOM_SCRIPT',	0);
64define('ZBX_SCRIPT_TYPE_IPMI',			1);
65define('ZBX_SCRIPT_TYPE_SSH',			2);
66define('ZBX_SCRIPT_TYPE_TELNET',		3);
67define('ZBX_SCRIPT_TYPE_GLOBAL_SCRIPT',	4);
68
69define('ZBX_SCRIPT_EXECUTE_ON_AGENT',	0);
70define('ZBX_SCRIPT_EXECUTE_ON_SERVER',	1);
71
72define('ZBX_FLAG_DISCOVERY_NORMAL',		0x0);
73define('ZBX_FLAG_DISCOVERY_RULE',		0x1);
74define('ZBX_FLAG_DISCOVERY_PROTOTYPE',	0x2);
75define('ZBX_FLAG_DISCOVERY_CREATED',	0x4);
76
77define('EXTACK_OPTION_ALL',		0);
78define('EXTACK_OPTION_UNACK',	1);
79define('EXTACK_OPTION_BOTH',	2);
80
81define('TRIGGERS_OPTION_RECENT_PROBLEM',	1);
82define('TRIGGERS_OPTION_ALL',				2);
83define('TRIGGERS_OPTION_IN_PROBLEM',		3);
84
85define('ZBX_ACK_STS_ANY',				1);
86define('ZBX_ACK_STS_WITH_UNACK',		2);
87define('ZBX_ACK_STS_WITH_LAST_UNACK',	3);
88
89define('EVENTS_OPTION_NOEVENT', 1);
90define('EVENTS_OPTION_ALL',		2);
91define('EVENTS_OPTION_NOT_ACK', 3);
92
93define('ZBX_FONT_NAME', 'DejaVuSans');
94
95define('ZBX_AUTH_INTERNAL',	0);
96define('ZBX_AUTH_LDAP',		1);
97define('ZBX_AUTH_HTTP',		2);
98
99define('ZBX_DB_DB2',		'IBM_DB2');
100define('ZBX_DB_MYSQL',		'MYSQL');
101define('ZBX_DB_ORACLE',		'ORACLE');
102define('ZBX_DB_POSTGRESQL',	'POSTGRESQL');
103define('ZBX_DB_SQLITE3',	'SQLITE3');
104
105define('ZBX_DB_MAX_ID', '9223372036854775807');
106
107// maximum number of records for create() or update() API calls
108define('ZBX_DB_MAX_INSERTS', 10000);
109
110define('ZBX_SHOW_TECHNICAL_ERRORS', false);
111
112define('PAGE_TYPE_HTML',				0);
113define('PAGE_TYPE_IMAGE',				1);
114define('PAGE_TYPE_XML',					2);
115define('PAGE_TYPE_JS',					3); // javascript
116define('PAGE_TYPE_CSS',					4);
117define('PAGE_TYPE_HTML_BLOCK',			5); // simple block of html (as text)
118define('PAGE_TYPE_JSON',				6); // simple JSON
119define('PAGE_TYPE_JSON_RPC',			7); // api call
120define('PAGE_TYPE_TEXT_FILE',			8); // api call
121define('PAGE_TYPE_TEXT',				9); // simple text
122define('PAGE_TYPE_CSV',					10); // CSV format
123define('PAGE_TYPE_TEXT_RETURN_JSON',	11); // input plaintext output json
124
125define('ZBX_SESSION_ACTIVE',	0);
126define('ZBX_SESSION_PASSIVE',	1);
127
128define('ZBX_DROPDOWN_FIRST_NONE',	0);
129define('ZBX_DROPDOWN_FIRST_ALL',	1);
130
131define('T_ZBX_STR',			0);
132define('T_ZBX_INT',			1);
133define('T_ZBX_DBL',			2);
134define('T_ZBX_CLR',			5);
135define('T_ZBX_DBL_BIG',		9);
136define('T_ZBX_DBL_STR',		10);
137define('T_ZBX_TP',			11);
138
139define('O_MAND',	0);
140define('O_OPT',		1);
141define('O_NO',		2);
142
143define('P_SYS',				1);
144define('P_UNSET_EMPTY',		2);
145define('P_CRLF',			4);
146define('P_ACT',				16);
147define('P_NZERO',			32);
148define('P_NO_TRIM',			64);
149define('ZBX_URI_VALID_SCHEMES', 'http,https,ftp,file,mailto,tel,ssh');
150
151// Validate URI against schemes whitelist defined in ZBX_URI_VALID_SCHEMES.
152define('VALIDATE_URI_SCHEMES', true);
153
154//	misc parameters
155define('IMAGE_FORMAT_PNG',	'PNG');
156define('IMAGE_FORMAT_JPEG',	'JPEG');
157define('IMAGE_FORMAT_TEXT',	'JPEG');
158
159define('IMAGE_TYPE_ICON',			1);
160define('IMAGE_TYPE_BACKGROUND',		2);
161
162define('ITEM_CONVERT_WITH_UNITS',	0); // - do not convert empty units
163define('ITEM_CONVERT_NO_UNITS',		1); // - no units
164
165define('ZBX_SORT_UP',	'ASC');
166define('ZBX_SORT_DOWN',	'DESC');
167
168define('AUDIT_ACTION_ADD',		0);
169define('AUDIT_ACTION_UPDATE',	1);
170define('AUDIT_ACTION_DELETE',	2);
171define('AUDIT_ACTION_LOGIN',	3);
172define('AUDIT_ACTION_LOGOUT',	4);
173define('AUDIT_ACTION_ENABLE',	5);
174define('AUDIT_ACTION_DISABLE',	6);
175
176define('AUDIT_RESOURCE_USER',			0);
177define('AUDIT_RESOURCE_ZABBIX_CONFIG',	2);
178define('AUDIT_RESOURCE_MEDIA_TYPE',		3);
179define('AUDIT_RESOURCE_HOST',			4);
180define('AUDIT_RESOURCE_ACTION',			5);
181define('AUDIT_RESOURCE_GRAPH',			6);
182define('AUDIT_RESOURCE_GRAPH_ELEMENT',	7);
183define('AUDIT_RESOURCE_USER_GROUP',		11);
184define('AUDIT_RESOURCE_APPLICATION',	12);
185define('AUDIT_RESOURCE_TRIGGER',		13);
186define('AUDIT_RESOURCE_HOST_GROUP',		14);
187define('AUDIT_RESOURCE_ITEM',			15);
188define('AUDIT_RESOURCE_IMAGE',			16);
189define('AUDIT_RESOURCE_VALUE_MAP',		17);
190define('AUDIT_RESOURCE_IT_SERVICE',		18);
191define('AUDIT_RESOURCE_MAP',			19);
192define('AUDIT_RESOURCE_SCREEN',			20);
193define('AUDIT_RESOURCE_SCENARIO',		22);
194define('AUDIT_RESOURCE_DISCOVERY_RULE',	23);
195define('AUDIT_RESOURCE_SLIDESHOW',		24);
196define('AUDIT_RESOURCE_SCRIPT',			25);
197define('AUDIT_RESOURCE_PROXY',			26);
198define('AUDIT_RESOURCE_MAINTENANCE',	27);
199define('AUDIT_RESOURCE_REGEXP',			28);
200define('AUDIT_RESOURCE_MACRO',			29);
201define('AUDIT_RESOURCE_TEMPLATE',		30);
202define('AUDIT_RESOURCE_TRIGGER_PROTOTYPE', 31);
203
204define('CONDITION_TYPE_HOST_GROUP',			0);
205define('CONDITION_TYPE_HOST',				1);
206define('CONDITION_TYPE_TRIGGER',			2);
207define('CONDITION_TYPE_TRIGGER_NAME',		3);
208define('CONDITION_TYPE_TRIGGER_SEVERITY',	4);
209define('CONDITION_TYPE_TRIGGER_VALUE',		5);
210define('CONDITION_TYPE_TIME_PERIOD',		6);
211define('CONDITION_TYPE_DHOST_IP',			7);
212define('CONDITION_TYPE_DSERVICE_TYPE',		8);
213define('CONDITION_TYPE_DSERVICE_PORT',		9);
214define('CONDITION_TYPE_DSTATUS',			10);
215define('CONDITION_TYPE_DUPTIME',			11);
216define('CONDITION_TYPE_DVALUE',				12);
217define('CONDITION_TYPE_TEMPLATE',			13);
218define('CONDITION_TYPE_EVENT_ACKNOWLEDGED',	14);
219define('CONDITION_TYPE_APPLICATION',		15);
220define('CONDITION_TYPE_MAINTENANCE',		16);
221define('CONDITION_TYPE_DRULE',				18);
222define('CONDITION_TYPE_DCHECK',				19);
223define('CONDITION_TYPE_PROXY',				20);
224define('CONDITION_TYPE_DOBJECT',			21);
225define('CONDITION_TYPE_HOST_NAME',			22);
226define('CONDITION_TYPE_EVENT_TYPE',			23);
227define('CONDITION_TYPE_HOST_METADATA',		24);
228
229define('CONDITION_OPERATOR_EQUAL',		0);
230define('CONDITION_OPERATOR_NOT_EQUAL',	1);
231define('CONDITION_OPERATOR_LIKE',		2);
232define('CONDITION_OPERATOR_NOT_LIKE',	3);
233define('CONDITION_OPERATOR_IN',			4);
234define('CONDITION_OPERATOR_MORE_EQUAL',	5);
235define('CONDITION_OPERATOR_LESS_EQUAL',	6);
236define('CONDITION_OPERATOR_NOT_IN',		7);
237define('CONDITION_OPERATOR_REGEXP',		8);
238
239// event type action condition values
240define('EVENT_TYPE_ITEM_NOTSUPPORTED',		0);
241define('EVENT_TYPE_ITEM_NORMAL',			1);
242define('EVENT_TYPE_LLDRULE_NOTSUPPORTED',	2);
243define('EVENT_TYPE_LLDRULE_NORMAL',			3);
244define('EVENT_TYPE_TRIGGER_UNKNOWN',		4);
245define('EVENT_TYPE_TRIGGER_NORMAL',			5);
246
247define('HOST_STATUS_MONITORED',		0);
248define('HOST_STATUS_NOT_MONITORED',	1);
249define('HOST_STATUS_TEMPLATE',		3);
250define('HOST_STATUS_PROXY_ACTIVE',	5);
251define('HOST_STATUS_PROXY_PASSIVE',	6);
252
253define('HOST_ENCRYPTION_NONE',			1);
254define('HOST_ENCRYPTION_PSK',			2);
255define('HOST_ENCRYPTION_CERTIFICATE',	4);
256
257define('PSK_MIN_LEN',	32);
258
259define('HOST_MAINTENANCE_STATUS_OFF',	0);
260define('HOST_MAINTENANCE_STATUS_ON',	1);
261
262define('INTERFACE_SECONDARY',	0);
263define('INTERFACE_PRIMARY',		1);
264
265define('INTERFACE_USE_DNS',	0);
266define('INTERFACE_USE_IP',	1);
267
268define('INTERFACE_TYPE_ANY',		-1);
269define('INTERFACE_TYPE_UNKNOWN',	0);
270define('INTERFACE_TYPE_AGENT',		1);
271define('INTERFACE_TYPE_SNMP',		2);
272define('INTERFACE_TYPE_IPMI',		3);
273define('INTERFACE_TYPE_JMX',		4);
274
275define('SNMP_BULK_DISABLED',	0);
276define('SNMP_BULK_ENABLED',		1);
277
278define('MAINTENANCE_STATUS_ACTIVE',		0);
279define('MAINTENANCE_STATUS_APPROACH',	1);
280define('MAINTENANCE_STATUS_EXPIRED',	2);
281
282define('HOST_AVAILABLE_UNKNOWN',	0);
283define('HOST_AVAILABLE_TRUE',		1);
284define('HOST_AVAILABLE_FALSE',		2);
285
286define('MAINTENANCE_TYPE_NORMAL',	0);
287define('MAINTENANCE_TYPE_NODATA',	1);
288
289define('TIMEPERIOD_TYPE_ONETIME',	0);
290define('TIMEPERIOD_TYPE_HOURLY',	1);
291define('TIMEPERIOD_TYPE_DAILY',		2);
292define('TIMEPERIOD_TYPE_WEEKLY',	3);
293define('TIMEPERIOD_TYPE_MONTHLY',	4);
294define('TIMEPERIOD_TYPE_YEARLY',	5);
295
296// report periods
297define('REPORT_PERIOD_TODAY',			0);
298define('REPORT_PERIOD_YESTERDAY',		1);
299define('REPORT_PERIOD_CURRENT_WEEK',	2);
300define('REPORT_PERIOD_CURRENT_MONTH',	3);
301define('REPORT_PERIOD_CURRENT_YEAR',	4);
302define('REPORT_PERIOD_LAST_WEEK',		5);
303define('REPORT_PERIOD_LAST_MONTH',		6);
304define('REPORT_PERIOD_LAST_YEAR',		7);
305
306define('SYSMAP_LABEL_ADVANCED_OFF',	0);
307define('SYSMAP_LABEL_ADVANCED_ON',	1);
308
309define('MAP_LABEL_TYPE_LABEL',		0);
310define('MAP_LABEL_TYPE_IP',			1);
311define('MAP_LABEL_TYPE_NAME',		2);
312define('MAP_LABEL_TYPE_STATUS',		3);
313define('MAP_LABEL_TYPE_NOTHING',	4);
314define('MAP_LABEL_TYPE_CUSTOM',		5);
315
316define('MAP_LABEL_LOC_DEFAULT', -1);
317define('MAP_LABEL_LOC_BOTTOM',	0);
318define('MAP_LABEL_LOC_LEFT',	1);
319define('MAP_LABEL_LOC_RIGHT',	2);
320define('MAP_LABEL_LOC_TOP',		3);
321
322define('SYSMAP_ELEMENT_TYPE_HOST',		0);
323define('SYSMAP_ELEMENT_TYPE_MAP',		1);
324define('SYSMAP_ELEMENT_TYPE_TRIGGER',	2);
325define('SYSMAP_ELEMENT_TYPE_HOST_GROUP',3);
326define('SYSMAP_ELEMENT_TYPE_IMAGE',		4);
327
328define('SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP',				0);
329define('SYSMAP_ELEMENT_SUBTYPE_HOST_GROUP_ELEMENTS',	1);
330
331define('SYSMAP_ELEMENT_AREA_TYPE_FIT',		0);
332define('SYSMAP_ELEMENT_AREA_TYPE_CUSTOM',	1);
333
334define('SYSMAP_ELEMENT_AREA_VIEWTYPE_GRID', 0);
335
336define('SYSMAP_ELEMENT_ICON_ON',			0);
337define('SYSMAP_ELEMENT_ICON_OFF',			1);
338define('SYSMAP_ELEMENT_ICON_MAINTENANCE',	3);
339define('SYSMAP_ELEMENT_ICON_DISABLED',		4);
340
341define('SYSMAP_HIGHLIGHT_OFF',	0);
342define('SYSMAP_HIGHLIGHT_ON',	1);
343
344define('SYSMAP_GRID_SHOW_ON',	1);
345define('SYSMAP_GRID_SHOW_OFF',	0);
346
347define('SYSMAP_EXPAND_MACROS_OFF',	0);
348define('SYSMAP_EXPAND_MACROS_ON',	1);
349
350define('SYSMAP_GRID_ALIGN_ON',	1);
351define('SYSMAP_GRID_ALIGN_OFF',	0);
352
353define('PUBLIC_SHARING',	0);
354define('PRIVATE_SHARING',	1);
355
356define('ZBX_ITEM_DELAY_DEFAULT', 30);
357
358define('ITEM_TYPE_ZABBIX',			0);
359define('ITEM_TYPE_SNMPV1',			1);
360define('ITEM_TYPE_TRAPPER',			2);
361define('ITEM_TYPE_SIMPLE',			3);
362define('ITEM_TYPE_SNMPV2C',			4);
363define('ITEM_TYPE_INTERNAL',		5);
364define('ITEM_TYPE_SNMPV3',			6);
365define('ITEM_TYPE_ZABBIX_ACTIVE',	7);
366define('ITEM_TYPE_AGGREGATE',		8);
367define('ITEM_TYPE_HTTPTEST',		9);
368define('ITEM_TYPE_EXTERNAL',		10);
369define('ITEM_TYPE_DB_MONITOR',		11);
370define('ITEM_TYPE_IPMI',			12);
371define('ITEM_TYPE_SSH',				13);
372define('ITEM_TYPE_TELNET',			14);
373define('ITEM_TYPE_CALCULATED',		15);
374define('ITEM_TYPE_JMX',				16);
375define('ITEM_TYPE_SNMPTRAP',		17);
376
377define('ITEM_VALUE_TYPE_FLOAT',		0);
378define('ITEM_VALUE_TYPE_STR',		1); // aka Character
379define('ITEM_VALUE_TYPE_LOG',		2);
380define('ITEM_VALUE_TYPE_UINT64',	3);
381define('ITEM_VALUE_TYPE_TEXT',		4);
382
383define('ITEM_DATA_TYPE_DECIMAL',		0);
384define('ITEM_DATA_TYPE_OCTAL',			1);
385define('ITEM_DATA_TYPE_HEXADECIMAL',	2);
386define('ITEM_DATA_TYPE_BOOLEAN',		3);
387
388define('ZBX_DEFAULT_KEY_DB_MONITOR',			'db.odbc.select[<unique short description>,<dsn>]');
389define('ZBX_DEFAULT_KEY_DB_MONITOR_DISCOVERY',	'db.odbc.discovery[<unique short description>,<dsn>]');
390define('ZBX_DEFAULT_KEY_SSH',					'ssh.run[<unique short description>,<ip>,<port>,<encoding>]');
391define('ZBX_DEFAULT_KEY_TELNET',				'telnet.run[<unique short description>,<ip>,<port>,<encoding>]');
392define('ZBX_DEFAULT_KEY_JMX',					'jmx[<object name>,<attribute name>]');
393
394define('SYSMAP_ELEMENT_USE_ICONMAP_ON',		1);
395define('SYSMAP_ELEMENT_USE_ICONMAP_OFF',	0);
396
397define('ZBX_ICON_PREVIEW_HEIGHT',	24);
398define('ZBX_ICON_PREVIEW_WIDTH',	24);
399
400define('ITEM_STATUS_ACTIVE',		0);
401define('ITEM_STATUS_DISABLED',		1);
402define('ITEM_STATUS_NOTSUPPORTED',	3);
403
404define('ITEM_STATE_NORMAL',			0);
405define('ITEM_STATE_NOTSUPPORTED',	1);
406
407define('ITEM_SNMPV3_SECURITYLEVEL_NOAUTHNOPRIV',	0);
408define('ITEM_SNMPV3_SECURITYLEVEL_AUTHNOPRIV',		1);
409define('ITEM_SNMPV3_SECURITYLEVEL_AUTHPRIV',		2);
410
411define('ITEM_AUTHTYPE_PASSWORD',	0);
412define('ITEM_AUTHTYPE_PUBLICKEY',	1);
413
414define('ITEM_AUTHPROTOCOL_MD5', 0);
415define('ITEM_AUTHPROTOCOL_SHA', 1);
416
417define('ITEM_PRIVPROTOCOL_DES', 0);
418define('ITEM_PRIVPROTOCOL_AES', 1);
419
420define('ITEM_LOGTYPE_INFORMATION',		1);
421define('ITEM_LOGTYPE_WARNING',			2);
422define('ITEM_LOGTYPE_ERROR',			4);
423define('ITEM_LOGTYPE_FAILURE_AUDIT',	7);
424define('ITEM_LOGTYPE_SUCCESS_AUDIT',	8);
425define('ITEM_LOGTYPE_CRITICAL',			9);
426define('ITEM_LOGTYPE_VERBOSE',			10);
427
428define('ITEM_DELAY_FLEX_TYPE_FLEXIBLE',		0);
429define('ITEM_DELAY_FLEX_TYPE_SCHEDULING',	1);
430
431define('GRAPH_ITEM_DRAWTYPE_LINE',			0);
432define('GRAPH_ITEM_DRAWTYPE_FILLED_REGION',	1);
433define('GRAPH_ITEM_DRAWTYPE_BOLD_LINE',		2);
434define('GRAPH_ITEM_DRAWTYPE_DOT',			3);
435define('GRAPH_ITEM_DRAWTYPE_DASHED_LINE',	4);
436define('GRAPH_ITEM_DRAWTYPE_GRADIENT_LINE',	5);
437define('GRAPH_ITEM_DRAWTYPE_BOLD_DOT',		6);
438
439define('MAP_LINK_DRAWTYPE_LINE',			0);
440define('MAP_LINK_DRAWTYPE_BOLD_LINE',		2);
441define('MAP_LINK_DRAWTYPE_DOT',				3);
442define('MAP_LINK_DRAWTYPE_DASHED_LINE',		4);
443
444define('SERVICE_ALGORITHM_NONE',	0); // do not calculate
445define('SERVICE_ALGORITHM_MAX',		1); // problem, if one children has a problem
446define('SERVICE_ALGORITHM_MIN',		2); // problem, if all children have problems
447
448define('SERVICE_SLA', 99.05);
449
450define('SERVICE_SHOW_SLA_OFF',	0);
451define('SERVICE_SHOW_SLA_ON',	1);
452
453define('SERVICE_STATUS_OK', 0);
454
455define('TRIGGER_MULT_EVENT_DISABLED',	0);
456define('TRIGGER_MULT_EVENT_ENABLED',	1);
457
458define('TRIGGER_STATUS_ENABLED',	0);
459define('TRIGGER_STATUS_DISABLED',	1);
460
461define('TRIGGER_VALUE_FALSE',	0);
462define('TRIGGER_VALUE_TRUE',	1);
463
464define('TRIGGER_STATE_NORMAL',	0);
465define('TRIGGER_STATE_UNKNOWN',	1);
466
467define('TRIGGER_SEVERITY_NOT_CLASSIFIED',	0);
468define('TRIGGER_SEVERITY_INFORMATION',		1);
469define('TRIGGER_SEVERITY_WARNING',			2);
470define('TRIGGER_SEVERITY_AVERAGE',			3);
471define('TRIGGER_SEVERITY_HIGH',				4);
472define('TRIGGER_SEVERITY_DISASTER',			5);
473define('TRIGGER_SEVERITY_COUNT',			6);
474
475define('ALERT_MAX_RETRIES', 3);
476
477define('ALERT_STATUS_NOT_SENT', 0);
478define('ALERT_STATUS_SENT',		1);
479define('ALERT_STATUS_FAILED',	2);
480
481define('ALERT_TYPE_MESSAGE',	0);
482define('ALERT_TYPE_COMMAND',	1);
483
484define('MEDIA_STATUS_ACTIVE',	0);
485define('MEDIA_STATUS_DISABLED',	1);
486
487define('MEDIA_TYPE_STATUS_ACTIVE',		0);
488define('MEDIA_TYPE_STATUS_DISABLED',	1);
489
490define('MEDIA_TYPE_EMAIL',		0);
491define('MEDIA_TYPE_EXEC',		1);
492define('MEDIA_TYPE_SMS',		2);
493define('MEDIA_TYPE_JABBER',		3);
494define('MEDIA_TYPE_EZ_TEXTING',	100);
495
496define('SMTP_CONNECTION_SECURITY_NONE',		0);
497define('SMTP_CONNECTION_SECURITY_STARTTLS',	1);
498define('SMTP_CONNECTION_SECURITY_SSL_TLS',	2);
499
500define('SMTP_AUTHENTICATION_NONE',		0);
501define('SMTP_AUTHENTICATION_NORMAL',	1);
502
503define('EZ_TEXTING_LIMIT_USA',		0);
504define('EZ_TEXTING_LIMIT_CANADA',	1);
505
506define('ACTION_DEFAULT_SUBJ_TRIGGER', '{TRIGGER.STATUS}: {TRIGGER.NAME}');
507define('ACTION_DEFAULT_SUBJ_AUTOREG', 'Auto registration: {HOST.HOST}');
508define('ACTION_DEFAULT_SUBJ_DISCOVERY', 'Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}');
509
510define('ACTION_DEFAULT_MSG_TRIGGER', "Trigger: {TRIGGER.NAME}\nTrigger status: {TRIGGER.STATUS}\n".
511		"Trigger severity: {TRIGGER.SEVERITY}\nTrigger URL: {TRIGGER.URL}\n\nItem values:\n\n".
512		"1. {ITEM.NAME1} ({HOST.NAME1}:{ITEM.KEY1}): {ITEM.VALUE1}\n".
513		"2. {ITEM.NAME2} ({HOST.NAME2}:{ITEM.KEY2}): {ITEM.VALUE2}\n".
514		"3. {ITEM.NAME3} ({HOST.NAME3}:{ITEM.KEY3}): {ITEM.VALUE3}\n\n".
515		"Original event ID: {EVENT.ID}"
516);
517define('ACTION_DEFAULT_MSG_AUTOREG', "Host name: {HOST.HOST}\nHost IP: {HOST.IP}\nAgent port: {HOST.PORT}");
518define('ACTION_DEFAULT_MSG_DISCOVERY', "Discovery rule: {DISCOVERY.RULE.NAME}\n\nDevice IP:{DISCOVERY.DEVICE.IPADDRESS}\n".
519		"Device DNS: {DISCOVERY.DEVICE.DNS}\nDevice status: {DISCOVERY.DEVICE.STATUS}\n".
520		"Device uptime: {DISCOVERY.DEVICE.UPTIME}\n\nDevice service name: {DISCOVERY.SERVICE.NAME}\n".
521		"Device service port: {DISCOVERY.SERVICE.PORT}\nDevice service status: {DISCOVERY.SERVICE.STATUS}\n".
522		"Device service uptime: {DISCOVERY.SERVICE.UPTIME}"
523);
524
525define('ACTION_STATUS_ENABLED',		0);
526define('ACTION_STATUS_DISABLED',	1);
527
528define('OPERATION_TYPE_MESSAGE',		0);
529define('OPERATION_TYPE_COMMAND',		1);
530define('OPERATION_TYPE_HOST_ADD',		2);
531define('OPERATION_TYPE_HOST_REMOVE',	3);
532define('OPERATION_TYPE_GROUP_ADD',		4);
533define('OPERATION_TYPE_GROUP_REMOVE',	5);
534define('OPERATION_TYPE_TEMPLATE_ADD',	6);
535define('OPERATION_TYPE_TEMPLATE_REMOVE',7);
536define('OPERATION_TYPE_HOST_ENABLE',	8);
537define('OPERATION_TYPE_HOST_DISABLE',	9);
538define('OPERATION_TYPE_HOST_INVENTORY',	10);
539
540define('CONDITION_EVAL_TYPE_AND_OR',		0);
541define('CONDITION_EVAL_TYPE_AND',			1);
542define('CONDITION_EVAL_TYPE_OR',			2);
543define('CONDITION_EVAL_TYPE_EXPRESSION', 	3);
544
545// screen
546define('SCREEN_RESOURCE_GRAPH',				0);
547define('SCREEN_RESOURCE_SIMPLE_GRAPH',		1);
548define('SCREEN_RESOURCE_MAP',				2);
549define('SCREEN_RESOURCE_PLAIN_TEXT',		3);
550define('SCREEN_RESOURCE_HOSTS_INFO',		4);
551define('SCREEN_RESOURCE_TRIGGERS_INFO',		5);
552define('SCREEN_RESOURCE_SERVER_INFO',		6);
553define('SCREEN_RESOURCE_CLOCK',				7);
554define('SCREEN_RESOURCE_SCREEN',			8);
555define('SCREEN_RESOURCE_TRIGGERS_OVERVIEW',	9);
556define('SCREEN_RESOURCE_DATA_OVERVIEW',		10);
557define('SCREEN_RESOURCE_URL',				11);
558define('SCREEN_RESOURCE_ACTIONS',			12);
559define('SCREEN_RESOURCE_EVENTS',			13);
560define('SCREEN_RESOURCE_HOSTGROUP_TRIGGERS',14);
561define('SCREEN_RESOURCE_SYSTEM_STATUS',		15);
562define('SCREEN_RESOURCE_HOST_TRIGGERS',		16);
563// used in Monitoring > Latest data > Graph (history.php)
564define('SCREEN_RESOURCE_HISTORY',			17);
565define('SCREEN_RESOURCE_CHART',				18);
566define('SCREEN_RESOURCE_LLD_SIMPLE_GRAPH',	19);
567define('SCREEN_RESOURCE_LLD_GRAPH',			20);
568// used in Monitoring > Web > Details (httpdetails.php)
569define('SCREEN_RESOURCE_HTTPTEST_DETAILS',	21);
570// used in Monitoring > Discovery
571define('SCREEN_RESOURCE_DISCOVERY',			22);
572// used in Monitoring > Web
573define('SCREEN_RESOURCE_HTTPTEST',			23);
574
575define('SCREEN_SORT_TRIGGERS_DATE_DESC',			0);
576define('SCREEN_SORT_TRIGGERS_SEVERITY_DESC',		1);
577define('SCREEN_SORT_TRIGGERS_HOST_NAME_ASC',		2);
578define('SCREEN_SORT_TRIGGERS_TIME_ASC',				3);
579define('SCREEN_SORT_TRIGGERS_TIME_DESC',			4);
580define('SCREEN_SORT_TRIGGERS_TYPE_ASC',				5);
581define('SCREEN_SORT_TRIGGERS_TYPE_DESC',			6);
582define('SCREEN_SORT_TRIGGERS_STATUS_ASC',			7);
583define('SCREEN_SORT_TRIGGERS_STATUS_DESC',			8);
584define('SCREEN_SORT_TRIGGERS_RECIPIENT_ASC',		11);
585define('SCREEN_SORT_TRIGGERS_RECIPIENT_DESC',		12);
586
587define('SCREEN_MODE_PREVIEW',	0);
588define('SCREEN_MODE_EDIT',		1);
589define('SCREEN_MODE_SLIDESHOW',		2);
590define('SCREEN_MODE_JS',		3);
591
592define('SCREEN_SIMPLE_ITEM',	0);
593define('SCREEN_DYNAMIC_ITEM',	1);
594
595define('SCREEN_REFRESH_TIMEOUT',		30);
596define('SCREEN_REFRESH_RESPONSIVENESS',	10);
597
598define('SCREEN_SURROGATE_MAX_COLUMNS_MIN', 1);
599define('SCREEN_SURROGATE_MAX_COLUMNS_DEFAULT', 3);
600define('SCREEN_SURROGATE_MAX_COLUMNS_MAX', 100);
601
602define('SCREEN_MIN_SIZE', 1);
603define('SCREEN_MAX_SIZE', 100);
604
605define('DEFAULT_LATEST_ISSUES_CNT', 20);
606
607// alignments
608define('HALIGN_DEFAULT',	0);
609define('HALIGN_CENTER',		0);
610define('HALIGN_LEFT',		1);
611define('HALIGN_RIGHT',		2);
612
613define('VALIGN_DEFAULT',	0);
614define('VALIGN_MIDDLE',		0);
615define('VALIGN_TOP',		1);
616define('VALIGN_BOTTOM',		2);
617
618// info module style
619define('STYLE_HORIZONTAL',	0);
620define('STYLE_VERTICAL',	1);
621
622// view style [Overview]
623define('STYLE_LEFT',	0);
624define('STYLE_TOP',		1);
625
626// time module type
627define('TIME_TYPE_LOCAL',	0);
628define('TIME_TYPE_SERVER',	1);
629define('TIME_TYPE_HOST',	2);
630
631define('FILTER_TASK_SHOW',			0);
632define('FILTER_TASK_HIDE',			1);
633define('FILTER_TASK_MARK',			2);
634define('FILTER_TASK_INVERT_MARK',	3);
635
636define('MARK_COLOR_RED',	1);
637define('MARK_COLOR_GREEN',	2);
638define('MARK_COLOR_BLUE',	3);
639
640define('PROFILE_TYPE_ID',			1);
641define('PROFILE_TYPE_INT',			2);
642define('PROFILE_TYPE_STR',			3);
643
644define('CALC_FNC_MIN', 1);
645define('CALC_FNC_AVG', 2);
646define('CALC_FNC_MAX', 4);
647define('CALC_FNC_ALL', 7);
648define('CALC_FNC_LST', 9);
649
650define('SERVICE_TIME_TYPE_UPTIME',				0);
651define('SERVICE_TIME_TYPE_DOWNTIME',			1);
652define('SERVICE_TIME_TYPE_ONETIME_DOWNTIME',	2);
653
654define('USER_TYPE_ZABBIX_USER',		1);
655define('USER_TYPE_ZABBIX_ADMIN',	2);
656define('USER_TYPE_SUPER_ADMIN',		3);
657
658define('ZBX_NOT_INTERNAL_GROUP',	0);
659define('ZBX_INTERNAL_GROUP',		1);
660
661define('GROUP_STATUS_DISABLED', 1);
662define('GROUP_STATUS_ENABLED',	0);
663
664define('LINE_TYPE_NORMAL',	0);
665define('LINE_TYPE_BOLD',	1);
666
667// IMPORTANT!!! by priority DESC
668define('GROUP_GUI_ACCESS_SYSTEM',	0);
669define('GROUP_GUI_ACCESS_INTERNAL', 1);
670define('GROUP_GUI_ACCESS_DISABLED', 2);
671
672/**
673 * @see access_deny()
674 */
675define('ACCESS_DENY_OBJECT', 0);
676define('ACCESS_DENY_PAGE', 1);
677
678define('GROUP_DEBUG_MODE_DISABLED', 0);
679define('GROUP_DEBUG_MODE_ENABLED',	1);
680
681define('PERM_READ_WRITE',	3);
682define('PERM_READ',			2);
683define('PERM_DENY',			0);
684
685define('PARAM_TYPE_TIME',		0);
686define('PARAM_TYPE_COUNTS',		1);
687
688define('ZBX_DEFAULT_AGENT', 'Zabbix');
689define('ZBX_AGENT_OTHER', -1);
690
691define('HTTPTEST_AUTH_NONE',	0);
692define('HTTPTEST_AUTH_BASIC',	1);
693define('HTTPTEST_AUTH_NTLM',	2);
694
695define('HTTPTEST_STATUS_ACTIVE',	0);
696define('HTTPTEST_STATUS_DISABLED',	1);
697
698define('HTTPSTEP_ITEM_TYPE_RSPCODE',	0);
699define('HTTPSTEP_ITEM_TYPE_TIME',		1);
700define('HTTPSTEP_ITEM_TYPE_IN',			2);
701define('HTTPSTEP_ITEM_TYPE_LASTSTEP',	3);
702define('HTTPSTEP_ITEM_TYPE_LASTERROR',	4);
703
704define('HTTPTEST_STEP_RETRIEVE_MODE_CONTENT', 0);
705define('HTTPTEST_STEP_RETRIEVE_MODE_HEADERS', 1);
706
707define('HTTPTEST_STEP_FOLLOW_REDIRECTS_OFF', 0);
708define('HTTPTEST_STEP_FOLLOW_REDIRECTS_ON', 1);
709
710define('HTTPTEST_VERIFY_PEER_OFF', 0);
711define('HTTPTEST_VERIFY_PEER_ON', 1);
712
713define('HTTPTEST_VERIFY_HOST_OFF', 0);
714define('HTTPTEST_VERIFY_HOST_ON', 1);
715
716define('EVENT_ACK_DISABLED',	'0');
717define('EVENT_ACK_ENABLED',		'1');
718
719define('EVENT_NOT_ACKNOWLEDGED',	'0');
720define('EVENT_ACKNOWLEDGED',		'1');
721
722define('ZBX_ACKNOWLEDGE_SELECTED',	0);
723define('ZBX_ACKNOWLEDGE_PROBLEM',	1);
724define('ZBX_ACKNOWLEDGE_ALL',		2);
725
726define('EVENT_SOURCE_TRIGGERS',				0);
727define('EVENT_SOURCE_DISCOVERY',			1);
728define('EVENT_SOURCE_AUTO_REGISTRATION',	2);
729define('EVENT_SOURCE_INTERNAL', 			3);
730
731define('EVENT_OBJECT_TRIGGER',			0);
732define('EVENT_OBJECT_DHOST',			1);
733define('EVENT_OBJECT_DSERVICE',			2);
734define('EVENT_OBJECT_AUTOREGHOST',		3);
735define('EVENT_OBJECT_ITEM',				4);
736define('EVENT_OBJECT_LLDRULE',			5);
737
738define('GRAPH_YAXIS_TYPE_CALCULATED',	0);
739define('GRAPH_YAXIS_TYPE_FIXED',		1);
740define('GRAPH_YAXIS_TYPE_ITEM_VALUE',	2);
741
742define('GRAPH_YAXIS_SIDE_LEFT',		0);
743define('GRAPH_YAXIS_SIDE_RIGHT',	1);
744
745define('GRAPH_ITEM_SIMPLE',			0);
746define('GRAPH_ITEM_SUM',			2);
747
748define('GRAPH_TYPE_NORMAL',			0);
749define('GRAPH_TYPE_STACKED',		1);
750define('GRAPH_TYPE_PIE',			2);
751define('GRAPH_TYPE_EXPLODED',		3);
752define('GRAPH_TYPE_3D',				4);
753define('GRAPH_TYPE_3D_EXPLODED',	5);
754define('GRAPH_TYPE_BAR',			6);
755define('GRAPH_TYPE_COLUMN',			7);
756define('GRAPH_TYPE_BAR_STACKED',	8);
757define('GRAPH_TYPE_COLUMN_STACKED',	9);
758
759define('BR_DISTRIBUTION_MULTIPLE_PERIODS',	1);
760define('BR_DISTRIBUTION_MULTIPLE_ITEMS',	2);
761define('BR_COMPARE_VALUE_MULTIPLE_PERIODS',	3);
762
763define('GRAPH_3D_ANGLE', 70);
764
765define('GRAPH_STACKED_ALFA', 15); // 0..100 transparency
766
767define('GRAPH_ZERO_LINE_COLOR_LEFT',	'AAAAAA');
768define('GRAPH_ZERO_LINE_COLOR_RIGHT',	'888888');
769
770define('GRAPH_TRIGGER_LINE_OPPOSITE_COLOR', '000000');
771
772define('ZBX_MAX_TREND_DIFF', 3600);
773
774define('ZBX_GRAPH_MAX_SKIP_CELL',	16);
775define('ZBX_GRAPH_MAX_SKIP_DELAY',	4);
776
777define('DOBJECT_STATUS_UP',			0);
778define('DOBJECT_STATUS_DOWN',		1);
779define('DOBJECT_STATUS_DISCOVER',	2); // only for events
780define('DOBJECT_STATUS_LOST',		3); // generated by discovery
781
782define('DRULE_STATUS_ACTIVE',		0);
783define('DRULE_STATUS_DISABLED',		1);
784
785define('DSVC_STATUS_ACTIVE',		0);
786define('DSVC_STATUS_DISABLED',		1);
787
788define('SVC_SSH',		0);
789define('SVC_LDAP',		1);
790define('SVC_SMTP',		2);
791define('SVC_FTP',		3);
792define('SVC_HTTP',		4);
793define('SVC_POP',		5);
794define('SVC_NNTP',		6);
795define('SVC_IMAP',		7);
796define('SVC_TCP',		8);
797define('SVC_AGENT',		9);
798define('SVC_SNMPv1',	10);
799define('SVC_SNMPv2c',	11);
800define('SVC_ICMPPING',	12);
801define('SVC_SNMPv3',	13);
802define('SVC_HTTPS',		14);
803define('SVC_TELNET',	15);
804
805define('DHOST_STATUS_ACTIVE',	0);
806define('DHOST_STATUS_DISABLED', 1);
807
808define('IM_FORCED',			0);
809define('IM_ESTABLISHED',	1);
810define('IM_TREE',			2);
811
812define('EXPRESSION_TYPE_INCLUDED',		0);
813define('EXPRESSION_TYPE_ANY_INCLUDED',	1);
814define('EXPRESSION_TYPE_NOT_INCLUDED',	2);
815define('EXPRESSION_TYPE_TRUE',			3);
816define('EXPRESSION_TYPE_FALSE',			4);
817
818define('HOST_INVENTORY_DISABLED',	-1);
819define('HOST_INVENTORY_MANUAL',		0);
820define('HOST_INVENTORY_AUTOMATIC',	1);
821
822define('EXPRESSION_HOST_UNKNOWN',			'#ERROR_HOST#');
823define('EXPRESSION_HOST_ITEM_UNKNOWN',		'#ERROR_ITEM#');
824define('EXPRESSION_NOT_A_MACRO_ERROR',		'#ERROR_MACRO#');
825define('EXPRESSION_FUNCTION_UNKNOWN',		'#ERROR_FUNCTION#');
826define('EXPRESSION_UNSUPPORTED_VALUE_TYPE',	'#ERROR_VALUE_TYPE#');
827
828/**
829 * @deprecated use either a literal space " " or a non-breakable space "&nbsp;" instead
830 */
831define('SPACE',	'&nbsp;');
832
833/**
834 * Symbol used to separate name pairs such as "host: item" or "proxy: host".
835 *
836 * Should not be used as just a colon.
837 */
838define('NAME_DELIMITER', ': ');
839
840define('UNKNOWN_VALUE', '');
841
842// suffixes
843define('ZBX_BYTE_SUFFIXES', 'KMGT');
844define('ZBX_TIME_SUFFIXES', 'smhdw');
845
846// preg
847define('ZBX_PREG_PRINT', '^\x00-\x1F');
848define('ZBX_PREG_MACRO_NAME', '([A-Z0-9\._]+)');
849define('ZBX_PREG_MACRO_NAME_LLD', '([A-Z0-9\._]+)');
850define('ZBX_PREG_INTERNAL_NAMES', '([0-9a-zA-Z_\. \-]+)'); // !!! Don't forget sync code with C !!!
851define('ZBX_PREG_NUMBER', '([\-+]?[0-9]+[.]?[0-9]*['.ZBX_BYTE_SUFFIXES.ZBX_TIME_SUFFIXES.']?)');
852define('ZBX_PREG_INT', '([\-+]?[0-9]+['.ZBX_BYTE_SUFFIXES.ZBX_TIME_SUFFIXES.']?)');
853define('ZBX_PREG_DEF_FONT_STRING', '/^[0-9\.:% ]+$/');
854define('ZBX_PREG_DNS_FORMAT', '([0-9a-zA-Z_\.\-$]|\{\$?'.ZBX_PREG_MACRO_NAME.'\})*');
855define('ZBX_PREG_HOST_FORMAT', ZBX_PREG_INTERNAL_NAMES);
856define('ZBX_PREG_MACRO_NAME_FORMAT', '(\{[A-Z\.]+\})');
857define('ZBX_PREG_EXPRESSION_LLD_MACROS', '(\{\#'.ZBX_PREG_MACRO_NAME_LLD.'\})');
858
859// !!! should be used with "x" modifier
860define('ZBX_PREG_ITEM_KEY_PARAMETER_FORMAT', '(
861	(?P>param) # match recursive parameter group
862	|
863	(\" # match quoted string
864		(
865			((\\\\)+?[^\\\\]) # match any amount of backslash with non-backslash ending
866			|
867			[^\"\\\\] # match any character except \ or "
868		)*? # match \" or any character except "
869	\")
870	|
871	[^\"\[\],][^,\]]*? #match unquoted string - any character except " [ ] and , at begining and any character except , and ] afterwards
872	|
873	() # match empty and only empty part
874)');
875define('ZBX_PREG_ITEM_KEY_FORMAT', '([0-9a-zA-Z_\. \-]+? # match key
876(?P<param>( # name parameter group used in recursion
877	\[ # match opening bracket
878		(
879			\s*?'.ZBX_PREG_ITEM_KEY_PARAMETER_FORMAT .' # match spaces and parameter
880			(
881				\s*?,\s*? # match spaces, comma and spaces
882				'.ZBX_PREG_ITEM_KEY_PARAMETER_FORMAT .' # match parameter
883			)*? # match spaces, comma, spaces, parameter zero or more times
884			\s*? #matches spaces
885		)
886	\] # match closing bracket
887))*? # matches non comma seperated brackets with parameters zero or more times
888)');
889
890define('ZBX_USER_ONLINE_TIME', 600); // 10min
891define('ZBX_GUEST_USER','guest');
892
893// IPMI
894define('IPMI_AUTHTYPE_DEFAULT',		-1);
895define('IPMI_AUTHTYPE_NONE',		0);
896define('IPMI_AUTHTYPE_MD2',			1);
897define('IPMI_AUTHTYPE_MD5',			2);
898define('IPMI_AUTHTYPE_STRAIGHT',	4);
899define('IPMI_AUTHTYPE_OEM',			5);
900define('IPMI_AUTHTYPE_RMCP_PLUS',	6);
901
902define('IPMI_PRIVILEGE_CALLBACK',	1);
903define('IPMI_PRIVILEGE_USER',		2);
904define('IPMI_PRIVILEGE_OPERATOR',	3);
905define('IPMI_PRIVILEGE_ADMIN',		4);
906define('IPMI_PRIVILEGE_OEM',		5);
907
908define('ZBX_HAVE_IPV6', 1);
909define('ZBX_DISCOVERER_IPRANGE_LIMIT', 65536);
910
911define('ZBX_SOCKET_TIMEOUT',        3);         // socket timeout limit
912define('ZBX_SOCKET_BYTES_LIMIT',    1048576);   // socket response size limit, 1048576 is 1MB in bytes
913
914// value is also used in servercheck.js file
915define('SERVER_CHECK_INTERVAL', 10);
916
917define('DATE_TIME_FORMAT_SECONDS_XML', 'Y-m-d\TH:i:s\Z');
918
919// XML export|import tags
920define('XML_TAG_MACRO',				'macro');
921define('XML_TAG_HOST',				'host');
922define('XML_TAG_HOSTINVENTORY',		'host_inventory');
923define('XML_TAG_ITEM',				'item');
924define('XML_TAG_TRIGGER',			'trigger');
925define('XML_TAG_GRAPH',				'graph');
926define('XML_TAG_GRAPH_ELEMENT',		'graph_element');
927define('XML_TAG_DEPENDENCY',		'dependency');
928
929define('ZBX_DEFAULT_IMPORT_HOST_GROUP', 'Imported hosts');
930
931// XML import flags
932// See ZBX-8151. Old version of libxml suffered from setting DTDLOAD and NOENT flags by default, which allowed
933// performing XXE attacks. Calling libxml_disable_entity_loader(true) also had no affect if flags passed to libxml
934// calls were 0 - so for better security with legacy libxml we need to call libxml_disable_entity_loader(true) AND
935// pass the LIBXML_NONET flag. Please keep in mind that LIBXML_NOENT actually EXPANDS entities, opposite to it's name -
936// so this flag is not needed here.
937define('LIBXML_IMPORT_FLAGS', LIBXML_NONET);
938
939// XML validation
940define('XML_STRING',		0x01);
941define('XML_ARRAY',			0x02);
942define('XML_INDEXED_ARRAY',	0x04);
943define('XML_REQUIRED',		0x08);
944
945// JSON error codes.
946if (!defined('JSON_ERROR_NONE')) {
947	define('JSON_ERROR_NONE', 0);
948}
949if (!defined('JSON_ERROR_SYNTAX')) {
950	define('JSON_ERROR_SYNTAX', 4);
951}
952
953// API errors
954define('ZBX_API_ERROR_INTERNAL',	111);
955define('ZBX_API_ERROR_PARAMETERS',	100);
956define('ZBX_API_ERROR_PERMISSIONS',	120);
957define('ZBX_API_ERROR_NO_AUTH',		200);
958define('ZBX_API_ERROR_NO_METHOD',	300);
959
960define('API_OUTPUT_EXTEND',		'extend');
961define('API_OUTPUT_COUNT',		'count');
962
963define('SEC_PER_MIN',			60);
964define('SEC_PER_HOUR',			3600);
965define('SEC_PER_DAY',			86400);
966define('SEC_PER_WEEK',			604800);
967define('SEC_PER_MONTH',			2592000);
968define('SEC_PER_YEAR',			31536000);
969
970define('ZBX_JAN_2038', 2145916800);
971
972define('DAY_IN_YEAR', 365);
973
974define('ZBX_MIN_PORT_NUMBER', 0);
975define('ZBX_MAX_PORT_NUMBER', 65535);
976
977// input fields
978define('ZBX_TEXTAREA_MACRO_WIDTH',				200);
979define('ZBX_TEXTAREA_MACRO_VALUE_WIDTH',		250);
980define('ZBX_TEXTAREA_COLOR_WIDTH',				96);
981define('ZBX_TEXTAREA_FILTER_SMALL_WIDTH',		150);
982define('ZBX_TEXTAREA_FILTER_STANDARD_WIDTH',	300);
983define('ZBX_TEXTAREA_FILTER_BIG_WIDTH',			524);
984define('ZBX_TEXTAREA_TINY_WIDTH',				75);
985define('ZBX_TEXTAREA_SMALL_WIDTH',				150);
986define('ZBX_TEXTAREA_MEDIUM_WIDTH',				270);
987define('ZBX_TEXTAREA_STANDARD_WIDTH',			453);
988define('ZBX_TEXTAREA_BIG_WIDTH',				540);
989define('ZBX_TEXTAREA_NUMERIC_STANDARD_WIDTH',	75);
990define('ZBX_TEXTAREA_NUMERIC_BIG_WIDTH',		150);
991define('ZBX_TEXTAREA_2DIGITS_WIDTH',			35);	// please use for date selector only
992define('ZBX_TEXTAREA_4DIGITS_WIDTH',			50);	// please use for date selector only
993define('ZBX_TEXTAREA_INTERFACE_IP_WIDTH',		225);
994define('ZBX_TEXTAREA_INTERFACE_DNS_WIDTH',		175);
995define('ZBX_TEXTAREA_INTERFACE_PORT_WIDTH',		100);
996define('ZBX_TEXTAREA_STANDARD_ROWS',			7);
997
998// decoration borders
999define('ZBX_HOST_INTERFACE_WIDTH',				750);
1000
1001// overviews help
1002define('ZBX_OVERVIEW_HELP_MIN_WIDTH',			125);
1003
1004// dashboard widgets
1005define('WIDGET_DISCOVERY_STATUS',		'dscvry');
1006define('WIDGET_FAVOURITE_GRAPHS',		'favgrph');
1007define('WIDGET_FAVOURITE_MAPS',			'favmap');
1008define('WIDGET_FAVOURITE_SCREENS',		'favscr');
1009define('WIDGET_HOST_STATUS',			'hoststat');
1010define('WIDGET_LAST_ISSUES',			'lastiss');
1011define('WIDGET_SYSTEM_STATUS',			'syssum');
1012define('WIDGET_WEB_OVERVIEW',			'webovr');
1013define('WIDGET_ZABBIX_STATUS',			'stszbx');
1014// event details widgets
1015define('WIDGET_HAT_TRIGGERDETAILS',		'hat_triggerdetails');
1016define('WIDGET_HAT_EVENTDETAILS',		'hat_eventdetails');
1017define('WIDGET_HAT_EVENTACK',			'hat_eventack');
1018define('WIDGET_HAT_EVENTACTIONMSGS',	'hat_eventactionmsgs');
1019define('WIDGET_HAT_EVENTACTIONMCMDS',	'hat_eventactionmcmds');
1020define('WIDGET_HAT_EVENTLIST',			'hat_eventlist');
1021// search widget
1022define('WIDGET_SEARCH_HOSTS',			'search_hosts');
1023define('WIDGET_SEARCH_HOSTGROUP',		'search_hostgroup');
1024define('WIDGET_SEARCH_TEMPLATES',		'search_templates');
1025// slideshow
1026define('WIDGET_SLIDESHOW',				'hat_slides');
1027
1028// validation
1029define('DB_ID',		"({}>=0&&bccomp({},\"9223372036854775807\")<=0)&&");
1030define('NOT_EMPTY',	"({}!='')&&");
1031define('NOT_ZERO',	"({}!=0)&&");
1032
1033define('ZBX_VALID_OK',		0);
1034define('ZBX_VALID_ERROR',	1);
1035define('ZBX_VALID_WARNING',	2);
1036
1037// user default theme
1038define('THEME_DEFAULT', 'default');
1039
1040// the default theme
1041define('ZBX_DEFAULT_THEME', 'blue-theme');
1042
1043define('ZABBIX_HOMEPAGE', 'http://www.zabbix.com');
1044define('ZBX_DEFAULT_URL', 'zabbix.php?action=dashboard.view');
1045
1046// non translatable date formats
1047define('TIMESTAMP_FORMAT', 'YmdHis');
1048define('TIMESTAMP_FORMAT_ZERO_TIME', 'Ymd0000');
1049
1050// date format context, usable for translators
1051define('DATE_FORMAT_CONTEXT', 'Date format (see http://php.net/date)');
1052
1053// availability report modes
1054define('AVAILABILITY_REPORT_BY_HOST', 0);
1055define('AVAILABILITY_REPORT_BY_TEMPLATE', 1);
1056
1057// queue modes
1058define('QUEUE_OVERVIEW', 0);
1059define('QUEUE_OVERVIEW_BY_PROXY', 1);
1060define('QUEUE_DETAILS', 2);
1061
1062// item count to display in the details queue
1063define('QUEUE_DETAIL_ITEM_COUNT', 500);
1064
1065// constants for element "copy to..." target types
1066define('COPY_TYPE_TO_HOST', 0);
1067define('COPY_TYPE_TO_TEMPLATE', 2);
1068define('COPY_TYPE_TO_HOST_GROUP', 1);
1069
1070define('HISTORY_GRAPH', 'showgraph');
1071define('HISTORY_BATCH_GRAPH', 'batchgraph');
1072define('HISTORY_VALUES', 'showvalues');
1073define('HISTORY_LATEST', 'showlatest');
1074
1075// configuration -> maps default add icon name
1076define('MAP_DEFAULT_ICON', 'Server_(96)');
1077
1078// CSS styles
1079define('ZBX_STYLE_ACTION_BUTTONS', 'action-buttons');
1080define('ZBX_STYLE_ACTIVE_INDIC', 'active-indic');
1081define('ZBX_STYLE_ACTIVE_BG', 'active-bg');
1082define('ZBX_STYLE_ADM_IMG', 'adm-img');
1083define('ZBX_STYLE_ARTICLE', 'article');
1084define('ZBX_STYLE_AVERAGE_BG', 'average-bg');
1085define('ZBX_STYLE_ARROW_DOWN', 'arrow-down');
1086define('ZBX_STYLE_ARROW_LEFT', 'arrow-left');
1087define('ZBX_STYLE_ARROW_RIGHT', 'arrow-right');
1088define('ZBX_STYLE_ARROW_UP', 'arrow-up');
1089define('ZBX_STYLE_BLUE', 'blue');
1090define('ZBX_STYLE_BTN_ADD_FAV', 'btn-add-fav');
1091define('ZBX_STYLE_BTN_ALT', 'btn-alt');
1092define('ZBX_STYLE_BTN_CONF', 'btn-conf');
1093define('ZBX_STYLE_BTN_DEBUG', 'btn-debug');
1094define('ZBX_STYLE_BTN_GREY', 'btn-grey');
1095define('ZBX_STYLE_BTN_INFO', 'btn-info');
1096define('ZBX_STYLE_BTN_LINK', 'btn-link');
1097define('ZBX_STYLE_BTN_MAX', 'btn-max');
1098define('ZBX_STYLE_BTN_MIN', 'btn-min');
1099define('ZBX_STYLE_BTN_REMOVE_FAV', 'btn-remove-fav');
1100define('ZBX_STYLE_BTN_RESET', 'btn-reset');
1101define('ZBX_STYLE_BTN_SEARCH', 'btn-search');
1102define('ZBX_STYLE_BTN_WIDGET_ACTION', 'btn-widget-action');
1103define('ZBX_STYLE_BTN_WIDGET_COLLAPSE', 'btn-widget-collapse');
1104define('ZBX_STYLE_BTN_WIDGET_EXPAND', 'btn-widget-expand');
1105define('ZBX_STYLE_BOTTOM', 'bottom');
1106define('ZBX_STYLE_BROWSER_LOGO_CHROME', 'browser-logo-chrome');
1107define('ZBX_STYLE_BROWSER_LOGO_FF', 'browser-logo-ff');
1108define('ZBX_STYLE_BROWSER_LOGO_IE', 'browser-logo-ie');
1109define('ZBX_STYLE_BROWSER_LOGO_OPERA', 'browser-logo-opera');
1110define('ZBX_STYLE_BROWSER_LOGO_SAFARI', 'browser-logo-safari');
1111define('ZBX_STYLE_BROWSER_WARNING_CONTAINER', 'browser-warning-container');
1112define('ZBX_STYLE_BROWSER_WARNING_FOOTER', 'browser-warning-footer');
1113define('ZBX_STYLE_CELL', 'cell');
1114define('ZBX_STYLE_CELL_WIDTH', 'cell-width');
1115define('ZBX_STYLE_CENTER', 'center');
1116define('ZBX_STYLE_CLOCK', 'clock');
1117define('ZBX_STYLE_CLOCK_FACE', 'clock-face');
1118define('ZBX_STYLE_CLOCK_HAND', 'clock-hand');
1119define('ZBX_STYLE_CLOCK_HAND_SEC', 'clock-hand-sec');
1120define('ZBX_STYLE_CLOCK_LINES', 'clock-lines');
1121define('ZBX_STYLE_COLOR_PICKER', 'color-picker');
1122define('ZBX_STYLE_CURSOR_MOVE', 'cursor-move');
1123define('ZBX_STYLE_CURSOR_POINTER', 'cursor-pointer');
1124define('ZBX_STYLE_DASHBRD_WIDGET_HEAD', 'dashbrd-widget-head');
1125define('ZBX_STYLE_DASHBRD_WIDGET_FOOT', 'dashbrd-widget-foot');
1126define('ZBX_STYLE_DASHED_BORDER', 'dashed-border');
1127define('ZBX_STYLE_DEBUG_OUTPUT', 'debug-output');
1128define('ZBX_STYLE_DISABLED', 'disabled');
1129define('ZBX_STYLE_DISASTER_BG', 'disaster-bg');
1130define('ZBX_STYLE_DRAG_ICON', 'drag-icon');
1131define('ZBX_STYLE_DRAG_DROP_AREA', 'drag-drop-area');
1132define('ZBX_STYLE_TABLE_FORMS_SEPARATOR', 'table-forms-separator');
1133define('ZBX_STYLE_FILTER_CONTAINER', 'filter-container');
1134define('ZBX_STYLE_FILTER_BTN_CONTAINER', 'filter-btn-container');
1135define('ZBX_STYLE_FILTER_FORMS', 'filter-forms');
1136define('ZBX_STYLE_FILTER_TRIGGER', 'filter-trigger');
1137define('ZBX_STYLE_FILTER_ACTIVE', 'filter-active');
1138define('ZBX_STYLE_FLOAT_LEFT', 'float-left');
1139define('ZBX_STYLE_FORM_INPUT_MARGIN', 'form-input-margin');
1140define('ZBX_STYLE_FORM_NEW_GROUP', 'form-new-group');
1141define('ZBX_STYLE_FOOTER', 'footer');
1142define('ZBX_STYLE_GREEN', 'green');
1143define('ZBX_STYLE_GREEN_BG', 'green-bg');
1144define('ZBX_STYLE_GREY', 'grey');
1145define('ZBX_STYLE_HEADER_LOGO', 'header-logo');
1146define('ZBX_STYLE_HEADER_TITLE', 'header-title');
1147define('ZBX_STYLE_HIDDEN', 'hidden');
1148define('ZBX_STYLE_HIGH_BG', 'high-bg');
1149define('ZBX_STYLE_HOR_LIST', 'hor-list');
1150define('ZBX_STYLE_ICON_ACKN', 'icon-ackn');
1151define('ZBX_STYLE_ICON_CAL', 'icon-cal');
1152define('ZBX_STYLE_ICON_DEPEND_DOWN', 'icon-depend-down');
1153define('ZBX_STYLE_ICON_DEPEND_UP', 'icon-depend-up');
1154define('ZBX_STYLE_ICON_MAINT', 'icon-maint');
1155define('ZBX_STYLE_ICON_WZRD_ACTION', 'icon-wzrd-action');
1156define('ZBX_STYLE_INACTIVE_BG', 'inactive-bg');
1157define('ZBX_STYLE_INFO_BG', 'info-bg');
1158define('ZBX_STYLE_INPUT_COLOR_PICKER', 'input-color-picker');
1159define('ZBX_STYLE_LEFT', 'left');
1160define('ZBX_STYLE_LINK_ACTION', 'link-action');
1161define('ZBX_STYLE_LINK_ALT', 'link-alt');
1162define('ZBX_STYLE_LIST_HOR_CHECK_RADIO', 'list-hor-check-radio');
1163define('ZBX_STYLE_LIST_HOR_MIN_WIDTH', 'list-hor-min-width');
1164define('ZBX_STYLE_LIST_CHECK_RADIO', 'list-check-radio');
1165define('ZBX_STYLE_LIST_TABLE', 'list-table');
1166define('ZBX_STYLE_LOCAL_CLOCK', 'local-clock');
1167define('ZBX_STYLE_LOG_NA_BG', 'log-na-bg');
1168define('ZBX_STYLE_LOG_INFO_BG', 'log-info-bg');
1169define('ZBX_STYLE_LOG_WARNING_BG', 'log-warning-bg');
1170define('ZBX_STYLE_LOG_HIGH_BG', 'log-high-bg');
1171define('ZBX_STYLE_LOG_DISASTER_BG', 'log-disaster-bg');
1172define('ZBX_STYLE_LOGO', 'logo');
1173define('ZBX_STYLE_MAP_AREA', 'map-area');
1174define('ZBX_STYLE_MIDDLE', 'middle');
1175define('ZBX_STYLE_MSG_GOOD', 'msg-good');
1176define('ZBX_STYLE_MSG_BAD', 'msg-bad');
1177define('ZBX_STYLE_MSG_BAD_GLOBAL', 'msg-bad-global');
1178define('ZBX_STYLE_MSG_DETAILS', 'msg-details');
1179define('ZBX_STYLE_MSG_DETAILS_BORDER', 'msg-details-border');
1180define('ZBX_STYLE_NA_BG', 'na-bg');
1181define('ZBX_STYLE_NAV', 'nav');
1182define('ZBX_STYLE_NORMAL_BG', 'normal-bg');
1183define('ZBX_STYLE_NOTIF_BODY', 'notif-body');
1184define('ZBX_STYLE_NOTIF_INDIC', 'notif-indic');
1185define('ZBX_STYLE_NOTIF_INDIC_CONTAINER', 'notif-indic-container');
1186define('ZBX_STYLE_NOTHING_TO_SHOW', 'nothing-to-show');
1187define('ZBX_STYLE_NOWRAP', 'nowrap');
1188define('ZBX_STYLE_ORANGE', 'orange');
1189define('ZBX_STYLE_OVERLAY_CLOSE_BTN', 'overlay-close-btn');
1190define('ZBX_STYLE_OVERLAY_DESCR', 'overlay-descr');
1191define('ZBX_STYLE_OVERLAY_DESCR_URL', 'overlay-descr-url');
1192define('ZBX_STYLE_OVERFLOW_ELLIPSIS', 'overflow-ellipsis');
1193define('ZBX_STYLE_OBJECT_GROUP', 'object-group');
1194define('ZBX_STYLE_PAGING_BTN_CONTAINER', 'paging-btn-container');
1195define('ZBX_STYLE_PAGING_SELECTED', 'paging-selected');
1196define('ZBX_STYLE_PRELOADER', 'preloader');
1197define('ZBX_STYLE_PROGRESS_BAR_BG', 'progress-bar-bg');
1198define('ZBX_STYLE_PROGRESS_BAR_CONTAINER', 'progress-bar-container');
1199define('ZBX_STYLE_PROGRESS_BAR_LABEL', 'progress-bar-label');
1200define('ZBX_STYLE_RADIO_SEGMENTED', 'radio-segmented');
1201define('ZBX_STYLE_RED', 'red');
1202define('ZBX_STYLE_RED_BG', 'red-bg');
1203define('ZBX_STYLE_REL_CONTAINER', 'rel-container');
1204define('ZBX_STYLE_RIGHT', 'right');
1205define('ZBX_STYLE_ROW', 'row');
1206define('ZBX_STYLE_SCREEN_TABLE', 'screen-table');
1207define('ZBX_STYLE_SEARCH', 'search');
1208define('ZBX_STYLE_SELECTED', 'selected');
1209define('ZBX_STYLE_SELECTED_ITEM_COUNT', 'selected-item-count');
1210define('ZBX_STYLE_SERVER_NAME', 'server-name');
1211define('ZBX_STYLE_SETUP_CONTAINER', 'setup-container');
1212define('ZBX_STYLE_SETUP_FOOTER', 'setup-footer');
1213define('ZBX_STYLE_SETUP_LEFT', 'setup-left');
1214define('ZBX_STYLE_SETUP_LEFT_CURRENT', 'setup-left-current');
1215define('ZBX_STYLE_SETUP_RIGHT', 'setup-right');
1216define('ZBX_STYLE_SETUP_RIGHT_BODY', 'setup-right-body');
1217define('ZBX_STYLE_SETUP_TITLE', 'setup-title');
1218define('ZBX_STYLE_SIGNIN_CONTAINER', 'signin-container');
1219define('ZBX_STYLE_SIGNIN_LINKS', 'signin-links');
1220define('ZBX_STYLE_SIGNIN_LOGO', 'signin-logo');
1221define('ZBX_STYLE_SIGN_IN_TXT', 'sign-in-txt');
1222define('ZBX_STYLE_STATUS_CONTAINER', 'status-container');
1223define('ZBX_STYLE_STATUS_GREEN', 'status-green');
1224define('ZBX_STYLE_STATUS_GREY', 'status-grey');
1225define('ZBX_STYLE_STATUS_RED', 'status-red');
1226define('ZBX_STYLE_STATUS_YELLOW', 'status-yellow');
1227define('ZBX_STYLE_SUBFILTER', 'subfilter');
1228define('ZBX_STYLE_SUBFILTER_ENABLED', 'subfilter-enabled');
1229define('ZBX_STYLE_TABLE', 'table');
1230define('ZBX_STYLE_TABLE_FORMS', 'table-forms');
1231define('ZBX_STYLE_TABLE_FORMS_CONTAINER', 'table-forms-container');
1232define('ZBX_STYLE_TABLE_FORMS_TD_LEFT', 'table-forms-td-left');
1233define('ZBX_STYLE_TABLE_FORMS_TD_RIGHT', 'table-forms-td-right');
1234define('ZBX_STYLE_TABLE_PAGING', 'table-paging');
1235define('ZBX_STYLE_TABLE_STATS', 'table-stats');
1236define('ZBX_STYLE_TABS_NAV', 'tabs-nav');
1237define('ZBX_STYLE_TFOOT_BUTTONS', 'tfoot-buttons');
1238define('ZBX_STYLE_TD_DRAG_ICON', 'td-drag-icon');
1239define('ZBX_STYLE_TIME_ZONE', 'time-zone');
1240define('ZBX_STYLE_TOP', 'top');
1241define('ZBX_STYLE_TOP_NAV', 'top-nav');
1242define('ZBX_STYLE_TOP_NAV_CONTAINER', 'top-nav-container');
1243define('ZBX_STYLE_TOP_NAV_HELP', 'top-nav-help');
1244define('ZBX_STYLE_TOP_NAV_ICONS', 'top-nav-icons');
1245define('ZBX_STYLE_TOP_NAV_PROFILE', 'top-nav-profile');
1246define('ZBX_STYLE_TOP_NAV_SIGNOUT', 'top-nav-signout');
1247define('ZBX_STYLE_TOP_NAV_ZBBSHARE', 'top-nav-zbbshare');
1248define('ZBX_STYLE_TOP_SUBNAV', 'top-subnav');
1249define('ZBX_STYLE_TOP_SUBNAV_CONTAINER', 'top-subnav-container');
1250define('ZBX_STYLE_TREEVIEW', 'treeview');
1251define('ZBX_STYLE_TREEVIEW_PLUS', 'treeview-plus');
1252define('ZBX_STYLE_UPPERCASE', 'uppercase');
1253define('ZBX_STYLE_WARNING_BG', 'warning-bg');
1254define('ZBX_STYLE_YELLOW', 'yellow');
1255
1256// server variables
1257define('HTTPS', isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] && $_SERVER['HTTPS'] != 'off');
1258
1259// configuration -> hosts (macro inheritance)
1260define('MACRO_TYPE_INHERITED',	0x01);
1261define('MACRO_TYPE_HOSTMACRO',	0x02);
1262define('MACRO_TYPE_BOTH',		0x03);	// MACRO_TYPE_INHERITED | MACRO_TYPE_HOSTMACRO
1263
1264// if magic quotes on, then get rid of them
1265if (get_magic_quotes_gpc()) {
1266	function zbx_stripslashes($value) {
1267		$value = is_array($value) ? array_map('zbx_stripslashes', $value) : stripslashes($value);
1268		return $value;
1269	}
1270	$_GET = zbx_stripslashes($_GET);
1271	$_POST = zbx_stripslashes($_POST);
1272	$_COOKIE = zbx_stripslashes($_COOKIE);
1273}
1274
1275// init $_REQUEST
1276ini_set('variables_order', 'GP');
1277$_REQUEST = $_POST + $_GET;
1278
1279// init precision
1280ini_set('precision', 14);
1281
1282// BC Math scale. bcscale() can be undefined prior requirement check in setup.
1283if (function_exists('bcscale')) {
1284	bcscale(7);
1285}
1286
1287/**
1288 * The sandbox attribute enables an extra set of restrictions for the content in the iframe. Default is set to empty
1289 * string, which means all restrictions are applied. To disable, set to FALSE. To set a specific set of restrictions,
1290 * write a custom string.
1291 * https://www.w3.org/TR/2010/WD-html5-20100624/the-iframe-element.html#attr-iframe-sandbox
1292 */
1293define('ZBX_IFRAME_SANDBOX', '');
1294
1295// HTTP headers
1296/*
1297 * Value of HTTP X-Frame-options header.
1298 *
1299 * Supported options:
1300 *  - SAMEORIGIN (string) - compatible with rfc7034.
1301 *  - DENY (string) - compatible with rfc7034.
1302 *  - a list (string) of comma-separated hostnames. If hostname is not between allowed, the SAMEORIGIN option is used.
1303 *  - null - disable X-Frame-options header.
1304 */
1305define('X_FRAME_OPTIONS', 'SAMEORIGIN');
1306