From 33f846b313b3cf3191e3a9a54ec1c97227393d3d Mon Sep 17 00:00:00 2001 From: Karsten Loesing Date: Tue, 10 Jun 2008 23:31:55 +0000 Subject: In very rare situations new hidden service descriptors were published earlier than 30 seconds after the last change to the service, with the 30 seconds being the current voodoo saying that a descriptor is stable. svn:r15113 --- src/or/rendservice.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'src/or/rendservice.c') diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 21163cf0c2..bf5eb3889a 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -1335,8 +1335,10 @@ rend_consider_services_upload(time_t now) for (i=0; i < smartlist_len(rend_service_list); ++i) { service = smartlist_get(rend_service_list, i); if (!service->next_upload_time) { /* never been uploaded yet */ + /* The fixed lower bound of 30 seconds ensures that the descriptor + * is stable before being published. See comment below. */ service->next_upload_time = - now + crypto_rand_int(2*rendpostperiod); + now + 30 + crypto_rand_int(2*rendpostperiod); } if (service->next_upload_time < now || (service->desc_is_dirty && -- cgit v1.2.3-54-g00ecf