summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2015-01-13 10:59:07 +0000
committerJeremy Harris <jgh146exb@wizmail.org>2015-01-13 11:01:27 +0000
commit0ad2e0fcde2f23e3809687095bddb31f9af4896e (patch)
tree096e6a02ef09f005789bd5011502a02ec12c0691 /src
parent31f5ec432e49826b039e3b527e9c65d4dfa18b60 (diff)
Add cmdline option to append a log message. Bug 418
Diffstat (limited to 'src')
-rw-r--r--src/src/exim.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/src/src/exim.c b/src/src/exim.c
index 00c5974d2..e0c591d63 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -1501,6 +1501,7 @@ uschar *ftest_domain = NULL;
uschar *ftest_localpart = NULL;
uschar *ftest_prefix = NULL;
uschar *ftest_suffix = NULL;
+uschar *log_oneline = NULL;
uschar *malware_test_file = NULL;
uschar *real_sender_address;
uschar *originator_home = US"/";
@@ -3384,13 +3385,20 @@ for (i = 1; i < argc; i++)
case 'X':
if (*argrest == '\0')
- {
if (++i >= argc)
{
fprintf(stderr, "exim: string expected after -X\n");
exit(EXIT_FAILURE);
}
- }
+ break;
+
+ case 'z':
+ if (*argrest == '\0')
+ if (++i < argc) log_oneline = argv[i]; else
+ {
+ fprintf(stderr, "exim: file name expected after %s\n", argv[i-1]);
+ exit(EXIT_FAILURE);
+ }
break;
/* All other initial characters are errors */
@@ -3833,6 +3841,17 @@ if (Ustrlen(syslog_processname) > 32)
log_write(0, LOG_MAIN|LOG_PANIC_DIE,
"syslog_processname is longer than 32 chars: aborting");
+if (log_oneline)
+ {
+ if (admin_user)
+ {
+ log_write(0, LOG_MAIN, "%s", log_oneline);
+ return EXIT_SUCCESS;
+ }
+ else
+ return EXIT_FAILURE;
+ }
+
/* In some operating systems, the environment variable TMPDIR controls where
temporary files are created; Exim doesn't use these (apart from when delivering
to MBX mailboxes), but called libraries such as DBM libraries may require them.