mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-29 13:28:14 +00:00
[master] Restores use of env vars for lease and pid files
Merges in rt46859.
This commit is contained in:
parent
a2a0f98c21
commit
ab77c8b8b5
16
RELNOTES
16
RELNOTES
@ -298,10 +298,10 @@ dhcp-users@lists.isc.org.
|
||||
|
||||
- Added to the server (-6) a new statement, local-address6, which specifies
|
||||
the source address of packets sent by the server. An additional flag,
|
||||
bind-local-address6, disabled by default makes the service socket to
|
||||
be bound to local-address6. Note as for local-address this does not
|
||||
work with direct client: a relay has to forward packets to the server
|
||||
using the local-address6 destination.
|
||||
bind-local-address6, disabled by default, binds the service socket to
|
||||
to local-address6. Note that bind-local-address does not work with direct
|
||||
clients: a relay has to forward packets to the server using the
|
||||
local-address6 destination.
|
||||
[ISC-Bugs #46084]
|
||||
|
||||
Changes since 4.3.6 (Bugs):
|
||||
@ -338,6 +338,14 @@ dhcp-users@lists.isc.org.
|
||||
direction.
|
||||
[ISC-Bugs #46767]
|
||||
|
||||
- The server now recognizes environment variables PATH_DHCPD_DB and
|
||||
PATH_DHCPD_PID. These had been incorrectly compiled out of the code
|
||||
unless DHCPv6 support was disabled. Additionally, the server man
|
||||
pages were corrected to accurately reflect how the server chooses
|
||||
file names (see lease-file-name and pid-file-name statements). Thanks
|
||||
to Fernando Soto at Bluecat for bringing this matter to our attention.
|
||||
[ISC-Bugs #46859]
|
||||
|
||||
Changes since 4.3.6b1
|
||||
|
||||
- None
|
||||
|
@ -271,9 +271,9 @@ main(int argc, char **argv) {
|
||||
struct parse *parse;
|
||||
int lose;
|
||||
#endif
|
||||
int no_dhcpd_conf = 0;
|
||||
int no_dhcpd_db = 0;
|
||||
int no_dhcpd_pid = 0;
|
||||
int have_dhcpd_conf = 0;
|
||||
int have_dhcpd_db = 0;
|
||||
int have_dhcpd_pid = 0;
|
||||
#ifdef DHCPv6
|
||||
int local_family_set = 0;
|
||||
#ifdef DHCP4o6
|
||||
@ -464,17 +464,17 @@ main(int argc, char **argv) {
|
||||
if (++i == argc)
|
||||
usage(use_noarg, argv[i-1]);
|
||||
path_dhcpd_conf = argv [i];
|
||||
no_dhcpd_conf = 1;
|
||||
have_dhcpd_conf = 1;
|
||||
} else if (!strcmp (argv [i], "-lf")) {
|
||||
if (++i == argc)
|
||||
usage(use_noarg, argv[i-1]);
|
||||
path_dhcpd_db = argv [i];
|
||||
no_dhcpd_db = 1;
|
||||
have_dhcpd_db = 1;
|
||||
} else if (!strcmp (argv [i], "-pf")) {
|
||||
if (++i == argc)
|
||||
usage(use_noarg, argv[i-1]);
|
||||
path_dhcpd_pid = argv [i];
|
||||
no_dhcpd_pid = 1;
|
||||
have_dhcpd_pid = 1;
|
||||
} else if (!strcmp(argv[i], "--no-pid")) {
|
||||
no_pid_file = ISC_TRUE;
|
||||
} else if (!strcmp (argv [i], "-t")) {
|
||||
@ -570,42 +570,43 @@ main(int argc, char **argv) {
|
||||
}
|
||||
#endif /* DHCPv6 && DHCP4o6 */
|
||||
|
||||
if (!no_dhcpd_conf && (s = getenv ("PATH_DHCPD_CONF"))) {
|
||||
if (!have_dhcpd_conf && (s = getenv ("PATH_DHCPD_CONF"))) {
|
||||
path_dhcpd_conf = s;
|
||||
}
|
||||
|
||||
#ifdef DHCPv6
|
||||
if (local_family == AF_INET6) {
|
||||
/* DHCPv6: override DHCPv4 lease and pid filenames */
|
||||
if (!no_dhcpd_db) {
|
||||
if (!have_dhcpd_db) {
|
||||
if ((s = getenv ("PATH_DHCPD6_DB")))
|
||||
path_dhcpd_db = s;
|
||||
else
|
||||
path_dhcpd_db = _PATH_DHCPD6_DB;
|
||||
}
|
||||
if (!no_dhcpd_pid) {
|
||||
if (!have_dhcpd_pid) {
|
||||
if ((s = getenv ("PATH_DHCPD6_PID")))
|
||||
path_dhcpd_pid = s;
|
||||
else
|
||||
path_dhcpd_pid = _PATH_DHCPD6_PID;
|
||||
}
|
||||
} else
|
||||
#else /* !DHCPv6 */
|
||||
#endif /* DHCPv6 */
|
||||
{
|
||||
if (!no_dhcpd_db && (s = getenv ("PATH_DHCPD_DB"))) {
|
||||
if (!have_dhcpd_db && (s = getenv ("PATH_DHCPD_DB"))) {
|
||||
path_dhcpd_db = s;
|
||||
have_dhcpd_db = 1;
|
||||
}
|
||||
if (!no_dhcpd_pid && (s = getenv ("PATH_DHCPD_PID"))) {
|
||||
if (!have_dhcpd_pid && (s = getenv ("PATH_DHCPD_PID"))) {
|
||||
path_dhcpd_pid = s;
|
||||
have_dhcpd_pid = 1;
|
||||
}
|
||||
}
|
||||
#endif /* DHCPv6 */
|
||||
|
||||
/*
|
||||
* convert relative path names to absolute, for files that need
|
||||
* to be reopened after chdir() has been called
|
||||
*/
|
||||
if (path_dhcpd_db[0] != '/') {
|
||||
if (have_dhcpd_db && path_dhcpd_db[0] != '/') {
|
||||
const char *path = path_dhcpd_db;
|
||||
path_dhcpd_db = realpath(path_dhcpd_db, NULL);
|
||||
if (path_dhcpd_db == NULL)
|
||||
@ -795,7 +796,7 @@ main(int argc, char **argv) {
|
||||
|
||||
#if defined (TRACING)
|
||||
if (traceinfile) {
|
||||
if (!no_dhcpd_db) {
|
||||
if (!have_dhcpd_db) {
|
||||
log_error ("%s", "");
|
||||
log_error ("** You must specify a lease file with -lf.");
|
||||
log_error (" Dhcpd will not overwrite your default");
|
||||
|
@ -2633,31 +2633,16 @@ statement
|
||||
.B lease-file-name \fIname\fB;\fR
|
||||
.PP
|
||||
.I Name
|
||||
should be the name of the DHCP server's lease file. By default, this
|
||||
is DBDIR/dhcpd.leases. This statement \fBmust\fR appear in the outer
|
||||
scope of the configuration file - if it appears in some other scope,
|
||||
it will have no effect. Furthermore, it has no effect if overridden
|
||||
by the
|
||||
.B -lf
|
||||
flag or the
|
||||
.B PATH_DHCPD_DB
|
||||
environment variable.
|
||||
.RE
|
||||
Where \fIname\fR is the name of the DHCP server's lease file. By default,
|
||||
this is DBDIR/dhcpd.leases. This statement \fBmust\fR appear in the outer
|
||||
scope of the configuration file - if it appears in some other scope, it will
|
||||
have no effect. The value must be the absolute path of the file to use.
|
||||
The order of precedence the server uses for the lease file name
|
||||
is:
|
||||
.PP
|
||||
The
|
||||
.I limit-addrs-per-ia
|
||||
statement
|
||||
.RS 0.25i
|
||||
.PP
|
||||
.B limit-addrs-per-ia \fInumber\fB;\fR
|
||||
.PP
|
||||
By default, the DHCPv6 server will limit clients to one IAADDR per IA
|
||||
option, meaning one address. If you wish to permit clients to hang onto
|
||||
multiple addresses at a time, configure a larger \fInumber\fR here.
|
||||
.PP
|
||||
Note that there is no present method to configure the server to forcibly
|
||||
configure the client with one IP address per each subnet on a shared network.
|
||||
This is left to future work.
|
||||
1. \fBlease-file-name\fR configuration file statement.
|
||||
2. \fB-lf\fR command line flag.
|
||||
3. \fBPATH_DHCPD_DB\fR environment variable.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@ -2667,21 +2652,16 @@ statement
|
||||
.PP
|
||||
.B dhcpv6-lease-file-name \fIname\fB;\fR
|
||||
.PP
|
||||
.I Name
|
||||
is the name of the lease file to use if and only if the server is running
|
||||
in DHCPv6 mode. By default, this is DBDIR/dhcpd6.leases. This statement,
|
||||
like
|
||||
.I lease-file-name,
|
||||
\fBmust\fR appear in the outer scope of the configuration file. It
|
||||
has no effect if overridden by the
|
||||
.B -lf
|
||||
flag or the
|
||||
.B PATH_DHCPD6_DB
|
||||
environment variable. If
|
||||
.I dhcpv6-lease-file-name
|
||||
is not specified, but
|
||||
.I lease-file-name
|
||||
is, the latter value will be used.
|
||||
Where \fIname\fR is the name of the DHCP server's lease file when the server
|
||||
is running DHCPv6. By default, this is DBDIR/dhcpd6.leases. This statement
|
||||
\fBmust\fR appear in the outer scope of the configuration file - if it appears
|
||||
in some other scope, it will have no effect. The value must be the absolute
|
||||
path of the file to use. The order of precedence the server uses
|
||||
for the lease file name is:
|
||||
.PP
|
||||
1. \fBdhcpv6-lease-file-name\fR configuration file statement.
|
||||
2. \fB-lf\fR command line flag.
|
||||
3. \fBPATH_DHCPD6_DB\fR environment variable.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
@ -2705,6 +2685,22 @@ automatically reads the values in either format.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
.I limit-addrs-per-ia
|
||||
statement
|
||||
.RS 0.25i
|
||||
.PP
|
||||
.B limit-addrs-per-ia \fInumber\fB;\fR
|
||||
.PP
|
||||
By default, the DHCPv6 server will limit clients to one IAADDR per IA
|
||||
option, meaning one address. If you wish to permit clients to hang onto
|
||||
multiple addresses at a time, configure a larger \fInumber\fR here.
|
||||
.PP
|
||||
Note that there is no present method to configure the server to forcibly
|
||||
configure the client with one IP address per each subnet on a shared network.
|
||||
This is left to future work.
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
.I local-port
|
||||
statement
|
||||
.RS 0.25i
|
||||
@ -2970,14 +2966,13 @@ statement
|
||||
.I Name
|
||||
should be the name of the DHCP server's process ID file. This is the
|
||||
file in which the DHCP server's process ID is stored when the server
|
||||
starts. By default, this is RUNDIR/dhcpd.pid. Like the
|
||||
.I lease-file-name
|
||||
statement, this statement must appear in the outer scope
|
||||
of the configuration file. It has no effect if overridden by the
|
||||
.B -pf
|
||||
flag or the
|
||||
.B PATH_DHCPD_PID
|
||||
environment variable.
|
||||
starts. By default, this is RUNDIR/dhcpd.pid. Like the \fIlease-file-name\fR
|
||||
statement, this statement must appear in the outer scope of the configuration
|
||||
file. The order of precedence used by the server is:
|
||||
.PP
|
||||
1. \fBpid-file-name\fR configuration file statement.
|
||||
2. \fB-lf\fR command line flag.
|
||||
3. \fBPATH_DHCPD_PID\fR environment variable.
|
||||
.PP
|
||||
The
|
||||
.I dhcpv6-pid-file-name
|
||||
@ -2989,18 +2984,13 @@ statement
|
||||
.I Name
|
||||
is the name of the pid file to use if and only if the server is running
|
||||
in DHCPv6 mode. By default, this is DBDIR/dhcpd6.pid. This statement,
|
||||
like
|
||||
.I pid-file-name,
|
||||
\fBmust\fR appear in the outer scope of the configuration file. It
|
||||
has no effect if overridden by the
|
||||
.B -pf
|
||||
flag or the
|
||||
.B PATH_DHCPD6_PID
|
||||
environment variable. If
|
||||
.I dhcpv6-pid-file-name
|
||||
is not specified, but
|
||||
.I pid-file-name
|
||||
is, the latter value will be used.
|
||||
like \fIpid-file-name\fr, \fBmust\fR appear in the outer scope of the
|
||||
configuration file. The order of precedence used by the server is:
|
||||
.PP
|
||||
1. \fBdhcpv6-pid-file-name\fR configuration file statement.
|
||||
2. \fB-lf\fR command line flag.
|
||||
3. \fBPATH_DHCPD6_PID\fR environment variable.
|
||||
.PP
|
||||
.RE
|
||||
.PP
|
||||
The
|
||||
|
Loading…
x
Reference in New Issue
Block a user