Commit graph

1525 commits

Author SHA1 Message Date
Richard Hughes
6dd454681a 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/Makefile.am:
* bus/test.h:
Add the build glue for the lauch helper, and also add the launch-helper
OOM checks into make check. I've probably broken the build, give me 2.
2007-07-24 12:10:58 +00:00
Richard Hughes
5a18659992 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/test-launch-helper.c: (die), (check_memleaks),
(test_post_hook), (bus_activation_helper_oom_test), (main):
Add a test wrapper to allow OOM checks on the launch helper.
2007-07-24 12:03:04 +00:00
Richard Hughes
f4082146e9 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation-helper-bin.c: (convert_error_to_exit_code),
(main):
* bus/activation-helper.c: (desktop_file_for_name),
(clear_environment), (check_permissions), (check_service_name),
(get_parameters_for_service), (switch_user),
(exec_for_correct_user), (check_bus_name), (get_correct_parser),
(launch_bus_name), (check_dbus_user), (run_launch_helper):
* bus/activation-helper.h:
Add the initial launch-helper. This is split into a main section and a
binary loader that allows us to lauch the main section in another test
harness to do stuff like OOM testing. No build glue yet.
2007-07-24 12:01:32 +00:00
Richard Hughes
0cb8dd64a9 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/Makefile.am:
* bus/config-parser.c: (bus_config_parser_unref),
(start_busconfig_child), (bus_config_parser_end_element),
(servicehelper_path), (bus_config_parser_content),
(bus_config_parser_finished),
(bus_config_parser_get_servicehelper),
(test_default_session_servicedirs),
(test_default_system_servicedirs), (bus_config_parser_test):
* bus/config-parser.h:
Make the config-parser code use the common config code.
Also add the session and systemdirs stuff, and make the config parser
aware of the servicehelper field.
2007-07-24 11:58:08 +00:00
Richard Hughes
d6fddc64b5 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/system.conf.in:
Add new servicehelper fields to the default system.conf file.
2007-07-24 11:53:35 +00:00
Richard Hughes
21dfdb6349 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/config-parser-trivial.c: (service_dirs_find_dir),
(service_dirs_append_link_unique_or_free), (bus_config_parser_new),
(bus_config_parser_unref), (bus_config_parser_start_element),
(bus_config_parser_end_element), (bus_config_parser_content),
(bus_config_parser_finished), (bus_config_parser_get_user),
(bus_config_parser_get_type), (bus_config_parser_get_service_dirs),
(check_return_values), (do_load), (check_loader_oom_func),
(process_test_valid_subdir), (make_full_path), (check_file_valid),
(bus_config_parser_trivial_test):
* bus/config-parser-trivial.h:
Add a security sensitive stripped down config parser for the setuid
launcher. This file only reads what it needs, and doesn't try to do
anything remotely clever like including external files.
It is not intended to validate the config file; it is expected that
config-parser will do that before the setuid program tries to read it.
2007-07-24 11:50:59 +00:00
Richard Hughes
dd8f96b8af 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/config-parser-common.c:
(bus_config_parser_element_name_to_type),
(bus_config_parser_element_type_to_name):
* bus/config-parser-common.h:
We don't want to run the whole config parser with all it's deps in the
setuid program. We need to implement a stripped down config parser just
for the launcher, and to do so I need some common functions and
defines; add them here.
2007-07-24 11:47:31 +00:00
Richard Hughes
227c67220b 2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-sysdeps-unix.c:
(_dbus_get_standard_system_servicedirs):
* dbus/dbus-sysdeps-win.c:
Provide a way to get the standard system servicedirs, just like we do
for the session service dirs. These should be seporate, as there may
be a security issue starting up some session stuff as root.
The use-case for the same binary starting up per-system _and_
per-session is also not valid.
2007-07-24 11:44:35 +00:00
Richard Hughes
837f60ae77 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/dbus-daemon.1.in:
Add standard_system_servicedirs and servicehelper into the man file
and explain what each does.
2007-07-24 11:41:19 +00:00
Richard Hughes
e69af3afee 2007-07-24 Richard Hughes <richard@hughsie.com>
* doc/busconfig.dtd:
Add servicehelper into the dtd, it will soon be a valid part of the
config file.
2007-07-24 11:38:47 +00:00
Richard Hughes
ab25c53696 2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-spawn.c: (read_data),
(_dbus_babysitter_get_child_exit_status):
* dbus/dbus-spawn.h:
Add a function so we can get access to the exit status of the launch
helper.
By providing the return code and not the error we can leave the
'what does this mean?' to the bus launch code and not include it in the
dbus directory.
2007-07-24 11:37:20 +00:00
Richard Hughes
ee10721fdb 2007-07-24 Richard Hughes <richard@hughsie.com>
* bus/activation-exit-codes.h:
Add defines which specify the output codes of the launch helper.
We have to use exit codes as this is the only way we can return failure
type without going grotty things like redirecting possibly-nonsecure
stderr into the error.
2007-07-24 11:34:40 +00:00
Richard Hughes
7d11c1daea 2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-protocol.h:
Add new error names needed for the launch helper.
2007-07-24 11:27:09 +00:00
Richard Hughes
509474c3fa 2007-07-24 Richard Hughes <richard@hughsie.com>
* dbus/dbus-sysdeps.c: (_dbus_clearenv):
* dbus/dbus-sysdeps.h:
Add a wrapper for clearenv.
2007-07-24 11:24:52 +00:00
Richard Hughes
fe052ddb56 2007-07-24 Richard Hughes <richard@hughsie.com>
* doc/system-activation.txt:
Add design document for the system activation parts. I'll shortly be
committing many patches that add system activation using a setuid
launcher into CVS, so expect things to be broken for a few hours.
2007-07-24 11:23:46 +00:00
Ralf Habacker
2c1102c006 * cmake/modules/FindKDEWIN.cmake: fixed comment
* cmake/modules/FindKDEWIN32.cmake: removed obsolate cmake module
2007-07-19 20:16:09 +00:00
Havoc Pennington
8d939deebd 2007-07-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c (dbus_message_get_cached)
	(dbus_message_cache_or_finalize): don't mess with message from
	message cache outside of the cache lock. Bug #9164 from Jonathan
	Matthew.
