No, don't mark my guard as unreachable. Nothing is reachable.
Tor should provide a means for the user to express their preference for Tor to not be so hasty to give up and choose a new guard, even if that means no connection to the Tor network at all. The AssumeReachable
option could be repurposed for this.
--- a/src/or/entrynodes.c
+++ b/src/or/entrynodes.c
@@ -794,7 +794,7 @@ entry_guard_register_connect_status(const char *digest, int succeeded,
smartlist_del_keeporder(entry_guards, idx);
log_entry_guards(LOG_INFO);
changed = 1;
- } else if (!entry->unreachable_since) {
+ } else if (!entry->unreachable_since && !get_options()->AssumeReachable) {
log_info(LD_CIRC, "Unable to connect to entry guard '%s' (%s). "
"Marking as unreachable.", entry->nickname, buf);
entry->unreachable_since = entry->last_attempted = now;