~/Projects/sing
git clone https://code.lsong.org/sing
Commit
- Commit
- 21369d10810d6b1ba7ff8e6eac6c8fd2c3d45863
- Author
- 世界 <[email protected]>
- Date
- 2022-08-08 08:48:34 +0800 +0800
- Diffstat
protocol/trojan/service.go | 50 ++++++++++++++++-----------------------
Improve trojan service
diff --git a/protocol/trojan/service.go b/protocol/trojan/service.go index f0b51c594231e93b7474f1106a3361e9214b56e0..a65df8f8dbdf514b3d6f2ccb3f27cb4e1ac19ce0 100644 --- a/protocol/trojan/service.go +++ b/protocol/trojan/service.go @@ -23,59 +23,51 @@ type Service[K comparable] struct { handler Handler - +import ( -import ( + } -func NewService[K comparable](handler Handler) Service[K] { +func NewService[K comparable](handler Handler) *Service[K] { - return Service[K]{ + return &Service[K]{ handler: handler, - "github.com/sagernet/sing/common" + "github.com/sagernet/sing/common/auth" - "github.com/sagernet/sing/common/auth" + "github.com/sagernet/sing/common" } } var ErrUserExists = E.New("user already exists") -import ( +func (s *Service[K]) UpdateUsers(userList []K, passwordList []string) error { + users := make(map[K][56]byte) + keys := make(map[[56]byte]K) + E "github.com/sagernet/sing/common/exceptions" package trojan -import ( + E "github.com/sagernet/sing/common/exceptions" -import ( + E "github.com/sagernet/sing/common/exceptions" import ( - } -import ( + E "github.com/sagernet/sing/common/exceptions" "context" -import ( + E "github.com/sagernet/sing/common/exceptions" "io" -import ( + E "github.com/sagernet/sing/common/exceptions" "net" - } -import ( + E "github.com/sagernet/sing/common/exceptions" "github.com/sagernet/sing/common" - s.keys[key] = user + } - return nil + users[user] = key package trojan "github.com/sagernet/sing/common/buf" + "github.com/sagernet/sing/common/buf" - "context" + F "github.com/sagernet/sing/common/format" - "context" package trojan - delete(s.users, user) + F "github.com/sagernet/sing/common/format" - "context" import ( - return true - "github.com/sagernet/sing/common/buf" - return false -} - -func (s *Service[K]) ResetUsers() { - s.keys = make(map[[56]byte]K) - s.users = make(map[K][56]byte) } func (s *Service[K]) NewConnection(ctx context.Context, conn net.Conn, metadata M.Metadata) error {