[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
[or-cvs] Dont call directory_get_from_dirserver when you have a part...
Update of /home/or/cvsroot/tor/src/or
In directory moria:/tmp/cvs-serv25326/src/or
Modified Files:
directory.c routerlist.c
Log Message:
Dont call directory_get_from_dirserver when you have a particular dirserver in mind; remove fetch-from-authority special-case in directory_get_from_dirserver.
Index: directory.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/directory.c,v
retrieving revision 1.334
retrieving revision 1.335
diff -u -p -d -r1.334 -r1.335
--- directory.c 6 Jan 2006 18:05:48 -0000 1.334
+++ directory.c 6 Jan 2006 18:19:17 -0000 1.335
@@ -157,7 +157,7 @@ directory_get_from_dirserver(uint8_t pur
{
routerstatus_t *rs = NULL;
or_options_t *options = get_options();
- int fetch_fresh_first = server_mode(options) && options->DirPort != 0;
+ int prefer_authority = server_mode(options) && options->DirPort != 0;
int directconn = !purpose_is_private(purpose);
int need_v1_support = purpose == DIR_PURPOSE_FETCH_DIR ||
@@ -166,17 +166,7 @@ directory_get_from_dirserver(uint8_t pur
purpose == DIR_PURPOSE_FETCH_SERVERDESC;
if (directconn) {
- if (fetch_fresh_first && purpose == DIR_PURPOSE_FETCH_NETWORKSTATUS &&
- !strcmpstart(resource,"fp/") && strlen(resource) >= HEX_DIGEST_LEN+3) {
- /* Try to ask the actual dirserver its opinion. */
- char digest[DIGEST_LEN];
- trusted_dir_server_t *ds;
- base16_decode(digest, DIGEST_LEN, resource+3, HEX_DIGEST_LEN);
- ds = router_get_trusteddirserver_by_digest(digest);
- if (ds)
- rs = &(ds->fake_status);
- }
- if (!rs && fetch_fresh_first) {
+ if (prefer_authority) {
/* only ask authdirservers, and don't ask myself */
rs = router_pick_trusteddirserver(need_v1_support, 1, 1,
retry_if_no_servers);
Index: routerlist.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/routerlist.c,v
retrieving revision 1.417
retrieving revision 1.418
diff -u -p -d -r1.417 -r1.418
--- routerlist.c 5 Jan 2006 10:59:46 -0000 1.417
+++ routerlist.c 6 Jan 2006 18:19:17 -0000 1.418
@@ -2225,8 +2225,11 @@ update_networkstatus_cache_downloads(tim
strlcpy(resource, "fp/", sizeof(resource));
base16_encode(resource+3, sizeof(resource)-3, ds->digest, DIGEST_LEN);
strlcat(resource, ".z", sizeof(resource));
- directory_get_from_dirserver(DIR_PURPOSE_FETCH_NETWORKSTATUS,
- resource,1);
+ directory_initiate_command_routerstatus(
+ &ds->fake_status, DIR_PURPOSE_FETCH_NETWORKSTATUS,
+ 0, /* Not private */
+ resource,
+ NULL, 0 /* No payload. */);
});
} else {
/* A non-authority cache launches one connection to a random authority. */