2007-07-18 21:43:23 +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
Havoc Pennington
ed57b9c663 2007-07-12 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): invert the test
	for parsing hex as double to be sure it fails to work

	* dbus/dbus-sysdeps.c (_dbus_string_parse_double): don't allow hex numbers.
2007-07-12 22:18:05 +00:00
Havoc Pennington
e339814224 2007-07-10 Havoc Pennington <hp@redhat.com>
* dbus/dbus-connection.c (struct DBusConnection): Fix from Olivier
	Hochreutiner to avoid trying to protect individual bits in a word
	with different locks (make dispatch_acquired and io_path_acquired
	dbus_bool_t rather than bitfields)
2007-07-10 16:00:44 +00:00
Ralf Habacker
c65199b125 * dbus/dbus-sysdeps-win.c,dbus-sysdeps-win.h,dbus-sysdeps-win-util.c,dbus-sysdeps-spawn-win.c: synced with windbus sources 2007-07-09 06:24:50 +00:00
Ralf Habacker
8a0902a9b2 * dbus/dbus-sysdeps-win.c
(_dbus_getsid): remove unused jump label
	(_dbus_read_credentials_socket): _dbus_string_init could fail, check initialisation
	(_dbus_get_working_dir, _dbus_init_working_dir): remove unused functions
