diff options
-rw-r--r-- | mail/netqmail/DESCR | 12 | ||||
-rw-r--r-- | mail/netqmail/Makefile | 36 | ||||
-rw-r--r-- | mail/netqmail/distinfo | 5 | ||||
-rw-r--r-- | mail/netqmail/patches/patch-aa | 65 |
4 files changed, 118 insertions, 0 deletions
diff --git a/mail/netqmail/DESCR b/mail/netqmail/DESCR new file mode 100644 index 00000000000..c963fd8e1dd --- /dev/null +++ b/mail/netqmail/DESCR @@ -0,0 +1,12 @@ +Charles Cazabon, Dave Sill, Henning Brauer, Peter Samuel, and +Russell Nelson have put together a netqmail-1.05 distribution of +qmail. It is comprised of qmail-1.03 plus a patch file, some +documentation, and a shell script which prepares the files for +compilation. + +We have done this because in our opinion, too many new users are +confused by the out-of-date INSTALL file, and too much time is +spent arguing on the mailing list over bugs. We have tried to stick +to the barest minimum number of changes. We have fixed only those +things which are out-and-out wrong, or which have been approved by +djb (specifically QMAILQUEUE). diff --git a/mail/netqmail/Makefile b/mail/netqmail/Makefile new file mode 100644 index 00000000000..11437259843 --- /dev/null +++ b/mail/netqmail/Makefile @@ -0,0 +1,36 @@ +# $NetBSD: Makefile,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $ +# + +DISTNAME= netqmail-1.05 +CATEGORIES= mail +MASTER_SITES= http://qmail.org/ + +MAINTAINER= schmonz@NetBSD.org +HOMEPAGE= http://qmail.org/netqmail/ +COMMENT= Unofficial distribution of qmail that includes basic patches + +CONFLICTS+= qmail-[0-9]* + +USE_BUILDLINK3= yes + +# netqmail is a modification of the qmail source. +RESTRICTED= "modified source and binaries may not be distributed" +NO_BIN_ON_CDROM=${RESTRICTED} +NO_BIN_ON_FTP= ${RESTRICTED} +NO_PACKAGE= "needs work to function properly as a binary package" + +WRKSRC= ${WRKDIR}/${DISTNAME}/${DISTNAME} + +.include "../../mail/qmail/Makefile.common" + +.if defined(PKG_PHASE) && ${PKG_PHASE} == "extract" +WRKSRC= ${WRKDIR}/${DISTNAME} +.endif + +post-extract: + @extract_file=qmail-1.03.tar.gz; export extract_file; \ + cd ${WRKSRC}; ${EXTRACT_CMD}; cd qmail-1.03; \ + ${PATCH} ${PATCH_DIST_ARGS} < ../${DISTNAME}.patch; \ + cd ..; ${MV} qmail-1.03 ${DISTNAME} + +.include "../../mk/bsd.pkg.mk" diff --git a/mail/netqmail/distinfo b/mail/netqmail/distinfo new file mode 100644 index 00000000000..af4890125a0 --- /dev/null +++ b/mail/netqmail/distinfo @@ -0,0 +1,5 @@ +$NetBSD: distinfo,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $ + +SHA1 (netqmail-1.05.tar.gz) = fe4cbe97bd2f18a5ca1b36e4fbbd6c524256a829 +Size (netqmail-1.05.tar.gz) = 252264 bytes +SHA1 (patch-aa) = c9928d0879dee77010bb469d4afa8c4ca35668f8 diff --git a/mail/netqmail/patches/patch-aa b/mail/netqmail/patches/patch-aa new file mode 100644 index 00000000000..cf1473dbf20 --- /dev/null +++ b/mail/netqmail/patches/patch-aa @@ -0,0 +1,65 @@ +$NetBSD: patch-aa,v 1.1.1.1 2004/07/21 22:42:04 schmonz Exp $ + +--- dns.c.orig 2004-07-20 20:02:28.000000000 -0400 ++++ dns.c +@@ -19,10 +19,12 @@ extern int res_search(); + static unsigned short getshort(c) unsigned char *c; + { unsigned short u; u = c[0]; return (u << 8) + c[1]; } + +-static union { HEADER hdr; unsigned char buf[PACKETSZ]; } response; ++static struct { unsigned char *buf; } response; ++static int responsebuflen = 0; + static int responselen; + static unsigned char *responseend; + static unsigned char *responsepos; ++static u_long saveresoptions; + + static int numanswers; + static char name[MAXDNAME]; +@@ -43,18 +45,33 @@ int type; + errno = 0; + if (!stralloc_copy(&glue,domain)) return DNS_MEM; + if (!stralloc_0(&glue)) return DNS_MEM; +- responselen = lookup(glue.s,C_IN,type,response.buf,sizeof(response)); ++ if (!responsebuflen) ++ if (response.buf = (unsigned char *)alloc(PACKETSZ+1)) ++ responsebuflen = PACKETSZ+1; ++ else return DNS_MEM; ++ ++ responselen = lookup(glue.s,C_IN,type,response.buf,responsebuflen); ++ if ((responselen >= responsebuflen) || ++ (responselen > 0 && (((HEADER *)response.buf)->tc))) ++ { ++ if (responsebuflen < 65536) ++ if (alloc_re(&response.buf, responsebuflen, 65536)) ++ responsebuflen = 65536; ++ else return DNS_MEM; ++ saveresoptions = _res.options; ++ _res.options |= RES_USEVC; ++ responselen = lookup(glue.s,C_IN,type,response.buf,responsebuflen); ++ _res.options = saveresoptions; ++ } + if (responselen <= 0) + { + if (errno == ECONNREFUSED) return DNS_SOFT; + if (h_errno == TRY_AGAIN) return DNS_SOFT; + return DNS_HARD; + } +- if (responselen >= sizeof(response)) +- responselen = sizeof(response); + responseend = response.buf + responselen; + responsepos = response.buf + sizeof(HEADER); +- n = ntohs(response.hdr.qdcount); ++ n = ntohs(((HEADER *)response.buf)->qdcount); + while (n-- > 0) + { + i = dn_expand(response.buf,responseend,responsepos,name,MAXDNAME); +@@ -64,7 +81,7 @@ int type; + if (i < QFIXEDSZ) return DNS_SOFT; + responsepos += QFIXEDSZ; + } +- numanswers = ntohs(response.hdr.ancount); ++ numanswers = ntohs(((HEADER *)response.buf)->ancount); + return 0; + } + |