#include <stdbool.h>
-inline static UNUSED bool
-WsendAll(int fd, void const *ptr_v, size_t len)
+inline static WRAPPER_DECL bool
+WsendAll(int fd, void const *ptr_v, size_t len, int *err)
{
register char const *ptr = ptr_v;
+ if (err) *err = 0;
while (len>0) {
- size_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
- if (res==(size_t)-1) {
- perror("send()");
+ ssize_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
+ if (res==-1) {
+ if (err) *err = errno;
return false;
}
return true;
}
-inline static UNUSED void
+inline static WRAPPER_DECL void
EsendAll(int fd, void const *ptr_v, size_t len)
{
register char const *ptr = ptr_v;
while (len>0) {
- size_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
- FatalErrnoError(res==(size_t)-1, "send()");
+ ssize_t res = TEMP_FAILURE_RETRY(send(fd, ptr, len, MSG_NOSIGNAL));
+ FatalErrnoError(res==-1, "send()");
ptr += res;
len -= res;
}
-inline static UNUSED bool
-WrecvAll(int fd, void *ptr_v, size_t len)
+inline static WRAPPER_DECL bool
+WrecvAll(int fd, void *ptr_v, size_t len, int *err)
{
register char *ptr = ptr_v;
+ if (err) *err = 0;
while (len>0) {
- size_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
- if (res==(size_t)-1) {
- perror("recv()");
+ ssize_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
+ if (res==-1) {
+ if (err) *err = errno;
return false;
}
return true;
}
-inline static UNUSED bool
+inline static WRAPPER_DECL bool
ErecvAll(int fd, void *ptr_v, size_t len)
{
register char *ptr = ptr_v;
while (len>0) {
- size_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
- FatalErrnoError(res==(size_t)-1, "recv()");
+ ssize_t res = TEMP_FAILURE_RETRY(recv(fd, ptr, len, MSG_NOSIGNAL));
+ FatalErrnoError(res==-1, "recv()");
if (res==0) return false;