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