tcp_ipv6.c (62910554656cdcd6b6f84a5154c4155aae4ca231) tcp_ipv6.c (0eae88f31ca2b88911ce843452054139e028771f)
1/*
2 * TCP over IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on:

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

1229 u32 *d;
1230 u32 *mess = &tmp_ext.cookie_bakery[COOKIE_DIGEST_WORDS];
1231 int l = tmp_opt.cookie_plus - TCPOLEN_COOKIE_BASE;
1232
1233 if (tcp_cookie_generator(&tmp_ext.cookie_bakery[0]) != 0)
1234 goto drop_and_free;
1235
1236 /* Secret recipe starts with IP addresses */
1/*
2 * TCP over IPv6
3 * Linux INET6 implementation
4 *
5 * Authors:
6 * Pedro Roque <roque@di.fc.ul.pt>
7 *
8 * Based on:

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

1229 u32 *d;
1230 u32 *mess = &tmp_ext.cookie_bakery[COOKIE_DIGEST_WORDS];
1231 int l = tmp_opt.cookie_plus - TCPOLEN_COOKIE_BASE;
1232
1233 if (tcp_cookie_generator(&tmp_ext.cookie_bakery[0]) != 0)
1234 goto drop_and_free;
1235
1236 /* Secret recipe starts with IP addresses */
1237 d = &ipv6_hdr(skb)->daddr.s6_addr32[0];
1237 d = (__force u32 *)&ipv6_hdr(skb)->daddr.s6_addr32[0];
1238 *mess++ ^= *d++;
1239 *mess++ ^= *d++;
1240 *mess++ ^= *d++;
1241 *mess++ ^= *d++;
1238 *mess++ ^= *d++;
1239 *mess++ ^= *d++;
1240 *mess++ ^= *d++;
1241 *mess++ ^= *d++;
1242 d = &ipv6_hdr(skb)->saddr.s6_addr32[0];
1242 d = (__force u32 *)&ipv6_hdr(skb)->saddr.s6_addr32[0];
1243 *mess++ ^= *d++;
1244 *mess++ ^= *d++;
1245 *mess++ ^= *d++;
1246 *mess++ ^= *d++;
1247
1248 /* plus variable length Initiator Cookie */
1249 c = (u8 *)mess;
1250 while (l-- > 0)

--- 993 unchanged lines hidden ---
1243 *mess++ ^= *d++;
1244 *mess++ ^= *d++;
1245 *mess++ ^= *d++;
1246 *mess++ ^= *d++;
1247
1248 /* plus variable length Initiator Cookie */
1249 c = (u8 *)mess;
1250 while (l-- > 0)

--- 993 unchanged lines hidden ---