28 lines
972 B
Plaintext
28 lines
972 B
Plaintext
Unbreak IPv6: sendmsg() to 0:0:ff02:: failed: Invalid argument
|
|
|
|
Index: avahi-core/socket.c
|
|
--- avahi-core/socket.c.orig
|
|
+++ avahi-core/socket.c
|
|
@@ -583,7 +583,7 @@ int avahi_send_dns_packet_ipv6(
|
|
struct msghdr msg;
|
|
struct iovec io;
|
|
struct cmsghdr *cmsg;
|
|
- size_t cmsg_data[(CMSG_SPACE(sizeof(struct in6_pktinfo))/sizeof(size_t)) + 1];
|
|
+ u_char cmsg_data[CMSG_SPACE(sizeof(struct in6_pktinfo))];
|
|
|
|
assert(fd >= 0);
|
|
assert(p);
|
|
@@ -611,10 +611,10 @@ int avahi_send_dns_packet_ipv6(
|
|
|
|
memset(cmsg_data, 0, sizeof(cmsg_data));
|
|
msg.msg_control = cmsg_data;
|
|
- msg.msg_controllen = CMSG_LEN(sizeof(struct in6_pktinfo));
|
|
+ msg.msg_controllen = CMSG_SPACE(sizeof(struct in6_pktinfo));
|
|
|
|
cmsg = CMSG_FIRSTHDR(&msg);
|
|
- cmsg->cmsg_len = msg.msg_controllen;
|
|
+ cmsg->cmsg_len = CMSG_LEN(sizeof(struct in6_pktinfo));
|
|
cmsg->cmsg_level = IPPROTO_IPV6;
|
|
cmsg->cmsg_type = IPV6_PKTINFO;
|
|
|