Add FILENO method to FCGI.pm to comply with IO:: interface
t0m [Sun, 29 Nov 2009 11:46:21 +0000 (11:46 +0000)]
FILENO method returns a defined but invalid value (can never be defined
as the error return from the syscall is -1) to placate things such as
IPC::Run which call fileno to check if a filehandle is open.

Closes bugs:
 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=544540
 http://rt.cpan.org/Public/Bug/Display.html?id=50972
 Removes need for upstream patch in OpenBSD

perl/ChangeLog
perl/FCGI.PL

index 8c5547f..74e5b2e 100644 (file)
@@ -1,3 +1,11 @@
+    o Add FILENO method which returns a defined but invalid value to
+      placate things such as IPC::Run which call fileno to check if a
+      filehandle is open.
+      Closes bugs:
+      http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=544540
+      http://rt.cpan.org/Public/Bug/Display.html?id=50972
+      Removes need for upstream patch in OpenBSD
+
 Version 0.68 --        21 June 2003   <skimo@kotnet.org> Sven Verdoolaege
 
        o Call the fcgi lib's attach/detach <robs@fastcgi.com>
index f4069fd..0e6ebf0 100644 (file)
@@ -390,10 +390,11 @@ sub OPEN {
     }
 }
 
-# Apparently some use fileno to determine if a filehandle is open,
-# so we might want to return a defined, but meaningless value.
-# An alternative would be to return the fcgi stream fd.
-# sub FILENO { -2 }
+# Some things (e.g. IPC::Run) use fileno to determine if a filehandle is open,
+# so we return a defined, but meaningless value. (-1 being the error return
+# value from the syscall in c, meaning it can never be a valid fd no)
+# Probably a better alternative would be to return the fcgi stream fd.
+sub FILENO { -1 }
 
 1;