CROND, SENDMAIL: make them work together
Denys Vlasenko
vda.linux at googlemail.com
Mon Apr 7 14:02:40 PDT 2008
On Sunday 06 April 2008 14:16, dronnikov at gmail.com wrote:
> Hello!
>
> Since BB has its own sendmail it is reasonable enough to make BB crond
> be able to use it. This requires changes in both applets.
>
> Since big crond implementations do not agree with each other how to perform mailing of
> results I would like BB crond to behave in clear and intuitive way.
> For that I added a per-line variable cl_MailTo which defaults to NULL but can be set
> via MAILTO=mail.results at whom.to line in crontab file. MAILTO=... can occur multiple times
> and, once occured, sets cl_MailTo field for all following lines till next time occured.
> If MAILTO= sets null address it means for the following lines no mailing is performed.
> That way crontab becomes significantly more flexible.
>
> Sendmail, on the other hand, must be able to read recipients, subject and message body
> right from stdin (as full-blown sendmail does).
>
> Attached is the patch to both crond and sendmail.
> Please, do consider.
+# if ENABLE_SENDMAIL
+# define SENDMAIL_ARGS "localhost", line->cl_MailTo
+# else
+# define SENDMAIL_ARGS "-ti", "oem"
+# endif
This kind of "assume that $prog is busybox applet" logic
is fragile. Even though busybox binary may include support
for $prog, user can install and use "standard" one.
If you can, avoid this (usually by making applet's options
compatible with "standard" $prog).
+ if (mailTo)
+ free(mailTo);
free(NULL) works.
+ if (mailTo)
+ line->cl_MailTo = xstrdup(mailTo);
Superfluous if(), and doesn't build if mailing support is off:
miscutils/crond.c: In function 'SynchronizeFile':
miscutils/crond.c:518: error: 'CronLine' has no member named 'cl_MailTo'
make[1]: *** [miscutils/crond.o] Error 1
+ free(s);
+ if (!*s)
And you, Brutus...
Applied with small changes, thanks.
--
vda
More information about the busybox
mailing list