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
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