mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-05 13:20:11 +00:00
Two stream send behaviours of XNU differ from FreeBSD and Linux: - MSG_DONTWAIT does not keep a stream send on a blocking socket from waiting for buffer space; XNU only skips the wait for the send buffer lock. A 16 MiB send to a slow peer blocked until the peer went away. A MSG_DONTWAIT transfer now also passes XNU's MSG_NBIO (0x20000), which makes one call non-blocking: the send queues what fits and returns that count, or EAGAIN when nothing fits. - A blocking stream send that fails after queuing data, for example when sceNetSocketAbort shuts the socket down, returns only the error, where Linux returns the bytes queued. A blocking stream send now goes to the host in sends of 64 KiB and reports the bytes of the sends that completed when a later one fails, as #8658 does. The debt entry records the undocumented flag and the bytes that a failing 64 KiB send queued but does not report. Co-authored-by: iamthehimansh <[email protected]>