mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-09-21 21:44:58 +02:00
Merge remote-tracking branch 'origin/maint-0.2.2'
Conflicts: src/or/main.c src/or/microdesc.c
This commit is contained in:
commit
599d1b62b4
6
changes/bug2230_part4
Normal file
6
changes/bug2230_part4
Normal file
@ -0,0 +1,6 @@
|
||||
o Minor bugfixes:
|
||||
- Authorities now clean their microdesc cache periodically and when
|
||||
reading from disk initially, not only when adding new descriptors.
|
||||
This prevents a bug where we could lose microdescriptors. Bugfix
|
||||
on 0.2.2.6-alpha.
|
||||
|
@ -1269,6 +1269,7 @@ run_scheduled_events(time_t now)
|
||||
rep_history_clean(now - options->RephistTrackTime);
|
||||
rend_cache_clean(now);
|
||||
rend_cache_clean_v2_descs_as_dir(now);
|
||||
microdesc_cache_rebuild(NULL, 0);
|
||||
#define CLEAN_CACHES_INTERVAL (30*60)
|
||||
time_to_clean_caches = now + CLEAN_CACHES_INTERVAL;
|
||||
}
|
||||
|
@ -245,8 +245,6 @@ microdescs_add_list_to_cache(microdesc_cache_t *cache,
|
||||
if (f)
|
||||
finish_writing_to_file(open_file); /*XXX Check me.*/
|
||||
|
||||
microdesc_cache_rebuild(cache, 0/* only as needed */);
|
||||
|
||||
{
|
||||
networkstatus_t *ns = networkstatus_get_latest_consensus();
|
||||
if (ns && ns->flavor == FLAV_MICRODESC)
|
||||
@ -273,6 +271,7 @@ microdesc_cache_clear(microdesc_cache_t *cache)
|
||||
}
|
||||
cache->total_len_seen = 0;
|
||||
cache->n_seen = 0;
|
||||
cache->bytes_dropped = 0;
|
||||
}
|
||||
|
||||
/** Reload the contents of <b>cache</b> from disk. If it is empty, load it
|
||||
@ -314,7 +313,7 @@ microdesc_cache_reload(microdesc_cache_t *cache)
|
||||
log_notice(LD_DIR, "Reloaded microdescriptor cache. Found %d descriptors.",
|
||||
total);
|
||||
|
||||
microdesc_cache_clean(cache, 0, 0);
|
||||
microdesc_cache_rebuild(cache, 0 /* don't force */);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -399,6 +398,12 @@ microdesc_cache_rebuild(microdesc_cache_t *cache, int force)
|
||||
off_t off = 0;
|
||||
int orig_size, new_size;
|
||||
|
||||
if (cache == NULL) {
|
||||
cache = the_microdesc_cache;
|
||||
if (cache == NULL)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Remove dead descriptors */
|
||||
microdesc_cache_clean(cache, 0/*cutoff*/, 0/*force*/);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user