mirror of https://github.com/v2ray/v2ray-core
handle response command in vmess outbound.
parent
11220a4952
commit
6bb53251e9
|
@ -1,4 +1,4 @@
|
||||||
package vmess
|
package inbound
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"crypto/md5"
|
"crypto/md5"
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package outbound
|
||||||
|
|
||||||
|
func handleCommand(command byte, data []byte) error {
|
||||||
|
return nil
|
||||||
|
}
|
|
@ -178,7 +178,21 @@ func handleResponse(conn net.Conn, request *protocol.VMessRequest, output chan<-
|
||||||
}
|
}
|
||||||
log.Info("VMessOut received %d bytes from %s", buffer.Len()-4, conn.RemoteAddr().String())
|
log.Info("VMessOut received %d bytes from %s", buffer.Len()-4, conn.RemoteAddr().String())
|
||||||
|
|
||||||
buffer.SliceFrom(4)
|
responseBegin := 4
|
||||||
|
if buffer.Value[2] != 0 {
|
||||||
|
dataLen := int(buffer.Value[3])
|
||||||
|
if buffer.Len() < dataLen+4 { // Rare case
|
||||||
|
diffBuffer := make([]byte, dataLen+4-buffer.Len())
|
||||||
|
v2net.ReadAllBytes(decryptResponseReader, diffBuffer)
|
||||||
|
buffer.Append(diffBuffer)
|
||||||
|
}
|
||||||
|
command := buffer.Value[2]
|
||||||
|
data := buffer.Value[4 : 4+dataLen]
|
||||||
|
go handleCommand(command, data)
|
||||||
|
responseBegin = 4 + dataLen
|
||||||
|
}
|
||||||
|
|
||||||
|
buffer.SliceFrom(responseBegin)
|
||||||
output <- buffer
|
output <- buffer
|
||||||
|
|
||||||
if !isUDP {
|
if !isUDP {
|
||||||
|
|
Loading…
Reference in New Issue