Repository navigation
feat(datatype): add DiameterIdentity.Valid - #137
Merged
Merged
Conversation
DiameterIdentity syntax is checked in two places: base message validation in diam/internal/base, and peer discovery in dnsdiam, which as a nested module cannot import an internal package. Export the check as DiameterIdentity.Valid so that both can share it, and use it for base messages. Valid accepts one or more labels of ASCII letters, digits and interior hyphens, separated by dots, with an optional final root dot. Each label is 1–63 octets and the name without the root dot at most 253. It checks neither that the name is a host or realm nor IDNA validity: a label that looks like an A-label is checked as plain ASCII. Base validation decides exactly as before; a 55-case table and a fuzz target cover the rule. Refs #132.
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configuration
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DiameterIdentity syntax is checked in two places: base message validation
in diam/internal/base, and peer discovery in dnsdiam, which as a nested
module cannot import an internal package. Export the check as
DiameterIdentity.Valid so that both can share it, and use it for base
messages.
Valid accepts one or more labels of ASCII letters, digits and interior
hyphens, separated by dots, with an optional final root dot. Each label is
1–63 octets and the name without the root dot at most 253. It checks
neither that the name is a host or realm nor IDNA validity: a label that
looks like an A-label is checked as plain ASCII. Base validation decides
exactly as before; a 55-case table and a fuzz target cover the rule.
Refs #132.
Summary by cubic
Exports DiameterIdentity syntax validation as
DiameterIdentity.Validand reuses it for base message validation, which decides exactly as before.The exported method lets
dnsdiam, a nested module that cannot importdiam/internal/base, share the same check.Validaccepts ASCII labels of letters, digits, and interior hyphens with an optional root dot; it does not verify host/realm meaning or IDNA validity. A 55-case table test and a fuzz target cover the rule. Refs #132.Written for commit 1c47710. Summary will update on new commits.