2007-07-07 11:14:44 +00:00
Ralf Habacker
071b707ab8 * cmake/modules/FindKDEWIN.cmake: search in <program files dir>\win32libs for windows supplementary packages too 2007-07-04 06:41:56 +00:00
Ralf Habacker
df5f85d652 * cmake/dbus/CMakeLists.txt: handle userdb as unix file 2007-06-30 11:46:48 +00:00
Ralf Habacker
8087818e71 * dbus/dbus-sysdeps-win.c,dbus/dbus-sysdeps-win.h: removed obsolate DBusUserInfo code 2007-06-30 11:38:05 +00:00
Ralf Habacker
f3d4e40e5c * dbus/dbus-sysdeps-win.c (_dbus_daemon_init): reduced compiler warnings 2007-06-30 11:29:17 +00:00
Ralf Habacker
f1cb3ee0e7 * dbus/dbus-auth-script.c (_dbus_auth_script_run): added UNIX_ONLY and WIN_ONLY commands for auth scripts
* test/data/auth/external-root.auth-script: limit execution to unix
2007-06-23 07:45:17 +00:00
Ralf Habacker
62c638249e * dbus/dbus-tranport.c (auth_via_default_rules): made the verbose spam cross-platform 2007-06-21 21:58:36 +00:00
Havoc Pennington
ee721d13c4 2007-06-21 Havoc Pennington <hp@redhat.com>
* dbus/dbus-watch.c (dbus_watch_get_fd): 1) its behavior should
	not be the same as before, the ABI has never been declared stable
	on Windows and 2) do not commit to cross-platform files without
	posting the exact patch to the mailing list

	* dbus/dbus-sysdeps-util.c (_dbus_sysdeps_test): as I have pointed
	out before, either 0xff needs to work on both platforms, or none
	of the dbus code can rely on it working. That means the options
	are 1) audit the code for anywhere that relies on 0xff working, if
	none found ideally add a test that it *doesn't* work and make unix
	reject it explicitly, but in any case this test would go away or
	2) make it work on Windows also, then we don't have to figure out
	whether we rely on it.

	And in either case, post the exact patch to the mailing list and
	don't just commit.
2007-06-21 21:28:59 +00:00
Ralf Habacker
5ff8975d90 * cmake/CMakeLists.txt: added VERSION_PATCH to be able to distinguish win32 binary releases from dbus versioning 2007-06-21 15:08:50 +00:00
Ralf Habacker
51e54d9529 * dbus/dbus-sysdeps-win.c: deleted local DBusCredentials structure
(_dbus_getsid): new function
    (_dbus_read_credentials_socket): fixed
    (_dbus_append_user_from_current_process, _dbus_credentials_add_from_current_process): added real sid reading
    (_dbus_credentials_parse_and_add_desired,_dbus_parse_uid): deleted
2007-06-21 13:11:10 +00:00
Ralf Habacker
909c8ef4ee * dbus/dbus-sysdeps-win.c (_dbus_sysdeps_test): don't check 0xff as floating point, this isn't supported on win32 math implementation 2007-06-21 12:56:56 +00:00
Ralf Habacker
00d50bc984 * dbus/dbus-sysdeps-win.c (_dbus_homedir_from_username, _dbus_homedir_from_current_process, _dbus_append_desired_identity): removed obsolate functions 2007-06-21 12:34:06 +00:00
Ralf Habacker
2e9be69906 * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c, dbus/dbus-sysdeps-win.h: disabled DBusSocket implementation by Peter Kuemmel 2007-06-21 12:23:30 +00:00
Ralf Habacker
b86ea8c1ec * dbus/dbus-watch.c (dbus_watch_get_fd): this function is deprecated and its behavior should be as before until all client code is migrated. 2007-06-21 08:29:24 +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
a1a285b10d * dbus/dbus-sysdeps-win.c, dbus/dbus-sysdeps-spawn-win.c, dbus/dbus-sysdeps-win.h: disabled DBusSocket implementation Patch by Peter Kuemmel 2007-06-19 20:04:34 +00:00
Ralf Habacker
33ee5bfc56 * removed obsolate patches 2007-06-19 16:35:40 +00:00
Havoc Pennington
424c04c7a3 2007-06-18 Havoc Pennington <hp@redhat.com>
* configure.in: bump version to 1.1.2 so CVS is higher than last
	release (this is not the 1.1.2 release)
