From c52f85620eb00186072f0862b234804fa5b7b7d7 Mon Sep 17 00:00:00 2001 From: "/C=EU/ST=EU/CN=Patrick McHardy/emailAddress=kaber@trash.net" Date: Mon, 21 Apr 2008 12:40:06 +0000 Subject: Print GID/MARK in printpkt.c --- include/ulogd/printpkt.h | 2 ++ input/packet/ulogd_inppkt_NFLOG.c | 7 ++++++- util/printpkt.c | 12 +++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/include/ulogd/printpkt.h b/include/ulogd/printpkt.h index 2cfb5ae..6207d5b 100644 --- a/include/ulogd/printpkt.h +++ b/include/ulogd/printpkt.h @@ -8,6 +8,8 @@ enum pkt_keys { KEY_OOB_IN, KEY_OOB_OUT, KEY_OOB_UID, + KEY_OOB_GID, + KEY_OOB_MARK, KEY_RAW_MAC, KEY_RAW_MACLEN, KEY_IP_SADDR, diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c index 195f6cc..54b4ac8 100644 --- a/input/packet/ulogd_inppkt_NFLOG.c +++ b/input/packet/ulogd_inppkt_NFLOG.c @@ -107,6 +107,7 @@ enum nflog_keys { NFLOG_KEY_OOB_FAMILY, NFLOG_KEY_OOB_PROTOCOL, NFLOG_KEY_OOB_UID, + NFLOG_KEY_OOB_GID, }; static struct ulogd_key output_keys[] = { @@ -265,7 +266,7 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata) u_int32_t outdev = nflog_get_outdev(ldata); u_int32_t seq; u_int32_t uid; - + u_int32_t gid; ret[NFLOG_KEY_OOB_FAMILY].u.value.ui8 = af_ce(upi->config_kset).u.value; ret[NFLOG_KEY_OOB_FAMILY].flags |= ULOGD_RETF_VALID; @@ -330,6 +331,10 @@ 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; } + 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; + } if (nflog_get_seq(ldata, &seq) == 0) { ret[NFLOG_KEY_OOB_SEQ_LOCAL].u.value.ui32 = seq; diff --git a/util/printpkt.c b/util/printpkt.c index cc027b1..90fec0e 100644 --- a/util/printpkt.c +++ b/util/printpkt.c @@ -48,6 +48,10 @@ struct ulogd_key printpkt_keys[] = { [KEY_OOB_UID] = { .name = "oob.uid", .flags = ULOGD_KEYF_OPTIONAL }, + [KEY_OOB_GID] = { .name = "oob.gid", + .flags = ULOGD_KEYF_OPTIONAL + }, + [KEY_OOB_MARK] = { .name = "oob.mark", }, [KEY_RAW_MAC] = { .name = "raw.mac", }, [KEY_RAW_MACLEN] = { .name = "raw.mac_len", }, [KEY_IP_SADDR] = { .name = "ip.saddr.str", }, @@ -450,8 +454,14 @@ int printpkt_print(struct ulogd_key *res, char *buf) } if (pp_is_valid(res, KEY_OOB_UID)) - buf_cur += sprintf(buf_cur, "UID=%d", + buf_cur += sprintf(buf_cur, "UID=%u ", GET_VALUE(res, KEY_OOB_UID).ui32); + if (pp_is_valid(res, KEY_OOB_GID)) + buf_cur += sprintf(buf_cur, "GID=%u ", + GET_VALUE(res, KEY_OOB_GID).ui32); + if (pp_is_valid(res, KEY_OOB_MARK)) + buf_cur += sprintf(buf_cur, "MARK=%x ", + GET_VALUE(res, KEY_OOB_MARK).ui32); strcat(buf_cur, "\n"); -- cgit v1.2.3