summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--input/packet/ulogd_inppkt_NFLOG.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/input/packet/ulogd_inppkt_NFLOG.c b/input/packet/ulogd_inppkt_NFLOG.c
index 8d0bd1a..8b6811c 100644
--- a/input/packet/ulogd_inppkt_NFLOG.c
+++ b/input/packet/ulogd_inppkt_NFLOG.c
@@ -99,6 +99,7 @@ enum nflog_keys {
NFLOG_KEY_OOB_SEQ_LOCAL,
NFLOG_KEY_OOB_SEQ_GLOBAL,
NFLOG_KEY_OOB_PROTOCOL,
+ NFLOG_KEY_OOB_UID,
};
static struct ulogd_key output_keys[] = {
@@ -228,6 +229,12 @@ static struct ulogd_key output_keys[] = {
.flags = ULOGD_RETF_NONE,
.name = "oob.protocol",
},
+ {
+ .type = ULOGD_RET_UINT32,
+ .flags = ULOGD_RETF_NONE,
+ .name = "oob.uid",
+ },
+
};
static inline int
@@ -245,6 +252,8 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata)
u_int32_t indev = nflog_get_indev(ldata);
u_int32_t outdev = nflog_get_outdev(ldata);
u_int32_t seq;
+ u_int32_t uid;
+
if (ph) {
/* FIXME */
@@ -302,6 +311,11 @@ interp_packet(struct ulogd_pluginstance *upi, struct nflog_data *ldata)
ret[NFLOG_KEY_OOB_IFINDEX_OUT].flags |= ULOGD_RETF_VALID;
}
+ if (nflog_get_uid(ldata, &uid) == 0) {
+ ret[NFLOG_KEY_OOB_UID].u.value.ui32 = uid;
+ ret[NFLOG_KEY_OOB_UID].flags |= ULOGD_RETF_VALID;
+ }
+
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;