Browse Source

r9077@totoro: nickm | 2006-10-18 11:41:16 -0400
Another patch from Mike Perry; sprintfing a NULL pointer. (with comment).


svn:r8747

Nick Mathewson 17 years ago
parent
commit
3c459a7397
2 changed files with 11 additions and 2 deletions
  1. 10 1
      src/or/command.c
  2. 1 1
      src/or/control.c

+ 10 - 1
src/or/command.c

@@ -384,7 +384,16 @@ command_process_destroy_cell(cell_t *cell, or_connection_t *conn)
           reason == END_CIRC_REASON_REQUESTED) {
         /* XXXX This logic is wrong.  Really, we should report the fact that
          * the circuit was closed because of a DESTROY, *and* we should report
-         * the reason that we were given. -NM */
+         * the reason that we were given. -NM
+         *   Hrmm. We could store the fact that we sent a truncate and the
+         * reason for this truncate in circuit_t. If we ever get a destroy
+         * that doesn't match this reason, we could complain loudly -MP
+         *   That won't work for the cases where the destroy is not because of
+         * a truncate, though.  The idea is that if we get a DESTROYED cell
+         * with reason 'CONNECTFAILED' and another DESTROYED cell with reason
+         * 'RESOURCELIMIT', the controller may want to know the reported
+         * reason. -NM
+         */
         reason = END_CIRC_REASON_DESTROYED;
       }
       circuit_mark_for_close(circ, reason);

+ 1 - 1
src/or/control.c

@@ -2837,7 +2837,7 @@ circuit_end_reason_to_string(int reason)
       return "REASON=NOSUCHSERVICE";
     default:
       log_warn(LD_BUG, "Unrecognized reason code %d", (int)reason);
-      return NULL;
+      return "REASON=UNRECOGNIZED"; /* should never get called */
   }
 }