Modify netmask calculation so that /0 is fast-tracked, and so that network
addresses with bit 31 set are processed properly.
Fix from Hiroshi Nakamoto in PR 34578.
[22:09:17] agc@inspiron1300 ...dist/iscsi/src 26 > ./n 10.4/16 10.4.0.29 10.4/16 10.5.0.29 10.4/0 10.4.0.19 10.4 10.4.0.19 10.4.3/8 10.4.3.7 10.4.3/24 10.4.3.7
addr 10.4.0.29 00000a04, mask 10.4.0.0 00000a04, slash 16
mask 10.4/16 matches addr 10.4.0.29
addr 10.5.0.29 00000a05, mask 10.4.0.0 00000a04, slash 16
No match for mask 10.4/16 from addr 10.5.0.29
mask 10.4/0 matches addr 10.4.0.19
addr 10.4.0.19 0a040013, mask 10.4.0.0 0a040000, slash 32
No match for mask 10.4 from addr 10.4.0.19
addr 10.4.3.7 0000000a, mask 10.4.3.0 0000000a, slash 8
mask 10.4.3/8 matches addr 10.4.3.7
addr 10.4.3.7 000a0403, mask 10.4.3.0 000a0403, slash 24
mask 10.4.3/24 matches addr 10.4.3.7
[22:09:20] agc@inspiron1300 ...dist/iscsi/src 27 > ./n any 192.168.0.1
mask any matches addr 192.168.0.1