aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/i4l/isdn_ppp.c
diff options
context:
space:
mode:
authorKarsten Keil <kkeil@suse.de>2005-04-21 11:30:30 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-04-21 11:30:30 -0400
commitd8470b7c13e11c18cf14a7e3180f0b00e715e4f0 (patch)
treec92b15c165366a6d5c616305cb4b68349882cb61 /drivers/isdn/i4l/isdn_ppp.c
parent3a6fd752a50af92765853879f4a11cc0cfcd0320 (diff)
[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: Karsten Keil <kkeil@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers/isdn/i4l/isdn_ppp.c')
-rw-r--r--drivers/isdn/i4l/isdn_ppp.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/drivers/isdn/i4l/isdn_ppp.c b/drivers/isdn/i4l/isdn_ppp.c
index 3c092117a8ea..260a323a96d3 100644
--- a/drivers/isdn/i4l/isdn_ppp.c
+++ b/drivers/isdn/i4l/isdn_ppp.c
@@ -1151,7 +1151,7 @@ isdn_ppp_push_higher(isdn_net_dev * net_dev, isdn_net_local * lp, struct sk_buff
1151 { 1151 {
1152 u_int16_t *p = (u_int16_t *) skb->data; 1152 u_int16_t *p = (u_int16_t *) skb->data;
1153 1153
1154 *p = 0; /* indicate inbound in DLT_LINUX_SLL */ 1154 *p = 0; /* indicate inbound */
1155 } 1155 }
1156 1156
1157 if (is->pass_filter 1157 if (is->pass_filter
@@ -1293,12 +1293,12 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
1293 /* check if we should pass this packet 1293 /* check if we should pass this packet
1294 * the filter instructions are constructed assuming 1294 * the filter instructions are constructed assuming
1295 * a four-byte PPP header on each packet */ 1295 * a four-byte PPP header on each packet */
1296 skb_push(skb, 4); 1296 *skb_push(skb, 4) = 1; /* indicate outbound */
1297 1297
1298 { 1298 {
1299 u_int16_t *p = (u_int16_t *) skb->data; 1299 u_int16_t *p = (u_int16_t *) skb->data;
1300 1300
1301 *p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ 1301 p++;
1302 *p = htons(proto); 1302 *p = htons(proto);
1303 } 1303 }
1304 1304
@@ -1491,12 +1491,12 @@ int isdn_ppp_autodial_filter(struct sk_buff *skb, isdn_net_local *lp)
1491 * temporarily remove part of the fake header stuck on 1491 * temporarily remove part of the fake header stuck on
1492 * earlier. 1492 * earlier.
1493 */ 1493 */
1494 skb_pull(skb, IPPP_MAX_HEADER - 4); 1494 *skb_pull(skb, IPPP_MAX_HEADER - 4) = 1; /* indicate outbound */
1495 1495
1496 { 1496 {
1497 u_int16_t *p = (u_int16_t *) skb->data; 1497 u_int16_t *p = (u_int16_t *) skb->data;
1498 1498
1499 *p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */ 1499 p++;
1500 *p = htons(proto); 1500 *p = htons(proto);
1501 } 1501 }
1502 1502