mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-02-19 07:01:46 -05:00
change ReadFullFrom to take int32 size
This commit is contained in:
parent
03512a6a9b
commit
4de3f1adc1
app/proxyman/mux
common
proxy
@ -20,7 +20,7 @@ func ReadMetadata(reader io.Reader) (*FrameMetadata, error) {
|
||||
b := buf.NewSize(uint32(metaLen))
|
||||
defer b.Release()
|
||||
|
||||
if err := b.Reset(buf.ReadFullFrom(reader, int(metaLen))); err != nil {
|
||||
if err := b.Reset(buf.ReadFullFrom(reader, int32(metaLen))); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return ReadFrameFrom(b)
|
||||
@ -52,7 +52,7 @@ func (r *PacketReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
||||
}
|
||||
|
||||
b := buf.NewSize(uint32(size))
|
||||
if err := b.AppendSupplier(buf.ReadFullFrom(r.reader, int(size))); err != nil {
|
||||
if err := b.Reset(buf.ReadFullFrom(r.reader, int32(size))); err != nil {
|
||||
b.Release()
|
||||
return nil, err
|
||||
}
|
||||
|
@ -33,7 +33,7 @@ func ReadFrom(reader io.Reader) Supplier {
|
||||
}
|
||||
|
||||
// ReadFullFrom creates a Supplier to read full buffer from a given io.Reader.
|
||||
func ReadFullFrom(reader io.Reader, size int) Supplier {
|
||||
func ReadFullFrom(reader io.Reader, size int32) Supplier {
|
||||
return func(b []byte) (int, error) {
|
||||
return io.ReadFull(reader, b[:size])
|
||||
}
|
||||
|
@ -40,7 +40,7 @@ func ReadSizeToMultiBuffer(reader io.Reader, size int32) (MultiBuffer, error) {
|
||||
bSize = Size
|
||||
}
|
||||
b := NewSize(uint32(bSize))
|
||||
if err := b.Reset(ReadFullFrom(reader, int(bSize))); err != nil {
|
||||
if err := b.Reset(ReadFullFrom(reader, bSize)); err != nil {
|
||||
mb.Release()
|
||||
return nil, err
|
||||
}
|
||||
@ -174,12 +174,12 @@ func (mb MultiBuffer) ToNetBuffers() net.Buffers {
|
||||
}
|
||||
|
||||
// SliceBySize splits the beginning of this MultiBuffer into another one, for at most size bytes.
|
||||
func (mb *MultiBuffer) SliceBySize(size int) MultiBuffer {
|
||||
func (mb *MultiBuffer) SliceBySize(size int32) MultiBuffer {
|
||||
slice := NewMultiBufferCap(10)
|
||||
sliceSize := 0
|
||||
endIndex := len(*mb)
|
||||
for i, b := range *mb {
|
||||
if b.Len()+sliceSize > size {
|
||||
if int32(b.Len()+sliceSize) > size {
|
||||
endIndex = i
|
||||
break
|
||||
}
|
||||
|
@ -158,7 +158,7 @@ func (r *BufferedReader) ReadAtMost(size int) (MultiBuffer, error) {
|
||||
r.leftOver = mb
|
||||
}
|
||||
|
||||
mb := r.leftOver.SliceBySize(size)
|
||||
mb := r.leftOver.SliceBySize(int32(size))
|
||||
if r.leftOver.IsEmpty() {
|
||||
r.leftOver = nil
|
||||
}
|
||||
|
@ -144,7 +144,7 @@ func (r *AuthenticationReader) readInternal(soft bool) (*buf.Buffer, error) {
|
||||
}
|
||||
|
||||
b := buf.NewSize(uint32(size))
|
||||
if err := b.Reset(buf.ReadFullFrom(r.reader, int(size))); err != nil {
|
||||
if err := b.Reset(buf.ReadFullFrom(r.reader, size)); err != nil {
|
||||
b.Release()
|
||||
return nil, err
|
||||
}
|
||||
|
@ -99,7 +99,7 @@ func (p *AddressParser) readAddress(b *buf.Buffer, reader io.Reader) (net.Addres
|
||||
return nil, err
|
||||
}
|
||||
domainLength := int(b.Byte(b.Len() - 1))
|
||||
if err := b.AppendSupplier(buf.ReadFullFrom(reader, domainLength)); err != nil {
|
||||
if err := b.AppendSupplier(buf.ReadFullFrom(reader, int32(domainLength))); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
domain := string(b.BytesFrom(-domainLength))
|
||||
|
@ -77,7 +77,7 @@ func (v *ChunkReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
||||
size += AuthSize
|
||||
|
||||
buffer := buf.NewSize(uint32(size))
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(v.reader, int(size))); err != nil {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(v.reader, int32(size))); err != nil {
|
||||
buffer.Release()
|
||||
return nil, err
|
||||
}
|
||||
|
@ -41,7 +41,7 @@ func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHea
|
||||
ivLen := account.Cipher.IVSize()
|
||||
var iv []byte
|
||||
if ivLen > 0 {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, ivLen)); err != nil {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, int32(ivLen))); err != nil {
|
||||
return nil, nil, newError("failed to read IV").Base(err)
|
||||
}
|
||||
|
||||
@ -70,7 +70,7 @@ func ReadTCPSession(user *protocol.User, reader io.Reader) (*protocol.RequestHea
|
||||
// Invalid address. Continue to read some bytes to confuse client.
|
||||
nBytes := dice.Roll(32) + 1
|
||||
buffer.Clear()
|
||||
buffer.AppendSupplier(buf.ReadFullFrom(br, nBytes))
|
||||
buffer.AppendSupplier(buf.ReadFullFrom(br, int32(nBytes)))
|
||||
return nil, nil, newError("failed to read address").Base(err)
|
||||
}
|
||||
|
||||
@ -227,7 +227,7 @@ func EncodeUDPPacket(request *protocol.RequestHeader, payload []byte) (*buf.Buff
|
||||
buffer := buf.New()
|
||||
ivLen := account.Cipher.IVSize()
|
||||
if ivLen > 0 {
|
||||
common.Must(buffer.Reset(buf.ReadFullFrom(rand.Reader, ivLen)))
|
||||
common.Must(buffer.Reset(buf.ReadFullFrom(rand.Reader, int32(ivLen))))
|
||||
}
|
||||
iv := buffer.Bytes()
|
||||
|
||||
|
@ -97,7 +97,7 @@ func (s *ServerSession) Handshake(reader io.Reader, writer io.Writer) (*protocol
|
||||
|
||||
if version == socks5Version {
|
||||
nMethod := int(buffer.Byte(1))
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, nMethod)); err != nil {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(reader, int32(nMethod))); err != nil {
|
||||
return nil, newError("failed to read auth methods").Base(err)
|
||||
}
|
||||
|
||||
@ -190,7 +190,7 @@ func readUsernamePassword(reader io.Reader) (string, string, error) {
|
||||
if err := buffer.Reset(buf.ReadFullFrom(reader, 2)); err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
nUsername := int(buffer.Byte(1))
|
||||
nUsername := int32(buffer.Byte(1))
|
||||
|
||||
if err := buffer.Reset(buf.ReadFullFrom(reader, nUsername)); err != nil {
|
||||
return "", "", err
|
||||
@ -200,7 +200,7 @@ func readUsernamePassword(reader io.Reader) (string, string, error) {
|
||||
if err := buffer.Reset(buf.ReadFullFrom(reader, 1)); err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
nPassword := int(buffer.Byte(0))
|
||||
nPassword := int32(buffer.Byte(0))
|
||||
if err := buffer.Reset(buf.ReadFullFrom(reader, nPassword)); err != nil {
|
||||
return "", "", err
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ func (c *ClientSession) EncodeRequestHeader(header *protocol.RequestHeader, writ
|
||||
}
|
||||
|
||||
if padingLen > 0 {
|
||||
common.Must(buffer.AppendSupplier(buf.ReadFullFrom(rand.Reader, padingLen)))
|
||||
common.Must(buffer.AppendSupplier(buf.ReadFullFrom(rand.Reader, int32(padingLen))))
|
||||
}
|
||||
|
||||
fnv1a := fnv.New32a()
|
||||
@ -191,7 +191,7 @@ func (c *ClientSession) DecodeResponseHeader(reader io.Reader) (*protocol.Respon
|
||||
|
||||
if buffer.Byte(2) != 0 {
|
||||
cmdID := buffer.Byte(2)
|
||||
dataLen := int(buffer.Byte(3))
|
||||
dataLen := int32(buffer.Byte(3))
|
||||
|
||||
if err := buffer.Reset(buf.ReadFullFrom(c.responseReader, dataLen)); err != nil {
|
||||
return nil, newError("failed to read response command").Base(err)
|
||||
|
@ -168,7 +168,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
|
||||
if invalidRequestErr != nil {
|
||||
randomLen := dice.Roll(64) + 1
|
||||
// Read random number of bytes for prevent detection.
|
||||
buffer.AppendSupplier(buf.ReadFullFrom(decryptor, randomLen))
|
||||
buffer.AppendSupplier(buf.ReadFullFrom(decryptor, int32(randomLen)))
|
||||
}
|
||||
}()
|
||||
|
||||
@ -195,7 +195,7 @@ func (s *ServerSession) DecodeRequestHeader(reader io.Reader) (*protocol.Request
|
||||
}
|
||||
|
||||
if padingLen > 0 {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(decryptor, padingLen)); err != nil {
|
||||
if err := buffer.AppendSupplier(buf.ReadFullFrom(decryptor, int32(padingLen))); err != nil {
|
||||
return nil, newError("failed to read padding").Base(err)
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user