mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
hs-v3: Report introduction failure SOCKS ExtendedErrors
Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
parent
1720a2191d
commit
fdd6352506
@ -961,6 +961,20 @@ client_get_random_intro(const ed25519_public_key_t *service_pk)
|
||||
return ei;
|
||||
}
|
||||
|
||||
/** Called when introduction has failed meaning there is no more usable
|
||||
* introduction points to be used (either NACKed or failed) for the given
|
||||
* entry connection.
|
||||
*
|
||||
* This function only reports back the SOCKS5_HS_INTRO_FAILED (0xF2) code. The
|
||||
* caller has to make sure to close the entry connections. */
|
||||
static void
|
||||
socks_report_introduction_failed(entry_connection_t *conn)
|
||||
{
|
||||
tor_assert(conn);
|
||||
tor_assert(conn->socks_request);
|
||||
conn->socks_request->socks_extended_error_code = SOCKS5_HS_INTRO_FAILED;
|
||||
}
|
||||
|
||||
/** For this introduction circuit, we'll look at if we have any usable
|
||||
* introduction point left for this service. If so, we'll use the circuit to
|
||||
* re-extend to a new intro point. Else, we'll close the circuit and its
|
||||
@ -1313,6 +1327,10 @@ client_desc_has_arrived(const smartlist_t *entry_conns)
|
||||
if (!hs_client_any_intro_points_usable(identity_pk, desc)) {
|
||||
log_info(LD_REND, "Hidden service descriptor is unusable. "
|
||||
"Closing streams.");
|
||||
/* Report the extended socks error code that we were unable to introduce
|
||||
* to the service. */
|
||||
socks_report_introduction_failed(entry_conn);
|
||||
|
||||
connection_mark_unattached_ap(entry_conn,
|
||||
END_STREAM_REASON_RESOLVEFAILED);
|
||||
/* We are unable to use the descriptor so remove the directory request
|
||||
|
Loading…
Reference in New Issue
Block a user