tcp.c (0e4b4992b8007c6b62ec143cbbb292f98813ca11) | tcp.c (624d1164730d58a494cc5aa4afa37d02c41e83a7) |
---|---|
1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Implementation of the Transmission Control Protocol(TCP). 7 * 8 * Version: $Id: tcp.c,v 1.216 2002/02/01 22:01:04 davem Exp $ --- 1058 unchanged lines hidden (view full) --- 1067 seq += used; 1068 copied += used; 1069 offset += used; 1070 } 1071 if (offset != skb->len) 1072 break; 1073 } 1074 if (skb->h.th->fin) { | 1/* 2 * INET An implementation of the TCP/IP protocol suite for the LINUX 3 * operating system. INET is implemented using the BSD Socket 4 * interface as the means of communication with the user level. 5 * 6 * Implementation of the Transmission Control Protocol(TCP). 7 * 8 * Version: $Id: tcp.c,v 1.216 2002/02/01 22:01:04 davem Exp $ --- 1058 unchanged lines hidden (view full) --- 1067 seq += used; 1068 copied += used; 1069 offset += used; 1070 } 1071 if (offset != skb->len) 1072 break; 1073 } 1074 if (skb->h.th->fin) { |
1075 sk_eat_skb(sk, skb); | 1075 sk_eat_skb(sk, skb, 0); |
1076 ++seq; 1077 break; 1078 } | 1076 ++seq; 1077 break; 1078 } |
1079 sk_eat_skb(sk, skb); | 1079 sk_eat_skb(sk, skb, 0); |
1080 if (!desc->count) 1081 break; 1082 } 1083 tp->copied_seq = seq; 1084 1085 tcp_rcv_space_adjust(sk); 1086 1087 /* Clean up data we have read: This will do ACK frames. */ --- 263 unchanged lines hidden (view full) --- 1351 tcp_fast_path_check(sk, tp); 1352 } 1353 if (used + offset < skb->len) 1354 continue; 1355 1356 if (skb->h.th->fin) 1357 goto found_fin_ok; 1358 if (!(flags & MSG_PEEK)) | 1080 if (!desc->count) 1081 break; 1082 } 1083 tp->copied_seq = seq; 1084 1085 tcp_rcv_space_adjust(sk); 1086 1087 /* Clean up data we have read: This will do ACK frames. */ --- 263 unchanged lines hidden (view full) --- 1351 tcp_fast_path_check(sk, tp); 1352 } 1353 if (used + offset < skb->len) 1354 continue; 1355 1356 if (skb->h.th->fin) 1357 goto found_fin_ok; 1358 if (!(flags & MSG_PEEK)) |
1359 sk_eat_skb(sk, skb); | 1359 sk_eat_skb(sk, skb, 0); |
1360 continue; 1361 1362 found_fin_ok: 1363 /* Process the FIN. */ 1364 ++*seq; 1365 if (!(flags & MSG_PEEK)) | 1360 continue; 1361 1362 found_fin_ok: 1363 /* Process the FIN. */ 1364 ++*seq; 1365 if (!(flags & MSG_PEEK)) |
1366 sk_eat_skb(sk, skb); | 1366 sk_eat_skb(sk, skb, 0); |
1367 break; 1368 } while (len > 0); 1369 1370 if (user_recv) { 1371 if (!skb_queue_empty(&tp->ucopy.prequeue)) { 1372 int chunk; 1373 1374 tp->ucopy.len = copied > 0 ? len : 0; --- 820 unchanged lines hidden --- | 1367 break; 1368 } while (len > 0); 1369 1370 if (user_recv) { 1371 if (!skb_queue_empty(&tp->ucopy.prequeue)) { 1372 int chunk; 1373 1374 tp->ucopy.len = copied > 0 ? len : 0; --- 820 unchanged lines hidden --- |