aboutsummaryrefslogtreecommitdiffstats
path: root/slowcgi.c
diff options
context:
space:
mode:
authorblambert2013-08-26 08:02:03 +0000
committerWynn Wolf Arbor2020-05-24 12:33:55 +0200
commit703660a6f48c69ffba15b9b703d9f241d591cd1b (patch)
tree0a031061a9f768da68b937b33600de4571b11ab8 /slowcgi.c
parent3c1f1128eabb46a281d8dbec80e55408fb26d99a (diff)
downloadslowcgi-703660a6f48c69ffba15b9b703d9f241d591cd1b.tar.gz
slowcgi grows an option to specify an alternate FastCGI socket on which to listen.
okay dcoppa@, henning@, florian@ manpage okay from jmc@
Diffstat (limited to 'slowcgi.c')
-rw-r--r--slowcgi.c17
1 files changed, 11 insertions, 6 deletions
diff --git a/slowcgi.c b/slowcgi.c
index e71e989..fa191e6 100644
--- a/slowcgi.c
+++ b/slowcgi.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: slowcgi.c,v 1.5 2013/08/23 07:12:49 blambert Exp $ */
+/* $OpenBSD: slowcgi.c,v 1.6 2013/08/26 08:02:03 blambert Exp $ */
/*
* Copyright (c) 2013 David Gwynne <dlg@openbsd.org>
* Copyright (c) 2013 Florian Obser <florian@openbsd.org>
@@ -146,7 +146,7 @@ struct fcgi_end_request {
uint8_t reserved[3];
}__packed;
__dead void usage(void);
-void slowcgi_listen(const char *, gid_t);
+void slowcgi_listen(char *, gid_t);
void slowcgi_paused(int, short, void*);
void slowcgi_accept(int, short, void*);
void slowcgi_request(int, short, void*);
@@ -215,7 +215,7 @@ __dead void
usage(void)
{
extern char *__progname;
- fprintf(stderr, "usage: %s [-d]\n", __progname);
+ fprintf(stderr, "usage: %s [-d] [-s socket]\n", __progname);
exit(1);
}
@@ -223,6 +223,7 @@ struct timeval timeout = { TIMEOUT_DEFAULT, 0 };
struct slowcgi_proc slowcgi_proc;
int debug = 0;
int on = 1;
+char *fcgi_socket = "/var/www/run/slowcgi.sock";
int
main(int argc, char *argv[])
@@ -230,11 +231,14 @@ main(int argc, char *argv[])
struct passwd *pw;
int c;
- while ((c = getopt(argc, argv, "d")) != -1) {
+ while ((c = getopt(argc, argv, "ds:")) != -1) {
switch (c) {
case 'd':
debug = 1;
break;
+ case 's':
+ fcgi_socket = optarg;
+ break;
default:
usage();
/* NOTREACHED */
@@ -253,7 +257,8 @@ main(int argc, char *argv[])
event_init();
- slowcgi_listen("/var/www/run/slowcgi.sock", pw->pw_gid);
+ slowcgi_listen(fcgi_socket, pw->pw_gid);
+
if (chroot(pw->pw_dir) == -1)
lerr(1, "chroot(%s)", pw->pw_dir);
@@ -279,7 +284,7 @@ main(int argc, char *argv[])
return (0);
}
void
-slowcgi_listen(const char *path, gid_t gid)
+slowcgi_listen(char *path, gid_t gid)
{
struct listener *l = NULL;
struct sockaddr_un sun;