2 * Copyright (C) 2012 by Darren Reed.
4 * See the IPFILTER.LICENCE file for details on licencing.
12 int genmask(family, msk, mskp)
21 if (strchr(msk, '.') || strchr(msk, 'x') || strchr(msk, ':')) {
22 /* possibly of the form xxx.xxx.xxx.xxx
28 if (inet_pton(AF_INET6, msk, &mskp->in4) != 1)
33 if (inet_aton(msk, &mskp->in4) == 0)
42 * set x most significant bits
44 bits = (int)strtol(msk, &endptr, 0);
49 if ((*endptr != '\0') || (bits < 0) || (bits > 128))
51 fill6bits(bits, mskp->i6);
54 if (*endptr != '\0' || bits > 32 || bits < 0)
59 addr = htonl(0xffffffff << (32 - bits));
60 mskp->in4.s_addr = addr;