aboutsummaryrefslogtreecommitdiff
path: root/src/or/routerparse.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2010-11-10 16:07:04 -0500
committerNick Mathewson <nickm@torproject.org>2010-11-10 16:07:04 -0500
commitd4e660ff68242f708bec4b527f17a06fb6183ac7 (patch)
tree35bc57d2a1622424ce42b752a8bc9cdc80491441 /src/or/routerparse.c
parent28d592267ef508c523c215cb6a120da19aa9d781 (diff)
parenta4bf5b51e9c84a74720ea95eed19d21faf8333ae (diff)
downloadtor-d4e660ff68242f708bec4b527f17a06fb6183ac7.tar.gz
tor-d4e660ff68242f708bec4b527f17a06fb6183ac7.zip
Merge remote branch 'origin/maint-0.2.2'
Diffstat (limited to 'src/or/routerparse.c')
-rw-r--r--src/or/routerparse.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/or/routerparse.c b/src/or/routerparse.c
index 2b82e9828f..39f4bc03af 100644
--- a/src/or/routerparse.c
+++ b/src/or/routerparse.c
@@ -1310,10 +1310,16 @@ router_parse_entry_from_string(const char *s, const char *end,
s = cp+1;
}
- if (allow_annotations && start_of_annotations != s) {
- if (tokenize_string(area,start_of_annotations,s,tokens,
- routerdesc_token_table,TS_NOCHECK)) {
- log_warn(LD_DIR, "Error tokenizing router descriptor (annotations).");
+ if (start_of_annotations != s) { /* We have annotations */
+ if (allow_annotations) {
+ if (tokenize_string(area,start_of_annotations,s,tokens,
+ routerdesc_token_table,TS_NOCHECK)) {
+ log_warn(LD_DIR, "Error tokenizing router descriptor (annotations).");
+ goto err;
+ }
+ } else {
+ log_warn(LD_DIR, "Found unexpected annotations on router descriptor not "
+ "loaded from disk. Dropping it.");
goto err;
}
}
@@ -3967,6 +3973,9 @@ tokenize_string(memarea_t *area,
end = start+strlen(start);
for (i = 0; i < _NIL; ++i)
counts[i] = 0;
+
+ SMARTLIST_FOREACH(out, const directory_token_t *, t, ++counts[t->tp]);
+
while (*s < end && (!tok || tok->tp != _EOF)) {
tok = get_next_token(area, s, end, table);
if (tok->tp == _ERR) {