system: Linux mars.sprixweb.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64
Direktori : /usr/bin/ |
|
Current File : //usr/bin/net-server |
#!/usr/bin/env perl
package net_server;
use strict;
use warnings;
if (grep {$_ eq '--help' || $_ eq '-h'} @ARGV) {
require Pod::Usage;
Pod::Usage::pod2usage(-verbose => 1);
exit;
}
my $pkg;
if (@ARGV
&& $ARGV[0]
&& $ARGV[0] =~ /^(\w+)$/
&& ($pkg = $1)
&& eval { require "Net/Server/$pkg.pm" }
) {
$pkg = "Net::Server::$pkg";
} else {
if ($pkg && grep {-e "$_/Net/Server/$pkg.pm"} @INC) {
die "Error trying to become a Net::Server::$pkg:\n\n$@";
}
$pkg = 'Net::Server::MultiType';
}
require base;
import base $pkg;
__PACKAGE__->run;
exit;
sub default_port {
my $self = shift;
return 8080 if $> && $self->isa('Net::Server::HTTP');
return $self->SUPER::default_port;
}
__END__
=head1 NAME
net-server - Base Net::Server starting module
=head1 SYNOPSIS
net-server [base type] [net server arguments]
net-server PreFork ipv '*'
net-server HTTP
net-server HTTP app foo.cgi
net-server HTTP app foo.cgi app /=bar.cgi
net-server HTTP port 8080 port 8443/ssl ipv '*' server_type PreFork --SSL_key_file=my.key --SSL_cert_file=my.crt access_log_file STDERR
=head1 DESCRIPTION
The net-server program gives a simple way to test out code and try
port connection parameters. Though the running server can be robust
enough for full tim use, it is anticipated that this binary will just
be used for basic testing of net-server ports, acting as a simple echo
server, or for running development scripts as CGI.
=head1 OPTIONS
=over 4
=item C<base type>
The very first argument may be a Net::Server flavor. This is given as
shorthand for writing out server_type "ServerFlavor". Additionally,
this allows types such as HTTP and PSGI, which are not true
Net::Server base types, to subclass other server types via an
additional server_type argument.
net-server PreFork
net-server HTTP # becomes a HTTP server in the Fork flavor
net-server HTTP server_type PreFork # preforking HTTP server
=item C<port>
Port to bind upon. Default is 80 if running a HTTP server as root,
8080 if running a HTTP server as non-root, or 20203 otherwise.
Multiple value can be given for binding to multiple ports. All of the
methods for specifying port attributes enumerated in L<Net::Server>
and L<Net::Server::Proto> are available here.
net-server port 20201
net-server port 20202
net-server port 20203/IPv6
=item C<host>
Host to bind to. Default is *. Will bind to an IPv4 socket if an
IPv4 address is given. Will bind to an IPv6 socket if an IPv6 address
is given (requires installation of IO::Socket::INET6).
If a hostname is given and C<ipv> is still set to 4, an IPv4 socket
will be created. If a hostname is given and C<ipv> is set to 6, an
IPv6 socket will be created. If a hostname is given and C<ipv> is set
to * (default), a lookup will be performed and any available IPv4 or
IPv6 addresses will be bound. The C<ipv> parameter can be set
directly, or passed along in the port, or additionally can be passed
as part of the hostname.
net-server host localhost
net-server host localhost/IPv4
=back
There are many more options available. Please see the L<Net::Server>
documentation.
=head1 AUTHOR
Paul Seamons <paul at seamons.com>
=head1 LICENSE
This package may be distributed under the terms of either the
GNU General Public License
or the
Perl Artistic License
=cut