resolverdns: added select dns provider option
This commit is contained in:
+8
-3
@@ -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:
|
||||||
|
|||||||
@@ -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"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user