patch-2.0.8 linux/net/ipv4/ipmr.c

Next file: linux/net/ipx/af_ipx.c
Previous file: linux/net/ipv4/ip_fragment.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.0.7/linux/net/ipv4/ipmr.c linux/net/ipv4/ipmr.c
@@ -1,5 +1,5 @@
 /*
- *	IP multicast routing support for mrouted 3.6
+ *	IP multicast routing support for mrouted 3.6/3.8
  *
  *		(c) 1995 Alan Cox, <alan@cymru.net>
  *	  Linux Consultancy and Custom Driver Development
@@ -12,8 +12,11 @@
  *
  *	Fixes:
  *	Michael Chastain	:	Incorrect size of copying.
- *	Alan Cox		:	Added the cache manager code
+ *	Alan Cox		:	Added the cache manager code.
  *	Alan Cox		:	Fixed the clone/copy bug and device race.
+ *	Malcolm Beattie		:	Buffer handling fixes.
+ *	Alexey Kuznetsov	:	Double buffer free and other fixes.
+ *	SVR Anand		:	Fixed several multicast bugs and problems.
  *
  *	Status:
  *		Cache manager under test. Forwarding in vague test mode
@@ -736,7 +739,14 @@
 		kfree_skb(skb, FREE_WRITE);
 		return;
 	}
+
+	/*
+	 *	Without the following addition, skb->h.iph points to something
+	 *	different that is not the ip header.
+	 */
 	
+	skb->h.iph = skb->ip_hdr;  /* Anand, ernet.  */
+
 	vif_table[vif].pkt_in++;
 	vif_table[vif].bytes_in+=skb->len;
 	
@@ -909,7 +919,7 @@
  
 void ip_mr_init(void)
 {
-	printk(KERN_INFO "Linux IP multicast router 0.05.\n");
+	printk(KERN_INFO "Linux IP multicast router 0.06.\n");
 	register_netdevice_notifier(&ip_mr_notifier);
 #ifdef CONFIG_PROC_FS	
 	proc_net_register(&(struct proc_dir_entry) {

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov