Skip to content

Hostname label separator fixes#221

Closed
davishmcclurg wants to merge 4 commits into
mainfrom
hostname
Closed

Hostname label separator fixes#221
davishmcclurg wants to merge 4 commits into
mainfrom
hostname

Conversation

@davishmcclurg

Copy link
Copy Markdown
Owner
  • Support all IDNA separators (., 。, ., 。)
  • Disallow trailing separators

`String#split` drops trailing null fields by default, which means the
dots weren't getted added back by `join` for validation against
`HOSTNAME_REGEX`. Passing `-1` to `split` returns empty strings instead.

Ruby [docs][0]:

> If limit is negative, it behaves the same as if limit was zero,
meaning that there is no limit, and trailing empty substrings are
included.

[0]: https://ruby-doc.org/3.4.1/String.html#method-i-split
[RFC 3490][0] says:

> Whenever dots are used as label separators, the following
> characters MUST be recognized as dots: U+002E (full stop), U+3002
> (ideographic full stop), U+FF0E (fullwidth full stop), U+FF62
> (halfwidth ideographic full stop)

[0]: https://datatracker.ietf.org/doc/html/rfc3490#section-3.1
Using `bin/hostname_character_classes`.
@davishmcclurg

Copy link
Copy Markdown
Owner Author

Here instead: #226

@davishmcclurg davishmcclurg deleted the hostname branch December 8, 2025 00:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant