Hello community, here is the log from the commit of package dhcp for openSUSE:Factory checked in at 2013-01-12 07:45:07 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/dhcp (Old) and /work/SRC/openSUSE:Factory/.dhcp.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "dhcp", Maintainer is "[email protected]" Changes: -------- --- /work/SRC/openSUSE:Factory/dhcp/dhcp.changes 2012-09-21 14:38:41.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.dhcp.new/dhcp.changes 2013-01-12 07:45:11.000000000 +0100 @@ -1,0 +2,60 @@ +Fri Jan 11 10:54:28 UTC 2013 - [email protected] + +- Update to ISC dhcp-4.2.5 release. See RELNOTES file for the + complete list of changes -- digest of fixes not in dhcp-4.2.4-P2: + - Correct code to calculate rebind timing values in client + [ISC-Bugs #29062] + - Fix some issues in the code for parsing and printing options. + [ISC-Bugs #22625,#27289,#27296,#27314] + - Update the memory leakage debug code to work with v6. + [ISC-Bugs #30297] + - Relax the requirements for deleting an A or AAAA record. + This relaxation was codified in RFC 4703. [ISC-Bugs #30734] + - Modify the failover code to handle incorrect peer names better. + [ISC-Bugs #30320] + - Fix a set of issues that were discovered via a code inspection + tool. [ISC-Bugs #23833] + - Parsing unquoted base64 strings improved. [ISC-Bugs #23048] + - The client now passes information about the options it requested + from the server to the script code via environment variables. + These variables are of the form requested_<option_name>=1 with + the option name being the same as used in the new_* and old_* + variables. [ISC-Bugs #29068] + - Check the status value when trying to read from a connection to + see if it may have been closed. If it appears closed don't try + to read from it again. This avoids a potential busy-wait like + loop when the peer names are mismatched. [ISC-Bugs #31231] + - Remove an unused variable to keep compilers happy. + [ISC-Bugs #31983] +- Removed obsolete parsing and printing option patch + [dhcp-4.2.4-parsing-and-printing-options.patch] +- Merged dhcp-4.2.2-dhclient-send-hostname-rml.diff + [dhcp-4.2.5-dhclient-send-hostname-rml.patch] +- Fixed discovery of interfaces, which have only addresses with + a label assigned (linux 2.0 "alias interfaces" compatibility) + by switching to use the getifaddrs() as on BSD (bnc#791289, + reported upstream as [ISC-Bugs #31992]). + [dhcp-4.2.4-interface-discovery-using-getifaddrs.patch] +- Applied a patch to ignore SIGPIPE instead to die in socket code + before the errno==EPIPE checks are reached (bnc#794578, upstream + report [ISC-Bugs #32222]) + [dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch] +- Updated ldap patch to 4.2.5-ldap-mt01 providing following fixes: + - Fixed parse buffer handling code to not avoid truncation of + config > ~8k from bigger ldap objects. Fixed to free the ldap + config buffer passed to the config parser and append new config, + while the parser is in saved state (bnc#788787). + - Fixed subclass name-ref and data quoting/escaping (bnc#788787). + - Fixed memory leaks on ldap_read_config errors (bnc#788787). + - Fixed a memleak while subnet range processing, fixed to reset + bufix variable in ldap_read_function to 0 and to set buflen to + the complete length (do not discard last character, usually \n). + This caused a parsing error at further run of the function, + e.g. while processing the second dhcpService container that the + dhcpServer object may refer to (bnc#784640). + [dhcp-4.2.5-ldap-mt01.patch.bz2] +- Fixed dhclient-script to discard MTU lower-equal 576 rather + than lower-than (bnc#791280). +- Verify GPG source archive signatures. + +------------------------------------------------------------------- Old: ---- dhcp-4.2.2-dhclient-send-hostname-rml.diff dhcp-4.2.4-P2.tar.bz2 dhcp-4.2.4-ldap-patch-mt01.patch.bz2 dhcp-4.2.4-parsing-and-printing-options.patch New: ---- dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch dhcp-4.2.4-interface-discovery-using-getifaddrs.patch dhcp-4.2.5-dhclient-send-hostname-rml.patch dhcp-4.2.5-ldap-mt01.patch.bz2 dhcp-4.2.5.tar.gz dhcp-4.2.5.tar.gz.asc dhcp.keyring ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ dhcp.spec ++++++ --- /var/tmp/diff_new_pack.asG1yq/_old 2013-01-12 07:45:15.000000000 +0100 +++ /var/tmp/diff_new_pack.asG1yq/_new 2013-01-12 07:45:15.000000000 +0100 @@ -1,7 +1,7 @@ # # spec file for package dhcp # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -16,7 +16,7 @@ # -%define isc_version 4.2.4-P2 +%define isc_version 4.2.5 %define susefw2dir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services %define omc_prefix /usr/share/omc %define omc_svcdir %{omc_prefix}/svcinfo.d @@ -36,13 +36,15 @@ %endif BuildRequires: dos2unix BuildRequires: libtool -Version: 4.2.4.P2 +Version: 4.2.5 Release: 0.<RELEASE0> Summary: Common Files Used by ISC DHCP Software License: BSD-3-Clause Group: Productivity/Networking/Boot/Servers Url: http://www.isc.org/software/dhcp -Source0: dhcp-%{isc_version}.tar.bz2 +Source0: dhcp-%{isc_version}.tar.gz +Source1: dhcp-%{isc_version}.tar.gz.asc +Source2: %{name}.keyring # Source10: rc.dhcpd Source11: rc.dhcpd6 @@ -78,19 +80,23 @@ Patch13: dhcp-4.1.1-tmpfile.diff Patch15: contrib-lease-path.diff Patch20: dhcp-4.1.1-dhclient-exec-filedes.diff -Patch21: dhcp-4.2.2-dhclient-send-hostname-rml.diff -## patch repo lives here: http://www.suse.de/~mt/git/dhcp-ldap.git/ -Patch30: dhcp-4.2.4-ldap-patch-mt01.patch.bz2 +Patch21: dhcp-4.2.5-dhclient-send-hostname-rml.patch +## my patch repo lives here: http://users.suse.com/~mt/dhcp-ldap/dhcp-ldap.git/ +Patch30: dhcp-4.2.5-ldap-mt01.patch.bz2 Patch40: dhcp-4.1.1-P1-lpf-bind-msg-fix.diff Patch44: dhcp-4.2.2-xen-checksum.diff Patch45: dhcp-4.2.4-dhclient-option-checks.bnc675052.diff Patch46: dhcp-4.2.2-close-on-exec.diff Patch47: dhcp-4.2.2-quiet-dhclient.bnc711420.diff Patch48: dhcp-4.2.3-P1-dhclient-log-pid.diff -Patch49: dhcp-4.2.4-parsing-and-printing-options.patch +Patch49: dhcp-4.2.4-interface-discovery-using-getifaddrs.patch +Patch50: dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch ## PreReq: /bin/touch /sbin/chkconfig sysconfig BuildRoot: %{_tmppath}/%{name}-%{version}-build +%if 0%{?suse_version} > 1220 +BuildRequires: gpg-offline +%endif %package server Summary: ISC DHCP Server @@ -196,6 +202,9 @@ %prep +%if 0%{?gpg_verify:1} +%gpg_verify %{S:1} +%endif %setup -q -n %{name}-%{isc_version} -a 44 -a 45 ## %patch10 -p1 @@ -215,6 +224,7 @@ %patch47 -p1 %patch48 -p1 %patch49 -p1 +%patch50 -p1 ## find . -type f -name \*.cat\* -exec rm -f {} \; dos2unix contrib/ms2isc/* @@ -372,6 +382,7 @@ cp doc/examples/* ./examples/ rm -f doc/{References.xml,Makefile*} rm -f contrib/dhcp.spec +rm -f $RPM_BUILD_ROOT/etc/{dhcpd,dhclient}.conf.example %pre server /usr/sbin/useradd -r -g nogroup -s /bin/false -c "DHCP server daemon" -d /var/lib/dhcp dhcpd 2> /dev/null ||: ++++++ dhclient-script ++++++ --- /var/tmp/diff_new_pack.asG1yq/_old 2013-01-12 07:45:15.000000000 +0100 +++ /var/tmp/diff_new_pack.asG1yq/_new 2013-01-12 07:45:15.000000000 +0100 @@ -346,7 +346,7 @@ new_broadcast_arg="brd +" fi if [ x$new_interface_mtu != x -a \ - $(( $new_interface_mtu )) -lt 576 ] ; + $(( $new_interface_mtu )) -le 576 ] ; then # 68 is the minimal legal value, but 576 the real life minimum unset new_interface_mtu ++++++ dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch ++++++ >From 633817ad53adbdeb4054b750e1f0bd4ce58f341b Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski <[email protected]> Date: Thu, 20 Dec 2012 10:25:53 +0100 Subject: [PATCH] Ignore SIGPIPE to not die in socket code References: bnc#794578 Upstream: sent [ISC-Bugs #32222] Installed SIG_IGN handler for SIGPIPE to not die before the errno==EPIPE checks in the socket code are reached. Unlike isc_app_start(), the isc_app_ctxstart() used by dhcp, does not set any signal handlers. Reported upstream as [ISC-Bugs #32222], IMO regression to [ISC-Bugs #22269] as the SO_NOSIGPIPE socket option isn't available e.g. on Linux. Signed-off-by: Marius Tomaschewski <[email protected]> --- omapip/isclib.c | 33 ++++++++++++++++++++++++++++++++- 1 Datei geändert, 32 Zeilen hinzugefügt(+), 1 Zeile entfernt(-) diff --git a/omapip/isclib.c b/omapip/isclib.c index 1534dde..27bb887 100644 --- a/omapip/isclib.c +++ b/omapip/isclib.c @@ -28,6 +28,7 @@ #include "dhcpd.h" #include <sys/time.h> +#include <signal.h> dhcp_context_t dhcp_gbl_ctx; @@ -67,6 +68,23 @@ isclib_cleanup(void) return; } +static isc_result_t +handle_signal(int sig, void (*handler)(int)) { + struct sigaction sa; + + memset(&sa, 0, sizeof(sa)); + sa.sa_handler = handler; + + if (sigfillset(&sa.sa_mask) != 0 || + sigaction(sig, &sa, NULL) < 0) { + log_error("handle_signal() %d setup: %s", + sig, strerror(errno)); + return (ISC_R_UNEXPECTED); + } + + return (ISC_R_SUCCESS); +} + isc_result_t dhcp_context_create(void) { isc_result_t result; @@ -104,7 +122,20 @@ dhcp_context_create(void) { result = isc_app_ctxstart(dhcp_gbl_ctx.actx); if (result != ISC_R_SUCCESS) - return (result); + goto cleanup; + + /* + * Always ignore SIGPIPE. + * Otherwise we will die before the errno == EPIPE + * checks in the socket code are reached. + * + * Note: unlike isc_app_start(), isc_app_ctxstart() + * does not set any signal handlers. + */ + result = handle_signal(SIGPIPE, SIG_IGN); + if (result != ISC_R_SUCCESS) + goto cleanup; + dhcp_gbl_ctx.actx_started = ISC_TRUE; result = isc_taskmgr_createinctx(dhcp_gbl_ctx.mctx, -- 1.7.10.4 ++++++ dhcp-4.2.4-interface-discovery-using-getifaddrs.patch ++++++ >From 29ef7e3c25a709e8f0daadc41f34360ac6d88435 Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski <[email protected]> Date: Tue, 27 Nov 2012 17:44:06 +0100 References: bnc#791289 Upstream: sent [ISC-Bugs #31992] Subject: [PATCH] Fixed linux interface discovery using getifaddrs Unlike dhcp 3.x, dhcp 4.x scans interfaces from /proc/net/dev, which provides only true interface names. When the address set on the interface has a label assigned (linux 2.0 alias interface compatibility), then the SIOCGIFADDR requires the label / alias name as argument instead of the interface name to return this address. When this is the only address assigned to an interface, dhcp-server is unable to find any address and fails to start. Changed to use getifaddrs() function, which retrieves all IP addresses on linux systems and is available since GLIBC 2.3. Signed-off-by: Marius Tomaschewski <[email protected]> --- common/discover.c | 51 ++++++++++++++++++++++++++++++++++++++++++++------- 1 Datei geändert, 44 Zeilen hinzugefügt(+), 7 Zeilen entfernt(-) diff --git a/common/discover.c b/common/discover.c index 1d84219..cbcb1b9 100644 --- a/common/discover.c +++ b/common/discover.c @@ -379,7 +379,7 @@ end_iface_scan(struct iface_conf_list *ifaces) { ifaces->sock = -1; } -#elif __linux /* !HAVE_SIOCGLIFCONF */ +#elif __linux && !(defined(__GNUC_PREREQ) && __GNUC_PREREQ(2,3)) /* !HAVE_SIOCGLIFCONF */ /* * Linux support * ------------- @@ -388,6 +388,14 @@ end_iface_scan(struct iface_conf_list *ifaces) { * about interfaces, along with selected ioctl() calls. * * Linux low level access is documented in the netdevice man page. + * + * Note: Use getifaddrs instead + * Unfortunately this discover discards all interfaces where the + * only address has a label assigned (linux 2.0 alias interface + * compatibility) as the SIOCGIFADDR requires the the alias name + * (eth0:0) in ifr_name to fetch the address and /proc/net/dev + * on linux > 2.0 lists only the interface names (eth0) without + * any aliases. */ /* @@ -760,11 +768,11 @@ end_iface_scan(struct iface_conf_list *ifaces) { #else /* - * BSD support - * ----------- + * BSD & Linux support + * ------------------- * * FreeBSD, NetBSD, OpenBSD, and OS X all have the getifaddrs() - * function. + * function. Linux has it since glibc 2.3. * * The getifaddrs() man page describes the use. */ @@ -821,10 +829,39 @@ next_iface(struct iface_info *info, int *err, struct iface_conf_list *ifaces) { *err = 1; return 0; } - strcpy(info->name, ifaces->next->ifa_name); - memcpy(&info->addr, ifaces->next->ifa_addr, - ifaces->next->ifa_addr->sa_len); + info->addr.ss_family = AF_UNSPEC; info->flags = ifaces->next->ifa_flags; +#ifdef __linux + if (strchr(ifaces->next->ifa_name, ':')) { + /* + * the name contains a ':', which may + * be a IPv4 "alias interface" label; + * resolve to the true interface name + */ + if_indextoname(if_nametoindex(ifaces->next->ifa_name), + info->name); + } else { + strcpy(info->name, ifaces->next->ifa_name); + } + + if (ifaces->next->ifa_addr != NULL) { + if (ifaces->next->ifa_addr->sa_family == AF_INET) { + memcpy(&info->addr, ifaces->next->ifa_addr, + sizeof(struct sockaddr_in)); + } else + if (ifaces->next->ifa_addr->sa_family == AF_INET6) { + memcpy(&info->addr, ifaces->next->ifa_addr, + sizeof(struct sockaddr_in6)); + } + /* else e.g. AF_PACKET / link layer address */ + } +#else + strcpy(info->name, ifaces->next->ifa_name); + if (ifaces->next->ifa_addr != NULL) { + memcpy(&info->addr, ifaces->next->ifa_addr, + ifaces->next->ifa_addr->sa_len); + } +#endif ifaces->next = ifaces->next->ifa_next; *err = 0; return 1; -- 1.7.10.4 ++++++ dhcp-4.2.5-dhclient-send-hostname-rml.patch ++++++ >From ebc6e17683e4a4d7f2316c1ea46d680955df7d26 Mon Sep 17 00:00:00 2001 From: Marius Tomaschewski <[email protected]> Date: Thu, 18 Aug 2011 10:49:07 +0200 Subject: [PATCH] dhcp-4.2.5-dhclient-send-hostname-rml --- client/dhclient.8 | 8 ++++++++ client/dhclient.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++-- 2 Dateien geändert, 56 Zeilen hinzugefügt(+), 2 Zeilen entfernt(-) diff --git a/client/dhclient.8 b/client/dhclient.8 index 3539591..4a7647a 100644 --- a/client/dhclient.8 +++ b/client/dhclient.8 @@ -60,6 +60,10 @@ dhclient - Dynamic Host Configuration Protocol Client .I LL|LLT ] [ +.B -H +.I hostname +] +[ .B -p .I port-number ] @@ -316,6 +320,10 @@ transmits these messages to 255.255.255.255 (the IP limited broadcast address). Overriding this is mostly useful for debugging purposes. This feature is not supported in DHCPv6 (\fB-6\fR) mode. .TP +.BI \-H \ hostname +This flag may be used to specify a client hostname that should be sent to +the DHCP server. Note, that this option is a SUSE/Novell extension. +.TP .BI \-g \ relay .\" mockup relay Set the giaddr field of all packets to the \fIrelay\fR IP address diff --git a/client/dhclient.c b/client/dhclient.c index 0c1ed24..de93499 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -119,6 +119,7 @@ main(int argc, char **argv) { int no_dhclient_db = 0; int no_dhclient_pid = 0; int no_dhclient_script = 0; + char *dhclient_hostname = NULL; #ifdef DHCPv6 int local_family_set = 0; #endif /* DHCPv6 */ @@ -231,6 +232,22 @@ main(int argc, char **argv) { if (++i == argc) usage(); mockup_relay = argv[i]; + } else if (!strcmp (argv[i], "-H")) { + size_t len; + if (++i == argc || !argv[i] || *(argv[i]) == '\0') + usage (); + len = strlen (argv[i]); + if (len > HOST_NAME_MAX) { + log_error("-H option host-name string \"%s\" is too long:" + "maximum length is %d characters", + argv[i], HOST_NAME_MAX); + exit(1); + } else if(check_domain_name(argv[i], len, 0) != 0) { + log_error("suspect host-name in -H \"%s\"", + argv[i]); + exit(1); + } + dhclient_hostname = argv [i]; } else if (!strcmp(argv[i], "-nw")) { nowait = 1; } else if (!strcmp(argv[i], "-n")) { @@ -484,6 +501,35 @@ main(int argc, char **argv) { /* Parse the dhclient.conf file. */ read_client_conf(); + /* If the user specified a hostname, send it here and now */ + if ((dhclient_hostname != NULL) && (*dhclient_hostname != '\0') ) { + struct parse *cfile = NULL; + char buf[HOST_NAME_MAX + 40]; + int len; + + snprintf (buf, sizeof(buf), "send host-name \"%s\";", + dhclient_hostname); + len = strlen(buf); + + status = new_parse (&cfile, -1, buf, len, + "host-name option", 0); + if (status != ISC_R_SUCCESS) + log_fatal ("Cannot parse send host-name statement!"); + + for (;;) { + const char *val = NULL; + int token; + + token = peek_token (&val, (unsigned *)0, cfile); + if (token == END_OF_FILE) + break; + + parse_client_statement (cfile, NULL, + &top_level_config); + } + end_parse (&cfile); + } + /* Parse the lease database. */ read_client_leases(); @@ -708,9 +754,9 @@ static void usage() log_fatal("Usage: dhclient " #ifdef DHCPv6 - "[-4|-6] [-SNTP1dvrx] [-nw] [-p <port>] [-D LL|LLT]\n" + "[-4|-6] [-SNTP1dvrx] [-nw] [-H <hostname>] [-p <port>] [-D LL|LLT]\n" #else /* DHCPv6 */ - "[-1dvrx] [-nw] [-p <port>]\n" + "[-1dvrx] [-nw] [-H <hostname>] [-p <port>]\n" #endif /* DHCPv6 */ " [-s server-addr] [-cf config-file] " "[-lf lease-file]\n" -- 1.7.10.4 ++++++ dhcp-4.2.5-ldap-mt01.patch.bz2 ++++++ ++++ 2244 lines (skipped) ++++++ dhcp.keyring ++++++ pub 2048R/C96B350A 2011-10-27 [expires: 2013-02-01] uid Internet Systems Consortium, Inc. (Signing key, 2012) (http://www.isc.org/) <[email protected]> uid [jpeg image of size 37431] sub 2048R/B5053426 2011-10-27 [expires: 2013-02-01] -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.11 (FreeBSD) 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 =WEoZ -----END PGP PUBLIC KEY BLOCK----- -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
