[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[tor-commits] [tor/main] hs: Setup congestion control on service rends using intro data
commit 6f45ad3771880b9f03bcc0190dce4959df211005
Author: David Goulet <dgoulet@xxxxxxxxxxxxxx>
Date: Thu Feb 3 21:18:52 2022 +0000
hs: Setup congestion control on service rends using intro data
Signed-off-by: David Goulet <dgoulet@xxxxxxxxxxxxxx>
---
src/feature/hs/hs_circuit.c | 18 ++++++++++++++++++
src/feature/hs/hs_common.c | 13 +------------
2 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/src/feature/hs/hs_circuit.c b/src/feature/hs/hs_circuit.c
index 10a6f51eb3..f2953cfb02 100644
--- a/src/feature/hs/hs_circuit.c
+++ b/src/feature/hs/hs_circuit.c
@@ -17,6 +17,8 @@
#include "core/or/relay.h"
#include "core/or/crypt_path.h"
#include "core/or/extendinfo.h"
+#include "core/or/congestion_control_common.h"
+#include "core/crypto/onion_crypto.h"
#include "feature/client/circpathbias.h"
#include "feature/hs/hs_cell.h"
#include "feature/hs/hs_circuit.h"
@@ -408,6 +410,14 @@ launch_rendezvous_point_circuit,(const hs_service_t *service,
tor_assert(circ->hs_ident);
}
+ if (data->cc_enabled) {
+ circuit_params_t circ_params = {
+ .cc_enabled = data->cc_enabled,
+ .sendme_inc_cells = congestion_control_sendme_inc(),
+ };
+ TO_CIRCUIT(circ)->ccontrol = congestion_control_new(&circ_params);
+ }
+
end:
extend_info_free(info);
}
@@ -504,6 +514,14 @@ retry_service_rendezvous_point(const origin_circuit_t *circ)
new_circ->build_state->expiry_time = bstate->expiry_time;
new_circ->hs_ident = hs_ident_circuit_dup(circ->hs_ident);
+ if (TO_CIRCUIT(circ)->ccontrol != NULL) {
+ circuit_params_t circ_params = {
+ .cc_enabled = 1,
+ .sendme_inc_cells = TO_CIRCUIT(circ)->ccontrol->sendme_inc,
+ };
+ TO_CIRCUIT(new_circ)->ccontrol = congestion_control_new(&circ_params);
+ }
+
done:
return;
}
diff --git a/src/feature/hs/hs_common.c b/src/feature/hs/hs_common.c
index 3036ce2710..e326581dd1 100644
--- a/src/feature/hs/hs_common.c
+++ b/src/feature/hs/hs_common.c
@@ -1687,18 +1687,7 @@ hs_get_extend_info_from_lspecs(const smartlist_t *lspecs,
/* We do have everything for which we think we can connect successfully. */
info = extend_info_new(NULL, legacy_id,
(have_ed25519_id) ? &ed25519_pk : NULL, NULL,
- onion_key, &ap.addr, ap.port,
- /* TODO-324: oh wow, this is a hard one.
-
- The protover summary here needs to explain
- if we support the newer congestion control or
- not. This may require new specification changes.
-
- Probably there is some analogous service-side
- function that needs to initialize congestion
- control structures based on what the client says.
- */
- NULL, false);
+ onion_key, &ap.addr, ap.port, NULL, false);
done:
return info;
}
_______________________________________________
tor-commits mailing list
tor-commits@xxxxxxxxxxxxxxxxxxxx
https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits