diff --git a/src/common/tortls.c b/src/common/tortls.c index a2ad919b0b..dc2145039f 100644 --- a/src/common/tortls.c +++ b/src/common/tortls.c @@ -459,7 +459,7 @@ tor_tls_create_certificate(crypto_pk_env_t *rsa, * really exist; if I understand correctly, it's a bit of silliness that * netscape did on its own before any standard for what they wanted was * formally approved. Nonetheless, Firefox still uses it, so we need to - * fake it at some point soon. XXXX020 -NM */ + * fake it at some point soon. XXXX021 -NM */ #else /* Ug. We don't have as many ciphers with openssl 0.9.7 as we'd like. Fix * this list into something that sucks less. */ diff --git a/src/or/command.c b/src/or/command.c index 86b865d593..5da9316f18 100644 --- a/src/or/command.c +++ b/src/or/command.c @@ -591,7 +591,8 @@ command_process_netinfo_cell(cell_t *cell, or_connection_t *conn) apparent_skew, conn->_base.address, conn->_base.port); } - /*XXX020 maybe act on my_apparent_addr */ + /* XXX021 maybe act on my_apparent_addr, if the source is sufficiently + * trustworthy. */ if (connection_or_set_state_open(conn)<0) connection_mark_for_close(TO_CONN(conn)); diff --git a/src/or/connection.c b/src/or/connection.c index 6f602a9e4e..738cdaa9e9 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -613,12 +613,6 @@ _connection_mark_for_close(connection_t *conn, int line, const char *file) conn->marked_for_close_file = file; add_connection_to_closeable_list(conn); -#if 0 - /* XXXX020 Actually, I don't think this is right. */ - if (conn->linked_conn && !conn->linked_conn->marked_for_close) - _connection_mark_for_close(conn->linked_conn, line, file); -#endif - /* in case we're going to be held-open-til-flushed, reset * the number of seconds since last successful write, so * we get our whole 15 seconds */ @@ -1681,7 +1675,8 @@ connection_bucket_refill_helper(int *bucket, int rate, int burst, if (*bucket > burst || *bucket < starting_bucket) { /* If we overflow the burst, or underflow our starting bucket, * cap the bucket value to burst. */ - /* XXXX020 this might be redundant now. */ + /* XXXX021 this might be redundant now, but it doesn't show up + * in profiles. Remove it after analysis. */ *bucket = burst; } } diff --git a/src/or/directory.c b/src/or/directory.c index 96cf156ced..51fc75a29b 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -2335,7 +2335,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers, ssize_t estimated_len = 0; smartlist_t *items = smartlist_create(); smartlist_t *dir_items = smartlist_create(); - int lifetime = 60; /* XXXX020 should actually use vote intervals. */ + int lifetime = 60; /* XXXX021 should actually use vote intervals. */ url += strlen("/tor/status-vote/"); current = !strcmpstart(url, "current/"); url = strchr(url, '/'); diff --git a/src/or/dirserv.c b/src/or/dirserv.c index 877ee3099b..48e7508612 100644 --- a/src/or/dirserv.c +++ b/src/or/dirserv.c @@ -861,7 +861,8 @@ directory_set_dirty(void) time_t now = time(NULL); int set_v1_dirty=0; - /* Regenerate stubs only every 8 hours. XXXX020 */ + /* Regenerate stubs only every 8 hours. + * XXXX021 It would be nice to generate less often. */ #define STUB_REGENERATE_INTERVAL (8*60*60) if (!the_directory || !the_runningrouters.dir) set_v1_dirty = 1; @@ -1430,7 +1431,7 @@ dirserv_clear_old_v1_info(time_t now) } } -/** Helper: If we're an authority for the right directory version +/** Helper: If we're an authority for the right directory version (v1 or v2) * (based on auth_type), try to regenerate * auth_src as appropriate and return it, falling back to cache_src on * failure. If we're a cache, simply return cache_src. @@ -1445,7 +1446,6 @@ dirserv_pick_cached_dir_obj(cached_dir_t *cache_src, or_options_t *options = get_options(); int authority = (auth_type == V1_AUTHORITY && authdir_mode_v1(options)) || (auth_type == V2_AUTHORITY && authdir_mode_v2(options)); - /* XXX020 eventually use authdir_mode_publishes_statuses() here */ if (!authority || authdir_mode_bridge(options)) { return cache_src; @@ -1814,7 +1814,7 @@ version_from_platform(const char *platform) if (platform && !strcmpstart(platform, "Tor ")) { const char *eos = find_whitespace(platform+4); if (eos && !strcmpstart(eos, " (r")) { - /* XXXX020 Unify this logic with the other version extraction + /* XXXX021 Unify this logic with the other version extraction * logic */ eos = find_whitespace(eos+1); } @@ -2618,8 +2618,8 @@ dirserv_get_routerdesc_fingerprints(smartlist_t *fps_out, const char *key, * If -1 is returned *msg will be set to an appropriate error * message. * - * XXXX020 rename this function. IT's only called from the controller. - * XXXX020 in fact, refactor this function, mergeing as much as possible. + * XXXX021 rename this function. It's only called from the controller. + * XXXX021 in fact, refactor this function, mergeing as much as possible. */ int dirserv_get_routerdescs(smartlist_t *descs_out, const char *key, diff --git a/src/or/dns.c b/src/or/dns.c index 733f334f12..eca6905e82 100644 --- a/src/or/dns.c +++ b/src/or/dns.c @@ -851,8 +851,6 @@ dns_cancel_pending_resolve(const char *address) } if (!resolve->pending_connections) { - /* XXX this should never trigger, but sometimes it does */ - /* XXXX020 is the above still true? -NM */ log_warn(LD_BUG, "Address %s is pending but has no pending connections!", escaped_safe_str(address)); @@ -872,8 +870,7 @@ dns_cancel_pending_resolve(const char *address) assert_connection_ok(TO_CONN(pendconn), 0); tor_assert(pendconn->_base.s == -1); if (!pendconn->_base.marked_for_close) { - /* XXXX020 RESOURCELIMIT? Not RESOLVEFAILED??? */ - connection_edge_end(pendconn, END_STREAM_REASON_RESOURCELIMIT); + connection_edge_end(pendconn, END_STREAM_REASON_RESOLVEFAILED); } circ = circuit_get_by_edge_conn(pendconn); if (circ) @@ -1269,7 +1266,7 @@ launch_resolve(edge_connection_t *exitconn) log_info(LD_EXIT, "Launching eventdns request for %s", escaped_safe_str(exitconn->_base.address)); r = evdns_resolve_ipv4(exitconn->_base.address, options, - evdns_callback, addr); + evdns_callback, addr); } else if (r == 1) { log_info(LD_EXIT, "Launching eventdns reverse request for %s", escaped_safe_str(exitconn->_base.address)); @@ -1425,13 +1422,14 @@ launch_wildcard_check(int min_len, int max_len, const char *suffix) log_info(LD_EXIT, "Testing whether our DNS server is hijacking nonexistent " "domains with request for bogus hostname \"%s\"", addr); - r = evdns_resolve_ipv4(addr, DNS_QUERY_NO_SEARCH, - evdns_wildcard_check_callback, addr); - if (r) + r = evdns_resolve_ipv4(/* This "addr" tells us which address to resolve */ + addr, + DNS_QUERY_NO_SEARCH, evdns_wildcard_check_callback, + /* This "addr" is an argument to the callback*/ addr); + if (r) { + /* There is no evdns request in progress; stop addr from getting leaked */ tor_free(addr); - /* XXX020 Nick, the above "if" needs some explanation. Plus the fact - * that we're sending addr twice. Given that evdns_resolve_ipv4() has - * no doxygen documentation. -RD */ + } } /** Launch attempts to resolve a bunch of known-good addresses (configured in