% cat >/sys/lib/dist/changes/1177005616.0.txt << EOF • Fix misplaced comment • Create a clog procedure to get rid of a lot of redundant syslog stuff (we know we're always going to be CRONLOG). EOF [geoff] --rw-rw-r-- M 43 glenda sys 12306 Apr 19 13:49 sys/src/cmd/auth/cron.c /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:84,89 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:84,103 return 0; } + #pragma varargck argpos clog 1 + + static void + clog(char *fmt, ...) + { + char msg[256]; + va_list arg; + + va_start(arg, fmt); + vseprint(msg, msg + sizeof msg, fmt, arg); + va_end(arg); + syslog(0, CRONLOG, msg); + } + void main(int argc, char *argv[]) { /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:138,147 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:152,161 * just execute one day's jobs. */ if (now < last) { - syslog(0, CRONLOG, "time went backward"); + clog("time went backward"); last = now; } else if (now - last > Day) { - syslog(0, CRONLOG, "time advanced more than a day"); + clog("time advanced more than a day"); last = now - Day; } now = minute(now); /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:261,268 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:275,281 if(*savec == '#' || *savec == '\0') continue; if(strlen(savec) > 1024){ - syslog(0, CRONLOG, "%s: line %d: line too long", - user->name, line); + clog("%s: line %d: line too long", user->name, line); continue; } j = emalloc(sizeof *j); /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:277,284 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:290,296 j->next = jobs; jobs = j; }else{ - syslog(0, CRONLOG, "%s: line %d: syntax error", - user->name, line); + clog("%s: line %d: syntax error", user->name, line); free(j); } } /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:356,362 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:368,374 *p = '\0'; *namep = strdup(buf); if(*namep == 0){ - syslog(0, CRONLOG, "internal error: strdup failure"); + clog("internal error: strdup failure"); _exits(0); } while(*savec == ' ' || *savec == '\t') /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:492,550 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:504,566 case 0: break; case -1: - syslog(0, CRONLOG, "can't fork a job for %s: %r\n", user->name); + clog("can't fork a job for %s: %r\n", user->name); default: return; } if(!mkcmd(j->cmd, buf, sizeof buf)){ - syslog(0, CRONLOG, "internal error: cmd buffer overflow"); + clog("internal error: cmd buffer overflow"); _exits(0); } /* - * remote call, auth, cmd with no i/o - * give it 2 min to complete + * local call, auth, cmd with no i/o */ if(strcmp(j->host, "local") == 0){ if(becomeuser(user->name) < 0){ - syslog(0, CRONLOG, "%s: can't change uid for %s on %s: %r", user->name, j->cmd, j->host); + clog("%s: can't change uid for %s on %s: %r", + user->name, j->cmd, j->host); _exits(0); } - syslog(0, CRONLOG, "%s: ran '%s' on %s", user->name, j->cmd, j->host); - execl("/bin/rc", "rc", "-c", buf, nil); - syslog(0, CRONLOG, "%s: exec failed for %s on %s: %r", + putenv("service", "rx"); + clog("%s: ran '%s' on %s", user->name, j->cmd, j->host); + execl("/bin/rc", "rc", "-lc", buf, nil); + clog("%s: exec failed for %s on %s: %r", user->name, j->cmd, j->host); _exits(0); } + /* + * remote call, auth, cmd with no i/o + * give it 2 min to complete + */ alarm(2*Minute*1000); fd = call(j->host); if(fd < 0){ if(fd == -2) - syslog(0, CRONLOG, "%s: dangerous host %s", - user->name, j->host); - syslog(0, CRONLOG, "%s: can't call %s: %r", user->name, j->host); + clog("%s: dangerous host %s", user->name, j->host); + clog("%s: can't call %s: %r", user->name, j->host); _exits(0); } - syslog(0, CRONLOG, "%s: called %s on %s", user->name, j->cmd, j->host); + clog("%s: called %s on %s", user->name, j->cmd, j->host); if(becomeuser(user->name) < 0){ - syslog(0, CRONLOG, "%s: can't change uid for %s on %s: %r", + clog("%s: can't change uid for %s on %s: %r", user->name, j->cmd, j->host); _exits(0); } ai = auth_proxy(fd, nil, "proto=p9any role=client"); if(ai == nil){ - syslog(0, CRONLOG, "%s: can't authenticate for %s on %s: %r", + clog("%s: can't authenticate for %s on %s: %r", user->name, j->cmd, j->host); _exits(0); } - syslog(0, CRONLOG, "%s: authenticated %s on %s", user->name, j->cmd, j->host); + clog("%s: authenticated %s on %s", user->name, j->cmd, j->host); write(fd, buf, strlen(buf)+1); write(fd, buf, 0); while((n = read(fd, buf, sizeof(buf)-1)) > 0){ buf[n] = 0; - syslog(0, CRONLOG, "%s: %s\n", j->cmd, buf); + clog("%s: %s\n", j->cmd, buf); } _exits(0); } /n/sourcesdump/2007/0419/plan9/sys/src/cmd/auth/cron.c:660,665 - /n/sourcesdump/2007/0420/plan9/sys/src/cmd/auth/cron.c:676,682 { char *cap; int rv; + cap = mkcap(getuser(), new); if(cap == nil) return -1;