Accepting request 148048 from network:dhcp
- Update to ISC dhcp-4.2.5 release. See RELNOTES file for the - Removed obsolete parsing and printing option patch - Merged dhcp-4.2.2-dhclient-send-hostname-rml.diff - Fixed discovery of interfaces, which have only addresses with a label assigned (linux 2.0 "alias interfaces" compatibility) - Applied a patch to ignore SIGPIPE instead to die in socket code - Updated ldap patch to 4.2.5-ldap-mt01 - Fixed dhclient-script to discard MTU lower-equal 576 - Verify GPG source archive signatures. OBS-URL: https://build.opensuse.org/request/show/148048 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dhcp?expand=0&rev=73
This commit is contained in:
commit
82be95c80c
@ -346,7 +346,7 @@ dhclient)
|
|||||||
new_broadcast_arg="brd +"
|
new_broadcast_arg="brd +"
|
||||||
fi
|
fi
|
||||||
if [ x$new_interface_mtu != x -a \
|
if [ x$new_interface_mtu != x -a \
|
||||||
$(( $new_interface_mtu )) -lt 576 ] ;
|
$(( $new_interface_mtu )) -le 576 ] ;
|
||||||
then
|
then
|
||||||
# 68 is the minimal legal value, but 576 the real life minimum
|
# 68 is the minimal legal value, but 576 the real life minimum
|
||||||
unset new_interface_mtu
|
unset new_interface_mtu
|
||||||
|
82
dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch
Normal file
82
dhcp-4.2.4-P2-do-not-die-on-sigpipe.patch
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
From 633817ad53adbdeb4054b750e1f0bd4ce58f341b Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Tomaschewski <mt@suse.de>
|
||||||
|
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 <mt@suse.de>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:a992dc0b04df14fbd780dd34e744b73ce8054a05bf69ff47d5bc64e9b6a98eec
|
|
||||||
size 8027212
|
|
112
dhcp-4.2.4-interface-discovery-using-getifaddrs.patch
Normal file
112
dhcp-4.2.4-interface-discovery-using-getifaddrs.patch
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
From 29ef7e3c25a709e8f0daadc41f34360ac6d88435 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Tomaschewski <mt@suse.de>
|
||||||
|
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 <mt@suse.de>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:3143784b9de510e9ef0ec4010ce00904308600d8fa2d23cacb240ec5592e81af
|
|
||||||
size 10882
|
|
@ -1,298 +0,0 @@
|
|||||||
From 29c3de8d0973c66c9c8261c0f3d0deeccfd29994 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Marius Tomaschewski <mt@suse.de>
|
|
||||||
Date: Tue, 12 Jun 2012 10:01:10 +0200
|
|
||||||
Subject: [PATCH] dhcp-4.2.4-parsing-and-printing-options
|
|
||||||
|
|
||||||
- Fix some issues in the code for parsing and printing options.
|
|
||||||
[ISC-Bugs #27314] - properly parse a zero length option from
|
|
||||||
a lease file.
|
|
||||||
[ISC-Bugs #22796] - properly determine if we parsed a 16 or 32 bit
|
|
||||||
value in evaluate_numeric_expression (extract-int).
|
|
||||||
[ISC-Bugs #22625] - properly print options that have several fields
|
|
||||||
followed by an array of something for example "fIa"
|
|
||||||
[ISC-Bugs #27289] - properly parse options in declarations that have
|
|
||||||
several fields followed by an array of something for example "fIa"
|
|
||||||
|
|
||||||
This patch obsoletes the following (bnc#739696) patches:
|
|
||||||
- dhclient: parse_option_param: Bad format a
|
|
||||||
[complete, upstream corrected version]
|
|
||||||
- zero-length option lease parse error in dhclient6
|
|
||||||
[upstream accepted variant]
|
|
||||||
- properly determine if we parsed a 16 or 32 bit value
|
|
||||||
[additional upstream patch]
|
|
||||||
---
|
|
||||||
client/dhclient.c | 19 +++++++++++++---
|
|
||||||
common/options.c | 60 +++++++++++++++++++++++++++++++++++++++++++++-------
|
|
||||||
common/parse.c | 23 ++++++++++++++++---
|
|
||||||
common/tables.c | 7 +++--
|
|
||||||
common/tree.c | 35 ++++++++++++++++++++----------
|
|
||||||
5 files changed, 113 insertions(+), 31 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
|
||||||
index f920c64..025337a 100644
|
|
||||||
--- a/client/dhclient.c
|
|
||||||
+++ b/client/dhclient.c
|
|
||||||
@@ -2793,10 +2793,21 @@ void write_lease_option (struct option_cache *oc,
|
|
||||||
}
|
|
||||||
if (evaluate_option_cache (&ds, packet, lease, client_state,
|
|
||||||
in_options, cfg_options, scope, oc, MDL)) {
|
|
||||||
- fprintf(leaseFile, "%soption %s%s%s %s;\n", preamble,
|
|
||||||
- name, dot, oc->option->name,
|
|
||||||
- pretty_print_option(oc->option, ds.data, ds.len,
|
|
||||||
- 1, 1));
|
|
||||||
+ /* The option name */
|
|
||||||
+ fprintf(leaseFile, "%soption %s%s%s", preamble,
|
|
||||||
+ name, dot, oc->option->name);
|
|
||||||
+
|
|
||||||
+ /* The option value if there is one */
|
|
||||||
+ if ((oc->option->format == NULL) ||
|
|
||||||
+ (oc->option->format[0] != 'Z')) {
|
|
||||||
+ fprintf(leaseFile, " %s",
|
|
||||||
+ pretty_print_option(oc->option, ds.data,
|
|
||||||
+ ds.len, 1, 1));
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* The closing semi-colon and newline */
|
|
||||||
+ fprintf(leaseFile, ";\n");
|
|
||||||
+
|
|
||||||
data_string_forget (&ds, MDL);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
diff --git a/common/options.c b/common/options.c
|
|
||||||
index bc9bb97..fa27688 100644
|
|
||||||
--- a/common/options.c
|
|
||||||
+++ b/common/options.c
|
|
||||||
@@ -1683,6 +1683,8 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes)
|
|
||||||
const unsigned char *dp = data;
|
|
||||||
char comma;
|
|
||||||
unsigned long tval;
|
|
||||||
+ isc_boolean_t a_array = ISC_FALSE;
|
|
||||||
+ int len_used;
|
|
||||||
|
|
||||||
if (emit_commas)
|
|
||||||
comma = ',';
|
|
||||||
@@ -1707,6 +1709,8 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes)
|
|
||||||
fmtbuf [l] = option -> format [i];
|
|
||||||
switch (option -> format [i]) {
|
|
||||||
case 'a':
|
|
||||||
+ a_array = ISC_TRUE;
|
|
||||||
+ /* Fall through */
|
|
||||||
case 'A':
|
|
||||||
--numelem;
|
|
||||||
fmtbuf [l] = 0;
|
|
||||||
@@ -1735,6 +1739,8 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes)
|
|
||||||
hunksize++;
|
|
||||||
comma = ':';
|
|
||||||
numhunk = 0;
|
|
||||||
+ a_array = ISC_TRUE;
|
|
||||||
+ hunkinc = 1;
|
|
||||||
}
|
|
||||||
fmtbuf [l + 1] = 0;
|
|
||||||
break;
|
|
||||||
@@ -1828,13 +1834,34 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes)
|
|
||||||
len - hunksize);
|
|
||||||
|
|
||||||
/* If this is an array, compute its size. */
|
|
||||||
- if (!numhunk)
|
|
||||||
- numhunk = len / hunksize;
|
|
||||||
- /* See if we got an exact number of hunks. */
|
|
||||||
- if (numhunk > 0 && numhunk * hunksize < len)
|
|
||||||
- log_error ("%s: %d extra bytes at end of array\n",
|
|
||||||
- option -> name,
|
|
||||||
- len - numhunk * hunksize);
|
|
||||||
+ if (numhunk == 0) {
|
|
||||||
+ if (a_array == ISC_TRUE) {
|
|
||||||
+ /*
|
|
||||||
+ * It is an 'a' type array - we repeat the
|
|
||||||
+ * last format type. A binary string for 'X'
|
|
||||||
+ * is also like this. hunkinc is the size
|
|
||||||
+ * of the last format type and we add 1 to
|
|
||||||
+ * cover the entire first record.
|
|
||||||
+ */
|
|
||||||
+ numhunk = ((len - hunksize) / hunkinc) + 1;
|
|
||||||
+ len_used = hunksize + ((numhunk - 1) * hunkinc);
|
|
||||||
+ } else {
|
|
||||||
+ /*
|
|
||||||
+ * It is an 'A' type array - we repeat the
|
|
||||||
+ * entire record
|
|
||||||
+ */
|
|
||||||
+ numhunk = len / hunksize;
|
|
||||||
+ len_used = numhunk * hunksize;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ /* See if we got an exact number of hunks. */
|
|
||||||
+ if (len_used < len) {
|
|
||||||
+ log_error ("%s: %d extra bytes at end of array\n",
|
|
||||||
+ option -> name,
|
|
||||||
+ len - len_used);
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
|
|
||||||
/* A one-hunk array prints the same as a single hunk. */
|
|
||||||
if (numhunk < 0)
|
|
||||||
@@ -1842,7 +1869,24 @@ const char *pretty_print_option (option, data, len, emit_commas, emit_quotes)
|
|
||||||
|
|
||||||
/* Cycle through the array (or hunk) printing the data. */
|
|
||||||
for (i = 0; i < numhunk; i++) {
|
|
||||||
- for (j = 0; j < numelem; j++) {
|
|
||||||
+ if ((a_array == ISC_TRUE) && (i != 0) && (numelem > 0)) {
|
|
||||||
+ /*
|
|
||||||
+ * For 'a' type of arrays we repeat
|
|
||||||
+ * only the last format character
|
|
||||||
+ * We should never hit the case of numelem == 0
|
|
||||||
+ * but let's include the check to be safe.
|
|
||||||
+ */
|
|
||||||
+ j = numelem - 1;
|
|
||||||
+ } else {
|
|
||||||
+ /*
|
|
||||||
+ * for other types of arrays or the first
|
|
||||||
+ * time through for 'a' types, we go through
|
|
||||||
+ * the entire set of format characters.
|
|
||||||
+ */
|
|
||||||
+ j = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ for (; j < numelem; j++) {
|
|
||||||
switch (fmtbuf [j]) {
|
|
||||||
case 't':
|
|
||||||
/* endbuf-1 leaves room for NULL. */
|
|
||||||
diff --git a/common/parse.c b/common/parse.c
|
|
||||||
index 434085a..f72c0d6 100644
|
|
||||||
--- a/common/parse.c
|
|
||||||
+++ b/common/parse.c
|
|
||||||
@@ -5518,11 +5518,26 @@ int parse_option_decl (oc, cfile)
|
|
||||||
if (status != ISC_R_SUCCESS || option == NULL)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
+ fmt = option->format;
|
|
||||||
+
|
|
||||||
/* Parse the option data... */
|
|
||||||
do {
|
|
||||||
- for (fmt = option -> format; *fmt; fmt++) {
|
|
||||||
- if (*fmt == 'A')
|
|
||||||
+ for (; *fmt; fmt++) {
|
|
||||||
+ if (*fmt == 'A') {
|
|
||||||
+ /* 'A' is an array of records, start at
|
|
||||||
+ * the beginning
|
|
||||||
+ */
|
|
||||||
+ fmt = option->format;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
+ if (*fmt == 'a') {
|
|
||||||
+ /* 'a' is an array of the last field,
|
|
||||||
+ * back up one format character
|
|
||||||
+ */
|
|
||||||
+ fmt--;
|
|
||||||
break;
|
|
||||||
+ }
|
|
||||||
if (*fmt == 'o' && fmt != option -> format)
|
|
||||||
continue;
|
|
||||||
switch (*fmt) {
|
|
||||||
@@ -5718,7 +5733,7 @@ int parse_option_decl (oc, cfile)
|
|
||||||
goto alloc;
|
|
||||||
|
|
||||||
case 'Z': /* Zero-length option */
|
|
||||||
- token = next_token(&val, (unsigned *)0, cfile);
|
|
||||||
+ token = peek_token(&val, (unsigned *)0, cfile);
|
|
||||||
if (token != SEMI) {
|
|
||||||
parse_warn(cfile,
|
|
||||||
"semicolon expected.");
|
|
||||||
@@ -5735,7 +5750,7 @@ int parse_option_decl (oc, cfile)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
token = next_token (&val, (unsigned *)0, cfile);
|
|
||||||
- } while (*fmt == 'A' && token == COMMA);
|
|
||||||
+ } while (*fmt && token == COMMA);
|
|
||||||
|
|
||||||
if (token != SEMI) {
|
|
||||||
parse_warn (cfile, "semicolon expected.");
|
|
||||||
diff --git a/common/tables.c b/common/tables.c
|
|
||||||
index c820d83..d224dc1 100644
|
|
||||||
--- a/common/tables.c
|
|
||||||
+++ b/common/tables.c
|
|
||||||
@@ -64,9 +64,10 @@ HASH_FUNCTIONS (option_code, const unsigned *, struct option,
|
|
||||||
some event. The special all-ones value means 'infinite'. May either
|
|
||||||
be printed as a decimal, eg, "3600", or as this name, eg, "infinite".
|
|
||||||
f - flag (true or false)
|
|
||||||
- A - array of whatever precedes (e.g., IA means array of IP addresses)
|
|
||||||
- a - array of the preceding character (e.g., IIa means two or more IP
|
|
||||||
- addresses)
|
|
||||||
+ A - array of all that precedes (e.g., fIA means array of records of
|
|
||||||
+ a flag and an IP address)
|
|
||||||
+ a - array of the preceding character (e.g., fIa means a single flag
|
|
||||||
+ followed by an array of IP addresses)
|
|
||||||
U - name of an option space (universe)
|
|
||||||
F - implicit flag - the presence of the option indicates that the
|
|
||||||
flag is true.
|
|
||||||
diff --git a/common/tree.c b/common/tree.c
|
|
||||||
index 3c978b0..7754398 100644
|
|
||||||
--- a/common/tree.c
|
|
||||||
+++ b/common/tree.c
|
|
||||||
@@ -2409,6 +2409,7 @@ int evaluate_numeric_expression (result, packet, lease, client_state,
|
|
||||||
struct binding *binding;
|
|
||||||
struct binding_value *bv;
|
|
||||||
unsigned long ileft, iright;
|
|
||||||
+ int rc = 0;
|
|
||||||
|
|
||||||
switch (expr -> op) {
|
|
||||||
case expr_check:
|
|
||||||
@@ -2477,32 +2478,42 @@ int evaluate_numeric_expression (result, packet, lease, client_state,
|
|
||||||
status = (evaluate_data_expression
|
|
||||||
(&data, packet, lease, client_state, in_options,
|
|
||||||
cfg_options, scope, expr -> data.extract_int, MDL));
|
|
||||||
- if (status && data.len >= 2)
|
|
||||||
+ if (status && data.len >= 2) {
|
|
||||||
*result = getUShort (data.data);
|
|
||||||
+ rc = 1;
|
|
||||||
+ }
|
|
||||||
#if defined (DEBUG_EXPRESSIONS)
|
|
||||||
- log_debug ("num: extract_int16 (%s) = %ld",
|
|
||||||
- ((status && data.len >= 2) ?
|
|
||||||
- print_hex_1 (data.len, data.data, 60) : "NULL"),
|
|
||||||
- *result);
|
|
||||||
+ if (rc == 1) {
|
|
||||||
+ log_debug ("num: extract_int16 (%s) = %ld",
|
|
||||||
+ print_hex_1(data.len, data.data, 60)
|
|
||||||
+ *result);
|
|
||||||
+ } else {
|
|
||||||
+ log_debug ("num: extract_int16 (NULL) = NULL");
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
if (status) data_string_forget (&data, MDL);
|
|
||||||
- return (status && data.len >= 2);
|
|
||||||
+ return (rc);
|
|
||||||
|
|
||||||
case expr_extract_int32:
|
|
||||||
memset (&data, 0, sizeof data);
|
|
||||||
status = (evaluate_data_expression
|
|
||||||
(&data, packet, lease, client_state, in_options,
|
|
||||||
cfg_options, scope, expr -> data.extract_int, MDL));
|
|
||||||
- if (status && data.len >= 4)
|
|
||||||
+ if (status && data.len >= 4) {
|
|
||||||
*result = getULong (data.data);
|
|
||||||
+ rc = 1;
|
|
||||||
+ }
|
|
||||||
#if defined (DEBUG_EXPRESSIONS)
|
|
||||||
- log_debug ("num: extract_int32 (%s) = %ld",
|
|
||||||
- ((status && data.len >= 4) ?
|
|
||||||
- print_hex_1 (data.len, data.data, 60) : "NULL"),
|
|
||||||
- *result);
|
|
||||||
+ if (rc == 1) {
|
|
||||||
+ log_debug ("num: extract_int32 (%s) = %ld",
|
|
||||||
+ print_hex_1 (data.len, data.data, 60),
|
|
||||||
+ *result);
|
|
||||||
+ } else {
|
|
||||||
+ log_debug ("num: extract_int32 (NULL) = NULL");
|
|
||||||
+ }
|
|
||||||
#endif
|
|
||||||
if (status) data_string_forget (&data, MDL);
|
|
||||||
- return (status && data.len >= 4);
|
|
||||||
+ return (rc);
|
|
||||||
|
|
||||||
case expr_const_int:
|
|
||||||
*result = expr -> data.const_int;
|
|
||||||
--
|
|
||||||
1.7.7
|
|
||||||
|
|
@ -1,5 +1,15 @@
|
|||||||
|
From ebc6e17683e4a4d7f2316c1ea46d680955df7d26 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marius Tomaschewski <mt@suse.de>
|
||||||
|
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
|
diff --git a/client/dhclient.8 b/client/dhclient.8
|
||||||
index 6306b08..1394c38 100644
|
index 3539591..4a7647a 100644
|
||||||
--- a/client/dhclient.8
|
--- a/client/dhclient.8
|
||||||
+++ b/client/dhclient.8
|
+++ b/client/dhclient.8
|
||||||
@@ -60,6 +60,10 @@ dhclient - Dynamic Host Configuration Protocol Client
|
@@ -60,6 +60,10 @@ dhclient - Dynamic Host Configuration Protocol Client
|
||||||
@ -11,21 +21,21 @@ index 6306b08..1394c38 100644
|
|||||||
+]
|
+]
|
||||||
+[
|
+[
|
||||||
.B -p
|
.B -p
|
||||||
.I port
|
.I port-number
|
||||||
]
|
]
|
||||||
@@ -299,6 +303,10 @@ PID file. When shutdown via this method
|
@@ -316,6 +320,10 @@ transmits these messages to 255.255.255.255 (the IP limited broadcast
|
||||||
.B dhclient-script(8)
|
address). Overriding this is mostly useful for debugging purposes. This
|
||||||
will be executed with the specific reason for calling the script set.
|
feature is not supported in DHCPv6 (\fB-6\fR) mode.
|
||||||
.TP
|
.TP
|
||||||
+.BI \-H \ hostname
|
+.BI \-H \ hostname
|
||||||
+This flag may be used to specify a client hostname that should be sent to
|
+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.
|
+the DHCP server. Note, that this option is a SUSE/Novell extension.
|
||||||
+.TP
|
+.TP
|
||||||
.BI \-p \ port
|
.BI \-g \ relay
|
||||||
The UDP port number on which the DHCP client should listen and transmit.
|
.\" mockup relay
|
||||||
If unspecified,
|
Set the giaddr field of all packets to the \fIrelay\fR IP address
|
||||||
diff --git a/client/dhclient.c b/client/dhclient.c
|
diff --git a/client/dhclient.c b/client/dhclient.c
|
||||||
index 9b53f07..9fd7ccc 100644
|
index 0c1ed24..de93499 100644
|
||||||
--- a/client/dhclient.c
|
--- a/client/dhclient.c
|
||||||
+++ b/client/dhclient.c
|
+++ b/client/dhclient.c
|
||||||
@@ -119,6 +119,7 @@ main(int argc, char **argv) {
|
@@ -119,6 +119,7 @@ main(int argc, char **argv) {
|
||||||
@ -107,3 +117,6 @@ index 9b53f07..9fd7ccc 100644
|
|||||||
#endif /* DHCPv6 */
|
#endif /* DHCPv6 */
|
||||||
" [-s server-addr] [-cf config-file] "
|
" [-s server-addr] [-cf config-file] "
|
||||||
"[-lf lease-file]\n"
|
"[-lf lease-file]\n"
|
||||||
|
--
|
||||||
|
1.7.10.4
|
||||||
|
|
3
dhcp-4.2.5-ldap-mt01.patch.bz2
Normal file
3
dhcp-4.2.5-ldap-mt01.patch.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b300b487032a9eac6a0935351ef45415d58aaf1a196408a6209f43e72e70e622
|
||||||
|
size 16766
|
3
dhcp-4.2.5.tar.gz
Normal file
3
dhcp-4.2.5.tar.gz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:771a5cffb1fd1392d25926e22e1c58a006e2ad02ecd77d136096e5e366a5b6bc
|
||||||
|
size 8258824
|
11
dhcp-4.2.5.tar.gz.asc
Normal file
11
dhcp-4.2.5.tar.gz.asc
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
-----BEGIN PGP SIGNATURE-----
|
||||||
|
Version: GnuPG v1.4.11 (GNU/Linux)
|
||||||
|
|
||||||
|
iQEcBAABAgAGBQJQ7X+pAAoJEKv5WqfJazUKeaQH/134banTGLmI/lOsmaWzB/kJ
|
||||||
|
jKYRQ20N6oGTn52pJhMLK9SAJML/MjYr84sJxCZSN7IirSOd0OEUKk2N4A3kKlGj
|
||||||
|
DteALPgG9cDIu8huVc4ZUKfbAl6Gr4irWBBWcRbXK8CnH+9Z3OjaaEilEOqfJl9d
|
||||||
|
fV8e38YNDaLyo4mH8lLyByPYqTBnt6FGYJH6kzO9a9rvWQQ0hAMGX9hUAQTJRJbP
|
||||||
|
j6ZOL807qcZFhy16bpVz3IFTZ17rbV3cYwP4e8fYjN9W3evOpN+GUtgwI/WSgAiH
|
||||||
|
1LL74Iq3nyptCrS544avIQGjHX64fgahYWP9VQvCzsL9bWnEXIMoaHNhmUd/Wdo=
|
||||||
|
=D0E8
|
||||||
|
-----END PGP SIGNATURE-----
|
60
dhcp.changes
60
dhcp.changes
@ -1,3 +1,63 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Fri Jan 11 10:54:28 UTC 2013 - mt@suse.com
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Sep 20 12:26:53 UTC 2012 - mt@suse.com
|
Thu Sep 20 12:26:53 UTC 2012 - mt@suse.com
|
||||||
|
|
||||||
|
55
dhcp.keyring
Normal file
55
dhcp.keyring
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
pub 2048R/C96B350A 2011-10-27 [expires: 2013-02-01]
|
||||||
|
uid Internet Systems Consortium, Inc. (Signing key, 2012) (http://www.isc.org/) <codesign@isc.org>
|
||||||
|
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-----
|
27
dhcp.spec
27
dhcp.spec
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# spec file for package dhcp
|
# 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
|
# All modifications and additions to the file contributed by third parties
|
||||||
# remain the property of their copyright owners, unless otherwise agreed
|
# 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 susefw2dir %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services
|
||||||
%define omc_prefix /usr/share/omc
|
%define omc_prefix /usr/share/omc
|
||||||
%define omc_svcdir %{omc_prefix}/svcinfo.d
|
%define omc_svcdir %{omc_prefix}/svcinfo.d
|
||||||
@ -36,13 +36,15 @@ BuildRequires: openldap2-devel
|
|||||||
%endif
|
%endif
|
||||||
BuildRequires: dos2unix
|
BuildRequires: dos2unix
|
||||||
BuildRequires: libtool
|
BuildRequires: libtool
|
||||||
Version: 4.2.4.P2
|
Version: 4.2.5
|
||||||
Release: 0.<RELEASE0>
|
Release: 0.<RELEASE0>
|
||||||
Summary: Common Files Used by ISC DHCP Software
|
Summary: Common Files Used by ISC DHCP Software
|
||||||
License: BSD-3-Clause
|
License: BSD-3-Clause
|
||||||
Group: Productivity/Networking/Boot/Servers
|
Group: Productivity/Networking/Boot/Servers
|
||||||
Url: http://www.isc.org/software/dhcp
|
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
|
Source10: rc.dhcpd
|
||||||
Source11: rc.dhcpd6
|
Source11: rc.dhcpd6
|
||||||
@ -78,19 +80,23 @@ Patch12: dhcp-4.2.2-man-includes.diff
|
|||||||
Patch13: dhcp-4.1.1-tmpfile.diff
|
Patch13: dhcp-4.1.1-tmpfile.diff
|
||||||
Patch15: contrib-lease-path.diff
|
Patch15: contrib-lease-path.diff
|
||||||
Patch20: dhcp-4.1.1-dhclient-exec-filedes.diff
|
Patch20: dhcp-4.1.1-dhclient-exec-filedes.diff
|
||||||
Patch21: dhcp-4.2.2-dhclient-send-hostname-rml.diff
|
Patch21: dhcp-4.2.5-dhclient-send-hostname-rml.patch
|
||||||
## patch repo lives here: http://www.suse.de/~mt/git/dhcp-ldap.git/
|
## my patch repo lives here: http://users.suse.com/~mt/dhcp-ldap/dhcp-ldap.git/
|
||||||
Patch30: dhcp-4.2.4-ldap-patch-mt01.patch.bz2
|
Patch30: dhcp-4.2.5-ldap-mt01.patch.bz2
|
||||||
Patch40: dhcp-4.1.1-P1-lpf-bind-msg-fix.diff
|
Patch40: dhcp-4.1.1-P1-lpf-bind-msg-fix.diff
|
||||||
Patch44: dhcp-4.2.2-xen-checksum.diff
|
Patch44: dhcp-4.2.2-xen-checksum.diff
|
||||||
Patch45: dhcp-4.2.4-dhclient-option-checks.bnc675052.diff
|
Patch45: dhcp-4.2.4-dhclient-option-checks.bnc675052.diff
|
||||||
Patch46: dhcp-4.2.2-close-on-exec.diff
|
Patch46: dhcp-4.2.2-close-on-exec.diff
|
||||||
Patch47: dhcp-4.2.2-quiet-dhclient.bnc711420.diff
|
Patch47: dhcp-4.2.2-quiet-dhclient.bnc711420.diff
|
||||||
Patch48: dhcp-4.2.3-P1-dhclient-log-pid.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
|
PreReq: /bin/touch /sbin/chkconfig sysconfig
|
||||||
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
||||||
|
%if 0%{?suse_version} > 1220
|
||||||
|
BuildRequires: gpg-offline
|
||||||
|
%endif
|
||||||
|
|
||||||
%package server
|
%package server
|
||||||
Summary: ISC DHCP Server
|
Summary: ISC DHCP Server
|
||||||
@ -196,6 +202,9 @@ Authors:
|
|||||||
|
|
||||||
|
|
||||||
%prep
|
%prep
|
||||||
|
%if 0%{?gpg_verify:1}
|
||||||
|
%gpg_verify %{S:1}
|
||||||
|
%endif
|
||||||
%setup -q -n %{name}-%{isc_version} -a 44 -a 45
|
%setup -q -n %{name}-%{isc_version} -a 44 -a 45
|
||||||
##
|
##
|
||||||
%patch10 -p1
|
%patch10 -p1
|
||||||
@ -215,6 +224,7 @@ Authors:
|
|||||||
%patch47 -p1
|
%patch47 -p1
|
||||||
%patch48 -p1
|
%patch48 -p1
|
||||||
%patch49 -p1
|
%patch49 -p1
|
||||||
|
%patch50 -p1
|
||||||
##
|
##
|
||||||
find . -type f -name \*.cat\* -exec rm -f {} \;
|
find . -type f -name \*.cat\* -exec rm -f {} \;
|
||||||
dos2unix contrib/ms2isc/*
|
dos2unix contrib/ms2isc/*
|
||||||
@ -372,6 +382,7 @@ install -m0644 $RPM_SOURCE_DIR/DDNS-howto.txt .
|
|||||||
cp doc/examples/* ./examples/
|
cp doc/examples/* ./examples/
|
||||||
rm -f doc/{References.xml,Makefile*}
|
rm -f doc/{References.xml,Makefile*}
|
||||||
rm -f contrib/dhcp.spec
|
rm -f contrib/dhcp.spec
|
||||||
|
rm -f $RPM_BUILD_ROOT/etc/{dhcpd,dhclient}.conf.example
|
||||||
|
|
||||||
%pre server
|
%pre server
|
||||||
/usr/sbin/useradd -r -g nogroup -s /bin/false -c "DHCP server daemon" -d /var/lib/dhcp dhcpd 2> /dev/null ||:
|
/usr/sbin/useradd -r -g nogroup -s /bin/false -c "DHCP server daemon" -d /var/lib/dhcp dhcpd 2> /dev/null ||:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user