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