summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Echolot/Conf.pm3
-rw-r--r--Echolot/Config.pm8
-rw-r--r--Echolot/Pinger/CPunk.pm3
-rw-r--r--Echolot/Pinger/Mix.pm11
-rw-r--r--Echolot/Stats.pm3
-rw-r--r--NEWS16
-rw-r--r--README20
-rw-r--r--doc/pingd.conf.pod56
-rwxr-xr-xpingd3
-rw-r--r--pingd.conf.sample5
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'} );
diff --git a/NEWS b/NEWS
index 8adb9b0..efe79b3 100644
--- a/NEWS
+++ b/NEWS
@@ -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
diff --git a/README b/README
index f28f83f..6ac1e50 100644
--- a/README
+++ b/README
@@ -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>
diff --git a/pingd b/pingd
index a027c3f..4f34af4 100755
--- a/pingd
+++ b/pingd
@@ -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,