]> sourceware.org Git - glibc.git/commitdiff
Record TTL also for DNS PTR queries (bug 18513)
authorAndreas Schwab <schwab@suse.de>
Mon, 8 Jun 2015 13:21:18 +0000 (15:21 +0200)
committerAndreas Schwab <schwab@suse.de>
Mon, 22 Jun 2015 12:04:34 +0000 (14:04 +0200)
This allows nscd to manage proper TTL for GETHOSTBYADDR[v6] requests.

ChangeLog
NEWS
resolv/nss_dns/dns-host.c

index 1150ec5d2ebaa15e205b3b8ea76a5d7de96fe21a..6442ca66efaf26558e6af7e6ee93c5eb055f8a84 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2015-06-22  Andreas Schwab  <schwab@suse.de>
+
+       [BZ #18513]
+       * resolv/nss_dns/dns-host.c (getanswer_r): Record TTL also for
+       PTR queries.
+
 2015-06-22  Leonhard Holz  <leonhard.holz@web.de>
 
        * string/strcoll_l.c (STRCOLL): Remove unnecessary memset.
diff --git a/NEWS b/NEWS
index 90495e8e874c223b677a170c5fec43b5767609b9..6f8cb0628dd51ce6a050a2b85d091e45ce3f2a61 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -21,9 +21,9 @@ Version 2.22
   18197, 18206, 18210, 18211, 18217, 18220, 18221, 18234, 18244, 18247,
   18287, 18319, 18324, 18333, 18346, 18397, 18409, 18410, 18412, 18418,
   18422, 18434, 18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496,
-  18497, 18498, 18507, 18512, 18519, 18520, 18522, 18527, 18528, 18529,
-  18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545,
-  18546, 18547, 18553, 18558, 18569.
+  18497, 18498, 18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528,
+  18529, 18530, 18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544,
+  18545, 18546, 18547, 18553, 18558, 18569.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
index d8c55791591750567f00e616e5d7b378dec934a0..357ac046932b4e991cd729363a97a3522313b7cc 100644 (file)
@@ -800,6 +800,10 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
 
       if (qtype == T_PTR && type == T_CNAME)
        {
+         /* A CNAME could also have a TTL entry.  */
+         if (ttlp != NULL && ttl < *ttlp)
+             *ttlp = ttl;
+
          n = dn_expand (answer->buf, end_of_message, cp, tbuf, sizeof tbuf);
          if (__glibc_unlikely (n < 0 || res_dnok (tbuf) == 0))
            {
@@ -863,6 +867,8 @@ getanswer_r (const querybuf *answer, int anslen, const char *qname, int qtype,
              ++had_error;
              break;
            }
+         if (ttlp != NULL && ttl < *ttlp)
+             *ttlp = ttl;
          /* bind would put multiple PTR records as aliases, but we don't do
             that.  */
          result->h_name = bp;
This page took 0.486721 seconds and 5 git commands to generate.