re-org vmess content

This commit is contained in:
Darien Raymond
2015-12-07 19:32:38 +00:00
parent 0a4d9fb037
commit af8412175e
24 changed files with 113 additions and 108 deletions
@@ -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
}
+8 -8
View File
@@ -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)]
+3 -3
View File
@@ -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
}
+9 -9
View File
@@ -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,