[or-cvs] free helper node status info on shutdown

Nick Mathewson nickm at seul.org
Fri Sep 30 21:38:59 UTC 2005


Update of /home/or/cvsroot/tor/src/or
In directory moria:/tmp/cvs-serv8301/src/or

Modified Files:
	circuitbuild.c main.c or.h 
Log Message:
free helper node status info on shutdown

Index: circuitbuild.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/circuitbuild.c,v
retrieving revision 1.145
retrieving revision 1.146
diff -u -d -r1.145 -r1.146
--- circuitbuild.c	29 Sep 2005 22:59:17 -0000	1.145
+++ circuitbuild.c	30 Sep 2005 21:38:57 -0000	1.146
@@ -1672,6 +1672,16 @@
   helper_nodes_changed();
 }
 
+/** Release all storage held by the list of helper nodes */
+void
+helper_nodes_free_all(void)
+{
+  /* Don't call clear_helper_nodes(); that will flush our state change to disk */
+  SMARTLIST_FOREACH(helper_nodes, helper_node_t *, h, tor_free(h));
+  smartlist_free(helper_nodes);
+  helper_nodes = NULL;
+}
+
 /** How long (in seconds) do we allow a helper node to be nonfunctional before
  * we give up on it? */
 #define HELPER_ALLOW_DOWNTIME 48*60*60
@@ -1899,6 +1909,7 @@
   if (*err || !set) {
     SMARTLIST_FOREACH(helpers, helper_node_t *, h, tor_free(h));
     smartlist_free(helpers);
+    helpers = NULL;
   }
   if (!*err && set) {
     if (helper_nodes) {

Index: main.c
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/main.c,v
retrieving revision 1.563
retrieving revision 1.564
diff -u -d -r1.563 -r1.564
--- main.c	30 Sep 2005 21:22:25 -0000	1.563
+++ main.c	30 Sep 2005 21:38:57 -0000	1.564
@@ -1361,6 +1361,7 @@
   dns_free_all();
   clear_pending_onions();
   circuit_free_all();
+  helper_nodes_free_all();
   connection_free_all();
   if (!postfork) {
     config_free_all();

Index: or.h
===================================================================
RCS file: /home/or/cvsroot/tor/src/or/or.h,v
retrieving revision 1.699
retrieving revision 1.700
diff -u -d -r1.699 -r1.700
--- or.h	30 Sep 2005 20:04:55 -0000	1.699
+++ or.h	30 Sep 2005 21:38:57 -0000	1.700
@@ -1396,6 +1396,7 @@
 int helper_nodes_update_state(or_state_t *state);
 int helper_nodes_parse_state(or_state_t *state, int set, const char **err);
 int helper_nodes_getinfo_helper(const char *question, char **answer);
+void helper_nodes_free_all(void);
 
 /********************************* circuitlist.c ***********************/
 



More information about the tor-commits mailing list