1
0
mirror of git://git.gnupg.org/gnupg.git synced 2024-12-22 10:19:57 +01:00

* gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from= syntax so

people can set their own email address to respond to.

* gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to gpg) and
"key not found" (to user) on failure.
This commit is contained in:
David Shaw 2002-09-16 14:35:19 +00:00
parent fcbf191a0d
commit 81c8f7daca
3 changed files with 43 additions and 6 deletions

View File

@ -1,3 +1,11 @@
2002-09-16 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_mailto.in: Add quasi-RFC-2368 mailto:email@addr?from=
syntax so people can set their own email address to respond to.
* gpgkeys_hkp.c (get_key): Properly respond with KEY FAILED (to
gpg) and "key not found" (to user) on failure.
2002-09-13 David Shaw <dshaw@jabberwocky.com> 2002-09-13 David Shaw <dshaw@jabberwocky.com>
* gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and * gpgkeys_hkp.c: (search_key, handle_old_hkp_index): Try and

View File

@ -261,11 +261,7 @@ get_key(char *getkey)
{ {
fprintf(output,line); fprintf(output,line);
if(strcmp(line,"-----END PGP PUBLIC KEY BLOCK-----\n")==0) if(strcmp(line,"-----END PGP PUBLIC KEY BLOCK-----\n")==0)
{ break;
gotit=0;
fprintf(output,"KEY 0x%s END\n",getkey);
break;
}
} }
else else
if(strcmp(line,"-----BEGIN PGP PUBLIC KEY BLOCK-----\n")==0) if(strcmp(line,"-----BEGIN PGP PUBLIC KEY BLOCK-----\n")==0)
@ -274,6 +270,14 @@ get_key(char *getkey)
gotit=1; gotit=1;
} }
} }
if(gotit)
fprintf(output,"KEY 0x%s END\n",getkey);
else
{
fprintf(console,"gpgkeys: key %s not found on keyserver\n",getkey);
fprintf(output,"KEY 0x%s FAILED\n",getkey);
}
} }
m_free(line); m_free(line);

View File

@ -38,6 +38,8 @@ if(@ARGV)
($login,$name)=(getpwuid($<))[0,6]; ($login,$name)=(getpwuid($<))[0,6];
$from="$name <$login>";
while(<STDIN>) while(<STDIN>)
{ {
last if($_ eq "\n"); last if($_ eq "\n");
@ -78,6 +80,29 @@ if(!defined($address))
exit(1); 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>) while(<STDIN>)
{ {
last if($_ eq "\n"); last if($_ eq "\n");
@ -104,7 +129,7 @@ if($command=~/get/i || $command=~/search/i)
foreach $key (@keys) foreach $key (@keys)
{ {
open(MAIL,"|$sendmail") || die "ERROR: Can't open $sendmail\n"; open(MAIL,"|$sendmail") || die "ERROR: Can't open $sendmail\n";
print MAIL "From: $name <$login>\n"; print MAIL "From: $from\n";
print MAIL "To: $address\n"; print MAIL "To: $address\n";
if($command=~/get/i) if($command=~/get/i)
{ {