|
|
@@ -8,7 +8,6 @@ import (
|
|
|
"v2ray.com/core/common/buf"
|
|
|
"v2ray.com/core/common/crypto"
|
|
|
"v2ray.com/core/common/errors"
|
|
|
- v2io "v2ray.com/core/common/io"
|
|
|
v2net "v2ray.com/core/common/net"
|
|
|
"v2ray.com/core/common/protocol"
|
|
|
"v2ray.com/core/common/serial"
|
|
|
@@ -23,7 +22,7 @@ const (
|
|
|
AddrTypeDomain = 3
|
|
|
)
|
|
|
|
|
|
-func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHeader, v2io.Reader, error) {
|
|
|
+func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHeader, buf.Reader, error) {
|
|
|
rawAccount, err := user.GetTypedAccount()
|
|
|
if err != nil {
|
|
|
return nil, nil, errors.Base(err).Message("Shadowsocks|TCP: Failed to parse account.")
|
|
|
@@ -121,17 +120,17 @@ func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHea
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var chunkReader v2io.Reader
|
|
|
+ var chunkReader buf.Reader
|
|
|
if request.Option.Has(RequestOptionOneTimeAuth) {
|
|
|
chunkReader = NewChunkReader(reader, NewAuthenticator(ChunkKeyGenerator(iv)))
|
|
|
} else {
|
|
|
- chunkReader = v2io.NewAdaptiveReader(reader)
|
|
|
+ chunkReader = buf.NewReader(reader)
|
|
|
}
|
|
|
|
|
|
return request, chunkReader, nil
|
|
|
}
|
|
|
|
|
|
-func WriteTCPRequest(request *protocol.RequestHeader, writer io.Writer) (v2io.Writer, error) {
|
|
|
+func WriteTCPRequest(request *protocol.RequestHeader, writer io.Writer) (buf.Writer, error) {
|
|
|
user := request.User
|
|
|
rawAccount, err := user.GetTypedAccount()
|
|
|
if err != nil {
|
|
|
@@ -183,17 +182,17 @@ func WriteTCPRequest(request *protocol.RequestHeader, writer io.Writer) (v2io.Wr
|
|
|
return nil, errors.Base(err).Message("Shadowsocks|TCP: Failed to write header.")
|
|
|
}
|
|
|
|
|
|
- var chunkWriter v2io.Writer
|
|
|
+ var chunkWriter buf.Writer
|
|
|
if request.Option.Has(RequestOptionOneTimeAuth) {
|
|
|
chunkWriter = NewChunkWriter(writer, NewAuthenticator(ChunkKeyGenerator(iv)))
|
|
|
} else {
|
|
|
- chunkWriter = v2io.NewAdaptiveWriter(writer)
|
|
|
+ chunkWriter = buf.NewWriter(writer)
|
|
|
}
|
|
|
|
|
|
return chunkWriter, nil
|
|
|
}
|
|
|
|
|
|
-func ReadTCPResponse(user *protocol.User, reader io.Reader) (v2io.Reader, error) {
|
|
|
+func ReadTCPResponse(user *protocol.User, reader io.Reader) (buf.Reader, error) {
|
|
|
rawAccount, err := user.GetTypedAccount()
|
|
|
if err != nil {
|
|
|
return nil, errors.Base(err).Message("Shadowsocks|TCP: Failed to parse account.")
|
|
|
@@ -210,10 +209,10 @@ func ReadTCPResponse(user *protocol.User, reader io.Reader) (v2io.Reader, error)
|
|
|
if err != nil {
|
|
|
return nil, errors.Base(err).Message("Shadowsocks|TCP: Failed to initialize decoding stream.")
|
|
|
}
|
|
|
- return v2io.NewAdaptiveReader(crypto.NewCryptionReader(stream, reader)), nil
|
|
|
+ return buf.NewReader(crypto.NewCryptionReader(stream, reader)), nil
|
|
|
}
|
|
|
|
|
|
-func WriteTCPResponse(request *protocol.RequestHeader, writer io.Writer) (v2io.Writer, error) {
|
|
|
+func WriteTCPResponse(request *protocol.RequestHeader, writer io.Writer) (buf.Writer, error) {
|
|
|
user := request.User
|
|
|
rawAccount, err := user.GetTypedAccount()
|
|
|
if err != nil {
|
|
|
@@ -233,7 +232,7 @@ func WriteTCPResponse(request *protocol.RequestHeader, writer io.Writer) (v2io.W
|
|
|
return nil, errors.Base(err).Message("Shadowsocks|TCP: Failed to create encoding stream.")
|
|
|
}
|
|
|
|
|
|
- return v2io.NewAdaptiveWriter(crypto.NewCryptionWriter(stream, writer)), nil
|
|
|
+ return buf.NewWriter(crypto.NewCryptionWriter(stream, writer)), nil
|
|
|
}
|
|
|
|
|
|
func EncodeUDPPacket(request *protocol.RequestHeader, payload *buf.Buffer) (*buf.Buffer, error) {
|