diff --git a/src/generator.c b/src/generator.c index 0fd73d55..07fc5d40 100644 --- a/src/generator.c +++ b/src/generator.c @@ -246,6 +246,7 @@ static int gen_loop(proc_instance_t *pi) char hash[68]; reconnect: + Close(sockd); if (si) { kill_server(si); reconnecting = true; @@ -262,6 +263,7 @@ reconnect: } retry: + Close(sockd); ckmsgq_add(srvchk, si); do { @@ -289,7 +291,6 @@ retry: buf = recv_unix_msg(sockd); if (!buf) { LOGWARNING("Failed to get message in gen_loop"); - Close(sockd); goto retry; } LOGDEBUG("Generator received request: %s", buf); @@ -369,7 +370,6 @@ retry: LOGDEBUG("Generator received ping request"); send_unix_msg(sockd, "pong"); } - Close(sockd); goto retry; out: