summaryrefslogtreecommitdiff
path: root/trunk/Echolot/Report.pm
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/Echolot/Report.pm')
-rw-r--r--trunk/Echolot/Report.pm70
1 files changed, 70 insertions, 0 deletions
diff --git a/trunk/Echolot/Report.pm b/trunk/Echolot/Report.pm
new file mode 100644
index 0000000..1c2a4ae
--- /dev/null
+++ b/trunk/Echolot/Report.pm
@@ -0,0 +1,70 @@
+package Echolot::Report;
+
+#
+# $Id$
+#
+# This file is part of Echolot - a Pinger for anonymous remailers.
+#
+# Copyright (c) 2002, 2003, 2004 Peter Palfrader <peter@palfrader.org>
+#
+# This program 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 2 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 this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+#
+
+=pod
+
+=head1 Name
+
+Echolot::Report - Summarize status of remailers
+
+=head1 DESCRIPTION
+
+This package prints the summary of remailers/addresses.
+
+=cut
+
+use strict;
+use English;
+use Echolot::Log;
+
+sub print_summary(;$) {
+ my ($manual) = @_;
+
+ my @addresses = sort { $a->{'address'} cmp $b->{'address'} } Echolot::Globals::get()->{'storage'}->get_addresses();
+ my $report = "*** Status summary ***\n";
+
+ for my $remailer (@addresses) {
+ my $addr = $remailer->{'address'};
+ $report .= "$addr (ID: $remailer->{'id'}): ".uc($remailer->{'status'})."; ".
+ "Fetch/Ping/Show: ".
+ ($remailer->{'fetch'} ? '1' : '0') .
+ ($remailer->{'pingit'} ? '1' : '0') .
+ ($remailer->{'showit'} ? '1' : '0') .
+ "; TTL: $remailer->{'ttl'}\n";
+ $report .= " Resurection TTL: $remailer->{'resurrection_ttl'}\n" if (defined $remailer->{'resurrection_ttl'} && ($remailer->{'status'} eq 'ttl timeout'));
+ for my $type (Echolot::Globals::get()->{'storage'}->get_types($addr)) {
+ $report .= " Type: $type: ".join(', ', Echolot::Globals::get()->{'storage'}->get_keys($addr, $type))."\n";
+ };
+ };
+ if (defined $manual) {
+ Echolot::Log::notice($report);
+ } else {
+ Echolot::Log::info($report);
+ }
+
+ return 1;
+};
+
+1;
+# vim: set ts=4 shiftwidth=4: