Oops, don't forget to actually put the checksum in the response packet.
This commit is contained in:
parent
e1de9ca990
commit
0e93f0aa02
1 changed files with 4 additions and 2 deletions
|
|
@ -17,7 +17,7 @@
|
||||||
along with this program; if not, write to the Free Software
|
along with this program; if not, write to the Free Software
|
||||||
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||||
|
|
||||||
$Id: route.c,v 1.1.2.33 2002/03/15 14:41:57 guus Exp $
|
$Id: route.c,v 1.1.2.34 2002/03/15 15:08:21 guus Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
|
|
@ -275,7 +275,7 @@ cp
|
||||||
|
|
||||||
if(subnet->owner == myself)
|
if(subnet->owner == myself)
|
||||||
return; /* silently ignore */
|
return; /* silently ignore */
|
||||||
|
|
||||||
/* Create neighbor advertation reply */
|
/* Create neighbor advertation reply */
|
||||||
|
|
||||||
memcpy(packet->data, packet->data + ETHER_ADDR_LEN, ETHER_ADDR_LEN); /* copy destination address */
|
memcpy(packet->data, packet->data + ETHER_ADDR_LEN, ETHER_ADDR_LEN); /* copy destination address */
|
||||||
|
|
@ -305,6 +305,8 @@ cp
|
||||||
checksum = inet_checksum((unsigned short int *)&pseudo, sizeof(pseudo)/2, ~0);
|
checksum = inet_checksum((unsigned short int *)&pseudo, sizeof(pseudo)/2, ~0);
|
||||||
checksum = inet_checksum((unsigned short int *)ns, sizeof(*ns)/2 + 4, checksum);
|
checksum = inet_checksum((unsigned short int *)ns, sizeof(*ns)/2 + 4, checksum);
|
||||||
|
|
||||||
|
ns->nd_ns_hdr.icmp6_cksum = checksum;
|
||||||
|
|
||||||
write_packet(packet);
|
write_packet(packet);
|
||||||
cp
|
cp
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue