ip: fix wrong radix for iphash() (thanks yoann padioleau)

yoann padioleaus report on 9fans:

> I think I’ve found a bug in the network stack.
> in 9/ip/ip.h there is
> struct Ipht
> {
> 	Lock;
> 	Iphash	*tab[Nipht];
> };
>
> where Night is 521,
>
> but then in 9/ip/ipaux.c there is
>
> ulong
> iphash(uchar *sa, ushort sp, uchar *da, ushort dp)
> {
> 	return ((sa[IPaddrlen-1]<<24) ^ (sp << 16) ^ (da[IPaddrlen-1]<<8) ^ dp ) % Nhash;
> }
>
> where Nhash is just 64,
This commit is contained in:
cinap_lenrek 2015-06-09 10:04:04 +02:00
parent 90b4fe9cf6
commit 94333d83ab
2 changed files with 1 additions and 2 deletions

View file

@ -37,7 +37,6 @@ enum
{
Addrlen= 64,
Maxproto= 20,
Nhash= 64,
Maxincall= 10,
Nchans= 1024,
MAClen= 16, /* longest mac address */

View file

@ -238,7 +238,7 @@ parsemac(uchar *to, char *from, int len)
ulong
iphash(uchar *sa, ushort sp, uchar *da, ushort dp)
{
return ((sa[IPaddrlen-1]<<24) ^ (sp << 16) ^ (da[IPaddrlen-1]<<8) ^ dp ) % Nhash;
return ((sa[IPaddrlen-1]<<24) ^ (sp << 16) ^ (da[IPaddrlen-1]<<8) ^ dp ) % Nipht;
}
void