To put it simply, all callers of sbappendaddr() now call soroverflow() when the
packet cannot be delivered.
If the application enabled SO_RERROR on the socket then it will be woken up and
the next subsequent read on it will return ENOBUFS. For the curious, this error
code is allowed to be returned from read(2) by POSIX.
This is a general solution to a very specific case where network aware programs
rely on the reliable delivery of route(4) messages. If a message is dropped, we
need to so we can perform a full scan of the host to see what has changed and if
we need to react to it.
Another use case for this is syslogd can now know if a locally sent message was
dropped telling the admin to increase the buffer size to avoid this in the
future. Currently if a locally sent message cannot be delivered to syslogd it is
also silenty dropped if the syslogd socket buffer is full.
If the view of FreeBSD is that this isn't wanted then please remove comments
from the codebase implying that it is and ideally replace with a comment