Loading src/or/dirserv.c +2 −1 Original line number Diff line number Diff line Loading @@ -2939,6 +2939,7 @@ connection_dirserv_finish_spooling(dir_connection_t *conn) static int connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn) { time_t now = time(NULL); int by_fp = (conn->dir_spool_src == DIR_SPOOL_SERVER_BY_FP || conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP); int extra = (conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP || Loading Loading @@ -2966,7 +2967,7 @@ connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn) * unknown bridge descriptor has shown up between then and now. */ continue; } sd->last_served_at = now; body = signed_descriptor_get_body(sd); if (conn->zlib_state) { int last = ! smartlist_len(conn->fingerprint_stack); Loading src/or/or.h +2 −0 Original line number Diff line number Diff line Loading @@ -1221,6 +1221,8 @@ typedef struct signed_descriptor_t { /** The valid-until time of the most recent consensus that listed this * descriptor. 0 for "never listed in a consensus, so far as we know." */ time_t last_listed_as_valid_until; /** DOCDOC */ time_t last_served_at; /*XXXX021 remove if not useful. */ /* If true, we do not ever try to save this object in the cache. */ unsigned int do_not_cache : 1; /* If true, this item is meant to represent an extrainfo. */ Loading src/or/routerlist.c +33 −1 Original line number Diff line number Diff line Loading @@ -2247,11 +2247,43 @@ dump_routerlist_mem_usage(int severity) SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd, olddescs += sd->signed_descriptor_len); log(severity, LD_GENERAL, log(severity, LD_DIR, "In %d live descriptors: "U64_FORMAT" bytes. " "In %d old descriptors: "U64_FORMAT" bytes.", smartlist_len(routerlist->routers), U64_PRINTF_ARG(livedescs), smartlist_len(routerlist->old_routers), U64_PRINTF_ARG(olddescs)); #if 0 { const smartlist_t *networkstatus_v2_list = networkstatus_get_v2_list(); networkstatus_t *consensus = networkstatus_get_latest_consensus(); log(severity, LD_DIR, "Now let's look through old_descriptors!"); SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd, { int in_v2 = 0; int in_v3 = 0; char published[ISO_TIME_LEN+1]; char last_valid_until[ISO_TIME_LEN+1]; char last_served_at[ISO_TIME_LEN+1]; char id[HEX_DIGEST_LEN+1]; format_iso_time(published, sd->published_on); format_iso_time(last_valid_until, sd->last_listed_as_valid_until); format_iso_time(last_served_at, sd->last_served_at); base16_encode(id, sizeof(id), sd->identity_digest, DIGEST_LEN); SMARTLIST_FOREACH(networkstatus_v2_list, networkstatus_v2_t *, ns, if (networkstatus_v2_find_entry(ns, sd->identity_digest)) { in_v2 = 1; break; }); if (consensus && networkstatus_vote_find_entry(consensus, sd->identity_digest)) in_v3 = 1; log(severity, LD_DIR, "Old descriptor for %s (published %s) %sin v2 ns, %sin v3 " "consensus. Last valid until %s; last served at %s.", id, published, in_v2 ? "" : "not ", in_v3 ? "" : "not ", last_valid_until, last_served_at); }); } #endif } static INLINE int Loading Loading
src/or/dirserv.c +2 −1 Original line number Diff line number Diff line Loading @@ -2939,6 +2939,7 @@ connection_dirserv_finish_spooling(dir_connection_t *conn) static int connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn) { time_t now = time(NULL); int by_fp = (conn->dir_spool_src == DIR_SPOOL_SERVER_BY_FP || conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP); int extra = (conn->dir_spool_src == DIR_SPOOL_EXTRA_BY_FP || Loading Loading @@ -2966,7 +2967,7 @@ connection_dirserv_add_servers_to_outbuf(dir_connection_t *conn) * unknown bridge descriptor has shown up between then and now. */ continue; } sd->last_served_at = now; body = signed_descriptor_get_body(sd); if (conn->zlib_state) { int last = ! smartlist_len(conn->fingerprint_stack); Loading
src/or/or.h +2 −0 Original line number Diff line number Diff line Loading @@ -1221,6 +1221,8 @@ typedef struct signed_descriptor_t { /** The valid-until time of the most recent consensus that listed this * descriptor. 0 for "never listed in a consensus, so far as we know." */ time_t last_listed_as_valid_until; /** DOCDOC */ time_t last_served_at; /*XXXX021 remove if not useful. */ /* If true, we do not ever try to save this object in the cache. */ unsigned int do_not_cache : 1; /* If true, this item is meant to represent an extrainfo. */ Loading
src/or/routerlist.c +33 −1 Original line number Diff line number Diff line Loading @@ -2247,11 +2247,43 @@ dump_routerlist_mem_usage(int severity) SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd, olddescs += sd->signed_descriptor_len); log(severity, LD_GENERAL, log(severity, LD_DIR, "In %d live descriptors: "U64_FORMAT" bytes. " "In %d old descriptors: "U64_FORMAT" bytes.", smartlist_len(routerlist->routers), U64_PRINTF_ARG(livedescs), smartlist_len(routerlist->old_routers), U64_PRINTF_ARG(olddescs)); #if 0 { const smartlist_t *networkstatus_v2_list = networkstatus_get_v2_list(); networkstatus_t *consensus = networkstatus_get_latest_consensus(); log(severity, LD_DIR, "Now let's look through old_descriptors!"); SMARTLIST_FOREACH(routerlist->old_routers, signed_descriptor_t *, sd, { int in_v2 = 0; int in_v3 = 0; char published[ISO_TIME_LEN+1]; char last_valid_until[ISO_TIME_LEN+1]; char last_served_at[ISO_TIME_LEN+1]; char id[HEX_DIGEST_LEN+1]; format_iso_time(published, sd->published_on); format_iso_time(last_valid_until, sd->last_listed_as_valid_until); format_iso_time(last_served_at, sd->last_served_at); base16_encode(id, sizeof(id), sd->identity_digest, DIGEST_LEN); SMARTLIST_FOREACH(networkstatus_v2_list, networkstatus_v2_t *, ns, if (networkstatus_v2_find_entry(ns, sd->identity_digest)) { in_v2 = 1; break; }); if (consensus && networkstatus_vote_find_entry(consensus, sd->identity_digest)) in_v3 = 1; log(severity, LD_DIR, "Old descriptor for %s (published %s) %sin v2 ns, %sin v3 " "consensus. Last valid until %s; last served at %s.", id, published, in_v2 ? "" : "not ", in_v3 ? "" : "not ", last_valid_until, last_served_at); }); } #endif } static INLINE int Loading