Commit d8470b7c authored by Karsten Keil's avatar Karsten Keil Committed by Linus Torvalds

[PATCH] fix for ISDN ippp filtering

We do not longer use DLT_LINUX_SLL for activ/pass filters but
DLT_PPP_WITHDIRECTION witch need 1 as outbound flag. 
Signed-off-by: default avatarKarsten Keil <kkeil@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 3a6fd752
...@@ -1151,7 +1151,7 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff ...@@ -1151,7 +1151,7 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff
{ {
u_int16_t *p = (u_int16_t *) skb->data; u_int16_t *p = (u_int16_t *) skb->data;
*p = 0; /* indicate inbound in DLT_LINUX_SLL */ *p = 0; /* indicate inbound */
} }
if (is->pass_filter if (is->pass_filter
...@@ -1293,12 +1293,12 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev) ...@@ -1293,12 +1293,12 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
/* check if we should pass this packet /* check if we should pass this packet
* the filter instructions are constructed assuming * the filter instructions are constructed assuming
* a four-byte PPP header on each packet */ * a four-byte PPP header on each packet */
skb_push(skb, 4); *skb_push(skb, 4) = 1; /* indicate outbound */
{ {
u_int16_t *p = (u_int16_t *) skb->data; u_int16_t *p = (u_int16_t *) skb->data;
*p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ p++;
*p = htons(proto); *p = htons(proto);
} }
...@@ -1491,12 +1491,12 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp) ...@@ -1491,12 +1491,12 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp)
* temporarily remove part of the fake header stuck on * temporarily remove part of the fake header stuck on
* earlier. * earlier.
*/ */
skb_pull(skb, IPPP_MAX_HEADER - 4); *skb_pull(skb, IPPP_MAX_HEADER - 4) = 1; /* indicate outbound */
{ {
u_int16_t *p = (u_int16_t *) skb->data; u_int16_t *p = (u_int16_t *) skb->data;
*p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ p++;
*p = htons(proto); *p = htons(proto);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment