plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

classmask.c (622B)


      1 #include <u.h>
      2 #include <libc.h>
      3 #include <ip.h>
      4 
      5 uchar classmask[4][16] = {
      6 	0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0x00,0x00,0x00,
      7 	0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0x00,0x00,0x00,
      8 	0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0x00,0x00,
      9 	0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0xff,  0xff,0xff,0xff,0x00,
     10 };
     11 
     12 uchar*
     13 defmask(uchar *ip)
     14 {
     15 	return classmask[ip[IPv4off]>>6];
     16 }
     17 
     18 void
     19 maskip(uchar *from, uchar *mask, uchar *to)
     20 {
     21 	int i;
     22 
     23 	for(i = 0; i < IPaddrlen; i++)
     24 		to[i] = from[i] & mask[i];
     25 }