[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