home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / misc / tcpipsrc / foo.c < prev    next >
Text File  |  1991-01-31  |  717b  |  36 lines

  1. #define    NROUTE    5
  2. unsigned short Hashtab[256];
  3. typedef    unsigned short int16;
  4. typedef long int32;
  5.  
  6. #define    hiword(x)    ((int16)((x) >> 16))
  7. #define    loword(x)    ((int16)(x))
  8. #define    hibyte(x)    ((unsigned char)((x) >> 8))
  9. #define    lobyte(x)    ((unsigned char)(x))
  10.  
  11. #define    hash_ip(x)\
  12.     (Hashtab[((unsigned char)(x) >> 24) ^ \
  13.     ((unsigned char)(x)>>16) ^ \
  14.     ((unsigned char)(x)>>8) ^ \
  15.     ((unsigned char)x)])
  16.  
  17. unsigned short
  18. foo(addr)
  19. long addr;
  20. {
  21.     return hash_ip(addr);
  22. }
  23.  
  24. /* Compute hash function on IP address */
  25. unsigned short
  26. oldhash_ip(addr)
  27. register unsigned long addr;
  28. {
  29.     register unsigned short ret;
  30.  
  31.     ret = hiword(addr);
  32.     ret ^= loword(addr);
  33.     return (unsigned short)(ret % NROUTE);
  34. }
  35.  
  36.