X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=net%2Fnetfilter%2Fxt_DSCP.c;h=97efd74c04fef2c91899c3d773b184bf96d2dfdc;hb=1b8ba39a3fad9c58532f6dad12c94d6e675be656;hp=fd7500ecadfdcb324a6bb9ad6d4fd35c070f38cb;hpb=5c350e5a380333c64da8580fa134a2fd8e71fea4;p=linux-2.6 diff --git a/net/netfilter/xt_DSCP.c b/net/netfilter/xt_DSCP.c index fd7500ecad..97efd74c04 100644 --- a/net/netfilter/xt_DSCP.c +++ b/net/netfilter/xt_DSCP.c @@ -21,7 +21,7 @@ #include MODULE_AUTHOR("Harald Welte "); -MODULE_DESCRIPTION("x_tables DSCP modification module"); +MODULE_DESCRIPTION("Xtables: DSCP/TOS field modification"); MODULE_LICENSE("GPL"); MODULE_ALIAS("ipt_DSCP"); MODULE_ALIAS("ip6t_DSCP"); @@ -128,13 +128,13 @@ tos_tg(struct sk_buff *skb, const struct net_device *in, u_int8_t orig, nv; orig = ipv4_get_dsfield(iph); - nv = (orig & info->tos_mask) ^ info->tos_value; + nv = (orig & ~info->tos_mask) ^ info->tos_value; if (orig != nv) { if (!skb_make_writable(skb, sizeof(struct iphdr))) return NF_DROP; iph = ip_hdr(skb); - ipv4_change_dsfield(iph, ~0, nv); + ipv4_change_dsfield(iph, 0, nv); } return XT_CONTINUE; @@ -156,7 +156,7 @@ tos_tg6(struct sk_buff *skb, const struct net_device *in, if (!skb_make_writable(skb, sizeof(struct iphdr))) return NF_DROP; iph = ipv6_hdr(skb); - ipv6_change_dsfield(iph, ~0, nv); + ipv6_change_dsfield(iph, 0, nv); } return XT_CONTINUE;