X-Git-Url: https://git.sommitrealweird.co.uk/onak.git/blobdiff_plain/7b7cb978ab032edb192effcd9eac443d8800b565..6bf59599ecd9e30e91c5eefa22472ee080315c30:/keydb_pg.c?ds=sidebyside diff --git a/keydb_pg.c b/keydb_pg.c index c643a79..b5afc9e 100644 --- a/keydb_pg.c +++ b/keydb_pg.c @@ -5,14 +5,12 @@ * * 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 #include -//#include -//#include #include #include #include @@ -60,7 +58,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 +174,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); @@ -243,7 +241,8 @@ int fetch_key_text(const char *search, 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 +503,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 +556,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; }