- // Ok, we have a network size, not a netmask
- if (strchr(pt,'.')==0 && strchr(pt,':')==0) {
- unsigned long sz, limit = 0;
-
- switch ((*ips)->a.vna_type) {
- case VC_NXA_TYPE_IPV4: limit = 32; break;
- case VC_NXA_TYPE_IPV6: limit = 128; break;
- default: break;
- }
-
- if (!isNumberUnsigned(pt, &sz, true) || sz > limit) {
- WRITE_MSG(2, "Invalid prefix '");
- WRITE_STR(2, pt);
- WRITE_MSG(2, "'\n");
- exit(wrapper_exit_code);
- }
-
- (*ips)->a.vna_prefix = sz;
- switch ((*ips)->a.vna_type) {
- case VC_NXA_TYPE_IPV4:
- (*ips)->a.vna_v4_mask.s_addr = htonl(~((1 << (32 - sz)) - 1));
- break;
- case VC_NXA_TYPE_IPV6:
- ipv6PrefixToMask(&(*ips)->a.vna_v6_mask, (*ips)->a.vna_prefix);
- break;
- default: break;
- }