Browse Source

fix transfer for mux

pull/861/head
Darien Raymond 7 years ago
parent
commit
42d83a703e
No known key found for this signature in database
GPG Key ID: 7251FFA14BB18169
  1. 9
      common/protocol/headers.go
  2. 4
      proxy/vmess/encoding/client.go
  3. 4
      proxy/vmess/encoding/server.go

9
common/protocol/headers.go

@ -18,11 +18,14 @@ const (
)
func (c RequestCommand) TransferType() TransferType {
if c == RequestCommandTCP {
switch c {
case RequestCommandTCP, RequestCommandMux:
return TransferTypeStream
case RequestCommandUDP:
return TransferTypePacket
default:
return TransferTypeStream
}
return TransferTypePacket
}
const (

4
proxy/vmess/encoding/client.go

@ -131,7 +131,7 @@ func (c *ClientSession) EncodeRequestBody(request *protocol.RequestHeader, write
}
if request.Security.Is(protocol.SecurityType_NONE) {
if request.Option.Has(protocol.RequestOptionChunkStream) {
if request.Command == protocol.RequestCommandTCP {
if request.Command.TransferType() == protocol.TransferTypeStream {
return crypto.NewChunkStreamWriter(sizeParser, writer)
}
auth := &crypto.AEADAuthenticator{
@ -236,7 +236,7 @@ func (c *ClientSession) DecodeResponseBody(request *protocol.RequestHeader, read
}
if request.Security.Is(protocol.SecurityType_NONE) {
if request.Option.Has(protocol.RequestOptionChunkStream) {
if request.Command == protocol.RequestCommandTCP {
if request.Command.TransferType() == protocol.TransferTypeStream {
return crypto.NewChunkStreamReader(sizeParser, reader)
}

4
proxy/vmess/encoding/server.go

@ -252,7 +252,7 @@ func (s *ServerSession) DecodeRequestBody(request *protocol.RequestHeader, reade
}
if request.Security.Is(protocol.SecurityType_NONE) {
if request.Option.Has(protocol.RequestOptionChunkStream) {
if request.Command == protocol.RequestCommandTCP {
if request.Command.TransferType() == protocol.TransferTypeStream {
return crypto.NewChunkStreamReader(sizeParser, reader)
}
@ -338,7 +338,7 @@ func (s *ServerSession) EncodeResponseBody(request *protocol.RequestHeader, writ
}
if request.Security.Is(protocol.SecurityType_NONE) {
if request.Option.Has(protocol.RequestOptionChunkStream) {
if request.Command == protocol.RequestCommandTCP {
if request.Command.TransferType() == protocol.TransferTypeStream {
return crypto.NewChunkStreamWriter(sizeParser, writer)
}

Loading…
Cancel
Save