mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-30 15:43:32 +01:00
When establishing a hidden service, introduction points that originate from cannibalized circuits are completely ignored and not included in rendezvous service descriptors. Bugfix on 0.2.0.14-alpha. Backport candidate.
svn:r15332
This commit is contained in:
parent
1ad83d74b1
commit
693d7e3e35
@ -22,6 +22,10 @@ Changes in version 0.2.1.2-alpha - 2008-??-??
|
|||||||
would crash a dirserver if it did not already have a consensus.
|
would crash a dirserver if it did not already have a consensus.
|
||||||
- Clean up some macro/CPP interactions: some GCC versions don't like
|
- Clean up some macro/CPP interactions: some GCC versions don't like
|
||||||
#if/#endif pairs inside macro arguments. Fixes bug 707.
|
#if/#endif pairs inside macro arguments. Fixes bug 707.
|
||||||
|
- When establishing a hidden service, introduction points that originate
|
||||||
|
from cannibalized circuits are completely ignored and not included in
|
||||||
|
rendezvous service descriptors. This might be another reason for delay
|
||||||
|
in making a hidden service available. Bugfix on 0.2.0.14-alpha.
|
||||||
|
|
||||||
|
|
||||||
Changes in version 0.2.1.1-alpha - 2008-06-13
|
Changes in version 0.2.1.1-alpha - 2008-06-13
|
||||||
@ -127,7 +131,7 @@ Changes in version 0.2.0.28-rc - 2008-06-13
|
|||||||
- While setting up a hidden service, some valid introduction circuits
|
- While setting up a hidden service, some valid introduction circuits
|
||||||
were overlooked and abandoned. This might be the reason for
|
were overlooked and abandoned. This might be the reason for
|
||||||
the long delay in making a hidden service available. Bugfix on
|
the long delay in making a hidden service available. Bugfix on
|
||||||
0.2.0.13-alpha.
|
0.2.0.14-alpha.
|
||||||
|
|
||||||
o Minor features:
|
o Minor features:
|
||||||
- Update to the "June 9 2008" ip-to-country file.
|
- Update to the "June 9 2008" ip-to-country file.
|
||||||
|
@ -797,6 +797,22 @@ rend_service_launch_establish_intro(rend_service_t *service,
|
|||||||
escaped_safe_str(intro->extend_info->nickname));
|
escaped_safe_str(intro->extend_info->nickname));
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (memcmp(intro->extend_info->identity_digest,
|
||||||
|
launched->build_state->chosen_exit->identity_digest, DIGEST_LEN)) {
|
||||||
|
char cann[HEX_DIGEST_LEN+1], orig[HEX_DIGEST_LEN+1];
|
||||||
|
base16_encode(cann, sizeof(cann),
|
||||||
|
launched->build_state->chosen_exit->identity_digest,
|
||||||
|
DIGEST_LEN);
|
||||||
|
base16_encode(orig, sizeof(orig),
|
||||||
|
intro->extend_info->identity_digest, DIGEST_LEN);
|
||||||
|
log_info(LD_REND, "The intro circuit we just cannibalized ends at $%s, "
|
||||||
|
"but we requested an intro circuit to $%s. Updating "
|
||||||
|
"our service.", cann, orig);
|
||||||
|
tor_free(intro->extend_info);
|
||||||
|
intro->extend_info = extend_info_dup(launched->build_state->chosen_exit);
|
||||||
|
}
|
||||||
|
|
||||||
strlcpy(launched->rend_query, service->service_id,
|
strlcpy(launched->rend_query, service->service_id,
|
||||||
sizeof(launched->rend_query));
|
sizeof(launched->rend_query));
|
||||||
memcpy(launched->rend_pk_digest, service->pk_digest, DIGEST_LEN);
|
memcpy(launched->rend_pk_digest, service->pk_digest, DIGEST_LEN);
|
||||||
|
Loading…
Reference in New Issue
Block a user