Patch for linux ABI for MSG_NOSIGNAL and out of order tcp packet issue

Steven Hartland killing at multiplay.co.uk
Tue Jan 18 07:19:12 PST 2005


After digging around and getting some information from Alfred
at Valve ( the makers of HalfLife ) I've found the reason for
HalfLife 2 server ( CounterStrike Source ) crashing when
using rcon under FreeBSD.
The problem is that although their code was setting
MSG_NOSIGNAL on the send() call this was being
ignored by the linux ABI. The attached patch checks for
MSG_NOSIGNAL and if set enables SO_NOSIGPIPE
for the duration of send call. Im not 100% sure this is the
way to do it but have confirmed that the patch works on
5.2.1 so if someone could check and commit it that would
be great.

I'm also investigating an issue where tcp packets from a
linux app end up being sent out of order. I don't really
know where to start on this one. send() from the linux
domain seems to be a clean pass off to the native send
so unless the native send also has issues I'm at a loss.

I'm still waiting on confirmation of the calls being used
by Valve which is causing this behaviour and will post
more when I know it. Has anyone else seen this behaviour
else where?

    Regards
    Steve

================================================
This e.mail is private and confidential between Multiplay (UK) Ltd. and the person or entity to whom it is addressed. In the event of misdirection, the recipient is prohibited from using, copying, printing or otherwise disseminating it or any information contained in it. 

In the event of misdirection, illegible or incomplete transmission please telephone (023) 8024 3137
or return the E.mail to postmaster at multiplay.co.uk.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: linux_socket.c.patch
Type: application/octet-stream
Size: 1389 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-hackers/attachments/20050118/2f6e665d/linux_socket.c.obj


More information about the freebsd-hackers mailing list