diff options
author | /C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net> | 2008-04-22 05:09:55 +0000 |
---|---|---|
committer | /C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net </C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net> | 2008-04-22 05:09:55 +0000 |
commit | 3178606785161296dc5a1bd4d42d965db8b3e2cd (patch) | |
tree | 373b33933e0be70466a254df2f5769578f191a91 | |
parent | 1195a3fef364463b69bae8df57358470e0b69da7 (diff) |
[ULOGD PATCH, RFC] Modify NFLOG to be able to use it with older libnetfilter_log
NFLOG has been modified to support GID display. There is a problem as this
feature is only available in latest subversion of libnetfilter_log. This
patch made this feature optional:
* It detects if system support the nflog_get_gid() function
* Compilation of nflog_get_gid() related code is conditional
-rw-r--r-- | configure.in | 4 | ||||
-rw-r--r-- | input/packet/ulogd_inppkt_NFLOG.c | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/configure.in b/configure.in index a70848c..7a6d705 100644 --- a/configure.in +++ b/configure.in @@ -41,6 +41,10 @@ AC_CHECK_HEADER([libnetfilter_log/linux_nfnetlink_log.h], [AC_MSG_RESULT([found] AC_CHECK_HEADER([libnetfilter_conntrack/libnetfilter_conntrack.h], [AC_MSG_RESULT([found])], [AC_MSG_ERROR([libnetfilter_conntrack Version 0.0.11 or later needed])]) +AC_CHECK_LIB([netfilter_log], [nflog_get_gid], + AC_DEFINE_UNQUOTED([HAVE_NFLOG_GET_GID],[1],[libnetfilter_log has GID support]),, + [-lnfnetlink]) + CT_CHECK_POSTGRES_DB() AM_CONDITIONAL(HAVE_PGSQL, test "x$PQLIBPATH" != "x") diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c index b0827a8..c7ca10a 100644 --- a/input/packet/ulogd_inppkt_NFLOG.c +++ b/input/packet/ulogd_inppkt_NFLOG.c @@ -335,11 +335,12 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata) ret[NFLOG_KEY_OOB_UID].u.value.ui32 = uid; ret[NFLOG_KEY_OOB_UID].flags |= ULOGD_RETF_VALID; } +#ifdef HAVE_NFLOG_GET_GID if (nflog_get_gid(ldata, &gid) == 0) { ret[NFLOG_KEY_OOB_GID].u.value.ui32 = gid; ret[NFLOG_KEY_OOB_GID].flags |= ULOGD_RETF_VALID; } - +#endif if (nflog_get_seq(ldata, &seq) == 0) { ret[NFLOG_KEY_OOB_SEQ_LOCAL].u.value.ui32 = seq; ret[NFLOG_KEY_OOB_SEQ_LOCAL].flags |= ULOGD_RETF_VALID; |