1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-12 19:00:43 +00:00

fix error propagation in vmess server

This commit is contained in:
Darien Raymond 2018-02-22 15:25:26 +01:00
parent cdfbd0317f
commit 80a1e73361
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169

View File

@ -195,7 +195,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
// 1 bytes reserved
request.Command = protocol.RequestCommand(buffer.Byte(37))
invalidRequest := false
var invalidRequestErr error
switch request.Command {
case protocol.RequestCommandMux:
request.Address = net.DomainAddress("v1.mux.cool")
@ -205,18 +205,17 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
request.Address = addr
request.Port = port
} else {
invalidRequest = true
newError("failed to read address").Base(err).WriteToLog()
invalidRequestErr = newError("invalid address").Base(err)
}
default:
invalidRequest = true
invalidRequestErr = newError("invalid request command: ", request.Command)
}
if invalidRequest {
if invalidRequestErr != nil {
randomLen := dice.Roll(32) + 1
// Read random number of bytes for prevent detection.
buffer.AppendSupplier(buf.ReadFullFrom(decryptor, randomLen))
return nil, newError("invalid request")
return nil, invalidRequestErr
}
if padingLen > 0 {