home *** CD-ROM | disk | FTP | other *** search
- Hi Andrew,
-
- > If you've done a later version of your DHCP patch, can you let me
- > know? I sometimes get questions about DHCP, so I point people to you
- > and your patch on nimbus.
-
- Sure, I made a new version of the patch for bootp-2.4.2
- which also integrates lots of comments I got on the previous
- one :)
-
- I will include the patch below...
-
- Could you please add a remark that bootp-related questions
- should be forwarded to the bootp-list, and not me?
- Oh, and that the latest version of bootp can be found at
- firewall.mc.com:/pub
-
- Met vriendelijke groet,
- Pauline Middelink
- +------------------------------+-------------------------------------+
- | Jeanette Pauline Middelink | email : middelin@polyware.iaf.nl |
- | Boterkorfhoek 34 | zakelijk : 053-780020 |
- | 7546 JA Enschede, Holland | fax/data : 053-780021 (ook ISDN) |
- +------------------------------+-------------------------------------+
- diff -rc bootp-2.4.2/Announce bootp-2.4.3/Announce
- *** bootp-2.4.2/Announce Thu Feb 16 21:18:17 1995
- --- bootp-2.4.3/Announce Thu Mar 16 08:58:23 1995
- ***************
- *** 6,11 ****
- --- 6,13 ----
-
- New features in version 2.4 include:
-
- + Added static DHCP allocation capabilities.
- + Use: :dl=leasetime for DHCP leasetime handouts
- Added a simple BOOTP gateway program: bootpgw
- Allow host name anywhere IP address is expected.
- Automatically lookup the IP address when the name of a
- ***************
- *** 49,60 ****
- SunOS 4.X (Solaris 1.X)
- SunOS 5.X (Solaris 2.X)
- System V/386 Rel. 4.0
-
- Systems on which others say this code works:
- CDC EP/IX (1.4.3, 2.1.1)
- DEC Ultrix (4.2, 4.3)
- - Linux 1.1.81
- OSF/1 (DEC Alpha CPU)
-
- Please direct questions, comments, and bug reports to:
- <bootp@andrew.cmu.edu>
- --- 51,69 ----
- SunOS 4.X (Solaris 1.X)
- SunOS 5.X (Solaris 2.X)
- System V/386 Rel. 4.0
- + Linux 1.1.81
-
- Systems on which others say this code works:
- CDC EP/IX (1.4.3, 2.1.1)
- DEC Ultrix (4.2, 4.3)
- OSF/1 (DEC Alpha CPU)
- + HP 9000
- +
- + How to get the latest version:
- + ftp firewall.mc.com (anonymous)
- + cd /pub
- + binary
- + get bootp-2.4.2.tar.Z
-
- Please direct questions, comments, and bug reports to:
- <bootp@andrew.cmu.edu>
- diff -rc bootp-2.4.2/Changes bootp-2.4.3/Changes
- *** bootp-2.4.2/Changes Thu Feb 16 17:52:06 1995
- --- bootp-2.4.3/Changes Thu Mar 16 08:24:18 1995
- ***************
- *** 2,13 ****
- --- 2,28 ----
- Date, <email> Real Name
- what...
-
- + --> bootp-2.4.3
- +
- + 08/07/95 middelin@polyware.iaf.nl (Pauline Middelink)
- + Fixed problem while reporting duplicate hardware address in
- + readfile.c (kerry@maine.maine.edu)
- + Changed some code to allow the giaddr to pass through. Needed
- + when the client request is forwarded to us through a gateway.
- + (Broadcasting to the gateway will not reach the client)
- +
- + 01/26/95 Phil.Packer@bbc.co.uk (Phil.Packer)
- + Added dl tag for DHCP lease and rejigged Pauline's codes
- + at the end of bootpd.c to allow the setting of explicit leases.
- + Added "sco" Makefile target.
- +
- --> bootp-2.4.2
-
- 01/14/95 middelin@polyware.iaf.nl (Pauline Middelink)
- Corrected support for the Linux networking code.
- Fixed lots of warnings (gcc -Wall)
- Added "linux" Makefile target.
- + Written code for DHCP static IP allocation.
-
- 01/02/95 Jukka Ukkonen <ukkonen@csc.fi>
- Allow bootptab syntax: ha="0:0:c0:80:e8:a7"
- diff -rc bootp-2.4.2/Makefile bootp-2.4.3/Makefile
- *** bootp-2.4.2/Makefile Thu Feb 16 16:25:19 1995
- --- bootp-2.4.3/Makefile Thu Mar 16 08:52:30 1995
- ***************
- *** 9,15 ****
- # OPTion DEFinitions:
- # Remove the -DVEND_CMU if you don't wish to support the "CMU vendor format"
- # in addition to the RFC1048 format. Leaving out DEBUG saves little.
- ! OPTDEFS= -DSYSLOG -DVEND_CMU -DDEBUG
-
- # Uncomment and edit this to choose the facility code used for syslog.
- # LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2"
- --- 9,16 ----
- # OPTion DEFinitions:
- # Remove the -DVEND_CMU if you don't wish to support the "CMU vendor format"
- # in addition to the RFC1048 format. Leaving out DEBUG saves little.
- ! # Remove the -DDHCP if you don't need DHCP support.
- ! OPTDEFS= -DSYSLOG -DVEND_CMU -DDHCP -DDEBUG
-
- # Uncomment and edit this to choose the facility code used for syslog.
- # LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2"
- ***************
- *** 37,43 ****
-
- INSTALL=/usr/bin/install
- DESTDIR=
- ! BINDIR=/usr/etc
- MANDIR=/usr/local/man
-
- CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS)
- --- 38,44 ----
-
- INSTALL=/usr/bin/install
- DESTDIR=
- ! BINDIR=/usr/sbin
- MANDIR=/usr/local/man
-
- CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS)
- ***************
- *** 95,103 ****
- SYSDEFS="-DSVR4" \
- SYSLIBS="-lsocket -lnsl"
-
- ! # Linux 1.1.80+ on [34]86
- linux:
- ! $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer"
-
- # SunOS 4.X
- sunos4:
- --- 96,111 ----
- SYSDEFS="-DSVR4" \
- SYSLIBS="-lsocket -lnsl"
-
- ! # Linux 1.1.80+
- linux:
- ! $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer" \
- ! SYSLIBS="" \
- ! FILEDEFS='-DCONFIG_FILE=\"/etc/bootptab\" \
- ! -DDUMPTAB_FILE=\"/tmp/bootpd.dump\"'
- !
- ! # SCO (pah!) SYSV rel 3.2
- ! sco:
- ! $(MAKE) CC="cc" SYSLIBS="-lsocket"
-
- # SunOS 4.X
- sunos4:
- diff -rc bootp-2.4.2/bootp.h bootp-2.4.3/bootp.h
- *** bootp-2.4.2/bootp.h Mon Aug 22 18:49:17 1994
- --- bootp-2.4.3/bootp.h Thu Mar 16 08:17:22 1995
- ***************
- *** 122,129 ****
- #define TAG_NIS_SERVER ((unsigned char) 41)
- #define TAG_NTP_SERVER ((unsigned char) 42)
- /* DHCP maximum message size. */
- #define TAG_MAX_MSGSZ ((unsigned char) 57)
- !
- /* XXX - Add new tags here */
-
-
- --- 122,133 ----
- #define TAG_NIS_SERVER ((unsigned char) 41)
- #define TAG_NTP_SERVER ((unsigned char) 42)
- /* DHCP maximum message size. */
- + #define TAG_DHCP_IPLEASE ((unsigned char) 51)
- + #define TAG_DHCP_MSG ((unsigned char) 53)
- + #define TAG_DHCP_SERVERID ((unsigned char) 54)
- #define TAG_MAX_MSGSZ ((unsigned char) 57)
- ! #define TAG_DHCP_IPRENEW ((unsigned char) 58) /* PeP hic facet */
- ! #define TAG_DHCP_IPREBIND ((unsigned char) 59)
- /* XXX - Add new tags here */
-
-
- diff -rc bootp-2.4.2/bootpd.c bootp-2.4.3/bootpd.c
- *** bootp-2.4.2/bootpd.c Wed Feb 15 22:21:58 1995
- --- bootp-2.4.3/bootpd.c Thu Mar 16 08:31:12 1995
- ***************
- *** 76,81 ****
- --- 76,90 ----
- # define bzero(p,l) memset(p,0,l)
- # define bcmp(a,b,c) memcmp(a,b,c)
- #endif
- + #ifdef __linux__
- + /* Use sigaction to make signal last... */
- + inline void (*signal(int sig,void (*handler)(int)))(int) {
- + struct sigaction so,sa = {NULL,0,SA_NOMASK|SA_RESTART,NULL};
- + sa.sa_handler = handler;
- + if (sigaction(sig,&sa,&so)<0) return NULL;
- + return so.sa_handler;
- + }
- + #endif
-
- #include "bootp.h"
- #include "hash.h"
- ***************
- *** 114,125 ****
- #ifdef VEND_CMU
- PRIVATE void dovend_cmu P((struct bootp *, struct host *));
- #endif
- ! PRIVATE void dovend_rfc1048 P((struct bootp *, struct host *, int32));
- PRIVATE void handle_reply P((void));
- PRIVATE void handle_request P((void));
- PRIVATE void sendreply P((int forward, int32 dest_override));
- PRIVATE void usage P((void));
-
- #undef P
-
- /*
- --- 123,144 ----
- #ifdef VEND_CMU
- PRIVATE void dovend_cmu P((struct bootp *, struct host *));
- #endif
- ! PRIVATE int dovend_rfc1048 P((struct bootp *, struct host *, int32));
- PRIVATE void handle_reply P((void));
- PRIVATE void handle_request P((void));
- PRIVATE void sendreply P((int forward, int32 dest_override));
- PRIVATE void usage P((void));
-
- + #ifdef DHCP
- + PRIVATE int dhcp_discover P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_request P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_decline P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_release P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_offer P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_ack P((struct bootp *, struct host *, byte *, int));
- + PRIVATE int dhcp_lease P((struct bootp *, struct host *, byte **));
- + #endif
- +
- #undef P
-
- /*
- ***************
- *** 477,482 ****
- --- 496,512 ----
- bootpc_port = (u_short) IPPORT_BOOTPC;
- }
-
- + #ifdef DHCP
- + /*
- + * Maybe we have to broadcast, so enable it.
- + */
- + n = 1;
- + if (setsockopt(s,SOL_SOCKET,SO_BROADCAST,&n,sizeof(n))<0) {
- + report(LOG_ERR, "setsockopt: %s\n", get_errmsg());
- + exit(1);
- + }
- + #endif
- +
- /*
- * Set up signals to read or dump the table.
- */
- ***************
- *** 701,707 ****
- haddrtoa(bp->bp_chaddr, bp->bp_hlen));
- return; /* not found */
- }
- - (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr;
-
- } else {
-
- --- 731,736 ----
- ***************
- *** 724,729 ****
- --- 753,759 ----
- return;
- }
- }
- + (bp->bp_yiaddr).s_addr = hp->iaddr.s_addr;
-
- if (debug) {
- report(LOG_INFO, "found %s (%s)", inet_ntoa(hp->iaddr),
- ***************
- *** 961,967 ****
- */
- if (!bcmp(bp->bp_vend, vm_rfc1048, 4)) {
- /* RFC1048 conformant bootp client */
- ! dovend_rfc1048(bp, hp, bootsize);
- if (debug > 1) {
- report(LOG_INFO, "sending reply (with RFC1048 options)");
- }
- --- 991,998 ----
- */
- if (!bcmp(bp->bp_vend, vm_rfc1048, 4)) {
- /* RFC1048 conformant bootp client */
- ! if (!dovend_rfc1048(bp, hp, bootsize))
- ! return;
- if (debug > 1) {
- report(LOG_INFO, "sending reply (with RFC1048 options)");
- }
- ***************
- *** 1093,1098 ****
- --- 1124,1137 ----
- /* Finally, set the server address field. */
- bp->bp_siaddr = siaddr;
- }
- + #ifdef DHCP
- + /*
- + * This code is placed here, because otherwise the siaddr
- + * will not be found...
- + */
- + if (ntohs(bp->bp_flags) & 0x8000 && bp->bp_giaddr.s_addr==0)
- + dst.s_addr = INADDR_BROADCAST;
- + #endif
- /* Set up socket address for send. */
- send_addr.sin_family = AF_INET;
- send_addr.sin_port = htons(port);
- ***************
- *** 1220,1228 ****
- if (bytesleft < (LEN)) { \
- report(LOG_NOTICE, noroom, \
- hp->hostname->string, MSG); \
- ! return; \
- } while (0)
- ! PRIVATE void
- dovend_rfc1048(bp, hp, bootsize)
- struct bootp *bp;
- struct host *hp;
- --- 1259,1267 ----
- if (bytesleft < (LEN)) { \
- report(LOG_NOTICE, noroom, \
- hp->hostname->string, MSG); \
- ! return 0; \
- } while (0)
- ! PRIVATE int
- dovend_rfc1048(bp, hp, bootsize)
- struct bootp *bp;
- struct host *hp;
- ***************
- *** 1230,1235 ****
- --- 1269,1278 ----
- {
- int bytesleft, len;
- byte *vp;
- + #ifdef DHCP
- + int dhcp = 0;
- + int isme = TRUE; /* DHCP uses this for not-mine-requests */
- + #endif
-
- static char noroom[] = "%s: No room for \"%s\" option";
-
- ***************
- *** 1280,1286 ****
- case TAG_SUBNET_MASK:
- /* XXX - Should preserve this if given... */
- break;
- ! } /* swtich */
- p += len;
- }
-
- --- 1323,1335 ----
- case TAG_SUBNET_MASK:
- /* XXX - Should preserve this if given... */
- break;
- ! case TAG_DHCP_MSG:
- ! dhcp = *p;
- ! break;
- ! case TAG_DHCP_SERVERID:
- ! isme = (len==4) && my_ip_addr.s_addr == ((struct in_addr *)p)->s_addr;
- ! break;
- ! } /* switch */
- p += len;
- }
-
- ***************
- *** 1347,1362 ****
- vp += len;
- *vp++ = TAG_END;
- bytesleft -= len + 3;
- ! return; /* no more options here. */
- }
- /*
- ! * The remaining options are inserted by the following
- ! * function (which is shared with bootpef.c).
- ! * Keep back one byte for the TAG_END.
- */
- ! len = dovend_rfc1497(hp, vp, bytesleft - 1);
- ! vp += len;
- ! bytesleft -= len;
-
- /* There should be at least one byte left. */
- NEED(1, "(end)");
- --- 1396,1439 ----
- vp += len;
- *vp++ = TAG_END;
- bytesleft -= len + 3;
- ! return 1; /* no more options here. */
- }
- +
- + #ifdef DHCP
- /*
- ! * Check if this is a DHCP request.
- */
- ! if (dhcp!=0) {
- ! if (!isme)
- ! return 0; /* Not mine, discard! */
- !
- ! switch (dhcp) {
- ! case 1 : len = dhcp_discover(bp,hp,vp,bytesleft-1); break;
- ! case 3 : len = dhcp_request(bp,hp,vp,bytesleft-1); break;
- ! case 4 : len = dhcp_decline(bp,hp,vp,bytesleft-1); break;
- ! case 7 : len = dhcp_release(bp,hp,vp,bytesleft-1); break;
- ! default : report(LOG_NOTICE,"Unknown DHCP request (%d)",dhcp);
- ! return 0;
- ! }
- ! /* Is there a DHCP reply at all? */
- ! if (len==0)
- ! return 0;
- ! vp += len;
- ! bytesleft -= len;
- ! }
- ! else {
- ! #endif
- ! /*
- ! * The remaining options are inserted by the following
- ! * function (which is shared with bootpef.c).
- ! * Keep back one byte for the TAG_END.
- ! */
- ! len = dovend_rfc1497(hp, vp, bytesleft - 1);
- ! vp += len;
- ! bytesleft -= len;
- ! #ifdef DHCP
- ! }
- ! #endif
-
- /* There should be at least one byte left. */
- NEED(1, "(end)");
- ***************
- *** 1370,1375 ****
- --- 1447,1453 ----
- */
- bzero(vp, bytesleft);
- }
- + return 1; /* sent reply */
- } /* dovend_rfc1048 */
- #undef NEED
-
- ***************
- *** 1389,1394 ****
- --- 1467,1637 ----
- */
-
- /* get_errmsg() - now in report.c */
- +
- +
- + #ifdef DHCP
- +
- + /*
- + * PeP hic facet
- + * Stuff the packet with the Lease info, We need to do this on the Offer and
- + * the ack so separated out here
- + */
- + PRIVATE
- + int dhcp_lease(bp, hp, vp)
- + struct bootp *bp;
- + struct host *hp;
- + byte **vp;
- + {
- + *(*vp)++ = TAG_DHCP_IPRENEW; /* DHCP Renewal time 50% of lease */
- + *(*vp)++ = 4; /* Length */
- + insert_u_long(htonl(hp->dhcp_lease/2),vp);
- +
- + *(*vp)++ = TAG_DHCP_IPREBIND; /* DHCP Rebinding time 85% of lease */
- + *(*vp)++ = 4;
- + insert_u_long(htonl(hp->dhcp_lease*7/8),vp);
- +
- + *(*vp)++ = TAG_DHCP_IPLEASE; /* IP address lease time */
- + *(*vp)++ = 4; /* Length */
- + insert_u_long(htonl(hp->dhcp_lease),vp); /* PeP hic facet, lets see if this works */
- +
- + return(19);
- + }
- +
- +
- + /*
- + * Formulate an DHCP_DISCOVER reply
- + */
- + PRIVATE
- + int dhcp_discover(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + if(debug)
- + report(LOG_INFO, "Received: DHCPDISCOVER");
- + return(dhcp_offer(bp,hp,vp,bytesleft));
- + }
- +
- + /*
- + * formulate an DHCP_RELEASE reply
- + */
- + PRIVATE
- + int dhcp_release(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + if (debug)
- + report(LOG_INFO, "Received: DHCPRELEASE (discarded)");
- + return 0;
- + }
- +
- + PRIVATE
- + int dhcp_offer(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + int len=0;
- + if (debug)
- + report(LOG_INFO, "Sent: DHCPOFFER");
- +
- + bp->bp_secs = bp->bp_hops = 0;
- + bp->bp_ciaddr.s_addr = 0;
- +
- + *vp++ = TAG_DHCP_MSG; /* DHCP */
- + *vp++ = 1; /* length */
- + *vp++ = 2; /* DHCPOFFER */
- + len += 3;
- +
- + len += dhcp_lease(bp,hp,&vp);
- +
- + *vp++ = TAG_DHCP_SERVERID;
- + *vp++ = 4;
- + insert_u_long(my_ip_addr.s_addr,&vp);
- + len += 6;
- +
- + return len + dovend_rfc1497(hp, vp, bytesleft - len);
- + }
- +
- + /*
- + * Formulate an DHCP_REQUEST reply
- + */
- + PRIVATE
- + int dhcp_request(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + bp->bp_secs = bp->bp_hops = 0;
- +
- + if(debug)
- + report(LOG_INFO,"Received: DHCPREQUEST");
- + /*
- + * Make absolutely sure that if the client requests an address,
- + * it is its own address, and also make sure the hardware
- + * addresses match perfectly. We want to minimize spoofing!
- + */
- + if ((bp->bp_ciaddr.s_addr && bp->bp_ciaddr.s_addr!=bp->bp_yiaddr.s_addr) ||
- + bp->bp_htype != hp->htype ||
- + bcmp(bp->bp_chaddr, hp->haddr, haddrlength(hp->htype))) {
- + if (debug)
- + report(LOG_INFO, "Sent: DHCPNAK");
- +
- + *vp++ = TAG_DHCP_MSG; /* DHCPNAK */
- + *vp++ = 1;
- + *vp++ = 6;
- + return 3;
- + }
- + else
- + return(dhcp_ack(bp,hp,vp,bytesleft));
- + }
- +
- + PRIVATE
- + int dhcp_ack(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + int len=0;
- + if (debug)
- + report(LOG_INFO, "Sent: DHCPACK");
- +
- + *vp++ = TAG_DHCP_MSG; /* DHCPACK */
- + *vp++ = 1;
- + *vp++ = 5;
- + len += 3;
- +
- + len += dhcp_lease(bp,hp,&vp);
- +
- + *vp++ = TAG_DHCP_SERVERID; /* Server id */
- + *vp++ = 4;
- + insert_u_long(my_ip_addr.s_addr,&vp);
- + len += 6;
- +
- + return len + dovend_rfc1497(hp, vp, bytesleft - len);
- + }
- +
- + /*
- + * formulate an DHCP_DECLINE reply
- + */
- + PRIVATE
- + int dhcp_decline(bp, hp, vp, bytesleft)
- + struct bootp *bp;
- + struct host *hp;
- + byte *vp;
- + int bytesleft;
- + {
- + if (debug)
- + report(LOG_INFO, "Recived: DHCPDECLINE (ignored)");
- + return 0;
- + }
- + #endif
-
- /*
- * Local Variables:
- diff -rc bootp-2.4.2/bootpd.h bootp-2.4.3/bootpd.h
- *** bootp-2.4.2/bootpd.h Thu Jul 28 00:30:29 1994
- --- bootp-2.4.3/bootpd.h Thu Mar 16 08:17:23 1995
- ***************
- *** 126,131 ****
- --- 126,134 ----
- exec_file :1,
- msg_size :1,
- min_wait :1,
- + #ifdef DHCP
- + dhcp_lease :1, /* PeP hic facet */
- + #endif
- /* XXX - Add new tags here */
- vm_cookie :1;
- };
- ***************
- *** 184,189 ****
- --- 187,195 ----
- unsigned int32 bootsize,
- msg_size,
- min_wait;
- + #ifdef DHCP
- + unsigned int32 dhcp_lease; /* PeP hic facet */
- + #endif
- struct in_addr bootserver,
- iaddr,
- swap_server,
- diff -rc bootp-2.4.2/bootptest.c bootp-2.4.3/bootptest.c
- *** bootp-2.4.2/bootptest.c Thu Feb 16 16:36:25 1995
- --- bootp-2.4.3/bootptest.c Thu Mar 16 08:17:36 1995
- ***************
- *** 50,55 ****
- --- 50,58 ----
- #include <unistd.h>
- #endif
-
- + #ifndef NO_UNISTD
- + #include <unistd.h>
- + #endif
- #include <stdlib.h>
- #include <signal.h>
- #include <stdio.h>
- ***************
- *** 66,71 ****
- --- 69,77 ----
-
- #include "patchlevel.h"
-
- + static void send_request();
- +
- + extern int getether();
- static void send_request();
-
- #define LOG_ERR 1
- diff -rc bootp-2.4.2/patchlevel.h bootp-2.4.3/patchlevel.h
- *** bootp-2.4.2/patchlevel.h Thu Feb 16 16:42:20 1995
- --- bootp-2.4.3/patchlevel.h Thu Mar 16 08:24:26 1995
- ***************
- *** 1,3 ****
- /* patchlevel.h */
- #define VERSION "2.4"
- ! #define PATCHLEVEL 2
- --- 1,3 ----
- /* patchlevel.h */
- #define VERSION "2.4"
- ! #define PATCHLEVEL 3
- diff -rc bootp-2.4.2/print-bootp.c bootp-2.4.3/print-bootp.c
- *** bootp-2.4.2/print-bootp.c Wed Feb 15 23:21:13 1995
- --- bootp-2.4.3/print-bootp.c Thu Mar 16 08:41:15 1995
- ***************
- *** 268,274 ****
- "iXW-FS", /* 48: X Window System Font Servers */
- "iXW-DM", /* 49: X Window System Display Managers */
-
- ! /* DHCP extensions (RFC-1533, sect. 9) */
- #endif
- };
- #define KNOWN_OPTIONS (sizeof(rfc1048_opts) / sizeof(rfc1048_opts[0]))
- --- 268,279 ----
- "iXW-FS", /* 48: X Window System Font Servers */
- "iXW-DM", /* 49: X Window System Display Managers */
-
- ! /* DHCP extensions (RFC-1533, sect. 9) PeP hic facet */
- ! "iDHCPreq", /* 50: DHCP requested IP address */
- ! "lDHCPlease", /* 51: DHCP lease time */
- ! "bDHCPooptol", /* 52: DHCP option overload */
- ! "bDHCPtype", /* 53: DHCP message type */
- ! "iDHCPSid", /* 54: DHCP server ID */
- #endif
- };
- #define KNOWN_OPTIONS (sizeof(rfc1048_opts) / sizeof(rfc1048_opts[0]))
- diff -rc bootp-2.4.2/readfile.c bootp-2.4.3/readfile.c
- *** bootp-2.4.2/readfile.c Wed Feb 15 21:45:25 1995
- --- bootp-2.4.3/readfile.c Thu Mar 16 08:46:17 1995
- ***************
- *** 113,118 ****
- --- 113,121 ----
- #define SYM_EXEC_FILE 33 /* YORK_EX_OPTION */
- #define SYM_MSG_SIZE 34
- #define SYM_MIN_WAIT 35
- + #define SYM_DHCP_LEASE 36 /* RFC 1533 PeP hic facet */
- + #define SYM_DHCP_IPRENEW 37
- + #define SYM_DHCP_IPREBIND 38
- /* XXX - Add new tags here */
-
- #define OP_ADDITION 1 /* Operations on tags */
- ***************
- *** 161,166 ****
- --- 164,172 ----
- {"df", SYM_DUMP_FILE},
- {"dn", SYM_DOMAIN_NAME},
- {"ds", SYM_DOMAIN_SERVER},
- + #ifdef DHCP
- + {"dl", SYM_DHCP_LEASE}, /* PeP hic facet */
- + #endif
- {"ef", SYM_EXTEN_FILE},
- {"ex", SYM_EXEC_FILE}, /* YORK_EX_OPTION */
- {"gw", SYM_GATEWAY},
- ***************
- *** 1125,1131 ****
- PARSE_UINT(min_wait);
- break;
-
- ! /* XXX - Add new tags here */
-
- default:
- return E_UNKNOWN_SYMBOL;
- --- 1131,1146 ----
- PARSE_UINT(min_wait);
- break;
-
- ! #ifdef DHCP
- ! /* PeP hic facet. */
- ! case SYM_DHCP_LEASE:
- ! PARSE_UINT(dhcp_lease);
- ! break;
- !
- ! /* XXX - Add new DHCP tags here */
- ! #endif
- !
- ! /* XXX - Add new tags here */
-
- default:
- return E_UNKNOWN_SYMBOL;
- ***************
- *** 1506,1511 ****
- --- 1521,1527 ----
- DUP_COPY(min_wait);
-
- /* XXX - Add new tags here */
- + DUP_COPY(dhcp_lease); /* PeP hic facet */
-
- DUP_LINK(generic);
-
-
-