|
@@ -1229,7 +1229,13 @@ circuit_get_open_circ_or_launch(edge_connection_t *conn,
|
|
|
need_uptime = !conn->want_onehop && !conn->use_begindir &&
|
|
|
smartlist_string_num_isin(options->LongLivedPorts,
|
|
|
conn->socks_request->port);
|
|
|
- need_internal = desired_circuit_purpose != CIRCUIT_PURPOSE_C_GENERAL;
|
|
|
+
|
|
|
+ if (desired_circuit_purpose != CIRCUIT_PURPOSE_C_GENERAL)
|
|
|
+ need_internal = 1;
|
|
|
+ else if (conn->use_begindir || conn->want_onehop)
|
|
|
+ need_internal = 1;
|
|
|
+ else
|
|
|
+ need_internal = 0;
|
|
|
|
|
|
circ = circuit_get_best(conn, 1, desired_circuit_purpose,
|
|
|
need_uptime, need_internal);
|