summaryrefslogtreecommitdiff
path: root/src/libsystemd-bus/bus-message.c
AgeCommit message (Collapse)Author
2013-10-29bus: add extra validity checksLennart Poettering
2013-10-29bus: add new sd_bus_message_verify_type() and sd_bus_message_copy() API callsLennart Poettering
2013-10-22bus: only if the user tries to read over the end of an array we should ↵Lennart Poettering
handle this as EOF
2013-10-22bus: avoid 'bool' storage when retrieving 'b' from the messageKay Sievers
Just use an unsigned int as a bool type to avoid issues in the public message reading API; sizeof(bool) == 1, but the code copies 4 bytes at the pointers destination.
2013-10-18bus: if we hit the end of an array container return 0 as EOF indicator when ↵Lennart Poettering
reading it
2013-10-16timedated: use libsystemd-bus instead of libdbus for bus communicationLennart Poettering
Among other things this also adds a few things necessary for the change: - Considerably more powerful error returning APIs in libsystemd-bus - Adapter for connecting an sd_bus to an sd_event - As I reworked the PolicyKit logic to the new library I also made it asynchronous, so that PolicyKit requests of one user cannot block out another user anymore. - We always use the macro names for common bus error. That way it is harder to mistype them since the compiler will notice
2013-10-13bus: make sure we don't try to malloc 0 bytesZbigniew Jędrzejewski-Szmek
2013-10-13bus: fix access to unitialized variable in error pathZbigniew Jędrzejewski-Szmek
src/machine/machined-dbus.c:237:13: warning: Branch condition evaluates to a garbage value if (m) ^
2013-10-11bus: add sd_bus_message_append_strv() to easily add a NULL terminated string ↵Lennart Poettering
array to a message
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-06-04bus: unmap memfd retrieved from the memfd cacheKay Sievers
2013-06-04bus-benchmark: add performance data output modeKay Sievers
- for now, comment out munmap() check to enable memfd passing - print tab-separated values and header - add memcpy() to fill the memfd, to produce real-world results $ ./test-bus-kernel-benchmark SIZE COPY MEMFD 4194304 370 370 2097152 810 810 1048576 2130 2130 524288 4090 4090 262144 7080 7080 131072 11380 11380 65536 17140 17140 98304 13930 13930 114688 12890 12890 122880 12350 12350 126976 12150 12150 129024 12170 12170 130048 12040 12040 130560 12080 12080 130816 12010 12010 130944 12020 12020 131008 12040 12040 131040 12050 12050 131056 12010 12010 131064 12060 12060 131068 12040 12040 131070 11310 11310 131069 11420 11420 Copying/memfd are equally fast at 131068 bytes $ ./test-bus-kernel-benchmark chart SIZE COPY MEMFD 1 35570 23690 2 36470 23680 4 36160 23520 8 36600 22220 16 33900 20830 32 33990 21360 64 33480 21280 128 34050 20910 256 32950 21750 512 34730 21900 1024 33810 22890 2048 36280 23110 4096 30790 21610 8192 29380 21100 16384 26880 19820 32768 22510 17980 65536 17270 15180 131072 11400 11420 262144 7140 8270 524288 4090 5050 1048576 2110 2780 2097152 800 1140 4194304 350 580
2013-05-30bus: update for kdbus changesKay Sievers
2013-05-29bus: properly unmap mapped areaLennart Poettering
2013-05-22bus: add benchmark tool to determine the right threshold for copying vs. memfdLennart Poettering
2013-05-17bus: keep kernel bus fd around during entire life-time of busLennart Poettering
We need this since we might need to invoke the release ioctl for messages. Since we don't want to add any locking for that we simply keep a reference to the bus and then rely that the fd stays valid all the time.
2013-05-16bus: synthesize timeout message errors instead of returning error codesLennart Poettering
2013-05-16bus: implement sd_bus_message_append_string_memfd()Lennart Poettering
2013-05-16bus: send memfds as payload only on directed messages and for large partsLennart Poettering
2013-05-16bus: implement receiving side of memfd hookupLennart Poettering
2013-05-16bus: put together messages with memfd payload correctlyLennart Poettering
2013-05-15bus: add support for adding memfds into message payloadLennart Poettering
2013-05-15bus: rework message struct to keep header with fields in same malloc() blockLennart Poettering
This allows us to guarantee that the first payload_vec we pass to the kernel for each message is guaranteed to include the full header and all its field.
2013-05-15bus: add macro for iterating through body parts of a messageLennart Poettering
2013-05-15bus: minor fixesLennart Poettering
2013-05-15bus: seal off memfds when sealing messagesLennart Poettering
2013-05-14bus: fix allocation of body parts from memfdLennart Poettering
2013-05-14bus: properly handle message bodies that are a chain of memory areas rather ↵Lennart Poettering
than a single one
2013-05-10bus: catch up with latest kdbusLennart Poettering
2013-05-10bus: add sd_bus_message_append_string_space() for zero-copy string appendingLennart Poettering
2013-05-09bus: add API for appending/reading fixed arraysLennart Poettering
2013-04-23bus: parse capability kdbus meta data of messagesLennart Poettering
2013-04-22bus: parse audit metadata from kdbus messagesLennart Poettering
2013-04-22bus: parse owner uid from cgroup path, tooLennart Poettering
2013-04-16bus: parse unit/user unit/session from cgroup pathLennart Poettering
2013-04-15kdbus: parse cgroup meta data, tooLennart Poettering
2013-04-14bus: fix counting of argN= matchesLennart Poettering
2013-04-14kdbus: also parse cmdline message attributeLennart Poettering
2013-04-13kdbus: parse even more kernel meta data fieldsLennart Poettering
2013-04-12bus: parse and expose kdbus message timestampsLennart Poettering
2013-04-12bus: also parse PID starttime out of kdbus messageLennart Poettering
2013-04-12bus: parse uid/gid/pid/tid meta data from kdbus messagesLennart Poettering
2013-04-11bus: basic implementation of kdbus client sideLennart Poettering
2013-04-11bus: calculate iovec for messages only when we need itLennart Poettering
2013-04-11macro: make sure ALIGN() can be calculated constant by the compilerLennart Poettering
If we pass a constant value to ALIGN() gcc should have the chance to calculate the value during compilation rather than runtime, so let's avoid a static inline call if we can.
2013-04-10bus: when we unmarshal an fd it should stay owned by the message objectLennart Poettering
If the user wants the fd to stay valid he should keep a reference to the message object or duplicate the fd. This unifies behaviour of demarshalling data fields and unix fds.
2013-04-09bus: also remove recursive invocation of message_append_ap()Lennart Poettering
2013-04-09bus: implement message_read_ap() non-recursivelyLennart Poettering
As it turns out if you pass a va_list to a function its state becomes undefined after that function returns, and this actually does break on x86-32. Hence, let's reimplement message_read_ap() without the use of recursion. Instead we now build our own stack of types in an array so that we can decode the entire parameter list in a single stackframe.
2013-04-05bus: when parsing signature strings, accept NULL as empty signatureLennart Poettering