diff -rNc2 dhcp-3.0b1pl0/ANONCVS dhcp-3.0b1pl2/ANONCVS *** dhcp-3.0b1pl0/ANONCVS Wed Dec 31 16:00:00 1969 --- dhcp-3.0b1pl2/ANONCVS Wed Jul 7 12:13:24 1999 *************** *** 0 **** --- 1,129 ---- + Anonymous CVS Access for the ISC DHCP Distribution + + The ISC DHCP distribution can be accessed using "anonymous" CVS. + "Anonymous" cvs uses the CVS "pserver" mechanism to allow anybody on + the Internet to access a CVS repository without having to register in + any way. Anonymous CVS allows you to access changes as soon as the + DHCP developers commit them, rather than having to wait for the next + snapshot or patchlevel. Changes that have not yet been released yet + are not guaranteed to work, but they can nonetheless be useful in many + cases. + + TABLE OF CONTENTS + + 1. What is anonymous CVS? + 2. How can i start using it? + 3. Checking out the latest code in a release + 4. Checking out the latest code + 5. Checking out a specific release + 6. When to update + + WHAT IS ANONYMOUS CVS? + + Anonymous CVS also allows you to browse through the history of the + DHCP distribution, and examine the revision history of specific files + to see how they have changed between revisions, to try to figure out + why something that was working before is no longer working, or just to + see when a certain change was made. + + HOW CAN I START USING IT? + + To use anonymous CVS to access the DHCP distribution, you must first + "log in". You should only need to do this once, but it is a + necessary step, even though access is anonymous. Anonymous users log + in as user "nobody", password "nobody". To do this, type: + + cvs -d :pserver:nobody@dhcp.cvs.isc.org:/cvsroot login + + You will be prompted for a password - type "nobody". If you get some + kind of error indicating that cvs doesn't know how to log you in, you + are probably running an old version of cvs, and should upgrade. This + should work with cvs version 1.10. + + Once you have logged in, you can check out a version of the DHCP + distribution, so the next question is, which version? + + CHECKING OUT THE LATEST CODE IN A RELEASE + + There are currently four major versions of the distribution - Release + 1, Release 2, Release 3, and the current development tree. Releases + 1, 2 and 3 are branches in the CVS repository. To check out the + latest code on any of these branches, you would use a branch tag of + RELEASE_1, RELEASE_2 or RELEASE_3 in the following command: + + (setenv CVSROOT :pserver:nobody@dhcp.cvs.isc.org:/cvsroot; + cvs checkout -d dhcp-2.0 -r RELEASE_2 DHCP) + + Note that the example is for Release 2. + + CHECKING OUT THE LATEST CODE + + To check out the current engineering version, use: + + (setenv CVSROOT :pserver:nobody@dhcp.cvs.isc.org:/cvsroot; + cvs checkout -d dhcp-current DHCP) + + Note that the current engineering version is a work in progress, and + there is no real guarantee that it will work for you. + + CHECKING OUT A SPECIFIC RELEASE + + You can also check out specific versions of the DHCP distribution. + There are three kinds of version tags you may find - alpha tags, beta + tags and release tags. Alpha tags look like this: + + V#-ALPHA-YYYYMMDD + + # is the release number. YYYYMMDD is the date of the release, with a + 4-digit year, the month expressed as a number (January=1), and the day + of the month specified as a number, with the first day of the month + being 1. + + Beta tags look like this: + + V#-BETA-%-PATCH-* + + Where # is the release number, % is the Beta number (usually 1) and * + is the patchlevel. In the future there may also be beta tags that + look like this: + + V#-#-BETA-%-PATCH-* + + Where #-# is the major version followed by the minor version - for + example, when the first 3.1 beta comes out, the tag will look like + this: + + V3-1-BETA-1-PATCH-0 + + Release tags look like this: + + V#-%-* + + Where # is the major version, % is the minor version, and * is the + patchlevel. So the tag for 1.0pl2 is V1-0-2, and to check it out, + you'd type: + + (setenv CVSROOT :pserver:nobody@dhcp.cvs.isc.org:/cvsroot; + cvs checkout -d dhcp-1.0pl2 -rV1-0-2 DHCP) + + Whenever changes are checked in to the ISC DHCP repository, or files + are tagged, a notice is sent to the dhcp-source-changes@isc.org + mailing list. You can subscribe to this list by sending mail to + dhcp-source-changes-request@isc.org, and you will then get immediate + notification when changes are made. You may find the volume of mail + on this list annoying, however. + + WHEN TO UPDATE + + We do not recommend that you do an update immediately after you see a + change on the dhcp-source-changes mailing list - instead, it's best to + wait a while to make sure that any changes that change depends on have + also been committed. Also, sometimes when development is being done + on two machines, the developers will check in a tentative change that + hasn't been tested at all so that they can update on a different + machine and test the change. The best way to avoid accidentally + getting one of these changes is to not update aggressively - when a + change is made, wait a while before updating, to make sure that it's + not going to be quickly followed by another change. + + diff -rNc2 dhcp-3.0b1pl0/Makefile.conf dhcp-3.0b1pl2/Makefile.conf *** dhcp-3.0b1pl0/Makefile.conf Wed Jul 7 08:20:10 1999 --- dhcp-3.0b1pl2/Makefile.conf Tue Jul 13 11:40:27 1999 *************** *** 44,47 **** --- 44,57 ---- ##--nsupdate-- + # Major version number (if applicable) + ##--majver-- + MAJORVERSION=MajorVersion + ##--majver-- + + # Minor version number (if applicable) + ##--minver-- + MINORVERSION=MinorVersion + ##--minver-- + ## Porting:: # *************** *** 184,188 **** ## Linux 1.x ##--linux-1-- ! #COPTS = -DLINUX_MAJOR=1 -DLINUX_MINOR=0 $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 --- 194,198 ---- ## Linux 1.x ##--linux-1-- ! #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 *************** *** 198,202 **** ## Linux 2.0 ##--linux-2.0-- ! #COPTS = -DLINUX_MAJOR=2 -DLINUX_MINOR=0 $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 --- 208,212 ---- ## Linux 2.0 ##--linux-2.0-- ! #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 *************** *** 212,216 **** ## Linux 2.1 ##--linux-2.1-- ! #COPTS = -DLINUX_MAJOR=2 -DLINUX_MINOR=1 $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 --- 222,226 ---- ## Linux 2.1 ##--linux-2.1-- ! #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 *************** *** 226,230 **** ## Linux 2.2 ##--linux-2.2-- ! #COPTS = -DLINUX_MAJOR=2 -DLINUX_MINOR=2 $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 --- 236,240 ---- ## Linux 2.2 ##--linux-2.2-- ! #COPTS = -DLINUX_MAJOR=$(MAJORVERSION) -DLINUX_MINOR=$(MINORVERSION) $(BINDDEF) #CF = cf/linux.h #ADMMANDIR = /usr/man/man8 diff -rNc2 dhcp-3.0b1pl0/common/discover.c dhcp-3.0b1pl2/common/discover.c *** dhcp-3.0b1pl0/common/discover.c Fri Apr 23 08:23:08 1999 --- dhcp-3.0b1pl2/common/discover.c Tue Jul 13 05:52:45 1999 *************** *** 23,27 **** #ifndef lint static char copyright[] = ! "$Id: discover.c,v 1.9 1999/04/23 15:23:08 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 23,27 ---- #ifndef lint static char copyright[] = ! "$Id: discover.c,v 1.9.2.1 1999/07/13 12:52:45 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 441,448 **** log_error ("No subnet declaration for %s (%s).", tmp -> name, inet_ntoa (foo.sin_addr)); ! log_error ("Please write a subnet declaration for %s", ! "the network segment to"); ! log_fatal ("which interface %s is attached.", ! tmp -> name); } --- 441,448 ---- log_error ("No subnet declaration for %s (%s).", tmp -> name, inet_ntoa (foo.sin_addr)); ! log_error ("Please write a subnet declaration in %s", ! "your dhcpd.conf file for the"); ! log_fatal ("network segment to which interface %s %s", ! tmp -> name, "is attached."); } diff -rNc2 dhcp-3.0b1pl0/common/lpf.c dhcp-3.0b1pl2/common/lpf.c *** dhcp-3.0b1pl0/common/lpf.c Wed Jun 9 17:10:50 1999 --- dhcp-3.0b1pl2/common/lpf.c Mon Oct 4 16:11:35 1999 *************** *** 24,28 **** #ifndef lint static char copyright[] = ! "$Id: lpf.c,v 1.13 1999/06/10 00:10:50 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 24,28 ---- #ifndef lint static char copyright[] = ! "$Id: lpf.c,v 1.13.2.1 1999/10/04 23:11:35 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 74,80 **** errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) ! log_fatal ("socket: %m - make sure %s %s!", ! "CONFIG_PACKET and CONFIG_FILTER are", ! "defined in your kernel configuration"); log_fatal ("Open a socket for LPF: %m"); } --- 74,81 ---- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) ! log_fatal ("socket: %m - make sure %s %s %s!", ! "CONFIG_PACKET (Packet socket)" ! "and CONFIG_FILTER (Socket Filtering) are", ! "enabled in your kernel configuration"); log_fatal ("Open a socket for LPF: %m"); } *************** *** 88,94 **** errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) ! log_fatal ("socket: %m - make sure %s %s!", ! "CONFIG_PACKET and CONFIG_FILTER are", ! "defined in your kernel configuration"); log_fatal ("Bind socket to interface: %m"); } --- 89,96 ---- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT || errno == EINVAL) ! log_fatal ("bind: %m - make sure %s %s %s!", ! "CONFIG_PACKET (Packet socket)" ! "and CONFIG_FILTER (Socket Filtering) are", ! "enabled in your kernel configuration"); log_fatal ("Bind socket to interface: %m"); } *************** *** 171,178 **** errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT) ! error ("socket: %m - make sure %s %s!", ! "CONFIG_PACKET and CONFIG_FILTER are defined", ! "in your kernel configuration"); ! error ("Can't install packet filter program: %m"); } } --- 173,181 ---- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT) ! log_fatal ("socket: %m - make sure %s %s %s!", ! "CONFIG_PACKET (Packet socket)" ! "and CONFIG_FILTER (Socket Filtering) are", ! "enabled in your kernel configuration"); ! log_fatal ("Can't install packet filter program: %m"); } } *************** *** 200,207 **** errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT) ! error ("socket: %m - make sure %s %s!", ! "CONFIG_PACKET and CONFIG_FILTER are defined", ! "in your kernel configuration"); ! error ("Can't install packet filter program: %m"); } } --- 203,211 ---- errno == ESOCKTNOSUPPORT || errno == EPFNOSUPPORT || errno == EAFNOSUPPORT) ! log_fatal ("socket: %m - make sure %s %s %s!", ! "CONFIG_PACKET (Packet socket)" ! "and CONFIG_FILTER (Socket Filtering) are", ! "enabled in your kernel configuration"); ! log_fatal ("Can't install packet filter program: %m"); } } diff -rNc2 dhcp-3.0b1pl0/common/nsupdate.c dhcp-3.0b1pl2/common/nsupdate.c *** dhcp-3.0b1pl0/common/nsupdate.c Wed Jul 7 08:32:02 1999 --- dhcp-3.0b1pl2/common/nsupdate.c Thu Oct 7 14:36:03 1999 *************** *** 26,30 **** #ifndef lint static char copyright[] = ! "$Id: nsupdate.c,v 1.3 1999/07/07 15:32:02 mellon Exp $ Copyright (c) 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 26,30 ---- #ifndef lint static char copyright[] = ! "$Id: nsupdate.c,v 1.3.2.2 1999/10/07 21:36:03 mellon Exp $ Copyright (c) 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 130,134 **** memset (&d, 0, sizeof d); if (oc && evaluate_option_cache (&d, packet, ! packet -> options, lease, oc)) { memcpy(hostname, d.data, d.len); hostname[d.len]='\0'; --- 130,134 ---- memset (&d, 0, sizeof d); if (oc && evaluate_option_cache (&d, packet, ! state -> options, lease, oc)) { memcpy(hostname, d.data, d.len); hostname[d.len]='\0'; *************** *** 136,140 **** } else { oc = lookup_option (&dhcp_universe, ! state -> options, DHO_HOST_NAME); memset (&d, 0, sizeof d); if (oc && evaluate_option_cache (&d, packet, packet -> options, --- 136,140 ---- } else { oc = lookup_option (&dhcp_universe, ! packet -> options, DHO_HOST_NAME); memset (&d, 0, sizeof d); if (oc && evaluate_option_cache (&d, packet, packet -> options, *************** *** 298,304 **** revname = ddns_rev_name(lease, state, packet); ! if (state -> offered_expiry > lease -> timestamp) ! ttl = state -> offered_expiry - ! lease->timestamp; else log_error("nsupdate: ttl < 0"); --- 298,303 ---- revname = ddns_rev_name(lease, state, packet); ! if (state -> offered_expiry > cur_time) ! ttl = state -> offered_expiry - cur_time; else log_error("nsupdate: ttl < 0"); diff -rNc2 dhcp-3.0b1pl0/common/print.c dhcp-3.0b1pl2/common/print.c *** dhcp-3.0b1pl0/common/print.c Mon Apr 5 09:18:22 1999 --- dhcp-3.0b1pl2/common/print.c Tue Jul 13 11:42:58 1999 *************** *** 23,27 **** #ifndef lint static char copyright[] = ! "$Id: print.c,v 1.22 1999/04/05 16:18:22 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 23,27 ---- #ifndef lint static char copyright[] = ! "$Id: print.c,v 1.22.2.1 1999/07/13 18:42:58 mellon Exp $ Copyright (c) 1995, 1996, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 447,451 **** if (rv + 2 > len) rv = len - 2; ! strncpy (buf, expr -> data.encapsulate.data, rv - 13); buf [rv++] = ')'; buf [rv++] = 0; --- 447,451 ---- if (rv + 2 > len) rv = len - 2; ! strncpy (buf, (char *)expr -> data.encapsulate.data, rv - 13); buf [rv++] = ')'; buf [rv++] = 0; diff -rNc2 dhcp-3.0b1pl0/common/tree.c dhcp-3.0b1pl2/common/tree.c *** dhcp-3.0b1pl0/common/tree.c Tue Jul 6 10:04:31 1999 --- dhcp-3.0b1pl2/common/tree.c Tue Jul 13 11:43:35 1999 *************** *** 23,27 **** #ifndef lint static char copyright[] = ! "$Id: tree.c,v 1.31 1999/07/06 17:04:31 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 23,27 ---- #ifndef lint static char copyright[] = ! "$Id: tree.c,v 1.31.2.1 1999/07/13 18:43:35 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 273,277 **** } ! int do_host_lookup (result, dns) struct data_string *result; struct dns_host_entry *dns; --- 273,277 ---- } ! static int do_host_lookup (result, dns) struct data_string *result; struct dns_host_entry *dns; diff -rNc2 dhcp-3.0b1pl0/configure dhcp-3.0b1pl2/configure *** dhcp-3.0b1pl0/configure Wed Jul 7 08:20:10 1999 --- dhcp-3.0b1pl2/configure Tue Jul 13 11:40:16 1999 *************** *** 32,40 **** fi;; Linux) ! case `uname -r` in ! 1*) sysname=linux-1 ;; ! 2.1*) sysname=linux-2.1 ;; ! 2.2*) sysname=linux-2.2 ;; ! 2*) sysname=linux-2.0 ;; esac;; SunOS) --- 32,47 ---- fi;; Linux) ! release=`uname -r` ! minor=`echo $release |sed -e 's/[0-9]*\.\([0-9][0-9]*\)\(\..*\)*$/\1/'` ! major=`echo $release |sed -e 's/\([0-9][0-9]*\)\..*$/\1/'` ! ! case $major in ! 1) sysname=linux-1 ;; ! 2) case $minor in ! 0) sysname=linux-2.0 ;; ! 1) sysname=linux-2.1 ;; ! 2) sysname=linux-2.2 ;; ! *) sysname=linux-2.2 ;; ! esac;; esac;; SunOS) *************** *** 90,95 **** echo "System Type: $sysname" for foo in . client server relay common; do ! (sed $nsupdate -e "/^##--${sysname}--/,/^##--${sysname}--/s/^#//" \ $foo/Makefile --- 97,108 ---- echo "System Type: $sysname" + if [ x$major != x ] && [ x$minor != x ]; then + majversubst="-e /^##--majver--/,/^##--majver--/s/MajorVersion/$major/" + minversubst="-e /^##--minver--/,/^##--minver--/s/MinorVersion/$minor/" + fi + for foo in . client server relay common; do ! (sed $nsupdate $majversubst $minversubst \ ! -e "/^##--${sysname}--/,/^##--${sysname}--/s/^#//" \ $foo/Makefile diff -rNc2 dhcp-3.0b1pl0/includes/auth.h dhcp-3.0b1pl2/includes/auth.h *** dhcp-3.0b1pl0/includes/auth.h Mon Mar 15 21:50:38 1999 --- dhcp-3.0b1pl2/includes/auth.h Tue Jul 13 11:44:10 1999 *************** *** 28,33 **** u_int8_t *output; int output_len; ! void (*update) (u_int8_t *, u_int8_t *, u_int8_t *); ! void (*final) (u_int8_t *, u_int8_t *); }; --- 28,33 ---- u_int8_t *output; int output_len; ! void (*update) PROTO ((u_int8_t *, u_int8_t *, u_int8_t *)); ! void (*final) PROTO ((u_int8_t *, u_int8_t *)); }; diff -rNc2 dhcp-3.0b1pl0/includes/cf/hpux.h dhcp-3.0b1pl2/includes/cf/hpux.h *** dhcp-3.0b1pl0/includes/cf/hpux.h Mon Mar 15 21:50:40 1999 --- dhcp-3.0b1pl2/includes/cf/hpux.h Tue Jul 13 11:45:44 1999 *************** *** 53,59 **** --- 53,67 ---- #endif + #if !defined (__ANSI__) + /* Varargs stuff: use stdarg.h instead ... */ + #include + #define VA_DOTDOTDOT ... + #define VA_start(list, last) va_start (list, last) + #define va_dcl + #else #include #define VA_DOTDOTDOT va_alist #define VA_start(list, last) va_start (list) + #endif #define vsnprintf(buf, size, fmt, list) vsprintf (buf, fmt, list) diff -rNc2 dhcp-3.0b1pl0/includes/dhcpd.h dhcp-3.0b1pl2/includes/dhcpd.h *** dhcp-3.0b1pl0/includes/dhcpd.h Wed Jul 7 08:25:36 1999 --- dhcp-3.0b1pl2/includes/dhcpd.h Thu Oct 7 14:37:21 1999 *************** *** 1142,1146 **** #endif ! #if defined (USE_SOCKET_SEND) || defined (USE_SOCKET_FALLBACK) void fallback_discard PROTO ((struct protocol *)); #endif --- 1142,1146 ---- #endif ! #if defined (USE_SOCKET_FALLBACK) void fallback_discard PROTO ((struct protocol *)); #endif *************** *** 1558,1559 **** --- 1558,1569 ---- struct failover_peer *find_failover_peer PROTO ((char *)); + /* nsupdate.c */ + + char *ddns_rev_name PROTO ((struct lease *, + struct lease_state *, struct packet *)); + char *ddns_fwd_name PROTO ((struct lease *, + struct lease_state *, struct packet *)); + int nsupdateA PROTO ((char *, char *, u_int32_t, int)); + int nsupdatePTR PROTO ((char *, char *, u_int32_t, int)); + void nsupdate PROTO ((struct lease *, + struct lease_state *, struct packet *, int)); diff -rNc2 dhcp-3.0b1pl0/includes/osdep.h dhcp-3.0b1pl2/includes/osdep.h *** dhcp-3.0b1pl0/includes/osdep.h Fri Apr 23 15:26:51 1999 --- dhcp-3.0b1pl2/includes/osdep.h Thu Oct 7 14:37:44 1999 *************** *** 95,99 **** #endif ! #ifdef hpux # include "cf/hpux.h" #endif --- 95,99 ---- #endif ! #if defined (hpux) || defined (__hpux) # include "cf/hpux.h" #endif *************** *** 165,169 **** #if defined (USE_BPF_SEND) || defined (USE_NIT_SEND) || \ ! defined (USE_DLPI_SEND) || defined (USE_UPF_SEND) || defined (USE_LPF_SEND) # define USE_SOCKET_FALLBACK # define USE_FALLBACK --- 165,171 ---- #if defined (USE_BPF_SEND) || defined (USE_NIT_SEND) || \ ! defined (USE_DLPI_SEND) || defined (USE_UPF_SEND) || \ ! defined (USE_LPF_SEND) || \ ! (defined (USE_SOCKET_SEND) && defined (SO_BINDTODEVICE)) # define USE_SOCKET_FALLBACK # define USE_FALLBACK diff -rNc2 dhcp-3.0b1pl0/includes/tree.h dhcp-3.0b1pl2/includes/tree.h *** dhcp-3.0b1pl0/includes/tree.h Fri Jul 2 13:58:44 1999 --- dhcp-3.0b1pl2/includes/tree.h Tue Jul 13 11:45:12 1999 *************** *** 144,148 **** struct option_cache; /* forward */ - struct data_string; /* forward */ struct packet; /* forward */ struct option_state; /* forward */ --- 144,147 ---- diff -rNc2 dhcp-3.0b1pl0/includes/version.h dhcp-3.0b1pl2/includes/version.h *** dhcp-3.0b1pl0/includes/version.h Wed Jul 7 06:45:00 1999 --- dhcp-3.0b1pl2/includes/version.h Thu Oct 7 15:08:23 1999 *************** *** 1,3 **** /* Current version of ISC DHCP Distribution. */ ! #define DHCP_VERSION "V3.0b1pl0" --- 1,3 ---- /* Current version of ISC DHCP Distribution. */ ! #define DHCP_VERSION "V3.0b1pl2" diff -rNc2 dhcp-3.0b1pl0/server/confpars.c dhcp-3.0b1pl2/server/confpars.c *** dhcp-3.0b1pl0/server/confpars.c Thu Jul 1 12:32:29 1999 --- dhcp-3.0b1pl2/server/confpars.c Mon Jul 12 16:58:28 1999 *************** *** 23,27 **** #ifndef lint static char copyright[] = ! "$Id: confpars.c,v 1.73 1999/07/01 19:32:29 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 23,27 ---- #ifndef lint static char copyright[] = ! "$Id: confpars.c,v 1.73.2.1 1999/07/12 23:58:28 mellon Exp $ Copyright (c) 1995, 1996 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 1650,1654 **** break; - #if defined (NSUPDATE) case DDNS_FWD_NAME: seenbit = 4096; --- 1650,1653 ---- *************** *** 1672,1676 **** parse_host_name (cfile); break; - #endif default: --- 1671,1674 ---- diff -rNc2 dhcp-3.0b1pl0/server/dhcp.c dhcp-3.0b1pl2/server/dhcp.c *** dhcp-3.0b1pl0/server/dhcp.c Tue Jul 6 13:35:54 1999 --- dhcp-3.0b1pl2/server/dhcp.c Thu Oct 7 14:36:27 1999 *************** *** 23,27 **** #ifndef lint static char copyright[] = ! "$Id: dhcp.c,v 1.100 1999/07/06 20:35:54 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ --- 23,27 ---- #ifndef lint static char copyright[] = ! "$Id: dhcp.c,v 1.100.2.3 1999/10/07 21:36:27 mellon Exp $ Copyright (c) 1995, 1996, 1997, 1998, 1999 The Internet Software Consortium. All rights reserved.\n"; #endif /* not lint */ *************** *** 349,353 **** struct dhcp_packet raw; struct packet outgoing; ! char dhcpack = DHCPACK; struct subnet *subnet; struct iaddr cip; --- 349,353 ---- struct dhcp_packet raw; struct packet outgoing; ! unsigned char dhcpack = DHCPACK; struct subnet *subnet; struct iaddr cip; *************** *** 897,901 **** if it sends a DHCPREQUEST, and doesn't get the lease, it's already forgotten about its old lease, so we can too. */ ! if (offer == DHCPREQUEST && (oc = lookup_option (&server_universe, state -> options, SV_ONE_LEASE_PER_CLIENT)) && --- 897,901 ---- if it sends a DHCPREQUEST, and doesn't get the lease, it's already forgotten about its old lease, so we can too. */ ! if (packet -> packet_type == DHCPREQUEST && (oc = lookup_option (&server_universe, state -> options, SV_ONE_LEASE_PER_CLIENT)) && *************** *** 913,917 **** seek -> ends > cur_time) break; ! seek = lease -> n_uid; } if (seek) { --- 913,917 ---- seek -> ends > cur_time) break; ! seek = seek -> n_uid; } if (seek) { *************** *** 928,932 **** seek -> ends > cur_time) break; ! seek = lease -> n_hw; } if (seek) { --- 928,932 ---- seek -> ends > cur_time) break; ! seek = seek -> n_hw; } if (seek) { *************** *** 1240,1244 **** /* Because static leases aren't currently recorded? */ #if defined (NSUPDATE) ! if (!(lease -> flags & STATIC_LEASE) && offer == DHCPACK) nsupdate (lease, state, packet, ADD); #endif --- 1240,1244 ---- /* Because static leases aren't currently recorded? */ #if defined (NSUPDATE) ! if (!(lease -> flags & STATIC_LEASE) && (offer == DHCPACK || !offer)) nsupdate (lease, state, packet, ADD); #endif *************** *** 2459,2465 **** case permit_class: ! for (i = 0; i < packet -> class_count; i++) if (p -> class == packet -> classes [i]) return 1; break; } --- 2459,2471 ---- case permit_class: ! for (i = 0; i < packet -> class_count; i++) { if (p -> class == packet -> classes [i]) return 1; + if (packet -> classes [i] && + packet -> classes [i] -> superclass && + (packet -> classes [i] -> superclass == + p -> class)) + return 1; + } break; }