]> the.earth.li Git - onak.git/blobdiff - keydb/keydb_pg.c
0.6.3 release
[onak.git] / keydb / keydb_pg.c
index 52d27fc538220b1c3c4661d5e952430b2e690067..85c16ccbdcf39d10c2e3aa0584e4da7c67517d49 100644 (file)
@@ -28,6 +28,7 @@
 #include <string.h>
 #include <unistd.h>
 
+#include "build-config.h"
 #include "hash.h"
 #include "keydb.h"
 #include "keyid.h"
@@ -46,21 +47,28 @@ struct pg_fc_ctx {
 /**
  *     keydb_fetchchar - Fetches a char from a file.
  */
-static int keydb_fetchchar(void *_ctx, size_t count, void *c)
+static size_t keydb_fetchchar(void *_ctx, size_t count, void *c)
 {
+       int ret;
+
        struct pg_fc_ctx *ctx = (struct pg_fc_ctx *) _ctx;
 
-       return (!lo_read(ctx->dbconn, ctx->fd, (char *) c, count));
+       ret = lo_read(ctx->dbconn, ctx->fd, (char *) c, count);
+
+       return (ret > 0) ? ret : 0;
 }
 
 /**
  *     keydb_putchar - Puts a char to a file.
  */
-static int keydb_putchar(void *_ctx, size_t count, void *c)
+static size_t keydb_putchar(void *_ctx, size_t count, void *c)
 {
        struct pg_fc_ctx *ctx = (struct pg_fc_ctx *) _ctx;
+       int ret;
+
+       ret = lo_write(ctx->dbconn, ctx->fd, (char *) c, count);
 
-       return !(lo_write(ctx->dbconn, ctx->fd, (char *) c, count));
+       return (ret > 0) ? ret : 0;
 }
 
 /**
@@ -290,19 +298,19 @@ static int pg_delete_key(struct onak_dbctx *dbctx,
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_keys WHERE keyid = '%" PRIX64 "'",
+                       "DELETE FROM onak_sigs WHERE signee = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_sigs WHERE signee = '%" PRIX64 "'",
+                       "DELETE FROM onak_uids WHERE keyid = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
                PQclear(result);
 
                snprintf(statement, 1023,
-                       "DELETE FROM onak_uids WHERE keyid = '%" PRIX64 "'",
+                       "DELETE FROM onak_keys WHERE keyid = '%" PRIX64 "'",
                        keyid);
                result = PQexec(dbconn, statement);
        } else if (PQresultStatus(result) != PGRES_TUPLES_OK) {
@@ -671,7 +679,8 @@ static void pg_cleanupdb(struct onak_dbctx *dbctx)
  *     this file are called in order to allow the DB to be initialized ready
  *     for access.
  */
-struct onak_dbctx *keydb_pg_init(struct onak_db_config *dbcfg, bool readonly)
+struct onak_dbctx *keydb_pg_init(struct onak_db_config *dbcfg,
+               __unused bool readonly)
 {
        struct onak_dbctx *dbctx;
        PGconn *dbconn;