perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Pang" <pa...@earthlink.net>
Subject help about Apache::Scoreboard
Date Thu, 13 Dec 2007 04:36:34 GMT
When added these code in my handler:


    my $r = shift;

    # We decline to handle subrequests: otherwise, a few lines down we
    # could get into an infinite loop.
    return DECLINED unless $r->is_initial_req;

#
# for limit-ip-conn
#
    my $ip_count = 0;
    my $limit = $r->dir_config('MaxConnPerIP') || 0;
    my $ip = $r->connection->remote_ip;
    my $host = $r->connection->remote_host;
    my $image = Apache::Scoreboard->image;

    for (my $parent = $image->parent; $parent; $parent = $parent->next) {
        my $server = $parent->server;
        next if ($server->status =~ /^[\._SL]$/);
        if (($ip eq $server->client) or ($host eq $server->client)) {
            $ip_count++;
        }
    }

    if ($ip_count > $limit and $limit) {
        $r->log_reason("Client exceeded connection limit.", $r->filename);
        return FORBIDDEN;
    }


I got many warnings in error_log:

Use of uninitialized value in string eq at /opt/apache1.3/run/DLAuth.pm line 42.
 at /opt/apache1.3/run/DLAuth.pm line 42
        DLAuth::handler('Apache=SCALAR(0x91cbe8c)') called at /dev/null line 0
        eval {...} called at /dev/null line 0

The line 42 is:
if (($ip eq $server->client) or ($host eq $server->client)) {

And the handler (PerlAccessHandler) seems work not correctly.
Please guide, thanks.

Mime
View raw message