summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-10-11bus: in GetManagedObjects() only return each object once.Lennart Poettering
2013-10-11bus: unify code to find parents of an object path withLennart Poettering
2013-10-11bus: properly generate GetAll replyLennart Poettering
2013-10-11bus: add sd_bus_message_append_strv() to easily add a NULL terminated string ↵Lennart Poettering
array to a message
2013-10-11bus: make sure introspection can be generated correctly with NULL method ↵Lennart Poettering
signatures
2013-10-11bus: beef up parameter checking in vtable handlingLennart Poettering
2013-10-11bus: beef up parameter checking of convenience callsLennart Poettering
2013-10-11bus: don't rely on gccisms/c11 in public header files.Lennart Poettering
One day sd-bus.h should become a public header file. We generally try to be conservative in language features we use in public headers (much unlike in private code), hence don't make use of anonymous unions in structs for the vtable definitions.
2013-10-11bus: split up overly long sd-bus.c into three filesLennart Poettering
2013-10-11bus: if a a Set() vtable callback of a writable is left NULL, try to do the ↵Lennart Poettering
right thing automatically
2013-10-11bus: automatically do a NOP reply when a NULL callback is specified for a ↵Lennart Poettering
method in a vtable Also, allow specifiying NULL as signature in vtables equivalent to "" for empty parameter lists.
2013-10-11Add support for saving/restoring keyboard backlightsBastien Nocera
Piggy-backing on the display backlight code, this saves and restores keyboard backlights on supported devices. The detection code matches that of UPower: http://cgit.freedesktop.org/upower/tree/src/up-kbd-backlight.c#n173 https://bugs.freedesktop.org/show_bug.cgi?id=70367 [tomegun: also work for devices named "{smc,samsung,asus}::kbd_backlight"]
2013-10-11udev: usb_id - remove obsoleted bInterfaceSubClass == 5 matchKay Sievers
bInterfaceSubClass == 5 is not a "floppy"; just identify the obsolete QIC-157 interface as "generic".
2013-10-11smack: minimize ifdef use, and move all labeling to smack-util.cKay Sievers
2013-10-11bus: when NULL is specified as property callback, automatically handle ↵Lennart Poettering
serialization on Get()
2013-10-11bus: make PropertiesChanged emission workLennart Poettering
2013-10-11bus: decorate API calls with gcc attributes where appropriateLennart Poettering
2013-10-11bus: allow specifying NULL as type string when we want to construct messages ↵Lennart Poettering
with no payload
2013-10-11bus: make GetManagedObjects() workLennart Poettering
2013-10-11event: add apis to query the timestamp of the event currently processedLennart Poettering
2013-10-11event: move all library calls over to new assert_return() macroLennart Poettering
2013-10-11event: add sd_event_source_get_child_pid() call to query the PID of a child ↵Lennart Poettering
event source
2013-10-11event: rename the "mute" field of event sources to "enabled"Lennart Poettering
In addition, the states "UNMUTED" and "MUTED" become "ON" and "OFF". This has the benefit that a possible value of this field is not identical to its name, thus minimizing confusion.
2013-10-11event: implement quit handlersLennart Poettering
Quit handlers are executed when an event loop is terminated via sd_event_request_quit(). They are in a way atexit() handlers that are executed in a well-defined environment, time and thread: from the event loop thread when the event loop finishes.
2013-10-11macro: add new assert_return() macro for early parameter checking in functionsLennart Poettering
For the library functions we expose we currently repeatedly use checks like the following: if (!value_is_ok(parameter1)) return -EINVAL; if (!value_is_ok(parameter2)) return -EINVAL; And so on. Let's turn this into a macro: assert_return(value_is_ok(parameter1), -EINVAL); assert_return(value_is_ok(paramater2), -EINVAL); This makes our code a bit shorter and simpler, and also allows us to add a _unlikely_() around the check.
2013-10-10event: refuse operation if the caller tries to reuse an event loop after a ↵Lennart Poettering
fork()
2013-10-10event: add timer accuracy/coalescing logicLennart Poettering
In order to improve energy consumption we should minimize our wake-ups when handling timers. Hence, for each timer take an accuracy value and schedule the actual wake-up time somewhere between the specified time and the specified timer plus the accuracy. The specified time of timer event sources hence becomes the time the handler is called the *earliest*, and the specified time plus the accuracy the time by which it is called the *latest*, leaving the library the freedom to schedule the wake-up somewhere inbetween. If the accuracy is specified as 0 the default of 250ms will be used. When scheduling timeouts we will now try to elapse them at the same point within each second, across the entire system. We do this by using a fixed perturbation value keyed off the boot id. If this point within a second is not in the acceptable range, we try again with a fixed time within each 250ms time step. If that doesn't work either, we wake up at the last possible time.
2013-10-10security: missing header inclusionsLennart Poettering
2013-10-10bus: fix duplicate comparisonsTero Roponen
Testing for y > x is the same as testing for x < y.
2013-10-10security: rework selinux, smack, ima, apparmor detection logicLennart Poettering
Always cache the results, and bypass low-level security calls when the respective subsystem is not enabled.
2013-10-10login: make sd_session_get_vt() actually workDavid Herrmann
We use VTNR, not VTNr as key. Until now sd_session_get_vt() just returns an error.
2013-10-10login: fix invalid free() in sd_session_get_vt()David Herrmann
We need to clear variables markes as _cleanup_free_. Otherwise, our error-paths might corrupt random memory.
2013-10-10bus: add minimal event loop APILennart Poettering
So far we tried to use epoll directly wherever we needed an event loop. However, that has various shortcomings, such as the inability to handle larger amounts of timers (since each timerfd costs one fd, which is a very limited resource, usually bounded to 1024), and inability to do priorisation between multiple queued events. Let's add a minimal event loop API around epoll that is suitable for implementation of our own daemons and maybe one day can become public API for those who desire it. This loop is part of libsystemd-bus, but may be used independently of it.
2013-10-09journald: remove rotated file from hashmap when rotation failsZbigniew Jędrzejewski-Szmek
Before, when the user journal file was rotated, journal_file_rotate could close the old file and fail to open the new file. In that case, we would leave the old (deallocated) file in the hashmap. On subsequent accesses, we could retrieve this stale entry, leading to a segfault. When journal_file_rotate fails with the file pointer set to 0, old file is certainly gone, and cannot be used anymore. https://bugzilla.redhat.com/show_bug.cgi?id=890463
2013-10-09journald: replace new+snprintf with asprintfZbigniew Jędrzejewski-Szmek
2013-10-10do not accept "garbage" from acpi firmware performance data (FPDT)Kay Sievers
00000000 46 42 50 54 38 00 00 00 02 00 30 02 00 00 00 00 |FBPT8.....0.....| 00000010 23 45 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |#E..............| 00000020 f5 6a 51 00 00 00 00 00 00 00 00 00 00 00 00 00 |.jQ.............| 00000030 00 00 00 00 00 00 00 00 70 74 61 6c 58 00 00 00 |........ptalX...|
2013-10-09Smack: Test if smack is enabled before mountingAuke Kok
Since on most systems with xattr systemd will compile with Smack support enabled, we still attempt to mount various fs's with Smack-only options. Before mounting any of these Smack-related filesystems with Smack specific mount options, check if Smack is functionally active on the running kernel. If Smack is really enabled in the kernel, all these Smack mounts are now *fatal*, as they should be. We no longer mount smackfs if systemd was compiled without Smack support. This makes it easier to make smackfs mount failures a critical error when Smack is enabled. We no longer mount these filesystems with their Smack specific options inside containers. There these filesystems will be mounted with there non-mount smack options for now.
2013-10-09udev: add SECLABEL{selinux}= supportKay Sievers
2013-10-09keymap: Fix Samsung 900X[34]CMartin Pitt
It appears that it's not really the 900 vs. 940 or the X3 vs X4, but the A/B/C/D suffix after that which makes the difference between the keymaps. On a NP900X3C-A04RU you get MODALIAS=dmi:bvn*:bvr*:bd*:svnSAMSUNGELECTRONICSCO.,LTD.:pn900X3C/900X3D/900X4C/900X4D:* So change the matches to use AB vs. CDG as the differentiator. Thanks to Anatoly Markov for reporting and testing!
2013-10-09udev: reset Linux Security Module labels if no custom rules are givenKay Sievers
2013-10-09bus: fix missing initializationLennart Poettering
2013-10-09tests: fix some memory leaks in testsLennart Poettering
2013-10-09journald: fix minor memory leakLennart Poettering
2013-10-09build-sys: add a makefile target to run all tests through valgrindLennart Poettering
2013-10-09build-sys: add sd-bus-vtable.h headerKay Sievers
2013-10-09bus: fix GetAll() userdata passingLennart Poettering
2013-10-09bus: don't require that if a child object node exists its parent node must tooLennart Poettering
2013-10-09bus: fix synthetic error messagesLennart Poettering
2013-10-09libsystemd-bus: add lightweight object vtable implementation for exposing ↵Lennart Poettering
objects on the bus This adds a lightweight scheme how to define interfaces in static fixed arrays which then can be easily registered on a bus connection. This makes it much easier to write bus services. This automatically handles implementation of the Properties, ObjectManager, and Introspection bus interfaces.
2013-10-09core: unify the way we denote serialization attributesLennart Poettering