On Wed, Sep 2, 2009 at 17:49, Jan Engelhardt<jengelh@xxxxxxxxxx> wrote: > > On Wednesday 2009-09-02 17:36, Patrick McHardy wrote: >>> >>> Nice, I'll use par->family. >>> >>> So in theory I do not even need a check like the following in the beginning? >>> >>> if (family != NFPROTO_IPV4 >>> #ifdef CONFIG_IP_VS_IPV6 >>> && family != NFPROTO_IPV6 >>> #endif >>> ) { >>> match = false; >>> goto out; >>> } >> >>With the AF_UNSPEC registration of your match, it might be used > > par->family always contains the NFPROTO of the invoking implementation, > which can never be UNSPEC (except, in future, xtables2 ;-) > > par->match->family however may be UNSPEC if the module works that way. > Which is why we have par->family. > I'll a check_entry function: static bool ipvs_mt_check(const struct xt_mtchk_param *par) { if (par->family != NFPROTO_IPV4 #ifdef CONFIG_IP_VS_IPV6 && par->family != NFPROTO_IPV6 #endif ) return false; return true; } and remove the runtime check in ipvs_mt. -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html