| 
				
			 | 
			
			
				
				@@ -1155,6 +1155,7 @@ static int tcp_rx ( struct io_buffer *iobuf, 
			 | 
		
		
	
		
			
			| 
				1155
			 | 
			
				1155
			 | 
			
			
				
				 	uint16_t csum; 
			 | 
		
		
	
		
			
			| 
				1156
			 | 
			
				1156
			 | 
			
			
				
				 	uint32_t seq; 
			 | 
		
		
	
		
			
			| 
				1157
			 | 
			
				1157
			 | 
			
			
				
				 	uint32_t ack; 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				1158
			 | 
			
			
				
				+	uint16_t raw_win; 
			 | 
		
		
	
		
			
			| 
				1158
			 | 
			
				1159
			 | 
			
			
				
				 	uint32_t win; 
			 | 
		
		
	
		
			
			| 
				1159
			 | 
			
				1160
			 | 
			
			
				
				 	unsigned int flags; 
			 | 
		
		
	
		
			
			| 
				1160
			 | 
			
				1161
			 | 
			
			
				
				 	size_t len; 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -1195,7 +1196,7 @@ static int tcp_rx ( struct io_buffer *iobuf, 
			 | 
		
		
	
		
			
			| 
				1195
			 | 
			
				1196
			 | 
			
			
				
				 	tcp = tcp_demux ( ntohs ( tcphdr->dest ) ); 
			 | 
		
		
	
		
			
			| 
				1196
			 | 
			
				1197
			 | 
			
			
				
				 	seq = ntohl ( tcphdr->seq ); 
			 | 
		
		
	
		
			
			| 
				1197
			 | 
			
				1198
			 | 
			
			
				
				 	ack = ntohl ( tcphdr->ack ); 
			 | 
		
		
	
		
			
			| 
				1198
			 | 
			
				
			 | 
			
			
				
				-	win = ( ntohs ( tcphdr->win ) << tcp->snd_win_scale ); 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				1199
			 | 
			
			
				
				+	raw_win = ntohs ( tcphdr->win ); 
			 | 
		
		
	
		
			
			| 
				1199
			 | 
			
				1200
			 | 
			
			
				
				 	flags = tcphdr->flags; 
			 | 
		
		
	
		
			
			| 
				1200
			 | 
			
				1201
			 | 
			
			
				
				 	tcp_rx_opts ( tcp, ( ( ( void * ) tcphdr ) + sizeof ( *tcphdr ) ), 
			 | 
		
		
	
		
			
			| 
				1201
			 | 
			
				1202
			 | 
			
			
				
				 		      ( hlen - sizeof ( *tcphdr ) ), &options ); 
			 | 
		
		
	
	
		
			
			| 
				
			 | 
			
			
				
				@@ -1226,6 +1227,7 @@ static int tcp_rx ( struct io_buffer *iobuf, 
			 | 
		
		
	
		
			
			| 
				1226
			 | 
			
				1227
			 | 
			
			
				
				  
			 | 
		
		
	
		
			
			| 
				1227
			 | 
			
				1228
			 | 
			
			
				
				 	/* Handle ACK, if present */ 
			 | 
		
		
	
		
			
			| 
				1228
			 | 
			
				1229
			 | 
			
			
				
				 	if ( flags & TCP_ACK ) { 
			 | 
		
		
	
		
			
			| 
				
			 | 
			
				1230
			 | 
			
			
				
				+		win = ( raw_win << tcp->snd_win_scale ); 
			 | 
		
		
	
		
			
			| 
				1229
			 | 
			
				1231
			 | 
			
			
				
				 		if ( ( rc = tcp_rx_ack ( tcp, ack, win ) ) != 0 ) { 
			 | 
		
		
	
		
			
			| 
				1230
			 | 
			
				1232
			 | 
			
			
				
				 			tcp_xmit_reset ( tcp, st_src, tcphdr ); 
			 | 
		
		
	
		
			
			| 
				1231
			 | 
			
				1233
			 | 
			
			
				
				 			goto discard; 
			 |