On Tue, 2006-09-26 at 11:44 +0200, Thomas Graf wrote:

> Thinking it over I'm still not completely happy with this. A
> small subset of all the validation tasks is simply too complex
> to be put into the policy. The validation of your type value
> array is such a case, address fields with variable length based
> on their family is another. I think it's just not worth to
> blow up struct nla_policy by 12 bytes per entry just to save
> some code.

Oh, I just had another idea... Feel free to ignore me if you think that
having this done in some generic way isn't worth it though. As I said,
it doesn't really make a difference to me in the end :)


Currently, we always pass a "struct nla_policy *policy" into things,
which really is an array. We could instead pass in a new

struct nla_validation {
        int (*custom_validate)(struct nlattr *nla);
        struct nla_policy *policy;
};

and call custom_validate() whenever we encounter something in the policy
that has type NLA_CUSTOM_VALIDATE. Downsides of this approach are that
it requires changing all current users, and introduces 16 bytes constant
overhead on 64-bit platforms, the size of nla_validation.

johannes
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to