Date: Sun, 29 Dec 2002 23:25:14 -0500 From: John De Boskey <jwd@bsdwins.com> To: Current List <freebsd-current@freebsd.org> Subject: cron/crontab openlog() cleanup Message-ID: <20021230042514.GA10022@BSDWins.Com>
next in thread | raw e-mail | index | archive | help
Hi, While debugging a problem recently I had all.log enabled in syslog.conf. One of the things I noted was the messages coming from cron where the ident string was the fully qualified pathname: Dec 29 21:00:00 xxx4 /usr/sbin/cron[7409]: (root) CMD (newsyslog) Dec 29 21:00:00 xxx4 /usr/sbin/cron[7410]: (root) CMD (/usr/libexec/atrun) Any comments on one of the two patch sets below? Either crontab.c and cron.c need a patch, or the common routine they call. cvs server: Diffing . cvs server: Diffing cron Index: cron/cron.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/cron/cron/cron.c,v retrieving revision 1.14 diff -u -r1.14 cron.c --- cron/cron.c 9 Mar 2001 03:14:09 -0000 1.14 +++ cron/cron.c 30 Dec 2002 03:24:23 -0000 @@ -70,7 +70,10 @@ { cron_db database; - ProgramName = argv[0]; + if (ProgramName = strrchr(argv[0],'/') + ++ProgramName; + else + ProgramName = argv[0]; #if defined(BSD) setlinebuf(stdout); cvs server: Diffing crontab Index: crontab/crontab.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/cron/crontab/crontab.c,v retrieving revision 1.19 diff -u -r1.19 crontab.c --- crontab/crontab.c 1 Oct 2002 22:59:11 -0000 1.19 +++ crontab/crontab.c 30 Dec 2002 03:24:23 -0000 @@ -91,7 +91,10 @@ int exitstatus; Pid = getpid(); - ProgramName = argv[0]; + if (ProgramName = strrchr(argv[0],'/') + ++ProgramName; + else + ProgramName = argv[0]; #if defined(POSIX) setlocale(LC_ALL, ""); Or, the single patch to the common openlog interface: Index: lib/misc.c =================================================================== RCS file: /home/ncvs/src/usr.sbin/cron/lib/misc.c,v retrieving revision 1.11 diff -u -r1.11 misc.c --- lib/misc.c 4 Aug 2002 04:32:27 -0000 1.11 +++ lib/misc.c 30 Dec 2002 03:24:23 -0000 @@ -508,14 +508,12 @@ #if defined(SYSLOG) if (!syslog_open) { - /* we don't use LOG_PID since the pid passed to us by - * our client may not be our own. therefore we want to - * print the pid ourselves. - */ + char *Name = strrchr(ProgramName,'/'); + Name = Name ? Name+1 : ProgramName; # ifdef LOG_DAEMON - openlog(ProgramName, LOG_PID, LOG_CRON); + openlog(Name, LOG_PID, LOG_CRON); # else - openlog(ProgramName, LOG_PID); + openlog(Name, LOG_PID); # endif syslog_open = TRUE; /* assume openlog success */ } I removed the comment since it's out-of-date. Maybe I should leave it (to reduce diffs for historical purposes). I tend to prefer this single patch. It's amazing how much this code hasn't changed... I haven't looked at it since '88/'89 when I ported it to a ps/2 Mod80 running ISC Unix... memories... :-) Thanks, John To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20021230042514.GA10022>