[or-cvs] Remove the last vestige of code that claims to know the inn...

Nick Mathewson nickm at seul.org
Wed Apr 16 17:11:59 UTC 2003


Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/tmp/cvs-serv2498/src/or

Modified Files:
	circuit.c onion.c 
Log Message:
Remove the last vestige of code that claims to know the inner structure of an onion on the network

Index: circuit.c
===================================================================
RCS file: /home/or/cvsroot/src/or/circuit.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -d -r1.32 -r1.33
--- circuit.c	16 Apr 2003 17:04:57 -0000	1.32
+++ circuit.c	16 Apr 2003 17:11:56 -0000	1.33
@@ -144,7 +144,7 @@
   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 @@
 
   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);
   }
 

Index: onion.c
===================================================================
RCS file: /home/or/cvsroot/src/or/onion.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- onion.c	16 Apr 2003 17:07:46 -0000	1.35
+++ onion.c	16 Apr 2003 17:11:56 -0000	1.36
@@ -9,7 +9,8 @@
 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 @@
   }
 
   /* 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 @@
 /* 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 @@
   
   /* 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) {



More information about the tor-commits mailing list