]> the.earth.li Git - onak.git/blobdiff - onak.c
cscvs to tla changeset 120
[onak.git] / onak.c
diff --git a/onak.c b/onak.c
index 2da86c915cae8708a192c7f0668cda6bc6eb6076..0fdb7e4bf7510456cd9498422b808cc4e773201b 100644 (file)
--- a/onak.c
+++ b/onak.c
@@ -7,7 +7,7 @@
  * 
  * Copyright 2002 Project Purple
  *
- * $Id: onak.c,v 1.17 2003/09/30 20:40:11 noodles Exp $
+ * $Id: onak.c,v 1.19 2004/03/23 12:33:47 noodles Exp $
  */
 
 #include <stdio.h>
@@ -71,6 +71,7 @@ int main(int argc, char *argv[])
        struct openpgp_packet_list      *packets = NULL;
        struct openpgp_packet_list      *list_end = NULL;
        struct openpgp_publickey        *keys = NULL;
+       char                            *configfile = NULL;
        int                              rc = EXIT_SUCCESS;
        int                              result = 0;
        char                            *search = NULL;
@@ -83,11 +84,14 @@ int main(int argc, char *argv[])
        bool                             fingerprint = false;
        int                              optchar;
 
-       while ((optchar = getopt(argc, argv, "bfuv")) != -1 ) {
+       while ((optchar = getopt(argc, argv, "bc:fuv")) != -1 ) {
                switch (optchar) {
                case 'b': 
                        binary = true;
                        break;
+               case 'c':
+                       configfile = strdup(optarg);
+                       break;
                case 'f': 
                        fingerprint = true;
                        break;
@@ -101,13 +105,13 @@ int main(int argc, char *argv[])
                }
        }
 
-       readconfig();
+       readconfig(configfile);
        initlogthing("onak", config.logfile);
 
        if ((argc - optind) < 1) {
                usage();
        } else if (!strcmp("dump", argv[optind])) {
-               initdb();
+               initdb(true);
                dumpdb("keydump");
                cleanupdb();
        } else if (!strcmp("add", argv[optind])) {
@@ -126,7 +130,7 @@ int main(int argc, char *argv[])
                        logthing(LOGTHING_INFO, "Finished reading %d keys.",
                                        result);
 
-                       initdb();
+                       initdb(false);
                        logthing(LOGTHING_NOTICE, "Got %d new keys.",
                                        update_keys(&keys));
                        if (keys != NULL && update) {
@@ -162,7 +166,7 @@ int main(int argc, char *argv[])
                                ishex = true;
                        }
                }
-               initdb();
+               initdb(false);
                if (!strcmp("index", argv[optind])) {
                        find_keys(search, keyid, ishex, fingerprint,
                                        false, false);