Marcela Mašláňová ec8300
diff -up at-3.1.12/at.1.in.nit at-3.1.12/at.1.in
Marcela Mašláňová ec8300
--- at-3.1.12/at.1.in.nit	2009-11-23 16:11:52.000000000 +0100
Marcela Mašláňová c5c176
+++ at-3.1.12/at.1.in	2010-01-18 14:43:58.287163082 +0100
Marcela Mašláňová ec8300
@@ -121,7 +121,7 @@ and to run a job at 1am tomorrow, you wo
Marcela Mašláňová ec8300
 .B at 1am tomorrow.
Marcela Mašláňová ec8300
 .PP
Marcela Mašláňová ec8300
 The exact definition of the time specification can be found in
Marcela Mašláňová ec8300
-.IR @prefix@/share/doc/at/timespec .
Marcela Mašláňová ec8300
+.IR @prefix@/share/doc/at-@VERSION@/timespec .
Marcela Mašláňová ec8300
 .PP
Marcela Mašláňová ec8300
 For both
Marcela Mašláňová ec8300
 .BR at " and " batch ,
Marcela Mašláňová c5c176
@@ -216,7 +216,7 @@ queue for
Marcela Mašláňová c5c176
 .BR batch .
Marcela Mašláňová c5c176
 Queues with higher letters run with increased niceness.  The special
Marcela Mašláňová c5c176
 queue "=" is reserved for jobs which are currently running.
Marcela Mašláňová c5c176
-.P
Marcela Mašláňová c5c176
+
Marcela Mašláňová c5c176
 If a job is submitted to a queue designated with an uppercase letter, the
Marcela Mašláňová c5c176
 job is treated as if it were submitted to batch at the time of the job.
Marcela Mašláňová c5c176
 Once the time is reached, the batch processing rules with respect to load
Marcela Mašláňová c5c176
@@ -253,7 +253,7 @@ is an alias for
Marcela Mašláňová c5c176
 .TP
Marcela Mašláňová c5c176
 .B \-v
Marcela Mašláňová c5c176
 Shows the time the job will be executed before reading the job.
Marcela Mašláňová c5c176
-.P
Marcela Mašláňová c5c176
+
Marcela Mašláňová c5c176
 Times displayed will be in the format "Thu Feb 20 14:50:00 1997".
Marcela Mašláňová c5c176
 .TP
Marcela Mašláňová c5c176
 .B
Marcela Mašláňová ec8300
diff -up at-3.1.12/atd.c.nit at-3.1.12/atd.c
Marcela Mašláňová ec8300
--- at-3.1.12/atd.c.nit	2009-11-23 16:11:52.000000000 +0100
Marcela Mašláňová c5c176
+++ at-3.1.12/atd.c	2010-01-18 14:42:58.024161433 +0100
Marcela Mašláňová ec8300
@@ -83,6 +83,9 @@
Marcela Mašláňová f2de85
 #include "getloadavg.h"
Marcela Mašláňová f2de85
 #endif
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
+#ifndef LOG_ATD
Marcela Mašláňová f2de85
+#define LOG_ATD        LOG_DAEMON
Marcela Mašláňová f2de85
+#endif
Marcela Mašláňová f2de85
 /* Macros */
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
 #define BATCH_INTERVAL_DEFAULT 60
Marcela Mašláňová ec8300
@@ -194,6 +197,18 @@ myfork()
Marcela Mašláňová ec8300
 
Marcela Mašláňová f2de85
 #define fork myfork
Marcela Mašláňová f2de85
 #endif
Marcela Mašláňová f2de85
+#undef ATD_MAIL_PROGRAM
Marcela Mašláňová f2de85
+#undef ATD_MAIL_NAME
Marcela Mašláňová f2de85
+#if defined(SENDMAIL)
Marcela Mašláňová f2de85
+#define ATD_MAIL_PROGRAM SENDMAIL
Marcela Mašláňová f2de85
+#define ATD_MAIL_NAME    "sendmail"
Marcela Mašláňová f2de85
+#elif  defined(MAILC)
Marcela Mašláňová f2de85
+#define ATD_MAIL_PROGRAM MAILC
Marcela Mašláňová f2de85
+#define ATD_MAIL_NAME    "mail"
Marcela Mašláňová f2de85
+#elif  defined(MAILX)
Marcela Mašláňová f2de85
+#define ATD_MAIL_PROGRAM MAILX
Marcela Mašláňová f2de85
+#define ATD_MAIL_NAME    "mailx"
Marcela Mašláňová f2de85
+#endif
Marcela Mašláňová ec8300
 
