Reject invalid IPs in format ":x" ("::" was already disallowed, so no
harm in requiring at least three segments), and allow localhost "::1"
as a valid format.
This completes the fix fwtool IPv6 LocalServer rule generation.
| (_, n) => n) 0 fields
fun noIpv4 maxLen =
| (_, n) => n) 0 fields
fun noIpv4 maxLen =
andalso length fields <= maxLen
andalso empties <= 1
andalso List.all (fn "" => true
andalso length fields <= maxLen
andalso empties <= 1
andalso List.all (fn "" => true
in
validIp maybeIpv4 andalso noIpv4 6
end
in
validIp maybeIpv4 andalso noIpv4 6
end
+
+ fun localHost () =
+ length fields = 3
+ andalso empties = 2
+ andalso List.last fields = "1"
- noIpv4 8 orelse hasIpv4 ()
+ localHost () orelse noIpv4 8 orelse hasIpv4 ()
end
fun isIdent ch = Char.isLower ch orelse Char.isDigit ch
end
fun isIdent ch = Char.isLower ch orelse Char.isDigit ch