/
patch-00be8b39e240934e404533deda08cbae2aae25a8
46 lines (38 loc) · 1.43 KB
/
patch-00be8b39e240934e404533deda08cbae2aae25a8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
From 00be8b39e240934e404533deda08cbae2aae25a8 Mon Sep 17 00:00:00 2001
From: Simon Kelley <simon@thekelleys.org.uk>
Date: Wed, 15 Mar 2023 21:12:55 +0000
Subject: [PATCH] Fix DHCPv6 "use multicast" response which previously failed
to set the message type correctly.
MIME-Version: 1.0
Content-Type: text/plain; charset=utf8
Content-Transfer-Encoding: 8bit
Thanks to Petr MenÅ¡Ãk for spotting the problem.
---
src/rfc3315.c | 6 ++++--
1 file 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;
--
2.20.1