public void setMask()

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;
            }
        }
    }