mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 18:28:25 +00:00
Optimize inserting records into server list.
Signed-off-by: hev <r@hev.cc>
This commit is contained in:
@@ -1105,7 +1105,7 @@ extern struct daemon {
|
|||||||
char *lease_change_command;
|
char *lease_change_command;
|
||||||
struct iname *if_names, *if_addrs, *if_except, *dhcp_except, *auth_peers, *tftp_interfaces;
|
struct iname *if_names, *if_addrs, *if_except, *dhcp_except, *auth_peers, *tftp_interfaces;
|
||||||
struct bogus_addr *bogus_addr, *ignore_addr;
|
struct bogus_addr *bogus_addr, *ignore_addr;
|
||||||
struct server *servers, *local_domains, **serverarray, *no_rebind;
|
struct server *servers, *servers_tail, *local_domains, **serverarray, *no_rebind;
|
||||||
int server_has_wildcard;
|
int server_has_wildcard;
|
||||||
int serverarraysz, serverarrayhwm;
|
int serverarraysz, serverarrayhwm;
|
||||||
struct ipsets *ipsets;
|
struct ipsets *ipsets;
|
||||||
|
|||||||
@@ -576,7 +576,10 @@ void cleanup_servers(void)
|
|||||||
free(serv);
|
free(serv);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
up = &serv->next;
|
{
|
||||||
|
up = &serv->next;
|
||||||
|
daemon->servers_tail = serv;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = tmp)
|
for (serv = daemon->local_domains, up = &daemon->local_domains; serv; serv = tmp)
|
||||||
@@ -673,18 +676,14 @@ int add_update_server(int flags,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
struct server *s;
|
|
||||||
|
|
||||||
memset(serv, 0, sizeof(struct server));
|
memset(serv, 0, sizeof(struct server));
|
||||||
|
|
||||||
/* Add to the end of the chain, for order */
|
/* Add to the end of the chain, for order */
|
||||||
if (!daemon->servers)
|
if (daemon->servers_tail)
|
||||||
daemon->servers = serv;
|
daemon->servers_tail->next = serv;
|
||||||
else
|
else
|
||||||
{
|
daemon->servers = serv;
|
||||||
for (s = daemon->servers; s->next; s = s->next);
|
daemon->servers_tail = serv;
|
||||||
s->next = serv;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef HAVE_LOOP
|
#ifdef HAVE_LOOP
|
||||||
serv->uid = rand32();
|
serv->uid = rand32();
|
||||||
|
|||||||
Reference in New Issue
Block a user