summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorKarel Klic <kklic@redhat.com>2010-08-19 10:47:02 +0200
committerKarel Klic <kklic@redhat.com>2010-08-19 10:47:02 +0200
commit8bffa57699aa266b4710c56f0a12bec741a7dd5b (patch)
tree8d502f84819ddd17905d921520151d0ceeb11dde /lib
parent848495a981cbdaab2f9eb59ca392442c15d538e3 (diff)
downloadabrt-8bffa57699aa266b4710c56f0a12bec741a7dd5b.tar.gz
abrt-8bffa57699aa266b4710c56f0a12bec741a7dd5b.tar.xz
abrt-8bffa57699aa266b4710c56f0a12bec741a7dd5b.zip
needs logging.h -> include it
synchronize the order of functions with the header file fix indentation
Diffstat (limited to 'lib')
-rw-r--r--lib/utils/read_write.c148
1 files changed, 78 insertions, 70 deletions
diff --git a/lib/utils/read_write.c b/lib/utils/read_write.c
index 3f2133e6..1a3e589d 100644
--- a/lib/utils/read_write.c
+++ b/lib/utils/read_write.c
@@ -5,90 +5,98 @@
*/
#include "read_write.h"
-
-ssize_t safe_read(int fd, void *buf, size_t count)
-{
- ssize_t n;
-
- do {
- n = read(fd, buf, count);
- } while (n < 0 && errno == EINTR);
-
- return n;
-}
-
-ssize_t full_read(int fd, void *buf, size_t len)
-{
- ssize_t cc;
- ssize_t total;
-
- total = 0;
-
- while (len) {
- cc = safe_read(fd, buf, len);
-
- if (cc < 0) {
- if (total) {
- /* we already have some! */
- /* user can do another read to know the error code */
- return total;
- }
- return cc; /* read() returns -1 on failure. */
- }
- if (cc == 0)
- break;
- buf = ((char *)buf) + cc;
- total += cc;
- len -= cc;
- }
-
- return total;
-}
+#include "logging.h"
/* Die with an error message if we can't read the entire buffer. */
void xread(int fd, void *buf, size_t count)
{
- if (count) {
- ssize_t size = full_read(fd, buf, count);
- if ((size_t)size != count)
- error_msg_and_die("short read");
- }
+ if (count)
+ {
+ ssize_t size = full_read(fd, buf, count);
+ if ((size_t)size != count)
+ error_msg_and_die("short read");
+ }
}
-ssize_t safe_write(int fd, const void *buf, size_t count)
+ssize_t safe_read(int fd, void *buf, size_t count)
{
- ssize_t n;
+ ssize_t n;
- do {
- n = write(fd, buf, count);
- } while (n < 0 && errno == EINTR);
+ do {
+ n = read(fd, buf, count);
+ } while (n < 0 && errno == EINTR);
- return n;
+ return n;
}
-ssize_t full_write(int fd, const void *buf, size_t len)
+ssize_t safe_write(int fd, const void *buf, size_t count)
{
- ssize_t cc;
- ssize_t total;
+ ssize_t n;
- total = 0;
+ do {
+ n = write(fd, buf, count);
+ } while (n < 0 && errno == EINTR);
- while (len) {
- cc = safe_write(fd, buf, len);
-
- if (cc < 0) {
- if (total) {
- /* we already wrote some! */
- /* user can do another write to know the error code */
- return total;
- }
- return cc; /* write() returns -1 on failure. */
- }
+ return n;
+}
- total += cc;
- buf = ((const char *)buf) + cc;
- len -= cc;
- }
+ssize_t full_read(int fd, void *buf, size_t len)
+{
+ ssize_t cc;
+ ssize_t total;
+
+ total = 0;
+
+ while (len)
+ {
+ cc = safe_read(fd, buf, len);
+
+ if (cc < 0)
+ {
+ if (total)
+ {
+ /* we already have some! */
+ /* user can do another read to know the error code */
+ return total;
+ }
+ return cc; /* read() returns -1 on failure. */
+ }
+ if (cc == 0)
+ break;
+ buf = ((char *)buf) + cc;
+ total += cc;
+ len -= cc;
+ }
+
+ return total;
+}
- return total;
+ssize_t full_write(int fd, const void *buf, size_t len)
+{
+ ssize_t cc;
+ ssize_t total;
+
+ total = 0;
+
+ while (len)
+ {
+ cc = safe_write(fd, buf, len);
+
+ if (cc < 0)
+ {
+ if (total)
+ {
+ /* we already wrote some! */
+ /* user can do another write to know the error code */
+ return total;
+ }
+ return cc; /* write() returns -1 on failure. */
+ }
+
+ total += cc;
+ buf = ((const char *)buf) + cc;
+ len -= cc;
+ }
+
+ return total;
}