From owner-freebsd-ports Mon Mar 31 19:40:06 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA05017 for ports-outgoing; Mon, 31 Mar 1997 19:40:06 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id TAA05007; Mon, 31 Mar 1997 19:40:04 -0800 (PST) Resent-Date: Mon, 31 Mar 1997 19:40:04 -0800 (PST) Resent-Message-Id: <199704010340.TAA05007@freefall.freebsd.org> Resent-From: gnats (GNATS Management) Resent-To: freebsd-ports Resent-Reply-To: FreeBSD-gnats@freefall.FreeBSD.org, sanpei@yy.cs.keio.ac.jp Received: from titanium.yy.cs.keio.ac.jp (titanium.yy.cs.keio.ac.jp [131.113.47.73]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id TAA04755 for ; Mon, 31 Mar 1997 19:37:25 -0800 (PST) Received: from lavender.sanpei.org (mobile4.educ.cc.keio.ac.jp [131.113.10.124]) by titanium.yy.cs.keio.ac.jp (8.8.4+2.7Wbeta4/3.5Wpl3) with ESMTP id MAA16546 for ; Tue, 1 Apr 1997 12:37:21 +0900 (JST) Received: (from sanpei@localhost) by lavender.sanpei.org (8.7.6/3.5Wpl3) id MAA09695; Tue, 1 Apr 1997 12:37:21 +0900 (JST) Message-Id: <199704010337.MAA09695@lavender.sanpei.org> Date: Tue, 1 Apr 1997 12:37:21 +0900 (JST) From: sanpei@yy.cs.keio.ac.jp Reply-To: sanpei@yy.cs.keio.ac.jp To: FreeBSD-gnats-submit@freebsd.org X-Send-Pr-Version: 3.2 Subject: ports/3161: Update net/wide-dhcp Sender: owner-ports@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >Number: 3161 >Category: ports >Synopsis: Update net/wide-dhcp >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports >State: open >Class: change-request >Submitter-Id: current-users >Arrival-Date: Mon Mar 31 19:40:02 PST 1997 >Last-Modified: >Originator: MIHIRA Yoshiro >Organization: Keio Univ. Japan >Release: FreeBSD 2.2-961014-SNAP i386 >Environment: 2.1.6-RELEASE, 2.2-RELEASE, 3.0-70209-SNAP, 3.0-CURRENT >Description: I'm maintainer of wide-dhcp. I updated wide-dhcp, please submit below patch. update log: (1) Add some fields to DHCP server config file `dhcpdb.pool' Add `dnsv'(Domain Name Server IP address), dnsd (Domain Name) and hstn(client hostname) field in DHCP server sample configuration file ``dhcpdb.pool.sample'' [patches/patch-aw] (2) Create sample start-up script Create DHCP server sample start-up script (${PREFIX}/etc/rc.d/wide-dhcps.sh.sample). [Makefile, pkg/PLIST] (3) Combine patches patch-as and patch-av modifies the same file, so I combined those two patches. [paches/patch-as (delete packes/patch-av)] (4) Patch ``change /etc/resolv.conf and hostname via DHCP information'' [patches/patch-ac, patches/patch-as, patches/patch-at patches/patch-ba] (5) FreeBSD-3.0-current support related patch is in ``__FreeBSD_version >= 300000'' conditions. [patches/patch-ac, patches/patch-ad, patches/patch-af, patches/patch-ah, patches/patch-ai, patches/patch-aj, patches/patch-ar, patches/patch-as, patches/patch-au, patches/patch-av, patches/patch-ax, patches/patch-az] (6) FreeBSD-2.1.6, 2.1.7 support Constant variable __FreeBSD_version under 2.1.6 and 2.1.7 is `199612.' Fix related conditions. [patches/patch-ac, patches/patch-af, patches/patch-ah] (7) Patch ``Create pid file which use network interface name in filename'' [patches/patch-as, patches/patch-at] (8) Change diff style Change diff style to unified from context of ``getmac.c.'' Maybe, I mistaked option for diff. [patches/patch-ad] (9) Change C compiler This ports collection cannot be compiled by pgcc (/usr/local/bin/gcc). If pgcc is installed and variable CC is set `gcc', pgcc is executed and this wide-dhcp ports collection can't be made. So I change variable CC to cc from gcc. [patches/patch-aa, patches/patch-ae, patches/patch-ag patches/patch-aq] (10) Add attention about tzfile.h CHECKSUM problem under FreeBSD-2.1.x [pkg/DESCR] >How-To-Repeat: >Fix: diff -urN wide-dhcp.org/Makefile wide-dhcp/Makefile --- wide-dhcp.org/Makefile Sun Dec 29 20:29:24 1996 +++ wide-dhcp/Makefile Thu Mar 27 16:20:16 1997 @@ -19,6 +19,8 @@ IGNOREFILES= tzfile.h MAKE_ENV= OSTYPE=`uname` +STARTUP_SCRIPT= ${PREFIX}/etc/rc.d/wide-dhcps.sh.sample + post-patch: if [ ! -f ${WRKSRC}/server/tzfile.h ]; then \ ${CP} ${DISTDIR}/tzfile.h ${WRKSRC}/server/; \ @@ -34,6 +36,21 @@ @${CP} ${WRKSRC}/db_sample/dhcpdb.relay ${PREFIX}/share/dhcp/dhcpdb.relay.sample @${CP} ${WRKSRC}/db_sample/dhcpdb.server ${PREFIX}/share/dhcp/dhcpdb.server.sample @${CP} ${WRKSRC}/db_sample/intro.dhcp ${PREFIX}/share/dhcp/ + @if [ ! -f ${STARTUP_SCRIPT} ]; then \ + echo "Installing ${STARTUP_SCRIPT} startup file."; \ + echo '#!/bin/sh' > ${STARTUP_SCRIPT}; \ + echo 'if [ -f /etc/dhcpdb.pool -a -f /etc/dhcpdb.relay \'\ + >> ${STARTUP_SCRIPT}; \ + echo ' -a -x /usr/local/sbin/dhcps ]; then' \ + >> ${STARTUP_SCRIPT}; \ + echo " ${PREFIX}/sbin/dhcps [Intarface Name]" \ + >> ${STARTUP_SCRIPT}; \ + echo " echo -n ' dhcps'" \ + >> ${STARTUP_SCRIPT}; \ + echo 'fi' >> ${STARTUP_SCRIPT}; \ + chmod 755 ${STARTUP_SCRIPT}; \ + chown bin.bin ${STARTUP_SCRIPT}; \ + fi @if [ ! -c /dev/bpf1 ]; then \ echo "**********************************************************";\ echo "* W a r n i n g *";\ diff -urN wide-dhcp.org/patches/patch-aa wide-dhcp/patches/patch-aa --- wide-dhcp.org/patches/patch-aa Mon May 20 18:06:47 1996 +++ wide-dhcp/patches/patch-aa Fri Mar 28 17:25:45 1997 @@ -1,6 +1,6 @@ --- client/Makefile.FreeBSD.orig Mon Oct 9 14:34:12 1995 -+++ client/Makefile.FreeBSD Thu Jan 11 11:48:49 1996 -@@ -1,6 +1,9 @@ ++++ client/Makefile.FreeBSD Fri Mar 28 17:25:06 1997 +@@ -1,14 +1,22 @@ INCLUDE = ../server/dhcp.h dhcpc.h common.h ../server/common_subr.h dhcpc_subr.h OBJ = dhcpc_subr.o flushroute.o getmac.o common_subr.o dhcpc.o -LDFLAGS = @@ -9,10 +9,13 @@ +LIBEXEC= ${PREFIX}/libexec +MAN= ${PREFIX}/man - CC = gcc +-CC = gcc -CFLAGS = -Wall -g -I. -I../server #-DDEBUG +-#CC = cc ++#CC = gcc +CFLAGS += -Wall -I. -I../server #-DDEBUG -@@ -9,6 +12,11 @@ ++CC = cc + #CFLAGS = -g -I. -I../server #-DDEBUG dhcpc: ${OBJ} ${CC} ${CFLAGS} -o dhcpc ${OBJ} ${LDFLAGS} diff -urN wide-dhcp.org/patches/patch-ac wide-dhcp/patches/patch-ac --- wide-dhcp.org/patches/patch-ac Mon Aug 19 12:23:27 1996 +++ wide-dhcp/patches/patch-ac Mon Mar 31 16:15:59 1997 @@ -1,20 +1,41 @@ --- client/dhcpc_subr.c.orig Fri Nov 3 01:39:55 1995 -+++ client/dhcpc_subr.c Mon Aug 5 01:41:27 1996 -@@ -63,6 +63,9 @@ ++++ client/dhcpc_subr.c Thu Mar 27 11:39:50 1997 +@@ -63,6 +63,12 @@ #ifdef __osf__ #include #endif +#ifdef __FreeBSD__ +#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif +#endif #include #include #include -@@ -273,7 +276,11 @@ +@@ -70,6 +76,8 @@ + #include + #include + #include ++#include ++#include + + #include "dhcp.h" + #include "common.h" +@@ -159,6 +167,8 @@ + + int config_if(); + void set_route(); ++void set_resolv(); ++void set_hostname(); + void make_decline(); + void make_release(); + Long generate_xid(); +@@ -273,7 +283,11 @@ tmp = 0; bcopy(&tmp, sarp->arp_spa, sarp->arp_pln); bcopy(&target->s_addr, sarp->arp_tpa, sarp->arp_pln); -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version >= 199703 && __FreeBSD_version <= 219999) + sether->ether_type = ETHERTYPE_ARP; +#else sether->ether_type = htons(ETHERTYPE_ARP); @@ -22,11 +43,11 @@ if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) { return(0); /* it is harmless to return 0 */ -@@ -341,7 +348,11 @@ +@@ -341,7 +355,11 @@ bcopy(&ipaddr->s_addr, sarp->arp_spa, sarp->arp_pln); bcopy(&ipaddr->s_addr, sarp->arp_tpa, sarp->arp_pln); -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + sether->ether_type = ETHERTYPE_ARP; +#else sether->ether_type = htons(ETHERTYPE_ARP); @@ -34,7 +55,7 @@ if (ether_write(ifp->fd, sbuf, ETHERHL + sizeof(struct ether_arp)) < 0) { return(-1); -@@ -1387,7 +1398,7 @@ +@@ -1387,7 +1405,7 @@ /* get haddr of interface */ intface.haddr.htype = ETHER; intface.haddr.hlen = 6; @@ -43,7 +64,7 @@ if (ioctl(dhcpif.fd, SIOCGIFADDR, &ifr) < 0) { syslog(LOG_WARNING, "ioctl(SIOCGIFADDR) error in initialize(): %m"); return(-1); -@@ -1535,8 +1546,8 @@ +@@ -1535,8 +1553,8 @@ ((struct sockaddr_in *)&ridreq.ifr_addr)->sin_addr.s_addr; if (current_addr.s_addr == addr->s_addr && @@ -54,16 +75,16 @@ close(sockfd); return(1); } -@@ -1660,7 +1671,7 @@ +@@ -1660,7 +1678,7 @@ /* * set routing table */ -#ifndef BSDOS -+#if !defined(BSDOS) && (__FreeBSD__ != 2) ++#if !defined(BSDOS) && (__FreeBSD__ < 2) void set_route(param) struct dhcp_param *param; -@@ -1730,6 +1741,10 @@ +@@ -1730,6 +1748,10 @@ register char *cp = m_rtmsg.m_space; register int l; @@ -74,11 +95,55 @@ bzero(&so_dst, sizeof(struct sockaddr)); bzero(&so_mask, sizeof(struct sockaddr)); bzero(&so_gate, sizeof(struct sockaddr)); -@@ -1897,7 +1912,11 @@ +@@ -1772,6 +1794,43 @@ + + #endif + ++void ++set_resolv(param) ++struct dhcp_param *param; ++{ ++ FILE *fp; ++ int i; ++ ++ if (param == NULL) { ++ return; ++ } ++ ++ /* ++ * set resolv.conf ++ */ ++ if (param->dns_domain != NULL && param->dns_server != NULL) { ++ if(param->dns_server->num && param->dns_server->addr != NULL) { ++ if((fp = fopen(_PATH_RESCONF, "w")) == NULL) { ++ return; ++ } ++ fprintf(fp, "domain %s\n", param->dns_domain); ++ for(i = 0; i < param->dns_server->num; i++) { ++ fprintf(fp,"nameserver %s\n",inet_ntoa(param->dns_server->addr[i])); ++ } ++ fclose(fp); ++ } ++ } ++} ++ ++void ++set_hostname(param) ++struct dhcp_param *param; ++{ ++ if (param->hostname != NULL) { ++ sethostname(param->hostname,strlen(param->hostname)); ++ } ++ return; ++} + + void + make_decline(lsbuf, reqspecp) +@@ -1897,7 +1956,11 @@ lsether->ether_shost[i] = intface.haddr.haddr[i]; #endif } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + lsether->ether_type = ETHERTYPE_IP; +#else lsether->ether_type = htons(ETHERTYPE_IP); @@ -86,11 +151,11 @@ return; } -@@ -2199,7 +2218,11 @@ +@@ -2199,7 +2262,11 @@ snd.ether->ether_shost[i] = intface.haddr.haddr[i]; #endif } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + snd.ether->ether_type = ETHERTYPE_IP; +#else snd.ether->ether_type = htons(ETHERTYPE_IP); @@ -98,11 +163,11 @@ return; } -@@ -2372,7 +2395,11 @@ +@@ -2372,7 +2439,11 @@ snd.ether->ether_shost[i] = intface.haddr.haddr[i]; #endif } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + snd.ether->ether_type = ETHERTYPE_IP; +#else snd.ether->ether_type = htons(ETHERTYPE_IP); @@ -110,21 +175,21 @@ return(0); } -@@ -2391,7 +2418,7 @@ +@@ -2391,7 +2462,7 @@ struct msghdr msg; struct iovec bufvec[1]; int bufsize = DFLTDHCPLEN; -#ifdef BSDOS -+#if defined(BSDOS) || (__FreeBSD__ == 2) ++#if defined(BSDOS) || (__FreeBSD__ >= 2) int on; #endif -@@ -2417,7 +2444,7 @@ +@@ -2417,7 +2488,7 @@ return(-1); } -#ifdef BSDOS -+#if defined(BSDOS) || (__FreeBSD__ == 2) ++#if defined(BSDOS) || (__FreeBSD__ >= 2) on = 1; if (setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)) < 0) { close(sockfd); diff -urN wide-dhcp.org/patches/patch-ad wide-dhcp/patches/patch-ad --- wide-dhcp.org/patches/patch-ad Sat May 4 11:43:34 1996 +++ wide-dhcp/patches/patch-ad Thu Mar 27 11:55:12 1997 @@ -1,36 +1,46 @@ -*** server/getmac.c.orig Mon Nov 13 20:46:04 1995 ---- server/getmac.c Mon Nov 13 20:51:17 1995 -*************** -*** 21,27 **** - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -! #if !defined(sony_news) && !defined(__FreeBSD__) && !defined(__osf__) - - #ifdef lint - static char rcsid[] = ---- 21,27 ---- - * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. - */ -! #if !defined(sony_news) && !defined(__osf__) - - #ifdef lint - static char rcsid[] = -*************** -*** 104,110 **** - - ac = &arpcom; - ifp = &arpcom.ac_if; -! #ifdef __bsdi__ - ep = arpcom.ac_enaddr; - #else - ep = arpcom.ac_enaddr.ether_addr_octet; ---- 104,110 ---- - - ac = &arpcom; - ifp = &arpcom.ac_if; -! #if defined(__bsdi__) || defined(__FreeBSD__) - ep = arpcom.ac_enaddr; - #else - ep = arpcom.ac_enaddr.ether_addr_octet; +--- server/getmac.c.orig Tue Sep 12 17:29:01 1995 ++++ server/getmac.c Thu Mar 27 11:54:42 1997 +@@ -21,7 +21,7 @@ + * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. + */ +-#if !defined(sony_news) && !defined(__FreeBSD__) && !defined(__osf__) ++#if !defined(sony_news) && !defined(__osf__) + + #ifdef lint + static char rcsid[] = +@@ -44,6 +44,12 @@ + + #include + #include ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + + #include + #include +@@ -104,7 +110,7 @@ + + ac = &arpcom; + ifp = &arpcom.ac_if; +-#ifdef __bsdi__ ++#if defined(__bsdi__) || defined(__FreeBSD__) + ep = arpcom.ac_enaddr; + #else + ep = arpcom.ac_enaddr.ether_addr_octet; +@@ -118,7 +124,12 @@ + kvm_close(kd); + return(-1); + } ++ ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++ for ( ; addr; addr = (u_long)ifp->if_link.tqe_next) { ++#else + for ( ; addr; addr = (u_long)ifp->if_next) { ++#endif + if (kvm_read(kd, addr, (char *)ac, sizeof(*ac)) != sizeof(*ac)) { + syslog(LOG_ERR, "kvm_read() error in getmac(): %m"); + kvm_close(kd); diff -urN wide-dhcp.org/patches/patch-ae wide-dhcp/patches/patch-ae --- wide-dhcp.org/patches/patch-ae Mon May 20 18:06:47 1996 +++ wide-dhcp/patches/patch-ae Fri Mar 28 17:27:35 1997 @@ -1,14 +1,16 @@ ---- server/Makefile.FreeBSD.org Sat Jan 20 20:53:25 1996 -+++ server/Makefile.FreeBSD Sat Jan 20 20:56:27 1996 +--- server/Makefile.FreeBSD.orig Mon Nov 6 16:18:41 1995 ++++ server/Makefile.FreeBSD Fri Mar 28 17:26:44 1997 @@ -1,13 +1,25 @@ OBJ = dhcps.o database.o hash.o ctime.o getmac.o common_subr.o \ interface.o delarp.o -LDFLAGS = -+LDFLAGS = -lkvm - CC = gcc +-CC = gcc -CFLAGS = -g -Wall #-DCOMPAT_RFC1541 #-DNOICMPCHK +-#CC = cc ++LDFLAGS = -lkvm ++#CC = gcc +CFLAGS += -Wall #-DCOMPAT_RFC1541 #-DNOICMPCHK - #CC = cc ++CC = cc #CFLAGS = -g #-DCOMPAT_RFC1541 #-DNOICMPCHK +SBIN= ${PREFIX}/sbin +LIBEXEC= ${PREFIX}/libexec diff -urN wide-dhcp.org/patches/patch-af wide-dhcp/patches/patch-af --- wide-dhcp.org/patches/patch-af Sun Jan 19 20:14:26 1997 +++ wide-dhcp/patches/patch-af Mon Mar 31 16:15:59 1997 @@ -1,16 +1,19 @@ --- server/dhcps.c.orig Mon Nov 6 16:18:19 1995 -+++ server/dhcps.c Mon Aug 5 01:42:31 1996 -@@ -61,6 +61,9 @@ ++++ server/dhcps.c Thu Mar 27 11:48:05 1997 +@@ -61,6 +61,12 @@ #ifndef sun #include #endif +#ifdef __FreeBSD__ +#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif +#endif #include #include #include -@@ -1586,9 +1586,11 @@ +@@ -1583,9 +1589,11 @@ res = NULL; res = select_wcid(DHCPREQUEST, &cid, curr_epoch); @@ -25,11 +28,11 @@ else if (reqforme == 1) goto nak; else -@@ -1901,7 +1904,11 @@ +@@ -1901,7 +1909,11 @@ snd.ether->ether_shost[i] = ifp->haddr[i]; #endif } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + snd.ether->ether_type = ETHERTYPE_IP; +#else snd.ether->ether_type = htons(ETHERTYPE_IP); @@ -37,11 +40,11 @@ if (sbufvec[1].iov_base == NULL) { if (ether_write(ifp->fd, sbufvec[0].iov_base, sbufvec[0].iov_len) < 0) { -@@ -2215,7 +2222,11 @@ +@@ -2215,7 +2227,11 @@ #endif } } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version > 199703 && __FreeBSD_version < 219999) + snd.ether->ether_type = ETHERTYPE_IP; +#else snd.ether->ether_type = htons(ETHERTYPE_IP); @@ -49,12 +52,12 @@ buflen = DFLTBOOTPLEN + UDPHL + IPHL + ETHERHL; if (ether_write(ifp->fd, (char *)snd.ether, buflen) < 0) { -@@ -2877,7 +2888,7 @@ +@@ -2877,7 +2893,7 @@ return(GOOD); } -#ifdef BSDOS -+#if defined(BSDOS) || (__FreeBSD__ == 2) ++#if defined(BSDOS) || (__FreeBSD__ >= 2) delarp(ip); #else delarp(ip, sockfd); diff -urN wide-dhcp.org/patches/patch-ag wide-dhcp/patches/patch-ag --- wide-dhcp.org/patches/patch-ag Mon May 20 18:06:47 1996 +++ wide-dhcp/patches/patch-ag Fri Mar 28 17:26:35 1997 @@ -1,9 +1,13 @@ ---- relay/Makefile.FreeBSD.org Sat Jan 20 20:44:01 1996 -+++ relay/Makefile.FreeBSD Sat Jan 20 20:49:14 1996 -@@ -3,10 +3,20 @@ +--- relay/Makefile.FreeBSD.orig Mon Oct 9 15:09:37 1995 ++++ relay/Makefile.FreeBSD Fri Mar 28 17:26:07 1997 +@@ -1,12 +1,22 @@ + OBJ = relay.o getmac.o common_subr.o interface.o +-CC = gcc -CFLAGS = -g -Wall -I. -I../server +-#CC = cc ++#CC = gcc +CFLAGS += -Wall -I. -I../server - #CC = cc ++CC = cc #CFLAGS = -g -I. -I../server -LDFLAGS = +LDFLAGS = -lkvm diff -urN wide-dhcp.org/patches/patch-ah wide-dhcp/patches/patch-ah --- wide-dhcp.org/patches/patch-ah Mon Aug 19 12:23:29 1996 +++ wide-dhcp/patches/patch-ah Thu Mar 27 12:02:06 1997 @@ -1,20 +1,23 @@ --- relay/relay.c.orig Fri Nov 3 01:38:21 1995 -+++ relay/relay.c Mon Aug 5 01:43:07 1996 -@@ -49,6 +49,9 @@ - #ifdef sun - #include - #endif ++++ relay/relay.c Thu Mar 27 11:59:47 1997 +@@ -58,6 +58,12 @@ + #include + + #include +#ifdef __FreeBSD__ +#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include +#endif - - #include - #include -@@ -560,7 +563,11 @@ ++#endif + #ifdef sun + #include + #include +@@ -560,7 +566,11 @@ snd.ip->ip_dst.s_addr = rcv.dhcp->yiaddr.s_addr; snd.ip->ip_src.s_addr = ifp->ipaddr->s_addr; } -+#if __FreeBSD_version < 199608 ++#if (__FreeBSD_version < 199608) || (__FreeBSD_version == 199612) || (__FreeBSD_version >= 199703 && __FreeBSD_version <= 219999) + snd.ether->ether_type = ETHERTYPE_IP; +#else snd.ether->ether_type = htons(ETHERTYPE_IP); diff -urN wide-dhcp.org/patches/patch-ai wide-dhcp/patches/patch-ai --- wide-dhcp.org/patches/patch-ai Sat May 4 11:43:34 1996 +++ wide-dhcp/patches/patch-ai Mon Mar 31 16:15:59 1997 @@ -6,7 +6,7 @@ -#ifndef BSDOS /* It's BSD/386 1.? */ - -+#if !defined(BSDOS) && (__FreeBSD__ != 2) /* It's BSD/386 1.? */ ++#if !defined(BSDOS) && (__FreeBSD__ < 2) /* It's BSD/386 1.? */ #include #include #include diff -urN wide-dhcp.org/patches/patch-aj wide-dhcp/patches/patch-aj --- wide-dhcp.org/patches/patch-aj Sat May 4 11:43:34 1996 +++ wide-dhcp/patches/patch-aj Mon Mar 31 16:15:59 1997 @@ -1,11 +1,33 @@ ---- server/delarp.c.org Thu Jan 11 10:49:43 1996 -+++ server/delarp.c Thu Jan 11 10:52:03 1996 -@@ -60,7 +60,7 @@ +--- server/delarp.c.orig Sun Oct 8 18:37:07 1995 ++++ server/delarp.c Thu Mar 27 11:58:41 1997 +@@ -43,12 +43,21 @@ + + #include + #include ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + + #include + #if !defined(sun) && !defined(sony_news) + #include + #include + #endif ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif + #include + + #include +@@ -60,7 +69,7 @@ #include -#ifdef BSDOS -+#if defined(BSDOS) || (__FreeBSD__ == 2) ++#if defined(BSDOS) || (__FreeBSD__ >= 2) /* * delarp for BSD/OS 2.0 */ diff -urN wide-dhcp.org/patches/patch-aq wide-dhcp/patches/patch-aq --- wide-dhcp.org/patches/patch-aq Mon May 20 18:06:47 1996 +++ wide-dhcp/patches/patch-aq Fri Mar 28 17:28:05 1997 @@ -1,9 +1,12 @@ ---- tools/Makefile.FreeBSD.org Sat Jan 20 21:44:16 1996 -+++ tools/Makefile.FreeBSD Sat Jan 20 21:48:39 1996 -@@ -2,9 +2,17 @@ +--- tools/Makefile.FreeBSD.orig Mon Oct 9 15:00:53 1995 ++++ tools/Makefile.FreeBSD Fri Mar 28 17:27:46 1997 +@@ -1,10 +1,18 @@ +-CC = gcc -CFLAGS = -g -Wall -I. -I../server +-#CC = cc ++#CC = gcc +CFLAGS += -Wall -I. -I../server - #CC = cc ++CC = cc #CFLAGS = -g -I. -I../server +SBIN= ${PREFIX}/sbin +LIBEXEC= ${PREFIX}/libexec diff -urN wide-dhcp.org/patches/patch-ar wide-dhcp/patches/patch-ar --- wide-dhcp.org/patches/patch-ar Sat May 4 11:43:35 1996 +++ wide-dhcp/patches/patch-ar Mon Mar 31 16:16:00 1997 @@ -5,7 +5,7 @@ */ -#ifdef BSDOS -+#if defined(BSDOS) || (__FreeBSD__ == 2) ++#if defined(BSDOS) || (__FreeBSD__ >= 2) #ifndef BINDING_DB #define BINDING_DB "/var/db/dhcpdb.bind" #endif diff -urN wide-dhcp.org/patches/patch-as wide-dhcp/patches/patch-as --- wide-dhcp.org/patches/patch-as Sat May 4 11:43:35 1996 +++ wide-dhcp/patches/patch-as Thu Mar 27 15:44:24 1997 @@ -1,22 +1,163 @@ --- client/dhcpc.c.orig Fri Nov 3 01:40:40 1995 -+++ client/dhcpc.c Tue Mar 26 18:06:39 1996 -@@ -1760,6 +1760,7 @@ ++++ client/dhcpc.c Thu Mar 27 15:11:20 1997 +@@ -53,6 +53,12 @@ + #ifndef sun + #include + #endif ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + #include + #include + #include +@@ -86,6 +92,7 @@ + struct dhcp_reqspec reqspec; + struct if_info intface; + struct dhcp_param *param_list; ++int f_resolv, f_hostname; + + int (*fsm[MAX_STATES])(); + +@@ -227,6 +234,14 @@ + ((brdaddr.s_addr != 0) ? &brdaddr : NULL)) != 1) { + set_route(paramp); + } ++#ifdef __FreeBSD__ ++ if (f_resolv) { ++ set_resolv(param_list); ++ } ++ if (f_hostname) { ++ set_hostname(param_list); ++ } ++#endif + #endif + + return; +@@ -264,15 +279,8 @@ + /* + * split conditions into pieces for debugging + */ +-#ifndef sun +- if (ntohs(rcv.ip->ip_len) < DFLTBOOTPLEN + UDPHL + IPHL) +- return(0); +- if (ntohs(rcv.udp->uh_ulen) < DFLTBOOTPLEN + UDPHL) +- return(0); +-#else + if (rcv.udp->uh_dport != dhcpc_port) + return(0); +-#endif + if (ripcksum != cksum((u_short *) rcv.ip, rcv.ip->ip_hl * 2)) + return(0); + if (rcv.udp->uh_sum != 0 && +@@ -321,15 +329,8 @@ + /* + * split conditions into pieces for debugging + */ +-#ifndef sun +- if (ntohs(rcv.ip->ip_len) < DFLTBOOTPLEN + UDPHL + IPHL) +- return(0); +- if (ntohs(rcv.udp->uh_ulen) < DFLTBOOTPLEN + UDPHL) +- return(0); +-#else + if (rcv.udp->uh_dport != dhcpc_port) + return(0); +-#endif + if (ripcksum != cksum((u_short *) rcv.ip, rcv.ip->ip_hl * 2)) + return(0); + if (rcv.udp->uh_sum != 0 && +@@ -1740,7 +1741,11 @@ + void + usage() + { +- fprintf(stderr, "Usage: dhcpc [-d] if_name\n"); ++#ifdef __FreeBSD__ ++ fprintf(stderr, "Usage: dhcpc [-v] [-drn] if_name\n"); ++#else ++ fprintf(stderr, "Usage: dhcpc [-v] [-d] if_name\n"); ++#endif + exit(1); + } + +@@ -1760,17 +1765,42 @@ { int debug = 0; int n = 0; ++ int count; + FILE *pid_file; struct if_info ifinfo; ++#ifdef __FreeBSD__ ++ char pid_filename[MAXPATHLEN]; ++#endif bzero(&reqspec, sizeof(reqspec)); -@@ -1789,6 +1790,11 @@ - ioctl(n, TIOCNOTTY, (char *) 0); + bzero(&ifinfo, sizeof(ifinfo)); ++#ifdef __FreeBSD__ ++#define COM_OPTS "vdrn" ++#else ++#define COM_OPTS "vd" ++#endif ++ + if (argc < 2) usage(); +- --argc, ++argv; +- if (argv[0][0] == '-' && argv[0][1] == 'v') version(); +- if (argv[0][0] == '-' && argv[0][1] == 'd') { +- debug = 1; +- --argc, ++argv; ++ ++ while ((count = getopt(argc, argv, COM_OPTS)) != EOF) { ++ switch (count) { ++ case 'v': ++ version(); ++ case 'd': ++ debug = 1; ++ break; ++#ifdef __FreeBSD__ ++ case 'r': ++ f_resolv = 1; ++ break; ++ case 'n': ++ f_hostname = 1; ++ break; ++#endif ++ } + } ++ argc -= optind; ++ argv += optind; + + if (argc < 1) usage(); + strcpy(ifinfo.name, argv[0]); +@@ -1790,6 +1820,19 @@ close(n); } -+ } + } + /* initialization works well, so recored its own pid */ ++#ifdef __FreeBSD__ ++ strncpy(pid_filename, PATH_PID, MAXPATHLEN); ++ strncat(pid_filename, "/dhcpc.", (MAXPATHLEN - strlen(pid_filename))); ++ strncat(pid_filename, ifinfo.name, (MAXPATHLEN - strlen(pid_filename))); ++ strncat(pid_filename, ".pid", (MAXPATHLEN - strlen(pid_filename))); ++ if ((pid_file = fopen(pid_filename, "w")) != NULL) { ++#else + if ((pid_file = fopen(PATH_PID, "w")) != NULL) { ++#endif + fprintf(pid_file, "%d\n", (int) getpid()); + fclose(pid_file); - } ++ } /* + * set request specification +@@ -1802,6 +1845,11 @@ + reqspec.reqlist.list[reqspec.reqlist.len++] = SUBNET_MASK; + reqspec.reqlist.list[reqspec.reqlist.len++] = ROUTER; + reqspec.reqlist.list[reqspec.reqlist.len++] = BRDCAST_ADDR; ++#ifdef __FreeBSD__ ++ reqspec.reqlist.list[reqspec.reqlist.len++] = DNS_DOMAIN; ++ reqspec.reqlist.list[reqspec.reqlist.len++] = DNS_SERVER; ++ reqspec.reqlist.list[reqspec.reqlist.len++] = HOSTNAME; ++#endif + + return(dhcp_client(&ifinfo)); + } diff -urN wide-dhcp.org/patches/patch-at wide-dhcp/patches/patch-at --- wide-dhcp.org/patches/patch-at Sat May 4 11:43:35 1996 +++ wide-dhcp/patches/patch-at Thu Mar 27 15:44:03 1997 @@ -1,6 +1,6 @@ --- client/dhcpc.h.orig Fri Nov 3 01:40:25 1995 -+++ client/dhcpc.h Tue Mar 26 18:06:42 1996 -@@ -37,6 +37,16 @@ ++++ client/dhcpc.h Thu Mar 27 14:52:42 1997 +@@ -37,6 +37,20 @@ * WIDE project has the rights to redistribute these changes. */ @@ -8,6 +8,10 @@ +#ifndef PATH_PID +#define PATH_PID "/var/tmp/dhcpc.pid" +#endif ++#elif defined(__FreeBSD__) ++#ifndef PATH_PID ++#define PATH_PID "/var/run" ++#endif +#else /*sony_news*/ +#ifndef PATH_PID +#define PATH_PID "/var/run/dhcpc.pid" @@ -17,3 +21,9 @@ struct client_id { unsigned char type, len; +@@ -196,3 +210,5 @@ + */ + int config_if(); + void set_route(); ++void set_resolv(); ++void set_hostname(); diff -urN wide-dhcp.org/patches/patch-au wide-dhcp/patches/patch-au --- wide-dhcp.org/patches/patch-au Sat May 4 11:43:35 1996 +++ wide-dhcp/patches/patch-au Thu Mar 27 11:50:51 1997 @@ -1,6 +1,19 @@ ---- server/interface.c.org Fri Nov 3 01:36:04 1995 -+++ server/interface.c Thu Apr 18 16:21:05 1996 -@@ -386,7 +386,7 @@ +--- server/interface.c.orig Fri Nov 3 01:36:04 1995 ++++ server/interface.c Thu Mar 27 11:50:30 1997 +@@ -51,6 +51,12 @@ + #include + #include + #include ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + #ifdef sun + #include + #include +@@ -386,7 +392,7 @@ #endif /* sony_news */ ifinfo->hlen = 6; diff -urN wide-dhcp.org/patches/patch-av wide-dhcp/patches/patch-av --- wide-dhcp.org/patches/patch-av Fri Jan 3 15:14:20 1997 +++ wide-dhcp/patches/patch-av Thu Mar 27 11:51:47 1997 @@ -1,60 +1,26 @@ -*** client/dhcpc.c Thu Nov 2 08:40:40 1995 ---- client/dhcpc.c Wed Dec 11 01:33:40 1996 -*************** -*** 264,278 **** - /* - * split conditions into pieces for debugging - */ -- #ifndef sun -- if (ntohs(rcv.ip->ip_len) < DFLTBOOTPLEN + UDPHL + IPHL) -- return(0); -- if (ntohs(rcv.udp->uh_ulen) < DFLTBOOTPLEN + UDPHL) -- return(0); -- #else - if (rcv.udp->uh_dport != dhcpc_port) - return(0); -- #endif - if (ripcksum != cksum((u_short *) rcv.ip, rcv.ip->ip_hl * 2)) - return(0); - if (rcv.udp->uh_sum != 0 && ---- 264,271 ---- -*************** -*** 321,335 **** - /* - * split conditions into pieces for debugging - */ -- #ifndef sun -- if (ntohs(rcv.ip->ip_len) < DFLTBOOTPLEN + UDPHL + IPHL) -- return(0); -- if (ntohs(rcv.udp->uh_ulen) < DFLTBOOTPLEN + UDPHL) -- return(0); -- #else - if (rcv.udp->uh_dport != dhcpc_port) - return(0); -- #endif - if (ripcksum != cksum((u_short *) rcv.ip, rcv.ip->ip_hl * 2)) - return(0); - if (rcv.udp->uh_sum != 0 && ---- 314,321 ---- -diff -c -r work/dhcp-1.3beta/tools/dhcpm.c work2/dhcp-1.3beta/tools/dhcpm.c -*** tools/dhcpm.c Thu Nov 2 08:37:16 1995 ---- tools/dhcpm.c Wed Dec 11 01:34:06 1996 -*************** -*** 360,368 **** - rdhcp = (struct dhcp *) - &rbufp[rbpf->bh_hdrlen + ETHERHL + rip->ip_hl * WORD + UDPHL]; - -! if (ntohs(rip->ip_len) >= DFLTBOOTPLEN + UDPHL + IPHL && -! ntohs(rudp->uh_ulen) >= DFLTBOOTPLEN + UDPHL && -! (rdhcp->op == BOOTREQUEST || rdhcp->op == BOOTREPLY) && - (bcmp(rdhcp->options, magic_c, MAGIC_LEN) == 0 || - GETHL(rdhcp->options) == 0)) { /* permit old BOOTP packet */ - ---- 360,366 ---- - rdhcp = (struct dhcp *) - &rbufp[rbpf->bh_hdrlen + ETHERHL + rip->ip_hl * WORD + UDPHL]; - -! if ((rdhcp->op == BOOTREQUEST || rdhcp->op == BOOTREPLY) && - (bcmp(rdhcp->options, magic_c, MAGIC_LEN) == 0 || - GETHL(rdhcp->options) == 0)) { /* permit old BOOTP packet */ - +--- tools/dhcpm.c.orig Fri Nov 3 01:37:16 1995 ++++ tools/dhcpm.c Thu Mar 27 11:51:20 1997 +@@ -49,6 +49,12 @@ + #include + + #include ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + #include + #ifdef __osf__ + #include +@@ -360,9 +366,7 @@ + rdhcp = (struct dhcp *) + &rbufp[rbpf->bh_hdrlen + ETHERHL + rip->ip_hl * WORD + UDPHL]; + +- if (ntohs(rip->ip_len) >= DFLTBOOTPLEN + UDPHL + IPHL && +- ntohs(rudp->uh_ulen) >= DFLTBOOTPLEN + UDPHL && +- (rdhcp->op == BOOTREQUEST || rdhcp->op == BOOTREPLY) && ++ if ((rdhcp->op == BOOTREQUEST || rdhcp->op == BOOTREPLY) && + (bcmp(rdhcp->options, magic_c, MAGIC_LEN) == 0 || + GETHL(rdhcp->options) == 0)) { /* permit old BOOTP packet */ + diff -urN wide-dhcp.org/patches/patch-aw wide-dhcp/patches/patch-aw --- wide-dhcp.org/patches/patch-aw Thu Jan 1 09:00:00 1970 +++ wide-dhcp/patches/patch-aw Sun Mar 23 00:07:53 1997 @@ -0,0 +1,20 @@ +--- db_sample.bak/dhcpdb.pool Thu Jul 21 19:39:46 1994 ++++ db_sample/dhcpdb.pool Sun Mar 23 00:07:21 1997 +@@ -2,12 +2,14 @@ + global:!snmk=255.255.255.224:tmof=32400: + + # define different master entries for each subnet. . . ++# `dnsv' is IP address of DNS server. ++# `dnsd' is domain name of your domain. + subnet30:tblc=global:rout=133.4.30.1:dht1=500:dht2=850:\ +- :brda=133.4.30.31: ++ :brda=133.4.30.31:dnsv=133.4.30.10:dnsd=you.domain.name: + + # entries for manual allocation (DHCP, BOOTP) +-3001: :ipad=133.4.30.1:tblc=subnet30:clid="1:0x0080c75fdc03": +-3002: :ipad=133.4.30.2:tblc=subnet30:clid="1:0x08004600e5d5": ++3001: :ipad=133.4.30.1:hstn="yourclient1.host.name":tblc=subnet30:clid="1:0x0080c75fdc03": ++3002: :ipad=133.4.30.2:hstn="yourclient2.host.name":tblc=subnet30:clid="1:0x08004600e5d5": + + # entries for dynamic allocation (DHCP) + 3003: :ipad=133.4.30.3:dfll=3600:maxl=7200:tblc=subnet30: diff -urN wide-dhcp.org/patches/patch-ax wide-dhcp/patches/patch-ax --- wide-dhcp.org/patches/patch-ax Thu Jan 1 09:00:00 1970 +++ wide-dhcp/patches/patch-ax Thu Mar 27 11:45:16 1997 @@ -0,0 +1,15 @@ +--- server/common_subr.c.org Thu Mar 27 11:07:09 1997 ++++ server/common_subr.c Thu Mar 27 11:44:48 1997 +@@ -54,6 +54,12 @@ + #ifndef sun + #include + #endif ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + #include + #include + #include diff -urN wide-dhcp.org/patches/patch-az wide-dhcp/patches/patch-az --- wide-dhcp.org/patches/patch-az Thu Jan 1 09:00:00 1970 +++ wide-dhcp/patches/patch-az Thu Mar 27 11:53:22 1997 @@ -0,0 +1,15 @@ +--- tools/dhcpm_sun.c.orig Thu Mar 27 11:52:04 1997 ++++ tools/dhcpm_sun.c Thu Mar 27 11:52:47 1997 +@@ -50,6 +50,12 @@ + #include + + #include ++#ifdef __FreeBSD__ ++#include ++#if (__FreeBSD_version == 199702) || (__FreeBSD_version >= 300000) ++#include ++#endif ++#endif + #include + #include + #include diff -urN wide-dhcp.org/patches/patch-ba wide-dhcp/patches/patch-ba --- wide-dhcp.org/patches/patch-ba Thu Jan 1 09:00:00 1970 +++ wide-dhcp/patches/patch-ba Thu Mar 27 14:08:32 1997 @@ -0,0 +1,33 @@ +--- client/dhcpc.8.orig Tue Sep 12 13:54:16 1995 ++++ client/dhcpc.8 Thu Mar 27 14:07:16 1997 +@@ -5,7 +5,7 @@ + .SH SYNOPSIS + .B dhcpc + [ +-.B \-d ++.B \-drn + ] + .I interface + .SH DESCRIPTION +@@ -36,6 +36,21 @@ + option is specified, + .B dhcpc + runs in foreground and debugging mode. ++.LP ++If the ++.B \-r ++option is specified, and if your DHCP server supplies the DNS address, ++.B dhcpc ++overwrites "/etc/resolv.conf" with supplied address. ++.LP ++If the ++.B \-n ++option is specified, and if your DHCP server supplies the hostname of ++the client, ++.B dhcpc ++call ++.B sethostname(3) ++with supplied name. + .LP + The DHCP client can verify whether its assigned information is still + valid at any time. diff -urN wide-dhcp.org/pkg/DESCR wide-dhcp/pkg/DESCR --- wide-dhcp.org/pkg/DESCR Sat May 4 11:43:33 1996 +++ wide-dhcp/pkg/DESCR Fri Mar 28 17:23:28 1997 @@ -24,25 +24,48 @@ ------------------------------ -**Attention for this ports file>** +** Attention for this ports file ** - To use DHCP, your kernel must be rebuilt with the following line - added to your kernel config file (/sys/i386/conf/): + To use DHCP, your kernel must be rebuilt with the following + line added to your kernel config file (/sys/i386/conf/): pseudo-device bpfilter 4 #Berkeley packet filter - and make bpf devices in your /dev directory: /dev/bpf[0-3]. + and make bpf devices in your /dev directory: /dev/bpf[1-3]. cd /dev -./MAKEDEV bpf0 ./MAKEDEV bpf1 ./MAKEDEV bpf2 ./MAKEDEV bpf3 -**Acknowledgements to this ports file** +** CHECK_SUM Problem under FreeBSD 2.1.x ** + + This port collection is use tzfile.h from FreeBSD-current source + tree. Because this file is frequently changed, md5 check sum of + this file in files/md5 is ``IGNORE''. + + If you use this port collection ***under FreeBSD 2.1-stable***: + 2.1.0-RELEASE, 2.1.5-RELASE, 2.1.6-RELEASE, 2.1.7-RELEASE, + please make with ``make NO_CHECKSUM=yes'', or use latest + bsd.ports.mk and bsd.port.subdir.mk files in /usr/share/mk. + +** additional function ** + + DHCP client(dhcpc) in this port is supported "dynamic change + /etc/resolv.conf and hostname via DHCP infomation". + + o `-r' is recreate /etc/resolv.conf + (resolv.conf file is overwritten.) + o `-n' is reset HOSTNAME + +** Acknowledgements to this ports file ** Special thanks to: Hirotaka TAKETA Hajimu UMEMOTO + Tamotsu KANOH + Junichi SATOH + Hisashi HIRAMOTO + Takeshi TAGUCHI - Yoshiro MIHIRA (sanpei@yy.cs.keio.ac.jp) diff -urN wide-dhcp.org/pkg/PLIST wide-dhcp/pkg/PLIST --- wide-dhcp.org/pkg/PLIST Sat May 4 11:43:33 1996 +++ wide-dhcp/pkg/PLIST Wed Mar 12 11:04:44 1997 @@ -15,6 +15,7 @@ share/dhcp/dhcpdb.pool.sample share/dhcp/dhcpdb.relay.sample share/dhcp/dhcpdb.server.sample +etc/rc.d/wide-dhcps.sh.sample @exec echo "updating /etc/services"; cp /etc/services /etc/services.bak; (grep -v ^dhcps /etc/services.bak ; echo "dhcps 67/udp # dhcp server") > /etc/services @unexec echo "updating /etc/services"; cp /etc/services /etc/services.bak; (grep -v ^dhcps /etc/services.bak ) > /etc/services @exec echo "updating /etc/services"; cp /etc/services /etc/services.bak; (grep -v ^dhcpc /etc/services.bak ; echo "dhcpc 68/udp # dhcp client") > /etc/services >Audit-Trail: >Unformatted: