Handle EMSGSIZE on UNIX domain sockets.
commitc692bb02b039ae8fef6ba968fd13b36ad7d62a72
authorLandon Fuller <landonf@bikemonkey.org>
Sat, 2 Mar 2013 19:08:47 +0000 (2 14:08 -0500)
committerAndrew Bartlett <abartlet@samba.org>
Sat, 2 Mar 2013 22:34:03 +0000 (2 23:34 +0100)
treeef0ecae7596c009ad93132a8da797a81d76af291
parent606f5d6cc6b018259ba0306fe3b55e21b4b70fdb
Handle EMSGSIZE on UNIX domain sockets.

On some systems (eg, FreeBSD) the default SO_SNDBUF for UNIX
domain sockets is to small, and EMSGSIZE is returned. Other
systems provide a larger default send buffer, but there is
still no guarantee that the buffer will be sized appropriately.

This patch modifies the sendto() path to attempt to resize
the SO_SNDBUF dynamically upon an EMSGSIZE failure, and then
retry the send.

This fixes local DCE/RPC errors on FreeBSD, eg:

https://lists.samba.org/archive/samba-technical/2013-January/089881.html

Signed-Off-By: Landon Fuller <landonf@bikemonkey.org>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Autobuild-User(master): Andrew Bartlett <abartlet@samba.org>
Autobuild-Date(master): Sat Mar  2 23:34:03 CET 2013 on sn-devel-104
source4/lib/socket/socket_unix.c