kernels/linux-2.4.0/net/ipv6/netfilter/ip6_tables.c
/* Called when user tries to insert an entry of this type. */
Called when user tries to insert an entry of this type.
Called when user tries to insert an entry of this type .
static int
icmp_checkentry(const char *tablename,
	   const struct ip6t_ip6 *ipv6,
	   void *matchinfo,
	   unsigned int matchsize,
	   unsigned int hook_mask)
{
	const struct ip6t_icmp *icmpinfo = matchinfo;
	return ipv6->proto == IPPROTO_ICMP
		&& !(ipv6->invflags & IP6T_INV_PROTO)
		&& matchsize == IP6T_ALIGN(sizeof(struct ip6t_icmp))
		&& !(icmpinfo->invflags & ~IP6T_ICMP_INV);
}
static int icmp_checkentry ( const char * tablename , const struct ip6t_ip6 * ipv6 , void * matchinfo , unsigned int matchsize , unsigned int hook_mask ) { const struct ip6t_icmp * icmpinfo = matchinfo ; return ipv6 -> proto == IPPROTO_ICMP && ! ( ipv6 -> invflags & IP6T_INV_PROTO ) && matchsize == IP6T_ALIGN ( sizeof ( struct ip6t_icmp ) ) && ! ( icmpinfo -> invflags & ~ IP6T_ICMP_INV ) ; }
Called when user tries to insert an entry of this type.
Called when user tries to insert an entry of this type .
/* Must specify proto == ICMP, and no unknown invflags */