From 35d4c57051574b33fd9b120932b385be35bd1f65 Mon Sep 17 00:00:00 2001
From: Yang Tse <yangsita@gmail.com>
Date: Mon, 23 Nov 2009 01:24:17 +0000
Subject: [PATCH] - Jakub Hrozek renamed addrttl and addr6ttl structs to
 ares_addrttl and   ares_addr6ttl in order to prevent name space pollution,
 along with   necessary changes to code base and man pages.This change does
 not break   ABI, there is no need to recompile existing applications. But
 existing   applications using these structs with the old name will need
 source code   adjustments when recompiled using c-ares 1.6.1.

---
 ares/CHANGES                 |  7 +++++++
 ares/RELEASE-NOTES           |  1 +
 ares/ares.h                  | 13 +++++--------
 ares/ares_parse_a_reply.3    |  6 +++---
 ares/ares_parse_a_reply.c    |  4 ++--
 ares/ares_parse_aaaa_reply.3 |  6 +++---
 ares/ares_parse_aaaa_reply.c |  4 ++--
 7 files changed, 23 insertions(+), 18 deletions(-)

diff --git a/ares/CHANGES b/ares/CHANGES
index 6d2a4f19d5..cfcd2e7b3b 100644
--- a/ares/CHANGES
+++ b/ares/CHANGES
@@ -4,6 +4,13 @@
 - Jakub Hrozek fixed more function prototypes in man pages to sync them
   with the ones declared in ares.h
 
+- Jakub Hrozek renamed addrttl and addr6ttl structs to ares_addrttl and
+  ares_addr6ttl in order to prevent name space pollution, along with
+  necessary changes to code base and man pages.This change does not break
+  ABI, there is no need to recompile existing applications. But existing
+  applications using these structs with the old name will need source code
+  adjustments when recompiled using c-ares 1.6.1.
+
 * November 20, 2009 (Yang Tse)
 - Fixed several function prototypes in man pages that were out of sync
   with the ones declared in ares.h
diff --git a/ares/RELEASE-NOTES b/ares/RELEASE-NOTES
index 1ecc176224..0de52de0d5 100644
--- a/ares/RELEASE-NOTES
+++ b/ares/RELEASE-NOTES
@@ -13,6 +13,7 @@ Changed:
  o added ares_parse_srv_reply()
  o added ares_parse_txt_reply()
  o new --enable-symbol-hiding configure option
+ o addrttl and addr6ttl structs renamed to ares_addrttl and ares_addr6ttl
 
 Fixed:
 
diff --git a/ares/ares.h b/ares/ares.h
index e79debddbb..3e45a90f25 100644
--- a/ares/ares.h
+++ b/ares/ares.h
@@ -416,15 +416,12 @@ struct ares_in6_addr {
   } _S6_un;
 };
 
