From dbe1e1137f263957516815f3ce2e027c7fc9838e Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Tue, 25 Aug 2015 22:02:31 +0100 Subject: [PATCH] dma: Add script that cleans up stale emails in the spool directory Signed-off-by: Michael Tremer --- config/dma/dma-cleanup-spool | 48 ++++++++++++++++++++++++++++++++++++ config/rootfiles/common/dma | 1 + lfs/dma | 1 + 3 files changed, 50 insertions(+) create mode 100644 config/dma/dma-cleanup-spool diff --git a/config/dma/dma-cleanup-spool b/config/dma/dma-cleanup-spool new file mode 100644 index 0000000000..92af30cc82 --- /dev/null +++ b/config/dma/dma-cleanup-spool @@ -0,0 +1,48 @@ +#!/bin/bash +############################################################################### +# # +# IPFire.org - A linux based firewall # +# Copyright (C) 2015 Michael Tremer # +# # +# This program is free software: you can redistribute it and/or modify # +# it under the terms of the GNU General Public License as published by # +# the Free Software Foundation, either version 3 of the License, or # +# (at your option) any later version. # +# # +# This program is distributed in the hope that it will be useful, # +# but WITHOUT ANY WARRANTY; without even the implied warranty of # +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # +# GNU General Public License for more details. # +# # +# You should have received a copy of the GNU General Public License # +# along with this program. If not, see . # +# # +############################################################################### + +SPOOL_DIR="/var/spool/dma" + +find_messages() { + find "${SPOOL_DIR}" -type f -name "M*" -mtime +30 +} + +remove_message() { + local f_message="${1}" + local f_queue="${f_message/${SPOOL_DIR}\/M/${SPOOL_DIR}\/Q}" + + # If a message file and a queue file exist, delete both + [ -f "${f_message}" ] || return 1 + [ -f "${f_queue}" ] || return 1 + + rm -f "${f_message}" "${f_queue}" + return 0 +} + +main() { + for message in $(find_messages); do + remove_message "${message}" + done + + return 0 +} + +main || exit $? diff --git a/config/rootfiles/common/dma b/config/rootfiles/common/dma index 24c365d913..ac575279fa 100644 --- a/config/rootfiles/common/dma +++ b/config/rootfiles/common/dma @@ -1,6 +1,7 @@ etc/alternatives/sendmail usr/lib/dma-mbox-create usr/sbin/dma +usr/sbin/dma-cleanup-spool usr/sbin/mailq usr/sbin/sendmail usr/sbin/sendmail.dma diff --git a/lfs/dma b/lfs/dma index 4e6150e8a0..9fe49ab094 100644 --- a/lfs/dma +++ b/lfs/dma @@ -78,6 +78,7 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) cd $(DIR_APP) && sed -i '/CONFDIR/s/etc\/dma/var\/ipfire\/dma/g' Makefile cd $(DIR_APP) && make cd $(DIR_APP) && make install mailq-link install-spool-dirs install-etc + install -v -m 755 $(DIR_SRC)/config/dma/dma-cleanup-spool /usr/sbin chown -R nobody.nobody /var/ipfire/dma chown nobody.root /var/ipfire/dma/auth.conf ln -svf dma /usr/sbin/sendmail.dma -- 2.39.2