/* | |
* Copyright (C) 2000-2002 by Darren Reed. | |
* | |
* See the IPFILTER.LICENCE file for details on licencing. | |
* | |
* $Id$ | |
*/ | |
#include "ipf.h" | |
void fill6bits(bits, msk) | |
int bits; | |
u_int *msk; | |
{ | |
if (bits == 0) { | |
msk[0] = 0; | |
msk[1] = 0; | |
msk[2] = 0; | |
msk[3] = 0; | |
return; | |
} | |
msk[0] = 0xffffffff; | |
msk[1] = 0xffffffff; | |
msk[2] = 0xffffffff; | |
msk[3] = 0xffffffff; | |
if (bits == 128) | |
return; | |
if (bits > 96) { | |
msk[3] = htonl(msk[3] << (128 - bits)); | |
} else if (bits > 64) { | |
msk[3] = 0; | |
msk[2] = htonl(msk[2] << (96 - bits)); | |
} else if (bits > 32) { | |
msk[3] = 0; | |
msk[2] = 0; | |
msk[1] = htonl(msk[1] << (64 - bits)); | |
} else { | |
msk[3] = 0; | |
msk[2] = 0; | |
msk[1] = 0; | |
msk[0] = htonl(msk[0] << (32 - bits)); | |
} | |
} |