aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--keyserver/ChangeLog5
-rwxr-xr-xkeyserver/gpg2keys_mailto.in42
2 files changed, 20 insertions, 27 deletions
diff --git a/keyserver/ChangeLog b/keyserver/ChangeLog
index d9f513620..6d980fe91 100644
--- a/keyserver/ChangeLog
+++ b/keyserver/ChangeLog
@@ -1,3 +1,8 @@
+2009-05-04 David Shaw <[email protected]>
+
+ * gpgkeys_mailto.in: Set 'mail-from' as a keyserver-option, rather
+ than the ugly ?from= syntax.
+
2009-01-22 Werner Koch <[email protected]>
* Makefile.am (gpg2keys_curl_LDADD, gpg2keys_hkp_LDADD): Add all
diff --git a/keyserver/gpg2keys_mailto.in b/keyserver/gpg2keys_mailto.in
index 4e5d6bc30..959f0e7ca 100755
--- a/keyserver/gpg2keys_mailto.in
+++ b/keyserver/gpg2keys_mailto.in
@@ -52,10 +52,6 @@ if(@ARGV)
open(STDIN,$ARGV[0]) || die "Can't open input file $ARGV[0]\n";
}
-($login,$name)=(getpwuid($<))[0,6];
-
-$from="$name <$login>";
-
while(<STDIN>)
{
last if($_ eq "\n");
@@ -85,9 +81,24 @@ while(<STDIN>)
{
$verbose--;
}
+ elsif($1=~/^mail-from=(.+)$/i)
+ {
+ $from=$1;
+ }
+ elsif($1=~/^no-mail-from$/i)
+ {
+ undef $from;
+ }
+
}
}
+if(!defined($from))
+{
+ ($login,$name)=(getpwuid($<))[0,6];
+ $from="$name <$login>";
+}
+
$program="(unknown)" if(!defined($program));
if(!defined($address))
@@ -96,29 +107,6 @@ if(!defined($address))
exit(1);
}
-# decode $address
-
-($address,$args)=split(/\?/,$address);
-
-if(defined($args))
-{
- @pairs = split(/&/, $args);
- foreach $pair (@pairs)
- {
- ($hdr, $val) = split(/=/, $pair);
- $hdr =~ tr/+/ /;
- $hdr =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
- $val =~ tr/+/ /;
- $val =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;
-# we only handle "from" right now
- if($hdr=~/^from$/i)
- {
- $from=$val;
- last;
- }
- }
-}
-
while(<STDIN>)
{
last if($_ eq "\n");