summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlya Ponetaev <iponetaev@dlink.ru>2014-09-13 20:52:27 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2014-09-13 20:52:27 +0100
commit7f68f82146beb3014597d7ed488d2e5e7b3615cb (patch)
tree7c6f9737cb7d7a28ca7142e9152cd8b56c8371b8
parent85900a246cbd1f8959658c7bc376add07460f20c (diff)
downloaddnsmasq-7f68f82146beb3014597d7ed488d2e5e7b3615cb.tar.gz
DHCPv6 REBIND messages don't need a server-id.
-rw-r--r--src/rfc3315.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/rfc3315.c b/src/rfc3315.c
index 364277d..9826003 100644
--- a/src/rfc3315.c
+++ b/src/rfc3315.c
@@ -313,8 +313,8 @@ static int dhcp6_no_relay(struct state *state, int msg_type, void *inbuff, size_
else if (msg_type != DHCP6IREQ)
return 0;
- /* server-id must match except for SOLICIT and CONFIRM messages */
- if (msg_type != DHCP6SOLICIT && msg_type != DHCP6CONFIRM && msg_type != DHCP6IREQ &&
+ /* server-id must match except for SOLICIT, CONFIRM and REBIND messages */
+ if (msg_type != DHCP6SOLICIT && msg_type != DHCP6CONFIRM && msg_type != DHCP6IREQ && msg_type != DHCP6REBIND &&
(!(opt = opt6_find(state->packet_options, state->end, OPTION6_SERVER_ID, 1)) ||
opt6_len(opt) != daemon->duid_len ||
memcmp(opt6_ptr(opt, 0), daemon->duid, daemon->duid_len) != 0))