|
|
@@ -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
|
|
|
}
|
|
|
|