On Sun, 2017-02-05 at 18:17 -0800, Chenbo Feng wrote: > From: Chenbo Feng <fe...@google.com> > > Returns the owner uid of the socket inside a sk_buff. This is useful to > perform per-UID accounting of network traffic or per-UID packet > filtering. > > Signed-off-by: Chenbo Feng <chenbofeng.ker...@gmail.com> > --- > +BPF_CALL_1(bpf_get_socket_uid, struct sk_buff *, skb) > +{ > + struct sock *sk = skb->sk; > + kuid_t kuid = sock_net_uid(net, sk && sk_fullsock(sk) ? > + sk : NULL); > + return (u32)kuid.val; > +} > +
Have you considered to use sk_to_full_sk() ? struct sock *sk = sk_to_full_sk(skb->sk); kuid_t kuid = sock_net_uid(net, sk);