X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=hashquery.c;h=5c056a2d3298ab3bb37769cbcd92eb1c0faae7f4;hb=adc800dbc424a1e246dd4a82a0c2e88eeda25531;hp=478c20f9453bc5c327353fdba6a585c4b395947f;hpb=5e1b22d763640c4d7a09d07920403d8d491b4410;p=onak.git diff --git a/hashquery.c b/hashquery.c index 478c20f..5c056a2 100644 --- a/hashquery.c +++ b/hashquery.c @@ -13,10 +13,10 @@ * more details. * * You should have received a copy of the GNU General Public License along with - * this program; if not, write to the Free Software Foundation, Inc., 51 - * Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + * this program. If not, see . */ +#include #include #include #include @@ -25,7 +25,7 @@ #include "charfuncs.h" #include "cleanup.h" -#include "keyid.h" +#include "keydb.h" #include "log.h" #include "marshal.h" #include "mem.h" @@ -47,6 +47,7 @@ int main(int argc, char *argv[]) uint8_t **hashes; struct buffer_ctx cgipostbuf; struct openpgp_publickey **keys; + struct onak_dbctx *dbctx; readconfig(NULL); initlogthing("hashquery", config.logfile); @@ -88,15 +89,16 @@ int main(int argc, char *argv[]) doerror("Couldn't allocate memory for reply.\n"); } - if (config.dbbackend->fetch_key_skshash == NULL) { + catchsignals(); + dbctx = config.dbinit(config.backend, false); + + if (dbctx->fetch_key_skshash == NULL) { + dbctx->cleanupdb(dbctx); doerror("Can't fetch by skshash with this backend."); } - catchsignals(); - config.dbbackend->initdb(false); - for (i = 0; i < count; i++) { - config.dbbackend->fetch_key_skshash( + dbctx->fetch_key_skshash(dbctx, (struct skshash *) hashes[i], &keys[found]); if (keys[found] != NULL) { found++; @@ -107,7 +109,7 @@ int main(int argc, char *argv[]) free(hashes); hashes = NULL; - config.dbbackend->cleanupdb(); + dbctx->cleanupdb(dbctx); puts("Content-Type: pgp/keys\n"); marshal_array(stdout_putchar, NULL,