#ifndef lint
static char copyright[] =
-"$Id: hash.c,v 1.24 2000/06/06 23:46:31 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
+"$Id: hash.c,v 1.25 2000/06/24 06:19:13 mellon Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
c = tolower (c);
/* Add the character in... */
- accum += c;
+ accum = (accum << 1) + c;
+
/* Add carry back in... */
- while (accum > 255) {
- accum = (accum & 255) + (accum >> 8);
+ while (accum > 65535) {
+ accum = (accum & 65535) + (accum >> 16);
}
}
return accum % size;
while (i--) {
/* Add the character in... */
- accum += *s++;
+ accum = (accum << 1) + *s++;
+
/* Add carry back in... */
- while (accum > 255) {
- accum = (accum & 255) + (accum >> 8);
+ while (accum > 65535) {
+ accum = (accum & 65535) + (accum >> 16);
}
}
return accum % size;