blob: afae267dc431f5a5efb5e2da6ac507a44e369d0a [file] [log] [blame]
From 98b6b37cdb8bf28f97d2f8f7c5bf9646cbdc6ca8 Mon Sep 17 00:00:00 2001
From: Peter Qiu <zqiu@chromium.org>
Date: Thu, 25 Jun 2015 13:50:02 -0700
Subject: [PATCH] DHCPv6: Fix prefix delegation lease file name
For DHCPv6, daemon creates two lease files, one for non-temporary
address and the other for prefix delegation. Currently only non-temporary
address lease is using the lease identifier obtained from command line
for its file name, since dhcpcd is using a separate pseudo interface
for handling prefix delegation messages.
So fix it to have both lease files using the same identifier obtained
from the command line, with non-temporary address lease ends in ".lease6"
and prefix delegation ends is ".pd.lease6".
BUG=chromium:504223
TEST=Run network_Dhcpv6Basic test, verify there is two lease
file for the same network with one ends in ".lease6" and
the other ends in ".pd.lease6"
---
dhcp-common.c | 4 ++--
dhcp6.c | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dhcp-common.c b/dhcp-common.c
index 5aef054..d880312 100644
--- a/dhcp-common.c
+++ b/dhcp-common.c
@@ -750,11 +750,11 @@ dhcp_set_leasefile(char *leasefile, size_t len, int family,
if (strlen(ifp->lease_identifier) > 0) {
return snprintf(leasefile, len,
family == AF_INET ? LEASEFILE : LEASEFILE6,
- ifp->lease_identifier, "", "");
+ ifp->lease_identifier, "", extra);
}
return snprintf(leasefile, len,
family == AF_INET ? LEASEFILE : LEASEFILE6,
- ifp->name, "", "");
+ ifp->name, "", extra);
}
static size_t
diff --git a/dhcp6.c b/dhcp6.c
index 79b7cf1..238acd4 100644
--- a/dhcp6.c
+++ b/dhcp6.c
@@ -3207,6 +3207,14 @@ dhcp6_start1(void *arg)
ifp->name);
ifp->options->options |=
DHCPCD_NOPFXDLG;
+ /*
+ * Maintain the same lease identifier
+ * for the pseudo interface for
+ * obtaining prefix delegation.
+ */
+ strlcpy(ifn->lease_identifier,
+ ifp->lease_identifier,
+ sizeof(ifn->lease_identifier));
TAILQ_REMOVE(ifs, ifn, next);
TAILQ_INSERT_AFTER(ifp->ctx->ifaces,
ifp, ifn, next);
--
2.2.0.rc0.207.ga3a616c