diff options
author | Hans Dedecker <dedeckeh@gmail.com> | 2013-10-23 12:04:38 +0000 |
---|---|---|
committer | Steven Barth <steven@midlink.org> | 2013-10-23 19:22:01 +0200 |
commit | d77cbea57d1b7dd9c25421bb13c90e65bb54a6bc (patch) | |
tree | 2febdfc6997d785c8b233433f7d20d298f459f9a /src/ra.c | |
parent | 0c764d13ba834d6be53c4312007584613dec3a1e (diff) | |
download | odhcp6c-d77cbea57d1b7dd9c25421bb13c90e65bb54a6bc.tar.gz |
odhpc6c: status code support in reply
The patch implements support for status code handling in
reply messages as described in RFC3313 paragraph 18.1.8.
The client will
*log the status codes returned by the client
*send a request if no binding status code is returned for
a given IA
*send further renew/rebind if the IA was not present in
the reply
*terminate message exchange when no prefix/no address
status code is returned in reponse to a request
*terminate message exchange when unspec fail status code
is returned
*calculate t1/t2/t3 when all IA's have been processed and
based on recorded t1/t2/valid timer values per IA
Without this patch I have seen issues with request messages
send without any IA_PD/IA_NA and t1/t2/t3 timer values which
were not correct. These changes have been tested intensive
against an ISC DHCPv6 server
Signed-off-by: Hans Dedecker <hans.dedecker@gmail.com>
Diffstat (limited to 'src/ra.c')
-rw-r--r-- | src/ra.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -123,7 +123,7 @@ bool ra_process(void) bool changed = false; uint8_t buf[1500], cmsg_buf[128]; struct nd_router_advert *adv = (struct nd_router_advert*)buf; - struct odhcp6c_entry entry = {IN6ADDR_ANY_INIT, 0, 0, IN6ADDR_ANY_INIT, 0, 0, 0}; + struct odhcp6c_entry entry = {IN6ADDR_ANY_INIT, 0, 0, IN6ADDR_ANY_INIT, 0, 0, 0, 0, 0}; const struct in6_addr any = IN6ADDR_ANY_INIT; if (IN6_IS_ADDR_UNSPECIFIED(&lladdr)) { |