From 99bb34bf91253eb90fd1bc900af88580c6461e53 Mon Sep 17 00:00:00 2001 From: Christian Grothoff Date: Sun, 25 Oct 2009 19:28:48 +0000 Subject: [PATCH] more consistent disk API --- src/include/gnunet_disk_lib.h | 5 ++++- src/peerinfo/gnunet-service-peerinfo.c | 7 ++++--- src/util/disk.c | 7 +++---- src/util/pseudonym.c | 5 +++-- src/util/test_disk.c | 6 ++++-- 5 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/include/gnunet_disk_lib.h b/src/include/gnunet_disk_lib.h index 69f7fb825..fc5b9b5eb 100644 --- a/src/include/gnunet_disk_lib.h +++ b/src/include/gnunet_disk_lib.h @@ -327,6 +327,7 @@ struct GNUNET_DISK_FileHandle *GNUNET_DISK_file_open (const char *fn, */ struct GNUNET_DISK_PipeHandle *GNUNET_DISK_pipe (int blocking); + /** * Closes an interprocess channel * @param p pipe @@ -334,6 +335,7 @@ struct GNUNET_DISK_PipeHandle *GNUNET_DISK_pipe (int blocking); */ int GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p); + /** * Close an open file. * @@ -342,6 +344,7 @@ int GNUNET_DISK_pipe_close (struct GNUNET_DISK_PipeHandle *p); */ int GNUNET_DISK_file_close (struct GNUNET_DISK_FileHandle *h); + /** * Get the handle to a particular pipe end * @param p pipe @@ -384,7 +387,7 @@ ssize_t GNUNET_DISK_fn_read (const char *fn, * @param h handle to open file * @param buffer the data to write * @param n number of bytes to write - * @return GNUNET_OK on success, GNUNET_SYSERR on error + * @return number of bytes written on success, GNUNET_SYSERR on error */ ssize_t GNUNET_DISK_file_write (const struct GNUNET_DISK_FileHandle *h, const void *buffer, diff --git a/src/peerinfo/gnunet-service-peerinfo.c b/src/peerinfo/gnunet-service-peerinfo.c index 3608dab84..b9b242522 100644 --- a/src/peerinfo/gnunet-service-peerinfo.c +++ b/src/peerinfo/gnunet-service-peerinfo.c @@ -477,9 +477,10 @@ flush_trust (struct HostEntry *host) else { trust = htonl (host->trust); - if (GNUNET_OK == GNUNET_DISK_fn_write (fn, &trust, sizeof(uint32_t), - GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE - | GNUNET_DISK_PERM_GROUP_READ | GNUNET_DISK_PERM_OTHER_READ)) + if (sizeof(uint32_t) == GNUNET_DISK_fn_write (fn, &trust, + sizeof(uint32_t), + GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE + | GNUNET_DISK_PERM_GROUP_READ | GNUNET_DISK_PERM_OTHER_READ)) host->disk_trust = host->trust; } GNUNET_free (fn); diff --git a/src/util/disk.c b/src/util/disk.c index 40d637ee3..b0c648b25 100644 --- a/src/util/disk.c +++ b/src/util/disk.c @@ -653,7 +653,7 @@ GNUNET_DISK_file_write (const struct GNUNET_DISK_FileHandle *h, const void *buff * @param buffer the data to write * @param n number of bytes to write * @param mode file permissions - * @return GNUNET_OK on success, GNUNET_SYSERR on error + * @return number of bytes written on success, GNUNET_SYSERR on error */ ssize_t GNUNET_DISK_fn_write (const char * fn, const void *buffer, @@ -661,7 +661,7 @@ GNUNET_DISK_fn_write (const char * fn, const void *buffer, enum GNUNET_DISK_AccessPermissions mode) { struct GNUNET_DISK_FileHandle *fh; - int ret; + ssize_t ret; fh = GNUNET_DISK_file_open (fn, GNUNET_DISK_OPEN_WRITE @@ -669,9 +669,8 @@ GNUNET_DISK_fn_write (const char * fn, const void *buffer, | GNUNET_DISK_OPEN_CREATE, mode); if (!fh) return GNUNET_SYSERR; - ret = (n == GNUNET_DISK_file_write (fh, buffer, n)) ? GNUNET_OK : GNUNET_SYSERR; + ret = GNUNET_DISK_file_write (fh, buffer, n); GNUNET_assert(GNUNET_OK == GNUNET_DISK_file_close(fh)); - return ret; } diff --git a/src/util/pseudonym.c b/src/util/pseudonym.c index 04a6a1f78..40165800b 100644 --- a/src/util/pseudonym.c +++ b/src/util/pseudonym.c @@ -209,8 +209,9 @@ write_pseudonym_info (const struct GNUNET_CONFIGURATION_Handle *cfg, off + 1], size, GNUNET_CONTAINER_META_DATA_SERIALIZE_FULL)); - GNUNET_DISK_fn_write (fn, buf, tag, GNUNET_DISK_PERM_USER_READ - | GNUNET_DISK_PERM_USER_WRITE | GNUNET_DISK_PERM_GROUP_READ); + GNUNET_break + (tag != GNUNET_DISK_fn_write (fn, buf, tag, GNUNET_DISK_PERM_USER_READ + | GNUNET_DISK_PERM_USER_WRITE | GNUNET_DISK_PERM_GROUP_READ)); GNUNET_free (fn); GNUNET_free (buf); /* create entry for pseudonym name in names */ diff --git a/src/util/test_disk.c b/src/util/test_disk.c index 705a24abf..8b485edc5 100644 --- a/src/util/test_disk.c +++ b/src/util/test_disk.c @@ -36,8 +36,10 @@ testReadWrite () char tmp[100 + 1]; int ret; - if (GNUNET_OK != GNUNET_DISK_fn_write (".testfile", TESTSTRING, strlen ( - TESTSTRING), GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE)) + if (strlen(TESTSTRING) != + GNUNET_DISK_fn_write (".testfile", TESTSTRING, + strlen (TESTSTRING), + GNUNET_DISK_PERM_USER_READ | GNUNET_DISK_PERM_USER_WRITE)) return 1; if (GNUNET_OK != GNUNET_DISK_file_test (".testfile")) return 1; -- 2.25.1