aboutsummaryrefslogtreecommitdiff
path: root/src/lib/confmgt
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2020-02-26 14:16:55 -0500
committerNick Mathewson <nickm@torproject.org>2020-02-26 14:18:40 -0500
commit2c792d1e0e6f92c33287ba8e87055142745a6532 (patch)
tree37043dd76020004a96ba70541bbd836a59283189 /src/lib/confmgt
parent7e7aff9b6a3bcf240fe30320e1bcd5ffdab92f13 (diff)
downloadtor-2c792d1e0e6f92c33287ba8e87055142745a6532.tar.gz
tor-2c792d1e0e6f92c33287ba8e87055142745a6532.zip
In typed_var_kvassign, include config names in error messages.
This should improve the usability of our configuration error messages.
Diffstat (limited to 'src/lib/confmgt')
-rw-r--r--src/lib/confmgt/typedvar.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/confmgt/typedvar.c b/src/lib/confmgt/typedvar.c
index 3a188db953..1955302cdc 100644
--- a/src/lib/confmgt/typedvar.c
+++ b/src/lib/confmgt/typedvar.c
@@ -24,6 +24,7 @@
#include "lib/log/log.h"
#include "lib/log/util_bug.h"
#include "lib/malloc/malloc.h"
+#include "lib/string/printf.h"
#include "lib/string/util_string.h"
#include "lib/confmgt/var_type_def_st.h"
@@ -75,7 +76,15 @@ typed_var_kvassign(void *target, const config_line_t *line,
return def->fns->kv_parse(target, line, errmsg, def->params);
}
- return typed_var_assign(target, line->value, errmsg, def);
+ int rv = typed_var_assign(target, line->value, errmsg, def);
+ if (rv < 0 && *errmsg != NULL) {
+ /* typed_var_assign() didn't know the line's keyword, but we do.
+ * Let's add it to the error message. */
+ char *oldmsg = *errmsg;
+ tor_asprintf(errmsg, "Could not parse %s: %s", line->key, oldmsg);
+ tor_free(oldmsg);
+ }
+ return rv;
}
/**