mirror of https://github.com/XTLS/Xray-core
				
				
				
			app/reverse/bridge.go: Add timer nil check (#5119)
Fixes https://github.com/XTLS/Xray-core/issues/5120pull/5129/head
							parent
							
								
									30e10be95d
								
							
						
					
					
						commit
						d3248a4f8e
					
				| 
						 | 
				
			
			@ -55,7 +55,9 @@ func (b *Bridge) cleanup() {
 | 
			
		|||
			activeWorkers = append(activeWorkers, w)
 | 
			
		||||
		}
 | 
			
		||||
		if w.Closed() {
 | 
			
		||||
			w.Timer.SetTimeout(0)
 | 
			
		||||
			if w.Timer != nil {
 | 
			
		||||
				w.Timer.SetTimeout(0)
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -166,19 +168,25 @@ func (w *BridgeWorker) handleInternalConn(link *transport.Link) {
 | 
			
		|||
	for {
 | 
			
		||||
		mb, err := reader.ReadMultiBuffer()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			if w.Closed() {
 | 
			
		||||
				w.Timer.SetTimeout(0)
 | 
			
		||||
			} else {
 | 
			
		||||
				w.Timer.SetTimeout(24 * time.Hour)
 | 
			
		||||
			if w.Timer != nil {
 | 
			
		||||
				if w.Closed() {
 | 
			
		||||
					w.Timer.SetTimeout(0)
 | 
			
		||||
				} else {
 | 
			
		||||
					w.Timer.SetTimeout(24 * time.Hour)
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			return
 | 
			
		||||
		}
 | 
			
		||||
		w.Timer.Update()
 | 
			
		||||
		if w.Timer != nil {
 | 
			
		||||
			w.Timer.Update()
 | 
			
		||||
		}
 | 
			
		||||
		for _, b := range mb {
 | 
			
		||||
			var ctl Control
 | 
			
		||||
			if err := proto.Unmarshal(b.Bytes(), &ctl); err != nil {
 | 
			
		||||
				errors.LogInfoInner(context.Background(), err, "failed to parse proto message")
 | 
			
		||||
				w.Timer.SetTimeout(0)
 | 
			
		||||
				if w.Timer != nil {
 | 
			
		||||
					w.Timer.SetTimeout(0)
 | 
			
		||||
				}
 | 
			
		||||
				return
 | 
			
		||||
			}
 | 
			
		||||
			if ctl.State != w.State {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue