git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[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
Previous: Lars NoschinskiNext: Junio C Hamano
Message 2 of 6 in “Re: [PATCH] post-receive-email: do not call sendmail if no mail was generated”
  1. Lars NoschinskiSep 8, 2009
  2. post-receive-email: do not call sendmail if no mail was generatedLars Noschinski, Sep 8, 2009
  3. Junio C HamanoSep 8, 2009
  4. Lars NoschinskiSep 8, 2009
  5. Junio C HamanoSep 8, 2009
  6. Andy ParkinsSep 8, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.