summaryrefslogtreecommitdiff
path: root/c_src/filebuffer.c
diff options
context:
space:
mode:
Diffstat (limited to 'c_src/filebuffer.c')
-rw-r--r--c_src/filebuffer.c33
1 files changed, 23 insertions, 10 deletions
diff --git a/c_src/filebuffer.c b/c_src/filebuffer.c
index 70d7827..82fd4d2 100644
--- a/c_src/filebuffer.c
+++ b/c_src/filebuffer.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015, NORDUnet A/S.
+ * Copyright (c) 2016, NORDUnet A/S.
* See LICENSE for licensing information.
*/
@@ -87,15 +87,14 @@ bf_add(buffered_file *file, const void *data, uint64_t length)
}
needspace = length + bf_unwritten_length(file);
-
if (needspace > file->writebufferalloc) {
-
uint64_t newsize = file->writebufferalloc * 2;
if (needspace > newsize) {
newsize = needspace;
}
file->writebuffer = realloc(file->writebuffer, newsize);
- memset(file->writebuffer + file->writebufferalloc, 0, newsize - file->writebufferalloc);
+ memset(file->writebuffer + file->writebufferalloc, 0,
+ newsize - file->writebufferalloc);
file->writebufferalloc = newsize;
}
}
@@ -139,27 +138,36 @@ unsigned char *
bf_read(buffered_file *file, uint64_t offset, size_t length, char **error)
{
unsigned char *result = malloc(length);
- dprintf(READ, (stderr, "reading data: offset %llu\n", (unsigned long long) offset));
+ dprintf(READ, (stderr, "reading data: offset %llu\n",
+ (unsigned long long) offset));
if (offset >= file->filesize) {
uint64_t writebufferoffset = offset - file->filesize;
if (offset + length > file->datasize) {
free(result);
- set_error(error, "pread: not enough data for offset %llu and length %zu\n", (long long unsigned int) offset, length);
+ set_error(error,
+ "pread: not enough data for offset %llu and "
+ "length %zu\n",
+ (long long unsigned int) offset, length);
return NULL;
}
memcpy(result, file->writebuffer + writebufferoffset, length);
} else {
if (offset + length > file->filesize) {
free(result);
- set_error(error, "pread: trying to read over file/writebuffer boundary for offset %llu and length %zu\n", (long long unsigned int) offset, length);
+ set_error(error,
+ "pread: trying to read over file/writebuffer "
+ "boundary for offset %llu and length %zu\n",
+ (long long unsigned int) offset, length);
return NULL;
}
-
+
ssize_t ret = pread(file->fd, result, length, (off_t) offset);
if (ret != length) {
free(result);
- set_error(error, "short pread: %zd (wanted %zu) at offset %llu\n", ret, length, (long long unsigned int) offset);
+ set_error(error,
+ "short pread: %zd (wanted %zu) at offset %llu\n",
+ ret, length, (long long unsigned int) offset);
return NULL;
}
}
@@ -217,5 +225,10 @@ bf_truncate(buffered_file *file)
void
bf_sha256(buffered_file *file, unsigned char *checksum)
{
- sha256_digest(&file->commit_checksum_context, SHA256_DIGEST_SIZE, checksum);
+ sha256_digest(&file->commit_checksum_context, SHA256_DIGEST_SIZE,
+ checksum);
}
+
+/* Local Variables: */
+/* c-file-style: "linux" */
+/* End: */