|
@@ -3442,9 +3442,13 @@ guards_retry_optimistic(const or_options_t *options)
|
|
|
/**
|
|
|
* Check if we are missing any crucial dirinfo for the guard subsystem to
|
|
|
* work. Return NULL if everything went well, otherwise return a newly
|
|
|
- * allocated string with an informative error message. */
|
|
|
+ * allocated string with an informative error message. In the latter case, use
|
|
|
+ * the genreal descriptor information <b>using_mds</b>, <b>num_present</b> and
|
|
|
+ * <b>num_usable</b> to improve the error message. */
|
|
|
char *
|
|
|
-guard_selection_get_dir_info_status_str(guard_selection_t *gs)
|
|
|
+guard_selection_get_dir_info_status_str(guard_selection_t *gs,
|
|
|
+ int using_mds,
|
|
|
+ int num_present, int num_usable)
|
|
|
{
|
|
|
if (!gs->primary_guards_up_to_date)
|
|
|
entry_guards_update_primary(gs);
|
|
@@ -3478,8 +3482,9 @@ guard_selection_get_dir_info_status_str(guard_selection_t *gs)
|
|
|
|
|
|
/* otherwise return a helpful error string */
|
|
|
tor_asprintf(&ret_str, "We're missing descriptors for %d/%d of our "
|
|
|
- "primary entry guards",
|
|
|
- n_missing_descriptors, num_primary_to_check);
|
|
|
+ "primary entry guards (total %sdescriptors: %d/%d).",
|
|
|
+ n_missing_descriptors, num_primary_to_check,
|
|
|
+ using_mds?"micro":"", num_present, num_usable);
|
|
|
|
|
|
return ret_str;
|
|
|
}
|
|
@@ -3487,10 +3492,12 @@ guard_selection_get_dir_info_status_str(guard_selection_t *gs)
|
|
|
/** As guard_selection_have_enough_dir_info_to_build_circuits, but uses
|
|
|
* the default guard selection. */
|
|
|
char *
|
|
|
-entry_guards_get_dir_info_status_str(void)
|
|
|
+entry_guards_get_dir_info_status_str(int using_mds,
|
|
|
+ int num_present, int num_usable)
|
|
|
{
|
|
|
- return guard_selection_get_dir_info_status_str(
|
|
|
- get_guard_selection_info());
|
|
|
+ return guard_selection_get_dir_info_status_str(get_guard_selection_info(),
|
|
|
+ using_mds,
|
|
|
+ num_present, num_usable);
|
|
|
}
|
|
|
|
|
|
/** Free one guard selection context */
|