On 02/02/2018 08:34 PM, Stefano Stabellini wrote:
When the client sends a regular blocking accept request, the backend is
expected to return only when the accept is completed, simulating a
blocking behavior, or return an error.
Specifically, on EAGAIN from inet_accept, the backend shouldn't return
"EAGAIN" to the client. Instead, it should simply continue the wait.
Otherwise, the client will send another accept request, which will cause
another EAGAIN to be sent back, which is a waste of resources and not
conforming to the expected behavior. Change the behavior by turning the
"goto error" into a return.
Signed-off-by: Stefano Stabellini <stef...@aporeto.com>
I am looking at SYSCALL_DEFINE4(accept4) and sock->ops->accept (which *I
think* is inet_accept, at least in some cases) passes all errors
(including EAGAIN) back to the caller. Is this a different case?