| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package vmess
- import (
- "math/rand"
- )
- type UserLevel int
- const (
- UserLevelAdmin = UserLevel(999)
- UserLevelUntrusted = UserLevel(0)
- )
- type User struct {
- ID *ID
- AlterIDs []*ID
- Level UserLevel
- }
- func (this *User) AnyValidID() *ID {
- if len(this.AlterIDs) == 0 {
- return this.ID
- }
- if len(this.AlterIDs) == 1 {
- return this.AlterIDs[0]
- }
- idx := rand.Intn(len(this.AlterIDs))
- return this.AlterIDs[idx]
- }
- type UserSettings struct {
- PayloadReadTimeout int
- }
- func GetUserSettings(level UserLevel) UserSettings {
- settings := UserSettings{
- PayloadReadTimeout: 120,
- }
- if level > 0 {
- settings.PayloadReadTimeout = 0
- }
- return settings
- }
|