X-Git-Url: https://the.earth.li/gitweb/?a=blobdiff_plain;f=onak-conf.c;h=a67c950432e2c05322eff4de91f43a37b01059ad;hb=6565bed3065d1751abf469da1a85884d9ddde759;hp=c30260fd6318cbb2d47d5792fe34a8adbf9f0943;hpb=a799cc2909f47d918d1ec7171a9edba28a9f5136;p=onak.git diff --git a/onak-conf.c b/onak-conf.c index c30260f..a67c950 100644 --- a/onak-conf.c +++ b/onak-conf.c @@ -58,7 +58,7 @@ struct onak_config config = { .dbinit = NULL, #endif - .clean_policies = ONAK_CLEAN_CHECK_SIGHASH, + .clean_policies = ONAK_CLEAN_DROP_V3_KEYS | ONAK_CLEAN_CHECK_SIGHASH, .bin_dir = NULL, .mail_dir = NULL, @@ -284,6 +284,17 @@ static bool parseconfigline(char *line) config.syncsites = lladd(config.syncsites, strdup(value)); /* [verification] section */ + } else if (MATCH("verification", "blacklist")) { + array_load(&config.blacklist, value); + } else if (MATCH("verification", "drop_v3")) { + if (parsebool(value, config.clean_policies & + ONAK_CLEAN_DROP_V3_KEYS)) { + config.clean_policies |= + ONAK_CLEAN_DROP_V3_KEYS; + } else { + config.clean_policies &= + ~ONAK_CLEAN_DROP_V3_KEYS; + } } else if (MATCH("verification", "check_sighash")) { if (parsebool(value, config.clean_policies & ONAK_CLEAN_CHECK_SIGHASH)) { @@ -302,6 +313,15 @@ static bool parseconfigline(char *line) config.clean_policies &= ~ONAK_CLEAN_LARGE_PACKETS; } + } else if (MATCH("verification", "update_only")) { + if (parsebool(value, config.clean_policies & + ONAK_CLEAN_UPDATE_ONLY)) { + config.clean_policies |= + ONAK_CLEAN_UPDATE_ONLY; + } else { + config.clean_policies &= + ~ONAK_CLEAN_UPDATE_ONLY; + } } else { return false; } @@ -382,6 +402,12 @@ void readconfig(const char *configfile) { conffile = fopen(configfile, "r"); } + if (oldstyle) { + logthing(LOGTHING_CRITICAL, "Reading deprecated old-style " + "configuration file. This will not be " + "supported in the next release."); + } + if (conffile != NULL) { if (!fgets(curline, 1023, conffile)) { logthing(LOGTHING_CRITICAL, @@ -587,4 +613,7 @@ void cleanupconfig(void) { free(config.mail_dir); config.mail_dir = NULL; } + if (config.blacklist.count != 0) { + array_free(&config.blacklist); + } }