-#! /bin/sh
+#! /bin/bash
# Depends: lockfile-progs, ssh
set -e
exit 1
fi
-DIR="$HOME/.bsmtp"
+DIR="$HOME/tmp/.bsmtp"
mkdir -p "$DIR"
cd "$DIR"
# By default, lockfile-create gives up after three minutes, so don't cron
# this any more frequently than that without supplying a --retry argument.
lockfile-create "$HOST"
+# Race condition pointed out by pjb: this doesn't guarantee that the lock is
+# held before the critical section starts.
lockfile-touch "$HOST" &
TOUCH="$!"
trap 'kill "$TOUCH"; lockfile-remove "$HOST"' EXIT ERR HUP INT QUIT TERM
+disown %1
-ssh -2 -C "$HOST" bsmtp-pull-server > "$HOST"
+ssh -2 -i "$HOME/.ssh/id-bsmtp-$HOST" -C "$HOST" bsmtp-pull-server > "$HOST"
[ -s "$HOST" ] || exit 0
-/usr/sbin/sendmail -bS < "$HOST"
+/usr/sbin/sendmail -bS -odq < "$HOST"
rm -f "$HOST"
exit 0