aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmil Williams2025-08-21 00:32:48 +0000
committerEmil Williams2025-08-21 00:32:48 +0000
commit658f9c0c0fcce6a6371fbdaf8f74a5ca4265c9a9 (patch)
tree7011e66cf1a349ed78885591ab76f6dae3179e5e
parenta721871310beeb290f060511bc5ad58b2f485f35 (diff)
downloadgorillanest-658f9c0c0fcce6a6371fbdaf8f74a5ca4265c9a9.tar.xz
gorillanest-658f9c0c0fcce6a6371fbdaf8f74a5ca4265c9a9.tar.zst
Immortality
-rw-r--r--config.default.pl17
-rwxr-xr-xgorillanest.pl.fcgi17
2 files changed, 20 insertions, 14 deletions
diff --git a/config.default.pl b/config.default.pl
index b95d005..9fbc1a2 100644
--- a/config.default.pl
+++ b/config.default.pl
@@ -1,15 +1,18 @@
-# always assume anything to do with files is from project root
+# always assume anything to do with files or directories is ran at project root
+
+# If you're using lighttpd, set this to 1
+# This disables SOCKET_FILE and lets the socket handling be externally managed
+use constant BARE_REQUEST => 0;
+
+use constant IMMORTAL => 1; # will continue handling request after death/error
use constant LOG_FILE => '/tmp/gorillanest.log';
-use constant SOCKET_FILE => '/tmp/gorillanest.socket';
use constant DB_FILE => 'gorillanest.sqlite3'; # sqlite3
+use constant SOCKET_FILE => '/tmp/gorillanest.socket';
+use constant SOCKET_MAX_CONNECTIONS => 100;
+
use constant TEMPLATE_ROOT => 'template'; # template directory
use constant GIT_ROOT => 'git'; # git directory (~user/repo)
-# If you're using lighttpd, set this to 1
-# This disables SOCKET_FILE and lets the socket handling be externally managed
-use constant BARE_REQUEST => 0;
-
-use constant SOCKET_MAX_CONNECTIONS => 100;
1;
diff --git a/gorillanest.pl.fcgi b/gorillanest.pl.fcgi
index 7dc343f..afba9be 100755
--- a/gorillanest.pl.fcgi
+++ b/gorillanest.pl.fcgi
@@ -9,12 +9,15 @@ use FCGI;
use lib '.';
BEGIN { require 'gorillanest.pl.cgi'; }
-try {
- open STDERR, '>', LOG_FILE or die LOG_FILE . ": $!";
- my $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%ENV, BARE_REQUEST ? 0 : FCGI::OpenSocket(SOCKET_FILE, SOCKET_MAX_CONNECTIONS));
- while($request->Accept() >= 0) {
- master();
+while (1) {
+ try {
+ open STDERR, '>', LOG_FILE or die LOG_FILE . ": $!";
+ my $request = FCGI::Request( \*STDIN, \*STDOUT, \*STDERR, \%ENV, BARE_REQUEST ? 0 : FCGI::OpenSocket(SOCKET_FILE, SOCKET_MAX_CONNECTIONS));
+ while($request->Accept() >= 0) {
+ master();
+ }
+ } catch ($error) {
+ info("Crashed: $error");
}
-} catch ($error) {
- info("Crashed: $error");
+ exit 1 unless (IMMORTAL);
}