h1 = le64toh(o->data.hash);
if (o->object.flags & OBJECT_COMPRESSED) {
+#ifdef HAVE_XZ
void *b = NULL;
uint64_t alloc = 0, b_size;
if (!uncompress_blob(o->data.payload,
le64toh(o->object.size) - offsetof(Object, data.payload),
- &b, &alloc, &b_size))
+ &b, &alloc, &b_size, 0))
return -EBADMSG;
h2 = hash64(b, b_size);
free(b);
+#else
+ return -EPROTONOSUPPORT;
+#endif
} else
h2 = hash64(o->data.payload, le64toh(o->object.size) - offsetof(Object, data.payload));
unsigned n, i, j, k;
usec_t z, x;
- if (!isatty(STDOUT_FILENO))
+ if (!on_tty())
return;
z = now(CLOCK_MONOTONIC);
static void flush_progress(void) {
unsigned n, i;
- if (!isatty(STDOUT_FILENO))
+ if (!on_tty())
return;
n = (3 * columns()) / 4;
int journal_file_verify(
JournalFile *f,
const char *key,
- usec_t *first_validated, usec_t *last_validated, usec_t *last_contained,
+ usec_t *first_contained, usec_t *last_validated, usec_t *last_contained,
bool show_progress) {
int r;
Object *o;
- uint64_t p = 0, last_tag = 0, last_epoch = 0, last_tag_realtime = 0, last_sealed_realtime = 0;
+ uint64_t p = 0, last_epoch = 0, last_tag_realtime = 0, last_sealed_realtime = 0;
+
uint64_t entry_seqnum = 0, entry_monotonic = 0, entry_realtime = 0;
sd_id128_t entry_boot_id;
bool entry_seqnum_set = false, entry_monotonic_set = false, entry_realtime_set = false, found_main_entry_array = false;
entry_array_path[] = "/var/tmp/journal-entry-array-XXXXXX";
unsigned i;
bool found_last;
-
+#ifdef HAVE_GCRYPT
+ uint64_t last_tag = 0;
+#endif
assert(f);
if (key) {
if (r < 0)
goto fail;
- r = journal_file_hmac_put_object(f, -1, q);
+ r = journal_file_hmac_put_object(f, -1, o, q);
if (r < 0)
goto fail;
last_tag_realtime = rt;
last_sealed_realtime = entry_realtime;
}
-#endif
last_tag = p + ALIGN64(le64toh(o->object.size));
+#endif
+
last_epoch = le64toh(o->tag.epoch);
n_tags ++;
close_nointr_nofail(entry_fd);
close_nointr_nofail(entry_array_fd);
- if (first_validated)
- *first_validated = last_tag_realtime ? le64toh(f->header->head_entry_realtime) : 0;
+ if (first_contained)
+ *first_contained = le64toh(f->header->head_entry_realtime);
if (last_validated)
*last_validated = last_sealed_realtime;
if (last_contained)