Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
David Goulet
Tor
Commits
d3af4f4e
Commit
d3af4f4e
authored
Feb 23, 2016
by
Nick Mathewson
🎨
Browse files
Merge remote-tracking branch 'arma/bug16825'
parents
e88686cb
e3eaee1d
Changes
4
Hide whitespace changes
Inline
Side-by-side
changes/bug16825
0 → 100644
View file @
d3af4f4e
o Minor bugfixes:
- Count receipt of new microdescriptors as progress towards
bootstrapping. Now, when a user who has set EntryNodes finishes
bootstrapping, Tor automatically repopulates the guard set based
on this new directory information. Fixes bug 16825; bugfix on
0.2.3.1-alpha.
src/or/directory.c
View file @
d3af4f4e
...
...
@@ -1764,7 +1764,7 @@ load_downloaded_routers(const char *body, smartlist_t *which,
added
=
router_load_routers_from_string
(
body
,
NULL
,
SAVED_NOWHERE
,
which
,
descriptor_digests
,
buf
);
if
(
general
)
if
(
added
&&
general
)
control_event_bootstrap
(
BOOTSTRAP_STATUS_LOADING_DESCRIPTORS
,
count_loading_descriptors_progress
());
return
added
;
...
...
@@ -1965,7 +1965,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
routers_update_all_from_networkstatus
(
now
,
3
);
update_microdescs_from_networkstatus
(
now
);
update_microdesc_downloads
(
now
);
directory_info_has_arrived
(
now
,
0
);
directory_info_has_arrived
(
now
,
0
,
0
);
log_info
(
LD_DIR
,
"Successfully loaded consensus."
);
}
...
...
@@ -2001,7 +2001,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
* ones got flushed to disk so it's safe to call this on them */
connection_dir_download_cert_failed
(
conn
,
status_code
);
}
else
{
directory_info_has_arrived
(
now
,
0
);
directory_info_has_arrived
(
now
,
0
,
0
);
log_info
(
LD_DIR
,
"Successfully loaded certificates from fetch."
);
}
}
else
{
...
...
@@ -2115,7 +2115,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
if
(
load_downloaded_routers
(
body
,
which
,
descriptor_digests
,
conn
->
router_purpose
,
conn
->
base_
.
address
))
directory_info_has_arrived
(
now
,
0
);
directory_info_has_arrived
(
now
,
0
,
0
);
}
}
if
(
which
)
{
/* mark remaining ones as failed */
...
...
@@ -2166,8 +2166,11 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
/* Mark remaining ones as failed. */
dir_microdesc_download_failed
(
which
,
status_code
);
}
control_event_bootstrap
(
BOOTSTRAP_STATUS_LOADING_DESCRIPTORS
,
count_loading_descriptors_progress
());
if
(
mds
&&
smartlist_len
(
mds
))
{
control_event_bootstrap
(
BOOTSTRAP_STATUS_LOADING_DESCRIPTORS
,
count_loading_descriptors_progress
());
directory_info_has_arrived
(
now
,
0
,
1
);
}
SMARTLIST_FOREACH
(
which
,
char
*
,
cp
,
tor_free
(
cp
));
smartlist_free
(
which
);
smartlist_free
(
mds
);
...
...
src/or/main.c
View file @
d3af4f4e
...
...
@@ -1002,12 +1002,12 @@ directory_all_unreachable(time_t now)
/** This function is called whenever we successfully pull down some new
* network statuses or server descriptors. */
void
directory_info_has_arrived
(
time_t
now
,
int
from_cache
)
directory_info_has_arrived
(
time_t
now
,
int
from_cache
,
int
suppress_logs
)
{
const
or_options_t
*
options
=
get_options
();
if
(
!
router_have_minimum_dir_info
())
{
int
quiet
=
from_cache
||
int
quiet
=
suppress_logs
||
from_cache
||
directory_too_idle_to_fetch_descriptors
(
options
,
now
);
tor_log
(
quiet
?
LOG_INFO
:
LOG_NOTICE
,
LD_DIR
,
"I learned some more directory information, but not enough to "
...
...
@@ -2391,7 +2391,7 @@ do_main_loop(void)
* appropriate.)
*/
now
=
time
(
NULL
);
directory_info_has_arrived
(
now
,
1
);
directory_info_has_arrived
(
now
,
1
,
0
);
if
(
server_mode
(
get_options
()))
{
/* launch cpuworkers. Need to do this *after* we've read the onion key. */
...
...
src/or/main.h
View file @
d3af4f4e
...
...
@@ -48,7 +48,7 @@ MOCK_DECL(void,connection_start_writing,(connection_t *conn));
void
connection_stop_reading_from_linked_conn
(
connection_t
*
conn
);
void
directory_all_unreachable
(
time_t
now
);
void
directory_info_has_arrived
(
time_t
now
,
int
from_cache
);
void
directory_info_has_arrived
(
time_t
now
,
int
from_cache
,
int
suppress_logs
);
void
ip_address_changed
(
int
at_interface
);
void
dns_servers_relaunch_checks
(
void
);
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment