Commit graph

136 commits

Author SHA1 Message Date
Kjartan Maraas
3c89788fa4 Bug 19502 - Sparse warning cleanups
This patch makes various things that should be static static,
corrects some "return FALSE" where it should be NULL, etc.

Signed-off-by: Colin Walters <walters@verbum.org>
2009-04-21 13:10:10 -04:00
Eamon Walsh
8f5c3e3c25 dbus-launch: use InputOnly X window
Working on SELinux policy for X, and came across this issue in dbus-launch:

Windows created for use as property/selection placeholders should be of
class InputOnly, since no drawing is ever done to them.

Signed-off-by: Eamon Walsh <ewalsh@tycho.nsa.gov>
Signed-off-by: Thiago Macieira <thiago@kde.org>
2009-03-20 09:08:37 +01:00
Colin Walters
4a436c3554 Infrastructure for testing a "system like" bus in test suite
The tmp-session-like-system.conf bus configuration has a security
policy intended to mirror that of the system bus.  This allows
testing policy rules.
2008-12-05 11:30:50 -05:00
Lawrence R. Steeger
14afa0564e Bug 15412: Add --address option to dbus-send
Signed-off-by: Colin Walters <walters@verbum.org>
2008-10-18 14:50:49 -04:00
Tor Lillqvist
e2decdf0f1 [win32] Protect usage of SIGHUP with #ifdef
Signed-off-by: Colin Walters <walters@verbum.org>
2008-09-18 19:40:50 -04:00
Michael Meeks
1859c66351 Print serial in dbus-monitor
* tools/dbus-print-message.c: Print serial too.

Signed-off-by: Colin Walters <walters@verbum.org>
2008-08-29 08:48:45 -04:00
Colin Walters
892c0a0053 Bug 16838: Use bash instead of sh to avoid breaking on Ubuntu 2008-07-24 16:37:25 -04:00
John (J5) Palmieri
eead418b24 take out trailing comma inside an enum so non gcc compilers don't error out
* tools/dbus-monitor.c: take out the trailing comma in the
  ProfileAttributeFlags enum as it isn't in our style guides and causes
  some compilers to error out
2008-04-16 10:49:25 -04:00
John (J5) Palmieri
d7446ac003 Revert "fix dbus-send so it can correctly send dictionaries"
This reverts commit a689ef29f1.

Conflicts:

	ChangeLog

* Turns out I reversed a patch that was alread committed but the bug had not
  been closed.  Since the patch was applied before I also reverted the
  mention of Jérémie in the AUTHORS list mainly for license book keeping
  sanity.
2008-04-04 14:58:07 -04:00
Jérémie Dimino
a689ef29f1 fix dbus-send so it can correctly send dictionaries
* tools/dbus-send.c (append_dict): Send in signature when opening up
  a dict entry container

* AUTHORS: Add Jérémie to AUTHORS file since it was a slightly above
  trivial fix
