--- Makefile
+++ Makefile    1996/05/27 11:17:29
@@ -13,7 +13,7 @@
OPTDEFS= -DSYSLOG -DVEND_CMU -DDHCP -DDYNAMIC -DDEBUG

# Uncomment and edit this to choose the facility code used for syslog.
-# LOG_FACILITY= "-DLOG_BOOTP=LOG_LOCAL2"
+LOG_FACILITY= "-DLOG_BOOTP=LOG_DAEMON"

# SYStem DEFinitions:
# Either uncomment some of the following, or do:
@@ -39,7 +39,7 @@
INSTALL=/usr/bin/install
DESTDIR=
BINDIR=/usr/sbin
-MANDIR=/usr/local/man
+MANDIR=/usr/man

CFLAGS= $(OPTDEFS) $(SYSDEFS) $(FILEDEFS) $(MOREDEFS)
PROGS= bootpd bootpef bootpgw bootptest
@@ -49,7 +49,7 @@

system: install

-install: $(PROGS)
+install: $(PROGS) install.man
       -for f in $(PROGS) ;\
       do \
               $(INSTALL) -c -s $$f $(DESTDIR)$(BINDIR) ;\
@@ -102,7 +102,7 @@

# Linux 1.1.80+
linux:
-       $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer" \
+       $(MAKE) SYSDEFS="-O6 -Wall -fomit-frame-pointer -pipe" \
               SYSLIBS="" \
               FILEDEFS='-DCONFIG_FILE=\"/etc/bootptab\" \
                         -DDUMPTAB_FILE=\"/tmp/bootpd.dump\"'
--- Makefile.Linux
+++ Makefile.Linux      1996/05/27 11:17:29
@@ -0,0 +1,18 @@
+#
+#
+# Makefile.Linux to integrate package into source tree of S.u.S.E.-Linux
+#
+# Copyright (C) 1996 S.u.S.E. GmbH Fuerth, Germany.
+#
+# Please send bug-fixes or comments to [email protected].
+#
+# Author: Florian La Roche  <[email protected]>
+#
+#
+
+compile:
+       make linux
+
+install:
+       make install
+
--- bootpd.c
+++ bootpd.c    1996/05/27 12:09:56
@@ -1630,10 +1630,10 @@
                       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;
+                case 1 : len = dhcp_discover(bp,hp,vp,bytesleft); break;
+                case 3 : len = dhcp_request(bp,hp,vp,bytesleft); break;
+                case 4 : len = dhcp_decline(bp,hp,vp,bytesleft); break;
+                case 7 : len = dhcp_release(bp,hp,vp,bytesleft); break;
                default : report(LOG_NOTICE,"Unknown DHCP request (%d)",dhcp);
                          return 0;
               }
@@ -1650,7 +1650,7 @@
                * function (which is shared with bootpef.c).
                * Keep back one byte for the TAG_END.
                */
-               len = dovend_rfc1497(hp, vp, bytesleft - 1);
+               len = dovend_rfc1497(hp, vp, bytesleft);
               vp += len;
               bytesleft -= len;
#ifdef DHCP
@@ -1769,7 +1769,8 @@
       *vp++ = 2;                      /* DHCPOFFER */
       len +=  3;

-       len += dhcp_lease(bp,hp,&vp);
+       if (hp->dhcp_lease)
+               len += dhcp_lease(bp,hp,&vp);

       *vp++ = TAG_DHCP_SERVERID;
       *vp++ = 4;
@@ -1829,7 +1830,8 @@
       *vp++ = 5;
       len += 3;

-       len += dhcp_lease(bp,hp,&vp);
+       if (hp->dhcp_lease)
+               len += dhcp_lease(bp,hp,&vp);

       *vp++ = TAG_DHCP_SERVERID;      /* Server id */
       *vp++ = 4;
--- dovend.c
+++ dovend.c    1996/05/27 12:13:13
@@ -151,7 +151,7 @@
               if (insert_ip(TAG_NIS_SERVER,
                                         hp->nis_server,
                                         &vp, &bytesleft))
-                       NEED(8, "ds");
+                       NEED(8, "ys");
       }
       if (hp->flags.nis_domain) {
               /*
@@ -159,7 +159,7 @@
                * TAG_NIS_DOMAIN and length.
                */
               len = strlen(hp->nis_domain->string);
-               NEED((len + 2), "dn");
+               NEED((len + 2), "yd");
               *vp++ = TAG_NIS_DOMAIN;
               *vp++ = (byte) (len & 0xFF);
               bcopy(hp->nis_domain->string, vp, len);
@@ -191,7 +191,7 @@
               if (insert_ip(TAG_NTP_SERVER,
                                         hp->ntp_server,
                                         &vp, &bytesleft))
-                       NEED(8, "ts");
+                       NEED(8, "nt");
       }
       /*
        * I wonder:  If the hostname were "promoted" into the BOOTP
--- dumptab.c
+++ dumptab.c   1996/05/27 11:17:29
@@ -150,7 +150,7 @@
                       if (hp->flags.bootsize_auto) {
                               fprintf(fp, "auto:");
                       } else {
-                               fprintf(fp, "%d:", hp->bootsize);
+                               fprintf(fp, "%ld:", hp->bootsize);
                       }
               }
               if (hp->flags.cookie_server) {
@@ -218,10 +218,10 @@
                       fprintf(fp, ":");
               }
               if (hp->flags.msg_size) {
-                       fprintf(fp, "\\\n\t:ms=%d:", hp->msg_size);
+                       fprintf(fp, "\\\n\t:ms=%ld:", hp->msg_size);
               }
               if (hp->flags.min_wait) {
-                       fprintf(fp, "\\\n\t:mw=%d:", hp->min_wait);
+                       fprintf(fp, "\\\n\t:mw=%ld:", hp->min_wait);
               }
               if (hp->flags.name_server) {
                       fprintf(fp, "\\\n\t:ns=");
--- hwaddr.c
+++ hwaddr.c    1996/05/27 11:17:29
@@ -22,6 +22,7 @@
#include <net/if.h>    /* for struct ifnet in net/if_arp.h */
#endif

+#include <linux/netdevice.h>
#include <net/if_arp.h>
#include <netinet/in.h>

@@ -117,7 +118,7 @@
       char *p;

       bzero((caddr_t) &arpreq, sizeof(arpreq));
-       arpreq.arp_flags = ATF_INUSE | ATF_COM;
+       arpreq.arp_flags = ATF_COM;

       /* Set up the protocol address. */
       arpreq.arp_pa.sa_family = AF_INET;
--- print-bootp.c
+++ print-bootp.c       1996/05/27 11:17:29
@@ -120,7 +120,7 @@
               printf(" hops:%d", bp->bp_hops);

       if (bp->bp_xid)
-               printf(" xid:%d", ntohl(bp->bp_xid));
+               printf(" xid:%ld", ntohl(bp->bp_xid));

       if (bp->bp_secs)
               printf(" secs:%d", ntohs(bp->bp_secs));
@@ -341,7 +341,7 @@
               case 'l':                               /* Long words */
                       while (len >= 4) {
                               bcopy((char *) bp, (char *) &ul, 4);
-                               printf("%d", ntohl(ul));
+                               printf("%ld", ntohl(ul));
                               bp += 4;
                               len -= 4;
                               if (len) printf(",");