|  | @@ -279,6 +279,8 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
 | 
	
		
			
				|  |  |    int post_via_tor;
 | 
	
		
			
				|  |  |    smartlist_t *dirservers = router_get_trusted_dir_servers();
 | 
	
		
			
				|  |  |    int found = 0;
 | 
	
		
			
				|  |  | +  const int exclude_self = (dir_purpose == DIR_PURPOSE_UPLOAD_VOTE ||
 | 
	
		
			
				|  |  | +                            dir_purpose == DIR_PURPOSE_UPLOAD_SIGNATURES);
 | 
	
		
			
				|  |  |    tor_assert(dirservers);
 | 
	
		
			
				|  |  |    /* This tries dirservers which we believe to be down, but ultimately, that's
 | 
	
		
			
				|  |  |     * harmless, and we may as well err on the side of getting things uploaded.
 | 
	
	
		
			
				|  | @@ -291,6 +293,9 @@ directory_post_to_dirservers(uint8_t dir_purpose, uint8_t router_purpose,
 | 
	
		
			
				|  |  |        if ((type & ds->type) == 0)
 | 
	
		
			
				|  |  |          continue;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +      if (exclude_self && router_digest_is_me(ds->digest))
 | 
	
		
			
				|  |  | +        continue;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        if (options->ExcludeNodes && options->StrictNodes &&
 | 
	
		
			
				|  |  |            routerset_contains_routerstatus(options->ExcludeNodes, rs)) {
 | 
	
		
			
				|  |  |          log_warn(LD_DIR, "Wanted to contact authority '%s' for %s, but "
 |