patch-2.4.23 linux-2.4.23/net/ipv4/ipmr.c
Next file: linux-2.4.23/net/ipv4/ipvs/Config.in
Previous file: linux-2.4.23/net/ipv4/ipip.c
Back to the patch index
Back to the overall index
-  Lines: 21
-  Date:
2003-11-28 10:26:21.000000000 -0800
-  Orig file: 
linux-2.4.22/net/ipv4/ipmr.c
-  Orig date: 
2002-11-28 15:53:15.000000000 -0800
diff -urN linux-2.4.22/net/ipv4/ipmr.c linux-2.4.23/net/ipv4/ipmr.c
@@ -1096,6 +1096,7 @@
 
 	skb->h.ipiph = skb->nh.iph;
 	skb->nh.iph = iph;
+	memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt));
 #ifdef CONFIG_NETFILTER
 	nf_conntrack_put(skb->nfct);
 	skb->nfct = NULL;
@@ -1104,8 +1105,12 @@
 
 static inline int ipmr_forward_finish(struct sk_buff *skb)
 {
+	struct ip_options *opt = &(IPCB(skb)->opt);
 	struct dst_entry *dst = skb->dst;
 
+	if (unlikely(opt->optlen))
+		ip_forward_options(skb);
+
 	if (skb->len <= dst->pmtu)
 		return dst->output(skb);
 	else
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)