diff options
author | Jeremy Allison <jra@samba.org> | 2002-04-19 02:15:10 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2002-04-19 02:15:10 +0000 |
commit | e41915d7c802566f598ac844514913fb230f4f7d (patch) | |
tree | 57b81ebdc7b6c83851a4b0b663daea4908e995c0 /source3/lib/system.c | |
parent | 302b581ddc1f9dcee5c1bcb32da558ae2a7b24c1 (diff) | |
download | samba-e41915d7c802566f598ac844514913fb230f4f7d.tar.gz samba-e41915d7c802566f598ac844514913fb230f4f7d.tar.bz2 samba-e41915d7c802566f598ac844514913fb230f4f7d.zip |
Fix send and recvfrom.
Jeremy.
(This used to be commit 8cbc24c3bd0e2d2349625c3b5d2e12ac092ec5a8)
Diffstat (limited to 'source3/lib/system.c')
-rw-r--r-- | source3/lib/system.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/source3/lib/system.c b/source3/lib/system.c index d97751eb4b..61f93dd6a5 100644 --- a/source3/lib/system.c +++ b/source3/lib/system.c @@ -106,7 +106,7 @@ ssize_t sys_write(int fd, const void *buf, size_t count) A send wrapper that will deal with EINTR. ********************************************************************/ -int sys_send(int s, const void *msg, size_t len, int flags) +ssize_t sys_send(int s, const void *msg, size_t len, int flags) { ssize_t ret; @@ -118,6 +118,21 @@ int sys_send(int s, const void *msg, size_t len, int flags) } /******************************************************************* +A recvfrom wrapper that will deal with EINTR. +********************************************************************/ + +ssize_t sys_recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) +{ + ssize_t ret; + + do { + errno = 0; + ret = recvfrom(s, buf, len, flags, from, fromlen); + } while (ret == -1 && errno == EINTR); + return ret; +} + +/******************************************************************* A stat() wrapper that will deal with 64 bit filesizes. ********************************************************************/ |