1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-14 15:21:37 +03:00
Commit Graph

186 Commits

Author SHA1 Message Date
Lennart Poettering
6a010ac9e5 bus-proxy: drop priviliges if we can
Either become uid/gid of the client we have been forked for, or become
the "systemd-bus-proxy" user if the client was root. We retain
CAP_IPC_OWNER so that we can tell kdbus we are actually our own client.
2014-06-04 11:13:08 +02:00
Lennart Poettering
19befb2d5f sd-bus: introduce sd_bus_slot objects encapsulating callbacks or vtables attached to a bus connection
This makes callback behaviour more like sd-event or sd-resolve, and
creates proper object for unregistering callbacks.

Taking the refernce to the slot is optional. If not taken life time of
the slot will be bound to the underlying bus object (or in the case of
an async call until the reply has been recieved).
2014-05-15 01:15:30 +02:00
Kay Sievers
dc780ecf10 bus-proxyd: handle org.freedesktob.DBus calls natively 2014-04-22 19:15:35 +02:00
Thomas Hindoe Paaboel Andersen
b8ec9ba918 bus-proxy: remove unused variable 2014-04-14 21:02:25 +02:00
Lennart Poettering
2f1a3d0868 bus-proxy: when replying to bus calls set a synthetic serial number and patch the sender address
Otherwise old libdbus1 is confused and will not accept our replies.
2014-04-13 19:43:00 -07:00
Lennart Poettering
2a0abe5b6d bus: process AddMatch/RemoveMatch driver call in proxy
Previously, AddMatch/RemoveMatch calls where processed exclusively in
the proxy. That's racy however, since subscribing to a signal might not
complete before the signal is sent due to some subsequent method call.
Hence, in order to expose the same ordering guarantees as dbus1 process
the AddMatch/RemoveMatch calls from the proxy, so that they are
dispatched synchronously to all following messages, thus fixing the
race.

Ultimately, we should probabably dissolve the driver entirely into the
proxy, as it is purely a compatibility feature anyway...
2014-04-13 18:34:55 -07:00
Zbigniew Jędrzejewski-Szmek
bdd13f6be4 Remove dead lines in various places
As pointed-out by clang -Wunreachable-code.

No behaviour changes.
2014-02-24 19:24:14 -05:00
Lennart Poettering
151b9b9662 api: in constructor function calls, always put the returned object pointer first (or second)
Previously the returned object of constructor functions where sometimes
returned as last, sometimes as first and sometimes as second parameter.
Let's clean this up a bit. Here are the new rules:

1. The object the new object is derived from is put first, if there is any

2. The object we are creating will be returned in the next arguments

3. This is followed by any additional arguments

Rationale:

For functions that operate on an object we always put that object first.
Constructors should probably not be too different in this regard. Also,
if the additional parameters might want to use varargs which suggests to
put them last.

Note that this new scheme only applies to constructor functions, not to
all other functions. We do give a lot of freedom for those.

