|  | @@ -118,7 +118,7 @@ func (seg *Segment) encode(ptr []byte) []byte {
 | 
	
		
			
				|  |  |  	ptr = ikcp_encode32u(ptr, seg.ts)
 | 
	
		
			
				|  |  |  	ptr = ikcp_encode32u(ptr, seg.sn)
 | 
	
		
			
				|  |  |  	ptr = ikcp_encode32u(ptr, seg.una)
 | 
	
		
			
				|  |  | -	ptr = ikcp_encode32u(ptr, uint32(seg.data.Len()))
 | 
	
		
			
				|  |  | +	ptr = ikcp_encode16u(ptr, uint16(seg.data.Len()))
 | 
	
		
			
				|  |  |  	return ptr
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -142,7 +142,7 @@ type KCP struct {
 | 
	
		
			
				|  |  |  	rx_rttvar, rx_srtt, rx_rto             uint32
 | 
	
		
			
				|  |  |  	snd_wnd, rcv_wnd, rmt_wnd, cwnd, probe uint32
 | 
	
		
			
				|  |  |  	current, interval, ts_flush, xmit      uint32
 | 
	
		
			
				|  |  | -	updated                                uint32
 | 
	
		
			
				|  |  | +	updated                                bool
 | 
	
		
			
				|  |  |  	ts_probe, probe_wait                   uint32
 | 
	
		
			
				|  |  |  	dead_link, incr                        uint32
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -378,8 +378,8 @@ func (kcp *KCP) Input(data []byte) int {
 | 
	
		
			
				|  |  |  	var maxack uint32
 | 
	
		
			
				|  |  |  	var flag int
 | 
	
		
			
				|  |  |  	for {
 | 
	
		
			
				|  |  | -		var ts, sn, length, una, conv uint32
 | 
	
		
			
				|  |  | -		var wnd uint16
 | 
	
		
			
				|  |  | +		var ts, sn, una, conv uint32
 | 
	
		
			
				|  |  | +		var wnd, length uint16
 | 
	
		
			
				|  |  |  		var cmd, frg uint8
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		if len(data) < int(IKCP_OVERHEAD) {
 | 
	
	
		
			
				|  | @@ -397,7 +397,7 @@ func (kcp *KCP) Input(data []byte) int {
 | 
	
		
			
				|  |  |  		data = ikcp_decode32u(data, &ts)
 | 
	
		
			
				|  |  |  		data = ikcp_decode32u(data, &sn)
 | 
	
		
			
				|  |  |  		data = ikcp_decode32u(data, &una)
 | 
	
		
			
				|  |  | -		data = ikcp_decode32u(data, &length)
 | 
	
		
			
				|  |  | +		data = ikcp_decode16u(data, &length)
 | 
	
		
			
				|  |  |  		if len(data) < int(length) {
 | 
	
		
			
				|  |  |  			return -2
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -492,7 +492,7 @@ func (kcp *KCP) flush() {
 | 
	
		
			
				|  |  |  	change := 0
 | 
	
		
			
				|  |  |  	//lost := false
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if kcp.updated == 0 {
 | 
	
		
			
				|  |  | +	if !kcp.updated {
 | 
	
		
			
				|  |  |  		return
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	var seg Segment
 | 
	
	
		
			
				|  | @@ -687,8 +687,8 @@ func (kcp *KCP) Update(current uint32) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	kcp.current = current
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	if kcp.updated == 0 {
 | 
	
		
			
				|  |  | -		kcp.updated = 1
 | 
	
		
			
				|  |  | +	if !kcp.updated {
 | 
	
		
			
				|  |  | +		kcp.updated = true
 | 
	
		
			
				|  |  |  		kcp.ts_flush = kcp.current
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -720,7 +720,7 @@ func (kcp *KCP) Check(current uint32) uint32 {
 | 
	
		
			
				|  |  |  	tm_flush := int32(0x7fffffff)
 | 
	
		
			
				|  |  |  	tm_packet := int32(0x7fffffff)
 | 
	
		
			
				|  |  |  	minimal := uint32(0)
 | 
	
		
			
				|  |  | -	if kcp.updated == 0 {
 | 
	
		
			
				|  |  | +	if !kcp.updated {
 | 
	
		
			
				|  |  |  		return current
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 |