|  | #include <u.h> | 
|  | #include <libc.h> | 
|  | #include <ip.h> | 
|  |  | 
|  | uchar classmask[4][16] = { | 
|  | 0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0x00,0x00,0x00, | 
|  | 0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0x00,0x00,0x00, | 
|  | 0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0x00,0x00, | 
|  | 0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0x00, | 
|  | }; | 
|  |  | 
|  | uchar* | 
|  | defmask(uchar *ip) | 
|  | { | 
|  | return classmask[ip[IPv4off]>>6]; | 
|  | } | 
|  |  | 
|  | void | 
|  | maskip(uchar *from, uchar *mask, uchar *to) | 
|  | { | 
|  | int i; | 
|  |  | 
|  | for(i = 0; i < IPaddrlen; i++) | 
|  | to[i] = from[i] & mask[i]; | 
|  | } |