1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

* keydb.h, getkey.c (release_akl), gpg.c (main): Add

--no-auto-key-locate.

* options.h, gpg.c (main): Keep track of each keyserver registered so
we can match on them later.

* keyserver-internal.h, keyserver.c (cmp_keyserver_spec,
keyserver_match), gpgv.c: New.  Find a keyserver that matches ours and
return its spec.

* getkey.c (get_pubkey_byname): Use it here to get the per-keyserver
options from an earlier keyserver.
This commit is contained in:
David Shaw 2006-02-24 14:27:22 +00:00
parent 4139587267
commit f4f5ea43e7
8 changed files with 114 additions and 27 deletions

View file

@ -1,6 +1,6 @@
/* getkey.c - Get a key from the database
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,
* 2005 Free Software Foundation, Inc.
* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
* 2006 Free Software Foundation, Inc.
*
* This file is part of GnuPG.
*
@ -989,13 +989,18 @@ get_pubkey_byname (PKT_public_key *pk,
break;
case AKL_SPEC:
glo_ctrl.in_auto_key_retrieve++;
res=keyserver_import_name(name,akl->spec);
glo_ctrl.in_auto_key_retrieve--;
{
struct keyserver_spec *keyserver;
if(res==0)
log_info(_("Automatically retrieved `%s' via %s\n"),
name,akl->spec->uri);
keyserver=keyserver_match(akl->spec);
glo_ctrl.in_auto_key_retrieve++;
res=keyserver_import_name(name,keyserver);
glo_ctrl.in_auto_key_retrieve--;
if(res==0)
log_info(_("Automatically retrieved `%s' via %s\n"),
name,akl->spec->uri);
}
break;
}
@ -2898,6 +2903,17 @@ free_akl(struct akl *akl)
xfree(akl);
}
void
release_akl(void)
{
while(opt.auto_key_locate)
{
struct akl *akl2=opt.auto_key_locate;
opt.auto_key_locate=opt.auto_key_locate->next;
free_akl(akl2);
}
}
int
parse_auto_key_locate(char *options)
{