> What makes it robust? What happens if the external command fails?

The command is retried (with a delay) until it succeeds. For example the
second scenario on <http://tratt.net/laurie/src/extsmail/scenarios.html>
shows how this can be utilised to achieve fallover between servers.

> How is failure detected?

The exit code of the command run. e.g. if using ssh, exit code != 0 indicates
failure (and a presumption that mail delivery was unsuccessful). extsmail
goes out of its way to detect a number of other unlikely failures (resources
temporarily unavailable etc.). It should never lose mail. The only condition
it can't recover from is a lack of memory (and given that even on a 64 bit
machine it takes well under a Mb of memory, this is not hugely likely to
happen) whereupon it will simply exit (unsent mail will remain unsent until
extsmail is restarted).

I welcome code audits, particularly of the "core" of extsmail which is the
mail sending daemon:

  https://github.com/ltratt/extsmail/blob/master/extsmaild.c


Laurie
--
Personal                                             http://tratt.net/laurie/
The Converge programming language                      http://convergepl.org/
   https://github.com/ltratt              http://twitter.com/laurencetratt



-- 
To UNSUBSCRIBE, email to debian-wnpp-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/20111220185642.ga7...@overdrive.tratt.net

Reply via email to