浏览代码

Replace all connection_removes outsice of main.c with connection_mark_for_close

svn:r1328
Nick Mathewson 21 年之前
父节点
当前提交
f608b85ddf
共有 3 个文件被更改,包括 5 次插入11 次删除
  1. 1 1
      doc/TODO
  2. 2 6
      src/or/connection_or.c
  3. 2 4
      src/or/directory.c

+ 1 - 1
doc/TODO

@@ -83,7 +83,7 @@ Short-term:
         X remove per-connection rate limiting
         - Make it harder to circumvent bandwidth caps: look at number of bytes
           sent across sockets, not number sent inside TLS stream.
-        - Audit users of connnection_remove and connection_free outside of
+        o Audit users of connnection_remove and connection_free outside of
           main.c; many should use mark_for_close instead.
 
 On-going

+ 2 - 6
src/or/connection_or.c

@@ -112,8 +112,6 @@ connection_t *connection_or_connect(routerinfo_t *router) {
   /* set up conn so it's got all the data we need to remember */
   connection_or_init_conn_from_router(conn, router);
 
-  /* XXXX Should all this stuff do mark-for-close instead? */
-
   if(connection_add(conn) < 0) { /* no space, forget it */
     connection_free(conn);
     return NULL;
@@ -121,8 +119,7 @@ connection_t *connection_or_connect(routerinfo_t *router) {
 
   switch(connection_connect(conn, router->address, router->addr, router->or_port)) {
     case -1:
-      connection_remove(conn);
-      connection_free(conn);
+      connection_mark_for_close(conn, 0);
       return NULL;
     case 0:
       connection_set_poll_socket(conn);
@@ -140,8 +137,7 @@ connection_t *connection_or_connect(routerinfo_t *router) {
     return conn;
 
   /* failure */
-  connection_remove(conn);
-  connection_free(conn);
+  connection_mark_for_close(conn, 0);
   return NULL;
 }
 

+ 2 - 4
src/or/directory.c

@@ -48,8 +48,7 @@ void directory_initiate_command(routerinfo_t *router, int command) {
   switch(connection_connect(conn, router->address, router->addr, router->dir_port)) {
     case -1:
       router_mark_as_down(conn->nickname); /* don't try him again */
-      connection_remove(conn);
-      connection_free(conn);
+      connection_mark_for_close(conn, 0);
       return;
     case 0:
       connection_set_poll_socket(conn);
@@ -63,8 +62,7 @@ void directory_initiate_command(routerinfo_t *router, int command) {
 
   connection_set_poll_socket(conn);
   if(directory_send_command(conn, command) < 0) {
-    connection_remove(conn);
-    connection_free(conn);
+    connection_mark_for_close(conn, 0);
   }
 }