diff --git a/src/ckpool.c b/src/ckpool.c index 18b374f7..677ad938 100644 --- a/src/ckpool.c +++ b/src/ckpool.c @@ -320,9 +320,9 @@ static void *watchdog(void *arg) rename_proc("watchdog"); while (42) { - int pid, status; + int pid; - pid = wait(&status); + pid = waitpid(0, NULL, 0); if (pid == ckp->generator.pid) { LOGERR("Generator process dead! Relaunching"); launch_process(&ckp->generator); @@ -332,6 +332,9 @@ static void *watchdog(void *arg) } else if (pid == ckp->connector.pid) { LOGERR("Connector process dead! Relaunching"); launch_process(&ckp->connector); + } else { + LOGEMERG("Unknown child process %d dead, exiting!", pid); + break; } } return NULL; diff --git a/src/generator.c b/src/generator.c index cbc1c49e..990bc165 100644 --- a/src/generator.c +++ b/src/generator.c @@ -104,14 +104,13 @@ int generator(proc_instance_t *pi) char *userpass = NULL; gbtbase_t gbt; connsock_t cs; - int ret = 0; + int ret = 1; memset(&cs, 0, sizeof(cs)); memset(&gbt, 0, sizeof(gbt)); if (!extract_sockaddr(ckp->btcdurl, &cs.url, &cs.port)) { LOGWARNING("Failed to extract address from %s", ckp->btcdurl); - ret = 1; goto out; } userpass = strdup(ckp->btcdauth); @@ -120,14 +119,12 @@ int generator(proc_instance_t *pi) cs.auth = http_base64(userpass); if (!cs.auth) { LOGWARNING("Failed to create base64 auth from %s", userpass); - ret = 1; goto out; } dealloc(userpass); cs.fd = connect_socket(cs.url, cs.port); if (cs.fd < 0) { LOGWARNING("Failed to connect socket to %s:%s", cs.url, cs.port); - ret = 1; goto out; } keep_sockalive(cs.fd);