diff -up at-3.1.13/atd.c.hostname at-3.1.13/atd.c --- at-3.1.13/atd.c.hostname 2012-01-12 18:19:36.000000000 +0100 +++ at-3.1.13/atd.c 2012-01-12 18:52:34.000000000 +0100 @@ -99,6 +99,10 @@ int selinux_enabled=0; #define BATCH_INTERVAL_DEFAULT 60 #define CHECK_INTERVAL 3600 +#ifndef MAXHOSTNAMELEN +#define MAXHOSTNAMELEN 64 +#endif + /* Global variables */ uid_t real_uid, effective_uid; @@ -116,6 +120,7 @@ static time_t last_chg; static int nothing_to_do; unsigned int batch_interval; static int run_as_daemon = 0; +static int mail_with_hostname = 0; static volatile sig_atomic_t term_signal = 0; @@ -297,6 +302,7 @@ run_file(const char *filename, uid_t uid char fmt[64]; unsigned long jobno; int rc; + char hostbuf[MAXHOSTNAMELEN]; #ifdef WITH_PAM int retcode; #endif @@ -451,6 +457,11 @@ run_file(const char *filename, uid_t uid write_string(fd_out, "Subject: Output from your job "); write_string(fd_out, jobbuf); + if (mail_with_hostname > 0) { + gethostname(hostbuf, MAXHOSTNAMELEN-1); + write_string(fd_out, " "); + write_string(fd_out, hostbuf); + } write_string(fd_out, "\nTo: "); write_string(fd_out, mailname); write_string(fd_out, "\n\n"); @@ -910,7 +921,7 @@ main(int argc, char *argv[]) run_as_daemon = 1; batch_interval = BATCH_INTERVAL_DEFAULT; - while ((c = getopt(argc, argv, "sdl:b:f")) != EOF) { + while ((c = getopt(argc, argv, "sdnl:b:f")) != EOF) { switch (c) { case 'l': if (sscanf(optarg, "%lf", &load_avg) != 1) @@ -932,6 +943,10 @@ main(int argc, char *argv[]) daemon_foreground++; break; + case 'n': + mail_with_hostname=1; + break; + case 's': run_as_daemon = 0; break;