|  | @@ -2851,11 +2851,13 @@ connection_edge_is_rendezvous_stream(edge_connection_t *conn)
 | 
	
		
			
				|  |  |  /** Return 1 if router <b>exit</b> is likely to allow stream <b>conn</b>
 | 
	
		
			
				|  |  |   * to exit from it, or 0 if it probably will not allow it.
 | 
	
		
			
				|  |  |   * (We might be uncertain if conn's destination address has not yet been
 | 
	
		
			
				|  |  | - * resolved.)
 | 
	
		
			
				|  |  | + * resolved.) If the router is in the list of excluded nodes, also return 0;
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  int
 | 
	
		
			
				|  |  |  connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +  or_options_t *options = get_options();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    tor_assert(conn);
 | 
	
		
			
				|  |  |    tor_assert(conn->_base.type == CONN_TYPE_AP);
 | 
	
		
			
				|  |  |    tor_assert(conn->socks_request);
 | 
	
	
		
			
				|  | @@ -2901,6 +2903,10 @@ connection_ap_can_use_exit(edge_connection_t *conn, routerinfo_t *exit)
 | 
	
		
			
				|  |  |      if (!conn->chosen_exit_name && policy_is_reject_star(exit->exit_policy))
 | 
	
		
			
				|  |  |        return 0;
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | +  if (options->_ExcludeExitNodesUnion &&
 | 
	
		
			
				|  |  | +      routerset_contains_router(options->_ExcludeExitNodesUnion, exit))
 | 
	
		
			
				|  |  | +    return 0;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    return 1;
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 |