From owner-freebsd-ports Sat Jan 6 7:30:14 2001 From owner-freebsd-ports@FreeBSD.ORG Sat Jan 6 07:30:01 2001 Return-Path: Delivered-To: freebsd-ports@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id BC4DA37B402 for ; Sat, 6 Jan 2001 07:30:01 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f06FU1Q25479; Sat, 6 Jan 2001 07:30:01 -0800 (PST) (envelope-from gnats) Resent-Date: Sat, 6 Jan 2001 07:30:01 -0800 (PST) Resent-Message-Id: <200101061530.f06FU1Q25479@freefall.freebsd.org> Resent-From: gnats-admin@FreeBSD.org (GNATS Management) Resent-To: freebsd-ports@FreeBSD.org Resent-Reply-To: gnats-admin@FreeBSD.org, George Reid Received: from mta03-svc.ntlworld.com (mta03-svc.ntlworld.com [62.253.162.43]) by hub.freebsd.org (Postfix) with ESMTP id 03C3A37B400 for ; Sat, 6 Jan 2001 07:20:53 -0800 (PST) Received: from sobek.openirc.co.uk ([62.252.9.150]) by mta03-svc.ntlworld.com (InterMail vM.4.01.02.27 201-229-119-110) with ESMTP id <20010106152045.UCCV10171.mta03-svc.ntlworld.com@sobek.openirc.co.uk> for ; Sat, 6 Jan 2001 15:20:45 +0000 Message-Id: Date: Sat, 6 Jan 2001 15:25:41 +0000 (GMT) From: George Reid To: FreeBSD-gnats-submit@freebsd.org Subject: ports/24107: New port: dnrd: A proxy DNS daemon Resent-Sender: gnats@FreeBSD.org Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 24107 >Category: ports >Synopsis: New port: dnrd: A proxy DNS daemon >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-ports >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Sat Jan 06 07:30:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: George Reid >Release: FreeBSD 5.0-CURRENT i386 >Organization: FreeBSD UKUG >Environment: n/a >Description: DNRD is a proxy name server. To clients on your home network, it looks just like a name server. In reality, it forwards every DNS query to the "real" DNS server, and forwards responses back to the client. So, why would you want to use it? DNRD was designed for home networks where you might want to dial into more than one ISP (ie, your home ISP and a dialup connection to your office). The problem with multiple dialups is that you need to change /etc/resolv.conf for each one. With DNRD, this is no longer necessary. Your dialup machine will run DNRD (with appropriate options for forwarding messages to the desired DNS servers). All other machines on the home network, including the dialup machine itself, will use the dialup machine as its DNS server. - George Reid greid@ukug.uk.freebsd.org >How-To-Repeat: n/a >Fix: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # dnrd # dnrd/Makefile # dnrd/distinfo # dnrd/files # dnrd/files/patch-aa # dnrd/files/patch-ab # dnrd/files/patch-ac # dnrd/files/patch-ad # dnrd/files/patch-ae # dnrd/files/patch-af # dnrd/files/patch-ag # dnrd/pkg-comment # dnrd/pkg-descr # dnrd/pkg-plist # echo c - dnrd mkdir -p dnrd > /dev/null 2>&1 echo x - dnrd/Makefile sed 's/^X//' >dnrd/Makefile << 'END-of-dnrd/Makefile' X# New ports collection makefile for: dnrd X# Date created: 06 January 2001 X# Whom: George Reid X# X# $FreeBSD$ X# X XPORTNAME= dnrd XPORTVERSION= 2.9 XCATEGORIES= net XMASTER_SITES= http://members.home.com/garsh/dnrd/archive/ X XMAINTAINER= greid@ukug.uk.freebsd.org X XWRKSRC= ${WRKDIR}/${DISTNAME}/src X XUSE_GMAKE= yes X XMAN8= dnrd.8 X Xpost-patch: X.for F in main.c master.c X @(cd ${WRKSRC} && ${SED} -e 's,%%PREFIX%%,${PREFIX},g' $F > foo && \ X ${MV} foo $F) X.endfor X X.include END-of-dnrd/Makefile echo x - dnrd/distinfo sed 's/^X//' >dnrd/distinfo << 'END-of-dnrd/distinfo' XMD5 (dnrd-2.9.tar.gz) = ba593a4e1ebff641338663430fe3edef END-of-dnrd/distinfo echo c - dnrd/files mkdir -p dnrd/files > /dev/null 2>&1 echo x - dnrd/files/patch-aa sed 's/^X//' >dnrd/files/patch-aa << 'END-of-dnrd/files/patch-aa' X--- Makefile.orig Wed Nov 3 00:47:10 1999 X+++ Makefile Sat Jan 6 15:23:12 2001 X@@ -1,13 +1,13 @@ X-CC = gcc X-COPT = -O2 X+CC = cc X+COPT = X CDEF = -D_REENTRANT X-CWARN = -Wall -Werror X-CDBG = -ggdb X-CFLAGS = ${CWARN} ${COPT} ${CDEF} ${CDBG} X+CWARN = -Wall X+CDBG = X+CFLAGS += ${CWARN} ${COPT} ${CDEF} ${CDBG} X LDFLAGS = X-LIBS = -lpthread X-INSTDIR = /usr/local/sbin X-MANDIR = /usr/local/man/man8 X+LIBS = -lc_r X+INSTDIR = ${PREFIX}/sbin X+MANDIR = ${PREFIX}/man/man8 X SHELL = /bin/sh X X all: dnrd X@@ -17,14 +17,13 @@ X rm -f dnrd core tags ID *.o *.d *~ *.bak X X install: dnrd X- strip dnrd X- install -m 0751 -o root -g root -s dnrd ${INSTDIR} X- install -m 0644 -o root -g root -s ../doc/dnrd.8 ${MANDIR} X+ install -m 0755 -s -o root -g wheel -s -c dnrd ${INSTDIR} X+ install -m 0544 -o root -g wheel -c ../doc/dnrd.8 ${MANDIR} X X sources = args.c cache.c common.c dns.c lib.c main.c master.c \ X query.c relay.c sig.c tcp.c udp.c X X-include $(sources:.c=.d) X+#include $(sources:.c=.d) X X dnrd: $(sources:.c=.o) X $(CC) $(LDFLAGS) $(LIBS) $^ -o $@ END-of-dnrd/files/patch-aa echo x - dnrd/files/patch-ab sed 's/^X//' >dnrd/files/patch-ab << 'END-of-dnrd/files/patch-ab' X--- args.c.orig Sat Jan 6 14:54:15 2001 X+++ args.c Sat Jan 6 14:54:57 2001 X@@ -25,6 +25,7 @@ X #include X #include X #include X+#include X #if defined(__GNU_LIBRARY__) X # include X #endif END-of-dnrd/files/patch-ab echo x - dnrd/files/patch-ac sed 's/^X//' >dnrd/files/patch-ac << 'END-of-dnrd/files/patch-ac' X--- common.h.orig Sat Jan 6 14:52:53 2001 X+++ common.h Sat Jan 6 14:53:00 2001 X@@ -23,6 +23,7 @@ X #ifndef _DNRD_COMMON_H_ X #define _DNRD_COMMON_H_ X X+#include X #include X #include X #include END-of-dnrd/files/patch-ac echo x - dnrd/files/patch-ad sed 's/^X//' >dnrd/files/patch-ad << 'END-of-dnrd/files/patch-ad' X--- main.c.orig Thu Jan 4 14:40:42 2001 X+++ main.c Sat Jan 6 15:06:31 2001 X@@ -18,6 +18,7 @@ X * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. X */ X X+#include X #include "relay.h" X #include "cache.h" X #include "common.h" X@@ -26,7 +27,6 @@ X #include "master.h" X #include X #include X-#include X #include X #include X #include X@@ -170,20 +170,20 @@ X * Change our root and current working directories to /etc/dnrd. X * Also, so some sanity checking on that directory first. X */ X- dirp = opendir("/etc/dnrd"); X+ dirp = opendir("%%PREFIX%%/etc/dnrd"); X if (!dirp) { X- log_msg(LOG_ERR, "The directory /etc/dnrd must be created before " X+ log_msg(LOG_ERR, "The directory %%PREFIX%%/etc/dnrd must be created before " X "dnrd will run"); X } X X- rslt = stat("/etc/dnrd", &st); X+ rslt = stat("%%PREFIX%%/etc/dnrd", &st); X if (st.st_uid != 0) { X- log_msg(LOG_ERR, "The /etc/dnrd directory must be owned by root"); X+ log_msg(LOG_ERR, "The %%PREFIX%%/dnrd directory must be owned by root"); X cleanexit(-1); X } X if ((st.st_mode & (S_IWGRP | S_IWOTH)) != 0) { X log_msg(LOG_ERR, X- "The /etc/dnrd directory should only be user writable"); X+ "The %%PREFIX%%/etc/dnrd directory should only be user writable"); X cleanexit(-1); X } X X@@ -198,31 +198,31 @@ X X if (rslt) continue; X if (S_ISDIR(st.st_mode)) { X- log_msg(LOG_ERR, "The /etc/dnrd directory must not contain " X+ log_msg(LOG_ERR, "The %%PREFIX%%/etc/dnrd directory must not contain " X "subdirectories"); X cleanexit(-1); X } X if ((st.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH|S_IWGRP|S_IWOTH)) != 0) { X- log_msg(LOG_ERR, "A file in /etc/dnrd has either execute " X+ log_msg(LOG_ERR, "A file in %%PREFIX%%/etc/dnrd has either execute " X "permissions or non-user write permission. Please do a " X "\"chmod a-x,go-w\" on all files in this directory"); X cleanexit(-1); X } X if (st.st_uid != 0) { X- log_msg(LOG_ERR, "All files in /etc/dnrd must be owned by root"); X+ log_msg(LOG_ERR, "All files in %%PREFIX%%/etc/dnrd must be owned by root"); X cleanexit(-1); X } X } X closedir(dirp); X X- if (chdir("/etc/dnrd")) { X+ if (chdir("%%PREFIX%%/etc/dnrd")) { X log_msg(LOG_ERR, "couldn't chdir to %s, %s", X- "/etc/dnrd", strerror(errno)); X+ "%%PREFIX%%/etc/dnrd", strerror(errno)); X cleanexit(-1); X } X- if (chroot("/etc/dnrd")) { X+ if (chroot("%%PREFIX%%/etc/dnrd")) { X log_msg(LOG_ERR, "couldn't chroot to %s, %s", X- "/etc/dnrd", strerror(errno)); X+ "%%PREFIX%%/etc/dnrd", strerror(errno)); X cleanexit(-1); X } X END-of-dnrd/files/patch-ad echo x - dnrd/files/patch-ae sed 's/^X//' >dnrd/files/patch-ae << 'END-of-dnrd/files/patch-ae' X--- query.h.orig Sat Jan 6 14:56:49 2001 X+++ query.h Sat Jan 6 14:56:59 2001 X@@ -25,6 +25,7 @@ X #ifndef _DNSR_QUERY_H_ X #define _DNSR_QUERY_H_ X X+#include X #include X #include X END-of-dnrd/files/patch-ae echo x - dnrd/files/patch-af sed 's/^X//' >dnrd/files/patch-af << 'END-of-dnrd/files/patch-af' X--- tcp.c.orig Sat Jan 6 14:53:45 2001 X+++ tcp.c Sat Jan 6 14:53:51 2001 X@@ -23,7 +23,7 @@ X #include X #include X #include X-#include X+#include X #include X #include X #include END-of-dnrd/files/patch-af echo x - dnrd/files/patch-ag sed 's/^X//' >dnrd/files/patch-ag << 'END-of-dnrd/files/patch-ag' X--- master.c.orig Sat Jan 6 15:07:32 2001 X+++ master.c Sat Jan 6 15:06:54 2001 X@@ -37,7 +37,7 @@ X #include "master.h" X #include "lib.h" X X-#define MASTER_CONFIG "/etc/dnrd/master" X+#define MASTER_CONFIG "%%PREFIX%%/etc/dnrd/master" X #define PACKET_ASSEMBLYSIZE 600 X X END-of-dnrd/files/patch-ag echo x - dnrd/pkg-comment sed 's/^X//' >dnrd/pkg-comment << 'END-of-dnrd/pkg-comment' XA proxy DNS daemon END-of-dnrd/pkg-comment echo x - dnrd/pkg-descr sed 's/^X//' >dnrd/pkg-descr << 'END-of-dnrd/pkg-descr' XDNRD is a proxy name server. To clients on your home network, Xit looks just like a name server. In reality, it forwards every XDNS query to the "real" DNS server, and forwards responses back Xto the client. X XSo, why would you want to use it? DNRD was designed for home Xnetworks where you might want to dial into more than one ISP X(ie, your home ISP and a dialup connection to your office). The Xproblem with multiple dialups is that you need to change X/etc/resolv.conf for each one. With DNRD, this is no longer Xnecessary. X XYour dialup machine will run DNRD (with appropriate options for Xforwarding messages to the desired DNS servers). All other Xmachines on the home network, including the dialup machine Xitself, will use the dialup machine as its DNS server. X X- George Reid Xgreid@ukug.uk.freebsd.org END-of-dnrd/pkg-descr echo x - dnrd/pkg-plist sed 's/^X//' >dnrd/pkg-plist << 'END-of-dnrd/pkg-plist' Xsbin/dnrd END-of-dnrd/pkg-plist exit >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message