]> git.ipfire.org Git - thirdparty/dhcp.git/commitdiff
Support environment variables to control locations of files.
authorTed Lemon <source@isc.org>
Mon, 17 Jul 2000 20:56:14 +0000 (20:56 +0000)
committerTed Lemon <source@isc.org>
Mon, 17 Jul 2000 20:56:14 +0000 (20:56 +0000)
client/dhclient.c
relay/dhcrelay.c
server/dhcpd.c

index be6e5e9ec838e387c6d4e1b6529b26f6e53bea6c..9b794006adf435ba027558365c37514316a9273f 100644 (file)
@@ -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));
index 77ea85f58b2ca18fabf4c111adfa0bf50275b4e4..05f6b4b826113426d39c2c1537308afedca5c554 100644 (file)
@@ -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);
index 6ba9c77dc3fbabb5bceac557fd6c0d34c5bdeb42..d234da46240fb7c5b6cb39134f21956da7ca150f 100644 (file)
@@ -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);