|  | /* | 
|  | * 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)); | 
|  | } | 
|  | } |