resolverdns: added select dns provider option

This commit is contained in:
ilmich
2024-02-25 19:41:35 +01:00
parent 481059407f
commit f848574206
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"/>