Received: from localhost (localhost [127.0.0.1]) by mail.netbsd.org (Postfix) with ESMTP id 1B21284F40 for ; Mon, 4 Sep 2023 10:32:49 +0000 (UTC) X-Virus-Scanned: amavisd-new at netbsd.org Received: from mail.netbsd.org ([127.0.0.1]) by localhost (mail.netbsd.org [127.0.0.1]) (amavisd-new, port 10025) with ESMTP id IAZRvrkJucMF for ; Mon, 4 Sep 2023 10:32:48 +0000 (UTC) Received: from cvs.NetBSD.org (ivanova.NetBSD.org [IPv6:2001:470:a085:999:28c:faff:fe03:5984]) by mail.netbsd.org (Postfix) with ESMTP id 040BB84D84 for ; Mon, 4 Sep 2023 10:32:48 +0000 (UTC) Received: by cvs.NetBSD.org (Postfix, from userid 500) id EC10EFBDB; Mon, 4 Sep 2023 10:32:47 +0000 (UTC) Content-Transfer-Encoding: 7bit Content-Type: multipart/mixed; boundary="_----------=_1693823567259590" MIME-Version: 1.0 Date: Mon, 4 Sep 2023 10:32:47 +0000 From: "Paolo Vincenzo Olivo" Subject: CVS commit: pkgsrc/mail/opensmtpd-filter-dnsbl To: pkgsrc-changes@NetBSD.org Approved: commit_and_comment Reply-To: vins@netbsd.org X-Mailer: log_accum Message-Id: <20230904103247.EC10EFBDB@cvs.NetBSD.org> This is a multi-part message in MIME format. --_----------=_1693823567259590 Content-Disposition: inline Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="US-ASCII" Module Name: pkgsrc Committed By: vins Date: Mon Sep 4 10:32:47 UTC 2023 Added Files: pkgsrc/mail/opensmtpd-filter-dnsbl: DESCR Makefile PLIST distinfo pkgsrc/mail/opensmtpd-filter-dnsbl/files: README.dnsbl pkgsrc/mail/opensmtpd-filter-dnsbl/patches: patch-Makefile patch-main.c Log Message: mail/opensmtpd-filter-dnsbl: import opensmtpd-filter-dnsbl-0.3. filter-dnsbl is an opensmtpd filter that checks the sender's IP address against one or more dnsbl lists to flag or reject spam messages at session time. To generate a diff of this commit: cvs rdiff -u -r0 -r1.1 pkgsrc/mail/opensmtpd-filter-dnsbl/DESCR \ pkgsrc/mail/opensmtpd-filter-dnsbl/Makefile \ pkgsrc/mail/opensmtpd-filter-dnsbl/PLIST \ pkgsrc/mail/opensmtpd-filter-dnsbl/distinfo cvs rdiff -u -r0 -r1.1 pkgsrc/mail/opensmtpd-filter-dnsbl/files/README.dnsbl cvs rdiff -u -r0 -r1.1 \ pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-Makefile \ pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-main.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. --_----------=_1693823567259590 Content-Disposition: inline Content-Length: 7818 Content-Transfer-Encoding: binary Content-Type: text/x-diff; charset=us-ascii Added files: Index: pkgsrc/mail/opensmtpd-filter-dnsbl/DESCR diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/DESCR:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/DESCR Mon Sep 4 10:32:47 2023 @@ -0,0 +1,3 @@ +filter-dnsbl is an opensmtpd filter that checks the sender's IP address +against one or more dnsbl lists to flag or reject spam messages at +session time. Index: pkgsrc/mail/opensmtpd-filter-dnsbl/Makefile diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/Makefile:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/Makefile Mon Sep 4 10:32:47 2023 @@ -0,0 +1,42 @@ +# $NetBSD: Makefile,v 1.1 2023/09/04 10:32:47 vins Exp $ + +DISTNAME= filter-dnsbl-0.3 +PKGNAME= ${DISTNAME:S|^|opensmtpd-|} +CATEGORIES= mail +MASTER_SITES= https://imperialat.at/releases/ + +MAINTAINER= vins@NetBSD.org +HOMEPAGE= http://imperialat.at/dev/filter-dnsbl/ +COMMENT= OpenSMTPD filter integration for DNSBL lists +LICENSE= isc + +DEPENDS+= opensmtpd-[0-9]*:../../mail/opensmtpd + +USE_BSD_MAKEFILE= yes + +SUBST_CLASSES+= prefix +SUBST_STAGE.prefix= pre-configure +SUBST_FILES.prefix= README.dnsbl +SUBST_VARS.prefix= PKG_SYSCONFDIR PREFIX +SUBST_MESSAGE.prefix= Replacing pkgsrc placeholders + +MAKE_ENV+= LOCALBASE=${PREFIX:Q} +MAKE_ENV+= BINDIR=${PREFIX}/libexec/opensmtpd +MAKE_ENV+= MANDIR=${PREFIX}/${PKGMANDIR} + +INSTALL_ENV= INSTALL=${INSTALL:Q} +INSTALL_TARGET= bindir install +INSTALLATION_DIRS+= libexec/opensmtpd ${PKGMANDIR}/man8 +INSTALLATION_DIRS+= share/doc/opensmtpd/filters + +post-extract: + ${RUN}${CP} ${FILESDIR}/README.* ${WRKSRC} + +post-install: + ${INSTALL_DATA} ${WRKSRC}/README.dnsbl \ + ${DESTDIR}${PREFIX}/share/doc/opensmtpd/filters + +.include "../../devel/libopensmtpd/buildlink3.mk" +.include "../../devel/libevent/buildlink3.mk" +.include "../../net/libasr/buildlink3.mk" +.include "../../mk/bsd.pkg.mk" Index: pkgsrc/mail/opensmtpd-filter-dnsbl/PLIST diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/PLIST:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/PLIST Mon Sep 4 10:32:47 2023 @@ -0,0 +1,5 @@ +@comment $NetBSD: PLIST,v 1.1 2023/09/04 10:32:47 vins Exp $ +bin/filter-dnsbl +man/man8/filter-dnsbl.8 +share/doc/opensmtpd/filters/README.dnsbl +@pkgdir libexec/opensmtpd Index: pkgsrc/mail/opensmtpd-filter-dnsbl/distinfo diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/distinfo:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/distinfo Mon Sep 4 10:32:47 2023 @@ -0,0 +1,7 @@ +$NetBSD: distinfo,v 1.1 2023/09/04 10:32:47 vins Exp $ + +BLAKE2s (filter-dnsbl-0.3.tar.gz) = e8bc9b2b504ee74122fd3854548792b9050440b9a3a5d02722af6de670447268 +SHA512 (filter-dnsbl-0.3.tar.gz) = c7b805b05ea7629c87c90146be3a9f375b68542a7b6b781e37ffb842e33b67aca53633a7f4cd6f8befda71cc6e30e9330624f95ee3ce0c84b128c4b1483fee59 +Size (filter-dnsbl-0.3.tar.gz) = 3413 bytes +SHA1 (patch-Makefile) = 1a262a5860642f965cf6d62c4efddb7515fd121e +SHA1 (patch-main.c) = b5c7edc0022bfa69268e896df6cf57c48e6484d7 Index: pkgsrc/mail/opensmtpd-filter-dnsbl/files/README.dnsbl diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/files/README.dnsbl:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/files/README.dnsbl Mon Sep 4 10:32:47 2023 @@ -0,0 +1,26 @@ ++----------------------------------------------------------------------- +| DNSBL-list filter setup ++----------------------------------------------------------------------- + +filter-dnsbl looks up the IP address of the sender at the blacklist +(a domain name) and by default drops the connection if it is found. + +To use the DNSBL-list filter, you must declare it first in your OpenSMTPD +configuration. + +Edit the @PKG_SYSCONFDIR@/smtpd/smtpd.conf file to declare the filter: + + filter "dnsbl" \ + proc-exec "@PREFIX@/libexec/opensmtpd/filter-dnsbl [options] " + +The following options may be passed to filter-dnsbl: + +-m allows the message to continue, but it will be + marked with an X-Spam and X-Spam-DNSBL header. + +-v more verbose logging. + +Then add the filter to each listener that should be filtered: + + listen on socket filter "dnsbl" + listen on $ipv4 [...] filter "dnsbl" Index: pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-Makefile diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-Makefile:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-Makefile Mon Sep 4 10:32:47 2023 @@ -0,0 +1,27 @@ +$NetBSD: patch-Makefile,v 1.1 2023/09/04 10:32:47 vins Exp $ + +* DESTDIR support. +* Link against libasr. + +--- Makefile.orig 2019-10-22 10:52:02.000000000 +0000 ++++ Makefile +@@ -2,8 +2,8 @@ LOCALBASE?= /usr/local/ + + PROG= filter-dnsbl + MAN= filter-dnsbl.8 +-BINDIR= ${LOCALBASE}/libexec/smtpd/ +-MANDIR= ${LOCALBASE}/man/man ++BINDIR?= ${LOCALBASE}/libexec/smtpd/ ++MANDIR?= ${LOCALBASE}/man/man + + SRCS+= main.c + +@@ -14,7 +14,7 @@ CFLAGS+=-Wmissing-declarations + CFLAGS+=-Wshadow -Wpointer-arith -Wcast-qual + CFLAGS+=-Wsign-compare + LDFLAGS+=-L${LOCALBASE}/lib +-LDADD+= -levent -lopensmtpd ++LDADD+= -lasr -levent -lopensmtpd + DPADD= ${LIBEVENT} + + bindir: Index: pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-main.c diff -u /dev/null pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-main.c:1.1 --- /dev/null Mon Sep 4 10:32:47 2023 +++ pkgsrc/mail/opensmtpd-filter-dnsbl/patches/patch-main.c Mon Sep 4 10:32:47 2023 @@ -0,0 +1,92 @@ +$NetBSD: patch-main.c,v 1.1 2023/09/04 10:32:47 vins Exp $ + +* Provide an inline definition of pledge(). +* Provide compatibility functions for OpenBSD's libevent + (pulled from OpenSMTD/openbsd-compat). + +--- main.c.orig 2021-10-27 09:33:56.000000000 +0000 ++++ main.c +@@ -1,5 +1,6 @@ + /* + * Copyright (c) 2019 Martijn van Duren ++ * Copyright (c) 2012 Eric Faurot + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above +@@ -31,6 +32,76 @@ + + #include "opensmtpd.h" + ++static inline int ++pledge(const char *promises, const char *execpromises) ++{ ++ return 0; ++} ++ ++struct event_asr { ++ struct event ev; ++ struct asr_query *async; ++ void (*cb)(struct asr_result *, void *); ++ void *arg; ++}; ++ ++struct event_asr * event_asr_run(struct asr_query *, ++ void (*)(struct asr_result *, void *), void *); ++void event_asr_abort(struct event_asr *); ++ ++static void ++event_asr_dispatch(int fd __attribute__((__unused__)), ++ short ev __attribute__((__unused__)), void *arg) ++{ ++ struct event_asr *eva = arg; ++ struct asr_result ar; ++ struct timeval tv; ++ ++ event_del(&eva->ev); ++ ++ if (asr_run(eva->async, &ar)) { ++ eva->cb(&ar, eva->arg); ++ free(eva); ++ } else { ++ event_set(&eva->ev, ar.ar_fd, ++ ar.ar_cond == ASR_WANT_READ ? EV_READ : EV_WRITE, ++ event_asr_dispatch, eva); ++ tv.tv_sec = ar.ar_timeout / 1000; ++ tv.tv_usec = (ar.ar_timeout % 1000) * 1000; ++ event_add(&eva->ev, &tv); ++ } ++} ++ ++struct event_asr * ++event_asr_run(struct asr_query *async, void (*cb)(struct asr_result *, void *), ++ void *arg) ++{ ++ struct event_asr *eva; ++ struct timeval tv; ++ ++ eva = calloc(1, sizeof *eva); ++ if (eva == NULL) ++ return (NULL); ++ eva->async = async; ++ eva->cb = cb; ++ eva->arg = arg; ++ tv.tv_sec = 0; ++ tv.tv_usec = 0; ++ evtimer_set(&eva->ev, event_asr_dispatch, eva); ++ evtimer_add(&eva->ev, &tv); ++ return (eva); ++} ++ ++void ++event_asr_abort(struct event_asr *eva) ++{ ++ asr_abort(eva->async); ++ event_del(&eva->ev); ++ free(eva); ++} ++ ++struct asr_query *gethostbyname_async(const char *, void *); ++ + struct dnsbl_session; + + struct dnsbl_query { --_----------=_1693823567259590--