Setting UseBridges=1 UseEntryGuards=0 means you bypass your bridges
If you set UseBridges=1, it's because you wanted to use bridges.
But if you also happen to set UseEntryGuards to 0, then in choose_good_entry_server()
we do
if (state && options->UseEntryGuards &&
(purpose != CIRCUIT_PURPOSE_TESTING || options->BridgeRelay)) {
/* This request is for an entry server to use for a regular circuit,
* and we use entry guard nodes. Just return one of the guard nodes. */
return choose_random_entry(state);
}
and we end up skipping that section because UseEntryGuards is 0. The result is that we make normal 3-hop circuits through normal relays.
I think the fix is that in config.c when we're validating the config, we need to not let the user proceed if UseBridges is 1 yet UseEntryGuards is 0.