#!/usr/bin/perl # # Copyright 1996-2013 Ian Jackson # Copyright 1998 David Damerell # Copyright 1999,2003 # Chancellor Masters and Scholars of the University of Cambridge # Copyright 2010 Tony Finch # # This is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with userv-utils; if not, see http://www.gnu.org/licenses/. $minreaddays= 21; $maxperuser= 250; open(CONF,"$ARGV[0]") or die $!; while() { next if m/^\#/ || !m/^\S/; next if m/^(myfqdn|xref|server|server-nosearch|fetch|read|post|permit|believe|extrarc)\s/; if (m/^minreaddays\s+(\d+)\s+$/) { $minreaddays= $1; } elsif (m/^maxperuser\s+(\d+)\s+$/) { $maxperuser= $1; } else { die "$_ ?"; } } $newsrc= ".newsrc"; exit 0 if -l $newsrc || ! -f _ || -M _ > $minreaddays; @g= (); open NEWSRC, $newsrc or die $!; while () { next unless s/:.*\n$//; next unless m/^[-a-z0-9+]+\.[-a-z0-9+._]+$/i; push @g, "$_\n"; } close NEWSRC or die $!; exit 0 if @g > $maxperuser; print sort @g or die $!; close STDOUT or die $!; exit 0;