App-elsquid

 view release on metacpan or  search on metacpan

bin/elsquid  view on Meta::CPAN


    close $white_domains;
    close $white_urls;
    close $white_expressions;

    close $squid_blacklist;
    close $squid_whitelist;

    
    say "\nSummary:";
    say "========";
    say "Blacklisted domains:     " . @sorted;
    say "Blacklisted urls:        " . keys %urls;
    say "Blacklisted expressions: " . keys %expressions;
    say "Whitelisted domains:     " . @{$config{white_domains}};
    say "Whitelisted urls:        " . @{$config{white_urls}};
    say "Whitelisted expressions: " . @{$config{white_expressions}};
    say "Unparsable:  $num_unparsable";
    print "\n";
}

sub _eliminate_special {
    my $ref = $_[0];
    
    for (my $i = 0; $i < @$ref - 1; $i++) {
        my $current = $ref->[$i];
        my $next    = $ref->[$i+1];

        #say "Is $next =~ $current ?";
        my $current_re = quotemeta($current);
        if ($next =~ /.*$current_re$/) {
            #say "YES";
            splice @$ref, $i+1, 1;
            return 1;
        }
    }
    return 0;
}



if ($opts{newdbfiles}) {

    foreach (qw(black/domains black/urls white/domains white/urls)) {
        my @squidguard = (
            $config{executable},
            '-C',
            File::Spec->catfile($config{dbsubdir}, $_)
        );
        
        say "@squidguard";
        my $result = system( @squidguard );
    }
}



if ($opts{permissions}) {
    my $targetdir = File::Spec->catfile($config{dbhome}, $config{dbsubdir});

    my @chown = (
        'chown',
        '-R',
        "$config{user}:$config{group}",
        $targetdir
    );
    
    say "@chown";
    my $result = system( @chown );
}



if ($opts{reload}) {
    my $reload_cmd = $config{reload_cmd};
    say $reload_cmd;
    my $result = system( $reload_cmd );
}



if ($opts{squidguardconf}) {
    my $line = ('-' x 35) . ' 8< ' . ('-' x 35);
    
    say "*** Suggested configuration snippet for squidguard:";
    say $line;
    print <<EOF;
dest elsquid-black {
    domainlist     $config{dbsubdir}/black/domains
    urllist        $config{dbsubdir}/black/urls
    expressionlist $config{dbsubdir}/black/expressions
    redirect 301:$config{redirect_url}
}

dest elsquid-white {
    domainlist     $config{dbsubdir}/white/domains
    urllist        $config{dbsubdir}/white/urls
    expressionlist $config{dbsubdir}/white/expressions
}

acl {
    default {
        pass  elsquid-white !elsquid-black all
    }
}
EOF
    say $line;

    say "\n";
    say "*** Suggested configuration snippet for squid:";
    say $line;
    print <<EOF;
acl elsquid-black dstdomain "$config{dstdomain_blacklist}"
acl elsquid-white dstdomain "$config{dstdomain_whitelist}"

http_access deny CONNECT elsquid-black !elsquid-white
deny_info TCP_RESET elsquid-black

url_rewrite_program $config{executable}
url_rewrite_children 5
EOF
    say $line;
}





exit 0;



( run in 2.293 seconds using v1.01-cache-2.11-cpan-63c85eba8c4 )