Any-Daemon-HTTP
view release on metacpan or search on metacpan
lib/Any/Daemon/HTTP.pod view on Meta::CPAN
This setting determines the minimum time for a save server reboot. When
the daemon is stopped, the client may still keeps its socket. The restart
of the server may fail with "socket already in use".
=item max_childs => INTEGER
=item max_conn_per_child => INTEGER
[0.24] Average maximum number of connections which are handled
per process, before it commits suicide to cleanup garbaged memory.
The parent will start a new process.
This value gets a random value in 10% range added to subtracted to avoid
that all childs reset at the same time. So, for the default value, 9_000
upto 11_000 connections will be served before a reset.
=item max_req_per_child => INTEGER
[0.24] maximum number of HTTP requests accepted by all connections for
one process.
lib/Any/Daemon/HTTP/Source.pm view on Meta::CPAN
package Any::Daemon::HTTP::Source;
use vars '$VERSION';
$VERSION = '0.30';
use warnings;
use strict;
use Log::Report 'any-daemon-http';
use Net::CIDR qw/cidrlookup/;
use List::Util qw/first/;
use HTTP::Status qw/HTTP_FORBIDDEN/;
sub _allow_cleanup($);
sub _allow_match($$$$);
sub new(@)
{ my $class = shift;
my $args = @_==1 ? shift : +{@_};
lib/Any/Daemon/HTTP/Source.pm view on Meta::CPAN
my $peer = $session->get('peer');
first { $_->($peer->{ip}, $peer->{host}, $session, $uri) } @$rules;
}
sub _allow_cleanup($)
{ my $p = shift or return;
my @p;
foreach my $r (ref $p eq 'ARRAY' ? @$p : $p)
{ push @p
, ref $r eq 'CODE' ? $r
: index($r, ':') >= 0 ? sub {cidrlookup $_[0], $r} # IPv6
: $r !~ m/[a-zA-Z]/ ? sub {cidrlookup $_[0], $r} # IPv4
: substr($r,0,1) eq '.' ? sub {$_[1] =~ qr/(^|\.)\Q$r\E$/i} # Domain
: sub {lc($_[1]) eq lc($r)} # hostname
}
@p ? \@p : undef;
}
sub collect($$$$)
{ my ($self, $vhost, $session, $req, $uri) = @_;
( run in 1.165 second using v1.01-cache-2.11-cpan-de7293f3b23 )