Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

[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
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -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;

		*p = 0;	/* indicate inbound in DLT_LINUX_SLL */
		*p = 0;	/* indicate inbound */
	}

	if (is->pass_filter
@@ -1293,12 +1293,12 @@ isdn_ppp_xmit(struct sk_buff *skb, struct net_device *netdev)
	/* check if we should pass this packet
	 * the filter instructions are constructed assuming
	 * 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;

		*p++ = htons(4); /* indicate outbound in DLT_LINUX_SLL */
		p++;
		*p   = htons(proto);
	}

@@ -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
	 * 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;

		*p++ = htons(4);	/* indicate outbound in DLT_LINUX_SLL */
		p++;
		*p   = htons(proto);
	}