return -1;
}
- if((!conn && cell_direction == CELL_DIRECTION_OUT) || (conn && conn->type == CONN_TYPE_EXIT)) {
+ if(cell_direction == CELL_DIRECTION_OUT && (!conn || conn->type == CONN_TYPE_EXIT)) {
log(LOG_DEBUG,"circuit_deliver_data_cell(): Sending to exit.");
return connection_exit_process_data_cell(cell, circ);
}
- if((!conn && cell_direction == CELL_DIRECTION_IN) || (conn && conn->type == CONN_TYPE_AP)) {
+ if(cell_direction == CELL_DIRECTION_IN && (!conn || conn->type == CONN_TYPE_AP)) {
log(LOG_DEBUG,"circuit_deliver_data_cell(): Sending to AP.");
return connection_ap_process_data_cell(cell, circ);
}
if(!out)
return -1;
- if(cell_direction == CELL_DIRECTION_IN) { //crypt_type == 'e') {
+ if(cell_direction == CELL_DIRECTION_IN) {
if(circ->cpath) { /* we're at the beginning of the circuit. We'll want to do layered crypts. */
for (i=circ->cpathlen-1; i >= 0; i--) /* moving from first to last hop
* Remember : cpath is in reverse order, i.e. last hop first
}
memcpy(in,out,inlen);
}
- } else if(cell_direction == CELL_DIRECTION_OUT) { //crypt_type == 'd') {
+ } else if(cell_direction == CELL_DIRECTION_OUT) {
if(circ->cpath) { /* we're at the beginning of the circuit. We'll want to do layered crypts. */
for (i=0; i < circ->cpathlen; i++) /* moving from last to first hop
* Remember : cpath is in reverse order, i.e. last hop first
printf("\n");
#endif
- /* retrieve cell info from outbuf (create the struct from the string) */
+ /* retrieve cell info from outbuf (create the host-order struct from the network-order string) */
memset(&cell,0,sizeof(cell_t)); /* zero it out to start */
cell.aci = ntohs(*(aci_t *)outbuf);
cell.command = *(outbuf+2);
int onions_handled_this_second;
-// uint16_t aci; /* anonymous connection identifier */
-
/* used by OR and OP: */
uint32_t bandwidth; /* connection bandwidth */
int connection_dns_finished_flushing(connection_t *conn);
int connection_dns_process_inbuf(connection_t *conn);
+void init_cache_tree(void);
int dns_resolve(connection_t *exitconn);
int dns_master_start(void);