If errno was EPIPE before net_transmit() was called and sendto() didn't
change it, we still returned error.
Also removed the unlikely() call which isn't all that unlikely for
non-blocking code.
i_assert(len <= SSIZE_T_MAX);
ret = send(fd, data, len, 0);
- if (unlikely(ret == -1 && (errno == EINTR || errno == EAGAIN)))
- return 0;
-
- if (unlikely(errno == EPIPE))
- return -2;
-
+ if (ret == -1) {
+ if (errno == EINTR || errno == EAGAIN)
+ return 0;
+ if (errno == EPIPE)
+ return -2;
+ }
return ret;
}