From: Petr Uzel Date: Tue, 15 May 2012 08:49:02 +0000 (+0200) Subject: libuuid: move read_all to include/all-io.h X-Git-Tag: v2.22-rc1~413 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f80e9bc30a2ae9032790b888abc6ffc8ca90a940;p=thirdparty%2Futil-linux.git libuuid: move read_all to include/all-io.h Signed-off-by: Petr Uzel --- diff --git a/include/all-io.h b/include/all-io.h index 4d1ae1e532..b79d702bd5 100644 --- a/include/all-io.h +++ b/include/all-io.h @@ -44,4 +44,29 @@ static inline int fwrite_all(const void *ptr, size_t size, return 0; } +static inline ssize_t read_all(int fd, char *buf, size_t count) +{ + ssize_t ret; + ssize_t c = 0; + int tries = 0; + + memset(buf, 0, count); + while (count > 0) { + ret = read(fd, buf, count); + if (ret <= 0) { + if ((errno == EAGAIN || errno == EINTR || ret == 0) && + (tries++ < 5)) + continue; + return c ? c : -1; + } + if (ret > 0) + tries = 0; + count -= ret; + buf += ret; + c += ret; + } + return c; +} + + #endif /* UTIL_LINUX_ALL_IO_H */ diff --git a/libuuid/src/gen_uuid.c b/libuuid/src/gen_uuid.c index 93d292a22d..9d5575b85c 100644 --- a/libuuid/src/gen_uuid.c +++ b/libuuid/src/gen_uuid.c @@ -87,6 +87,7 @@ #include #endif +#include "all-io.h" #include "uuidP.h" #include "uuidd.h" #include "randutils.h" @@ -334,31 +335,6 @@ try_again: } #if defined(HAVE_UUIDD) && defined(HAVE_SYS_UN_H) -/* used in get_uuid_via_daemon() only */ -static ssize_t read_all(int fd, char *buf, size_t count) -{ - ssize_t ret; - ssize_t c = 0; - int tries = 0; - - memset(buf, 0, count); - while (count > 0) { - ret = read(fd, buf, count); - if (ret <= 0) { - if ((errno == EAGAIN || errno == EINTR || ret == 0) && - (tries++ < 5)) - continue; - return c ? c : -1; - } - if (ret > 0) - tries = 0; - count -= ret; - buf += ret; - c += ret; - } - return c; -} - /* * Try using the uuidd daemon to generate the UUID * diff --git a/misc-utils/uuidd.c b/misc-utils/uuidd.c index 65ee55ad0f..3dde49e1b7 100644 --- a/misc-utils/uuidd.c +++ b/misc-utils/uuidd.c @@ -101,30 +101,6 @@ static void create_daemon(void) err(EXIT_FAILURE, "setreuid"); } -static ssize_t read_all(int fd, char *buf, size_t count) -{ - ssize_t ret; - ssize_t c = 0; - int tries = 0; - - memset(buf, 0, count); - while (count > 0) { - ret = read(fd, buf, count); - if (ret <= 0) { - if ((errno == EAGAIN || errno == EINTR || ret == 0) && - (tries++ < 5)) - continue; - return c ? c : -1; - } - if (ret > 0) - tries = 0; - count -= ret; - buf += ret; - c += ret; - } - return c; -} - static const char *cleanup_pidfile, *cleanup_socket; static void terminate_intr(int signo CODE_ATTR((unused)))