diff --git a/dhcp-4.0.0-ldap-configuration.patch b/dhcp-4.0.0-ldap-configuration.patch index 1d70ba8..7b71ea7 100644 --- a/dhcp-4.0.0-ldap-configuration.patch +++ b/dhcp-4.0.0-ldap-configuration.patch @@ -1,6 +1,6 @@ diff -up dhcp-4.0.0/server/Makefile.am.ldap dhcp-4.0.0/server/Makefile.am --- dhcp-4.0.0/server/Makefile.am.ldap 2007-05-29 06:32:11.000000000 -1000 -+++ dhcp-4.0.0/server/Makefile.am 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/server/Makefile.am 2008-01-22 15:09:56.000000000 -1000 @@ -4,12 +4,10 @@ dist_sysconf_DATA = dhcpd.conf sbin_PROGRAMS = dhcpd dhcpd_SOURCES = dhcpd.c dhcp.c bootp.c confpars.c db.c class.c failover.c \ @@ -19,7 +19,7 @@ diff -up dhcp-4.0.0/server/Makefile.am.ldap dhcp-4.0.0/server/Makefile.am EXTRA_DIST = $(man_MANS) diff -up dhcp-4.0.0/server/mdb.c.ldap dhcp-4.0.0/server/mdb.c --- dhcp-4.0.0/server/mdb.c.ldap 2007-11-30 11:51:43.000000000 -1000 -+++ dhcp-4.0.0/server/mdb.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/server/mdb.c 2008-01-22 15:09:56.000000000 -1000 @@ -600,6 +600,12 @@ int find_hosts_by_haddr (struct host_dec const char *file, int line) { @@ -34,8 +34,8 @@ diff -up dhcp-4.0.0/server/mdb.c.ldap dhcp-4.0.0/server/mdb.c h.hlen = hlen + 1; h.hbuf [0] = htype; diff -up /dev/null dhcp-4.0.0/server/ldap_casa.c ---- /dev/null 2008-01-11 10:40:59.147013395 -1000 -+++ dhcp-4.0.0/server/ldap_casa.c 2008-01-14 10:42:59.000000000 -1000 +--- /dev/null 2008-01-19 23:52:35.158021373 -1000 ++++ dhcp-4.0.0/server/ldap_casa.c 2008-01-22 15:09:56.000000000 -1000 @@ -0,0 +1,138 @@ +/* ldap_casa.c + @@ -177,7 +177,7 @@ diff -up /dev/null dhcp-4.0.0/server/ldap_casa.c + diff -up dhcp-4.0.0/server/dhcpd.c.ldap dhcp-4.0.0/server/dhcpd.c --- dhcp-4.0.0/server/dhcpd.c.ldap 2007-11-30 11:51:43.000000000 -1000 -+++ dhcp-4.0.0/server/dhcpd.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/server/dhcpd.c 2008-01-22 15:09:56.000000000 -1000 @@ -505,6 +505,14 @@ main(int argc, char **argv) { /* Add the ddns update style enumeration prior to parsing. */ add_enumeration (&ddns_styles); @@ -194,8 +194,8 @@ diff -up dhcp-4.0.0/server/dhcpd.c.ldap dhcp-4.0.0/server/dhcpd.c if (!group_allocate (&root_group, MDL)) log_fatal ("Can't allocate root group!"); diff -up /dev/null dhcp-4.0.0/server/ldap.c ---- /dev/null 2008-01-11 10:40:59.147013395 -1000 -+++ dhcp-4.0.0/server/ldap.c 2008-01-14 10:42:59.000000000 -1000 +--- /dev/null 2008-01-19 23:52:35.158021373 -1000 ++++ dhcp-4.0.0/server/ldap.c 2008-01-22 15:09:56.000000000 -1000 @@ -0,0 +1,2004 @@ +/* ldap.c + @@ -2203,7 +2203,7 @@ diff -up /dev/null dhcp-4.0.0/server/ldap.c +#endif diff -up dhcp-4.0.0/server/confpars.c.ldap dhcp-4.0.0/server/confpars.c --- dhcp-4.0.0/server/confpars.c.ldap 2007-11-30 11:51:43.000000000 -1000 -+++ dhcp-4.0.0/server/confpars.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/server/confpars.c 2008-01-22 15:09:56.000000000 -1000 @@ -60,7 +60,17 @@ void parse_trace_setup () isc_result_t readconf () @@ -2225,7 +2225,7 @@ diff -up dhcp-4.0.0/server/confpars.c.ldap dhcp-4.0.0/server/confpars.c isc_result_t read_conf_file (const char *filename, struct group *group, diff -up dhcp-4.0.0/server/class.c.ldap dhcp-4.0.0/server/class.c --- dhcp-4.0.0/server/class.c.ldap 2007-09-05 07:32:10.000000000 -1000 -+++ dhcp-4.0.0/server/class.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/server/class.c 2008-01-22 15:09:56.000000000 -1000 @@ -84,6 +84,7 @@ int check_collection (packet, lease, col int matched = 0; int status; @@ -2255,7 +2255,7 @@ diff -up dhcp-4.0.0/server/class.c.ldap dhcp-4.0.0/server/class.c print_hex_1 (data.len, diff -up dhcp-4.0.0/server/stables.c.ldap dhcp-4.0.0/server/stables.c --- dhcp-4.0.0/server/stables.c.ldap 2007-11-20 08:34:37.000000000 -1000 -+++ dhcp-4.0.0/server/stables.c 2008-01-14 10:45:48.000000000 -1000 ++++ dhcp-4.0.0/server/stables.c 2008-01-22 15:09:56.000000000 -1000 @@ -238,9 +238,107 @@ static struct option server_options[] = { "dhcpv6-lease-file-name", "t", &server_universe, 54, 1 }, { "dhcpv6-pid-file-name", "t", &server_universe, 55, 1 }, @@ -2366,7 +2366,7 @@ diff -up dhcp-4.0.0/server/stables.c.ldap dhcp-4.0.0/server/stables.c { "ad-hoc", 1 }, diff -up dhcp-4.0.0/dst/Makefile.am.ldap dhcp-4.0.0/dst/Makefile.am --- dhcp-4.0.0/dst/Makefile.am.ldap 2007-05-29 06:32:10.000000000 -1000 -+++ dhcp-4.0.0/dst/Makefile.am 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/dst/Makefile.am 2008-01-22 15:09:56.000000000 -1000 @@ -2,7 +2,12 @@ AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 lib_LIBRARIES = libdst.a @@ -2382,7 +2382,7 @@ diff -up dhcp-4.0.0/dst/Makefile.am.ldap dhcp-4.0.0/dst/Makefile.am EXTRA_DIST = dst_internal.h md5.h md5_locl.h diff -up dhcp-4.0.0/common/print.c.ldap dhcp-4.0.0/common/print.c --- dhcp-4.0.0/common/print.c.ldap 2007-10-01 04:47:35.000000000 -1000 -+++ dhcp-4.0.0/common/print.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/common/print.c 2008-01-22 15:09:56.000000000 -1000 @@ -163,9 +163,9 @@ char *print_base64 (const unsigned char } @@ -2398,7 +2398,7 @@ diff -up dhcp-4.0.0/common/print.c.ldap dhcp-4.0.0/common/print.c char *s; diff -up dhcp-4.0.0/common/conflex.c.ldap dhcp-4.0.0/common/conflex.c --- dhcp-4.0.0/common/conflex.c.ldap 2007-10-31 09:13:33.000000000 -1000 -+++ dhcp-4.0.0/common/conflex.c 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/common/conflex.c 2008-01-22 15:10:31.000000000 -1000 @@ -43,6 +43,7 @@ static enum dhcp_token read_string PROTO static enum dhcp_token read_number PROTO ((int, struct parse *)); static enum dhcp_token read_num_or_name PROTO ((int, struct parse *)); @@ -2435,7 +2435,7 @@ diff -up dhcp-4.0.0/common/conflex.c.ldap dhcp-4.0.0/common/conflex.c c = cfile->inbuf [cfile->bufix]; cfile->bufix++; } -@@ -1415,3 +1424,23 @@ intern(char *atom, enum dhcp_token dfv) +@@ -1415,3 +1424,25 @@ intern(char *atom, enum dhcp_token dfv) } return dfv; } @@ -2445,23 +2445,25 @@ diff -up dhcp-4.0.0/common/conflex.c.ldap dhcp-4.0.0/common/conflex.c +{ + int c; + -+ cfile -> buflen = read (cfile -> file, cfile -> inbuf, cfile -> bufsiz); -+ if (cfile -> buflen == 0) { ++ ssize_t n = read (cfile -> file, cfile -> inbuf, cfile -> bufsiz); ++ if (n == 0) { + c = EOF; + cfile -> bufix = 0; -+ } else if (cfile -> buflen < 0) { ++ cfile -> buflen = 0; ++ } else if (n < 0) { + c = EOF; + cfile -> bufix = cfile -> buflen = 0; + } else { + c = cfile -> inbuf [0]; + cfile -> bufix = 1; ++ cfile -> buflen = n; + } + + return c; +} diff -up dhcp-4.0.0/includes/dhcpd.h.ldap dhcp-4.0.0/includes/dhcpd.h --- dhcp-4.0.0/includes/dhcpd.h.ldap 2007-12-08 09:36:00.000000000 -1000 -+++ dhcp-4.0.0/includes/dhcpd.h 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/includes/dhcpd.h 2008-01-22 15:09:56.000000000 -1000 @@ -101,6 +101,11 @@ typedef time_t TIME; #include #include @@ -2578,7 +2580,7 @@ diff -up dhcp-4.0.0/includes/dhcpd.h.ldap dhcp-4.0.0/includes/dhcpd.h HASH_FUNCTIONS_DECL(ia_na, unsigned char *, struct ia_na, ia_na_hash_t); diff -up dhcp-4.0.0/includes/site.h.ldap dhcp-4.0.0/includes/site.h --- dhcp-4.0.0/includes/site.h.ldap 2006-07-31 12:19:51.000000000 -1000 -+++ dhcp-4.0.0/includes/site.h 2008-01-14 10:42:59.000000000 -1000 ++++ dhcp-4.0.0/includes/site.h 2008-01-22 15:09:56.000000000 -1000 @@ -183,3 +183,13 @@ traces. */ @@ -2594,8 +2596,8 @@ diff -up dhcp-4.0.0/includes/site.h.ldap dhcp-4.0.0/includes/site.h + +#define USE_SSL diff -up /dev/null dhcp-4.0.0/includes/ldap_casa.h ---- /dev/null 2008-01-11 10:40:59.147013395 -1000 -+++ dhcp-4.0.0/includes/ldap_casa.h 2008-01-14 10:42:59.000000000 -1000 +--- /dev/null 2008-01-19 23:52:35.158021373 -1000 ++++ dhcp-4.0.0/includes/ldap_casa.h 2008-01-22 15:09:56.000000000 -1000 @@ -0,0 +1,83 @@ +/* ldap_casa.h + diff --git a/dhcp-4.0.0-libdhcp4client.patch b/dhcp-4.0.0-libdhcp4client.patch index ba3898f..dcbefe1 100644 --- a/dhcp-4.0.0-libdhcp4client.patch +++ b/dhcp-4.0.0-libdhcp4client.patch @@ -1,6 +1,6 @@ diff -up dhcp-4.0.0/configure.ac.libdhcp4client dhcp-4.0.0/configure.ac --- dhcp-4.0.0/configure.ac.libdhcp4client 2007-12-14 08:24:56.000000000 -1000 -+++ dhcp-4.0.0/configure.ac 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/configure.ac 2008-01-22 17:04:28.000000000 -1000 @@ -1,5 +1,32 @@ AC_INIT([DHCP], [4.0.0], [dhcp-users@isc.org]) @@ -46,7 +46,7 @@ diff -up dhcp-4.0.0/configure.ac.libdhcp4client dhcp-4.0.0/configure.ac # we sometimes need to know byte order for building packets diff -up dhcp-4.0.0/omapip/Makefile.am.libdhcp4client dhcp-4.0.0/omapip/Makefile.am --- dhcp-4.0.0/omapip/Makefile.am.libdhcp4client 2007-05-29 06:32:11.000000000 -1000 -+++ dhcp-4.0.0/omapip/Makefile.am 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/omapip/Makefile.am 2008-01-22 17:04:28.000000000 -1000 @@ -1,10 +1,18 @@ lib_LIBRARIES = libomapi.a +noinst_LIBRARIES = libomapiLIBDHCP.a @@ -68,7 +68,7 @@ diff -up dhcp-4.0.0/omapip/Makefile.am.libdhcp4client dhcp-4.0.0/omapip/Makefile diff -up dhcp-4.0.0/omapip/dispatch.c.libdhcp4client dhcp-4.0.0/omapip/dispatch.c --- dhcp-4.0.0/omapip/dispatch.c.libdhcp4client 2007-11-30 11:51:43.000000000 -1000 -+++ dhcp-4.0.0/omapip/dispatch.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/omapip/dispatch.c 2008-01-22 17:04:28.000000000 -1000 @@ -37,7 +37,7 @@ #include #include @@ -79,8 +79,8 @@ diff -up dhcp-4.0.0/omapip/dispatch.c.libdhcp4client dhcp-4.0.0/omapip/dispatch. OMAPI_OBJECT_ALLOC (omapi_io, diff -up dhcp-4.0.0/omapip/errwarn.c.libdhcp4client dhcp-4.0.0/omapip/errwarn.c ---- dhcp-4.0.0/omapip/errwarn.c.libdhcp4client 2008-01-14 13:03:05.000000000 -1000 -+++ dhcp-4.0.0/omapip/errwarn.c 2008-01-14 13:03:05.000000000 -1000 +--- dhcp-4.0.0/omapip/errwarn.c.libdhcp4client 2008-01-22 17:04:28.000000000 -1000 ++++ dhcp-4.0.0/omapip/errwarn.c 2008-01-22 17:04:28.000000000 -1000 @@ -37,6 +37,11 @@ #include #include @@ -200,7 +200,7 @@ diff -up dhcp-4.0.0/omapip/errwarn.c.libdhcp4client dhcp-4.0.0/omapip/errwarn.c diff -up dhcp-4.0.0/omapip/alloc.c.libdhcp4client dhcp-4.0.0/omapip/alloc.c --- dhcp-4.0.0/omapip/alloc.c.libdhcp4client 2007-07-12 20:43:42.000000000 -1000 -+++ dhcp-4.0.0/omapip/alloc.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/omapip/alloc.c 2008-01-22 17:04:28.000000000 -1000 @@ -37,6 +37,33 @@ #include @@ -257,8 +257,8 @@ diff -up dhcp-4.0.0/omapip/alloc.c.libdhcp4client dhcp-4.0.0/omapip/alloc.c #if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \ diff -up dhcp-4.0.0/dst/Makefile.am.libdhcp4client dhcp-4.0.0/dst/Makefile.am ---- dhcp-4.0.0/dst/Makefile.am.libdhcp4client 2008-01-14 13:03:05.000000000 -1000 -+++ dhcp-4.0.0/dst/Makefile.am 2008-01-14 13:03:05.000000000 -1000 +--- dhcp-4.0.0/dst/Makefile.am.libdhcp4client 2008-01-22 17:04:28.000000000 -1000 ++++ dhcp-4.0.0/dst/Makefile.am 2008-01-22 17:04:28.000000000 -1000 @@ -2,7 +2,7 @@ AM_CPPFLAGS = -DMINIRES_LIB -DHMAC_MD5 lib_LIBRARIES = libdst.a @@ -279,7 +279,7 @@ diff -up dhcp-4.0.0/dst/Makefile.am.libdhcp4client dhcp-4.0.0/dst/Makefile.am EXTRA_DIST = dst_internal.h md5.h md5_locl.h diff -up dhcp-4.0.0/dst/hmac_link.c.libdhcp4client dhcp-4.0.0/dst/hmac_link.c --- dhcp-4.0.0/dst/hmac_link.c.libdhcp4client 2007-12-05 14:50:22.000000000 -1000 -+++ dhcp-4.0.0/dst/hmac_link.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/dst/hmac_link.c 2008-01-22 17:04:28.000000000 -1000 @@ -39,6 +39,10 @@ static const char rcsid[] = "$Header: /p #include "dst_internal.h" @@ -367,7 +367,7 @@ diff -up dhcp-4.0.0/dst/hmac_link.c.libdhcp4client dhcp-4.0.0/dst/hmac_link.c memset(dst_t_func[KEY_HMAC_MD5], 0, sizeof(struct dst_func)); diff -up dhcp-4.0.0/common/Makefile.am.libdhcp4client dhcp-4.0.0/common/Makefile.am --- dhcp-4.0.0/common/Makefile.am.libdhcp4client 2007-11-16 01:04:11.000000000 -1000 -+++ dhcp-4.0.0/common/Makefile.am 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/common/Makefile.am 2008-01-22 17:04:28.000000000 -1000 @@ -1,11 +1,17 @@ AM_CPPFLAGS = -I.. -DLOCALSTATEDIR='"@localstatedir@"' @@ -389,7 +389,7 @@ diff -up dhcp-4.0.0/common/Makefile.am.libdhcp4client dhcp-4.0.0/common/Makefile diff -up dhcp-4.0.0/common/discover.c.libdhcp4client dhcp-4.0.0/common/discover.c --- dhcp-4.0.0/common/discover.c.libdhcp4client 2007-10-05 12:29:51.000000000 -1000 -+++ dhcp-4.0.0/common/discover.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/common/discover.c 2008-01-22 17:04:28.000000000 -1000 @@ -883,6 +883,10 @@ add_ipv6_addr_to_interface(struct interf register that interface with the network I/O software, figure out what subnet it's on, and add it to the list of interfaces. */ @@ -431,7 +431,7 @@ diff -up dhcp-4.0.0/common/discover.c.libdhcp4client dhcp-4.0.0/common/discover. if (fallback_interface) { diff -up dhcp-4.0.0/common/tree.c.libdhcp4client dhcp-4.0.0/common/tree.c --- dhcp-4.0.0/common/tree.c.libdhcp4client 2007-08-22 03:41:37.000000000 -1000 -+++ dhcp-4.0.0/common/tree.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/common/tree.c 2008-01-22 17:04:28.000000000 -1000 @@ -41,7 +41,7 @@ # include #endif @@ -451,7 +451,7 @@ diff -up dhcp-4.0.0/common/tree.c.libdhcp4client dhcp-4.0.0/common/tree.c struct data_string *result; diff -up dhcp-4.0.0/common/options.c.libdhcp4client dhcp-4.0.0/common/options.c --- dhcp-4.0.0/common/options.c.libdhcp4client 2007-11-30 11:51:43.000000000 -1000 -+++ dhcp-4.0.0/common/options.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/common/options.c 2008-01-22 17:04:28.000000000 -1000 @@ -3392,6 +3392,7 @@ fqdn6_universe_decode(struct option_stat return 0; } @@ -461,8 +461,8 @@ diff -up dhcp-4.0.0/common/options.c.libdhcp4client dhcp-4.0.0/common/options.c struct client_state *client_state, struct option_state *in_options, diff -up dhcp-4.0.0/common/dispatch.c.libdhcp4client dhcp-4.0.0/common/dispatch.c ---- dhcp-4.0.0/common/dispatch.c.libdhcp4client 2008-01-14 13:03:05.000000000 -1000 -+++ dhcp-4.0.0/common/dispatch.c 2008-01-14 13:03:05.000000000 -1000 +--- dhcp-4.0.0/common/dispatch.c.libdhcp4client 2008-01-22 17:04:28.000000000 -1000 ++++ dhcp-4.0.0/common/dispatch.c 2008-01-22 17:04:28.000000000 -1000 @@ -34,8 +34,24 @@ #include "dhcpd.h" @@ -734,7 +734,7 @@ diff -up dhcp-4.0.0/common/dispatch.c.libdhcp4client dhcp-4.0.0/common/dispatch. } diff -up dhcp-4.0.0/common/alloc.c.libdhcp4client dhcp-4.0.0/common/alloc.c --- dhcp-4.0.0/common/alloc.c.libdhcp4client 2007-10-23 14:54:11.000000000 -1000 -+++ dhcp-4.0.0/common/alloc.c 2008-01-14 13:03:05.000000000 -1000 ++++ dhcp-4.0.0/common/alloc.c 2008-01-22 17:04:28.000000000 -1000 @@ -1004,7 +1004,11 @@ int executable_statement_reference (ptr, return 1; } @@ -748,8 +748,8 @@ diff -up dhcp-4.0.0/common/alloc.c.libdhcp4client dhcp-4.0.0/common/alloc.c #if defined (DEBUG_MEMORY_LEAKAGE) || \ defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT) diff -up dhcp-4.0.0/includes/dhcpd.h.libdhcp4client dhcp-4.0.0/includes/dhcpd.h ---- dhcp-4.0.0/includes/dhcpd.h.libdhcp4client 2008-01-14 13:03:05.000000000 -1000 -+++ dhcp-4.0.0/includes/dhcpd.h 2008-01-14 13:03:05.000000000 -1000 +--- dhcp-4.0.0/includes/dhcpd.h.libdhcp4client 2008-01-22 17:04:28.000000000 -1000 ++++ dhcp-4.0.0/includes/dhcpd.h 2008-01-22 17:05:02.000000000 -1000 @@ -1199,14 +1199,6 @@ struct hardware_link { typedef void (*tvref_t)(void *, void *, const char *, int); @@ -781,9 +781,20 @@ diff -up dhcp-4.0.0/includes/dhcpd.h.libdhcp4client dhcp-4.0.0/includes/dhcpd.h extern omapi_object_type_t *dhcp_type_interface; #if defined (TRACING) extern trace_type_t *interface_trace; +@@ -2392,6 +2382,10 @@ extern struct universe dhcpv6_universe; + extern struct universe nwip_universe; + extern struct universe fqdn_universe; + extern struct universe vsio_universe; ++extern struct universe vendor_class_universe; ++extern struct universe vendor_universe; ++extern struct universe isc_universe; ++extern struct universe isc6_universe; + extern int dhcp_option_default_priority_list []; + extern int dhcp_option_default_priority_list_count; + extern const char *hardware_types [256]; diff -up dhcp-4.0.0/client/Makefile.am.libdhcp4client dhcp-4.0.0/client/Makefile.am --- dhcp-4.0.0/client/Makefile.am.libdhcp4client 2007-12-12 09:23:42.000000000 -1000 -+++ dhcp-4.0.0/client/Makefile.am 2008-01-14 13:03:24.000000000 -1000 ++++ dhcp-4.0.0/client/Makefile.am 2008-01-22 17:04:28.000000000 -1000 @@ -1,10 +1,18 @@ dist_sysconf_DATA = dhclient.conf sbin_PROGRAMS = dhclient @@ -804,8 +815,8 @@ diff -up dhcp-4.0.0/client/Makefile.am.libdhcp4client dhcp-4.0.0/client/Makefile EXTRA_DIST = $(man_MANS) diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient.c ---- dhcp-4.0.0/client/dhclient.c.libdhcp4client 2008-01-14 13:03:05.000000000 -1000 -+++ dhcp-4.0.0/client/dhclient.c 2008-01-14 13:03:05.000000000 -1000 +--- dhcp-4.0.0/client/dhclient.c.libdhcp4client 2008-01-22 17:04:28.000000000 -1000 ++++ dhcp-4.0.0/client/dhclient.c 2008-01-22 17:05:47.000000000 -1000 @@ -83,14 +83,50 @@ int nowait=0; char *mockup_relay = NULL; int bootp_broadcast_always = 0; @@ -931,7 +942,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. /* If we're not supposed to wait before getting the address, don't. */ if (nowait) -@@ -875,6 +925,126 @@ main(int argc, char **argv) { +@@ -875,6 +925,132 @@ main(int argc, char **argv) { /* Start dispatching packets and timeouts... */ dispatch (); @@ -1027,8 +1038,14 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. + dhcp_type_shared_network = NULL; + dhcp_type_control = NULL; + memset(&dhcp_universe, '\0', sizeof(struct universe)); ++ memset(&dhcpv6_universe, '\0', sizeof(struct universe)); + memset(&nwip_universe, '\0', sizeof(struct universe)); + memset(&fqdn_universe, '\0', sizeof(struct universe)); ++ memset(&vendor_class_universe, '\0', sizeof(struct universe)); ++ memset(&vendor_universe, '\0', sizeof(struct universe)); ++ memset(&vsio_universe, '\0', sizeof(struct universe)); ++ memset(&isc_universe, '\0', sizeof(struct universe)); ++ memset(&isc6_universe, '\0', sizeof(struct universe)); + universe_hash = 0; + universes = 0; + universe_count = 0; @@ -1058,7 +1075,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. /*NOTREACHED*/ return 0; -@@ -1270,7 +1440,20 @@ void dhcpack (packet) +@@ -1270,7 +1446,20 @@ void dhcpack (packet) if (client -> new -> rebind < cur_time) client -> new -> rebind = TIME_MAX; @@ -1079,7 +1096,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. } void bind_lease (client) -@@ -1306,6 +1489,9 @@ void bind_lease (client) +@@ -1306,6 +1495,9 @@ void bind_lease (client) return; } @@ -1089,7 +1106,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. /* Write out the new lease. */ write_client_lease (client, client -> new, 0, 0); -@@ -1398,10 +1584,12 @@ void state_stop (cpp) +@@ -1398,10 +1590,12 @@ void state_stop (cpp) } } @@ -1102,7 +1119,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. int write_lease (lease) struct lease *lease; -@@ -2074,6 +2262,10 @@ void state_panic (cpp) +@@ -2074,6 +2268,10 @@ void state_panic (cpp) tell the shell script that we failed to allocate an address, and try again later. */ if (onetry) { @@ -1113,7 +1130,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. if (!quiet) log_info ("Unable to obtain a lease on first try.%s", " Exiting."); -@@ -2691,7 +2883,9 @@ void destroy_client_lease (lease) +@@ -2691,7 +2889,9 @@ void destroy_client_lease (lease) free_client_lease (lease, MDL); } @@ -1123,7 +1140,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. int leases_written = 0; void rewrite_client_leases () -@@ -3218,6 +3412,54 @@ void script_write_params (client, prefix +@@ -3218,6 +3418,54 @@ void script_write_params (client, prefix int script_go (client) struct client_state *client; { @@ -1178,7 +1195,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. char *scriptName; char *argv [2]; char **envp; -@@ -3294,6 +3536,7 @@ int script_go (client) +@@ -3294,6 +3542,7 @@ int script_go (client) time(&cur_time); return (WIFEXITED (wstatus) ? WEXITSTATUS (wstatus) : -WTERMSIG (wstatus)); @@ -1186,7 +1203,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. } void client_envadd (struct client_state *client, -@@ -3376,6 +3619,9 @@ void go_daemon () +@@ -3376,6 +3625,9 @@ void go_daemon () /* Don't become a daemon if the user requested otherwise. */ if (no_daemon) { @@ -1196,7 +1213,7 @@ diff -up dhcp-4.0.0/client/dhclient.c.libdhcp4client dhcp-4.0.0/client/dhclient. write_client_pid_file (); return; } -@@ -3385,6 +3631,10 @@ void go_daemon () +@@ -3385,6 +3637,10 @@ void go_daemon () return; state = 1; diff --git a/dhcp-4.0.0-parser.patch b/dhcp-4.0.0-parser.patch deleted file mode 100644 index 45ddf08..0000000 --- a/dhcp-4.0.0-parser.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -up dhcp-4.0.0/common/conflex.c.parse dhcp-4.0.0/common/conflex.c ---- dhcp-4.0.0/common/conflex.c.parse 2008-01-17 09:05:17.000000000 -1000 -+++ dhcp-4.0.0/common/conflex.c 2008-01-17 09:06:48.000000000 -1000 -@@ -1434,16 +1438,18 @@ read_function (struct parse * cfile) - { - int c; - -- cfile -> buflen = read (cfile -> file, cfile -> inbuf, cfile -> bufsiz); -- if (cfile -> buflen == 0) { -+ ssize_t n = read (cfile -> file, cfile -> inbuf, cfile -> bufsiz); -+ if (n == 0) { - c = EOF; - cfile -> bufix = 0; -- } else if (cfile -> buflen < 0) { -+ cfile -> buflen = 0; -+ } else if (n < 0) { - c = EOF; - cfile -> bufix = cfile -> buflen = 0; - } else { - c = cfile -> inbuf [0]; - cfile -> bufix = 1; -+ cfile -> buflen = n; - } - - return c; diff --git a/dhcp.spec b/dhcp.spec index 55e6584..bf3bda9 100644 --- a/dhcp.spec +++ b/dhcp.spec @@ -4,10 +4,11 @@ Summary: DHCP (Dynamic Host Configuration Protocol) server and relay agent Name: dhcp Version: 4.0.0 -Release: 5%{?dist} -# NEVER CHANGE THE EPOCH on this package. The previous maintainer made -# incorrect use of the epoch and that's why it is at 12 now. It should have -# never been used, but it was. So we are stuck with it. +Release: 6%{?dist} +# NEVER CHANGE THE EPOCH on this package. The previous maintainer (prior to +# dcantrell maintaining the package) made incorrect use of the epoch and +# that's why it is at 12 now. It should have never been used, but it was. +# So we are stuck with it. Epoch: 12 License: ISC Group: System Environment/Daemons @@ -42,7 +43,6 @@ Patch13: %{name}-4.0.0-dhclient-anycast.patch Patch14: %{name}-4.0.0-manpages.patch Patch15: %{name}-4.0.0-paths.patch Patch16: %{name}-4.0.0-libdhcp4client.patch -Patch17: %{name}-4.0.0-parser.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: autoconf @@ -189,9 +189,6 @@ client library. # Add the libdhcp4client target (library version of dhclient) %patch16 -p1 -# Fix parsing errors -%patch17 -p1 - # Copy in documentation and example scripts for LDAP patch to dhcpd %{__install} -p -m 0644 %{SOURCE5} . %{__install} -p -m 0644 %{SOURCE6} doc/ @@ -404,6 +401,11 @@ fi %{_libdir}/libdhcp4client.so %changelog +* Tue Jan 22 2008 David Cantrell - 12:4.0.0-6 +- read_function() comes from the LDAP patch, so fix it there +- Init new struct universe structs in libdhcp4client so we don't crash on + multiple DHCP attempts (#428203) + * Thu Jan 17 2008 David Cantrell - 12:4.0.0-5 - Patch read_function() to handle size_t from read() correctly (#429207)