Import ISC DHCP 3.0.1 RC10 client.

This commit is contained in:
Murray Stokely 2003-01-15 10:31:26 +00:00
parent c36726bfe1
commit 8a71375ab6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/isc-dhcp/dist/; revision=109298
27 changed files with 135 additions and 65 deletions

View file

@ -1,5 +1,5 @@
/*
* Copyright (c) 1996-1999 Internet Software Consortium.
* Copyright (c) 1996-2002 Internet Software Consortium.
* Use is subject to license terms which appear in the file named
* ISC-LICENSE that should have accompanied this file when you
* received it. If a file named ISC-LICENSE did not accompany this

View file

@ -1,6 +1,6 @@
# Makefile
#
# Copyright (c) 2000 Internet Software Consortium.
# Copyright (c) 2002 Internet Software Consortium.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without

View file

@ -1,6 +1,6 @@
# Makefile.conf
#
# Copyright (c) 1996-2000 Internet Software Consortium.
# Copyright (c) 1996-2002 Internet Software Consortium.
# Use is subject to license terms which appear in the file named
# ISC-LICENSE that should have accompanied this file when you
# received it. If a file named ISC-LICENSE did not accompany this

View file

@ -1,6 +1,6 @@
# Makefile.dist
#
# Copyright (c) 1996-1999 Internet Software Consortium.
# Copyright (c) 1996-2002 Internet Software Consortium.
# Use is subject to license terms which appear in the file named
# ISC-LICENSE that should have accompanied this file when you
# received it. If a file named ISC-LICENSE did not accompany this

View file

@ -97,7 +97,7 @@ system.
RELEASE STATUS
This is the ninth release candidate of version 3.0.1 of the ISC DHCP
This is the tenth release candidate of version 3.0.1 of the ISC DHCP
Distribution. Development of this release is approaching the point at
which it will be frozen, and no significant new features will be
added.
@ -143,14 +143,14 @@ information. On Digital Unix, type ``man pfilt''.
To build the DHCP Distribution, unpack the compressed tar file using
the tar utility and the gzip command - type something like:
zcat dhcp-3.0.1rc9.tar.gz |tar xvf -
zcat dhcp-3.0.1rc10.tar.gz |tar xvf -
On BSD/OS, you have to type gzcat, not zcat, and you may run into
similar problems on other operating systems.
CONFIGURING IT
Now, cd to the dhcp-3.0.1rc9 subdirectory that you've just
Now, cd to the dhcp-3.0.1rc10 subdirectory that you've just
created and configure the source tree by typing:
./configure
@ -244,16 +244,6 @@ network interface. There are also two potential compilation/runtime
problems for Linux 2.1/2.2: the "SO_ATTACH_FILTER undeclared" problem
and the "protocol not configured" problem.
LINUX: IF_TR.H NOT FOUND
When you compile the distribution on Linux, you may get an error
message indicating that the include file if_tr.h could not be found.
If this happens, go into includes/cf/linux.h and delete the line that
defined HAVE_TR_SUPPORT, or look into installing a new version of libc
that includes the if_tr.h file. We will be working on removing this
problem in the future, but for now, if you run into it, this should be
a viable workaround.
LINUX: SO_ATTACH_FILTER UNDECLARED
In addition, there is a minor issue that we will mention here because

View file

@ -1,7 +1,7 @@
Internet Software Consortium DHCP Distribution
Version 3.0.1
Release Candidate 9
April 30, 2002
Release Candidate 10
June, 2002
Release Notes
@ -46,6 +46,46 @@ Murrell at BC Tel Advanced Communications. I'd like to express my
thanks to all of these good people here, both for working on the code
and for prodding me into improving it.
Changes since 3.0.1rc9
- A format string was corrected to fix compiler warnings.
- A number of spelling corrections were made in the man pages.
- The dhclient.conf.5 man page was changed to refer to do-forward-updates
rather than a configuration option that doesn't exist.
- A FreeBSD-specific bug in the interface removal handling was fixed.
- A Linux-specific Token Ring detection problem was fixed.
- Hashes removed from as-yet-unknown agent options, having those options
appear in reality before we know about them will no longer produce
self-corrupting lease databases.
- dhclient will use the proper port numbers now when using the -g option.
- A order-of-operations bug with 2 match clauses in 1 class statement is
fixed thanks to a patch from Andrew Matheson.
- Compilation problems on Solaris were fixed.
- Compilation problems when built with DEBUG or DEBUG_PACKET were repaired.
- A fix to the dhcp ack process which makes certain group options will be
included in the first DHCPOFFER message was made thanks to a patch from
Ling Gou.
- A few memory leaks were repaired thanks to patches from Bill Squier at
ReefEdge, Inc. (groo@reefedge.com).
- A fix for shared-networks that sometimes give clients options for the
wrong subnets (in particular, 'option routers') was applied, thanks to
Ted Lemon for the patch.
- Omshell's handling of dotted octets as values was changed such that dots
one after the other produce zero values in the integer string.
Changes since 3.0.1rc8
- Fix a format string vulnerability in the server that could lead to a

View file

@ -34,6 +34,9 @@
.\" ``http://www.isc.org/''. To learn more about Vixie Enterprises,
.\" see ``http://www.vix.com''. To learn more about Nominum, Inc., see
.\" ``http://www.nominum.com''.
.\"
.\" $Id: dhclient-script.8,v 1.8.2.3 2002/05/27 04:18:41 murray Exp $
.\"
.TH dhclient-script 8
.SH NAME
dhclient-script - DHCP client network configuration script

View file

@ -15,6 +15,9 @@
.\"
.\" Support and other services are available for ISC products - see
.\" http://www.isc.org for more information.
.\"
.\" $Id: dhclient.8,v 1.12.2.6 2002/06/08 08:23:28 murray Exp $
.\"
.TH dhclient 8
.SH NAME
dhclient - Dynamic Host Configuration Protocol Client
@ -135,7 +138,7 @@ than cycling through the list of old leases.
The names of the network interfaces that dhclient should attempt to
configure may be specified on the command line. If no interface names
are specified on the command line dhclient will normally identify all
network interfaces, elimininating non-broadcast interfaces if
network interfaces, eliminating non-broadcast interfaces if
possible, and attempt to configure each interface.
.PP
It is also possible to specify interfaces by name in the

View file

@ -41,7 +41,7 @@
#ifndef lint
static char ocopyright[] =
"$Id: dhclient.c,v 1.129.2.10 2002/04/26 23:33:05 murray Exp $ Copyright (c) 1995-2001 Internet Software Consortium. All rights reserved.\n";
"$Id: dhclient.c,v 1.129.2.12 2002/11/07 23:26:38 dhankins Exp $ Copyright (c) 1995-2002 Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -71,19 +71,19 @@ struct in_addr giaddr;
assert (state_is == state_shouldbe). */
#define ASSERT_STATE(state_is, state_shouldbe) {}
static char copyright[] = "Copyright 1995-2001 Internet Software Consortium.";
static char copyright[] = "Copyright 1995-2002 Internet Software Consortium.";
static char arr [] = "All rights reserved.";
static char message [] = "Internet Software Consortium DHCP Client";
static char url [] = "For info, please visit http://www.isc.org/products/DHCP";
u_int16_t local_port;
u_int16_t remote_port;
int no_daemon;
struct string_list *client_env;
int client_env_count;
int onetry;
int quiet;
int nowait;
u_int16_t local_port=0;
u_int16_t remote_port=0;
int no_daemon=0;
struct string_list *client_env=NULL;
int client_env_count=0;
int onetry=0;
int quiet=0;
int nowait=0;
static void usage PROTO ((void));
@ -289,8 +289,10 @@ int main (argc, argv, envp)
/* Default to the DHCP/BOOTP port. */
if (!local_port) {
/* If we're faking a relay agent, and we're not using loopback,
use the server port, not the client port. */
if (relay && giaddr.s_addr != htonl (INADDR_LOOPBACK)) {
local_port = htons (67);
local_port = htons(67);
} else {
ent = getservbyname ("dhcpc", "udp");
if (!ent)
@ -304,13 +306,12 @@ int main (argc, argv, envp)
}
/* If we're faking a relay agent, and we're not using loopback,
use the server port, not the client port. */
we're using the server port, not the client port. */
if (relay && giaddr.s_addr != htonl (INADDR_LOOPBACK)) {
local_port = htons (ntohs (local_port) - 1);
remote_port = local_port;
} else
remote_port = htons (ntohs (local_port) - 1); /* XXX */
/* Get the current time... */
GET_TIME (&cur_time);

View file

@ -34,6 +34,9 @@
.\" ``http://www.isc.org/''. To learn more about Vixie Enterprises,
.\" see ``http://www.vix.com''. To learn more about Nominum, Inc., see
.\" ``http://www.nominum.com''.
.\"
.\" $Id: dhclient.conf.5,v 1.12.2.7 2002/11/04 00:41:30 dhankins Exp $
.\"
.TH dhclient.conf 5
.SH NAME
dhclient.conf - DHCP client configuration file
@ -249,19 +252,19 @@ updated. The \fIfqdn.encoded\fR option may need to be set to
\fIon\fR or \fIoff\fR, depending on the DHCP server you are using.
.PP
.I The
.B no-client-updates
.B do-forward-updates
.I statement
.PP
\fBno-client-updates [ \fIflag\fR ] \fB;\fR
\fBdo-forward-updates [ \fIflag\fR ] \fB;\fR
.PP
If you want to do DNS updates in the DHCP client
script (see \fBdhclient-script(8)\fR) rather than having the
DHCP client do the update directly (for example, if you want to
use SIG(0) authentication, which is not supported directly by the
DHCP client, you can instruct the client not to do the update using
the \fBno-client-updates\fR statement. \fIFlag\fR should be \fBtrue\fR
if you don't want the DHCP client to do the update, and \fBfalse\fR if
you want the DHCP client to do the update. By default, the DHCP
the \fBdo-forward-updates\fR statement. \fIFlag\fR should be \fBtrue\fR
if you want the DHCP client to do the update, and \fBfalse\fR if
you don't want the DHCP client to do the update. By default, the DHCP
client will do the DNS update.
.SH OPTION MODIFIERS
In some cases, a client may receive option data from the server which

View file

@ -35,6 +35,9 @@
.\" Enterprises. To learn more about the Internet Software Consortium,
.\" see ``http://www.isc.org/isc''. To learn more about Vixie
.\" Enterprises, see ``http://www.vix.com''.
.\"
.\" $Id: dhclient.leases.5,v 1.2.4.2 2002/05/27 04:18:44 murray Exp $
.\"
.TH dhclient.leases 5
.SH NAME
dhclient.leases - DHCP client lease database

View file

@ -1,5 +1,7 @@
#!/bin/sh
#
# $Id: freebsd,v 1.13.2.4 2002/06/09 22:37:55 murray Exp $
#
# $FreeBSD$
if [ -x /usr/bin/logger ]; then
@ -9,8 +11,12 @@ else
fi
make_resolv_conf() {
if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
echo search $new_domain_name >/etc/resolv.conf
if [ x"$new_domain_name_servers" != x ]; then
if [ "x$new_domain_name" != x ]; then
echo search $new_domain_name >/etc/resolv.conf
else
rm /etc/resolv.conf
fi
for nameserver in $new_domain_name_servers; do
echo nameserver $nameserver >>/etc/resolv.conf
done

View file

@ -47,7 +47,7 @@
#ifndef lint
static char copyright[] =
"$Id: bpf.c,v 1.48.2.1 2002/04/30 05:12:53 murray Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
"$Id: bpf.c,v 1.48.2.2 2002/06/08 09:29:16 murray Exp $ Copyright (c) 1995-2000 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -423,7 +423,11 @@ ssize_t receive_packet (interface, buf, len, from, hfrom)
interface -> rbuf,
(size_t)interface -> rbuf_max);
if (length <= 0) {
#ifdef __FreeBSD__
if (errno == ENXIO) {
#else
if (errno == EIO) {
#endif
dhcp_interface_remove
((omapi_object_t *)interface,
(omapi_object_t *)0);

View file

@ -34,6 +34,9 @@
.\" ``http://www.isc.org/''. To learn more about Vixie Enterprises,
.\" see ``http://www.vix.com''. To learn more about Nominum, Inc., see
.\" ``http://www.nominum.com''.
.\"
.\" $Id: dhcp-options.5,v 1.19.2.8 2002/08/26 03:08:39 dhankins Exp $
.\"
.TH dhcpd-options 5
.SH NAME
dhcp-options - Dynamic Host Configuration Protocol options
@ -244,7 +247,7 @@ server reply (DHCPOFFER), a DHCP server uses this option to specify
the lease time it is willing to offer.
.PP
This option is not directly user configurable in the server; refer to the
\fImax-lease-time\fR and \fidefault-lease-time\fR server options in
\fImax-lease-time\fR and \fIdefault-lease-time\fR server options in
.B dhcpd.conf(5).
.RE
.PP
@ -513,7 +516,7 @@ respond.
.RS 0.25i
.PP
This option specifies the maximum size datagram that the client
should be prepared to reassemble. The minimum value legal value is
should be prepared to reassemble. The minimum legal value is
576.
.RE
.PP
@ -551,7 +554,7 @@ The nds-servers option specifies a list of IP addresses of NDS servers.
.B option \fBnds-tree-name\fR \fIstring\fR\fB;\fR
.RS 0.25i
.PP
The nds-context option specifies NDS tree name that the NDS client
The nds-tree-name option specifies NDS tree name that the NDS client
should use.
.RE
.PP
@ -651,7 +654,7 @@ client. Servers should be listed in order of preference.
This option specifies whether the client should configure its IP
layer to allow forwarding of datagrams with non-local source routes
(see Section 3.3.5 of [4] for a discussion of this topic). A value
of 0 means disallow forwarding of such datagrams, and a value of true
of false means disallow forwarding of such datagrams, and a value of true
means allow forwarding.
.RE
.PP
@ -945,7 +948,7 @@ preference.
.PP
This option specifies whether or not the client should negotiate the
use of trailers (RFC 893 [14]) when using the ARP protocol. A value
of 0 indicates that the client should not attempt to use trailers. A
of false indicates that the client should not attempt to use trailers. A
value of true means that the client should attempt to use trailers.
.RE
.PP
@ -1114,7 +1117,7 @@ the format in which the \fIfqdn.fqdn\fR suboption is encoded.
.PP
.B option fqdn.rcode1 \fIflag\fB;
.PP
.B option fqdn.rcode1 \fIflag\fB;
.B option fqdn.rcode2 \fIflag\fB;
.RS 0.25i
.PP
These options specify the result of the updates of the A and PTR records,

View file

@ -43,7 +43,7 @@
#ifndef lint
static char copyright[] =
"$Id: discover.c,v 1.42.2.9 2002/03/12 06:46:17 mellon Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n";
"$Id: discover.c,v 1.42.2.12 2002/11/03 04:31:55 dhankins Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -540,8 +540,12 @@ void discover_interfaces (state)
if (tmp -> next)
interface_reference (&next, tmp -> next, MDL);
/* skip interfaces that are running already */
if (tmp -> flags & INTERFACE_RUNNING)
if (tmp -> flags & INTERFACE_RUNNING) {
interface_dereference(&tmp, MDL);
if(next)
interface_reference(&tmp, next, MDL);
continue;
}
if ((tmp -> flags & INTERFACE_AUTOMATIC) &&
state == DISCOVER_REQUESTED)
tmp -> flags &= ~(INTERFACE_AUTOMATIC |

View file

@ -44,7 +44,7 @@
#ifndef lint
static char copyright[] =
"$Id: icmp.c,v 1.30.2.3 2001/10/18 20:11:24 mellon Exp $ Copyright (c) 1996-2001 The Internet Software Consortium. All rights reserved.\n";
"$Id: icmp.c,v 1.30.2.4 2002/06/09 22:23:03 murray Exp $ Copyright (c) 1996-2001 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -164,6 +164,7 @@ int icmp_echorequest (addr)
if (!icmp_state)
log_fatal ("ICMP protocol used before initialization.");
memset (&to, 0, sizeof(to));
#ifdef HAVE_SA_LEN
to.sin_len = sizeof to;
#endif

View file

@ -43,7 +43,7 @@
#ifndef lint
static char copyright[] =
"$Id: parse.c,v 1.104.2.9 2002/04/27 05:30:02 murray Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n";
"$Id: parse.c,v 1.104.2.10 2002/11/03 04:31:55 dhankins Exp $ Copyright (c) 1995-2001 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -329,7 +329,7 @@ int parse_ip_addr (cfile, addr)
/*
* hardware-parameter :== HARDWARE hardware-type colon-seperated-hex-list SEMI
* hardware-type :== ETHERNET | TOKEN_RING
* hardware-type :== ETHERNET | TOKEN_RING | FDDI
*/
void parse_hardware_param (cfile, hardware)

View file

@ -51,7 +51,7 @@
#ifndef lint
static char copyright[] =
"$Id: socket.c,v 1.55.2.1 2002/01/17 19:42:55 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
"$Id: socket.c,v 1.55.2.2 2002/06/09 22:21:20 murray Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@ -114,11 +114,11 @@ int if_register_socket (info)
once = 1;
#endif
memset (&name, 0, sizeof (name));
/* Set up the address we're going to bind to. */
name.sin_family = AF_INET;
name.sin_port = local_port;
name.sin_addr = local_address;
memset (name.sin_zero, 0, sizeof (name.sin_zero));
/* Make a socket... */
if ((sock = socket (AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)

View file

@ -1,5 +1,5 @@
#ifndef LINT
static const char rcsid[] = "$Header: /proj/cvs/isc/DHCP/dst/dst_api.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
static const char rcsid[] = "$Header: /rc0/proj/cvs/isc/DHCP/dst/dst_api.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
#endif
/*

View file

@ -1,4 +1,4 @@
static const char rcsid[] = "$Header: /proj/cvs/isc/DHCP/dst/dst_support.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
static const char rcsid[] = "$Header: /rc0/proj/cvs/isc/DHCP/dst/dst_support.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
/*

View file

@ -1,6 +1,6 @@
#ifdef HMAC_MD5
#ifndef LINT
static const char rcsid[] = "$Header: /proj/cvs/isc/DHCP/dst/hmac_link.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
static const char rcsid[] = "$Header: /rc0/proj/cvs/isc/DHCP/dst/hmac_link.c,v 1.1 2001/02/22 07:22:08 mellon Exp $";
#endif
/*
* Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.

View file

@ -1,5 +1,5 @@
#ifndef LINT
static const char rcsid[] = "$Header: /proj/cvs/isc/DHCP/dst/prandom.c,v 1.1 2001/02/22 07:22:09 mellon Exp $";
static const char rcsid[] = "$Header: /rc0/proj/cvs/isc/DHCP/dst/prandom.c,v 1.1 2001/02/22 07:22:09 mellon Exp $";
#endif
/*
* Portions Copyright (c) 1995-1998 by Trusted Information Systems, Inc.

View file

@ -271,7 +271,7 @@ typedef enum {
FTS_RELEASED = 4,
FTS_ABANDONED = 5,
FTS_RESET = 6,
FTS_BACKUP = 7,
FTS_BACKUP = 7
} binding_state_t;
/* FTS_LAST is the highest value that is valid for a lease binding state. */
@ -648,7 +648,7 @@ struct client_lease {
struct auth_key *key; /* Key used in basic DHCP authentication. */
unsigned int is_static : 1; /* If set, lease is from config file. */
unsigned int is_bootp: 1; /* If set, lease was aquired with BOOTP. */
unsigned int is_bootp: 1; /* If set, lease was acquired with BOOTP. */
struct option_state *options; /* Options supplied with lease. */
};
@ -903,6 +903,8 @@ typedef unsigned char option_mask [16];
#define _PATH_DHCPD_CONF "dhcpd.conf"
#undef _PATH_DHCPD_DB
#define _PATH_DHCPD_DB "dhcpd.leases"
#undef _PATH_DHCPD_PID
#define _PATH_DHCPD_PID "dhcpd.pid"
#else
#ifndef _PATH_DHCPD_CONF
#define _PATH_DHCPD_CONF "/etc/dhcpd.conf"

View file

@ -276,6 +276,10 @@
# define HAVE_ARPHRD_IEEE802
#endif
#if defined (ARPHRD_IEEE802_TR) && !defined (HAVE_ARPHRD_IEEE802_TR)
# define HAVE_ARPHRD_IEEE802_TR
#endif
#if defined (ARPHRD_FDDI) && !defined (HAVE_ARPHRD_FDDI)
# define HAVE_ARPHRD_FDDI
#endif

View file

@ -1,3 +1,3 @@
/* Current version of ISC DHCP Distribution. */
#define DHCP_VERSION "V3.0.1rc9"
#define DHCP_VERSION "V3.0.1rc10"

View file

@ -70,7 +70,7 @@
#if defined(LIBC_SCCS) && !defined(lint)
static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93";
static const char rcsid[] = "$Id: res_send.c,v 1.7 2001/02/22 07:28:25 mellon Exp $";
static const char rcsid[] = "$Id: res_send.c,v 1.7.2.1 2002/11/03 04:34:24 dhankins Exp $";
#endif /* LIBC_SCCS and not lint */
/* Rename the I/O functions in case we're tracing. */
@ -600,7 +600,7 @@ res_nsend(res_state statp,
(unsigned)len);
}
Dprint(statp->options & RES_DEBUG,
(stdout, ";; new DG socket\n"))
(stdout, ";; new DG socket\n"));
#endif /* CAN_RECONNECT */
statp->_flags &= ~RES_F_CONN;
errno = 0;

View file

@ -711,6 +711,9 @@ omapi_message_process_internal (omapi_object_t *mo, omapi_object_t *po)
omapi_signal ((omapi_object_t *)m,
"status", ISC_R_SUCCESS,
(omapi_typed_data_t *)0);
omapi_object_dereference (&object, MDL);
return status;
case OMAPI_OP_NOTIFY: