[or-cvs] fix a pair of duplicate mark-for-closes

Roger Dingledine arma at seul.org
Fri Apr 16 14:26:25 UTC 2004


Update of /home/or/cvsroot/src/or
In directory moria.mit.edu:/home2/arma/work/onion/cvs/src/or

Modified Files:
	connection_edge.c rendservice.c 
Log Message:
fix a pair of duplicate mark-for-closes


Index: connection_edge.c
===================================================================
RCS file: /home/or/cvsroot/src/or/connection_edge.c,v
retrieving revision 1.168
retrieving revision 1.169
diff -u -d -r1.168 -r1.169
--- connection_edge.c	16 Apr 2004 13:49:14 -0000	1.168
+++ connection_edge.c	16 Apr 2004 14:26:23 -0000	1.169
@@ -1177,6 +1177,7 @@
     if(rend_service_set_connection_addr_port(n_stream, circ) < 0) {
       log_fn(LOG_INFO,"Didn't find rendezvous service (port %d)",n_stream->port);
       connection_mark_for_close(n_stream, END_STREAM_REASON_EXITPOLICY);
+      circuit_mark_for_close(circ); /* knock the whole thing down, somebody screwed up */
       return 0;
     }
     assert_circuit_ok(circ);

Index: rendservice.c
===================================================================
RCS file: /home/or/cvsroot/src/or/rendservice.c,v
retrieving revision 1.56
retrieving revision 1.57
diff -u -d -r1.56 -r1.57
--- rendservice.c	16 Apr 2004 11:48:03 -0000	1.56
+++ rendservice.c	16 Apr 2004 14:26:23 -0000	1.57
@@ -892,14 +892,13 @@
   log_fn(LOG_DEBUG,"beginning to hunt for addr/port");
   if (base32_encode(serviceid, REND_SERVICE_ID_LEN+1,
                     circ->rend_pk_digest,10)) {
+    log_fn(LOG_WARN,"bug: base32 failed");
     return -1;
   }
   service = rend_service_get_by_pk_digest(circ->rend_pk_digest);
   if (!service) {
     log_fn(LOG_WARN, "Couldn't find any service associated with pk %s on rendezvous circuit %d; closing",
            serviceid, circ->n_circ_id);
-    circuit_mark_for_close(circ);
-    connection_mark_for_close(conn, 0/*XXX*/);
     return -1;
   }
   for (i = 0; i < smartlist_len(service->ports); ++i) {
@@ -910,9 +909,8 @@
       return 0;
     }
   }
-  log_fn(LOG_WARN, "No virtual port mapping exists for port %d on service %s",
+  log_fn(LOG_INFO, "No virtual port mapping exists for port %d on service %s",
          conn->port,serviceid);
-  connection_mark_for_close(conn, 0/*XXX*/);
   return -1;
 }
 



More information about the tor-commits mailing list