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 + + * gpgkeys_mailto.in: Set 'mail-from' as a keyserver-option, rather + than the ugly ?from= syntax. + 2009-01-22 Werner Koch * 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() { last if($_ eq "\n"); @@ -85,9 +81,24 @@ while() { $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() { last if($_ eq "\n");