|
Canonical List of All Pingers
Pinger |
CPunk V1 |
CPunk V2 |
Mix V1 |
Mix V2 |
rchain |
PGP Keyring |
Mix Keyring |
Comment |
<:
use warnings;
use strict;
sub join_links($$) {
my ($a, $b) = @_;
if (defined $a) {
if (defined $b) {
return $a.' '.$b;
} else {
return $a;
};
} else {
if (defined $b) {
return $b;
} else {
return ' ';
};
};
};
open(F,"allpingers.txt") or die("Could not open allpingers.txt: $!");
my $source;
my %pinger;
while() {
s/\s*(.*)\s*/$1/;
next if (/^\s*#/);
$source = $1, next if (/^\[(.*)\]$/);
if (/(.+?)\s*=\s*(.+)/) {
$pinger{$source}->{$1} = $2 if defined $source;
};
}
close(F);
for $source (sort keys %pinger) {
print("\n");
printf('%s | ', $pinger{$source}->{base}, $source);
my $r1_t = sprintf('T', $pinger{$source}->{rlist} ) if defined $pinger{$source}->{rlist};
my $r1_h = sprintf('H', $pinger{$source}->{rlist_html} ) if defined $pinger{$source}->{rlist_html};
my $r2_t = sprintf('T', $pinger{$source}->{rlist2} ) if defined $pinger{$source}->{rlist2};
my $r2_h = sprintf('H', $pinger{$source}->{rlist2_html}) if defined $pinger{$source}->{rlist2_html};
my $m1_t = sprintf('T', $pinger{$source}->{mlist} ) if defined $pinger{$source}->{mlist};
my $m1_h = sprintf('H', $pinger{$source}->{mlist_html} ) if defined $pinger{$source}->{mlist_html};
my $m2_t = sprintf('T', $pinger{$source}->{mlist2} ) if defined $pinger{$source}->{mlist2};
my $m2_h = sprintf('H', $pinger{$source}->{mlist2_html}) if defined $pinger{$source}->{mlist2_html};
my $rchain_t = sprintf('T', $pinger{$source}->{rchain} ) if defined $pinger{$source}->{rchain};
my $rchain_h = sprintf('H', $pinger{$source}->{rchain_html}) if defined $pinger{$source}->{rchain_html};
my $pgp = sprintf('ALL', $pinger{$source}->{pgpring} ) if defined $pinger{$source}->{pgpring};
my $pgp_rsa = sprintf('RSA', $pinger{$source}->{pgpring_rsa}) if defined $pinger{$source}->{pgpring_rsa};
my $mixring = sprintf('pubring.mix ', $pinger{$source}->{mixring} ) if defined $pinger{$source}->{mixring};
my $typelist = sprintf('type2.list ', $pinger{$source}->{type2list} ) if defined $pinger{$source}->{type2list};
my $comment = $pinger{$source}->{comment};
printf('%s | ', join_links($r1_t, $r1_h));
printf('%s | ', join_links($r2_t, $r2_h));
printf('%s | ', join_links($m1_t, $m1_h));
printf('%s | ', join_links($m2_t, $m2_h));
printf('%s | ', join_links($rchain_t, $rchain_h));
printf('%s | ', join_links($pgp, $pgp_rsa));
printf('%s | ', join_links($mixring, $typelist));
printf('%s | ', (defined $comment && $comment ne '') ? $comment : ' ');
print(" \n");
}
:>
If anything is wrong/broken/needs to be added/removed please mail the maintainer at web@palfrader.org.
The canonical list of all pingers in a machine readable format can be
found here: allpingers.txt .
It was last updated <: print scalar gmtime() :>.
For testing purposes I've also generated an XML
document with all pingers. Feedback especially on the DTD is very
much apprechiated.
#
#
#A similar list can be found at Frog's: http://www.privacyresources.org/frogadmin/Pingers.html.
|