Merge remote-tracking branch 'origin/maint-0.2.2'

Conflicts:
	src/or/microdesc.c
This commit is contained in:
Nick Mathewson 2011-05-03 16:33:41 -04:00
commit 1f97e8322f
3 changed files with 16 additions and 2 deletions

7
changes/bug2230_part1 Normal file
View File

@ -0,0 +1,7 @@
o Minor bugfixes
- When loading the microdesc journal, remember its current size.
In 0.2.2, this helps prevent the microdesc journal from growing
without limit on authorities (who are the only ones to use it in
0.2.2). Fixes a part of bug 2230; bugfix on 0.2.2.6-alpha.
Fix posted by "cypherpunks."

5
changes/bug2230_part2 Normal file
View File

@ -0,0 +1,5 @@
o Minor bugfixes
- The microdesc journal is supposed to get rebuilt only if it is
at least _half_ the length of the store, not _twice_ the length
of the store. Bugfix on 0.2.2.6-alpha; fixes part of bug 2230.

View File

@ -246,9 +246,10 @@ microdescs_add_list_to_cache(microdesc_cache_t *cache,
{ {
size_t old_content_len = size_t old_content_len =
cache->cache_content ? cache->cache_content->size : 0; cache->cache_content ? cache->cache_content->size : 0;
if ((cache->journal_len > 16384 + old_content_len && if (cache->journal_len > 16384 + old_content_len &&
cache->journal_len > old_content_len / 2)) cache->journal_len > old_content_len / 2) {
microdesc_cache_rebuild(cache); microdesc_cache_rebuild(cache);
}
} }
{ {
@ -305,6 +306,7 @@ microdesc_cache_reload(microdesc_cache_t *cache)
journal_content = read_file_to_str(cache->journal_fname, journal_content = read_file_to_str(cache->journal_fname,
RFTS_IGNORE_MISSING, &st); RFTS_IGNORE_MISSING, &st);
if (journal_content) { if (journal_content) {
cache->journal_len = (size_t) st.st_size;
added = microdescs_add_to_cache(cache, journal_content, added = microdescs_add_to_cache(cache, journal_content,
journal_content+st.st_size, journal_content+st.st_size,
SAVED_IN_JOURNAL, 0, -1, NULL); SAVED_IN_JOURNAL, 0, -1, NULL);