| 
					
				 | 
			
			
				@@ -72,6 +72,7 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	nBytes, err := v2net.ReadAllBytes(reader, buffer.Value[:vmess.IDBytesLen]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Debug("VMess: Failed to read request ID (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -82,6 +83,7 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	aesStream, err := v2crypto.NewAesDecryptionStream(userObj.ID().CmdKey(), user.Int64Hash(timeSec)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Debug("VMess: Failed to create AES stream: %v", err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -89,6 +91,7 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[:41]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Debug("VMess: Failed to read request header (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	bufferLen := nBytes 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -99,7 +102,7 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if request.Version != Version { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		log.Warning("Invalid protocol version %d", request.Version) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Warning("VMess: Invalid protocol version %d", request.Version) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, proxy.InvalidProtocolVersion 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -112,30 +115,34 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	switch buffer.Value[40] { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case addrTypeIPv4: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:45]) // 4 bytes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:45]) // 4 bytes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		bufferLen += 4 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Debug("VMess: Failed to read target IPv4 (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		request.Address = v2net.IPAddress(buffer.Value[41:45]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case addrTypeIPv6: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:57]) // 16 bytes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:57]) // 16 bytes 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		bufferLen += 16 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Debug("VMess: Failed to read target IPv6 (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		request.Address = v2net.IPAddress(buffer.Value[41:57]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	case addrTypeDomain: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:42]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[41:42]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Debug("VMess: Failed to read target domain (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		domainLength := int(buffer.Value[41]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if domainLength == 0 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return nil, transport.CorruptedPacket 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		_, err = v2net.ReadAllBytes(decryptor, buffer.Value[42:42+domainLength]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[42:42+domainLength]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			log.Debug("VMess: Failed to read target domain (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		bufferLen += 1 + domainLength 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -143,8 +150,9 @@ func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		request.Address = v2net.DomainAddress(string(domainBytes)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	_, err = v2net.ReadAllBytes(decryptor, buffer.Value[bufferLen:bufferLen+4]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	nBytes, err = v2net.ReadAllBytes(decryptor, buffer.Value[bufferLen:bufferLen+4]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	if err != nil { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		log.Debug("VMess: Failed to read checksum (%d bytes): %v", nBytes, err) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		return nil, err 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 |