Try to ensure datagram replies come from the address requests were sent to.
On multi-homed servers it is currently possible for a reply to be sent
from a different address to the one the request was received from. This
is because there is no strong connection between the request and the
reply as there is with stream.
This causes problems with some clients, particularly those that uses
connected datagram sockets.
So use IP_PKTINFO or IP6_PKTINFO to create the necessary connection,
recording the destination of the request, and setting the source of
the reply.
Note that we clear the interface index (ifindex) as it is not necessary
(and is sometimes wrong) to set the reply out on the same interface that
the request arrived on.
Reviewed-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Olaf Kirch <okir@suse.de> Signed-off-by: NeilBrown <neilb@suse.de> Signed-off-by: Steve Dickson <steved@redhat.com>