[PATCH] post-receive-email: do not call sendmail if no mail was generated
- From
Lars Noschinski <lars@public.noschinski.de>
- Date
- Sep 8, 2009, 19:00 UTC
- Message-ID
- <1252436418-7660-1-git-send-email-lars@public.noschinski.de>
- In-Reply-To
- <20090908185555.GA3858@lars.home.noschinski.de>
contrib/hooks/post-receive-email used to call the send_mail function (and thus, /usr/sbin/sendmail), even if generate_mail generated no output. This is problematic, as the sendmail binary provided by exim4 generates an error mail if provided with an empty input.
Therefore, we now read one line ourselves and use the result to decide if we really want to call /usr/sbin/sendmail. --- contrib/hooks/post-receive-email | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-)
Two things changed:
- we do not read the whole mail in a shell variable - the decision whether to call sendmail is based on the output generated by generate_mail, not its return code
diff --git a/contrib/hooks/post-receive-email b/contrib/hooks/post-receive-email index 2a66063..c855c31 100755 --- a/contrib/hooks/post-receive-email +++ b/contrib/hooks/post-receive-email @@ -637,6 +637,16 @@ show_new_revisions() send_mail() { + OIFS=$IFS + IFS=' +' + read FIRSTLINE || exit 1 + (printf $FIRSTLINE'\n'; cat) | call_sendmail + IFS=$OLD_IFS +} + +call_sendmail() +{ if [ -n "$envelopesender" ]; then /usr/sbin/sendmail -t -f "$envelopesender" else @@ -644,6 +654,7 @@ send_mail() fi } + # ---------------------------- main() # --- Constants
-- 1.6.3.3