From 65b2d34c9cb3434c26be71de6f725244444824a7 Mon Sep 17 00:00:00 2001 From: teor Date: Wed, 7 Sep 2016 13:24:43 +1000 Subject: Allow the unit tests to pass a service list to rend_service_load_all_keys --- src/or/rendservice.c | 20 ++++++++++++++++---- src/or/rendservice.h | 2 +- 2 files changed, 17 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/or/rendservice.c b/src/or/rendservice.c index ed89268459..c91cd50fc1 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -1153,12 +1153,24 @@ rend_service_poison_new_single_onion_dirs(const smartlist_t *service_list) } /** Load and/or generate private keys for all hidden services, possibly - * including keys for client authorization. Return 0 on success, -1 on - * failure. */ + * including keys for client authorization. + * If a service_list is provided, treat it as the list of hidden + * services (used in unittests). Otherwise, require that rend_service_list is + * not NULL. + * Return 0 on success, -1 on failure. */ int -rend_service_load_all_keys(void) +rend_service_load_all_keys(const smartlist_t *service_list) { - SMARTLIST_FOREACH_BEGIN(rend_service_list, rend_service_t *, s) { + const smartlist_t *s_list; + /* If no special service list is provided, then just use the global one. */ + if (!service_list) { + tor_assert(rend_service_list); + s_list = rend_service_list; + } else { + s_list = service_list; + } + + SMARTLIST_FOREACH_BEGIN(s_list, rend_service_t *, s) { if (s->private_key) continue; log_info(LD_REND, "Loading hidden-service keys from \"%s\"", diff --git a/src/or/rendservice.h b/src/or/rendservice.h index 0cf448e207..ec32262fea 100644 --- a/src/or/rendservice.h +++ b/src/or/rendservice.h @@ -123,7 +123,7 @@ STATIC void rend_service_free(rend_service_t *service); int num_rend_services(void); int rend_config_services(const or_options_t *options, int validate_only); -int rend_service_load_all_keys(void); +int rend_service_load_all_keys(const smartlist_t *service_list); void rend_services_add_filenames_to_lists(smartlist_t *open_lst, smartlist_t *stat_lst); void rend_consider_services_intro_points(void); -- cgit v1.2.3-54-g00ecf