Skip to content
Snippets Groups Projects
Commit a03a56c8 authored by Andrey Meshkov's avatar Andrey Meshkov
Browse files

Pull request: proxy: added HTTP/3 support to the DNS-over-HTTPS server implementation

Merge in DNS/dnsproxy from doh3server to master

Squashed commit of the following:

commit dd7f6ecb0264afd16ee6fcd47ff7bafe06797645
Author: Andrey Meshkov <am@adguard.com>
Date:   Tue Sep 20 14:17:51 2022 +0300

    upstream: fix review comments

commit 3b887f614163f4900f75807c990ad2a5d354d3b5
Author: Andrey Meshkov <am@adguard.com>
Date:   Tue Sep 20 00:14:19 2022 +0300

    proxy: added address validation logic

commit b29dc3c3b6746ad5be921941904f16ab228b1dab
Author: Andrey Meshkov <am@adguard.com>
Date:   Mon Sep 19 23:31:21 2022 +0300

    proxy: fix review comments, general improvements

commit 79f47f54adcd30a68a9f7bc0111025ae0a32d99d
Author: Andrey Meshkov <am@adguard.com>
Date:   Mon Sep 19 20:43:26 2022 +0300

    upstream: several improvements in DoH3 and DoQ upstreams

    The previous implementation weren't able to properly handle a situation when the
    server was restarted. This commit greatly improves the overall stability.

commit 59cf92b6097d78acf6f088057134888993f7ca43
Author: Andrey Meshkov <am@adguard.com>
Date:   Sat Sep 17 02:51:40 2022 +0300

    proxy: remoteAddr for DoH depends on HTTP version now

commit 804ddedd2807870b7d36dae5ce9857de3a7f7286
Author: Andrey Meshkov <am@adguard.com>
Date:   Sat Sep 17 01:53:32 2022 +0300

    proxy: added HTTP/3 support to the DNS-over-HTTPS server implementation
    The implementation follows the old approach that was used in dnsproxy, i.e. it
    adds another bunch of "listeners", the new ones are for HTTP/3. HTTP/3 support
    is not enabled by default, it should be enabled explicitly by setting HTTP3
    field of proxy.Config to true.

    The "--http3" command-line argument now controls DoH3 support on both the
    client-side and the server-side.

    There's one more important change that was made while refactoring the code.
    Previously, we were creating a separate http.Server instance for every listen
    address that's used. It is unclear to me what's the reason for that since a
    single instance can be used to serve on every address. This mistake is fixed
    now.
parent 823fa92f
No related branches found
No related tags found
Loading
Showing with 931 additions and 294 deletions
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment