|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
	the "char byte_order" next to each other to save 4 bytes
	(dbus_message_new_empty_header): reduce preallocation, since the
	message cache should achieve a similar effect
	(dbus_message_cache_or_finalize, dbus_message_get_cached): add a
	message cache that keeps a few DBusMessage around in a pool,
	another 8% speedup or so.
	* dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function | 
| | 
| 
| 
| 
| 
| 
| | * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
	to write, without reading or blocking, try it before the poll()
	and skip the poll() if nothing remains to write. This is about a
	3% speedup in the echo client/server | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The primary change here is to always write() once before adding
	the write watch, which gives us about a 10% performance increase.
	* dbus/dbus-transport-unix.c: a number of modifications to cope
	with removing messages_pending
	(check_write_watch): properly handle
	DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
	messages_pending stuff
	(check_read_watch): properly handle WAITING_FOR_MEMORY and
	AUTHENTICATED cases
	(unix_handle_watch): after writing, see if the write watch can be
	removed
	(unix_do_iteration): assert that write_watch/read_watch are
	non-NULL rather than testing that they aren't, since they
	aren't allowed to be NULL. check_write_watch() at the end so
	we add the watch if we did not finish writing (e.g. got EAGAIN)
	* dbus/dbus-transport-protected.h: remove messages_pending call,
	since it resulted in too much inefficient watch adding/removing;
	instead we now require that the transport user does an iteration
	after queueing outgoing messages, and after trying the first
	write() we add a write watch if we got EAGAIN or exceeded our
	max bytes to write per iteration setting
	* dbus/dbus-string.c (_dbus_string_validate_signature): add this
	function
	* dbus/dbus-server-unix.c (unix_finalize): the socket name was
	freed and then accessed, valgrind flagged this bug, fix it
	* dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
	as the last valid field plus 1, where really it is equal to the
	last valid field. Corrects some message corruption issues.
	* dbus/dbus-mainloop.c: verbosity changes
	* dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
	instead of aborting in one of the test codepaths
	* dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
	caused not printing the pid ever again if a verbose was missing
	the newline at the end
	(_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
	* dbus/dbus-connection.c: verbosity changes;
	(dbus_connection_has_messages_to_send): new function
	(_dbus_connection_message_sent): no longer call transport->messages_pending
	(_dbus_connection_send_preallocated_unlocked): do one iteration to
	try to write() immediately, so we can avoid the write watch. This
	is the core purpose of this patchset
	(_dbus_connection_get_dispatch_status_unlocked): if disconnected,
	dump the outgoing message queue, so nobody will get confused
	trying to send them or thinking stuff is pending to be sent
	* bus/test.c: verbosity changes
	* bus/driver.c: verbosity/assertion changes
	* bus/dispatch.c: a bunch of little tweaks to get it working again
	because this patchset changes when/where you need to block. | 
| | 
| 
| 
| 
| 
| | * test/glib/test-profile.c: modify to accept a plain_sockets
	argument in which case it will bench plain sockets instead of
	libdbus, for comparison purposes. | 
| | 
| 
| 
| 
| 
| 
| 
| | * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
	threads for more time, so sysprof can get a grip on it.
	* dbus/dbus-string.c (_dbus_string_validate_utf8): remove
	pointless variable | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * test/glib/test-profile.c: fix this thing up a bit
	* dbus/dbus-message.c (dbus_message_new_empty_header): increase
	preallocation sizes by a fair bit; not sure if this will be an
	overall performance win or not, but it does reduce reallocs.
	* dbus/dbus-string.c (set_length, reallocate_for_length): ignore
	the test hack that forced constant realloc if asserts are
	disabled, so we can profile sanely. Sprinkle in some
	_DBUS_UNLIKELY() which are probably pointless, but before I
	noticed the real performance problem I put them in.
	(_dbus_string_validate_utf8): micro-optimize this thing a little
	bit, though callgrind says it didn't help; then special-case
	ascii, which did help a lot; then be sure we detect nul bytes as
	invalid, which is a bugfix.
	(align_length_then_lengthen): add some more _DBUS_UNLIKELY
	superstition; use memset to nul the padding instead of a manual
	loop.
	(_dbus_string_get_length): inline this as a
	macro; it showed up in the profile because it's used for loop
	tests and so forth | 
| | |  | 
| | 
| 
| 
| 
| | * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
	for extra paranoia. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-string.c (_dbus_string_get_length): New
	function, writes DBusString to C buffer.
	* dbus/dbus-string.h: Prototype it.
	* dbus/dbus-message.c (dbus_message_type_to_string): New
	function, converts message type into C string.
	* dbus/dbus-message.h: Prototype it.
	* bus/selinux.c (bus_selinux_check): Take source pid,
	target pid, and audit data.  Pass audit data to
	avc_has_perm.
	(log_audit_callback): New function, appends extra
	audit information.
	(bus_selinux_allows_acquire_service): Also take
	service name, add it to audit data.
	(bus_selinux_allows_send): Also take message
	type, interface, method member, error name,
	and destination, and add them to audit data.
	(log_cb): Initialize func_audit.
	* bus/selinux.h (bus_selinux_allows_acquire_service)
	(bus_selinux_allows_send): Update prototypes
	* bus/services.c (bus_registry_acquire_service): Pass
	service name to bus_selinux_allows_acquire_service.
	* bus/bus.c (bus_context_check_security_policy): Pass
	additional audit data.  Move assignment of dest
	to its own line. | 
| | 
| 
| 
| 
| | * dbus/dbus-transport-unix.c (do_authentication): Always
	initialize auth_completed. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/bus.c (load_config): Break into three
	separate functions: process_config_first_time_only,
	process_config_every_time, and process_config_postinit.
	(process_config_every_time): Move call of
	bus_registry_set_service_context_table into
	process_config_postinit.
	(process_config_postinit): New function, does
	any processing that needs to happen late
	in initialization (and also on reload).
	(bus_context_new): Instead of calling load_config,
	open config parser here and call process_config_first_time_only
	and process_config_every_time directly.  Later, after
	we have forked but before changing UID,
	invoke bus_selinux_full_init, and then call
	process_config_postinit.
	(bus_context_reload_config): As in bus_context_new,
	load parse file inside here, and call process_config_every_time
	and process_config_postinit.
	* bus/services.h, bus/services.c
	(bus_registry_set_service_context_table): Rename
	from bus_registry_set_sid_table.  Take string hash from config
	parser, and convert them here into SIDs.
	* bus/config-parser.c (struct BusConfigParser): Have
	config parser only store a mapping of service->context
	string.
	(merge_service_context_hash): New function.
	(merge_included): Merge context string hashes instead
	of using bus_selinux_id_table_union.
	(bus_config_parser_new): Don't use bus_selinux_id_table_new;
	simply create a new string hash.
	(bus_config_parser_unref): Unref it.
	(start_selinux_child): Simply insert strings into hash,
	don't call bus_selinux_id_table_copy_over.
	* bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
	(bus_selinux_id_table_copy_over): Delete. | 
| | |  | 
| | 
| 
| 
| 
| | * bus/selinux.c (bus_selinux_pre_init): Kill some unused
	variables. | 
| | 
| 
| 
| 
| | * bus/test-main.c (test_pre_hook): Fix test logic,
	thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/selinux.c (bus_selinux_init): Split into two functions,
	bus_selinux_pre_init and bus_selinux_post_init.
	(bus_selinux_pre_init): Just determine whether SELinux is
	enabled.
	(bus_selinux_post_init): Do everything else.
	* bus/main.c (main): Call bus_selinux_pre_init before parsing
	config file, and bus_selinux_post_init after.  This ensures that
	we don't lose the policyreload notification thread that
	bus_selinux_init created before forking previously.
	* bus/test-main.c (test_pre_hook): Update for split. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
	parameter for fd to write pid to.
	* dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
	* bus/bus.c (bus_context_new): Pass print_pid_fd
	to _dbus_become_daemon (bug #1720) | 
| | 
| 
| 
| 
| 
| 
| | Patch from Ed Catmur <ed@catmur.co.uk>
	* mono/doc/Makefile.am (install-data-local): Handle
	DESTDIR. | 
| | 
| 
| 
| | * bus/.cvsignore, qt/.cvsignore: Update. | 
| | 
| 
| 
| 
| 
| 
| 
| | Patch from Kristof Vansant <de_lupus@pandora.be>
	* configure.in: Detect Slackware.
	* bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
	* bus/rc.messagebus.in: New file. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| | * tools/dbus-monitor.c (filter_func): Return
	DBUS_HANDLER_RESULT_HANDLED in filter function
	for now.  See:
	http://freedesktop.org/pipermail/dbus/2004-August/001433.html | 
| | 
| 
| 
| 
| 
| 
| 
| | Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
	* bus/services.c (bus_registry_acquire_service):
	Correctly retrieve service name from DBusString
	for printing. | 
| | 
| 
| 
| 
| | * dbus/dbus-glib.h: Update documentation to not
	refer to internal APIs. | 
| | 
| 
| 
| 
| 
| 
| | * mono/Arguments.cs (GetDBusTypeConstructor):
	type.UnderlyingSystemType will return "System.Byte" if you do it
	on "byte[]", which is not what we want.  So check the type.IsArray
	property and use System.Array instead. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
        the DBusUserInfo structure since this is passed into the function.
        This would cause a double free when the function that allocated
        the structure would try to free it when an error occured.
        * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
        use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
        for service activation to avoid 32bit/64bit parallel install issues | 
| | 
| 
| 
| 
| | * AUTHORS: Fix my email address, the @gnu.org one
	has been bouncing for some time.  Also add J5. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-transport-unix.c (do_authentication): Return
	authentication status to callers.
	(unix_handle_watch): If we completed authentication this round,
	don't do another read.  Instead wait until the next iteration,
	after we've read any pending data in the auth buffer.
	(unix_do_iteration): Ditto.
	(unix_handle_watch): Updated for new do_authentication prototype. | 
| | 
| 
| 
| 
| | * bus/selinux.c (bus_selinux_enabled): Handle
	--disable-selinux case. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/selinux.h: Add bus_selinux_enabled.
	* bus/selinux.c (bus_selinux_enabled): Implement it.
	* bus/config-parser.c (struct include): Add
	if_selinux_enabled member.
	(start_busconfig_child): Parse if_selinux_enabled
	attribute for include.
	(bus_config_parser_content): Handle it.
	* bus/session.conf.in, bus/system.conf.in: Add
	inclusion of context mapping to default config files;
	conditional on SELinux being enabled.
	* doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
	* test/data/invalid-config-files/badselinux-1.conf,
	test/data/invalid-config-files/badselinux-2.conf:
	Test files for bad syntax. | 
| | 
| 
| 
| 
| 
| | * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
	(dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
	format specifier mismatches. | 
| | 
| 
| 
| 
| | * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL pointer
(bug #1540, Leonardo Boiko). | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * mono/BusDriver.cs: Changed BusDriver struct to remove
	    the ServiceCreated and ServiceDeleted events and replace them
	    with the new ServiceOwnerChanged event.
	    * mono/example/BusListener.cs: Added a new example program,
	    which listens for and reports any ServiceOwnerChanged events
	    on the bus driver.
	    * mono/example/Makefile.am (DESTDIR): Build changes for the
	    new BusListener.cs example. | 
| | 
| 
| 
| 
| 
| | match rules (bug #1439).
* dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test. | 
| | 
| 
| 
| 
| 
| 
| | * bus/driver.c, bus/driver.h, bus/services.c: Use ServiceOwnerChanged
signal instead of ServiceCreated and ServiceDeleted.
* bus/dispatch.c: update testcase for the new signal. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Patch from Nat Friedman <nat@novell.com>
	    * mono/Makefile.am: A number of small build fixes to allow "make
	    distcheck" to succeed.
	    * mono/example/Makefile.am: "make distcheck" fixes.
	    * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
	    key in @srcdir@.
	    * test/Makefile.am: "make distcheck" fixes. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * doc/busconfig.dtd: update the DTD for the at_console attribute.
* bus/driver.c (bus_driver_handle_hello): correctly handle Hello
messages after the first one (bug #1389).
* bus/dispatch.c (check_double_hello_message): add a test case for the
double hello message bug.  (check_existent_service_activation): fix
check of spawning error. | 
| | 
| 
| 
| | * python/dbus_bindings.pyx.in: Add support for int64 and uint64 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Patch from Kay Sievers <kay.sievers@vrfy.org>
	* bus/bus.c (bus_context_new):
	* bus/bus.h:
	* bus/main.c (usage)
	(main):
	Add commandline option --nofork to override configuration file
	setting. | 
| | |  | 
| | |  | 
| | 
| 
| 
| | of an existing connection into the Qt main loop | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * mono/BusDriver.cs: Added.  This is a class for interacting with
	    the org.freedesktop.DBus service.
	    * mono/Message.cs: Added a mechanism to expose the message that is
	    currently being dispatched via the static Message.Current
	    property.  Added Message.Sender and Message.Destination
	    properties.
	    * mono/Handler.cs: Expose the dispatched message via
	    Message.Current when handling method calls.
	    * mono/Service.cs: Expose the dispatched message via
	    Message.Current when handling signal emissions.
	    * mono/Connection.cs: Bind dbus_bus_get_base_service via the
	    Connection.BaseService property. | 
| | |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
        More fixes from Steve Grubb
	* dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
	(_dbus_listen_tcp_socket): fix fd leak
	* dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
	EINTR to a bit lower in the code | 
| | 
| 
| 
| 
| 
| | * bus/driver.c (bus_driver_handle_service_exists): Respond with
        TRUE if we are inquiring about the existence of the built-in
        org.freedesktop.DBus service. | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/config-parser.c:
(struct PolicyType): Add POLICY_CONSOLE
(struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
(start_busconfig_child): Sets up console element when
<policy at_console=""> is encountered in a policy file
(append_rule_from_element): Convert console elements to console
rules.
* bus/policy.c:
(bus_policy_create_client_policy): Add console rules to the client
policy based on if the client is at the console
(bus_policy_append_console_rule): New function for adding a
console rule to a policy
(bus_policy_merge): Handle console rule merging
* dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
where we check for console user files
* dbus/dbus-sysdeps.c:
(_dbus_file_exists): New function which checks if the given
file exists
(_dbus_user_at_console): New function which does the system
specific process of checking if the user is at the console
* dbus/dbus-userdb.c:
(_dbus_is_console_user): New function converts a UID to user name
and then calls the system specific _dbus_user_at_console to
see if the user is at the console and therefor a console user | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | * bus/dbus-daemon-1.1.in:
* test/data/valid-config-files/many-rules.conf: set the
max_match_rules_per_connection limt from the config file.
* doc/busconfig.dtd: update the DTD.
* bus/driver.c: remove some unused variables. | 
| | 
| 
| 
| 
| | * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
	it's been replaced by dbus_g_bus_get |