]> git.ipfire.org Git - thirdparty/ulogd2.git/commitdiff
From: Eric Leblond <eric@inl.fr>
author/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>
Sat, 9 Feb 2008 17:43:32 +0000 (17:43 +0000)
committer/C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org </C=EU/ST=EU/CN=Pablo Neira Ayuso/emailAddress=pablo@netfilter.org>
Sat, 9 Feb 2008 17:43:32 +0000 (17:43 +0000)
Add support for UID dumping to NFLOG input plugin.

input/packet/ulogd_inppkt_NFLOG.c

index 8d0bd1aea2c571d7525b1ce30ba97de9715c30b6..8b6811c29a7140e2d0d376810a00db01f4fca9a7 100644 (file)
@@ -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;