So just test overall length and label length.
Thanks to Robert Elz.
fi
}
-# Check for a valid domain name as per RFC1123 with the exception of
-# allowing - and _ as they seem to be widely used.
+# Check for a valid domain name as per RFC2181 section 11
valid_domainname()
{
local name="$1" label
while [ -n "$name" ]; do
label="${name%%.*}"
[ -z "$label" -o ${#label} -gt 63 ] && return 1
- case "$label" in
- -*|_*|*-|*_) return 1;;
- *[![:alnum:]_-]*) return 1;;
- "$name") return 0;;
- esac
+ [ "$label" = "$name" ] && return 0
name="${name#*.}"
done
return 0