| @@ -685,6 +685,27 @@ procreq: | |||||
| pthread_exit(NULL); | pthread_exit(NULL); | ||||
| } | } | ||||
| static void | |||||
| ggatessh_makepidfile(void) | |||||
| { | |||||
| pid_t otherpid; | |||||
| if (!g_gate_verbose) { | |||||
| if (ggatessh_pidfile == NULL) { | |||||
| asprintf(&ggatessh_pidfile, _PATH_VARRUN "/ggatessh.ggate%d.pid", unit); | |||||
| err(EXIT_FAILURE, "Cannot allocate memory for pidfile"); | |||||
| } | |||||
| pfh = pidfile_open(ggatessh_pidfile, 0600, &otherpid); | |||||
| if (pfh == NULL) { | |||||
| if (errno == EEXIST) { | |||||
| errx(EXIT_FAILURE, "Daemon already running, pid: %jd.", | |||||
| (intmax_t)otherpid); | |||||
| } | |||||
| err(EXIT_FAILURE, "Cannot open/create pidfile"); | |||||
| } | |||||
| } | |||||
| } | |||||
| static void | static void | ||||
| mydaemon(void) | mydaemon(void) | ||||
| { | { | ||||
| @@ -879,30 +900,9 @@ handle_params(int argc, char *argv[]) | |||||
| imgpath = argv[1]; | imgpath = argv[1]; | ||||
| } | } | ||||
| void | |||||
| ggatessh_makepidfile(void) | |||||
| { | |||||
| if (!g_gate_verbose) { | |||||
| if (ggatessh_pidfile == NULL) { | |||||
| asprintf(&ggatessh_pidfile, _PATH_VARRUN "/ggatessh.ggate%d.pid", unit); | |||||
| err(EXIT_FAILURE, "Cannot allocate memory for pidfile"); | |||||
| } | |||||
| pfh = pidfile_open(ggatessh_pidfile, 0600, &otherpid); | |||||
| if (pfh == NULL) { | |||||
| if (errno == EEXIST) { | |||||
| errx(EXIT_FAILURE, "Daemon already running, pid: %jd.", | |||||
| (intmax_t)otherpid); | |||||
| } | |||||
| err(EXIT_FAILURE, "Cannot open/create pidfile"); | |||||
| } | |||||
| } | |||||
| } | |||||
| int | int | ||||
| main(int argc, char *argv[]) | main(int argc, char *argv[]) | ||||
| { | { | ||||
| pid_t otherpid; | |||||
| int rc; | int rc; | ||||
| if (argc < 2) | if (argc < 2) | ||||