| 
					
				 | 
			
			
				@@ -35,15 +35,14 @@ rend_mid_establish_intro_legacy(or_circuit_t *circ, const uint8_t *request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   int reason = END_CIRC_REASON_INTERNAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   log_info(LD_REND, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           "Received an ESTABLISH_INTRO request on circuit %u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           "Received a legacy ESTABLISH_INTRO request on circuit %u", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            (unsigned) circ->p_circ_id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (circ->base_.purpose != CIRCUIT_PURPOSE_OR || circ->base_.n_chan) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    log_fn(LOG_PROTOCOL_WARN, LD_PROTOCOL, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         "Rejecting ESTABLISH_INTRO on non-OR or non-edge circuit."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (!hs_intro_circuit_is_suitable(circ)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     reason = END_CIRC_REASON_TORPROTOCOL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     goto err; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (request_len < 2+DIGEST_LEN) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     goto truncated; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* First 2 bytes: length of asn1-encoded key. */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -105,9 +104,7 @@ rend_mid_establish_intro_legacy(or_circuit_t *circ, const uint8_t *request, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   /* Acknowledge the request. */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  if (relay_send_command_from_edge(0, TO_CIRCUIT(circ), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   RELAY_COMMAND_INTRO_ESTABLISHED, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                   "", 0, NULL)<0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (hs_intro_send_intro_established_cell(circ) < 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     log_info(LD_GENERAL, "Couldn't send INTRO_ESTABLISHED cell."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     goto err_no_close; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 |