summaryrefslogtreecommitdiffstats
path: root/src/util/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/util.c')
-rw-r--r--src/util/util.c38
1 files changed, 0 insertions, 38 deletions
diff --git a/src/util/util.c b/src/util/util.c
index 3a6c5d27..f1aaebc2 100644
--- a/src/util/util.c
+++ b/src/util/util.c
@@ -611,41 +611,3 @@ void to_sized_string(struct sized_string *out, const char *in)
}
}
-/* based on code from libssh <http://www.libssh.org> */
-ssize_t sss_atomic_io(int fd, void *buf, size_t n, bool do_read)
-{
- char *b = buf;
- size_t pos = 0;
- ssize_t res;
- struct pollfd pfd;
-
- pfd.fd = fd;
- pfd.events = do_read ? POLLIN : POLLOUT;
-
- while (n > pos) {
- if (do_read) {
- res = read(fd, b + pos, n - pos);
- } else {
- res = write(fd, b + pos, n - pos);
- }
- switch (res) {
- case -1:
- if (errno == EINTR) {
- continue;
- }
- if (errno == EAGAIN || errno == EWOULDBLOCK) {
- (void) poll(&pfd, 1, -1);
- continue;
- }
- return -1;
- case 0:
- /* read returns 0 on end-of-file */
- errno = do_read ? 0 : EPIPE;
- return pos;
- default:
- pos += (size_t) res;
- }
- }
-
- return pos;
-}