aboutsummaryrefslogtreecommitdiff
path: root/src/or/hs_service.c
diff options
context:
space:
mode:
authorGeorge Kadianakis <desnacked@riseup.net>2017-09-08 13:05:22 +0300
committerGeorge Kadianakis <desnacked@riseup.net>2017-09-08 19:07:00 +0300
commite0371935a1787d5f34237343d0b7eaf206e133cf (patch)
treee2f3cd6c403d029da11a8cf94cabf5f508174c54 /src/or/hs_service.c
parente7bdb9eedce5edd014090883c222eb474648a87b (diff)
downloadtor-e0371935a1787d5f34237343d0b7eaf206e133cf.tar.gz
tor-e0371935a1787d5f34237343d0b7eaf206e133cf.zip
prop224: Pick the right hsdir index based on descriptor.
There was a bug in upload_descriptor_to_all() where we picked between first and second hsdir index based on which time segment we are. That's not right and instead we should be uploading our two descriptors using a different hsdir index every time. That is, upload first descriptor using first hsdir index, and upload second descriptor using second hdsir index. Also simplify stuff in pick_hdsir_v3() since that's only used to fetch descriptors and hence we can just always use the fetch hsdir index.
Diffstat (limited to 'src/or/hs_service.c')
-rw-r--r--src/or/hs_service.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/or/hs_service.c b/src/or/hs_service.c
index 8f5da2b634..5759aa8127 100644
--- a/src/or/hs_service.c
+++ b/src/or/hs_service.c
@@ -2382,21 +2382,17 @@ STATIC void
upload_descriptor_to_all(const hs_service_t *service,
hs_service_descriptor_t *desc)
{
- unsigned int is_new_tp = 0;
smartlist_t *responsible_dirs = NULL;
tor_assert(service);
tor_assert(desc);
- /* Do we have a new TP that is are we between a new time period and the next
- * SRV creation? */
- is_new_tp = hs_in_period_between_tp_and_srv(NULL, approx_time());
/* Get our list of responsible HSDir. */
responsible_dirs = smartlist_new();
/* The parameter 0 means that we aren't a client so tell the function to use
* the spread store consensus paremeter. */
hs_get_responsible_hsdirs(&desc->blinded_kp.pubkey, desc->time_period_num,
- is_new_tp, 0, responsible_dirs);
+ service->desc_next == desc, 0, responsible_dirs);
/** Clear list of previous hsdirs since we are about to upload to a new
* list. Let's keep it up to date. */