|  | @@ -1313,6 +1313,7 @@ compute_frac_paths_available(const networkstatus_t *consensus,
 | 
	
		
			
				|  |  |    smartlist_t *myexits= smartlist_new();
 | 
	
		
			
				|  |  |    double f_guard, f_mid, f_exit, f_myexit;
 | 
	
		
			
				|  |  |    int np, nu; /* Ignored */
 | 
	
		
			
				|  |  | +  const int authdir = authdir_mode_v2(options) || authdir_mode_v3(options);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    count_usable_descriptors(num_present_out, num_usable_out,
 | 
	
		
			
				|  |  |                             mid, consensus, options, now, NULL, 0);
 | 
	
	
		
			
				|  | @@ -1321,8 +1322,13 @@ compute_frac_paths_available(const networkstatus_t *consensus,
 | 
	
		
			
				|  |  |                               options->EntryNodes, 0);
 | 
	
		
			
				|  |  |    } else {
 | 
	
		
			
				|  |  |      SMARTLIST_FOREACH(mid, const node_t *, node, {
 | 
	
		
			
				|  |  | -      if (node->is_possible_guard)
 | 
	
		
			
				|  |  | -        smartlist_add(guards, (node_t*)node);
 | 
	
		
			
				|  |  | +      if (authdir) {
 | 
	
		
			
				|  |  | +        if (node->rs && node->rs->is_possible_guard)
 | 
	
		
			
				|  |  | +          smartlist_add(guards, (node_t*)node);
 | 
	
		
			
				|  |  | +      } else {
 | 
	
		
			
				|  |  | +        if (node->is_possible_guard)
 | 
	
		
			
				|  |  | +          smartlist_add(guards, (node_t*)node);
 | 
	
		
			
				|  |  | +      }
 | 
	
		
			
				|  |  |      });
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  
 |