- Remove the -x switch enabling extended new option info. If given to
dhclient now, it's ignored.
This commit is contained in:
parent
a98e2cf2f1
commit
c637bc589d
@ -1,210 +0,0 @@
|
||||
--- dhcp-3.0.5/client/dhclient.c.enoi 2007-03-30 16:27:32.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.c 2007-03-30 16:27:51.000000000 -0400
|
||||
@@ -74,6 +74,9 @@
|
||||
int onetry=0;
|
||||
int quiet=0;
|
||||
int nowait=0;
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+int extended_option_environment = 0;
|
||||
+#endif
|
||||
|
||||
static void usage PROTO ((void));
|
||||
|
||||
@@ -203,6 +206,11 @@
|
||||
} else if (!strcmp (argv [i], "--version")) {
|
||||
log_info ("isc-dhclient-%s", DHCP_VERSION);
|
||||
exit (0);
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ } else if (!strcmp (argv [i], "-x")) {
|
||||
+ extended_option_environment = 1;
|
||||
+ new_option_info_tree = GENERATE_NEW_OPTION_INFO;
|
||||
+#endif
|
||||
} else if (argv [i][0] == '-') {
|
||||
usage ();
|
||||
} else {
|
||||
@@ -475,7 +483,11 @@
|
||||
log_info (arr);
|
||||
log_info (url);
|
||||
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ log_error ("Usage: dhclient [-1dqr] [-nwx] [-p <port>] %s",
|
||||
+#else
|
||||
log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
|
||||
+#endif
|
||||
"[-s server]");
|
||||
log_error (" [-cf config-file] [-lf lease-file]%s",
|
||||
"[-pf pid-file] [-e VAR=val]");
|
||||
@@ -2426,8 +2438,30 @@
|
||||
struct envadd_state {
|
||||
struct client_state *client;
|
||||
const char *prefix;
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ struct universe *universe;
|
||||
+#endif
|
||||
};
|
||||
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+static
|
||||
+void build_universe_info_envvar
|
||||
+( struct option_cache *oc,
|
||||
+ struct packet *p, struct lease *l,
|
||||
+ struct client_state *client,
|
||||
+ struct option_state *in_o,
|
||||
+ struct option_state *cf_o,
|
||||
+ struct binding_scope **scope,
|
||||
+ struct universe *u, void *es
|
||||
+)
|
||||
+{
|
||||
+ char info_name[512], info_data[512];
|
||||
+ snprintf(info_name, 512, "%s._universe_.", oc->option->universe->name);
|
||||
+ snprintf(info_data, 512, "%u:%s", oc->option->code,oc->option->format);
|
||||
+ client_envadd( client, info_name, oc->option->name, info_data );
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
void client_option_envadd (struct option_cache *oc,
|
||||
struct packet *packet, struct lease *lease,
|
||||
struct client_state *client_state,
|
||||
@@ -2444,6 +2478,28 @@
|
||||
in_options, cfg_options, scope, oc, MDL)) {
|
||||
if (data.len) {
|
||||
char name [256];
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ if (extended_option_environment) {
|
||||
+ if ((oc->option->universe != &dhcp_universe)
|
||||
+ && (oc->option->universe->index > fqdn_universe.index)
|
||||
+ && (es->universe != oc->option->universe)) {
|
||||
+ es->universe = oc->option->universe;
|
||||
+ (*(es->universe->foreach)) ((struct packet *)0,
|
||||
+ (struct lease *)0,
|
||||
+ client_state,
|
||||
+ in_options, cfg_options,
|
||||
+ scope, es->universe, es,
|
||||
+ build_universe_info_envvar);
|
||||
+ } else {
|
||||
+ if (lookup_new_option_info(oc->option) != NULL) {
|
||||
+ build_universe_info_envvar(oc, packet, lease,
|
||||
+ client_state, in_options,
|
||||
+ cfg_options, scope,
|
||||
+ oc->option->universe, es);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+#endif
|
||||
if (dhcp_option_ev_name (name, sizeof name,
|
||||
oc -> option)) {
|
||||
client_envadd (es -> client, es -> prefix,
|
||||
@@ -2470,6 +2526,7 @@
|
||||
|
||||
es.client = client;
|
||||
es.prefix = prefix;
|
||||
+ es.universe = NULL;
|
||||
|
||||
client_envadd (client,
|
||||
prefix, "ip_address", "%s", piaddr (lease -> address));
|
||||
@@ -2679,7 +2736,14 @@
|
||||
s = option -> name;
|
||||
if (j + 1 == buflen)
|
||||
return 0;
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ if (!extended_option_environment)
|
||||
+ buf[j++] = '_';
|
||||
+ else
|
||||
+ buf[j++] = '.';
|
||||
+#else
|
||||
buf [j++] = '_';
|
||||
+#endif
|
||||
}
|
||||
++i;
|
||||
} while (i != 2);
|
||||
--- dhcp-3.0.5/client/dhclient.8.enoi 2005-09-14 12:03:33.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.8 2007-03-30 16:27:32.000000000 -0400
|
||||
@@ -82,6 +82,9 @@
|
||||
.B -w
|
||||
]
|
||||
[
|
||||
+.B -x
|
||||
+]
|
||||
+[
|
||||
.I if0
|
||||
[
|
||||
.I ...ifN
|
||||
@@ -265,6 +268,11 @@
|
||||
supplying the
|
||||
.B -nw
|
||||
flag.
|
||||
+.PP
|
||||
+The -x argument enables extended option information to be created in the
|
||||
+-s dhclient-script environment, which would allow applications running
|
||||
+in that environment to handle options they do not know about in advance -
|
||||
+this is a Red Hat extension to support dhcdbd and NetworkManager.
|
||||
.SH CONFIGURATION
|
||||
The syntax of the dhclient.conf(5) file is discussed separately.
|
||||
.SH OMAPI
|
||||
--- dhcp-3.0.5/common/parse.c.enoi 2007-03-30 16:27:32.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/parse.c 2007-03-30 16:27:32.000000000 -0400
|
||||
@@ -1266,6 +1266,10 @@
|
||||
option_hash_add (option -> universe -> hash,
|
||||
(const char *)option -> name,
|
||||
0, option, MDL);
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+ if (new_option_info_tree != NULL)
|
||||
+ add_new_option_info(option);
|
||||
+#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
--- dhcp-3.0.5/common/tables.c.enoi 2006-02-22 17:43:27.000000000 -0500
|
||||
+++ dhcp-3.0.5/common/tables.c 2007-03-30 16:27:32.000000000 -0400
|
||||
@@ -1250,3 +1250,35 @@
|
||||
fqdn_universe.name, 0,
|
||||
&fqdn_universe, MDL);
|
||||
}
|
||||
+
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+#include <search.h>
|
||||
+
|
||||
+void *new_option_info_tree = NULL;
|
||||
+
|
||||
+static int new_option_info_comparator(const void * p1, const void * p2) {
|
||||
+ uint32_t ocode1 = (((const struct option*)p1)->universe->index << 8)
|
||||
+ | (((const struct option*)p1)->code),
|
||||
+ ocode2 = (((const struct option*)p2)->universe->index << 8)
|
||||
+ | (((const struct option*)p2)->code);
|
||||
+
|
||||
+ return((ocode1 == ocode2) ? 0 : ((ocode1 > ocode2) ? 1 : -1));
|
||||
+}
|
||||
+
|
||||
+void *add_new_option_info(struct option * option) {
|
||||
+ if (option->universe->index >= fqdn_universe.index)
|
||||
+ return NULL;
|
||||
+
|
||||
+ if (new_option_info_tree == GENERATE_NEW_OPTION_INFO)
|
||||
+ new_option_info_tree = NULL;
|
||||
+
|
||||
+ return tsearch(option, &(new_option_info_tree), new_option_info_comparator);
|
||||
+}
|
||||
+
|
||||
+void *lookup_new_option_info(struct option * option) {
|
||||
+ if (new_option_info_tree == GENERATE_NEW_OPTION_INFO)
|
||||
+ return NULL;
|
||||
+
|
||||
+ return tfind(option, &(new_option_info_tree), new_option_info_comparator);
|
||||
+}
|
||||
+#endif
|
||||
--- dhcp-3.0.5/includes/dhcpd.h.enoi 2006-05-17 16:16:59.000000000 -0400
|
||||
+++ dhcp-3.0.5/includes/dhcpd.h 2007-03-30 16:27:32.000000000 -0400
|
||||
@@ -1811,6 +1811,13 @@
|
||||
void initialize_common_option_spaces PROTO ((void));
|
||||
struct universe *config_universe;
|
||||
|
||||
+#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
+#define GENERATE_NEW_OPTION_INFO ((void*)1)
|
||||
+extern void *new_option_info_tree;
|
||||
+extern void *add_new_option_info(struct option *);
|
||||
+extern void *lookup_new_option_info(struct option *);
|
||||
+#endif
|
||||
+
|
||||
/* stables.c */
|
||||
#if defined (FAILOVER_PROTOCOL)
|
||||
extern failover_option_t null_failover_option;
|
@ -1,6 +1,7 @@
|
||||
--- dhcp-3.0.5/client/dhclient.c.usage 2007-04-17 10:43:00.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.c 2007-04-17 10:43:30.000000000 -0400
|
||||
@@ -819,20 +819,29 @@
|
||||
diff -up dhcp-3.0.6/client/dhclient.c.usage dhcp-3.0.6/client/dhclient.c
|
||||
--- dhcp-3.0.6/client/dhclient.c.usage 2007-08-15 11:48:12.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.c 2007-08-15 11:50:22.000000000 -0400
|
||||
@@ -808,16 +808,25 @@ int main (argc, argv, envp)
|
||||
|
||||
static void usage ()
|
||||
{
|
||||
@ -8,6 +9,12 @@
|
||||
- log_info (copyright);
|
||||
- log_info (arr);
|
||||
- log_info (url);
|
||||
-
|
||||
- log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
|
||||
- "[-s server]");
|
||||
- log_error (" [-cf config-file] [-lf lease-file]%s",
|
||||
- "[-pf pid-file] [-e VAR=val]");
|
||||
- log_fatal (" [-sf script-file] [interface]");
|
||||
+ printf ("%s %s\n", message, DHCP_VERSION);
|
||||
+ printf (copyright);
|
||||
+ printf ("\n");
|
||||
@ -15,18 +22,8 @@
|
||||
+ printf ("\n");
|
||||
+ printf (url);
|
||||
+ printf ("\n");
|
||||
|
||||
#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
- log_error ("Usage: dhclient [-1dqr] [-nwx] [-p <port>] %s",
|
||||
+ printf ("Usage: dhclient [-1dqr] [-nwx] [-p <port>] %s",
|
||||
#else
|
||||
- log_error ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
|
||||
+
|
||||
+ printf ("Usage: dhclient [-1dqr] [-nw] [-p <port>] %s",
|
||||
#endif
|
||||
- "[-s server]");
|
||||
- log_error (" [-cf config-file] [-lf lease-file]%s",
|
||||
- "[-pf pid-file] [-e VAR=val]");
|
||||
- log_fatal (" [-sf script-file] [interface]");
|
||||
+ "[-s server]");
|
||||
+ printf (" [-cf config-file] [-lf lease-file]%s",
|
||||
+ "[-pf pid-file] [-e VAR=val]");
|
13
dhcp-3.0.6-ignore-hyphen-x.patch
Normal file
13
dhcp-3.0.6-ignore-hyphen-x.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff -up dhcp-3.0.6/client/dhclient.c.enoi dhcp-3.0.6/client/dhclient.c
|
||||
--- dhcp-3.0.6/client/dhclient.c.enoi 2007-08-15 16:14:32.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.c 2007-08-15 16:17:17.000000000 -0400
|
||||
@@ -259,6 +259,9 @@ int main (argc, argv, envp)
|
||||
} else if (!strcmp (argv [i], "--version")) {
|
||||
log_info ("isc-dhclient-%s", DHCP_VERSION);
|
||||
exit (0);
|
||||
+ } else if (!strcmp (argv [i], "-x")) {
|
||||
+ /* ignored for compatibility */
|
||||
+ continue;
|
||||
} else if (!strcmp (argv [i], "-I")) {
|
||||
if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
|
||||
usage ();
|
@ -1,7 +1,8 @@
|
||||
--- dhcp-3.0.5/client/dhclient.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.c 2007-03-30 20:54:34.000000000 -0400
|
||||
@@ -85,16 +85,52 @@
|
||||
#endif
|
||||
diff -up dhcp-3.0.6/client/dhclient.c.libdhcp4client dhcp-3.0.6/client/dhclient.c
|
||||
--- dhcp-3.0.6/client/dhclient.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.c 2007-08-15 16:26:24.000000000 -0400
|
||||
@@ -82,16 +82,52 @@ int quiet=0;
|
||||
int nowait=0;
|
||||
int bootp_broadcast_always = 0;
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
@ -53,7 +54,7 @@
|
||||
int i;
|
||||
struct servent *ent;
|
||||
struct interface_info *ip;
|
||||
@@ -122,6 +158,7 @@
|
||||
@@ -119,6 +155,7 @@ int main (argc, argv, envp)
|
||||
char *arg_conf = NULL;
|
||||
int arg_conf_len = 0;
|
||||
|
||||
@ -61,7 +62,7 @@
|
||||
/* Make sure we have stdin, stdout and stderr. */
|
||||
i = open ("/dev/null", O_RDWR);
|
||||
if (i == 0)
|
||||
@@ -142,6 +179,7 @@
|
||||
@@ -139,6 +176,7 @@ int main (argc, argv, envp)
|
||||
#if !(defined (DEBUG) || defined (SYSLOG_4_2) || defined (__CYGWIN32__))
|
||||
setlogmask (LOG_UPTO (LOG_INFO));
|
||||
#endif
|
||||
@ -69,7 +70,7 @@
|
||||
|
||||
/* Set up the OMAPI. */
|
||||
status = omapi_init ();
|
||||
@@ -439,8 +477,12 @@
|
||||
@@ -431,8 +469,12 @@ int main (argc, argv, envp)
|
||||
}
|
||||
}
|
||||
|
||||
@ -82,7 +83,7 @@
|
||||
if (!quiet) {
|
||||
log_info ("%s %s", message, DHCP_VERSION);
|
||||
log_info (copyright);
|
||||
@@ -449,6 +491,7 @@
|
||||
@@ -441,6 +483,7 @@ int main (argc, argv, envp)
|
||||
log_info ("%s", "");
|
||||
} else
|
||||
log_perror = 0;
|
||||
@ -90,7 +91,7 @@
|
||||
|
||||
/* If we're given a relay agent address to insert, for testing
|
||||
purposes, figure out what it is. */
|
||||
@@ -683,11 +726,17 @@
|
||||
@@ -672,11 +715,17 @@ int main (argc, argv, envp)
|
||||
arg_conf_len = 0;
|
||||
}
|
||||
|
||||
@ -108,7 +109,7 @@
|
||||
|
||||
/* XXX */
|
||||
/* config_counter(&snd_counter, &rcv_counter); */
|
||||
@@ -706,7 +755,7 @@
|
||||
@@ -695,7 +744,7 @@ int main (argc, argv, envp)
|
||||
if (!persist) {
|
||||
/* Nothing more to do. */
|
||||
log_info ("No broadcast interfaces found - exiting.");
|
||||
@ -117,7 +118,7 @@
|
||||
}
|
||||
} else if (!release_mode) {
|
||||
/* Call the script with the list of interfaces. */
|
||||
@@ -800,6 +849,7 @@
|
||||
@@ -789,6 +838,7 @@ int main (argc, argv, envp)
|
||||
dmalloc_outstanding = 0;
|
||||
#endif
|
||||
|
||||
@ -125,7 +126,7 @@
|
||||
/* If we're not supposed to wait before getting the address,
|
||||
don't. */
|
||||
if (nowait)
|
||||
@@ -812,6 +862,128 @@
|
||||
@@ -801,6 +851,126 @@ int main (argc, argv, envp)
|
||||
|
||||
/* Start dispatching packets and timeouts... */
|
||||
dispatch ();
|
||||
@ -175,7 +176,6 @@
|
||||
+ default_lease_time = 43200;
|
||||
+
|
||||
+ dhcp_max_agent_option_packet_length = 0;
|
||||
+ extended_option_environment = 0;
|
||||
+ iaddr_any.len = 4;
|
||||
+ memset(&(iaddr_any.iabuf[0]), '\0', 4);
|
||||
+ iaddr_broadcast.len = 4;
|
||||
@ -198,7 +198,6 @@
|
||||
+ path_dhclient_script = path_dhclient_script_array;
|
||||
+ remote_port = 0;
|
||||
+ resolver_inited = 0;
|
||||
+ new_option_info_tree = 0;
|
||||
+ log_perror = 1;
|
||||
+ global_scope = NULL;
|
||||
+ root_group = NULL;
|
||||
@ -254,7 +253,7 @@
|
||||
|
||||
/*NOTREACHED*/
|
||||
return 0;
|
||||
@@ -1204,7 +1376,20 @@
|
||||
@@ -1191,7 +1361,20 @@ void dhcpack (packet)
|
||||
if (client -> new -> rebind < cur_time)
|
||||
client -> new -> rebind = TIME_MAX;
|
||||
|
||||
@ -275,7 +274,7 @@
|
||||
}
|
||||
|
||||
void bind_lease (client)
|
||||
@@ -1240,6 +1425,9 @@
|
||||
@@ -1227,6 +1410,9 @@ void bind_lease (client)
|
||||
return;
|
||||
}
|
||||
|
||||
@ -285,7 +284,7 @@
|
||||
/* Write out the new lease. */
|
||||
write_client_lease (client, client -> new, 0, 0);
|
||||
|
||||
@@ -1340,11 +1528,13 @@
|
||||
@@ -1327,11 +1513,13 @@ int commit_leases ()
|
||||
return 0;
|
||||
}
|
||||
|
||||
@ -299,7 +298,7 @@
|
||||
|
||||
int write_host (host)
|
||||
struct host_decl *host;
|
||||
@@ -1915,6 +2105,10 @@
|
||||
@@ -1902,6 +2090,10 @@ void state_panic (cpp)
|
||||
tell the shell script that we failed to allocate an address,
|
||||
and try again later. */
|
||||
if (onetry) {
|
||||
@ -310,7 +309,7 @@
|
||||
if (!quiet)
|
||||
log_info ("Unable to obtain a lease on first try.%s",
|
||||
" Exiting.");
|
||||
@@ -2519,7 +2713,9 @@
|
||||
@@ -2506,7 +2698,9 @@ void destroy_client_lease (lease)
|
||||
free_client_lease (lease, MDL);
|
||||
}
|
||||
|
||||
@ -320,7 +319,7 @@
|
||||
|
||||
void rewrite_client_leases ()
|
||||
{
|
||||
@@ -2960,6 +3156,54 @@
|
||||
@@ -2902,6 +3096,54 @@ void script_write_params (client, prefix
|
||||
int script_go (client)
|
||||
struct client_state *client;
|
||||
{
|
||||
@ -375,7 +374,7 @@
|
||||
char *scriptName;
|
||||
char *argv [2];
|
||||
char **envp;
|
||||
@@ -3033,6 +3277,7 @@
|
||||
@@ -2978,6 +3220,7 @@ int script_go (client)
|
||||
GET_TIME (&cur_time);
|
||||
return (WIFEXITED (wstatus) ?
|
||||
WEXITSTATUS (wstatus) : -WTERMSIG (wstatus));
|
||||
@ -383,7 +382,7 @@
|
||||
}
|
||||
|
||||
void client_envadd (struct client_state *client,
|
||||
@@ -3123,6 +3368,9 @@
|
||||
@@ -3061,6 +3304,9 @@ void go_daemon ()
|
||||
|
||||
/* Don't become a daemon if the user requested otherwise. */
|
||||
if (no_daemon) {
|
||||
@ -393,7 +392,7 @@
|
||||
write_client_pid_file ();
|
||||
return;
|
||||
}
|
||||
@@ -3132,6 +3380,10 @@
|
||||
@@ -3070,6 +3316,10 @@ void go_daemon ()
|
||||
return;
|
||||
state = 1;
|
||||
|
||||
@ -404,9 +403,226 @@
|
||||
/* Stop logging to stderr... */
|
||||
log_perror = 0;
|
||||
|
||||
--- dhcp-3.0.5/common/discover.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/discover.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -121,6 +121,10 @@
|
||||
diff -up dhcp-3.0.6/omapip/alloc.c.libdhcp4client dhcp-3.0.6/omapip/alloc.c
|
||||
--- dhcp-3.0.6/omapip/alloc.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/omapip/alloc.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -40,6 +40,33 @@ static char copyright[] =
|
||||
|
||||
#include <omapip/omapip_p.h>
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+/* OK, we need a quick and dirty way of freeing all memory used by libdhcp.
|
||||
+ All pointers will be stored in a glibc tree on alloc, and removed on free.
|
||||
+ This is not too expensive for light single-call library use.
|
||||
+*/
|
||||
+#include <search.h>
|
||||
+extern void tdestroy (void *root, void (*free_node)(void *nodep));
|
||||
+static void *all_pointers=0L;
|
||||
+static int ptr_comparator(const void *p1, const void *p2) {
|
||||
+ return ((p1 == p2) ? 0 : ((p1 > p2) ? 1 : -1));
|
||||
+}
|
||||
+
|
||||
+static void record_pointer(void *ptr) {
|
||||
+ tsearch(ptr, &(all_pointers), ptr_comparator);
|
||||
+}
|
||||
+
|
||||
+static void forget_pointer(void *ptr) {
|
||||
+ tdelete(ptr, &(all_pointers), ptr_comparator);
|
||||
+}
|
||||
+
|
||||
+void omapi_free_all_pointers(void) {
|
||||
+ if (all_pointers != NULL)
|
||||
+ tdestroy(all_pointers, free);
|
||||
+ all_pointers = NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
|
||||
defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
|
||||
struct dmalloc_preamble *dmalloc_list;
|
||||
@@ -77,7 +104,9 @@ VOIDPTR dmalloc (size, file, line)
|
||||
return (VOIDPTR)0;
|
||||
|
||||
foo = malloc(len);
|
||||
-
|
||||
+#ifdef LIBDHCP
|
||||
+ record_pointer(foo);
|
||||
+#endif
|
||||
if (!foo)
|
||||
return (VOIDPTR)0;
|
||||
bar = (VOIDPTR)(foo + DMDOFFSET);
|
||||
@@ -199,6 +228,9 @@ void dfree (ptr, file, line)
|
||||
0, (unsigned char *)ptr + DMDOFFSET, 0, 1, RC_MALLOC);
|
||||
#endif
|
||||
free (ptr);
|
||||
+#ifdef LIBDHCP
|
||||
+ forget_pointer(ptr);
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
|
||||
diff -up dhcp-3.0.6/omapip/dispatch.c.libdhcp4client dhcp-3.0.6/omapip/dispatch.c
|
||||
--- dhcp-3.0.6/omapip/dispatch.c.libdhcp4client 2004-11-24 12:39:17.000000000 -0500
|
||||
+++ dhcp-3.0.6/omapip/dispatch.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
#include <omapip/omapip_p.h>
|
||||
|
||||
-static omapi_io_object_t omapi_io_states;
|
||||
+omapi_io_object_t omapi_io_states;
|
||||
TIME cur_time;
|
||||
|
||||
OMAPI_OBJECT_ALLOC (omapi_io,
|
||||
diff -up dhcp-3.0.6/omapip/errwarn.c.libdhcp4client dhcp-3.0.6/omapip/errwarn.c
|
||||
--- dhcp-3.0.6/omapip/errwarn.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/omapip/errwarn.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -39,6 +39,11 @@ static char copyright[] =
|
||||
#include <omapip/omapip_p.h>
|
||||
#include <errno.h>
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+#include <libdhcp_control.h>
|
||||
+extern LIBDHCP_Control *libdhcp_control;
|
||||
+#endif
|
||||
+
|
||||
#ifdef DEBUG
|
||||
int log_perror = -1;
|
||||
#else
|
||||
@@ -48,7 +53,9 @@ int log_priority;
|
||||
void (*log_cleanup) (void);
|
||||
|
||||
#define CVT_BUF_MAX 1023
|
||||
+#ifndef LIBDHCP
|
||||
static char mbuf [CVT_BUF_MAX + 1];
|
||||
+#endif
|
||||
static char fbuf [CVT_BUF_MAX + 1];
|
||||
|
||||
/* Log an error message, then exit... */
|
||||
@@ -58,6 +65,16 @@ void log_fatal (const char * fmt, ... )
|
||||
va_list list;
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
+
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && (libdhcp_control->eh)) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_FATAL, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ libdhcp_control->finished = 1;
|
||||
+ return;
|
||||
+ }
|
||||
+#else
|
||||
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
@@ -93,6 +110,7 @@ void log_fatal (const char * fmt, ... )
|
||||
if (log_cleanup)
|
||||
(*log_cleanup) ();
|
||||
exit (1);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Log an error message... */
|
||||
@@ -103,6 +121,13 @@ int log_error (const char * fmt, ...)
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_ERR, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -120,7 +145,7 @@ int log_error (const char * fmt, ...)
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -132,6 +157,13 @@ int log_info (const char *fmt, ...)
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_INFO, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -149,7 +181,7 @@ int log_info (const char *fmt, ...)
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -160,7 +192,13 @@ int log_debug (const char *fmt, ...)
|
||||
va_list list;
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
-
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_DEBUG, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -178,7 +216,7 @@ int log_debug (const char *fmt, ...)
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
diff -up dhcp-3.0.6/includes/dhcpd.h.libdhcp4client dhcp-3.0.6/includes/dhcpd.h
|
||||
--- dhcp-3.0.6/includes/dhcpd.h.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/includes/dhcpd.h 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -861,14 +861,6 @@ struct hardware_link {
|
||||
|
||||
typedef void (*tvref_t)(void *, void *, const char *, int);
|
||||
typedef void (*tvunref_t)(void *, const char *, int);
|
||||
-struct timeout {
|
||||
- struct timeout *next;
|
||||
- TIME when;
|
||||
- void (*func) PROTO ((void *));
|
||||
- void *what;
|
||||
- tvref_t ref;
|
||||
- tvunref_t unref;
|
||||
-};
|
||||
|
||||
struct protocol {
|
||||
struct protocol *next;
|
||||
@@ -1795,7 +1787,6 @@ extern void (*bootp_packet_handler) PROT
|
||||
struct dhcp_packet *, unsigned,
|
||||
unsigned int,
|
||||
struct iaddr, struct hardware *));
|
||||
-extern struct timeout *timeouts;
|
||||
extern omapi_object_type_t *dhcp_type_interface;
|
||||
#if defined (TRACING)
|
||||
trace_type_t *interface_trace;
|
||||
diff -up dhcp-3.0.6/common/discover.c.libdhcp4client dhcp-3.0.6/common/discover.c
|
||||
--- dhcp-3.0.6/common/discover.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/discover.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -121,6 +121,10 @@ isc_result_t interface_initialize (omapi
|
||||
register that interface with the network I/O software, figure out what
|
||||
subnet it's on, and add it to the list of interfaces. */
|
||||
|
||||
@ -417,7 +633,7 @@
|
||||
void discover_interfaces (state)
|
||||
int state;
|
||||
{
|
||||
@@ -139,7 +143,9 @@
|
||||
@@ -139,7 +143,9 @@ void discover_interfaces (state)
|
||||
char *s;
|
||||
#endif
|
||||
isc_result_t status;
|
||||
@ -427,7 +643,7 @@
|
||||
int wifcount = 0;
|
||||
|
||||
/* Create an unbound datagram socket to do the SIOCGIFADDR ioctl on. */
|
||||
@@ -692,10 +698,17 @@
|
||||
@@ -692,10 +698,17 @@ void discover_interfaces (state)
|
||||
log_fatal ("Not configured to listen on any interfaces!");
|
||||
}
|
||||
|
||||
@ -445,9 +661,10 @@
|
||||
|
||||
#if defined (HAVE_SETFD)
|
||||
if (fallback_interface) {
|
||||
--- dhcp-3.0.5/common/alloc.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/alloc.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -1009,7 +1009,11 @@
|
||||
diff -up dhcp-3.0.6/common/alloc.c.libdhcp4client dhcp-3.0.6/common/alloc.c
|
||||
--- dhcp-3.0.6/common/alloc.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/alloc.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -1009,7 +1009,11 @@ int executable_statement_reference (ptr,
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -459,9 +676,10 @@
|
||||
|
||||
#if defined (DEBUG_MEMORY_LEAKAGE) || \
|
||||
defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
|
||||
--- dhcp-3.0.5/common/tree.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/tree.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -40,7 +40,7 @@
|
||||
diff -up dhcp-3.0.6/common/tree.c.libdhcp4client dhcp-3.0.6/common/tree.c
|
||||
--- dhcp-3.0.6/common/tree.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/tree.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -40,7 +40,7 @@ static char copyright[] =
|
||||
#include "dhcpd.h"
|
||||
#include <omapip/omapip_p.h>
|
||||
|
||||
@ -470,7 +688,7 @@
|
||||
|
||||
static int do_host_lookup PROTO ((struct data_string *,
|
||||
struct dns_host_entry *));
|
||||
@@ -2615,6 +2615,7 @@
|
||||
@@ -2615,6 +2615,7 @@ int evaluate_numeric_expression (result,
|
||||
result of that evaluation. There should never be both an expression
|
||||
and a valid data_string. */
|
||||
|
||||
@ -478,9 +696,10 @@
|
||||
int evaluate_option_cache (result, packet, lease, client_state,
|
||||
in_options, cfg_options, scope, oc, file, line)
|
||||
struct data_string *result;
|
||||
--- dhcp-3.0.5/common/options.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/options.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -2153,6 +2153,7 @@
|
||||
diff -up dhcp-3.0.6/common/options.c.libdhcp4client dhcp-3.0.6/common/options.c
|
||||
--- dhcp-3.0.6/common/options.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/options.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -2152,6 +2152,7 @@ int fqdn_option_space_encapsulate (resul
|
||||
return 1;
|
||||
}
|
||||
|
||||
@ -488,9 +707,10 @@
|
||||
void option_space_foreach (struct packet *packet, struct lease *lease,
|
||||
struct client_state *client_state,
|
||||
struct option_state *in_options,
|
||||
--- dhcp-3.0.5/common/dispatch.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/dispatch.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -39,8 +39,24 @@
|
||||
diff -up dhcp-3.0.6/common/dispatch.c.libdhcp4client dhcp-3.0.6/common/dispatch.c
|
||||
--- dhcp-3.0.6/common/dispatch.c.libdhcp4client 2007-08-15 16:24:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/dispatch.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -39,8 +39,24 @@ static char copyright[] =
|
||||
|
||||
#include "dhcpd.h"
|
||||
|
||||
@ -517,7 +737,7 @@
|
||||
|
||||
void set_time(TIME t)
|
||||
{
|
||||
@@ -53,9 +69,41 @@
|
||||
@@ -53,9 +69,41 @@ void set_time(TIME t)
|
||||
|
||||
struct timeval *process_outstanding_timeouts (struct timeval *tvp)
|
||||
{
|
||||
@ -559,7 +779,7 @@
|
||||
another:
|
||||
if (timeouts) {
|
||||
struct timeout *t;
|
||||
@@ -73,9 +121,15 @@
|
||||
@@ -73,9 +121,15 @@ struct timeval *process_outstanding_time
|
||||
tvp -> tv_sec = timeouts -> when;
|
||||
tvp -> tv_usec = 0;
|
||||
}
|
||||
@ -575,7 +795,7 @@
|
||||
}
|
||||
|
||||
/* Wait for packets to come in using select(). When one does, call
|
||||
@@ -104,13 +158,28 @@
|
||||
@@ -104,13 +158,28 @@ void add_timeout (when, where, what, ref
|
||||
tvref_t ref;
|
||||
tvunref_t unref;
|
||||
{
|
||||
@ -606,7 +826,7 @@
|
||||
if (t)
|
||||
t -> next = q -> next;
|
||||
else
|
||||
@@ -119,7 +188,29 @@
|
||||
@@ -119,7 +188,29 @@ void add_timeout (when, where, what, ref
|
||||
}
|
||||
t = q;
|
||||
}
|
||||
@ -636,7 +856,7 @@
|
||||
/* If we didn't supersede a timeout, allocate a timeout
|
||||
structure now. */
|
||||
if (!q) {
|
||||
@@ -128,7 +219,7 @@
|
||||
@@ -128,7 +219,7 @@ void add_timeout (when, where, what, ref
|
||||
free_timeouts = q -> next;
|
||||
} else {
|
||||
q = ((struct timeout *)
|
||||
@ -645,7 +865,7 @@
|
||||
if (!q)
|
||||
log_fatal ("add_timeout: no memory!");
|
||||
}
|
||||
@@ -158,22 +249,76 @@
|
||||
@@ -158,22 +249,76 @@ void add_timeout (when, where, what, ref
|
||||
if (t -> next -> when > q -> when) {
|
||||
q -> next = t -> next;
|
||||
t -> next = q;
|
||||
@ -722,7 +942,7 @@
|
||||
t = (struct timeout *)0;
|
||||
for (q = timeouts; q; q = q -> next) {
|
||||
if (q -> func == where && q -> what == what) {
|
||||
@@ -193,10 +338,15 @@
|
||||
@@ -193,10 +338,15 @@ void cancel_timeout (where, what)
|
||||
q -> next = free_timeouts;
|
||||
free_timeouts = q;
|
||||
}
|
||||
@ -738,7 +958,7 @@
|
||||
struct timeout *t, *n;
|
||||
for (t = timeouts; t; t = n) {
|
||||
n = t -> next;
|
||||
@@ -205,13 +355,20 @@
|
||||
@@ -205,13 +355,20 @@ void cancel_all_timeouts ()
|
||||
t -> next = free_timeouts;
|
||||
free_timeouts = t;
|
||||
}
|
||||
@ -759,9 +979,10 @@
|
||||
}
|
||||
+#endif
|
||||
}
|
||||
--- dhcp-3.0.5/dst/hmac_link.c.libdhcp4client 2001-02-22 02:22:08.000000000 -0500
|
||||
+++ dhcp-3.0.5/dst/hmac_link.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -38,6 +38,10 @@
|
||||
diff -up dhcp-3.0.6/dst/hmac_link.c.libdhcp4client dhcp-3.0.6/dst/hmac_link.c
|
||||
--- dhcp-3.0.6/dst/hmac_link.c.libdhcp4client 2001-02-22 02:22:08.000000000 -0500
|
||||
+++ dhcp-3.0.6/dst/hmac_link.c 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -38,6 +38,10 @@ static const char rcsid[] = "$Header: /p
|
||||
|
||||
#include "dst_internal.h"
|
||||
|
||||
@ -772,7 +993,7 @@
|
||||
#ifdef USE_MD5
|
||||
# include "md5.h"
|
||||
# ifndef _MD5_H_
|
||||
@@ -86,7 +90,11 @@
|
||||
@@ -86,7 +90,11 @@ dst_hmac_md5_sign(const int mode, DST_KE
|
||||
MD5_CTX *ctx = NULL;
|
||||
|
||||
if (mode & SIG_MODE_INIT)
|
||||
@ -784,7 +1005,7 @@
|
||||
else if (context)
|
||||
ctx = (MD5_CTX *) *context;
|
||||
if (ctx == NULL)
|
||||
@@ -153,7 +161,11 @@
|
||||
@@ -153,7 +161,11 @@ dst_hmac_md5_verify(const int mode, DST_
|
||||
MD5_CTX *ctx = NULL;
|
||||
|
||||
if (mode & SIG_MODE_INIT)
|
||||
@ -796,7 +1017,7 @@
|
||||
else if (context)
|
||||
ctx = (MD5_CTX *) *context;
|
||||
if (ctx == NULL)
|
||||
@@ -217,8 +229,11 @@
|
||||
@@ -217,8 +229,11 @@ dst_buffer_to_hmac_md5(DST_KEY *dkey, co
|
||||
|
||||
if (dkey == NULL || key == NULL || keylen < 0)
|
||||
return (-1);
|
||||
@ -809,7 +1030,7 @@
|
||||
return (-2);
|
||||
|
||||
memset(hkey->hk_ipad, 0, sizeof(hkey->hk_ipad));
|
||||
@@ -347,7 +362,11 @@
|
||||
@@ -347,7 +362,11 @@ dst_hmac_md5_key_from_file_format(DST_KE
|
||||
if (eol == NULL)
|
||||
return (-4);
|
||||
len = eol - p;
|
||||
@ -821,7 +1042,7 @@
|
||||
memcpy(tmp, p, len);
|
||||
*(tmp + len) = 0x0;
|
||||
key_len = b64_pton((char *)tmp, key, HMAC_LEN+1); /* see above */
|
||||
@@ -439,8 +458,11 @@
|
||||
@@ -439,8 +458,11 @@ dst_hmac_md5_generate_key(DST_KEY *key,
|
||||
return(0);
|
||||
|
||||
len = size > 64 ? 64 : size;
|
||||
@ -834,7 +1055,7 @@
|
||||
n = dst_random(DST_RAND_SEMI, len, buff);
|
||||
n += dst_random(DST_RAND_KEY, len, buff);
|
||||
if (n <= len) { /* failed getting anything */
|
||||
@@ -463,7 +485,11 @@
|
||||
@@ -463,7 +485,11 @@ dst_hmac_md5_init()
|
||||
{
|
||||
if (dst_t_func[KEY_HMAC_MD5] != NULL)
|
||||
return (1);
|
||||
@ -846,220 +1067,9 @@
|
||||
if (dst_t_func[KEY_HMAC_MD5] == NULL)
|
||||
return (0);
|
||||
memset(dst_t_func[KEY_HMAC_MD5], 0, sizeof(struct dst_func));
|
||||
--- dhcp-3.0.5/includes/dhcpd.h.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/includes/dhcpd.h 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -855,14 +855,6 @@
|
||||
|
||||
typedef void (*tvref_t)(void *, void *, const char *, int);
|
||||
typedef void (*tvunref_t)(void *, const char *, int);
|
||||
-struct timeout {
|
||||
- struct timeout *next;
|
||||
- TIME when;
|
||||
- void (*func) PROTO ((void *));
|
||||
- void *what;
|
||||
- tvref_t ref;
|
||||
- tvunref_t unref;
|
||||
-};
|
||||
|
||||
struct protocol {
|
||||
struct protocol *next;
|
||||
@@ -1789,7 +1781,6 @@
|
||||
struct dhcp_packet *, unsigned,
|
||||
unsigned int,
|
||||
struct iaddr, struct hardware *));
|
||||
-extern struct timeout *timeouts;
|
||||
extern omapi_object_type_t *dhcp_type_interface;
|
||||
#if defined (TRACING)
|
||||
trace_type_t *interface_trace;
|
||||
--- dhcp-3.0.5/omapip/alloc.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/omapip/alloc.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -40,6 +40,33 @@
|
||||
|
||||
#include <omapip/omapip_p.h>
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+/* OK, we need a quick and dirty way of freeing all memory used by libdhcp.
|
||||
+ All pointers will be stored in a glibc tree on alloc, and removed on free.
|
||||
+ This is not too expensive for light single-call library use.
|
||||
+*/
|
||||
+#include <search.h>
|
||||
+extern void tdestroy (void *root, void (*free_node)(void *nodep));
|
||||
+static void *all_pointers=0L;
|
||||
+static int ptr_comparator(const void *p1, const void *p2) {
|
||||
+ return ((p1 == p2) ? 0 : ((p1 > p2) ? 1 : -1));
|
||||
+}
|
||||
+
|
||||
+static void record_pointer(void *ptr) {
|
||||
+ tsearch(ptr, &(all_pointers), ptr_comparator);
|
||||
+}
|
||||
+
|
||||
+static void forget_pointer(void *ptr) {
|
||||
+ tdelete(ptr, &(all_pointers), ptr_comparator);
|
||||
+}
|
||||
+
|
||||
+void omapi_free_all_pointers(void) {
|
||||
+ if (all_pointers != NULL)
|
||||
+ tdestroy(all_pointers, free);
|
||||
+ all_pointers = NULL;
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
|
||||
defined (DEBUG_MEMORY_LEAKAGE_ON_EXIT)
|
||||
struct dmalloc_preamble *dmalloc_list;
|
||||
@@ -77,7 +104,9 @@
|
||||
return (VOIDPTR)0;
|
||||
|
||||
foo = malloc(len);
|
||||
-
|
||||
+#ifdef LIBDHCP
|
||||
+ record_pointer(foo);
|
||||
+#endif
|
||||
if (!foo)
|
||||
return (VOIDPTR)0;
|
||||
bar = (VOIDPTR)(foo + DMDOFFSET);
|
||||
@@ -199,6 +228,9 @@
|
||||
0, (unsigned char *)ptr + DMDOFFSET, 0, 1, RC_MALLOC);
|
||||
#endif
|
||||
free (ptr);
|
||||
+#ifdef LIBDHCP
|
||||
+ forget_pointer(ptr);
|
||||
+#endif
|
||||
}
|
||||
|
||||
#if defined (DEBUG_MEMORY_LEAKAGE) || defined (DEBUG_MALLOC_POOL) || \
|
||||
--- dhcp-3.0.5/omapip/dispatch.c.libdhcp4client 2004-11-24 12:39:17.000000000 -0500
|
||||
+++ dhcp-3.0.5/omapip/dispatch.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
#include <omapip/omapip_p.h>
|
||||
|
||||
-static omapi_io_object_t omapi_io_states;
|
||||
+omapi_io_object_t omapi_io_states;
|
||||
TIME cur_time;
|
||||
|
||||
OMAPI_OBJECT_ALLOC (omapi_io,
|
||||
--- dhcp-3.0.5/omapip/errwarn.c.libdhcp4client 2007-03-30 20:54:06.000000000 -0400
|
||||
+++ dhcp-3.0.5/omapip/errwarn.c 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -39,6 +39,11 @@
|
||||
#include <omapip/omapip_p.h>
|
||||
#include <errno.h>
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+#include <libdhcp_control.h>
|
||||
+extern LIBDHCP_Control *libdhcp_control;
|
||||
+#endif
|
||||
+
|
||||
#ifdef DEBUG
|
||||
int log_perror = -1;
|
||||
#else
|
||||
@@ -48,7 +53,9 @@
|
||||
void (*log_cleanup) (void);
|
||||
|
||||
#define CVT_BUF_MAX 1023
|
||||
+#ifndef LIBDHCP
|
||||
static char mbuf [CVT_BUF_MAX + 1];
|
||||
+#endif
|
||||
static char fbuf [CVT_BUF_MAX + 1];
|
||||
|
||||
/* Log an error message, then exit... */
|
||||
@@ -58,6 +65,16 @@
|
||||
va_list list;
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
+
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && (libdhcp_control->eh)) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_FATAL, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ libdhcp_control->finished = 1;
|
||||
+ return;
|
||||
+ }
|
||||
+#else
|
||||
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
@@ -93,6 +110,7 @@
|
||||
if (log_cleanup)
|
||||
(*log_cleanup) ();
|
||||
exit (1);
|
||||
+#endif
|
||||
}
|
||||
|
||||
/* Log an error message... */
|
||||
@@ -103,6 +121,13 @@
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_ERR, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -120,7 +145,7 @@
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -132,6 +157,13 @@
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_INFO, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -149,7 +181,7 @@
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -160,7 +192,13 @@
|
||||
va_list list;
|
||||
|
||||
do_percentm (fbuf, fmt);
|
||||
-
|
||||
+#ifdef LIBDHCP
|
||||
+ if (libdhcp_control && libdhcp_control->eh) {
|
||||
+ va_start (list, fmt);
|
||||
+ libdhcp_control->eh(libdhcp_control, LOG_DEBUG, fbuf, list);
|
||||
+ va_end(list);
|
||||
+ }
|
||||
+#else
|
||||
/* %Audit% This is log output. %2004.06.17,Safe%
|
||||
* If we truncate we hope the user can get a hint from the log.
|
||||
*/
|
||||
@@ -178,7 +216,7 @@
|
||||
if (write (STDERR_FILENO, "\n", 1) <= 0)
|
||||
return 0;
|
||||
}
|
||||
-
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
--- dhcp-3.0.5/Makefile.dist.libdhcp4client 2004-06-10 13:59:10.000000000 -0400
|
||||
+++ dhcp-3.0.5/Makefile.dist 2007-03-30 20:54:06.000000000 -0400
|
||||
diff -up dhcp-3.0.6/Makefile.dist.libdhcp4client dhcp-3.0.6/Makefile.dist
|
||||
--- dhcp-3.0.6/Makefile.dist.libdhcp4client 2004-06-10 13:59:10.000000000 -0400
|
||||
+++ dhcp-3.0.6/Makefile.dist 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -22,7 +22,7 @@
|
||||
# http://www.isc.org/
|
||||
|
||||
@ -1069,9 +1079,10 @@
|
||||
|
||||
all:
|
||||
@for dir in ${SUBDIRS}; do \
|
||||
--- dhcp-3.0.5/configure.libdhcp4client 2004-09-10 17:02:30.000000000 -0400
|
||||
+++ dhcp-3.0.5/configure 2007-03-30 20:54:06.000000000 -0400
|
||||
@@ -246,7 +246,7 @@
|
||||
diff -up dhcp-3.0.6/configure.libdhcp4client dhcp-3.0.6/configure
|
||||
--- dhcp-3.0.6/configure.libdhcp4client 2004-09-10 17:02:30.000000000 -0400
|
||||
+++ dhcp-3.0.6/configure 2007-08-15 16:24:55.000000000 -0400
|
||||
@@ -246,7 +246,7 @@ if [ ! -d $workname ]; then
|
||||
fi
|
||||
|
||||
if [ x"$dirs" = x ]; then
|
@ -1,77 +1,8 @@
|
||||
--- dhcp-3.0.5/client/dhclient-script.8.manpages 2005-09-28 15:17:08.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient-script.8 2007-04-26 14:52:13.000000000 -0400
|
||||
@@ -47,7 +47,7 @@
|
||||
exit hooks provided (see HOOKS for details). These hooks will allow the
|
||||
user to override the default behaviour of the client in creating a
|
||||
.B /etc/resolv.conf
|
||||
-file.
|
||||
+file, and to handle DHCP options not handled by default.
|
||||
.PP
|
||||
No standard client script exists for some operating systems, even though
|
||||
the actual client may work, so a pioneering user may well need to create
|
||||
@@ -91,6 +91,27 @@
|
||||
.B ETCDIR/dhclient-exit-hooks
|
||||
script can modify the valid of exit_status to change the exit status
|
||||
of dhclient-script.
|
||||
+.PP
|
||||
+Immediately after dhclient brings an interface UP with a new IP address,
|
||||
+subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
|
||||
+existence of an executable
|
||||
+.B ETCDIR/dhclient-up-hooks
|
||||
+script, and source it if found. This script can handle DHCP options in
|
||||
+the environment that are not handled by default. A per-interface
|
||||
+.B ETCDIR/dhclient-${IF}-up-hooks
|
||||
+script will override the generic script and be sourced when interface
|
||||
+$IF has been brought up.
|
||||
+.PP
|
||||
+Immediately before dhclient brings an interface DOWN, removing its IP
|
||||
+address, subnet mask, and routes, in the STOP/RELEASE states, it will
|
||||
+check for the existence of an executable
|
||||
+.B ETCDIR/dhclient-down-hooks
|
||||
+script, and source it if found. This script can handle DHCP options in
|
||||
+the environment that are not handled by default. A per-interface
|
||||
+.B ETCDIR/dhclient-${IF}-down-hooks
|
||||
+script will override the generic script and be sourced when interface
|
||||
+$IF is about to be brought down.
|
||||
+
|
||||
.SH OPERATION
|
||||
When dhclient needs to invoke the client configuration script, it
|
||||
defines a set of variables in the environment, and then invokes
|
||||
--- dhcp-3.0.5/client/dhclient.conf.5.manpages 2005-06-16 15:40:13.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.conf.5 2007-04-26 14:51:02.000000000 -0400
|
||||
@@ -185,7 +185,8 @@
|
||||
options. Only the option names should be specified in the request
|
||||
statement - not option parameters. By default, the DHCP server
|
||||
requests the subnet-mask, broadcast-address, time-offset, routers,
|
||||
-domain-name, domain-name-servers and host-name options.
|
||||
+domain-name, domain-name-servers, host-name, nis-domain, nis-servers,
|
||||
+and ntp-servers options.
|
||||
.PP
|
||||
In some cases, it may be desirable to send no parameter request list
|
||||
at all. To do this, simply write the request statement but specify
|
||||
@@ -581,6 +582,18 @@
|
||||
Whenever the client tries to renew the lease, it will use that same
|
||||
media type. The lease must expire before the client will go back to
|
||||
cycling through media types.
|
||||
+.PP
|
||||
+ \fBbootp-broadcast-always;\fR
|
||||
+.PP
|
||||
+The
|
||||
+.B bootp-broadcast-always
|
||||
+statement instructs dhclient to always set the bootp broadcast flag in
|
||||
+request packets, so that servers will always broadcast replies.
|
||||
+This is equivalent to supplying the dhclient -B argument, and has
|
||||
+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
|
||||
+This option is provided as a Red Hat extension to enable dhclient to work
|
||||
+on IBM zSeries z/OS Linux guests .
|
||||
+.PP
|
||||
.SH SAMPLE
|
||||
The following configuration file is used on a laptop running NetBSD
|
||||
1.3. The laptop has an IP alias of 192.5.5.213, and has one
|
||||
--- dhcp-3.0.5/client/dhclient.8.manpages 2007-04-26 14:51:02.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.8 2007-04-26 14:51:02.000000000 -0400
|
||||
@@ -85,6 +85,28 @@
|
||||
.B -x
|
||||
diff -up dhcp-3.0.6/client/dhclient.8.manpages dhcp-3.0.6/client/dhclient.8
|
||||
--- dhcp-3.0.6/client/dhclient.8.manpages 2007-05-01 16:42:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.8 2007-08-15 12:08:48.000000000 -0400
|
||||
@@ -82,6 +82,28 @@ relay
|
||||
.B -w
|
||||
]
|
||||
[
|
||||
+.B -I
|
||||
@ -99,14 +30,14 @@
|
||||
.I if0
|
||||
[
|
||||
.I ...ifN
|
||||
@@ -273,6 +295,107 @@
|
||||
-s dhclient-script environment, which would allow applications running
|
||||
in that environment to handle options they do not know about in advance -
|
||||
this is a Red Hat extension to support dhcdbd and NetworkManager.
|
||||
@@ -265,6 +287,110 @@ than waiting until it has acquired an IP
|
||||
supplying the
|
||||
.B -nw
|
||||
flag.
|
||||
+.PP
|
||||
+The -I <id> argument allows you to specify the dhcp-client-identifier string, <id>,
|
||||
+to be sent to the dhcp server on the command line. It is equivalent to the
|
||||
+top level dhclient.conf statement:
|
||||
+The -I <id> argument allows you to specify the dhcp-client-identifier string,
|
||||
+<id>, to be sent to the dhcp server on the command line. It is equivalent to
|
||||
+the top level dhclient.conf statement:
|
||||
+.br
|
||||
+ \fBsend dhcp-client-identifier "<id>";\fR
|
||||
+.br
|
||||
@ -171,24 +102,26 @@
|
||||
+This option is provided as a Red Hat extension.
|
||||
+.PP
|
||||
+The -V <vendor-class-identifier> option allows you to specify the DHCP
|
||||
+vendor-class-identifier option to send to the server on the dhclient command line.
|
||||
+It is equivalent to the top level dhclient.conf statement:
|
||||
+vendor-class-identifier option to send to the server on the dhclient command
|
||||
+line. It is equivalent to the top level dhclient.conf statement:
|
||||
+.br
|
||||
+\f send vendor-class-identifier "<vendor-class-identifier>";\fR
|
||||
+.br
|
||||
+The -V <vendor-class-identifier> option will override any top level dhclient.conf
|
||||
+The -V <vendor-class-identifier> option will override any top level
|
||||
+dhclient.conf
|
||||
+ 'send vendor-class-identifier' statement, but more specific per-interface
|
||||
+ 'interface "X" { send vendor-class-identifier...;' statements in dhclient.conf
|
||||
+will override the -V <vendor-class-identifier> command line option for interface "X".
|
||||
+The -V <vendor-class-identifier> option is provided as a Red Hat extension to simplify
|
||||
+configuration of clients of DHCP servers that require the vendor-class-identifier option
|
||||
+to be sent.
|
||||
+will override the -V <vendor-class-identifier> command line option for
|
||||
+interface "X".
|
||||
+The -V <vendor-class-identifier> option is provided as a Red Hat extension to
|
||||
+simplify configuration of clients of DHCP servers that require the
|
||||
+vendor-class-identifier option to be sent.
|
||||
+.PP
|
||||
+The -R <request option list> option allows you to specify the list of options the
|
||||
+client is to request from the server on the dhclient command line.
|
||||
+The -R <request option list> option allows you to specify the list of options
|
||||
+the client is to request from the server on the dhclient command line.
|
||||
+The option list must be a single string, consisting of option names separated
|
||||
+by at least one comma and optional space characters. The default option list
|
||||
+is :
|
||||
+is:
|
||||
+.br
|
||||
+ subnet-mask, broadcast-address, time-offset, routers,
|
||||
+.br
|
||||
@ -196,20 +129,172 @@
|
||||
+.br
|
||||
+ nis-servers, ntp-servers
|
||||
+.br
|
||||
+You can specify a different list of options to request with the -R <option list> argument.
|
||||
+This is equivalent to the dhclient.conf statement:
|
||||
+You can specify a different list of options to request with the -R <option list>
|
||||
+argument. This is equivalent to the dhclient.conf statement:
|
||||
+.br
|
||||
+\f request <option list> ;\fR
|
||||
+.br
|
||||
+The -R argument is provided as a Red Hat extension to ISC dhclient to facilitate requesting
|
||||
+a list of options from the server different to the default.
|
||||
+The -R argument is provided as a Red Hat extension to ISC dhclient to
|
||||
+facilitate requesting a list of options from the server different to the
|
||||
+default.
|
||||
+.PP
|
||||
.SH CONFIGURATION
|
||||
The syntax of the dhclient.conf(5) file is discussed separately.
|
||||
.SH OMAPI
|
||||
--- dhcp-3.0.5/common/dhcp-options.5.manpages 2006-04-26 11:12:43.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/dhcp-options.5 2007-04-26 14:51:02.000000000 -0400
|
||||
@@ -834,6 +834,24 @@
|
||||
diff -up dhcp-3.0.6/client/dhclient-script.8.manpages dhcp-3.0.6/client/dhclient-script.8
|
||||
--- dhcp-3.0.6/client/dhclient-script.8.manpages 2005-09-28 15:17:08.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient-script.8 2007-08-15 11:55:11.000000000 -0400
|
||||
@@ -47,7 +47,7 @@ customizations are needed, they should b
|
||||
exit hooks provided (see HOOKS for details). These hooks will allow the
|
||||
user to override the default behaviour of the client in creating a
|
||||
.B /etc/resolv.conf
|
||||
-file.
|
||||
+file, and to handle DHCP options not handled by default.
|
||||
.PP
|
||||
No standard client script exists for some operating systems, even though
|
||||
the actual client may work, so a pioneering user may well need to create
|
||||
@@ -91,6 +91,27 @@ present. The
|
||||
.B ETCDIR/dhclient-exit-hooks
|
||||
script can modify the valid of exit_status to change the exit status
|
||||
of dhclient-script.
|
||||
+.PP
|
||||
+Immediately after dhclient brings an interface UP with a new IP address,
|
||||
+subnet mask, and routes, in the REBOOT/BOUND states, it will check for the
|
||||
+existence of an executable
|
||||
+.B ETCDIR/dhclient-up-hooks
|
||||
+script, and source it if found. This script can handle DHCP options in
|
||||
+the environment that are not handled by default. A per-interface.
|
||||
+.B ETCDIR/dhclient-${IF}-up-hooks
|
||||
+script will override the generic script and be sourced when interface
|
||||
+$IF has been brought up.
|
||||
+.PP
|
||||
+Immediately before dhclient brings an interface DOWN, removing its IP
|
||||
+address, subnet mask, and routes, in the STOP/RELEASE states, it will
|
||||
+check for the existence of an executable
|
||||
+.B ETCDIR/dhclient-down-hooks
|
||||
+script, and source it if found. This script can handle DHCP options in
|
||||
+the environment that are not handled by default. A per-interface
|
||||
+.B ETCDIR/dhclient-${IF}-down-hooks
|
||||
+script will override the generic script and be sourced when interface
|
||||
+$IF is about to be brought down.
|
||||
+
|
||||
.SH OPERATION
|
||||
When dhclient needs to invoke the client configuration script, it
|
||||
defines a set of variables in the environment, and then invokes
|
||||
diff -up dhcp-3.0.6/client/dhclient.conf.5.manpages dhcp-3.0.6/client/dhclient.conf.5
|
||||
--- dhcp-3.0.6/client/dhclient.conf.5.manpages 2007-05-01 16:42:55.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.conf.5 2007-08-15 11:56:40.000000000 -0400
|
||||
@@ -185,7 +185,8 @@ responding to the client send the client
|
||||
options. Only the option names should be specified in the request
|
||||
statement - not option parameters. By default, the DHCP server
|
||||
requests the subnet-mask, broadcast-address, time-offset, routers,
|
||||
-domain-name, domain-name-servers and host-name options.
|
||||
+domain-name, domain-name-servers, host-name, nis-domain, nis-servers,
|
||||
+and ntp-servers options.
|
||||
.PP
|
||||
In some cases, it may be desirable to send no parameter request list
|
||||
at all. To do this, simply write the request statement but specify
|
||||
@@ -581,6 +582,18 @@ database and will record the media type
|
||||
Whenever the client tries to renew the lease, it will use that same
|
||||
media type. The lease must expire before the client will go back to
|
||||
cycling through media types.
|
||||
+.PP
|
||||
+ \fBbootp-broadcast-always;\fR
|
||||
+.PP
|
||||
+The
|
||||
+.B bootp-broadcast-always
|
||||
+statement instructs dhclient to always set the bootp broadcast flag in
|
||||
+request packets, so that servers will always broadcast replies.
|
||||
+This is equivalent to supplying the dhclient -B argument, and has
|
||||
+the same effect as specifying 'always-broadcast' in the server's dhcpd.conf.
|
||||
+This option is provided as a Red Hat extension to enable dhclient to work
|
||||
+on IBM zSeries z/OS Linux guests.
|
||||
+.PP
|
||||
.SH SAMPLE
|
||||
The following configuration file is used on a laptop running NetBSD
|
||||
1.3. The laptop has an IP alias of 192.5.5.213, and has one
|
||||
diff -up dhcp-3.0.6/dhcpctl/dhcpctl.3.manpages dhcp-3.0.6/dhcpctl/dhcpctl.3
|
||||
--- dhcp-3.0.6/dhcpctl/dhcpctl.3.manpages 2004-09-24 17:08:38.000000000 -0400
|
||||
+++ dhcp-3.0.6/dhcpctl/dhcpctl.3 2007-08-15 12:59:06.000000000 -0400
|
||||
@@ -43,7 +43,7 @@
|
||||
.\"
|
||||
.\"
|
||||
.Sh SYNOPSIS
|
||||
-.Fd #include <dhcpctl/dhcpctl.h>
|
||||
+.Fd #include <dhcpctl.h>
|
||||
.Ft dhcpctl_status
|
||||
.Fo dhcpctl_initialize
|
||||
.Fa void
|
||||
@@ -426,7 +426,7 @@ that most error checking has been ommitt
|
||||
#include <netinet/in.h>
|
||||
|
||||
#include <isc/result.h>
|
||||
-#include <dhcpctl/dhcpctl.h>
|
||||
+#include <dhcpctl.h>
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
dhcpctl_data_string ipaddrstring = NULL;
|
||||
diff -up dhcp-3.0.6/server/dhcpd.conf.5.manpages dhcp-3.0.6/server/dhcpd.conf.5
|
||||
--- dhcp-3.0.6/server/dhcpd.conf.5.manpages 2007-05-01 16:42:56.000000000 -0400
|
||||
+++ dhcp-3.0.6/server/dhcpd.conf.5 2007-08-15 13:00:35.000000000 -0400
|
||||
@@ -531,9 +531,9 @@ primary server might look like this:
|
||||
failover peer "foo" {
|
||||
primary;
|
||||
address anthrax.rc.vix.com;
|
||||
- port 519;
|
||||
+ port 647;
|
||||
peer address trantor.rc.vix.com;
|
||||
- peer port 520;
|
||||
+ peer port 847;
|
||||
max-response-delay 60;
|
||||
max-unacked-updates 10;
|
||||
mclt 3600;
|
||||
@@ -592,9 +592,7 @@ statement
|
||||
.B port \fIport-number\fR\fB;\fR
|
||||
.PP
|
||||
The \fBport\fR statement declares the TCP port on which the server
|
||||
-should listen for connections from its failover peer. This statement
|
||||
-may not currently be omitted, because the failover protocol does not
|
||||
-yet have a reserved TCP port number.
|
||||
+should listen for connections from its failover peer.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@@ -606,10 +604,8 @@ statement
|
||||
.PP
|
||||
The \fBpeer port\fR statement declares the TCP port to which the
|
||||
server should connect to reach its failover peer for failover
|
||||
-messages. This statement may not be omitted because the failover
|
||||
-protocol does not yet have a reserved TCP port number. The port
|
||||
-number declared in the \fBpeer port\fR statement may be the same as
|
||||
-the port number declared in the \fBport\fR statement.
|
||||
+messages. The port number declared in the \fBpeer port\fR statement
|
||||
+may be the same as the port number declared in the \fBport\fR statement.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@@ -1133,7 +1129,7 @@ the zone containing PTR records - for IS
|
||||
.PP
|
||||
.nf
|
||||
key DHCP_UPDATER {
|
||||
- algorithm HMAC-MD5.SIG-ALG.REG.INT;
|
||||
+ algorithm hmac-md5;
|
||||
secret pRP5FapFoJ95JEL06sv4PQ==;
|
||||
};
|
||||
|
||||
@@ -1156,7 +1152,7 @@ dhcpd.conf file:
|
||||
.PP
|
||||
.nf
|
||||
key DHCP_UPDATER {
|
||||
- algorithm HMAC-MD5.SIG-ALG.REG.INT;
|
||||
+ algorithm hmac-md5;
|
||||
secret pRP5FapFoJ95JEL06sv4PQ==;
|
||||
};
|
||||
|
||||
diff -up dhcp-3.0.6/common/dhcp-options.5.manpages dhcp-3.0.6/common/dhcp-options.5
|
||||
--- dhcp-3.0.6/common/dhcp-options.5.manpages 2006-04-26 11:12:43.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/dhcp-options.5 2007-08-15 12:10:12.000000000 -0400
|
||||
@@ -834,6 +834,24 @@ classless IP routing - it does not inclu
|
||||
classless IP routing is now the most widely deployed routing standard,
|
||||
this option is virtually useless, and is not implemented by any of the
|
||||
popular DHCP clients, for example the Microsoft DHCP client.
|
||||
@ -234,80 +319,3 @@
|
||||
.RE
|
||||
.PP
|
||||
.nf
|
||||
--- dhcp-3.0.5/dhcpctl/dhcpctl.3.manpages 2004-09-24 17:08:38.000000000 -0400
|
||||
+++ dhcp-3.0.5/dhcpctl/dhcpctl.3 2007-04-26 14:51:02.000000000 -0400
|
||||
@@ -43,7 +43,8 @@
|
||||
.\"
|
||||
.\"
|
||||
.Sh SYNOPSIS
|
||||
-.Fd #include <dhcpctl/dhcpctl.h>
|
||||
+.Fd #include <dhcpctl.h>
|
||||
+.sp
|
||||
.Ft dhcpctl_status
|
||||
.Fo dhcpctl_initialize
|
||||
.Fa void
|
||||
@@ -426,7 +427,7 @@
|
||||
#include <netinet/in.h>
|
||||
|
||||
#include <isc/result.h>
|
||||
-#include <dhcpctl/dhcpctl.h>
|
||||
+#include <dhcpctl.h>
|
||||
|
||||
int main (int argc, char **argv) {
|
||||
dhcpctl_data_string ipaddrstring = NULL;
|
||||
--- dhcp-3.0.5/server/dhcpd.conf.5.manpages 2006-07-09 11:02:24.000000000 -0400
|
||||
+++ dhcp-3.0.5/server/dhcpd.conf.5 2007-04-26 14:51:02.000000000 -0400
|
||||
@@ -531,9 +531,9 @@
|
||||
failover peer "foo" {
|
||||
primary;
|
||||
address anthrax.rc.vix.com;
|
||||
- port 519;
|
||||
+ port 647;
|
||||
peer address trantor.rc.vix.com;
|
||||
- peer port 520;
|
||||
+ peer port 847;
|
||||
max-response-delay 60;
|
||||
max-unacked-updates 10;
|
||||
mclt 3600;
|
||||
@@ -592,9 +592,7 @@
|
||||
.B port \fIport-number\fR\fB;\fR
|
||||
.PP
|
||||
The \fBport\fR statement declares the TCP port on which the server
|
||||
-should listen for connections from its failover peer. This statement
|
||||
-may not currently be omitted, because the failover protocol does not
|
||||
-yet have a reserved TCP port number.
|
||||
+should listen for connections from its failover peer.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@@ -606,10 +604,8 @@
|
||||
.PP
|
||||
The \fBpeer port\fR statement declares the TCP port to which the
|
||||
server should connect to reach its failover peer for failover
|
||||
-messages. This statement may not be omitted because the failover
|
||||
-protocol does not yet have a reserved TCP port number. The port
|
||||
-number declared in the \fBpeer port\fR statement may be the same as
|
||||
-the port number declared in the \fBport\fR statement.
|
||||
+messages. The port number declared in the \fBpeer port\fR statement
|
||||
+may be the same as the port number declared in the \fBport\fR statement.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@@ -1133,7 +1129,7 @@
|
||||
.PP
|
||||
.nf
|
||||
key DHCP_UPDATER {
|
||||
- algorithm HMAC-MD5.SIG-ALG.REG.INT;
|
||||
+ algorithm hmac-md5;
|
||||
secret pRP5FapFoJ95JEL06sv4PQ==;
|
||||
};
|
||||
|
||||
@@ -1156,7 +1152,7 @@
|
||||
.PP
|
||||
.nf
|
||||
key DHCP_UPDATER {
|
||||
- algorithm HMAC-MD5.SIG-ALG.REG.INT;
|
||||
+ algorithm hmac-md5;
|
||||
secret pRP5FapFoJ95JEL06sv4PQ==;
|
||||
};
|
||||
|
@ -1,5 +1,6 @@
|
||||
--- dhcp-3.0.5/client/dhclient.c.options 2007-06-15 18:56:41.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/dhclient.c 2007-06-15 18:56:41.000000000 -0400
|
||||
diff -up dhcp-3.0.6/client/dhclient.c.options dhcp-3.0.6/client/dhclient.c
|
||||
--- dhcp-3.0.6/client/dhclient.c.options 2007-08-15 11:19:40.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/dhclient.c 2007-08-15 11:43:18.000000000 -0400
|
||||
@@ -38,6 +38,12 @@ static char ocopyright[] =
|
||||
#include "dhcpd.h"
|
||||
#include "version.h"
|
||||
@ -13,17 +14,17 @@
|
||||
TIME default_lease_time = 43200; /* 12 hours... */
|
||||
TIME max_lease_time = 86400; /* 24 hours... */
|
||||
|
||||
@@ -77,6 +83,9 @@ int nowait=0;
|
||||
#ifdef EXTENDED_NEW_OPTION_INFO
|
||||
int extended_option_environment = 0;
|
||||
#endif
|
||||
@@ -74,6 +80,9 @@ int client_env_count=0;
|
||||
int onetry=0;
|
||||
int quiet=0;
|
||||
int nowait=0;
|
||||
+int bootp_broadcast_always = 0;
|
||||
+
|
||||
+extern u_int32_t default_requested_options[];
|
||||
|
||||
static void usage PROTO ((void));
|
||||
|
||||
@@ -103,6 +112,15 @@ int main (argc, argv, envp)
|
||||
@@ -100,6 +109,15 @@ int main (argc, argv, envp)
|
||||
int no_dhclient_pid = 0;
|
||||
int no_dhclient_script = 0;
|
||||
char *s;
|
||||
@ -39,10 +40,10 @@
|
||||
|
||||
/* Make sure we have stdin, stdout and stderr. */
|
||||
i = open ("/dev/null", O_RDWR);
|
||||
@@ -211,6 +229,88 @@ int main (argc, argv, envp)
|
||||
extended_option_environment = 1;
|
||||
new_option_info_tree = GENERATE_NEW_OPTION_INFO;
|
||||
#endif
|
||||
@@ -203,6 +221,88 @@ int main (argc, argv, envp)
|
||||
} else if (!strcmp (argv [i], "--version")) {
|
||||
log_info ("isc-dhclient-%s", DHCP_VERSION);
|
||||
exit (0);
|
||||
+ } else if (!strcmp (argv [i], "-I")) {
|
||||
+ if ((++i == argc) || (argv[i] == NULL) || (*(argv[i])=='\0')) {
|
||||
+ usage ();
|
||||
@ -128,7 +129,7 @@
|
||||
} else if (argv [i][0] == '-') {
|
||||
usage ();
|
||||
} else {
|
||||
@@ -347,6 +447,170 @@ int main (argc, argv, envp)
|
||||
@@ -339,6 +439,167 @@ int main (argc, argv, envp)
|
||||
/* Parse the dhclient.conf file. */
|
||||
read_client_conf ();
|
||||
|
||||
@ -177,8 +178,7 @@
|
||||
+ }
|
||||
+
|
||||
+ if (timeout_arg) {
|
||||
+ if( arg_conf == 0 )
|
||||
+ {
|
||||
+ if (arg_conf == 0) {
|
||||
+ arg_conf_len = asprintf(&arg_conf, "timeout %d;", timeout_arg);
|
||||
+
|
||||
+ if ((arg_conf == 0) || (arg_conf_len <= 0))
|
||||
@ -232,8 +232,8 @@
|
||||
+ }
|
||||
+
|
||||
+ if (arg_conf) {
|
||||
+ if( arg_conf_len == 0 )
|
||||
+ if( (arg_conf_len = strlen(arg_conf)) == 0 )
|
||||
+ if (arg_conf_len == 0)
|
||||
+ if ((arg_conf_len = strlen(arg_conf)) == 0)
|
||||
+ /* huh ? cannot happen ! */
|
||||
+ log_fatal("Unable to process -I/-H/-F/-T/-V/-R configuration arguments");
|
||||
+
|
||||
@ -255,8 +255,6 @@
|
||||
+ break;
|
||||
+
|
||||
+ parse_client_statement (cfile, (struct interface_info *)0, &top_level_config);
|
||||
+
|
||||
+
|
||||
+ } while (1);
|
||||
+
|
||||
+ if (cfile -> warnings_occurred)
|
||||
@ -299,7 +297,7 @@
|
||||
/* Parse the lease database. */
|
||||
read_client_leases ();
|
||||
|
||||
@@ -1924,7 +2188,8 @@ void make_discover (client, lease)
|
||||
@@ -1912,7 +2173,8 @@ void make_discover (client, lease)
|
||||
client -> packet.xid = random ();
|
||||
client -> packet.secs = 0; /* filled in by send_discover. */
|
||||
|
||||
@ -309,7 +307,7 @@
|
||||
client -> packet.flags = 0;
|
||||
else
|
||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||
@@ -2008,7 +2273,9 @@ void make_request (client, lease)
|
||||
@@ -1996,7 +2258,9 @@ void make_request (client, lease)
|
||||
} else {
|
||||
memset (&client -> packet.ciaddr, 0,
|
||||
sizeof client -> packet.ciaddr);
|
||||
@ -320,7 +318,7 @@
|
||||
client -> packet.flags = 0;
|
||||
else
|
||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||
@@ -2067,7 +2334,8 @@ void make_decline (client, lease)
|
||||
@@ -2055,7 +2319,8 @@ void make_decline (client, lease)
|
||||
client -> packet.hops = 0;
|
||||
client -> packet.xid = client -> xid;
|
||||
client -> packet.secs = 0; /* Filled in by send_request. */
|
||||
@ -330,8 +328,9 @@
|
||||
client -> packet.flags = 0;
|
||||
else
|
||||
client -> packet.flags = htons (BOOTP_BROADCAST);
|
||||
--- dhcp-3.0.5/client/clparse.c.options 2007-06-15 18:56:41.000000000 -0400
|
||||
+++ dhcp-3.0.5/client/clparse.c 2007-06-15 18:56:41.000000000 -0400
|
||||
diff -up dhcp-3.0.6/client/clparse.c.options dhcp-3.0.6/client/clparse.c
|
||||
--- dhcp-3.0.6/client/clparse.c.options 2007-08-15 11:19:40.000000000 -0400
|
||||
+++ dhcp-3.0.6/client/clparse.c 2007-08-15 11:44:34.000000000 -0400
|
||||
@@ -81,6 +81,7 @@ isc_result_t read_client_conf ()
|
||||
top_level_config.requested_options = default_requested_options;
|
||||
top_level_config.omapi_port = -1;
|
||||
@ -363,20 +362,10 @@
|
||||
default:
|
||||
lose = 0;
|
||||
stmt = (struct executable_statement *)0;
|
||||
--- dhcp-3.0.5/common/conflex.c.options 2007-06-15 18:56:41.000000000 -0400
|
||||
+++ dhcp-3.0.5/common/conflex.c 2007-06-15 18:56:41.000000000 -0400
|
||||
@@ -599,6 +599,8 @@ static enum dhcp_token intern (atom, dfv
|
||||
return BALANCE;
|
||||
if (!strcasecmp (atom + 1, "ound"))
|
||||
return BOUND;
|
||||
+ if (!strcasecmp (atom + 1, "ootp-broadcast-always"))
|
||||
+ return BOOTP_BROADCAST_ALWAYS;
|
||||
break;
|
||||
case 'c':
|
||||
if (!strcasecmp (atom + 1, "ase"))
|
||||
--- dhcp-3.0.5/includes/dhcpd.h.options 2007-06-15 18:56:41.000000000 -0400
|
||||
+++ dhcp-3.0.5/includes/dhcpd.h 2007-06-15 18:56:41.000000000 -0400
|
||||
@@ -767,6 +767,9 @@ struct client_config {
|
||||
diff -up dhcp-3.0.6/includes/dhcpd.h.options dhcp-3.0.6/includes/dhcpd.h
|
||||
--- dhcp-3.0.6/includes/dhcpd.h.options 2007-08-15 11:19:40.000000000 -0400
|
||||
+++ dhcp-3.0.6/includes/dhcpd.h 2007-08-15 11:45:51.000000000 -0400
|
||||
@@ -773,6 +773,9 @@ struct client_config {
|
||||
int do_forward_update; /* If nonzero, and if we have the
|
||||
information we need, update the
|
||||
A record for the address we get. */
|
||||
@ -386,8 +375,9 @@
|
||||
};
|
||||
|
||||
/* Per-interface state used in the dhcp client... */
|
||||
--- dhcp-3.0.5/includes/dhctoken.h.options 2005-09-22 12:19:57.000000000 -0400
|
||||
+++ dhcp-3.0.5/includes/dhctoken.h 2007-06-15 18:56:56.000000000 -0400
|
||||
diff -up dhcp-3.0.6/includes/dhctoken.h.options dhcp-3.0.6/includes/dhctoken.h
|
||||
--- dhcp-3.0.6/includes/dhctoken.h.options 2005-09-22 12:19:57.000000000 -0400
|
||||
+++ dhcp-3.0.6/includes/dhctoken.h 2007-08-15 11:46:11.000000000 -0400
|
||||
@@ -309,7 +309,8 @@ enum dhcp_token {
|
||||
DOMAIN_NAME = 613,
|
||||
DO_FORWARD_UPDATE = 614,
|
||||
@ -398,3 +388,15 @@
|
||||
};
|
||||
|
||||
#define is_identifier(x) ((x) >= FIRST_TOKEN && \
|
||||
diff -up dhcp-3.0.6/common/conflex.c.options dhcp-3.0.6/common/conflex.c
|
||||
--- dhcp-3.0.6/common/conflex.c.options 2007-08-15 11:19:40.000000000 -0400
|
||||
+++ dhcp-3.0.6/common/conflex.c 2007-08-15 11:45:02.000000000 -0400
|
||||
@@ -599,6 +599,8 @@ static enum dhcp_token intern (atom, dfv
|
||||
return BALANCE;
|
||||
if (!strcasecmp (atom + 1, "ound"))
|
||||
return BOUND;
|
||||
+ if (!strcasecmp (atom + 1, "ootp-broadcast-always"))
|
||||
+ return BOOTP_BROADCAST_ALWAYS;
|
||||
break;
|
||||
case 'c':
|
||||
if (!strcasecmp (atom + 1, "ase"))
|
94
dhcp.spec
94
dhcp.spec
@ -13,7 +13,7 @@
|
||||
Summary: DHCP (Dynamic Host Configuration Protocol) server and relay agent
|
||||
Name: dhcp
|
||||
Version: 3.0.6
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
Epoch: 12
|
||||
License: ISC
|
||||
Group: System Environment/Daemons
|
||||
@ -34,26 +34,26 @@ Source12: dhcp4client.h
|
||||
Source13: libdhcp_control.h
|
||||
|
||||
Patch0: %{name}-3.0.5-Makefile.patch
|
||||
Patch5: %{name}-3.0.5-warnings.patch
|
||||
Patch10: %{name}-3.0.5-extended-new-option-info.patch
|
||||
Patch15: %{name}-3.0.5-errwarn-message.patch
|
||||
Patch20: %{name}-3.0.5-ldap-configuration.patch
|
||||
Patch25: %{name}-3.0.6-memory.patch
|
||||
Patch30: %{name}-3.0.5-options.patch
|
||||
Patch35: %{name}-3.0.5-release-by-ifup.patch
|
||||
Patch40: %{name}-3.0.5-dhclient-decline-backoff.patch
|
||||
Patch45: %{name}-3.0.5-enable-timeout-functions.patch
|
||||
Patch50: %{name}-3.0.5-inherit-leases.patch
|
||||
Patch55: %{name}-3.0.5-unicast-bootp.patch
|
||||
Patch60: %{name}-3.0.5-fast-timeout.patch
|
||||
Patch65: %{name}-3.0.5-failover-ports.patch
|
||||
Patch70: %{name}-3.0.5-dhclient-usage.patch
|
||||
Patch75: %{name}-3.0.5-default-requested-options.patch
|
||||
Patch80: %{name}-3.0.5-prototypes.patch
|
||||
Patch85: %{name}-3.0.5-manpages.patch
|
||||
Patch90: %{name}-3.0.5-libdhcp4client.patch
|
||||
Patch95: %{name}-3.0.6-xen-checksum.patch
|
||||
Patch100: %{name}-3.0.5-dhclient-anycast.patch
|
||||
Patch1: %{name}-3.0.5-warnings.patch
|
||||
Patch2: %{name}-3.0.5-errwarn-message.patch
|
||||
Patch3: %{name}-3.0.5-ldap-configuration.patch
|
||||
Patch4: %{name}-3.0.6-memory.patch
|
||||
Patch5: %{name}-3.0.6-options.patch
|
||||
Patch6: %{name}-3.0.5-release-by-ifup.patch
|
||||
Patch7: %{name}-3.0.5-dhclient-decline-backoff.patch
|
||||
Patch8: %{name}-3.0.5-enable-timeout-functions.patch
|
||||
Patch9: %{name}-3.0.5-inherit-leases.patch
|
||||
Patch10: %{name}-3.0.5-unicast-bootp.patch
|
||||
Patch11: %{name}-3.0.5-fast-timeout.patch
|
||||
Patch12: %{name}-3.0.5-failover-ports.patch
|
||||
Patch13: %{name}-3.0.6-dhclient-usage.patch
|
||||
Patch14: %{name}-3.0.5-default-requested-options.patch
|
||||
Patch15: %{name}-3.0.5-prototypes.patch
|
||||
Patch16: %{name}-3.0.6-manpages.patch
|
||||
Patch17: %{name}-3.0.6-libdhcp4client.patch
|
||||
Patch18: %{name}-3.0.6-xen-checksum.patch
|
||||
Patch19: %{name}-3.0.5-dhclient-anycast.patch
|
||||
Patch20: %{name}-3.0.6-ignore-hyphen-x.patch
|
||||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
BuildRequires: groff openldap-devel
|
||||
@ -150,64 +150,60 @@ libdhcp4client.
|
||||
%patch0 -p1 -b .Makefile
|
||||
|
||||
# Fix up anything that fails -Wall -Werror
|
||||
%patch5 -p1 -b .warnings
|
||||
|
||||
# Extended new option info patch. Adds the -x option to dhclient, which is
|
||||
# needed for dhcdbd and NetworkManager
|
||||
%patch10 -p1 -b .enoi
|
||||
%patch1 -p1 -b .warnings
|
||||
|
||||
# Replace the standard ISC warning message about requesting help with an
|
||||
# explanation that this is a patched build of ISC DHCP and bugs should be
|
||||
# reported through bugzilla.redhat.com
|
||||
%patch15 -p1 -b .message
|
||||
%patch2 -p1 -b .message
|
||||
|
||||
# Add support for dhcpd.conf data in LDAP
|
||||
%patch20 -p1 -b .ldap
|
||||
%patch3 -p1 -b .ldap
|
||||
|
||||
# Fix memory alignment and initialization problems in common/packet.c
|
||||
# Fix buffer overflow in minires library
|
||||
# Init struct sock_prog in common/lpf.c to NULL
|
||||
%patch25 -p1 -b .memory
|
||||
%patch4 -p1 -b .memory
|
||||
|
||||
# Add more dhclient options (-I, -B, -H, -F, -T, -V, and -R)
|
||||
%patch30 -p1 -b .options
|
||||
%patch5 -p1 -b .options
|
||||
|
||||
# Handle releasing interfaces requested by /sbin/ifup
|
||||
# pid file is assumed to be /var/run/dhclient-$interface.pid
|
||||
%patch35 -p1 -b .release
|
||||
%patch6 -p1 -b .release
|
||||
|
||||
# If we receive a DHCP offer in dhclient and it's DECLINEd in dhclient-script,
|
||||
# backoff for an amount of time before trying again
|
||||
%patch40 -p1 -b .decline
|
||||
%patch7 -p1 -b .decline
|
||||
|
||||
# Enable cancel_all_timeouts() and relinquish_timeouts() regardless of
|
||||
# the DEBUG_MEMORY_LEAKAGE_ON_EXIT macro
|
||||
%patch45 -p1 -b .etf
|
||||
%patch8 -p1 -b .etf
|
||||
|
||||
# Inherit active leases
|
||||
%patch50 -p1 -b .inherit
|
||||
%patch9 -p1 -b .inherit
|
||||
|
||||
# Support unicast BOOTP for IBM pSeries systems (and maybe others)
|
||||
%patch55 -p1 -b .unicast
|
||||
%patch10 -p1 -b .unicast
|
||||
|
||||
# Fast timeout for dhclient
|
||||
%patch60 -p1 -b .fast
|
||||
%patch11 -p1 -b .fast
|
||||
|
||||
# Use the following IANA-registered failover ports:
|
||||
# dhcp-failover 647/tcp
|
||||
# dhcp-failover 647/udp
|
||||
# dhcp-failover 847/tcp
|
||||
# dhcp-failover 847/udp
|
||||
%patch65 -p1 -b .failover
|
||||
%patch12 -p1 -b .failover
|
||||
|
||||
# Update the usage screen for dhclient(8) indicating new options
|
||||
# Use printf() rather than log_info() to display the information
|
||||
# Also, return EXIT_FAILURE when the usage() screen is displayed (stop parsing)
|
||||
%patch70 -p1 -b .usage
|
||||
%patch13 -p1 -b .usage
|
||||
|
||||
# Add NIS domain, NIS servers, and NTP servers to the list of default
|
||||
# requested DHCP options
|
||||
%patch75 -p1 -b .dho
|
||||
%patch14 -p1 -b .dho
|
||||
|
||||
# Add missing prototypes to take care of gcc warnings
|
||||
# in dst/dst_api.c: add b64_pton() and b64_ntop()
|
||||
@ -216,7 +212,7 @@ libdhcp4client.
|
||||
# in minires/res_comp.c: add ns_name_uncompress(), ns_name_compress(), and
|
||||
# ns_name_skip()
|
||||
# in minires/res_init.c: add res_randomid()
|
||||
%patch80 -p1 -b .prototypes
|
||||
%patch15 -p1 -b .prototypes
|
||||
|
||||
# Man page updates explaining new features added from the above patches.
|
||||
# Normally these man page changes would be included in the feature patch,
|
||||
@ -226,16 +222,19 @@ libdhcp4client.
|
||||
# and not affect the code changes in the other patches. It's actually
|
||||
# pretty common to update or alter these man pages independent of the code
|
||||
# changes.
|
||||
%patch85 -p1 -b .manpages
|
||||
%patch16 -p1 -b .manpages
|
||||
|
||||
# Add the libdhcp4client target (library version of dhclient)
|
||||
%patch90 -p1 -b .libdhcp4client
|
||||
%patch17 -p1 -b .libdhcp4client
|
||||
|
||||
# Handle Xen partial UDP checksums
|
||||
%patch95 -p1 -b .xen
|
||||
%patch18 -p1 -b .xen
|
||||
|
||||
# Add anycast support to dhclient (for OLPC)
|
||||
%patch100 -p1 -b .anycast
|
||||
%patch19 -p1 -b .anycast
|
||||
|
||||
# Ignore the old extended new option info command line switch (-x)
|
||||
%patch20 -p1 -b .enoi
|
||||
|
||||
# Copy in documentation and example scripts for LDAP patch to dhcpd
|
||||
%{__install} -p -m 0644 %SOURCE6 .
|
||||
@ -293,9 +292,8 @@ EOF
|
||||
COPTS="-fPIC -Werror -Dlint -fno-strict-aliasing"
|
||||
|
||||
# DO NOT use the %%configure macro because this configure script is not autognu
|
||||
# Enable extended option info patch (-DEXTENDED_NEW_OPTION_INFO)
|
||||
CC="%{__cc}" ./configure \
|
||||
--copts "$RPM_OPT_FLAGS $COPTS %{?bigptrs} -DEXTENDED_NEW_OPTION_INFO" \
|
||||
--copts "$RPM_OPT_FLAGS $COPTS %{?bigptrs}" \
|
||||
--work-dir %{workdir}
|
||||
|
||||
%{__sed} 's/@DHCP_VERSION@/%{version}/' < %SOURCE5 > libdhcp4client.pc
|
||||
@ -433,6 +431,10 @@ fi
|
||||
%{_libdir}/libdhcp4client.a
|
||||
|
||||
%changelog
|
||||
* Wed Aug 15 2007 David Cantrell <dcantrell@redhat.com> - 12:3.0.6-3
|
||||
- Remove the -x switch enabling extended new option info. If given to
|
||||
dhclient now, it's ignored.
|
||||
|
||||
* Wed Jul 18 2007 Florian La Roche <laroche@redhat.com> - 12:3.0.6-2
|
||||
- use a new macro name vendor -> vvendor to not overwrite the
|
||||
RPMTAG_VENDOR setting
|
||||
|
Loading…
Reference in New Issue
Block a user