Browse Source

Merge remote-tracking branch 'origin/maint-0.2.2'

Conflicts:
	src/or/config.c
Nick Mathewson 12 years ago
parent
commit
06be6105e4
3 changed files with 9 additions and 3 deletions
  1. 6 0
      changes/bug3747
  2. 3 0
      src/or/config.c
  3. 0 3
      src/or/connection.c

+ 6 - 0
changes/bug3747

@@ -0,0 +1,6 @@
+  o Major bugfixes:
+    - Write control ports to disk only after switching UID and
+      creating the data directory. This way, we don't fail when
+      starting up with a nonexistant DataDirectory and a
+      ControlPortWriteToFile setting based on that directory. Fixes
+      bug 3747; bugfix on Tor 0.2.2.26-beta.

+ 3 - 0
src/or/config.c

@@ -1120,6 +1120,9 @@ options_act_reversible(const or_options_t *old_options, char **msg)
     /* No need to roll back, since you can't change the value. */
   }
 
+  /* Write control ports to disk as appropriate */
+  control_ports_write_to_file();
+
   if (directory_caches_v2_dir_info(options)) {
     size_t len = strlen(options->DataDirectory)+32;
     char *fn = tor_malloc(len);

+ 0 - 3
src/or/connection.c

@@ -987,9 +987,6 @@ connection_create_listener(const struct sockaddr *listensockaddr,
          "%s listening on port %u.",
          conn_type_to_string(type), gotPort);
 
-  if (type == CONN_TYPE_CONTROL_LISTENER)
-    control_ports_write_to_file();
-
   conn->state = LISTENER_STATE_READY;
   if (start_reading) {
     connection_start_reading(conn);