summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-07-22 14:06:39 +0800
committerin2 <in2@63ad8ddf-47c3-0310-b6dd-a9e9d9715204>2003-07-22 14:06:39 +0800
commit147cd117ecb4dc79b0c9994746d772a46cca9a8e (patch)
tree446bac7859172ac27900e9de05ff44a64eb55e61
parentdfef8450db51ec44318415f48af592764160d2ea (diff)
downloadpttbbs-piaip.automake@1075.tar
pttbbs-piaip.automake@1075.tar.gz
pttbbs-piaip.automake@1075.tar.bz2
pttbbs-piaip.automake@1075.tar.lz
pttbbs-piaip.automake@1075.tar.xz
pttbbs-piaip.automake@1075.tar.zst
pttbbs-piaip.automake@1075.zip
git-svn-id: http://opensvn.csie.org/pttbbs/pttbbs/trunk/pttbbs@1075 63ad8ddf-47c3-0310-b6dd-a9e9d9715204
-rw-r--r--innbbsd/inncheck.pl47
1 files changed, 47 insertions, 0 deletions
diff --git a/innbbsd/inncheck.pl b/innbbsd/inncheck.pl
new file mode 100644
index 00000000..2b98a305
--- /dev/null
+++ b/innbbsd/inncheck.pl
@@ -0,0 +1,47 @@
+#!/usr/bin/perl
+use IO::Socket::INET;
+$BBSHOME = '/home/bbs';
+
+open NODES, "<$BBSHOME/innd/nodelist.bbs";
+while( <NODES> ){
+ next if( /^\#/ );
+
+ ($nodename, $host) = $_ =~ /^(\S+)\s+(\S+)/;
+ next if( !$nodename );
+
+ $sock = IO::Socket::INET->new(PeerAddr => $host,
+ PeerPort => 119,
+ Proto => 'tcp');
+ next if( !$sock );
+ $sock->write("list\r\nquit\r\n");
+ $sock->read($data, 104857600);
+
+ foreach( split("\n", $data) ){
+ $group{$nodename}{$1} = 1
+ if( /^([A-Za-z0-9\.]+) \d+ \d+ y/ );
+ }
+}
+
+open FEEDS, "<$BBSHOME/innd/newsfeeds.bbs";
+while( <FEEDS> ){
+ ++$line;
+ next if( /^\#/ );
+
+ next if( !(($gname, $board, $nodename) =
+ $_ =~ /^([\w\.]+)\s+(\w+)\s+(\w+)/) );
+
+ if( !-d ("$BBSHOME/boards/". substr($board, 0, 1). "/$board") ){
+ print "$line: board not found ($board)\n";
+ next;
+ }
+
+ if( !$group{$nodename} ){
+ print "$line: node not found ($nodename)\n";
+ next;
+ }
+
+ if( !$group{$nodename}{$gname} ){
+ print "$line: group not found ($gname)\n";
+ }
+}
+