]> andersk Git - moira.git/blobdiff - dcm/dcm.c
Fixed polarity of USELOCALTOOLS
[moira.git] / dcm / dcm.c
index 29de2d7e5e75e609a7bf9c540c321cc06c035336..89668a092dc524c7ed942a54a0b87a97f370db73 100644 (file)
--- a/dcm/dcm.c
+++ b/dcm/dcm.c
@@ -46,10 +46,12 @@ char *argv[];
        int i;
        char **arg = argv;
        char *qargv[3];
+       char *s;
        int status;
 
        whoami = argv[0];
-       dbg = atoi(getenv("DEBUG"));
+       s = getenv("DEBUG");
+       dbg = s ? atoi(s) : 0;
        umask(UMASK);
        log_flags = 0;
        setlinebuf(stderr);
@@ -219,7 +221,7 @@ do_services()
                waits.w_status = system(dfgen_cmd);
                signal(SIGCHLD, cstat);
                if (waits.w_termsig) {
-                   status = MR_TAR_FAIL;
+                   status = MR_COREDUMP;
                    com_err(whoami, status, " %s exited on signal %d",
                            dfgen_prog, waits.w_termsig);
                } else if (waits.w_retcode) {
@@ -384,15 +386,17 @@ struct service *svc;
        status = mr_update_server(svc->service, machine, svc->target,
                                   svc->script);
        if (status == MR_SUCCESS) {
-           argv[2] = "0";
+           argv[2] = argv[4] = "0";
            argv[3] = "1";
            free(argv[8]);
            argv[8] = itoa(tv.tv_sec);
        } else if (SOFT_FAIL(status)) {
+           argv[4] = "0";
            free(argv[6]);
            argv[6] = strsave(error_message(status));
        } else { /* HARD_FAIL */
            argv[2] = itoa(shost.override);
+           argv[4] = "0";
            argv[5] = itoa(status);
            free(argv[6]);
            argv[6] = strsave(error_message(status));
@@ -420,24 +424,22 @@ struct service *svc;
                free(qargv[4]);
                free(qargv[5]);
                close(lock_fd);
-               free(argv[2]);
-               argv[4] = "0";
-               free(argv[5]);
                status = mr_query_with_retry("set_server_host_internal",
                                              9, argv,scream,NULL);
+               free(argv[2]);
+               free(argv[5]);
                if (status)
                  com_err(whoami, status, " setting host state again");
                return(-1);
            }
-           free(argv[2]);
-           free(argv[5]);
        }
-       argv[4] = "0";
        close(lock_fd);
        status = mr_query_with_retry("set_server_host_internal", 9, argv,
                                      scream, NULL);
        if (status)
          com_err(whoami, status, " setting host state again");
+/*     free(argv[2]);
+       free(argv[5]); */
     free_mach:
        free(machine);
        close(lock_fd);
This page took 0.035138 seconds and 4 git commands to generate.