-/*
- * TODO: the structs 'addrttl' and 'addr6ttl' really should get their names
- * prefixed with ares_ to keep them in our own "name space".
- */
-struct addrttl {
+struct ares_addrttl {
   struct in_addr ipaddr;
   int            ttl;
 };
-struct addr6ttl {
+
+struct ares_addr6ttl {
   struct ares_in6_addr ip6addr;
   int             ttl;
 };
@@ -454,13 +451,13 @@ struct ares_txt_reply {
 CARES_EXTERN int ares_parse_a_reply(const unsigned char *abuf,
                                     int alen,
                                     struct hostent **host,
-                                    struct addrttl *addrttls,
+                                    struct ares_addrttl *addrttls,
                                     int *naddrttls);
 
 CARES_EXTERN int ares_parse_aaaa_reply(const unsigned char *abuf,
                                        int alen,
                                        struct hostent **host,
-                                       struct addr6ttl *addrttls,
+                                       struct ares_addr6ttl *addrttls,
                                        int *naddrttls);
 
 CARES_EXTERN int ares_parse_ptr_reply(const unsigned char *abuf,
diff --git a/ares/ares_parse_a_reply.3 b/ares/ares_parse_a_reply.3
index 10c06501cd..f7debb9123 100644
--- a/ares/ares_parse_a_reply.3
+++ b/ares/ares_parse_a_reply.3
@@ -23,7 +23,7 @@ ares_parse_a_reply \- Parse a reply to a DNS query of type A
 .PP
 .B int ares_parse_a_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP,
 .B 	struct hostent **\fIhost\fP,
-.B      struct addrttl *\fIaddrttls\fB, int *\fInaddrttls\fB);
+.B      struct ares_addrttl *\fIaddrttls\fB, int *\fInaddrttls\fB);
 .fi
 .SH DESCRIPTION
 The
@@ -31,7 +31,7 @@ The
 function parses the response to a query of type A into a
 .BR "struct hostent"
 and/or an array of
-.BR "struct addrttls" . 
+.BR "struct ares_addrttls" . 
 The parameters
 .I abuf
 and
@@ -51,7 +51,7 @@ and
 .IR naddrttls
 are both nonnull,
 then up to *naddrttls
-.BR "struct addrttl"
+.BR "struct ares_addrttl"
 records are stored in the array pointed to by addrttls,
 and then *naddrttls is set to the number of records so stored.
 Note that the memory for these records is supplied by the caller.
diff --git a/ares/ares_parse_a_reply.c b/ares/ares_parse_a_reply.c
index 3d59c8aa4c..a6ed7dd2f0 100644
--- a/ares/ares_parse_a_reply.c
+++ b/ares/ares_parse_a_reply.c
@@ -54,7 +54,7 @@
 
 int ares_parse_a_reply(const unsigned char *abuf, int alen,
                        struct hostent **host,
-                       struct addrttl *addrttls, int *naddrttls)
+                       struct ares_addrttl *addrttls, int *naddrttls)
 {
   unsigned int qdcount, ancount;
   int status, i, rr_type, rr_class, rr_len, rr_ttl, naddrs;
@@ -157,7 +157,7 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
             }
           if (naddrs < max_addr_ttls)
             {
-              struct addrttl * const at = &addrttls[naddrs];
+              struct ares_addrttl * const at = &addrttls[naddrs];
               if (aptr + sizeof(struct in_addr) > abuf + alen)
               {
                 status = ARES_EBADRESP;
diff --git a/ares/ares_parse_aaaa_reply.3 b/ares/ares_parse_aaaa_reply.3
index f25cb93729..0f77c03236 100644
--- a/ares/ares_parse_aaaa_reply.3
+++ b/ares/ares_parse_aaaa_reply.3
@@ -23,7 +23,7 @@ ares_parse_aaaa_reply \- Parse a reply to a DNS query of type AAAA
 .PP
 .B int ares_parse_aaaa_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP,
 .B 	struct hostent **\fIhost\fP,         
-.B      struct addr6ttl *\fIaddrttls\fB, int *\fInaddrttls\fB);
+.B      struct ares_addr6ttl *\fIaddrttls\fB, int *\fInaddrttls\fB);
 .fi
 .SH DESCRIPTION
 The
@@ -31,7 +31,7 @@ The
 function parses the response to a query of type AAAA into a
 .BR "struct hostent"
 and/or an array of
-.BR "struct addr6ttl" . 
+.BR "struct ares_addr6ttl" . 
 The parameters
 .I abuf
 and
@@ -51,7 +51,7 @@ and
 .IR naddrttls
 are both nonnull,
 then up to *naddrttls
-.BR "struct addr6ttl"
+.BR "struct ares_addr6ttl"
 records are stored in the array pointed to by addrttls,
 and then *naddrttls is set to the number of records so stored.
 Note that the memory for these records is supplied by the caller.
diff --git a/ares/ares_parse_aaaa_reply.c b/ares/ares_parse_aaaa_reply.c
index 58c6b8ab84..6d54667554 100644
--- a/ares/ares_parse_aaaa_reply.c
+++ b/ares/ares_parse_aaaa_reply.c
@@ -55,7 +55,7 @@
 #include "ares_private.h"
 
 int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
-                          struct hostent **host, struct addr6ttl *addrttls,
+                          struct hostent **host, struct ares_addr6ttl *addrttls,
                           int *naddrttls)
 {
   unsigned int qdcount, ancount;
@@ -157,7 +157,7 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
             }
           if (naddrs < max_addr_ttls)
             {
-              struct addr6ttl * const at = &addrttls[naddrs];
+              struct ares_addr6ttl * const at = &addrttls[naddrs];
               if (aptr + sizeof(struct in6_addr) > abuf + alen)
               {
                 status = ARES_EBADRESP;
-- 
GitLab