r18296@catbus: nickm | 2008-02-20 23:30:11 -0500

Answer one xxx020 item; move 7 other ones to a new "XXX020rc" category: they should get fixed before we cut a release candidate. arma: please review these to see whether you have fixes/answers for any. Please check out the other 14 XXX020s to see if any look critical for the release candidate.


svn:r13640
This commit is contained in:
Nick Mathewson 2008-02-21 04:30:14 +00:00
parent 47e6247673
commit 063ced8903
6 changed files with 10 additions and 9 deletions

View File

@ -284,8 +284,8 @@ tor_tls_get_error(tor_tls_t *tls, int r, int extra,
return _TOR_TLS_ZERORETURN; return _TOR_TLS_ZERORETURN;
log(severity, LD_NET, "TLS error: Zero return"); log(severity, LD_NET, "TLS error: Zero return");
tls_log_errors(tls, severity, doing); tls_log_errors(tls, severity, doing);
/* XXXX020 Actually, a 'zero return' error has a pretty specific meaning: /* XXXX020rc Actually, a 'zero return' error has a pretty specific
* the connection has been closed cleanly. */ * meaning: the connection has been closed cleanly. */
return TOR_TLS_ERROR_MISC; return TOR_TLS_ERROR_MISC;
default: default:
tls_log_errors(tls, severity, doing); tls_log_errors(tls, severity, doing);

View File

@ -478,7 +478,8 @@ command_process_versions_cell(var_cell_t *cell, or_connection_t *conn)
connection_mark_for_close(TO_CONN(conn)); connection_mark_for_close(TO_CONN(conn));
return; return;
} else if (highest_supported_version == 1) { } else if (highest_supported_version == 1) {
/*XXXXX020 consider this carefully. */ /* Negotiating version 1 makes no sense, since version 1 has no VERSIONS
* cells. */
log_fn(LOG_PROTOCOL_WARN, LD_OR, log_fn(LOG_PROTOCOL_WARN, LD_OR,
"Used version negotiation protocol to negotiate a v1 connection. " "Used version negotiation protocol to negotiate a v1 connection. "
"That's crazily non-compliant. Closing connection."); "That's crazily non-compliant. Closing connection.");

View File

@ -1860,7 +1860,7 @@ loop_again:
/* The other side's handle_write will never actually get called, so /* The other side's handle_write will never actually get called, so
* we need to invoke the appropriate callbacks ourself. */ * we need to invoke the appropriate callbacks ourself. */
connection_t *linked = conn->linked_conn; connection_t *linked = conn->linked_conn;
/* XXXX020 Do we need to ensure that this stuff is called even if /* XXXX020rc Do we need to ensure that this stuff is called even if
* conn dies in a way that causes us to return -1 earlier? */ * conn dies in a way that causes us to return -1 earlier? */
if (n_read) { if (n_read) {

View File

@ -199,7 +199,7 @@ directories_have_accepted_server_descriptor(void)
{ {
smartlist_t *servers = router_get_trusted_dir_servers(); smartlist_t *servers = router_get_trusted_dir_servers();
or_options_t *options = get_options(); or_options_t *options = get_options();
/* XXX020 If any authority of the needed type is down, this /* XXX020rc If any authority of the needed type is down, this
* function will never return true. Perhaps we need to be * function will never return true. Perhaps we need to be
* tolerant of down servers? Or even better, should we change * tolerant of down servers? Or even better, should we change
* this so one successful upload is enough? -RD */ * this so one successful upload is enough? -RD */
@ -1678,7 +1678,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
int rejected = 0; int rejected = 0;
if (rejected_hdr) { if (rejected_hdr) {
if (!strcmp(rejected_hdr, "Yes")) { if (!strcmp(rejected_hdr, "Yes")) {
/* XXXX020 use this information; be sure to upload next one /* XXXX020rc use this information; be sure to upload next one
* sooner. */ * sooner. */
rejected = 1; rejected = 1;
} }

View File

@ -586,7 +586,7 @@ dns_resolve(edge_connection_t *exitconn)
if (!exitconn->_base.marked_for_close) { if (!exitconn->_base.marked_for_close) {
connection_free(TO_CONN(exitconn)); connection_free(TO_CONN(exitconn));
//XXX020 ... and we just leak exitconn otherwise? -RD //XXX020rc ... and we just leak exitconn otherwise? -RD
// If it's marked for close, it's on closeable_connection_lst in // If it's marked for close, it's on closeable_connection_lst in
// main.c. If it's on the closeable list, it will get freed from // main.c. If it's on the closeable list, it will get freed from
// main.c. -NM // main.c. -NM

View File

@ -500,7 +500,7 @@ conn_write_callback(int fd, short events, void *_conn)
edge_conn->end_reason = END_STREAM_REASON_INTERNAL; edge_conn->end_reason = END_STREAM_REASON_INTERNAL;
conn->edge_has_sent_end = 1; conn->edge_has_sent_end = 1;
} }
/* XXX020 do we need a close-immediate here, so we don't try to flush? */ /* XXX020rc do we need a close-immediate here, so we don't try to flush? */
connection_mark_for_close(conn); connection_mark_for_close(conn);
} }
} }
@ -574,7 +574,7 @@ conn_close_if_marked(int i)
LOG_FN_CONN(conn, (LOG_INFO,LD_NET, LOG_FN_CONN(conn, (LOG_INFO,LD_NET,
"Holding conn (fd %d) open for more flushing.", "Holding conn (fd %d) open for more flushing.",
conn->s)); conn->s));
/* XXX020 should we reset timestamp_lastwritten here? */ /* XXX020rc should we reset timestamp_lastwritten here? */
return 0; return 0;
} }
if (connection_wants_to_flush(conn)) { if (connection_wants_to_flush(conn)) {