Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for forwarding to DNS on ports other than 53 #589

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions DNSServer.py
Original file line number Diff line number Diff line change
Expand Up @@ -320,6 +320,7 @@ def Run(cmdPipe, param):
cfg_IP_self = param['IP_self']
cfg_Port_DNSServer = param['CSettings'].getSetting('port_dnsserver')
cfg_IP_DNSMaster = param['CSettings'].getSetting('ip_dnsmaster')
cfg_Port_DNSMaster = param['CSettings'].getSetting('port_dnsmaster')

try:
DNS = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Expand Down Expand Up @@ -349,7 +350,7 @@ def Run(cmdPipe, param):
dprint(__name__, 0, "DNSServer: Serving DNS on {0} port {1}.", cfg_IP_self, cfg_Port_DNSServer)
dprint(__name__, 1, "intercept: {0} => {1}", intercept, cfg_IP_self)
dprint(__name__, 1, "restrain: {0} => 127.0.0.1", restrain)
dprint(__name__, 1, "forward other to higher level DNS: "+cfg_IP_DNSMaster)
dprint(__name__, 1, "forward other to higher level DNS {0} port {1}.", cfg_IP_DNSMaster, cfg_Port_DNSMaster)
dprint(__name__, 0, "***")

try:
Expand Down Expand Up @@ -415,7 +416,7 @@ def Run(cmdPipe, param):
dprint(__name__, 0, "Failed to create socket for DNS_forward): {0}", e)
continue

DNS_forward.sendto(data, (cfg_IP_DNSMaster, 53))
DNS_forward.sendto(data, (cfg_IP_DNSMaster, int(cfg_Port_DNSMaster)))
paket, addr_master = DNS_forward.recvfrom(1024)
DNS_forward.close()
# todo: double check: ID has to be the same!
Expand Down
3 changes: 2 additions & 1 deletion Settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
syntax: 'setting': ('default', 'regex to validate')

PMS: plexgdm, ip_pms, port_pms
DNS: ip_dnsmaster - IP of Router, ISP's DNS, ... [dflt: google public DNS]
DNS: ip_dnsmaster, port_dnsmaster - IP of Router, ISP's DNS, Other local DNS service, ... [dflt: google public DNS, port 53]
IP_self: enable_plexconnect_autodetect, ip_plexconnect - manual override for VPN usage
Intercept: Trailers-trailers.apple.com, WSJ-secure.marketwatch.com, iMovie-www.icloud.com
HTTP: port_webserver - override when using webserver + forwarding to PlexConnect
Expand All @@ -30,6 +30,7 @@
('enable_dnsserver', ('True', '((True)|(False))')),
('port_dnsserver' , ('53', '[0-9]{1,5}')),
('ip_dnsmaster' , ('8.8.8.8', '([0-9]{1,3}\.){3}[0-9]{1,3}')),
('port_dnsmaster' , ('53', '[0-9]{1,5}')),
('prevent_atv_update' , ('True', '((True)|(False))')),
('intercept_atv_icon' , ('True', '((True)|(False))')),
\
Expand Down