Commit graph

1525 commits

Author SHA1 Message Date
John (J5) Palmieri
831a0d71c4 add inotify support (FDO Bz#13268)
2008-01-14  John (J5) Palmieri  <johnp@redhat.com>

	* patch by Frederic Crozat <fcrozat at mandriva dot com> (FDO Bz#
	13268)

	* add inotify support

	* bus/Makefile.am: add inotify module to the build

	* bus/dir-watch-inotify.c: inotify module based off the dnotify and
	kqueue modules

	* configure.in: add checks and switch for inotify
	also add a printout at the end of configure if inotify and kqueue
	support is being built in (dnotify already had this)
2008-01-14 19:00:36 -05:00
John (J5) Palmieri
cbf5d0b6fa watch for file creates in dnotify
2008-01-14  John (J5) Palmieri  <johnp@redhat.com>

	* patch by Frederic Crozat <fcrozat at mandriva dot com>

	* bus/dir-watch-dnotify.c (bus_watch_directory): watch for file
	creates also
2008-01-14 18:17:53 -05:00
John (J5) Palmieri
c8e29a910b return message loader buffer in case of OOM (FDO Bug#12666)
2008-01-14  John (J5) Palmieri  <johnp@redhat.com>

	* patch by Kimmo Hämäläinen <kimmo dot hamalainen at nokia dot com>

	* dbus/dbus-transport-socket.c(do_reading): return message
	loader buffer in case of OOM (FDO Bug#12666)
2008-01-14 18:09:14 -05:00
John (J5) Palmieri
93e8a272d7 add warning to output when libxml is selected
2008-01-14  John (J5) Palmieri  <johnp@redhat.com>

	* configure.in: add warning to output when libxml is selected since
	we don't have a libxml maintainer and expat works perfectly fine
	for what we need an xml parser for
2008-01-14 15:53:13 -05:00
John (J5) Palmieri
ede4e45146 add _dbus_geteuid to fix EXTERNAL authentication in setuid applications
2008-01-14  John (J5) Palmieri  <johnp@redhat.com>

	* Patch by Andrea Luzzardi  <scox at sig11 dot org>: creates a
	_dbus_geteuid function to fix EXTERNAL authentication in setuid
	applications

	*  dbus/dbus-sysdeps-unix.c (_dbus_geteuid): used to get the effective
	uid of the running program
	(_dbus_credentials_add_from_current_process): use geteuid instead of
	getuid
	(_dbus_append_user_from_current_process): use geteuid instead of
	getuid

	* dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user): use
	geteuid instead of getuid
	(_dbus_unix_user_is_at_console): use geteuid instead of getuid

	* dbus/dbus-sysdeps-win.c (_dbus_geteuid): add a windows equivilant
	that returns DBUS_UID_UNSET
2008-01-14 15:07:48 -05:00
Havoc Pennington
047ec880e9 fix some curly braces that were on the wrong line
2007-12-18  Havoc Pennington  <hp@redhat.com>

	* dbus/dbus-connection.c (_dbus_connection_block_pending_call):
	fix location of curly braces
2007-12-18 15:20:17 -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
Havoc Pennington
bef4260ad5 Fix a problem where a nul byte was wrongly introduced into UUIDs, due to _dbus_string_copy_to_buffer weird behavior.
2007-10-31  Havoc Pennington  <hp@redhat.com>

	* bus/selinux.c (log_audit_callback): rewrite to use
	_dbus_string_copy_to_buffer_with_nul()

	* dbus/dbus-string.c (_dbus_string_copy_to_buffer): change to NOT
	nul-terminate the buffer; fail an assertion if there is not enough
	space in the target buffer. This fixes two bugs where
	copy_to_buffer was used to copy the binary bytes in a UUID, where
	nul termination did not make sense. Bug reported by David Castelow.
	(_dbus_string_copy_to_buffer_with_nul): new function that always
	nul-terminates the buffer, and fails an assertion if there is not
	enough space in the buffer.
2007-10-31 13:58:28 -04:00
Havoc Pennington
5340b8de0b audit_init() was not declared in header, causing warnings; fix this and namespace it
2007-10-23  Havoc Pennington  <hp@redhat.com>

	* bus/bus.c (bus_context_new): use the new name here

	* bus/selinux.c (bus_selinux_audit_init): rename from audit_init()
	to avoid possible libc conflict, and declare it in .h file to
	avoid a warning
2007-10-23 14:48:52 -04:00
Havoc Pennington
a8e32b6874 add HAVE_SELINUX around call to audit_init() so things build without selinux
2007-10-19  Havoc Pennington  <hp@redhat.com>

	* bus/bus.c (bus_context_new): put audit_init() in HAVE_SELINUX
2007-10-19 17:20:06 -04:00
Havoc Pennington
53f6713976 do not call audit_init() from bus/ directory from files in dbus/
2007-10-19  Havoc Pennington  <hp@redhat.com>

	* bus/bus.c (bus_context_new): put the audit_init() in here
	instead, which I believe ends up being the same as where it was
	before, though I'm not sure I understand why it goes here.

	* dbus/dbus-sysdeps-util-unix.c (_dbus_change_to_daemon_user):
	remove audit_init() from here, this file can't depend on code in
	bus/ directory
2007-10-19 15:05:27 -04:00
Simon McVittie
71a357de56 configure.in: *Actually* fix detection of i486 atomic ops.
My previous attempt at a fix would always enable them due to wrong quoting.
Patch from Colin Walters <walters@verbum.org>
2007-10-16 10:13:15 +01:00
Simon McVittie
23bcdd7394 Amend ChangeLog - DBUS_ERROR_INIT is now used within libdbus as well as provided 2007-10-11 17:29:40 +01:00
Simon McVittie
e54d56b7b2 Merge branch 'inline' 2007-10-11 17:24:18 +01:00
Simon McVittie
d229e579a3 Merge branch 'atomic'
Conflicts:

	ChangeLog
2007-10-11 17:24:16 +01:00
Simon McVittie
48ad73fd5b Add J5's recent changes to ChangeLog 2007-10-11 10:56:12 +01:00
Simon McVittie
ecc4a25ed2 Update ChangeLog 2007-10-11 10:38:01 +01:00
Simon McVittie
902beb7c2c Enable Autoconf's AC_C_INLINE to avoid compilation failure with gcc -ansi.
If inline isn't recognised (e.g. on a strict C90 compiler, like gcc -ansi) this
defines it to __inline__, __inline or nothing, whichever works. This is safe,
because we never use inline except in combination with static.
2007-10-11 10:27:28 +01:00
Simon McVittie
559de12aac Update ChangeLog 2007-10-11 10:20:09 +01:00
Simon McVittie
5fcdebe595 As per Havoc's review, rename DBUS_GNUC_EXTENSION to _DBUS_GNUC_EXTENSION.
Also update ChangeLog.
2007-10-11 10:11:21 +01:00
Simon McVittie
176738f0f0 Fix detection of i486 atomic ops.
Previously, the attempts to determine support at compile-time on Darwin were
causing the i486 atomic ops to be used on *all* i386 or x86-64 GCC builds
(AH_VERBATIM can't be conditionalized like we were trying to).
2007-10-11 09:57:48 +01:00
Simon McVittie
8cff9309bf Update ChangeLog 2007-10-10 17:39:12 +01:00
Simon McVittie
1a5ef4003d Improve description of allowed variant signatures (#10185)
Patch based on one from Kristoffer Lundén, amended as per Havoc's comment.
2007-10-09 14:23:28 +01:00
Simon McVittie
fafd784424 doc/dbus-specification.xml: Clarify description of DBUS_COOKIE_SHA1 (#10184).
Patch from Kristoffer Lundén.
2007-10-09 14:12:31 +01:00
Simon McVittie
bf7c65f521 doc/dbus-specification.xml: Specifically forbid empty structs (#7969) 2007-10-09 14:06:35 +01:00
Ryan Lortie
f6ec4a80ab Add argument path matching support. Bug #11066.
2007-09-20  Ryan Lortie  <desrt@desrt.ca>

        * dbus/signals.c (struct DBusMatchRule, bus_match_rule_new,
        bus_match_rule_set_arg, bus_match_rule_parse_arg_match,
        match_rule_matches): Add support for parsing and matching on
        arg0path='/some/path' type rules.

        * dbus/signals.h (bus_match_rule_set_arg): change to take const
        DBusString instead of const char * for the string to match against.

        * dbus/dbus-bus.c: add a quick note to dbus_bus_add_match
        documentation about the path matching.

        * doc/dbus-specification.xml: add a more detailed description of the
        changes here.
2007-09-20 13:04:38 -04:00
Ryan Lortie
8c6b0ab3f7 Add support for compacting DBusStrings to release wasted memory.
2007-09-19  Ryan Lortie  <desrt@desrt.ca>

        * dbus/dbus-string.[ch] (compact, _dbus_string_compact,
        _dbus_string_lock): new compact function to free up allocated memory
        that is no longer used.

        * dbus/dbus-message.c (load_message): call _dbus_string_compact on the
        message loader buffer.

        * dbus/dbus-transport-socket.c (do_reading, do_writing): call
        _dbus_string_compact on the incoming/outgoing "encoded" buffers.

        * dbus/dbus-string-util.c (_dbus_string_test): add a few tests for
        string compacting.
2007-09-20 00:13:35 -04:00
Ryan Lortie
44ed90c10d HACKING: add more explicit git branch/tag instructions 2007-09-13 12:42:32 -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
d4e511a724 2007-08-17 William Jon McCann <mccann@jhu.edu>
* update-dbus-docs.sh: upload DTD to server
2007-08-17 18:51:41 +00: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
d9f2438806 2007-08-03 Havoc Pennington <hp@redhat.com>
* configure.in: add major/minor/micro version number AC_SUBST

	* dbus/dbus-arch-deps.h.in (DBUS_MAJOR_VERSION,
	DBUS_MINOR_VERSION, DBUS_MICRO_VERSION, DBUS_VERSION_STRING,
	DBUS_VERSION): collection of macros to get version of library we
	are compiled against.

	* dbus/dbus-misc.c (dbus_get_version): new function, to get
	version of library we are linked against at runtime.
2007-08-03 19:05:29 +00:00
Havoc Pennington
ae4a158696 2007-07-30 Havoc Pennington <hp@redhat.com>
* bus/activation-helper.c (check_bus_name): don't use
	_dbus_check_valid_bus_name() which is only around with
	--enable-checks, instead use _dbus_validate_bus_name().
	Bug #11766 from Diego <diego@pemas.net>
2007-07-30 16:16:47 +00:00
Havoc Pennington
2fafaf20ac 2007-07-27 Havoc Pennington <hp@redhat.com>
* configure.in: post-release version bump
2007-07-27 21:01:22 +00:00
Havoc Pennington
5882fcb12c 2007-07-27 Havoc Pennington <hp@redhat.com>
* release 1.1.2
2007-07-27 20:59:42 +00:00
Havoc Pennington
bdbab12123 2007-07-26 Havoc Pennington <hp@redhat.com>
* bus/config-parser-trivial.c (check_return_values): disable a
	test that hardcoded the bus user's name

	* bus/dispatch.c (bus_dispatch_test_conf): remove the "if
	(!use_launcher)" around the tests, they were only failing because
	we didn't pass through all the expected errors from the helper.

	* bus/activation-exit-codes.h
	(BUS_SPAWN_EXIT_CODE_CHILD_SIGNALED): add a code for child segfaulting
	(BUS_SPAWN_EXIT_CODE_GENERIC_FAILURE): make "1" be a generic
	failure code, so if a third party launch helper were written it
	could just always return 1 on failure.
2007-07-26 23:01:14 +00:00
Daniel P. Berrange
ee71e1ff60 Switch over to using getaddrinfo for TCP clients & servers to enable IPv6 2007-07-25 02:46:52 +00:00
Havoc Pennington
79d3004e26 2007-07-24 Havoc Pennington <hp@redhat.com>
* configure.in: add AM_PROG_CC_C_O to allow per-target CPPFLAGS

	* bus/dispatch.c (bus_dispatch_test_conf): Fix up setting
	TEST_LAUNCH_HELPER_CONFIG to include the full path, and enable
	test shell_fail_service_auto_start when use_launcher==TRUE

	* bus/activation-helper-bin.c (convert_error_to_exit_code): pass
	through the INVALID_ARGS error so the test suite works

	* bus/activation.c (handle_activation_exit_error): return
	DBUS_ERROR_NO_MEMORY if we get BUS_SPAWN_EXIT_CODE_NO_MEMORY

	* dbus/dbus-spawn.c (_dbus_babysitter_get_child_exit_status):
	return only the exit code of the child, not the entire thingy from
	waitpid(), and make the return value indicate whether the child
	exited normally (with a status code)

	* bus/bus.c (process_config_first_time_only): _dbus_strdup works
	on NULL so no need to check
	(process_config_every_time): move servicehelper init here, so we
	reload it on HUP or config file change

	* bus/Makefile.am (install-data-hook): remove comment because
	Emacs make mode seems to be grumpy about it
2007-07-24 22:11:00 +00:00
Richard Hughes
0b5478e49e 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/Makefile.am:
* bus/test-system.c: (die), (check_memleaks), (test_pre_hook),
(test_post_hook), (main):
Add back the test-system.c file - not sure now this got ignored in the
diff. I blame git.
2007-07-24 13:03:31 +00:00
Richard Hughes
a27883418a 2007-07-24 Richard Hughes <richard@hughsie.com>
* configure.in:
Use ustar to generate the tarball; this fixes the make distcheck
problem when the data files do not fit in the archive:
tar: dbus-1.1.2/test/data/valid-service-files/org.freedesktop.DBus.
TestSuiteShellEchoServiceFail.service.in: file name is too
long (max 99); not dumped

We have to have the 'long' names as the service helper matches by
filename rather than by the name in the service file.
2007-07-24 12:55:32 +00:00
Richard Hughes
5cfa0506c2 2007-07-24 Richard Hughes <richard@hughsie.com>
* configure.in:
* test/Makefile.am:
* test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
uiteNoExec.service.in:
* test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
uiteNoService.service.in:
* test/data/invalid-service-files-system/org.freedesktop.DBus.TestS
uiteNoUser.service.in:
* test/data/valid-config-files-system/debug-allow-all-fail.conf.in:
* test/data/valid-config-files-system/debug-allow-all-pass.conf.in:
* test/data/valid-config-files/debug-allow-all-sha1.conf.in:
* test/data/valid-config-files/debug-allow-all.conf.in:
* test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
teEchoService.service.in:
* test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
teSegfaultService.service.in:
* test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
teShellEchoServiceFail.service.in:
* test/data/valid-service-files-system/org.freedesktop.DBus.TestSui
teShellEchoServiceSuccess.service.in:
* test/data/valid-service-files/debug-echo.service.in:
* test/data/valid-service-files/debug-segfault.service.in:
* test/data/valid-service-files/debug-shell-echo-fail.service.in:
* test/data/valid-service-files/debug-shell-echo-success.service.in:
* test/data/valid-service-files/org.freedesktop.DBus.TestSuiteEchoS
ervice.service.in:
* test/data/valid-service-files/org.freedesktop.DBus.TestSuiteSegfa
ultService.service.in:
* test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
EchoServiceFail.service.in:
* test/data/valid-service-files/org.freedesktop.DBus.TestSuiteShell
EchoServiceSuccess.service.in:
Add the data files needed by the system activation unit checks.
2007-07-24 12:48:45 +00:00
Richard Hughes
c9a0a93733 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/dispatch.c: (check_segfault_service_no_auto_start),
(check_launch_service_file_missing),
(check_launch_service_user_missing),
(check_launch_service_exec_missing),
(check_launch_service_service_missing), (bus_dispatch_test_conf),
(bus_dispatch_test_conf_fail), (bus_dispatch_test):
Add unit tests for system activation. Most are copied from the
session activation tests, but some didn't apply when using a laucher.
2007-07-24 12:39:30 +00:00
Richard Hughes
60e764bc3e 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation.c: (bus_activation_activate_service):
If the bus uses a service-laucher, then use the setuid laucher.
2007-07-24 12:36:41 +00:00
Richard Hughes
5d4eb6286f 2007-07-24 Richard Hughes <richard@hughsie.com>
* configure.in:
Add the needed library exports for the new laucher.
2007-07-24 12:33:35 +00:00
Richard Hughes
13c56943b6 2007-07-24 Richard Hughes <richard@hughsie.com>
* configure.in:
Check for -Wl,--gc-sections so we can really reduce the size of the
setuid binary.
2007-07-24 12:31:01 +00:00
Richard Hughes
ea3bdfba10 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation.c: (handle_activation_exit_error),
(babysitter_watch_callback):
Map the child exit status integer to a proper dbus error.
2007-07-24 12:22:43 +00:00
Richard Hughes
6ceffb5918 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/bus.c: (process_config_first_time_only),
(process_config_every_time), (bus_context_unref),
(bus_context_get_servicehelper):
* bus/bus.h:
Add the concept of a service-helper and allow it's value to be read.
2007-07-24 12:19:59 +00:00
Richard Hughes
153a2aed60 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation.c: (bus_activation_entry_unref),
(update_desktop_file_entry):
Add the concept of, and read the value of user from the desktop file.
The user string is not required unless we are using system activation.
2007-07-24 12:17:39 +00:00
Richard Hughes
74e1b98619 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation.c:
* bus/desktop-file.h:
Move the defines into the header file, as we use these in the lauch
helper as well as the desktop file parsing.
2007-07-24 12:14:51 +00:00
Richard Hughes
0a63547d0e 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/.cvsignore:
Add the autogenerated binary files.
2007-07-24 12:12:10 +00:00