summaryrefslogtreecommitdiff
path: root/src/journal
AgeCommit message (Collapse)Author
2013-04-08journald: Do not dynamically allocate _UID/_GID/_PID stringsHolger Hans Peter Freyther
Avoid the dynamic allocation for the _UID, _GID, and _PID strings. The maximum size of the string can be determined at compile time. The code has only been compile tested.
2013-04-08journald: Do not always record _AUDIT_SESSION and _AUDIT_LOGINUIDHolger Hans Peter Freyther
When systemd was compiled without audit support, do not collect the audit session and loginuid in the journal. This is saving a couple of syscalls and memory allocations per log message.
2013-04-08journal: Fix typoMarius Vollmer
This would break backwards skipping. https://bugs.freedesktop.org/show_bug.cgi?id=63250
2013-04-05Use initalization instead of explicit zeroingZbigniew Jędrzejewski-Szmek
Before, we would initialize many fields twice: first by filling the structure with zeros, and then a second time with the real values. We can let the compiler do the job for us, avoiding one copy. A downside of this patch is that text gets slightly bigger. This is because all zero() calls are effectively inlined: $ size build/.libs/systemd text data bss dec hex filename before 897737 107300 2560 1007597 f5fed build/.libs/systemd after 897873 107300 2560 1007733 f6075 build/.libs/systemd … actually less than 1‰. A few asserts that the parameter is not null had to be removed. I don't think this changes much, because first, it is quite unlikely for the assert to fail, and second, an immediate SEGV is almost as good as an assert.
2013-04-05test-catalog,core/load-dropin: remove unused variablesZbigniew Jędrzejewski-Szmek
2013-04-05journal: u64log2 can be expressed just as __builtin_clzll(n) ^ 63UCristian Rodríguez
2013-04-05bus: add convenience functions for constructing and sending method ↵Lennart Poettering
calls/signals in one call
2013-04-04journal: add sd_journal_get_timeout() call to public APILennart Poettering
Let's do the wake-up logic on NFS internally, making things simpler for users.
2013-04-04journal: add public API call sd_journal_get_events()Lennart Poettering
This function should be used when filling in "struct pollfd"'s .events field for watching the journal. It will always return POLLIN for now, but we should keep our options open to change this later on. This mimics libsystemd-bus' sd_bus_get_events() call with the same purpose.
2013-04-04util: make time formatting a bit smarterLennart Poettering
Instead of outputting "5h 55s 50ms 3us" we'll now output "5h 55.050003s". Also, while outputting the accuracy is configurable. Basically we now try use "dot notation" for all time values > 1min. For >= 1s we use 's' as unit, otherwise for >= 1ms we use 'ms' as unit, and finally 'us'. This should give reasonably values in most cases.
2013-04-03util: rename parse_usec() to parse_sec() sinds the default unit is secondsLennart Poettering
Internally we store all time values in usec_t, however parse_usec() actually was used mostly to parse values in seconds (unless explicit units were specified to define a different unit). Hence, be clear about this and name the function about what we pass into it, not what we get out of it.
2013-04-02util: add a bit of syntactic sugar for saving/restoring errnoLennart Poettering
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-31journalctl: reword error messageZbigniew Jędrzejewski-Szmek
Sentence seemed to suggest that all three conditions must be true.
2013-03-31journald: check return value of strappendZbigniew Jędrzejewski-Szmek
2013-03-31journal-gatewayd: query PID 1 for virtalizationLennart Poettering
Since journal-gatewayd is now running unprivileged, and detecting virtalization requires privileges, query PID1 via D-Bus for the used virtualization. This is also the first time we use libsystemd-bus for more than just testing. https://bugs.freedesktop.org/show_bug.cgi?id=62173
2013-03-29journalctl: fix --update-catalog with not --root argZbigniew Jędrzejewski-Szmek
grawity> `journalctl --update-catalog` from latest git prints: "Recursive mkdir .: Invalid argument" and "Failed to write : Invalid argument"
2013-03-28journalctl: support --root for message catalogsZbigniew Jędrzejewski-Szmek
2013-03-28catalog: open up catalog internalsZbigniew Jędrzejewski-Szmek
In order to write tests for the catalog functions, they are made non-static and start taking a 'database' parameter, which is the name of a file with the preprocessed catalog entries. This makes it possible to make test-catalog part of the normal test suite, since it now only operates on files in /tmp. Some more tests are added.
2013-03-28catalog: make sure strings are terminatedZbigniew Jędrzejewski-Szmek
Coverity complains: systemd-199/src/journal/catalog.c:126: buffer_size_warning: Calling strncpy with a maximum size argument of 32 bytes on destination array "i->language" of size 32 bytes might leave the destination string unterminated. ...and unfortunately it was right. The string was defined as a fixed-size string in some parts of the code, and used a null-terminated string in others (e.g. in log statements). There's no point in conserving one byte, so just define the max language tag length to 31 bytes, and use null terminated strings everywhere. Also, wrap some lines, zero-fill less bytes, use '\0' instead of just 0 to be more explicit that this is one byte.
2013-03-28coredump: do not free twicesystemd/v200Zbigniew Jędrzejewski-Szmek
2013-03-27catalog: fix error codes handling in catalog_list_itemsLukas Nykryn
Previously r was set to zero and so if(r<0) was never true.
2013-03-27log: fix error codes handling in catalog_list_itemsLukas Nykryn
It does not make sense to print error code from previous loop.
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.
2013-03-23journald: remove unconditional log_*() use in the main loopKay Sievers
Setting MaxRetentionSec= caused the kernel log to overflow and the journal daemon to enter an endless loop. Logging from the journald main loop gets directed to /dev/kmsg, which wakes up journald again. We skip the import of this message by checking for our own PID, but this still causes the main loop to never go to sleep again because we never stopped logging from there.
2013-03-23journal: don't access j->files after useLennart Poettering
https://bugs.freedesktop.org/show_bug.cgi?id=62605
2013-03-23journalctl: various fixes to the access check logicLennart Poettering
- Reword messages a bit - Correct check whether EACCES is in the set of errors - Don't complain if no journal files are found - allocate Set object for errors lazily since in the best case we don't need it at all. - don't consider it an error if /run/log/journal doesn't exist (because that's the usual case actually, if storage is enabled)
2013-03-22journalctl: be smarter about journal error checksZbigniew Jędrzejewski-Szmek
There are many ways in which we can get those checks wrong, so it is better to warn and then error out on a real access failure. The error messages are wrapped to <80 lines, because their primary use is to be displayed in the terminal, and it is easier to read them this way. Reading them in the journal can be a bit trickier, but this is a bug in logs-show.c.
2013-03-22build-sys: move acl searching code into libsystemd-aclZbigniew Jędrzejewski-Szmek
This loop over acls is a bit too much to keep inside of another loop.
2013-03-22journalctl: give a nice hint about group membership based on ACLs of ↵Lennart Poettering
/var/log/journal If we notice that we unprivileged and not in any of the groups which have access to /var/log/journal, print a nice message about which groups do. This checks and prints all groups that are in the default ACL for /var/log/journal, which is not necessarily correct for all journal files, but pretty close.
2013-03-21Fix vacuum logic errorJan Alexander Steffens (heftig)
The vacuum code used to stop vacuuming after one deletion, even when max_use was still exceeded. Also make usage a uint64_t, as the code already pretends it is one. Signed-off-by: Jan Alexander Steffens (heftig) <jan.steffens@gmail.com>
2013-03-20Remove some unused variablesZbigniew Jędrzejewski-Szmek
2013-03-20macro: don't redefine CLAMP if it is already defined by glib or some other ↵Lennart Poettering
library
2013-03-19journalct: beef up entry listingZbigniew Jędrzejewski-Szmek
The ability to dump catalog entries in full and by id is added.
2013-03-19journalctl: use _cleanup_ in one functionZbigniew Jędrzejewski-Szmek
2013-03-18sd-journal: do not require path to be absoluteZbigniew Jędrzejewski-Szmek
Seems natural to be able to specify relative directory, e.g. with journalctl -D. And even if, this should be checked in front-end code, not in the library.
2013-03-18journal,shared: add _cleanup_journal_close_Zbigniew Jędrzejewski-Szmek
2013-03-18journal: use _cleanup_Zbigniew Jędrzejewski-Szmek
One log_debug() moved to match order in other functions.
2013-03-18journal: use sd_journal_close on error in sd_journal_newZbigniew Jędrzejewski-Szmek
2013-03-16journal: pass the *pid* to sd_pid_get_owner_uid()Kay Sievers
2013-03-13journalctl: show systemd messages about unit for -uZbigniew Jędrzejewski-Szmek
journalctl -u unit is not very useful, because it doesn't show systemd messages about starting, stopping, coredumps, etc, like systemctl status unit does. Make it show the same information using the same rules. If somebody really want to see just messages from by the unit, it is easy enough to use _SYSTEMD_UNIT=...
2013-03-11journald: allow priority of 999, tooLennart Poettering
2013-03-08journal: allow priority 0 in stdout streamMichal Schmidt
Priority 0 is acceptable (it's LOG_EMERG). BTW, I'm not sure why we allow priorities up to 999, but I'm leaving this be for now. http://lists.freedesktop.org/archives/systemd-devel/2013-March/009510.html
2013-03-07journalctl: imply -n1000 when -e is usedLennart Poettering
Make sure the pager does not have to buffer an unbounded number of log messages, by default.
2013-03-07pager: introduce "jump to end" optionHarald Hoyer
$ journalctl -be is what you want :) https://bugzilla.redhat.com/show_bug.cgi?id=867841
2013-03-07libsystemd-journal: return 0 on success in get_data()Zbigniew Jędrzejewski-Szmek
The man page says so. Right now 0 would be returned if the data was encrypted, 1 otherwise.
2013-03-06libsystemd-journal: export new function, increase library versionZbigniew Jędrzejewski-Szmek
Since sd_journal_reliable_fd wasn't exported before, it is as if it was added now. Library "current" number must be bumped. michich> Someone links with the fixed version and produces a RPM with his program. The RPM will happily install on a system with an old systemd version (the deps will appear fine), but the program will fail to run.
2013-03-06journal: properly advertise sd_journal_reliable_fdZbigniew Jędrzejewski-Szmek
sd_journal_reliable_fd was added in 85210bffd836, but it was exported under the wrong name. Not too many users I guess.
2013-03-05journal/tests: free allocated memory in testZbigniew Jędrzejewski-Szmek
2013-03-05journald: introduce new "systemd-journal" group and make it own the journal ↵Lennart Poettering
files Previously all journal files were owned by "adm". In order to allow specific users to read the journal files without granting it access to the full "adm" powers, introduce a new specific group for this. "systemd-journal" has to be created by the packaging scripts manually at installation time. It's a good idea to assign a static UID/GID to this group, since /var/log/journal might be shared across machines via NFS. This commit also grants read access to the journal files by default to members of the "wheel" and "adm" groups via file system ACLs, since these "almost-root" groups should be able to see what's going on on the system. These ACLs are created by "make install". Packagers probably need to duplicate this logic in their postinst scripts. This also adds documentation how to grant access to the journal to additional users or groups via fs ACLs.