summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog1258
-rw-r--r--dbus/Makefile.am4
-rw-r--r--dbus/dbus-connection-internal.h1
-rw-r--r--dbus/dbus-connection.c16
-rw-r--r--dbus/dbus-connection.h1
-rw-r--r--dbus/dbus-object-registry.c325
-rw-r--r--dbus/dbus-object-registry.h50
-rw-r--r--dbus/dbus-object.c27
-rw-r--r--dbus/dbus-object.h85
-rw-r--r--dbus/dbus-objectid.h4
-rw-r--r--dbus/dbus-test.c6
-rw-r--r--dbus/dbus-test.h1
-rw-r--r--dbus/dbus.h1
13 files changed, 1155 insertions, 624 deletions
diff --git a/ChangeLog b/ChangeLog
index 527ad1fd..9ed9055c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,22 @@
+2003-07-08 Havoc Pennington <hp@pobox.com>
+
+ * dbus/dbus-object.h: sketch out an API for registering objects
+ with a connection, that allows us to use as little as 24 bytes
+ per object and lets application code represent an object in
+ any conceivable way.
+
+ * dbus/dbus-object-registry.c: implement the hard bits of the
+ DBusConnection aspect of object API. Not yet wired up.
+
2003-07-06 Havoc Pennington <hp@pobox.com>
* dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
(_dbus_marshal_object_id): new
(_dbus_demarshal_object_id): new
(_dbus_marshal_get_arg_end_pos): support object ID type, and
- consolidate identical switch cases. Don't conditionalize handling
+ consolidate identical switch cases. Don't conditionalize handling
of DBUS_TYPE_UINT64, need to handle the type always.
- (_dbus_marshal_validate_arg): consolidate identical cases, and
+ (_dbus_marshal_validate_arg): consolidate identical cases, and
handle DBUS_TYPE_OBJECT_ID
* dbus/dbus-objectid.c: new file with DBusObjectID data type.
@@ -26,7 +36,7 @@
2003-07-01 Havoc Pennington <hp@redhat.com>
- * doc/dbus-specification.sgml: clarify the format of a type code,
+ * doc/dbus-specification.sgml: clarify the format of a type code,
change suggested by Jim Blandy
2003-06-29 Miloslav Trmac <mitr@volny.cz>
@@ -44,7 +54,7 @@
of %c%c%c%c.
(dbus_message_new): Remove obsolete @todo.
- * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
+ * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
(_dbus_marshal_set_uint64): Fix comment.
* dbus/dbus-message.c (append_int_field, append_uint_field): Don't
@@ -77,7 +87,7 @@
(Message.Message):
* gcj/org/freedesktop/dbus/natMessage.cc:
Fix the build system.
-
+
2003-06-22 Havoc Pennington <hp@pobox.com>
* mono/Connection.cs: add more bindings
@@ -87,13 +97,13 @@
2003-06-22 Havoc Pennington <hp@pobox.com>
- * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
+ * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
Start wrapping more stuff.
2003-06-22 Havoc Pennington <hp@pobox.com>
* mono/Message.cs: implement Message.Wrap() that ensures we only
- have a single C# wrapper per DBusMessage, assuming it works which
+ have a single C# wrapper per DBusMessage, assuming it works which
it probably doesn't.
* dbus/dbus-message.c (dbus_message_allocate_data_slot): new
@@ -105,9 +115,9 @@
* dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
(_dbus_data_slot_allocator_alloc): rework these to keep a
- reference count on each slot and automatically manage a global
+ reference count on each slot and automatically manage a global
slot ID variable passed in by address
-
+
* bus/bus.c: convert to new dataslot API
* dbus/dbus-bus.c: convert to new dataslot API
@@ -133,9 +143,9 @@
2003-06-22 Havoc Pennington <hp@pobox.com>
- * mono/*, gcj/*, configure.in, Makefile.am:
- Check in makefiles and subdirs for mono and gcj bindings.
- Neither binding actually exists, just trying to get through
+ * mono/*, gcj/*, configure.in, Makefile.am:
+ Check in makefiles and subdirs for mono and gcj bindings.
+ Neither binding actually exists, just trying to get through
all the build and other boring bits.
2003-06-21 Philip Blundell <philb@gnu.org>
@@ -146,7 +156,7 @@
2003-06-20 Anders Carlsson <andersca@codefactory.se>
- * dbus/dbus-transport-unix.c (unix_handle_watch): Check
+ * dbus/dbus-transport-unix.c (unix_handle_watch): Check
for hangup and error after checking read so we won't discard
pending data if both hangup and read are set.
@@ -155,9 +165,9 @@
* tools/dbus-print-message.c (print_message): Handle BOOLEAN.
* tools/dbus-send.c: Accept both --system and --session.
-
+
* tools/dbus-monitor.c: Same here.
-
+
2003-06-19 Anders Carlsson <andersca@codefactory.se>
* glib/dbus-glib.h: Fix so that dbus-glib.h can be used
@@ -201,13 +211,13 @@
toggle as an argument, implement abstract namespace support
(_dbus_listen_unix_socket): ditto
- * configure.in: add --enable-abstract-sockets and implement
+ * configure.in: add --enable-abstract-sockets and implement
a configure check for autodetection of the right value.
2003-06-01 Havoc Pennington <hp@pobox.com>
- * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
- in /tmp (though on Linux this will end up being useless,
+ * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
+ in /tmp (though on Linux this will end up being useless,
when we add abstract namespace support)
* configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
@@ -226,29 +236,29 @@
* tools/dbus-send.c: Don't exit with an error code if --help was
passed. Default to using the session bus instead of the system
one.
-
- * tools/dbus-launch.c: Ditto.
+
+ * tools/dbus-launch.c: Ditto.
* tools/dbus-monitor.c: Ditto.
* tools/dbus-send.1: Update with new arguments.
-
+
* tools/dbus-launch.c: Emit code to export variables. New
arguments -s and -c to specify shell syntax, and a bit of code to
autodetect syntax. Also, allow specifying a program to run.
-
+
* tools/dbus-launch.1: Update with new arguments.
-
+
* tools/dbus-send.1: Ditto.
* tools/dbus-monitor.1: Ditto.
-
+
2003-05-17 Havoc Pennington <hp@pobox.com>
* bus/config-parser.c (merge_included): merge in policies from
child configuration file.
- * bus/policy.c (bus_policy_merge): function to merge two policies
+ * bus/policy.c (bus_policy_merge): function to merge two policies
together
2003-05-16 Havoc Pennington <hp@redhat.com>
@@ -257,12 +267,12 @@
* tools/dbus-send.c: add --print-reply command line option
- * tools/dbus-print-message.h (print_message): new util function
+ * tools/dbus-print-message.h (print_message): new util function
shared by dbus-send and dbus-monitor
* tools/dbus-monitor.c (handler_func): exit on disconnect
- * dbus/dbus-transport-unix.c (do_reading): if the transport is
+ * dbus/dbus-transport-unix.c (do_reading): if the transport is
disconnected, don't try to use the read_watch
* dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
@@ -301,7 +311,7 @@
check" as it broke distcheck
* bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
-
+
2003-05-13 James Willcox <jwillcox@gnome.org>
* configure.in:
@@ -323,18 +333,18 @@
2003-05-11 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
+ * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
calling _dbus_marshal_validate_arg() for every byte in a byte
array, etc.
- * dbus/dbus-message-handler.c: use atomic reference counting to
+ * dbus/dbus-message-handler.c: use atomic reference counting to
reduce number of locks slightly; the global lock in here sucks
* dbus/dbus-connection.c
(_dbus_connection_update_dispatch_status_and_unlock): variant of
update_dispatch_status that can be called with lock held; then use
in a couple places to reduce locking/unlocking
- (dbus_connection_send): hold the lock over the whole function
+ (dbus_connection_send): hold the lock over the whole function
instead of acquiring it twice.
* dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
@@ -350,7 +360,7 @@
* dbus/dbus-list.c (_dbus_list_find_last): new function
* dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
- change to use a struct for the atomic type; fix docs,
+ change to use a struct for the atomic type; fix docs,
they return value before increment, not after increment.
* dbus/dbus-string.c (_dbus_string_append_4_aligned)
@@ -367,8 +377,8 @@
* dbus/dbus-string.c (_dbus_string_move): just call
_dbus_string_move_len
- (_dbus_string_move_len): add a special case for moving
- an entire string into an empty string; we can just
+ (_dbus_string_move_len): add a special case for moving
+ an entire string into an empty string; we can just
swap the string data instead of doing any reallocs.
(_dbus_string_init_preallocated): new function
@@ -379,14 +389,14 @@
UTF-8 validation as hot spots. 20% of lock contention eliminated
with dbus_atomic_inc/dec implementation on x86. Much remaining
contention is global mempool locks for GList and DBusList.
-
+
* dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
x86 implementation
* dbus/dbus-connection.c (struct DBusConnection): use
- dbus_atomic_t for the reference count
+ dbus_atomic_t for the reference count
- * dbus/dbus-message.c (struct DBusMessage): declare
+ * dbus/dbus-message.c (struct DBusMessage): declare
dbus_atomic_t values as volatile
* configure.in: code to detect ability to use atomic integer
@@ -395,22 +405,22 @@
* dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
time, tired of it being wrong in threads and forked processes
- * glib/test-profile.c: a little program to bounce messages back
+ * glib/test-profile.c: a little program to bounce messages back
and forth between threads and eat CPU
* dbus/dbus-connection.c: add debug spew macros for debugging
- thread locks; include config.h at top; fix deadlock in
+ thread locks; include config.h at top; fix deadlock in
dbus_connection_flush()
2003-05-08 Havoc Pennington <hp@pobox.com>
* dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
- data from getting written, and there wasn't a good reason to
+ data from getting written, and there wasn't a good reason to
use _exit really.
* test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
dbus_verbose lines in test coverage
- (main): add list of functions sorted by # of untested blocks
+ (main): add list of functions sorted by # of untested blocks
to the coverage report
* dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
@@ -451,14 +461,14 @@
2003-05-04 Havoc Pennington <hp@pobox.com>
- * dbus-glib-1.pc.in (Requires): fix dependencies, from
+ * dbus-glib-1.pc.in (Requires): fix dependencies, from
Anders Gustafsson
2003-05-04 Havoc Pennington <hp@pobox.com>
* tools/dbus-launch.c: implement
- * bus/main.c (main), bus/bus.c (bus_context_new):
+ * bus/main.c (main), bus/bus.c (bus_context_new):
implement --print-pid and --fork
2003-05-03 Havoc Pennington <hp@redhat.com>
@@ -475,7 +485,7 @@
* tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
dbus-launch utility to launch the bus from a shell script. Didn't
actually implement dbus-launch yet, it's just a placeholder still.
-
+
2003-05-03 Havoc Pennington <hp@pobox.com>
* bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
@@ -485,7 +495,7 @@
2003-05-03 Havoc Pennington <hp@pobox.com>
- * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
+ * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
add some man pages
2003-05-03 Colin Walters <walters@verbum.org>
@@ -536,7 +546,7 @@
* dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
to use this library" to be sure people have the right
expectations.
-
+
2003-04-28 Havoc Pennington <hp@redhat.com>
* configure.in: add --enable-docs which by default is auto yes if
@@ -552,14 +562,14 @@
* NEWS: update
* bus/system.conf.in: add <includedir>system.d</includedir>
-
+
* dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
username was provided but not uid
* bus/config-parser.c (struct BusConfigParser): keep track of
- whether the parser is toplevel or was included; change some
+ whether the parser is toplevel or was included; change some
of the error handling if it's included.
-
+
2003-04-27 Havoc Pennington <hp@pobox.com>
Unbreak my code...
@@ -567,7 +577,7 @@
* 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
@@ -576,7 +586,7 @@
* 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
+ hello message. Also, allow bus driver to send anything to
any recipient.
* bus/connection.c (bus_connection_complete): create the
@@ -595,7 +605,7 @@
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
@@ -605,7 +615,7 @@
probably still broken.
* bus/services.c (bus_registry_acquire_service): implement max
- number of services owned, and honor allow/deny rules on which
+ 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
@@ -627,19 +637,19 @@
* test/data/valid-config-files/basic.conf: add <limit> tags to
this test
-
+
* bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
<limit> tag in configuration file.
-
+
2003-04-24 Havoc Pennington <hp@redhat.com>
* bus/dispatch.c: somehow missed some name_is
- * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
+ * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
(_dbus_timeout_set_interval): new
* bus/connection.c (bus_connections_setup_connection): record time
- when each connection is first set up, and expire them after the
+ when each connection is first set up, and expire them after the
auth timeout passes.
2003-04-24 Havoc Pennington <hp@redhat.com>
@@ -687,7 +697,7 @@
2003-04-22 Havoc Pennington <hp@redhat.com>
* dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
- support, and do some code cleanups to share more code and
+ support, and do some code cleanups to share more code and
speed up array marshal/demarshal.
* dbus-1.0.pc.in (Cflags): put libdir include file in cflags
@@ -703,7 +713,7 @@
to use proper type for rply field
* test/data/invalid-messages: add tests for below validation
-
+
* dbus/dbus-message.c (decode_header_data): validate field types,
and validate that named fields are valid names
(decode_name_field): consider messages in the
@@ -713,7 +723,7 @@
2003-04-19 Havoc Pennington <hp@pobox.com>
- * bus/driver.c (bus_driver_handle_hello): check limits and
+ * 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
@@ -732,7 +742,7 @@
* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
memleaks
- * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
+ * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
on realloc be sure to update the pointer in the keyring
* dbus/dbus-string.c (_dbus_string_zero): compensate for align
@@ -756,7 +766,7 @@
server.
2003-04-18 Havoc Pennington <hp@pobox.com>
-
+
* dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
debug spew
@@ -768,7 +778,7 @@
* bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
the environment
-
+
* bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
config file so we test the right thing
@@ -811,14 +821,14 @@
* dbus/dbus-message.h: change message serials to unsigned
* dbus/dbus-connection.c: adapt to message serials being unsigned
-
+
2003-04-15 Havoc Pennington <hp@pobox.com>
- * bus/bus.c: create and keep around a shared DBusUserDatabase
+ * bus/bus.c: create and keep around a shared DBusUserDatabase
object.
* bus/connection.c (bus_connection_get_groups): don't cache
- groups for user in the connection object, since user database
+ groups for user in the connection object, since user database
object now does that.
2003-04-16 Havoc Pennington <hp@redhat.com>
@@ -828,12 +838,12 @@
(_dbus_message_loader_putback_message_link): put back a popped link
* dbus/dbus-connection.c
- (dbus_connection_set_max_live_messages_size): rename
+ (dbus_connection_set_max_live_messages_size): rename
max_received_size
- (dbus_connection_get_outgoing_size): get size of outgoing
+ (dbus_connection_get_outgoing_size): get size of outgoing
queue
(_dbus_connection_set_connection_counter): remove this cruft
-
+
2003-04-14 Havoc Pennington <hp@redhat.com>
* dbus/dbus-userdb.c: user database abstraction, mostly to get
@@ -845,17 +855,17 @@
test always uses EXTERNAL when available.
* configure.in,
- test/data/valid-config-files/debug-allow-all-sha1.conf.in:
+ test/data/valid-config-files/debug-allow-all-sha1.conf.in:
add conf file that requires use of sha1 auth
2003-04-13 Havoc Pennington <hp@pobox.com>
-
+
* tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
from Philip Blundell to send messages and monitor them.
-
+
2003-04-13 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
+ * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
callbacks
* test/data/valid-config-files/debug-allow-all.conf.in: allow all
@@ -863,11 +873,11 @@
* 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
+ (_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
@@ -885,7 +895,7 @@
2003-04-13 Havoc Pennington <hp@pobox.com>
* bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
-
+
* dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
* bus/policy.c (bus_policy_append_mandatory_rule)
@@ -900,7 +910,7 @@
the pid/gid/uid, just for paranoia.
* test/break-loader.c (randomly_do_n_things): find a byte
- containing a type code, and randomly change it to a different
+ containing a type code, and randomly change it to a different
type code.
2003-04-12 Havoc Pennington <hp@pobox.com>
@@ -908,7 +918,7 @@
* bus/policy.h: change BusPolicy to be the thing from the config
file, and rename old BusPolicy to BusClientPolicy
- * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
+ * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
match change in how policy works
* dbus/dbus-internals.h: mark assert_not_reached as
@@ -916,7 +926,7 @@
2003-04-11 Havoc Pennington <hp@redhat.com>
- * doc/dbus-specification.sgml: fix a spot with the wrong name for
+ * doc/dbus-specification.sgml: fix a spot with the wrong name for
the broadcast service. Use boolean return for ServiceExists.
2003-04-11 Havoc Pennington <hp@redhat.com>
@@ -991,7 +1001,7 @@
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/dbus-list.c (_dbus_list_insert_before_link)
(_dbus_list_insert_after_link): new code to facilitate
services.c fixes
@@ -1000,30 +1010,30 @@
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
+ 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
+ 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.
-
+
2003-04-10 Alexander Larsson <alexl@redhat.com>
* doc/dbus-specification.sgml:
s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
-
+
2003-04-10 Alexander Larsson <alexl@redhat.com>
* bus/.cvsignore:
* glib/.cvsignore:
* test/.cvsignore:
Added files to cvsignore
-
+
* dbus/dbus-message.h:
* dbus/dbus-message.c: (dbus_message_iter_get_named):
Make get_named() take two out argument and return a boolean.
@@ -1041,38 +1051,38 @@
* dbus/dbus-marshal.[ch]:
Add array_type_pos argument to _dbus_marshal_validate_arg.
Let you pass a NULL end_pos to _dbus_marshal_validate_type.
-
+
* dbus/dbus-message.[ch]:
Multi-dimensional arrays have full type specification in the
outermost array. Iter code re-arranged to handle this.
Added some more iter tests.
-
+
* doc/dbus-specification.sgml:
Add me to authors.
Remove old FIXME.
Update new array encoding description.
Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
-
+
* test/data/invalid-messages/array-with-mixed-types.message:
* test/data/valid-messages/array-of-array-of-uint32.message:
Change to the new array format.
-
+
* test/data/invalid-messages/too-short-dict.message:
Fix bug in test.
-
+
* test/data/valid-messages/recursive-types.message:
Fix up and extend test.
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
+ 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
@@ -1113,7 +1123,7 @@
allowing us to fix up main loop usage
(_dbus_connection_last_unref): free all the various function
user data
- (dbus_connection_dispatch): call the DispatchStatusFunction
+ (dbus_connection_dispatch): call the DispatchStatusFunction
whenever this function returns
(dbus_connection_handle_watch): call DispatchStatusFunction
(dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
@@ -1122,7 +1132,7 @@
2003-04-09 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
+ * 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
@@ -1134,12 +1144,12 @@
e.g. in the activation case.
2003-04-08 Colin Walters <walters@gnu.org>
-
+
* bus/bus.c (struct BusContext) [pidfile]: New member, to store
the pid file.
(bus_context_new): Set it.
(bus_context_unref): Use it to delete the pid file.
-
+
2003-04-08 Havoc Pennington <hp@redhat.com>
* test/data/invalid-messages/array-with-mixed-types.message:
@@ -1155,7 +1165,7 @@
* test/data/valid-messages/array-of-array-of-uint32.message:
happened to write this so added it to suite
-
+
2003-04-08 Havoc Pennington <hp@redhat.com>
* bus/driver.c (bus_driver_handle_acquire_service): init
@@ -1184,7 +1194,7 @@
* 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:
@@ -1193,16 +1203,16 @@
* 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
@@ -1210,24 +1220,24 @@
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:
@@ -1242,10 +1252,10 @@
* 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.
@@ -1256,11 +1266,11 @@
2003-04-07 Havoc Pennington <hp@redhat.com>
- * doc/dbus-specification.sgml: require that base service names
- start with ':' and that the base service is created/deleted
+ * doc/dbus-specification.sgml: require that base service names
+ start with ':' and that the base service is created/deleted
as first and last things a connection does on the bus
- * bus/dispatch.c (check_existent_service_activation): lots more
+ * bus/dispatch.c (check_existent_service_activation): lots more
work on the activation test; it doesn't fully pass yet...
* test/test-service.c (main): fix so we don't memleak the
@@ -1269,7 +1279,7 @@
2003-04-06 Havoc Pennington <hp@pobox.com>
- * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
+ * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
from Colin Walters
* configure.in: fixes to Qt detection from Colin Walters
@@ -1278,7 +1288,7 @@
exist, from Colin Walters
* dbus/dbus-bus.c: change how we set well-known connections to
- NULL, so that it works if a single connection is stored in
+ NULL, so that it works if a single connection is stored in
two well-known array slots.
* test/Makefile.am: remove a lot of stuff that isn't immediately
@@ -1294,17 +1304,17 @@
elsewhere, and util functions that are used in tests/daemon but
don't go in the lib.
- * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
+ * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
here so it can be used in test binaries also
2003-04-06 Havoc Pennington <hp@pobox.com>
* dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
here in the parent process, so we can return an error if it
- fails. Also, move some of the code into the child so the parent
+ fails. Also, move some of the code into the child so the parent
is less hosed if we fail midway through.
- * bus/bus.c (bus_context_new): move pidfile detection further up
+ * bus/bus.c (bus_context_new): move pidfile detection further up
in the function, before we start overwriting sockets and such.
* bus/messagebus.in: adjust this a bit, not sure if it will work.
@@ -1326,13 +1336,13 @@
(bus_config_parser_end_element, bus_config_parser_content): Handle it.
(bus_config_parser_unref): Free it.
(bus_config_parser_get_pidfile): New function.
-
+
* bus/config-parser.h (_dbus_write_pid_file): Prototype.
* dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
* dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
-
+
* dbus/dbus-sysdeps.h: Prototype it.
2003-04-06 Havoc Pennington <hp@pobox.com>
@@ -1340,7 +1350,7 @@
* 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
+ * 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
@@ -1351,8 +1361,8 @@
2003-04-06 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
- so it detects deadlocks and also we actually init threads when
+ * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
+ so it detects deadlocks and also we actually init threads when
debugging.
2003-04-06 Havoc Pennington <hp@pobox.com>
@@ -1370,7 +1380,7 @@
2003-04-06 Havoc Pennington <hp@pobox.com>
* bus/bus.c (bus_context_new): fix wrong handling of
- server_data_slot_unref() in the error case.
+ server_data_slot_unref() in the error case.
* dbus/dbus-internals.h (_dbus_assert): change so it passes
"(condition) != 0" to _dbus_real_assert so that
@@ -1384,10 +1394,10 @@
* dbus/dbus-transport.c (_dbus_transport_open): special error for
"tmpdir" option to unix: address on client side
- * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
+ * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
to unix: address
-
- * configure.in (TEST_SOCKET_DIR): locate a temporary directory
+
+ * configure.in (TEST_SOCKET_DIR): locate a temporary directory
we can use to create sockets in the test suite.
* bus/main.c (signal_handler): on SIGTERM, exit the daemon
@@ -1408,22 +1418,22 @@
2003-04-05 Havoc Pennington <hp@pobox.com>
- * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
- crash on startup. Need to get "try starting the daemon"
+ * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
+ crash on startup. Need to get "try starting the daemon"
in the test suite I guess. ;-)
* dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
- tracked the number of open connections; it's better done in
+ tracked the number of open connections; it's better done in
application-specific code as you want it to span all servers etc.
2003-04-05 Havoc Pennington <hp@pobox.com>
- * bus/Makefile.am (install-data-hook): add missing DESTDIR,
+ * bus/Makefile.am (install-data-hook): add missing DESTDIR,
patch from Colin Walters
2003-04-05 Havoc Pennington <hp@pobox.com>
- * doc/config-file.txt (Elements): fix docs of <auth> to reflect
+ * doc/config-file.txt (Elements): fix docs of <auth> to reflect
reality; in fact multiple mechanisms are allowed.
* dbus/dbus-internals.c (_dbus_real_assert)
@@ -1440,21 +1450,21 @@
* NEWS: update
* configure.in: 0.7
-
+
2003-04-05 Havoc Pennington <hp@pobox.com>
* dbus/dbus-string.c: docs warning
-
+
* dbus/dbus-spawn.c: missing docs
* dbus/dbus-memory.c (struct ShutdownClosure): missing docs
2003-04-05 Havoc Pennington <hp@pobox.com>
- * bus/loop.c (bus_loop_iterate): fix the timeout code, using
+ * bus/loop.c (bus_loop_iterate): fix the timeout code, using
magic from GLib
- * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
+ * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
to -1 once we've reaped the babysitter
(_dbus_babysitter_handle_watch): do as much work as we can, not
just one go of it
@@ -1475,7 +1485,7 @@
* Makefile.am (coverage-report.txt): add target "coverage-report.txt"
- * test/decode-gcov.c: hack up a little program to suck data
+ * test/decode-gcov.c: hack up a little program to suck data
out of gcov files. Yes this is sort of silly.
* configure.in: define something in config.h and do an
@@ -1488,15 +1498,15 @@
the spawned process and reap it when required.
* test/test-segfault.c, test/test-exit.c,
- test/test-sleep-forever.c: binaries that do various lame things,
+ test/test-sleep-forever.c: binaries that do various lame things,
used in the test suite.
* dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
-
+
2003-04-03 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
- in preparation for modifying it, dbus-sysdeps is getting
+ * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
+ in preparation for modifying it, dbus-sysdeps is getting
a bit unmanageable.
2003-04-03 Havoc Pennington <hp@redhat.com>
@@ -1518,41 +1528,41 @@
2003-04-03 Havoc Pennington <hp@pobox.com>
- * bus/config-parser.c (bus_config_parser_unref): free
+ * bus/config-parser.c (bus_config_parser_unref): free
list of mechanisms, bug discovered by test suite enhancements
(putting system.conf and session.conf into suite)
* test/Makefile.am, test/test-service.c: add placeholder for a
- test service that we'll activate as part of test suite. Doesn't
+ test service that we'll activate as part of test suite. Doesn't
do anything yet.
- * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
- setting NULL value, and use system malloc not dbus_malloc()
+ * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
+ setting NULL value, and use system malloc not dbus_malloc()
when we have unavoidable memleakage.
* dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
didn't work, and support DBUS_BUS_ACTIVATION.
-
+
* bus/activation.c (child_setup): pass our well-known bus type to
the child
* bus/config-parser.c: support <type> to specify well-known type
- * doc/dbus-specification.sgml: document the env variables to
+ * doc/dbus-specification.sgml: document the env variables to
locate well-known buses and find service activator
2003-04-02 Havoc Pennington <hp@redhat.com>
* test/Makefile.am (all-local): add a rule to copy tests to
builddir, so we can have generated tests. Use this to remove the
- silly hack for testing system.conf and session.conf. Will use this
+ silly hack for testing system.conf and session.conf. Will use this
shortly to generate .service files pointing to test binaries.
2003-04-02 Havoc Pennington <hp@redhat.com>
* dbus/dbus-string.c (set_length): fix a bug - we allocated max of
current alloc and needed new length, not max of the doubled
- allocation and needed new length. Also, when building tests,
+ allocation and needed new length. Also, when building tests,
don't do the double-allocation stuff, just realloc every time.
2003-04-02 Havoc Pennington <hp@redhat.com>
@@ -1599,13 +1609,13 @@
socket 0777, and unlink any existing socket.
* bus/bus.c (bus_context_new): change our UID/GID and fork if
- the configuration file so specifies; set up auth mechanism
+ the configuration file so specifies; set up auth mechanism
restrictions
* bus/config-parser.c (bus_config_parser_content): add support
- for <fork> option and fill in code for <auth>
+ for <fork> option and fill in code for <auth>
- * bus/system.conf.in: add <fork/> to default configuration,
+ * bus/system.conf.in: add <fork/> to default configuration,
and limit auth mechanisms to EXTERNAL
* doc/config-file.txt (Elements): add <fork>
@@ -1615,7 +1625,7 @@
2003-03-31 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
+ * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
(_dbus_listen_unix_socket): fix off-by-one error in null
termination spotted by Nalin
@@ -1637,10 +1647,10 @@
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
+ (_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
@@ -1653,7 +1663,7 @@
2003-03-31 Havoc Pennington <hp@redhat.com>
* dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
- define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
+ define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
final location that lands in the config file
* bus/config-loader-expat.c (bus_config_load): fix type of
@@ -1673,7 +1683,7 @@
* bus/main.c (main): take the configuration file as an argument.
- * test/data/valid-config-files/debug-allow-all.conf: new file to
+ * test/data/valid-config-files/debug-allow-all.conf: new file to
use with dispatch.c tests for example
* bus/test-main.c (main): require test data dir
@@ -1684,7 +1694,7 @@
* doc/config-file.txt (Elements): add <servicedir>
* bus/system.conf, bus/session.conf: new files
-
+
* dbus/dbus-bus.c (dbus_bus_get): look for system bus on
well-known socket if none set
@@ -1693,8 +1703,8 @@
2003-03-30 Havoc Pennington <hp@pobox.com>
* bus/config-parser.c: hacking
-
- * dbus/dbus-memory.c: don't use DBusList for the list of stuff
+
+ * dbus/dbus-memory.c: don't use DBusList for the list of stuff
to shut down, since it could cause weirdness with the DBusList
lock
@@ -1720,13 +1730,13 @@
* dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
* dbus/dbus-bus.h:
Add dbus_bus_get.
-
+
* dbus/dbus-memory.c:
Fix a doc comment.
-
+
2003-03-28 Havoc Pennington <hp@pobox.com>
- * bus/test.c (bus_test_flush_bus): remove the sleep from here,
+ * bus/test.c (bus_test_flush_bus): remove the sleep from here,
I think it may have just been superstition. Not sure.
* dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
@@ -1752,10 +1762,10 @@
* doc/TODO:
Add note about automatic service activation.
-
+
* doc/dbus-specification.sgml:
Rename the specification and clarify a few things.
-
+
2003-03-26 Anders Carlsson <andersca@codefactory.se>
* Doxyfile.in:
@@ -1765,7 +1775,7 @@
* dbus/dbus-server-debug-pipe.c:
* dbus/dbus-transport-unix.c:
Fix documentation warnings.
-
+
2003-03-26 Havoc Pennington <hp@pobox.com>
* bus/test-main.c, dbus/dbus-test.c (main): check memleaks
@@ -1784,11 +1794,11 @@
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
+ * bus/config-loader-libxml.c, config-parser.c: sync some minor
nonworking code between home and work, still just stubs
2003-03-24 Havoc Pennington <hp@redhat.com>
@@ -1796,8 +1806,8 @@
* dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
file
- * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
- NULL argument for "message" if the error is a well-known one,
+ * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
+ NULL argument for "message" if the error is a well-known one,
fill in a generic message in this case.
* dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
@@ -1809,20 +1819,20 @@
2003-03-24 Havoc Pennington <hp@pobox.com>
- * bus/connection.c (bus_connections_setup_connection): set up
- the "can this user connect" function, but it always returns
+ * bus/connection.c (bus_connections_setup_connection): set up
+ the "can this user connect" function, but it always returns
TRUE until we have a config file parser so we can have a config
file that allows connections.
2003-03-23 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
- DBUS_BUILD_TESTS, actually alloc/free a block of memory for
- the mutex, so we can check for proper memory management
+ * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
+ DBUS_BUILD_TESTS, actually alloc/free a block of memory for
+ the mutex, so we can check for proper memory management
and OOM handling.
* dbus/dbus-dataslot.c: remove the mutex from
- DBusDataSlotAllocator and lock it manually when using it,
+ DBusDataSlotAllocator and lock it manually when using it,
to simplify fitting it into the global slots framework.
* dbus/dbus-threads.c (init_static_locks): rework how we're
@@ -1832,17 +1842,17 @@
* bus/test-main.c (main): check for memleaks
- * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
+ * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
test suite check for memleaks
- * dbus/dbus-memory.c: add support in test mode for tracking
+ * dbus/dbus-memory.c: add support in test mode for tracking
number of outstanding blocks
2003-03-23 Havoc Pennington <hp@pobox.com>
* bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
policies code
-
+
* dbus/dbus-hash.h: add ULONG hash keys
* dbus/dbus-sysdeps.c (_dbus_get_groups): new
@@ -1869,7 +1879,7 @@
2003-03-19 Havoc Pennington <hp@redhat.com>
- * bus/policy.c: start sketching code for policy restrictions on
+ * bus/policy.c: start sketching code for policy restrictions on
what connections can do.
2003-03-18 Havoc Pennington <hp@redhat.com>
@@ -1884,14 +1894,14 @@
* configure.in: 0.6
* NEWS: Update.
-
+
2003-03-17 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-internals.h: add gcc attributes so that
- our printf-style functions warn on bad arguments to
+ * dbus/dbus-internals.h: add gcc attributes so that
+ our printf-style functions warn on bad arguments to
format
-
- * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
+
+ * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
format bug
* dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
@@ -1899,10 +1909,10 @@
2003-03-17 Havoc Pennington <hp@redhat.com>
- * bus/test-main.c (main): make it print something as it runs
+ * bus/test-main.c (main): make it print something as it runs
so make check doesn't look stuck
- * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
+ * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
from CVS, now obsolete
2003-03-17 Anders Carlsson <andersca@codefactory.se>
@@ -1910,15 +1920,15 @@
* bus/dispatch.c: (bus_dispatch):
Refetch the service name since it may have been reallocated
when dbus_message_set_sender was called.
-
+
* dbus/dbus-sysdeps.c: (_dbus_accept):
Add address and address length variables and use them to stop
valgrind from complaining.
-
+
2003-03-17 Havoc Pennington <hp@pobox.com>
All tests pass, no memleaks, no valgrind complaints.
-
+
* bus/test.c: refcount handler_slot
* bus/connection.c (bus_connections_new): refcount
@@ -1965,22 +1975,22 @@
* dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
add some missing dbus_set_result
- * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
+ * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
alloc the DBusMessageHandler
* dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
- the transport here, since we call this from the finalizer; it
+ the transport here, since we call this from the finalizer; it
resulted in a double-finalize.
- * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
- where we tried to use transport->connection that was NULL,
+ * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
+ where we tried to use transport->connection that was NULL,
happened when transport was disconnected early on due to OOM
* bus/*.c: adapt to handle OOM for watches/timeouts
- * dbus/dbus-transport-unix.c: port to handle OOM during
+ * dbus/dbus-transport-unix.c: port to handle OOM during
watch handling
-
+
* dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
reference to unused bytes instead of a copy
@@ -1997,7 +2007,7 @@
* doc/dbus-specification.sgml:
Document reply message for ActivateService.
-
+
2003-03-16 Anders Carlsson <andersca@codefactory.se>
* bus/activation.c: (bus_pending_activation_entry_free),
@@ -2017,7 +2027,7 @@
* 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.
-
+
2003-03-16 Havoc Pennington <hp@pobox.com>
* dbus/dbus-bus.c (ensure_bus_data): handle failure to set
@@ -2033,8 +2043,8 @@
* bus/*: adapt to DBusConnection API changes
- * glib/dbus-gmain.c: adapt to DBusConnection API changes,
- requires renaming stuff to avoid dbus_connection_dispatch name
+ * glib/dbus-gmain.c: adapt to DBusConnection API changes,
+ requires renaming stuff to avoid dbus_connection_dispatch name
conflict.
* dbus/dbus-transport.c (_dbus_transport_queue_messages): new
@@ -2060,7 +2070,7 @@
* dbus/dbus-connection.c:
(dbus_connection_send_with_reply_and_block):
- Decrease connection->n_incoming when removing an entry
+ Decrease connection->n_incoming when removing an entry
from the list.
* dbus/dbus-dict.c: (dbus_dict_entry_free),
(dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
@@ -2069,7 +2079,7 @@
(dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
(dbus_dict_get_byte_array):
Handle NULL arrays and strings. Also add support for byte arrays.
-
+
* dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
(_dbus_marshal_dict), (_dbus_demarshal_byte_array),
(_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
@@ -2078,7 +2088,7 @@
(_dbus_marshal_validate_arg), (_dbus_marshal_test):
* dbus/dbus-marshal.h:
Add support for marshalling and demarshalling empty arrays and strings.
-
+
* dbus/dbus-message.c: (dbus_message_append_args_valist),
(dbus_message_append_string_array),
(dbus_message_iter_get_boolean),
@@ -2090,14 +2100,14 @@
(dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
(check_message_handling):
Add support for getting empty arrays and dicts.
-
+
* dbus/dbus-string.c: (_dbus_string_validate_utf8):
Don't do any validation at all for now, that's better than just checking
for ASCII.
-
+
* test/data/valid-messages/emptiness.message:
New test message with lots of empty arrays.
-
+
2003-03-16 Havoc Pennington <hp@pobox.com>
* dbus/dbus-connection.c
@@ -2105,7 +2115,7 @@
can't fail due to OOM
* dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
- new function pops a message together with a list link
+ new function pops a message together with a list link
containing it.
* dbus/dbus-transport-unix.c (queue_messages): use new link-based
@@ -2120,20 +2130,20 @@
in the shared lib, and only daemon mallocs were tested. In any
case, the test case now tests all 500+ mallocs, and doesn't pass
yet, though there are lots of fixes in this patch.
-
+
* dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
- this so that it doesn't need to allocate memory, since it
- has no way of indicating failure due to OOM (and would be
+ this so that it doesn't need to allocate memory, since it
+ has no way of indicating failure due to OOM (and would be
annoying if it did).
* dbus/dbus-list.c (_dbus_list_pop_first_link): new function
* bus/Makefile.am: rearrange to create two self-contained
- libraries, to avoid having libraries with overlapping symbols.
- that was resulting in weirdness, e.g. I'm pretty sure there
+ libraries, to avoid having libraries with overlapping symbols.
+ that was resulting in weirdness, e.g. I'm pretty sure there
were two copies of global static variables.
- * dbus/dbus-internals.c: move the malloc debug stuff to
+ * dbus/dbus-internals.c: move the malloc debug stuff to
dbus-memory.c
* dbus/dbus-list.c (free_link): free list mempool if it becomes
@@ -2145,15 +2155,15 @@
on failure.
* bus/dispatch.c (bus_dispatch_add_connection): free
- message_handler_slot when no longer using it, so
+ message_handler_slot when no longer using it, so
memory leak checkers are happy for the test suite.
* dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
- * bus/bus.c (new_connection_callback): disconnect in here if
+ * bus/bus.c (new_connection_callback): disconnect in here if
bus_connections_setup_connection fails.
- * bus/connection.c (bus_connections_unref): fix to free the
+ * bus/connection.c (bus_connections_unref): fix to free the
connections
(bus_connections_setup_connection): if this fails, don't
disconnect the connection, just be sure there are no side
@@ -2163,11 +2173,11 @@
* dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
leaking
- (_dbus_auth_new): fix the order in which we free strings
+ (_dbus_auth_new): fix the order in which we free strings
on OOM failure
- * bus/connection.c (bus_connection_disconnected): fix to
- not send ServiceDeleted multiple times in case of memory
+ * bus/connection.c (bus_connection_disconnected): fix to
+ not send ServiceDeleted multiple times in case of memory
allocation failure
* dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
@@ -2177,18 +2187,18 @@
function for it.
(dbus_bus_register_client): rename dbus_bus_register()
- * bus/dispatch.c (check_hello_message): verify that other
- connections on the bus also got the correct results, not
+ * bus/dispatch.c (check_hello_message): verify that other
+ connections on the bus also got the correct results, not
just the one sending hello
2003-03-15 Havoc Pennington <hp@pobox.com>
Make it pass the Hello handling test including all OOM codepaths.
Now to do other messages...
-
+
* bus/services.c (bus_service_remove_owner): fix crash when
removing owner from an empty list of owners
- (bus_registry_ensure): don't leave service in the list of
+ (bus_registry_ensure): don't leave service in the list of
a connection's owned services if we fail to put the service
in the hash table.
@@ -2203,7 +2213,7 @@
needed.
(unix_connection_set): this can now fail on OOM
- * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
+ * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
of enabling/disabling a watch or timeout.
* bus/loop.c (bus_loop_iterate): don't touch disabled
@@ -2222,69 +2232,69 @@
watch). To fix this, I think we need to add new stuff to
set_watch_functions, namely a SetEnabled function so we can alloc
the watch earlier, then enable it later.
-
+
* dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
dbus-memory.c to the convenience lib
- * bus/test.c: rename some static functions to keep them clearly
+ * bus/test.c: rename some static functions to keep them clearly
distinct from stuff in connection.c. Handle client disconnection.
2003-03-14 Havoc Pennington <hp@pobox.com>
- * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
- transport, tests more of the real codepath. Set up clients
+ * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
+ transport, tests more of the real codepath. Set up clients
with bus_setup_debug_client.
- * bus/test.c (bus_setup_debug_client): function to set up debug
+ * bus/test.c (bus_setup_debug_client): function to set up debug
"clients" on the main loop
- * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
+ * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
support
- * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
+ * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
server type
* dbus/dbus-server-debug.c: support a debug server based on pipes
* dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
(_dbus_close): new function
-
+
* configure.in: check for socketpair
2003-03-14 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
+ * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
cheesy hack
- * dbus/dbus-transport-debug.c: rework this a good bit to be
+ * dbus/dbus-transport-debug.c: rework this a good bit to be
less complicated. hopefully still works.
* dbus/dbus-server-debug.c (handle_new_client): remove timeout
manually
- * glib/dbus-gmain.c (timeout_handler): don't remove timeout
+ * glib/dbus-gmain.c (timeout_handler): don't remove timeout
after running it
- * dbus/dbus-message.c (dbus_message_copy): rename from
- dbus_message_new_from_message, fix it up to copy
+ * dbus/dbus-message.c (dbus_message_copy): rename from
+ dbus_message_new_from_message, fix it up to copy
all the message fields, add test case
- * bus/dispatch.c (bus_dispatch_test): add some more test code,
+ * bus/dispatch.c (bus_dispatch_test): add some more test code,
not quite passing yet
2003-03-14 Havoc Pennington <hp@pobox.com>
* bus/loop.c (bus_loop_iterate): add this so we can "run loop
- until no work remains" in test code. (the large diff here
+ until no work remains" in test code. (the large diff here
is just code movement, no actual changes)
* dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
1, no point waiting around for test code.
- (_dbus_server_debug_accept_transport): unref the timeout
+ (_dbus_server_debug_accept_transport): unref the timeout
after adding it (right?)
* dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
-
+
2003-03-13 Havoc Pennington <hp@redhat.com>
* dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
@@ -2312,33 +2322,33 @@
* bus/dispatch.c (bus_dispatch_test): started adding this but
didn't finish
-
+
2003-03-14 Anders Carlsson <andersca@codefactory.se>
* bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2003-03-13 Havoc Pennington <hp@pobox.com>
- * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
+ * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
set up a test framework as for the library
2003-03-12 Havoc Pennington <hp@pobox.com>
- Throughout: purge global variables, introduce BusActivation,
+ Throughout: purge global variables, introduce BusActivation,
BusConnections, BusRegistry, etc. objects instead.
-
- * bus/bus.h, bus/bus.c: introduce BusContext as a global
+
+ * bus/bus.h, bus/bus.c: introduce BusContext as a global
message bus object
- * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
+ * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
going to redo this a bit differently I think
-
+
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
+ 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
@@ -2354,7 +2364,7 @@
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;
+ "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
@@ -2376,8 +2386,8 @@
* 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/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
@@ -2397,23 +2407,23 @@
2003-03-10 Anders Carlsson <andersca@codefactory.se>
- * dbus/dbus-marshal.c:
+ * dbus/dbus-marshal.c:
(_dbus_marshal_set_string):
Take a length argument so we can marshal the correct string
length.
-
+
(_dbus_marshal_dict), (_dbus_demarshal_dict),
(_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
(_dbus_marshal_test):
- * dbus/dbus-marshal.h:
+ * dbus/dbus-marshal.h:
Add support for marshalling and demarshalling dicts.
-
+
* dbus/dbus-message-builder.c: (_dbus_message_data_load):
Add support for TYPE DICT.
-
+
* dbus/dbus-message.c: (set_string_field):
Adjust header padding.
-
+
(dbus_message_append_args_valist), (dbus_message_append_dict),
(dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
(dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
@@ -2423,13 +2433,13 @@
* dbus/dbus-protocol.h:
Add DBUS_TYPE_DICT.
-
+
* dbus/dbus.h:
Add dbus-dict.h
-
+
* doc/dbus-specification.sgml:
Add information about how dicts are marshalled.
-
+
* test/data/invalid-messages/dict-with-nil-value.message:
* test/data/invalid-messages/too-short-dict.message:
* test/data/valid-messages/dict-simple.message:
@@ -2452,7 +2462,7 @@
(dbus_dict_set_string_array), (_dbus_dict_test):
* dbus/dbus-dict.h:
Fix according to comments from Havoc.
-
+
2003-03-06 Michael Meeks <michael@server.home>
* configure.in: if we don't have kde-config, disable have_qt.
@@ -2461,7 +2471,7 @@
* dbus/Makefile.am:
Add dbus-dict.[ch]
-
+
* dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
(dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
(dbus_dict_remove), (dbus_dict_get_value_type),
@@ -2478,11 +2488,11 @@
(dbus_dict_get_string_array), (_dbus_dict_test):
* dbus/dbus-dict.h:
Add DBusDict implementation
-
+
* dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
* dbus/dbus-test.h:
Add _dbus_dict_test
-
+
2003-03-04 Havoc Pennington <hp@pobox.com>
* test/data/auth/*: adapt to changes
@@ -2492,15 +2502,15 @@
userid
* dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
- more stuff from being in a context name, to make the protocol
+ more stuff from being in a context name, to make the protocol
simpler to deal with
* dbus/dbus-errors.c (dbus_error_has_name): new function
(dbus_error_is_set): new function
- * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
+ * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
-
+
* dbus/dbus-connection.c (dbus_connection_flush): also read
messages during a flush operation
@@ -2512,10 +2522,10 @@
* dbus/dbus-transport.c: (_dbus_transport_open):
Remove duplicate "tcp" entry.
-
+
* doc/dbus-specification.sgml:
Clarify some things.
-
+
2003-03-05 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
@@ -2540,7 +2550,7 @@
sets really huge and small integers
* dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
- that length of boolean array fits in the string, and that
+ that length of boolean array fits in the string, and that
string has room for boolean value in single-bool case.
* dbus/dbus-message-builder.c (_dbus_message_data_load): add
@@ -2574,7 +2584,7 @@
2003-02-27 Alexander Larsson <alexl@redhat.com>
- * glib/Makefile.am:
+ * glib/Makefile.am:
* configure.in:
Make gthreads-2.0 dependency optional. Don't build thread test if
its not found.
@@ -2585,14 +2595,14 @@
(dbus_connection_send_message_with_reply_and_block): fix doh!
doh! doh! bug that resulted in never removing a reply from the
queue, no wonder we called get_reply_serial so much ;-)
-
+
* dbus/dbus-message.c (struct DBusMessage): cache reply serial
and client serial instead of demarshaling them every time
2003-02-27 Havoc Pennington <hp@pobox.com>
* dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
- more inlined, using dbus-string-private.h, speeds things up
+ more inlined, using dbus-string-private.h, speeds things up
substantially
* dbus/dbus-string.c (_dbus_string_free): apply align offset
@@ -2602,17 +2612,17 @@
2003-02-26 Havoc Pennington <hp@redhat.com>
- All kinds of audit fixes from Owen, plus initial attempt to
+ All kinds of audit fixes from Owen, plus initial attempt to
handle unaligned memory returned from malloc.
-
- * dbus/dbus-string.c (_dbus_string_init): clamp max length to
+
+ * dbus/dbus-string.c (_dbus_string_init): clamp max length to
leave room for align_offset and nul byte
- (fixup_alignment): function to track an align_offset and
+ (fixup_alignment): function to track an align_offset and
ensure real->str is aligned
- (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
+ (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
to allow a nul byte plus align offset
(_dbus_string_lock): fix overflow issue
- (_dbus_string_init_const_len): add assertions on sanity of len,
+ (_dbus_string_init_const_len): add assertions on sanity of len,
assign allocated to be ALLOCATION_PADDING larger than len
(set_length): fixup the overflow handling
(_dbus_string_get_data_len): fix overflow in assertion
@@ -2624,16 +2634,16 @@
(_dbus_string_delete): fix overflow in assertion
(_dbus_string_copy_len): overflow in assertion
(_dbus_string_replace_len): overflows in assertions
- (_dbus_string_find): change to implement in terms of
+ (_dbus_string_find): change to implement in terms of
_dbus_string_find_to
(_dbus_string_find_to): assorted fixage
- (_dbus_string_equal_c_str): assert c_str != NULL,
+ (_dbus_string_equal_c_str): assert c_str != NULL,
fix logic so the function works
(_dbus_string_ends_with_c_str): fix overflow thingy
(_dbus_string_base64_encode): overflow fix
(_dbus_string_validate_ascii): overflow
(_dbus_string_validate_nul): overflow
-
+
2003-02-26 Havoc Pennington <hp@redhat.com>
* dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
@@ -2642,29 +2652,29 @@
* configure.in:
Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
-
+
* dbus/dbus-connection.c:
* dbus/dbus-connection.h:
Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
Add dbus_connection_set_wakeup_main_function and use it when queueing
incoming and outgoing messages.
-
-
+
+
* dbus/dbus-dataslot.c:
Threadsafe usage of DBusDataSlotAllocator
-
+
* dbus/dbus-message.c: (dbus_message_get_args_iter):
dbus_new can fail.
-
+
* dbus/dbus-server-unix.c:
Add todo comment
-
+
* glib/dbus-gmain.c:
Implement the new wakeup functions for glib.
-
+
* glib/Makefile.am:
- * glib/test-thread-client.c:
- * glib/test-thread-server.c:
+ * glib/test-thread-client.c:
+ * glib/test-thread-server.c:
* glib/test-thread.h:
Initial cut at some thread test code. Not really done yet.
@@ -2678,7 +2688,7 @@
at the end of this function, so if we didn't need to read for
authentication, we reinstall it for receiving messages
- * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
+ * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
a NULL sender for peer-to-peer case
* dbus/dbus-transport-unix.c (check_read_watch): handle
@@ -2696,9 +2706,9 @@
* Doxyfile.in (INPUT): add glib subdir
- * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
+ * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
setup_with_g_main instead of hookup_with_g_main; write docs
-
+
2003-02-24 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
@@ -2709,11 +2719,11 @@
* dbus/dbus-message.h:
* doc/dbus-specification.sgml:
Various fixes as pointed out by Havoc.
-
+
* test/data/invalid-messages/bad-boolean-array.message:
* test/data/invalid-messages/bad-boolean.message:
Add invalid boolean value test cases.
-
+
2003-02-24 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-internals.c: (_dbus_type_to_string):
@@ -2731,10 +2741,10 @@
* doc/dbus-specification.sgml:
* test/data/valid-messages/lots-of-arguments.message:
Add support for boolean and boolean array types.
-
+
2003-02-23 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-keyring.c: finish most of this implementation and
+ * dbus/dbus-keyring.c: finish most of this implementation and
simple unit test
* dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
@@ -2753,7 +2763,7 @@
* dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
- * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
+ * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
the save-to-temp/rename trick to atomically write the new file
(_dbus_string_parse_uint): new function
@@ -2774,25 +2784,25 @@
* dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
Make string arrays NULL-terminated.
-
+
* dbus/dbus-memory.c: (dbus_free_string_array):
* dbus/dbus-memory.h:
New function for freeing NULL-terminated string arrays.
-
+
* dbus/dbus-message-builder.c: (append_quoted_string),
(_dbus_message_data_load):
Add support for array types.
-
+
* dbus/dbus-message.c: (check_message_handling):
Add more types as test cases.
-
+
* dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
(_dbus_string_parse_double):
Add the start offset to the end offset.
-
+
* test/data/valid-messages/lots-of-arguments.message:
New test message with lots of arguments.
-
+
2003-02-21 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-message.c: (dbus_message_append_nil),
@@ -2809,7 +2819,7 @@
* dbus/dbus-message.c: (dbus_message_append_nil):
Fix a silly.
-
+
2003-02-21 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-message.c: (dbus_message_append_args_valist),
@@ -2826,7 +2836,7 @@
* dbus/dbus-message.h:
Add functions for appending and getting arrays.
-
+
2003-02-21 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
@@ -2839,7 +2849,7 @@
Unlock the connection mutex during a blocking select call.
Add todo about how we need a way to wake up the select.
- * dbus/dbus-connection-internal.h:
+ * dbus/dbus-connection-internal.h:
* dbus/dbus-connection.c:
Add _dbus_connection_lock and _dbus_connection_unlock.
@@ -2855,7 +2865,7 @@
* dbus/dbus-errors.c (dbus_set_error_const): do not call
dbus_error_init
(dbus_set_error): remove dbus_error_init, check for message ==
- NULL *before* we sprintf into it, and add @todo about including
+ NULL *before* we sprintf into it, and add @todo about including
system headers in this file
* dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
@@ -2863,7 +2873,7 @@
* dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
* dbus/dbus-sysdeps.c (get_user_info): break this function out to
- get various bits of user information based on either username
+ get various bits of user information based on either username
or user ID
(_dbus_homedir_from_username): new function
@@ -2871,22 +2881,22 @@
* configure.in:
Add check for nonposix getpwnam_r
-
+
* dbus/dbus-mempool.c: (_dbus_mem_pool_new):
Align the pool element size to a sizeof (void *) boundary.
-
+
* dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
(_dbus_listen_unix_socket), (_dbus_credentials_from_username):
General Solaris fixes.
-
+
* test/data/valid-messages/simplest-manual.message:
Explicitly state that we want little-endian packing.
-
+
2003-02-19 Mikael Hallendal <micke@codefactory.se>
* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
- * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
+ * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
Added to create a transport connecting using a tcp/ip socket.
* dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
@@ -2896,14 +2906,14 @@
* dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
- * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
+ * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
Added to create a server listening on a TCP/IP socket.
2003-02-19 Havoc Pennington <hp@pobox.com>
Throughout: mop up all the Doxygen warnings and undocumented
stuff.
-
+
* dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
to search any paths.
@@ -2912,10 +2922,10 @@
besides being kind of ugly
* Doxyfile (PREDEFINED): have Doxygen define
- DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
+ DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
- (do not abuse the feature! it's for stuff like the autogenerated
- macros in dbus-md5.c, not just for things you don't feel like
+ (do not abuse the feature! it's for stuff like the autogenerated
+ macros in dbus-md5.c, not just for things you don't feel like
documenting...)
2003-02-18 Havoc Pennington <hp@pobox.com>
@@ -2964,14 +2974,14 @@
2003-02-17 Anders Carlsson <andersca@codefactory.se.>
Release 0.4
-
+
* NEWS: Update
2003-02-17 Anders Carlsson <andersca@codefactory.se>
* doc/dbus-specification.sgml:
Specification updates.
-
+
2003-02-17 Anders Carlsson <andersca@codefactory.se>
* bus/activation.c: (bus_activation_init), (child_setup),
@@ -2979,21 +2989,21 @@
* bus/activation.h:
* bus/main.c: (main):
Set DBUS_ADDRESS environment variable.
-
+
* dbus/dbus-errors.c: (dbus_set_error):
Don't use va_copy since that's a C99 feature.
-
+
* dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
(_dbus_spawn_async):
* dbus/dbus-sysdeps.h:
Add child_setup_func to _dbus_spawn_async.
-
+
* doc/dbus-specification.sgml:
Update specification.
-
+
* test/spawn-test.c: (setup_func), (main):
Fix test.
-
+
2003-02-17 Alexander Larsson <alexl@redhat.com>
* dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
@@ -3005,10 +3015,10 @@
* doc/Makefile.am:
* doc/dbus-test-plan.sgml:
Add test plan document.
-
+
* test/Makefile.am:
Fix distcheck.
-
+
2003-02-17 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-message.c: (decode_header_data),
@@ -3019,11 +3029,11 @@
* bus/dispatch.c: (send_one_message):
Only send broadcast messages to registered connections.
-
+
* dbus/dbus-message.c: (dbus_message_name_is):
* dbus/dbus-message.h:
New convenience function.
-
+
* dbus/dbus-transport-debug.c: (do_reading):
Only dispatch one message per run.
@@ -3034,7 +3044,7 @@
* test/bus-test-loop.[ch]:
Add these.
-
+
2003-02-16 Havoc Pennington <hp@pobox.com>
* dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
@@ -3046,7 +3056,7 @@
Implement sent_message_with_reply. (with_reply_and block is still
busted).
Made dispatch_message not lose message if OOM.
-
+
* dbus/dbus-errors.h:
Add NoReply error (for reply timeouts).
@@ -3059,51 +3069,51 @@
* dbus/dbus-auth.c: (client_try_next_mechanism):
Plug a leak.
-
+
* dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
Return TRUE if there's no thread implementation around.
-
+
* glib/dbus-gmain.c: (free_source),
(dbus_connection_hookup_with_g_main):
Make sure to remove the GSource when the connection is finalized.
-
+
2003-02-16 Anders Carlsson <andersca@codefactory.se>
* bus/dispatch.c: (bus_dispatch_message_handler):
* dbus/dbus-errors.h:
Return an error if someone tries to send a message to a service
that doesn't exist.
-
+
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.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.
@@ -3112,7 +3122,7 @@
* dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
allow people to avoid setting SIGPIPE to SIG_IGN
- (_dbus_connection_new_for_transport): disable SIGPIPE unless
+ (_dbus_connection_new_for_transport): disable SIGPIPE unless
we've been asked not to
2003-02-15 Anders Carlsson <andersca@codefactory.se>
@@ -3141,24 +3151,24 @@
* dbus/dbus-errors.c: (dbus_set_error):
* dbus/dbus-errors.h:
Add a few errors and make dbus_set_error void.
-
- * dbus/dbus-sysdeps.c:
+
+ * dbus/dbus-sysdeps.c:
(_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
(write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
* dbus/dbus-sysdeps.h:
Add _dbus_spawn_async.
-
+
* test/spawn-test.c: (main):
Test for _dbus_spawn_async.
-
+
2003-02-15 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-internals.h:
Fix build without tests.
-
+
* dbus/dbus-list.c: (alloc_link):
Fix a segfault when a malloc fails.
-
+
* dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
(dbus_malloc0), (dbus_realloc):
Add support for malloc debugging.
@@ -3169,12 +3179,12 @@
* dbus/dbus-threads.h:
Add condvars. Remove static mutext from API.
Implement static mutexes by initializing them from threads_init.
-
+
* glib/dbus-gthread.c:
* qt/dbus-qthread.cpp:
Update with the thread api changes.
-
+
* dbus/dbus-list.c:
* dbus/dbus-list.h:
Turn StaticMutex into normal mutex + init function.
@@ -3182,18 +3192,18 @@
_dbus_list_append_link, _dbus_list_prepend_link
- * dbus/dbus-sysdeps.c:
+ * dbus/dbus-sysdeps.c:
* dbus/dbus-sysdeps.h:
New type dbus_atomic_t, and new functions _dbus_atomic_inc,
_dbus_atomic_dec. Only slow fallback implementation at the moment.
-
+
* dbus/dbus-protocol.h:
Add DBUS_MESSAGE_LOCAL_DISCONNECT define
-
+
* dbus/dbus-message.c:
Make ref/unref atomic.
Fix some docs.
-
+
* dbus/dbus-connection-internal.h:
* dbus/dbus-connection.c:
* dbus/dbus-connection.h:
@@ -3201,23 +3211,23 @@
Change _peek to _borrow,_return & _steal_borrowed.
Change disconnect callback to event.
Make dbus_connection_dispatch_messages reentrant.
-
+
* dbus/dbus-transport.c:
Don't ref the connection on calls to the transport
implementation.
-
+
* dbus/dbus-message-handler.c:
Make threadsafe.
-
+
* glib/dbus-gmain.c:
Don't use peek_message anymore
-
+
* test/Makefile.am:
* test/debug-thread.c:
* test/debug-thread.h:
Simple thread implementation that asserts() on deadlocks in
single-threaded code.
-
+
* test/bus-test.c:
(main) Call debug_threads_init.
@@ -3228,10 +3238,10 @@
* bus/connection.h:
Don't call dbus_connection_set_disconnect_function. Instead export
bus_connection_disconnect.
-
+
* bus/dispatch.c:
Call bus_connection_disconnect when we get a disconnected message.
-
+
2003-02-15 Havoc Pennington <hp@pobox.com>
* dbus/dbus-message.c (dbus_message_new): fool around with the
@@ -3245,12 +3255,12 @@
should
* dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
- (_dbus_decrement_fail_alloc_counter): debug functions to
+ (_dbus_decrement_fail_alloc_counter): debug functions to
simulate memory allocation failures
2003-02-14 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-errors.h (struct DBusError): add a word of padding
+ * dbus/dbus-errors.h (struct DBusError): add a word of padding
to DBusError
2003-02-13 Anders Carlsson <andersca@codefactory.se>
@@ -3259,10 +3269,10 @@
* 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.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* bus/driver.c: (bus_driver_send_service_deleted),
@@ -3287,10 +3297,10 @@
* 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.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-errors.c:
@@ -3303,36 +3313,36 @@
* glib/dbus-gmain.c: (timeout_handler), (add_timeout),
(remove_timeout):
Implement support for timeouts in dbus-glib.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-message-builder.c: (_dbus_message_data_load):
* dbus/dbus-message.c: (process_test_subdir):
* test/break-loader.c: (find_breaks_based_on):
Plug some memory leaks.
-
+
2003-02-13 Richard Hult <rhult@codefactory.se>
* bus/main.c: Fix build.
- * dbus/dbus-errors.h:
+ * dbus/dbus-errors.h:
* dbus/dbus-errors.c: Fix copyright for Anders.
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),
@@ -3345,21 +3355,21 @@
* 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.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
(dbus_error_free), (dbus_set_error_const), (dbus_set_error):
* dbus/dbus-errors.h:
Add DBusError structure.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* test/data/valid-messages/standard-acquire-service.message:
@@ -3367,7 +3377,7 @@
* test/data/valid-messages/standard-list-services.message:
* test/data/valid-messages/standard-service-exists.message:
Add some standard messages.
-
+
2003-02-13 Anders Carlsson <andersca@codefactory.se>
* bus/driver.c: (bus_driver_send_welcome_message),
@@ -3375,7 +3385,7 @@
(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
@@ -3389,7 +3399,7 @@
(bus_desktop_file_get_string):
* bus/desktop-file.h:
Some fixes, and new functions for getting a key value from a section.
-
+
2003-02-13 Havoc Pennington <hp@pobox.com>
* test/data/auth/fail-after-n-attempts.auth-script: new test
@@ -3405,12 +3415,12 @@
* dbus/dbus-auth-script.c (_dbus_auth_script_run): support
NO_CREDENTIALS and ROOT_CREDENTIALS
- * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
- into here. Never process more commands after we've reached an
+ * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
+ into here. Never process more commands after we've reached an
end state; store further data as unused bytes.
* test/data/auth/*: add more auth tests
-
+
* dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
command to match exact string and EXPECT_UNUSED to match unused
bytes
@@ -3438,11 +3448,11 @@
2003-02-10 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
+ * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
initial cut at test framework for DBusAuth from laptop.
- Doesn't quite work yet but it compiles and I need to get
+ Doesn't quite work yet but it compiles and I need to get
it off the 266mhz laptop. ;-)
-
+
* dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
fix a memleak in error case
@@ -3466,7 +3476,7 @@
2003-02-06 Anders Carlsson <andersca@codefactory.se>
Release 0.3
-
+
* NEWS: Update
2003-02-06 Anders Carlsson <andersca@codefactory.se>
@@ -3479,7 +3489,7 @@
2003-02-02 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
+ * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
for code to manage cookies in your home directory
* dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
@@ -3496,7 +3506,7 @@
* doc/dbus-specification.sgml:
Update address format section.
-
+
2003-02-02 Anders Carlsson <andersca@codefactory.se>
* test/Makefile.am:
@@ -3504,15 +3514,15 @@
(message_handler), (new_connection_callback), (loop_quit),
(loop_run), (main):
Add bus test.
-
+
2003-02-02 Anders Carlsson <andersca@codefactory.se>
* bus/driver.c: (bus_driver_handle_service_exists):
Simplify the code a bit.
-
+
* dbus/dbus-bus.c: (dbus_bus_service_exists):
- Fix a silly.
-
+ Fix a silly.
+
2003-02-02 Anders Carlsson <andersca@codefactory.se>
* bus/Makefile.am:
@@ -3527,7 +3537,7 @@
* bus/driver.c: (bus_driver_handle_service_exists):
Don't unref the incoming message.
-
+
2003-02-02 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus.h: Add dbus-address.h and dbus-bus.h
@@ -3537,7 +3547,7 @@
* dbus/dbus-server.c: (dbus_server_listen):
* dbus/dbus-transport.c: (_dbus_transport_open):
ifdef out the calls to the debug transport and server.
-
+
2003-02-02 Alexander Larsson <alexl@redhat.com>
* dbus/dbus-watch.c (dbus_watch_get_flags):
@@ -3557,18 +3567,18 @@
(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.
-
+
2003-02-01 Alexander Larsson <alexl@redhat.com>
* dbus/dbus-message.c (dbus_message_append_fields):
@@ -3576,7 +3586,7 @@
2003-02-01 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-break-loader.c (randomly_modify_length): change
+ * dbus/dbus-break-loader.c (randomly_modify_length): change
a 4-byte value in the message as if it were a length
* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
@@ -3591,23 +3601,23 @@
* dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
* dbus/dbus-string.c (_dbus_string_set_byte): new
-
+
2003-01-31 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-message.c: refactor the test code to be more general,
- in preparation for writing a "randomly permute test cases to
+ * dbus/dbus-message.c: refactor the test code to be more general,
+ in preparation for writing a "randomly permute test cases to
try to break the loader" program.
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
+ * 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
+ * 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
+ (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
@@ -3615,7 +3625,7 @@
2003-01-31 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
+ * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
just set_is_error/get_is_error as this is a commonly-used
function, and write docs.
@@ -3623,28 +3633,28 @@
* dbus/dbus-address.c: (dbus_address_entry_free):
Free key and value lists.
-
+
* dbus/dbus-internals.c: (_dbus_type_to_string):
Add the types we didn't have.
-
+
* dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
(_dbus_marshal_validate_arg):
Add NIL types.
-
+
* dbus/dbus-message.c: (dbus_message_set_sender):
Remove todo about being able to set sender to NULL.
-
+
(dbus_message_set_is_error_reply),
(dbus_message_get_is_error_reply):
* dbus/dbus-message.h:
New functions.
-
+
* dbus/dbus-protocol.h:
Add error reply flag.
-
+
* test/data/valid-messages/opposite-endian.message:
Add NIL type to test.
-
+
2003-01-31 Havoc Pennington <hp@pobox.com>
* doc/dbus-specification.sgml: fully specify the header. Add
@@ -3661,10 +3671,10 @@
2003-01-30 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-auth.c: rework to use only REJECTED, no
+ * dbus/dbus-auth.c: rework to use only REJECTED, no
MECHANISMS
- * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
+ * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
use REJECTED, suggested by Mark McLoughlin
2003-01-30 Havoc Pennington <hp@pobox.com>
@@ -3676,55 +3686,55 @@
* dbus/dbus-address.c (dbus_address_entries_free): add @todo about
leaking list nodes
- (dbus_parse_address): add @todo about documenting address format,
+ (dbus_parse_address): add @todo about documenting address format,
and allowing , and ; to be escaped
2003-01-30 Anders Carlsson <andersca@codefactory.se>
* dbus/Makefile.am:
Add dbus-address.[ch]
-
+
* dbus/dbus-address.c: (dbus_address_entry_free),
(dbus_address_entries_free), (create_entry),
(dbus_address_entry_get_method), (dbus_address_entry_get_value),
(dbus_parse_address), (_dbus_address_test):
* dbus/dbus-address.h:
New files for dealing with address parsing.
-
+
* dbus/dbus-connection.c:
Document timeout functions.
-
+
* dbus/dbus-message.c:
Document dbus_message_new_from_message.
-
+
* dbus/dbus-server-debug.c:
Document.
-
+
* dbus/dbus-server.c: (dbus_server_listen):
Parse address and use correct server implementation.
-
+
* dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
* dbus/dbus-string.h:
New function with test.
-
+
* dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
* dbus/dbus-test.h:
Add address tests.
-
+
* dbus/dbus-transport-debug.c:
Document.
-
+
* dbus/dbus-transport.c: (_dbus_transport_open):
- Parse address and use correct transport implementation.
+ Parse address and use correct transport implementation.
2003-01-30 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-message.c: use message->byte_order instead of
+ * dbus/dbus-message.c: use message->byte_order instead of
DBUS_COMPILER_BYTE_ORDER throughout.
- (dbus_message_create_header): pad header to align the
+ (dbus_message_create_header): pad header to align the
start of the body of the message to 8-byte boundary
- * dbus/dbus-marshal.h: make all the demarshalers take const
+ * dbus/dbus-marshal.h: make all the demarshalers take const
DBusString arguments.
* dbus/dbus-message.c (_dbus_message_loader_return_buffer):
@@ -3737,7 +3747,7 @@
implemented properly)
(_dbus_string_validate_nul): new function to check all-nul
- * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
+ * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
get_arg_end_pos and remove all validation
(_dbus_marshal_validate_arg): actually do validation here.
@@ -3749,9 +3759,9 @@
2003-01-28 Havoc Pennington <hp@pobox.com>
* dbus/dbus-server-debug.c: Add doc section comments
-
+
* dbus/dbus-transport-debug.c: add doc section comments
-
+
2003-01-28 Havoc Pennington <hp@redhat.com>
* dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
@@ -3765,13 +3775,13 @@
* dbus/dbus-connection.c: (_dbus_connection_add_timeout),
(_dbus_connection_remove_timeout):
Add functions for adding and removing timeouts.
-
+
* dbus/dbus-message.c: (dbus_message_new_from_message):
Add new function that takes a message and creates an exact
copy of it, but with the refcount set to 1.
(check_message_handling):
Fix build error.
-
+
* dbus/dbus-server-protected.h:
* dbus/dbus-server.c: (_dbus_server_init_base),
(_dbus_server_finalize_base), (_dbus_server_add_timeout),
@@ -3784,16 +3794,16 @@
* dbus/dbus-timeout.c: (_dbus_timeout_new):
Actually set the handler, doh.
-
+
* dbus/dbus-transport.c: (_dbus_transport_open):
Add commented out call to dbus_transport_debug_client_new.
-
+
* dbus/Makefile.am:
Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
-
+
2003-01-28 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-message.c (check_message_handling): function to check
+ * dbus/dbus-message.c (check_message_handling): function to check
on the loaded message, iterates over it etc.
2003-01-28 Havoc Pennington <hp@pobox.com>
@@ -3804,14 +3814,14 @@
2003-01-27 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-mempool.c (time_for_size): replace printf with
+ * dbus/dbus-mempool.c (time_for_size): replace printf with
_dbus_verbose
* dbus/dbus-message-builder.c (_dbus_message_data_load): allow
empty lines; fix the SAVE_LENGTH stuff to be
- START_LENGTH/END_LENGTH so it actually works; couple other
+ START_LENGTH/END_LENGTH so it actually works; couple other
bugfixes
-
+
* test/Makefile.am (dist-hook): add dist-hook for .message files
* dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
@@ -3821,7 +3831,7 @@
* dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
- * dbus/dbus-test-main.c (main): take an argument which is the
+ * dbus/dbus-test-main.c (main): take an argument which is the
directory containing test data
* dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
@@ -3832,7 +3842,7 @@
* 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):
@@ -3840,56 +3850,56 @@
(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
+ 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.
-
+
2003-01-26 Havoc Pennington <hp@pobox.com>
* dbus/dbus-message-builder.c: implement, completely untested.
- * test/data/*: add data to be used in testing.
+ * test/data/*: add data to be used in testing.
".message" files are our simple loadable text format.
".message-raw" will be binary dumps of messages.
@@ -3914,21 +3924,21 @@
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
+ * 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
+ 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
+ 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
@@ -3946,7 +3956,7 @@
* bus/driver.c: (bus_driver_handle_hello),
(bus_driver_send_welcome_message):
Plug leaks
-
+
2003-01-26 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
@@ -3955,13 +3965,13 @@
* dbus/dbus-marshal.c: (_dbus_marshal_test):
* dbus/dbus-message.c: (dbus_message_unref),
Plug memory leaks.
-
- (dbus_message_get_fields):
+
+ (dbus_message_get_fields):
Remove debugging printout.
(_dbus_message_loader_return_buffer):
Don't store the header string.
-
+
(_dbus_message_test):
Plug leaks.
@@ -3975,10 +3985,10 @@
* glib/dbus-gmain.c: (dbus_connection_prepare),
(dbus_connection_check), (dbus_connection_dispatch), (add_watch),
(remove_watch), (dbus_connection_hookup_with_g_main):
- Rewrite the glib handling to use its own GSource instead of a
+ Rewrite the glib handling to use its own GSource instead of a
GIOChannel so we can catch messages put in the queue while waiting
for a reply.
-
+
2003-01-25 Anders Carlsson <andersca@codefactory.se>
* bus/Makefile.am:
@@ -3994,105 +4004,105 @@
(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
+ Refactor code, put the message dispatching in its own file. Use
_DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
is disconnected.
-
+
2003-01-25 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-internals.h:
Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
-
+
* dbus/dbus-message.c: (dbus_message_get_sender):
* dbus/dbus-message.h:
Implement dbus_message_get_sender.
-
+
* dbus/dbus-protocol.h:
Add message and service defines.
-
+
2003-01-25 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-connection.c: (dbus_connection_send_message):
* dbus/dbus-message-internal.h:
* dbus/dbus-message.c: (_dbus_message_get_client_serial),
(dbus_message_write_header):
- Remove _dbus_messag_unlock and don't set the client serial on a
+ Remove _dbus_messag_unlock and don't set the client serial on a
message if one already exists.
-
+
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
+ * bus/driver.c (bus_driver_handle_list_services): fix a leak
on OOM
2003-01-25 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-list.c: (alloc_link), (free_link):
Use a memory pool for the links.
-
+
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.
-
+
2003-01-25 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-connection.c: (dbus_connection_send_message):
Unlock the message in case it was sent earlier.
-
+
(dbus_connection_send_message_with_reply_and_block):
Remove the reply message from the list.
-
+
* dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
Set array_len and new_pos correctly.
-
+
(_dbus_marshal_test):
Remove debug output.
-
+
* dbus/dbus-message-internal.h:
* dbus/dbus-message.c: (_dbus_message_get_reply_serial):
New function that returns the reply serial.
-
+
(_dbus_message_unlock):
New function that unlocks a message and resets its header.
- (dbus_message_append_string_array),
+ (dbus_message_append_string_array),
(dbus_message_get_fields_valist),
(dbus_message_iter_get_field_type),
- (dbus_message_iter_get_string_array),
- (dbus_message_get_fields),
+ (dbus_message_iter_get_string_array),
+ (dbus_message_get_fields),
(dbus_message_append_fields_valist):
Handle string arrays.
-
+
(dbus_message_set_sender):
Make this function public since the bus daemon needs it.
-
+
(decode_header_data):
Set the reply serial to -1 initially.
* dbus/dbus-message.h:
- Add dbus_message_set_sender.
+ Add dbus_message_set_sender.
2003-01-24 Havoc Pennington <hp@pobox.com>
@@ -4112,9 +4122,9 @@
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
+ never recycle client names. Also, caller should initialize
the DBusString.
* dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
@@ -4132,27 +4142,27 @@
* dbus/dbus-protocol.h:
Add support for marshalling and demarshalling integer, double
and string arrays.
-
+
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_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),
@@ -4162,27 +4172,27 @@
* bus/services.c: (bus_service_free):
* bus/services.h:
New file that handles communication and registreation with the bus
- itself.
-
+ itself.
+
2003-01-21 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-connection.c: (dbus_connection_send_message):
Add a new client_serial parameter.
-
+
(dbus_connection_send_message_with_reply):
Remove a @todo since we've implemented the blocking function.
-
+
(dbus_connection_send_message_with_reply_and_block):
New function that sends a message and waits for a reply and
then returns the reply.
-
+
* dbus/dbus-connection.h:
Add new functions.
-
+
* dbus/dbus-errors.c: (dbus_result_to_string):
* dbus/dbus-errors.h:
Add new DBUS_RESULT.
-
+
* dbus/dbus-message-internal.h:
* dbus/dbus-message.c: (_dbus_message_get_reply_serial),
(_dbus_message_set_sender), (dbus_message_write_header),
@@ -4191,37 +4201,37 @@
* dbus/dbus-message.h:
Add new functions that set the reply serial and sender.
Also marshal and demarshal them correctly and add test.
-
+
* dbus/dbus-protocol.h:
Add new DBUS_MESSAGE_TYPE_SENDER.
-
+
* glib/dbus-glib.h:
* glib/dbus-gmain.c: (watch_callback), (free_callback_data),
(add_watch), (remove_watch), (add_timeout), (remove_timeout),
(dbus_connection_hookup_with_g_main):
* glib/test-dbus-glib.c: (main):
Rewrite to use GIOChannel and remove the GSource crack.
-
+
* test/echo-client.c: (main):
* test/watch.c: (check_messages):
Update for changed APIs
-
+
2003-01-19 Anders Carlsson <andersca@codefactory.se>
* dbus/Makefile.am: Add dbus-timeout.[cħ]
-
+
* dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
- Create a DBusTimeoutList.
+ Create a DBusTimeoutList.
(dbus_connection_set_timeout_functions): Add new function to
set timeout callbacks
-
+
* dbus/dbus-connection.h: Add public DBusTimeout API.
-
+
* dbus/dbus-message.c: (dbus_message_get_service):
* dbus/dbus-message.h: New function.
* dbus/dbus-server.c: Fix small doc typo.
-
+
* dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
2003-01-19 Anders Carlsson <andersca@codefactory.se>
@@ -4251,9 +4261,9 @@
* dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
in OOM case
- * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
- (dbus_connection_get_max_message_size)
- (dbus_connection_set_max_live_messages_size)
+ * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
+ (dbus_connection_get_max_message_size)
+ (dbus_connection_set_max_live_messages_size)
(dbus_connection_get_max_live_messages_size): implement some
resource limitation functions
@@ -4265,10 +4275,10 @@
* dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
docs
-
+
2003-01-18 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
+ * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
connection if it hasn't been already.
* dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
@@ -4278,9 +4288,9 @@
Building --disable-verbose-mode --disable-asserts --disable-tests
cuts the library from 112K to 45K or so
-
- * configure.in: check for varargs macro support,
- add --enable-verbose-mode, --enable-asserts.
+
+ * configure.in: check for varargs macro support,
+ add --enable-verbose-mode, --enable-asserts.
* dbus/dbus-internals.h (_dbus_assert): support
DBUS_DISABLE_ASSERT
@@ -4307,7 +4317,7 @@
2003-01-15 Havoc Pennington <hp@redhat.com>
Release 0.2
-
+
* NEWS: update
2003-01-15 Havoc Pennington <hp@redhat.com>
@@ -4318,8 +4328,8 @@
2003-01-15 Havoc Pennington <hp@redhat.com>
Release 0.1.
-
- * NEWS: update
+
+ * NEWS: update
2003-01-15 Havoc Pennington <hp@redhat.com>
@@ -4337,7 +4347,7 @@
* bus/main.c: (main):
Make sure that the DBusConnectionData struct is NULLed
out to prevent a segfault.
-
+
* dbus/dbus-errors.c: (dbus_result_to_string):
* dbus/dbus-errors.h:
* dbus/dbus-message.c: (dbus_message_get_fields),
@@ -4345,7 +4355,7 @@
* dbus/dbus-message.h:
Make dbus_message_get_fields return a result code so we can
track invalid fields as well as oom.
-
+
2003-01-11 Havoc Pennington <hp@pobox.com>
* configure.in: change --enable-test/--enable-ansi action-if-given
@@ -4358,11 +4368,11 @@
* dbus/dbus-test-main.c: move main() for test app here
* dbus/dbus-test.c
(dbus_internal_symbol_do_not_use_run_tests): we have to export a
- symbol to run tests, because dbus-test isn't in the main
+ symbol to run tests, because dbus-test isn't in the main
library
Code review nitpicks.
-
+
* dbus/dbus-message.c (dbus_message_write_header): add newlines
for people with narrow emacs ;-). Assert client_serial was filled
in. Assert message->name != NULL.
@@ -4399,7 +4409,7 @@
2003-01-08 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
+ * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
to the select() as needed for authentication. (should be using
_dbus_poll() not select, but for another day)
@@ -4414,7 +4424,7 @@
* dbus/dbus-internals.c: (_dbus_type_to_string):
New function that returns a string describing a type.
-
+
* dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
* dbus/dbus-marshal.h:
* dbus/dbus-message.c: (dbus_message_get_fields_valist),
@@ -4460,7 +4470,7 @@
* test/echo-client.c: (main):
* test/watch.c: (check_messages):
Make messages sendable and receivable for real.
-
+
2003-01-07 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_double),
@@ -4469,7 +4479,7 @@
(dbus_message_append_uint32), (dbus_message_append_double),
(dbus_message_append_string), (dbus_message_append_byte_array):
Handle OOM restoration.
-
+
2003-01-07 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_string),
@@ -4477,13 +4487,13 @@
* dbus/dbus-marshal.h:
* dbus/dbus-message.c: (dbus_message_get_name),
Document these functions.
-
+
(dbus_message_append_int32), (dbus_message_append_uint32),
(dbus_message_append_double), (dbus_message_append_string),
(dbus_message_append_byte_array):
* dbus/dbus-message.h:
Add functions for adding message fields of different types.
-
+
* dbus/dbus-protocol.h:
Add the different types.
@@ -4517,13 +4527,13 @@
2003-01-04 Havoc Pennington <hp@pobox.com>
- * test/watch.c (error_handler): make it safe if the error handler
+ * test/watch.c (error_handler): make it safe if the error handler
is called multiple times (if we s/error handler/disconnect
handler/ we should just guarantee it's called only once)
* dbus/dbus-transport.c (_dbus_transport_disconnect): call the
error handler on disconnect (it's quite possible we should
- just change the error handler to a "disconnect handler," I'm
+ just change the error handler to a "disconnect handler," I'm
not sure we have any other meaningful errors)
* configure.in: check for getpwnam_r
@@ -4548,7 +4558,7 @@
* dbus/dbus-marshal.h:
Add _dbus_marshal_byte_array and rename _dbus_marshal_string
to _dbus_marshal_utf8_string. Also fix some tests.
-
+
2002-12-28 Harri Porten <porten@kde.org>
* configure.in: added check for C++ compiler and a very cheesy
@@ -4556,9 +4566,9 @@
* Makefile.am (SUBDIRS): compile qt subdir if support is enabled
- * qt/Makefile.am: added
+ * qt/Makefile.am: added
- * qt/.cvsignore: added
+ * qt/.cvsignore: added
* qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
latter, added #ifdef QT_THREAD_SUPPORT guard.
@@ -4571,7 +4581,7 @@
2002-12-27 Anders Carlsson <andersca@codefactory.se>
- * acinclude.m4: Add this file and put the
+ * acinclude.m4: Add this file and put the
PKG_CHECK_MODULE macro in it.
2002-12-27 Anders Carlsson <andersca@codefactory.se>
@@ -4581,9 +4591,9 @@
(_dbus_demarshal_uint32), (_dbus_demarshal_string),
(_dbus_marshal_test):
Make the demarshalling routines align the pos argument.
- Add string marshalling tests and fix the obvious bugs
+ Add string marshalling tests and fix the obvious bugs
discovered.
-
+
2002-12-26 Havoc Pennington <hp@pobox.com>
* dbus/dbus-auth.c: fixes fixes fixes
@@ -4591,8 +4601,8 @@
* dbus/dbus-transport-unix.c: wire up support for
encoding/decoding data on the wire
- * dbus/dbus-auth.c (_dbus_auth_encode_data)
- (_dbus_auth_decode_data): append to target string
+ * dbus/dbus-auth.c (_dbus_auth_encode_data)
+ (_dbus_auth_decode_data): append to target string
instead of nuking it.
2002-12-26 Havoc Pennington <hp@pobox.com>
@@ -4602,7 +4612,7 @@
doh
* dbus/dbus-marshal.c: Add macros to do int swapping in-place and
- avoid swap_bytes() overhead (ignoring possible assembly stuff for
+ avoid swap_bytes() overhead (ignoring possible assembly stuff for
now). Main point is because I wanted unpack_uint32 to implement
_dbus_verbose_bytes
(_dbus_verbose_bytes): new function
@@ -4611,14 +4621,14 @@
* dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
mechanism to handle a corrupt message stream
- (_dbus_message_loader_new): fix preallocation to only prealloc,
+ (_dbus_message_loader_new): fix preallocation to only prealloc,
not prelengthen
-
+
* dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
(_dbus_string_test): enhance tests for copy/move and fix the
functions
- * dbus/dbus-transport-unix.c: Hold references in more places to
+ * dbus/dbus-transport-unix.c: Hold references in more places to
avoid reentrancy problems
* dbus/dbus-transport.c: ditto
@@ -4638,7 +4648,7 @@
(_dbus_auth_get_unused_bytes): append the unused bytes
to the passed in string, rather than prepend
- * dbus/dbus-transport.c (_dbus_transport_init_base): create
+ * dbus/dbus-transport.c (_dbus_transport_init_base): create
the auth conversation DBusAuth
* dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
@@ -4653,14 +4663,14 @@
(unix_connection_set): unref watch if we fail to add it
* dbus/dbus-connection.c (dbus_connection_unref): delete the
- transport first, so that the connection owned by the
+ transport first, so that the connection owned by the
transport will be valid as the transport finalizes.
* dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
if necessary, and remove watches from the connection.
-
+
* dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
-
+
2002-12-26 Anders Carlsson <andersca@codefactory.se>
* dbus/dbus-marshal.c: (_dbus_marshal_string),
@@ -4670,15 +4680,15 @@
* dbus/dbus-marshal.h:
Add string marshal functions and have the demarshal functions
return the new position.
-
+
2002-12-25 Havoc Pennington <hp@pobox.com>
- * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
+ * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
it is a simple protocol that just maps directly to SASL.
* dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
initial implementation, not actually used yet.
-
+
* dbus/dbus-string.c (_dbus_string_find): new function
(_dbus_string_equal): new function
(_dbus_string_base64_encode): new function
@@ -4696,7 +4706,7 @@
* dbus/dbus-test.c: (main):
* dbus/dbus-test.h:
Add un-optimized marshalling/demarshalling routines.
-
+
2002-12-25 Harri Porten <porten@kde.org>
* qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
@@ -4711,17 +4721,17 @@
* glib/dbus-gthread.c: fix include
- * glib/dbus-glib.h: rename DBusMessageHandler for now.
- I think glib API needs to change, though, as you don't
- want to use DBusMessageFunction, you want to use the
- DBusMessageHandler object. Probably
+ * glib/dbus-glib.h: rename DBusMessageHandler for now.
+ I think glib API needs to change, though, as you don't
+ want to use DBusMessageFunction, you want to use the
+ DBusMessageHandler object. Probably
dbus_connection_open_with_g_main_loop()
and dbus_connection_setup_g_main_loop() or something like that
- (but think of better names...) that just create a connection
+ (but think of better names...) that just create a connection
that has watch/timeout functions etc. already set up.
* dbus/dbus-connection.c
- (dbus_connection_send_message_with_reply): new function just to
+ (dbus_connection_send_message_with_reply): new function just to
show how the message handler helps us deal with replies.
* dbus/dbus-list.c (_dbus_list_remove_last): new function
@@ -4730,15 +4740,15 @@
wasn't
* dbus/dbus-hash.c: use memory pools for the hash entries
- (rebuild_table): be more paranoid about overflow, and
+ (rebuild_table): be more paranoid about overflow, and
shrink table when we can
(_dbus_hash_test): reduce number of sprintfs and write
- valid C89. Add tests for case where we grow and then
+ valid C89. Add tests for case where we grow and then
shrink the hash table.
* dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
- * dbus/dbus-connection.c (dbus_connection_register_handler)
+ * dbus/dbus-connection.c (dbus_connection_register_handler)
(dbus_connection_unregister_handler): new functions
* dbus/dbus-message.c (dbus_message_get_name): new
@@ -4753,13 +4763,13 @@
* glib/dbus-glib.h:
* glib/dbus-gthread.c: (dbus_gthread_init):
Don't use the gdbus prefix for public functions.
-
+
2002-12-16 Anders Carlsson <andersca@codefactory.se>
* Makefile.am:
* configure.in:
Add GLib checks and fixup .pc files
-
+
* glib/Makefile.am:
* glib/dbus-glib.h:
* glib/dbus-gmain.c: (gdbus_connection_prepare),
@@ -4770,14 +4780,14 @@
(dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
* glib/test-dbus-glib.c: (message_handler), (main):
Add GLib support.
-
+
2002-12-15 Harri Porten <porten@kde.org>
- * autogen.sh: check for libtoolize before attempting to use it
-
+ * autogen.sh: check for libtoolize before attempting to use it
+
* dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
struct.
-
+
* .cvsignore: ignore more stamp files
* dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
@@ -4815,7 +4825,7 @@
* dbus/dbus-connection.c (dbus_connection_send_message): return
TRUE on success
- * dbus/dbus-transport.c: include dbus-watch.h
+ * dbus/dbus-transport.c: include dbus-watch.h
* dbus/dbus-connection.c: include dbus-message-internal.h
@@ -4829,17 +4839,17 @@
system/libc usage here, as in vsftpd, for ease of auditing (and
should also simplify portability). Haven't actually moved all the
system/libc usage into here yet.
-
+
2002-11-25 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-internals.c (_dbus_verbose): fix to not
+ * dbus/dbus-internals.c (_dbus_verbose): fix to not
always print the first verbose message.
2002-11-24 Havoc Pennington <hp@pobox.com>
- * test/echo-client.c, test/echo-server.c: cheesy test
+ * test/echo-client.c, test/echo-server.c: cheesy test
clients.
-
+
* configure.in (AC_CHECK_FUNCS): check for writev
* dbus/dbus-message.c (_dbus_message_get_network_data): new
@@ -4858,8 +4868,8 @@
public API for reporting errors
* dbus/dbus-connection.h, dbus/dbus-connection.c:
- public object representing a connection that
- sends/receives messages. (Same object used for
+ public object representing a connection that
+ sends/receives messages. (Same object used for
both client and server.)
* dbus/dbus-transport.h, dbus/dbus-transport.c:
@@ -4868,20 +4878,20 @@
2002-11-23 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
+ * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
_DBUS_INT_MAX
- * dbus/dbus-test.c (main): add list test, and include
+ * dbus/dbus-test.c (main): add list test, and include
dbus-test.h as intended
- * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
- (_dbus_hash_table_remove_int): return value indicates
+ * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
+ (_dbus_hash_table_remove_int): return value indicates
whether the entry existed to remove
- * dbus/dbus-list.c: add linked list utility class,
+ * dbus/dbus-list.c: add linked list utility class,
with docs and tests
- * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
+ * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
array sometimes.
2002-11-23 Havoc Pennington <hp@pobox.com>
@@ -4891,43 +4901,43 @@
* Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
- * dbus/dbus-message.c, dbus/dbus-hash.c:
+ * dbus/dbus-message.c, dbus/dbus-hash.c:
add some missing @brief
2002-11-23 Havoc Pennington <hp@pobox.com>
- * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
+ * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
to avoid confusing Doxygen
* dbus/dbus-hash.c: @} not }@
- * dbus/dbus-message.c (struct DBusMessage): split out
+ * dbus/dbus-message.c (struct DBusMessage): split out
internals docs
2002-11-23 Havoc Pennington <hp@pobox.com>
* configure.in: pile on more warning flags if using gcc
- * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
+ * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
to document static functions
- * configure.in: add summary to end of configure so it
+ * configure.in: add summary to end of configure so it
looks nice and attractive
- * dbus/dbus-hash.c: finish implementation and write unit
+ * dbus/dbus-hash.c: finish implementation and write unit
tests and docs
* configure.in: add --enable-tests to enable unit tests
- * dbus/dbus-test.c: test program to run unit tests
- for all files in dbus/*, initially runs a test for
+ * dbus/dbus-test.c: test program to run unit tests
+ for all files in dbus/*, initially runs a test for
dbus-hash.c
-
+
* dbus/dbus-internals.h: file to hold some internal utility stuff
2002-11-22 Havoc Pennington <hp@redhat.com>
- * dbus/dbus-hash.c: copy in Tcl hash table, not yet
+ * dbus/dbus-hash.c: copy in Tcl hash table, not yet
"ported" away from Tcl
* dbus/dbus-types.h: header for types such as dbus_bool_t
@@ -4936,7 +4946,7 @@
* dbus/dbus.h: fixups for doc warnings
- * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
+ * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
macros
(QUIET): make it quiet so we can see warnings
@@ -4948,8 +4958,8 @@
* configure.in: generate the Doxyfile
- * Doxyfile.in: move Doxyfile here, so we can use
- configure to generate a Doxyfile with the right
+ * Doxyfile.in: move Doxyfile here, so we can use
+ configure to generate a Doxyfile with the right
version number etc.
2002-11-22 Havoc Pennington <hp@redhat.com>
@@ -4958,16 +4968,16 @@
* Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
so all docs are under doc/
- (MAN_EXTENSION): generate man pages. Use extension
- ".3dbus" which matches ".3qt" on my system,
+ (MAN_EXTENSION): generate man pages. Use extension
+ ".3dbus" which matches ".3qt" on my system,
I guess this is OK, I don't know really.
(FILE_PATTERNS): look for .c files not .h, makes sense
for plain C I think
2002-11-22 Havoc Pennington <hp@pobox.com>
- * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
- because any app can be a server, and any app can be a client,
+ * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
+ because any app can be a server, and any app can be a client,
the bus is a special kind of server.
Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
@@ -4975,7 +4985,7 @@ Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
* Doxyfile : adding. Still needs Makefile rules to be generated
automatically (just run "doxygen" in the toplevel dir for now to
generate docs)
-
+
* dbus/dbus-message.h : Adding sample docs (javadoc since
resembles gtk-doc a little more)
@@ -4983,17 +4993,17 @@ Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
2002-11-21 Havoc Pennington <hp@redhat.com>
- * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
- so we can allow ourselves to include files directly,
+ * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
+ so we can allow ourselves to include files directly,
instead of having to use dbus.h
* dbus/dbus.h: fill in
* dbus/dbus-message.h: sketch out a sample header file.
- Include griping if you include it directly instead of
+ Include griping if you include it directly instead of
via dbus.h
- * dbus/dbus-macros.h: new file with macros for extern "C",
+ * dbus/dbus-macros.h: new file with macros for extern "C",
TRUE/FALSE, NULL, etc.
* doc/file-boilerplate.c: put include guards in here
@@ -5002,7 +5012,7 @@ Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
* doc/file-boilerplate.c: include both AFL and GPL boilerplate.
- * COPYING: include the GPL as well, and license code
+ * COPYING: include the GPL as well, and license code
under both AFL and GPL.
2002-11-21 Havoc Pennington <hp@redhat.com>
@@ -5012,9 +5022,9 @@ Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
* autogen.sh (run_configure): add --no-configure option
* configure.in: remove AC_ARG_PROGRAM to make
- autoconf complain less. add AC_PREREQ.
+ autoconf complain less. add AC_PREREQ.
add AC_DEFINE third arg.
-
+
2002-11-21 Anders Carlsson <andersca@codefactory.se>
* doc/Makefile.am:
diff --git a/dbus/Makefile.am b/dbus/Makefile.am
index 3c3c14e7..8c919f31 100644
--- a/dbus/Makefile.am
+++ b/dbus/Makefile.am
@@ -17,6 +17,7 @@ dbusinclude_HEADERS= \
dbus-memory.h \
dbus-message.h \
dbus-message-handler.h \
+ dbus-object.h \
dbus-objectid.h \
dbus-protocol.h \
dbus-server.h \
@@ -43,7 +44,10 @@ DBUS_LIB_SOURCES= \
dbus-message.c \
dbus-message-handler.c \
dbus-message-internal.h \
+ dbus-object.c \
dbus-objectid.c \
+ dbus-object-registry.c \
+ dbus-object-registry.h \
dbus-resources.c \
dbus-resources.h \
dbus-server.c \
diff --git a/dbus/dbus-connection-internal.h b/dbus/dbus-connection-internal.h
index 5ddc0e0a..eaa35955 100644
--- a/dbus/dbus-connection-internal.h
+++ b/dbus/dbus-connection-internal.h
@@ -81,6 +81,7 @@ void _dbus_message_handler_remove_connection (DBusMessageHandl
DBusHandlerResult _dbus_message_handler_handle_message (DBusMessageHandler *handler,
DBusConnection *connection,
DBusMessage *message);
+dbus_uint32_t _dbus_connection_get_id (DBusConnection *connection);
DBUS_END_DECLS;
diff --git a/dbus/dbus-connection.c b/dbus/dbus-connection.c
index 01b2a7bf..237c195b 100644
--- a/dbus/dbus-connection.c
+++ b/dbus/dbus-connection.c
@@ -920,6 +920,22 @@ _dbus_connection_handle_watch (DBusWatch *watch,
return retval;
}
+/**
+ * Get the ID to be used in the high bits of an object ID for an object
+ * registered with this connection.
+ *
+ * @todo implement this function
+ *
+ * @param connection the connection.
+ * @returns the connection portion of the object ID
+ */
+dbus_uint32_t
+_dbus_connection_get_id (DBusConnection *connection)
+{
+ /* FIXME */
+ return 1492;
+}
+
/** @} */
/**
diff --git a/dbus/dbus-connection.h b/dbus/dbus-connection.h
index 9f4dd7ae..ce57c98d 100644
--- a/dbus/dbus-connection.h
+++ b/dbus/dbus-connection.h
@@ -37,6 +37,7 @@ typedef struct DBusConnection DBusConnection;
typedef struct DBusWatch DBusWatch;
typedef struct DBusTimeout DBusTimeout;
typedef struct DBusMessageHandler DBusMessageHandler;
+typedef struct DBusObject DBusObject;
typedef struct DBusPreallocatedSend DBusPreallocatedSend;
typedef enum
diff --git a/dbus/dbus-object-registry.c b/dbus/dbus-object-registry.c
new file mode 100644
index 00000000..9f7ca3ff
--- /dev/null
+++ b/dbus/dbus-object-registry.c
@@ -0,0 +1,325 @@
+/* -*- mode: C; c-file-style: "gnu" -*- */
+/* dbus-object-registry.c DBusObjectRegistry (internals of DBusConnection)
+ *
+ * Copyright (C) 2003 Red Hat Inc.
+ *
+ * Licensed under the Academic Free License version 1.2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+#include "dbus-object-registry.h"
+#include "dbus-connection-internal.h"
+#include "dbus-internals.h"
+#include <string.h>
+
+/**
+ * @defgroup DBusObjectRegistry Map object IDs to implementations
+ * @ingroup DBusInternals
+ * @brief DBusObjectRegistry is used by DBusConnection to track object IDs
+ *
+ * Types and functions related to DBusObjectRegistry
+ *
+ * @{
+ */
+
+typedef struct DBusObjectEntry DBusObjectEntry;
+
+ /* 14 bits for object index, 32K objects */
+#define DBUS_OBJECT_INDEX_BITS (14)
+#define DBUS_OBJECT_INDEX_MASK (0x7fff)
+#define DBUS_MAX_OBJECTS_PER_CONNECTION DBUS_OBJECT_INDEX_MASK
+struct DBusObjectEntry
+{
+ unsigned int id_index : 14; /**< Index of this entry in the entries array */
+ unsigned int id_times_used : 18; /**< Count of times entry has been used; avoids recycling IDs too often */
+
+ void *object_impl; /**< Pointer to application-supplied implementation */
+ const DBusObjectVTable *vtable; /**< Virtual table for this object */
+};
+
+struct DBusObjectRegistry
+{
+ int refcount;
+ DBusConnection *connection;
+
+ DBusObjectEntry *entries;
+ int n_entries_allocated;
+ int n_entries_used;
+};
+
+DBusObjectRegistry*
+_dbus_object_registry_new (DBusConnection *connection)
+{
+ DBusObjectRegistry *registry;
+
+ registry = dbus_new0 (DBusObjectRegistry, 1);
+
+ registry->refcount = 1;
+ registry->connection = connection;
+
+ return registry;
+}
+
+void
+_dbus_object_registry_ref (DBusObjectRegistry *registry)
+{
+ _dbus_assert (registry->refcount > 0);
+
+ registry->refcount += 1;
+}
+
+void
+_dbus_object_registry_unref (DBusObjectRegistry *registry)
+{
+ _dbus_assert (registry->refcount > 0);
+
+ registry->refcount -= 1;
+
+ if (registry->refcount == 0)
+ {
+ _dbus_assert (registry->n_entries_used == 0);
+
+ dbus_free (registry->entries);
+ dbus_free (registry);
+ }
+}
+
+#define ENTRY_TO_ID(entry) \
+ (((dbus_uint32_t) (entry)->id_index) | \
+ (((dbus_uint32_t)(entry)->id_times_used) << DBUS_OBJECT_INDEX_BITS))
+
+#define ID_TO_INDEX(id) \
+ (((dbus_uint32_t) (id)) | DBUS_OBJECT_INDEX_MASK)
+
+#define ID_TO_TIMES_USED(id) \
+ (((dbus_uint32_t) (id)) >> DBUS_OBJECT_INDEX_BITS)
+
+static DBusObjectEntry*
+validate_id (DBusObjectRegistry *registry,
+ const DBusObjectID *object_id)
+{
+ int idx;
+ int times_used;
+ dbus_uint32_t low_bits;
+
+ low_bits = dbus_object_id_get_low_bits (object_id);
+
+ idx = ID_TO_INDEX (low_bits);
+ times_used = ID_TO_TIMES_USED (low_bits);
+
+ if (idx >= registry->n_entries_allocated)
+ return NULL;
+ if (registry->entries[idx].vtable == NULL)
+ return NULL;
+ if (registry->entries[idx].id_times_used != times_used)
+ return NULL;
+ _dbus_assert (registry->entries[idx].id_index == idx);
+ _dbus_assert (registry->n_entries_used > 0);
+
+ return &registry->entries[idx];
+}
+
+static void
+info_from_entry (DBusObjectRegistry *registry,
+ DBusObjectInfo *info,
+ DBusObjectEntry *entry)
+{
+ info->connection = registry->connection;
+ info->object_impl = entry->object_impl;
+ dbus_object_id_set_high_bits (&info->object_id,
+ _dbus_connection_get_id (registry->connection));
+ dbus_object_id_set_low_bits (&info->object_id,
+ ENTRY_TO_ID (entry));
+}
+
+dbus_bool_t
+_dbus_object_registry_add_and_unlock (DBusObjectRegistry *registry,
+ const char **interfaces,
+ const DBusObjectVTable *vtable,
+ void *object_impl,
+ DBusObjectID *object_id)
+{
+ int i;
+ DBusObjectInfo info;
+
+ if (registry->n_entries_used == registry->n_entries_allocated)
+ {
+ DBusObjectEntry *new_entries;
+ int new_alloc;
+
+ if (registry->n_entries_allocated == 0)
+ new_alloc = 16;
+ else
+ {
+ if (registry->n_entries_allocated == DBUS_MAX_OBJECTS_PER_CONNECTION)
+ {
+ _dbus_warn ("Attempting to register a new D-BUS object, but maximum object count of %d reached\n",
+ DBUS_MAX_OBJECTS_PER_CONNECTION);
+ return FALSE;
+ }
+
+ new_alloc = registry->n_entries_allocated * 2;
+ if (new_alloc > DBUS_MAX_OBJECTS_PER_CONNECTION)
+ new_alloc = DBUS_MAX_OBJECTS_PER_CONNECTION;
+ }
+
+ new_entries = dbus_realloc (registry->entries,
+ new_alloc * sizeof (DBusObjectEntry));
+
+ if (new_entries == NULL)
+ return FALSE;
+
+ memset (&new_entries[registry->n_entries_allocated],
+ '\0',
+ sizeof (DBusObjectEntry) * (new_alloc - registry->n_entries_allocated));
+
+ registry->entries = new_entries;
+ registry->n_entries_allocated = new_alloc;
+ }
+ _dbus_assert (registry->n_entries_used < registry->n_entries_allocated);
+
+ /* We linear search for an available entry. However, short-circuit
+ * the hopefully-common situation where we don't have a sparse
+ * array.
+ */
+ if (registry->entries[registry->n_entries_used].vtable == NULL)
+ {
+ i = registry->n_entries_used;
+ }
+ else
+ {
+ /* If we do have a sparse array, we try to get rid of it rather
+ * than using empty slots on the end, so we won't hit this case
+ * next time.
+ */
+
+ /* If index n_entries_used is occupied, then
+ * there is at least one entry outside of
+ * the range [0, n_entries_used). Thus, there is
+ * at least one blank entry inside that range.
+ */
+ i = 0;
+ while (i < registry->n_entries_used)
+ {
+ if (registry->entries[i].vtable == NULL)
+ break;
+ ++i;
+ }
+
+ _dbus_assert (i < registry->n_entries_used);
+ }
+
+ registry->entries[i].id_index = i;
+ /* Overflow is OK here */
+ registry->entries[i].id_times_used += 1;
+
+ registry->entries[i].vtable = vtable;
+ registry->entries[i].object_impl = object_impl;
+
+ info_from_entry (registry, &info, &registry->entries[i]);
+
+ /* Drop lock and invoke application code */
+ _dbus_connection_unlock (registry->connection);
+
+ (* vtable->registered) (&info);
+
+ return TRUE;
+}
+
+void
+_dbus_object_registry_remove_and_unlock (DBusObjectRegistry *registry,
+ const DBusObjectID *object_id)
+{
+ DBusObjectInfo info;
+ DBusObjectEntry *entry;
+ const DBusObjectVTable *vtable;
+
+ entry = validate_id (registry, object_id);
+ if (entry == NULL)
+ {
+ _dbus_warn ("Tried to unregister a nonexistent D-BUS object ID\n");
+ return;
+ }
+
+ info_from_entry (registry, &info, entry);
+ vtable = entry->vtable;
+ entry->vtable = NULL;
+ entry->object_impl = NULL;
+ registry->n_entries_used -= 1;
+
+ /* Drop lock and invoke application code */
+ _dbus_connection_unlock (registry->connection);
+
+ (* vtable->unregistered) (&info);
+}
+
+void
+_dbus_object_registry_handle_and_unlock (DBusObjectRegistry *registry,
+ DBusMessage *message)
+{
+ /* FIXME */
+}
+
+void
+_dbus_object_registry_free_all_unlocked (DBusObjectRegistry *registry)
+{
+ int i;
+
+ i = 0;
+ while (registry->n_entries_used > 0)
+ {
+ _dbus_assert (i < registry->n_entries_allocated);
+ if (registry->entries[i].vtable != NULL)
+ {
+ DBusObjectInfo info;
+ const DBusObjectVTable *vtable;
+
+ info_from_entry (registry, &info, &registry->entries[i]);
+ vtable = registry->entries[i].vtable;
+ registry->entries[i].vtable = NULL;
+ registry->entries[i].object_impl = NULL;
+ registry->n_entries_used -= 1;
+ _dbus_assert (registry->n_entries_used >= 0);
+
+ (* vtable->unregistered) (&info);
+ }
+
+ ++i;
+ }
+
+ _dbus_assert (registry->n_entries_used == 0);
+}
+
+/** @} */
+
+#ifdef DBUS_BUILD_TESTS
+#include "dbus-test.h"
+#include <stdio.h>
+
+/**
+ * @ingroup DBusObjectRegistry
+ * Unit test for DBusObjectRegistry
+ * @returns #TRUE on success.
+ */
+dbus_bool_t
+_dbus_object_registry_test (void)
+{
+
+
+ return TRUE;
+}
+
+#endif /* DBUS_BUILD_TESTS */
diff --git a/dbus/dbus-object-registry.h b/dbus/dbus-object-registry.h
new file mode 100644
index 00000000..d33664e5
--- /dev/null
+++ b/dbus/dbus-object-registry.h
@@ -0,0 +1,50 @@
+/* -*- mode: C; c-file-style: "gnu" -*- */
+/* dbus-object-registry.h DBusObjectRegistry (internals of DBusConnection)
+ *
+ * Copyright (C) 2003 Red Hat Inc.
+ *
+ * Licensed under the Academic Free License version 1.2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+#ifndef DBUS_OBJECT_REGISTRY_H
+#define DBUS_OBJECT_REGISTRY_H
+
+#include <dbus/dbus-object.h>
+
+DBUS_BEGIN_DECLS;
+
+typedef struct DBusObjectRegistry DBusObjectRegistry;
+
+DBusObjectRegistry* _dbus_object_registry_new (DBusConnection *connection);
+void _dbus_object_registry_ref (DBusObjectRegistry *registry);
+void _dbus_object_registry_unref (DBusObjectRegistry *registry);
+
+dbus_bool_t _dbus_object_registry_add_and_unlock (DBusObjectRegistry *registry,
+ const char **interfaces,
+ const DBusObjectVTable *vtable,
+ void *object_impl,
+ DBusObjectID *object_id);
+void _dbus_object_registry_remove_and_unlock (DBusObjectRegistry *registry,
+ const DBusObjectID *object_id);
+void _dbus_object_registry_handle_and_unlock (DBusObjectRegistry *registry,
+ DBusMessage *message);
+void _dbus_object_registry_free_all_unlocked (DBusObjectRegistry *registry);
+
+
+DBUS_END_DECLS;
+
+#endif /* DBUS_OBJECT_REGISTRY_H */
diff --git a/dbus/dbus-object.c b/dbus/dbus-object.c
new file mode 100644
index 00000000..fdd33dd4
--- /dev/null
+++ b/dbus/dbus-object.c
@@ -0,0 +1,27 @@
+/* -*- mode: C; c-file-style: "gnu" -*- */
+/* dbus-object.c DBusObject type
+ *
+ * Copyright (C) 2003 Red Hat Inc.
+ *
+ * Licensed under the Academic Free License version 1.2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+
+#include <config.h>
+#include "dbus-internals.h"
+#include "dbus-object.h"
+
diff --git a/dbus/dbus-object.h b/dbus/dbus-object.h
new file mode 100644
index 00000000..0c92776d
--- /dev/null
+++ b/dbus/dbus-object.h
@@ -0,0 +1,85 @@
+/* -*- mode: C; c-file-style: "gnu" -*- */
+/* dbus-object.h DBusObject type
+ *
+ * Copyright (C) 2003 Red Hat Inc.
+ *
+ * Licensed under the Academic Free License version 1.2
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ *
+ */
+#if !defined (DBUS_INSIDE_DBUS_H) && !defined (DBUS_COMPILATION)
+#error "Only <dbus/dbus.h> can be included directly, this file may disappear or change contents."
+#endif
+
+#ifndef DBUS_OBJECT_H
+#define DBUS_OBJECT_H
+
+#include <dbus/dbus-arch-deps.h>
+#include <dbus/dbus-types.h>
+#include <dbus/dbus-objectid.h>
+#include <dbus/dbus-connection.h>
+
+DBUS_BEGIN_DECLS;
+
+typedef struct DBusObjectVTable DBusObjectVTable;
+typedef struct DBusObjectInfo DBusObjectInfo;
+typedef struct DBusCallbackObject DBusCallbackObject;
+
+struct DBusObjectInfo
+{
+ void *object_impl;
+ DBusObjectID object_id;
+ DBusConnection *connection;
+};
+
+typedef void (* DBusObjectRegisteredFunction) (DBusObjectInfo *info);
+typedef void (* DBusObjectUnregisteredFunction) (DBusObjectInfo *info);
+typedef void (* DBusObjectMessageFunction) (DBusObjectInfo *info,
+ DBusMessage *message);
+
+struct DBusObjectVTable
+{
+ DBusObjectRegisteredFunction registered;
+ DBusObjectUnregisteredFunction unregistered;
+ DBusObjectMessageFunction message;
+};
+
+dbus_bool_t dbus_connection_register_object (DBusConnection *connection,
+ const char **interfaces,
+ const DBusObjectVTable *vtable,
+ void *object_impl,
+ DBusObjectID *object_id);
+void dbus_connection_unregister_object (DBusConnection *connection,
+ const DBusObjectID *object_id);
+
+extern const DBusObjectVTable *dbus_callback_object_vtable;
+
+DBusCallbackObject* dbus_callback_object_new (DBusObjectMessageFunction function,
+ void *user_data,
+ DBusFreeFunction free_user_data);
+void dbus_callback_object_ref (DBusCallbackObject *handler);
+void dbus_callback_object_unref (DBusCallbackObject *handler);
+void* dbus_callback_object_get_data (DBusCallbackObject *handler);
+void dbus_callback_object_set_data (DBusCallbackObject *handler,
+ void *data,
+ DBusFreeFunction free_user_data);
+void dbus_callback_object_set_function (DBusCallbackObject *handler,
+ DBusObjectMessageFunction function);
+
+
+DBUS_END_DECLS;
+
+#endif /* DBUS_OBJECT_H */
diff --git a/dbus/dbus-objectid.h b/dbus/dbus-objectid.h
index 57346910..b5e1f606 100644
--- a/dbus/dbus-objectid.h
+++ b/dbus/dbus-objectid.h
@@ -30,6 +30,8 @@
#include <dbus/dbus-arch-deps.h>
#include <dbus/dbus-types.h>
+DBUS_BEGIN_DECLS;
+
typedef struct DBusObjectID DBusObjectID;
struct DBusObjectID
@@ -58,4 +60,6 @@ void dbus_object_id_set_as_integer (DBusObjectID *obj_id
dbus_uint64_t value);
#endif
+DBUS_END_DECLS;
+
#endif /* DBUS_OBJECTID_H */
diff --git a/dbus/dbus-test.c b/dbus/dbus-test.c
index 3d5d14bb..220961c7 100644
--- a/dbus/dbus-test.c
+++ b/dbus/dbus-test.c
@@ -105,6 +105,12 @@ dbus_internal_do_not_use_run_tests (const char *test_data_dir)
die ("object ID");
check_memleaks ();
+
+ printf ("%s: running object registry tests\n", "dbus-test");
+ if (!_dbus_object_registry_test ())
+ die ("object registry");
+
+ check_memleaks ();
printf ("%s: running marshalling tests\n", "dbus-test");
if (!_dbus_marshal_test ())
diff --git a/dbus/dbus-test.h b/dbus/dbus-test.h
index 512cb9a6..c9555e2d 100644
--- a/dbus/dbus-test.h
+++ b/dbus/dbus-test.h
@@ -54,6 +54,7 @@ dbus_bool_t _dbus_spawn_test (const char *test_data_dir);
dbus_bool_t _dbus_userdb_test (const char *test_data_dir);
dbus_bool_t _dbus_memory_test (void);
dbus_bool_t _dbus_object_id_test (void);
+dbus_bool_t _dbus_object_registry_test (void);
void dbus_internal_do_not_use_run_tests (const char *test_data_dir);
diff --git a/dbus/dbus.h b/dbus/dbus.h
index 38db4f5b..d83a4a50 100644
--- a/dbus/dbus.h
+++ b/dbus/dbus.h
@@ -38,6 +38,7 @@
#include <dbus/dbus-macros.h>
#include <dbus/dbus-message.h>
#include <dbus/dbus-message-handler.h>
+#include <dbus/dbus-object.h>
#include <dbus/dbus-objectid.h>
#include <dbus/dbus-protocol.h>
#include <dbus/dbus-server.h>