mirror of
https://github.com/v2fly/v2ray-core.git
synced 2025-01-02 15:36:41 -05:00
move back to serial
This commit is contained in:
parent
128a90b98b
commit
77c03f0da5
@ -9,7 +9,7 @@ import (
|
|||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
type SessionStatus byte
|
type SessionStatus byte
|
||||||
@ -65,7 +65,7 @@ func (f FrameMetadata) WriteTo(b *buf.Buffer) error {
|
|||||||
lenBytes := b.Bytes()
|
lenBytes := b.Bytes()
|
||||||
|
|
||||||
len0 := b.Len()
|
len0 := b.Len()
|
||||||
if _, err := vio.WriteUint16(b, f.SessionID); err != nil {
|
if _, err := serial.WriteUint16(b, f.SessionID); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -91,7 +91,7 @@ func (f FrameMetadata) WriteTo(b *buf.Buffer) error {
|
|||||||
|
|
||||||
// Unmarshal reads FrameMetadata from the given reader.
|
// Unmarshal reads FrameMetadata from the given reader.
|
||||||
func (f *FrameMetadata) Unmarshal(reader io.Reader) error {
|
func (f *FrameMetadata) Unmarshal(reader io.Reader) error {
|
||||||
metaLen, err := vio.ReadUint16(reader)
|
metaLen, err := serial.ReadUint16(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
|
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/crypto"
|
"v2ray.com/core/common/crypto"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
// PacketReader is an io.Reader that reads whole chunk of Mux frames every time.
|
// PacketReader is an io.Reader that reads whole chunk of Mux frames every time.
|
||||||
@ -28,7 +28,7 @@ func (r *PacketReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
|||||||
return nil, io.EOF
|
return nil, io.EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
size, err := vio.ReadUint16(r.reader)
|
size, err := serial.ReadUint16(r.reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Writer struct {
|
type Writer struct {
|
||||||
@ -66,7 +66,7 @@ func writeMetaWithFrame(writer buf.Writer, meta FrameMetadata, data buf.MultiBuf
|
|||||||
if err := meta.WriteTo(frame); err != nil {
|
if err := meta.WriteTo(frame); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if _, err := vio.WriteUint16(frame, uint16(data.Len())); err != nil {
|
if _, err := serial.WriteUint16(frame, uint16(data.Len())); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@ import (
|
|||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/common/task"
|
"v2ray.com/core/common/task"
|
||||||
"v2ray.com/core/common/vio"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
type AddressOption func(*AddressParser)
|
type AddressOption func(*AddressParser)
|
||||||
@ -167,7 +167,7 @@ func (p *AddressParser) ReadAddressPort(buffer *buf.Buffer, input io.Reader) (ne
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *AddressParser) writePort(writer io.Writer, port net.Port) error {
|
func (p *AddressParser) writePort(writer io.Writer, port net.Port) error {
|
||||||
return common.Error2(vio.WriteUint16(writer, port.Value()))
|
return common.Error2(serial.WriteUint16(writer, port.Value()))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *AddressParser) writeAddress(writer io.Writer, address net.Address) error {
|
func (p *AddressParser) writeAddress(writer io.Writer, address net.Address) error {
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
package vio
|
package serial
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"encoding/binary"
|
"encoding/binary"
|
@ -1,4 +1,4 @@
|
|||||||
package vio_test
|
package serial_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
@ -6,14 +6,14 @@ import (
|
|||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/compare"
|
"v2ray.com/core/common/compare"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestUint32Serial(t *testing.T) {
|
func TestUint32Serial(t *testing.T) {
|
||||||
b := buf.New()
|
b := buf.New()
|
||||||
defer b.Release()
|
defer b.Release()
|
||||||
|
|
||||||
n, err := vio.WriteUint32(b, 10)
|
n, err := serial.WriteUint32(b, 10)
|
||||||
common.Must(err)
|
common.Must(err)
|
||||||
if n != 4 {
|
if n != 4 {
|
||||||
t.Error("expect 4 bytes writtng, but actually ", n)
|
t.Error("expect 4 bytes writtng, but actually ", n)
|
@ -10,7 +10,7 @@ import (
|
|||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/bytespool"
|
"v2ray.com/core/common/bytespool"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -70,7 +70,7 @@ func NewChunkReader(reader io.Reader, auth *Authenticator) *ChunkReader {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (v *ChunkReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
func (v *ChunkReader) ReadMultiBuffer() (buf.MultiBuffer, error) {
|
||||||
size, err := vio.ReadUint16(v.reader)
|
size, err := serial.ReadUint16(v.reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, newError("failed to read size")
|
return nil, newError("failed to read size")
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@ import (
|
|||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
@ -260,7 +260,7 @@ func writeSocks4Response(writer io.Writer, errCode byte, address net.Address, po
|
|||||||
defer buffer.Release()
|
defer buffer.Release()
|
||||||
|
|
||||||
common.Must2(buffer.WriteBytes(0x00, errCode))
|
common.Must2(buffer.WriteBytes(0x00, errCode))
|
||||||
common.Must2(vio.WriteUint16(buffer, port.Value()))
|
common.Must2(serial.WriteUint16(buffer, port.Value()))
|
||||||
common.Must2(buffer.Write(address.IP()))
|
common.Must2(buffer.Write(address.IP()))
|
||||||
return buf.WriteAllBytes(writer, buffer.Bytes())
|
return buf.WriteAllBytes(writer, buffer.Bytes())
|
||||||
}
|
}
|
||||||
|
@ -16,15 +16,15 @@ import (
|
|||||||
"v2ray.com/core/common/crypto"
|
"v2ray.com/core/common/crypto"
|
||||||
"v2ray.com/core/common/dice"
|
"v2ray.com/core/common/dice"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
"v2ray.com/core/common/vio"
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/proxy/vmess"
|
"v2ray.com/core/proxy/vmess"
|
||||||
)
|
)
|
||||||
|
|
||||||
func hashTimestamp(h hash.Hash, t protocol.Timestamp) []byte {
|
func hashTimestamp(h hash.Hash, t protocol.Timestamp) []byte {
|
||||||
vio.WriteUint64(h, uint64(t))
|
serial.WriteUint64(h, uint64(t))
|
||||||
vio.WriteUint64(h, uint64(t))
|
serial.WriteUint64(h, uint64(t))
|
||||||
vio.WriteUint64(h, uint64(t))
|
serial.WriteUint64(h, uint64(t))
|
||||||
vio.WriteUint64(h, uint64(t))
|
serial.WriteUint64(h, uint64(t))
|
||||||
return h.Sum(nil)
|
return h.Sum(nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,7 +59,7 @@ func (c *ClientSession) EncodeRequestHeader(header *protocol.RequestHeader, writ
|
|||||||
timestamp := protocol.NewTimestampGenerator(protocol.NowTime(), 30)()
|
timestamp := protocol.NewTimestampGenerator(protocol.NowTime(), 30)()
|
||||||
account := header.User.Account.(*vmess.MemoryAccount)
|
account := header.User.Account.(*vmess.MemoryAccount)
|
||||||
idHash := c.idHash(account.AnyValidID().Bytes())
|
idHash := c.idHash(account.AnyValidID().Bytes())
|
||||||
common.Must2(vio.WriteUint64(idHash, uint64(timestamp)))
|
common.Must2(serial.WriteUint64(idHash, uint64(timestamp)))
|
||||||
common.Must2(writer.Write(idHash.Sum(nil)))
|
common.Must2(writer.Write(idHash.Sum(nil)))
|
||||||
|
|
||||||
buffer := buf.New()
|
buffer := buf.New()
|
||||||
|
@ -8,8 +8,8 @@ import (
|
|||||||
"v2ray.com/core/common/buf"
|
"v2ray.com/core/common/buf"
|
||||||
"v2ray.com/core/common/net"
|
"v2ray.com/core/common/net"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/common/uuid"
|
"v2ray.com/core/common/uuid"
|
||||||
"v2ray.com/core/common/vio"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
@ -96,11 +96,11 @@ func (f *CommandSwitchAccountFactory) Marshal(command interface{}, writer io.Wri
|
|||||||
common.Must2(writer.Write([]byte(hostStr)))
|
common.Must2(writer.Write([]byte(hostStr)))
|
||||||
}
|
}
|
||||||
|
|
||||||
common.Must2(vio.WriteUint16(writer, cmd.Port.Value()))
|
common.Must2(serial.WriteUint16(writer, cmd.Port.Value()))
|
||||||
|
|
||||||
idBytes := cmd.ID.Bytes()
|
idBytes := cmd.ID.Bytes()
|
||||||
common.Must2(writer.Write(idBytes))
|
common.Must2(writer.Write(idBytes))
|
||||||
common.Must2(vio.WriteUint16(writer, cmd.AlterIds))
|
common.Must2(serial.WriteUint16(writer, cmd.AlterIds))
|
||||||
common.Must2(writer.Write([]byte{byte(cmd.Level)}))
|
common.Must2(writer.Write([]byte{byte(cmd.Level)}))
|
||||||
|
|
||||||
common.Must2(writer.Write([]byte{cmd.ValidMin}))
|
common.Must2(writer.Write([]byte{cmd.ValidMin}))
|
||||||
|
@ -5,10 +5,9 @@ import (
|
|||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"v2ray.com/core/common/vio"
|
|
||||||
|
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/common/task"
|
"v2ray.com/core/common/task"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -66,7 +65,7 @@ func (v *TimedUserValidator) generateNewHashes(nowSec protocol.Timestamp, user *
|
|||||||
genBeginSec = nowSec - cacheDurationSec
|
genBeginSec = nowSec - cacheDurationSec
|
||||||
}
|
}
|
||||||
for ts := genBeginSec; ts <= genEndSec; ts++ {
|
for ts := genBeginSec; ts <= genEndSec; ts++ {
|
||||||
common.Must2(vio.WriteUint64(idHash, uint64(ts)))
|
common.Must2(serial.WriteUint64(idHash, uint64(ts)))
|
||||||
idHash.Sum(hashValue[:0])
|
idHash.Sum(hashValue[:0])
|
||||||
idHash.Reset()
|
idHash.Reset()
|
||||||
|
|
||||||
|
@ -6,8 +6,8 @@ import (
|
|||||||
|
|
||||||
"v2ray.com/core/common"
|
"v2ray.com/core/common"
|
||||||
"v2ray.com/core/common/protocol"
|
"v2ray.com/core/common/protocol"
|
||||||
|
"v2ray.com/core/common/serial"
|
||||||
"v2ray.com/core/common/uuid"
|
"v2ray.com/core/common/uuid"
|
||||||
"v2ray.com/core/common/vio"
|
|
||||||
. "v2ray.com/core/proxy/vmess"
|
. "v2ray.com/core/proxy/vmess"
|
||||||
. "v2ray.com/ext/assert"
|
. "v2ray.com/ext/assert"
|
||||||
)
|
)
|
||||||
@ -39,7 +39,7 @@ func TestUserValidator(t *testing.T) {
|
|||||||
testSmallLag := func(lag time.Duration) {
|
testSmallLag := func(lag time.Duration) {
|
||||||
ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
|
ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
|
||||||
idHash := hasher(id.Bytes())
|
idHash := hasher(id.Bytes())
|
||||||
common.Must2(vio.WriteUint64(idHash, uint64(ts)))
|
common.Must2(serial.WriteUint64(idHash, uint64(ts)))
|
||||||
userHash := idHash.Sum(nil)
|
userHash := idHash.Sum(nil)
|
||||||
|
|
||||||
euser, ets, found := v.Get(userHash)
|
euser, ets, found := v.Get(userHash)
|
||||||
@ -61,7 +61,7 @@ func TestUserValidator(t *testing.T) {
|
|||||||
testBigLag := func(lag time.Duration) {
|
testBigLag := func(lag time.Duration) {
|
||||||
ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
|
ts := protocol.Timestamp(time.Now().Add(time.Second * lag).Unix())
|
||||||
idHash := hasher(id.Bytes())
|
idHash := hasher(id.Bytes())
|
||||||
common.Must2(vio.WriteUint64(idHash, uint64(ts)))
|
common.Must2(serial.WriteUint64(idHash, uint64(ts)))
|
||||||
userHash := idHash.Sum(nil)
|
userHash := idHash.Sum(nil)
|
||||||
|
|
||||||
euser, _, found := v.Get(userHash)
|
euser, _, found := v.Get(userHash)
|
||||||
|
Loading…
Reference in New Issue
Block a user