summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-journal/sd-journal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsystemd/sd-journal/sd-journal.c')
-rw-r--r--src/libsystemd/sd-journal/sd-journal.c36
1 files changed, 19 insertions, 17 deletions
diff --git a/src/libsystemd/sd-journal/sd-journal.c b/src/libsystemd/sd-journal/sd-journal.c
index e8c66a5e2c..aa2284386c 100644
--- a/src/libsystemd/sd-journal/sd-journal.c
+++ b/src/libsystemd/sd-journal/sd-journal.c
@@ -2298,7 +2298,7 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void **
Object *d;
uint64_t p, l;
size_t t;
- int compression;
+ Compression c;
p = le64toh(o->entry.items[i].object_offset);
r = journal_file_move_to_object(f, OBJECT_DATA, p, &d);
@@ -2311,24 +2311,26 @@ _public_ int sd_journal_get_data(sd_journal *j, const char *field, const void **
l = le64toh(d->object.size) - offsetof(Object, data.payload);
- compression = d->object.flags & OBJECT_COMPRESSION_MASK;
- if (compression) {
+ c = COMPRESSION_FROM_OBJECT(d);
+ if (c != COMPRESSION_NONE) {
#if HAVE_COMPRESSION
- r = decompress_startswith(compression,
- d->data.payload, l,
- &f->compress_buffer,
- field, field_length, '=');
+ r = decompress_startswith(
+ c,
+ d->data.payload, l,
+ &f->compress_buffer,
+ field, field_length, '=');
if (r < 0)
log_debug_errno(r, "Cannot decompress %s object of length %"PRIu64" at offset "OFSfmt": %m",
- object_compressed_to_string(compression), l, p);
+ compression_to_string(c), l, p);
else if (r > 0) {
size_t rsize;
- r = decompress_blob(compression,
- d->data.payload, l,
- &f->compress_buffer, &rsize,
- j->data_threshold);
+ r = decompress_blob(
+ c,
+ d->data.payload, l,
+ &f->compress_buffer, &rsize,
+ j->data_threshold);
if (r < 0)
return r;
@@ -2366,9 +2368,9 @@ static int return_data(
const void **ret_data,
size_t *ret_size) {
- size_t t;
+ Compression c;
uint64_t l;
- int compression;
+ size_t t;
assert(j);
assert(f);
@@ -2383,14 +2385,14 @@ static int return_data(
if ((uint64_t) t != l)
return -E2BIG;
- compression = o->object.flags & OBJECT_COMPRESSION_MASK;
- if (compression) {
+ c = COMPRESSION_FROM_OBJECT(o);
+ if (c != COMPRESSION_NONE) {
#if HAVE_COMPRESSION
size_t rsize;
int r;
r = decompress_blob(
- compression,
+ c,
o->data.payload, l,
&f->compress_buffer, &rsize,
j->data_threshold);