aboutsummaryrefslogtreecommitdiff
path: root/perl/fcgi.pl
diff options
context:
space:
mode:
Diffstat (limited to 'perl/fcgi.pl')
-rwxr-xr-xperl/fcgi.pl23
1 files changed, 23 insertions, 0 deletions
diff --git a/perl/fcgi.pl b/perl/fcgi.pl
new file mode 100755
index 0000000..0f3dff8
--- /dev/null
+++ b/perl/fcgi.pl
@@ -0,0 +1,23 @@
+#!/usr/bin/env perl
+
+use strict;
+use warnings;
+
+use Syntax::Keyword::Try;
+use FCGI;
+
+use lib qw(perl);
+BEGIN { require 'cgi.pl'; }
+
+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");
+ }
+ exit 1 unless (IMMORTAL);
+}