On Monday, October 12, 2015, Erich E. Hoover <erich.e.hoover@wine-staging.com> wrote:
On Mon, Oct 12, 2015 at 9:16 AM, Erich E. Hoover
<erich.e.hoover@wine-staging.com> wrote:
> On Mon, Oct 12, 2015 at 1:25 AM, Alexandre Julliard <julliard@winehq.org> wrote:
>> "Erich E. Hoover" <erich.e.hoover@wine-staging.com> writes:
>>
>>> +    /* set reasonable defaults when requested */
>>> +    if (!bytes_per_send)
>>> +        bytes_per_send = 1024;
>>
>> Is that the Windows default?  It doesn't seem very reasonable to me, it
>> won't even fill a network packet.
>
> I don't know, it's not in the documentation.  However, if you like I
> could try to tease it out by doing some tests and running Wireshark on
> it.  I figured that since the default MTU is 1500 bytes that 1024
> would be a reasonable power of two less than that to use, but if you
> think that 2^16 is more reasonable then, obviously, we could use that
> instead.

Some googling suggests that this value is controlled by
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\AFD\Parameters\DefaultSendWindow
and that the default is different depending on the Windows version.
Apparently "normal" versions default to 64512 and server versions
default to 655360.  How would you like this to be approached?

Hi all. What about reading SO_SNDBUF where it is available and 1024 where it is not. Because I think send() will fail if you try to write more than the kernel buffer size.