2007-06-18 19:51:18 +00:00
Havoc Pennington
edf1a6c363 2007-06-18 Havoc Pennington <hp@redhat.com>
* Release 1.1.1
2007-06-18 19:49:40 +00:00
Havoc Pennington
54b943432c 2007-06-18 Havoc Pennington <hp@redhat.com>
* doc/dbus-specification.xml: document org.freedesktop.DBus.GetId()

	* bus/driver.c (bus_driver_handle_get_id): implement org.freedesktop.DBus.GetId()

	* bus/bus.c (bus_context_new): generate a unique ID for each bus context

	* dbus/dbus-connection.c (dbus_connection_get_server_id): new function

	* dbus/dbus-bus.c (dbus_bus_get_id): new function

	* dbus/dbus-server.c (dbus_server_get_id): new function
2007-06-18 19:32:51 +00:00
Havoc Pennington
ded479fda4 2007-06-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps-unix.c (_dbus_read_credentials_socket): clean
	this up a little bit, to try and understand why telnet'ing to a
	server and sending a non-nul byte didn't disconnect immediately;
	now it seems that it does disconnect immediately as it should,
	though I don't understand what has changed.
2007-06-18 18:05:21 +00:00
Havoc Pennington
98f1985207 2007-06-18 Havoc Pennington <hp@redhat.com>
* dbus/dbus-watch.c (dbus_watch_get_socket)
	(dbus_watch_get_unix_fd): new API to match DBusConnection
	(dbus_watch_get_fd): deprecate this

	Throughout: just s/dbus_watch_get_fd/dbus_watch_get_socket/g for
	now since all the transports use sockets anyway
2007-06-18 16:24:03 +00:00
Ralf Habacker
fb93e1faa8 * dbus/dbus-macros.h, dbus/dbus-message.c, dbus/dbus-message.h: renamed DBUS_GNUC_DEPRECATED to DBUS_DEPRECATED and extended to msvc compiler 2007-06-17 16:43:39 +00:00
Ralf Habacker
bfe6bf0fd1 * cmake/CMakeLists.txt: use local include header first
* dbus/dbus-sysdeps-win.c: mingw compile fix of DBusCredential struct
2007-06-16 08:09:41 +00:00
Havoc Pennington
b62633b919 2007-06-15 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps-unix.c (_dbus_append_session_config_file)
	(_dbus_append_system_config_file): new functions

	* bus/main.c (main): use _dbus_append_system_config_file() and
	_dbus_append_session_config_file()

	* dbus/Makefile.am (INCLUDES): move DBUS_SYSTEM_CONFIG_FILE and
	DBUS_SESSION_CONFIG_FILE into this makefile
2007-06-15 20:10:09 +00:00
Havoc Pennington
43b944a0a6 2007-06-15 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps.c (_dbus_set_errno_to_zero)
	(_dbus_get_is_errno_nonzero, _dbus_get_is_errno_eintr)
	(_dbus_strerror_from_errno): family of functions to abstract
	errno, though these are somewhat bogus (really we should make our
	socket wrappers not use errno probably - the issue is that any
	usage of errno that isn't socket-related probably is not
	cross-platform, so should either be in a unix-only file that can
	use errno directly, or is a bug - these general errno wrappers
	hide issues of this nature in non-socket code, while
	socket-specific API changes would not since sockets are allowed
	cross-platform)
2007-06-15 19:28:36 +00:00
Ralf Habacker
283b1c6fc7 - minor spelling fix 2007-06-15 18:15:41 +00:00
Havoc Pennington
bfd6be8555 2007-06-14 Havoc Pennington <hp@redhat.com>
* bus/dispatch.c (check_get_connection_unix_process_id): mop up
	getpid() (noticed by Peter KKümmel) and adapt the test to
	expect a "pid unknown" error when running on Windows.
2007-06-14 22:02:10 +00:00
Havoc Pennington
e7c0d21779 2007-06-14 Havoc Pennington <hp@redhat.com>
* dbus/dbus-sysdeps-unix.c (_dbus_credentials_parse_and_add_user):
	delete this function since it was effectively the same as
	_dbus_credentials_add_from_username()
2007-06-14 21:15:33 +00:00