summaryrefslogtreecommitdiff
path: root/src/or/rendservice.c
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2005-10-04 22:23:31 +0000
committerNick Mathewson <nickm@torproject.org>2005-10-04 22:23:31 +0000
commit61ea5168859785207062ca22be403bbac32f49e3 (patch)
tree166d3b8fc6374a5d7c8bb2b5de2d4376dd1d51cc /src/or/rendservice.c
parent2d203fdcf319b45477bdcad7e3476ac3c45ee7e0 (diff)
downloadtor-61ea5168859785207062ca22be403bbac32f49e3.tar.gz
tor-61ea5168859785207062ca22be403bbac32f49e3.zip
Check for named servers when looking them up by nickname;
warn when we'recalling a non-named server by its nickname; don't warn twice about the same name. Fix a bug in routers_update_status_from_networkstatus that made nearly all clients never update routerinfo_t.is_named. Try to list MyFamily elements by key, not by nickname. Only warn about names that we generated ourself, or got from the local user. On TLS handshake, only check the other router's nickname against its expected nickname if is_named is set. svn:r5185
Diffstat (limited to 'src/or/rendservice.c')
-rw-r--r--src/or/rendservice.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/or/rendservice.c b/src/or/rendservice.c
index e101e9a7b2..b33776bf8c 100644
--- a/src/or/rendservice.c
+++ b/src/or/rendservice.c
@@ -292,7 +292,7 @@ rend_service_update_descriptor(rend_service_t *service)
d->intro_point_extend_info = tor_malloc_zero(sizeof(extend_info_t*)*n);
d->protocols = (1<<2) | (1<<0); /* We support protocol 2 and protocol 0. */
for (i=0; i < n; ++i) {
- router = router_get_by_nickname(smartlist_get(service->intro_nodes, i));
+ router = router_get_by_nickname(smartlist_get(service->intro_nodes, i),1);
if (!router) {
log_fn(LOG_INFO,"Router '%s' not found. Skipping.",
(char*)smartlist_get(service->intro_nodes, i));
@@ -512,7 +512,7 @@ rend_service_introduce(circuit_t *circuit, const char *request, size_t request_l
ptr = rp_nickname+nickname_field_len;
len -= nickname_field_len;
len -= rp_nickname - buf; /* also remove header space used by version, if any */
- router = router_get_by_nickname(rp_nickname);
+ router = router_get_by_nickname(rp_nickname, 0);
if (!router) {
log_fn(LOG_INFO, "Couldn't find router '%s' named in rendezvous cell.",
rp_nickname);
@@ -934,7 +934,7 @@ rend_services_introduce(void)
/* Find out which introduction points we have in progress for this service. */
for (j=0; j < smartlist_len(service->intro_nodes); ++j) {
intro = smartlist_get(service->intro_nodes, j);
- router = router_get_by_nickname(intro);
+ router = router_get_by_nickname(intro, 1);
if (!router || !find_intro_circuit(router,service->pk_digest)) {
log_fn(LOG_INFO,"Giving up on %s as intro point for %s.",
intro, service->service_id);
@@ -1052,7 +1052,7 @@ rend_service_dump_stats(int severity)
log(severity, "Service configured in \"%s\":", service->directory);
for (j=0; j < smartlist_len(service->intro_nodes); ++j) {
nickname = smartlist_get(service->intro_nodes, j);
- router = router_get_by_nickname(smartlist_get(service->intro_nodes,j));
+ router = router_get_by_nickname(smartlist_get(service->intro_nodes,j),1);
if (!router) {
log(severity, " Intro point at %s: unrecognized router",nickname);
continue;