Browse Source
Add option to prefer IPv6 resolving (#6494 )
This PR adds an option to prefer IPv6 resolving before IPv4.
On IPv6 only systems this could be very useful, but will not solve IPv4 only domains of course.
For that you need a DNS64 + NAT64 solution
Fixes #6301
Signed-off-by: BlackDex <black.dex@gmail.com>
main
Mathijs van Veluw
4 days ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
13 additions and
1 deletions
.env.template
src/config.rs
src/http_client.rs
@ -472,6 +472,11 @@
## Setting this to true will enforce the Single Org Policy to be enabled before you can enable the Reset Password policy.
## Setting this to true will enforce the Single Org Policy to be enabled before you can enable the Reset Password policy.
# ENFORCE_SINGLE_ORG_WITH_RESET_PW_POLICY=false
# ENFORCE_SINGLE_ORG_WITH_RESET_PW_POLICY=false
## Prefer IPv6 (AAAA) resolving
## This settings configures the DNS resolver to resolve IPv6 first, and if not available try IPv4
## This could be useful in IPv6 only environments.
# DNS_PREFER_IPV6=false
#####################################
#####################################
### SSO settings (OpenID Connect) ###
### SSO settings (OpenID Connect) ###
#####################################
#####################################
@ -789,6 +789,10 @@ make_config! {
/// Bitwarden enforces this by default. In Vaultwarden we encouraged to use multiple organizations because groups were not available.
/// Bitwarden enforces this by default. In Vaultwarden we encouraged to use multiple organizations because groups were not available.
/// Setting this to true will enforce the Single Org Policy to be enabled before you can enable the Reset Password policy.
/// Setting this to true will enforce the Single Org Policy to be enabled before you can enable the Reset Password policy.
enforce_single_org_with_reset_pw_policy : bool , false , def , false ;
enforce_single_org_with_reset_pw_policy : bool , false , def , false ;
/// Prefer IPv6 (AAAA) resolving |> This settings configures the DNS resolver to resolve IPv6 first, and if not available try IPv4
/// This could be useful in IPv6 only environments.
dns_prefer_ipv6 : bool , true , def , false ;
} ,
} ,
/// OpenID Connect SSO settings
/// OpenID Connect SSO settings
@ -185,7 +185,10 @@ impl CustomDnsResolver {
fn new ( ) -> Arc < Self > {
fn new ( ) -> Arc < Self > {
match TokioResolver ::builder ( TokioConnectionProvider ::default ( ) ) {
match TokioResolver ::builder ( TokioConnectionProvider ::default ( ) ) {
Ok ( builder ) = > {
Ok ( mut builder ) = > {
if CONFIG . dns_prefer_ipv6 ( ) {
builder . options_mut ( ) . ip_strategy = hickory_resolver ::config ::LookupIpStrategy ::Ipv6thenIpv4 ;
}
let resolver = builder . build ( ) ;
let resolver = builder . build ( ) ;
Arc ::new ( Self ::Hickory ( Arc ::new ( resolver ) ) )
Arc ::new ( Self ::Hickory ( Arc ::new ( resolver ) ) )
}
}