SonarCloud: clean up more codesmells (#584)

pull/585/head
Brad House 1 year ago committed by GitHub
parent d62627e8b3
commit b1c508445e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 110
      src/lib/ares__addrinfo2hostent.c
  2. 28
      src/lib/ares__get_hostent.c
  3. 2
      src/lib/ares__htable.c
  4. 2
      src/lib/ares__htable.h
  5. 6
      src/lib/ares__htable_asvp.c
  6. 6
      src/lib/ares__htable_asvp.h
  7. 5
      src/lib/ares__htable_stvp.c
  8. 5
      src/lib/ares__htable_stvp.h
  9. 16
      src/lib/ares__parse_into_addrinfo.c
  10. 4
      src/lib/ares__readaddrinfo.c
  11. 4
      src/lib/ares__slist.c
  12. 4
      src/lib/ares__slist.h
  13. 17
      src/lib/ares_dns_record.c
  14. 43
      src/lib/ares_dns_record.h
  15. 2
      src/lib/ares_fds.c
  16. 2
      src/lib/ares_free_hostent.c
  17. 18
      src/lib/ares_getaddrinfo.c
  18. 26
      src/lib/ares_gethostbyaddr.c
  19. 8
      src/lib/ares_gethostbyname.c
  20. 46
      src/lib/ares_getnameinfo.c
  21. 2
      src/lib/ares_getsock.c
  22. 4
      src/lib/ares_parse_caa_reply.c
  23. 3
      src/lib/ares_parse_mx_reply.c
  24. 3
      src/lib/ares_parse_naptr_reply.c
  25. 3
      src/lib/ares_parse_ns_reply.c
  26. 5
      src/lib/ares_parse_ptr_reply.c
  27. 3
      src/lib/ares_parse_soa_reply.c
  28. 3
      src/lib/ares_parse_srv_reply.c
  29. 3
      src/lib/ares_parse_txt_reply.c
  30. 3
      src/lib/ares_parse_uri_reply.c

@ -111,16 +111,16 @@ ares_status_t ares__addrinfo2hostent(const struct ares_addrinfo *ai, int family,
memset(aliases, 0, (naliases + 1) * sizeof(char *));
if (naliases) {
next_cname = ai->cnames;
while (next_cname) {
if (next_cname->alias) {
aliases[alias] = ares_strdup(next_cname->alias);
if (!aliases[alias]) {
goto enomem;
}
alias++;
for (next_cname = ai->cnames; next_cname != NULL;
next_cname = next_cname->next) {
if (next_cname->alias == NULL) {
continue;
}
next_cname = next_cname->next;
aliases[alias] = ares_strdup(next_cname->alias);
if (!aliases[alias]) {
goto enomem;
}
alias++;
}
}
@ -162,24 +162,24 @@ ares_status_t ares__addrinfo2hostent(const struct ares_addrinfo *ai, int family,
i = 0;
next = ai->nodes;
while (next) {
if (next->ai_family == family) {
(*host)->h_addr_list[i] = addrs + (i * (size_t)(*host)->h_length);
if (family == AF_INET6) {
memcpy((*host)->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)
->sin6_addr),
(size_t)(*host)->h_length);
}
if (family == AF_INET) {
memcpy(
(*host)->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
(size_t)(*host)->h_length);
}
++i;
for (next = ai->nodes; next != NULL; next = next->ai_next) {
if (next->ai_family != family) {
continue;
}
(*host)->h_addr_list[i] = addrs + (i * (size_t)(*host)->h_length);
if (family == AF_INET6) {
memcpy(
(*host)->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr),
(size_t)(*host)->h_length);
}
next = next->ai_next;
if (family == AF_INET) {
memcpy(
(*host)->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
(size_t)(*host)->h_length);
}
++i;
}
if (i == 0) {
@ -241,36 +241,38 @@ ares_status_t ares__addrinfo2addrttl(const struct ares_addrinfo *ai, int family,
next_cname = next_cname->next;
}
next = ai->nodes;
while (next) {
if (next->ai_family == family) {
if (*naddrttls < req_naddrttls) {
if (family == AF_INET6) {
if (next->ai_ttl > cname_ttl) {
addr6ttls[*naddrttls].ttl = cname_ttl;
} else {
addr6ttls[*naddrttls].ttl = next->ai_ttl;
}
memcpy(&addr6ttls[*naddrttls].ip6addr,
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)
->sin6_addr),
sizeof(struct ares_in6_addr));
} else {
if (next->ai_ttl > cname_ttl) {
addrttls[*naddrttls].ttl = cname_ttl;
} else {
addrttls[*naddrttls].ttl = next->ai_ttl;
}
memcpy(
&addrttls[*naddrttls].ipaddr,
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
sizeof(struct in_addr));
}
(*naddrttls)++;
for (next = ai->nodes; next != NULL; next = next->ai_next) {
if (next->ai_family != family) {
continue;
}
if (*naddrttls >= req_naddrttls) {
break;
}
if (family == AF_INET6) {
if (next->ai_ttl > cname_ttl) {
addr6ttls[*naddrttls].ttl = cname_ttl;
} else {
addr6ttls[*naddrttls].ttl = next->ai_ttl;
}
memcpy(
&addr6ttls[*naddrttls].ip6addr,
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr),
sizeof(struct ares_in6_addr));
} else {
if (next->ai_ttl > cname_ttl) {
addrttls[*naddrttls].ttl = cname_ttl;
} else {
addrttls[*naddrttls].ttl = next->ai_ttl;
}
memcpy(
&addrttls[*naddrttls].ipaddr,
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
sizeof(struct in_addr));
}
next = next->ai_next;
(*naddrttls)++;
}
return ARES_SUCCESS;

@ -47,8 +47,8 @@ ares_status_t ares__get_hostent(FILE *fp, int family, struct hostent **host)
char *p;
char *q;
char **alias;
char *txtaddr;
char *txthost;
const char *txtaddr;
const char *txthost;
char *txtalias;
ares_status_t status;
size_t addrlen;
@ -161,19 +161,17 @@ ares_status_t ares__get_hostent(FILE *fp, int family, struct hostent **host)
addrlen = 0;
addr.family = AF_UNSPEC;
addr.addrV4.s_addr = INADDR_NONE;
if ((family == AF_INET) || (family == AF_UNSPEC)) {
if (ares_inet_pton(AF_INET, txtaddr, &addr.addrV4) > 0) {
/* Actual network address family and length. */
addr.family = AF_INET;
addrlen = sizeof(addr.addrV4);
}
if ((family == AF_INET || family == AF_UNSPEC) &&
ares_inet_pton(AF_INET, txtaddr, &addr.addrV4) > 0) {
/* Actual network address family and length. */
addr.family = AF_INET;
addrlen = sizeof(addr.addrV4);
}
if ((family == AF_INET6) || ((family == AF_UNSPEC) && (!addrlen))) {
if (ares_inet_pton(AF_INET6, txtaddr, &addr.addrV6) > 0) {
/* Actual network address family and length. */
addr.family = AF_INET6;
addrlen = sizeof(addr.addrV6);
}
if ((family == AF_INET6 || (family == AF_UNSPEC && !addrlen)) &&
ares_inet_pton(AF_INET6, txtaddr, &addr.addrV6) > 0) {
/* Actual network address family and length. */
addr.family = AF_INET6;
addrlen = sizeof(addr.addrV6);
}
if (!addrlen) {
/* Ignore line if invalid address string for the requested family. */
@ -268,7 +266,7 @@ ares_status_t ares__get_hostent(FILE *fp, int family, struct hostent **host)
/* Memory allocation failure; clean up. */
if (hostent) {
if (hostent->h_name) {
ares_free((char *)hostent->h_name);
ares_free(hostent->h_name);
}
if (hostent->h_aliases) {
for (alias = hostent->h_aliases; *alias; alias++) {

@ -259,7 +259,7 @@ ares_bool_t ares__htable_insert(ares__htable_t *htable, void *bucket)
return ARES_TRUE;
}
void *ares__htable_get(ares__htable_t *htable, const void *key)
void *ares__htable_get(const ares__htable_t *htable, const void *key)
{
unsigned int idx;

@ -125,7 +125,7 @@ ares_bool_t ares__htable_insert(ares__htable_t *htable, void *bucket);
* \param[in] key Pointer to key to use for comparison.
* \return matching bucket, or NULL if not found.
*/
void *ares__htable_get(ares__htable_t *htable, const void *key);
void *ares__htable_get(const ares__htable_t *htable, const void *key);
/*! Remove bucket from hashtable by key
*

@ -143,7 +143,7 @@ fail:
return ARES_FALSE;
}
ares_bool_t ares__htable_asvp_get(ares__htable_asvp_t *htable,
ares_bool_t ares__htable_asvp_get(const ares__htable_asvp_t *htable,
ares_socket_t key, void **val)
{
ares__htable_asvp_bucket_t *bucket = NULL;
@ -167,8 +167,8 @@ ares_bool_t ares__htable_asvp_get(ares__htable_asvp_t *htable,
return ARES_TRUE;
}
void *ares__htable_asvp_get_direct(ares__htable_asvp_t *htable,
ares_socket_t key)
void *ares__htable_asvp_get_direct(const ares__htable_asvp_t *htable,
ares_socket_t key)
{
void *val = NULL;
ares__htable_asvp_get(htable, key, &val);

@ -85,7 +85,7 @@ ares_bool_t ares__htable_asvp_insert(ares__htable_asvp_t *htable,
* \param[out] val Optional. Pointer to store value.
* \return ARES_TRUE on success, ARES_FALSE on failure
*/
ares_bool_t ares__htable_asvp_get(ares__htable_asvp_t *htable,
ares_bool_t ares__htable_asvp_get(const ares__htable_asvp_t *htable,
ares_socket_t key, void **val);
/*! Retrieve value from hashtable directly as return value. Caveat to this
@ -96,8 +96,8 @@ ares_bool_t ares__htable_asvp_get(ares__htable_asvp_t *htable,
* \param[in] key key to use to search
* \return value associated with key in hashtable or NULL
*/
void *ares__htable_asvp_get_direct(ares__htable_asvp_t *htable,
ares_socket_t key);
void *ares__htable_asvp_get_direct(const ares__htable_asvp_t *htable,
ares_socket_t key);
/*! Remove a value from the hashtable by key
*

@ -143,7 +143,7 @@ fail:
return ARES_FALSE;
}
ares_bool_t ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key,
ares_bool_t ares__htable_stvp_get(const ares__htable_stvp_t *htable, size_t key,
void **val)
{
ares__htable_stvp_bucket_t *bucket = NULL;
@ -167,7 +167,8 @@ ares_bool_t ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key,
return ARES_TRUE;
}
void *ares__htable_stvp_get_direct(ares__htable_stvp_t *htable, size_t key)
void *ares__htable_stvp_get_direct(const ares__htable_stvp_t *htable,
size_t key)
{
void *val = NULL;
ares__htable_stvp_get(htable, key, &val);

@ -83,7 +83,7 @@ ares_bool_t ares__htable_stvp_insert(ares__htable_stvp_t *htable, size_t key,
* \param[out] val Optional. Pointer to store value.
* \return ARES_TRUE on success, ARES_FALSE on failure
*/
ares_bool_t ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key,
ares_bool_t ares__htable_stvp_get(const ares__htable_stvp_t *htable, size_t key,
void **val);
/*! Retrieve value from hashtable directly as return value. Caveat to this
@ -94,7 +94,8 @@ ares_bool_t ares__htable_stvp_get(ares__htable_stvp_t *htable, size_t key,
* \param[in] key key to use to search
* \return value associated with key in hashtable or NULL
*/
void *ares__htable_stvp_get_direct(ares__htable_stvp_t *htable, size_t key);
void *ares__htable_stvp_get_direct(const ares__htable_stvp_t *htable,
size_t key);
/*! Remove a value from the hashtable by key
*

@ -81,9 +81,10 @@ ares_status_t ares__parse_into_addrinfo(const unsigned char *abuf, size_t alen,
}
for (i = 0; i < ancount; i++) {
const char *rname = NULL;
ares_dns_rec_type_t rtype;
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const char *rname = NULL;
ares_dns_rec_type_t rtype;
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (ares_dns_rr_get_class(rr) != ARES_CLASS_IN) {
continue;
@ -143,11 +144,10 @@ ares_status_t ares__parse_into_addrinfo(const unsigned char *abuf, size_t alen,
}
}
if (!got_a && !got_aaaa) {
if (!got_cname || (got_cname && cname_only_is_enodata)) {
status = ARES_ENODATA;
goto done;
}
if (!got_a && !got_aaaa &&
(!got_cname || (got_cname && cname_only_is_enodata))) {
status = ARES_ENODATA;
goto done;
}
/* save the hostname as ai->name */

@ -50,8 +50,8 @@ ares_status_t ares__readaddrinfo(FILE *fp, const char *name,
char *line = NULL;
char *p;
char *q;
char *txtaddr;
char *txthost;
const char *txtaddr;
const char *txthost;
char *txtalias;
char *aliases[MAX_ALIASES];
size_t i;

@ -368,12 +368,12 @@ ares__slist_t *ares__slist_node_parent(ares__slist_node_t *node)
return node->parent;
}
void *ares__slist_first_val(ares__slist_t *list)
void *ares__slist_first_val(const ares__slist_t *list)
{
return ares__slist_node_val(ares__slist_node_first(list));
}
void *ares__slist_last_val(ares__slist_t *list)
void *ares__slist_last_val(const ares__slist_t *list)
{
return ares__slist_node_val(ares__slist_node_last(list));
}

@ -165,14 +165,14 @@ ares__slist_t *ares__slist_node_parent(ares__slist_node_t *node);
* \param[in] list Initialized SkipList Object
* \return user defined node value or NULL if none
*/
void *ares__slist_first_val(ares__slist_t *list);
void *ares__slist_first_val(const ares__slist_t *list);
/*! Fetch last Node Value in SkipList
*
* \param[in] list Initialized SkipList Object
* \return user defined node value or NULL if none
*/
void *ares__slist_last_val(ares__slist_t *list);
void *ares__slist_last_val(const ares__slist_t *list);
/*! Take back ownership of Node Value in SkipList, remove from SkipList.
*

@ -225,7 +225,8 @@ size_t ares_dns_record_query_cnt(const ares_dns_record_t *dnsrec)
return dnsrec->qdcount;
}
ares_status_t ares_dns_record_query_add(ares_dns_record_t *dnsrec, char *name,
ares_status_t ares_dns_record_query_add(ares_dns_record_t *dnsrec,
const char *name,
ares_dns_rec_type_t qtype,
ares_dns_class_t qclass)
{
@ -265,8 +266,8 @@ ares_status_t ares_dns_record_query_add(ares_dns_record_t *dnsrec, char *name,
return ARES_SUCCESS;
}
ares_status_t ares_dns_record_query_get(ares_dns_record_t *dnsrec, size_t idx,
const char **name,
ares_status_t ares_dns_record_query_get(const ares_dns_record_t *dnsrec,
size_t idx, const char **name,
ares_dns_rec_type_t *qtype,
ares_dns_class_t *qclass)
{
@ -355,7 +356,7 @@ ares_status_t ares_dns_record_rr_prealloc(ares_dns_record_t *dnsrec,
ares_status_t ares_dns_record_rr_add(ares_dns_rr_t **rr_out,
ares_dns_record_t *dnsrec,
ares_dns_section_t sect, char *name,
ares_dns_section_t sect, const char *name,
ares_dns_rec_type_t type,
ares_dns_class_t rclass, unsigned int ttl)
{
@ -755,7 +756,7 @@ const char *ares_dns_rr_get_str(const ares_dns_rr_t *dns_rr,
}
ares_status_t ares_dns_rr_set_addr(ares_dns_rr_t *dns_rr, ares_dns_rr_key_t key,
struct in_addr *addr)
const struct in_addr *addr)
{
struct in_addr *a;
@ -772,9 +773,9 @@ ares_status_t ares_dns_rr_set_addr(ares_dns_rr_t *dns_rr, ares_dns_rr_key_t key,
return ARES_SUCCESS;
}
ares_status_t ares_dns_rr_set_addr6(ares_dns_rr_t *dns_rr,
ares_dns_rr_key_t key,
struct ares_in6_addr *addr)
ares_status_t ares_dns_rr_set_addr6(ares_dns_rr_t *dns_rr,
ares_dns_rr_key_t key,
const struct ares_in6_addr *addr)
{
struct ares_in6_addr *a;

@ -304,16 +304,17 @@ ares_dns_rcode_t ares_dns_record_get_rcode(const ares_dns_record_t *dnsrec);
* \param[in] qclass Class of query (typically ARES_CLASS_IN)
* \return ARES_SUCCESS on success
*/
ares_status_t ares_dns_record_query_add(ares_dns_record_t *dnsrec, char *name,
ares_dns_rec_type_t qtype,
ares_dns_class_t qclass);
ares_status_t ares_dns_record_query_add(ares_dns_record_t *dnsrec,
const char *name,
ares_dns_rec_type_t qtype,
ares_dns_class_t qclass);
/*! Get the count of queries in the DNS Record
*
* \param[in] dnsrec Initialized record object
* \return count of queries
*/
size_t ares_dns_record_query_cnt(const ares_dns_record_t *dnsrec);
size_t ares_dns_record_query_cnt(const ares_dns_record_t *dnsrec);
/*! Get the data about the query at the provided index.
*
@ -324,10 +325,10 @@ size_t ares_dns_record_query_cnt(const ares_dns_record_t *dnsrec);
* \param[out] qclass Optional. Returns class, may pass NULL.
* \return ARES_SUCCESS on success
*/
ares_status_t ares_dns_record_query_get(ares_dns_record_t *dnsrec, size_t idx,
const char **name,
ares_dns_rec_type_t *qtype,
ares_dns_class_t *qclass);
ares_status_t ares_dns_record_query_get(const ares_dns_record_t *dnsrec,
size_t idx, const char **name,
ares_dns_rec_type_t *qtype,
ares_dns_class_t *qclass);
/*! Get the count of Resource Records in the provided section
*
@ -335,8 +336,8 @@ ares_status_t ares_dns_record_query_get(ares_dns_record_t *dnsrec, size_t idx,
* \param[in] sect Section. ARES_SECTION_ANSWER is most used.
* \return count of resource records.
*/
size_t ares_dns_record_rr_cnt(const ares_dns_record_t *dnsrec,
ares_dns_section_t sect);
size_t ares_dns_record_rr_cnt(const ares_dns_record_t *dnsrec,
ares_dns_section_t sect);
/*! Add a Resource Record to the DNS Record.
@ -352,11 +353,11 @@ size_t ares_dns_record_rr_cnt(const ares_dns_record_t *dnsrec,
* \param[in] ttl TTL
* \return ARES_SUCCESS on success
*/
ares_status_t ares_dns_record_rr_add(ares_dns_rr_t **rr_out,
ares_dns_record_t *dnsrec,
ares_dns_section_t sect, char *name,
ares_dns_rec_type_t type,
ares_dns_class_t rclass, unsigned int ttl);
ares_status_t ares_dns_record_rr_add(ares_dns_rr_t **rr_out,
ares_dns_record_t *dnsrec,
ares_dns_section_t sect, const char *name,
ares_dns_rec_type_t type,
ares_dns_class_t rclass, unsigned int ttl);
/*! Fetch a resource record based on the section and index.
*
@ -365,8 +366,8 @@ ares_status_t ares_dns_record_rr_add(ares_dns_rr_t **rr_out,
* \param[in] idx Index of resource record in section
* \param NULL on misuse, otherwise a pointer to the resource record
*/
ares_dns_rr_t *ares_dns_record_rr_get(ares_dns_record_t *dnsrec,
ares_dns_section_t sect, size_t idx);
ares_dns_rr_t *ares_dns_record_rr_get(ares_dns_record_t *dnsrec,
ares_dns_section_t sect, size_t idx);
/*! Retrieve a list of Resource Record keys that can be set or retrieved for
@ -430,7 +431,7 @@ unsigned int ares_dns_rr_get_ttl(const ares_dns_rr_t *rr);
* \return ARES_SUCCESS on success
*/
ares_status_t ares_dns_rr_set_addr(ares_dns_rr_t *dns_rr, ares_dns_rr_key_t key,
struct in_addr *addr);
const struct in_addr *addr);
/*! Set ipv6 address data type for specified resource record and key. Can
* only be used on keys with datatype ARES_DATATYPE_INADDR6
@ -440,9 +441,9 @@ ares_status_t ares_dns_rr_set_addr(ares_dns_rr_t *dns_rr, ares_dns_rr_key_t key,
* \param[in] addr Pointer to ipv6 address to use.
* \return ARES_SUCCESS on success
*/
ares_status_t ares_dns_rr_set_addr6(ares_dns_rr_t *dns_rr,
ares_dns_rr_key_t key,
struct ares_in6_addr *addr);
ares_status_t ares_dns_rr_set_addr6(ares_dns_rr_t *dns_rr,
ares_dns_rr_key_t key,
const struct ares_in6_addr *addr);
/*! Set string data for specified resource record and key. Can
* only be used on keys with datatype ARES_DATATYPE_STR

@ -46,7 +46,7 @@ int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds)
for (node = ares__llist_node_first(server->connections); node != NULL;
node = ares__llist_node_next(node)) {
struct server_connection *conn = ares__llist_node_val(node);
const struct server_connection *conn = ares__llist_node_val(node);
/* We only need to register interest in UDP sockets if we have
* outstanding queries.

@ -42,7 +42,7 @@ void ares_free_hostent(struct hostent *host)
return;
}
ares_free((char *)(host->h_name));
ares_free(host->h_name);
for (p = host->h_aliases; p && *p; p++) {
ares_free(*p);
}

@ -532,12 +532,10 @@ static void next_lookup(struct host_query *hquery, ares_status_t status)
case 'b':
/* RFC6761 section 6.3 #3 says "Name resolution APIs SHOULD NOT send
* queries for localhost names to their configured caching DNS
* server(s)." */
if (!is_localhost(hquery->name)) {
/* DNS lookup */
if (next_dns_lookup(hquery)) {
break;
}
* server(s)."
* Otherwise, DNS lookup. */
if (!is_localhost(hquery->name) && next_dns_lookup(hquery)) {
break;
}
hquery->remaining_lookups++;
@ -813,9 +811,9 @@ static ares_bool_t next_dns_lookup(struct host_query *hquery)
static ares_bool_t as_is_first(const struct host_query *hquery)
{
char *p;
size_t ndots = 0;
size_t nname = ares_strlen(hquery->name);
const char *p;
size_t ndots = 0;
size_t nname = ares_strlen(hquery->name);
for (p = hquery->name; p && *p; p++) {
if (*p == '.') {
ndots++;
@ -825,7 +823,7 @@ static ares_bool_t as_is_first(const struct host_query *hquery)
/* prevent ARES_EBADNAME for valid FQDN, where ndots < channel->ndots */
return ARES_TRUE;
}
return ndots >= (size_t)hquery->channel->ndots ? ARES_TRUE : ARES_FALSE;
return ndots >= hquery->channel->ndots ? ARES_TRUE : ARES_FALSE;
}
static ares_bool_t as_is_only(const struct host_query *hquery)

@ -64,7 +64,8 @@ static void addr_callback(void *arg, int status, int timeouts,
unsigned char *abuf, int alen);
static void end_aquery(struct addr_query *aquery, ares_status_t status,
struct hostent *host);
static ares_status_t file_lookup(struct ares_addr *addr, struct hostent **host);
static ares_status_t file_lookup(const struct ares_addr *addr,
struct hostent **host);
static void ptr_rr_name(char *name, size_t name_size,
const struct ares_addr *addr);
@ -129,6 +130,8 @@ static void next_lookup(struct addr_query *aquery)
return;
}
break;
default:
break;
}
}
end_aquery(aquery, ARES_ENOTFOUND, NULL);
@ -170,7 +173,8 @@ static void end_aquery(struct addr_query *aquery, ares_status_t status,
ares_free(aquery);
}
static ares_status_t file_lookup(struct ares_addr *addr, struct hostent **host)
static ares_status_t file_lookup(const struct ares_addr *addr,
struct hostent **host)
{
FILE *fp;
ares_status_t status;
@ -232,15 +236,13 @@ static ares_status_t file_lookup(struct ares_addr *addr, struct hostent **host)
ares_free_hostent(*host);
continue;
}
if (addr->family == AF_INET) {
if (memcmp((*host)->h_addr, &addr->addrV4, sizeof(addr->addrV4)) == 0) {
break;
}
} else if (addr->family == AF_INET6) {
if (memcmp((*host)->h_addr, addr->addrV6._S6_un._S6_u8,
sizeof(addr->addrV6)) == 0) {
break;
}
if (addr->family == AF_INET &&
memcmp((*host)->h_addr, &addr->addrV4, sizeof(addr->addrV4)) == 0) {
break;
} else if (addr->family == AF_INET6 &&
memcmp((*host)->h_addr, addr->addrV6._S6_un._S6_u8,
sizeof(addr->addrV6)) == 0) {
break;
}
ares_free_hostent(*host);
}
@ -265,7 +267,7 @@ static void ptr_rr_name(char *name, size_t name_size,
unsigned long a4 = laddr & 0xFFUL;
snprintf(name, name_size, "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1);
} else {
unsigned char *bytes = (unsigned char *)&addr->addrV6;
const unsigned char *bytes = (const unsigned char *)&addr->addrV6;
/* There are too many arguments to do this in one line using
* minimally C89-compliant compilers */
snprintf(name, name_size,

@ -49,9 +49,9 @@
#include "ares_platform.h"
#include "ares_private.h"
static void sort_addresses(struct hostent *host,
static void sort_addresses(const struct hostent *host,
const struct apattern *sortlist, size_t nsort);
static void sort6_addresses(struct hostent *host,
static void sort6_addresses(const struct hostent *host,
const struct apattern *sortlist, size_t nsort);
static size_t get_address_index(const struct in_addr *addr,
const struct apattern *sortlist, size_t nsort);
@ -124,7 +124,7 @@ void ares_gethostbyname(ares_channel channel, const char *name, int family,
ghbn_arg);
}
static void sort_addresses(struct hostent *host,
static void sort_addresses(const struct hostent *host,
const struct apattern *sortlist, size_t nsort)
{
struct in_addr a1;
@ -181,7 +181,7 @@ static size_t get_address_index(const struct in_addr *addr,
return i;
}
static void sort6_addresses(struct hostent *host,
static void sort6_addresses(const struct hostent *host,
const struct apattern *sortlist, size_t nsort)
{
struct ares_in6_addr a1;

@ -78,8 +78,8 @@ static void nameinfo_callback(void *arg, int status, int timeouts,
static char *lookup_service(unsigned short port, unsigned int flags, char *buf,
size_t buflen);
#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int scopeid,
char *buf, size_t buflen);
static void append_scopeid(const struct sockaddr_in6 *addr6,
unsigned int scopeid, char *buf, size_t buflen);
#endif
STATIC_TESTABLE char *ares_striendstr(const char *s1, const char *s2);
@ -87,11 +87,11 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
ares_socklen_t salen, int flags_int,
ares_nameinfo_callback callback, void *arg)
{
struct sockaddr_in *addr = NULL;
struct sockaddr_in6 *addr6 = NULL;
struct nameinfo_query *niquery;
unsigned short port = 0;
unsigned int flags = (unsigned int)flags_int;
const struct sockaddr_in *addr = NULL;
struct sockaddr_in6 *addr6 = NULL;
struct nameinfo_query *niquery;
unsigned short port = 0;
unsigned int flags = (unsigned int)flags_int;
/* Validate socket address family and length */
if ((sa->sa_family == AF_INET) && (salen == sizeof(struct sockaddr_in))) {
@ -113,7 +113,8 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
/* All they want is a service, no need for DNS */
if ((flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST)) {
char buf[33], *service;
char buf[33];
char *service;
service =
lookup_service((unsigned short)(port & 0xffff), flags, buf, sizeof(buf));
@ -122,9 +123,9 @@ void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
}
/* They want a host lookup */
if ((flags & ARES_NI_LOOKUPHOST)) {
if (flags & ARES_NI_LOOKUPHOST) {
/* A numeric host can be handled without DNS */
if ((flags & ARES_NI_NUMERICHOST)) {
if (flags & ARES_NI_NUMERICHOST) {
char ipbuf[IPBUFSIZ];
char srvbuf[33];
char *service = NULL;
@ -206,8 +207,8 @@ static void nameinfo_callback(void *arg, int status, int timeouts,
*/
#ifdef HAVE_GETHOSTNAME
if (niquery->flags & ARES_NI_NOFQDN) {
char buf[255];
char *domain;
char buf[255];
const char *domain;
gethostname(buf, 255);
if ((domain = strchr(buf, '.')) != NULL) {
char *end = ares_striendstr(host->h_name, domain);
@ -218,7 +219,7 @@ static void nameinfo_callback(void *arg, int status, int timeouts,
}
#endif
niquery->callback(niquery->arg, ARES_SUCCESS, (int)niquery->timeouts,
(char *)(host->h_name), service);
host->h_name, service);
ares_free(niquery);
return;
}
@ -261,9 +262,9 @@ static char *lookup_service(unsigned short port, unsigned int flags, char *buf,
#ifdef HAVE_GETSERVBYPORT_R
struct servent se;
#endif
char tmpbuf[4096];
char *name;
size_t name_len;
char tmpbuf[4096];
const char *name;
size_t name_len;
if (port) {
if (flags & ARES_NI_NUMERICSERV) {
@ -329,7 +330,7 @@ static char *lookup_service(unsigned short port, unsigned int flags, char *buf,
}
#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
static void append_scopeid(const struct sockaddr_in6 *addr6, unsigned int flags,
char *buf, size_t buflen)
{
# ifdef HAVE_IF_INDEXTONAME
@ -350,8 +351,7 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%lu",
(unsigned long)addr6->sin6_scope_id);
} else {
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%u",
(unsigned int)addr6->sin6_scope_id);
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%u", addr6->sin6_scope_id);
}
} else {
if (if_indextoname(addr6->sin6_scope_id, &tmpbuf[1]) == NULL) {
@ -359,8 +359,7 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%lu",
(unsigned long)addr6->sin6_scope_id);
} else {
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%u",
(unsigned int)addr6->sin6_scope_id);
snprintf(&tmpbuf[1], sizeof(tmpbuf) - 1, "%u", addr6->sin6_scope_id);
}
}
}
@ -406,7 +405,7 @@ STATIC_TESTABLE char *ares_striendstr(const char *s1, const char *s2)
/* Jump to the end of s1 minus the length of s2 */
c1_begin = s1 + s1_len - s2_len;
c1 = (const char *)c1_begin;
c1 = c1_begin;
c2 = s2;
while (c2 < s2 + s2_len) {
lo1 = TOLOWER(*c1);
@ -418,7 +417,8 @@ STATIC_TESTABLE char *ares_striendstr(const char *s1, const char *s2)
c2++;
}
}
return (char *)c1_begin;
/* Cast off const */
return (char *)((size_t)c1_begin);
}
ares_bool_t ares__is_onion_domain(const char *name)

@ -51,7 +51,7 @@ int ares_getsock(ares_channel channel, ares_socket_t *socks,
for (node = ares__llist_node_first(server->connections); node != NULL;
node = ares__llist_node_next(node)) {
struct server_connection *conn = ares__llist_node_val(node);
const struct server_connection *conn = ares__llist_node_val(node);
if (sockindex >= (size_t)numsocks || sockindex >= ARES_GETSOCK_MAXNUM) {
break;

@ -61,7 +61,9 @@ int ares_parse_caa_reply(const unsigned char *abuf, int alen_int,
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
const unsigned char *ptr;
size_t ptr_len;
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */
status = ARES_EBADRESP;

@ -59,7 +59,8 @@ int ares_parse_mx_reply(const unsigned char *abuf, int alen_int,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -58,7 +58,8 @@ int ares_parse_naptr_reply(const unsigned char *abuf, int alen_int,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -108,7 +108,8 @@ int ares_parse_ns_reply(const unsigned char *abuf, int alen_int,
memset(hostent->h_aliases, 0, (ancount + 1) * sizeof(*hostent->h_aliases));
for (i = 0; i < ancount; i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -113,8 +113,9 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen_int,
/* Cycle through answers */
for (i = 0; i < ancount; i++) {
const char *rname = NULL;
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const char *rname = NULL;
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -57,7 +57,8 @@ int ares_parse_soa_reply(const unsigned char *abuf, int alen_int,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -59,7 +59,8 @@ int ares_parse_srv_reply(const unsigned char *abuf, int alen_int,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

@ -52,7 +52,8 @@ static int ares__parse_txt_reply(const unsigned char *abuf, size_t alen,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const unsigned char *ptr;
size_t ptr_len;

@ -59,7 +59,8 @@ int ares_parse_uri_reply(const unsigned char *abuf, int alen_int,
}
for (i = 0; i < ares_dns_record_rr_cnt(dnsrec, ARES_SECTION_ANSWER); i++) {
ares_dns_rr_t *rr = ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
const ares_dns_rr_t *rr =
ares_dns_record_rr_get(dnsrec, ARES_SECTION_ANSWER, i);
if (rr == NULL) {
/* Shouldn't be possible */

Loading…
Cancel
Save