Merge branch 'debian'
[hcoop/debian/exim4.git] / exim_monitor / em_globals.c
CommitLineData
420a0d19
CE
1/*************************************************
2* Exim Monitor *
3*************************************************/
4
2ea97746 5/* Copyright (c) University of Cambridge 1995 - 2018 */
420a0d19
CE
6/* See the file NOTICE for conditions of use and distribution. */
7
8
9#include "em_hdr.h"
10
11/* This source module contains all the global variables used in
12the exim monitor, including those that are used by the standard
13Exim modules that are included in Eximon. For comments on their
14usage, see em_hdr.h and globals.h. */
15
16
17/* The first set are unique to Eximon */
18
19Display *X_display;
20XtAppContext X_appcon;
21
22XtActionsRec actionTable[] = {
23 { "dialogAction", (XtActionProc)dialogAction}};
24
25int actionTableSize = sizeof(actionTable)/sizeof(XtActionsRec);
26
27XtTranslations queue_trans;
28XtTranslations text_trans;
29
30Widget dialog_ref_widget;
31Widget toplevel_widget;
32Widget log_widget = NULL;
33Widget queue_widget;
34Widget unhide_widget = NULL;
35
36
37FILE *LOG;
38
39int action_output = FALSE;
40int action_queue_update = TRUE;
41uschar actioned_message[24];
42uschar *action_required;
43uschar *alternate_config = NULL;
44
45#ifdef EXPERIMENTAL_BRIGHTMAIL
46int bmi_run = 0;
47uschar *bmi_verdicts = NULL;
48#endif
49
50int body_max = 20000;
51
52uschar *exim_path = US BIN_DIRECTORY "/exim"
53 "\0<---------------Space to patch exim_path->";
54
55int eximon_initialized = FALSE;
56
57int log_buffer_size = 10240;
58BOOL log_datestamping = FALSE;
59int log_depth = 150;
60uschar *log_display_buffer;
61uschar *log_file = NULL;
62uschar log_file_open[256];
63uschar *log_font = NULL;
64ino_t log_inode;
65long int log_position;
66int log_width = 600;
67
68uschar *menu_event = US"Shift<Btn1Down>";
69int menu_is_up = FALSE;
70int min_height = 162;
71int min_width = 103;
72
73pipe_item *pipe_chain = NULL;
74
75uschar *qualify_domain = NULL;
76int queue_depth = 200;
77uschar *queue_font = NULL;
78int queue_max_addresses = 10;
79skip_item *queue_skip = NULL;
80uschar *queue_stripchart_name = NULL;
81int queue_update = 60;
82int queue_width = 600;
83
84pcre *yyyymmdd_regex;
85
86uschar *size_stripchart = NULL;
87uschar *size_stripchart_name = NULL;
88int spool_is_split = FALSE;
89int start_small = FALSE;
90int stripchart_height = 90;
91int stripchart_number = 1;
92pcre **stripchart_regex;
93uschar **stripchart_title;
94int *stripchart_total;
95int stripchart_update = 60;
96int stripchart_width = 80;
97int stripchart_varstart = 1;
98
99int text_depth = 200;
100int tick_queue_accumulator = 999999;
101
102uschar *window_title = US"exim monitor";
103
104
105/***********************************************************/
106/***********************************************************/
107
108
109/* These ones are used by Exim modules included in Eximon. Not all are
110actually relevant to the operation of Eximon. If SPOOL_DIRECTORY is not
111defined (Exim was compiled with it unset), just define it empty. The script
112that fires up the monitor fishes the value out by using -bP anyway. */
113
114#ifndef SPOOL_DIRECTORY
115#define SPOOL_DIRECTORY ""
116#endif
117
118tree_node *acl_var_c = NULL;
119tree_node *acl_var_m = NULL;
120uschar *active_hostname = NULL;
121BOOL allow_unqualified_recipient = FALSE;
122BOOL allow_unqualified_sender = FALSE;
123uschar *authenticated_id = NULL;
124uschar *authenticated_sender = NULL;
125
126uschar *big_buffer = NULL;
127int big_buffer_size = BIG_BUFFER_SIZE;
128int body_linecount = 0;
129int body_zerocount = 0;
130
131BOOL deliver_firsttime = FALSE;
132BOOL deliver_freeze = FALSE;
133time_t deliver_frozen_at = 0;
134BOOL deliver_manual_thaw = FALSE;
135
136#ifndef DISABLE_DKIM
137uschar *dkim_cur_signer = NULL;
138uschar *dkim_signers = NULL;
139uschar *dkim_signing_domain = NULL;
140uschar *dkim_signing_selector = NULL;
141uschar *dkim_verify_signers = US"$dkim_signers";
2ea97746 142unsigned dkim_collect_input = 0;
420a0d19
CE
143BOOL dkim_disable_verify = FALSE;
144#endif
145
146BOOL dont_deliver = FALSE;
147
420a0d19
CE
148int dsn_ret = 0;
149uschar *dsn_envid = NULL;
2ea97746
CE
150
151struct global_flags f = {
152 .sender_local = FALSE,
153};
420a0d19
CE
154
155#ifdef WITH_CONTENT_SCAN
156int fake_response = OK;
157#endif
158
159header_line *header_last = NULL;
160header_line *header_list = NULL;
161
162BOOL host_lookup_deferred = FALSE;
163BOOL host_lookup_failed = FALSE;
164uschar *interface_address = NULL;
165int interface_port = 0;
166
167BOOL local_error_message = FALSE;
168uschar *local_scan_data = NULL;
169BOOL log_timezone = FALSE;
170
171#ifdef WITH_CONTENT_SCAN
172uschar *spam_bar = NULL;
173uschar *spam_report = NULL;
174uschar *spam_score = NULL;
175uschar *spam_score_int = NULL;
176#endif
177
178int max_received_linelength= 0;
179int message_age = 0;
180uschar *message_id;
181uschar *message_id_external;
182uschar message_id_option[MESSAGE_ID_LENGTH + 3];
183
184int message_linecount = 0;
185int message_size = 0;
186uschar message_subdir[2] = { 0, 0 };
187
188gid_t originator_gid;
189uschar *originator_login;
190uid_t originator_uid;
191
192uschar *primary_hostname = NULL;
193
2ea97746
CE
194uschar *queue_name = US"";
195
420a0d19
CE
196int received_count = 0;
197uschar *received_protocol = NULL;
2ea97746 198struct timeval received_time = { 0, 0 };
420a0d19
CE
199int recipients_count = 0;
200recipient_item *recipients_list = NULL;
201int recipients_list_max = 0;
2ea97746 202BOOL running_in_test_harness=FALSE;
420a0d19
CE
203
204uschar *sender_address = NULL;
205uschar *sender_fullhost = NULL;
206uschar *sender_helo_name = NULL;
207uschar *sender_host_address = NULL;
208uschar *sender_host_authenticated = NULL;
209uschar *sender_host_name = NULL;
210int sender_host_port = 0;
211uschar *sender_ident = NULL;
420a0d19
CE
212BOOL sender_set_untrusted = FALSE;
213uschar *smtp_active_hostname = NULL;
214
215BOOL split_spool_directory = FALSE;
216uschar *spool_directory = US SPOOL_DIRECTORY;
217int string_datestamp_offset=-1;
218int string_datestamp_length= 0;
219int string_datestamp_type = -1;
220
221BOOL timestamps_utc = FALSE;
222tls_support tls_in = {
2ea97746 223 {-1}, /* tls_active */
420a0d19
CE
224 0, /* bits */
225 FALSE, /* tls_certificate_verified */
2ea97746
CE
226#ifdef SUPPORT_DANE
227 FALSE, /* dane_verified */
228 0, /* tlsa_usage */
229#endif
420a0d19
CE
230 NULL, /* tls_cipher */
231 FALSE, /* tls_on_connect */
232 NULL, /* tls_on_connect_ports */
233 NULL, /* tls_peerdn */
234 NULL /* tls_sni */
235};
236
237tree_node *tree_duplicates = NULL;
238tree_node *tree_nonrecipients = NULL;
239tree_node *tree_unusable = NULL;
240
241uschar *version_date = US"?";
242uschar *version_string = US"?";
243
244int warning_count = 0;
245
246/* End of em_globals.c */