diff options
author | Werner Koch <wk@gnupg.org> | 2016-01-13 15:08:42 +0100 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 2016-01-13 15:08:42 +0100 |
commit | c7ca0f73dbe7c080b79f93f90f00ba2396fc4bd0 (patch) | |
tree | 0148dd57d0618522515d0da351db23794cf0d1a8 /sm | |
parent | gpg: Improve error code from lock_all. (diff) | |
download | gnupg2-c7ca0f73dbe7c080b79f93f90f00ba2396fc4bd0.tar.xz gnupg2-c7ca0f73dbe7c080b79f93f90f00ba2396fc4bd0.zip |
kbx: Change return type of search functions to gpg_error_t.
* kbx/keybox-search.c (keybox_search_reset): Change return type to
gpg_error_t.
(keybox_search): Ditto. Also handle GPG_ERR_EOF.
* sm/keydb.c (keydb_search_reset): Ditto.
Signed-off-by: Werner Koch <wk@gnupg.org>
Diffstat (limited to 'sm')
-rw-r--r-- | sm/keydb.c | 14 | ||||
-rw-r--r-- | sm/keydb.h | 2 |
2 files changed, 9 insertions, 7 deletions
diff --git a/sm/keydb.c b/sm/keydb.c index 0ef3c8f42..f5705cb45 100644 --- a/sm/keydb.c +++ b/sm/keydb.c @@ -928,10 +928,11 @@ keydb_rebuild_caches (void) /* * Start the next search on this handle right at the beginning */ -int +gpg_error_t keydb_search_reset (KEYDB_HANDLE hd) { - int i, rc = 0; + int i; + gpg_error_t rc = 0; if (!hd) return gpg_error (GPG_ERR_INV_VALUE); @@ -950,8 +951,7 @@ keydb_search_reset (KEYDB_HANDLE hd) break; } } - return rc; /* fixme: we need to map error codes or share them with - all modules*/ + return rc; } /* @@ -980,8 +980,10 @@ keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc) NULL, &skipped); break; } - if (rc == -1) /* EOF -> switch to next resource */ - hd->current++; + if (rc == -1 || gpg_err_code (rc) == GPG_ERR_EOF) + { /* EOF -> switch to next resource */ + hd->current++; + } else if (!rc) hd->found = hd->current; } diff --git a/sm/keydb.h b/sm/keydb.h index 03de1c69e..3c0f2d6ee 100644 --- a/sm/keydb.h +++ b/sm/keydb.h @@ -54,7 +54,7 @@ int keydb_delete (KEYDB_HANDLE hd, int unlock); int keydb_locate_writable (KEYDB_HANDLE hd, const char *reserved); void keydb_rebuild_caches (void); -int keydb_search_reset (KEYDB_HANDLE hd); +gpg_error_t keydb_search_reset (KEYDB_HANDLE hd); int keydb_search (KEYDB_HANDLE hd, KEYDB_SEARCH_DESC *desc, size_t ndesc); int keydb_search_first (KEYDB_HANDLE hd); int keydb_search_next (KEYDB_HANDLE hd); |