> It would have been even worse, IMHO, to have two copies of > nearly identical code sitting around which is basically what > the alternative is.
We don't need two copies. We just need a function that does the real
work if there is a tunnel to be used (what xfrm6_tunnel needs), and
another one that would call the previous (used when xfrm6_tunnel isn't
used) that frees the skb on errors. Something like:
int ip6ip6_rcv(...) {
...
}
int ip6ip6_proto_rcv(...) {
int res = ip6ip6_rcv();
if (res < 0) {
icmpv6_send_error();
kfree_skb();
}
return res;
}
Where ip6ip6_rcv is used when ip6_tunnel is registed via
xfrm6_tunnel, and the second as the IPPROTO_IPV6 handler (when this
functionality is compiled in).
Hugo
> -
> 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
signature.asc
Description: Digital signature
