tcp_output.c (62910554656cdcd6b6f84a5154c4155aae4ca231) tcp_output.c (0eae88f31ca2b88911ce843452054139e028771f)
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 * Authors: Ross Biro

--- 847 unchanged lines hidden (view full) ---

856 th->urg_ptr = 0;
857
858 /* The urg_mode check is necessary during a below snd_una win probe */
859 if (unlikely(tcp_urg_mode(tp) && before(tcb->seq, tp->snd_up))) {
860 if (before(tp->snd_up, tcb->seq + 0x10000)) {
861 th->urg_ptr = htons(tp->snd_up - tcb->seq);
862 th->urg = 1;
863 } else if (after(tcb->seq + 0xFFFF, tp->snd_nxt)) {
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 * Authors: Ross Biro

--- 847 unchanged lines hidden (view full) ---

856 th->urg_ptr = 0;
857
858 /* The urg_mode check is necessary during a below snd_una win probe */
859 if (unlikely(tcp_urg_mode(tp) && before(tcb->seq, tp->snd_up))) {
860 if (before(tp->snd_up, tcb->seq + 0x10000)) {
861 th->urg_ptr = htons(tp->snd_up - tcb->seq);
862 th->urg = 1;
863 } else if (after(tcb->seq + 0xFFFF, tp->snd_nxt)) {
864 th->urg_ptr = 0xFFFF;
864 th->urg_ptr = htons(0xFFFF);
865 th->urg = 1;
866 }
867 }
868
869 tcp_options_write((__be32 *)(th + 1), tp, &opts);
870 if (likely((tcb->flags & TCPCB_FLAG_SYN) == 0))
871 TCP_ECN_send(sk, skb, tcp_header_size);
872

--- 1607 unchanged lines hidden (view full) ---

2480 * Sequence and Acknowledgment Numbers, Initiator
2481 * Cookie, and others handled by IP variant caller.
2482 */
2483 *tail-- ^= opts.tsval;
2484 *tail-- ^= tcp_rsk(req)->rcv_isn + 1;
2485 *tail-- ^= TCP_SKB_CB(skb)->seq + 1;
2486
2487 /* recommended */
865 th->urg = 1;
866 }
867 }
868
869 tcp_options_write((__be32 *)(th + 1), tp, &opts);
870 if (likely((tcb->flags & TCPCB_FLAG_SYN) == 0))
871 TCP_ECN_send(sk, skb, tcp_header_size);
872

--- 1607 unchanged lines hidden (view full) ---

2480 * Sequence and Acknowledgment Numbers, Initiator
2481 * Cookie, and others handled by IP variant caller.
2482 */
2483 *tail-- ^= opts.tsval;
2484 *tail-- ^= tcp_rsk(req)->rcv_isn + 1;
2485 *tail-- ^= TCP_SKB_CB(skb)->seq + 1;
2486
2487 /* recommended */
2488 *tail-- ^= ((th->dest << 16) | th->source);
2488 *tail-- ^= (((__force u32)th->dest << 16) | (__force u32)th->source);
2489 *tail-- ^= (u32)(unsigned long)cvp; /* per sockopt */
2490
2491 sha_transform((__u32 *)&xvp->cookie_bakery[0],
2492 (char *)mess,
2493 &workspace[0]);
2494 opts.hash_location =
2495 (__u8 *)&xvp->cookie_bakery[0];
2496 }

--- 334 unchanged lines hidden ---
2489 *tail-- ^= (u32)(unsigned long)cvp; /* per sockopt */
2490
2491 sha_transform((__u32 *)&xvp->cookie_bakery[0],
2492 (char *)mess,
2493 &workspace[0]);
2494 opts.hash_location =
2495 (__u8 *)&xvp->cookie_bakery[0];
2496 }

--- 334 unchanged lines hidden ---