Kay Sievers
dbb642afae
bus: let magic ":no-sender" pass the validation
2013-11-09 00:58:11 +01:00
Lennart Poettering
7a4a210539
bus: allow queuing more local msgs
...
When issuing a synchronous "systemctl daemon-reload" requests this will
send out a tonload of UnitRemoved+UnitNew signals, that we will queue
locally. When we wait for the message reply, we should be able to queue
those, hence bump the limits on locally queuing messages.
2013-11-08 18:23:47 +01:00
Lennart Poettering
affff0b6f2
bus: add sd_bus_get_current() bus call to determine message that is currently being dispatched
2013-11-05 20:51:49 +01:00
Lennart Poettering
a7893c6b28
bus: add API call to create bus connection to the system bus of local containers
...
Also, add support for this to machinectl, so that we can enumerate the
machines that run inside a container. We must go deeper!
2013-10-30 15:37:02 +01:00
Lennart Poettering
0f8bd8debb
bus: move ssh support into public API of libsystem-bus
2013-10-30 15:35:49 +01:00
Lennart Poettering
abc5fe7250
bus: automatically flush bus queue when we exit the event loop
...
This way, we do not have to call it manually
2013-10-18 01:43:55 +02:00
Lennart Poettering
40ca29a137
timedated: use libsystemd-bus instead of libdbus for bus communication
...
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-16 06:15:02 +02:00
Lennart Poettering
8ce2afd634
bus: make sure that we always keep a ref to the bus when we dispatch callbacks
...
Otherwise the callback might unref the bus we are processing and destroy
the object while we are processing it.
2013-10-14 19:53:56 +02:00
Lennart Poettering
92e189e572
bus: unify code to find parents of an object path with
2013-10-11 23:20:54 +02:00
Lennart Poettering
29ddb38fea
libsystemd-bus: add lightweight object vtable implementation for exposing 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-09 02:40:07 +02:00
Lennart Poettering
8f155917bf
bus: add benchmark tool to determine the right threshold for copying vs. memfd
2013-05-22 16:04:39 +02:00
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
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
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
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
Lennart Poettering
fd8d62d940
bus: catch up with latest kdbus
2013-05-10 03:38:11 +02:00
Lennart Poettering
a56f19c4f9
kdbus: generare bloom filters properly for messages we send
2013-04-14 17:49:18 +02:00
Lennart Poettering
5b7d4c1c16
kdbus: update to newest kdbus API
2013-04-13 20:12:37 +02:00
Lennart Poettering
6629161f82
bus: basic implementation of kdbus client side
2013-04-11 23:10:41 +02:00
Lennart Poettering
7286037fd4
bus: properly detect and handle if a callback is installed/removed from within a callback
2013-04-05 03:55:58 +02:00
Lennart Poettering
6807947e56
bus: don't allow recursive invocation of sd_bus_process()
2013-04-05 03:15:10 +02:00
Lennart Poettering
15d5af8145
bus: fall back to readv/writev if recvmsg/sendmsg don't work
2013-04-01 03:29:29 +02:00
Lennart Poettering
e82c950997
bus: allow two different fds for input/output in sd_bus_set_fd()
...
This is useful so that we can speak D-Bus over a FIFO pair such as
stdin+stdout.
2013-04-01 03:29:29 +02:00
Lennart Poettering
98178d3947
bus: rename sd_bus_get_peer() to sd_bus_get_server_id()
...
This function always returns the server side ID. The name suggested it
was actually always the peer's ID, but that's not correct if the call is
called on a server bus context. Hence, let's correct the name a bit.
2013-03-31 16:46:21 +02:00
Lennart Poettering
52f3ba915b
bus: s/sd_message_handler_t/sd_bus_message_handler_t/g
2013-03-31 16:26:14 +02:00
Lennart Poettering
392d5b378c
bus: parse matches locally and allow registration of callbacks for them
...
This includes code to parse and split up match strings which will also
be useful to calculate bloom filter masks when the time comes.
2013-03-31 16:16:37 +02:00
Lennart Poettering
2181a7f558
bus: implement server mode, and anonymous authentication
2013-03-30 15:21:55 +01:00
Lennart Poettering
9d37386224
bus: consider it an error if the first message we get on the bus is not a reply to HELLO
2013-03-30 15:21:54 +01:00
Lennart Poettering
94bbf1ba6d
bus: rename send_hello flag to bus_cient
...
This way we can hide more than just the hello logic behind this flag,
for example, later on automatic match management.
2013-03-26 02:19:34 +01:00
Lennart Poettering
a7e3212d89
bus: split socket related code into bus-socket.[ch], to prepare for kdbus backend
2013-03-25 03:43:19 +01:00
Lennart Poettering
2fd9ae2e9b
bus: implement 'unixexec:' protocol
2013-03-25 02:33:35 +01:00
Lennart Poettering
021a1e78d7
bus: make optional whether unix socket passing is negotiated and whether hello is sent
...
This alos gets rid of explicit sd_open_fd() and sd_open_address()
constructors in favour of sd_new() + sd_new_start() where the
negotiation parameters may be set it in between.
2013-03-25 02:33:35 +01:00
Lennart Poettering
2c93b4efec
bus: implement support for FD passing
2013-03-25 02:33:34 +01:00
Lennart Poettering
a652755d2e
bus: implement object handler registry
2013-03-22 15:46:49 +01:00
Lennart Poettering
2571ead1a6
bus: implicitly collect ucred/label information
2013-03-22 03:37:10 +01:00
Lennart Poettering
20902f3ec8
bus: also finish connection before returning from sd_bus_get_unique_name()
2013-03-22 03:37:10 +01:00
Lennart Poettering
ed205a6bc5
bus: when parsing enforce maximum container depth
2013-03-22 02:32:34 +01:00
Lennart Poettering
6693860fab
bus: validate the entire header more closely
2013-03-22 01:15:20 +01:00
Lennart Poettering
ac89bf1d53
bus: properly validate object path values
2013-03-22 00:42:53 +01:00
Lennart Poettering
b9bf7e2be9
bus: implicitly handle peer commands Ping() and GetMachineId()
2013-03-22 00:12:37 +01:00
Lennart Poettering
2522023999
bus: enforce limits on all client influenced data objects
2013-03-22 00:12:37 +01:00
Lennart Poettering
e3017af973
bus: implement full method call timeout logic
2013-03-21 22:53:29 +01:00
Lennart Poettering
89ffcd2ad5
bus: hook up client with socket communication
2013-03-20 23:00:10 +01:00
Lennart Poettering
de1c301ed1
bus: add basic implementation of a native bus client library
2013-03-20 23:00:09 +01:00