瀏覽代碼

send the newconsensus event if the controller has asked for newconsensus
events, not if he's asked for ns events


svn:r18656

Roger Dingledine 15 年之前
父節點
當前提交
1b6688786c
共有 2 個文件被更改,包括 6 次插入2 次删除
  1. 2 0
      src/or/control.c
  2. 4 2
      src/or/networkstatus.c

+ 2 - 0
src/or/control.c

@@ -3568,6 +3568,8 @@ control_event_networkstatus_changed(smartlist_t *statuses)
 int
 control_event_newconsensus(const networkstatus_t *consensus)
 {
+  if (!control_event_is_interesting(EVENT_NEWCONSENSUS))
+    return 0;
   return control_event_networkstatus_changed_helper(
            consensus->routerstatus_list, EVENT_NEWCONSENSUS, "NEWCONSENSUS");
 }

+ 4 - 2
src/or/networkstatus.c

@@ -1322,6 +1322,9 @@ notify_control_networkstatus_changed(const networkstatus_t *old_c,
    * as what they're listed as */
   control_event_newconsensus(new_c);
 
+  if (!control_event_is_interesting(EVENT_NS))
+    return;
+
   if (!old_c) {
     control_event_networkstatus_changed(new_c->routerstatus_list);
     return;
@@ -1486,8 +1489,7 @@ networkstatus_set_current_consensus(const char *consensus, unsigned flags)
   if (r != 1 && dl_certs)
     authority_certs_fetch_missing(c, now);
 
-  if (control_event_is_interesting(EVENT_NS))
-    notify_control_networkstatus_changed(current_consensus, c);
+  notify_control_networkstatus_changed(current_consensus, c);
 
   if (current_consensus) {
     networkstatus_copy_old_consensus_info(c, current_consensus);