# This is a BitKeeper generated diff -Nru style patch. # # ChangeSet # 2004/12/08 04:53:15+01:00 kaber@coreworks.de # [NETFILTER]: Add --log-uid option to ipt_LOG # # Signed-off-by: Patrick McHardy # # net/ipv4/netfilter/ipt_LOG.c # 2004/12/08 04:53:08+01:00 kaber@coreworks.de +8 -0 # [NETFILTER]: Add --log-uid option to ipt_LOG # # Signed-off-by: Patrick McHardy # # include/linux/netfilter_ipv4/ipt_LOG.h # 2004/12/08 04:53:08+01:00 kaber@coreworks.de +2 -1 # [NETFILTER]: Add --log-uid option to ipt_LOG # # Signed-off-by: Patrick McHardy # diff -Nru a/include/linux/netfilter_ipv4/ipt_LOG.h b/include/linux/netfilter_ipv4/ipt_LOG.h --- a/include/linux/netfilter_ipv4/ipt_LOG.h 2004-12-08 05:26:20 +01:00 +++ b/include/linux/netfilter_ipv4/ipt_LOG.h 2004-12-08 05:26:20 +01:00 @@ -4,7 +4,8 @@ #define IPT_LOG_TCPSEQ 0x01 /* Log TCP sequence numbers */ #define IPT_LOG_TCPOPT 0x02 /* Log TCP options */ #define IPT_LOG_IPOPT 0x04 /* Log IP options */ -#define IPT_LOG_MASK 0x07 +#define IPT_LOG_UID 0x08 /* Log UID owning local socket */ +#define IPT_LOG_MASK 0x0f struct ipt_log_info { unsigned char level; diff -Nru a/net/ipv4/netfilter/ipt_LOG.c b/net/ipv4/netfilter/ipt_LOG.c --- a/net/ipv4/netfilter/ipt_LOG.c 2004-12-08 05:26:20 +01:00 +++ b/net/ipv4/netfilter/ipt_LOG.c 2004-12-08 05:26:20 +01:00 @@ -327,6 +327,14 @@ printk("PROTO=%u ", ih->protocol); } + /* Max length: 15 "UID=4294967295 " */ + if ((info->logflags & IPT_LOG_UID) && !iphoff && skb->sk) { + read_lock_bh(&skb->sk->sk_callback_lock); + if (skb->sk->sk_socket && skb->sk->sk_socket->file) + printk("UID=%u ", skb->sk->sk_socket->file->f_uid); + read_unlock_bh(&skb->sk->sk_callback_lock); + } + /* Proto Max log string length */ /* IP: 40+46+6+11+127 = 230 */ /* TCP: 10+max(25,20+30+13+9+32+11+127) = 252 */