Commit 91eb0c89 authored by Chen Wei's avatar Chen Wei

fix dns lookup not restricted to special server

google and other gfwed domains shall use special server only. There is a bug
that let dnsmasq use default server for special domain lookup.
parent 5821105b
...@@ -311,6 +311,12 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr, ...@@ -311,6 +311,12 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
if (!(start = forward->sentto->next)) if (!(start = forward->sentto->next))
start = daemon->servers; /* at end of list, recycle */ start = daemon->servers; /* at end of list, recycle */
header->id = htons(forward->new_id); header->id = htons(forward->new_id);
if (forward->sentto->flags & SERV_HAS_DOMAIN)
fwdserv = forward->sentto;
else
fwdserv = forward->sentto->next;
} }
else else
{ {
...@@ -425,13 +431,10 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr, ...@@ -425,13 +431,10 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
for (fwdserv = daemon->servers; for (fwdserv = daemon->servers;
fwdserv != NULL; fwdserv = fwdserv->next) fwdserv != NULL; fwdserv = fwdserv->next)
{ {
//TODO figure out how to skip unresponsive server
if (!(fwdserv->flags & (SERV_HAS_DOMAIN | SERV_LOOP))) if (!(fwdserv->flags & (SERV_HAS_DOMAIN | SERV_LOOP)))
{
break; break;
} }
} }
}
if (fwdserv->sfd) if (fwdserv->sfd)
fd = fwdserv->sfd->fd; fd = fwdserv->sfd->fd;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment