]> the.earth.li Git - onak.git/blobdiff - keydb_hkp.c
Include - in the permitted characters for the HKP base URL
[onak.git] / keydb_hkp.c
index 0c6fd5a97f97f7eb50eecbe5a8d564430d3150e3..d55551e5724273ccf17fa44c232cb88e71c0dabc 100644 (file)
@@ -34,6 +34,7 @@
 #include "version.h"
 
 struct onak_hkp_dbctx {
+       struct onak_db_config *config; /* Our DB config info */
        CURL *curl;
        char hkpbase[1024];
 };
@@ -48,11 +49,11 @@ static int hkp_parse_url(struct onak_hkp_dbctx *privctx, const char *url)
        proto[0] = host[0] = 0;
        port = 0;
 
-       matched = sscanf(url, "%5[a-z]://%256[a-zA-Z0-9.]:%u", proto, host,
+       matched = sscanf(url, "%5[a-z]://%256[a-zA-Z0-9.-]:%u", proto, host,
                        &port);
        if (matched < 2) {
                proto[0] = 0;
-               sscanf(url, "%256[a-zA-Z0-9.]:%u", host, &port);
+               sscanf(url, "%256[a-zA-Z0-9.-]:%u", host, &port);
        }
 
        if (host[0] == 0) {
@@ -346,7 +347,7 @@ static void hkp_cleanupdb(struct onak_dbctx *dbctx)
  *
  *     We initialize CURL here.
  */
-struct onak_dbctx *keydb_hkp_init(bool readonly)
+struct onak_dbctx *keydb_hkp_init(struct onak_db_config *dbcfg, bool readonly)
 {
        struct onak_dbctx *dbctx;
        struct onak_hkp_dbctx *privctx;
@@ -357,6 +358,7 @@ struct onak_dbctx *keydb_hkp_init(bool readonly)
                return NULL;
        }
 
+       dbctx->config = dbcfg;
        dbctx->priv = privctx = malloc(sizeof(*privctx));
        dbctx->cleanupdb                = hkp_cleanupdb;
        dbctx->starttrans               = hkp_starttrans;
@@ -373,9 +375,11 @@ struct onak_dbctx *keydb_hkp_init(bool readonly)
        dbctx->getfullkeyid             = generic_getfullkeyid;
        dbctx->iterate_keys             = hkp_iterate_keys;
 
-       if (!hkp_parse_url(privctx, config.db_dir)) {
+       if (!hkp_parse_url(privctx, dbcfg->location)) {
                exit(EXIT_FAILURE);
        }
+       logthing(LOGTHING_INFO, "Using %s as HKP forwarding URL.",
+               privctx->hkpbase);
        curl_global_init(CURL_GLOBAL_DEFAULT);
        privctx->curl = curl_easy_init();
        if (privctx->curl == NULL) {