From 48fe794b23215babf05cc4db5a0ad4040ecff675 Mon Sep 17 00:00:00 2001 From: Jonathan Boulle Date: Fri, 20 May 2016 11:43:59 +0200 Subject: [PATCH] sdjournal: add SeekHead method Simple wrapper around `sd_journal_seek_head` --- sdjournal/journal.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/sdjournal/journal.go b/sdjournal/journal.go index b0651629..87717398 100644 --- a/sdjournal/journal.go +++ b/sdjournal/journal.go @@ -164,6 +164,15 @@ package sdjournal // } // // int +// my_sd_journal_seek_head(void *f, sd_journal *j) +// { +// int (*sd_journal_seek_head)(sd_journal *); +// +// sd_journal_seek_head = f; +// return sd_journal_seek_head(j); +// } +// +// int // my_sd_journal_seek_tail(void *f, sd_journal *j) // { // int (*sd_journal_seek_tail)(sd_journal *); @@ -587,6 +596,25 @@ func (j *Journal) GetRealtimeUsec() (uint64, error) { return uint64(usec), nil } +// SeekHead seeks to the beginning of the journal, i.e. the oldest available +// entry. +func (j *Journal) SeekHead() error { + sd_journal_seek_head, err := j.getFunction("sd_journal_seek_head") + if err != nil { + return err + } + + j.mu.Lock() + r := C.my_sd_journal_seek_head(sd_journal_seek_head, j.cjournal) + j.mu.Unlock() + + if r < 0 { + return fmt.Errorf("failed to seek to head of journal: %d", syscall.Errno(-r)) + } + + return nil +} + // SeekTail may be used to seek to the end of the journal, i.e. the most recent // available entry. func (j *Journal) SeekTail() error {