summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2023-03-15 21:12:55 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2023-03-15 21:12:55 +0000
commit00be8b39e240934e404533deda08cbae2aae25a8 (patch)
tree8e0bc439caf01a424684cc45d934689ce64347ea
parentef5aac95d4391fb1290fd76a3826b2851e589bbc (diff)
downloaddnsmasq-00be8b39e240934e404533deda08cbae2aae25a8.tar.gz
Fix DHCPv6 "use multicast" response which previously failed
to set the message type correctly. Thanks to Petr Menšík for spotting the problem.
-rw-r--r--src/rfc3315.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/rfc3315.c b/src/rfc3315.c
index 8754481..477df91 100644
--- a/src/rfc3315.c
+++ b/src/rfc3315.c
@@ -353,7 +353,7 @@ static int dhcp6_no_relay(struct state *state, int msg_type, unsigned char *inbu
put_opt6_short(DHCP6USEMULTI);
put_opt6_string("Use multicast");
end_opt6(o1);
- return 1;
+ goto done;
}
/* match vendor and user class options */
@@ -1277,12 +1277,14 @@ static int dhcp6_no_relay(struct state *state, int msg_type, unsigned char *inbu
}
+ log_tags(tagif, state->xid);
+
+ done:
/* Fill in the message type. Note that we store the offset,
not a direct pointer, since the packet memory may have been
reallocated. */
((unsigned char *)(daemon->outpacket.iov_base))[start_msg] = outmsgtype;
- log_tags(tagif, state->xid);
log6_opts(0, state->xid, daemon->outpacket.iov_base + start_opts, daemon->outpacket.iov_base + save_counter(-1));
return 1;