aboutsummaryrefslogtreecommitdiff
path: root/contrib/isc-dhcp/client
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/isc-dhcp/client')
-rw-r--r--contrib/isc-dhcp/client/Makefile.dist136
-rw-r--r--contrib/isc-dhcp/client/dhclient.c13
2 files changed, 144 insertions, 5 deletions
diff --git a/contrib/isc-dhcp/client/Makefile.dist b/contrib/isc-dhcp/client/Makefile.dist
new file mode 100644
index 000000000000..2109d3977c83
--- /dev/null
+++ b/contrib/isc-dhcp/client/Makefile.dist
@@ -0,0 +1,136 @@
+# Makefile.dist
+#
+# Copyright (c) 1996, 1997, 1999 The Internet Software Consortium.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. Neither the name of The Internet Software Consortium nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE INTERNET SOFTWARE CONSORTIUM AND
+# CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+# BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
+# THE INTERNET SOFTWARE CONSORTIUM OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+
+CATMANPAGES = dhclient.cat8 dhclient.conf.cat5 dhclient-script.cat8 \
+ dhclient.leases.cat5
+SEDMANPAGES = dhclient.man8 dhclient.conf.man5 dhclient-script.man8 \
+ dhclient.leases.man5
+SRCS = dhclient.c clparse.c
+OBJS = dhclient.o clparse.o
+PROG = dhclient
+MAN = dhclient.8 dhclient.conf.5 dhclient-script.8 dhclient.leases.5
+
+DEBUG = -g
+INCLUDES = -I.. -I../includes
+DHCPLIB = ../common/libdhcp.a
+CFLAGS = $(DEBUG) $(PREDEFINES) $(INCLUDES) $(COPTS)
+
+all: $(PROG) $(CATMANPAGES)
+
+install: all
+ for dir in $(CLIENTBINDIR) $(ETC) $(FFMANDIR) $(ADMMANDIR) $(VARDB); \
+ do \
+ foo=""; \
+ for bar in `echo $(DESTDIR)$${dir} |tr / ' '`; do \
+ foo=$${foo}/$$bar; \
+ if [ ! -d $$foo ]; then \
+ mkdir $$foo; \
+ chmod 755 $$foo; \
+ fi; \
+ done; \
+ done
+ $(INSTALL) dhclient $(DESTDIR)$(CLIENTBINDIR)
+ $(CHMOD) 755 $(DESTDIR)$(CLIENTBINDIR)/dhclient
+ if [ x$(SCRIPT) = xnone ]; then \
+ echo "No client script available."; \
+ else \
+ $(INSTALL) scripts/$(SCRIPT) $(DESTDIR)$(ETC)/dhclient-script; \
+ $(CHMOD) 700 $(DESTDIR)$(ETC)/dhclient-script; \
+ fi
+ $(MANINSTALL) $(MANFROM) dhclient.$(MANCAT)8 $(MANTO) \
+ $(DESTDIR)$(ADMMANDIR)/dhclient$(ADMMANEXT)
+ $(MANINSTALL) $(MANFROM) dhclient-script.$(MANCAT)8 $(MANTO) \
+ $(DESTDIR)$(ADMMANDIR)/dhclient-script$(ADMMANEXT)
+ $(MANINSTALL) $(MANFROM) dhclient.conf.$(MANCAT)5 $(MANTO) \
+ $(DESTDIR)$(FFMANDIR)/dhclient.conf$(FFMANEXT)
+ $(MANINSTALL) $(MANFROM) dhclient.leases.$(MANCAT)5 $(MANTO) \
+ $(DESTDIR)$(FFMANDIR)/dhclient.leases$(FFMANEXT)
+
+clean:
+ -rm -f $(OBJS)
+
+realclean: clean
+ -rm -f $(PROG) $(CATMANPAGES) $(SEDMANPAGES) *~ #*
+
+distclean: realclean
+ -rm -f Makefile
+
+# These should only be done on 4.4 BSD-based systems, since the mandoc
+# macros aren't available on older unices. Catted man pages are
+# provided in the distribution so that this doesn't become a problem.
+
+dhclient.cat8: dhclient.man8
+ nroff -man dhclient.man8 >dhclient.cat8
+
+dhclient.man8: dhclient.8
+ sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
+ -e "s#RUNDIR#$(VARRUN)#g" < dhclient.8 >dhclient.man8
+
+dhclient-script.cat8: dhclient-script.man8
+ nroff -man dhclient-script.man8 >dhclient-script.cat8
+
+dhclient-script.man8: dhclient-script.8
+ sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
+ -e "s#RUNDIR#$(VARRUN)#g" < dhclient-script.8 \
+ >dhclient-script.man8
+
+dhclient.conf.man5: dhclient.conf.5
+ sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
+ -e "s#RUNDIR#$(VARRUN)#g" < dhclient.conf.5 \
+ >dhclient.conf.man5
+
+dhclient.conf.cat5: dhclient.conf.man5
+ nroff -man dhclient.conf.man5 >dhclient.conf.cat5
+
+dhclient.leases.man5: dhclient.leases.5
+ sed -e "s#ETCDIR#$(ETC)#g" -e "s#DBDIR#$(VARDB)#g" \
+ -e "s#RUNDIR#$(VARRUN)#g" < dhclient.leases.5 \
+ >dhclient.leases.man5
+
+dhclient.leases.cat5: dhclient.leases.man5
+ nroff -man dhclient.leases.man5 >dhclient.leases.cat5
+
+dhclient: $(OBJS) $(DHCPLIB)
+ $(CC) $(LFLAGS) -o $(PROG) $(OBJS) $(DHCPLIB) $(LIBS)
+
+# Dependencies (semi-automatically-generated)
+
+dhclient.o: dhclient.c ../includes/dhcpd.h \
+ ../includes/cdefs.h ../includes/osdep.h ../includes/site.h \
+ ../includes/cf/netbsd.h ../includes/dhcp.h \
+ ../includes/tree.h ../includes/hash.h ../includes/inet.h \
+ ../includes/sysconf.h ../includes/version.h
+clparse.o: clparse.c ../includes/dhcpd.h \
+ ../includes/cdefs.h ../includes/osdep.h ../includes/site.h \
+ ../includes/cf/netbsd.h ../includes/dhcp.h \
+ ../includes/tree.h ../includes/hash.h ../includes/inet.h \
+ ../includes/sysconf.h ../includes/dhctoken.h
diff --git a/contrib/isc-dhcp/client/dhclient.c b/contrib/isc-dhcp/client/dhclient.c
index d904e7533461..30424f6a36eb 100644
--- a/contrib/isc-dhcp/client/dhclient.c
+++ b/contrib/isc-dhcp/client/dhclient.c
@@ -56,7 +56,7 @@
#ifndef lint
static char ocopyright[] =
-"$Id: dhclient.c,v 1.44.2.39 1999/06/22 13:36:46 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
+"$Id: dhclient.c,v 1.44.2.44 2000/01/26 12:51:11 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n";
#endif /* not lint */
#include "dhcpd.h"
@@ -176,7 +176,8 @@ int main (argc, argv, envp)
note (contrib);
note (url);
note ("");
- }
+ } else
+ log_perror = 0;
/* Default to the DHCP/BOOTP port. */
if (!local_port) {
@@ -1847,7 +1848,7 @@ void write_client_lease (ip, lease, rewrite)
lease -> filename);
if (lease -> server_name)
fprintf (leaseFile, " server-name \"%s\";\n",
- lease -> filename);
+ lease -> server_name);
if (lease -> medium)
fprintf (leaseFile, " medium \"%s\";\n",
lease -> medium -> string);
@@ -1910,9 +1911,11 @@ void script_init (ip, reason, medium)
if (!mktemp (scriptName))
error ("can't create temporary client script %s: %m",
scriptName);
- fd = creat (scriptName, 0600);
- } while (fd < 0);
+ fd = open (scriptName, O_EXCL | O_CREAT | O_WRONLY, 0600);
+ } while (fd < 0 && errno == EEXIST);
#endif
+ if (fd < 0)
+ error ("can't create temporary script %s: %m", scriptName);
scriptFile = fdopen (fd, "w");
if (!scriptFile)