Note that this commit only changes the order of the new functions we
added, for old ones we accept the wrong order and leave it like that.
2014-02-20 00:03:10 +01:00
Greg KH
29804cc1e0 use memzero(foo, length); for all memset(foo, 0, length); calls
In trying to track down a stupid linker bug, I noticed a bunch of
memset() calls that should be using memzero() to make it more "obvious"
that the options are correct (i.e. 0 is not the length, but the data to
set).  So fix up all current calls to memset(foo, 0, length) to
memzero(foo, length).
2014-01-31 11:55:01 +01:00
Lennart Poettering
7b217f41d2 bus: when proxying messages from the bus driver patch the driver's well-known name into the sender 2014-01-29 21:26:57 +01:00
Lennart Poettering
373f14222e bus: fake security labels again
(The kernel module got fixed, so let's reenable this again)
2014-01-29 13:42:06 +01:00
Lennart Poettering
aa575ef8de bus: temporarily disable faking of seclabels, as this is broken in kdbus right now 2014-01-22 19:39:10 +01:00
Lennart Poettering
44b0ed0586 bus: set debug name of proxy bus connections 2014-01-22 19:08:22 +01:00
Tom Gundersen
920e2957be bus-proxyd: add some more debugging
Make sure we print a message when exiting with an error.
2014-01-12 15:37:20 +01:00
Lennart Poettering
441d56a12a bus: properly handle EOF error conditions in proxyd
EOF is not an error so we should not print an error message about it.
2014-01-12 10:56:40 +08:00
Zbigniew Jędrzejewski-Szmek
ccd06097c7 Use format patterns for usec_t, pid_t, nsec_t, usec_t
It is nicer to predefine patterns using configure time check instead of
using casts everywhere.

Since we do not need to use any flags, include "%" in the format instead
of excluding it like PRI* macros.
2014-01-02 19:45:47 -05:00
Zbigniew Jędrzejewski-Szmek
ab9001a1e3 Move bus path definitions to def.h 2014-01-02 19:45:47 -05:00
Lennart Poettering
c2595875c6 bus: add a temporary hard-coded policy to proxyd to make gdm work
gdm relies on the policy to deny its own requests to not deadlock. Given
that we currently do not enforce any policy in the dbus1 compat proxy
service this means that gdm will necessarily deadlock on our systems.

To work around this, enforce a fixed policy teomporarily, until we
interpret the legacy XML policy in full.

Booh, gdm, booh, for requring this and making me waste two days on
tracking this brokenness down.
2013-12-26 17:16:56 +01:00
Lennart Poettering
758bf0c755 bus: don't process Peer interface messages in the proxy 2013-12-26 03:08:52 +01:00
Lennart Poettering
4cdf07519a bus: be a bit more verbose when debug mode is on 2013-12-25 02:41:09 +01:00
Lennart Poettering
9f6445e34a log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings 2013-12-24 16:39:37 +01:00
Lennart Poettering
eff0527098 util: unify SO_PEERCRED/SO_PEERSEC invocations
Introduce new call getpeercred() which internally just uses SO_PEERCRED
but checks if the returned data is actually useful due to namespace
quirks.
2013-12-24 15:53:04 +01:00
Lennart Poettering
8a0e0ed9dd bus: fake client side creds in the proxy to the caller's creds 2013-12-24 15:27:59 +01:00
Kay Sievers
94a6ce5b7c bus-proxyd: init cleanup variable 2013-12-23 19:16:49 +01:00
Lennart Poettering
a7639e37af bus-proxyd: synthesize NameAcquire/NameLost signals for socket clients 2013-12-23 04:20:55 +01:00
Kay Sievers
f72a3e5bad Revert "bus-proxyd: use a loop instead of c&p"
This reverts commit 9818fa6d6d.

The proxy does not work anymore with this patch.
2013-12-22 16:41:24 +01:00
Zbigniew Jędrzejewski-Szmek
2dc38ed00f man: add systemd-dbus-proxy@.service(8) and systemd-dbus.proxy(8) 2013-12-21 18:34:40 -05:00
Zbigniew Jędrzejewski-Szmek
9818fa6d6d bus-proxyd: use a loop instead of c&p 2013-12-21 18:34:40 -05:00
Zbigniew Jędrzejewski-Szmek
cc4e8b6f70 bus-proxyd: show address nicely in --help 2013-12-21 18:26:47 -05:00
Lennart Poettering
b2bb3469fd bus: poll() on the right fds in proxyd 2013-12-21 17:54:29 +01:00
Lennart Poettering
0721804f03 bus: send status message from proxyd to systemd about client we are working for 2013-12-21 05:15:09 +01:00
Lennart Poettering
0358b3f95d bus: properly react to Disconnected messages in bus-proxyd 2013-12-21 04:03:12 +01:00
Lennart Poettering
ba7689164c bus: change bus-proxyd command line parsing to be more similar to other tools 2013-12-21 03:59:07 +01:00
Lennart Poettering
7c9a6f9063 bus: install systemd-bus-proxyd unit files for compatibility with dbus1 2013-12-13 20:49:57 +01:00
David Strauss
683fc3a448 bus-proxyd: Fix CLI help. --bus-path is also usable as -p. 2013-11-30 16:55:30 +10:00
Kay Sievers
f252ff1742 rename stdio-bridge to bus-proxyd 2013-11-29 22:12:59 +01:00