summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
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-21 12:40:06 +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-21 12:40:06 +0000
commitc52f85620eb00186072f0862b234804fa5b7b7d7 (patch)
treecda150584dfbeb0523bbd7fbcf838a993b2b21bd
parent1aa5f961dc107c3d29445143cc8ee8225bd6e026 (diff)
Print GID/MARK in printpkt.c
-rw-r--r--include/ulogd/printpkt.h2
-rw-r--r--input/packet/ulogd_inppkt_NFLOG.c7
-rw-r--r--util/printpkt.c12
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");