diff options
Diffstat (limited to 'src/libsystemd/sd-journal/sd-journal.c')
-rw-r--r-- | src/libsystemd/sd-journal/sd-journal.c | 36 |
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); |