dirmngr: Strip root zone suffix from libdns SRV results.
authorWerner Koch <wk@gnupg.org>
Sun, 8 Jan 2017 17:00:38 +0000 (18:00 +0100)
committerWerner Koch <wk@gnupg.org>
Sun, 8 Jan 2017 17:00:38 +0000 (18:00 +0100)
* dirmngr/dns-stuff.c (getsrv_libdns): Strip trailing dot from the
target.
--

See-also: b200e636ab20d2aa93d9f71f3789db5a04af0a56
Signed-off-by: Werner Koch <wk@gnupg.org>
dirmngr/dns-stuff.c

index e32e1e3..028b065 100644 (file)
@@ -1591,6 +1591,10 @@ getsrv_libdns (const char *name, struct srventry **list, unsigned int *r_count)
       srv->weight   = dsrv.weight;
       srv->port     = dsrv.port;
       mem2str (srv->target, dsrv.target, sizeof srv->target);
+      /* Libdns appends the root zone part which is problematic for
+       * most other functions - strip it.  */
+      if (*srv->target && (srv->target)[strlen (srv->target)-1] == '.')
+        (srv->target)[strlen (srv->target)-1] = 0;
     }
 
   *r_count = srvcount;