mirror of
https://github.com/v2ray/v2ray-core.git
synced 2026-11-01 16:18:24 +00:00
re-org vmess content
This commit is contained in:
@@ -1,21 +1,21 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/config"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess"
|
||||
)
|
||||
|
||||
type MockUserSet struct {
|
||||
Users []config.User
|
||||
Users []vmess.User
|
||||
UserHashes map[string]int
|
||||
Timestamps map[string]int64
|
||||
}
|
||||
|
||||
func (us *MockUserSet) AddUser(user config.User) error {
|
||||
func (us *MockUserSet) AddUser(user vmess.User) error {
|
||||
us.Users = append(us.Users, user)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (us *MockUserSet) GetUser(userhash []byte) (config.User, int64, bool) {
|
||||
func (us *MockUserSet) GetUser(userhash []byte) (vmess.User, int64, bool) {
|
||||
idx, found := us.UserHashes[string(userhash)]
|
||||
if found {
|
||||
return us.Users[idx], us.Timestamps[string(userhash)], true
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/config"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess"
|
||||
)
|
||||
|
||||
type StaticUser struct {
|
||||
id *config.ID
|
||||
id *vmess.ID
|
||||
}
|
||||
|
||||
func (this *StaticUser) ID() *config.ID {
|
||||
func (this *StaticUser) ID() *vmess.ID {
|
||||
return this.id
|
||||
}
|
||||
|
||||
func (this *StaticUser) Level() config.UserLevel {
|
||||
return config.UserLevelUntrusted
|
||||
func (this *StaticUser) Level() vmess.UserLevel {
|
||||
return vmess.UserLevelUntrusted
|
||||
}
|
||||
|
||||
type StaticUserSet struct {
|
||||
}
|
||||
|
||||
func (us *StaticUserSet) AddUser(user config.User) error {
|
||||
func (us *StaticUserSet) AddUser(user vmess.User) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (us *StaticUserSet) GetUser(userhash []byte) (config.User, int64, bool) {
|
||||
id, _ := config.NewID("703e9102-eb57-499c-8b59-faf4f371bb21")
|
||||
func (us *StaticUserSet) GetUser(userhash []byte) (vmess.User, int64, bool) {
|
||||
id, _ := vmess.NewID("703e9102-eb57-499c-8b59-faf4f371bb21")
|
||||
return &StaticUser{id: id}, 0, true
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/v2ray/v2ray-core/common/collect"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/config"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess"
|
||||
)
|
||||
|
||||
const (
|
||||
@@ -14,12 +14,12 @@ const (
|
||||
)
|
||||
|
||||
type UserSet interface {
|
||||
AddUser(user config.User) error
|
||||
GetUser(timeHash []byte) (config.User, int64, bool)
|
||||
AddUser(user vmess.User) error
|
||||
GetUser(timeHash []byte) (vmess.User, int64, bool)
|
||||
}
|
||||
|
||||
type TimedUserSet struct {
|
||||
validUsers []config.User
|
||||
validUsers []vmess.User
|
||||
userHash map[string]indexTimePair
|
||||
userHashDeleteQueue *collect.TimedQueue
|
||||
access sync.RWMutex
|
||||
@@ -32,7 +32,7 @@ type indexTimePair struct {
|
||||
|
||||
func NewTimedUserSet() UserSet {
|
||||
tus := &TimedUserSet{
|
||||
validUsers: make([]config.User, 0, 16),
|
||||
validUsers: make([]vmess.User, 0, 16),
|
||||
userHash: make(map[string]indexTimePair, 512),
|
||||
userHashDeleteQueue: collect.NewTimedQueue(updateIntervalSec),
|
||||
access: sync.RWMutex{},
|
||||
@@ -50,7 +50,7 @@ func (us *TimedUserSet) removeEntries(entries <-chan interface{}) {
|
||||
}
|
||||
}
|
||||
|
||||
func (us *TimedUserSet) generateNewHashes(lastSec, nowSec int64, idx int, id *config.ID) {
|
||||
func (us *TimedUserSet) generateNewHashes(lastSec, nowSec int64, idx int, id *vmess.ID) {
|
||||
idHash := NewTimeHash(HMACHash{})
|
||||
for lastSec < nowSec {
|
||||
idHash := idHash.Hash(id.Bytes[:], lastSec)
|
||||
@@ -74,7 +74,7 @@ func (us *TimedUserSet) updateUserHash(tick <-chan time.Time) {
|
||||
}
|
||||
}
|
||||
|
||||
func (us *TimedUserSet) AddUser(user config.User) error {
|
||||
func (us *TimedUserSet) AddUser(user vmess.User) error {
|
||||
id := user.ID()
|
||||
idx := len(us.validUsers)
|
||||
us.validUsers = append(us.validUsers, user)
|
||||
@@ -86,7 +86,7 @@ func (us *TimedUserSet) AddUser(user config.User) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (us *TimedUserSet) GetUser(userHash []byte) (config.User, int64, bool) {
|
||||
func (us *TimedUserSet) GetUser(userHash []byte) (vmess.User, int64, bool) {
|
||||
defer us.access.RUnlock()
|
||||
us.access.RLock()
|
||||
pair, found := us.userHash[string(userHash)]
|
||||
|
||||
@@ -12,7 +12,7 @@ import (
|
||||
"github.com/v2ray/v2ray-core/common/log"
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
proxyerrors "github.com/v2ray/v2ray-core/proxy/common/errors"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/config"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
"github.com/v2ray/v2ray-core/transport"
|
||||
)
|
||||
@@ -35,7 +35,7 @@ const (
|
||||
// streaming.
|
||||
type VMessRequest struct {
|
||||
Version byte
|
||||
User config.User
|
||||
User vmess.User
|
||||
RequestIV []byte
|
||||
RequestKey []byte
|
||||
ResponseHeader []byte
|
||||
@@ -68,7 +68,7 @@ func NewVMessRequestReader(vUserSet user.UserSet) *VMessRequestReader {
|
||||
func (this *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) {
|
||||
buffer := alloc.NewSmallBuffer()
|
||||
|
||||
nBytes, err := v2net.ReadAllBytes(reader, buffer.Value[:config.IDBytesLen])
|
||||
nBytes, err := v2net.ReadAllBytes(reader, buffer.Value[:vmess.IDBytesLen])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -7,7 +7,7 @@ import (
|
||||
"testing"
|
||||
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/config"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user/testing/mocks"
|
||||
v2testing "github.com/v2ray/v2ray-core/testing"
|
||||
@@ -15,22 +15,22 @@ import (
|
||||
)
|
||||
|
||||
type TestUser struct {
|
||||
id *config.ID
|
||||
level config.UserLevel
|
||||
id *vmess.ID
|
||||
level vmess.UserLevel
|
||||
}
|
||||
|
||||
func (u *TestUser) ID() *config.ID {
|
||||
func (u *TestUser) ID() *vmess.ID {
|
||||
return u.id
|
||||
}
|
||||
|
||||
func (this *TestUser) Level() config.UserLevel {
|
||||
func (this *TestUser) Level() vmess.UserLevel {
|
||||
return this.level
|
||||
}
|
||||
|
||||
func TestVMessSerialization(t *testing.T) {
|
||||
v2testing.Current(t)
|
||||
|
||||
userId, err := config.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userId, err := vmess.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@@ -39,7 +39,7 @@ func TestVMessSerialization(t *testing.T) {
|
||||
id: userId,
|
||||
}
|
||||
|
||||
userSet := mocks.MockUserSet{[]config.User{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet := mocks.MockUserSet{[]vmess.User{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet.AddUser(testUser)
|
||||
|
||||
request := new(VMessRequest)
|
||||
@@ -90,8 +90,8 @@ func TestReadSingleByte(t *testing.T) {
|
||||
}
|
||||
|
||||
func BenchmarkVMessRequestWriting(b *testing.B) {
|
||||
userId, _ := config.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userSet := mocks.MockUserSet{[]config.User{}, make(map[string]int), make(map[string]int64)}
|
||||
userId, _ := vmess.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userSet := mocks.MockUserSet{[]vmess.User{}, make(map[string]int), make(map[string]int64)}
|
||||
|
||||
testUser := &TestUser{
|
||||
id: userId,
|
||||
|
||||
Reference in New Issue
Block a user