diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/or/config.c | 3 | ||||
-rw-r--r-- | src/or/routerparse.c | 17 |
2 files changed, 14 insertions, 6 deletions
diff --git a/src/or/config.c b/src/or/config.c index ee0c466e0b..06a9a3b163 100644 --- a/src/or/config.c +++ b/src/or/config.c @@ -2406,8 +2406,7 @@ resolve_my_address(int warn_severity, or_options_t *options, } tor_inet_ntoa(&in,tmpbuf,sizeof(tmpbuf)); - if (is_internal_IP(ntohl(in.s_addr), 0) && - options->_PublishServerDescriptor) { + if (is_internal_IP(ntohl(in.s_addr), 0)) { /* make sure we're ok with publishing an internal IP */ if (!options->DirServers && !options->AlternateDirAuthority) { /* if they are using the default dirservers, disallow internal IPs diff --git a/src/or/routerparse.c b/src/or/routerparse.c index 96749e5a74..1ce105abab 100644 --- a/src/or/routerparse.c +++ b/src/or/routerparse.c @@ -1312,10 +1312,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) { |