X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal-remote%2Fjournal-remote-write.c;h=8ede950bea17b60003d6de6a5def1623bacf5628;hb=d7bf74d9cccdc6ffa567ea0e08f814863610f88e;hp=cdd06f9effc25a9238eb289e1b9121010304fbb4;hpb=9ff48d0982fcb97923955685fe9fa4e0e67cb238;p=elogind.git diff --git a/src/journal-remote/journal-remote-write.c b/src/journal-remote/journal-remote-write.c index cdd06f9ef..8ede950be 100644 --- a/src/journal-remote/journal-remote-write.c +++ b/src/journal-remote/journal-remote-write.c @@ -20,7 +20,6 @@ ***/ #include "journal-remote.h" -#include "journal-remote-write.h" int iovw_put(struct iovec_wrapper *iovw, void* data, size_t len) { if (!GREEDY_REALLOC(iovw->iovec, iovw->size_bytes, iovw->count + 1)) @@ -31,8 +30,6 @@ int iovw_put(struct iovec_wrapper *iovw, void* data, size_t len) { } void iovw_free_contents(struct iovec_wrapper *iovw) { - for (size_t j = 0; j < iovw->count; j++) - free(iovw->iovec[j].iov_base); free(iovw->iovec); iovw->iovec = NULL; iovw->size_bytes = iovw->count = 0; @@ -41,12 +38,19 @@ void iovw_free_contents(struct iovec_wrapper *iovw) { size_t iovw_size(struct iovec_wrapper *iovw) { size_t n = 0, i; - for(i = 0; i < iovw->count; i++) + for (i = 0; i < iovw->count; i++) n += iovw->iovec[i].iov_len; return n; } +void iovw_rebase(struct iovec_wrapper *iovw, char *old, char *new) { + size_t i; + + for (i = 0; i < iovw->count; i++) + iovw->iovec[i].iov_base = (char*) iovw->iovec[i].iov_base - old + new; +} + /********************************************************************** ********************************************************************** **********************************************************************/