]>
git.ipfire.org Git - people/teissler/ipfire-2.x.git/blob - config/urlfilter/autoupdate.pl
4 # $Id: autoupdate.pl,v 1.0 2005/06/15 00:00:00 marco Exp $
10 my $swroot = "/var/ipfire";
11 my $target = "$swroot/urlfilter/download";
12 my $dbdir = "$swroot/urlfilter/blacklists";
14 my $sourceurlfile = "$swroot/urlfilter/autoupdate/autoupdate.urls";
15 my $updconffile = "$swroot/urlfilter/autoupdate/autoupdate.conf";
16 my $updflagfile = "$swroot/urlfilter/blacklists/.autoupdate.last";
31 if (-e
"$sourceurlfile")
33 open(FILE
, $sourceurlfile);
34 @source_urllist = <FILE
>;
38 if (-e
"$updconffile") { &readhash
("$updconffile", \
%updatesettings); }
40 if (@ARGV[0] =~ m@
^(f
|h
)tt?ps?
://@
) { $updatesettings{'UPDATE_SOURCE'} = @ARGV[0]; }
42 if ($updatesettings{'UPDATE_SOURCE'} eq 'custom')
44 $blacklist_url=$updatesettings{'CUSTOM_UPDATE_URL'};
46 $blacklist_url=$updatesettings{'UPDATE_SOURCE'};
47 foreach (@source_urllist)
50 $source_name = substr($_,0,rindex($_,","));
51 $source_url = substr($_,index($_,",")+1);
52 if ($blacklist_url eq $source_url) { $blacklist_src=$source_name; }
56 if ($blacklist_src eq '') { $blacklist_src="custom source URL"; }
58 $blacklist_url =~ s/\&/\\\&/;
60 $blacklist=substr($blacklist_url,rindex($blacklist_url,"/")+1);
61 if (($blacklist =~ /\?/) || (!($blacklist =~ /\.t(ar\.)?gz$/))) { $blacklist = 'blacklist.tar.gz'; }
62 $blacklist=$target.'/'.$blacklist;
64 unless ($blacklist_url eq '')
67 if (-d
$target) { system("rm -rf $target"); }
68 system("mkdir $target");
70 system("/usr/bin/wget -o $target/wget.log -O $blacklist $blacklist_url");
74 system("/bin/tar --no-same-owner -xzf $blacklist -C $target");
75 if (-d
"$target/blacklists")
77 open(FILE
, ">$target/update.conf");
79 print FILE
"logdir $target\n";
80 print FILE
"dbhome $target/blacklists\n\n";
82 foreach (<$target/blacklists/*>)
84 if ((-d
$_) && ((-s
"$_/domains") || (-s
"$_/urls")))
86 $category=substr($_,rindex($_,"/")+1);
87 print FILE
"dest $category {\n";
88 if (-s
"$_/domains") { print FILE
" domainlist $category/domains\n"; }
89 if (-s
"$_/urls") { print FILE
" urllist $category/urls\n"; }
94 print FILE
" default {\n";
95 print FILE
" pass none\n";
100 system("/usr/sbin/squidGuard -d -c $target/update.conf -C all");
102 system("cp -r $target/blacklists/* $dbdir");
104 system("chown -R nobody.nobody $dbdir");
106 foreach $category (<$dbdir/*>)
110 system("chmod 755 $category &> /dev/null");
111 foreach $blacklist (<$category/*>)
113 if (-f
$blacklist){ system("chmod 644 $blacklist &> /dev/null"); }
114 if (-d
$blacklist){ system("chmod 755 $blacklist &> /dev/null"); }
116 system("chmod 666 $category/*.db &> /dev/null");
120 system("touch $updflagfile");
121 system("chown nobody.nobody $updflagfile");
123 system("/usr/local/bin/restartsquid");
125 system("logger -t installpackage[urlfilter] \"URL filter blacklist - Update from $blacklist_src completed\"");
130 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Not a valid URL filter blacklist\"");
133 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Unable to retrieve blacklist from $blacklist_src\"");
137 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: No update source defined\"");
140 if ((-d
$target) && ($make_clean)) { system("rm -rf $target"); }
144 # -------------------------------------------------------------------
148 my $filename = $_[0];
154 open(FILE
, $filename) or die "Unable to read file $filename";
158 ($var, $val) = split /=/, $_, 2;
164 # Untaint variables read from hash
165 $var =~ /([A-Za-z0-9_-]*)/; $var = $1;
166 $val =~ /([\w\W]*)/; $val = $1;
167 $hash->{$var} = $val;
174 # -------------------------------------------------------------------
178 # $Id: autoupdate.pl,v 1.0 2005/06/15 00:00:00 marco Exp $
184 my $swroot = "/var/ipfire";
185 my $target = "$swroot/urlfilter/download";
186 my $dbdir = "$swroot/urlfilter/blacklists";
188 my $sourceurlfile = "$swroot/urlfilter/autoupdate/autoupdate.urls";
189 my $updconffile = "$swroot/urlfilter/autoupdate/autoupdate.conf";
190 my $updflagfile = "$swroot/urlfilter/blacklists/.autoupdate.last";
205 if (-e
"$sourceurlfile")
207 open(FILE
, $sourceurlfile);
208 @source_urllist = <FILE
>;
212 if (-e
"$updconffile") { &readhash
("$updconffile", \
%updatesettings); }
214 if (@ARGV[0] =~ m@
^(f
|h
)tt?ps?
://@
) { $updatesettings{'UPDATE_SOURCE'} = @ARGV[0]; }
216 if ($updatesettings{'UPDATE_SOURCE'} eq 'custom')
218 $blacklist_url=$updatesettings{'CUSTOM_UPDATE_URL'};
220 $blacklist_url=$updatesettings{'UPDATE_SOURCE'};
221 foreach (@source_urllist)
224 $source_name = substr($_,0,rindex($_,","));
225 $source_url = substr($_,index($_,",")+1);
226 if ($blacklist_url eq $source_url) { $blacklist_src=$source_name; }
230 if ($blacklist_src eq '') { $blacklist_src="custom source URL"; }
232 $blacklist_url =~ s/\&/\\\&/;
234 $blacklist=substr($blacklist_url,rindex($blacklist_url,"/")+1);
235 if (($blacklist =~ /\?/) || (!($blacklist =~ /\.t(ar\.)?gz$/))) { $blacklist = 'blacklist.tar.gz'; }
236 $blacklist=$target.'/'.$blacklist;
238 unless ($blacklist_url eq '')
241 if (-d
$target) { system("rm -rf $target"); }
242 system("mkdir $target");
244 system("/usr/bin/wget -o $target/wget.log -O $blacklist $blacklist_url");
248 system("/bin/tar --no-same-owner -xzf $blacklist -C $target");
249 if (-d
"$target/blacklists")
251 open(FILE
, ">$target/update.conf");
253 print FILE
"logdir $target\n";
254 print FILE
"dbhome $target/blacklists\n\n";
256 foreach (<$target/blacklists/*>)
258 if ((-d
$_) && ((-s
"$_/domains") || (-s
"$_/urls")))
260 $category=substr($_,rindex($_,"/")+1);
261 print FILE
"dest $category {\n";
262 if (-s
"$_/domains") { print FILE
" domainlist $category/domains\n"; }
263 if (-s
"$_/urls") { print FILE
" urllist $category/urls\n"; }
267 print FILE
"acl {\n";
268 print FILE
" default {\n";
269 print FILE
" pass none\n";
274 system("/usr/sbin/squidGuard -d -c $target/update.conf -C all");
276 system("cp -r $target/blacklists/* $dbdir");
278 system("chown -R nobody.nobody $dbdir");
280 foreach $category (<$dbdir/*>)
284 system("chmod 755 $category &> /dev/null");
285 foreach $blacklist (<$category/*>)
287 if (-f
$blacklist){ system("chmod 644 $blacklist &> /dev/null"); }
288 if (-d
$blacklist){ system("chmod 755 $blacklist &> /dev/null"); }
290 system("chmod 666 $category/*.db &> /dev/null");
294 system("touch $updflagfile");
295 system("chown nobody.nobody $updflagfile");
297 system("/usr/local/bin/restartsquid");
299 system("logger -t installpackage[urlfilter] \"URL filter blacklist - Update from $blacklist_src completed\"");
304 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Not a valid URL filter blacklist\"");
307 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Unable to retrieve blacklist from $blacklist_src\"");
311 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: No update source defined\"");
314 if ((-d
$target) && ($make_clean)) { system("rm -rf $target"); }
318 # -------------------------------------------------------------------
322 my $filename = $_[0];
328 open(FILE
, $filename) or die "Unable to read file $filename";
332 ($var, $val) = split /=/, $_, 2;
338 # Untaint variables read from hash
339 $var =~ /([A-Za-z0-9_-]*)/; $var = $1;
340 $val =~ /([\w\W]*)/; $val = $1;
341 $hash->{$var} = $val;
348 # -------------------------------------------------------------------
352 # $Id: autoupdate.pl,v 1.0 2005/06/15 00:00:00 marco Exp $
358 my $swroot = "/var/ipfire";
359 my $target = "$swroot/urlfilter/download";
360 my $dbdir = "$swroot/urlfilter/blacklists";
362 my $sourceurlfile = "$swroot/urlfilter/autoupdate/autoupdate.urls";
363 my $updconffile = "$swroot/urlfilter/autoupdate/autoupdate.conf";
364 my $updflagfile = "$swroot/urlfilter/blacklists/.autoupdate.last";
379 if (-e
"$sourceurlfile")
381 open(FILE
, $sourceurlfile);
382 @source_urllist = <FILE
>;
386 if (-e
"$updconffile") { &readhash
("$updconffile", \
%updatesettings); }
388 if (@ARGV[0] =~ m@
^(f
|h
)tt?ps?
://@
) { $updatesettings{'UPDATE_SOURCE'} = @ARGV[0]; }
390 if ($updatesettings{'UPDATE_SOURCE'} eq 'custom')
392 $blacklist_url=$updatesettings{'CUSTOM_UPDATE_URL'};
394 $blacklist_url=$updatesettings{'UPDATE_SOURCE'};
395 foreach (@source_urllist)
398 $source_name = substr($_,0,rindex($_,","));
399 $source_url = substr($_,index($_,",")+1);
400 if ($blacklist_url eq $source_url) { $blacklist_src=$source_name; }
404 if ($blacklist_src eq '') { $blacklist_src="custom source URL"; }
406 $blacklist_url =~ s/\&/\\\&/;
408 $blacklist=substr($blacklist_url,rindex($blacklist_url,"/")+1);
409 if (($blacklist =~ /\?/) || (!($blacklist =~ /\.t(ar\.)?gz$/))) { $blacklist = 'blacklist.tar.gz'; }
410 $blacklist=$target.'/'.$blacklist;
412 unless ($blacklist_url eq '')
415 if (-d
$target) { system("rm -rf $target"); }
416 system("mkdir $target");
418 system("/usr/bin/wget -o $target/wget.log -O $blacklist $blacklist_url");
422 system("/bin/tar --no-same-owner -xzf $blacklist -C $target");
423 if (-d
"$target/blacklists")
425 open(FILE
, ">$target/update.conf");
427 print FILE
"logdir $target\n";
428 print FILE
"dbhome $target/blacklists\n\n";
430 foreach (<$target/blacklists/*>)
432 if ((-d
$_) && ((-s
"$_/domains") || (-s
"$_/urls")))
434 $category=substr($_,rindex($_,"/")+1);
435 print FILE
"dest $category {\n";
436 if (-s
"$_/domains") { print FILE
" domainlist $category/domains\n"; }
437 if (-s
"$_/urls") { print FILE
" urllist $category/urls\n"; }
441 print FILE
"acl {\n";
442 print FILE
" default {\n";
443 print FILE
" pass none\n";
448 system("/usr/sbin/squidGuard -d -c $target/update.conf -C all");
450 system("cp -r $target/blacklists/* $dbdir");
452 system("chown -R nobody.nobody $dbdir");
454 foreach $category (<$dbdir/*>)
458 system("chmod 755 $category &> /dev/null");
459 foreach $blacklist (<$category/*>)
461 if (-f
$blacklist){ system("chmod 644 $blacklist &> /dev/null"); }
462 if (-d
$blacklist){ system("chmod 755 $blacklist &> /dev/null"); }
464 system("chmod 666 $category/*.db &> /dev/null");
468 system("touch $updflagfile");
469 system("chown nobody.nobody $updflagfile");
471 system("/usr/local/bin/restartsquid");
473 system("logger -t installpackage[urlfilter] \"URL filter blacklist - Update from $blacklist_src completed\"");
478 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Not a valid URL filter blacklist\"");
481 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: Unable to retrieve blacklist from $blacklist_src\"");
485 system("logger -t installpackage[urlfilter] \"URL filter blacklist - ERROR: No update source defined\"");
488 if ((-d
$target) && ($make_clean)) { system("rm -rf $target"); }
492 # -------------------------------------------------------------------
496 my $filename = $_[0];
502 open(FILE
, $filename) or die "Unable to read file $filename";
506 ($var, $val) = split /=/, $_, 2;
512 # Untaint variables read from hash
513 $var =~ /([A-Za-z0-9_-]*)/; $var = $1;
514 $val =~ /([\w\W]*)/; $val = $1;
515 $hash->{$var} = $val;
522 # -------------------------------------------------------------------