Diff for /src/usr.sbin/cron/cron/do_command.c between versions 1.4 and 1.5

version 1.4, 2003/11/16 11:51:14 version 1.5, 2004/03/10 18:27:26
Line 70  do_command(entry *e, user *u) Line 70  do_command(entry *e, user *u)
 static void  static void
 child_process(entry *e, user *u)  child_process(entry *e, user *u)
 {  {
        int                stdin_pipe[2], stdout_pipe[2];        int stdin_pipe[2], stdout_pipe[2];
        register char   *input_data;        char *input_data;
        char            *usernm, *mailto;        char *usernm, *mailto;
        int             children = 0;        int children = 0;
 # if defined(LOGIN_CAP)  # if defined(LOGIN_CAP)
        struct passwd   *pwd;        struct passwd *pwd;
         login_cap_t *lc;          login_cap_t *lc;
 # endif  # endif
   
Line 122  child_process(entry *e, user *u) Line 122  child_process(entry *e, user *u)
          * If there are escaped %'s, remove the escape character.           * If there are escaped %'s, remove the escape character.
          */           */
         /*local*/{          /*local*/{
                register int escaped = FALSE;                int escaped = FALSE;
                register int ch;                int ch;
                register char *p;                char *p;
   
                 for (input_data = p = e->cmd; (ch = *input_data);                  for (input_data = p = e->cmd; (ch = *input_data);
                      input_data++, p++) {                       input_data++, p++) {
Line 294  child_process(entry *e, user *u) Line 294  child_process(entry *e, user *u)
          */           */
   
         if (*input_data && fork() == 0) {          if (*input_data && fork() == 0) {
                register FILE   *out = fdopen(stdin_pipe[WRITE_PIPE], "w");                FILE *out;
                register int        need_newline = FALSE;                int need_newline = FALSE;
                register int        escaped = FALSE;                int escaped = FALSE;
                register int    ch;                int ch;
   
                   out = fdopen(stdin_pipe[WRITE_PIPE], "w");
                 if (out == NULL) {                  if (out == NULL) {
                         warn("fdopen failed in child2");                          warn("fdopen failed in child2");
                         _exit(ERROR_EXIT);                          _exit(ERROR_EXIT);
Line 361  child_process(entry *e, user *u) Line 362  child_process(entry *e, user *u)
         Debug(DPROC, ("[%d] child reading output from grandchild\n", getpid()))          Debug(DPROC, ("[%d] child reading output from grandchild\n", getpid()))
   
         /*local*/{          /*local*/{
                register FILE   *in = fdopen(stdout_pipe[READ_PIPE], "r");                FILE *in;
                register int    ch = getc(in);                int ch;
   
                   in = fdopen(stdout_pipe[READ_PIPE], "r");
                 if (in == NULL) {                  if (in == NULL) {
                         warn("fdopen failed in child");                          warn("fdopen failed in child");
                         _exit(ERROR_EXIT);                          _exit(ERROR_EXIT);
                 }                  }
   
                   ch = getc(in);
                 if (ch != EOF) {                  if (ch != EOF) {
                        register FILE   *mail;                        FILE *mail;
                        register int        bytes = 1;                        int bytes = 1;
                        int             status = 0;                        int status = 0;
   
                         Debug(DPROC|DEXT,                          Debug(DPROC|DEXT,
                                 ("[%d] got data (%x:%c) from grandchild\n",                                  ("[%d] got data (%x:%c) from grandchild\n",
Line 401  child_process(entry *e, user *u) Line 404  child_process(entry *e, user *u)
                          */                           */
   
                         if (mailto) {                          if (mailto) {
                                register char   **env;                                char **env;
                                auto char   mailcmd[MAX_COMMAND];                                char mailcmd[MAX_COMMAND];
                                auto char   hostname[MAXHOSTNAMELEN];                                char hostname[MAXHOSTNAMELEN];
   
                                 (void) gethostname(hostname, MAXHOSTNAMELEN);                                  (void) gethostname(hostname, MAXHOSTNAMELEN);
                                 (void) snprintf(mailcmd, sizeof(mailcmd),                                  (void) snprintf(mailcmd, sizeof(mailcmd),

Removed from v.1.4  
changed lines
  Added in v.1.5