Commit graph

667 commits

Author SHA1 Message Date
Alban Crequy
5670dc6cf7 config parser: add own_prefix
https://bugs.freedesktop.org/show_bug.cgi?id=46882
2012-03-04 14:36:56 +00:00
Simon McVittie
725cbb2a0f Move _dbus_check_fdleaks_enter to dbus-message-internal.h
This means the bus test can use them without needing
dbus-message-private.h, reducing its view of message internals.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=46095
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Guillaume Desmottes <guillaume.desmottes@collabora.co.uk>
2012-02-21 14:51:21 +00:00
Simon McVittie
05cc2c3348 Replace a series of booleans, all (apparently) alike, with flags
This makes it a bit clearer what's going on.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Lennart Poettering <lennart@poettering.net>
2012-02-13 17:39:16 +00:00
Simon McVittie
21c8094040 Merge branch 'system-search-paths-21620'
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=21620
Reviewed-by: Lennart Poettering <lennart@poettering.net>
2012-02-10 10:10:38 +00:00
Lennart Poettering
a8423067ce bus: introduce --nopidfile switch to disable writing of PID files
When used with init systems such as systemd (where PID files are
redundant) this allows us to disable PID files even if a path is
configured for them in the normal bus configuration files.

Make use of this new switch in the systemd unit file.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=45520
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2012-02-10 10:07:24 +00:00
Simon McVittie
fccb5a0fe1 Explicitly don't search XDG_DATA_DIRS for system services, and document it
In practice, it never works, because the activation helper doesn't
respect environment variables for security reasons.
If you want to vary the search path, alter system.conf instead, to
replace or augment <standard_system_servicedirs/> with your preferred
search path.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=21620
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2012-02-08 16:11:35 +00:00
Lennart Poettering
5a548fbf64 systemd: drop machine UUID generation for unit file
To optimize startup a bit, drop machine UUID generation from the unit
file. Since a while D-Bus was already capable of making use of the
/etc/machine-id file, which is guaranteed to exist on systemd systems
(since the first released versions already), hence there's no need to
ever generate a D-Bus specific machine ID.

In times where userspace takes < 800ms to boot up getting rid of this
process optimizes boot time further.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=45520
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2012-02-07 16:40:36 +00:00
Simon McVittie
88498b706a Merge branch 'socket-set-33337'
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33337
2012-02-07 15:04:25 +00:00
Simon McVittie
6175893100 Merge branch 'dbus-1.4', rejecting commit 08dd53c14b 2012-01-23 10:33:35 +00:00
Simon McVittie
08dd53c14b Revert addition of files which were only meant to exist on master, too
This completes the reversion started in 5df8c3db12.
2012-01-23 10:27:32 +00:00
Simon McVittie
26b57efe43 dbus-daemon: fix forgotten counter increase while copying configured auth mechanisms
Previously, only one auth mechanism was used.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=45106
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2012-01-23 10:20:48 +00:00
Simon McVittie
f56a55af1a Revert "made session service dirs customizable: cmake part"
This reverts commit 89e453216c.
It makes the tests fail under autotools.
2012-01-04 18:20:15 +00:00
Simon McVittie
4f404b5603 Revert "made session service dirs customizable: autotools part"
This reverts commit 61760cf7de.
2012-01-04 18:19:58 +00:00
Simon McVittie
5df8c3db12 Revert all changes since a36d4918a6
Someone seems to have merged part of master into 1.4. Again. Let's go
back to the "last known good" point (the branch-point of some 1.4
branches I had locally), then we can cherry-pick the changes that
should have gone in.
2012-01-04 17:44:23 +00:00
Ralf Habacker
61760cf7de made session service dirs customizable: autotools part 2011-11-21 12:21:10 +01:00
Ralf Habacker
89e453216c made session service dirs customizable: cmake part 2011-11-21 12:21:01 +01:00
Simon McVittie
e9f0378bbf Merge tests' cmake and autotools bus configuration
In Unix, the tests listened on both debug-pipe (which is a socketpair,
or a TCP emulation of socketpair on Windows) and a Unix socket.

In the Windows port, the tests were hard-coded to listen on a particular
port, which allowed the dispatch test to connect to that port, as long
as no two tests ran simultaneously (which I don't think was ever guaranteed -
make -j can violate this). That's valid out-of-process, and also
fully-specified, so they only needed one <listen> directive, so the
CMake input only had one.

