mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-28 06:13:31 +01:00
log correctly if decoding onion failed
svn:r1690
This commit is contained in:
parent
6a45028ccb
commit
e355ed0e15
@ -774,18 +774,20 @@ void connection_write_to_buf(const char *string, int len, connection_t *conn) {
|
||||
}
|
||||
}
|
||||
|
||||
/* get the conn to addr/port that has the most recent timestamp_created */
|
||||
connection_t *connection_exact_get_by_addr_port(uint32_t addr, uint16_t port) {
|
||||
int i, n;
|
||||
connection_t *conn;
|
||||
connection_t *conn, *best=NULL;
|
||||
connection_t **carray;
|
||||
|
||||
get_connection_array(&carray,&n);
|
||||
for(i=0;i<n;i++) {
|
||||
conn = carray[i];
|
||||
if(conn->addr == addr && conn->port == port && !conn->marked_for_close)
|
||||
return conn;
|
||||
if(conn->addr == addr && conn->port == port && !conn->marked_for_close &&
|
||||
(!best || best->timestamp_created < conn->timestamp_created))
|
||||
best = conn;
|
||||
}
|
||||
return NULL;
|
||||
return best;
|
||||
}
|
||||
|
||||
connection_t *connection_twin_get_by_addr_port(uint32_t addr, uint16_t port) {
|
||||
|
@ -102,16 +102,17 @@ int connection_cpu_process_inbuf(connection_t *conn) {
|
||||
if(p_conn)
|
||||
circ = circuit_get_by_circ_id_conn(circ_id, p_conn);
|
||||
|
||||
if(success == 0) {
|
||||
log_fn(LOG_WARN,"decoding onionskin failed. Closing.");
|
||||
if(circ)
|
||||
circuit_mark_for_close(circ);
|
||||
goto done_processing;
|
||||
}
|
||||
if(!circ) {
|
||||
log_fn(LOG_INFO,"processed onion for a circ that's gone. Dropping.");
|
||||
goto done_processing;
|
||||
}
|
||||
assert(circ->p_conn);
|
||||
if(success == 0) {
|
||||
log_fn(LOG_WARN,"decoding onionskin failed. Closing.");
|
||||
circuit_mark_for_close(circ);
|
||||
goto done_processing;
|
||||
}
|
||||
if(onionskin_answer(circ, buf+TAG_LEN, buf+TAG_LEN+ONIONSKIN_REPLY_LEN) < 0) {
|
||||
log_fn(LOG_WARN,"onionskin_answer failed. Closing.");
|
||||
circuit_mark_for_close(circ);
|
||||
|
Loading…
Reference in New Issue
Block a user