aboutsummaryrefslogtreecommitdiffstats
path: root/www-misc/slowcgi/files
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--www-misc/slowcgi/files/6.9-Add-flag-to-run-in-the-foreground.patch70
1 files changed, 70 insertions, 0 deletions
diff --git a/www-misc/slowcgi/files/6.9-Add-flag-to-run-in-the-foreground.patch b/www-misc/slowcgi/files/6.9-Add-flag-to-run-in-the-foreground.patch
new file mode 100644
index 0000000..a9f9e26
--- /dev/null
+++ b/www-misc/slowcgi/files/6.9-Add-flag-to-run-in-the-foreground.patch
@@ -0,0 +1,70 @@
+From 71a5493a09045ef3d90db42bdb5e1947c2512900 Mon Sep 17 00:00:00 2001
+From: Wynn Wolf Arbor <wolf@oriole.systems>
+Date: Fri, 5 Jun 2020 21:14:44 +0200
+Subject: [PATCH] Add flag to run in the foreground
+
+slowcgi already has the -d flag to disable forking, but that particular
+flag also enables debug output and stops slowcgi from logging to syslog.
+
+Ordinarily this would be fine, but sadly we know of no clean way to
+track the PID of a forked process with Gentoo's OpenRC and its
+start-stop-daemon(8). We could add support to write a pidfile instead,
+but since we want to support multiple invocations of slowcgi through
+OpenRC and ${RC_SVCNAME}, we need a way of specifying the pidfile
+location in the init script itself.
+
+To solve this reasonably cleanly, add a flag that *only* controls
+whether or not the program daemonizes or not.
+---
+ slowcgi.c | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
+
+diff --git a/slowcgi.c b/slowcgi.c
+index 0b5d62a..01f8139 100644
+--- a/slowcgi.c
++++ b/slowcgi.c
+@@ -274,7 +274,7 @@ usage(void)
+ {
+ extern char *__progname;
+ fprintf(stderr,
+- "usage: %s [-d] [-p path] [-s socket] [-U user] [-u user]\n",
++ "usage: %s [-df] [-p path] [-s socket] [-U user] [-u user]\n",
+ __progname);
+ exit(1);
+ }
+@@ -282,6 +282,7 @@ usage(void)
+ struct timeval timeout = { TIMEOUT_DEFAULT, 0 };
+ struct slowcgi_proc slowcgi_proc;
+ int debug = 0;
++int foreground = 0;
+ int on = 1;
+ char *fcgi_socket = "/var/www/run/slowcgi.sock";
+
+@@ -314,11 +315,14 @@ main(int argc, char *argv[])
+ }
+ }
+
+- while ((c = getopt(argc, argv, "dp:s:U:u:")) != -1) {
++ while ((c = getopt(argc, argv, "dfp:s:U:u:")) != -1) {
+ switch (c) {
+ case 'd':
+ debug++;
+ break;
++ case 'f':
++ foreground = 1;
++ break;
+ case 'p':
+ chrootpath = optarg;
+ break;
+@@ -340,7 +344,7 @@ main(int argc, char *argv[])
+ if (geteuid() != 0)
+ errx(1, "need root privileges");
+
+- if (!debug && daemon(0, 0) == -1)
++ if (!debug && !foreground && daemon(0, 0) == -1)
+ err(1, "daemon");
+
+ if (!debug) {
+--
+2.30.0
+