odhcpd: use proper struct msghdr initializers to fix build error on musl
[project/odhcpd.git] / src / dhcpv6-ia.c
index 6ece528..d103ecb 100644 (file)
@@ -800,9 +800,6 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status,
 #endif
                                        datalen += entrlen + 4;
                                } else {
 #endif
                                        datalen += entrlen + 4;
                                } else {
-                                       if (!a->accept_reconf && iface->managed < RELAYD_MANAGED_NO_AFLAG)
-                                               prefix_pref = 1;
-
                                        struct dhcpv6_ia_addr n = {
                                                .type = htons(DHCPV6_OPT_IA_ADDR),
                                                .len = htons(sizeof(n) - 4),
                                        struct dhcpv6_ia_addr n = {
                                                .type = htons(DHCPV6_OPT_IA_ADDR),
                                                .len = htons(sizeof(n) - 4),
@@ -813,6 +810,10 @@ static size_t append_reply(uint8_t *buf, size_t buflen, uint16_t status,
                                        n.addr.s6_addr32[3] = htonl(a->assigned);
                                        size_t entrlen = sizeof(n) - 4;
 
                                        n.addr.s6_addr32[3] = htonl(a->assigned);
                                        size_t entrlen = sizeof(n) - 4;
 
+                                       if (!a->accept_reconf && iface->managed < RELAYD_MANAGED_NO_AFLAG &&
+                                                       addrs[i].prefix == 64)
+                                               n.preferred = htonl(1);
+
 #ifdef DHCPV6_OPT_PREFIX_CLASS
                                        if (iface->ia_addr[i].has_class) {
                                                entrlen += sizeof(pclass);
 #ifdef DHCPV6_OPT_PREFIX_CLASS
                                        if (iface->ia_addr[i].has_class) {
                                                entrlen += sizeof(pclass);