2008-04-03 11:32:09 -04:00
Colin Walters
0bfc5e8d23 Check for X11 events before selecting (FDO bug #15293) 2008-03-31 18:20:07 -04:00
Colin Walters
193ebb7083 Make sure we call XFlush() on all code paths (FDO bug #15293) 2008-03-31 18:16:00 -04:00
Havoc Pennington
4058579dae Do not provide a signature to dbus_message_iter_open_container() when opening a dict entry.
2008-03-27  Havoc Pennington  <hp@redhat.com>

	* tools/dbus-send.c (append_dict): Do not provide a signature to
	dbus_message_iter_open_container() when opening a dict entry.
2008-03-27 16:52:40 -04:00
John (J5) Palmieri
46b48ac654 tools/dbus-launch.c: wrap X'ism in #ifdef so we can compile without X 2008-03-04 10:03:14 -05:00
John (J5) Palmieri
7d409700c3 fixes dbus-launch so the bus goes away when X does (Red Hat Bug #430412)
* tools/dbus-launch.c (main): set xdisplay = NULL
* Patch by Matthias Clasen <mclasen at redhat.com>
+
2008-02-21 12:02:58 -05:00
Sjoerd Simons
ed47b4502b Allow a normal session bus to be reused by applications using autolaunching
2007-11-23  Sjoerd Simons  <sjoerd@luon.net>

   * tools/dbus-launch.c: let both a normal dbus-launch and an
   autolaunched bus save their parameters in X11 if possible. This makes
   the autolaunch and non-autolaunch behaviour more similar. With the
   exception that on a normal launch there will always be a new session
   bus and not being able to save parameters is not fatal. This also
   enables to launch programs directly with autolaunch (not very usefull
   though).
2007-11-23 11:31:05 +01:00
Simon McVittie
35b00e3ab2 dbus-launch: convert C++-style comment to C-style, add {} for clarity 2007-10-11 10:17:17 +01:00
John (J5) Palmieri
1ca4b10e30 Fix env exports for better portability (#9280) 2007-10-09 15:50:08 -04:00
John (J5) Palmieri
f4ebd3a876 Document syntax for container types in dbus-send man file (#9553)
* Patch from Jack Spaar <jspaar at users.sourceforge.net>
2007-10-09 15:27:53 -04:00
John (J5) Palmieri
7d9d3fc031 fd.o bug #12547 remove superfluous if
* also convert tabs to spaces
2007-10-03 16:43:22 -04:00
Ryan Lortie
d34905d811 migrate from cvs to git (cvs2svn -> git-svnimport).
2007-09-13  Ryan Lortie  <desrt@desrt.ca>

        migrate from cvs to git (cvs2svn -> git-svnimport).

        * HACKING: update release/branch/tag instructions
        * */.cvsignore: rename to .gitignore

        also, clean up tags and branch names to conform to HACKING
2007-09-13 11:13:40 -04:00
Havoc Pennington
163555c7ab 2007-08-17 Havoc Pennington <hp@redhat.com>
* tools/dbus-launch-x11.c (set_address_in_x11): fix from Michael
	Lorenz to use long not int with XChangeProperty format 32

	* dbus/dbus-sysdeps-util-unix.c
	(_dbus_write_pid_to_file_and_pipe): factor this out, and use the
	same code in _dbus_become_daemon (where the parent writes the pid
	file and to the pid pipe) and in bus_context_new (where the daemon
	writes its own pid file and to its own pid pipe)

	* bus/bus.c (bus_context_new): close the pid pipe after we print
	to it. Also, don't write the pid to the pipe twice when we fork,
	someone reported this bug a long time ago.
2007-08-17 16:43:57 +00:00
Havoc Pennington
d012387afe 2007-07-13 Havoc Pennington <hp@redhat.com>
* Add indent-tabs-mode: nil to all file headers.
2007-07-14 02:44:01 +00:00
Ralf Habacker
3410f135ae * dbus/dbus-sysdeps-util-win.c, tools/dbus-launch-win.c: msvc7.1 fixes by Jaroslaw Staniek tested with mingw 2007-06-19 20:12:11 +00:00
Ralf Habacker
081b2cd68e * tools/dbus-launch-win.c: new file, replaces script wrapper on win32 2007-06-01 22:24:57 +00:00
Simon McVittie
6b4bd7d2e9 tools/.cvsignore: Ignore all currently built files.
test/name-test/.cvsignore: New file, ditto.
2007-05-21 16:50:13 +00:00
Havoc Pennington
9362aac398 2007-03-11 Havoc Pennington <hp@redhat.com>
* tools/dbus-launch.c (do_close_stderr): fix C89 problem and
	formatting problem

	* Mostly fix the DBusPipe mess.
	- put line break after function return types
	- put space before parens
	- do not pass structs around by value
	- don't use dbus_strerror after calling supposedly cross-platform
	api
	- don't name pipe variables "fd"
	- abstract special fd numbers like -1 and 1
2007-03-12 22:52:40 +00:00
Ralf Habacker
af4e4dc276 * tools/dbus-print-message.c (print_message): added printing of the reply serial to method returns and errors, so you can actually figure out the message/reply pairs - patch by olli.salli at collabora.co.uk. 2007-03-10 19:52:30 +00:00
Thiago Macieira
4ceb86d29a * dbus/dbus-sysdeps-unix.c: capture the dbus-launch stderr
output and add it to the DBusError message we return.

	* tools/dbus-launch.1:
	* tools/dbus-launch.c: Add option --close-stderr to, well,
	close stderr before starting dbus-daemon.
2007-03-03 10:36:46 +00:00
Ralf Habacker
3a33c8e294 * tools/dbus-monitor.c: gettimeofday() is not available
on windows so we have to provide our own. It's taken from
lgpl'd kdewin32 package. - Patches from Christian Ehrlicher
2006-12-31 12:20:54 +00:00
Ralf Habacker
572ae0a7d4 win32 compile fix 2006-12-31 11:31:12 +00:00
Havoc Pennington
dbc061b812 2006-11-14 Havoc Pennington <hp@redhat.com>
* dbus/dbus-internals.c (_dbus_generate_uuid): The spec said the
	UUID had the timestamp last, but the implementation had it first;
	move it to last since I think it's a tiny bit nicer (easier to
	compare at a glance, faster to sort, less code), and will not
	cause any practical compatibility problems. Also, always convert
	the timestamp to big endian.

	* doc/dbus-specification.xml: Clean up the docs on the UUID.

	* tools/dbus-uuidgen.1: more prominently say it is not suitable
	as a replacement for regular uuidgen/RFC4122.
2006-11-15 01:52:01 +00:00
John (J5) Palmieri
4ff579c92b * tools/dbus-monitor.c: Handle sigint so we flush stdout
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-08 23:10:48 +00:00
John (J5) Palmieri
b6905b75b6 * tools/dbus-monitor.1: update the manpage for dbus-monitor
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-08 23:06:03 +00:00
John (J5) Palmieri
88b1c4061a * tools/dbus-monitor.c: add profiling tools to dbus-monitor
(Patch from Olli Salli <olli dot salli at collabora dot co dot uk>)
2006-11-08 15:49:30 +00:00
John (J5) Palmieri
a157ec7f72 * bus/config-parser.c (service_dirs_find_dir): use
_dbus_list_get_next_link so we don't get stuck in an infinite loop
  (start_busconfig_child): move processing of standard_session_servicedirs
  tags here because they have no content
  (bus_config_parser_content): check we don't have content in
  standard_session_servicedirs tag

* tools/Makefile.am: Make sure the /var/lib/dbus directory is created
  Packagers need to own this directory
2006-11-02 23:56:48 +00:00
John (J5) Palmieri
b7bb0d6a43 * tools/run-with-tmp-session-bus.sh: fixed script to replace the
<standard_session_servicedirs> tag with a <sevicedir> tag that
  points to the test service directory
2006-11-02 19:28:11 +00:00
Havoc Pennington
d3440ebe9d 2006-10-30 Havoc Pennington <hp@redhat.com>
* tools/dbus-launch.1, doc/TODO: capture intent to change the
	command line options of dbus-launch a bit post 1.0
2006-10-30 06:29:58 +00:00
John (J5) Palmieri
82c9cd05cd * configure.in, dbus-1.pc.in: Check to see if thread methods
are in glibc or libpthread and add -lpthread to the link stage
  if it is the latter
2006-10-26 18:06:07 +00:00
Thiago Macieira
01b91ba121 * tools/dbus-launch-x11.c (get_session_file, init_x_atoms):
check if get_machine_uuid() returns NULL before proceeding any
        further: we can't init the X atoms or create a session file
        name if there is no machine ID.
	This solves a crash reported by some users if
        --exit-with-session was used without --autolaunch=<machine-id>
2006-10-26 17:34:49 +00:00
John (J5) Palmieri
a107da8489 * tools/dbus-launch.c (main): run the dbus-daemon in the builddir
if tests are enabled and the DBUS_USE_TEST_BINARY env variable is set

* tools/run-with-tmp-session-bus.sh: set DBUS_USE_TEST_BINARY
  before we run dbus-launch

* configure.in: define TEST_BUS_BINARY to be the full path to
  dbus-daemon in the build root
2006-10-26 15:55:44 +00:00
Sjoerd Simons
36608068cf 2006-10-25 Sjoerd Simons <sjoerd@luon.net>
* dbus/Makefile.am:
   * tools/Makefile.am:
   * toos/dbus-uuidgen.1:
      Move the machine-id file to /var/lib/dbus
2006-10-25 16:42:37 +00:00
Havoc Pennington
89d97b4779 2006-10-17 Havoc Pennington <hp@redhat.com>
* tools/dbus-send.c (main): don't close shared connection, fix
	from Timo Hoenig
2006-10-17 22:31:16 +00:00
John (J5) Palmieri
ff99239bd4 * dbus/dbus-sysdeps.c (_dbus_abort): Remove from
#ifndef DBUS_DISABLE_ASSERTS macro to fix distcheck

* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): Remove from
  #if !defined (DBUS_DISABLE_ASSERT) || defined(DBUS_BUILD_TESTS)
  macro because _dbus_abort calls it

* tools/Makefile.am: Add dbus-launch.h to the source list so distcheck works
2006-10-02 18:45:27 +00:00
Thiago Macieira
c6e066ff82 * tools/dbus-launch.c (main): make it complain and abort
execution in case an unknown option is given. Also, process
	the '--' argument as the end of arguments.
2006-10-01 22:21:30 +00:00
Havoc Pennington
10fe37f582 2006-10-01 Havoc Pennington <hp@redhat.com>
* tools/dbus-launch.c (print_variables): if no syntax is given,
	don't print something that's sort-of-half-sh-syntax, just print
	a plain key-value pairs thing.

	* tools/dbus-launch-x11.c: use machine ID rather than hostname for
	the local machine representation (but still have the hostname in
	the display). Remove the hostname from the display if it is
	localhost. Change session files to be named
	~/.dbus/session-bus/machine-display. Change X atoms to be
	underscore-prefixed so nobody whines about ICCCM compliance.
	Otherwise name them the same as the env variables.
	Change session file format to include key-value pairs and an
	explanatory comment. Keys are the same as the env variables.
	(set_address_in_x11): X property format can't depend on
	sizeof(pid_t) on a particular machine, fix to always be 32 bits

	* tools/dbus-launch.c: make --autolaunch take a machine id
	argument. If --autolaunch is used with a program to run, complain
	for now (but add a FIXME). Also, don't look for existing bus if
	there's a program to run (but add a FIXME).

	* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): pass
	machine uuid to dbus-launch (avoids linking dbus-launch to libdbus
	just to get this, and avoids duplicating uuid-reading code).

	* tools/dbus-launch.1: clarify various things
2006-10-01 20:05:39 +00:00
Havoc Pennington
a2129f7ccc 2006-10-01 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c (_dbus_connection_close_if_only_one_ref):
	Add a hack to make DBusNewConnectionFunction work right.

	* dbus/dbus-server-socket.c (handle_new_client_fd_and_unlock): use
	the hack here. Also, fix the todo about refcount leak.

	* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
	and use the hack here

        * dbus/dbus-connection.c: Kill the "shared" flag vs. the
	"shareable" flag; this was completely broken, since it meant
	dbus_connection_open() returned a connection of unknown
	shared-ness. Now, we always hold a ref on anything opened
	as shareable.

	Move the call to notify dbus-bus.c into
	connection_forget_shared_unlocked, so libdbus consistently forgets
	all its knowledge of a connection at once. This exposed numerous
	places where things were totally broken if we dropped a ref inside
	get_dispatch_status_unlocked where
	connection_forget_shared_unlocked was previously, so move
	connection_forget_shared_unlocked into
	_dbus_connection_update_dispatch_status_and_unlock. Also move the
	exit_on_disconnect here.

	(shared_connections_shutdown): this assumed weak refs to the
	shared connections; since we have strong refs now, the assertion
	was failing and stuff was left in the hash. Fix it to close
	still-open shared connections.

	* bus/dispatch.c: fixup to use dbus_connection_open_private on the
	debug pipe connections

	* dbus/dbus-connection.c (dbus_connection_dispatch): only notify
	dbus-bus.c if the closed connection is in fact shared
	(_dbus_connection_close_possibly_shared): rename from
	_dbus_connection_close_internal
	(dbus_connection_close, dbus_connection_open,
	dbus_connection_open_private): Improve docs to explain the deal
	with when you should close or unref or both

	* dbus/dbus-bus.c
	(_dbus_bus_notify_shared_connection_disconnected_unlocked): rename
	from _dbus_bus_check_connection_and_unref_unlocked and modify to
	loop over all connections

	* test/test-utils.c (test_connection_shutdown): don't try to close
	shared connections.

	* test/name-test/test-threads-init.c (main): fix warnings in here

	* dbus/dbus-sysdeps.c (_dbus_abort): support DBUS_BLOCK_ON_ABORT
	env variable to cause blocking waiting for gdb; drop
	DBUS_PRINT_BACKTRACE and just call _dbus_print_backtrace()
	unconditionally.

	* configure.in: add -export-dynamic to libtool flags if assertions enabled
	so _dbus_print_backtrace works.

	* dbus/dbus-sysdeps-unix.c (_dbus_print_backtrace): use fprintf
	instead of _dbus_verbose to print the backtrace, and diagnose lack
	of -rdynamic/-export-dynamic
2006-10-01 15:36:19 +00:00
Havoc Pennington
d8155bf51b 2006-09-30 Havoc Pennington <hp@redhat.com>
* configure.in (LT_CURRENT, LT_AGE): increment current and age to
	reflect addition of interfaces.

	* doc/dbus-specification.xml: describe a new
	org.freedesktop.DBus.Peer.GetMachineId method

	* dbus/dbus-string.c (_dbus_string_skip_white_reverse): new function
	(_dbus_string_skip_white, _dbus_string_skip_blank): use new
	DBUS_IS_ASCII_BLANK, DBUS_IS_ASCII_WHITE macros and fix assertion
	at end of skip_white
	(_dbus_string_chop_white): new function

	* bus/connection.c (bus_connections_setup_connection): call
	dbus_connection_set_route_peer_messages.

	* dbus/dbus-connection.c
	(_dbus_connection_peer_filter_unlocked_no_update): modify to
	support a GetMachineId method.

	Also, support a new flag to let the bus pass peer methods through
	to apps on the bus, which can be set with
	dbus_connection_set_route_peer_messages.

	Finally, handle and return an error for anything unknown on the
	Peer interface, which will allow us to extend the Peer interface
	in the future without fear that we're now intercepting something
	apps were wanting to see.

	* tools/dbus-uuidgen.c: a thin wrapper around the functions in
	dbus/dbus-uuidgen.c

	* dbus/dbus-uuidgen.c: implement the bulk of the dbus-uuidgen
	binary here, since most of the code is already in libdbus

	* dbus/dbus-sysdeps.c (_dbus_read_local_machine_uuid): read the
	uuid from the system config file

	* dbus/dbus-internals.c (_dbus_generate_uuid, _dbus_uuid_encode)
	(_dbus_read_uuid_file_without_creating)
	(_dbus_create_uuid_file_exclusively, _dbus_read_uuid_file): new
	uuid-related functions, partly factored out from dbus-server.c

	* dbus/dbus-sysdeps.c (_dbus_error_from_errno): convert EEXIST to
	DBUS_ERROR_FILE_EXISTS instead of EEXIST

	* dbus/dbus-protocol.h (DBUS_ERROR_FILE_EXISTS): add file exists error

	* tools/dbus-cleanup-sockets.1: explain what the point of this
	thing is a bit more

	* autogen.sh (run_configure): add --config-cache to default
	configure args

	* dbus/dbus-internals.h (_DBUS_ASSERT_ERROR_IS_SET): disable the
	error set/clear assertions when DBUS_DISABLE_CHECKS is defined

	* tools/dbus-launch.c (main): if xdisplay hasn't been opened,
	don't try to save address, fixes crash in make check
2006-10-01 03:18:47 +00:00
Thiago Macieira
f6fa010403 * configure.in: add DBUS_BINDIR as a #define to C source code.
* tools/dbus-launch.c
	* tools/dbus-launch.h
	* tools/dbus-launch-x11.c:
	* tools/dbus-launch.1: Add the --autolaunch option to
	dbus-launch, which makes it scan for an existing session
	started with --autolaunch. With that option, it also creates
	an X11 window and saves the bus address and PID to it.

	* dbus/dbus-sysdeps.h:
	* dbus/dbus-sysdeps-unix.c (_dbus_get_autolaunch_address): Add
	a function that runs "dbus-launch --autolaunch" to retrieve
	the running D-Bus session address (or start one if none was running)

	* dbus/dbus-transport.c: Add the handler for the "autolaunch:"
        address protocol, which tries to get the running session from
        dbus-launch.

	* dbus/dbus-bus.c:
	* dbus/dbus-internals.h: Make "autolaunch:" be the default
	D-Bus session bus address.

	* dbus/dbus-connection.c: Fix horrible typo in error message.
2006-09-30 19:38:34 +00:00
John (J5) Palmieri
5f292c611f * tools/Makefile.am: use @EXPANDED_DATADIR@ instead of @DATADIRNAME@ 2006-09-18 17:17:41 +00:00