mirror of https://github.com/v2ray/v2ray-core
simplify mux code
parent
27009786e9
commit
55ecd92064
|
@ -35,26 +35,26 @@ type session struct {
|
|||
downlinkClosed bool
|
||||
}
|
||||
|
||||
func (s *session) checkAndRemove() {
|
||||
s.Lock()
|
||||
if s.uplinkClosed && s.downlinkClosed {
|
||||
s.parent.remove(s.id)
|
||||
}
|
||||
s.Unlock()
|
||||
}
|
||||
|
||||
func (s *session) closeUplink() {
|
||||
var allDone bool
|
||||
s.Lock()
|
||||
s.uplinkClosed = true
|
||||
allDone = s.uplinkClosed && s.downlinkClosed
|
||||
s.Unlock()
|
||||
s.checkAndRemove()
|
||||
if allDone {
|
||||
s.parent.remove(s.id)
|
||||
}
|
||||
}
|
||||
|
||||
func (s *session) closeDownlink() {
|
||||
var allDone bool
|
||||
s.Lock()
|
||||
s.downlinkClosed = true
|
||||
allDone = s.uplinkClosed && s.downlinkClosed
|
||||
s.Unlock()
|
||||
s.checkAndRemove()
|
||||
if allDone {
|
||||
s.parent.remove(s.id)
|
||||
}
|
||||
}
|
||||
|
||||
type ClientManager struct {
|
||||
|
@ -177,7 +177,7 @@ func fetchInput(ctx context.Context, s *session, output buf.Writer) {
|
|||
return
|
||||
}
|
||||
}
|
||||
_, timer := signal.CancelAfterInactivity(ctx, time.Minute*5)
|
||||
_, timer := signal.CancelAfterInactivity(ctx, time.Minute*30)
|
||||
if err := buf.PipeUntilEOF(timer, s.input, writer); err != nil {
|
||||
log.Info("Proxyman|Mux|Client: Failed to fetch all input: ", err)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue