Assume FastCGI mode if STDIN is a socket (works some places env vars fail)
Matt S Trout [Fri, 23 Sep 2011 14:29:19 +0000 (14:29 +0000)]
Changes
lib/Web/Simple/Application.pm

diff --git a/Changes b/Changes
index 17a41e0..353a8a3 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,5 +1,6 @@
 Change log for Web::Simple
 
+  - Assume FastCGI mode if STDIN is a socket (works some places env vars fail)
   - Change CLI mode to print status line and headers to STDERR and content
     to STDOUT so that './myapp /foo.html >foo.html' works sanely
   - Add *.* and **.* dispatch types to keep extension
index 9272b91..235b871 100644 (file)
@@ -62,7 +62,10 @@ sub to_psgi_app {
 
 sub run {
   my $self = shift;
-  if ($ENV{PHP_FCGI_CHILDREN} || $ENV{FCGI_ROLE} || $ENV{FCGI_SOCKET_PATH}) {
+  if (
+    $ENV{PHP_FCGI_CHILDREN} || $ENV{FCGI_ROLE} || $ENV{FCGI_SOCKET_PATH}
+    || -S STDIN # STDIN is a socket, almost certainly FastCGI
+    ) {
     return $self->_run_fcgi;
   } elsif ($ENV{GATEWAY_INTERFACE}) {
     return $self->_run_cgi;