mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-20 02:38:32 +00:00
Move repeated test pattern to server_test_type
Use static function to test similar checks in multiple places.
This commit is contained in:
committed by
Simon Kelley
parent
51f7bc924c
commit
e10a9239e1
@@ -284,6 +284,14 @@ static void server_send_log(struct server *server, int fd,
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
static int server_test_type(const struct server *server,
|
||||||
|
const char *domain, int type, int extratype)
|
||||||
|
{
|
||||||
|
return (type == (server->flags & (SERV_TYPE | extratype)) &&
|
||||||
|
(type != SERV_HAS_DOMAIN || hostname_isequal(domain, server->domain)) &&
|
||||||
|
!(server->flags & (SERV_LITERAL_ADDRESS | SERV_LOOP)));
|
||||||
|
}
|
||||||
|
|
||||||
static int forward_query(int udpfd, union mysockaddr *udpaddr,
|
static int forward_query(int udpfd, union mysockaddr *udpaddr,
|
||||||
union all_addr *dst_addr, unsigned int dst_iface,
|
union all_addr *dst_addr, unsigned int dst_iface,
|
||||||
struct dns_header *header, size_t plen, time_t now,
|
struct dns_header *header, size_t plen, time_t now,
|
||||||
@@ -538,9 +546,7 @@ static int forward_query(int udpfd, union mysockaddr *udpaddr,
|
|||||||
domain may be NULL, in which case server->domain
|
domain may be NULL, in which case server->domain
|
||||||
must be NULL also. */
|
must be NULL also. */
|
||||||
|
|
||||||
if (type == (start->flags & SERV_TYPE) &&
|
if (server_test_type(start, domain, type, 0) &&
|
||||||
(type != SERV_HAS_DOMAIN || hostname_isequal(domain, start->domain)) &&
|
|
||||||
!(start->flags & (SERV_LITERAL_ADDRESS | SERV_LOOP)) &&
|
|
||||||
((fd = allocate_rfd(&forward->rfds, start)) != -1))
|
((fd = allocate_rfd(&forward->rfds, start)) != -1))
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -1076,9 +1082,7 @@ void reply_query(int fd, time_t now)
|
|||||||
|
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
if (type == (start->flags & (SERV_TYPE | SERV_DO_DNSSEC)) &&
|
if (server_test_type(start, domain, type, 0))
|
||||||
((type & SERV_TYPE) != SERV_HAS_DOMAIN || hostname_isequal(domain, start->domain)) &&
|
|
||||||
!(start->flags & (SERV_LITERAL_ADDRESS | SERV_LOOP)))
|
|
||||||
{
|
{
|
||||||
new_server = start;
|
new_server = start;
|
||||||
if (server == start)
|
if (server == start)
|
||||||
@@ -1662,9 +1666,7 @@ static int tcp_key_recurse(time_t now, int status, struct dns_header *header, si
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (type != (server->flags & (SERV_TYPE | SERV_DO_DNSSEC)) ||
|
if (!server_test_type(server, domain, type, SERV_DO_DNSSEC))
|
||||||
(type == SERV_HAS_DOMAIN && !hostname_isequal(domain, server->domain)) ||
|
|
||||||
(server->flags & (SERV_LITERAL_ADDRESS | SERV_LOOP)))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
@@ -1976,9 +1978,7 @@ unsigned char *tcp_request(int confd, time_t now,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* server for wrong domain */
|
/* server for wrong domain */
|
||||||
if (type != (last_server->flags & SERV_TYPE) ||
|
if (!server_test_type(last_server, domain, type, 0))
|
||||||
(type == SERV_HAS_DOMAIN && !hostname_isequal(domain, last_server->domain)) ||
|
|
||||||
(last_server->flags & (SERV_LITERAL_ADDRESS | SERV_LOOP)))
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
|
|||||||
Reference in New Issue
Block a user