mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[GH-ISSUE #698] [Client] Recommended stable version? #275
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#275
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @alienscience on GitHub (Mar 3, 2019).
Original GitHub issue: https://github.com/hickory-dns/hickory-dns/issues/698
After a
cargo updatetrust dns client updated from0.15.0to0.15.1. This brought in some breaking changes to the API (inUdpClientStream::new()). From what I can see, this API changes again in0.16.X.Is there a recommended version to aim at for stability?
Also, I had problems searching the source code for
0.15.1because, as far as I can tell, this release is not tagged in git.The code that I have that is sensitive to trust dns versions is:
Do you have any advice for refactoring the function or return types so that it is less likely to break?
Many thanks for the library and thanks in advance for any help.
@bluejekyll commented on GitHub (Mar 3, 2019):
That's unfortunate that there was an API breakage on that version. It wasn't intentional. There was a UDP socket leak in 0.15.0 that 0.15.1 fixed, and fixing that may have introduced this breaking API change.
The 0.15.x line is stable. For alpha releases, I don't guarantee that there won't be breaking changes during their development. Apologies for the API change breaking you!
In 0.16 I'm starting to try and clean up a lot of things that I haven't had time to address in a while, so that might be an upgrade, though I do try to deprecate interfaces before changing them in a breaking way, I can't always guarantee this.
@alienscience commented on GitHub (Mar 3, 2019):
Thanks for the reply. I will upgrade to 0.15.1.
@clouds56 commented on GitHub (Mar 12, 2019):
I don't care about DnsMultiplexerSerialResponse or UdpResponse when using a BasicClientHandle, why I have to specify it?
Is it possible to box something like ClientHandle in order to use in a struct?
@bluejekyll commented on GitHub (Mar 12, 2019):
The Client hasn't gotten a ton of love in the past while. It's been low on my priorities after the server and resolver, but I have wanted to cleanup and simplify it's interfaces. If you don't absolutely need the Async aspects of the client, can you instead use the synchronous client? https://docs.rs/trust-dns/0.16.0-alpha.2/trust_dns/client/struct.SyncClient.html
I'm not sure if all the types in the AsyncClient are object-safe, so it might not be easy to wrap them.
@clouds56 commented on GitHub (Mar 13, 2019):
Thanks for the information.
I take some time investigated the struct
SyncClient, but it also need a parameterCC. The traittrust_dns::client::Clientwon't work as well.In my situation, I'd like to make dns a field of my Client struct
I would not like to make my struct generic just for dns, from my situation, I expect dns/Client to have the trait (no need to know if the underlying Client is tcp/udp, secure or not)
could we separate
fn new_future(&self)(along withResponse, Sender, SenderFuture, Handle) to another trait (sayInnerClient) and make traitClienttakes no arguments?@bluejekyll commented on GitHub (Mar 13, 2019):
Yes, that might work. At that point I think the Client trait would be object safe. If you want to take a stab at that change, I'd welcome the PR.