To make the tests work under CMake on Unix, there was a hack: the string
substituted for the content of the <listen> directive contained
</listen><listen> to get the other address in, which is pretty nasty.

Instead of doing that, I've made both build systems, on both Unix and
Windows, use both debug-pipe and a more normal transport (Unix or TCP).
debug-pipe has a Windows implementation and it's used in
dbus-spawn-win.c, so it'd better work. The use of debug-pipe is now
hard-coded rather than being a configure parameter (there's no reason
to vary it in different builds), and I used TEST_LISTEN as the name of the
Unix/TCP address, because it's a "vague" address (no specific Unix path, no
TCP port), that you can listen on but not connect to.

This in turn means that we can merge the Autoconf .in and CMake .cmake
files, similar to Bug #41033.

You might wonder why I've kept debug-pipe. I did try to get rid of it, but
it turns out that the tests in dispatch.c rely on
dbus_connection_open_private() not blocking, and normal socket
connections block on connect(). Until we fix that by adding an async
version of dbus_connection_open_private(), it won't be safe to have a
test like dispatch.c that "talks to itself", unless it uses a transport
as trivial as debug-pipe in which neither end has to block on the other.

Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Ralf Habacker <ralf.habacker@freenet.de>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41222
2011-09-28 19:00:56 +01:00
Simon McVittie
b3b9fc03da Merge branch 'more-unused-39231'
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39231
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:45:13 +01:00
Simon McVittie
44f2531016 Merge branch 'remove-stub-tests-41012'
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=41012
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:44:38 +01:00
Simon McVittie
bf3d8259ac Merge branch 'dbus-1.4'
Conflicts:
	NEWS
