]> the.earth.li Git - onak.git/blobdiff - cgi/hashquery.c
0.6.3 release
[onak.git] / cgi / hashquery.c
index a8ca3d06109d0b909a80c6aaa7ef4c84f6db65e9..d750608b812342cc9160c70bc574ab73b42e0294 100644 (file)
@@ -23,6 +23,7 @@
 #include <stdint.h>
 #include <unistd.h>
 
+#include "build-config.h"
 #include "charfuncs.h"
 #include "cleanup.h"
 #include "keydb.h"
@@ -40,7 +41,7 @@ void doerror(char *error)
        exit(EXIT_FAILURE);
 }
 
-int main(int argc, char *argv[])
+int main(__unused int argc, __unused char *argv[])
 {
        char *request_method, *env;
        int count, found, i;
@@ -73,7 +74,7 @@ int main(int argc, char *argv[])
        }
 
        hashes = (uint8_t **) unmarshal_array(buffer_fetchchar, &cgipostbuf,
-                       (void * (*)(int (*)(void *, size_t,  void *), void *))
+                       (void * (*)(size_t (*)(void *, size_t,  void *), void *))
                                unmarshal_skshash, &count);
 
        free(cgipostbuf.buffer);
@@ -93,6 +94,10 @@ int main(int argc, char *argv[])
        catchsignals();
        dbctx = config.dbinit(config.backend, false);
 
+       if (dbctx == NULL) {
+               doerror("Failed to open key database.");
+       }
+
        if (dbctx->fetch_key_skshash == NULL) {
                dbctx->cleanupdb(dbctx);
                doerror("Can't fetch by skshash with this backend.");
@@ -114,7 +119,7 @@ int main(int argc, char *argv[])
 
        puts("Content-Type: pgp/keys\n");
        marshal_array(stdout_putchar, NULL,
-                       (void (*)(int (*)(void *, size_t,  void *),
+                       (void (*)(size_t (*)(void *, size_t,  void *),
                                        void *, const void *))
                                marshal_publickey, (void **) keys, found);
        printf("\n");