|  | @@ -9,10 +9,6 @@ import (
 | 
											
												
													
														|  |  	"github.com/v2ray/v2ray-core/common/log"
 |  |  	"github.com/v2ray/v2ray-core/common/log"
 | 
											
												
													
														|  |  )
 |  |  )
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -func _itimediff(later, earlier uint32) int32 {
 |  | 
 | 
											
												
													
														|  | -	return (int32)(later - earlier)
 |  | 
 | 
											
												
													
														|  | -}
 |  | 
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  type State int
 |  |  type State int
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  const (
 |  |  const (
 | 
											
										
											
												
													
														|  | @@ -178,7 +174,7 @@ func (kcp *KCP) flush() {
 | 
											
												
													
														|  |  	if kcp.state == StateTerminated {
 |  |  	if kcp.state == StateTerminated {
 | 
											
												
													
														|  |  		return
 |  |  		return
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  | -	if kcp.state == StateActive && _itimediff(kcp.current, kcp.lastPayloadTime) >= 30000 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if kcp.state == StateActive && kcp.current-kcp.lastPayloadTime >= 30000 {
 | 
											
												
													
														|  |  		kcp.OnClose()
 |  |  		kcp.OnClose()
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -189,13 +185,13 @@ func (kcp *KCP) flush() {
 | 
											
												
													
														|  |  		})
 |  |  		})
 | 
											
												
													
														|  |  		kcp.output.Flush()
 |  |  		kcp.output.Flush()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -		if _itimediff(kcp.current, kcp.stateBeginTime) > 8000 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +		if kcp.current-kcp.stateBeginTime > 8000 {
 | 
											
												
													
														|  |  			kcp.SetState(StateTerminated)
 |  |  			kcp.SetState(StateTerminated)
 | 
											
												
													
														|  |  		}
 |  |  		}
 | 
											
												
													
														|  |  		return
 |  |  		return
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	if kcp.state == StateReadyToClose && _itimediff(kcp.current, kcp.stateBeginTime) > 15000 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if kcp.state == StateReadyToClose && kcp.current-kcp.stateBeginTime > 15000 {
 | 
											
												
													
														|  |  		kcp.SetState(StateTerminating)
 |  |  		kcp.SetState(StateTerminating)
 | 
											
												
													
														|  |  	}
 |  |  	}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
										
											
												
													
														|  | @@ -203,7 +199,7 @@ func (kcp *KCP) flush() {
 | 
											
												
													
														|  |  	kcp.receivingWorker.Flush()
 |  |  	kcp.receivingWorker.Flush()
 | 
											
												
													
														|  |  	kcp.sendingWorker.Flush()
 |  |  	kcp.sendingWorker.Flush()
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -	if kcp.sendingWorker.PingNecessary() || kcp.receivingWorker.PingNecessary() || _itimediff(kcp.current, kcp.lastPingTime) >= 5000 {
 |  | 
 | 
											
												
													
														|  | 
 |  | +	if kcp.sendingWorker.PingNecessary() || kcp.receivingWorker.PingNecessary() || kcp.current-kcp.lastPingTime >= 5000 {
 | 
											
												
													
														|  |  		seg := NewCmdOnlySegment()
 |  |  		seg := NewCmdOnlySegment()
 | 
											
												
													
														|  |  		seg.Conv = kcp.conv
 |  |  		seg.Conv = kcp.conv
 | 
											
												
													
														|  |  		seg.Cmd = SegmentCommandPing
 |  |  		seg.Cmd = SegmentCommandPing
 |