diff options
-rw-r--r-- | Echolot/Conf.pm | 3 | ||||
-rw-r--r-- | Echolot/Config.pm | 8 | ||||
-rw-r--r-- | Echolot/Pinger/CPunk.pm | 3 | ||||
-rw-r--r-- | Echolot/Pinger/Mix.pm | 11 | ||||
-rw-r--r-- | Echolot/Stats.pm | 3 | ||||
-rw-r--r-- | NEWS | 16 | ||||
-rw-r--r-- | README | 20 | ||||
-rw-r--r-- | doc/pingd.conf.pod | 56 | ||||
-rwxr-xr-x | pingd | 3 | ||||
-rw-r--r-- | pingd.conf.sample | 5 |
10 files changed, 78 insertions, 50 deletions
diff --git a/Echolot/Conf.pm b/Echolot/Conf.pm index 9242045..f5872da 100644 --- a/Echolot/Conf.pm +++ b/Echolot/Conf.pm @@ -1,7 +1,7 @@ package Echolot::Conf; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: Conf.pm,v 1.22 2002/07/22 01:28:21 weasel Exp $ +# $Id: Conf.pm,v 1.23 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -307,6 +307,7 @@ sub parse_cpunk_key($$$) { my ($reply, $time, $remailer) = @_; my $GnuPG = new GnuPG::Interface; + $GnuPG->call( Echolot::Config::get()->{'gnupg'} ) if (Echolot::Config::get()->{'gnupg'}); $GnuPG->options->hash_init( homedir => Echolot::Config::get()->{'gnupghome'} ); $GnuPG->options->meta_interactive( 0 ); diff --git a/Echolot/Config.pm b/Echolot/Config.pm index 98474a3..4e826c9 100644 --- a/Echolot/Config.pm +++ b/Echolot/Config.pm @@ -1,7 +1,7 @@ package Echolot::Config; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: Config.pm,v 1.30 2002/07/17 18:53:15 weasel Exp $ +# $Id: Config.pm,v 1.31 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -106,7 +106,10 @@ sub init($) { thesaurusdir => 'results/thesaurus', thesaurusindexfile => 'results/thesaurus/index.html', private_resultdir => 'results.private', - gnupghome => 'gnupg', + gnupghome => 'gnupghome', + gnupg => '', + mixhome => 'mixhome', + mixmaster => 'mix', tmpdir => 'tmp', commands_file => 'commands.txt', @@ -162,7 +165,6 @@ sub init($) { my_domain => undef, operator_address => undef, sitename => undef, - 'Pinger::Mix' => undef, verbose => 0 }; diff --git a/Echolot/Pinger/CPunk.pm b/Echolot/Pinger/CPunk.pm index 598e13e..3265d26 100644 --- a/Echolot/Pinger/CPunk.pm +++ b/Echolot/Pinger/CPunk.pm @@ -1,7 +1,7 @@ package Echolot::Pinger::CPunk; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: CPunk.pm,v 1.5 2002/07/16 02:48:57 weasel Exp $ +# $Id: CPunk.pm,v 1.6 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -35,6 +35,7 @@ sub encrypt_to($$$$) { Echolot::Globals::get()->{'hostname'}.".".time.'.'.$PROCESS_ID.'_'.Echolot::Globals::get()->{'internalcounter'}++.'.keyring'; my $GnuPG = new GnuPG::Interface; + $GnuPG->call( Echolot::Config::get()->{'gnupg'} ) if (Echolot::Config::get()->{'gnupg'}); $GnuPG->options->hash_init( homedir => Echolot::Config::get()->{'gnupghome'} ); $GnuPG->options->meta_interactive( 0 ); diff --git a/Echolot/Pinger/Mix.pm b/Echolot/Pinger/Mix.pm index d68147c..f41f217 100644 --- a/Echolot/Pinger/Mix.pm +++ b/Echolot/Pinger/Mix.pm @@ -1,7 +1,7 @@ package Echolot::Pinger::Mix; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: Mix.pm,v 1.4 2002/07/16 02:48:57 weasel Exp $ +# $Id: Mix.pm,v 1.5 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -25,7 +25,7 @@ sub ping($$$$) { my $chaincomma = join (',', @$chain); - my $keyring = Echolot::Config::get()->{'Pinger::Mix'}->{'mixdir'}.'/pubring.mix'; + my $keyring = Echolot::Config::get()->{'mixhome'}.'/pubring.mix'; open (F, '>'.$keyring) or cluck("Cannot open $keyring for writing: $!"), return 0; @@ -37,7 +37,7 @@ sub ping($$$$) { cluck("Cannot close $keyring"), return 0; - my $type2list = Echolot::Config::get()->{'Pinger::Mix'}->{'mixdir'}.'/type2.list'; + my $type2list = Echolot::Config::get()->{'mixhome'}.'/type2.list'; open (F, '>'.$type2list) or cluck("Cannot open $type2list for writing: $!"), return 0; @@ -48,10 +48,11 @@ sub ping($$$$) { cluck("Cannot close $type2list"), return 0; - open(MIX, "|".Echolot::Config::get()->{'Pinger::Mix'}->{'mix'}." -m -S -l $chaincomma") or + $ENV{'MIXPATH'} = Echolot::Config::get()->{'mixhome'}; + open(MIX, "|".Echolot::Config::get()->{'mixmaster'}." -m -S -l $chaincomma") or cluck("Cannot exec mixpinger: $!"), return 0; - print MIX "To: $to\n\n$body"; + print MIX "To: $to\n\n$body\n"; close (MIX); return 1; diff --git a/Echolot/Stats.pm b/Echolot/Stats.pm index 402cbd9..b948546 100644 --- a/Echolot/Stats.pm +++ b/Echolot/Stats.pm @@ -1,7 +1,7 @@ package Echolot::Stats; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: Stats.pm,v 1.22 2002/07/17 18:53:15 weasel Exp $ +# $Id: Stats.pm,v 1.23 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -679,6 +679,7 @@ sub build_pgpring_export($$$$) { sub build_pgpring() { my $GnuPG = new GnuPG::Interface; + $GnuPG->call( Echolot::Config::get()->{'gnupg'} ) if (Echolot::Config::get()->{'gnupg'}); $GnuPG->options->hash_init( armor => 1, homedir => Echolot::Config::get()->{'gnupghome'} ); @@ -1,9 +1,25 @@ Changes in version + * You no longer need an extra Mixmaster installation for your pinger. + Echolot can make use of any Mixmaster binary you alread have + installed. + * The config hash »Pinger::Mix« is obsolete now. Please set + »mixmaster« to the path of your mix executeable. Echolot now + uses its own mix directory below echolothome by default (config + option mixhome). + * The default gnupghome has changed from »gnupg« to »gnupghome«. + * New config option »gnupg«. * Not the current time but the scheduled start time is used when deciding which remailers to ping. This is nice if we get delayed for whatever reason. * Changed URL in templates to point to www.palfrader.org/echolot instead of the savannah page. + + How to upgrade (assuming you have a default configuration): + ./pingd stop + mv gnupg gnupghome + vi pingd.conf (remove Pinger::Mix, set mixmaster; + cf. pingd.conf.sample ) + ./pingd [...] start Changes in version 2.0beta16 - 2002-07-17 * Do not send all pings for the same remailer at the same time @@ -1,4 +1,4 @@ -$Id: README,v 1.21 2002/07/17 16:53:38 weasel Exp $ +$Id: README,v 1.22 2002/07/22 02:18:30 weasel Exp $ Echolot is a Pinger for anonymous remailers. @@ -45,17 +45,25 @@ o Create a new unix user named »pinger« (You can actually use any name o Make sure you have the perl libraries mentioned above and GnuPG installed properly. -o Create a Mixmaster client installation in ~pinger/Mix echolot needs to - have its own installation because it will mess with mix' mlist.txt - file, the public Mixmaster keyring, and type2.list. Don't bother - putting current keyrings there. - o Copy all echolot files and directories to ~pinger/echolot o Copy/Rename the pingd.conf.sample file to pingd.conf. o Check the homedir setting and set sitename in pingd.conf. +o If the Mixmaster executable »mix« is not in your PATH, set + the »mixmaster« config option in pingd.conf. + + Echolot can use any available mixmaster binary (e.g. your remailer's mix). + It will not share pool or keyrings with the existing installation (it sets + the MIXPATH environment variable). + + If you prefer you can build one for Echolot and place it in ~/Mix. Don't + bother putting configuration or keyrings there though - they won't get used. + +o If the GnuPG executable »gpg« is not in your PATH, set + the »gnupg« config option in pingd.conf. + o Set my_localpart and my_domain in pingd.conf to the appropriate values for your pinger. Mail to my_localpart@my_domain needs to reach echolot. diff --git a/doc/pingd.conf.pod b/doc/pingd.conf.pod index 4af2575..ea4ac54 100644 --- a/doc/pingd.conf.pod +++ b/doc/pingd.conf.pod @@ -61,33 +61,6 @@ The email address of the human operator that runs this pinger. It is used in several templates. -=item B<Pinger::Mix> - -B<Pinger::Mix> has some information for C<Echolot::Pinger::Mix> -pinging module. It is a hash that has two keys: - -=over - -=item B<mix> - -The name (with complete path) of the mix binary. It is expected to support the -same command line options as the canonical mixmaster client/server by -Anonimizer Inc. - -=item B<mixdir> - -The directory where the files C<type2.list> and C<mixring.pub> are loated in. -C<Echolot::Pinger::Mix> will overwrite these files before sending any pings. - -=back - - Default: none - Example: 'Pinger::Mix' => { - 'mix' => '/home/pinger/Mix/mix', - 'mixdir' => '/home/pinger/Mix', - }, - - =back @@ -410,7 +383,34 @@ show set to false are shown here too). The directory which is used as temporal GnuPG home for all keyring and encryption/decryption actions. - Default: 'gnupghome' => 'gnupg', + Default: 'gnupghome' => 'gnupghome', + +=item B<gnupg> + +Name of the GnuPG executeable. If it is not in your PATH make sure to +include path information. + +If B<gnupg> is an empty string, the C<GnuPG::Interfae> default (usually B<gpg>) +is used. + + Default: 'gnupg' => '', + Example: 'gnupg' => '/home/pinger/bin/myGnuPG', + +=item B<mixhome> + +The directory which is used as temporal Mixmaster home for all keyring and +encryption/decryption actions. + + Default: 'mixhome' => 'mixhome', + Example: 'mixmaster' => '/home/pinger/Mix', + +=item B<mixmaster> + +Name of the mixmaster executeable. If it is not in your PATH make sure to +include path information. + + Default: 'mixmaster' => 'mix', + Example: 'mixmaster' => '/home/pinger/Mix/mix', =item B<tmpdir> @@ -3,7 +3,7 @@ $| = 1; # (c) 2002 Peter Palfrader <peter@palfrader.org> -# $Id: pingd,v 1.46 2002/07/17 19:16:06 weasel Exp $ +# $Id: pingd,v 1.47 2002/07/22 02:18:30 weasel Exp $ # =pod @@ -455,6 +455,7 @@ sub make_dirs() { Echolot::Config::get()->{'thesaurusdir'}, Echolot::Config::get()->{'private_resultdir'}, Echolot::Config::get()->{'gnupghome'}, + Echolot::Config::get()->{'mixhome'}, Echolot::Config::get()->{'tmpdir'}, Echolot::Config::get()->{'storage'}->{'File'}->{'basedir'} ) { diff --git a/pingd.conf.sample b/pingd.conf.sample index cac0282..256f18a 100644 --- a/pingd.conf.sample +++ b/pingd.conf.sample @@ -8,10 +8,7 @@ $CONFIG = { 'my_domain' => 'example.com', 'operator_address' => 'remop@example.org', - 'Pinger::Mix' => { - 'mix' => '/home/pinger/Mix/mix', - 'mixdir' => '/home/pinger/Mix' - }, + #'mixmaster' => '/home/pinger/Mix/mix', 'seperate_rlists' => 0, 'combined_list' => 0, |