History log of /external/dbus/bus/driver.c
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
4299eb3c0907100fe95d2986984b48d40cc52841 08-Jul-2015 Daniel Erat <derat@google.com> Incorporate upstream changes to v1.6.8.

Squash upstream commits up to and including the v1.6.8
release (upstream commit 1cad15cc).

This repository's changes from upstream are now limited to:

- addition of Android.mk, CleanSpec.mk, config.h, and NOTICE
files
- addition of dbus/dbus-arch-deps.h and removal from
dbus/.gitignore (ebae2d21, f022f55d)
- WANT_PIDFILE #ifdefs added to bus/bus.c to disable writing
dbus-daemon's PID to a file (3100d06a)
- TRACE_LOCKS set to 0 in dbus/dbus-connection.c (88a0ffe5)
- DBUS_ANDROID_LOG added to dbus/dbus-internals.c to use
logcat (7de15def)
- ANDROID_MANAGED_SOCKET added to dbus/dbus-sysdeps-unix.c
to use an SELinux-managed socket rather than a
dbus-daemon-created Unix domain socket (3100d06a)

Bug: 22328216
Change-Id: I793ebdf963d9b0740f0da28f1de593d088f08406
/external/dbus/bus/driver.c
b3ed8675a4eba35c6a7f43a86a89f706ffe07f84 02-Jun-2010 Lennart Poettering <lennart@poettering.net> activation: optionally, use systemd for system bus activation
/external/dbus/bus/driver.c
dbecdeabb20e0ce11121819c63373f0afba57c58 19-Mar-2010 Marcus Brinkmann <marcus.brinkmann@ruhr-uni-bochum.de> Consistently include <config.h> in all C source files and never in header files.
/external/dbus/bus/driver.c
edecaa4abcc87712d470b9dc0f2d124417b3eebf 16-Mar-2010 Colin Walters <walters@verbum.org> Don't send an reply for driver messages if one isn't requested

Basically honor the no_reply flag; a binding is likely to want to
set this so it doesn't have to process extra traffic for match
rules.
/external/dbus/bus/driver.c
dc33f4f7749ed303374ebdf00e48ea8a471afd25 11-Jul-2009 Tobias Mueller <fdo-bugs@cryptobitch.de> Bug 21161 - Update the FSF address

No comment.

Signed-off-by: Colin Walters <walters@verbum.org>
(cherry picked from commit 5baf2f856a9c6625993234855b07680da1c8916f)
/external/dbus/bus/driver.c
eb3b99e7c610988823804f5e6c92aa13459605c7 21-Apr-2009 Kjartan Maraas <kmaraas@gnome.org> 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>
/external/dbus/bus/driver.c
4e4f0de8cc8c3127641013fd833349dab34b676b 20-Dec-2008 Colin Walters <walters@verbum.org> Various compiler warning fixes
/external/dbus/bus/driver.c
37853b6dd04fa32a6f948438d2fbdcd08bd473e4 10-Jul-2008 Ray Strode <rstrode@redhat.com> Add new UpdateActivationEnvironment bus message

It adjusts the environment of activated bus clients.
This is important for session managers that get started
after the session bus daemon and want to influence the
environment of desktop services that are started by the
bus.
/external/dbus/bus/driver.c
ab1eb1fd5a26affa2383b0eb7e292efd83ec2546 05-Jun-2008 Colin Walters <walters@verbum.org> Bug 15740: Solaris/ADT auditing support (simon zheng)

* bus/driver.c: Add GetAdtAuditSessionData method
which returns audit data for a connection.
* configure.in: Detect ADT auditing support
* dbus/dbus-auth.c: Read ADT auditing creds.
* dbus/dbus-connection.c: Implement
dbus_connection_get_adt_audit_session_data.
* dbus/dbus-connection.h: Export it.
* dbus/dbus-credentials.c: Add support for
gathering adt_audit_data and retrieving it
via _dbus_credentials_get_adt_audit_data.
* dbus/dbus-credentials.h: Add
DBUS_CREDENTIAL_ADT_AUDIT_DATA_ID.
* dbus/dbus-protocol.h: New error
DBUS_ERROR_ADT_AUDIT_DATA_UNKNOWN.
* dbus/dbus-sysdeps.c: Support for reading
audit credentials via ADT API.
* dbus/dbus-transport.c: New function
_dbus_transport_get_adt_audit_session_data
to retrieve credentials.
* dbus/dbus-transport.h: Export it.
/external/dbus/bus/driver.c
d012387afef0ba02185ebe27bc6bb15551912e92 14-Jul-2007 Havoc Pennington <hp@redhat.com> 2007-07-13 Havoc Pennington <hp@redhat.com>

* Add indent-tabs-mode: nil to all file headers.
/external/dbus/bus/driver.c
54b943432c7c947db88066751dd36a372cc9a618 18-Jun-2007 Havoc Pennington <hp@redhat.com> 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
/external/dbus/bus/driver.c
61316dd897846c6ee18daccdddaf8a78650a1406 06-Sep-2006 John (J5) Palmieri <johnp@redhat.com> * bus/driver.c:
(bus_driver_generate_introspect_string): New method for populating
a DBusString with the introspect data
(bus_driver_handle_introspect): Move introspect generation code to
bus_driver_generate_introspect_string

* bus/main.c:
(introspect): New function which prints out the intropect data and
exits
(main): Add a --introspect switch
/external/dbus/bus/driver.c
88f69757b93c7112447b97868c7dbde69dc00caa 06-Sep-2006 John (J5) Palmieri <johnp@redhat.com> * doc/TODO, various source files: Audited todo's and FIXME's and
prepended the ones we should be looking at with 1.0. Those
prepended with 1.0? need clerification or might not be needed
for 1.0
/external/dbus/bus/driver.c
7628b541258d906e27e2000a402ed2d02383479c 14-Jul-2006 John (J5) Palmieri <johnp@redhat.com> * bus/activation.[ch] (bus_activation_list_services): new function to
get the list of services that can be activated

* bus/dispatch.c: test coverage for the new bus method
ListActivatableNames

* bus/driver.c: new bus method ListActivatableNames to get the list of
services that can be activated

* doc/dbus-specification.xml: ListActivatableNames method documentation
/external/dbus/bus/driver.c
1a163e765c0d6a86d2aa2ffb18a1d7e29a052e7a 22-Nov-2005 John (J5) Palmieri <johnp@redhat.com> * configure.in: Add test/name-test/Makefile to the generated
Makefile list

* dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
(#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
not to queue an ower if it can't be the primary owner

* bus/bus.h: Add new internal BusOwner struct

* bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
to bus_registry_ensure and don't set the prohibit_replacement flag
since they are now set per BusOwner and not per name.
(bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
that returns the list of connections in a name's connection queue

* bus/services.c (struct BusService): remove prohibit_replacement field
(struct BusOwner): new struct for keeping track of queued connections
and their associated flags for the queue
(struct BusRegistry): add a BusOwner memory pool
(bus_registry_new): initialize the BusOwner memory pool
(bus_registry_unref): free the BusOwner memory pool
(_bus_service_find_owner_link): new internal method for
searching the queue for a specific connection
(bus_owner_set_flags): new method for adding setting the flags on a
bus owner
(bus_owner_new): new method that creates a BusOwner object from the
pool and sets its flags
(bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
(bus_registry_ensure): Add the flags parameter
(bus_registry_acquire_service): Switch from using raw connections to
using the BusOwner struct
Add new state machine for dealing with the new set of flags
(bus_registry_set_service_context_table, struct OwnershipCancelData,
cancel_ownership, free_ownership_cancel_data,
add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
restore_ownership, free_ownership_restore_data,
add_restore_ownership_to_transaction): Switch to using BusOwner
instead of raw connections
(bus_service_add_owner): Add flags parameter
Switch to using BusOwner instead of raw connections
Add state machine for dealing with the new set of flags
(bus_service_swap_owner): Swaps the first and second owners in the
queue. Used to make sure proper signals are sent when a service looses
or gains primary ownership. We never insert an owner at the top of the
queue. Instead we insert it in the second position and then swap.
(bus_service_remove_owner): Remove the owner from the queue sending
out the NameLost and NameOwnerChanged signals if the we were the
primary owner
(bus_service_get_primary_owners_connection): New method that extracts
the connection from the primary owner
(bus_service_get_primary_owner): Returns the BusOwner instead of the
connection
(bus_service_get_allow_replacement): Changed from the old
bus_service_get_prohibit_replacement method. Checks the flags of the
primary owner and returns if it can be replaced or not
(bus_service_set_prohibit_replacement): removed
(bus_service_has_owner): returns TRUE if and owner with
the specified connection exists in the queue

* dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
method that only compiles if tests are enabled. Allows us to get the
unique name of a connection so we can check it against the queue when
doing regression tests

* bus/activation.c (bus_activation_send_pending_auto_activate),
bus/dispatch.c (bus_dispatch),
bus/driver.c (bus_driver_handle_get_service_owner,
bus_driver_handle_get_connection_unix_user,
bus_driver_handle_get_connection_unix_process_id,
bus_driver_handle_get_connection_selinux_security_context),
bus/signals.c (connection_is_primary_owner):
use bus_service_get_primary_owners_connection instead of
bus_service_get_primary_owner

* dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
_dbus_listen_unix_socket): Calculate the length of the socket
path and use that instead of using a fixed length which was
causing socket names to contain many trailing Nul bytes.

* dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
(dbus_g_method_get_sender): New method for extracting the sender
from a DBusGMethodInvocation
(dbus_g_method_return_get_reply): changed name to
dbus_g_method_get_reply
(dbus_g_method_return_send_reply): changed name to
dbus_g_method_send reply

* doc/dbus-specification.xml: New docs that describe how the new
queueing system works and talks about the changes to the how
we specify socket names

* glib/examples/example-service.c,
glib/examples/example-signal-emitter.c,
glib/examples/statemachine/statemachine-server.c:
Changed the RequestName flags to the new system

* test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
regression test suite for testing various states of the new
queueing system
/external/dbus/bus/driver.c
b5e4d26adec0a9ec37a1bae7aeb5a68344b78ebf 15-Nov-2005 Robert McQueen <robot101@debian.org> 2005-11-15 Robert McQueen <robot101@debian.org>

* bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
method to org.freedesktop.DBus to release a bus name or give up
waiting in the queue for it.

* dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
dbus_bus_release_name method to send the ReleaseName method calls.
Add constants for the return values to dbus/dbus-shared.h.

* doc/dbus-specification.xml: Document the new ReleaseName method
in the specification.

* python/dbus_bindings.pyx: Add a low-level python binding for the
release name method.

* python/exceptions.py, python/service.py: Make freeing BusName
objects release the name. Add a NameExistsException, and fix a
bug with creating UnknownMethodException.

* test/python/test-client.py: Add tests for freeing BusName
objects causing names to be released.
/external/dbus/bus/driver.c
45ef0fbc4f0f5441425484be3662b2c44d2554b3 07-Nov-2005 John (J5) Palmieri <johnp@redhat.com> * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
empty reply so blocking calls don't block forever (Patch from Sjoerd
Simons <sjoerd at luon.net>)

* AUTHORS: Add Robert McQueen for his work on the Python
Bindings and other parts of D-Bus
/external/dbus/bus/driver.c
66e1cb9e68ba37980f7a90c396950be1587cdcd7 03-Oct-2005 John (J5) Palmieri <johnp@redhat.com> * bus/driver.c (bus_driver_handle_introspect): Add signals
to the introspect data. (patch from Daniel P. Berrange
<dan at berrange.com>)

* bus/dispatch.c (check_existent_ping): Add testcase for Ping

* dbus/dbus-connection.c (_dbus_connection_peer_filter,
_dbus_connection_run_builtin_filters): Changed these to
be unlock_no_update functions and call
_dbus_connection_send_unlocked_no_update instead of
dbus_connection_send to avoid locking errors.

* doc/TODO: Removed the make Ping test TODO
/external/dbus/bus/driver.c
9a94a1350bb93ea395812dd3c983e13e17c1bcb1 16-Jul-2005 Colin Walters <walters@verbum.org> 2005-07-16 Colin Walters <walters@verbum.org>

* bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
from bus_driver_handle_get_connection_unix_security_context. Update for
error usage.
(message_handlers): Update for renames.

* bus/selinux.c (bus_selinux_allows_send): Handle OOM on
_dbus_string_init failure correctly.
(bus_selinux_append_context): Convert SID to context. Append it
as a byte array.
(bus_selinux_shutdown): Handle the case where bus_selinux_full_init
hasn't been called.

* bus/selinux.h: Update prototype.

* dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
/external/dbus/bus/driver.c
6c191520c8b33cd7e550a6e3d9d853c25f552f54 14-Jul-2005 Colin Walters <walters@verbum.org> 2005-07-14 Colin Walters <walters@verbum.org>

* bus/driver.c
(bus_driver_handle_get_connection_unix_security_context): New function.
(message_handlers): Add.

* bus/selinux.c (bus_selinux_append_context): New function; appends
security context to message.

* bus/selinux.h: Prototype.

* dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
/external/dbus/bus/driver.c
6180ae6941aea083f5b8f3c4d3f16c928935bcaf 17-Mar-2005 Colin Walters <walters@verbum.org> 2005-03-14 Colin Walters <walters@verbum.org>

* bus/driver.c (write_args_for_direction): Use
_dbus_string_get_const_data to retrieve string;
_dbus_string_get_const_data_len doesn't actually return
a NULL-terminated substring.

* test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
(main): Change to use org_freedesktop_DBus_request_name
instead of using g_proxy_begin_call/end_call.
/external/dbus/bus/driver.c
030cc1e53c6216853e08e27b92f72db80d001873 12-Mar-2005 Colin Walters <walters@verbum.org> 2005-03-12 Colin Walters <walters@verbum.org>

* bus/driver.c (write_args_for_direction): New function,
parses a type signature into arguments and outputs to
XML.
(bus_driver_handle_introspect): Use it instead of
hardcoding XML for certain signatures.

* bus/Makefile.am (dbus-bus-introspect.xml): Add
dependency on dbus-daemon.

* glib/dbus-glib-tool.c (main): Parse ignore_unsupported
argument, pass it to dbus_binding_tool_output_glib_client.

* glib/dbus-binding-tool-glib.c
(generate_client_glue): Protect against multiple inclusion.
(dbus_binding_tool_output_glib_client): Add
G_BEGIN_DECLS/G_END_DECLS.

* glib/dbus-binding-tool-glib.c (compute_client_method_name):
Change to just take iface prefix directly.
(write_formal_parameters): Clarify error message.
(check_supported_parameters): New function; checks to see type
signatures of method parameters are supported.
(generate_client_glue): Handle ignore_unsupported flag.
(dbus_binding_tool_output_glib_client): Handle ignore_unsupported
parameter.

* glib/Makefile.am (dbus-glib-bindings.h): Pass
--ignore-unsupported by default until glib bindings
support arrays.
/external/dbus/bus/driver.c
3dea5c183f65c3f924fb442bf606dfeb50f028a4 12-Mar-2005 Colin Walters <walters@verbum.org> 2005-03-11 Colin Walters <walters@verbum.org>

* glib/Makefile.am: Generate dbus-glib-bindings.h and
install it.

* bus/print-introspect.c: New file; prints introspection
data for a given name and object path.

* bus/run-with-tmp-session-bus.sh: New file, refactored
from test/glib/run-test.sh. Creates a temporary session
bus and runs another program.

* test/glib/run-test.sh: Refactor to invoke
run-with-tmp-session-bus.sh.

* bus/driver.c (bus_driver_handle_introspect): Fix to print new
introspection format. Also change to use DBUS_TYPE_x_AS_STRING
macros instead of hardcoding.

* glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
/external/dbus/bus/driver.c
248895207dc15914ac7970a6d1431308075dca1d 17-Feb-2005 Colin Walters <walters@verbum.org> 2005-02-17 Colin Walters <walters@verbum.org>

* dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
Rename to DBUS_SERVICE_DBUS.
(DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
(DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
(DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
(DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
DBUS_INTERFACE_INTROSPECTABLE.
(DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
DBUS_INTERFACE_PROPERTIES.
(DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
DBUS_INTERFACE_PEER.
(DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
DBUS_INTERFACE_LOCAL.

All other users of those constants have been changed.

* bus/driver.c (bus_driver_handle_introspect): Use constants.

* glib/dbus-gobject.c (handle_introspect): Use constants.

* doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
/external/dbus/bus/driver.c
970be5fda36ea575973a9e7f25389e2ef173b940 12-Feb-2005 Havoc Pennington <hp@redhat.com> 2005-02-12 Havoc Pennington <hp@redhat.com>

* tools/dbus-tree-view.c (info_set_func_text): display more
details on args

* bus/driver.c (bus_driver_handle_list_services): list the bus
driver

* glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied

* glib/dbus-gidl.c (signal_info_get_n_args): new function
(method_info_get_n_args): new function
/external/dbus/bus/driver.c
85fb9ff93c91bc500b91759d044e3dfd951c7868 12-Feb-2005 Havoc Pennington <hp@redhat.com> 2005-02-12 Havoc Pennington <hp@redhat.com>

* bus/driver.c (bus_driver_handle_introspect): add introspection
for bus driver
/external/dbus/bus/driver.c
5b26893cdddddc82dd8d278b9f4bb449f9aac59e 12-Feb-2005 Havoc Pennington <hp@redhat.com> 2005-02-12 Havoc Pennington <hp@redhat.com>

* bus/driver.c: put the signature of each bus driver method in the
table of handlers and check it on incoming calls; this isn't
really useful, but going to add introspect support in a minute.
/external/dbus/bus/driver.c
98ad8a8ec6626f7f5c78915b6bdf2be688b4839f 30-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-30 Havoc Pennington <hp@redhat.com>

* glib/dbus-gobject.c (introspect_properties): fix the XML
generated

* dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
which effectively detects the use of freed messages

* glib/dbus-gobject.c (handle_introspect): modify and return the
reply message instead of the incoming message

* dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
gee, maybe it should SEND THE XML instead of just making a string
and freeing it again ;-)

* tools/dbus-print-message.c (print_message): improve printing of
messages

* configure.in: add debug-glib.service to the output
/external/dbus/bus/driver.c
41f52c96d651003b3d0a266a582d401228a8368e 30-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-30 Havoc Pennington <hp@redhat.com>

dbus-viewer introspected and displayed the bus driver

* dbus/dbus-object-tree.c
(object_tree_test_iteration): add tests for a handler registered on "/"

* dbus/dbus-object-tree.c
(_dbus_decompose_path): fix to handle path "/" properly
(run_decompose_tests): add tests for path decomposition

* glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
properly

* glib/dbus-gobject.c (handle_introspect): fix quotes

* test/glib/run-test.sh: support launching the bus, then running
dbus-viewer

* test/glib/test-service-glib.c (main): put in a trivial gobject
subclass and register it on the connection

* bus/driver.c (bus_driver_handle_introspect): implement
introspection of the bus driver service

* dbus/dbus-protocol.h: add #defines for the XML namespace,
identifiers, doctype decl

* bus/driver.c (bus_driver_handle_get_service_owner): handle
attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
returning the service unchanged.
(bus_driver_handle_message): remove old check for reply_serial in
method calls, now the message type deals with that
(bus_driver_handle_message): handle NULL interface

* glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function

* glib/dbus-gloader-expat.c (description_load_from_string): allow
-1 for len

* tools/dbus-viewer.c: add support for introspecting a service on
a bus

* glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
(dbus_g_pending_call_unref): add
/external/dbus/bus/driver.c
8873c90f99303f9cc308f15f8d03e637911f5b9e 18-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-18 Havoc Pennington <hp@redhat.com>

* Throughout, grand renaming to strip out the use of "service",
just say "name" instead (or "bus name" when ambiguous). Did not
change the internal code of the message bus itself, only the
programmer-facing API and messages.

* doc/dbus-specification.xml: further update the message bus section

* bus/config-parser.c (all_are_equiv): fix bug using freed string
in error case
/external/dbus/bus/driver.c
62e465339a306fa564b69935da494dad6e1b474a 17-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-17 Havoc Pennington <hp@redhat.com>

* dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits

* Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
of an 8-bit type. Now dbus_bool_t is the type to use whenever you
are marshaling/unmarshaling a boolean.
/external/dbus/bus/driver.c
31988af4089f3793940417535f8eabaae1ac26c8 16-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-16 Havoc Pennington <hp@redhat.com>

* Add and fix docs according to Doxygen warnings throughout
source.

* dbus/dbus-marshal-recursive.c
(_dbus_type_reader_array_is_empty): change this to just call
array_reader_get_array_len() and make it static

* dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
from get_array_type
(dbus_message_iter_init_append): rename from append_iter_init

* dbus/dbus-marshal-recursive.c
(_dbus_type_reader_get_element_type): rename from
_dbus_type_reader_get_array_type
/external/dbus/bus/driver.c
9c3d566e95c9080f6040c64531b0ccae22bd5d74 15-Jan-2005 Havoc Pennington <hp@redhat.com> 2005-01-15 Havoc Pennington <hp@redhat.com>

* Land the new message args API and type system.

This patch is huge, but the public API change is not
really large. The set of D-BUS types has changed somewhat,
and the arg "getters" are more geared toward language bindings;
they don't make a copy, etc.

There are also some known issues. See these emails for details
on this huge patch:
http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
http://lists.freedesktop.org/archives/dbus/2005-January/001922.html

* dbus/dbus-marshal-*: all the new stuff

* dbus/dbus-message.c: basically rewritten

* dbus/dbus-memory.c (check_guards): with "guards" enabled, init
freed blocks to be all non-nul bytes so using freed memory is less
likely to work right

* dbus/dbus-internals.c (_dbus_test_oom_handling): add
DBUS_FAIL_MALLOC=N environment variable, so you can do
DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
thorough.

* qt/message.cpp: port to the new message args API
(operator<<): use str.utf8() rather than str.unicode()
(pretty sure this is right from the Qt docs?)

* glib/dbus-gvalue.c: port to the new message args API

* bus/dispatch.c, bus/driver.c: port to the new message args API

* dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
"locked" flag to TRUE and align_offset to 0; I guess we never
looked at these anyhow, but seems cleaner.

* dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
move allocation padding macro to this header; use it to implement
(_DBUS_STRING_STATIC): ability to declare a static string.

* dbus/dbus-message.c (_dbus_message_has_type_interface_member):
change to return TRUE if the interface is not set.

* dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
to dbus-marshal-validate.[hc]

* dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
dbus-internals.c

* dbus/Makefile.am: cut over from dbus-marshal.[hc]
to dbus-marshal-*.[hc]

* dbus/dbus-object-tree.c (_dbus_decompose_path): move this
function here from dbus-marshal.c
/external/dbus/bus/driver.c
dbdea921b5967ed25b24a9e5af5d6a3db54c5ec7 26-Nov-2004 Havoc Pennington <hp@redhat.com> 2004-11-25 Havoc Pennington <hp@redhat.com>

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.
/external/dbus/bus/driver.c
85f8f62da6bb26d7033310af9d3260b073efe4bf 24-Sep-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> * doc/dbus-specification.xml: document ServiceOwnerChanged signal.

* 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.
/external/dbus/bus/driver.c
1658c8afe59166c9aa77549a3ac6a2e389327638 17-Sep-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.

* 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.
/external/dbus/bus/driver.c
2091cdd4e1c58318ac75533e2ea4a92292e1783c 26-Aug-2004 Jon Trowbridge <trow@ximian.com> 2004-08-26 Jon Trowbridge <trow@ximian.com>

* 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.
/external/dbus/bus/driver.c
8a2c91b8a549402040c94b45b063311975583efd 25-Aug-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> * bus/config-parser.c (set_limit):
* 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.
/external/dbus/bus/driver.c
43605a6f4e78a8c28afb4b1e924dff0301e0e95c 10-Aug-2004 Havoc Pennington <hp@redhat.com> 2004-08-09 Havoc Pennington <hp@redhat.com>

* COPYING: switch to Academic Free License version 2.1 instead of
2.0, to resolve complaints about patent termination clause.
/external/dbus/bus/driver.c
c9c0adce43caa00345ad2aeb55822eabde523c2c 19-Jul-2004 David Zeuthen <davidz@redhat.com> 2004-07-19 David Zeuthen <david@fubar.dk>

* dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN

* bus/dispatch.c:
(check_get_connection_unix_user): Debug says GetProperty; but the
method is called GetConnectionUnixUser
(check_get_connection_unix_process_id): New function
(bus_dispatch_test): Actually call check_get_connection_unix_user();
also call check_get_connection_unix_process_id()

* bus/driver.c:
(bus_driver_handle_get_connection_unix_process_id): New function,
handles GetConnectionUnixProcessID on the org.freedesktop.DBus
interface

* dbus/dbus-auth.c:
(handle_server_data_external_mech): Set pid from the credentials
obtained from the socket

* dbus/dbus-connection.c:
(dbus_connection_get_unix_process_id): New function

* dbus/dbus-connection.h:
Add prototype for dbus_connection_get_unix_process_id

* dbus/dbus-transport.c:
(_dbus_transport_get_unix_process_id): New function

* dbus/dbus-transport.h:
Add prototype for _dbus_transport_get_unix_process_id
/external/dbus/bus/driver.c
2779cbf9766859d9fa6f693eb75732d226c496cd 28-Jun-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> * bus/driver.c (bus_driver_handle_get_connection_unix_user)
* dbus/bus.c (dbus_bus_get_unix_user)
* doc/dbus-specification.xml: implement GetConnectionUnixUser
method of org.freedesktop.DBus interface.

* bus/dispatch.c: test case
/external/dbus/bus/driver.c
7da40340f35b26b83342482aeceacc8ff2d01166 09-Jun-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>

* bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
the reply value of the ServiceExists message.
/external/dbus/bus/driver.c
1919d92d850f247d70cb6821724c4908bf70eeda 20-May-2004 Kristian Høgsberg <krh@redhat.com> Patch from Jon Trowbridge <trow@ximian.com>:

* bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
up a watch that triggers a config reload when one end of the pipe
becomes readable.
(signal_handler): Instead of doing the config reload in our SIGHUP
handler, just write to the reload pipe and let the associated
watch handle the reload when control returns to the main loop.

* bus/driver.c (bus_driver_handle_reload_config): Added.
Implements a ReloadConfig method for requesting a configuration
file reload via the bus driver.
/external/dbus/bus/driver.c
a470eaa0789662d3d3e1f0a23e75c7be2ab574cc 16-Apr-2004 Olivier Andrieu <oliv__a@users.sourceforge.net> 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>

* bus/driver.c (bus_driver_handle_get_service_owner):
implement a GetServiceOwner method.
* doc/dbus-specification.xml: document it.
* dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.

* glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
implement, using the bus GetServiceOwner method.

* test/glib/test-dbus-glib.c:
use dbus_gproxy_new_for_service_owner so that we can receive the
signal.
/external/dbus/bus/driver.c
93f433a17a0aabff91a0384bf9c4f99c9cf30ae1 16-Mar-2004 Richard Hult <richard@imendio.com> 2004-03-16 Richard Hult <richard@imendio.com>

* bus/activation.c: (bus_activation_service_created),
(bus_activation_send_pending_auto_activation_messages),
(bus_activation_activate_service):
* bus/activation.h:
* bus/dispatch.c: (bus_dispatch),
(check_nonexistent_service_auto_activation),
(check_service_auto_activated),
(check_segfault_service_auto_activation),
(check_existent_service_auto_activation), (bus_dispatch_test):
* bus/driver.c: (bus_driver_handle_activate_service):
* bus/services.c: (bus_registry_acquire_service):
* dbus/dbus-message.c: (dbus_message_set_auto_activation),
(dbus_message_get_auto_activation):
* dbus/dbus-message.h:
* dbus/dbus-protocol.h: Implement auto-activation.
/external/dbus/bus/driver.c
a1df3040f29223eddaa3ace0fe018fcb28cddcd9 02-Dec-2003 Richard Hult <richard@imendio.com> 2003-12-02 Richard Hult <richard@imendio.com>

* Update AFL version to 2.0 throughout the source files to reflect
the update that was done a while ago.
/external/dbus/bus/driver.c
75742242000e782719bc1656f0a7da72b059e88e 21-Oct-2003 Havoc Pennington <hp@redhat.com> 2003-10-20 Havoc Pennington <hp@redhat.com>

hmm, make check is currently not passing.

* doc/dbus-specification.xml: add requirement that custom type
names follow the same rules as interface names.

* dbus/dbus-protocol.h: change some of the byte codes, to avoid
duplication and allow 'c' to be 'custom'; dict is now 'm' for
'map'

* doc/dbus-specification.xml: update type codes to match
dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
CUSTOM. Add type OBJECT_PATH to the spec.

2003-10-17 Havoc Pennington <hp@redhat.com>

* bus/driver.c (create_unique_client_name): use "." as separator
in base service names instead of '-'

* dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
byte at the end of the string

* dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
optimization macros since string validation seems to be a slow
point.

* doc/dbus-specification.xml: restrict valid
service/interface/member/error names. Add test suite code for the
name validation.

* dbus/dbus-string.c: limit service/interface/member/error names
to [0-9][A-Z][a-z]_

* dbus/dbus-connection.c (dbus_connection_dispatch): add missing
format arg to verbose spew

* glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
memory, return instead of g_error

* test/test-service.c (path_message_func): support emitting a
signal on request

* dbus/dbus-bus.c (init_connections_unlocked): only fill in
activation bus type if DBUS_BUS_ACTIVATION was set; default to
assuming the activation bus was the session bus so that services
started manually will still register.
(init_connections_unlocked): fix so that in OOM situation we get
the same semantics when retrying the function

* test/test-service.c (main): change to use path registration, to
test those codepaths; register with DBUS_BUS_ACTIVATION rather
than DBUS_BUS_SESSION
/external/dbus/bus/driver.c
3251264ac483680b4a5fe808729f7e3b34f41fd4 15-Oct-2003 Havoc Pennington <hp@redhat.com> 2003-10-14 Havoc Pennington <hp@redhat.com>

* bus/bus.c (bus_context_check_security_policy): revamp this to
work more sanely with new policy-based requested reply setup

* bus/connection.c (bus_transaction_send_from_driver): set bus
driver messages as no reply

* bus/policy.c (bus_client_policy_check_can_receive): handle a
requested_reply attribute on allow/deny rules

* bus/system.conf: add <allow requested_reply="true"/>

* bus/driver.c (bus_driver_handle_message): fix check for replies
sent to the bus driver, which was backward. How did this ever work
at all though? I think I'm missing something.

* dbus/dbus-message.c (decode_header_data): require error and
method return messages to have a reply serial field to be valid
(_dbus_message_loader_queue_messages): break up this function;
validate that reply serial and plain serial are nonzero;
clean up the OOM/error handling.
(get_uint_field): don't return -1 from this
(dbus_message_create_header): fix signed/unsigned bug

* bus/connection.c (bus_connections_expect_reply): save serial of
the incoming message, not reply serial
/external/dbus/bus/driver.c
a683a80c409cc4f2e57ba6a3e60d52f91b8657d0 21-Sep-2003 Havoc Pennington <hp@redhat.com> 2003-09-21 Havoc Pennington <hp@pobox.com>

Get matching rules mostly working in the bus; only actually
parsing the rule text remains. However, the client side of
"signal connections" hasn't been started, this patch is only the
bus side.

* dbus/dispatch.c: fix for the matching rules changes

* bus/driver.c (bus_driver_handle_remove_match)
(bus_driver_handle_add_match): send an ack reply from these
method calls

* glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
arguments, reported by Seth Nickell

* bus/config-parser.c (append_rule_from_element): support
eavesdrop=true|false attribute on policies so match rules
can be prevented from snooping on the system bus.

* bus/dbus-daemon-1.1.in: consistently use terminology "sender"
and "destination" in attribute names; fix some docs bugs;
add eavesdrop=true|false attribute

* bus/driver.c (bus_driver_handle_add_match)
(bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
messages

* dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
rid of broadcast service concept, signals are just always broadcast

* bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
mostly implement matching rules stuff (currently only exposed as signal
connections)
/external/dbus/bus/driver.c
5fd1e389e1c1c12ad4a55c2af6abdc8e7a2f6d41 31-Aug-2003 Havoc Pennington <hp@redhat.com> 2003-08-30 Havoc Pennington <hp@pobox.com>

* test/data/valid-config-files/system.d/test.conf: change to
root for the user so warnings don't get printed

* dbus/dbus-message.c: add dbus_message_get_path,
dbus_message_set_path

* dbus/dbus-object-tree.c (do_test_dispatch): add test of
dispatching to a path

* dbus/dbus-string.c (_dbus_string_validate_path): add

* dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
(_dbus_marshal_object_path): implement

* dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
to contain the path to the target object
(DBUS_HEADER_FIELD_SENDER_SERVICE): rename
DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
/external/dbus/bus/driver.c
68a3c593b9e77b33614726363c7b6fd85d113021 19-Aug-2003 Havoc Pennington <hp@redhat.com> 2003-08-18 Havoc Pennington <hp@redhat.com>

* dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix

* dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
dumb bug created earlier (wrong order of args to
decode_header_data())

* tools/dbus-send.c: port

* tools/dbus-print-message.c (print_message): port

* test/data/*messages: port all messages over

* dbus/dbus-message-builder.c: support including
message type

* bus/driver.c: port over

* bus/dispatch.c: port over to new stuff

* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
rename disconnect signal to "Disconnected"
/external/dbus/bus/driver.c
1d1b0f20a467cf1cbdcaf81fbad3a111bcff6c48 12-Aug-2003 Havoc Pennington <hp@redhat.com> 2003-08-12 Havoc Pennington <hp@pobox.com>

* bus/dispatch.c (bus_dispatch): make this return proper
DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD

* dbus/dbus-errors.c (dbus_set_error): use
_dbus_string_append_printf_valist

* dbus/dbus-string.c (_dbus_string_append_printf_valist)
(_dbus_string_append_printf): new

* dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
UNKNOWN_METHOD

* dbus/dbus-connection.c (dbus_connection_dispatch): handle
DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
message is unhandled.
/external/dbus/bus/driver.c
b29ea9115ea3277354b7ccbe442026279220f4ac 11-Aug-2003 Havoc Pennington <hp@redhat.com> 2003-08-10 Havoc Pennington <hp@pobox.com>

* tools/dbus-send.c (main): add --type argument, for now
supporting only method_call and signal types.

* tools/dbus-print-message.c: print message type

* dbus/dbus-connection.c (_dbus_connection_new_for_transport):
init connection->objects

* doc/dbus-specification.sgml: fix sgml

* bus/*.c: port over to object-instance API changes

* test/test-service.c: ditto

* dbus/dbus-message.c (dbus_message_create_header): allow #NULL
name, we will have to fix up the rest of the code to also handle
this
(dbus_message_new): generic message-creation call
(set_string_field): allow appending name field
/external/dbus/bus/driver.c
e9cb382daf7cef6396d1777c99f27a050f7ad4a8 14-May-2003 James Willcox <jwillcox@gnome.org> 2003-05-13 James Willcox <jwillcox@gnome.org>

* configure.in:
* bus/activation.c: (bus_activation_service_created),
(bus_activation_activate_service):
* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_send_service_lost),
(bus_driver_send_service_acquired),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services):
* bus/session.conf.in:
* dbus/dbus-bus.c: (dbus_bus_acquire_service),
(dbus_bus_service_exists), (dbus_bus_activate_service):
* dbus/dbus-bus.h:

Add some convenience API which lets you activate a service, and did a
bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
and dbus_message_get_args()
/external/dbus/bus/driver.c
e8d396efef695b9868b0112c4a6266c97678fa8a 27-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-27 Havoc Pennington <hp@pobox.com>

Unbreak my code...

* dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
report correct status if we finish processing authentication
inside this function.

* bus/activation.c (try_send_activation_failure): use
bus_transaction_send_error_reply

* bus/connection.c (bus_connection_get_groups): return an error
explaining the problem

* bus/bus.c (bus_context_check_security_policy): implement
restriction here that inactive connections can only send the
hello message. Also, allow bus driver to send anything to
any recipient.

* bus/connection.c (bus_connection_complete): create the
BusClientPolicy here instead of on-demand.
(bus_connection_get_policy): don't return an error

* dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
sender field in message being replied to

* bus/bus.c (bus_context_check_security_policy): fix silly typo
causing it to return FALSE always

* bus/policy.c (bus_client_policy_check_can_send): fix bug where
we checked sender rather than destination
/external/dbus/bus/driver.c
b3bd48edfc1aab0a9dc64bfa4c380d845d218e73 26-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-25 Havoc Pennington <hp@redhat.com>

test suite is slightly hosed at the moment, will fix soon

* bus/connection.c (bus_connections_expire_incomplete): fix to
properly disable the timeout when required
(bus_connection_set_name): check whether we can remove incomplete
connections timeout after we complete each connection.

* dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
probably still broken.

* bus/services.c (bus_registry_acquire_service): implement max
number of services owned, and honor allow/deny rules on which
services a connection can own.

* bus/connection.c (bus_connection_get_policy): report errors here

* bus/activation.c: implement limit on number of pending
activations
/external/dbus/bus/driver.c
c9cd648f115759176d35508e9007dc5520a0dd3f 24-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-24 Havoc Pennington <hp@redhat.com>

* configure.in: add --enable-checks

* dbus/dbus-message.c (dbus_message_new): reverse name/service arguments

* dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
to use thread locks.
(_dbus_connection_handler_destroyed_locked): move some private
functions into proper docs group

* dbus/dbus-internals.h: add _dbus_return_if_fail,
_dbus_return_val_if_fail

Throughout: use dbus_return_if_fail
/external/dbus/bus/driver.c
983200f912f41ba75a873c011bfbcd3b0285bf4c 19-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-19 Havoc Pennington <hp@pobox.com>

* bus/driver.c (bus_driver_handle_hello): check limits and
return an error if they are exceeded.

* bus/connection.c: maintain separate lists of active and inactive
connections, and a count of each. Maintain count of completed
connections per user. Implement code to check connection limits.

* dbus/dbus-list.c (_dbus_list_unlink): export

* bus/bus.c (bus_context_check_security_policy): enforce a maximum
number of bytes in the message queue for a connection
/external/dbus/bus/driver.c
4219b08bfa318443419c7a3acde28f0b237b05fe 17-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-17 Havoc Pennington <hp@redhat.com>

* dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
there was an OOM watch we skipped, we always return TRUE so we
iterate again to have a look at it again. Fixes test suite hang.
Code rearrangement also lets us lose some memset and only iterate
over callbacks once.

* bus/driver.c (bus_driver_handle_message): sense of test for
reply was backward
/external/dbus/bus/driver.c
dac0a1f8933889fd94fed7fecdcc4ec6fb3a3fb0 17-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-16 Havoc Pennington <hp@pobox.com>

* doc/dbus-specification.sgml: make spec say serials are unsigned

* dbus/dbus-message.h: change message serials to unsigned

* dbus/dbus-connection.c: adapt to message serials being unsigned
/external/dbus/bus/driver.c
777707ed8dff6958972a93894a87ec1945c65c14 14-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-13 Havoc Pennington <hp@pobox.com>

* dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
callbacks

* test/data/valid-config-files/debug-allow-all.conf.in: allow all
users

* dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
fix to only recover unused bytes if we're already authenticated
(_dbus_transport_get_is_authenticated): fix to still mark us
authenticated if there are unused bytes.

* bus/dispatch.c: implement security policy checking

* bus/connection.c (bus_transaction_send_from_driver): new

* bus/bus.c (bus_context_check_security_policy): new

* bus/dispatch.c (send_service_nonexistent_error): delete this,
now we just set the DBusError and it gets converted to an error
reply.

* bus/connection.c (allow_user_function): enable code using actual
data from the config file

* bus/policy.c (list_allows_user): handle wildcard rules for
user/group connection perms
/external/dbus/bus/driver.c
eb63ba5039c8afe61210cf2b217ec75b4a86356e 11-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-10 Havoc Pennington <hp@pobox.com>

* dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
the possible parent failures before we fork, so that we don't
fail to create a babysitter after creating the child.

* bus/activation.c (bus_activation_activate_service): kill child
if we don't successfully complete the activation.
/external/dbus/bus/driver.c
6be547d32f018c23ba56426a0bccd08baa2cf440 11-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-10 Havoc Pennington <hp@redhat.com>

* dbus/dbus-connection.c (dbus_connection_flush): don't spin on
the connection if it's disconnected

* bus/activation.c (bus_activation_service_created): use new
transaction features to roll back removal of pending activation if
we don't successfully create the service after all. Don't remove
pending activation if the function fails.

* dbus/dbus-list.c (_dbus_list_insert_before_link)
(_dbus_list_insert_after_link): new code to facilitate
services.c fixes

* dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
new functionality, so we can preallocate the ability to insert
into a hash table.

* bus/connection.c (bus_transaction_add_cancel_hook): new function
allowing us to put custom hooks in a transaction to be used for
cancelling said transaction

* doc/dbus-specification.sgml: add some discussion of secondary
service owners, and disallow zero-length service names

* bus/services.c (bus_registry_acquire_service): new function,
splits out part of bus_driver_handle_acquire_service() and fixes
a bug where we didn't remove the service doing the acquiring
from the secondary queue if we failed to remove the current owner
from the front of the queue.
/external/dbus/bus/driver.c
51781f541094a4936d47119cd62682e0431c41e9 10-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-10 Havoc Pennington <hp@pobox.com>

* bus/dispatch.c: lots of fixes

* dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
(_dbus_loop_iterate): remove old "quit if no callbacks" code,
that was crack, broke the test service.

* dbus/dbus-transport.c (_dbus_transport_open): fix error
handling to avoid piling up errors if we get a failure on the
first address.

* dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
pid in assertion failures.

* dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
to some fixed size of file descriptor array. Don't return TRUE
anytime a timeout exists, that led to lots of busy loop silliness
in the tests.
/external/dbus/bus/driver.c
1708094c0e00ab433bb0a51981f8b77d24aee256 09-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-09 Havoc Pennington <hp@redhat.com>

* dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
a memory leak

* bus/dispatch.c (check_service_activated): fix bug in test

* dbus/dbus-mainloop.c (check_timeout): fix this up

* dbus/dbus-internals.c (_dbus_verbose_real): include PID in
verbose output so we can sort out output from different processes,
e.g. in the activation case.
/external/dbus/bus/driver.c
6c241c1035a74f9ad4a526424a0be5c816bc61cb 08-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-08 Havoc Pennington <hp@redhat.com>

* bus/driver.c (bus_driver_handle_acquire_service): init
retval/reply before checking name

* dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
recursion depth argument

* dbus/dbus-message.h (struct DBusMessageIter): put some padding
in the public struct for future extension

* dbus/dbus-message-builder.c (_dbus_message_data_load): fix
typo

* dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
message

* doc/dbus-specification.sgml: fix typo
/external/dbus/bus/driver.c
c5020ac870c5990a36c3576453cc23431213e8bf 08-Apr-2003 Alexander Larsson <alexl@redhat.com> 2003-04-08 Alexander Larsson <alexl@redhat.com>

Implemented recursive types, named types and new-style iters

* bus/driver.c:
* glib/test-thread-client.c: (thread_func):
* glib/test-thread-server.c: (handle_test_message):
* test/test-service.c: (handle_echo):
Update to new api

* dbus/Makefile.am:
* dbus/dbus-dict.c:
* dbus/dbus-dict.h:
* dbus/dbus.h
Remove DBusDict

* dbus/dbus-internals.c: (_dbus_type_to_string):
Update for new types.

* dbus/dbus-marshal.[ch]:
Implement recursive types and the new marshalling format.
Remove hardcoded dict marshalling.
Marshal named types.

* dbus/dbus-message-builder.c:
Add BYTE_ARRAY.
Remove references to old types

* dbus/dbus-message.[ch]:
New non-refcounted iter API that supports recursive iters.
Use iters for appending, including support for recursive
iters.
Add byte and named type support.
Update everything to new marshalling formats.
Add tests for new API.

* dbus/dbus-protocol.h:
Remove old array types.
Add types: BYTE, ARRAY, DICT, NAMED

* dbus/dbus-string.c:
* dbus/dbus-sysdeps.c:
Make parse_double locale safe.

* dbus/dbus-test-main.c:
Call setlocale.

* dbus/dbus-test.c:
Kill dict test

* doc/dbus-specification.sgml:
Update spec

* test/data/incomplete-messages/missing-body.message:
* test/data/invalid-messages/bad-boolean.message:
* test/data/invalid-messages/bad-boolean-array.message:
* test/data/invalid-messages/boolean-array-length-too-long.message-raw:
* test/data/invalid-messages/boolean-has-no-value.message-raw:
* test/data/invalid-messages/too-short-dict.message:
* test/data/valid-messages/dict-simple.message:
* test/data/valid-messages/dict.message:
* test/data/valid-messages/emptiness.message:
* test/data/valid-messages/lots-of-arguments.message:
* test/data/valid-messages/no-padding.message:
* test/data/valid-messages/recursive-types.message:
Add missing NAME fields
Fix up dicts & arrays

* test/data/invalid-messages/dict-with-nil-value.message:
Removed, this is not invalid anymore.

* test/data/valid-messages/recursive-types.message:
Add new test for deeply recursive types.
/external/dbus/bus/driver.c
a162febe6746269f51b3a16db5f6fb240001f828 08-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-07 Havoc Pennington <hp@pobox.com>

* bus/driver.c (bus_driver_handle_acquire_service): return an
error if you try to acquire a service that starts with ':'
/external/dbus/bus/driver.c
c8991b0f95a3b53bc98de9e029780bbe0a0b3114 06-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-06 Havoc Pennington <hp@pobox.com>

* bus/bus.c (bus_context_new): print the address in here, rather
than in main(), because we need to do it before forking the daemon

* bus/dispatch.c (send_service_nonexistent_error): set the sender
on the service nonexistent error

* bus/driver.c (bus_driver_handle_acquire_service): set the
sender on the AcquireService reply

* test/data/valid-config-files/debug-allow-all.conf.in: Make test
server also listen on a UNIX socket so services can connect to it.
/external/dbus/bus/driver.c
e55fd2c6706e41f6933e1656ac3da7527ee2514f 02-Apr-2003 Havoc Pennington <hp@redhat.com> 2003-04-02 Havoc Pennington <hp@redhat.com>

* bus/connection.c (bus_transaction_send_error_reply): set sender
service for the error, and unref the reply on success

* bus/activation.c: convert to use BusTransaction so OOM can be
handled correctly
(bus_activation_service_created): set sender of the message
/external/dbus/bus/driver.c
fa05de9230d62e7c427b5313796fc6ccd4d0ff60 31-Mar-2003 Havoc Pennington <hp@redhat.com> 2003-03-31 Havoc Pennington <hp@redhat.com>

Fix some annoying DBusString API and fix all affected code.

* dbus/dbus-string.c (_dbus_string_init): get rid of annoying
max_length argument
(_dbus_string_get_data): change to return string instead of using
an out param
(_dbus_string_get_const_data): ditto
(_dbus_string_get_data_len): ditto
(_dbus_string_get_const_data_len): ditto
/external/dbus/bus/driver.c
90ed1d84588a84697051e643175452c50d682ece 26-Mar-2003 Havoc Pennington <hp@redhat.com> 2003-03-25 Havoc Pennington <hp@redhat.com>

* throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR

* configure.in: add --with-xml option to specify XML library,
right now only libxml is supported.

* bus/config-loader-libxml.c, config-parser.c: sync some minor
nonworking code between home and work, still just stubs
/external/dbus/bus/driver.c
3f4086f0fdd1cc7fc03585ec9f750897fb3c1d55 16-Mar-2003 Anders Carlsson <andersca@codefactory.se> 2003-03-16 Anders Carlsson <andersca@codefactory.se>

* bus/activation.c: (bus_pending_activation_entry_free),
(bus_pending_activation_free), (bus_activation_new),
(bus_activation_unref), (bus_activation_service_created),
(bus_activation_activate_service):
* bus/activation.h:
* bus/bus.c: (bus_context_new):
* bus/desktop-file.c: (new_section):
* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_handle_activate_service):
* bus/services.c: (bus_registry_new), (bus_registry_ensure):
* bus/services.h:
* dbus/dbus-connection.c:
(dbus_connection_send_with_reply_and_block):
* dbus/dbus-message.c: (dbus_message_append_args_valist):
* dbus/dbus-protocol.h:
Make activation work better. Now pending activations will be queued
and the daemon won't try to activate services that are already registered.
/external/dbus/bus/driver.c
6ecc14ffabcffb69aa938a67940db48272e05046 13-Mar-2003 Havoc Pennington <hp@redhat.com> 2003-03-12 Havoc Pennington <hp@pobox.com>

Throughout: purge global variables, introduce BusActivation,
BusConnections, BusRegistry, etc. objects instead.

* bus/bus.h, bus/bus.c: introduce BusContext as a global
message bus object

* test/Makefile.am (TEST_BINARIES): disable bus-test for now,
going to redo this a bit differently I think
/external/dbus/bus/driver.c
29560adcc79a259a0be3511c056ee7453aa26c04 13-Mar-2003 Havoc Pennington <hp@redhat.com> 2003-03-12 Havoc Pennington <hp@redhat.com>

Mega-patch that gets the message bus daemon initially handling
out-of-memory. Work still needed. Also lots of random
moving stuff to DBusError instead of ResultCode.

* dbus/dbus-list.c (_dbus_list_length_is_one): new function

* dbus/dbus-connection.c
(dbus_connection_send_with_reply_and_block): use DBusError

* dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
DBusResultCode

* dbus/dbus-connection.c (dbus_connection_send): drop the result
code here, as the only failure possible is OOM.

* bus/connection.c (bus_connection_disconnect):
rename bus_connection_disconnected as it's a notification only

* bus/driver.c (bus_driver_handle_acquire_service): don't free
"name" on get_args failure, should be done by get_args;
don't disconnect client for bad args, just return an error.
(bus_driver_handle_service_exists): ditto

* bus/services.c (bus_services_list): NULL-terminate returned array

* bus/driver.c (bus_driver_send_service_lost)
(bus_driver_send_service_acquired): send messages from driver to a
specific client to the client's unique name, not to the broadcast
service.

* dbus/dbus-message.c (decode_header_data): reject messages that
contain no name field
(_dbus_message_get_client_serial): rename to
dbus_message_get_serial and make public
(_dbus_message_set_serial): rename from set_client_serial
(_dbus_message_set_reply_serial): make public
(_dbus_message_get_reply_serial): make public

* bus/connection.c (bus_connection_foreach): allow stopping
iteration by returning FALSE from foreach function.

* dbus/dbus-connection.c (dbus_connection_send_preallocated)
(dbus_connection_free_preallocated_send)
(dbus_connection_preallocate_send): new API for sending a message
without possibility of malloc failure.
(dbus_connection_send_message): rename to just
dbus_connection_send (and same for whole function family)

* dbus/dbus-errors.c (dbus_error_free): make this reinit the error

* dbus/dbus-sysdeps.c (_dbus_exit): new function

* bus/activation.c: handle/return errors

* dbus/dbus-errors.h: add more DBUS_ERROR #define

* dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
(_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
(_dbus_result_from_errno): move to this file
/external/dbus/bus/driver.c
f116b1282f8482dff6dc797f64270d95f79b53a3 16-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-16 Anders Carlsson <andersca@codefactory.se>

* bus/activation.c: (load_directory), (bus_activation_init),
(bus_activation_activate_service):
* bus/activation.h:
* bus/driver.c:
(bus_driver_handle_activate_service), (bus_driver_handle_message):
More work on the activation handling.

* dbus/dbus-errors.h:
Add some error messages

* dbus/dbus-message.c: (dbus_message_new_error_reply):
* dbus/dbus-message.h:
New function that creates an error message.

* dbus/dbus-protocol.h:
Add ACTIVATE_SERVER message.

* dbus/dbus-server-unix.c: (unix_handle_watch),
(_dbus_server_new_for_domain_socket):
Call _dbus_fd_set_close_on_exec.

* dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
(_dbus_spawn_async), (_dbus_disable_sigpipe),
(_dbus_fd_set_close_on_exec):
* dbus/dbus-sysdeps.h:
Add _dbus_fd_set_close_on exec function. Also add function that checks
that all open fds are set to close-on-exec and warns otherwise.

* dbus/dbus-transport-unix.c:
(_dbus_transport_new_for_domain_socket):
Call _dbus_fd_set_close_on_exec.
/external/dbus/bus/driver.c
97ee8d189948c9f2c86464ca33f82e6daeaedc72 13-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-13 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (bus_driver_handle_hello):
* bus/driver.h:
* bus/services.c: (bus_service_lookup):
Reorder message sending so we get a more sane order.

* test/bus-test.c: (message_handler):
Fix tyop.
/external/dbus/bus/driver.c
aa4b4ef5955606659557a40a2220090ee9c108d4 13-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-13 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_send_service_lost),
(bus_driver_send_service_acquired), (bus_driver_handle_hello),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services),
(bus_driver_handle_acquire_service),
(bus_driver_handle_service_exists):
* dbus/dbus-bus.c: (dbus_bus_register_client),
(dbus_bus_acquire_service), (dbus_bus_service_exists):
* dbus/dbus-errors.c: (dbus_result_to_string):
* dbus/dbus-errors.h:
* dbus/dbus-message.c: (dbus_message_append_args),
(dbus_message_append_args_valist), (dbus_message_get_args),
(dbus_message_get_args_valist), (dbus_message_get_args_iter),
(dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
(dbus_message_iter_get_byte_array),
(dbus_message_iter_get_string_array), (message_iter_test),
(check_message_handling), (_dbus_message_test):
* dbus/dbus-message.h:
* test/bus-test.c: (main):
Change fields to arguments in messages, so that they won't be
confused with header fields.

* glib/test-dbus-glib.c: (main):
Remove append_fields from hello message.
/external/dbus/bus/driver.c
02dfd4fb3427a6afef6b9b99d39de6248a20e0cb 13-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-13 Anders Carlsson <andersca@codefactory.se>

* bus/Makefile.am:
Add utils.[ch]

* bus/connection.c: (bus_connection_foreach):
Fix a warning.

* bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
(unescape_string), (new_section), (parse_section_start),
(parse_key_value), (report_error), (bus_desktop_file_load),
(bus_desktop_file_get_string):
* bus/desktop-file.h:
Use DBusError for error reporting.

* bus/dispatch.c: (send_one_message),
(bus_dispatch_message_handler):
* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_send_service_lost),
(bus_driver_send_service_acquired), (bus_driver_handle_hello),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services),
(bus_driver_handle_acquire_service),
(bus_driver_handle_service_exists):
* bus/loop.c: (bus_loop_run):
* bus/main.c:
Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.

* bus/utils.c: (bus_wait_for_memory):
* bus/utils.h:
New files with general utility functions.

* dbus/dbus-internals.h:
Remove _DBUS_HANDLE_OOM.
/external/dbus/bus/driver.c
34e6c6ff31e0bd27bf18c0e3c68b3a1ea9f0448d 13-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-13 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (bus_driver_send_welcome_message),
(bus_driver_handle_list_services),
(bus_driver_handle_acquire_service),
(bus_driver_handle_service_exists), (bus_driver_handle_message):
Update for API changes in libdbus.

* dbus/dbus-message.c: (dbus_message_new_reply):
* dbus/dbus-message.h:
Remove the name argument. The spec states that replies shouldn't
have a name.
/external/dbus/bus/driver.c
6d5d65dba6471a5fc16a0529855c3746f15bf5c6 02-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-02 Anders Carlsson <set EMAIL_ADDRESS environment variable>

* bus/driver.c: (bus_driver_handle_service_exists):
Simplify the code a bit.

* dbus/dbus-bus.c: (dbus_bus_service_exists):
Fix a silly.
/external/dbus/bus/driver.c
ba60374e251cca8fe351b7dd4def595069323885 02-Feb-2003 James Willcox <jwillcox@gnome.org> 2003-02-01 James Willcox <jwillcox@gnome.org>

* bus/driver.c: (bus_driver_handle_own_service):
Actually include the service reply code in the message.
/external/dbus/bus/driver.c
bfe3127d83384659c22478a96dcd7639c3a3dc08 02-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-02 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (bus_driver_handle_service_exists):
Don't unref the incoming message.
/external/dbus/bus/driver.c
dbc4c0ca13fcc1cdf2be6c35a4559bc456243acb 01-Feb-2003 Anders Carlsson <andersca@codefactory.se> 2003-02-01 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (create_unique_client_name),
(bus_driver_handle_hello):
Don't take a name, just use a numeric id to identify
each client.

* dbus/Makefile.am:
* dbus/dbus-bus.c: (dbus_bus_register_client),
(dbus_bus_acquire_service), (dbus_bus_service_exists):
* dbus/dbus-bus.h:
Add new convenience functions for communicating with the bus.

* dbus/dbus-message.h:

* dbus/dbus-protocol.h:
Fix a typo.
/external/dbus/bus/driver.c
ca84a292179f520df8e2c44a02d285ded95803ff 01-Feb-2003 Havoc Pennington <hp@redhat.com> 2003-01-31 Havoc Pennington <hp@pobox.com>

* doc/dbus-specification.sgml: work on the specification

* dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
the protocol version of the message.

* dbus/dbus-protocol.h: drop special _REPLY names, the spec
no longer specifies that.
(DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
1/2/3/4)

* dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
"break" for DBUS_TYPE_NIL, remove @todo
/external/dbus/bus/driver.c
ee1133de4dc5e181be5d09f084d8823388d5f693 27-Jan-2003 Anders Carlsson <andersca@codefactory.se> 2003-01-27 Anders Carlsson <andersca@codefactory.se>

* bus/dispatch.c: (bus_dispatch_message_handler):
Dispatch messages sent to services.

* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_send_service_lost),
(bus_driver_send_service_acquired):
Add helper functions for sending service related messages.

(bus_driver_send_welcome_message):
Send HELLO_REPLY instead of WELCOME.

(bus_driver_handle_list_services):
Send LIST_SERVICES_REPLY instead of SERVICES.

(bus_driver_handle_own_service),
(bus_driver_handle_service_exists):
New message handlers.

(bus_driver_handle_message):
Invoke new message handlers.

(bus_driver_remove_connection):
Don't remove any services here since that's done automatically
by bus_service_remove_owner now.

* bus/driver.h:
New function signatures.

* bus/services.c: (bus_service_add_owner):
Send ServiceAcquired message if we're the only primary owner.

(bus_service_remove_owner):
Send ServiceAcquired/ServiceLost messages.

(bus_service_set_prohibit_replacement),
(bus_service_get_prohibit_replacement):
Functions for setting prohibit replacement.

(bus_service_has_owner):
New function that checks if a connection is in the owner queue of
a certain service.

* bus/services.h:
Add new function signatures.

* dbus/dbus-list.c: (_dbus_list_test):
Add tests for _dbus_list_remove_last and traversing the list backwards.

* dbus/dbus-list.h:
Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
go any further, so return NULL then.

* dbus/dbus-protocol.h:
Add new messages, service flags and service replies.
/external/dbus/bus/driver.c
50c25505f62786756519ef1e194883360eda82e0 26-Jan-2003 Havoc Pennington <hp@redhat.com> 2003-01-26 Havoc Pennington <hp@pobox.com>

The unit tests pass, but otherwise untested. If it breaks, the
tests should have been better. ;-)

* bus/driver.c (bus_driver_handle_hello): return if we disconnect
the connection.

* dbus/dbus-message.c: redo everything so we maintain
message->header as the only copy of the various fields.
This avoids the possibility of out-of-memory in some cases,
for example dbus_message_lock() can't run out of memory anymore,
and avoids extra copying. Figured I may as well go ahead and do
this since it was busted for dbus_message_lock to not return
failure on OOM, and dbus_message_write_header was totally
unchecked for OOM. Also fixed some random other bugs.

* dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
that strings are nul-terminated. Also, end_pos can be equal
to string length just not greater than, I think.
(_dbus_marshal_set_int32): new function
(_dbus_marshal_set_uint32): new function
(_dbus_marshal_set_string): new function

* dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
a warning, init timeout_list to NULL
(dbus_connection_send_message): don't use uninitialized variable
"serial"

* dbus/dbus-string.c (_dbus_string_replace_len): new function
/external/dbus/bus/driver.c
d5ad082fecbbd803fd89b3574ac137b3fa964bc7 26-Jan-2003 Anders Carlsson <andersca@codefactory.se> 2003-01-26 Anders Carlsson <andersca@codefactory.se>

* bus/driver.c: (bus_driver_handle_hello),
(bus_driver_send_welcome_message):
Plug leaks
/external/dbus/bus/driver.c
39dd1fcee640b4a5a9abb453a9ccd5b7e099ba1c 25-Jan-2003 Anders Carlsson <andersca@codefactory.se> 2003-01-25 Anders Carlsson <andersca@codefactory.se>

* bus/Makefile.am:
* bus/connection.c: (connection_disconnect_handler),
(connection_watch_callback), (bus_connection_setup):
* bus/dispatch.c: (send_one_message),
(bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
(bus_dispatch_add_connection), (bus_dispatch_remove_connection):
* bus/dispatch.h:
* bus/driver.c: (bus_driver_send_service_deleted),
(bus_driver_send_service_created), (bus_driver_handle_hello),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services), (bus_driver_remove_connection),
(bus_driver_handle_message):
* bus/driver.h:
Refactor code, put the message dispatching in its own file. Use
_DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
is disconnected.
/external/dbus/bus/driver.c
a1a53c32422230fb76e8e3bca67c877dd2857563 25-Jan-2003 Havoc Pennington <hp@redhat.com> 2003-01-24 Havoc Pennington <hp@pobox.com>

* dbus/dbus-list.c (alloc_link): put a thread lock on the global
list_pool

* bus/driver.c (bus_driver_handle_list_services): fix a leak
on OOM
/external/dbus/bus/driver.c
a16e83f45d33ae5f3bd5966416c57c8ad4448ae8 25-Jan-2003 Anders Carlsson <andersca@codefactory.se> 2003-01-25 Anders Carlsson <andersca@codefactory.se>

* bus/connection.c: (bus_connection_foreach):
* bus/connection.h:
Add new bus_connection_foreach function.

* bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
Add function that broadcasts a message to all clients.

(bus_driver_send_service_created), (bus_driver_handle_hello),
(bus_driver_send_welcome_message),
(bus_driver_handle_list_services), (bus_driver_message_handler):
Implement functions that take care of listing services, and notifying
clients when new services are created.

* bus/services.c: (bus_services_list):
* bus/services.h:
Add new function that returns an array of strings with the currently
registered services.

* glib/dbus-glib.h:
* glib/dbus-gmain.c:
Update copyright year.
/external/dbus/bus/driver.c
c414488fe62605ebda5e875fc2db05c6b3dd199f 22-Jan-2003 Havoc Pennington <hp@redhat.com> 2003-01-22 Havoc Pennington <hp@pobox.com>

* dbus/dbus-connection.c
(dbus_connection_send_message_with_reply_and_block): add some @todo

* bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
/external/dbus/bus/driver.c
d6d50a29945ded04a17b3f42a3a1074449250ec0 22-Jan-2003 Havoc Pennington <hp@redhat.com> 2003-01-21 Havoc Pennington <hp@pobox.com>

(patch untested because can't compile)

* bus/driver.c (create_unique_client_name): make this function
never recycle client names. Also, caller should initialize
the DBusString.

* dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
/external/dbus/bus/driver.c
aff24a72c18a43dbb6f2d85e6d2226a3c2ea8f10 21-Jan-2003 Anders Carlsson <andersca@codefactory.se> 2003-01-21 Anders Carlsson <andersca@codefactory.se>

* bus/Makefile.am:
Add driver.[ch]

* bus/connection.c: (connection_disconnect_handler):
Remove the connection from the bus driver's list.

(connection_watch_callback): Dispatch messages.

(free_connection_data): Free connection name.

(bus_connection_setup): Add connection to the bus driver's list.
(bus_connection_remove_owned_service):
(bus_connection_set_name), (bus_connection_get_name):
Add functions for setting and getting the connection's name.

* bus/connection.h:
Add function headers.

* bus/driver.c: (create_unique_client_name),
(bus_driver_handle_hello_message),
(bus_driver_send_welcome_message), (bus_driver_message_handler),
(bus_driver_add_connection), (bus_driver_remove_connection):
* bus/driver.h:
* bus/main.c:
* bus/services.c: (bus_service_free):
* bus/services.h:
New file that handles communication and registreation with the bus
itself.
/external/dbus/bus/driver.c