diff options
author | David Shaw <[email protected]> | 2002-10-09 02:03:22 +0000 |
---|---|---|
committer | David Shaw <[email protected]> | 2002-10-09 02:03:22 +0000 |
commit | 7a3e9403009aa66daec15074938966089d85edf6 (patch) | |
tree | a5ee192ac2a13af2796b415bc76a7b43262af6bd /keyserver/gpgkeys_hkp.c | |
parent | * keyserver.h: Add new error code KEYSERVER_UNREACHABLE. (diff) | |
download | gnupg-7a3e9403009aa66daec15074938966089d85edf6.tar.gz gnupg-7a3e9403009aa66daec15074938966089d85edf6.zip |
* gpgkeys_ldap.c (fail_all): New function to unwind a keylist and error
each item. (main): Call fail_all from here, as needed. Also add a
NO_MEMORY error in an appropriate place and fix error return code.
(ldap_err_to_gpg_err): Add KEYSERVER_UNREACHABLE.
* gpgkeys_hkp.c (fail_all): New function to unwind a keylist and error
each item. (main): Call fail_all from here. Also add a NO_MEMORY error in
an appropriate place. (get_key): Use new UNREACHABLE error for network
errors.
Diffstat (limited to '')
-rw-r--r-- | keyserver/gpgkeys_hkp.c | 34 |
1 files changed, 32 insertions, 2 deletions
diff --git a/keyserver/gpgkeys_hkp.c b/keyserver/gpgkeys_hkp.c index 0c701a3e8..2495d50ba 100644 --- a/keyserver/gpgkeys_hkp.c +++ b/keyserver/gpgkeys_hkp.c @@ -254,7 +254,8 @@ get_key(char *getkey) { fprintf(console,"gpgkeys: HKP fetch error: %s\n", rc==G10ERR_NETWORK?strerror(errno):g10_errstr(rc)); - fprintf(output,"KEY 0x%s FAILED %d\n",getkey,KEYSERVER_INTERNAL_ERROR); + fprintf(output,"KEY 0x%s FAILED %d\n",getkey, + rc==G10ERR_NETWORK?KEYSERVER_UNREACHABLE:KEYSERVER_INTERNAL_ERROR); } else { @@ -682,6 +683,30 @@ search_key(char *searchkey) return ret; } +void +fail_all(struct keylist *keylist,int action,int err) +{ + if(!keylist) + return; + + if(action==SEARCH) + { + fprintf(output,"SEARCH "); + while(keylist) + { + fprintf(output,"%s ",keylist->str); + keylist=keylist->next; + } + fprintf(output,"FAILED %d\n",err); + } + else + while(keylist) + { + fprintf(output,"KEY %s FAILED %d\n",keylist->str,err); + keylist=keylist->next; + } +} + int main(int argc,char *argv[]) { @@ -856,6 +881,7 @@ main(int argc,char *argv[]) { fprintf(console,"gpgkeys: out of memory while " "building key list\n"); + ret=KEYSERVER_NO_MEMORY; goto fail; } @@ -960,7 +986,11 @@ main(int argc,char *argv[]) searchkey=malloc(len+1); if(searchkey==NULL) - goto fail; + { + ret=KEYSERVER_NO_MEMORY; + fail_all(keylist,action,KEYSERVER_NO_MEMORY); + goto fail; + } searchkey[0]='\0'; |