]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
common/dns_resolve: use ns_name_uncompress instead of ns_name_ntop 9755/head
authorJohn Coyle <dx9err@gmail.com>
Wed, 15 Jun 2016 14:18:14 +0000 (10:18 -0400)
committerJohn Coyle <dx9err@gmail.com>
Thu, 23 Jun 2016 02:39:42 +0000 (22:39 -0400)
musl libc doesn't implement ns_name_ntop

Signed-off-by: John Coyle <dx9err@gmail.com>
src/common/dns_resolve.cc

index 741edd1596542683f8647997e122bd6e643acdcc..8ec4cf616dba34aa6f7fba84e6dff4ab709152e3 100644 (file)
@@ -350,15 +350,11 @@ int DNSResolver::resolve_srv_hosts(CephContext *cct, const string& service_name,
     string srv_domain = full_srv_name.substr(full_srv_name.find(protocol)
         + protocol.length());
 
-    const u_char *p = ns_rr_rdata(rr);
-    p += NS_INT16SZ; // priority
-    p += NS_INT16SZ; // weight
-
-    int port;
-    NS_GET16(port, p);
-
+    int port = ns_get16(ns_rr_rdata(rr) + (NS_INT16SZ * 2)); /* port = rdata + priority + weight */
     memset(full_target, 0, sizeof(full_target));
-    ns_name_ntop(p, full_target, NS_MAXDNAME);
+    ns_name_uncompress(ns_msg_base(handle), ns_msg_end(handle),
+                       ns_rr_rdata(rr) + (NS_INT16SZ * 3), /* comp_dn = rdata + priority + weight + port */
+                       full_target, sizeof(full_target));
 
     entity_addr_t addr;
 #ifdef HAVE_RES_NQUERY