blob: 9f479e556d4a8f4bb1442d9c9a5185d2ffad8471 (
plain)
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
|
From: Jeremie Corbier <jeremie+debian@famille-corbier.net>
Date: Tue, 6 Apr 2010 15:51:12 +0200
Subject: Update ifid on interface restart
Interface ID may have changed between a stop and start.
[rogershimizu@gmail.com: slightly modified according to 0004-GNU-libc6-fixes.patch]
Signed-off-by: Jeremie Corbier <jeremie@famille-corbier.net>
Signed-off-by: Roger Shimizu <rogershimizu@gmail.com>
---
dhcp6c.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/dhcp6c.c b/dhcp6c.c
index c959b7c..1e897d2 100644
--- a/dhcp6c.c
+++ b/dhcp6c.c
@@ -768,6 +768,15 @@ client6_ifctl(ifname, command)
switch(command) {
case DHCP6CTL_COMMAND_START:
+ /*
+ * The ifid might have changed, so reset it before releasing the
+ * lease.
+ */
+ if (ifreset(ifp)) {
+ debug_printf(LOG_NOTICE, FNAME, "failed to reset %s",
+ ifname);
+ return (-1);
+ }
free_resources(ifp);
if (client6_start(ifp)) {
debug_printf(LOG_NOTICE, FNAME, "failed to restart %s",
|