diff options
author | Nick Mathewson <nickm@torproject.org> | 2003-04-16 17:11:56 +0000 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2003-04-16 17:11:56 +0000 |
commit | 1bbea670bcb9e7ae2b0502e9affe9df28c8fd46a (patch) | |
tree | b3337d7077ad045300d106efc58e1edfc34c3d59 | |
parent | 05b52ad868bc48d7f636dac61180e3f905f0c5c4 (diff) | |
download | tor-1bbea670bcb9e7ae2b0502e9affe9df28c8fd46a.tar tor-1bbea670bcb9e7ae2b0502e9affe9df28c8fd46a.tar.gz |
Remove the last vestige of code that claims to know the inner structure of an onion on the network
svn:r239
-rw-r--r-- | src/or/circuit.c | 5 | ||||
-rw-r--r-- | src/or/onion.c | 10 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/or/circuit.c b/src/or/circuit.c index cc9f51b9b..ebbe4bd99 100644 --- a/src/or/circuit.c +++ b/src/or/circuit.c @@ -144,7 +144,7 @@ int circuit_init(circuit_t *circ, int aci_type, onion_layer_t *layer) { unsigned char digest1[20]; unsigned char digest2[20]; struct timeval start, end; - int time_passed; + int time_passed; assert(circ && circ->onion); @@ -166,7 +166,8 @@ int circuit_init(circuit_t *circ, int aci_type, onion_layer_t *layer) { my_gettimeofday(&end); - if (tv_udiff(&start, &end) > 1000) {/* more than 1ms */ + time_passed = tv_udiff(&start, &end); + if (time_passed > 1000) {/* more than 1ms */ log(LOG_NOTICE,"circuit_init(): get_unique_aci just took %d us!",time_passed); } diff --git a/src/or/onion.c b/src/or/onion.c index e5bf9a2d1..61ad1e2a5 100644 --- a/src/or/onion.c +++ b/src/or/onion.c @@ -9,7 +9,8 @@ extern or_options_t options; /* command-line and config-file options */ static int onion_process(circuit_t *circ); static int onion_deliver_to_conn(aci_t aci, unsigned char *onion, uint32_t onionlen, connection_t *conn); static int count_acceptable_routers(routerinfo_t **rarray, int rarray_len); -static int find_tracked_onion(unsigned char *onion, uint32_t onionlen); +static int find_tracked_onion(unsigned char *onion, uint32_t onionlen, + int expire); int decide_aci_type(uint32_t local_addr, uint16_t local_port, uint32_t remote_addr, uint16_t remote_port) { @@ -245,7 +246,7 @@ static int onion_process(circuit_t *circ) { } /* check for replay. at the same time, add it to the pile of tracked onions. */ - if(find_tracked_onion(circ->onion, circ->onionlen)) { + if(find_tracked_onion(circ->onion, circ->onionlen, layer.expire)) { log(LOG_NOTICE,"process_onion(): I have just received a replayed onion. This could be a replay attack."); return -1; } @@ -756,7 +757,8 @@ void init_tracked_tree(void) { /* see if this onion has been seen before. if so, return 1, else * return 0 and add the sha1 of this onion to the tree. */ -static int find_tracked_onion(unsigned char *onion, uint32_t onionlen) { +static int find_tracked_onion(unsigned char *onion, uint32_t onionlen, + int expire) { static struct tracked_onion *head_tracked_onions = NULL; /* linked list of tracked onions */ static struct tracked_onion *tail_tracked_onions = NULL; @@ -791,7 +793,7 @@ static int find_tracked_onion(unsigned char *onion, uint32_t onionlen) { /* this is a new onion. add it to the list. */ - to->expire = ntohl(*(uint32_t *)(onion+7)); /* set the expiration date */ + to->expire = expire; /* set the expiration date */ to->next = NULL; if (!head_tracked_onions) { |