Selaa lähdekoodia

change ReadFullFrom to take int32 size

Darien Raymond 7 vuotta sitten
vanhempi
commit
4de3f1adc1

+ 2 - 2
app/proxyman/mux/reader.go

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

+ 1 - 1
common/buf/io.go

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

+ 3 - 3
common/buf/multi_buffer.go

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

+ 1 - 1
common/buf/reader.go

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

+ 1 - 1
common/crypto/auth.go

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

+ 1 - 1
common/protocol/address.go

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

+ 1 - 1
proxy/shadowsocks/ota.go

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

+ 3 - 3
proxy/shadowsocks/protocol.go

@@ -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()
 

+ 3 - 3
proxy/socks/protocol.go

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

+ 2 - 2
proxy/vmess/encoding/client.go

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

+ 2 - 2
proxy/vmess/encoding/server.go

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