aboutsummaryrefslogtreecommitdiffstats
path: root/www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch
diff options
context:
space:
mode:
Diffstat (limited to 'www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch')
-rw-r--r--www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch97
1 files changed, 97 insertions, 0 deletions
diff --git a/www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch b/www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch
new file mode 100644
index 0000000..ddedaca
--- /dev/null
+++ b/www-misc/slowcgi/files/7.3-Add-flag-to-run-in-the-foreground.patch
@@ -0,0 +1,97 @@
+From 4c2f7e55877aec6ede5dac7354ca401891750962 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Wolfgang=20M=C3=BCller?= <wolf@oriole.systems>
+Date: Fri, 29 Oct 2021 11:45:32 +0200
+Subject: [PATCH] Add flag to run in the foreground
+
+slowcgi already has the -d flag to disable forking, but that particular
+flag also stops slowcgi from logging to syslog and is intended for
+debugging purposes.
+
+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. Make sure to mention this
+in the manual too.
+---
+ slowcgi.8 | 6 +++++-
+ slowcgi.c | 10 +++++++---
+ 2 files changed, 12 insertions(+), 4 deletions(-)
+
+diff --git a/slowcgi.8 b/slowcgi.8
+index e1f0afb..34f5f53 100644
+--- a/slowcgi.8
++++ b/slowcgi.8
+@@ -22,7 +22,7 @@
+ .Nd a FastCGI to CGI wrapper server
+ .Sh SYNOPSIS
+ .Nm
+-.Op Fl dv
++.Op Fl dfv
+ .Op Fl p Ar path
+ .Op Fl s Ar socket
+ .Op Fl t Ar timeout
+@@ -65,6 +65,10 @@ Do not daemonize.
+ If this option is specified,
+ .Nm
+ will run in the foreground and log to stderr.
++.It Fl f
++As
++.Fl d ,
++but log to syslog.
+ .It Fl p Ar path
+ .Xr chroot 2
+ to
+diff --git a/slowcgi.c b/slowcgi.c
+index ce1530c..fe4c3d3 100644
+--- a/slowcgi.c
++++ b/slowcgi.c
+@@ -278,7 +278,7 @@ usage(void)
+ {
+ extern char *__progname;
+ fprintf(stderr,
+- "usage: %s [-dv] [-p path] [-s socket] [-t timeout] [-U user] "
++ "usage: %s [-dfv] [-p path] [-s socket] [-t timeout] [-U user] "
+ "[-u user]\n", __progname);
+ exit(1);
+ }
+@@ -286,6 +286,7 @@ usage(void)
+ struct timeval timeout = { TIMEOUT_DEFAULT, 0 };
+ struct slowcgi_proc slowcgi_proc;
+ int debug = 0;
++int foreground = 0;
+ int verbose = 0;
+ int on = 1;
+ char *fcgi_socket = "/var/www/run/slowcgi.sock";
+@@ -320,11 +321,14 @@ main(int argc, char *argv[])
+ }
+ }
+
+- while ((c = getopt(argc, argv, "dp:s:t:U:u:v")) != -1) {
++ while ((c = getopt(argc, argv, "dfp:s:t:U:u:v")) != -1) {
+ switch (c) {
+ case 'd':
+ debug++;
+ break;
++ case 'f':
++ foreground = 1;
++ break;
+ case 'p':
+ chrootpath = optarg;
+ break;
+@@ -355,7 +359,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.42.0
+