summaryrefslogtreecommitdiff
path: root/src/journal/journal-file.c
AgeCommit message (Collapse)Author
2013-05-02Add __attribute__((const, pure, format)) in various placesZbigniew Jędrzejewski-Szmek
I'm assuming that it's fine if a _const_ or _pure_ function calls assert. It is assumed that the assert won't trigger, and even if it does, it can only trigger on the first call with a given set of parameters, and we don't care if the compiler moves the order of calls.
2013-04-01Always use our own MAX/MIN definitionsCristian Rodríguez
code in src/shared/macro.h only defined MAX/MIN in case they were not defined previously. however the MAX/MIN macros implemented in glibc are not of the "safe" kind but defined as: define MIN(a,b) (((a)<(b))?(a):(b)) define MAX(a,b) (((a)>(b))?(a):(b)) Avoid nasty side effects by using our own versions instead. Also fix the warnings derived from this change. [zj: - modify MAX3 macro to fix warning about _a shadowing _a, - do bootchart/svg.c too, - remove unused MIN3.]
2013-03-25journal: Add sync timer to journal serverOleksii Shevchuk
Add option to force journal sync with fsync. Default timeout is 5min. Interval configured via SyncIntervalSec option at journal.conf. Synced journal files will be marked as OFFLINE. Manual sync can be performed via sending SIGUSR1.
2012-11-21journal: by default do not decompress dat objects larger than 64KLennart Poettering
This introduces a new data threshold setting for sd_journal objects which controls the maximum size of objects to decompress. This is relieves the library from having to decompress full data objects even if a client program is only interested in the initial part of them. This speeds up "systemd-coredumpctl" drastically when invoked without parameters.
2012-10-26journal: special case the trivial cache chain cache entryLennart Poettering
2012-10-26journal: introduce entry array chain cacheLennart Poettering
When traversing entry array chains for a bisection or for retrieving an item by index we previously always started at the beginning of the chain. Since we tend to look at the same chains repeatedly, let's cache where we have been the last time, and maybe we can skip ahead with this the next time. This turns most bisections and index lookups from O(log(n)*log(n)) into O(log(n)). More importantly however, we seek around on disk much less, which is good to reduce buffer cache and seek times on rotational disks.
2012-10-18journal: suggest rotation when fields are not indexedLennart Poettering
2012-10-18journal: add ability to list values a specified field can take in all ↵Lennart Poettering
entries of the journal The new 'unique' API allows listing all unique field values that a field specified by a field name can take in all entries of the journal. This allows answering queries such as "What units logged to the journal?", "What hosts have logged into the journal?", "Which boot IDs have logged into the journal?". Ultimately this allows implementation of tools similar to lastlog based on journal data. Note that listing these field values will not work for journal files created with older journald, as the field values are not indexed in older files.
2012-10-16journal: implement time-based rotation/vacuumingLennart Poettering
This also enables time-based rotation (but not vacuuming) after 1month, so that not more one month of journal is lost at a time per vacuuming.
2012-10-16journal: sort data items of entries by offsetLennart Poettering
This should slightly optimize disk access patterns on rotating disks for simple readers.
2012-09-24journal: set seal even for readonly journalfilesMirco Tischler
journalctl needs to know wether the file has been sealed to be able to do verification.
2012-09-21journal: don't allow journal_file_open() to be called with ret being NULLLennart Poettering
2012-09-13man: fix a bunch of typos in docsThomas Hindoe Paaboel Andersen
https://bugs.freedesktop.org/show_bug.cgi?id=54501
2012-09-13journal: never assert directly on data read from the journalLennart Poettering
2012-09-13journald: don't reposition window if we don't have toLennart Poettering
2012-09-11journal: don't set seal flag if we don't have gcrypt built-inLennart Poettering
2012-09-11journal: don't try to compress without XZMichael Olbrich
otherwise the header contains the HEADER_INCOMPATIBLE_COMPRESSED flag even though the data is not compressed and reading the journal fails.
2012-09-10journald: detect invalid header pointers correctlyLennart Poettering
2012-09-07journal: add call to determine current journal file disk usageLennart Poettering
2012-09-06journald: avoid logging to kmsg in the normal pathsLennart Poettering
2012-08-21journal: be more careful when keeping around mmaps we still needLennart Poettering
2012-08-20journal: make libgcrypt dependency optionalLennart Poettering
2012-08-20journal: use a macro to check for file header flagsLennart Poettering
2012-08-20journal: fix tag ordering checkLennart Poettering
2012-08-18mmap: resize arrays dynamicallyLennart Poettering
2012-08-18journal: even more simple static object testsLennart Poettering
2012-08-18journal: fix verification without keyLennart Poettering
2012-08-18journald: add additional simple static tests to verifierLennart Poettering
2012-08-17journal: be fine with opening rotated/corrupted journal filesLennart Poettering
2012-08-17journal: show new header fields in header dumpLennart Poettering
2012-08-17journal: rework terminologyLennart Poettering
Let's clean up our terminology a bit. New terminology: FSS = Forward Secure Sealing FSPRG = Forward Secure Pseudo-Random Generator FSS is the combination of FSPRG and a HMAC. Sealing = process of adding authentication tags to the journal. Verification = process of checking authentication tags to the journal. Sealing Key = The key used for adding authentication tags to the journal. Verification Key = The key used for checking authentication tags of the journal. Key pair = The pair of Sealing Key and Verification Key Internally, the Sealing Key is the combination of the FSPRG State plus change interval/start time. Internally, the Verification Key is the combination of the FSPRG Seed plus change interval/start time.
2012-08-16journal: add FSPRG journal authenticationLennart Poettering
2012-08-16journal: parse fsprg seedLennart Poettering
2012-08-16journal: count number of entry arrays in headerLennart Poettering
2012-08-16journal: rename 'mmap' to 'mmap_cache' to appease gccZbigniew Jędrzejewski-Szmek
warning: declaration of 'mmap' shadows a global declaration [-Wshadow]
2012-08-16journal: verify hashes only during actual verification, not all the timeLennart Poettering
2012-08-16journal: split up journal-file.cLennart Poettering
2012-08-16journal: add superficial structure verifierLennart Poettering
2012-08-16journal: implement basic journal file verification logicLennart Poettering
2012-08-16journal: implement generic sharable mmap caching logicLennart Poettering
instead of having one simple per-file cache implement an more comprehensive one that works for multiple files and can actually maintain multiple maps per file and per object type.
2012-08-13journal: include tag object header in hmacLennart Poettering
2012-08-13journal: add all objects we add to HMACLennart Poettering
2012-08-13journald: initial version of FSPRG hookupLennart Poettering
This adds forward-secure authentication of journal files. This patch includes key generation as well as tagging of journal files, Verification of journal files will be added in a later patch.
2012-08-08fix a couple of issues found with llvm-analyzeLennart Poettering
2012-07-19journal: rotate busy files away when we try to write to themLennart Poettering
2012-07-18journal: when we suggest a rotation, explain whyLennart Poettering
2012-07-18journal: estimate data hash table size a bit larger by defaultLennart Poettering
2012-07-17journal: actually set archived files to archived stateLennart Poettering
2012-07-17journalctl: decode more header files in --headerLennart Poettering
2012-07-17journal: size journal data hash table based on maximum file size metricsLennart Poettering
The default of 2047 hash table entries turned out to result in way too many collisions for bigger files, hence scale the hash table size by the estimated maximum file size.