Skip to content

Commit

Permalink
mdns: fix clang warning
Browse files Browse the repository at this point in the history
error: cast from 'struct sockaddr *' to 'struct sockaddr_in *' increases required alignment from 2 to 4 [-Werror,-Wcast-align]
  • Loading branch information
MathieuDuponchelle authored and jbkempf committed Oct 15, 2019
1 parent 0de4839 commit 1c90e81
Showing 1 changed file with 18 additions and 7 deletions.
25 changes: 18 additions & 7 deletions src/mdns.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,20 @@ extern void rr_free(struct rr_entry *);
static bool
mdns_is_interface_valuable(struct ifaddrs* ifa)
{
return ifa->ifa_addr != NULL && (ifa->ifa_addr->sa_family == AF_INET ||
ifa->ifa_addr->sa_family == AF_INET6) &&
struct sockaddr_in6 saddr;

if (ifa->ifa_addr == NULL)
return false;

memcpy(&saddr, ifa->ifa_addr, sizeof(saddr));

return (ifa->ifa_addr->sa_family == AF_INET ||
ifa->ifa_addr->sa_family == AF_INET6) &&
(ifa->ifa_flags & IFF_LOOPBACK) == 0 &&
(ifa->ifa_flags & IFF_UP) != 0 &&
(ifa->ifa_flags & IFF_RUNNING) != 0 &&
((ifa->ifa_addr->sa_family == AF_INET6 &&
((struct sockaddr_in6*)(ifa->ifa_addr))->sin6_scope_id == 0) ||
saddr.sin6_scope_id == 0) ||
ifa->ifa_addr->sa_family == AF_INET);
}

Expand Down Expand Up @@ -132,12 +139,16 @@ mdns_list_interfaces(multicast_if** pp_intfs, struct mdns_ip **pp_mdns_ips, size
continue;
memcpy(intfs, c->ifa_addr, sizeof(*intfs));
if (ai_family == AF_INET) {
struct sockaddr_in *addr_in = (struct sockaddr_in *)c->ifa_addr;
memcpy(&(*mdns_ips).ipv4.addr, &addr_in->sin_addr, sizeof(struct in_addr));
struct sockaddr_in saddr;

memcpy(&saddr, c->ifa_addr, sizeof(saddr));
memcpy(&(*mdns_ips).ipv4.addr, &saddr.sin_addr, sizeof(struct in_addr));
}
else {
struct sockaddr_in6 *addr_in = (struct sockaddr_in6 *)c->ifa_addr;
memcpy(&(*mdns_ips).ipv6.addr, &addr_in->sin6_addr, sizeof(struct in6_addr));
struct sockaddr_in6 saddr;

memcpy(&saddr, c->ifa_addr, sizeof(saddr));
memcpy(&(*mdns_ips).ipv6.addr, &saddr.sin6_addr, sizeof(struct in6_addr));
}
mdns_ips++;
intfs++;
Expand Down

0 comments on commit 1c90e81

Please sign in to comment.