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