mirror of
https://github.com/NLnetLabs/unbound.git
synced 2025-12-20 23:00:56 -05:00
Fixup strict aliasing warning on Fedora 11.
git-svn-id: file:///svn/unbound/trunk@1674 be551aaa-1e26-0410-a405-d3ace91eadb9
This commit is contained in:
parent
c1b2364d1d
commit
ef564b5a29
2 changed files with 19 additions and 16 deletions
|
|
@ -1,3 +1,6 @@
|
|||
19 June 2009: Wouter
|
||||
- Fixup strict aliasing warning in iter priv code.
|
||||
|
||||
18 June 2009: Wouter
|
||||
- Fix of message parse bug where (specifically) an NSEC and RRSIG
|
||||
in the wrong order would be parsed, but put wrongly into internal
|
||||
|
|
|
|||
|
|
@ -219,35 +219,35 @@ int priv_rrset_bad(struct iter_priv* priv, ldns_buffer* pkt,
|
|||
socklen_t len;
|
||||
struct rr_parse* rr;
|
||||
if(rrset->type == LDNS_RR_TYPE_A) {
|
||||
struct sockaddr_storage addr;
|
||||
struct sockaddr_in* sa = (struct sockaddr_in*)&addr;
|
||||
len = (socklen_t)sizeof(*sa);
|
||||
memset(sa, 0, len);
|
||||
sa->sin_family = AF_INET;
|
||||
sa->sin_port = (in_port_t)htons(UNBOUND_DNS_PORT);
|
||||
struct sockaddr_in sa;
|
||||
len = (socklen_t)sizeof(sa);
|
||||
memset(&sa, 0, len);
|
||||
sa.sin_family = AF_INET;
|
||||
sa.sin_port = (in_port_t)htons(UNBOUND_DNS_PORT);
|
||||
for(rr = rrset->rr_first; rr; rr = rr->next) {
|
||||
if(ldns_read_uint16(rr->ttl_data+4)
|
||||
!= INET_SIZE)
|
||||
continue;
|
||||
memmove(&sa->sin_addr, rr->ttl_data+4+2,
|
||||
memmove(&sa.sin_addr, rr->ttl_data+4+2,
|
||||
INET_SIZE);
|
||||
if(priv_lookup_addr(priv, &addr, len))
|
||||
if(priv_lookup_addr(priv,
|
||||
(struct sockaddr_storage*)&sa, len))
|
||||
return 1;
|
||||
}
|
||||
} else if(rrset->type == LDNS_RR_TYPE_AAAA) {
|
||||
struct sockaddr_storage addr;
|
||||
struct sockaddr_in6* sa = (struct sockaddr_in6*)&addr;
|
||||
len = (socklen_t)sizeof(*sa);
|
||||
memset(sa, 0, len);
|
||||
sa->sin6_family = AF_INET6;
|
||||
sa->sin6_port = (in_port_t)htons(UNBOUND_DNS_PORT);
|
||||
struct sockaddr_in6 sa;
|
||||
len = (socklen_t)sizeof(sa);
|
||||
memset(&sa, 0, len);
|
||||
sa.sin6_family = AF_INET6;
|
||||
sa.sin6_port = (in_port_t)htons(UNBOUND_DNS_PORT);
|
||||
for(rr = rrset->rr_first; rr; rr = rr->next) {
|
||||
if(ldns_read_uint16(rr->ttl_data+4)
|
||||
!= INET6_SIZE)
|
||||
continue;
|
||||
memmove(&sa->sin6_addr, rr->ttl_data+4+2,
|
||||
memmove(&sa.sin6_addr, rr->ttl_data+4+2,
|
||||
INET6_SIZE);
|
||||
if(priv_lookup_addr(priv, &addr, len))
|
||||
if(priv_lookup_addr(priv,
|
||||
(struct sockaddr_storage*)&sa, len))
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue