summaryrefslogtreecommitdiff
path: root/src/or/config.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2015-01-09 11:36:47 -0500
committerNick Mathewson <nickm@torproject.org>2015-01-10 15:09:07 -0500
commitc83d83814660b643b705ed7de4aa1fc35e2d20ad (patch)
treea40e8125e82391e69a16cac1ee73061243d00017 /src/or/config.c
parent33df3e37ffecfed309a1a0f210a96620c0ebb837 (diff)
downloadtor-c83d83814660b643b705ed7de4aa1fc35e2d20ad.tar.gz
tor-c83d83814660b643b705ed7de4aa1fc35e2d20ad.zip
Implement proposal 227-vote-on-package-fingerprints.txt
This implementation includes tests and a little documentation.
Diffstat (limited to 'src/or/config.c')
-rw-r--r--src/or/config.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/or/config.c b/src/or/config.c
index 2fa077e146..ab48bac50b 100644
--- a/src/or/config.c
+++ b/src/or/config.c
@@ -73,6 +73,7 @@ static config_abbrev_t option_abbrevs_[] = {
PLURAL(HiddenServiceExcludeNode),
PLURAL(NumCPU),
PLURAL(RendNode),
+ PLURAL(RecommendedPackage),
PLURAL(RendExcludeNode),
PLURAL(StrictEntryNode),
PLURAL(StrictExitNode),
@@ -352,6 +353,7 @@ static config_var_t option_vars_[] = {
V(RecommendedVersions, LINELIST, NULL),
V(RecommendedClientVersions, LINELIST, NULL),
V(RecommendedServerVersions, LINELIST, NULL),
+ V(RecommendedPackages, LINELIST, NULL),
V(RefuseUnknownExits, AUTOBOOL, "auto"),
V(RejectPlaintextPorts, CSV, ""),
V(RelayBandwidthBurst, MEMUNIT, "0"),
@@ -2725,6 +2727,13 @@ options_validate(or_options_t *old_options, or_options_t *options,
"features to be broken in unpredictable ways.");
}
+ for (cl = options->RecommendedPackages; cl; cl = cl->next) {
+ if (! validate_recommended_package_line(cl->value)) {
+ log_warn(LD_CONFIG, "Invalid RecommendedPackage line %s will be ignored",
+ escaped(cl->value));
+ }
+ }
+
if (options->AuthoritativeDir) {
if (!options->ContactInfo && !options->TestingTorNetwork)
REJECT("Authoritative directory servers must set ContactInfo");