| 
					
				 | 
			
			
				@@ -191,14 +191,13 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	session.EncodeResponseHeader(response, writer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	bodyWriter := session.EncodeResponseBody(writer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	var v2writer v2io.Writer = v2io.NewAdaptiveWriter(bodyWriter) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if request.Option.Has(protocol.RequestOptionChunkStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		v2writer = vmessio.NewAuthChunkWriter(v2writer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	// Optimize for small response packet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if data, err := output.Read(); err == nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		var v2writer v2io.Writer = v2io.NewAdaptiveWriter(bodyWriter) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if request.Option.Has(protocol.RequestOptionChunkStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			v2writer = vmessio.NewAuthChunkWriter(v2writer) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if err := v2writer.Write(data); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			connection.SetReusable(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -210,14 +209,14 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			connection.SetReusable(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		output.Release() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		if request.Option.Has(protocol.RequestOptionChunkStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			if err := v2writer.Write(alloc.NewSmallBuffer().Clear()); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				connection.SetReusable(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	output.Release() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	if request.Option.Has(protocol.RequestOptionChunkStream) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if err := v2writer.Write(alloc.NewSmallBuffer().Clear()); err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			connection.SetReusable(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		v2writer.Release() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	v2writer.Release() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	readFinish.Lock() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |