snprintf(s, sizeof(buf) - (s - buf), "%s(%s) ",
router->nickname, states[hop->state]);
} else {
- snprintf(s, sizeof(buf) - (s - buf), "UNKNOWN ");
+ if(circ->purpose == CIRCUIT_PURPOSE_C_REND_JOINED) {
+ snprintf(s, sizeof(buf) - (s - buf), "(rend join)");
+ } else {
+ snprintf(s, sizeof(buf) - (s - buf), "UNKNOWN ");
+ }
}
hop=hop->next;
} while(hop!=circ->cpath);
return;
}
- log_fn(LOG_DEBUG,"Received for circID %d.",cell->circ_id);
+ log_fn(LOG_INFO,"Received for circID %d.",cell->circ_id);
if(circ->state == CIRCUIT_STATE_ONIONSKIN_PENDING) {
onion_pending_remove(circ);
}
connection_t *apconn;
crypt_path_t *hop;
char keys[DIGEST_LEN+CPATH_KEY_MATERIAL_LEN];
- char buf[DIGEST_LEN+9];
- char expected_digest[DIGEST_LEN];
if(circ->purpose != CIRCUIT_PURPOSE_C_REND_READY ||
!circ->build_state->pending_final_cpath) {
circ->build_state->pending_final_cpath = NULL; /* prevent double-free */
for(apconn = circ->p_streams; apconn; apconn = apconn->next_stream) {
+ apconn->cpath_layer = circ->cpath->prev;
+ /* now the last hop is different. be sure to send all the way. */
if(connection_ap_handshake_send_begin(apconn, circ) < 0)
return -1;
}