From 67ec049f25e299957fada55ea8738e0967547c6f Mon Sep 17 00:00:00 2001 From: Phil Sutter Date: Fri, 18 Feb 2011 00:51:49 +0100 Subject: port totd, the trick or treat daemon This is a simple DNS-ALG implementation used for NAT-PT & Co. --- package/totd/Makefile | 24 +++++++++++++++++++++ package/totd/files/totd.conf | 14 ++++++++++++ package/totd/files/totd.conffiles | 1 + package/totd/files/totd.init | 26 +++++++++++++++++++++++ package/totd/files/totd.postinst | 4 ++++ package/totd/patches/patch-Makefile_in | 39 ++++++++++++++++++++++++++++++++++ package/totd/patches/patch-ne_mesg_c | 16 ++++++++++++++ 7 files changed, 124 insertions(+) create mode 100644 package/totd/Makefile create mode 100644 package/totd/files/totd.conf create mode 100644 package/totd/files/totd.conffiles create mode 100755 package/totd/files/totd.init create mode 100644 package/totd/files/totd.postinst create mode 100644 package/totd/patches/patch-Makefile_in create mode 100644 package/totd/patches/patch-ne_mesg_c (limited to 'package/totd') diff --git a/package/totd/Makefile b/package/totd/Makefile new file mode 100644 index 000000000..938439e9b --- /dev/null +++ b/package/totd/Makefile @@ -0,0 +1,24 @@ +# This file is part of the OpenADK project. OpenADK is copyrighted +# material, please see the LICENCE file in the top-level directory. + +include $(TOPDIR)/rules.mk + +PKG_NAME:= totd +PKG_VERSION:= 1.5.1 +PKG_RELEASE:= 1 +PKG_MD5SUM:= 7edaedae9f6aca5912dd6c123582cf08 +PKG_DESCR:= Trick or Treat Daemon (a simple DNS-ALG for NAT-PT) +PKG_SECTION:= dns +PKG_URL:= http://www.dillema.net/software/totd.html +PKG_SITES:= http://www.dillema.net/software/totd/ + +include $(TOPDIR)/mk/package.mk + +$(eval $(call PKG_template,TOTD,${PKG_NAME},${PKG_VERSION}-${PKG_RELEASE},${PKG_DEPENDS},${PKG_DESCR},${PKG_SECTION})) + +post-install: + $(INSTALL_DIR) $(IDIR_TOTD)/{usr/sbin,etc} + ${INSTALL_DATA} ./files/totd.conf ${IDIR_TOTD}/etc/ + $(INSTALL_BIN) $(WRKINST)/usr/sbin/totd $(IDIR_TOTD)/usr/sbin/ + +include ${TOPDIR}/mk/pkg-bottom.mk diff --git a/package/totd/files/totd.conf b/package/totd/files/totd.conf new file mode 100644 index 000000000..85a6ae73c --- /dev/null +++ b/package/totd/files/totd.conf @@ -0,0 +1,14 @@ +; you can have multiple forwarders, totd will always prefer +; forwarders listed early and only use forwarders listed later +; if the first ones are unresponsive. +forwarder ::1 + +; you can have multiple prefixes or even no prefixes at all +; totd uses them in round-robin fashion +prefix 0::ffff:ffff:0:0 + +; the port totd listens on for incoming requests +port 53 + +; the pidfile to use (default: /var/run/totd.pid) +pidfile /var/run/totd.pid diff --git a/package/totd/files/totd.conffiles b/package/totd/files/totd.conffiles new file mode 100644 index 000000000..c74a3007f --- /dev/null +++ b/package/totd/files/totd.conffiles @@ -0,0 +1 @@ +/etc/totd.conf diff --git a/package/totd/files/totd.init b/package/totd/files/totd.init new file mode 100755 index 000000000..665e36171 --- /dev/null +++ b/package/totd/files/totd.init @@ -0,0 +1,26 @@ +#!/bin/sh +#PKG totd +#INIT 60 +. /etc/rc.conf + +case $1 in +autostop) ;; +autostart) + test x"${totd:-NO}" = x"NO" && exit 0 + exec sh $0 start + ;; +start) + totd $totd_flags -c /etc/totd.conf + ;; +stop) + pkill totd + ;; +restart) + sh $0 stop + sh $0 start + ;; +*) + echo "Usage: $0 {start | stop | restart}" + ;; +esac +exit $? diff --git a/package/totd/files/totd.postinst b/package/totd/files/totd.postinst new file mode 100644 index 000000000..12c7c1864 --- /dev/null +++ b/package/totd/files/totd.postinst @@ -0,0 +1,4 @@ +#!/bin/sh +. $IPKG_INSTROOT/etc/functions.sh +add_rcconf 'additional flags for totd' totd_flags "-q" +add_rcconf totd totd NO diff --git a/package/totd/patches/patch-Makefile_in b/package/totd/patches/patch-Makefile_in new file mode 100644 index 000000000..5eec23ca5 --- /dev/null +++ b/package/totd/patches/patch-Makefile_in @@ -0,0 +1,39 @@ + - set ${CC} only if unset + - drop -Werror, sources aren't that sane ;) + - don't chown the files when installing + - use DESTDIR when installing + - don't strip binaries (we do ourself, install chooses the wrong strip binary) + - create non-existing target directories +--- totd-1.5.orig/Makefile.in 2005-01-31 12:55:14.000000000 +0100 ++++ totd-1.5/Makefile.in 2010-03-25 21:21:05.085663745 +0100 +@@ -4,7 +4,7 @@ + # <$Id: Makefile.in,v 3.43 2005/01/31 11:55:14 dillema Exp $> + # + +-CC = gcc ++CC ?= gcc + + # These use the standard autoconf variables, which by default are + # rooted in @prefix@ +@@ -19,7 +19,7 @@ TOT_CONFIG_FILE=@sysconfdir@/totd.conf + + INSTALL = /usr/bin/install + +-CFLAGS = @CFLAGS@ @DEFS@ -Werror -Wall -DTOTCONF=\"$(TOT_CONFIG_FILE)\" @OPTFLAGS@ $(INCLUDEPATH) ++CFLAGS = @CFLAGS@ @DEFS@ -Wall -DTOTCONF=\"$(TOT_CONFIG_FILE)\" @OPTFLAGS@ $(INCLUDEPATH) + + # When debugging is enabled by --enable-malloc-debug flag to the configure + # script, the @DBMALLOC@ substitution will contain the empty string, thus +@@ -66,8 +66,10 @@ libswill.a: + -ranlib libswill.a + + install: $(PROG) +- $(INSTALL) -c -s -m 0555 -o bin -g bin $(PROG) $(INSTALLDIR) +- $(INSTALL) -c -m 0444 -o root -g wheel $(MAN) $(INSTALLMAN)/man8 ++ mkdir -p ${DESTDIR}/${INSTALLDIR} ++ $(INSTALL) -c -m 0555 $(PROG) ${DESTDIR}/$(INSTALLDIR) ++ mkdir -p ${DESTDIR}/${INSTALLMAN}/man8 ++ $(INSTALL) -c -m 0444 $(MAN) ${DESTDIR}/$(INSTALLMAN)/man8 + + lint: + lint ${SRCS} diff --git a/package/totd/patches/patch-ne_mesg_c b/package/totd/patches/patch-ne_mesg_c new file mode 100644 index 000000000..db9633bec --- /dev/null +++ b/package/totd/patches/patch-ne_mesg_c @@ -0,0 +1,16 @@ + fix for verbose logging +--- totd-1.5.orig/ne_mesg.c 2002-12-10 23:31:18.000000000 +0100 ++++ totd-1.5/ne_mesg.c 2010-03-25 23:45:35.185664417 +0100 +@@ -470,6 +470,12 @@ u_char *dname_decompress (u_char *buf, i + + next = NULL; + written_len = token_len = 0; ++ ++ if (!m_head) ++ m_head = dname; ++ if (!m_tail) ++ m_tail = dname + buflen; ++ + for (cp = dname; *cp; cp += token_len) { + iter = 0; + top: -- cgit v1.2.3