Marcela Mašláňová f2de85
 static void
Marcela Mašláňová f2de85
 run_file(const char *filename, uid_t uid, gid_t gid)
Marcela Mašláňová ec8300
@@ -276,6 +291,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová ec8300
 	free(newname);
Marcela Mašláňová ec8300
 	return;
Marcela Mašláňová ec8300
     }
Marcela Mašláňová ec8300
+
Marcela Mašláňová ec8300
+    (void) setsid(); //own session for process
Marcela Mašláňová ec8300
+
Marcela Mašláňová ec8300
     /* Let's see who we mail to.  Hopefully, we can read it from
Marcela Mašláňová ec8300
      * the command file; if not, send it to the owner, or, failing that,
Marcela Mašláňová ec8300
      * to root.
Marcela Mašláňová ec8300
@@ -435,6 +453,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová ec8300
 	    if (setuid(uid) < 0)
Marcela Mašláňová ec8300
 		perr("Cannot set user id");
Marcela Mašláňová ec8300
 
Marcela Mašláňová ec8300
+            if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová ec8300
+                perr("Cannot reset signal handler to default");
Marcela Mašláňová ec8300
+
Marcela Mašláňová ec8300
 	    chdir("/");
Marcela Mašláňová ec8300
 
Marcela Mašláňová ec8300
 	    if (execle("/bin/sh", "sh", (char *) NULL, nenvp) != 0)
Marcela Mašláňová ec8300
@@ -503,6 +524,9 @@ run_file(const char *filename, uid_t uid
Marcela Mašláňová ec8300
 	    if (setuid(uid) < 0)
Marcela Mašláňová ec8300
 		perr("Cannot set user id");
Marcela Mašláňová ec8300
 
Marcela Mašláňová ec8300
+            if (SIG_ERR == signal(SIGCHLD, SIG_DFL))
Marcela Mašláňová ec8300
+                perr("Cannot reset signal handler to default");
Marcela Mašláňová ec8300
+
Marcela Mašláňová ec8300
 	    chdir ("/");
Marcela Mašláňová ec8300
 
Marcela Mašláňová ec8300
 #if defined(SENDMAIL)
Marcela Mašláňová ec8300
@@ -617,6 +641,7 @@ run_loop()
Marcela Mašláňová ec8300
 		 * Let's remove the lockfile and reschedule.
Marcela Mašláňová ec8300
 		 */
Marcela Mašláňová ec8300
 		strncpy(lock_name, dirent->d_name, sizeof(lock_name));
Marcela Mašláňová ec8300
+                lock_name[sizeof(lock_name)-1] = '\0';
Marcela Mašláňová ec8300
 		lock_name[0] = '=';
Marcela Mašláňová ec8300
 		unlink(lock_name);
Marcela Mašláňová ec8300
 		next_job = now;
Marcela Mašláňová ec8300
@@ -651,6 +676,7 @@ run_loop()
Marcela Mašláňová ec8300
 	    run_batch++;
Marcela Mašláňová ec8300
 	    if (strcmp(batch_name, dirent->d_name) > 0) {
Marcela Mašláňová ec8300
 		strncpy(batch_name, dirent->d_name, sizeof(batch_name));
Marcela Mašláňová ec8300
+                batch_name[sizeof(batch_name)-1] = '\0';
Marcela Mašláňová ec8300
 		batch_uid = buf.st_uid;
Marcela Mašláňová ec8300
 		batch_gid = buf.st_gid;
Marcela Mašláňová ec8300
 		batch_queue = queue;
Marcela Mašláňová ec8300
@@ -725,11 +751,7 @@ main(int argc, char *argv[])
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
     RELINQUISH_PRIVS_ROOT(daemon_uid, daemon_gid)
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
-#ifndef LOG_CRON
Marcela Mašláňová f2de85
-#define LOG_CRON	LOG_DAEMON
Marcela Mašláňová f2de85
-#endif
Marcela Mašláňová f2de85
-
Marcela Mašláňová f2de85
-    openlog("atd", LOG_PID, LOG_CRON);
Marcela Mašláňová f2de85
+    openlog("atd", LOG_PID, LOG_ATD);
Marcela Mašláňová f2de85
 
Marcela Mašláňová f2de85
     opterr = 0;
Marcela Mašláňová f2de85
     errno = 0;