[syslog-ng] Facility / Priority
Balazs Scheidler
bazsi at balabit.hu
Wed May 24 11:32:31 CEST 2006
On Tue, 2006-05-23 at 22:37 -0500, Jeremy M. Guthrie wrote:
> I am in the process of trying to create a macro FAC / SEV to produce the two
> numeric values I need for facility / priority. I've been looking over the
> source code and I was going to model those macros off of M_LEVEL macro. I am
> using 1.6.10 at the moment.
>
> When I check my changes.... my code doesn't seem to produce the desired
> results. ;)
>
> Not sure if I am missing something relative to
> static unsigned char lengthtable[] & static struct macro_def wordlist[] ?
>
> Am I missing something obvious? It also appears I may have broken other
> macros such as SEC, LEVEL, and a few others. Did I shift something relative
> to the lengthtable that might have hosed the program? It's been a while
> since I have coded much of anything in 'c'.
Attached patch should do what you wanted, can you test it please, before
I commit it?
I've changed the macro names, to avoid introducing another term for
severity.
macros-gperf.c is autogenerated using gperf that's why you broke the
hash lookup algorithm by adding elements at random locations in that
array.
Index: macros.c
===================================================================
RCS file: /var/cvs/syslog-ng/syslog-ng/src/macros.c,v
retrieving revision 1.4.4.8
diff -u -r1.4.4.8 macros.c
--- macros.c 14 Feb 2006 10:05:51 -0000 1.4.4.8
+++ macros.c 24 May 2006 09:29:51 -0000
@@ -171,6 +171,10 @@
}
break;
}
+ case M_FACILITY_NUM: {
+ length = snprintf(*dest, *left, "%d", (msg->pri & LOG_FACMASK) >> 3);
+ break;
+ }
case M_LEVEL: {
/* level */
char *n = syslog_lookup_value(msg->pri & LOG_PRIMASK, sl_levels);
@@ -184,6 +188,10 @@
break;
}
+ case M_LEVEL_NUM: {
+ length = snprintf(*dest, *left, "%d", (msg->pri % LOG_PRIMASK));
+ break;
+ }
case M_TAG: {
length = snprintf(*dest, *left, "%02x", msg->pri);
break;
Index: macros.gprf
===================================================================
RCS file: /var/cvs/syslog-ng/syslog-ng/src/macros.gprf,v
retrieving revision 1.1.4.2
diff -u -r1.1.4.2 macros.gprf
--- macros.gprf 13 Dec 2004 18:17:58 -0000 1.1.4.2
+++ macros.gprf 24 May 2006 09:29:51 -0000
@@ -4,8 +4,10 @@
struct macro_def { char *name; int id; int len; };
%%
FACILITY, M_FACILITY
+FACILITY_NUM, M_FACILITY_NUM
PRIORITY, M_LEVEL
LEVEL, M_LEVEL
+LEVEL_NUM, M_LEVEL_NUM
TAG, M_TAG
PRI, M_PRI
DATE, M_DATE
Index: macros.h
===================================================================
RCS file: /var/cvs/syslog-ng/syslog-ng/src/macros.h,v
retrieving revision 1.2.4.2
diff -u -r1.2.4.2 macros.h
--- macros.h 6 May 2004 07:37:10 -0000 1.2.4.2
+++ macros.h 24 May 2006 09:29:51 -0000
@@ -25,10 +25,12 @@
#ifndef __MACROS_H
#define __MACROS_H
-#define M_FACILITY 0
-#define M_LEVEL 10
-#define M_TAG 20
-#define M_PRI 21
+#define M_FACILITY 0
+#define M_FACILITY_NUM 1
+#define M_LEVEL 10
+#define M_LEVEL_NUM 11
+#define M_TAG 20
+#define M_PRI 21
#define M_DATE 30
#define M_FULLDATE 40
--
Bazsi
More information about the syslog-ng
mailing list