X-Git-Url: https://the.earth.li/gitweb/?p=onak.git;a=blobdiff_plain;f=onak-conf.c;h=e6b645c48057bf4bf10fb4143ebcd82f87a1dc14;hp=e4f0bc75312f1b5f4c65cbfbbf1ab27c7868f25d;hb=a0d1c99184eeb07a6a7711e168c3db4b8c0937eb;hpb=5719b2b50c87d77e4ed1cc054f000845fc9aa8cc diff --git a/onak-conf.c b/onak-conf.c index e4f0bc7..e6b645c 100644 --- a/onak-conf.c +++ b/onak-conf.c @@ -24,6 +24,7 @@ #include #include +#include "cleankey.h" #include "ll.h" #include "log.h" #include "onak-conf.h" @@ -52,7 +53,7 @@ struct onak_config config = { .dbinit = DBINIT, - .check_sighash = true, + .clean_policies = ONAK_CLEAN_CHECK_SIGHASH, .bin_dir = NULL, .mail_dir = NULL, @@ -169,8 +170,14 @@ static bool parseoldconfigline(char *line) } else if (!strncmp("sock_dir ", line, 9)) { config.sock_dir = strdup(&line[9]); } else if (!strncmp("check_sighash ", line, 9)) { - config.check_sighash = parsebool(&line[9], - config.check_sighash); + if (parsebool(&line[9], config.clean_policies & + ONAK_CLEAN_CHECK_SIGHASH)) { + config.clean_policies |= + ONAK_CLEAN_CHECK_SIGHASH; + } else { + config.clean_policies &= + ~ONAK_CLEAN_CHECK_SIGHASH; + } } else { return false; } @@ -273,8 +280,14 @@ static bool parseconfigline(char *line) strdup(value)); /* [verification] section */ } else if (MATCH("verification", "check_sighash")) { - config.check_sighash = parsebool(value, - config.check_sighash); + if (parsebool(value, config.clean_policies & + ONAK_CLEAN_CHECK_SIGHASH)) { + config.clean_policies |= + ONAK_CLEAN_CHECK_SIGHASH; + } else { + config.clean_policies &= + ~ONAK_CLEAN_CHECK_SIGHASH; + } } else { return false; } @@ -448,7 +461,8 @@ void writeconfig(const char *configfile) fprintf(conffile, "\n"); fprintf(conffile, "[verification]\n"); - WRITE_BOOL(config.check_sighash, "check_sighash"); + WRITE_BOOL(config.clean_policies & ONAK_CLEAN_CHECK_SIGHASH, + "check_sighash"); fprintf(conffile, "\n"); fprintf(conffile, "[mail]\n");