mirror of https://github.com/fafhrd91/actix-web
				
				
				
			feat(awc): replace trust dns by hickory dns (#3528)
Co-authored-by: Rob Ede <robjtede@icloud.com>
This commit is contained in:
		
							parent
							
								
									f4ee39cdd7
								
							
						
					
					
						commit
						62d6d5863e
					
				|  | @ -219,7 +219,7 @@ dependencies = [ | ||||||
|  "bytes", |  "bytes", | ||||||
|  "common-multipart-rfc7578", |  "common-multipart-rfc7578", | ||||||
|  "futures-core", |  "futures-core", | ||||||
|  "thiserror", |  "thiserror 1.0.69", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -644,6 +644,7 @@ dependencies = [ | ||||||
|  "futures-core", |  "futures-core", | ||||||
|  "futures-util", |  "futures-util", | ||||||
|  "h2", |  "h2", | ||||||
|  |  "hickory-resolver", | ||||||
|  "http 0.2.12", |  "http 0.2.12", | ||||||
|  "itoa", |  "itoa", | ||||||
|  "log", |  "log", | ||||||
|  | @ -663,7 +664,6 @@ dependencies = [ | ||||||
|  "serde_urlencoded", |  "serde_urlencoded", | ||||||
|  "static_assertions", |  "static_assertions", | ||||||
|  "tokio", |  "tokio", | ||||||
|  "trust-dns-resolver", |  | ||||||
|  "zstd", |  "zstd", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | @ -943,7 +943,7 @@ dependencies = [ | ||||||
|  "mime", |  "mime", | ||||||
|  "mime_guess", |  "mime_guess", | ||||||
|  "rand 0.8.5", |  "rand 0.8.5", | ||||||
|  "thiserror", |  "thiserror 1.0.69", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -1057,6 +1057,12 @@ dependencies = [ | ||||||
|  "itertools 0.10.5", |  "itertools 0.10.5", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "critical-section" | ||||||
|  | version = "1.2.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "790eea4361631c5e7d22598ecd5723ff611904e3344ce8720784c93e3d83d40b" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "crossbeam-channel" | name = "crossbeam-channel" | ||||||
| version = "0.5.15" | version = "0.5.15" | ||||||
|  | @ -1452,6 +1458,20 @@ dependencies = [ | ||||||
|  "slab", |  "slab", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "generator" | ||||||
|  | version = "0.8.7" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "605183a538e3e2a9c1038635cc5c2d194e2ee8fd0d1b66b8349fad7dbacce5a2" | ||||||
|  | dependencies = [ | ||||||
|  |  "cc", | ||||||
|  |  "cfg-if", | ||||||
|  |  "libc", | ||||||
|  |  "log", | ||||||
|  |  "rustversion", | ||||||
|  |  "windows", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "generic-array" | name = "generic-array" | ||||||
| version = "0.14.7" | version = "0.14.7" | ||||||
|  | @ -1554,6 +1574,52 @@ version = "0.5.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" | checksum = "fc0fef456e4baa96da950455cd02c081ca953b141298e41db3fc7e36b1da849c" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "hickory-proto" | ||||||
|  | version = "0.25.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "f8a6fe56c0038198998a6f217ca4e7ef3a5e51f46163bd6dd60b5c71ca6c6502" | ||||||
|  | dependencies = [ | ||||||
|  |  "async-trait", | ||||||
|  |  "cfg-if", | ||||||
|  |  "data-encoding", | ||||||
|  |  "enum-as-inner", | ||||||
|  |  "futures-channel", | ||||||
|  |  "futures-io", | ||||||
|  |  "futures-util", | ||||||
|  |  "idna", | ||||||
|  |  "ipnet", | ||||||
|  |  "once_cell", | ||||||
|  |  "rand 0.9.2", | ||||||
|  |  "ring 0.17.14", | ||||||
|  |  "thiserror 2.0.16", | ||||||
|  |  "tinyvec", | ||||||
|  |  "tokio", | ||||||
|  |  "tracing", | ||||||
|  |  "url", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "hickory-resolver" | ||||||
|  | version = "0.25.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "dc62a9a99b0bfb44d2ab95a7208ac952d31060efc16241c87eaf36406fecf87a" | ||||||
|  | dependencies = [ | ||||||
|  |  "cfg-if", | ||||||
|  |  "futures-util", | ||||||
|  |  "hickory-proto", | ||||||
|  |  "ipconfig", | ||||||
|  |  "moka", | ||||||
|  |  "once_cell", | ||||||
|  |  "parking_lot", | ||||||
|  |  "rand 0.9.2", | ||||||
|  |  "resolv-conf", | ||||||
|  |  "smallvec", | ||||||
|  |  "thiserror 2.0.16", | ||||||
|  |  "tokio", | ||||||
|  |  "tracing", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "hkdf" | name = "hkdf" | ||||||
| version = "0.12.4" | version = "0.12.4" | ||||||
|  | @ -1713,16 +1779,6 @@ version = "1.0.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" | checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "idna" |  | ||||||
| version = "0.4.0" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "7d20d6b07bfbc108882d88ed8e37d39636dcc260e15e30c45e6ba089610b917c" |  | ||||||
| dependencies = [ |  | ||||||
|  "unicode-bidi", |  | ||||||
|  "unicode-normalization", |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "idna" | name = "idna" | ||||||
| version = "1.1.0" | version = "1.1.0" | ||||||
|  | @ -1927,12 +1983,6 @@ dependencies = [ | ||||||
|  "windows-targets 0.53.3", |  "windows-targets 0.53.3", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "linked-hash-map" |  | ||||||
| version = "0.5.6" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "linux-raw-sys" | name = "linux-raw-sys" | ||||||
| version = "0.4.15" | version = "0.4.15" | ||||||
|  | @ -1985,12 +2035,25 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" | checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "lru-cache" | name = "loom" | ||||||
| version = "0.1.2" | version = "0.7.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "31e24f1ad8321ca0e8a1e0ac13f23cb668e6f5466c2c57319f6a5cf1cc8e3b1c" | checksum = "419e0dc8046cb947daa77eb95ae174acfbddb7673b4151f56d1eed8e93fbfaca" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "linked-hash-map", |  "cfg-if", | ||||||
|  |  "generator", | ||||||
|  |  "scoped-tls", | ||||||
|  |  "tracing", | ||||||
|  |  "tracing-subscriber", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "matchers" | ||||||
|  | version = "0.2.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d1525a2a28c7f4fa0fc98bb91ae755d1e2d1505079e05539e35bc876b5d65ae9" | ||||||
|  | dependencies = [ | ||||||
|  |  "regex-automata", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -2042,6 +2105,25 @@ dependencies = [ | ||||||
|  "windows-sys 0.59.0", |  "windows-sys 0.59.0", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "moka" | ||||||
|  | version = "0.12.10" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "a9321642ca94a4282428e6ea4af8cc2ca4eac48ac7a6a4ea8f33f76d0ce70926" | ||||||
|  | dependencies = [ | ||||||
|  |  "crossbeam-channel", | ||||||
|  |  "crossbeam-epoch", | ||||||
|  |  "crossbeam-utils", | ||||||
|  |  "loom", | ||||||
|  |  "parking_lot", | ||||||
|  |  "portable-atomic", | ||||||
|  |  "rustc_version", | ||||||
|  |  "smallvec", | ||||||
|  |  "tagptr", | ||||||
|  |  "thiserror 1.0.69", | ||||||
|  |  "uuid", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "multer" | name = "multer" | ||||||
| version = "3.1.0" | version = "3.1.0" | ||||||
|  | @ -2069,6 +2151,15 @@ dependencies = [ | ||||||
|  "minimal-lexical", |  "minimal-lexical", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "nu-ansi-term" | ||||||
|  | version = "0.50.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "d4a28e057d01f97e61255210fcff094d74ed0466038633e95017f5beb68e4399" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-sys 0.52.0", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "num-conv" | name = "num-conv" | ||||||
| version = "0.1.0" | version = "0.1.0" | ||||||
|  | @ -2108,6 +2199,10 @@ name = "once_cell" | ||||||
| version = "1.21.3" | version = "1.21.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" | checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" | ||||||
|  | dependencies = [ | ||||||
|  |  "critical-section", | ||||||
|  |  "portable-atomic", | ||||||
|  | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "once_cell_polyfill" | name = "once_cell_polyfill" | ||||||
|  | @ -2544,6 +2639,15 @@ version = "1.1.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" | checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "rustc_version" | ||||||
|  | version = "0.4.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" | ||||||
|  | dependencies = [ | ||||||
|  |  "semver", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "rustix" | name = "rustix" | ||||||
| version = "0.38.44" | version = "0.38.44" | ||||||
|  | @ -2723,6 +2827,12 @@ dependencies = [ | ||||||
|  "windows-sys 0.59.0", |  "windows-sys 0.59.0", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "scoped-tls" | ||||||
|  | version = "1.0.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "scopeguard" | name = "scopeguard" | ||||||
| version = "1.2.0" | version = "1.2.0" | ||||||
|  | @ -2762,6 +2872,12 @@ dependencies = [ | ||||||
|  "libc", |  "libc", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "semver" | ||||||
|  | version = "1.0.26" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "serde" | name = "serde" | ||||||
| version = "1.0.219" | version = "1.0.219" | ||||||
|  | @ -2846,6 +2962,15 @@ dependencies = [ | ||||||
|  "digest", |  "digest", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "sharded-slab" | ||||||
|  | version = "0.1.7" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" | ||||||
|  | dependencies = [ | ||||||
|  |  "lazy_static", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "shlex" | name = "shlex" | ||||||
| version = "1.3.0" | version = "1.3.0" | ||||||
|  | @ -2961,6 +3086,12 @@ dependencies = [ | ||||||
|  "syn", |  "syn", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "tagptr" | ||||||
|  | version = "0.2.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "7b2093cf4c8eb1e67749a6762251bc9cd836b6fc171623bd0a9d324d37af2417" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "target-triple" | name = "target-triple" | ||||||
| version = "0.1.4" | version = "0.1.4" | ||||||
|  | @ -3005,7 +3136,16 @@ version = "1.0.69" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" | checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "thiserror-impl", |  "thiserror-impl 1.0.69", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "thiserror" | ||||||
|  | version = "2.0.16" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "3467d614147380f2e4e374161426ff399c91084acd2363eaf549172b3d5e60c0" | ||||||
|  | dependencies = [ | ||||||
|  |  "thiserror-impl 2.0.16", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -3019,6 +3159,26 @@ dependencies = [ | ||||||
|  "syn", |  "syn", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "thiserror-impl" | ||||||
|  | version = "2.0.16" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "6c5e1be1c48b9172ee610da68fd9cd2770e7a4056cb3fc98710ee6906f0c7960" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "thread_local" | ||||||
|  | version = "1.1.9" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "f60246a4944f24f6e018aa17cdeffb7818b76356965d03b07d6a9886e8962185" | ||||||
|  | dependencies = [ | ||||||
|  |  "cfg-if", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "time" | name = "time" | ||||||
| version = "0.3.43" | version = "0.3.43" | ||||||
|  | @ -3276,52 +3436,36 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" | checksum = "b9d12581f227e93f094d3af2ae690a574abb8a2b9b7a96e7cfe9647b2b617678" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  |  "valuable", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "trust-dns-proto" | name = "tracing-log" | ||||||
| version = "0.23.2" | version = "0.2.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "3119112651c157f4488931a01e586aa459736e9d6046d3bd9105ffb69352d374" | checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "async-trait", |  "log", | ||||||
|  "cfg-if", |  | ||||||
|  "data-encoding", |  | ||||||
|  "enum-as-inner", |  | ||||||
|  "futures-channel", |  | ||||||
|  "futures-io", |  | ||||||
|  "futures-util", |  | ||||||
|  "idna 0.4.0", |  | ||||||
|  "ipnet", |  | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  "rand 0.8.5", |  "tracing-core", | ||||||
|  "smallvec", |  | ||||||
|  "thiserror", |  | ||||||
|  "tinyvec", |  | ||||||
|  "tokio", |  | ||||||
|  "tracing", |  | ||||||
|  "url", |  | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "trust-dns-resolver" | name = "tracing-subscriber" | ||||||
| version = "0.23.2" | version = "0.3.20" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "10a3e6c3aff1718b3c73e395d1f35202ba2ffa847c6a62eea0db8fb4cfe30be6" | checksum = "2054a14f5307d601f88daf0553e1cbf472acc4f2c51afab632431cdcd72124d5" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "cfg-if", |  "matchers", | ||||||
|  "futures-util", |  "nu-ansi-term", | ||||||
|  "ipconfig", |  | ||||||
|  "lru-cache", |  | ||||||
|  "once_cell", |  "once_cell", | ||||||
|  "parking_lot", |  "regex-automata", | ||||||
|  "rand 0.8.5", |  "sharded-slab", | ||||||
|  "resolv-conf", |  | ||||||
|  "smallvec", |  "smallvec", | ||||||
|  "thiserror", |  "thread_local", | ||||||
|  "tokio", |  | ||||||
|  "tracing", |  "tracing", | ||||||
|  "trust-dns-proto", |  "tracing-core", | ||||||
|  |  "tracing-log", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
| [[package]] | [[package]] | ||||||
|  | @ -3351,27 +3495,12 @@ version = "2.8.1" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" | checksum = "75b844d17643ee918803943289730bec8aac480150456169e647ed0b576ba539" | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "unicode-bidi" |  | ||||||
| version = "0.3.18" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "5c1cb5db39152898a79168971543b1cb5020dff7fe43c8dc468b0885f5e29df5" |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode-ident" | name = "unicode-ident" | ||||||
| version = "1.0.18" | version = "1.0.18" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" | checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" | ||||||
| 
 | 
 | ||||||
| [[package]] |  | ||||||
| name = "unicode-normalization" |  | ||||||
| version = "0.1.24" |  | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" |  | ||||||
| checksum = "5033c97c4262335cded6d6fc3e5c18ab755e1a3dc96376350f3d8e9f009ad956" |  | ||||||
| dependencies = [ |  | ||||||
|  "tinyvec", |  | ||||||
| ] |  | ||||||
| 
 |  | ||||||
| [[package]] | [[package]] | ||||||
| name = "unicode-xid" | name = "unicode-xid" | ||||||
| version = "0.2.6" | version = "0.2.6" | ||||||
|  | @ -3407,7 +3536,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" | checksum = "08bc136a29a3d1758e07a9cca267be308aeebf5cfd5a10f3f67ab2097683ef5b" | ||||||
| dependencies = [ | dependencies = [ | ||||||
|  "form_urlencoded", |  "form_urlencoded", | ||||||
|  "idna 1.1.0", |  "idna", | ||||||
|  "percent-encoding", |  "percent-encoding", | ||||||
|  "serde", |  "serde", | ||||||
| ] | ] | ||||||
|  | @ -3424,12 +3553,29 @@ version = "0.2.2" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" | checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "uuid" | ||||||
|  | version = "1.18.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" | ||||||
|  | dependencies = [ | ||||||
|  |  "getrandom 0.3.3", | ||||||
|  |  "js-sys", | ||||||
|  |  "wasm-bindgen", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "v_htmlescape" | name = "v_htmlescape" | ||||||
| version = "0.15.8" | version = "0.15.8" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" | checksum = "4e8257fbc510f0a46eb602c10215901938b5c2a7d5e70fc11483b1d3c9b5b18c" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "valuable" | ||||||
|  | version = "0.1.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65" | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "vcpkg" | name = "vcpkg" | ||||||
| version = "0.2.15" | version = "0.2.15" | ||||||
|  | @ -3627,12 +3773,108 @@ version = "0.4.0" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows" | ||||||
|  | version = "0.61.3" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "9babd3a767a4c1aef6900409f85f5d53ce2544ccdfaa86dad48c91782c6d6893" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-collections", | ||||||
|  |  "windows-core", | ||||||
|  |  "windows-future", | ||||||
|  |  "windows-link", | ||||||
|  |  "windows-numerics", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-collections" | ||||||
|  | version = "0.2.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "3beeceb5e5cfd9eb1d76b381630e82c4241ccd0d27f1a39ed41b2760b255c5e8" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-core", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-core" | ||||||
|  | version = "0.61.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "c0fdd3ddb90610c7638aa2b3a3ab2904fb9e5cdbecc643ddb3647212781c4ae3" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-implement", | ||||||
|  |  "windows-interface", | ||||||
|  |  "windows-link", | ||||||
|  |  "windows-result", | ||||||
|  |  "windows-strings", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-future" | ||||||
|  | version = "0.2.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "fc6a41e98427b19fe4b73c550f060b59fa592d7d686537eebf9385621bfbad8e" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-core", | ||||||
|  |  "windows-link", | ||||||
|  |  "windows-threading", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-implement" | ||||||
|  | version = "0.60.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "a47fddd13af08290e67f4acabf4b459f647552718f683a7b415d290ac744a836" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-interface" | ||||||
|  | version = "0.59.1" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "bd9211b69f8dcdfa817bfd14bf1c97c9188afa36f4750130fcdf3f400eca9fa8" | ||||||
|  | dependencies = [ | ||||||
|  |  "proc-macro2", | ||||||
|  |  "quote", | ||||||
|  |  "syn", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows-link" | name = "windows-link" | ||||||
| version = "0.1.3" | version = "0.1.3" | ||||||
| source = "registry+https://github.com/rust-lang/crates.io-index" | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
| checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" | checksum = "5e6ad25900d524eaabdbbb96d20b4311e1e7ae1699af4fb28c17ae66c80d798a" | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-numerics" | ||||||
|  | version = "0.2.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "9150af68066c4c5c07ddc0ce30421554771e528bde427614c61038bc2c92c2b1" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-core", | ||||||
|  |  "windows-link", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-result" | ||||||
|  | version = "0.3.4" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "56f42bd332cc6c8eac5af113fc0c1fd6a8fd2aa08a0119358686e5160d0586c6" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-link", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-strings" | ||||||
|  | version = "0.4.2" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "56e6c93f3a0c3b36176cb1327a4958a0353d5d166c2a35cb268ace15e91d3b57" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-link", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows-sys" | name = "windows-sys" | ||||||
| version = "0.48.0" | version = "0.48.0" | ||||||
|  | @ -3717,6 +3959,15 @@ dependencies = [ | ||||||
|  "windows_x86_64_msvc 0.53.0", |  "windows_x86_64_msvc 0.53.0", | ||||||
| ] | ] | ||||||
| 
 | 
 | ||||||
|  | [[package]] | ||||||
|  | name = "windows-threading" | ||||||
|  | version = "0.1.0" | ||||||
|  | source = "registry+https://github.com/rust-lang/crates.io-index" | ||||||
|  | checksum = "b66463ad2e0ea3bbf808b7f1d371311c80e115c0b71d60efc142cafbcfb057a6" | ||||||
|  | dependencies = [ | ||||||
|  |  "windows-link", | ||||||
|  | ] | ||||||
|  | 
 | ||||||
| [[package]] | [[package]] | ||||||
| name = "windows_aarch64_gnullvm" | name = "windows_aarch64_gnullvm" | ||||||
| version = "0.48.5" | version = "0.48.5" | ||||||
|  |  | ||||||
|  | @ -2,6 +2,9 @@ | ||||||
| 
 | 
 | ||||||
| ## Unreleased | ## Unreleased | ||||||
| 
 | 
 | ||||||
|  | - Add `hickory-dns` crate feature (off-by-default). | ||||||
|  | - The `trust-dns` crate feature now delegates DNS resolution to `hickory-dns`. | ||||||
|  | 
 | ||||||
| ## 3.7.0 | ## 3.7.0 | ||||||
| 
 | 
 | ||||||
| - Update `brotli` dependency to `8`. | - Update `brotli` dependency to `8`. | ||||||
|  |  | ||||||
|  | @ -82,8 +82,10 @@ compress-zstd = ["actix-http/compress-zstd", "__compress"] | ||||||
| # Cookie parsing and cookie jar | # Cookie parsing and cookie jar | ||||||
| cookies = ["dep:cookie"] | cookies = ["dep:cookie"] | ||||||
| 
 | 
 | ||||||
| # Use `trust-dns-resolver` crate as DNS resolver | # Use `hickory-dns-resolver` crate as DNS resolver | ||||||
| trust-dns = ["trust-dns-resolver"] | hickory-dns = ["dep:hickory-resolver"] | ||||||
|  | # Use `trust-dns-resolver` crate as DNS resolver (deprecated, use `hickory-dns`) | ||||||
|  | trust-dns = ["hickory-dns"] | ||||||
| 
 | 
 | ||||||
| # Internal (PRIVATE!) features used to aid testing and checking feature status. | # Internal (PRIVATE!) features used to aid testing and checking feature status. | ||||||
| # Don't rely on these whatsoever. They may disappear at anytime. | # Don't rely on these whatsoever. They may disappear at anytime. | ||||||
|  | @ -129,7 +131,7 @@ tls-rustls-0_21 = { package = "rustls", version = "0.21", optional = true, featu | ||||||
| tls-rustls-0_22 = { package = "rustls", version = "0.22", optional = true } | tls-rustls-0_22 = { package = "rustls", version = "0.22", optional = true } | ||||||
| tls-rustls-0_23 = { package = "rustls", version = "0.23", optional = true, default-features = false } | tls-rustls-0_23 = { package = "rustls", version = "0.23", optional = true, default-features = false } | ||||||
| 
 | 
 | ||||||
| trust-dns-resolver = { version = "0.23", optional = true } | hickory-resolver = { version = "0.25", optional = true, features = ["system-config", "tokio"] } | ||||||
| 
 | 
 | ||||||
| [dev-dependencies] | [dev-dependencies] | ||||||
| actix-http = { version = "3.7", features = ["openssl"] } | actix-http = { version = "3.7", features = ["openssl"] } | ||||||
|  |  | ||||||
|  | @ -1037,7 +1037,7 @@ where | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #[cfg(not(feature = "trust-dns"))] | #[cfg(not(feature = "hickory-dns"))] | ||||||
| mod resolver { | mod resolver { | ||||||
|     use super::*; |     use super::*; | ||||||
| 
 | 
 | ||||||
|  | @ -1046,24 +1046,25 @@ mod resolver { | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| #[cfg(feature = "trust-dns")] | #[cfg(feature = "hickory-dns")] | ||||||
| mod resolver { | mod resolver { | ||||||
|     use std::{cell::RefCell, net::SocketAddr}; |     use std::{cell::RefCell, net::SocketAddr}; | ||||||
| 
 | 
 | ||||||
|     use actix_tls::connect::Resolve; |     use actix_tls::connect::Resolve; | ||||||
|     use trust_dns_resolver::{ |     use hickory_resolver::{ | ||||||
|         config::{ResolverConfig, ResolverOpts}, |         config::{ResolverConfig, ResolverOpts}, | ||||||
|  |         name_server::TokioConnectionProvider, | ||||||
|         system_conf::read_system_conf, |         system_conf::read_system_conf, | ||||||
|         TokioAsyncResolver, |         TokioResolver, | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|     use super::*; |     use super::*; | ||||||
| 
 | 
 | ||||||
|     pub(super) fn resolver() -> Resolver { |     pub(super) fn resolver() -> Resolver { | ||||||
|         // new type for impl Resolve trait for TokioAsyncResolver.
 |         // new type for impl Resolve trait for TokioAsyncResolver.
 | ||||||
|         struct TrustDnsResolver(TokioAsyncResolver); |         struct HickoryDnsResolver(TokioResolver); | ||||||
| 
 | 
 | ||||||
|         impl Resolve for TrustDnsResolver { |         impl Resolve for HickoryDnsResolver { | ||||||
|             fn lookup<'a>( |             fn lookup<'a>( | ||||||
|                 &'a self, |                 &'a self, | ||||||
|                 host: &'a str, |                 host: &'a str, | ||||||
|  | @ -1085,11 +1086,11 @@ mod resolver { | ||||||
| 
 | 
 | ||||||
|         // resolver struct is cached in thread local so new clients can reuse the existing instance
 |         // resolver struct is cached in thread local so new clients can reuse the existing instance
 | ||||||
|         thread_local! { |         thread_local! { | ||||||
|             static TRUST_DNS_RESOLVER: RefCell<Option<Resolver>> = const { RefCell::new(None) }; |             static HICKORY_DNS_RESOLVER: RefCell<Option<Resolver>> = const { RefCell::new(None) }; | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         // get from thread local or construct a new trust-dns resolver.
 |         // get from thread local or construct a new hickory dns resolver.
 | ||||||
|         TRUST_DNS_RESOLVER.with(|local| { |         HICKORY_DNS_RESOLVER.with(|local| { | ||||||
|             let resolver = local.borrow().as_ref().map(Clone::clone); |             let resolver = local.borrow().as_ref().map(Clone::clone); | ||||||
| 
 | 
 | ||||||
|             match resolver { |             match resolver { | ||||||
|  | @ -1099,15 +1100,18 @@ mod resolver { | ||||||
|                     let (cfg, opts) = match read_system_conf() { |                     let (cfg, opts) = match read_system_conf() { | ||||||
|                         Ok((cfg, opts)) => (cfg, opts), |                         Ok((cfg, opts)) => (cfg, opts), | ||||||
|                         Err(err) => { |                         Err(err) => { | ||||||
|                             log::error!("Trust-DNS can not load system config: {err}"); |                             log::error!("Hickory-DNS can not load system config: {err}"); | ||||||
|                             (ResolverConfig::default(), ResolverOpts::default()) |                             (ResolverConfig::default(), ResolverOpts::default()) | ||||||
|                         } |                         } | ||||||
|                     }; |                     }; | ||||||
| 
 | 
 | ||||||
|                     let resolver = TokioAsyncResolver::tokio(cfg, opts); |                     let resolver = | ||||||
|  |                         TokioResolver::builder_with_config(cfg, TokioConnectionProvider::default()) | ||||||
|  |                             .with_options(opts) | ||||||
|  |                             .build(); | ||||||
| 
 | 
 | ||||||
|                     // box trust dns resolver and put it in thread local.
 |                     // box hickory dns resolver and put it in thread local
 | ||||||
|                     let resolver = Resolver::custom(TrustDnsResolver(resolver)); |                     let resolver = Resolver::custom(HickoryDnsResolver(resolver)); | ||||||
|                     *local.borrow_mut() = Some(resolver.clone()); |                     *local.borrow_mut() = Some(resolver.clone()); | ||||||
| 
 | 
 | ||||||
|                     resolver |                     resolver | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue