diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2023-03-15 21:12:55 +0000 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2023-03-15 21:12:55 +0000 |
commit | 00be8b39e240934e404533deda08cbae2aae25a8 (patch) | |
tree | 8e0bc439caf01a424684cc45d934689ce64347ea | |
parent | ef5aac95d4391fb1290fd76a3826b2851e589bbc (diff) | |
download | dnsmasq-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.c | 6 |
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; |