@@ -85,11 +85,12 @@ struct addrinfo_sort_elem
85
85
#define ARES_IN6_IS_ADDR_6BONE (a ) \
86
86
(((a)->s6_addr[0] == 0x3f) && ((a)->s6_addr[1] == 0xfe))
87
87
88
+
88
89
static int get_scope (const struct sockaddr * addr )
89
90
{
90
91
if (addr -> sa_family == AF_INET6 )
91
92
{
92
- const struct sockaddr_in6 * addr6 = (const struct sockaddr_in6 * ) addr ;
93
+ const struct sockaddr_in6 * addr6 = CARES_INADDR_CAST (const struct sockaddr_in6 * , addr ) ;
93
94
if (IN6_IS_ADDR_MULTICAST (& addr6 -> sin6_addr ))
94
95
{
95
96
return ARES_IPV6_ADDR_MC_SCOPE (& addr6 -> sin6_addr );
@@ -114,7 +115,7 @@ static int get_scope(const struct sockaddr *addr)
114
115
}
115
116
else if (addr -> sa_family == AF_INET )
116
117
{
117
- const struct sockaddr_in * addr4 = (const struct sockaddr_in * ) addr ;
118
+ const struct sockaddr_in * addr4 = CARES_INADDR_CAST (const struct sockaddr_in * , addr ) ;
118
119
unsigned long int na = ntohl (addr4 -> sin_addr .s_addr );
119
120
if (ARES_IN_LOOPBACK (na ) || /* 127.0.0.0/8 */
120
121
(na & 0xffff0000 ) == 0xa9fe0000 ) /* 169.254.0.0/16 */
@@ -149,7 +150,7 @@ static int get_label(const struct sockaddr *addr)
149
150
}
150
151
else if (addr -> sa_family == AF_INET6 )
151
152
{
152
- const struct sockaddr_in6 * addr6 = (const struct sockaddr_in6 * ) addr ;
153
+ const struct sockaddr_in6 * addr6 = CARES_INADDR_CAST (const struct sockaddr_in6 * , addr ) ;
153
154
if (IN6_IS_ADDR_LOOPBACK (& addr6 -> sin6_addr ))
154
155
{
155
156
return 0 ;
@@ -210,7 +211,7 @@ static int get_precedence(const struct sockaddr *addr)
210
211
}
211
212
else if (addr -> sa_family == AF_INET6 )
212
213
{
213
- const struct sockaddr_in6 * addr6 = (const struct sockaddr_in6 * ) addr ;
214
+ const struct sockaddr_in6 * addr6 = CARES_INADDR_CAST (const struct sockaddr_in6 * , addr ) ;
214
215
if (IN6_IS_ADDR_LOOPBACK (& addr6 -> sin6_addr ))
215
216
{
216
217
return 50 ;
@@ -353,10 +354,10 @@ static int rfc6724_compare(const void *ptr1, const void *ptr2)
353
354
{
354
355
const struct sockaddr_in6 * a1_src = & a1 -> src_addr .sa6 ;
355
356
const struct sockaddr_in6 * a1_dst =
356
- (const struct sockaddr_in6 * ) a1 -> ai -> ai_addr ;
357
+ CARES_INADDR_CAST (const struct sockaddr_in6 * , a1 -> ai -> ai_addr ) ;
357
358
const struct sockaddr_in6 * a2_src = & a2 -> src_addr .sa6 ;
358
359
const struct sockaddr_in6 * a2_dst =
359
- (const struct sockaddr_in6 * ) a2 -> ai -> ai_addr ;
360
+ CARES_INADDR_CAST (const struct sockaddr_in6 * , a2 -> ai -> ai_addr ) ;
360
361
prefixlen1 = common_prefix_len (& a1_src -> sin6_addr , & a1_dst -> sin6_addr );
361
362
prefixlen2 = common_prefix_len (& a2_src -> sin6_addr , & a2_dst -> sin6_addr );
362
363
if (prefixlen1 != prefixlen2 )
@@ -384,7 +385,7 @@ static int find_src_addr(ares_channel channel,
384
385
const struct sockaddr * addr ,
385
386
struct sockaddr * src_addr )
386
387
{
387
- int sock ;
388
+ ares_socket_t sock ;
388
389
int ret ;
389
390
ares_socklen_t len ;
390
391
@@ -402,7 +403,7 @@ static int find_src_addr(ares_channel channel,
402
403
}
403
404
404
405
sock = ares__open_socket (channel , addr -> sa_family , SOCK_DGRAM , IPPROTO_UDP );
405
- if (sock == -1 )
406
+ if (sock == ARES_SOCKET_BAD )
406
407
{
407
408
if (errno == EAFNOSUPPORT )
408
409
{
@@ -426,7 +427,7 @@ static int find_src_addr(ares_channel channel,
426
427
return 0 ;
427
428
}
428
429
429
- if (getsockname (sock , src_addr , & len ) == -1 )
430
+ if (getsockname (sock , src_addr , & len ) != 0 )
430
431
{
431
432
ares__close_socket (channel , sock );
432
433
return -1 ;
@@ -491,4 +492,4 @@ int ares__sortaddrinfo(ares_channel channel, struct ares_addrinfo_node *list_sen
491
492
492
493
ares_free (elems );
493
494
return ARES_SUCCESS ;
494
- }
495
+ }
0 commit comments