mirror of
https://github.com/v2fly/v2ray-core.git
synced 2024-12-30 05:56:54 -05:00
Fix test break
This commit is contained in:
parent
075753c030
commit
b40be74b86
@ -6,7 +6,7 @@ import (
|
||||
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/log"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
type VMessUser struct {
|
||||
@ -14,9 +14,9 @@ type VMessUser struct {
|
||||
Email string `json:"email"`
|
||||
}
|
||||
|
||||
func (u *VMessUser) ToUser() (protocol.User, error) {
|
||||
id, err := protocol.NewID(u.Id)
|
||||
return protocol.User{
|
||||
func (u *VMessUser) ToUser() (user.User, error) {
|
||||
id, err := user.NewID(u.Id)
|
||||
return user.User{
|
||||
Id: id,
|
||||
}, err
|
||||
}
|
||||
@ -38,7 +38,7 @@ type VNextConfig struct {
|
||||
}
|
||||
|
||||
func (config VNextConfig) ToVNextServer() VNextServer {
|
||||
users := make([]protocol.User, 0, len(config.Users))
|
||||
users := make([]user.User, 0, len(config.Users))
|
||||
for _, user := range config.Users {
|
||||
vuser, err := user.ToUser()
|
||||
if err != nil {
|
||||
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"testing"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"crypto/hmac"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"crypto/md5"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"math/rand"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"testing"
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
// User is the user account that is used for connection to a Point
|
||||
type User struct {
|
@ -1,4 +1,4 @@
|
||||
package protocol
|
||||
package user
|
||||
|
||||
import (
|
||||
"container/heap"
|
@ -15,6 +15,7 @@ import (
|
||||
v2io "github.com/v2ray/v2ray-core/common/io"
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/log"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
const (
|
||||
@ -38,7 +39,7 @@ var (
|
||||
|
||||
type VMessRequest struct {
|
||||
Version byte
|
||||
UserId ID
|
||||
UserId user.ID
|
||||
RequestIV [16]byte
|
||||
RequestKey [16]byte
|
||||
ResponseHeader [4]byte
|
||||
@ -47,10 +48,10 @@ type VMessRequest struct {
|
||||
}
|
||||
|
||||
type VMessRequestReader struct {
|
||||
vUserSet UserSet
|
||||
vUserSet user.UserSet
|
||||
}
|
||||
|
||||
func NewVMessRequestReader(vUserSet UserSet) *VMessRequestReader {
|
||||
func NewVMessRequestReader(vUserSet user.UserSet) *VMessRequestReader {
|
||||
return &VMessRequestReader{
|
||||
vUserSet: vUserSet,
|
||||
}
|
||||
@ -59,7 +60,7 @@ func NewVMessRequestReader(vUserSet UserSet) *VMessRequestReader {
|
||||
func (r *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) {
|
||||
buffer := make([]byte, 256)
|
||||
|
||||
nBytes, err := reader.Read(buffer[:IDBytesLen])
|
||||
nBytes, err := reader.Read(buffer[:user.IDBytesLen])
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -75,7 +76,7 @@ func (r *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
aesStream := cipher.NewCFBDecrypter(aesCipher, Int64Hash(timeSec))
|
||||
aesStream := cipher.NewCFBDecrypter(aesCipher, user.Int64Hash(timeSec))
|
||||
decryptor := v2io.NewCryptionReader(aesStream, reader)
|
||||
|
||||
if err != nil {
|
||||
@ -178,7 +179,7 @@ func (r *VMessRequestReader) Read(reader io.Reader) (*VMessRequest, error) {
|
||||
return request, nil
|
||||
}
|
||||
|
||||
func (request *VMessRequest) ToBytes(idHash CounterHash, randomRangeInt64 RandomInt64InRange) ([]byte, error) {
|
||||
func (request *VMessRequest) ToBytes(idHash user.CounterHash, randomRangeInt64 user.RandomInt64InRange) ([]byte, error) {
|
||||
buffer := make([]byte, 0, 300)
|
||||
|
||||
counter := randomRangeInt64(time.Now().UTC().Unix(), 30)
|
||||
@ -235,7 +236,7 @@ func (request *VMessRequest) ToBytes(idHash CounterHash, randomRangeInt64 Random
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
aesStream := cipher.NewCFBEncrypter(aesCipher, Int64Hash(counter))
|
||||
aesStream := cipher.NewCFBEncrypter(aesCipher, user.Int64Hash(counter))
|
||||
aesStream.XORKeyStream(buffer[encryptionBegin:encryptionEnd], buffer[encryptionBegin:encryptionEnd])
|
||||
|
||||
return buffer, nil
|
||||
|
@ -5,8 +5,8 @@ import (
|
||||
"crypto/rand"
|
||||
"testing"
|
||||
|
||||
"github.com/v2ray/v2ray-core"
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
"github.com/v2ray/v2ray-core/testing/mocks"
|
||||
"github.com/v2ray/v2ray-core/testing/unit"
|
||||
)
|
||||
@ -14,13 +14,13 @@ import (
|
||||
func TestVMessSerialization(t *testing.T) {
|
||||
assert := unit.Assert(t)
|
||||
|
||||
userId, err := core.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userId, err := user.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
userSet := mocks.MockUserSet{[]core.ID{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet.AddUser(core.User{userId})
|
||||
userSet := mocks.MockUserSet{[]user.ID{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet.AddUser(user.User{userId})
|
||||
|
||||
request := new(VMessRequest)
|
||||
request.Version = byte(0x01)
|
||||
@ -45,7 +45,7 @@ func TestVMessSerialization(t *testing.T) {
|
||||
request.Address = v2net.DomainAddress("v2ray.com", 80)
|
||||
|
||||
mockTime := int64(1823730)
|
||||
buffer, err := request.ToBytes(NewTimeHash(HMACHash{}), func(base int64, delta int) int64 { return mockTime })
|
||||
buffer, err := request.ToBytes(user.NewTimeHash(user.HMACHash{}), func(base int64, delta int) int64 { return mockTime })
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
@ -69,9 +69,9 @@ func TestVMessSerialization(t *testing.T) {
|
||||
}
|
||||
|
||||
func BenchmarkVMessRequestWriting(b *testing.B) {
|
||||
userId, _ := core.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userSet := mocks.MockUserSet{[]core.ID{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet.AddUser(core.User{userId})
|
||||
userId, _ := user.NewID("2b2966ac-16aa-4fbf-8d81-c5f172a3da51")
|
||||
userSet := mocks.MockUserSet{[]user.ID{}, make(map[string]int), make(map[string]int64)}
|
||||
userSet.AddUser(user.User{userId})
|
||||
|
||||
request := new(VMessRequest)
|
||||
request.Version = byte(0x01)
|
||||
@ -85,6 +85,6 @@ func BenchmarkVMessRequestWriting(b *testing.B) {
|
||||
request.Address = v2net.DomainAddress("v2ray.com", 80)
|
||||
|
||||
for i := 0; i < b.N; i++ {
|
||||
request.ToBytes(NewTimeHash(HMACHash{}), GenerateRandomInt64InRange)
|
||||
request.ToBytes(user.NewTimeHash(user.HMACHash{}), user.GenerateRandomInt64InRange)
|
||||
}
|
||||
}
|
||||
|
@ -10,16 +10,17 @@ import (
|
||||
v2io "github.com/v2ray/v2ray-core/common/io"
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/log"
|
||||
protocol "github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
type VMessInboundHandler struct {
|
||||
vPoint *core.Point
|
||||
clients protocol.UserSet
|
||||
clients user.UserSet
|
||||
accepting bool
|
||||
}
|
||||
|
||||
func NewVMessInboundHandler(vp *core.Point, clients protocol.UserSet) *VMessInboundHandler {
|
||||
func NewVMessInboundHandler(vp *core.Point, clients user.UserSet) *VMessInboundHandler {
|
||||
return &VMessInboundHandler{
|
||||
vPoint: vp,
|
||||
clients: clients,
|
||||
@ -123,7 +124,7 @@ func (factory *VMessInboundHandlerFactory) Create(vp *core.Point, rawConfig []by
|
||||
if err != nil {
|
||||
panic(log.Error("VMessIn: Failed to load VMess inbound config: %v", err))
|
||||
}
|
||||
allowedClients := protocol.NewTimedUserSet()
|
||||
allowedClients := user.NewTimedUserSet()
|
||||
for _, client := range config.AllowedClients {
|
||||
user, err := client.ToUser()
|
||||
if err != nil {
|
||||
|
@ -11,13 +11,14 @@ import (
|
||||
v2io "github.com/v2ray/v2ray-core/common/io"
|
||||
v2net "github.com/v2ray/v2ray-core/common/net"
|
||||
"github.com/v2ray/v2ray-core/log"
|
||||
protocol "github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
// VNext is the next Point server in the connection chain.
|
||||
type VNextServer struct {
|
||||
Address v2net.Address // Address of VNext server
|
||||
Users []protocol.User // User accounts for accessing VNext.
|
||||
Users []user.User // User accounts for accessing VNext.
|
||||
}
|
||||
|
||||
type VMessOutboundHandler struct {
|
||||
@ -34,7 +35,7 @@ func NewVMessOutboundHandler(vp *core.Point, vNextList []VNextServer, dest v2net
|
||||
}
|
||||
}
|
||||
|
||||
func (handler *VMessOutboundHandler) pickVNext() (v2net.Address, protocol.User) {
|
||||
func (handler *VMessOutboundHandler) pickVNext() (v2net.Address, user.User) {
|
||||
vNextLen := len(handler.vNextList)
|
||||
if vNextLen == 0 {
|
||||
panic("VMessOut: Zero vNext is configured.")
|
||||
@ -101,7 +102,7 @@ func handleRequest(conn *net.TCPConn, request *protocol.VMessRequest, input <-ch
|
||||
return
|
||||
}
|
||||
|
||||
buffer, err := request.ToBytes(protocol.NewTimeHash(protocol.HMACHash{}), protocol.GenerateRandomInt64InRange)
|
||||
buffer, err := request.ToBytes(user.NewTimeHash(user.HMACHash{}), user.GenerateRandomInt64InRange)
|
||||
if err != nil {
|
||||
log.Error("VMessOut: Failed to serialize VMess request: %v", err)
|
||||
return
|
||||
|
@ -19,13 +19,12 @@ function test_package {
|
||||
|
||||
echo "mode: set" > coverall.out
|
||||
|
||||
test_package "." "."
|
||||
test_package "io/socks" "io/socks"
|
||||
test_package "io/vmess" "hash,io,io/vmess"
|
||||
test_package "math" "math"
|
||||
test_package "net" "net"
|
||||
test_package "net/socks" ".,io/socks,net,net/socks"
|
||||
test_package "net/vmess" ".,io,math,net,net/vmess"
|
||||
test_package "common/net" "common/net"
|
||||
test_package "proxy/socks" "proxy/socks,proxy/socks/protocol"
|
||||
test_package "proxy/socks/protocol" "proxy/socks/protocol"
|
||||
test_package "proxy/vmess" "common/io,common/net,proxy/vmess,proxy/vmess/protocol,proxy/vmess/protocol/user"
|
||||
test_package "proxy/vmess/protocol" "proxy/vmess/protocol,proxy/vmess/protocol/user"
|
||||
test_package "proxy/vmess/protocol/user" "proxy/vmess/protocol/user"
|
||||
|
||||
if [ "$FAIL" -eq 0 ]; then
|
||||
$HOME/gopath/bin/goveralls -v -coverprofile=coverall.out -service=travis-ci -repotoken $COVERALLS_TOKEN
|
||||
|
@ -1,21 +1,21 @@
|
||||
package mocks
|
||||
|
||||
import (
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol"
|
||||
"github.com/v2ray/v2ray-core/proxy/vmess/protocol/user"
|
||||
)
|
||||
|
||||
type MockUserSet struct {
|
||||
UserIds []protocol.ID
|
||||
UserIds []user.ID
|
||||
UserHashes map[string]int
|
||||
Timestamps map[string]int64
|
||||
}
|
||||
|
||||
func (us *MockUserSet) AddUser(user protocol.User) error {
|
||||
func (us *MockUserSet) AddUser(user user.User) error {
|
||||
us.UserIds = append(us.UserIds, user.Id)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (us *MockUserSet) GetUser(userhash []byte) (*protocol.ID, int64, bool) {
|
||||
func (us *MockUserSet) GetUser(userhash []byte) (*user.ID, int64, bool) {
|
||||
idx, found := us.UserHashes[string(userhash)]
|
||||
if found {
|
||||
return &us.UserIds[idx], us.Timestamps[string(userhash)], true
|
||||
|
Loading…
Reference in New Issue
Block a user