mail-filter/policyd: Add ebuild with systemd unit file.

Package-Manager: Portage-2.3.76, Repoman-2.3.16
This commit is contained in:
Manuel Friedli 2019-11-20 23:53:06 +01:00
parent b6178d50fc
commit f0d615b690
10 changed files with 231 additions and 0 deletions

View file

@ -0,0 +1,2 @@
#!/bin/bash
/usr/sbin/policyd_cleanup -c /etc/policyd.conf

View file

@ -0,0 +1,39 @@
diff --git a/Makefile b/Makefile
index ded74ce..6f2afd1 100644
--- a/Makefile
+++ b/Makefile
@@ -16,8 +16,8 @@ lib += -L/usr/local/mysql
CC := gcc
-CPPFLAGS := -O $(inc)
-CFLAGS := -g -W -Wall -DMAXFDS=4096
+CPPFLAGS := $(inc) ${CPPFLAGS}
+CFLAGS := -g -W -Wall -DMAXFDS=`ulimit -n` ${CFLAGS}
OS_NAME := $(shell uname | tr [A-Z] [a-z])
LDLIBS = $(lib) -lmysqlclient -lz
@@ -50,20 +50,20 @@ policyd: syslog.o policyd.o generic.o mysql.o greylist.o throttle.o sockets.o ci
whitelist.o throttle_host.o throttle_sasl.o throttle_from.o throttle_rcpt.o helo.o
@echo ""
@echo "[*] Linking policyd*"
- @$(CC) $(CFLAGS) $(CPPFLAGS) \
+ @$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
syslog.o policyd.o generic.o mysql.o greylist.o throttle.o sockets.o cidr.o spamtrap.o blacklist.o blacklist_helo.o \
whitelist.o throttle_host.o throttle_sasl.o throttle_from.o throttle_rcpt.o helo.o \
$(LDLIBS) -o policyd
cleanup: syslog.o cidr.o cleanup.o generic.o sockets.o mysql.o
@echo "[*] Linking cleanup*"
- @$(CC) $(CFLAGS) $(CPPFLAGS) \
+ @$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
syslog.o cidr.o cleanup.o generic.o sockets.o mysql.o \
$(LDLIBS) -o cleanup
stats: cidr.o syslog.o stats.o generic.o sockets.o mysql.o
@echo "[*] Linking stats*"
- @$(CC) $(CFLAGS) $(CPPFLAGS) \
+ @$(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) \
cidr.o syslog.o stats.o generic.o sockets.o mysql.o \
$(LDLIBS) -o stats
@echo ""

View file

@ -0,0 +1,52 @@
First patch from debian. The other two mostly cosmetic patches from bug #288438.
--- a/syslog.c
+++ b/syslog.c
@@ -214,14 +214,15 @@ char
if (strlen (str) == 0)
return (str);
+ p = str + strlen(str);
+
for (i = 0; isspace (str[i]); i++)
;
- strcpy (str, str + i);
+ str += i;
- p = str + strlen (str);
- while ((p--) != str && isspace (*p))
- *p = 0;
+ while ((p--) != str && isspace (*p))
+ *p = 0;
return (str);
}
diff -ur policyd-1.82-orig/throttle.c policyd-1.82/throttle.c
--- a/throttle.c 2007-08-20 08:42:05.000000000 +0200
+++ b/throttle.c 2009-10-10 03:49:25.000000000 +0200
@@ -145,11 +145,11 @@
if(tcount[fd] >= tquota[fd] && tcount[fd] >= trcpt[fd]) {
tresult = tcount[fd];
- if (DEBUG >= 4) logmessage("tquota[fd] won\n"); }
+ if (DEBUG >= 4) logmessage("tcount[fd] won\n"); }
if(trcpt[fd] >= tcount[fd] && trcpt[fd] >= tquota[fd]) {
tresult = trcpt[fd];
- if (DEBUG >= 4) logmessage("tquota[fd] won\n"); }
+ if (DEBUG >= 4) logmessage("trcpt[fd] won\n"); }
if(DEBUG >= 4)
logmessage("DEBUG: fd: %d: tresult: %d\n", fd, tresult);
diff -ur policyd-1.82-orig/throttle_sasl.c policyd-1.82/throttle_sasl.c
--- a/throttle_sasl.c 2007-08-20 08:42:05.000000000 +0200
+++ b/throttle_sasl.c 2009-10-10 03:50:27.000000000 +0200
@@ -188,7 +188,7 @@
"UPDATE throttle SET"
" _abuse_cur=1"
" WHERE _from='%s'",
- triplet_array[fd][1]);
+ triplet_array[fd][4]);
if(db_doquery(fd) == -1) return(db_failure(fd, "throttle"));
return (-5);

View file

@ -0,0 +1,2 @@
# Config file for policyd
POLICYD_CONFIG="/etc/policyd.conf"

View file

@ -0,0 +1,21 @@
#!/sbin/openrc-run
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
depend() {
before mta
provide postfix_greylist
}
start() {
ebegin "Starting policyd"
start-stop-daemon --name policyd --start --quiet --exec /usr/sbin/policyd \
-- -c ${POLICYD_CONFIG}
eend $?
}
stop() {
ebegin "Stopping policyd"
start-stop-daemon --stop --quiet --pidfile /var/run/policyd.pid
eend $?
}

View file

@ -0,0 +1,10 @@
[Unit]
Description=Policyd
[Service]
User=policyd
EnvironmentFile=/etc/conf.d/policyd
ExecStart=/usr/sbin/policyd -c ${POLICYD_CONFIG}
[Install]
WantedBy=multi-user.target