linux/net/ipv4
Lorenzo Colitti adfa7bc8b4 tcp: Don't nuke connections for the wrong protocol
Currently, calling tcp_nuke_addr to reset IPv6 connections
resets IPv4 connections as well, because all Android
framework sockets are dual-stack (i.e., IPv6) sockets, and
we don't check the source address to see if the connection
was in fact an IPv4 connection.

Fix this by checking the source address and not resetting
the connection if it's a mapped address.

Also slightly tweak the IPv4 code path, which doesn't check
for mapped addresses either. This was not causing any
problems because tcp_is_local normally always returns true
for LOOPBACK4_IPV6 (127.0.0.6), because the loopback
interface is configured as as 127.0.0.0/8. However,
checking explicitly for LOOPBACK4_IPV6 makes the code a bit
more robust.

Bug: 5535055
Change-Id: I4d6ed3497c5b8643c864783cf681f088cf6b8d2a
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
2011-11-03 17:08:47 -07:00
..
netfilter Merge commit 'v3.0.8' into android-3.0 2011-10-27 15:01:19 -07:00
af_inet.c Merge commit 'v3.0-rc7' into android-3.0 2011-07-12 20:10:37 -07:00
ah4.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
arp.c net: gre: provide multicast mappings for ipv4 and ipv6 2011-03-30 00:10:47 -07:00
cipso_ipv4.c inet: add RCU protection to inet->opt 2011-04-28 13:16:35 -07:00
datagram.c ipv4: Lock socket and use cork flow in ip4_datagram_connect(). 2011-05-08 13:48:57 -07:00
devinet.c Merge commit 'v3.0.8' into android-3.0 2011-10-27 15:01:19 -07:00
esp4.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
fib_frontend.c Disable rp_filter for IPsec packets 2011-04-10 18:50:59 -07:00
fib_lookup.h ipv4: Fix nexthop caching wrt. scoping. 2011-03-24 18:06:47 -07:00
fib_rules.c
fib_semantics.c net,rcu: convert call_rcu(fc_rport_free_rcu) to kfree_rcu() 2011-05-07 22:50:55 -07:00
fib_trie.c Add appropriate <linux/prefetch.h> include for prefetch users 2011-05-22 21:41:57 -07:00
gre.c gre: fix improper error handling 2011-08-15 18:31:39 -07:00
icmp.c icmp: Fix regression in nexthop resolution during replies. 2011-08-15 18:31:37 -07:00
igmp.c mcast: Fix source address selection for multicast listener report 2011-10-03 11:40:53 -07:00
inet_connection_sock.c seqlock: Get rid of SEQLOCK_UNLOCKED 2011-05-24 15:22:17 +02:00
inet_diag.c inet_diag: fix inet_diag_bc_audit() 2011-06-17 16:25:39 -04:00
inet_fragment.c
inet_hashtables.c net: Compute protocol sequence numbers and fragment IDs using MD5. 2011-08-15 18:31:35 -07:00
inet_lro.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
inet_timewait_sock.c
inetpeer.c net: Compute protocol sequence numbers and fragment IDs using MD5. 2011-08-15 18:31:35 -07:00
ip_forward.c ipv4: Fix 'iph' use before set. 2011-05-12 23:03:46 -04:00
ip_fragment.c ipv4: Don't use enums as bitmasks in ip_fragment.c 2011-05-17 17:28:02 -04:00
ip_gre.c net: call dev_alloc_name from register_netdevice 2011-05-05 10:57:45 -07:00
ip_input.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
ip_options.c ip_options_compile: properly handle unaligned pointer 2011-05-31 15:11:02 -07:00
ip_output.c ipv4: Constrain UFO fragment sizes to multiples of 8 bytes 2011-08-15 18:31:37 -07:00
ip_sockglue.c inet: add RCU protection to inet->opt 2011-04-28 13:16:35 -07:00
ipcomp.c inet: constify ip headers and in6_addr 2011-04-22 11:04:14 -07:00
ipconfig.c ipconfig wait for carrier 2011-05-19 17:13:04 -04:00
ipip.c net: call dev_alloc_name from register_netdevice 2011-05-05 10:57:45 -07:00
ipmr.c ipv4: use RT_TOS after some rt_tos conversions 2011-08-15 18:31:39 -07:00
Kconfig
Makefile sysfs_net_ipv4: Add sysfs-based knobs for controlling TCP window size 2011-06-14 09:08:47 -07:00
netfilter.c netfilter: TCP and raw fix for ip_route_me_harder 2011-10-03 11:40:53 -07:00
ping.c ipv4, ping: Remove duplicate icmp.h include 2011-06-20 13:04:38 -07:00
proc.c
protocol.c
raw.c net: convert %p usage to %pK 2011-05-24 01:13:12 -04:00
route.c ipv4: some rt_iif -> rt_route_iif conversions 2011-10-03 11:40:51 -07:00
syncookies.c tcp: initialize variable ecn_ok in syncookies path 2011-10-03 11:40:54 -07:00
sysctl_net_ipv4.c net: ping: fix build failure 2011-05-17 14:16:58 -04:00
sysfs_net_ipv4.c sysfs_net_ipv4: Add sysfs-based knobs for controlling TCP window size 2011-06-14 09:08:47 -07:00
tcp_bic.c
tcp_cong.c
tcp_cubic.c tcp_cubic: limit delayed_ack ratio to prevent divide error 2011-05-08 15:51:57 -07:00
tcp_diag.c
tcp_highspeed.c
tcp_htcp.c
tcp_hybla.c
tcp_illinois.c
tcp_input.c tcp: fix validation of D-SACK 2011-10-03 11:40:54 -07:00
tcp_ipv4.c net: Compute protocol sequence numbers and fragment IDs using MD5. 2011-08-15 18:31:35 -07:00
tcp_lp.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tcp_minisocks.c
tcp_output.c inet: Pass flowi to ->queue_xmit(). 2011-05-08 15:28:28 -07:00
tcp_probe.c
tcp_scalable.c
tcp_timer.c
tcp_vegas.c
tcp_vegas.h
tcp_veno.c
tcp_westwood.c
tcp_yeah.c Fix common misspellings 2011-03-31 11:26:23 -03:00
tcp.c tcp: Don't nuke connections for the wrong protocol 2011-11-03 17:08:47 -07:00
tunnel4.c
udp_impl.h
udp.c net: refine {udp|tcp|sctp}_mem limits 2011-07-07 00:27:05 -07:00
udplite.c
xfrm4_input.c
xfrm4_mode_beet.c
xfrm4_mode_transport.c
xfrm4_mode_tunnel.c
xfrm4_output.c xfrm4: Don't call icmp_send on local error 2011-07-01 17:33:19 -07:00
xfrm4_policy.c ipv4: xfrm: Eliminate ->rt_src reference in policy code. 2011-05-10 13:32:48 -07:00
xfrm4_state.c Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-3.6 2011-05-11 14:26:58 -04:00
xfrm4_tunnel.c