- 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
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:
} _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;
};
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,
.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
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
.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.
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;
}
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;
.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
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
.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.
#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;
}
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;