Merge branch 'v5-stable-elasticsearch' into v5-devel-tmp
[rsyslog.git] / dirty.h
1 /* This file is an aid to support non-modular object accesses
2  * while we do not have fully modularized everything. Once this is
3  * done, this file can (and should) be deleted. Presence of it
4  * also somewhat indicates that the runtime library is not really
5  * yet a runtime library, because it depends on some functionality
6  * residing somewhere else.
7  *
8  * Copyright 2007, 2008 Rainer Gerhards and Adiscon GmbH.
9  *
10  * This file is part of rsyslog.
11  *
12  * Rsyslog is free software: you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License as published by
14  * the Free Software Foundation, either version 3 of the License, or
15  * (at your option) any later version.
16  *
17  * Rsyslog is distributed in the hope that it will be useful,
18  * but WITHOUT ANY WARRANTY; without even the implied warranty of
19  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
20  * GNU General Public License for more details.
21  *
22  * You should have received a copy of the GNU General Public License
23  * along with Rsyslog.  If not, see <http://www.gnu.org/licenses/>.
24  *
25  * A copy of the GPL can be found in the file "COPYING" in this distribution.
26  */
27 #ifndef DIRTY_H_INCLUDED
28 #define DIRTY_H_INCLUDED 1
29
30 rsRetVal multiSubmitMsg(multi_submit_t *pMultiSub);
31 rsRetVal submitMsg(msg_t *pMsg);
32 rsRetVal logmsgInternal(int iErr, int pri, uchar *msg, int flags);
33 rsRetVal parseAndSubmitMessage(uchar *hname, uchar *hnameIP, uchar *msg, int len, int flags, flowControl_t flowCtlTypeu, prop_t *pInputName, struct syslogTime *stTime, time_t ttGenTime);
34 rsRetVal diagGetMainMsgQSize(int *piSize); /* for imdiag */
35 rsRetVal createMainQueue(qqueue_t **ppQueue, uchar *pszQueueName);
36
37 /* Intervals at which we flush out "message repeated" messages,
38  * in seconds after previous message is logged.  After each flush,
39  * we move to the next interval until we reach the largest.
40  * TODO: move this to action object! Only action.c and syslogd.c use it.
41  */
42 extern int bActExecWhenPrevSusp;
43 extern int MarkInterval;
44 extern int repeatinterval[2];
45 extern int  bReduceRepeatMsgs;
46 extern qqueue_t *pMsgQueue;                             /* the main message queue */
47 #define MAXREPEAT ((int)((sizeof(repeatinterval) / sizeof(repeatinterval[0])) - 1))
48 #define REPEATTIME(f)   ((f)->f_time + repeatinterval[(f)->f_repeatcount])
49 #define BACKOFF(f)      { if (++(f)->f_repeatcount > MAXREPEAT) \
50                                  (f)->f_repeatcount = MAXREPEAT; \
51                         }
52 #endif /* #ifndef DIRTY_H_INCLUDED */