HomeFreeBSD

unix/dgram: return EAGAIN instead of ENOBUFS when O_NONBLOCK set

Description

unix/dgram: return EAGAIN instead of ENOBUFS when O_NONBLOCK set

This is behavior what some programs expect and what Linux does. For
example nginx expects EAGAIN when sending messages to /var/run/log,
which it connects to with O_NONBLOCK. Particularly with nginx the
problem is magnified by the fact that a ENOBUFS on send(2) is also
logged, so situation creates a log-bomb - a failed log message
triggers another log message.

Reviewed by: markj
Differential revision: https://reviews.freebsd.org/D34187