-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
TODO #136
Comments
@kazu-yamamoto In |
Oh. Sorry. You can use
|
I have some potential improvements in mind for the core API, including a semi-overhaul of the internal representation of Domain objects, and optimizations to their conversion to Presentation Format. Would this be an appropriate refactoring for this task? I can submit a separate demo PR or design document if that would be helpful. |
Would you explain key ideas in more detail? |
Viktor and I worked in 2020-2021 on a DNS implementation that he has given me the all-clear to go ahead and scavenge useful bits and pieces from, as necessary or practical.
I would have to review the code a bit more to see what else can be made useful, but that is a cursory rundown of the first steps that might make sense as far as what I was thinking. It would also have to be checked against upstream API changes and tinkered with a bit, but a lot of it could be used as inspiration rather than merely dropped in. |
data Domain = Domain
{ -- The representation format. Case-sensitive, escaped.
representation :: ShortByteString
, -- Labels in wire format. Case-sensitive, not escaped.
wireLabels :: [ShortByteString]
, canonicalLabels :: ~[ShortByteString]
-- ^ Eq and Ord key for Canonical DNS Name Order.
-- Lower cases, not escaped.
-- https://datatracker.ietf.org/doc/html/rfc4034#section-6.1
} The If you still think your proposal is useful, please go ahead. Note that I know you can write pure code of this area very well. |
I apologize if it may have been slightly confusingly worded. The key idea of the first bullet-point wasn't that Domain uses The TH stuff is totally optional, I was just looking over the commit history and files to refresh my memory and it cropped up. It doesn't need to be brought in if you have concerns about that. I do think that there is enough useful content to bring in, and will proceed with the proposal, with the caveats you mentioned. |
The wire format should be |
dnsext-utils:DNS.RRCache
anddnsext-iterative
are just written once, not refactored at all. Probably the hold unnecessary code. Some parts are hard to read. Refactoring is necessary.dnsext-iterative
uses this parameter butdns-do53
anddns-dox
do not. The latter two should use this parameter.bowline
. We should find resource leak, if any.bowline
. We need to check the performance againstunbound
.The text was updated successfully, but these errors were encountered: