From: Ted Lemon Date: Mon, 17 Jul 2000 20:56:14 +0000 (+0000) Subject: Support environment variables to control locations of files. X-Git-Tag: V3-BETA-2-PATCH-1~68 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=cfa7212d267350bcc2b2e8de334ed8aaeb3598be;p=thirdparty%2Fdhcp.git Support environment variables to control locations of files. --- diff --git a/client/dhclient.c b/client/dhclient.c index be6e5e9ec..9b794006a 100644 --- a/client/dhclient.c +++ b/client/dhclient.c @@ -41,7 +41,7 @@ #ifndef lint static char ocopyright[] = -"$Id: dhclient.c,v 1.106 2000/06/24 06:02:01 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 Internet Software Consortium. All rights reserved.\n"; +"$Id: dhclient.c,v 1.107 2000/07/17 20:56:11 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -104,6 +104,10 @@ int main (argc, argv, envp) isc_result_t result; int persist = 0; int omapi_port; + int no_dhclient_conf = 0; + int no_dhclient_db = 0; + int no_dhclient_pid = 0; + char *s; #ifdef SYSLOG_4_2 openlog ("dhclient", LOG_NDELAY); @@ -147,14 +151,17 @@ int main (argc, argv, envp) if (++i == argc) usage (); path_dhclient_pid = argv [i]; + no_dhclient_pid = 1; } else if (!strcmp (argv [i], "-cf")) { if (++i == argc) usage (); path_dhclient_conf = argv [i]; + no_dhclient_conf = 1; } else if (!strcmp (argv [i], "-lf")) { if (++i == argc) usage (); path_dhclient_db = argv [i]; + no_dhclient_db = 1; } else if (!strcmp (argv [i], "-q")) { quiet = 1; quiet_interface_discovery = 1; @@ -195,6 +202,16 @@ int main (argc, argv, envp) } } + if (!no_dhclient_conf && (s = getenv ("PATH_DHCLIENT_CONF"))) { + path_dhclient_conf = s; + } + if (!no_dhclient_db && (s = getenv ("PATH_DHCLIENT_DB"))) { + path_dhclient_db = s; + } + if (!no_dhclient_pid && (s = getenv ("PATH_DHCLIENT_PID"))) { + path_dhclient_pid = s; + } + /* first kill of any currently running client */ if (release_mode) { /* XXX inelegant hack to prove concept */ @@ -2168,6 +2185,7 @@ void script_write_params (client, prefix, lease) struct data_string data; struct option_cache *oc; pair *hash; + char *s, *t; fprintf (scriptFile, "%sip_address=\"%s\"\n", prefix, piaddr (lease -> address)); diff --git a/relay/dhcrelay.c b/relay/dhcrelay.c index 77ea85f58..05f6b4b82 100644 --- a/relay/dhcrelay.c +++ b/relay/dhcrelay.c @@ -43,7 +43,7 @@ #ifndef lint static char ocopyright[] = -"$Id: dhcrelay.c,v 1.41 2000/05/16 23:03:30 mellon Exp $ Copyright (c) 1997-2000 Internet Software Consortium. All rights reserved.\n"; +"$Id: dhcrelay.c,v 1.42 2000/07/17 20:56:14 mellon Exp $ Copyright (c) 1997-2000 Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ #include "dhcpd.h" @@ -124,6 +124,7 @@ int main (argc, argv, envp) int no_daemon = 0; int quiet = 0; isc_result_t status; + char *s; #ifdef SYSLOG_4_2 openlog ("dhcrelay", LOG_NDELAY); @@ -214,6 +215,10 @@ int main (argc, argv, envp) } } + if ((s = getenv ("PATH_DHCRELAY_PID"))) { + path_dhcrelay_pid = s; + } + if (!quiet) { log_info ("%s %s", message, DHCP_VERSION); log_info (copyright); diff --git a/server/dhcpd.c b/server/dhcpd.c index 6ba9c77dc..d234da462 100644 --- a/server/dhcpd.c +++ b/server/dhcpd.c @@ -43,7 +43,7 @@ #ifndef lint static char ocopyright[] = -"$Id: dhcpd.c,v 1.95 2000/07/06 10:22:50 mellon Exp $ Copyright 1995-2000 Internet Software Consortium."; +"$Id: dhcpd.c,v 1.96 2000/07/17 20:56:08 mellon Exp $ Copyright 1995-2000 Internet Software Consortium."; #endif static char copyright[] = @@ -166,6 +166,9 @@ int main (argc, argv, envp) struct parse *parse; int lose; int omapi_port; + int no_dhcpd_conf = 0; + int no_dhcpd_db = 0; + int no_dhcpd_pid = 0; /* Set up the client classification system. */ classification_setup (); @@ -221,14 +224,17 @@ int main (argc, argv, envp) if (++i == argc) usage (); path_dhcpd_conf = argv [i]; + no_dhcpd_conf = 1; } else if (!strcmp (argv [i], "-lf")) { if (++i == argc) usage (); path_dhcpd_db = argv [i]; + no_dhcpd_db = 1; } else if (!strcmp (argv [i], "-pf")) { if (++i == argc) usage (); path_dhcpd_pid = argv [i]; + no_dhcpd_pid = 1; } else if (!strcmp (argv [i], "-t")) { /* test configurations only */ #ifndef DEBUG @@ -268,6 +274,16 @@ int main (argc, argv, envp) } } + if (!no_dhcpd_conf && (s = getenv ("PATH_DHCPD_CONF"))) { + path_dhcpd_conf = s; + } + if (!no_dhcpd_db && (s = getenv ("PATH_DHCPD_DB"))) { + path_dhcpd_db = s; + } + if (!no_dhcpd_pid && (s = getenv ("PATH_DHCPD_PID"))) { + path_dhcpd_pid = s; + } + if (!quiet) { log_info ("%s %s", message, DHCP_VERSION); log_info (copyright);