Compare commits

..

4 Commits

Author SHA1 Message Date
世界
66a767d083
Fix ssm-api 2025-07-24 12:22:18 +08:00
世界
9095e5763a
documentation: Bump version 2025-07-24 09:21:30 +08:00
世界
a11384b286
Fix time service wrapper 2025-07-24 09:21:08 +08:00
dyhkwong
9dd9fb27cd
Fix disable_sni nil time func 2025-07-24 09:21:08 +08:00
4 changed files with 28 additions and 11 deletions

View File

@ -87,13 +87,15 @@ func NewSTDClient(ctx context.Context, serverAddress string, options option.Outb
tlsConfig.VerifyConnection = func(state tls.ConnectionState) error {
verifyOptions := x509.VerifyOptions{
Roots: tlsConfig.RootCAs,
CurrentTime: tlsConfig.Time(),
DNSName: serverName,
Intermediates: x509.NewCertPool(),
}
for _, cert := range state.PeerCertificates[1:] {
verifyOptions.Intermediates.AddCert(cert)
}
if tlsConfig.Time != nil {
verifyOptions.CurrentTime = tlsConfig.Time()
}
_, err := state.PeerCertificates[0].Verify(verifyOptions)
return err
}

View File

@ -11,10 +11,13 @@ type TimeServiceWrapper struct {
}
func (w *TimeServiceWrapper) TimeFunc() func() time.Time {
if w.TimeService == nil {
return nil
return func() time.Time {
if w.TimeService != nil {
return w.TimeService.TimeFunc()()
} else {
return time.Now()
}
}
return w.TimeService.TimeFunc()
}
func (w *TimeServiceWrapper) Upstream() any {

View File

@ -2,7 +2,7 @@
icon: material/alert-decagram
---
#### 1.12.0-rc.2
#### 1.12.0-rc.3
* Fixes and improvements

View File

@ -50,12 +50,24 @@ func (s *TrafficManager) UpdateUsers(users []string) {
newUserTCPSessions := make(map[string]*atomic.Int64)
newUserUDPSessions := make(map[string]*atomic.Int64)
for _, user := range users {
newUserUplink[user] = s.userUplinkPackets[user]
newUserDownlink[user] = s.userDownlinkPackets[user]
newUserUplinkPackets[user] = s.userUplinkPackets[user]
newUserDownlinkPackets[user] = s.userDownlinkPackets[user]
newUserTCPSessions[user] = s.userTCPSessions[user]
newUserUDPSessions[user] = s.userUDPSessions[user]
if counter, loaded := s.userUplink[user]; loaded {
newUserUplink[user] = counter
}
if counter, loaded := s.userDownlink[user]; loaded {
newUserDownlink[user] = counter
}
if counter, loaded := s.userUplinkPackets[user]; loaded {
newUserUplinkPackets[user] = counter
}
if counter, loaded := s.userDownlinkPackets[user]; loaded {
newUserDownlinkPackets[user] = counter
}
if counter, loaded := s.userTCPSessions[user]; loaded {
newUserTCPSessions[user] = counter
}
if counter, loaded := s.userUDPSessions[user]; loaded {
newUserUDPSessions[user] = counter
}
}
s.userUplink = newUserUplink
s.userDownlink = newUserDownlink