|  | @@ -1,6 +1,7 @@
 | 
											
												
													
														|  |  package inbound
 |  |  package inbound
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  import (
 |  |  import (
 | 
											
												
													
														|  | 
 |  | +	"io"
 | 
											
												
													
														|  |  	"sync"
 |  |  	"sync"
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	"github.com/v2ray/v2ray-core/app"
 |  |  	"github.com/v2ray/v2ray-core/app"
 | 
											
										
											
												
													
														|  | @@ -124,7 +125,7 @@ func (this *VMessInboundHandler) Listen(address v2net.Address, port v2net.Port)
 | 
											
												
													
														|  |  func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) {
 |  |  func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) {
 | 
											
												
													
														|  |  	defer connection.Close()
 |  |  	defer connection.Close()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	connReader := v2net.NewTimeOutReader(16, connection)
 |  | 
 | 
											
												
													
														|  | 
 |  | +	connReader := v2net.NewTimeOutReader(8, connection)
 | 
											
												
													
														|  |  	defer connReader.Release()
 |  |  	defer connReader.Release()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	reader := v2io.NewBufferedReader(connReader)
 |  |  	reader := v2io.NewBufferedReader(connReader)
 | 
											
										
											
												
													
														|  | @@ -135,13 +136,19 @@ func (this *VMessInboundHandler) HandleConnection(connection *hub.Connection) {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  	request, err := session.DecodeRequestHeader(reader)
 |  |  	request, err := session.DecodeRequestHeader(reader)
 | 
											
												
													
														|  |  	if err != nil {
 |  |  	if err != nil {
 | 
											
												
													
														|  | -		log.Access(connection.RemoteAddr(), "", log.AccessRejected, err)
 |  | 
 | 
											
												
													
														|  | -		log.Warning("VMessIn: Invalid request from ", connection.RemoteAddr(), ": ", err)
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if err != io.EOF {
 | 
											
												
													
														|  | 
 |  | +			log.Access(connection.RemoteAddr(), "", log.AccessRejected, err)
 | 
											
												
													
														|  | 
 |  | +			log.Warning("VMessIn: Invalid request from ", connection.RemoteAddr(), ": ", err)
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  |  		return
 |  |  		return
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  	log.Access(connection.RemoteAddr(), request.Destination(), log.AccessAccepted, "")
 |  |  	log.Access(connection.RemoteAddr(), request.Destination(), log.AccessAccepted, "")
 | 
											
												
													
														|  |  	log.Debug("VMessIn: Received request for ", request.Destination())
 |  |  	log.Debug("VMessIn: Received request for ", request.Destination())
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +	if request.Option.IsChunkStream() {
 | 
											
												
													
														|  | 
 |  | +		connection.SetReusable(true)
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |  	ray := this.packetDispatcher.DispatchToOutbound(request.Destination())
 |  |  	ray := this.packetDispatcher.DispatchToOutbound(request.Destination())
 | 
											
												
													
														|  |  	input := ray.InboundInput()
 |  |  	input := ray.InboundInput()
 | 
											
												
													
														|  |  	output := ray.InboundOutput()
 |  |  	output := ray.InboundOutput()
 |