sk_filter — run a packet through a socket filter
int sk_filter (
struct sock * sk, struct sk_buff * skb, int needlock)
;
sk
sock associated with &sk_buff
skb
buffer to filter
needlock
set to 1 if the sock is not locked by caller.
Run the filter code and then cut skb->data to correct size returned by sk_run_filter. If pkt_len is 0 we toss packet. If skb->len is smaller than pkt_len we keep whole skb->data. This is the socket level wrapper to sk_run_filter. It returns 0 if the packet should be accepted or -EPERM if the packet should be tossed.