X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=keydb_pg.c;h=8b89b7182115f296af3c37ca1bec7482c5a4d1a7;hb=b7a5a70eb8d8f312325af828b47726977f4fbb79;hp=c643a79a57c38bd9e44305daec3af1a0282e6fee;hpb=7b7cb978ab032edb192effcd9eac443d8800b565;p=onak.git diff --git a/keydb_pg.c b/keydb_pg.c index c643a79..8b89b71 100644 --- a/keydb_pg.c +++ b/keydb_pg.c @@ -5,7 +5,7 @@ * * Copyright 2002 Project Purple * - * $Id: keydb_pg.c,v 1.11 2003/06/05 07:32:00 noodles Exp $ + * $Id: keydb_pg.c,v 1.14 2004/03/23 12:33:47 noodles Exp $ */ #include @@ -60,7 +60,7 @@ static int keydb_putchar(void *fd, size_t count, unsigned char *c) * this file are called in order to allow the DB to be initialized ready * for access. */ -void initdb(void) +void initdb(bool readonly) { dbconn = PQsetdbLogin(config.pg_dbhost, // host NULL, // port @@ -176,7 +176,7 @@ int fetch_key(uint64_t keyid, struct openpgp_publickey **publickey, "Can't open large object."); } else { read_openpgp_stream(keydb_fetchchar, &fd, - &packets); + &packets, 0); parse_keys(packets, publickey); lo_close(dbconn, fd); free_packet_list(packets); @@ -504,11 +504,12 @@ char *keyid2uid(uint64_t keyid) /** * getkeysigs - Gets a linked list of the signatures on a key. * @keyid: The keyid to get the sigs for. + * @revoked: If the key is revoked. * * This function gets the list of signatures on a key. Used for key * indexing and doing stats bits. */ -struct ll *getkeysigs(uint64_t keyid) +struct ll *getkeysigs(uint64_t keyid, bool *revoked) { struct ll *sigs = NULL; PGresult *result = NULL; @@ -556,6 +557,16 @@ struct ll *getkeysigs(uint64_t keyid) result = PQexec(dbconn, "COMMIT"); PQclear(result); } + + /* + * TODO: What do we do about revocations? We don't have the details + * stored in a separate table, so we'd have to grab the key and decode + * it, which we're trying to avoid by having a signers table. + */ + if (revoked != NULL) { + *revoked = false; + } + return sigs; }