Skip to content

Fix DNS over QUIC stream close#2779

Merged
nekohasekai merged 1 commit intoSagerNet:dev-nextfrom
dyhkwong:doq-stream-close
Mar 27, 2025
Merged

Fix DNS over QUIC stream close#2779
nekohasekai merged 1 commit intoSagerNet:dev-nextfrom
dyhkwong:doq-stream-close

Conversation

@dyhkwong
Copy link
Contributor

Current DoQ implementation does not work with some public DoQ servers like dns.nextdns.io.

https://datatracker.ietf.org/doc/html/rfc9250#section-4.2-6

The client MUST send the DNS query over the selected stream and MUST indicate through the STREAM FIN mechanism that no further data will be sent on that stream.
Servers MAY defer processing of a query until the STREAM FIN has been indicated on the stream selected by the client.

Almost all main DoQ implementation are written like this, e.g. https://github.com/AdguardTeam/dnsproxy/blob/d64332fbadf25bc185d39694c68e79445a5915be/upstream/doq.go#L227-L254.

SagerNet/sing-dns#21 is for main-next.

@nekohasekai nekohasekai merged commit 7c8bd19 into SagerNet:dev-next Mar 27, 2025
1 check passed
@dyhkwong dyhkwong deleted the doq-stream-close branch April 2, 2025 10:46
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.

2 participants