Merge pull request #478 from ilmich/select-dns-provider

resolverdns: added select dns provider option
This commit is contained in:
Timmy89
2024-02-27 10:24:00 +01:00
committed by GitHub
2 changed files with 9 additions and 3 deletions
+8 -3
View File
@@ -10,7 +10,7 @@ else:
from lib.requests_toolbelt.adapters import host_header_ssl from lib.requests_toolbelt.adapters import host_header_ssl
from lib import doh from lib import doh
from platformcode import logger from platformcode import config, logger
import requests import requests
from core import scrapertools from core import scrapertools
from core import db from core import db
@@ -21,6 +21,7 @@ from requests.adapters import HTTPAdapter
current_date = datetime.datetime.now() current_date = datetime.datetime.now()
CIPHERS = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384" CIPHERS = "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384"
dns_providers = {'cloudflare': { 'host': '1.0.0.1', 'path' : '/dns-query'}, 'google': { 'host': '8.8.4.4', 'path' : '/resolve'}}
class CipherSuiteAdapter(HTTPAdapter): class CipherSuiteAdapter(HTTPAdapter):
@@ -62,7 +63,11 @@ class CipherSuiteAdapter(HTTPAdapter):
if not cache: # not cached if not cache: # not cached
try: try:
ip = doh.query(domain, fallback=False) # fallback is not necessary here cfg_provider = config.get_setting('resolver_dns_provider').lower()
provider = dns_providers[cfg_provider]
logger.debug('selected ' + cfg_provider + 'dns provider with address ' + provider['host'] + ' and path ' + provider['path'] )
ip = doh.query(domain, server = provider['host'], path= provider['path'], fallback=False) # fallback is not necessary here
if ip is None or not len(ip): # resolver is not available or return no results if ip is None or not len(ip): # resolver is not available or return no results
ip = None ip = None
else: else:
@@ -95,7 +100,7 @@ class CipherSuiteAdapter(HTTPAdapter):
try: try:
return super(CipherSuiteAdapter, self).send(request, **kwargs) return super(CipherSuiteAdapter, self).send(request, **kwargs)
except (requests.exceptions.HTTPError, requests.exceptions.ConnectionError, requests.exceptions.SSLError) as e: except (requests.exceptions.HTTPError, requests.exceptions.ConnectionError, requests.exceptions.SSLError) as e:
logger.error(e) logger.info(e)
try: try:
parse = urlparse.urlparse(request.url) parse = urlparse.urlparse(request.url)
except: except:
+1
View File
@@ -10,6 +10,7 @@
<setting id="addon_update_timer" type="slider" option="int" range="1,1,24" label="707416" visible="eq(-2,true)" default="1"/> <setting id="addon_update_timer" type="slider" option="int" range="1,1,24" label="707416" visible="eq(-2,true)" default="1"/>
<setting label="70787" type="lsep"/> <setting label="70787" type="lsep"/>
<setting id="resolver_dns" type="bool" label="707408" default="true" enable="true" visible="true"/> <setting id="resolver_dns" type="bool" label="707408" default="true" enable="true" visible="true"/>
<setting id="resolver_dns_provider" type="select" label="707409" default="Cloudflare" values="Cloudflare|Google" visible="eq(-1,true)"/>
<setting id="checkdns" type="bool" default="true" visible="false"/> <setting id="checkdns" type="bool" default="true" visible="false"/>
<setting label="70788" type="lsep"/> <setting label="70788" type="lsep"/>
<setting id="debug" type="bool" label="30003" default="false"/> <setting id="debug" type="bool" label="30003" default="false"/>