diff options
author | Roger Dingledine <arma@torproject.org> | 2008-01-24 22:46:29 +0000 |
---|---|---|
committer | Roger Dingledine <arma@torproject.org> | 2008-01-24 22:46:29 +0000 |
commit | cbe9863422f05c5b4e13f9492e18c4d12bbeadec (patch) | |
tree | 48c9cf4526f56aecfe83c7c59342179e108b102e | |
parent | ab79f532060199c635c72a47009fce1a6702f42b (diff) | |
download | tor-cbe9863422f05c5b4e13f9492e18c4d12bbeadec.tar.gz tor-cbe9863422f05c5b4e13f9492e18c4d12bbeadec.zip |
patch "14a" from karsten: don't fail if we can't find
REND_NUMBER_OF_CONSECUTIVE_REPLICAS v2 hsdirs.
svn:r13263
-rw-r--r-- | src/or/directory.c | 4 | ||||
-rw-r--r-- | src/or/or.h | 2 | ||||
-rw-r--r-- | src/or/rendservice.c | 3 | ||||
-rw-r--r-- | src/or/routerlist.c | 16 |
4 files changed, 13 insertions, 12 deletions
diff --git a/src/or/directory.c b/src/or/directory.c index 4242184c71..b492d75527 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -3208,9 +3208,7 @@ directory_post_to_hs_dir(smartlist_t *descs, const char *service_id, smartlist_free(responsible_dirs); return; } - tor_assert(smartlist_len(responsible_dirs) == - REND_NUMBER_OF_CONSECUTIVE_REPLICAS); - for (j = 0; j < REND_NUMBER_OF_CONSECUTIVE_REPLICAS; j++) { + for (j = 0; j < smartlist_len(responsible_dirs); j++) { char desc_id_base32[REND_DESC_ID_V2_LEN_BASE32 + 1]; hs_dir = smartlist_get(responsible_dirs, j); /* Send publish request. */ diff --git a/src/or/or.h b/src/or/or.h index edc786b101..287591f857 100644 --- a/src/or/or.h +++ b/src/or/or.h @@ -3953,7 +3953,9 @@ void routerlist_assert_ok(routerlist_t *rl); const char *esc_router_info(routerinfo_t *router); void routers_sort_by_identity(smartlist_t *routers); +#if 0 int hid_serv_have_enough_directories(void); +#endif int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, const char *id); #if 0 diff --git a/src/or/rendservice.c b/src/or/rendservice.c index 1a355c883d..976ba45573 100644 --- a/src/or/rendservice.c +++ b/src/or/rendservice.c @@ -1076,7 +1076,8 @@ upload_service_descriptor(rend_service_t *service) /* Upload v2 descriptor? */ if (service->descriptor_version == 2 && get_options()->PublishHidServDescriptors) { - if (hid_serv_have_enough_directories()) { + networkstatus_vote_t *c = networkstatus_get_latest_consensus(); + if (c && smartlist_len(c->routerstatus_list) > 0) { int seconds_valid; smartlist_t *descs = smartlist_create(); int i; diff --git a/src/or/routerlist.c b/src/or/routerlist.c index 5aa934ae64..46003601e5 100644 --- a/src/or/routerlist.c +++ b/src/or/routerlist.c @@ -4474,6 +4474,7 @@ hid_serv_previous_directory(const char *id) } #endif +#if 0 /** Return true, if we are aware of enough hidden service directory to * usefully perform v2 rend operations on them (publish, fetch, replicate), * or false otherwise. */ @@ -4494,11 +4495,11 @@ hid_serv_have_enough_directories(void) }); return 0; } +#endif -/** Determine the REND_NUMBER_OF_CONSECUTIVE_REPLICAS routers that are - * responsible for <b>id</b> (binary) and add pointers to those routers' - * routerstatus_t to <b>responsible_dirs</b>. If we don't have enough - * hidden service directories, return -1, else 0. */ +/** Determine the routers that are responsible for <b>id</b> (binary) and + * add pointers to those routers' routerstatus_t to <b>responsible_dirs</b>. + * If we don't have a consensus, return -1, else 0. */ int hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, const char *id) @@ -4525,10 +4526,9 @@ hid_serv_get_responsible_directories(smartlist_t *responsible_dirs, i = 0; } while (i != start); - /* XXX020 make this louder once we have some v2hidservs */ - log_info(LD_REND, "We don't have enough hidden service directories to " - "perform v2 rendezvous operations!"); - return -1; + /* Even though we don't have the desired number of hidden service + * directories, we are happy with what we got. */ + return 0; } /** Return true if this node is currently acting as hidden service |