Hello community, here is the log from the commit of package dhcpv6 for openSUSE:Factory checked in at Mon Mar 15 00:44:31 CET 2010. -------- --- dhcpv6/dhcpv6.changes 2010-01-05 22:46:10.000000000 +0100 +++ /mounts/work_src_done/STABLE/dhcpv6/dhcpv6.changes 2010-03-12 18:37:04.000000000 +0100 @@ -1,0 +2,15 @@ +Mon Feb 22 11:01:31 CET 2010 - mt@suse.de + +- Fixed to search for released/invalid leases to remove in client + list and not in server hash when in client mode (bnc#524687). + +------------------------------------------------------------------- +Fri Feb 19 14:52:22 CET 2010 - mt@suse.de + +- Applied fix from git to make sure DUID time generation is since + 01-Jan-2000 (RFC 3315, 9.2) and to save dhcp6s DUID (bnc#524702). +- Fixed to write the MAC address into a DUID type1 instead of the + content of an uninitialized buffer (bnc#524702). +- Fixed confusing error messages about invalid address for -P/-R. + +------------------------------------------------------------------- calling whatdependson for head-i586 New: ---- dhcpv6-1.0.22-correct-DUID-time-generation-and-save-server-DUID.patch dhcpv6-1.0.22-correct-mac-address-in-DUID-type1-generation.patch dhcpv6-1.0.22-invalid-request-address-message.diff dhcpv6-1.0.22-remove-released-leases.bnc524687.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dhcpv6.spec ++++++ --- /var/tmp/diff_new_pack.fc62kE/_old 2010-03-15 00:43:58.000000000 +0100 +++ /var/tmp/diff_new_pack.fc62kE/_new 2010-03-15 00:43:58.000000000 +0100 @@ -26,13 +26,17 @@ Group: Productivity/Networking/System Summary: DHCP Client and Server for IPv6 Version: 1.0.22 -Release: 4 +Release: 5 Source0: %{name}-%{version}.tar.bz2 Patch1: %{name}-%{version}-destdir.patch Patch2: %{name}-%{version}-cmd.patch Patch3: %{name}-%{version}-netconfig.dif Patch4: dhcp6c-move_new_link-sles11beta3.patch Patch5: %{name}-%{version}-memleak-fix +Patch6: dhcpv6-1.0.22-correct-DUID-time-generation-and-save-server-DUID.patch +Patch7: dhcpv6-1.0.22-correct-mac-address-in-DUID-type1-generation.patch +Patch8: dhcpv6-1.0.22-invalid-request-address-message.diff +Patch9: dhcpv6-1.0.22-remove-released-leases.bnc524687.diff Provides: dhcp6 = 1.0.11 Obsoletes: dhcp6 <= 1.0.11 BuildRoot: %{_tmppath}/%{name}-%{version}-build @@ -104,6 +108,10 @@ %patch3 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p0 +%patch8 -p0 +%patch9 -p0 %build touch NEWS ++++++ dhcpv6-1.0.22-correct-DUID-time-generation-and-save-server-DUID.patch ++++++
From eacc7053019158c8193426a662ceaf3fbb02f057 Mon Sep 17 00:00:00 2001 From: David Cantrell
Date: Tue, 16 Sep 2008 09:49:28 -1000 Subject: [PATCH] Correct DUID time generation and save server DUID.
Make sure DUID time generation is since 01-Jan-2008 (the IPv6 epoch, I guess). We call save_duid() from dhcp6c, but we were not for dhcp6s, so make sure we do that. --- src/common.c | 2 +- src/dhcp6s.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletions(-) diff --git a/src/common.c b/src/common.c index e4616d7..4566ad4 100644 --- a/src/common.c +++ b/src/common.c @@ -833,7 +833,7 @@ int get_duid(const char *idfile, const char *ifname, struct duid *duid) { dp = (struct dhcp6_duid_type1 *) duid->duid_id; dp->dh6duid1_type = htons(1); /* type 1 */ dp->dh6duid1_hwtype = htons(hwtype); - t64 = (u_int64_t) (time(NULL)); + t64 = (u_int64_t) (time(NULL) - 946684800); dp->dh6duid1_time = htonl((u_long) (t64 & 0xffffffff)); memcpy((void *) (dp + 1), tmpbuf, (len - sizeof(*dp))); diff --git a/src/dhcp6s.c b/src/dhcp6s.c index f7faeb5..ecf07e4 100644 --- a/src/dhcp6s.c +++ b/src/dhcp6s.c @@ -403,6 +403,9 @@ void server6_init() { dhcpv6_dprintf(LOG_ERR, "%s" "failed to get a DUID", FNAME); exit(1); } + if (save_duid(DUID_FILE, device[0], &server_duid)) { + dhcpv6_dprintf(LOG_ERR, "%s" "failed to save server ID", FNAME); + } } else { /* all the interfaces join multicast group */ ifc.ifc_len = sizeof(buff); @@ -437,6 +440,10 @@ void server6_init() { FNAME); exit(1); } + if (save_duid(DUID_FILE, ifr->ifr_name, &server_duid)) { + dhcpv6_dprintf(LOG_ERR, "%s" "failed to save server ID", + FNAME); + } } ifinit(ifr->ifr_name); num_device += 1; -- 1.6.4.2 ++++++ dhcpv6-1.0.22-correct-mac-address-in-DUID-type1-generation.patch ++++++ --- src/common.c +++ src/common.c 2010/02/17 19:46:42 @@ -803,11 +803,12 @@ int get_duid(const char *idfile, const c goto fail; } } else { - len = calculate_duid_len(ifname, &hwtype); - - if (len == 0) { - goto fail; + if ((len = gethwid(tmpbuf, sizeof(tmpbuf), ifname, &hwtype)) < 0) { + dhcpv6_dprintf(LOG_INFO, "%s" + "failed to get a hardware address", FNAME); + goto fail; } + len += sizeof(struct dhcp6_duid_type1); } memset(duid, 0, sizeof(*duid)); ++++++ dhcpv6-1.0.22-invalid-request-address-message.diff ++++++ --- src/dhcp6c.c +++ src/dhcp6c.c 2010/02/16 11:48:31 @@ -271,7 +271,7 @@ int dhcpv6_client(LIBDHCP_Control *libdh if (inet_pton(AF_INET6, strtok(addr, "/"), &lv->val_dhcp6addr.addr) < 1) { dhcpv6_dprintf(LOG_ERR, - "invalid ipv6address for release"); + "invalid ipv6address for IAPD request"); usage(argv[0]); exit(1); } @@ -301,7 +301,7 @@ int dhcpv6_client(LIBDHCP_Control *libdh if (inet_pton(AF_INET6, addr, &lv->val_dhcp6addr.addr) < 1) { dhcpv6_dprintf(LOG_ERR, - "invalid ipv6address for release"); + "invalid ipv6address for IANA request"); usage(argv[0]); exit(1); } ++++++ dhcpv6-1.0.22-remove-released-leases.bnc524687.diff ++++++ --- src/lease_token.l +++ src/lease_token.l 2010/02/22 09:49:51 @@ -279,7 +279,11 @@ do_iaidaddr_hash(lease_rec, key) dhcpv6_dprintf(LOG_INFO, "This lease addr %s/%d is invalid. Removing.", in6addr2str(&lease_rec->lease_addr.addr, 0), lease_rec->lease_addr.plen); - found_lease = hash_search(lease_hash_table, &lease_rec->lease_addr); + if (dhcp6_mode == DHCP6_MODE_CLIENT) { + found_lease = dhcp6_find_lease(&client6_iaidaddr, &lease_rec->lease_addr); + } else { + found_lease = hash_search(lease_hash_table, &lease_rec->lease_addr); + } /* remove the previous old lease */ if(found_lease) { remove_lease(found_lease); ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org