summaryrefslogtreecommitdiff
path: root/src/libsystemd/sd-bus
AgeCommit message (Collapse)Author
2014-10-31Make bus errno mappings non-staticZbigniew Jędrzejewski-Szmek
__attribute__((used)) is not enough to force static variables to be carried over to a compiled program from a library. Mappings defined in libsystemd-shared.a were not visible in the compiled binaries. To ensure that the mappings are present in the final binary, the tables are made non-static and are given a real unique name by which they can be referenced. To use a mapping defined not in the local compilation unit (e.g. in a library) a reference to the mapping table is added. This is done by including a declaration in the header file. Expected values in test-engine are fixed to reflect the new mappings.
2014-10-31bus: do not segfault on zeros in errno mapping tableZbigniew Jędrzejewski-Szmek
Depending on the link order, holes might appear in the body of the sd_bus_errnomap section. Ignore them. Adds a simple test to print the table to help with debugging such issues in the future.
2014-10-31sd-bus: add missing includeTom Gundersen
2014-10-30bus: add sd_bus_errnomap sectionZbigniew Jędrzejewski-Szmek
This allows custom "name" ↔ errno mappings to be registered. Tables from all compilation units are concatenated.
2014-10-30memfd: rename memfd.h to memfd-util.h to avoid any confusion with any libc ↵Lennart Poettering
provided headers
2014-10-30memfd: always use our internal utility functions where we have themLennart Poettering
2014-10-30memfd: always create our memfds with CLOEXEC setLennart Poettering
We really shouldn't create fds ever that have the flag unset.
2014-10-30busctl: add new "capture" verb to record bus messages in libpcap compatible ↵Lennart Poettering
files, for dissection with wireshark
2014-10-29sd-bus: properly handle removals of non-existing matchesLennart Poettering
2014-10-28polkit: actually generate new InteractiveAuthorizationRequired error on the ↵Lennart Poettering
right occasions
2014-10-28sd-bus: add support for new InteractiveAuthorizationRequired error from dbus ↵Lennart Poettering
spec
2014-10-27sd-bus: sync kdbus.h (ABI break)Daniel Mack
Some comment fixes and header cleanups in kdbus.h, and the task capability meta information has been factored out to its own struct.
2014-10-27sd-bus: explicitly cast asprintf() return value away we are not interested inLennart Poettering
Let's give coverity a hint what's going on here.
2014-10-27Revert "sd-bus: check return value of asprintf()"Lennart Poettering
This reverts commit b1543c4c93855b61b40118e9f14a0423dac2e078. We check b->address anyway, no need to check the return value, especially given that the other #ifdef branch don't get the same treatment.
2014-10-24sd-bus: if we don't manage to properly allocate the error message for an ↵Lennart Poettering
sd_bus_error, just go on sd_bus_error_setfv() must initialize the sd_bus_error value to some sensible value and then return a good errno code matching that. If it cannot work at all it should set the error statically to the OOM error. But if it can work half-way (i.e. initialize the name, but not the message) it should do so and still return the correct errno number for it. This effectively reverts 8bf13eb1e02b9977ae1cd331ae5dc7305a305a09
2014-10-23sd-bus: make sd_bus::reply_callbacks a OrderedHashmapMichal Schmidt
The way process_closing() picks the first entry from reply_callbacks and works with it makes it likely that it cares about the order.
2014-10-22machine: validate machine names using machine_name_is_valid() instead of ↵Lennart Poettering
string_is_safe() After all, we know have this as generic validator, so let's be correct and use it wherver applicable.
2014-10-22sd-bus: fix transition left-overs in sd_bus_get_owner_creds()Daniel Mack
sd_bus_get_owner_creds() was only halfly ported over to _cleanup_bus_creds_unref_.
2014-10-22sd-bus: implement sd_bus_get_owner_creds() for kdbusDaniel Mack
kdbus learned a new ioctl to tell userspace about a bus creator's credentials, which is what we need to implement sd_bus_get_owner_creds() for kdbus. Move the function from sd-bus.c to bus-control.c to be able to reuse the bus_populate_creds_from_items() helper.
2014-10-22sd-bus: rename sd_bus_get_owner_uid(), sd_bus_get_owner_machine_id() and ↵Daniel Mack
sd_bus_get_peer_creds() Clean up the function namespace by renaming the following: sd_bus_get_owner_uid() → sd_bus_get_name_creds_uid() sd_bus_get_owner_machine_id() → sd_bus_get_name_machine_id() sd_bus_get_peer_creds() → sd_bus_get_owner_creds()
2014-10-22sd-bus: factor out creds item iteratorDaniel Mack
We will re-use the code to walk items in order to populate a creds object, so let's factor it out first.
2014-10-22sd-bus: sync kdbus.hDaniel Mack
kdbus learned a new command to query a bus creator's credentials. Sync kdbus.h first, which also renames some struct to more generic terms. That is, however, not an ABI break this time.
2014-10-22sd-bus: assert clock_gettime()'s return valueDaniel Mack
Don't handle clock_gettime() errors gracefully but use assert_se().
2014-10-21sd-bus: sync kdbus.h (API change: switch to absolute timeouts)Daniel Mack
kdbus_msg.timeout_ns now takes an absolute value, based on CLOCK_MONOTONIC, in order to eventually support automatically restarted syscalls. Signed-off-by: Daniel Mack <daniel@zonque.org>
2014-10-21sd-bus: sync kdbus.h (ABI break)Daniel Mack
In kdbus.h, the following details changed: * All commands gained a 'kernel_flags' field to report the flags supported by the driver. Before, this was done in the 'flags' field in a bidirectional way, which turned out to be a problem for the code in sd-bus, as many parts of it reuse the same ioctl struct more than once and consider them to be owned by userspace. * Name listings are now returned by a new struct instead of reusing struct kdbus_cmd_name for that matter. This way, we don't add more unneeded fields to it and make the API cleaner. * 'conn_flags' was renamed to 'flags' in struct kdbus_cmd_hello to make the API a bit more unified.
2014-10-20kdbus: free returned buffer when the memory is no longer neededLukasz Skalski
2014-10-20sd-bus: sync kdbus.h (ABI break)Daniel Mack
kdbus.h now has KDBUS_ATTACH_COMM split into KDBUS_ATTACH_TID_COMM and KDBUS_ATTACH_PID_COMM. The items were split already, so the change in systemd is easy.
2014-10-18sd-bus: sync kdbus.h (ABI break)Daniel Mack
In kdbus.h, the 'features' field has been dropped again. Instead of negotiating features that way, we decided to make the kernel return the set of supported flags in each ioctl struct's .flags field, in both the success and error cases.
2014-10-17Revert "sd-bus: sync kdbus.h (ABI break)"Kay Sievers
This reverts commit 1a2409e262da65a4b0ca8ab18fcf5eabd2d404ca. Support from the kdbus interface was removed. We require memfds to be supported by all clients.
2014-10-14sd-bus: sync kdbus.h (ABI break)Daniel Mack
kdbus learned KDBUS_HELLO_ACCEPT_MEMFD as new connection negotiation flag. Set it by default in systemd for now.
2014-10-13bus: check allow-interactive-auhtorization flag when doing polkitLennart Poettering
2014-10-13sd-bus: add support for new allow-interactive-authorization message header flagLennart Poettering
2014-10-12tests: fix some tests to pass in kojiZbigniew Jędrzejewski-Szmek
FAIL: test-engine ================= Cannot find cgroup mount point: No such file or directory Assertion 'r >= 0' failed at ../src/test/test-engine.c:46, function main(). Aborting. FAIL: test-sched-prio ===================== Cannot find cgroup mount point: No such file or directory Assertion 'r >= 0' failed at ../src/test/test-sched-prio.c:42, function main(). Aborting. FAIL: test-bus-cleanup ====================== Assertion 'sd_bus_open_system(&bus) >= 0' failed at ../src/libsystemd/sd-bus/test-bus-cleanup.c:40, function test_bus_open(). Aborting. after new: refcount 1
2014-10-10kdbus: fix buffer overflow in bus_get_owner_kdbus() functionLukasz Skalski
Commit 710fc9779b7c (kdbus repo) introduced attaching items[] instead of name[] in kdbus_cmd_conn_info struct. Commit 581fe6c81 (systemd repo) caught up with this change, but item size was not properly calculated.
2014-10-09sd-bus: check return value of asprintf()Daniel Mack
Check for OOM conditions of asprintf() in bus_set_address_user().
2014-10-08sd-bus: sync kdbus.h (ABI break)Daniel Mack
Sync kdbus.h once again. Two thing have changed: a) KDBUS_CMD_EP_* was renamed to KDBUS_CMD_ENDPOINT_* b) struct kdbus_cmd_hello and struct kdbus_cmd_make gained a 'features' bitfield (which is currently unused)
2014-10-07sd-bus: check return value of vasprintfDaniel Mack
Check for OOM situations when vasprintf() returns < 0 in bus_error_setfv(). Spotted by coverity.
2014-10-07sd-bus: fix KDBUS_CMD_FREE userDaniel Mack
Fix a user of the KDBUS_CMD_FREE ioctl that was missed in the transition.
2014-10-07sd-bus: fix use-after-free in close_kdbus_msg()Daniel Mack
Walk the items first, then free the memory of the message. Also, while at it, make coverity happy with an explicit (void) prefix. We intentionally ignore the return value here.
2014-10-07sd-bus: remove unused variableThomas Hindoe Paaboel Andersen
It is no longer used after d663f1b1a92a778bcdc68f29b8c08cb49431b4f7
2014-10-06sd-bus: sync kdbus.h (ABI break)Daniel Mack
The KDBUS_CMD_FREE ioctl now uses a struct rather than a direct pointer to the offset to free. The KDBUS_CMD_MSG_CANCEL ioctl has also changes, but there's no user of it yet in systemd.
2014-10-05bus: add assert to check that we're not freeing a static structureZbigniew Jędrzejewski-Szmek
CID #996315.
2014-10-03sd-bus: split out cleanup into separate functionZbigniew Jędrzejewski-Szmek
m is always non-null at this point. This function is too long anyway.
2014-10-02kdbus: don't clobber return values, use strjoin() instead of asprintf(), ↵Lennart Poettering
keep function invocations and variable declarations separate
2014-10-02kdbus: make sure we never invoke free() on an uninitialized pointer on OOMLennart Poettering
2014-10-02sd-bus: sync kdbus.h (ABI break!)Daniel Mack
struct kdbus_cmd_match got a flags field, which systemd currently makes no use of.
2014-10-02sd-bus: sync kdbus.h (ABI break)Daniel Mack
struct kdbus_cmd_conn_info takes a list of items now instead of a string. Fix the only user in SD of that ioctl.
2014-10-02sd-bus: use terms from the D-Bus Specification a bit moreSimon McVittie
D-Bus' type hierarchy as described in the spec is: \- basic \- fixed type (u, i, etc.) \- string-like type (s, o, g) \- container Someone seems to have referred to basic types as "simple types" at some point, but that term isn't defined in the D-Bus Specification, and seems redundant. So far I haven't renamed functions that use "trivial" in their names to mean "fixed type", to avoid confusion about whether a struct of constant length, like (iu), is a fixed type. The answer is that it is fixed-length, but is not a "fixed type", so I can see that something like bus_type_is_fixed() might be ambiguous.
2014-10-02PORTING-DBUS1: we use :1.%llu not :0.%llu for D-Bus unique bus namesSimon McVittie
2014-09-29bus: use 2M as maximum message size in benchmarkDavid Herrmann
The kdbus limit is 2M and we removed the bus-owner override. Therefore, use at most 2M as message size.