mirror of
https://github.com/v2fly/v2ray-core.git
synced 2026-01-06 09:15:37 -05:00
breaking change: update the way in vmess response validation
This commit is contained in:
@@ -18,6 +18,7 @@ import (
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
// Inbound connection handler that handles messages in VMess format.
|
||||
type VMessInboundHandler struct {
|
||||
dispatcher app.PacketDispatcher
|
||||
clients user.UserSet
|
||||
@@ -101,8 +102,8 @@ func (this *VMessInboundHandler) HandleConnection(connection *net.TCPConn) error
|
||||
|
||||
// Optimize for small response packet
|
||||
buffer := alloc.NewLargeBuffer().Clear()
|
||||
buffer.AppendBytes(request.ResponseHeader[0] | request.ResponseHeader[1])
|
||||
buffer.AppendBytes(request.ResponseHeader[2] | request.ResponseHeader[3])
|
||||
buffer.AppendBytes(request.ResponseHeader[0] ^ request.ResponseHeader[1])
|
||||
buffer.AppendBytes(request.ResponseHeader[2] ^ request.ResponseHeader[3])
|
||||
buffer.AppendBytes(byte(0), byte(0))
|
||||
|
||||
if data, open := <-output; open {
|
||||
|
||||
@@ -150,8 +150,8 @@ func handleRequest(conn net.Conn, request *protocol.VMessRequest, firstPacket v2
|
||||
}
|
||||
|
||||
func headerMatch(request *protocol.VMessRequest, responseHeader []byte) bool {
|
||||
return ((request.ResponseHeader[0] | request.ResponseHeader[1]) == responseHeader[0]) &&
|
||||
((request.ResponseHeader[2] | request.ResponseHeader[3]) == responseHeader[1])
|
||||
return ((request.ResponseHeader[0] ^ request.ResponseHeader[1]) == responseHeader[0]) &&
|
||||
((request.ResponseHeader[2] ^ request.ResponseHeader[3]) == responseHeader[1])
|
||||
}
|
||||
|
||||
func handleResponse(conn net.Conn, request *protocol.VMessRequest, output chan<- *alloc.Buffer, finish *sync.Mutex, isUDP bool) {
|
||||
|
||||
Reference in New Issue
Block a user