| 
					
				 | 
			
			
				@@ -1853,7 +1853,7 @@ static routerinfo_t *desc_routerinfo = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static extrainfo_t *desc_extrainfo = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** Why did we most recently decide to regenerate our descriptor?  Used to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * tell the authorities why we're sending it to them. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-static const char *desc_gen_reason = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+static const char *desc_gen_reason = "uninitialized reason"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** Since when has our descriptor been "clean"?  0 if we need to regenerate it 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * now. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 static time_t desc_clean_since = 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2441,6 +2441,9 @@ router_rebuild_descriptor(int force) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   desc_clean_since = time(NULL); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   desc_needs_upload = 1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   desc_gen_reason = desc_dirty_reason; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (BUG(desc_gen_reason == NULL)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    desc_gen_reason = "descriptor was marked dirty earlier, for no reason."; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   desc_dirty_reason = NULL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   control_event_my_descriptor_changed(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return 0; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2497,6 +2500,9 @@ void 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 mark_my_descriptor_dirty(const char *reason) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const or_options_t *options = get_options(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (BUG(reason == NULL)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    reason = "marked descriptor dirty for unspecified reason"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (server_mode(options) && options->PublishServerDescriptor_) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log_info(LD_OR, "Decided to publish new relay descriptor: %s", reason); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   desc_clean_since = 0; 
			 |