IFF_DYNAMIC doesn't try to change the addresses, it simply knows that the
connection is lost because the user gurantees that the IP address is gone
and cannot be recovered. Because that fact is known for sure it simply
calls tcp_reset on the connection to kill it. The 2.0 RST
hack used an indirect scheme, it will send out an packet with wrong
source and assumes the other end will RST it.
Now for SYN_SENT sockets I think it is worth to keep the ip_dynaddr hack,
assuming it can be proved that the application didn't explicitely call
bind() first - if it didn't the kernel selected the source address on
its own via inet_autobind anyways, and it doesn't harm anybody when its
decision is revised a little bit later, because noone else knows about its
choices yet.
So an sk->userbind flag is the way to go I think.
-Andi
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/