projects
/
oweals
/
odhcpd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
3ebfad0
)
derive ipv6 static lease from ipv4 if no hostid is given
author
Steven Barth
<steven@midlink.org>
Fri, 3 Jan 2014 11:51:49 +0000
(12:51 +0100)
committer
Steven Barth
<steven@midlink.org>
Fri, 3 Jan 2014 11:51:49 +0000
(12:51 +0100)
src/dhcpv6-ia.c
patch
|
blob
|
history
diff --git
a/src/dhcpv6-ia.c
b/src/dhcpv6-ia.c
index 3d6b7868433870a1c7260efd9eba090bf7f51512..e5a7c0bfff4708b6a7acc3136c315ae76f229dc9 100644
(file)
--- a/
src/dhcpv6-ia.c
+++ b/
src/dhcpv6-ia.c
@@
-87,7
+87,12
@@
int setup_dhcpv6_ia_interface(struct interface *iface, bool enable)
a->clid_len = lease->duid_len;
a->length = 128;
- a->assigned = lease->hostid;
+ if (lease->hostid) {
+ a->assigned = lease->hostid;
+ } else {
+ uint32_t i4a = ntohl(lease->ipaddr.s_addr) & 0xff;
+ a->assigned = ((i4a / 100) << 8) | (((i4a % 100) / 10) << 4) | (i4a % 10);
+ }
odhcpd_urandom(a->key, sizeof(a->key));
memcpy(a->clid_data, lease->duid, a->clid_len);
memcpy(a->mac, lease->mac.ether_addr_octet, sizeof(a->mac));