Diff for /embedtools/src/wdog.c between versions 1.1.2.4 and 1.1.2.5

version 1.1.2.4, 2010/10/18 10:47:06 version 1.1.2.5, 2010/10/18 11:13:50
Line 50  main(int argc, char **argv) Line 50  main(int argc, char **argv)
         struct sigaction sa;          struct sigaction sa;
         struct passwd *pass = NULL;          struct passwd *pass = NULL;
         uid_t uid = getuid();          uid_t uid = getuid();
           u_int penalty = 1;
   
         while ((ch = getopt(argc, argv, "vhc:u:")) != -1)          while ((ch = getopt(argc, argv, "vhc:u:")) != -1)
                 switch (ch) {                  switch (ch) {
Line 125  main(int argc, char **argv) Line 126  main(int argc, char **argv)
                 VERB(1) printf("Info:: setuid to %u\n", uid);                  VERB(1) printf("Info:: setuid to %u\n", uid);
   
         status ^= status;          status ^= status;
        while (!Kill)        while (!Kill && penalty) {
                 switch ((ret = fork())) {                  switch ((ret = fork())) {
                         case -1:                          case -1:
                                 printf("Error:: error in fork #%d - %s\n", errno, strerror(errno));                                  printf("Error:: error in fork #%d - %s\n", errno, strerror(errno));
Line 139  main(int argc, char **argv) Line 140  main(int argc, char **argv)
                                         ret = 6;                                          ret = 6;
                                         goto end;                                          goto end;
                                 }                                  }
                                /* never reached */                                /* never reached !!! */
                                 break;                                  break;
                         default:                          default:
                                 wait(&status);                                  wait(&status);
                                 kill(ret, SIGTERM);                                  kill(ret, SIGTERM);
                                 ret = status;                                  ret = status;
                 }                  }
                   /* penalty timeout retry */
                   usleep(penalty);
                   penalty <<= 1;
                   VERB(2) printf("Info:: penalty timeout %u microseconds\n", penalty);
           }
           if (!penalty)
                   ret = 9;
 end:  end:
         return ret;          return ret;
 }  }

Removed from v.1.1.2.4  
changed lines
  Added in v.1.1.2.5


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>