chore: update anytls

This commit is contained in:
anytls 2025-03-25 14:00:37 +09:00
parent 7b382611bb
commit e76c1b65ca
3 changed files with 16 additions and 19 deletions

View file

@ -15,10 +15,10 @@ import (
const CheckMark = -1
var DefaultPaddingScheme = []byte(`stop=8
0=34-120
0=30-30
1=100-400
2=400-500,c,500-1000,c,400-500,c,500-1000,c,500-1000,c,400-500
3=500-1000
2=400-500,c,500-1000,c,500-1000,c,500-1000,c,500-1000
3=9-9,500-1000
4=500-1000
5=500-1000
6=500-1000

View file

@ -105,15 +105,15 @@ func (s *Session) Close() error {
close(s.die)
once = true
})
if once {
if s.dieHook != nil {
s.dieHook()
}
s.streamLock.Lock()
for k := range s.streams {
s.streams[k].sessionClose()
s.streams[k].Close()
}
s.streams = make(map[uint32]*Stream)
s.streamLock.Unlock()
return s.conn.Close()
} else {
@ -265,7 +265,7 @@ func (s *Session) recvLoop() error {
}
if s.isClient {
if padding.UpdatePaddingScheme(rawScheme, s.padding) {
log.Infoln("[Update padding succeed] %x\n", md5.Sum(rawScheme))
log.Debugln("[Update padding succeed] %x\n", md5.Sum(rawScheme))
} else {
log.Warnln("[Update padding failed] %x\n", md5.Sum(rawScheme))
}
@ -280,8 +280,10 @@ func (s *Session) recvLoop() error {
}
}
// notify the session that a stream has closed
func (s *Session) streamClosed(sid uint32) error {
if s.IsClosed() {
return io.ErrClosedPipe
}
_, err := s.writeFrame(newFrame(cmdFIN, sid))
s.streamLock.Lock()
delete(s.streams, sid)

View file

@ -54,25 +54,20 @@ func (s *Stream) Write(b []byte) (n int, err error) {
// Close implements net.Conn
func (s *Stream) Close() error {
if s.sessionClose() {
// notify remote
return s.sess.streamClosed(s.id)
} else {
return io.ErrClosedPipe
}
}
// sessionClose close stream from session side, do not notify remote
func (s *Stream) sessionClose() (once bool) {
var once bool
s.dieOnce.Do(func() {
s.pipeR.Close()
once = true
})
if once {
if s.dieHook != nil {
s.dieHook()
s.dieHook = nil
}
})
return
return s.sess.streamClosed(s.id)
} else {
return io.ErrClosedPipe
}
}
func (s *Stream) SetReadDeadline(t time.Time) error {