[Dnsmasq-discuss] [PATCH] Optimize inserting records into server list.
hev
r at hev.cc
Sun Sep 19 10:10:44 UTC 2021
Hi,
On Sun, Sep 19, 2021 at 5:55 PM hev <r at hev.cc> wrote:
>
> Signed-off-by: hev <r at hev.cc>
> ---
> src/domain-match.c | 11 ++---------
> 1 file changed, 2 insertions(+), 9 deletions(-)
>
> diff --git a/src/domain-match.c b/src/domain-match.c
> index 8f29621..43862f8 100644
> --- a/src/domain-match.c
> +++ b/src/domain-match.c
> @@ -673,18 +673,11 @@ int add_update_server(int flags,
> }
> else
> {
> - struct server *s;
> -
> memset(serv, 0, sizeof(struct server));
>
> /* Add to the end of the chain, for order */
> - if (!daemon->servers)
> - daemon->servers = serv;
> - else
> - {
> - for (s = daemon->servers; s->next; s = s->next);
> - s->next = serv;
> - }
> + serv->next = daemon->servers;
> + daemon->servers = serv;
I'm not sure to keep the original order here, if it is, add a tail
pointer for server list to speed up the insertion.
BTW, It's best to use hash table or rbtree for servers.
Regards,
hev
More information about the Dnsmasq-discuss
mailing list