]> git.ipfire.org Git - thirdparty/sarg.git/blob - include/conf.h
The unauthenticated users were always ignored in the realtime report.
[thirdparty/sarg.git] / include / conf.h
1 #include "config.h"
2 #include "info.h"
3 #include "btree_cache.h"
4
5 #ifdef HAVE_WINDOWS_H
6 #include <windows.h>
7 #endif
8 #ifdef HAVE_STDIO_H
9 #include <stdio.h>
10 #endif
11 #ifdef HAVE_STDLIB_H
12 #include <stdlib.h>
13 #endif
14 #ifdef HAVE_STRING_H
15 #include <string.h>
16 #endif
17 #ifdef HAVE_STRINGS_H
18 #include <strings.h>
19 #endif
20 #ifdef HAVE_SYS_TIME_H
21 #include <sys/time.h>
22 #endif
23 #ifdef HAVE_TIME_H
24 #include <time.h>
25 #endif
26 #ifdef HAVE_SYS_RESOURCE_H
27 #include <sys/resource.h>
28 #endif
29 #ifdef HAVE_UNISTD_H
30 #include <unistd.h>
31 #endif
32 #if defined(HAVE_SYS_DIRENT_H) && !defined(HAVE_DIRENT_H)
33 #include <sys/dirent.h>
34 #endif
35 #ifdef HAVE_DIRENT_H
36 #include <dirent.h>
37 #endif
38 #ifdef HAVE_SYS_SOCKET_H
39 #include <sys/socket.h>
40 #endif
41 #ifdef HAVE_NETDB_H
42 #include <netdb.h>
43 #endif
44 #ifdef HAVE_TYPES_H
45 #include <types.h>
46 #endif
47 #ifdef HAVE_NETINET_IN_H
48 #include <netinet/in.h>
49 #endif
50 #ifdef HAVE_ARPA_INET_H
51 #include <arpa/inet.h>
52 #endif
53 #ifdef HAVE_SYS_STAT_H
54 #include <sys/stat.h>
55 #endif
56 #ifdef HAVE_CTYPE_H
57 #include <ctype.h>
58 #endif
59 #ifdef HAVE_ERRNO_H
60 #include <errno.h>
61 #endif
62 #ifdef HAVE_SYS_WAIT_H
63 #include <sys/wait.h>
64 #endif
65 #ifdef HAVE_GD_H
66 #define HAVE_GD 1
67 #include <gd.h>
68 #endif
69 #ifdef HAVE_GDFONTL_H
70 #include <gdfontl.h>
71 #endif
72 #ifdef HAVE_GDFONTT_H
73 #include <gdfontt.h>
74 #endif
75 #ifdef HAVE_GDFONTS_H
76 #include <gdfonts.h>
77 #endif
78 #ifdef HAVE_GDFONTMB_H
79 #include <gdfontmb.h>
80 #endif
81 #ifdef HAVE_GDFONTG_H
82 #include <gdfontg.h>
83 #endif
84 #ifdef HAVE_STDARG_H
85 #include <stdarg.h>
86 #endif
87 #ifdef HAVE_INTTYPES_H
88 #include <inttypes.h>
89 #endif
90 #ifdef HAVE_LIMITS_H
91 #include <limits.h>
92 #endif
93 #ifdef HAVE_WINSOCK_H
94 #include <winsock.h>
95 #endif
96 #ifdef HAVE_MATH_H
97 #include <math.h>
98 #endif
99 #ifdef HAVE_LOCALE_H
100 #include <locale.h>
101 #endif
102 #ifdef HAVE_EXECINFO_H
103 #include <execinfo.h>
104 #endif
105 #ifdef HAVE_LIBGEN_H
106 #include <libgen.h>
107 #endif
108 #ifdef HAVE_STDBOOL_H
109 #include <stdbool.h>
110 #else
111 typedef int bool;
112 #define true 1
113 #define false 0
114 #endif
115
116 #if defined(HAVE_FOPEN64)
117 #define _FILE_OFFSET_BITS 64
118 #define MY_FOPEN fopen64
119 #else
120 #define MY_FOPEN fopen
121 #endif
122
123 #if !defined(HAVE_BZERO)
124 #define bzero(mem,size) memset(mem,0,size)
125 #endif
126
127 #if defined(IBERTY_LIB) && !defined(HAVE_MKSTEMP)
128 int mkstemps(char *template, int suffixlen);
129 #define mkstemp(template) mkstemps(template,0)
130 #endif
131
132 #if defined(ENABLE_NLS) && defined(HAVE_LIBINTL_H)
133 #include <libintl.h>
134 #define _(String) gettext(String)
135 #ifdef gettext_noop
136 #define N_(String) gettext_noop(String)
137 #else
138 #define N_(String) (String)
139 #endif
140 #else /* No NLS */
141 #define _(String) (String)
142 #define N_(String) (String)
143 #define ngettext(String,Strings,num) (Strings)
144 #define textdomain(String)
145 #define bindtextdomain(Domain,Directory)
146 #endif //NLS
147
148 #if defined(__MINGW32__)
149 #define mkdir(p,m) _mkdir(p)
150
151 #ifndef WIFEXITED
152 #define WIFEXITED(S) 1
153 #endif
154
155 #ifndef WEXITSTATUS
156 #define WEXITSTATUS(S) (S)
157 #endif
158
159 #endif /*__MINGW32__*/
160
161 #ifndef __GNUC__
162 # define __attribute__(x)
163 #endif
164
165 #define MAXLEN 20000
166 #define MAX_URL_LEN 40000
167 #define MAX_TRUNCATED_URL 512
168 #define MAX_USER_LEN 256
169 #define MAX_USER_FNAME_LEN 128
170 #define MAX_IP_LEN 64
171 #define MAX_DATETIME_LEN 32
172 #define MAXLOGS 255
173 #define MAX_LOG_FILELEN 1024
174 #define MAX_REDIRECTOR_LOGS 64
175 #define MAX_REDIRECTOR_FILELEN 1024
176 #define MAX_DATETIME_DAYS 90
177
178 #define REPORT_TYPE_USERS_SITES 0x0001UL
179 #define REPORT_TYPE_SITE_USER_TIME_DATE 0x0002UL
180 #define REPORT_TYPE_TOPUSERS 0x0004UL
181 #define REPORT_TYPE_TOPSITES 0x0008UL
182 #define REPORT_TYPE_SITES_USERS 0x0010UL
183 #define REPORT_TYPE_DATE_TIME 0x0020UL
184 #define REPORT_TYPE_DENIED 0x0040UL
185 #define REPORT_TYPE_AUTH_FAILURES 0x0080UL
186 #define REPORT_TYPE_DOWNLOADS 0x0100UL
187
188 #define DATA_FIELD_USER 0x0001UL
189 #define DATA_FIELD_DATE 0x0002UL
190 #define DATA_FIELD_TIME 0x0004UL
191 #define DATA_FIELD_URL 0x0008UL
192 #define DATA_FIELD_CONNECT 0x0010UL
193 #define DATA_FIELD_BYTES 0x0020UL
194 #define DATA_FIELD_IN_CACHE 0x0040UL
195 #define DATA_FIELD_OUT_CACHE 0x0080UL
196 #define DATA_FIELD_ELAPSED 0x0100UL
197
198 #define TOPUSERFIELDS_NUM 0x0001UL
199 #define TOPUSERFIELDS_DATE_TIME 0x0002UL
200 #define TOPUSERFIELDS_USERID 0x0004UL
201 #define TOPUSERFIELDS_CONNECT 0x0008UL
202 #define TOPUSERFIELDS_BYTES 0x0010UL
203 #define TOPUSERFIELDS_SETYB 0x0020UL
204 #define TOPUSERFIELDS_IN_CACHE_OUT 0x0040UL
205 #define TOPUSERFIELDS_USED_TIME 0x0080UL
206 #define TOPUSERFIELDS_MILISEC 0x0100UL
207 #define TOPUSERFIELDS_PTIME 0x0200UL
208 #define TOPUSERFIELDS_TOTAL 0x0400UL
209 #define TOPUSERFIELDS_AVERAGE 0x0800UL
210
211 #define USERREPORTFIELDS_CONNECT 0x0001UL
212 #define USERREPORTFIELDS_BYTES 0x0002UL
213 #define USERREPORTFIELDS_SETYB 0x0004UL
214 #define USERREPORTFIELDS_IN_CACHE_OUT 0x0008UL
215 #define USERREPORTFIELDS_USED_TIME 0x0010UL
216 #define USERREPORTFIELDS_MILISEC 0x0020UL
217 #define USERREPORTFIELDS_PTIME 0x0040UL
218 #define USERREPORTFIELDS_TOTAL 0x0080UL
219 #define USERREPORTFIELDS_AVERAGE 0x0100UL
220
221 #define INDEX_YES 0x0001UL
222 #define INDEX_NO 0x0002UL
223 #define INDEX_ONLY 0x0004UL
224
225 #define INDEX_TREE_DATE 0x0001UL
226 #define INDEX_TREE_FILE 0x0002UL
227
228 #define NTLMUSERFORMAT_USER 0x0001UL
229 #define NTLMUSERFORMAT_DOMAINUSER 0x0002UL
230
231 #define RECORDWITHOUTUSER_IP 0x0001UL
232 #define RECORDWITHOUTUSER_IGNORE 0x0002UL
233 #define RECORDWITHOUTUSER_EVERYBODY 0x0004UL
234
235 #define DATAFILEURL_IP 0x0001UL
236 #define DATAFILEURL_NAME 0x0002UL
237
238 #define DISPLAY_BYTES 0x0001UL
239 #define DISPLAY_ABBREV 0x0002UL
240
241 #define DATETIME_ELAP 0x0001UL
242 #define DATETIME_BYTE 0x0002UL
243
244 #define REALTIME_UNAUTH_REC_SHOW 0x0001UL
245 #define REALTIME_UNAUTH_REC_IGNORE 0x0002UL
246
247 struct periodstruct
248 {
249 //! The first date of the period.
250 struct tm start;
251 //! The last date of the period.
252 struct tm end;
253 //! The textual representation of the date.
254 char text[40];
255 //! The HTML representation of the date.
256 char html[40];
257 };
258
259 char outdir[MAXLEN];
260 char outdirname[MAXLEN];
261 struct periodstruct period;
262 char code[MAXLEN];
263 char code2[MAXLEN];
264 char tmp[MAXLEN];
265 char parse_out[MAXLEN];
266 char arqtt[MAXLEN];
267 char html[MAXLEN];
268 char ConfigFile[MAXLEN];
269 char df[20];
270 int LastLog;
271 bool RemoveTempFiles;
272 char ReplaceIndex[256];
273 unsigned long int Index;
274 bool OverwriteReport;
275 unsigned long int RecordsWithoutUser;
276 bool UseComma;
277 char MailUtility[PATH_MAX];
278 int TopSitesNum;
279 int TopUsersNum;
280 char ExcludeCodes[256];
281 char TopsitesSortField[15];
282 char TopsitesSortType[20];
283 unsigned long int ReportType;
284 char UserTabFile[255];
285 char warea[MAXLEN];
286 char name[MAXLEN];
287 bool LongUrl;
288 bool Ip2Name;
289 int NAccessLog;
290 char AccessLog[MAXLOGS][MAX_LOG_FILELEN];
291 int AccessLogFromCmdLine;
292 char Title[MAXLEN];
293 char BgColor[MAXLEN];
294 char BgImage[MAXLEN];
295 char TxColor[MAXLEN];
296 char TxBgColor[MAXLEN];
297 char TiColor[MAXLEN];
298 char LogoImage[MAXLEN];
299 char LogoText[MAXLEN];
300 char LogoTextColor[MAXLEN];
301 char Width[MAXLEN];
302 char Height[MAXLEN];
303 char FontFace[MAXLEN];
304 char HeaderColor[MAXLEN];
305 char HeaderBgColor[MAXLEN];
306 char FontSize[MAXLEN];
307 char PasswdFile[MAXLEN];
308 char TempDir[MAXLEN];
309 char OutputDir[MAXLEN];
310 char OutputEmail[MAXLEN];
311 char TopuserSortField[30];
312 char UserSortField[30];
313 char TopuserSortOrder[10];
314 char UserSortOrder[10];
315 char UserAgentLog[255];
316 char module[255];
317 char ExcludeHosts[255];
318 char ExcludeUsers[255];
319 char DateFormat[2];
320 char PerUserLimitFile[255];
321 int PerUserLimit;
322 bool UserIp;
323 char MaxElapsed[255];
324 unsigned long int datetimeby;
325 char CharSet[255];
326 char UserInvalidChar[255];
327 bool Graphs;
328 char GraphDaysBytesBarColor[255];
329 bool Privacy;
330 char PrivacyString[255];
331 char PrivacyStringColor[30];
332 char IncludeUsers[MAXLEN];
333 char ExcludeString[MAXLEN];
334 bool SuccessfulMsg;
335 unsigned long int TopUserFields;
336 unsigned long int UserReportFields;
337 char DataFile[MAXLEN];
338 char DataFileDelimiter[3];
339 unsigned long int DataFileFields;
340 unsigned long int DataFileUrl;
341 bool ShowReadStatistics;
342 char IndexSortOrder[5];
343 char DansGuardianConf[MAXLEN];
344 bool DansguardianFilterOutDate;
345 char SquidGuardConf[MAXLEN];
346 char SquidGuarddbHome[255];
347 char RedirectorLogFormat[4096];
348 int NRedirectorLogs;
349 char RedirectorLogs[MAX_REDIRECTOR_LOGS][MAX_REDIRECTOR_FILELEN];
350 int RedirectorLogFromCmdLine;
351 bool RedirectorFilterOutDate;
352 bool ShowSargInfo;
353 bool BytesInSitesUsersReport;
354 bool ShowSargLogo;
355 char ParsedOutputLog[MAXLEN];
356 char ParsedOutputLogCompress[512];
357 unsigned long int DisplayedValues;
358 char HeaderFontSize[5];
359 char TitleFontSize[5];
360 char wwwDocumentRoot[MAXLEN];
361 char ExternalCSSFile[MAXLEN];
362 char BlockIt[255];
363 unsigned long int NtlmUserFormat;
364 unsigned long int IndexTree;
365 bool UserAuthentication;
366 char AuthUserTemplateFile[1024];
367 char val1[MAXLEN];
368 char val2[MAXLEN];
369 char val3[MAXLEN];
370 char val4[MAXLEN];
371 char val5[MAXLEN];
372 char val6[MAXLEN];
373 char val7[MAXLEN];
374 char val8[MAXLEN];
375 char val9[MAXLEN];
376 char val10[MAXLEN];
377 char val11[MAXLEN];
378 char wwork1[MAXLEN];
379 char wwork2[MAXLEN];
380 char wwork3[MAXLEN];
381 char mask[MAXLEN];
382 char site[MAXLEN];
383 char us[50];
384 char email[MAXLEN];
385 char test[1];
386 char user2[MAXLEN];
387 char wentp[512];
388 char addr[MAXLEN];
389 char Ulimit[6];
390 char RealtimeTypes[1024];
391 char cmd[255];
392 char ImageFile[255];
393 unsigned long int RealtimeUnauthRec;
394 char LDAPHost[255];
395 char LDAPBindDN[512];
396 char LDAPBindPW[255];
397 int LDAPPort;
398 int LDAPProtocolVersion;
399 char LDAPBaseSearch[255];
400 char LDAPFilterSearch[512];
401 char LDAPTargetAttr[64];
402 char GraphFont[MAXLEN];
403
404 int idate;
405 int smartfilter;
406 int denied_count;
407 int download_count;
408 int authfail_count;
409 int dansguardian_count;
410 int squidguard_count;
411 int useragent_count;
412 int limit_flag;
413 int z1, z2, z3;
414 int ttopen;
415 int sarglog;
416 int isalog;
417 int dfrom;
418 int duntil;
419 int dataonly;
420 int indexonly;
421 bool iprel;
422 int langcode;
423 int debug;
424 int debugz;
425 int debugm;
426 int AuthfailReportLimit;
427 int DeniedReportLimit;
428 int DownloadReportLimit;
429 int SiteUsersReportLimit;
430 int DansGuardianReportLimit;
431 int SquidGuardReportLimit;
432 int UserReportLimit;
433 int realtime_refresh;
434 int realtime_access_log_lines;
435 int rc;
436 int ntopsites;
437 int nsitesusers;
438 int nrepday;
439 int ndownload;
440 int ntopuser;
441 bool squid24;
442
443 long long int nocost;
444 float cost;
445
446 typedef struct
447 { int list[ 24 ];
448 int len;
449 } numlist;
450
451 DIR *dirp;
452 struct dirent *direntp;