in resolver/src/main/java/org/apache/james/jspf/core/IPAddr.java [119:152]
public void setMask(int maskLength) {
int startMask;
int shift;
int maskSize;
this.maskLength = maskLength;
if (ipLength == 4) {
if (!((maskLength > -1) && (maskLength < 33))) {
maskLength = 32;
}
maskSize = 8;
startMask = (maskLength - 1) / maskSize;
} else {
if (!((maskLength > -1) && (maskLength < 129))) {
maskLength = 128;
}
maskSize = 16;
startMask = (maskLength - 1) / maskSize;
}
for (int i = 0; i < ipRun; i++) {
// full mask
if (i < startMask) {
mask[i] = MASK16;
// variable mask
} else if (i == startMask) {
shift = ((i + 1) * maskSize) - maskLength;
mask[i] = (MASK16 << shift) & MASK16;
// no mask
} else {
mask[i] = 0;
}
}
}