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 )