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:
parent
4139587267
commit
f4f5ea43e7
8 changed files with 114 additions and 27 deletions
32
g10/getkey.c
32
g10/getkey.c
|
@ -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)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue