Commit graph

173 commits

Author SHA1 Message Date
Lennart Poettering c78196699d bus: calculate bloom filter for match
Yay! Filtering using kernel bloom filter matches works now! Yippieh!
2013-05-20 10:13:38 +02:00
Kay Sievers 16af1d3922 bus: do not pass a pointer but a uint64_t address in RECV 2013-05-17 23:26:28 +02:00
Lennart Poettering 264ad849a4 bus: add APIs for negotiating what is attached to messages 2013-05-17 04:26:27 +02:00
Lennart Poettering 45fbe937d7 bus: add minimal locking around the memfd cache
We want to allow clients to process an sd_bus_message on a different
thread than it was received on. Since unreffing a bus message might
readd some of its memfds to the memfd cache add some minimal locking
around the cache.
2013-05-17 04:26:27 +02:00
Lennart Poettering d5a2b9a6f4 bus: return ECHILD as soon as people try to reuse a bus connection across a fork() 2013-05-17 04:26:27 +02:00
Lennart Poettering 63edf05ed9 bus: actually unmap kdbus pool after use 2013-05-17 04:26:27 +02:00
Lennart Poettering f54514f354 bus: keep kernel bus fd around during entire life-time of bus
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-17 04:26:27 +02:00
Lennart Poettering e4ee6e5cc3 bus: make bus ref counting atomic
This is preparation to allow sd_bus_message obejcts to be processed in a
different thread from their originating sd_bus object.
2013-05-16 21:58:34 +02:00
Lennart Poettering eb01ba5de1 bus: synthesize timeout message errors instead of returning error codes 2013-05-16 21:14:56 +02:00
Lennart Poettering 5cbe749238 bus: implement sd_bus_message_append_string_memfd() 2013-05-16 16:53:03 +02:00
Lennart Poettering 66b26c5c9b bus: send memfds as payload only on directed messages and for large parts 2013-05-16 16:26:35 +02:00
Lennart Poettering 1307c3ff9a bus: implement receiving side of memfd hookup 2013-05-16 02:37:42 +02:00
Lennart Poettering a392d36195 bus: put together messages with memfd payload correctly 2013-05-16 02:04:13 +02:00
Lennart Poettering 453a0c2946 bus: add support for adding memfds into message payload 2013-05-15 19:45:45 +02:00
Lennart Poettering c91cb83c4d bus: rework message struct to keep header with fields in same malloc() block
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-15 02:56:45 +02:00
Lennart Poettering 9b29bb6853 bus: add macro for iterating through body parts of a message 2013-05-15 01:43:15 +02:00
Lennart Poettering 13c299d3a8 bus: minor fixes 2013-05-15 01:36:09 +02:00
Lennart Poettering 47e6ce32bb bus: seal off memfds when sealing messages 2013-05-15 00:46:24 +02:00
Lennart Poettering 9b05bc4866 bus: fix allocation of body parts from memfd 2013-05-14 22:52:58 +02:00
Lennart Poettering bc7fd8cdbe bus: properly handle message bodies that are a chain of memory areas rather than a single one 2013-05-14 22:28:45 +02:00
Kay Sievers a3dc35472f bus: add and use UINT64_TO_PTR() 2013-05-14 16:13:52 +02:00
Kay Sievers 9976dcb2f6 bus: test-bus-memfd - use pread()/pwrite() 2013-05-13 15:12:25 +02:00
Kay Sievers c8150fa751 bus: update test-bus-memfd 2013-05-13 05:56:31 +02:00
Kay Sievers 18cd014f13 bus: remove KDBUS_MAKE_ACCESS_WORLD, remove (n_payload > 2) check
KDBUS_MAKE_ACCESS_WORLD is no longer needed, the kernel creates the
kdbus device node with the uid/gid of the caller now.
2013-05-12 20:17:47 +02:00
Kay Sievers 8573e652d9 bus: update test-bus-memfd 2013-05-11 14:48:24 +02:00
Kay Sievers 13019ef5ea bus: fix test-bus-memfd 2013-05-10 19:58:05 +02:00
Lennart Poettering 0d1b9a9647 bus: fix error check in memfd code 2013-05-10 19:15:55 +02:00
Lennart Poettering a7c54c8c1f bus: extend memfd test 2013-05-10 17:34:14 +02:00
Lennart Poettering ddeb424198 bus: add new API for kdbus memfd functionality 2013-05-10 14:37:05 +02:00
Kay Sievers 72455f9bf0 kdbus: update kdbus.h from upstream 2013-05-10 04:55:43 +02:00
Lennart Poettering fd8d62d940 bus: catch up with latest kdbus 2013-05-10 03:38:11 +02:00
Lennart Poettering f8e013f8bf bus: add sd_bus_message_append_string_space() for zero-copy string appending 2013-05-10 03:38:11 +02:00
Lennart Poettering b3af9646f8 bus: add API for appending/reading fixed arrays 2013-05-09 20:01:21 +02:00
Ville Skyttä d2bbca6855 Spelling fixes 2013-05-03 22:45:09 -04:00
Kay Sievers febfd50829 kdbus: update kdbus.h from upstream 2013-05-02 19:02:01 +02:00
Kay Sievers 799e7ea858 kdbus: update kdbus.h from upstream 2013-05-02 17:57:49 +02:00
Kay Sievers 27eda16e98 kdbus: update kdbus.h from upstream 2013-04-30 19:15:35 +02:00
Zbigniew Jędrzejewski-Szmek e0a974b471 bus: avoid gcc warning about casting a pointer to int of different size 2013-04-25 21:50:48 -04:00
Kay Sievers 60b6991a4d kdbus: update kdbus.h from upstream 2013-04-25 02:18:32 +02:00
Lennart Poettering 1f8497905d bus: add monitoring facility to busctl 2013-04-24 19:02:12 -03:00
Zbigniew Jędrzejewski-Szmek ef42202ac8 Add set_consume which always takes ownership
Freeing in error path is the common pattern with set_put().
2013-04-24 00:25:04 -04:00
Kay Sievers 2e3ffafcab kdbus: update kdbus.h from upstream 2013-04-24 05:20:20 +02:00
Lennart Poettering 7066618570 bus: add cal to determine machine id of an owner of a service 2013-04-23 16:00:32 -03:00
Lennart Poettering 102ea8e4f2 bus: parse capability kdbus meta data of messages 2013-04-23 00:14:30 -03:00
Lennart Poettering 120f919e70 bus: parse audit metadata from kdbus messages 2013-04-22 23:38:38 -03:00
Lennart Poettering bc7f3beb30 bus: parse owner uid from cgroup path, too 2013-04-22 23:27:38 -03:00
Lennart Poettering 9097fe299f bus: implement client logic for fd passing 2013-04-21 22:24:50 -03:00
Kay Sievers b030d1f864 bus: test - add hack to receive messages 2013-04-18 19:05:10 +02:00
Kay Sievers a2cef833cf bus: catch up with kernel changes 2013-04-18 18:54:17 +02:00
Lennart Poettering c556fe792d bus: replace aligned_alloc() with memalign() everywhere
aligned_alloc() is C11 and not available everywhere. Also it would
require us to align the size value. So let's just invoke memalign()
instead, which is universally available and doesn't have any alignment
restrictions on the size parameter.
2013-04-17 18:48:31 +02:00