Commit 864f1a33 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

- Nico Stappenbelt reported that when processing domain and search lines in

  the resolv.conf file, the first entry encountered is processed and used as
  the search list. According to the manual pages for both Linux, Solaris and
  Tru64, the last entry of either a domain or a search field is used.
parent f42b1024
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
  Changelog for the c-ares project

* May 11
- Nico Stappenbelt reported that when processing domain and search lines in
  the resolv.conf file, the first entry encountered is processed and used as
  the search list. According to the manual pages for both Linux, Solaris and
  Tru64, the last entry of either a domain or a search field is used.

  This is now adjusted in the code

Version 1.2.0 (April 13, 2004)

* April 2, 2004
+10 −2
Original line number Diff line number Diff line
@@ -437,11 +437,11 @@ DhcpNameServer
      return (errno == ENOENT) ? ARES_SUCCESS : ARES_EFILE;
    while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS)
    {
      if ((p = try_config(line, "domain")) && channel->ndomains == -1)
      if ((p = try_config(line, "domain")))
        status = config_domain(channel, p);
      else if ((p = try_config(line, "lookup")) && !channel->lookups)
        status = config_lookup(channel, p);
      else if ((p = try_config(line, "search")) && channel->ndomains == -1)
      else if ((p = try_config(line, "search")))
        status = set_search(channel, p);
      else if ((p = try_config(line, "nameserver")) && channel->nservers == -1)
        status = config_nameserver(&servers, &nservers, p);
@@ -702,6 +702,14 @@ static int set_search(ares_channel channel, const char *str)
  int n;
  const char *p, *q;

  if(channel->ndomains != -1) {
    /* if we already have some domains present, free them first */
    for(n=0; n < channel->ndomains; n++)
      free(channel->domains[n]);
    free(channel->domains);
    channel->ndomains = -1;
  }

  /* Count the domains given. */
  n = 0;
  p = str;