aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Shaw <[email protected]>2004-05-26 15:01:48 +0000
committerDavid Shaw <[email protected]>2004-05-26 15:01:48 +0000
commitc88d037b6b7b3bfde03720bafb632d30c98fd6a3 (patch)
tree59ffdd3979438ccca5a3a7f2245ff3f50c390de4
parent* configure.ac: Try for wldap32 on Win32 platforms. (diff)
downloadgnupg-c88d037b6b7b3bfde03720bafb632d30c98fd6a3.tar.gz
gnupg-c88d037b6b7b3bfde03720bafb632d30c98fd6a3.zip
* keyserver.c (keyserver_refresh): Keep track of keys already fetched so
we don't do a regular keyserver fetch if the preferred keyserver fetch has exhausted the list.
Diffstat (limited to '')
-rw-r--r--g10/ChangeLog6
-rw-r--r--g10/keyserver.c11
2 files changed, 14 insertions, 3 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog
index 274b514f4..3d1b1f4b6 100644
--- a/g10/ChangeLog
+++ b/g10/ChangeLog
@@ -1,3 +1,9 @@
+2004-05-26 David Shaw <[email protected]>
+
+ * keyserver.c (keyserver_refresh): Keep track of keys already
+ fetched so we don't do a regular keyserver fetch if the preferred
+ keyserver fetch has exhausted the list.
+
2004-05-23 David Shaw <[email protected]>
* verify.c (verify_signatures): Verify multiple files in the same
diff --git a/g10/keyserver.c b/g10/keyserver.c
index fc3f4fecb..5c0311a43 100644
--- a/g10/keyserver.c
+++ b/g10/keyserver.c
@@ -1487,7 +1487,7 @@ keyidlist(STRLIST users,KEYDB_SEARCH_DESC **klist,int *count,int fakev3)
int
keyserver_refresh(STRLIST users)
{
- int rc,count,fakev3=0;
+ int rc,count,numdesc,fakev3=0;
KEYDB_SEARCH_DESC *desc;
/* We switch merge_only on during a refresh, as 'refresh' should
@@ -1502,10 +1502,11 @@ keyserver_refresh(STRLIST users)
ascii_strcasecmp(opt.keyserver->scheme,"mailto")==0))
fakev3=1;
- rc=keyidlist(users,&desc,&count,fakev3);
+ rc=keyidlist(users,&desc,&numdesc,fakev3);
if(rc)
return rc;
+ count=numdesc;
if(count>0)
{
int i;
@@ -1532,12 +1533,16 @@ keyserver_refresh(STRLIST users)
get it again from the regular keyserver. */
desc[i].mode=KEYDB_SEARCH_MODE_NONE;
+ count--;
}
free_keyserver_spec(keyserver);
}
}
+ }
+ if(count>0)
+ {
if(opt.keyserver)
{
if(count==1)
@@ -1547,7 +1552,7 @@ keyserver_refresh(STRLIST users)
count,opt.keyserver->uri);
}
- rc=keyserver_work(GET,NULL,desc,count,opt.keyserver);
+ rc=keyserver_work(GET,NULL,desc,numdesc,opt.keyserver);
}
m_free(desc);