2011-09-21 11:39:32 +01:00
Simon McVittie
423ab7cdd0 update_desktop_file_entry: initialize return value properly, and actually return it
Since 1.4.4 (commit 75cfd97f) this function always returned FALSE. As far
as I can see this was actually harmless, because both of its callers
ignore any error that is not NoMemory (and treat it the same as success).

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39230
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:34:31 +01:00
Simon McVittie
c38e9823da update_desktop_file_entry: if the service name already existed, set error
If we're going to return FALSE for this (which has apparently always
been the case), then we should set an error properly.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39230
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:34:07 +01:00
Simon McVittie
9e93d82862 update_desktop_file_entry: don't leak file_path on one particular OOM
Revenge of #33126: most, but not all, temporary variables were freed on
this code path.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39230
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-09-21 11:33:38 +01:00
Simon McVittie
c0aff8f86a bus_policy_test: remove stub 2011-09-19 15:05:39 +01:00
Simon McVittie
86b0ba0278 Use {}, not semicolon, when the statement of an "if" does nothing
The uses in bus/activation.c are also probably wrong because they ignore
the result of the test, but that's orthogonal.
(<https://bugs.freedesktop.org/show_bug.cgi?id=39858>)
2011-09-19 13:50:38 +01:00
Simon McVittie
d1756a7e4c Fix an assortment of variables that aren't used when not checking/asserting 2011-09-19 13:50:38 +01:00
Simon McVittie
2c1ad79c0c BusConnections: don't assert about BusConnectionData in functions that don't need it 2011-09-19 13:50:38 +01:00
Simon McVittie
420c6840a3 bus_driver_handle_message: remove unused label 2011-09-19 13:50:38 +01:00
Simon McVittie
0d9a7a0f97 activation helper: remove unused variable when not being verbose 2011-09-19 13:50:38 +01:00
Simon McVittie
eaa1f25746 bus_registry_acquire_service: remove unnecessary variable 2011-09-19 13:50:38 +01:00
Simon McVittie
e91bbcbcb4 Remove a never-used callback 2011-09-19 13:50:37 +01:00
Simon McVittie
bf2a1b169f Remove more never-used variables 2011-09-19 13:50:37 +01:00
Simon McVittie
775f77c719 Merge branch 'dbus-1.4' 2011-08-26 15:07:41 +01:00
Simon McVittie
2f183ac576 Don't build any of the reload-pipe code on non-Unix
In commit ab7b3f9, Ralf notes that handle_reload_watch() is (in principle)
cross-platform. However, there's no way to trigger it on Windows, because
nothing ever writes to the pipe. Make the entire pipe-to-self trick
Unix-specific instead.

Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=40002
2011-08-26 15:02:30 +01:00
Ralf Habacker
4a3e5b0af4 Fix compilation on MSVC, which doesn't understand "inline" with its C99 meaning.
This fix is limited to msvc compilers only.

Reviewed-by:Simon McVittie <simon.mcvittie@collabora.co.uk>
2011-08-13 22:08:26 +02:00
Steve Grubb
70fb675a10 capng: Drop supplemental groups when switching to daemon user
This patch ensures the daemon process doesn't inherit any supplemental
groups for the root user from an administrator login via an init
script.

This is only an issue for pre-systemd systems.

https://bugzilla.redhat.com/show_bug.cgi?id=726953
2011-08-11 10:54:45 +01:00
Ralf Habacker
b0b5f9b134 Win32 compile fix.
msvc compilers define 'inline' only for c++ code, so wrap it
with a platform independent DBUS_INLINE define in cmake
generated config.h.
2011-08-05 23:01:10 +02:00
Ralf Habacker
ab7b3f92bf Win32 compile fix.
Do not limit ACTION_RELOAD to unix only because it is used in the
crossplattform function handle_reload_watch().
2011-08-05 22:37:06 +02:00
Simon McVittie
a1c90cacfa Merge branch 'dbus-1.4'
Conflicts:
	bus/main.c
2011-08-05 14:52:37 +01:00
Simon McVittie
ba2892396a bus signal_handler: call _exit in the unlikely event that the pipe is full or invalid
On OSs with abstract sockets, this is close enough. On OSs without
abstract sockets, this results in failing to clean up Unix sockets
in /tmp if someone has sent us thousands of SIGHUP signals since we
last entered the main loop - I think that's acceptable.

The reload pipe should never get closed, but if it is for some reason,
we want a SIGTERM after that to cause an exit too.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38656
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 14:39:34 +01:00
Simon McVittie
05389054bd bus signal_handler: comment why it's OK if the reload pipe gets full
Backported to dbus-1.4, originally part of commit c7ef3ead55.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33336
Reviewed-by: Thiago Macieira <thiago@kde.org>
2011-08-05 14:39:27 +01:00
Simon McVittie
e90e7e9e71 bus signal_handler: don't pretend to be portable away from Unix
Signals are POSIX but not ISO C, so guard it with DBUS_UNIX.

dbus-sysdeps-util-win doesn't actually implement _dbus_set_signal_handler
anyway, so not compiling this code on non-Unix seems more honest.

Backported to dbus-1.4, originally part of commit c7ef3ead55.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=33336
Reviewed-by: Thiago Macieira <thiago@kde.org>
2011-08-05 14:39:24 +01:00
Simon McVittie
3cf9fa4dc7 Conditionalize inclusion of unistd.h
Windows doesn't have it, for instance.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38656
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 14:39:04 +01:00
Brian Cameron
94e7a1df3e Handle SIGTERM again, to avoid leaving /tmp/dbus-XXX sockets on Solaris
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=38656
Reviewed-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
2011-08-05 14:38:55 +01:00
Simon McVittie
222b7d9f97 config-parser: don't try to get CommonProgramFiles from the environment on Unix
It's unused on Unix, and gcc warns.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39231
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 12:27:04 +01:00
Simon McVittie
b4e01ab099 activation-helper: remove unused variable from the real build
It's only used in the test build.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39231
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 12:27:01 +01:00
Simon McVittie
b03841dbc4 activation-helper: check_permissions: in the test build, don't have unused variables
In the real build they're used to check permissions.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39231
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 12:26:57 +01:00
Simon McVittie
0c4a2087c6 Remove various never-used variables
Bug: https://bugs.freedesktop.org/show_bug.cgi?id=39231
Reviewed-by: Will Thompson <will.thompson@collabora.co.uk>
2011-08-05 12:26:51 +01:00
Steve Grubb
03ab0104ab capng: Drop supplemental groups when switching to daemon user
This patch ensures the daemon process doesn't inherit any supplemental
groups for the root user from an administrator login via an init
script.

This is only an issue for pre-systemd systems.

https://bugzilla.redhat.com/show_bug.cgi?id=726953
2011-08-01 14:28:27 -04:00
Simon McVittie
e5b9bc3a6b bus: use AM_CPPFLAGS to simplify preprocessor invocation
Everything in this directory is statically linked to libdbus-internal,
so we can make -DDBUS_STATIC_BUILD global. Also, merge INCLUDES into
AM_CPPFLAGS (it's an older name for the same functionality).
2011-07-29 11:17:22 +01:00