home = getenv("HOME");
if(home && !access(sprintf3("%s/.ashd/sockets/", home), X_OK))
- tmpl = sprintf2("%s/.ashd/sockets/scgi-a-XXXXXX");
+ tmpl = sprintf2("%s/.ashd/sockets/scgi-a-XXXXXX", home);
else
tmpl = sprintf2("/tmp/scgi-a-%i-XXXXXX", getuid());
if((fd = mkstemp(tmpl)) < 0) {
flog(LOG_ERR, "could not create anonymous socket `%s': %s", tmpl, strerror(errno));
exit(1);
}
+ close(fd);
unlink(tmpl);
return(tmpl);
}
}
}
+static void sigexit(int sig)
+{
+ exit(0);
+}
+
static void usage(FILE *out)
{
fprintf(out, "usage: servescgi [-h] [-N RETRIES] [-i ID] [-u UNIX-PATH] [-t [HOST:]TCP-PORT] [PROGRAM [ARGS...]]\n");
exit(1);
}
signal(SIGCHLD, SIG_IGN);
+ signal(SIGINT, sigexit);
+ signal(SIGTERM, sigexit);
mustart(listenloop, 0);
atexit(killcuraddr);
ioloop();