1 2005-01-26 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-marshal-recursive.h: remove todo comment
5 2005-01-25 Joe Shaw <joeshaw@novell.com>
7 * Land the mono binding changes to conform to the new APIs.
9 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
10 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
12 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
13 type code as a string.
14 (InitAppending): Rename dbus_message_append_iter_init() to
15 dbus_message_iter_init_append().
17 * mono/BusDriver.cs: Rename ServiceEventHandler to
18 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
19 Rename ServiceOwnerChanged to NameOwnerChanged.
21 * mono/Connection.cs: Rename BaseService to UniqueName, and the
24 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
26 * mono/Service.cs: Rename Exists to HasOwner, internally rename
27 dbus_bus_acquire_service() to dbus_bus_request_name().
29 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
30 of Type.UnderlyingSystemType to get the correct element type for
32 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
33 dbus_message_get_{element|arg}_type() instead of
34 dbus_message_iter_init_array_iterator().
35 (Append): Replace dbus_message_iter_append_array() with
36 dbus_message_iter_open_container() and
37 dbus_message_iter_close_container().
39 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
40 types have been removed.
42 * mono/DBusType/*.cs: Replace calls of
43 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
44 but specify the type in the DllImport extern declaration. Ditto
45 for dbus_message_iter_append_[type]() ->
46 dbus_message_iter_append_basic().
48 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
49 NameOwnerChangedHandler.
51 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
53 * python/dbus_bindings.pyx.in: Rename of methods and bindings
54 - get_base_service -> get_unique_name
55 - bus_get_base_service -> bus_get_unique_name
56 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
57 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
58 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
59 - bus_activate_service -> bus_start_service_by_name
60 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
61 - bus_acquire_service -> bus_request_name
62 - dbus_bus_acquire_service -> dbus_bus_request_name
63 - bus_service_exists -> bus_name_has_owner
64 - dbus_bus_service_exists -> dbus_bus_name_has_owner
66 * python/dbus.py: Rename of methods
67 - activate_service -> start_service_by_name
68 - bus_acquire_service -> bus_request_name
69 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
70 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
73 2005-01-24 Joe Shaw <joeshaw@novell.com>
75 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
76 signature for the method that can't be found.
78 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
79 the message has any arguments, we need to call
80 _dbus_type_reader_get_current_type(), not
81 _dbus_type_reader_has_next().
83 2005-01-24 Havoc Pennington <hp@redhat.com>
85 * dbus/dbus-message-factory.c: more testing of message validation
87 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
90 2005-01-23 Havoc Pennington <hp@redhat.com>
92 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
93 get this all working, not many tests in the framework yet though
95 2005-01-22 Havoc Pennington <hp@redhat.com>
97 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
98 tutorial, based on work from David Wheeler.
100 2005-01-21 Havoc Pennington <hp@redhat.com>
102 * dbus/dbus-bus.c: add more return_if_fail checks
104 * dbus/dbus-message.c (load_message): have the "no validation"
105 mode (have to edit the code to toggle the mode for now though)
107 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
108 skips all validation; I want to use this at least for benchmark
109 baseline, I'm not sure if it should be a publicly-available switch.
111 2005-01-21 Havoc Pennington <hp@redhat.com>
113 * glib/dbus-gmain.c: don't put the GLib bindings in the same
114 toplevel doxygen group as the low-level API stuff
116 * dbus/dbus.h: note that libdbus is the low-level API
118 2005-01-20 Havoc Pennington <hp@redhat.com>
120 * update-dbus-docs.sh: script to update docs on the web site, only
121 works for me though. neener.
123 2005-01-20 Havoc Pennington <hp@redhat.com>
125 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
126 code can reveal bugs in it
128 2005-01-20 Havoc Pennington <hp@redhat.com>
130 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
131 select() version, patches from Tor Lillqvist
133 2005-01-20 Havoc Pennington <hp@redhat.com>
135 * doc/dbus-tutorial.xml: replace > with >
137 * bus/services.c (bus_registry_acquire_service): validate the name
138 and return a better error if it's no good.
140 * doc/dbus-specification.xml: note NO_AUTO_START change
142 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
143 from AUTO_START, we're toggling the default
145 * bus/dispatch.c: adapt the tests to change of auto-start default
147 2005-01-18 Havoc Pennington <hp@redhat.com>
149 * rename dbus-daemon-1 to dbus-daemon throughout
151 2005-01-18 Havoc Pennington <hp@redhat.com>
153 * Throughout, grand renaming to strip out the use of "service",
154 just say "name" instead (or "bus name" when ambiguous). Did not
155 change the internal code of the message bus itself, only the
156 programmer-facing API and messages.
158 * doc/dbus-specification.xml: further update the message bus section
160 * bus/config-parser.c (all_are_equiv): fix bug using freed string
163 2005-01-17 Havoc Pennington <hp@redhat.com>
165 * dbus/dbus-types.h: remove 16-bit types since we don't use them
168 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
169 "invalid name character" not only non-ASCII
171 * doc/dbus-specification.xml: further update spec, message bus
172 parts are still out-of-date but the marshaling etc. stuff is now
175 2005-01-17 Havoc Pennington <hp@redhat.com>
177 * doc/dbus-specification.xml: partially update spec
179 2005-01-17 Havoc Pennington <hp@redhat.com>
181 * Throughout, align variant bodies according to the contained
182 type, rather than always to 8. Should save a fair bit of space in
185 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
186 fix handling of case where p == end
188 * doc/TODO: remove the dbus_bool_t item and variant alignment items
190 2005-01-17 Havoc Pennington <hp@redhat.com>
192 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
194 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
195 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
196 are marshaling/unmarshaling a boolean.
198 2005-01-16 Havoc Pennington <hp@redhat.com>
200 This is about it on what can be disabled/deleted from libdbus
201 easily, back below 150K anyhow. Deeper cuts are more work than
202 just turning the code off as I've done here.
204 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
205 signed int convenience funcs
207 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
210 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
211 things out of libdbus
213 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
215 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
216 tests-enabled-only, though it should probably be deleted)
218 * dbus/dbus-message-util.c: same stuff
220 * dbus/dbus-auth-util.c: same stuff
222 2005-01-16 Havoc Pennington <hp@redhat.com>
224 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
226 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
227 way for stripping down dbus-userdb.c stuff included in libdbus.
228 Rename _dbus_parse_uid for consistency.
230 2005-01-16 Havoc Pennington <hp@redhat.com>
232 * dbus/dbus-internals.c (_dbus_real_assert): print the function
233 name the assertion failed in
235 * dbus/dbus-internals.h (_dbus_return_if_fail)
236 (_dbus_return_val_if_fail): assert that the name of the function
237 containing the check doesn't start with '_', since we only want to
238 use checks on public functions
240 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
243 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
244 change checks to asserts for private function
246 * dbus/dbus-message.c (_dbus_message_set_serial): checks
247 to asserts for private function
249 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
250 broken assertion that was breaking make check
251 (_dbus_type_reader_array_is_empty): remove this rather than fix
252 it, was only used in assertions
254 2005-01-16 Havoc Pennington <hp@redhat.com>
256 * test/unused-code-gc.py: hacky script to find code that's used
257 only by the bus (not libdbus) or used only by tests or not used at
258 all. It has some false alarms, but looks like we can clean up a
259 lot of size from libdbus.
261 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
262 dbus/Makefile.am: initially move 10K of binary size out of libdbus
264 2005-01-16 Havoc Pennington <hp@redhat.com>
266 * Add and fix docs according to Doxygen warnings throughout
269 * dbus/dbus-marshal-recursive.c
270 (_dbus_type_reader_array_is_empty): change this to just call
271 array_reader_get_array_len() and make it static
273 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
275 (dbus_message_iter_init_append): rename from append_iter_init
277 * dbus/dbus-marshal-recursive.c
278 (_dbus_type_reader_get_element_type): rename from
279 _dbus_type_reader_get_array_type
281 2005-01-15 Havoc Pennington <hp@redhat.com>
283 * test/glib/test-profile.c (with_bus_server_filter): fix crash
285 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
286 when DBUS_DISABLE_ASSERT
287 (_dbus_marshal_set_basic): be sure we align for the string length
289 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
292 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
294 (_dbus_string_set_byte): provide inline macro version
296 2005-01-15 Havoc Pennington <hp@redhat.com>
298 * Land the new message args API and type system.
300 This patch is huge, but the public API change is not
301 really large. The set of D-BUS types has changed somewhat,
302 and the arg "getters" are more geared toward language bindings;
303 they don't make a copy, etc.
305 There are also some known issues. See these emails for details
307 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
308 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
310 * dbus/dbus-marshal-*: all the new stuff
312 * dbus/dbus-message.c: basically rewritten
314 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
315 freed blocks to be all non-nul bytes so using freed memory is less
318 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
319 DBUS_FAIL_MALLOC=N environment variable, so you can do
320 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
321 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
324 * qt/message.cpp: port to the new message args API
325 (operator<<): use str.utf8() rather than str.unicode()
326 (pretty sure this is right from the Qt docs?)
328 * glib/dbus-gvalue.c: port to the new message args API
330 * bus/dispatch.c, bus/driver.c: port to the new message args API
332 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
333 "locked" flag to TRUE and align_offset to 0; I guess we never
334 looked at these anyhow, but seems cleaner.
336 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
337 move allocation padding macro to this header; use it to implement
338 (_DBUS_STRING_STATIC): ability to declare a static string.
340 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
341 change to return TRUE if the interface is not set.
343 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
344 to dbus-marshal-validate.[hc]
346 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
349 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
350 to dbus-marshal-*.[hc]
352 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
353 function here from dbus-marshal.c
355 2005-01-12 Joe Shaw <joeshaw@novell.com>
357 * NEWS: Update for 0.23.
359 * configure.in: Release 0.23.
361 2005-01-12 Joe Shaw <joeshaw@novell.com>
363 * mono/Makefile.am, mono/example/Makefile.am: Always build the
364 dbus DLL with --debug. Clean up after the .mdb files this leaves
367 * mono/doc/Makefile.am: Need to uninstall the docs on "make
370 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
371 is an enum, get the enum's underlying type. Another mono
374 2005-01-11 Joe Shaw <joeshaw@novell.com>
376 Patch from Sjoerd Simons <sjoerd@luon.net>
378 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
379 DESTDIR. It breaks stuff.
381 2005-01-11 Joe Shaw <joeshaw@novell.com>
383 Patch from Tambet Ingo <tambet@ximian.com>
385 * mono/DBusType/Array.cs (Get): Get the underlying element type by
386 calling type.GetElementType(). The code previously depended on
387 broken Mono behavior, which was fixed in Mono 1.1.3.
389 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
390 Activator.CreateInstance() so that the class's constructor is
391 called with the right parameters.
393 2005-01-11 Joe Shaw <joeshaw@novell.com>
395 Patch from Timo Teräs <ext-timo.teras@nokia.com>
397 * dbus/dbus-connection.c
398 (_dbus_connection_queue_received_message_link): Call
399 _dbus_connection_remove_timeout() instead of the _locked()
400 variant, since it's always called from
401 _dbus_connection_handle_watch(), which handles the locking.
402 Removed the _locked() variant since it's no longer used.
404 2005-01-03 Havoc Pennington <hp@redhat.com>
406 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
409 2004-12-26 Havoc Pennington <hp@redhat.com>
411 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
413 2005-01-03 Havoc Pennington <hp@redhat.com>
415 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
418 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
420 2005-01-02 Havoc Pennington <hp@redhat.com>
422 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
424 2005-01-01 Havoc Pennington <hp@redhat.com>
426 * configure.in: add -Wfloat-equal
428 2005-01-01 Havoc Pennington <hp@redhat.com>
430 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
431 for a variety of reasons '==' doesn't do this.
433 2004-12-31 Havoc Pennington <hp@redhat.com>
435 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
438 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
440 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
442 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
444 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
445 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
446 dbus-protocol.h. Because they are defines and not enums they are not
449 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
451 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
452 dbus_bus_activate_service
454 * python/dbus.py (Bus.activate_service): activate a service on the
457 2004-12-24 Havoc Pennington <hp@redhat.com>
459 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
460 file format has also changed and I haven't adapted to that yet
462 * Makefile.am: load .gcno files from latest gcc
464 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
465 * Patch from Rob Taylor <robtaylor@fastmail.fm>
467 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
470 * python/dbus.py (get_unix_user): Added binding to
471 call dbus_bindings.bus_get_unix_user
473 * python/extract.py: Modified the proto_pat regex to
476 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
478 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
479 better POSIX compliance.
481 2004-12-19 Havoc Pennington <hp@redhat.com>
483 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
484 (_dbus_string_insert_8_aligned): new functions
486 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
488 2004-12-18 Havoc Pennington <hp@redhat.com>
490 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
493 * dbus/dbus-message.c: fix a comment, and add a still-unused
494 not-implemented function
496 * dbus/dbus-marshal.h: fix comment
498 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
500 2004-12-17 Joe Shaw <joeshaw@novell.com>
502 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
503 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
504 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
505 Type.UnderlyingSystemType to get the actual system type
506 underneath. This code previously depended on the broken Mono
507 behavior, which was fixed in 1.1.3.
509 2004-11-27 Havoc Pennington <hp@redhat.com>
511 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
513 (_dbus_string_get_const_data): inline when asserts are disabled
515 * dbus/dbus-message.c: record the _dbus_current_generation of
516 creation so we can complain if dbus_shutdown() is used improperly.
517 Do this only if checks are enabled.
519 * dbus/dbus-connection.c: ditto
521 2004-11-26 Havoc Pennington <hp@redhat.com>
523 * test/glib/test-profile.c: add with_bus mode to profile echoes
524 that go through the bus.
526 * test/glib/run-test.sh: add ability to run test-profile
528 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
531 2004-11-26 Havoc Pennington <hp@redhat.com>
533 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
534 thing was implemented
536 2004-11-26 Havoc Pennington <hp@redhat.com>
538 * test/glib/test-profile.c: tweak a bit, add support for some
539 made-up minimal malloc overhead with plain sockets, since in
540 real life some sort of buffers are unavoidable thus we could
541 count them in the theoretical best case
543 2004-11-26 Havoc Pennington <hp@redhat.com>
545 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
546 where I was trying to cache one too many messages
548 2004-11-26 Havoc Pennington <hp@redhat.com>
550 * dbus/dbus-message.c: reimplement message cache as an array which
551 makes the cache about twice as fast and saves maybe 1.5% overall
553 2004-11-26 Havoc Pennington <hp@redhat.com>
555 * dbus/dbus-threads.c (init_global_locks): forgot to put the
556 message cache lock here
558 2004-11-26 Havoc Pennington <hp@redhat.com>
560 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
561 the "char byte_order" next to each other to save 4 bytes
562 (dbus_message_new_empty_header): reduce preallocation, since the
563 message cache should achieve a similar effect
564 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
565 message cache that keeps a few DBusMessage around in a pool,
566 another 8% speedup or so.
568 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
570 2004-11-25 Havoc Pennington <hp@redhat.com>
572 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
573 to write, without reading or blocking, try it before the poll()
574 and skip the poll() if nothing remains to write. This is about a
575 3% speedup in the echo client/server
577 2004-11-25 Havoc Pennington <hp@redhat.com>
579 The primary change here is to always write() once before adding
580 the write watch, which gives us about a 10% performance increase.
582 * dbus/dbus-transport-unix.c: a number of modifications to cope
583 with removing messages_pending
584 (check_write_watch): properly handle
585 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
586 messages_pending stuff
587 (check_read_watch): properly handle WAITING_FOR_MEMORY and
589 (unix_handle_watch): after writing, see if the write watch can be
591 (unix_do_iteration): assert that write_watch/read_watch are
592 non-NULL rather than testing that they aren't, since they
593 aren't allowed to be NULL. check_write_watch() at the end so
594 we add the watch if we did not finish writing (e.g. got EAGAIN)
596 * dbus/dbus-transport-protected.h: remove messages_pending call,
597 since it resulted in too much inefficient watch adding/removing;
598 instead we now require that the transport user does an iteration
599 after queueing outgoing messages, and after trying the first
600 write() we add a write watch if we got EAGAIN or exceeded our
601 max bytes to write per iteration setting
603 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
606 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
607 freed and then accessed, valgrind flagged this bug, fix it
609 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
610 as the last valid field plus 1, where really it is equal to the
611 last valid field. Corrects some message corruption issues.
613 * dbus/dbus-mainloop.c: verbosity changes
615 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
616 instead of aborting in one of the test codepaths
618 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
619 caused not printing the pid ever again if a verbose was missing
620 the newline at the end
621 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
623 * dbus/dbus-connection.c: verbosity changes;
624 (dbus_connection_has_messages_to_send): new function
625 (_dbus_connection_message_sent): no longer call transport->messages_pending
626 (_dbus_connection_send_preallocated_unlocked): do one iteration to
627 try to write() immediately, so we can avoid the write watch. This
628 is the core purpose of this patchset
629 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
630 dump the outgoing message queue, so nobody will get confused
631 trying to send them or thinking stuff is pending to be sent
633 * bus/test.c: verbosity changes
635 * bus/driver.c: verbosity/assertion changes
637 * bus/dispatch.c: a bunch of little tweaks to get it working again
638 because this patchset changes when/where you need to block.
640 2004-11-23 Havoc Pennington <hp@redhat.com>
642 * test/glib/test-profile.c: modify to accept a plain_sockets
643 argument in which case it will bench plain sockets instead of
644 libdbus, for comparison purposes.
646 2004-11-22 Havoc Pennington <hp@redhat.com>
648 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
649 threads for more time, so sysprof can get a grip on it.
651 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
654 2004-11-13 Havoc Pennington <hp@redhat.com>
656 * test/glib/test-profile.c: fix this thing up a bit
658 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
659 preallocation sizes by a fair bit; not sure if this will be an
660 overall performance win or not, but it does reduce reallocs.
662 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
663 the test hack that forced constant realloc if asserts are
664 disabled, so we can profile sanely. Sprinkle in some
665 _DBUS_UNLIKELY() which are probably pointless, but before I
666 noticed the real performance problem I put them in.
667 (_dbus_string_validate_utf8): micro-optimize this thing a little
668 bit, though callgrind says it didn't help; then special-case
669 ascii, which did help a lot; then be sure we detect nul bytes as
670 invalid, which is a bugfix.
671 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
672 superstition; use memset to nul the padding instead of a manual
674 (_dbus_string_get_length): inline this as a
675 macro; it showed up in the profile because it's used for loop
678 2004-11-10 Colin Walters <walters@verbum.org>
680 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
683 2004-11-09 Colin Walters <walters@verbum.org>
685 * dbus/dbus-string.c (_dbus_string_get_length): New
686 function, writes DBusString to C buffer.
688 * dbus/dbus-string.h: Prototype it.
690 * dbus/dbus-message.c (dbus_message_type_to_string): New
691 function, converts message type into C string.
693 * dbus/dbus-message.h: Prototype it.
695 * bus/selinux.c (bus_selinux_check): Take source pid,
696 target pid, and audit data. Pass audit data to
698 (log_audit_callback): New function, appends extra
700 (bus_selinux_allows_acquire_service): Also take
701 service name, add it to audit data.
702 (bus_selinux_allows_send): Also take message
703 type, interface, method member, error name,
704 and destination, and add them to audit data.
705 (log_cb): Initialize func_audit.
707 * bus/selinux.h (bus_selinux_allows_acquire_service)
708 (bus_selinux_allows_send): Update prototypes
710 * bus/services.c (bus_registry_acquire_service): Pass
711 service name to bus_selinux_allows_acquire_service.
713 * bus/bus.c (bus_context_check_security_policy): Pass
714 additional audit data. Move assignment of dest
717 2004-11-07 Colin Walters <walters@verbum.org>
719 * dbus/dbus-transport-unix.c (do_authentication): Always
720 initialize auth_completed.
722 2004-11-07 Colin Walters <walters@verbum.org>
724 * bus/bus.c (load_config): Break into three
725 separate functions: process_config_first_time_only,
726 process_config_every_time, and process_config_postinit.
727 (process_config_every_time): Move call of
728 bus_registry_set_service_context_table into
729 process_config_postinit.
730 (process_config_postinit): New function, does
731 any processing that needs to happen late
732 in initialization (and also on reload).
733 (bus_context_new): Instead of calling load_config,
734 open config parser here and call process_config_first_time_only
735 and process_config_every_time directly. Later, after
736 we have forked but before changing UID,
737 invoke bus_selinux_full_init, and then call
738 process_config_postinit.
739 (bus_context_reload_config): As in bus_context_new,
740 load parse file inside here, and call process_config_every_time
741 and process_config_postinit.
743 * bus/services.h, bus/services.c
744 (bus_registry_set_service_context_table): Rename
745 from bus_registry_set_sid_table. Take string hash from config
746 parser, and convert them here into SIDs.
748 * bus/config-parser.c (struct BusConfigParser): Have
749 config parser only store a mapping of service->context
751 (merge_service_context_hash): New function.
752 (merge_included): Merge context string hashes instead
753 of using bus_selinux_id_table_union.
754 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
755 simply create a new string hash.
756 (bus_config_parser_unref): Unref it.
757 (start_selinux_child): Simply insert strings into hash,
758 don't call bus_selinux_id_table_copy_over.
760 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
761 (bus_selinux_id_table_copy_over): Delete.
763 2004-11-03 Colin Walters <walters@verbum.org>
765 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
768 2004-11-03 Colin Walters <walters@verbum.org>
770 * bus/test-main.c (test_pre_hook): Fix test logic,
771 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
773 2004-11-02 Colin Walters <walters@redhat.com>
775 * bus/selinux.c (bus_selinux_init): Split into two functions,
776 bus_selinux_pre_init and bus_selinux_post_init.
777 (bus_selinux_pre_init): Just determine whether SELinux is
779 (bus_selinux_post_init): Do everything else.
781 * bus/main.c (main): Call bus_selinux_pre_init before parsing
782 config file, and bus_selinux_post_init after. This ensures that
783 we don't lose the policyreload notification thread that
784 bus_selinux_init created before forking previously.
786 * bus/test-main.c (test_pre_hook): Update for split.
788 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
790 Patch from Johan Fischer <linux@fischaz.com>
792 * mono/doc/Makefile.am (install-data-local): Added directory
795 2004-10-29 Colin Walters <walters@redhat.com>
797 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
798 parameter for fd to write pid to.
800 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
802 * bus/bus.c (bus_context_new): Pass print_pid_fd
803 to _dbus_become_daemon (bug #1720)
805 2004-10-29 Colin Walters <walters@redhat.com>
807 Patch from Ed Catmur <ed@catmur.co.uk>
809 * mono/doc/Makefile.am (install-data-local): Handle
812 2004-10-29 Colin Walters <walters@redhat.com>
814 * bus/.cvsignore, qt/.cvsignore: Update.
816 2004-10-29 Colin Walters <walters@redhat.com>
818 Patch from Kristof Vansant <de_lupus@pandora.be>
820 * configure.in: Detect Slackware.
821 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
822 * bus/rc.messagebus.in: New file.
824 2004-10-29 Colin Walters <walters@redhat.com>
826 * tools/dbus-monitor.c (filter_func): Return
827 DBUS_HANDLER_RESULT_HANDLED in filter function
829 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
831 2004-10-29 Colin Walters <walters@redhat.com>
833 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
835 * bus/services.c (bus_registry_acquire_service):
836 Correctly retrieve service name from DBusString
839 2004-10-29 Colin Walters <walters@redhat.com>
841 * dbus/dbus-glib.h: Update documentation to not
842 refer to internal APIs.
844 2004-10-27 Joe Shaw <joeshaw@novell.com>
846 * mono/Arguments.cs (GetDBusTypeConstructor):
847 type.UnderlyingSystemType will return "System.Byte" if you do it
848 on "byte[]", which is not what we want. So check the type.IsArray
849 property and use System.Array instead.
851 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
853 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
854 the DBusUserInfo structure since this is passed into the function.
855 This would cause a double free when the function that allocated
856 the structure would try to free it when an error occured.
858 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
859 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
860 for service activation to avoid 32bit/64bit parallel install issues
862 2004-10-21 Colin Walters <walters@verbum.org>
864 * AUTHORS: Fix my email address, the @gnu.org one
865 has been bouncing for some time. Also add J5.
867 2004-10-21 Colin Walters <walters@verbum.org>
869 * dbus/dbus-transport-unix.c (do_authentication): Return
870 authentication status to callers.
871 (unix_handle_watch): If we completed authentication this round,
872 don't do another read. Instead wait until the next iteration,
873 after we've read any pending data in the auth buffer.
874 (unix_do_iteration): Ditto.
875 (unix_handle_watch): Updated for new do_authentication prototype.
877 2004-10-18 Colin Walters <walters@verbum.org>
879 * bus/selinux.c (bus_selinux_enabled): Handle
880 --disable-selinux case.
882 2004-10-18 Colin Walters <walters@verbum.org>
884 * bus/selinux.h: Add bus_selinux_enabled.
886 * bus/selinux.c (bus_selinux_enabled): Implement it.
888 * bus/config-parser.c (struct include): Add
889 if_selinux_enabled member.
890 (start_busconfig_child): Parse if_selinux_enabled
891 attribute for include.
892 (bus_config_parser_content): Handle it.
894 * bus/session.conf.in, bus/system.conf.in: Add
895 inclusion of context mapping to default config files;
896 conditional on SELinux being enabled.
898 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
900 * test/data/invalid-config-files/badselinux-1.conf,
901 test/data/invalid-config-files/badselinux-2.conf:
902 Test files for bad syntax.
904 2004-10-17 Colin Walters <walters@verbum.org>
906 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
907 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
908 format specifier mismatches.
910 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
912 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
915 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
916 pointer (bug #1540, Leonardo Boiko).
918 2004-09-28 Jon Trowbridge <trow@ximian.com>
920 * mono/BusDriver.cs: Changed BusDriver struct to remove
921 the ServiceCreated and ServiceDeleted events and replace them
922 with the new ServiceOwnerChanged event.
924 * mono/example/BusListener.cs: Added a new example program,
925 which listens for and reports any ServiceOwnerChanged events
928 * mono/example/Makefile.am (DESTDIR): Build changes for the
929 new BusListener.cs example.
931 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
933 * bus/signals.c (bus_match_rule_parse): validate the components of
934 match rules (bug #1439).
936 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
938 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
940 * doc/dbus-specification.xml: document ServiceOwnerChanged
943 * bus/driver.c, bus/driver.h, bus/services.c: Use
944 ServiceOwnerChanged signal instead of ServiceCreated and
947 * bus/dispatch.c: update testcase for the new signal.
949 2004-09-20 Jon Trowbridge <trow@ximian.com>
951 Patch from Nat Friedman <nat@novell.com>
953 * mono/Makefile.am: A number of small build fixes to allow "make
954 distcheck" to succeed.
956 * mono/example/Makefile.am: "make distcheck" fixes.
958 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
961 * test/Makefile.am: "make distcheck" fixes.
963 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
965 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
967 * doc/busconfig.dtd: update the DTD for the at_console attribute.
969 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
970 messages after the first one (bug #1389).
972 * bus/dispatch.c (check_double_hello_message): add a test case for
973 the double hello message bug.
974 (check_existent_service_activation): fix check of spawning error.
976 2004-09-16 David Zeuthen <david@fubar.dk>
978 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
980 2004-09-12 David Zeuthen <david@fubar.dk>
982 Patch from Kay Sievers <kay.sievers@vrfy.org>
984 * bus/bus.c (bus_context_new):
988 Add commandline option --nofork to override configuration file
991 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
993 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
994 compilers don't like it (bug #974).
996 2004-09-04 Harald Fernengel <harry@kdevelop.org>
998 * qt/connection.*: Applied patch by Jérôme Lodewyck
999 <lodewyck@clipper.ens.fr> to integrate an existing
1000 connection into the Qt eventloop
1002 2004-08-30 Jon Trowbridge <trow@ximian.com>
1004 * mono/BusDriver.cs: Added. This is a class for interacting with
1005 the org.freedesktop.DBus service.
1007 * mono/Message.cs: Added a mechanism to expose the message that is
1008 currently being dispatched via the static Message.Current
1009 property. Added Message.Sender and Message.Destination
1012 * mono/Handler.cs: Expose the dispatched message via
1013 Message.Current when handling method calls.
1015 * mono/Service.cs: Expose the dispatched message via
1016 Message.Current when handling signal emissions.
1018 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
1019 Connection.BaseService property.
1021 2004-08-28 Havoc Pennington <hp@redhat.com>
1023 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
1025 More fixes from Steve Grubb
1027 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
1028 (_dbus_listen_tcp_socket): fix fd leak
1030 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
1031 EINTR to a bit lower in the code
1033 2004-08-26 Jon Trowbridge <trow@ximian.com>
1035 * bus/driver.c (bus_driver_handle_service_exists): Respond with
1036 TRUE if we are inquiring about the existence of the built-in
1037 org.freedesktop.DBus service.
1039 2004-08-25 John Palmieri <johnp@redhat.com>
1040 * bus/config-parser.c:
1041 (struct PolicyType): Add POLICY_CONSOLE
1042 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
1043 (start_busconfig_child): Sets up console element when
1044 <policy at_console=""> is encountered in a policy file
1045 (append_rule_from_element): Convert console elements to console
1049 (bus_policy_create_client_policy): Add console rules to the client
1050 policy based on if the client is at the console
1051 (bus_policy_append_console_rule): New function for adding a
1052 console rule to a policy
1053 (bus_policy_merge): Handle console rule merging
1055 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
1056 where we check for console user files
1058 * dbus/dbus-sysdeps.c:
1059 (_dbus_file_exists): New function which checks if the given
1061 (_dbus_user_at_console): New function which does the system
1062 specific process of checking if the user is at the console
1064 * dbus/dbus-userdb.c:
1065 (_dbus_is_console_user): New function converts a UID to user name
1066 and then calls the system specific _dbus_user_at_console to
1067 see if the user is at the console and therefor a console user
1069 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
1071 * bus/config-parser.c (set_limit):
1072 * bus/dbus-daemon-1.1.in:
1073 * test/data/valid-config-files/many-rules.conf: set the
1074 max_match_rules_per_connection limt from the config file.
1076 * doc/busconfig.dtd: update the DTD.
1078 * bus/driver.c: remove some unused variables.
1080 2004-08-24 Mikael Hallendal <micke@imendio.com>
1082 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
1083 it's been replaced by dbus_g_bus_get
1085 2004-08-23 Colin Walters <walters@redhat.com>
1087 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1089 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
1091 * bus/selinux.c: Create a thread for policy reload notification.
1092 (bus_selinux_get_policy_root): Implement.
1094 * bus/config-parser.c (start_busconfig_child)
1095 (bus_config_parser_content): Support SELinux-root relative
1098 * configure.in <HAVE_SELINUX>: Add -lpthread.
1100 * bus/test-main.c (test_pre_hook, test_post_hook): New.
1101 (test_post_hook): Move memory checking into here.
1102 (test_pre_hook, test_post_hook): Move SELinux checks in
1103 here, but conditional on a DBUS_TEST_SELINUX environment
1104 variable. Unfortunately we can't run the SELinux checks
1105 as a normal user, since they won't have any permissions
1106 for /selinux. So this will have to be tested manually
1107 for now, until we have virtualization for most of
1110 2004-08-23 Havoc Pennington <hp@redhat.com>
1112 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
1113 drop supplementary groups, suggested by Steve Grubb
1115 2004-08-20 Colin Walters <walters@redhat.com>
1117 * bus/config-parser.c (start_busconfig_child): Remove some unused
1120 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
1123 2004-08-17 Joe Shaw <joeshaw@novell.com>
1125 * configure.in: If --enable-mono is passed in, if we can't find
1128 * mono/Makefile.am: Use /gacutil to install assemblies into the
1131 2004-08-12 Havoc Pennington <hp@redhat.com>
1133 * NEWS: update for 0.22
1135 * configure.in: release 0.22
1137 2004-08-11 Colin Walters <walters@redhat.com>
1139 * tools/dbus-send.c (main, usage): Add --reply-timeout
1142 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
1144 * bus/bus.c (process_config_first_time_only): get rid of an unused
1145 DBusError that was causing a memoy leak (bug #989).
1147 * dbus/dbus-keyring.c, dbus/dbus-message.c:
1148 fix compilation on Solaris/Forte C (bug #974)
1150 * bus/main.c (main): plug two minuscule memleaks.
1152 2004-08-10 Havoc Pennington <hp@redhat.com>
1154 * doc/dbus-tutorial.xml: add some more info on GLib bindings
1156 2004-08-09 Havoc Pennington <hp@redhat.com>
1158 * COPYING: switch to Academic Free License version 2.1 instead of
1159 2.0, to resolve complaints about patent termination clause.
1161 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
1163 * README: added documentation for the --enable-python
1166 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1168 * bus/config-parser.c (bus_config_parser_new): fix an invalid
1169 _unref in the SELinux support.
1171 * doc/busconfig.dtd: update DTD for SELinux support.
1173 * bus/config-loader-libxml.c: fix error handler and parser
1174 initialisation/cleanup. OOM test now works with libxml2 HEAD.
1176 * configure.in: remove the warning about libxml2.
1178 * dbus/dbus-bus.c: silence doxygen warning.
1180 2004-07-31 Colin Walters <walters@redhat.com>
1182 * configure.in: Move #error in SELinux check to its own line.
1184 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1186 * dbus/dbus-internals.h (_DBUS_SET_OOM):
1187 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1190 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1191 broken by the change in the _SET_OOM macros.
1193 2004-07-31 Colin Walters <walters@redhat.com>
1195 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1198 2004-07-31 Colin Walters <walters@redhat.com>
1200 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1201 to correctly detect DBUS__ACQUIRE_SVC. Also add an
1204 2004-07-24 Havoc Pennington <hp@redhat.com>
1206 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1208 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1211 * configure.in: add --enable-selinux
1213 * bus/policy.c (bus_policy_merge): add FIXME to a comment
1215 * bus/main.c (main): initialize and shut down selinux
1217 * bus/connection.c: store SELinux ID on each connection, to avoid
1218 repeated getting of the string context and converting it into
1221 * bus/bus.c (bus_context_get_policy): new accessor, though it
1223 (bus_context_check_security_policy): check whether the security
1224 context of sender connection can send to the security context of
1225 recipient connection
1227 * bus/config-parser.c: add parsing for <selinux> and <associate>
1229 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1230 implement dbus_connection_get_unix_fd()
1232 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1233 function, used by the selinux stuff
1235 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
1237 * bus/config-loader-libxml.c: complete the implementation of
1238 libxml backend for config file loader. Doesn't work with full OOM
1241 * configure.in: change error when selecting libxml into a warning.
1243 * test/data/invalid-config-files: add two non-well-formed XML
1246 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1248 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1249 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1250 be necessary to read all the buffer. (bug #894)
1252 * bus/activation.c (bus_activation_activate_service): fix a
1253 potential assertion failure (bug #896). Small optimization in the
1254 case of auto-activation messages.
1256 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1257 add test case for byte-through-vararg bug (#901). patch by Kimmo
1260 2004-07-28 Anders Carlsson <andersca@gnome.org>
1263 * python/dbus_bindings.pyx.in:
1264 Add dbus.init_gthreads (), allow emit_signal to pass
1265 arguments to the signal.
1267 2004-07-24 Havoc Pennington <hp@redhat.com>
1269 * AUTHORS: add some people, not really comprehensively, let me
1270 know if I missed you
1272 2004-07-24 Havoc Pennington <hp@redhat.com>
1274 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1277 * test/Makefile.am (DIST_SUBDIRS): here also
1279 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1281 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1282 breaking build on Solaris, reported by Farhad Saberi on the ML.
1284 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1285 va_arg invocation to account for integer promotion in the case of
1286 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1288 * bus/services.c (bus_service_remove_owner): fix bug #902, use
1289 _dbus_list_get_first_link, not _dbus_list_get_first.
1291 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1293 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1294 handler functions so that the asserts in _dbus_object_subtree_unref
1297 * dbus/dbus-transport-unix.c (do_reading):
1298 _dbus_transport_queue_messages return value is of type
1299 dbus_bool_t, not DBusDispatchStatus.
1301 2004-07-19 David Zeuthen <david@fubar.dk>
1303 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1306 (check_get_connection_unix_user): Debug says GetProperty; but the
1307 method is called GetConnectionUnixUser
1308 (check_get_connection_unix_process_id): New function
1309 (bus_dispatch_test): Actually call check_get_connection_unix_user();
1310 also call check_get_connection_unix_process_id()
1313 (bus_driver_handle_get_connection_unix_process_id): New function,
1314 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1318 (handle_server_data_external_mech): Set pid from the credentials
1319 obtained from the socket
1321 * dbus/dbus-connection.c:
1322 (dbus_connection_get_unix_process_id): New function
1324 * dbus/dbus-connection.h:
1325 Add prototype for dbus_connection_get_unix_process_id
1327 * dbus/dbus-transport.c:
1328 (_dbus_transport_get_unix_process_id): New function
1330 * dbus/dbus-transport.h:
1331 Add prototype for _dbus_transport_get_unix_process_id
1333 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
1335 * dbus/dbus-message.c: Message counter fix, patch by Christian
1336 Hammond <chipx86@gnupdate.org>
1338 2004-07-18 Seth Nickell <seth@gnome.org>
1341 * python/dbus_bindings.pyx.in:
1342 * python/tests/test-client.py:
1344 Add dbus.ByteArray and dbus_bindings.ByteArray
1345 types so that byte streams can be passed back.
1347 Give jdahlin the heaps of credit that are so
1350 2004-07-12 Seth Nickell <seth@gnome.org>
1354 Add message argument to the default object_method_handler
1357 * python/dbus_bindings.pyx.in:
1359 Automatically return NIL when passed an empty list
1360 (we can't pass back a list since lists are typed
1361 and we don't have any idea what type the the client
1362 intended the list to be... :-( )
1364 2004-07-10 Seth Nickell <seth@gnome.org>
1366 * python/examples/Makefile.am:
1368 Fix distcheck breakage caused by new examples.
1370 2004-07-10 Seth Nickell <seth@gnome.org>
1374 Add "message" argument to service-side dbus.Object
1375 methods. This will break existing services written
1376 using the python bindings, but will allow extraction
1377 of all the message information (e.g. who its from).
1379 Add improved "object oriented" signal handling/emission.
1381 * python/examples/example-service.py:
1385 * python/examples/example-signal-emitter.py:
1386 * python/examples/example-signal-recipient.py:
1388 Two new examples that show how to emit and receive
1389 signals using the new APIs.
1391 * python/examples/example-signals.py:
1392 * python/examples/gconf-proxy-service.py:
1393 * python/examples/gconf-proxy-service2.py:
1395 Add "message" argument to service methods.
1397 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
1399 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1400 * dbus/bus.c (dbus_bus_get_unix_user)
1401 * doc/dbus-specification.xml: implement GetConnectionUnixUser
1402 method of org.freedesktop.DBus interface.
1404 * bus/dispatch.c: test case
1406 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
1408 * python/Makefile.am: switched include directory from glib/ to dbus/
1409 since dbus-glib.h moved
1411 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1413 * configure.in: prevent building the gcj stuff and libxml loader
1414 since they are broken.
1416 2004-06-20 Havoc Pennington <hp@redhat.com>
1418 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
1419 codes from the dbus error names
1421 * glib/dbus-glib.h: move to subdir dbus/ since it's included
1422 as dbus/dbus-glib.h and that breakage is now visible due to
1423 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1425 * glib/dbus-glib.h: s/gproxy/g_proxy/
1427 * dbus/dbus-shared.h: new header to hold stuff shared with
1430 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1433 * glib/dbus-glib.h (dbus_set_g_error): move to
1434 dbus-glib-lowlevel.h
1436 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1437 of stuff to enable this
1439 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1441 * a bunch of other changes with the same basic "separate glib
1442 bindings from dbus.h" theme
1444 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1446 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1448 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1450 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1452 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1453 the reply value of the ServiceExists message.
1455 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1457 * python/dbus_bindings.pyx.in: No longer need to parse path
1458 elements and pass them as arrays of strings. The C API now
1459 accepts plain path strings.
1460 (_build_parsed_path): removed
1462 2004-06-07 Havoc Pennington <hp@redhat.com>
1464 * doc/TODO: remove auto-activation item since it's done; sort
1465 items by importance/milestone
1467 2004-06-07 Havoc Pennington <hp@redhat.com>
1469 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1470 random signature when using REQUIRED_FIELDS (this hack won't work
1473 * dbus/dbus-message.c: change the signature to be a header field,
1474 instead of message->signature special-case string. Incremental
1475 step forward. Then we can fix up code to send the signature in the
1476 message, then fix up code to validate said signature, then fix up
1477 code to not put the typecodes inline, etc.
1478 (load_one_message): don't make up the signature after the fact
1479 (decode_header_data): require signature field for the known
1482 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1484 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1486 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1488 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1490 * mono/Handler.cs: Updated to follow new path argument for
1491 (un-)registering objects.
1493 * mono/example/Makefile.am:
1495 * configure.in: Bumped required version for mono and use new -pkg
1498 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1500 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1501 registration functions take the path argument as char* instead of
1504 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1505 split off the path decompostion part of
1506 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1509 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1511 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1513 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1514 machine approach. A state is implemented as a function that
1515 handles incoming events as specified for that state.
1517 * doc/dbus-specification.xml: Update auth protocol state machine
1518 specification to match implementation. Remove some leftover
1521 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1523 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1524 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1527 * Doxyfile.in: remove deprecated options.
1529 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1530 glib/test-thread.h, glib/test-thread-client.c,
1531 glib/test-thread-server.c, glib/test-profile.c,
1532 glib/test-dbus-glib.c: remove these unused files.
1534 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1536 * dbus/dbus-object-tree.c
1537 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1538 non-fallback handlers (bug #684).
1539 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1540 (find_subtree_recurse): report wether the returned subtree is an
1541 exact match or a "fallback" match higher up in the tree.
1542 (object_tree_test_iteration): update test case.
1544 2004-06-01 Seth Nickell <seth@gnome.org>
1546 * python/dbus_bindings.pyx.in:
1547 * python/tests/test-client.py:
1549 Round off basic type support. Add dicts (yay!), and
1550 remaining array types.
1552 Make MessageIter more general so it works for dicts too.
1554 Mark all loop variables as C integers.
1556 2004-05-31 Havoc Pennington <hp@redhat.com>
1558 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1561 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1563 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1564 option that runs the tests, and start filling in some code
1565 including for starters just dumping the interfaces to stdout
1567 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1569 * test/data/valid-introspection-files/lots-of-types.xml: test of
1570 an example introspection file
1572 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1575 2004-05-31 Seth Nickell <seth@gnome.org>
1577 * python/dbus_bindings.pyx.in:
1578 * python/tests/test-client.py:
1583 Fix string array memory trashing bug... oops...
1585 2004-05-30 Seth Nickell <seth@gnome.org>
1589 Add a nicer-but-less-flexible alternate API for handling
1590 calls to virtual objects in dbus.ObjectTree.
1592 Screw up the argument order to the dbus.Object constructor
1593 for consistency with dbus.ObjectTree (and to make dbus_methods
1594 optional for future extension)
1596 * python/examples/Makefile.am:
1597 * python/examples/gconf-proxy-service.py:
1598 * python/examples/gconf-proxy-service2.py:
1600 Alternate implementation of gconf-proxy-service using the
1601 nicer dbus.ObjectTree API.
1603 * python/examples/example-service.py:
1604 * python/tests/test-server.py
1606 Reverse the argument order to deal with dbus.Object constructor
1609 2004-05-30 Seth Nickell <seth@gnome.org>
1611 * python/examples/example-client.py:
1612 * python/examples/example-service.py:
1614 Take it back. Lists seem to work but they're broken
1615 in the test suite. Make the base examples use
1618 2004-05-30 Seth Nickell <seth@gnome.org>
1620 * python/dbus_bindings.pyx.in:
1621 * python/tests/test-client.py:
1623 Add some more tests and fix errors that crop up.
1624 Unfortunately, currently it seems like marshalling
1625 and unmarshalling of lists is completely broken :-(
1627 2004-05-30 Seth Nickell <seth@gnome.org>
1629 * python/dbus_bindings.pyx.in:
1631 Add support for ObjectPath type.
1635 Refactor message handling code to a common function.
1637 * python/tests/test-client.py:
1638 * python/tests/test-server.py:
1640 Add tests that check to make sure values of all types
1641 can be echoed from a service w/o mangling.
1643 2004-05-29 Seth Nickell <seth@gnome.org>
1647 Add ObjectTree class which allows implementation
1648 of trees of "virtual" objects. Basically the python
1649 wrapper for "register_fallback".
1651 * python/examples/Makefile.am
1652 * python/examples/gconf-proxy-client.py:
1653 * python/examples/gconf-proxy-service.py:
1655 Implement a simple GConf proxy service that supports
1656 get/set on string and int GConf keys using the ObjectTree.
1658 2004-05-29 Seth Nickell <seth@gnome.org>
1661 * python/examples/example-client.py:
1662 * python/examples/example-service.py:
1663 * python/examples/list-system-services.py:
1665 Add SessionBus, SystemBus and ActivationBus classes
1666 so you don't need to know the special little BUS_TYPE
1669 2004-05-29 Havoc Pennington <hp@redhat.com>
1671 * bus/config-parser.c (process_test_valid_subdir): temporarily
1672 stop testing config parser OOM handling, since expat has issues
1673 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1675 * bus/dbus-daemon-1.1.in: change requested_reply to
1676 send_requested_reply/receive_requested_reply so we can send the
1677 replies, not just receive them.
1679 * bus/config-parser.c: parse the new
1680 send_requested_reply/receive_requested_reply
1682 * bus/policy.c (bus_client_policy_check_can_send): add
1683 requested_reply argument and use it
1685 * bus/bus.c (bus_context_check_security_policy): pass through
1686 requested_reply status to message send check
1688 * bus/system.conf.in: adapt to requested_reply change
1690 2004-05-28 Havoc Pennington <hp@redhat.com>
1692 * test/glib/test-service-glib.c (main): remove unused variable
1694 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1696 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1697 from the enum, no longer in use.
1699 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1702 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1703 whether error_name passed in is a valid error name.
1705 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1707 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1708 OBJECT_PATH and OBJECT_PATH_ARRAY
1710 2004-05-28 Seth Nickell <seth@gnome.org>
1712 * python/examples/Makefile.am:
1714 Forget to add Makefile.am. Do not pass go.
1716 2004-05-28 Michael Meeks <michael@ximian.com>
1718 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1721 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1723 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1724 (_dbus_message_iter_get_basic_type_array): impl.
1725 drastically simplify ~all relevant _get methods to use these.
1726 (_dbus_message_iter_append_basic_array),
1727 (dbus_message_iter_append_basic): impl
1728 drastically simplify ~all relevant _append methods to use these.
1730 * dbus/dbus-message-builder.c (parse_basic_type)
1731 (parse_basic_array, lookup_basic_type): impl.
1732 (_dbus_message_data_load): prune scads of duplicate /
1735 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1736 (_dbus_demarshal_basic_type): implement,
1737 (demarshal_and_validate_len/arg): beef up debug.
1738 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1740 2004-05-27 Seth Nickell <seth@gnome.org>
1743 * python/Makefile.am:
1745 Include the example python apps in the tarball.
1747 * python/examples/list-system-services.py
1749 Add a python new example that fetches the list of services
1750 from the system bus.
1752 2004-05-27 Seth Nickell <seth@gnome.org>
1755 * python/dbus_bindings.pyx.in:
1757 Fix failure to notify that a signal was not handled,
1758 resulted in hung functions.
1760 2004-05-25 Colin Walters <walters@redhat.com>
1762 * tools/dbus-monitor.c (main): Monitor all types of messages.
1764 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1766 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1767 which unregisters the object path and disposes the handler.
1769 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1771 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1773 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1774 operands to && so we call dbus_message_iter_next () for the last
1777 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1779 * dbus/dbus-object-tree.c
1780 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1781 children even if the requested path isn't registered.
1782 (object_tree_test_iteration): test object_tree_list_registered.
1784 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1787 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1789 * doc/TODO: Remove resolved items.
1791 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1794 * bus/connection.c (bus_connections_expect_reply): Enforce the
1795 per-connection limit on pending replies.
1797 Patch from Jon Trowbridge <trow@ximian.com>:
1799 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1800 up a watch that triggers a config reload when one end of the pipe
1802 (signal_handler): Instead of doing the config reload in our SIGHUP
1803 handler, just write to the reload pipe and let the associated
1804 watch handle the reload when control returns to the main loop.
1806 * bus/driver.c (bus_driver_handle_reload_config): Added.
1807 Implements a ReloadConfig method for requesting a configuration
1808 file reload via the bus driver.
1810 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1812 * HACKING: Updated release instructions concerning the wiki page.
1814 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1816 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1817 filter against auth->allowed_mechs; we only add allowed mechs in
1818 record_mechanisms().
1820 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1821 ALLOWED_MECHS to auth-script format so we can set the list of
1824 * data/auth/client-out-of-mechanisms.auth-script: New test to
1825 check client disconnects when it is out of mechanisms to try.
1827 * dbus/dbus-auth.c (process_command): Remove check for lines
1828 longer that 1 MB; we only buffer up maximum 16 kB.
1830 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1831 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1832 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1833 assume there might be unused bytes.
1835 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1836 client-out-of-mechs, it is handled in process_reject(). Move check
1837 for max failures to send_rejected(), as it's a server-only thing.
1839 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1840 send_auth(), send_data(), send_rejected(), send_error(),
1841 send_ok(), send_begin() and send_cancel().
1843 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1845 Remove base64 encoding, replace with hex encoding. Original patch
1846 from trow@ximian.com, added error handling.
1848 * dbus/dbus-string.c (_dbus_string_base64_encode)
1849 (_dbus_string_base64_decode): Remove.
1850 (_dbus_string_hex_decode): Add end_return argument so we can
1851 distinguish between OOM and invalid hex encoding.
1852 (_dbus_string_test): Remove base64 tests and add test case for
1855 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1856 Replace base64 with hex.
1858 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1859 for invalid hex encoded data in auth protocol.
1861 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1863 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1866 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1868 * mono/dbus-sharp.dll.config.in: Added for GAC
1869 * mono/dbus-sharp.snk: Added for GAC
1870 * mono/Assembly.cs.in: Added for GAC
1871 * mono/Makefile.am: Changes for GAC installation
1872 * configure.in: Added refs for dbus-sharp.dll.config.in and
1873 Assembly.cs.in. More fixes for mono testing
1874 * mono/example/Makefile.am: Changed var to CSC
1875 * Makefile.am: Changed flag name to DBUS_USE_CSC
1877 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1879 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1880 * mono/doc/*: Added documentation framework
1881 * configure.in: Added monodoc check
1882 * README: Added description of mono configure flags
1884 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1886 * doc/dbus-specification.xml: Added a "Required" column to the
1887 header fields table and changed the "zero or more" verbage in
1888 the above paragraph to read "The header must contain the required
1889 named header fields and zero or more of the optional named header
1891 * test/data/invalid-messages/*.message: Added the required PATH
1892 named header field to the tests so that they don't fail on
1893 'Missing path field'
1895 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1897 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1898 the stack by implicitly defining variable and parameter types and
1899 removing the hack of defining C pointers as python objects and later
1902 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1904 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1906 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1908 * mono/DBusType/Dict.cs: Handle empty dicts
1909 * mono/DBusType/Array.cs: Handle empty arrays
1910 * mono/Arguments.cs: Handle empty arguments
1912 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1914 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1917 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1919 * test/data/valid-messages/standard-*.message: Update message
1920 test scripts to new header field names.
1922 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1924 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1925 overflow to times_we_did_each_thing array which would chop off the
1926 first character of the failure_dir string. Increased the size of
1927 the array to 7 to reflect the number of random mutation functions
1930 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1932 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1933 unix_server->watch here, it is unreffed in disconnect.
1934 (_dbus_server_new_for_tcp_socket): convert NULL host to
1935 "localhost" here so we don't append NULL to address.
1937 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1938 various addresses, including tcp with no explicit host.
1940 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1942 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1943 fix incorrect setting of .name_offset in the HeaderField (it was
1944 off by two bytes, positioned right after the name and typecode)
1946 * bus/bus.c (bus_context_new, bus_context_unref): test before
1947 calling dbus_server_free_data_slot and _dbus_user_database_unref
1948 in case of an error.
1950 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1953 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1955 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1956 _dbus_poll() instead of select().
1958 2004-04-15 Jon Trowbridge <trow@ximian.com>
1960 * bus/main.c (signal_handler): Reload the configuration files
1962 (main): Set up our SIGHUP handler.
1964 * bus/bus.c (struct BusContext): Store the config file, user and
1965 fork flag in the BusContext.
1966 (process_config_first_time_only): Added. Contains the code
1967 (previously in bus_context_new) for setting up the BusContext from
1968 the BusConfigParser that should only be run the first time the
1969 config files are read.
1970 (process_config_every_time): Added. Contains the code (previously
1971 in bus_context_new) for setting up the BusContext from the
1972 BusConfigParser that should be run every time the config files are
1974 (load_config): Added. Builds a BusConfigParser from the config
1975 files and passes the resulting structure off to
1976 process_config_first_time_only (assuming this is the first time)
1977 and process_config_every_time.
1978 (bus_context_new): All of the config-related code has been moved
1979 to process_config_first_time_only and process_config_every_time.
1980 Now this function just does the non-config-related initializations
1981 and calls load_config.
1982 (bus_context_reload_config): Added.
1984 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1986 * bus/driver.c (bus_driver_handle_get_service_owner):
1987 implement a GetServiceOwner method.
1988 * doc/dbus-specification.xml: document it.
1989 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1991 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1992 implement, using the bus GetServiceOwner method.
1994 * test/glib/test-dbus-glib.c:
1995 use dbus_gproxy_new_for_service_owner so that we can receive the
1998 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
2000 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2001 dbus/dbus-message.c, dbus/dbus-protocol.h
2002 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
2004 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
2005 dbus/dbus-message.c, dbus/dbus-protocol.h
2006 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
2008 * dbus/dbus-internals.c (_dbus_header_field_to_string):
2009 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
2010 DBUS_HEADER_FIELD_SENDER resolves to "sender"
2012 * doc/dbus-specification.xml (Header Fields Table):
2013 s/SERVICE/DESTINATION
2014 s/SENDER_SERVICE/SENDER
2017 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
2019 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
2022 2004-04-13 Michael Meeks <michael@ximian.com>
2024 * glib/dbus-gobject.c (handle_introspect): split out
2025 (introspect_properties): this.
2026 (handle_introspect): implement this.
2028 * test/glib/Makefile.am: use the absolute path so the bus
2029 daemon's chdir ("/") doesn't kill us dead.
2031 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
2033 2004-04-12 Jon Trowbridge <trow@ximian.com>
2035 * bus/config-parser.c (struct BusConfigParser): Added
2036 included_files field.
2037 (seen_include): Added. Checks whether or not a file has already
2038 been included by any parent BusConfigParser.
2039 (bus_config_parser_new): Copy the parent's included_files.
2040 (include_file): Track which files have been included, and fail on
2041 circular inclusions.
2042 (process_test_valid_subdir): Changed printf to report if we are
2043 testing valid or invalid conf files.
2044 (all_are_equiv): Changed printf to be a bit clearer about
2045 what we are actually doing.
2046 (bus_config_parser_test): Test invalid configuration files.
2048 2004-04-09 Jon Trowbridge <trow@ximian.com>
2050 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
2051 argument. If non-null, the newly-constructed BusConfigParser will
2052 be initialized with the parent's BusLimits instead of the default
2054 (include_file): When including a config file, pass in
2055 the current parser as the parent and then copy the BusLimits
2056 from the included BusConfigParser pack to the current parser.
2057 (process_test_valid_subdir): Renamed from process_test_subdir.
2058 (process_test_equiv_subdir): Added. Walks through a directory,
2059 descending into each subdirectory and loading the config files
2060 it finds there. If any subdirectory contains two config files
2061 that don't produce identical BusConfigParser structs, fail.
2062 For now, the BusConfigParser's BusPolicies are not compared.
2063 (bus_config_parser_test): Call both process_test_valid_subdir and
2064 process_test_equiv_subdir.
2066 * bus/config-loader-libxml.c (bus_config_load): Take a parent
2067 argument and pass it along to the call to bus_config_parser_new.
2068 Also made a few small changes to allow this code to compile.
2070 * bus/config-loader-expat.c (bus_config_load): Take a parent
2071 argument and pass it along to the call to bus_config_parser_new.
2073 * bus/bus.c (bus_context_new): Load the config file
2074 with a NULL parent argument.
2076 2004-03-29 Michael Meeks <michael@ximian.com>
2078 * glib/dbus-gobject.c (introspect_properties): split
2079 out, fix mangled 'while' flow control.
2080 (introspect_signals): implement.
2081 (handle_introspect): update.
2083 2004-03-29 Michael Meeks <michael@ximian.com>
2085 * glib/dbus-gobject.c (set_object_property): split out /
2086 re-work, use the property type, and not the message type(!)
2087 (get_object_property): ditto.
2089 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
2090 (dbus_gvalue_marshal): make this code re-usable, needed
2091 for signals too, also on both proxy and server side.
2092 Re-write for more efficiency / readability.
2094 2004-03-29 Michael Meeks <michael@ximian.com>
2096 * dbus/dbus-message.c
2097 (dbus_message_new_error_printf): impl.
2099 * dbus/dbus-connection.c
2100 (dbus_connection_unregister_object_path): fix warning.
2102 * configure.in: fix no-mono-installed situation.
2104 2004-03-27 Havoc Pennington <hp@redhat.com>
2106 Patch from Timo Teräs:
2108 * tools/dbus-send.c (main): if --print-reply, assume type is
2109 method call; support boolean type args
2111 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
2112 bunch of memleak and logic bugs
2114 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2116 * mono/Arguments.cs:
2117 * mono/Introspector.cs:
2119 * mono/InterfaceProxy.cs:
2121 * mono/ProxyBuilder.cs:
2123 Added InterfaceProxy class to avoid building proxies for every
2127 * dbus-message.c (dbus_message_append_args_valist)
2128 (dbus_message_iter_get_object_path)
2129 (dbus_message_iter_get_object_path_array)
2130 (dbus_message_iter_append_object_path)
2131 (dbus_message_iter_append_object_path_array):
2132 Added object_path iter functions to handle OBJECT_PATH arguments
2134 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2136 First checkin of mono bindings.
2139 Build stuff for the bindings
2140 * dbus-sharp.pc.in: Added for pkgconfig
2142 2004-03-21 Havoc Pennington <hp@redhat.com>
2144 * test/test-service.c (main): remove debug spew
2146 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2148 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
2151 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
2152 (dbus_message_iter_init_array_iterator)
2153 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
2154 indicate whether the iterator is empty
2156 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
2159 2004-03-19 Havoc Pennington <hp@redhat.com>
2161 * NEWS: 0.21 updates
2163 * configure.in: 0.21
2165 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2167 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2168 you don't need pyrex to make dist
2170 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2173 2004-03-18 Richard Hult <richard@imendio.com>
2175 * dbus/dbus-message.c (dbus_message_get_auto_activation)
2176 (dbus_message_set_auto_activation): Add doxygen docs.
2178 2004-03-16 Richard Hult <richard@imendio.com>
2180 * bus/activation.c: (bus_activation_service_created),
2181 (bus_activation_send_pending_auto_activation_messages),
2182 (bus_activation_activate_service):
2184 * bus/dispatch.c: (bus_dispatch),
2185 (check_nonexistent_service_auto_activation),
2186 (check_service_auto_activated),
2187 (check_segfault_service_auto_activation),
2188 (check_existent_service_auto_activation), (bus_dispatch_test):
2189 * bus/driver.c: (bus_driver_handle_activate_service):
2190 * bus/services.c: (bus_registry_acquire_service):
2191 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2192 (dbus_message_get_auto_activation):
2193 * dbus/dbus-message.h:
2194 * dbus/dbus-protocol.h: Implement auto-activation.
2196 * doc/dbus-specification.xml: Add auto-activation to the spec.
2198 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
2200 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2201 fix a bug with CUSTOM types.
2203 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2204 a unit test for this bug (used to fail).
2206 2004-03-12 Mikael Hallendal <micke@imendio.com>
2209 (babysitter_watch_callback): notify all pending activations waiting for
2210 the same exec that the activation failed.
2211 (bus_activation_activate_service): shortcut the activation if we
2212 already waiting for the same executable to start up.
2214 2004-03-12 Mikael Hallendal <micke@imendio.com>
2217 - Added service file reloading.
2218 Each service files directory is kept in an hash table in
2219 BusActivation and each BusActivationEntry knows what .service-file it
2220 was read from. So when you try to activate a service the bus will
2221 check if it's been updated, removed or if new .service-files has
2223 - Test code at the bottom for the service file reloading.
2224 * bus/test-main.c: (main):
2226 - added service reloading test.
2227 * dbus/dbus-sysdeps.c:
2228 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2230 2004-03-08 Michael Meeks <michael@ximian.com>
2232 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
2233 bail immediately if disconnected, to avoid busy loop.
2235 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2236 cleanup cut/paste/inefficiency.
2238 2004-03-01 David Zeuthen <david@fubar.dk>
2240 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2241 bug where args were used twice. This bug resulted in a segfault
2242 on a Debian/PPC system when starting the messagebus daemon. Include
2243 dbus-sysdeps.h for DBUS_VA_COPY
2245 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2247 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2248 appropriate va_copy implementation. From GLib
2250 2004-02-24 Joe Shaw <joe@ximian.com>
2252 * bus/services.c (bus_registry_acquire_service): We need to pass
2253 in the service name to dbus_set_error() to prevent a crash.
2255 2003-12-26 Anders Carlsson <andersca@gnome.org>
2257 * AUTHORS: Reveal my True identity.
2259 2003-12-17 Mikael Hallendal <micke@imendio.com>
2261 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2262 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2264 2003-12-13 Mikael Hallendal <micke@imendio.com>
2266 * doc/TODO: Added not about better error check of configuration files.
2268 2003-12-02 Richard Hult <richard@imendio.com>
2270 * Update AFL version to 2.0 throughout the source files to reflect
2271 the update that was done a while ago.
2273 2003-12-02 Richard Hult <richard@imendio.com>
2275 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2276 wrote_dict_key to FALSE on the iter that the dict is appended to,
2277 just like when appending other types. Fixes a bug where a dict
2278 couldn't be put inside a dict.
2279 (dbus_message_iter_append_dict_key): Fix typo in warning message.
2280 (message_iter_test, _dbus_message_test): Add test case for dict
2283 2003-12-01 David Zeuthen <david@fubar.dk>
2285 * python/dbus.py: Add the actual message when calling the reciever
2286 of a signal such that parameters can be inspected. Add the method
2287 remove_signal_receiver
2289 2003-11-26 Mikael Hallendal <micke@imendio.com>
2293 * glib/*.[ch]: Made ref functions return the pointer
2295 2003-11-25 Zack Rusin <zack@kde.org>
2297 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2299 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
2302 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
2303 the Integrator and to better fit with the server,
2305 2003-11-24 Zack Rusin <zack@kde.org>
2307 * qt/connection.h, qt/connection.cpp: removing initDbus method since
2308 the integrator handles it now
2310 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2311 since QTimer wasn't really meant to be used the way DBusTimeout is
2313 2003-11-24 Zack Rusin <zack@kde.org>
2315 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
2316 Integrator class which integrates D-BUS with the Qt event loop,
2318 * qt/connection.h, qt/connection.cpp: Move all the code which
2319 was dealing with D-BUS integration to the Integrator class,
2320 and start using Integrator,
2322 2003-11-23 Zack Rusin <zack@kde.org>
2324 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
2327 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2328 switching namespaces to DBusQt, reworking the class,
2330 * Makefile.cvs: switching dependencies so that it matches KDE
2333 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
2336 2003-11-19 Havoc Pennington <hp@redhat.com>
2340 * configure.in: bump version to 0.20
2342 * configure.in (have_qt): add yet another place to look for qt
2343 (someone hand trolltech a .pc file...)
2345 2003-11-01 Havoc Pennington <hp@redhat.com>
2347 * doc/dbus-specification.xml: add state machine docs on the auth
2348 protocol; just a first draft, I'm sure it's wrong.
2350 2003-10-28 David Zeuthen <david@fubar.dk>
2352 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2353 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2355 2003-10-28 Havoc Pennington <hp@redhat.com>
2357 * dbus/dbus-message.c (get_next_field): delete unused function
2359 2003-10-28 Havoc Pennington <hp@redhat.com>
2361 * bus/expirelist.c (do_expiration_with_current_time): detect
2362 failure of the expire_func due to OOM
2364 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2366 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2367 NoReply error that's now created by the bus when the service exits
2369 2003-10-28 Havoc Pennington <hp@redhat.com>
2371 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2372 tests for set_path, set_interface, set_member, etc.
2374 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2376 * dbus/dbus-message.c (set_string_field): always just delete and
2377 re-append the field; accept NULL for deletion
2378 (re_align_fields_recurse): reimplement
2380 2003-10-26 Havoc Pennington <hp@redhat.com>
2382 * dbus/dbus-connection.c: fix docs to properly describe the
2383 disconnected message
2384 (_dbus_connection_notify_disconnected): remove this function;
2385 we can't synchronously add the disconnected message, we have to
2386 do it after we've queued any remaining real messages
2387 (_dbus_connection_get_dispatch_status_unlocked): queue the
2388 disconnect message only if the transport has finished queueing all
2389 its real messages and is disconnected.
2390 (dbus_connection_disconnect): update the dispatch status here
2392 2003-10-22 Havoc Pennington <hp@redhat.com>
2394 * bus/bus.c (bus_context_check_security_policy): fix up assertion
2396 * bus/connection.c (bus_transaction_send_from_driver): set the
2397 destination to the connection's base service
2399 2003-10-20 Havoc Pennington <hp@redhat.com>
2401 hmm, make check is currently not passing.
2403 * doc/dbus-specification.xml: add requirement that custom type
2404 names follow the same rules as interface names.
2406 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2407 duplication and allow 'c' to be 'custom'; dict is now 'm' for
2410 * doc/dbus-specification.xml: update type codes to match
2411 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2412 CUSTOM. Add type OBJECT_PATH to the spec.
2414 2003-10-17 Havoc Pennington <hp@redhat.com>
2416 * bus/driver.c (create_unique_client_name): use "." as separator
2417 in base service names instead of '-'
2419 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2420 byte at the end of the string
2422 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2423 optimization macros since string validation seems to be a slow
2426 * doc/dbus-specification.xml: restrict valid
2427 service/interface/member/error names. Add test suite code for the
2430 * dbus/dbus-string.c: limit service/interface/member/error names
2433 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2434 format arg to verbose spew
2436 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2437 memory, return instead of g_error
2439 * test/test-service.c (path_message_func): support emitting a
2442 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2443 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2444 assuming the activation bus was the session bus so that services
2445 started manually will still register.
2446 (init_connections_unlocked): fix so that in OOM situation we get
2447 the same semantics when retrying the function
2449 * test/test-service.c (main): change to use path registration, to
2450 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2451 than DBUS_BUS_SESSION
2453 2003-10-16 Havoc Pennington <hp@redhat.com>
2455 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2457 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2458 coverage of the tests
2459 (coverage-report.txt): don't move the .da and .bbg files around
2461 2003-10-16 Havoc Pennington <hp@redhat.com>
2463 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2466 2003-10-16 Havoc Pennington <hp@redhat.com>
2468 * bus/connection.c (bus_pending_reply_expired): either cancel or
2470 (bus_connections_check_reply): use unlink, not remove_link, as we
2471 don't want to free the link; fixes double free mess
2473 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2474 where no reply was received
2476 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2479 * bus/signals.c (match_rule_matches): add special cases for the
2480 bus driver, so you can match on sender/destination for it.
2482 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2483 DBUS_PRINT_BACKTRACE is set
2485 * dbus/dbus-internals.c: add pid to assertion failure messages
2487 * dbus/dbus-connection.c: add message type code to the debug spew
2489 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2490 sender=foo not service=foo
2492 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2493 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2494 DBUS_ACTIVATION_ADDRESS instead
2496 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2497 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2499 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2502 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2503 (dbus_message_iter_get_object_path_array): new function (half
2504 finished, disabled for the moment)
2506 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2507 DBUS_MESSAGE_TYPE_ERROR
2509 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2510 avoid redirecting stderr to /dev/null
2511 (babysit): close stdin if not doing the "exit_with_session" thing
2513 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2514 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2515 stdout/stdin, so things don't get confused
2517 * bus/system.conf.in: fix to allow replies, I modified .conf
2518 instead of .conf.in again.
2520 2003-10-14 David Zeuthen <david@fubar.dk>
2522 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2523 argtype to arg_type when raising unknown arg type exception.
2524 Changed type list to reflect the changes in dbus-protocol.h so
2525 the bindings actually work.
2527 2003-10-14 Havoc Pennington <hp@redhat.com>
2529 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2530 to have a bug keeping it from outputting the .da files sometimes
2531 (string_get_string): don't append garbage nul bytes to the string.
2533 2003-10-15 Seth Nickell <seth@gnome.org>
2535 * python/Makefile.am:
2537 Include dbus_h_wrapper.h in the dist tarball.
2539 2003-10-14 Havoc Pennington <hp@redhat.com>
2541 * bus/bus.c (bus_context_check_security_policy): revamp this to
2542 work more sanely with new policy-based requested reply setup
2544 * bus/connection.c (bus_transaction_send_from_driver): set bus
2545 driver messages as no reply
2547 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2548 requested_reply attribute on allow/deny rules
2550 * bus/system.conf: add <allow requested_reply="true"/>
2552 * bus/driver.c (bus_driver_handle_message): fix check for replies
2553 sent to the bus driver, which was backward. How did this ever work
2554 at all though? I think I'm missing something.
2556 * dbus/dbus-message.c (decode_header_data): require error and
2557 method return messages to have a reply serial field to be valid
2558 (_dbus_message_loader_queue_messages): break up this function;
2559 validate that reply serial and plain serial are nonzero;
2560 clean up the OOM/error handling.
2561 (get_uint_field): don't return -1 from this
2562 (dbus_message_create_header): fix signed/unsigned bug
2564 * bus/connection.c (bus_connections_expect_reply): save serial of
2565 the incoming message, not reply serial
2567 2003-10-14 Havoc Pennington <hp@redhat.com>
2569 * bus/connection.c: implement pending reply tracking using
2572 * bus/bus.c (bus_context_check_security_policy): verify that a
2573 reply is pending in order to allow a reply to be sent. Deny
2574 messages of unknown type.
2576 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2578 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2579 (bus_context_get_reply_timeout): new
2581 2003-10-13 Seth Nickell <seth@gnome.org>
2583 * python/Makefile.am:
2585 Pass "make distcheck": remove a couple files from DIST_FILES
2586 that weren't included in the final version.
2588 2003-10-12 Havoc Pennington <hp@pobox.com>
2590 Added test code that 1) starts an actual bus daemon and 2) uses
2591 DBusGProxy; fixed bugs that were revealed by the test. Lots
2592 more testing possible, but this is the basic framework.
2594 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2595 empty proxy lists from the proxy list hash
2597 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2598 couple of return_if_fail checks
2600 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2601 to allocate, so everything is cleared to NULL as it should be.
2603 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2604 source as data to dbus_connection_set_timeout_functions() as the
2605 timeout functions expected
2607 * test/glib/run-test.sh: add a little script to start up a message
2608 bus and run tests using it
2610 * tools/dbus-launch.1: updates
2612 * tools/dbus-launch.c (main): add --config-file option
2614 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2615 that could never be reached.
2617 * dbus/dbus-message.c (dbus_message_new_method_return)
2618 (dbus_message_new_error, dbus_message_new_signal): set the
2619 no-reply-expected flag on all these. Redundant, but may
2620 as well be consistent.
2622 2003-10-11 Havoc Pennington <hp@pobox.com>
2624 * test/decode-gcov.c (function_solve_graph): make broken block
2625 graph a nonfatal error since it seems to be broken. Need to debug
2628 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2629 can't just check type > INVALID < LAST anymore
2631 * dbus/dbus-message.c (dbus_message_get_signature): new function
2632 (dbus_message_has_signature): new function
2633 (struct DBusMessage): add signature field (right now it isn't sent
2634 over the wire, just generated on the fly)
2635 (dbus_message_copy): copy the signature, and init strings to
2636 proper length to avoid some reallocs
2637 (dbus_message_iter_init_array_iterator): return void, since it
2639 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2640 (_dbus_message_loader_queue_messages): add silly temporary hack to
2641 fill in message->signature on load
2643 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2644 characters, so they are relatively human-readable.
2646 2003-10-11 Havoc Pennington <hp@pobox.com>
2648 * dbus/dbus-message.c (_dbus_message_test): add more test
2649 coverage, but #if 0 for now since they uncover a bug
2650 not fixed yet; I think in re_align_field_recurse()
2651 (re_align_field_recurse): add FIXME about broken assertion
2653 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2655 * bus/connection.c: share a couple code bits with expirelist.c
2657 * bus/expirelist.h, bus/expirelist.c: implement a generic
2658 expire-items-after-N-seconds facility, was going to share between
2659 expiring connections and replies, decided not to use for expiring
2660 connections for now.
2662 * COPYING: include AFL 2.0 (still need to change all the file headers)
2664 2003-10-09 Havoc Pennington <hp@redhat.com>
2666 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2667 gcc 3.3. Not that we do anything about it yet.
2669 * bus/signals.c (bus_match_rule_parse): impose max length on the
2672 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2674 2003-10-09 Havoc Pennington <hp@redhat.com>
2676 Make matching rules theoretically work (add parser).
2678 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2679 the case where destination is explicitly specified as bus driver
2680 and someone else is eavesdropping.
2682 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2683 definition of eavesdropping and assertion
2685 * tools/dbus-send.c (main): use dbus_message_type_from_string
2687 * bus/signals.c (bus_match_rule_parse): implement
2689 * dbus/dbus-message.c (dbus_message_type_from_string): new
2691 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2693 2003-10-02 Havoc Pennington <hp@pobox.com>
2695 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2696 dbus_gproxy_oneway_call
2698 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2699 (dbus_server_setup_with_g_main): fix to allow calling them more
2700 than once on the same args
2701 (dbus_bus_get_with_g_main): new function
2703 2003-10-02 Havoc Pennington <hp@redhat.com>
2705 * doc/dbus-tutorial.xml: write some stuff
2707 2003-09-29 Havoc Pennington <hp@pobox.com>
2709 * configure.in: split checks for Doxygen from XML docs, check for
2712 * doc/Makefile.am: XML-ify all the docs, and add a blank
2715 2003-09-29 Havoc Pennington <hp@pobox.com>
2717 * Merge dbus-object-names branch. To see the entire patch
2718 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2719 it's huuuuge though.
2720 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2722 2003-09-28 Havoc Pennington <hp@pobox.com>
2724 * HACKING: update to reflect new server
2726 2003-09-26 Seth Nickell <seth@gnome.org>
2729 * python/examples/example-signals.py:
2731 Start implementing some notions of signals. The API
2732 is really terrible, but they sort of work (with the
2733 exception of being able to filter by service, and to
2734 transmit signals *as* a particular service). Need to
2735 figure out how to make messages come from the service
2738 * python/dbus_bindings.pyx.in:
2740 Removed duplicate message_handler callbacks.
2742 2003-09-25 Havoc Pennington <hp@redhat.com>
2744 * bus/session.conf.in: fix my mess
2746 2003-09-25 Havoc Pennington <hp@pobox.com>
2748 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2750 2003-09-25 Seth Nickell <seth@gnome.org>
2752 * python/examples/example-service.py:
2754 Johan notices complete wrong code in example-service, but
2755 completely wrong in a way that works exactly the same (!).
2756 Johan is confused, how could this possibly work? Example
2757 code fails to serve purpose of making things clear.
2760 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2762 * doc/dbus-specification.sgml: don't require header fields
2763 to be 4-byte aligned and specify that fields should be
2764 distinguished from padding by the fact that zero is not
2767 * doc/TODO: remove re-alignment item and add item to doc
2768 the OBJECT_PATH type.
2770 * dbus/dbus-message.c:
2771 (HeaderField): rename the original member to value_offset
2772 and introduce a name_offset member to keep track of where
2773 the field actually begins.
2774 (adjust_field_offsets): remove.
2775 (append_int_field), (append_uint_field),
2776 (append_string_field): don't align the start of the header
2777 field to a 4-byte boundary.
2778 (get_next_field): impl finding the next marhsalled field
2779 after a given field.
2780 (re_align_field_recurse): impl re-aligning a number of
2781 already marshalled fields.
2782 (delete_field): impl deleting a field of any type and
2783 re-aligning any following fields.
2784 (delete_int_or_uint_field), (delete_string_field): remove.
2785 (set_int_field), (set_uint_field): no need to re-check
2786 that we have the correct type for the field.
2787 (set_string_field): ditto and impl re-aligning any
2789 (decode_header_data): update to take into account that
2790 the fields aren't 4-byte aligned any more and the new
2791 way to distinguish padding from header fields. Also,
2792 don't exit when there is too much header padding.
2793 (process_test_subdir): print the directory.
2794 (_dbus_message_test): add test to make sure a following
2795 field is re-aligned correctly after field deletion.
2797 * dbus/dbus-string.[ch]:
2798 (_dbus_string_insert_bytes): rename from insert_byte and
2799 allow the insert of multiple bytes.
2800 (_dbus_string_test): test inserting multiple bytes.
2802 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2803 warning note to docs about having to re-align any
2804 marshalled values following the string.
2806 * dbus/dbus-message-builder.c:
2807 (append_string_field), (_dbus_message_data_load):
2808 don't align the header field.
2810 * dbus/dbus-auth.c: (process_test_subdir): print the
2813 * test/break-loader.c: (randomly_add_one_byte): upd. for
2816 * test/data/invalid-messages/bad-header-field-alignment.message:
2819 * test/data/valid-messages/unknown-header-field.message: shove
2820 a dict in the unknown field.
2822 2003-09-25 Seth Nickell <seth@gnome.org>
2825 * python/dbus_bindings.pyx.in:
2827 Handle return values.
2829 * python/examples/example-client.py:
2830 * python/examples/example-service.py:
2832 Pass back return values from the service to the client.
2834 2003-09-24 Seth Nickell <seth@gnome.org>
2838 Connect Object methods (when you are sharing an object) up... pass
2839 in a list of methods to be shared. Sharing all the methods just
2840 worked out too weird. You can now create nice Services over the
2843 * python/dbus_bindings.pyx.in:
2845 Keep references to user_data tuples passed into C functions so
2846 Python doesn't garbage collect on us.
2848 Implement MethodReturn and Error subclasses of Message for creating
2849 DBusMessage's of those types.
2851 * python/examples/example-client.py:
2852 * python/examples/example-service.py:
2854 Simple example code showing both how create DBus services and objects,
2855 and how to use them.
2857 2003-09-23 Havoc Pennington <hp@pobox.com>
2859 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2861 2003-09-23 Havoc Pennington <hp@redhat.com>
2863 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2864 (dbus_gproxy_disconnect_signal): implement
2865 (dbus_gproxy_manager_remove_signal_match): implement
2866 (dbus_gproxy_manager_add_signal_match): implement
2867 (dbus_gproxy_oneway_call): implement
2869 2003-09-23 Havoc Pennington <hp@pobox.com>
2871 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2872 subclass. This means dropping the transparent thread safety of the
2873 proxy; you now need a separate proxy per-thread, or your own
2874 locking on the proxy. Probably right anyway.
2875 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2877 2003-09-22 Havoc Pennington <hp@redhat.com>
2879 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2881 2003-09-21 Seth Nickell <seth@gnome.org>
2883 First checkin of the Python bindings.
2885 * python/.cvsignore:
2886 * python/Makefile.am:
2887 * python/dbus_bindings.pyx.in:
2888 * python/dbus_h_wrapper.h:
2890 Pieces for Pyrex to operate on, building a dbus_bindings.so
2891 python module for low-level access to the DBus APIs.
2895 High-level Python module for accessing DBus objects.
2900 Build stuff for the python bindings.
2904 Extra macro needed for finding the Python C header files.
2906 2003-09-21 Havoc Pennington <hp@pobox.com>
2908 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2909 implementing the proxy manager, didn't get very far.
2911 * dbus/dbus-bus.c (dbus_bus_add_match): new
2912 (dbus_bus_remove_match): new
2914 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2915 path_name argument; adjust the other not-yet-implemented
2916 gproxy constructors to be what I think they should be.
2918 2003-09-21 Havoc Pennington <hp@pobox.com>
2920 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2921 by default for message bus connections.
2923 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2924 exit_on_disconnect flag is set and we process the disconnected
2926 (dbus_connection_set_exit_on_disconnect): new function
2928 2003-09-21 Havoc Pennington <hp@pobox.com>
2930 Get matching rules mostly working in the bus; only actually
2931 parsing the rule text remains. However, the client side of
2932 "signal connections" hasn't been started, this patch is only the
2935 * dbus/dispatch.c: fix for the matching rules changes
2937 * bus/driver.c (bus_driver_handle_remove_match)
2938 (bus_driver_handle_add_match): send an ack reply from these
2941 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2942 arguments, reported by Seth Nickell
2944 * bus/config-parser.c (append_rule_from_element): support
2945 eavesdrop=true|false attribute on policies so match rules
2946 can be prevented from snooping on the system bus.
2948 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2949 and "destination" in attribute names; fix some docs bugs;
2950 add eavesdrop=true|false attribute
2952 * bus/driver.c (bus_driver_handle_add_match)
2953 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2956 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2957 rid of broadcast service concept, signals are just always broadcast
2959 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2960 mostly implement matching rules stuff (currently only exposed as signal
2963 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2965 * doc/dbus-specification.sgml: Change the header field name
2966 to be an enum and update the rest of the spec to reference
2967 the fields using the conventinal name.
2969 * dbus/dbus-protocol.h: update to reflect the spec.
2971 * doc/TODO: add item to remove the 4 byte alignment requirement.
2973 * dbus/dbus-message.c: Remove the code to generalise the
2974 header/body length and serial number header fields as named
2975 header fields so we can reference field names using the
2977 (append_int_field), (append_uint_field), (append_string_field):
2978 Append the field name as a byte rather than four chars.
2979 (delete_int_or_uint_field), (delete_string_field): reflect the
2980 fact that the field name and typecode now occupy 4 bytes instead
2982 (decode_string_field), (decode_header_data): update to reflect
2983 protocol changes and move the field specific encoding from
2984 decode_string_field() back into decode_header_data().
2986 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2987 Add utility to aid debugging.
2989 * dbus/dbus-message-builder.c:
2990 (append_string_field), (_dbus_message_data_load): Update to
2991 reflect protocol changes; Change the FIELD_NAME directive
2992 to HEADER_FIELD and allow it to take the field's conventional
2993 name rather than the actual value.
2995 * test/data/*/*.message: Update to use HEADER_FIELD instead
2996 of FIELD_NAME; Always align the header on an 8 byte boundary
2997 *before* updating the header length.
2999 2003-09-15 Havoc Pennington <hp@pobox.com>
3001 * dbus/dbus-pending-call.c: add the get/set object data
3002 boilerplate as for DBusConnection, etc. Use generic object data
3003 for the notify callback.
3005 * glib/dbus-gparser.c (parse_node): parse child nodes
3007 * tools/dbus-viewer.c: more hacking on the dbus-viewer
3009 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
3010 contain functions shared between the convenience lib and the
3013 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
3014 -export-symbols-regex to the GLib library
3016 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
3017 fix the locking in here, and add a default handler for
3018 Introspect() that just returns sub-nodes.
3020 2003-09-14 Havoc Pennington <hp@pobox.com>
3022 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
3023 rather than gfoo consistent
3025 * glib/dbus-gproxy.h: delete for now, move contents to
3026 dbus-glib.h, because the include files don't work right since we
3027 aren't in the dbus/ subdir.
3029 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
3030 (dbus_gproxy_end_call): finish
3031 (dbus_gproxy_begin_call): finish
3033 * glib/dbus-gmain.c (dbus_set_g_error): new
3035 * glib/dbus-gobject.c (handle_introspect): include information
3036 about child nodes in the introspection
3038 * dbus/dbus-connection.c (dbus_connection_list_registered): new
3039 function to help in implementation of introspection
3041 * dbus/dbus-object-tree.c
3042 (_dbus_object_tree_list_registered_and_unlock): new function
3044 2003-09-12 Havoc Pennington <hp@pobox.com>
3046 * glib/dbus-gidl.h: add common base class for all the foo_info
3049 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
3052 * test/Makefile.am: try test srcdir -ef . in addition to test
3053 srcdir = ., one of them should work (yeah lame)
3055 * glib/Makefile.am: build the "idl" parser stuff as a convenience
3058 * glib/dbus-gparser.h: make description_load routines return
3059 NodeInfo* not Parser*
3061 * Makefile.am (SUBDIRS): build test dir after all library dirs
3063 * configure.in: add GTK+ detection
3065 2003-09-07 Havoc Pennington <hp@pobox.com>
3067 * Make Doxygen contented.
3069 2003-09-07 Havoc Pennington <hp@pobox.com>
3071 * doc/dbus-specification.sgml: more updates
3073 2003-09-06 Havoc Pennington <hp@pobox.com>
3075 * doc/dbus-specification.sgml: partial updates
3077 * bus/dbus-daemon-1.1.in: fix the config file docs for the
3078 zillionth time; hopefully I edited the right file this time.
3080 * bus/config-parser.c (append_rule_from_element): support
3081 send_type, send_path, receive_type, receive_path
3083 * bus/policy.c: add message type and path to the list of things
3084 that can be "firewalled"
3086 2003-09-06 Havoc Pennington <hp@pobox.com>
3088 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
3089 (dbus_connection_register_object_path): make this not handle
3090 messages to paths below the given path
3092 2003-09-03 Havoc Pennington <hp@pobox.com>
3094 * test/glib/Makefile.am: add this with random glib-linked test
3097 * glib/Makefile.am: remove the random test programs from here,
3098 leave only the unit tests
3100 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
3101 uscore/javacaps conversion, and fix
3102 (get_object_property, set_object_property): change to .NET
3103 convention for mapping props to methods, set_FooBar/get_FooBar,
3104 since one language has such a convention we may as well copy it.
3105 Plus real methods in either getFooBar or get_foo_bar style won't
3106 collide with this convention.
3108 2003-09-01 Havoc Pennington <hp@pobox.com>
3110 * glib/dbus-gparser.c: implement
3112 * glib/dbus-gobject.c: start implementing skeletons support
3114 * configure.in: when disabling checks/assert, also define
3115 G_DISABLE_ASSERT and G_DISABLE_CHECKS
3117 2003-09-01 Havoc Pennington <hp@pobox.com>
3119 * glib/Makefile.am: rearrange a bunch of files and get "make
3120 check" framework set up
3122 2003-08-31 Havoc Pennington <hp@pobox.com>
3124 * fix build with --disable-tests
3126 2003-08-30 Havoc Pennington <hp@pobox.com>
3128 * dbus/dbus-connection.c: purge DBusMessageHandler
3130 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
3131 use callbacks everywhere
3133 2003-08-30 Havoc Pennington <hp@pobox.com>
3135 * test/data/valid-config-files/system.d/test.conf: change to
3136 root for the user so warnings don't get printed
3138 * dbus/dbus-message.c: add dbus_message_get_path,
3139 dbus_message_set_path
3141 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
3142 dispatching to a path
3144 * dbus/dbus-string.c (_dbus_string_validate_path): add
3146 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
3147 (_dbus_marshal_object_path): implement
3149 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
3150 to contain the path to the target object
3151 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
3152 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
3154 2003-08-30 Havoc Pennington <hp@pobox.com>
3156 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
3158 2003-08-29 Havoc Pennington <hp@pobox.com>
3160 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3162 (struct DBusObjectSubtree): shrink this
3163 a lot, since we may have a lot of them
3164 (_dbus_object_tree_free_all_unlocked): implement
3165 (_dbus_object_tree_dispatch_and_unlock): implement
3167 2003-08-29 Havoc Pennington <hp@pobox.com>
3169 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3171 2003-08-28 Havoc Pennington <hp@pobox.com>
3175 * dbus/dbus-connection.c: port to no ObjectID, create a
3176 DBusObjectTree, rename ObjectTree to ObjectPath in public API
3178 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
3179 everything except UnregisterFunction and MessageFunction
3181 * dbus/dbus-marshal.c: port away from DBusObjectID,
3182 add DBUS_TYPE_OBJECT_PATH
3184 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
3185 dbus/dbus-objectid.[hc]: remove these, we are moving to
3186 path-based object IDs
3188 2003-08-25 Havoc Pennington <hp@pobox.com>
3190 Just noticed that dbus_message_test is hosed, I wonder when I
3191 broke that. I thought make check was passing earlier...
3193 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
3194 container tree, will replace most of dbus-object-registry
3196 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3199 2003-08-19 Havoc Pennington <hp@pobox.com>
3201 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3202 (dbus_message_is_error): fix this function
3204 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3207 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3208 reflect clarified man page
3209 (bus_client_policy_check_can_send): ditto
3211 * bus/session.conf.in: fixup
3213 * bus/system.conf.in: fixup
3215 2003-08-18 Havoc Pennington <hp@redhat.com>
3217 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3219 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3220 dumb bug created earlier (wrong order of args to
3221 decode_header_data())
3223 * tools/dbus-send.c: port
3225 * tools/dbus-print-message.c (print_message): port
3227 * test/data/*messages: port all messages over
3229 * dbus/dbus-message-builder.c: support including
3232 * bus/driver.c: port over
3234 * bus/dispatch.c: port over to new stuff
3236 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3237 rename disconnect signal to "Disconnected"
3239 2003-08-17 Havoc Pennington <hp@pobox.com>
3241 This doesn't compile yet, but syncing up so I can hack on it from
3242 work. What are branches for if not broken code? ;-)
3244 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3245 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3246 DBUS_HEADER_FIELD_ERROR_NAME
3248 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3249 for the interface+member pairs
3250 (string_hash): change to use g_str_hash algorithm
3251 (find_direct_function, find_string_function): refactor these to
3254 * dbus/dbus-message.c: port all of this over to support
3255 interface/member fields instead of name field
3257 * dbus/dbus-object-registry.c: port over
3259 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3260 from _dbus_string_validate_name
3262 * bus/dbus-daemon-1.1: change file format for the
3263 <deny>/<allow> stuff to match new message naming scheme
3265 * bus/policy.c: port over
3267 * bus/config-parser.c: parse new format
3269 2003-08-16 Havoc Pennington <hp@pobox.com>
3271 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3274 * glib/dbus-gproxy.c: some hacking
3276 2003-08-15 Havoc Pennington <hp@redhat.com>
3278 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3280 * dbus/dbus-connection.c
3281 (dbus_connection_send_with_reply_and_block): factor out internals;
3282 change to convert any error replies to DBusError instead of
3283 returning them as a message
3285 2003-08-15 Havoc Pennington <hp@pobox.com>
3287 * dbus/dbus-connection.c,
3288 dbus/dbus-pending-call.c: Finish the pending call stuff
3290 2003-08-14 Havoc Pennington <hp@redhat.com>
3292 * dbus/dbus-pending-call.c: start on new object that will replace
3293 DBusMessageHandler and ReplyHandlerData for tracking outstanding
3296 * dbus/dbus-gproxy.c: start on proxy object used to communicate
3297 with remote interfaces
3299 * dbus/dbus-gidl.c: do the boring boilerplate in here
3301 2003-08-12 Havoc Pennington <hp@pobox.com>
3303 * bus/dispatch.c (bus_dispatch): make this return proper
3304 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3306 * dbus/dbus-errors.c (dbus_set_error): use
3307 _dbus_string_append_printf_valist
3309 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3310 (_dbus_string_append_printf): new
3312 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3315 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3316 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3317 message is unhandled.
3319 2003-08-11 Havoc Pennington <hp@pobox.com>
3321 * bus/test.c (client_disconnect_handler): change to return
3322 HANDLED (would have been REMOVE_MESSAGE)
3324 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3325 HANDLED/NOT_YET_HANDLED instead of
3326 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
3329 2003-08-10 Havoc Pennington <hp@pobox.com>
3331 * tools/dbus-send.c (main): add --type argument, for now
3332 supporting only method_call and signal types.
3334 * tools/dbus-print-message.c: print message type
3336 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3337 init connection->objects
3339 * doc/dbus-specification.sgml: fix sgml
3341 * bus/*.c: port over to object-instance API changes
3343 * test/test-service.c: ditto
3345 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3346 name, we will have to fix up the rest of the code to also handle
3348 (dbus_message_new): generic message-creation call
3349 (set_string_field): allow appending name field
3351 2003-08-06 Havoc Pennington <hp@pobox.com>
3353 * dbus/dbus-object-registry.c: implement signal connection
3356 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3358 * dbus/dbus-internals.c (_dbus_memdup): new function
3360 2003-08-02 Havoc Pennington <hp@pobox.com>
3362 * dbus/dbus-message.c (dbus_message_get_no_reply)
3363 (dbus_message_set_no_reply): add these and remove
3364 set_is_error/get_is_error
3366 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
3367 remove the ERROR flag, since there's now an ERROR type
3369 2003-08-01 Havoc Pennington <hp@pobox.com>
3371 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3374 * dbus/dbus-message.c (dbus_message_get_type): new function
3376 * doc/dbus-specification.sgml: add "type" byte to messages
3378 2003-08-01 Havoc Pennington <hp@pobox.com>
3380 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3381 a message type enum to distinguish kinds of message
3382 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
3383 that need not be replied to
3385 2003-08-01 Havoc Pennington <hp@pobox.com>
3387 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3388 (unpack_8_octets): fix no-64-bit-int bug
3390 * dbus/dbus-object-registry.c (validate_id): validate the
3391 connection ID bits, not just the instance ID.
3393 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3394 the connection-global 33 bits of the object ID
3396 * dbus/dbus-object-registry.c (info_from_entry): fill in
3397 object ID in the new way
3399 * dbus/dbus-objectid.h: rather than high/low bits, specifically
3400 define server/client/instance bits.
3402 2003-07-30 Havoc Pennington <hp@pobox.com>
3404 * dbus/dbus-connection.c (dbus_connection_register_object): fix
3407 2003-07-13 Havoc Pennington <hp@pobox.com>
3409 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3410 fields to DBusObjectVTable and DBusObjectInfo
3412 2003-07-12 Havoc Pennington <hp@pobox.com>
3414 * dbus/dbus-object-registry.c: implement unit test,
3415 fix bugs discovered in process
3417 * dbus/dbus-connection.c: remove handler_table and
3418 register_handler(), add DBusObjectRegistry usage
3420 * dbus/dbus-objectid.c (dbus_object_id_is_null)
3421 (dbus_object_id_set_null): new functions
3423 2003-07-08 Havoc Pennington <hp@pobox.com>
3425 * dbus/dbus-object.c: implement some of this
3427 * dbus/dbus-object-registry.c
3428 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3430 (_dbus_object_registry_new): handle OOM
3432 2003-07-08 Havoc Pennington <hp@pobox.com>
3434 * dbus/dbus-object.h: sketch out an API for registering objects
3435 with a connection, that allows us to use as little as 24 bytes
3436 per object and lets application code represent an object in
3437 any conceivable way.
3439 * dbus/dbus-object-registry.c: implement the hard bits of the
3440 DBusConnection aspect of object API. Not yet wired up.
3442 2003-07-06 Havoc Pennington <hp@pobox.com>
3444 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3445 (_dbus_marshal_object_id): new
3446 (_dbus_demarshal_object_id): new
3447 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3448 consolidate identical switch cases. Don't conditionalize handling
3449 of DBUS_TYPE_UINT64, need to handle the type always.
3450 (_dbus_marshal_validate_arg): consolidate identical cases, and
3451 handle DBUS_TYPE_OBJECT_ID
3453 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3455 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3457 2003-09-28 Havoc Pennington <hp@pobox.com>
3461 2003-09-28 Havoc Pennington <hp@pobox.com>
3463 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3464 to work with Debian db2html
3466 2003-09-28 Havoc Pennington <hp@pobox.com>
3468 * configure.in: 0.13
3470 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3471 stylesheet-images for benefit of Debian
3473 Change back to using filesystem-linked sockets for the system
3474 bus, so only root can create the default system bus address.
3476 * bus/system.conf.in: change to use
3477 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3479 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3482 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3483 here, and AC_DEFINE DBUS_SYSTEM_PATH
3485 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3488 * doc/busconfig.dtd:
3491 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3493 * doc/dbus-specification.sgml:
3494 Add activation reply values.
3496 2003-08-05 Havoc Pennington <hp@redhat.com>
3498 * configure.in: 0.12
3500 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3502 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3503 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3504 (add_watch), (remove_watch), (create_source):
3505 Refcount fds, fixes some reentrancy issues.
3507 2003-07-30 Havoc Pennington <hp@redhat.com>
3509 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3510 bus address to be abstract if we have abstract sockets
3514 2003-07-28 Havoc Pennington <hp@redhat.com>
3516 * bus/messagebus.in: fix to avoid processname/servicename
3517 confusion, from Michael Kearey
3518 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3520 2003-07-23 Havoc Pennington <hp@pobox.com>
3522 * dbus/dbus-message.c (dbus_message_iter_get_named):
3523 fix from Andy Hanton to remove broken "+1"
3525 2003-07-16 Havoc Pennington <hp@pobox.com>
3527 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3528 babysitter process, as suggested by Thomas Leonard, so
3529 an "eval `dbus-launch --exit-with-session`" will actually
3532 2003-07-16 Havoc Pennington <hp@pobox.com>
3534 * configure.in: print out EXPANDED_* variables in the summary at
3535 the end; clean up the code that computes EXPANDED_ variables and
3536 get the ones using exec_prefix right. Should make things work
3537 when you build without --prefix
3539 2003-06-29 Havoc Pennington <hp@pobox.com>
3541 * mono/Test.cs (class Test): fire up a main loop and run it
3543 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3544 done once, the app has to do it
3546 2003-06-26 Havoc Pennington <hp@pobox.com>
3548 * mono/Connection.cs: set up connection with the glib main loop
3550 2003-07-01 Havoc Pennington <hp@redhat.com>
3552 * doc/dbus-specification.sgml: clarify the format of a type code,
3553 change suggested by Jim Blandy
3555 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3558 * tools/Makefile.am: Don't assume srcdir == builddir.
3560 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3561 the allocated block.
3562 (_dbus_memory_test): New function.
3563 * dbus/dbus-test.h: Add _dbus_memory_test ().
3564 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3566 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3568 (dbus_message_new): Remove obsolete @todo.
3570 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3571 (_dbus_marshal_set_uint64): Fix comment.
3573 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3574 hardcode FIELD_REPLY_SERIAL.
3576 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3577 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3579 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3580 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3582 2003-06-24 Havoc Pennington <hp@pobox.com>
3584 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3586 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3592 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3593 * gcj/org/.cvsignore:
3594 * gcj/org/Makefile.am:
3595 * gcj/org/freedesktop/.cvsignore:
3596 * gcj/org/freedesktop/Makefile.am:
3597 * gcj/org/freedesktop/dbus/.cvsignore:
3598 * gcj/org/freedesktop/dbus/Makefile.am:
3599 * gcj/org/freedesktop/dbus/Message.java: (Message),
3601 * gcj/org/freedesktop/dbus/natMessage.cc:
3602 Fix the build system.
3604 2003-06-22 Havoc Pennington <hp@pobox.com>
3606 * mono/Connection.cs: add more bindings
3608 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3611 2003-06-22 Havoc Pennington <hp@pobox.com>
3613 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3614 Start wrapping more stuff.
3616 2003-06-22 Havoc Pennington <hp@pobox.com>
3618 * mono/Message.cs: implement Message.Wrap() that ensures we only
3619 have a single C# wrapper per DBusMessage, assuming it works which
3620 it probably doesn't.
3622 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3623 (dbus_message_free_data_slot): new
3624 (dbus_message_set_data): new
3625 (dbus_message_get_data): new
3627 2003-06-22 Havoc Pennington <hp@pobox.com>
3629 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3630 (_dbus_data_slot_allocator_alloc): rework these to keep a
3631 reference count on each slot and automatically manage a global
3632 slot ID variable passed in by address
3634 * bus/bus.c: convert to new dataslot API
3636 * dbus/dbus-bus.c: convert to new dataslot API
3638 * dbus/dbus-connection.c: convert to new dataslot API
3640 * dbus/dbus-server.c: convert to new dataslot API
3642 * glib/dbus-gmain.c: ditto
3646 * bus/connection.c: ditto
3648 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3650 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3651 after the gcj checks so that the correct configuration tags
3652 will be added to libtool.
3654 * dbus-glib-1.pc.in: No need to specify any includes since
3655 dbus-1.pc.in has those.
3657 2003-06-22 Havoc Pennington <hp@pobox.com>
3659 * mono/*, gcj/*, configure.in, Makefile.am:
3660 Check in makefiles and subdirs for mono and gcj bindings.
3661 Neither binding actually exists, just trying to get through
3662 all the build and other boring bits.
3664 2003-06-21 Philip Blundell <philb@gnu.org>
3666 * tools/dbus-monitor.1: Updated.
3668 * tools/dbus-send.1: Likewise.
3670 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3672 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3673 for hangup and error after checking read so we won't discard
3674 pending data if both hangup and read are set.
3676 2003-06-19 Philip Blundell <philb@gnu.org>
3678 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3680 * tools/dbus-send.c: Accept both --system and --session.
3682 * tools/dbus-monitor.c: Same here.
3684 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3686 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3687 from C++ (Patch by Miloslav Trmac).
3689 2003-06-15 Joe Shaw <joe@assbarn.com>
3691 * configure.in: Check for socklen_t.
3693 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3695 * test/test-segfault.c: Add #include <sys/time.h>
3697 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3698 dbus-launch needs it.
3700 2003-06-09 Havoc Pennington <hp@redhat.com>
3702 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3703 SUN_LEN, it breaks abstract socket usage
3705 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3708 2003-06-04 Havoc Pennington <hp@pobox.com>
3710 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3711 using unix:abstract=/foo, and when listening in a tmpdir
3712 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3714 * dbus/dbus-transport.c (_dbus_transport_open): support
3717 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3718 support abstract sockets
3720 * dbus/dbus-transport-unix.c
3721 (_dbus_transport_new_for_domain_socket): support abstract sockets
3723 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3724 toggle as an argument, implement abstract namespace support
3725 (_dbus_listen_unix_socket): ditto
3727 * configure.in: add --enable-abstract-sockets and implement
3728 a configure check for autodetection of the right value.
3730 2003-06-01 Havoc Pennington <hp@pobox.com>
3732 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3733 in /tmp (though on Linux this will end up being useless,
3734 when we add abstract namespace support)
3736 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3739 2003-05-28 Colin Walters <walters@verbum.org>
3741 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3743 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3745 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3747 2003-05-17 Colin Walters <walters@gnu.org>
3749 * tools/dbus-send.c: Don't exit with an error code if --help was
3750 passed. Default to using the session bus instead of the system
3753 * tools/dbus-launch.c: Ditto.
3755 * tools/dbus-monitor.c: Ditto.
3757 * tools/dbus-send.1: Update with new arguments.
3759 * tools/dbus-launch.c: Emit code to export variables. New
3760 arguments -s and -c to specify shell syntax, and a bit of code to
3761 autodetect syntax. Also, allow specifying a program to run.
3763 * tools/dbus-launch.1: Update with new arguments.
3765 * tools/dbus-send.1: Ditto.
3767 * tools/dbus-monitor.1: Ditto.
3769 2003-05-17 Havoc Pennington <hp@pobox.com>
3771 * bus/config-parser.c (merge_included): merge in policies from
3772 child configuration file.
3774 * bus/policy.c (bus_policy_merge): function to merge two policies
3777 2003-05-16 Havoc Pennington <hp@redhat.com>
3779 * dbus/dbus-connection.c: disable verbose lock spew
3781 * tools/dbus-send.c: add --print-reply command line option
3783 * tools/dbus-print-message.h (print_message): new util function
3784 shared by dbus-send and dbus-monitor
3786 * tools/dbus-monitor.c (handler_func): exit on disconnect
3788 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3789 disconnected, don't try to use the read_watch
3791 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3792 so we can find this bug more easily
3794 2003-05-16 Havoc Pennington <hp@redhat.com>
3796 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3797 NULL as DBusHashTable is annoyingly likely to do.
3799 2003-05-16 Colin Walters <walters@verbum.org>
3801 * tools/dbus-monitor.c: Add --session argument and usage()
3804 * tools/dbus-monitor.1: Update with new --session arg.
3806 * bus/Makefile.am (install-data-hook): Create
3807 $(libdir)/dbus-1.0/services so that the session bus is happy.
3809 2003-05-15 Havoc Pennington <hp@redhat.com>
3811 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3812 on non-x86. ifdef's are evil.
3814 2003-05-15 Havoc Pennington <hp@redhat.com>
3816 * configure.in: 0.11
3820 * bus/Makefile.am (initddir): apparently we are supposed to put
3821 init scripts in /etc/rc.d/init.d not /etc/init.d
3823 * bus/Makefile.am: remove the "you must --enable-tests to make
3824 check" as it broke distcheck
3826 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3828 2003-05-13 James Willcox <jwillcox@gnome.org>
3831 * bus/activation.c: (bus_activation_service_created),
3832 (bus_activation_activate_service):
3833 * bus/driver.c: (bus_driver_send_service_deleted),
3834 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3835 (bus_driver_send_service_acquired),
3836 (bus_driver_send_welcome_message),
3837 (bus_driver_handle_list_services):
3838 * bus/session.conf.in:
3839 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3840 (dbus_bus_service_exists), (dbus_bus_activate_service):
3843 Add some convenience API which lets you activate a service, and did a
3844 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3845 and dbus_message_get_args()
3847 2003-05-11 Havoc Pennington <hp@pobox.com>
3849 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3850 calling _dbus_marshal_validate_arg() for every byte in a byte
3853 * dbus/dbus-message-handler.c: use atomic reference counting to
3854 reduce number of locks slightly; the global lock in here sucks
3856 * dbus/dbus-connection.c
3857 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3858 update_dispatch_status that can be called with lock held; then use
3859 in a couple places to reduce locking/unlocking
3860 (dbus_connection_send): hold the lock over the whole function
3861 instead of acquiring it twice.
3863 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3865 * bus/connection.c (bus_connections_setup_connection): fix access
3866 to already-freed memory.
3868 * dbus/dbus-connection.c: keep a little cache of linked list
3869 nodes, to avoid using the global linked list alloc lock in the
3870 normal send-message case. Instead we just use the connection lock
3871 that we already have to take.
3873 * dbus/dbus-list.c (_dbus_list_find_last): new function
3875 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3876 change to use a struct for the atomic type; fix docs,
3877 they return value before increment, not after increment.
3879 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3880 (_dbus_string_append_8_aligned): new functions to try to
3881 microoptimize this operation.
3882 (reallocate_for_length): break this out of set_length(), to
3883 improve profile info, and also so we can consider inlining the
3886 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3887 strings with some preallocation, cuts down on our calls to realloc
3888 a fair bit. Though if we can get the "move entire string to empty
3889 string" optimization below to kick in here, it would be better.
3891 * dbus/dbus-string.c (_dbus_string_move): just call
3892 _dbus_string_move_len
3893 (_dbus_string_move_len): add a special case for moving
3894 an entire string into an empty string; we can just
3895 swap the string data instead of doing any reallocs.
3896 (_dbus_string_init_preallocated): new function
3898 2003-05-11 Havoc Pennington <hp@pobox.com>
3900 Write a "test-profile" that does echo client-server with threads;
3901 profile reveals lock contention, memcpy/realloc of buffers, and
3902 UTF-8 validation as hot spots. 20% of lock contention eliminated
3903 with dbus_atomic_inc/dec implementation on x86. Much remaining
3904 contention is global mempool locks for GList and DBusList.
3906 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3909 * dbus/dbus-connection.c (struct DBusConnection): use
3910 dbus_atomic_t for the reference count
3912 * dbus/dbus-message.c (struct DBusMessage): declare
3913 dbus_atomic_t values as volatile
3915 * configure.in: code to detect ability to use atomic integer
3916 operations in assembly, from GLib patch
3918 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3919 time, tired of it being wrong in threads and forked processes
3921 * glib/test-profile.c: a little program to bounce messages back
3922 and forth between threads and eat CPU
3924 * dbus/dbus-connection.c: add debug spew macros for debugging
3925 thread locks; include config.h at top; fix deadlock in
3926 dbus_connection_flush()
3928 2003-05-08 Havoc Pennington <hp@pobox.com>
3930 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3931 data from getting written, and there wasn't a good reason to
3934 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3935 dbus_verbose lines in test coverage
3936 (main): add list of functions sorted by # of untested blocks
3937 to the coverage report
3939 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3941 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3943 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3944 extend test coverage
3946 * test/data/auth/cancel.auth-script: test canceling an
3949 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3950 aren't used. in CVS history if we end up needing them.
3952 2003-05-04 Havoc Pennington <hp@pobox.com>
3954 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3957 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3958 function, which assumed length was in # of strings, not bytes
3960 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3963 * dbus/dbus-connection.c
3964 (_dbus_connection_queue_received_message): disable function for
3965 now, we are only using it in test mode
3967 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3968 remove a mistaken FIXME
3970 2003-05-04 Havoc Pennington <hp@pobox.com>
3972 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3973 unlock mutex on successful return, patch from Anders Gustafsson
3975 2003-05-04 Havoc Pennington <hp@pobox.com>
3977 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3980 2003-05-04 Havoc Pennington <hp@pobox.com>
3982 * tools/dbus-launch.c: implement
3984 * bus/main.c (main), bus/bus.c (bus_context_new):
3985 implement --print-pid and --fork
3987 2003-05-03 Havoc Pennington <hp@redhat.com>
3989 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3990 the address had no value, and add to test suite. Fix and
3991 regression test from Miloslav Trmac
3993 2003-05-03 Havoc Pennington <hp@pobox.com>
3995 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3996 watch is invalid when handled
3998 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3999 dbus-launch utility to launch the bus from a shell script. Didn't
4000 actually implement dbus-launch yet, it's just a placeholder still.
4002 2003-05-03 Havoc Pennington <hp@pobox.com>
4004 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
4005 daemon; also documents daemon config file, so replaces
4006 doc/config-file.txt. Corrected some stuff from config-file.txt in
4007 the process of moving it.
4009 2003-05-03 Havoc Pennington <hp@pobox.com>
4011 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
4014 2003-05-03 Colin Walters <walters@verbum.org>
4016 * dbus/dbus-sysdeps.c (fill_user_info): Test against
4017 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
4019 * Makefile.am: Update to use new .pc versioning scheme.
4021 2003-05-02 Havoc Pennington <hp@redhat.com>
4023 * bus/system.conf.in: allow send/receive to/from message bus
4026 2003-04-30 Havoc Pennington <hp@redhat.com>
4028 * configure.in: print a note when building with unit tests and
4031 2003-04-30 Havoc Pennington <hp@redhat.com>
4033 * Makefile.am: add a check-local that complains if you didn't
4034 configure with --enable-tests
4036 2003-04-29 Havoc Pennington <hp@redhat.com>
4038 * glib/dbus-gmain.c: docs cleanups
4040 * dbus/dbus-types.h: add docs on int64 types
4042 * dbus/dbus-memory.c: fix docs to avoid putting private API in
4043 public API docs section
4045 2003-04-29 Havoc Pennington <hp@redhat.com>
4047 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
4048 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
4049 parallel install API version, not with the D-BUS package version.
4051 * HACKING: move some of README over here
4053 * README: updates, and document API/ABI policy
4055 * configure.in: reindentation
4057 2003-04-29 Havoc Pennington <hp@redhat.com>
4059 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
4060 to use this library" to be sure people have the right
4063 2003-04-28 Havoc Pennington <hp@redhat.com>
4065 * configure.in: add --enable-docs which by default is auto yes if
4066 doxygen and db2html found, no otherwise; but can be forced on/off
4068 * doc/Makefile.am: conditionalize whether to build docs on
4071 2003-04-28 Havoc Pennington <hp@redhat.com>
4073 * configure.in: 0.10
4077 * bus/system.conf.in: add <includedir>system.d</includedir>
4079 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
4080 username was provided but not uid
4082 * bus/config-parser.c (struct BusConfigParser): keep track of
4083 whether the parser is toplevel or was included; change some
4084 of the error handling if it's included.
4086 2003-04-27 Havoc Pennington <hp@pobox.com>
4090 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4091 report correct status if we finish processing authentication
4092 inside this function.
4094 * bus/activation.c (try_send_activation_failure): use
4095 bus_transaction_send_error_reply
4097 * bus/connection.c (bus_connection_get_groups): return an error
4098 explaining the problem
4100 * bus/bus.c (bus_context_check_security_policy): implement
4101 restriction here that inactive connections can only send the
4102 hello message. Also, allow bus driver to send anything to
4105 * bus/connection.c (bus_connection_complete): create the
4106 BusClientPolicy here instead of on-demand.
4107 (bus_connection_get_policy): don't return an error
4109 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
4110 sender field in message being replied to
4112 * bus/bus.c (bus_context_check_security_policy): fix silly typo
4113 causing it to return FALSE always
4115 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
4116 we checked sender rather than destination
4118 2003-04-25 Havoc Pennington <hp@redhat.com>
4120 test suite is slightly hosed at the moment, will fix soon
4122 * bus/connection.c (bus_connections_expire_incomplete): fix to
4123 properly disable the timeout when required
4124 (bus_connection_set_name): check whether we can remove incomplete
4125 connections timeout after we complete each connection.
4127 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
4128 probably still broken.
4130 * bus/services.c (bus_registry_acquire_service): implement max
4131 number of services owned, and honor allow/deny rules on which
4132 services a connection can own.
4134 * bus/connection.c (bus_connection_get_policy): report errors here
4136 * bus/activation.c: implement limit on number of pending
4139 2003-04-25 Havoc Pennington <hp@redhat.com>
4141 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
4142 where we used >= 0 instead of != DBUS_UID_UNSET.
4144 2003-04-25 Havoc Pennington <hp@redhat.com>
4146 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
4147 were toggled without add/remove, fix from Anders Gustafsson
4149 2003-04-24 Havoc Pennington <hp@redhat.com>
4151 * test/data/valid-config-files/basic.conf: add <limit> tags to
4154 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
4155 <limit> tag in configuration file.
4157 2003-04-24 Havoc Pennington <hp@redhat.com>
4159 * bus/dispatch.c: somehow missed some name_is
4161 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4162 (_dbus_timeout_set_interval): new
4164 * bus/connection.c (bus_connections_setup_connection): record time
4165 when each connection is first set up, and expire them after the
4166 auth timeout passes.
4168 2003-04-24 Havoc Pennington <hp@redhat.com>
4170 * dbus/dbus-message.c (dbus_message_name_is): rename
4171 (dbus_message_service_is): rename
4172 (dbus_message_sender_is): rename
4173 (dbus_message_get_service): rename
4175 2003-04-24 Havoc Pennington <hp@redhat.com>
4177 * configure.in: add --enable-checks
4179 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4181 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4182 to use thread locks.
4183 (_dbus_connection_handler_destroyed_locked): move some private
4184 functions into proper docs group
4186 * dbus/dbus-internals.h: add _dbus_return_if_fail,
4187 _dbus_return_val_if_fail
4189 Throughout: use dbus_return_if_fail
4191 2003-04-23 James Willcox <jwillcox@gnome.org>
4194 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4195 (dbus_connection_setup_with_g_main),
4196 (dbus_server_setup_with_g_main):
4197 * glib/test-dbus-glib.c: (main):
4198 * glib/test-thread-client.c: (main):
4199 * glib/test-thread-server.c: (new_connection_callback), (main):
4200 * tools/dbus-monitor.c: (main):
4202 Added a GMainContext argument to dbus_connection_setup_with_g_main()
4203 and dbus_server_setup_with_g_main().
4205 2003-04-20 Havoc Pennington <hp@pobox.com>
4207 * doc/dbus-specification.sgml: document the restrictions on
4208 message and service names
4210 2003-04-22 Havoc Pennington <hp@redhat.com>
4212 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4213 support, and do some code cleanups to share more code and
4214 speed up array marshal/demarshal.
4216 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4218 * configure.in: generate dbus-arch-deps.h
4220 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4223 2003-04-22 Havoc Pennington <hp@redhat.com>
4225 * test/data/valid-messages/opposite-endian.message: fix test
4226 to use proper type for rply field
4228 * test/data/invalid-messages: add tests for below validation
4230 * dbus/dbus-message.c (decode_header_data): validate field types,
4231 and validate that named fields are valid names
4232 (decode_name_field): consider messages in the
4233 org.freedesktop.Local. namespace to be invalid.
4235 * dbus/dbus-string.c (_dbus_string_validate_name): new
4237 2003-04-19 Havoc Pennington <hp@pobox.com>
4239 * bus/driver.c (bus_driver_handle_hello): check limits and
4240 return an error if they are exceeded.
4242 * bus/connection.c: maintain separate lists of active and inactive
4243 connections, and a count of each. Maintain count of completed
4244 connections per user. Implement code to check connection limits.
4246 * dbus/dbus-list.c (_dbus_list_unlink): export
4248 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4249 number of bytes in the message queue for a connection
4251 2003-04-18 Havoc Pennington <hp@pobox.com>
4253 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4255 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4258 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4259 on realloc be sure to update the pointer in the keyring
4261 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4262 offset to avoid writing to unallocated memory
4264 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4265 try the next mechanism, so we properly handle OOM
4267 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4269 (_dbus_keyring_new): fix OOM bug
4270 (_dbus_keyring_new_homedir): always set error; impose a maximum
4271 number of keys we'll load from the file, mostly to speed up the
4272 test suite and make its OOM checks more useful, but also for
4275 * dbus/dbus-auth.c (process_error_server): reject authentication
4276 if we get an error from the client
4277 (process_cancel): on cancel, send REJECTED, per the spec
4278 (process_error_client): send CANCEL if we get an error from the
4281 2003-04-18 Havoc Pennington <hp@pobox.com>
4283 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4286 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4289 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4290 about DBUS_TEST_HOMEDIR once
4292 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4295 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4296 config file so we test the right thing
4298 Throughout: assorted docs improvements
4300 2003-04-18 Havoc Pennington <hp@pobox.com>
4302 * glib/dbus-gmain.c: adapt to watch changes
4304 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4306 * dbus/dbus-server.h: remove dbus_server_handle_watch
4308 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4310 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4311 like DBusTimeout, so we don't need dbus_connection_handle_watch
4314 2003-04-17 Havoc Pennington <hp@redhat.com>
4316 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4317 database usage so it all goes via the DBusUserDatabase cache.
4319 2003-04-17 Havoc Pennington <hp@redhat.com>
4321 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4322 there was an OOM watch we skipped, we always return TRUE so we
4323 iterate again to have a look at it again. Fixes test suite hang.
4324 Code rearrangement also lets us lose some memset and only iterate
4325 over callbacks once.
4327 * bus/driver.c (bus_driver_handle_message): sense of test for
4330 2003-04-16 Havoc Pennington <hp@pobox.com>
4332 * doc/dbus-specification.sgml: make spec say serials are unsigned
4334 * dbus/dbus-message.h: change message serials to unsigned
4336 * dbus/dbus-connection.c: adapt to message serials being unsigned
4338 2003-04-15 Havoc Pennington <hp@pobox.com>
4340 * bus/bus.c: create and keep around a shared DBusUserDatabase
4343 * bus/connection.c (bus_connection_get_groups): don't cache
4344 groups for user in the connection object, since user database
4345 object now does that.
4347 2003-04-16 Havoc Pennington <hp@redhat.com>
4349 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4350 list of size counters
4351 (_dbus_message_loader_putback_message_link): put back a popped link
4353 * dbus/dbus-connection.c
4354 (dbus_connection_set_max_live_messages_size): rename
4356 (dbus_connection_get_outgoing_size): get size of outgoing
4358 (_dbus_connection_set_connection_counter): remove this cruft
4360 2003-04-14 Havoc Pennington <hp@redhat.com>
4362 * dbus/dbus-userdb.c: user database abstraction, mostly to get
4363 caching, but at some point we might want to be able to use a
4366 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4367 SHA1 conf file to test the sha1 auth mechanism, since the regular
4368 test always uses EXTERNAL when available.
4371 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4372 add conf file that requires use of sha1 auth
4374 2003-04-13 Havoc Pennington <hp@pobox.com>
4376 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4377 from Philip Blundell to send messages and monitor them.
4379 2003-04-13 Havoc Pennington <hp@pobox.com>
4381 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4384 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4387 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4388 fix to only recover unused bytes if we're already authenticated
4389 (_dbus_transport_get_is_authenticated): fix to still mark us
4390 authenticated if there are unused bytes.
4392 * bus/dispatch.c: implement security policy checking
4394 * bus/connection.c (bus_transaction_send_from_driver): new
4396 * bus/bus.c (bus_context_check_security_policy): new
4398 * bus/dispatch.c (send_service_nonexistent_error): delete this,
4399 now we just set the DBusError and it gets converted to an error
4402 * bus/connection.c (allow_user_function): enable code using actual
4403 data from the config file
4405 * bus/policy.c (list_allows_user): handle wildcard rules for
4406 user/group connection perms
4408 2003-04-13 Havoc Pennington <hp@pobox.com>
4410 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4412 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4414 * bus/policy.c (bus_policy_append_mandatory_rule)
4415 (bus_policy_append_default_rule, bus_policy_append_user_rule)
4416 (bus_policy_append_group_rule): new functions
4418 2003-04-12 Havoc Pennington <hp@pobox.com>
4420 * bus/config-parser.c (bus_config_parser_new): fix a memleak
4422 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4423 the pid/gid/uid, just for paranoia.
4425 * test/break-loader.c (randomly_do_n_things): find a byte
4426 containing a type code, and randomly change it to a different
4429 2003-04-12 Havoc Pennington <hp@pobox.com>
4431 * bus/policy.h: change BusPolicy to be the thing from the config
4432 file, and rename old BusPolicy to BusClientPolicy
4434 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4435 match change in how policy works
4437 * dbus/dbus-internals.h: mark assert_not_reached as
4438 __attribute((noreturn))__
4440 2003-04-11 Havoc Pennington <hp@redhat.com>
4442 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4443 the broadcast service. Use boolean return for ServiceExists.
4445 2003-04-11 Havoc Pennington <hp@redhat.com>
4447 * configure.in: add another directory to look for qt in.
4449 2003-04-11 Havoc Pennington <hp@redhat.com>
4451 * AUTHORS: add Colin Walters
4453 2003-04-11 Havoc Pennington <hp@redhat.com>
4459 2003-04-11 Havoc Pennington <hp@redhat.com>
4461 * bus/messagebus.in: remove pid file when stopping the
4462 message bus, since the bus won't have privileges to remove it
4465 2003-04-11 Havoc Pennington <hp@redhat.com>
4467 * bus/bus.c (bus_context_new): move credentials change after
4470 2003-04-11 Havoc Pennington <hp@pobox.com>
4472 * test/decode-gcov.c: add "below average functions" to the
4473 coverage report, and change how some of the code works.
4475 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4476 not in the coverage stats.
4478 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4479 couple places so running the test suite doesn't result in megaspam.
4481 2003-04-11 Havoc Pennington <hp@pobox.com>
4483 * bus/dispatch.c (check_existent_service_activation): accept a no
4484 memory error in a place we didn't before
4486 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4487 in case the first one failed," since the test suite is less
4490 2003-04-10 Havoc Pennington <hp@pobox.com>
4492 * bus/dispatch.c (check_segfault_service_activation): add test
4493 for launching an executable that just crashes.
4495 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4496 don't leave a million cores. We'll see how portable this is.
4498 2003-04-10 Havoc Pennington <hp@pobox.com>
4500 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4501 the possible parent failures before we fork, so that we don't
4502 fail to create a babysitter after creating the child.
4504 * bus/activation.c (bus_activation_activate_service): kill child
4505 if we don't successfully complete the activation.
4507 2003-04-10 Havoc Pennington <hp@redhat.com>
4509 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4510 the connection if it's disconnected
4512 * bus/activation.c (bus_activation_service_created): use new
4513 transaction features to roll back removal of pending activation if
4514 we don't successfully create the service after all. Don't remove
4515 pending activation if the function fails.
4517 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4518 (_dbus_list_insert_after_link): new code to facilitate
4521 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4522 new functionality, so we can preallocate the ability to insert
4525 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4526 allowing us to put custom hooks in a transaction to be used for
4527 cancelling said transaction
4529 * doc/dbus-specification.sgml: add some discussion of secondary
4530 service owners, and disallow zero-length service names
4532 * bus/services.c (bus_registry_acquire_service): new function,
4533 splits out part of bus_driver_handle_acquire_service() and fixes
4534 a bug where we didn't remove the service doing the acquiring
4535 from the secondary queue if we failed to remove the current owner
4536 from the front of the queue.
4538 2003-04-10 Alexander Larsson <alexl@redhat.com>
4540 * doc/dbus-specification.sgml:
4541 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4543 2003-04-10 Alexander Larsson <alexl@redhat.com>
4548 Added files to cvsignore
4550 * dbus/dbus-message.h:
4551 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4552 Make get_named() take two out argument and return a boolean.
4553 (dbus_message_iter_get_args_valist):
4554 Update usage of get_named().
4555 (dbus_message_iter_append_byte):
4557 (dbus_message_iter_append_named)
4559 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4562 2003-04-10 Alexander Larsson <alexl@redhat.com>
4564 * dbus/dbus-marshal.[ch]:
4565 Add array_type_pos argument to _dbus_marshal_validate_arg.
4566 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4568 * dbus/dbus-message.[ch]:
4569 Multi-dimensional arrays have full type specification in the
4570 outermost array. Iter code re-arranged to handle this.
4571 Added some more iter tests.
4573 * doc/dbus-specification.sgml:
4576 Update new array encoding description.
4577 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4579 * test/data/invalid-messages/array-with-mixed-types.message:
4580 * test/data/valid-messages/array-of-array-of-uint32.message:
4581 Change to the new array format.
4583 * test/data/invalid-messages/too-short-dict.message:
4586 * test/data/valid-messages/recursive-types.message:
4587 Fix up and extend test.
4589 2003-04-10 Havoc Pennington <hp@pobox.com>
4591 * bus/dispatch.c: lots of fixes
4593 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4594 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4595 that was crack, broke the test service.
4597 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4598 handling to avoid piling up errors if we get a failure on the
4601 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4602 pid in assertion failures.
4604 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4605 to some fixed size of file descriptor array. Don't return TRUE
4606 anytime a timeout exists, that led to lots of busy loop silliness
4609 2003-04-09 Havoc Pennington <hp@redhat.com>
4611 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4612 I'd checked this in earlier but hadn't.
4614 2003-04-09 Havoc Pennington <hp@redhat.com>
4616 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4617 the activation test (man this is getting old!)
4619 2003-04-09 Havoc Pennington <hp@redhat.com>
4621 * test/test-utils.c: use dispatch status function to fix this up
4623 * bus/connection.c (connection_watch_callback): don't dispatch
4625 (connection_timeout_callback): don't dispatch from here
4626 (bus_connections_setup_connection): set the dispatch status function
4627 (bus_connection_disconnected): unset it
4629 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4630 used to add a connection to be dispatched
4631 (_dbus_loop_iterate): do the dispatching at the end of each
4634 * dbus/dbus-connection.c
4635 (dbus_connection_set_dispatch_status_function): new function
4636 allowing us to fix up main loop usage
4637 (_dbus_connection_last_unref): free all the various function
4639 (dbus_connection_dispatch): call the DispatchStatusFunction
4640 whenever this function returns
4641 (dbus_connection_handle_watch): call DispatchStatusFunction
4642 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4643 (reply_handler_timeout): call DispatchStatusFunction
4644 (dbus_connection_flush): call DispatchStatusFunction
4646 2003-04-09 Havoc Pennington <hp@redhat.com>
4648 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4651 * bus/dispatch.c (check_service_activated): fix bug in test
4653 * dbus/dbus-mainloop.c (check_timeout): fix this up
4655 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4656 verbose output so we can sort out output from different processes,
4657 e.g. in the activation case.
4659 2003-04-08 Colin Walters <walters@gnu.org>
4661 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4663 (bus_context_new): Set it.
4664 (bus_context_unref): Use it to delete the pid file.
4666 2003-04-08 Havoc Pennington <hp@redhat.com>
4668 * test/data/invalid-messages/array-with-mixed-types.message:
4669 regression test that fails for the moment
4671 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4672 tests for convenience
4674 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4675 array of nil, it broke things.
4677 * test/data/invalid-messages/array-of-nil.message: regression test
4679 * test/data/valid-messages/array-of-array-of-uint32.message:
4680 happened to write this so added it to suite
4682 2003-04-08 Havoc Pennington <hp@redhat.com>
4684 * bus/driver.c (bus_driver_handle_acquire_service): init
4685 retval/reply before checking name
4687 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4688 recursion depth argument
4690 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4691 in the public struct for future extension
4693 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4696 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4699 * doc/dbus-specification.sgml: fix typo
4701 2003-04-08 Alexander Larsson <alexl@redhat.com>
4703 Implemented recursive types, named types and new-style iters
4706 * glib/test-thread-client.c: (thread_func):
4707 * glib/test-thread-server.c: (handle_test_message):
4708 * test/test-service.c: (handle_echo):
4717 * dbus/dbus-internals.c: (_dbus_type_to_string):
4718 Update for new types.
4720 * dbus/dbus-marshal.[ch]:
4721 Implement recursive types and the new marshalling format.
4722 Remove hardcoded dict marshalling.
4723 Marshal named types.
4725 * dbus/dbus-message-builder.c:
4727 Remove references to old types
4729 * dbus/dbus-message.[ch]:
4730 New non-refcounted iter API that supports recursive iters.
4731 Use iters for appending, including support for recursive
4733 Add byte and named type support.
4734 Update everything to new marshalling formats.
4735 Add tests for new API.
4737 * dbus/dbus-protocol.h:
4738 Remove old array types.
4739 Add types: BYTE, ARRAY, DICT, NAMED
4741 * dbus/dbus-string.c:
4742 * dbus/dbus-sysdeps.c:
4743 Make parse_double locale safe.
4745 * dbus/dbus-test-main.c:
4751 * doc/dbus-specification.sgml:
4754 * test/data/incomplete-messages/missing-body.message:
4755 * test/data/invalid-messages/bad-boolean.message:
4756 * test/data/invalid-messages/bad-boolean-array.message:
4757 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4758 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4759 * test/data/invalid-messages/too-short-dict.message:
4760 * test/data/valid-messages/dict-simple.message:
4761 * test/data/valid-messages/dict.message:
4762 * test/data/valid-messages/emptiness.message:
4763 * test/data/valid-messages/lots-of-arguments.message:
4764 * test/data/valid-messages/no-padding.message:
4765 * test/data/valid-messages/recursive-types.message:
4766 Add missing NAME fields
4767 Fix up dicts & arrays
4769 * test/data/invalid-messages/dict-with-nil-value.message:
4770 Removed, this is not invalid anymore.
4772 * test/data/valid-messages/recursive-types.message:
4773 Add new test for deeply recursive types.
4775 2003-04-07 Havoc Pennington <hp@pobox.com>
4777 * bus/driver.c (bus_driver_handle_acquire_service): return an
4778 error if you try to acquire a service that starts with ':'
4780 2003-04-07 Havoc Pennington <hp@redhat.com>
4782 * doc/dbus-specification.sgml: require that base service names
4783 start with ':' and that the base service is created/deleted
4784 as first and last things a connection does on the bus
4786 * bus/dispatch.c (check_existent_service_activation): lots more
4787 work on the activation test; it doesn't fully pass yet...
4789 * test/test-service.c (main): fix so we don't memleak the
4790 connection to the message bus
4791 (filter_func): accept a message asking us to exit
4793 2003-04-06 Havoc Pennington <hp@pobox.com>
4795 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4798 * configure.in: fixes to Qt detection from Colin Walters
4800 * doc/Makefile.am: Only remove generated docbook dirs if they
4801 exist, from Colin Walters
4803 * dbus/dbus-bus.c: change how we set well-known connections to
4804 NULL, so that it works if a single connection is stored in
4805 two well-known array slots.
4807 * test/Makefile.am: remove a lot of stuff that isn't immediately
4808 useful, it's in CVS history if we want it.
4810 * test/test-service.c: use dbus-mainloop instead of that
4813 2003-04-06 Havoc Pennington <hp@pobox.com>
4815 * dbus/Makefile.am: split lists of sources into stuff that goes in
4816 the library, util functions that go in the lib and are also used
4817 elsewhere, and util functions that are used in tests/daemon but
4818 don't go in the lib.
4820 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4821 here so it can be used in test binaries also
4823 2003-04-06 Havoc Pennington <hp@pobox.com>
4825 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4826 here in the parent process, so we can return an error if it
4827 fails. Also, move some of the code into the child so the parent
4828 is less hosed if we fail midway through.
4830 * bus/bus.c (bus_context_new): move pidfile detection further up
4831 in the function, before we start overwriting sockets and such.
4833 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4835 * configure.in: add --with-system-pid-file and --with-system-socket
4837 2003-04-06 Colin Walters <walters@verbum.org>
4839 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4841 * bus/system.conf.in: Declare a pidfile.
4843 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4844 create one (if appropriate).
4846 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4847 (struct BusConfigParser) [pidfile]: New.
4848 (element_type_to_name, merge_included, start_busconfig_child)
4849 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4850 (bus_config_parser_unref): Free it.
4851 (bus_config_parser_get_pidfile): New function.
4853 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4855 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4857 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4859 * dbus/dbus-sysdeps.h: Prototype it.
4861 2003-04-06 Havoc Pennington <hp@pobox.com>
4863 * bus/bus.c (bus_context_new): print the address in here, rather
4864 than in main(), because we need to do it before forking the daemon
4866 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4867 on the service nonexistent error
4869 * bus/driver.c (bus_driver_handle_acquire_service): set the
4870 sender on the AcquireService reply
4872 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4873 server also listen on a UNIX socket so services can connect to it.
4875 2003-04-06 Havoc Pennington <hp@pobox.com>
4877 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4878 so it detects deadlocks and also we actually init threads when
4881 2003-04-06 Havoc Pennington <hp@pobox.com>
4883 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4884 save the domain socket name, and unlink it when we disconnect the
4885 server. Means that at least when we exit normally, we won't leave
4886 a bunch of junk in /tmp
4888 * dbus/dbus-transport-unix.c
4889 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4890 memory management). (I was making a real change here but then
4893 2003-04-06 Havoc Pennington <hp@pobox.com>
4895 * bus/bus.c (bus_context_new): fix wrong handling of
4896 server_data_slot_unref() in the error case.
4898 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4899 "(condition) != 0" to _dbus_real_assert so that
4900 "_dbus_assert (pointer)" doesn't cause a warning
4902 * bus/main.c (main): accept --print-address option to print out
4903 the message bus address
4905 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4907 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4908 "tmpdir" option to unix: address on client side
4910 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4913 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4914 we can use to create sockets in the test suite.
4916 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4917 cleanly. To be used for testing.
4919 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4921 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4923 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4924 handle trying to call this when there's no servers active
4926 2003-04-05 Havoc Pennington <hp@pobox.com>
4932 2003-04-05 Havoc Pennington <hp@pobox.com>
4934 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4935 crash on startup. Need to get "try starting the daemon"
4936 in the test suite I guess. ;-)
4938 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4939 tracked the number of open connections; it's better done in
4940 application-specific code as you want it to span all servers etc.
4942 2003-04-05 Havoc Pennington <hp@pobox.com>
4944 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4945 patch from Colin Walters
4947 2003-04-05 Havoc Pennington <hp@pobox.com>
4949 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4950 reality; in fact multiple mechanisms are allowed.
4952 * dbus/dbus-internals.c (_dbus_real_assert)
4953 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4954 _dbus_assert_not_reached() into functions, so that they don't show
4955 up in basic block counts for test coverage, and don't use up as
4956 much disk space. Does mean slower execution speed though, so
4957 assumes --disable-asserts is the normal production case.
4959 2003-04-05 Havoc Pennington <hp@pobox.com>
4961 * test/Makefile.am (dist-hook): also dist *.in files
4967 2003-04-05 Havoc Pennington <hp@pobox.com>
4969 * dbus/dbus-string.c: docs warning
4971 * dbus/dbus-spawn.c: missing docs
4973 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4975 2003-04-05 Havoc Pennington <hp@pobox.com>
4977 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4980 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4981 to -1 once we've reaped the babysitter
4982 (_dbus_babysitter_handle_watch): do as much work as we can, not
4985 * bus/activation.c: add code using DBusBabysitter so that we
4986 handle it when a service fails to start up properly.
4987 (bus_activation_service_created): don't remove the activation
4988 entries as we go, just let them get removed when we free the pending
4989 activation. Unref reply messages after sending them.
4991 2003-04-05 Havoc Pennington <hp@pobox.com>
4993 * test/decode-gcov.c (main): print per-directory stats in the report
4995 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4997 2003-04-05 Havoc Pennington <hp@pobox.com>
4999 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
5001 * test/decode-gcov.c: hack up a little program to suck data
5002 out of gcov files. Yes this is sort of silly.
5004 * configure.in: define something in config.h and do an
5005 AM_CONDITIONAL when gcov is enabled
5007 2003-04-04 Havoc Pennington <hp@redhat.com>
5009 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
5010 return a "babysitter" object that is used to monitor the status of
5011 the spawned process and reap it when required.
5013 * test/test-segfault.c, test/test-exit.c,
5014 test/test-sleep-forever.c: binaries that do various lame things,
5015 used in the test suite.
5017 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
5019 2003-04-03 Havoc Pennington <hp@pobox.com>
5021 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
5022 in preparation for modifying it, dbus-sysdeps is getting
5025 2003-04-03 Havoc Pennington <hp@redhat.com>
5027 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
5030 * bus/*.[hc]: adapt to mainloop change
5032 2003-04-03 Havoc Pennington <hp@redhat.com>
5034 * bus/activation.c (load_directory): fix up memleaks
5035 (bus_activation_entry_free): free the entry
5037 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
5038 we get one from the message bus; fix memleaks.
5040 * dbus/dbus-message.c (dbus_set_error_from_message): new function
5042 2003-04-03 Havoc Pennington <hp@pobox.com>
5044 * bus/config-parser.c (bus_config_parser_unref): free
5045 list of mechanisms, bug discovered by test suite enhancements
5046 (putting system.conf and session.conf into suite)
5048 * test/Makefile.am, test/test-service.c: add placeholder for a
5049 test service that we'll activate as part of test suite. Doesn't
5052 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
5053 setting NULL value, and use system malloc not dbus_malloc()
5054 when we have unavoidable memleakage.
5056 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
5057 didn't work, and support DBUS_BUS_ACTIVATION.
5059 * bus/activation.c (child_setup): pass our well-known bus type to
5062 * bus/config-parser.c: support <type> to specify well-known type
5064 * doc/dbus-specification.sgml: document the env variables to
5065 locate well-known buses and find service activator
5067 2003-04-02 Havoc Pennington <hp@redhat.com>
5069 * test/Makefile.am (all-local): add a rule to copy tests to
5070 builddir, so we can have generated tests. Use this to remove the
5071 silly hack for testing system.conf and session.conf. Will use this
5072 shortly to generate .service files pointing to test binaries.
5074 2003-04-02 Havoc Pennington <hp@redhat.com>
5076 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
5077 current alloc and needed new length, not max of the doubled
5078 allocation and needed new length. Also, when building tests,
5079 don't do the double-allocation stuff, just realloc every time.
5081 2003-04-02 Havoc Pennington <hp@redhat.com>
5083 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
5085 (_dbus_string_get_dirname): new
5086 (_dbus_sysdeps_test): new
5087 (_dbus_directory_open): include dirnames in error messages
5089 * bus/config-parser.c: interpret <include> and <includedir> and
5090 <servicedir> relative to config file location if the given
5091 filename is not absolute.
5093 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
5095 2003-04-02 Havoc Pennington <hp@redhat.com>
5097 * bus/connection.c (bus_transaction_send_error_reply): set sender
5098 service for the error, and unref the reply on success
5100 * bus/activation.c: convert to use BusTransaction so OOM can be
5102 (bus_activation_service_created): set sender of the message
5104 2003-04-01 Havoc Pennington <hp@redhat.com>
5106 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
5107 <includedir> (at least mostly)
5109 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
5110 first, then the user ID
5112 2003-04-01 Havoc Pennington <hp@pobox.com>
5114 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
5117 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
5119 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
5121 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
5122 socket 0777, and unlink any existing socket.
5124 * bus/bus.c (bus_context_new): change our UID/GID and fork if
5125 the configuration file so specifies; set up auth mechanism
5128 * bus/config-parser.c (bus_config_parser_content): add support
5129 for <fork> option and fill in code for <auth>
5131 * bus/system.conf.in: add <fork/> to default configuration,
5132 and limit auth mechanisms to EXTERNAL
5134 * doc/config-file.txt (Elements): add <fork>
5136 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
5137 (_dbus_change_identity): new function
5139 2003-03-31 Havoc Pennington <hp@redhat.com>
5141 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
5142 (_dbus_listen_unix_socket): fix off-by-one error in null
5143 termination spotted by Nalin
5145 2003-03-31 Havoc Pennington <hp@redhat.com>
5147 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
5148 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
5149 having a real home directory available.
5151 2003-03-31 Havoc Pennington <hp@redhat.com>
5153 * bus/Makefile.am (install-data-hook): create /var/run/dbus
5155 * bus/messagebus.in: add init script for Red Hat /etc/init.d
5157 * configure.in: add support for specifying a style of init script
5160 2003-03-31 Havoc Pennington <hp@redhat.com>
5162 Fix some annoying DBusString API and fix all affected code.
5164 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5166 (_dbus_string_get_data): change to return string instead of using
5168 (_dbus_string_get_const_data): ditto
5169 (_dbus_string_get_data_len): ditto
5170 (_dbus_string_get_const_data_len): ditto
5172 2003-03-31 Havoc Pennington <hp@redhat.com>
5174 * bus/main.c (main): fix up the command line arguments to be nicer
5176 2003-03-31 Havoc Pennington <hp@redhat.com>
5178 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5179 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5180 final location that lands in the config file
5182 * bus/config-loader-expat.c (bus_config_load): fix type of
5185 * doc/TODO: remove TODO item for dbus_bus_get()
5187 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5189 2003-03-31 Havoc Pennington <hp@pobox.com>
5191 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5192 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5193 argument since they are always client side
5195 * dbus/dbus-server.c (dbus_server_get_address): new function
5197 * bus/main.c (main): take the configuration file as an argument.
5199 * test/data/valid-config-files/debug-allow-all.conf: new file to
5200 use with dispatch.c tests for example
5202 * bus/test-main.c (main): require test data dir
5204 * bus/bus.c (bus_context_new): change this to take a
5205 configuration file name as argument
5207 * doc/config-file.txt (Elements): add <servicedir>
5209 * bus/system.conf, bus/session.conf: new files
5211 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5212 well-known socket if none set
5214 * configure.in: create system.conf and session.conf
5216 2003-03-30 Havoc Pennington <hp@pobox.com>
5218 * bus/config-parser.c: hacking
5220 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5221 to shut down, since it could cause weirdness with the DBusList
5224 * dbus/dbus-list.c (_dbus_list_test): add tests for the
5225 link-oriented stack routines
5226 (alloc_link): free the mempool if the first alloc from it fails
5228 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5230 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5232 (_dbus_string_skip_white): new
5234 * doc/config-file.txt (Elements): add <includedir>
5236 2003-03-28 Havoc Pennington <hp@pobox.com>
5238 * dbus/dbus-string.c (_dbus_string_copy_data_len)
5239 (_dbus_string_copy_data): new functions
5241 2003-03-28 Anders Carlsson <andersca@codefactory.se>
5243 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5247 * dbus/dbus-memory.c:
5250 2003-03-28 Havoc Pennington <hp@pobox.com>
5252 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5253 I think it may have just been superstition. Not sure.
5255 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5256 failures that were not being handled.
5258 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5260 * dbus/dbus-memory.c: add ability to set number of mallocs in a
5261 row that will fail on out-of-memory.
5263 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5264 function for testing out-of-memory handling.
5266 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5267 allocation functions, they do map exactly to the expat ones.
5269 2003-03-27 Havoc Pennington <hp@redhat.com>
5271 * bus/config-loader-libxml.c (bus_config_load): add another error
5274 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5277 Add note about automatic service activation.
5279 * doc/dbus-specification.sgml:
5280 Rename the specification and clarify a few things.
5282 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5285 * dbus/dbus-address.c:
5287 * dbus/dbus-marshal.c:
5288 * dbus/dbus-server-debug-pipe.c:
5289 * dbus/dbus-transport-unix.c:
5290 Fix documentation warnings.
5292 2003-03-26 Havoc Pennington <hp@pobox.com>
5294 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5295 after every test so it's quick and easy to see which leaked, and
5296 so we test multiple dbus_shutdown() calls
5298 * configure.in: change configure.in XML stuff to also support
5301 * config-loader-libxml.c: some hacking
5303 * config-loader-expat.c: some hacking
5305 * config-parser.c: some hacking, plus tests
5307 2003-03-25 Havoc Pennington <hp@redhat.com>
5309 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5311 * configure.in: add --with-xml option to specify XML library,
5312 right now only libxml is supported.
5314 * bus/config-loader-libxml.c, config-parser.c: sync some minor
5315 nonworking code between home and work, still just stubs
5317 2003-03-24 Havoc Pennington <hp@redhat.com>
5319 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5322 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5323 NULL argument for "message" if the error is a well-known one,
5324 fill in a generic message in this case.
5326 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5329 * bus/test.c (bus_test_flush_bus): add
5331 * bus/policy.c (bus_policy_test): test code stub
5333 2003-03-24 Havoc Pennington <hp@pobox.com>
5335 * bus/connection.c (bus_connections_setup_connection): set up
5336 the "can this user connect" function, but it always returns
5337 TRUE until we have a config file parser so we can have a config
5338 file that allows connections.
5340 2003-03-23 Havoc Pennington <hp@pobox.com>
5342 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5343 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5344 the mutex, so we can check for proper memory management
5347 * dbus/dbus-dataslot.c: remove the mutex from
5348 DBusDataSlotAllocator and lock it manually when using it,
5349 to simplify fitting it into the global slots framework.
5351 * dbus/dbus-threads.c (init_static_locks): rework how we're
5352 handling global locks so they are easily shut down.
5354 * bus/policy.c (bus_policy_append_rule): fix
5356 * bus/test-main.c (main): check for memleaks
5358 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5359 test suite check for memleaks
5361 * dbus/dbus-memory.c: add support in test mode for tracking
5362 number of outstanding blocks
5364 2003-03-23 Havoc Pennington <hp@pobox.com>
5366 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5369 * dbus/dbus-hash.h: add ULONG hash keys
5371 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5372 (_dbus_get_group_id): new function
5374 2003-03-20 Havoc Pennington <hp@redhat.com>
5376 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5378 (dbus_connection_get_unix_user): new function
5380 2003-03-20 Havoc Pennington <hp@pobox.com>
5382 * bus/connection.c (bus_connection_send_oom_error): assert that
5383 message has a sender
5384 (connection_execute_transaction): ditto
5385 (bus_connection_preallocate_oom_error): fix to set the sender, and
5386 set recipient to the destination service, not the bus driver
5388 * bus/policy.c: hacking
5390 * dbus/dbus-message.c (dbus_message_service_is): new function
5391 (dbus_message_sender_is): new
5393 2003-03-19 Havoc Pennington <hp@redhat.com>
5395 * bus/policy.c: start sketching code for policy restrictions on
5396 what connections can do.
5398 2003-03-18 Havoc Pennington <hp@redhat.com>
5400 * doc/TODO: some notes on high-level todo items. Little nitpick
5401 stuff is all in @todo, so no need to add it here.
5403 * doc/config-file.txt: some notes on how config file might look
5405 2003-03-18 Anders Carlsson <andersca@codefactory.se>
5411 2003-03-17 Havoc Pennington <hp@redhat.com>
5413 * dbus/dbus-internals.h: add gcc attributes so that
5414 our printf-style functions warn on bad arguments to
5417 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5420 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5423 2003-03-17 Havoc Pennington <hp@redhat.com>
5425 * bus/test-main.c (main): make it print something as it runs
5426 so make check doesn't look stuck
5428 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5429 from CVS, now obsolete
5431 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5433 * bus/dispatch.c: (bus_dispatch):
5434 Refetch the service name since it may have been reallocated
5435 when dbus_message_set_sender was called.
5437 * dbus/dbus-sysdeps.c: (_dbus_accept):
5438 Add address and address length variables and use them to stop
5439 valgrind from complaining.
5441 2003-03-17 Havoc Pennington <hp@pobox.com>
5443 All tests pass, no memleaks, no valgrind complaints.
5445 * bus/test.c: refcount handler_slot
5447 * bus/connection.c (bus_connections_new): refcount
5448 connection_data_slot
5450 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5451 bytes so that auth scripts pass.
5453 * bus/dispatch.c: init message_handler_slot so it gets allocated
5456 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5458 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5459 dealloc server_pipe_hash when no longer used for benefit of
5462 * dbus/dbus-auth.c (process_command): memleak fix
5464 * bus/dispatch.c (check_hello_message): memleak fix
5466 2003-03-16 Havoc Pennington <hp@pobox.com>
5468 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5470 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5472 * bus/activation.c (bus_activation_activate_service): Append
5473 the pending activation entry to the list of pending activations.
5475 2003-03-16 Havoc Pennington <hp@pobox.com>
5477 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5480 * dbus/dbus-address.c (create_entry): fix OOM handling when
5481 failing to alloc entry->method
5483 2003-03-16 Havoc Pennington <hp@pobox.com>
5485 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5488 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5489 add some missing dbus_set_result
5491 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5492 alloc the DBusMessageHandler
5494 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5495 the transport here, since we call this from the finalizer; it
5496 resulted in a double-finalize.
5498 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5499 where we tried to use transport->connection that was NULL,
5500 happened when transport was disconnected early on due to OOM
5502 * bus/*.c: adapt to handle OOM for watches/timeouts
5504 * dbus/dbus-transport-unix.c: port to handle OOM during
5507 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5508 reference to unused bytes instead of a copy
5510 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5513 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5516 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5519 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5521 * doc/dbus-specification.sgml:
5522 Document reply message for ActivateService.
5524 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5526 * bus/activation.c: (bus_pending_activation_entry_free),
5527 (bus_pending_activation_free), (bus_activation_new),
5528 (bus_activation_unref), (bus_activation_service_created),
5529 (bus_activation_activate_service):
5531 * bus/bus.c: (bus_context_new):
5532 * bus/desktop-file.c: (new_section):
5533 * bus/driver.c: (bus_driver_send_service_deleted),
5534 (bus_driver_handle_activate_service):
5535 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5537 * dbus/dbus-connection.c:
5538 (dbus_connection_send_with_reply_and_block):
5539 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5540 * dbus/dbus-protocol.h:
5541 Make activation work better. Now pending activations will be queued
5542 and the daemon won't try to activate services that are already registered.
5544 2003-03-16 Havoc Pennington <hp@pobox.com>
5546 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5549 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5550 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5552 2003-03-16 Havoc Pennington <hp@pobox.com>
5554 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5555 this. always run the test suite before commit...
5557 * bus/*: adapt to DBusConnection API changes
5559 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5560 requires renaming stuff to avoid dbus_connection_dispatch name
5563 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5566 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5567 separate from _dbus_message_loader_return_buffer()
5569 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5570 this, because it's now always broken to use; the number of
5571 messages in queue vs. the number still buffered by the message
5572 loader is undefined/meaningless. Should use
5573 dbus_connection_get_dispatch_state().
5574 (dbus_connection_dispatch): rename from
5575 dbus_connection_dispatch_message
5577 2003-03-16 Havoc Pennington <hp@pobox.com>
5579 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5582 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5584 * dbus/dbus-connection.c:
5585 (dbus_connection_send_with_reply_and_block):
5586 Decrease connection->n_incoming when removing an entry
5588 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5589 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5590 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5591 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5592 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5593 (dbus_dict_get_byte_array):
5594 Handle NULL arrays and strings. Also add support for byte arrays.
5596 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5597 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5598 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5599 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5600 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5601 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5602 * dbus/dbus-marshal.h:
5603 Add support for marshalling and demarshalling empty arrays and strings.
5605 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5606 (dbus_message_append_string_array),
5607 (dbus_message_iter_get_boolean),
5608 (dbus_message_iter_get_boolean_array),
5609 (dbus_message_iter_get_int32_array),
5610 (dbus_message_iter_get_uint32_array),
5611 (dbus_message_iter_get_double_array),
5612 (dbus_message_iter_get_byte_array),
5613 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5614 (check_message_handling):
5615 Add support for getting empty arrays and dicts.
5617 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5618 Don't do any validation at all for now, that's better than just checking
5621 * test/data/valid-messages/emptiness.message:
5622 New test message with lots of empty arrays.
5624 2003-03-16 Havoc Pennington <hp@pobox.com>
5626 * dbus/dbus-connection.c
5627 (_dbus_connection_queue_received_message_link): new function that
5628 can't fail due to OOM
5630 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5631 new function pops a message together with a list link
5634 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5635 message queuing functions to avoid needing to alloc memory
5637 2003-03-16 Havoc Pennington <hp@pobox.com>
5639 Oops - test code was only testing failure of around 30 of the
5640 mallocs in the test path, but it turns out there are 500+
5641 mallocs. I believe this was due to misguided linking setup such
5642 that there was one copy of dbus_malloc etc. in the daemon and one
5643 in the shared lib, and only daemon mallocs were tested. In any
5644 case, the test case now tests all 500+ mallocs, and doesn't pass
5645 yet, though there are lots of fixes in this patch.
5647 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5648 this so that it doesn't need to allocate memory, since it
5649 has no way of indicating failure due to OOM (and would be
5650 annoying if it did).
5652 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5654 * bus/Makefile.am: rearrange to create two self-contained
5655 libraries, to avoid having libraries with overlapping symbols.
5656 that was resulting in weirdness, e.g. I'm pretty sure there
5657 were two copies of global static variables.
5659 * dbus/dbus-internals.c: move the malloc debug stuff to
5662 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5665 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5667 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5670 * bus/dispatch.c (bus_dispatch_add_connection): free
5671 message_handler_slot when no longer using it, so
5672 memory leak checkers are happy for the test suite.
5674 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5676 * bus/bus.c (new_connection_callback): disconnect in here if
5677 bus_connections_setup_connection fails.
5679 * bus/connection.c (bus_connections_unref): fix to free the
5681 (bus_connections_setup_connection): if this fails, don't
5682 disconnect the connection, just be sure there are no side
5685 * dbus/dbus-string.c (undo_alignment): unbreak this
5687 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5689 (_dbus_auth_new): fix the order in which we free strings
5692 * bus/connection.c (bus_connection_disconnected): fix to
5693 not send ServiceDeleted multiple times in case of memory
5696 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5697 get the base service name
5698 (dbus_bus_register_client): don't return base service name,
5699 instead store it on the DBusConnection and have an accessor
5701 (dbus_bus_register_client): rename dbus_bus_register()
5703 * bus/dispatch.c (check_hello_message): verify that other
5704 connections on the bus also got the correct results, not
5705 just the one sending hello
5707 2003-03-15 Havoc Pennington <hp@pobox.com>
5709 Make it pass the Hello handling test including all OOM codepaths.
5710 Now to do other messages...
5712 * bus/services.c (bus_service_remove_owner): fix crash when
5713 removing owner from an empty list of owners
5714 (bus_registry_ensure): don't leave service in the list of
5715 a connection's owned services if we fail to put the service
5718 * bus/connection.c (bus_connection_preallocate_oom_error): set
5719 error flag on the OOM error.
5721 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5722 handle _dbus_transport_set_connection failure
5724 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5725 to create watches up front and simply enable/disable them as
5727 (unix_connection_set): this can now fail on OOM
5729 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5730 of enabling/disabling a watch or timeout.
5732 * bus/loop.c (bus_loop_iterate): don't touch disabled
5735 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5737 2003-03-15 Havoc Pennington <hp@pobox.com>
5739 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5740 write useful test code, after all that futzing around ;-)
5742 Test does not yet pass because we can't handle OOM in
5743 _dbus_transport_messages_pending (basically,
5744 dbus_connection_preallocate_send() does not prealloc the write
5745 watch). To fix this, I think we need to add new stuff to
5746 set_watch_functions, namely a SetEnabled function so we can alloc
5747 the watch earlier, then enable it later.
5749 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5750 dbus-memory.c to the convenience lib
5752 * bus/test.c: rename some static functions to keep them clearly
5753 distinct from stuff in connection.c. Handle client disconnection.
5755 2003-03-14 Havoc Pennington <hp@pobox.com>
5757 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5758 transport, tests more of the real codepath. Set up clients
5759 with bus_setup_debug_client.
5761 * bus/test.c (bus_setup_debug_client): function to set up debug
5762 "clients" on the main loop
5764 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5767 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5770 * dbus/dbus-server-debug.c: support a debug server based on pipes
5772 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5773 (_dbus_close): new function
5775 * configure.in: check for socketpair
5777 2003-03-14 Havoc Pennington <hp@redhat.com>
5779 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5782 * dbus/dbus-transport-debug.c: rework this a good bit to be
5783 less complicated. hopefully still works.
5785 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5788 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5791 * dbus/dbus-message.c (dbus_message_copy): rename from
5792 dbus_message_new_from_message, fix it up to copy
5793 all the message fields, add test case
5795 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5796 not quite passing yet
5798 2003-03-14 Havoc Pennington <hp@pobox.com>
5800 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5801 until no work remains" in test code. (the large diff here
5802 is just code movement, no actual changes)
5804 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5805 1, no point waiting around for test code.
5806 (_dbus_server_debug_accept_transport): unref the timeout
5807 after adding it (right?)
5809 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5811 2003-03-13 Havoc Pennington <hp@redhat.com>
5813 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5816 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5819 * dbus/dbus-connection.h: Make AddWatchFunction and
5820 AddTimeoutFunction return a bool so they can fail on out-of-memory
5822 * bus/bus.c (bus_context_new): set up timeout handlers
5824 * bus/connection.c (bus_connections_setup_connection): set up
5827 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5830 * bus/bus.c (bus_context_new): adapt to changes
5832 * bus/connection.c: adapt to changes
5834 * test/watch.c: adapt to DBusWatch changes
5836 * bus/dispatch.c (bus_dispatch_test): started adding this but
5839 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5841 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5843 2003-03-13 Havoc Pennington <hp@pobox.com>
5845 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5846 set up a test framework as for the library
5848 2003-03-12 Havoc Pennington <hp@pobox.com>
5850 Throughout: purge global variables, introduce BusActivation,
5851 BusConnections, BusRegistry, etc. objects instead.
5853 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5856 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5857 going to redo this a bit differently I think
5859 2003-03-12 Havoc Pennington <hp@redhat.com>
5861 Mega-patch that gets the message bus daemon initially handling
5862 out-of-memory. Work still needed. Also lots of random
5863 moving stuff to DBusError instead of ResultCode.
5865 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5867 * dbus/dbus-connection.c
5868 (dbus_connection_send_with_reply_and_block): use DBusError
5870 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5873 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5874 code here, as the only failure possible is OOM.
5876 * bus/connection.c (bus_connection_disconnect):
5877 rename bus_connection_disconnected as it's a notification only
5879 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5880 "name" on get_args failure, should be done by get_args;
5881 don't disconnect client for bad args, just return an error.
5882 (bus_driver_handle_service_exists): ditto
5884 * bus/services.c (bus_services_list): NULL-terminate returned array
5886 * bus/driver.c (bus_driver_send_service_lost)
5887 (bus_driver_send_service_acquired): send messages from driver to a
5888 specific client to the client's unique name, not to the broadcast
5891 * dbus/dbus-message.c (decode_header_data): reject messages that
5892 contain no name field
5893 (_dbus_message_get_client_serial): rename to
5894 dbus_message_get_serial and make public
5895 (_dbus_message_set_serial): rename from set_client_serial
5896 (_dbus_message_set_reply_serial): make public
5897 (_dbus_message_get_reply_serial): make public
5899 * bus/connection.c (bus_connection_foreach): allow stopping
5900 iteration by returning FALSE from foreach function.
5902 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5903 (dbus_connection_free_preallocated_send)
5904 (dbus_connection_preallocate_send): new API for sending a message
5905 without possibility of malloc failure.
5906 (dbus_connection_send_message): rename to just
5907 dbus_connection_send (and same for whole function family)
5909 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5911 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5913 * bus/activation.c: handle/return errors
5915 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5917 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5918 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5919 (_dbus_result_from_errno): move to this file
5921 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5923 * dbus/dbus-marshal.c:
5924 (_dbus_marshal_set_string):
5925 Take a length argument so we can marshal the correct string
5928 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5929 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5930 (_dbus_marshal_test):
5931 * dbus/dbus-marshal.h:
5932 Add support for marshalling and demarshalling dicts.
5934 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5935 Add support for TYPE DICT.
5937 * dbus/dbus-message.c: (set_string_field):
5938 Adjust header padding.
5940 (dbus_message_append_args_valist), (dbus_message_append_dict),
5941 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5942 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5943 (check_message_handling), (check_have_valid_message):
5944 * dbus/dbus-message.h:
5945 Add functions for setting and getting dicts.
5947 * dbus/dbus-protocol.h:
5953 * doc/dbus-specification.sgml:
5954 Add information about how dicts are marshalled.
5956 * test/data/invalid-messages/dict-with-nil-value.message:
5957 * test/data/invalid-messages/too-short-dict.message:
5958 * test/data/valid-messages/dict-simple.message:
5959 * test/data/valid-messages/dict.message:
5960 Add sample messages containing dicts.
5962 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5964 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5966 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5969 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5970 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5971 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5972 (dbus_dict_set_double), (dbus_dict_set_string),
5973 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5974 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5975 (dbus_dict_set_string_array), (_dbus_dict_test):
5977 Fix according to comments from Havoc.
5979 2003-03-06 Michael Meeks <michael@server.home>
5981 * configure.in: if we don't have kde-config, disable have_qt.
5983 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5988 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5989 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5990 (dbus_dict_remove), (dbus_dict_get_value_type),
5991 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5992 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5993 (dbus_dict_put_double), (dbus_dict_put_string),
5994 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5995 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5996 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5997 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5998 (dbus_dict_get_double), (dbus_dict_get_string),
5999 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
6000 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
6001 (dbus_dict_get_string_array), (_dbus_dict_test):
6003 Add DBusDict implementation
6005 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
6009 2003-03-04 Havoc Pennington <hp@pobox.com>
6011 * test/data/auth/*: adapt to changes
6013 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
6014 USERID_BASE64 and change USERNAME_BASE64 to put in username not
6017 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
6018 more stuff from being in a context name, to make the protocol
6019 simpler to deal with
6021 * dbus/dbus-errors.c (dbus_error_has_name): new function
6022 (dbus_error_is_set): new function
6024 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
6025 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
6027 * dbus/dbus-connection.c (dbus_connection_flush): also read
6028 messages during a flush operation
6030 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
6032 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6034 * configure.in: Check for gethostbyname on Solaris.
6036 * dbus/dbus-transport.c: (_dbus_transport_open):
6037 Remove duplicate "tcp" entry.
6039 * doc/dbus-specification.sgml:
6040 Clarify some things.
6042 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6044 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
6045 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
6046 (_dbus_keyring_test):
6047 * dbus/dbus-md5.c: (_dbus_md5_compute):
6048 * dbus/dbus-sha.c: (_dbus_sha_compute):
6051 2003-03-05 Anders Carlsson <andersca@codefactory.se>
6053 * README: Add some things.
6055 2003-03-04 Anders Carlsson <andersca@codefactory.se>
6057 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
6058 after case DBUS_TYPE_BOOELAN.
6060 2003-03-02 Havoc Pennington <hp@pobox.com>
6062 * test/break-loader.c (randomly_set_extreme_ints): add test that
6063 sets really huge and small integers
6065 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
6066 that length of boolean array fits in the string, and that
6067 string has room for boolean value in single-bool case.
6069 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
6070 optional value to "ALIGN" command which is what to fill the
6073 * test/data/valid-messages/no-padding.message: add regression
6074 test for the message padding problem
6076 2003-03-02 Havoc Pennington <hp@pobox.com>
6078 * dbus/dbus-message.c (decode_header_data): fix to always init
6079 message_padding, from Benjamin Dauvergne
6081 2003-03-02 Havoc Pennington <hp@pobox.com>
6087 2003-03-01 Joe Shaw <joe@assbarn.com>
6089 * configure.in: Check for "struct cmsgcred" and try to access its
6090 members for BSD-like unices.
6092 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
6093 _dbus_read_credentials_unix_socket().
6094 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
6095 read() for reading the credential byte off the unix socket. Use
6096 struct cmsgcred on systems that support it.
6098 2003-02-27 Alexander Larsson <alexl@redhat.com>
6102 Make gthreads-2.0 dependency optional. Don't build thread test if
6105 2003-02-27 Havoc Pennington <hp@pobox.com>
6107 * dbus/dbus-connection.c
6108 (dbus_connection_send_message_with_reply_and_block): fix doh!
6109 doh! doh! bug that resulted in never removing a reply from the
6110 queue, no wonder we called get_reply_serial so much ;-)
6112 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
6113 and client serial instead of demarshaling them every time
6115 2003-02-27 Havoc Pennington <hp@pobox.com>
6117 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
6118 more inlined, using dbus-string-private.h, speeds things up
6121 * dbus/dbus-string.c (_dbus_string_free): apply align offset
6122 when freeing the string
6123 (_dbus_string_steal_data): fix for align offset
6124 (undo_alignment): new function
6126 2003-02-26 Havoc Pennington <hp@redhat.com>
6128 All kinds of audit fixes from Owen, plus initial attempt to
6129 handle unaligned memory returned from malloc.
6131 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
6132 leave room for align_offset and nul byte
6133 (fixup_alignment): function to track an align_offset and
6134 ensure real->str is aligned
6135 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
6136 to allow a nul byte plus align offset
6137 (_dbus_string_lock): fix overflow issue
6138 (_dbus_string_init_const_len): add assertions on sanity of len,
6139 assign allocated to be ALLOCATION_PADDING larger than len
6140 (set_length): fixup the overflow handling
6141 (_dbus_string_get_data_len): fix overflow in assertion
6142 (open_gap): detect overflow in size of gap to be opened
6143 (_dbus_string_lengthen): add overflow check
6144 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
6145 (_dbus_string_append): add overflow check
6146 (_dbus_string_append_unichar): overflow
6147 (_dbus_string_delete): fix overflow in assertion
6148 (_dbus_string_copy_len): overflow in assertion
6149 (_dbus_string_replace_len): overflows in assertions
6150 (_dbus_string_find): change to implement in terms of
6151 _dbus_string_find_to
6152 (_dbus_string_find_to): assorted fixage
6153 (_dbus_string_equal_c_str): assert c_str != NULL,
6154 fix logic so the function works
6155 (_dbus_string_ends_with_c_str): fix overflow thingy
6156 (_dbus_string_base64_encode): overflow fix
6157 (_dbus_string_validate_ascii): overflow
6158 (_dbus_string_validate_nul): overflow
6160 2003-02-26 Havoc Pennington <hp@redhat.com>
6162 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6164 2003-02-26 Alexander Larsson <alexl@redhat.com>
6167 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6169 * dbus/dbus-connection.c:
6170 * dbus/dbus-connection.h:
6171 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6172 Add dbus_connection_set_wakeup_main_function and use it when queueing
6173 incoming and outgoing messages.
6176 * dbus/dbus-dataslot.c:
6177 Threadsafe usage of DBusDataSlotAllocator
6179 * dbus/dbus-message.c: (dbus_message_get_args_iter):
6182 * dbus/dbus-server-unix.c:
6185 * glib/dbus-gmain.c:
6186 Implement the new wakeup functions for glib.
6189 * glib/test-thread-client.c:
6190 * glib/test-thread-server.c:
6191 * glib/test-thread.h:
6192 Initial cut at some thread test code. Not really done yet.
6194 2003-02-26 Havoc Pennington <hp@pobox.com>
6196 * dbus/dbus-connection.c
6197 (dbus_connection_send_message_with_reply_and_block): fix crash
6198 where we ref'd the outgoing message instead of the returned reply
6200 * dbus/dbus-transport-unix.c (do_authentication): check read watch
6201 at the end of this function, so if we didn't need to read for
6202 authentication, we reinstall it for receiving messages
6204 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6205 a NULL sender for peer-to-peer case
6207 * dbus/dbus-transport-unix.c (check_read_watch): handle
6208 !authenticated case correctly
6210 * glib/dbus-gmain.c: add support for DBusServer
6212 * dbus/dbus-server.c: add data slot support
6214 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6215 return values and handle errors
6217 * dbus/dbus-dataslot.c: factor out the data slot stuff from
6220 * Doxyfile.in (INPUT): add glib subdir
6222 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6223 setup_with_g_main instead of hookup_with_g_main; write docs
6225 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6227 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6228 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6229 * dbus/dbus-message.c: (dbus_message_append_boolean),
6230 (dbus_message_append_boolean_array),
6231 (dbus_message_get_args_valist), (_dbus_message_test):
6232 * dbus/dbus-message.h:
6233 * doc/dbus-specification.sgml:
6234 Various fixes as pointed out by Havoc.
6236 * test/data/invalid-messages/bad-boolean-array.message:
6237 * test/data/invalid-messages/bad-boolean.message:
6238 Add invalid boolean value test cases.
6240 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6242 * dbus/dbus-internals.c: (_dbus_type_to_string):
6243 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6244 (_dbus_marshal_validate_arg):
6245 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6246 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6247 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6248 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6249 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6250 (dbus_message_iter_get_double),
6251 (dbus_message_iter_get_boolean_array), (message_iter_test):
6252 * dbus/dbus-message.h:
6253 * dbus/dbus-protocol.h:
6254 * doc/dbus-specification.sgml:
6255 * test/data/valid-messages/lots-of-arguments.message:
6256 Add support for boolean and boolean array types.
6258 2003-02-23 Havoc Pennington <hp@pobox.com>
6260 * dbus/dbus-keyring.c: finish most of this implementation and
6263 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6264 these barf if the error isn't cleared to NULL
6266 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6267 (_dbus_create_directory): new function
6269 * dbus/dbus-errors.c (dbus_set_error): fix warning
6271 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6272 (_dbus_string_hex_decode): new function
6273 (test_hex_roundtrip): test code
6275 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6277 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6279 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6280 the save-to-temp/rename trick to atomically write the new file
6281 (_dbus_string_parse_uint): new function
6283 2003-02-22 Havoc Pennington <hp@pobox.com>
6285 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6287 2003-02-22 Havoc Pennington <hp@pobox.com>
6289 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6290 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6292 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6294 * dbus/test/data/sha-1: add US government test suite for SHA-1
6296 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6298 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6299 Make string arrays NULL-terminated.
6301 * dbus/dbus-memory.c: (dbus_free_string_array):
6302 * dbus/dbus-memory.h:
6303 New function for freeing NULL-terminated string arrays.
6305 * dbus/dbus-message-builder.c: (append_quoted_string),
6306 (_dbus_message_data_load):
6307 Add support for array types.
6309 * dbus/dbus-message.c: (check_message_handling):
6310 Add more types as test cases.
6312 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6313 (_dbus_string_parse_double):
6314 Add the start offset to the end offset.
6316 * test/data/valid-messages/lots-of-arguments.message:
6317 New test message with lots of arguments.
6319 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6321 * dbus/dbus-message.c: (dbus_message_append_nil),
6322 (dbus_message_append_int32), (dbus_message_append_uint32),
6323 (dbus_message_append_double), (dbus_message_append_string),
6324 (dbus_message_append_int32_array),
6325 (dbus_message_append_uint32_array),
6326 (dbus_message_append_double_array),
6327 (dbus_message_append_byte_array),
6328 (dbus_message_append_string_array):
6329 Fix all out-of-memory handling in these functions.
6331 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6333 * dbus/dbus-message.c: (dbus_message_append_nil):
6336 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6338 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6339 (dbus_message_append_nil), (dbus_message_append_int32_array),
6340 (dbus_message_append_uint32_array),
6341 (dbus_message_append_double_array),
6342 (dbus_message_append_byte_array),
6343 (dbus_message_append_string_array), (dbus_message_get_args_valist),
6344 (dbus_message_iter_get_int32_array),
6345 (dbus_message_iter_get_uint32_array),
6346 (dbus_message_iter_get_double_array),
6347 (dbus_message_iter_get_byte_array),
6348 (dbus_message_iter_get_string_array):
6350 * dbus/dbus-message.h:
6351 Add functions for appending and getting arrays.
6353 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6355 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6356 element size at least 8 bytes, fixes mempool tests on
6359 2003-02-20 Alexander Larsson <alexl@redhat.com>
6361 * dbus/dbus-transport-unix.c (unix_do_iteration):
6362 Unlock the connection mutex during a blocking select call.
6363 Add todo about how we need a way to wake up the select.
6365 * dbus/dbus-connection-internal.h:
6366 * dbus/dbus-connection.c:
6367 Add _dbus_connection_lock and _dbus_connection_unlock.
6369 2003-02-19 Havoc Pennington <hp@pobox.com>
6371 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6372 Doxyfile.in, not Doxyfile
6374 * dbus/dbus-keyring.c: do some hacking on this
6376 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6378 * dbus/dbus-errors.c (dbus_set_error_const): do not call
6380 (dbus_set_error): remove dbus_error_init, check for message ==
6381 NULL *before* we sprintf into it, and add @todo about including
6382 system headers in this file
6384 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6386 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6388 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6389 get various bits of user information based on either username
6391 (_dbus_homedir_from_username): new function
6393 2003-02-19 Anders Carlsson <andersca@codefactory.se>
6396 Add check for nonposix getpwnam_r
6398 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6399 Align the pool element size to a sizeof (void *) boundary.
6401 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6402 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6403 General Solaris fixes.
6405 * test/data/valid-messages/simplest-manual.message:
6406 Explicitly state that we want little-endian packing.
6408 2003-02-19 Mikael Hallendal <micke@codefactory.se>
6410 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6412 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6413 Added to create a transport connecting using a tcp/ip socket.
6415 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6416 to a tcp socket at given host and port.
6417 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6420 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6422 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6423 Added to create a server listening on a TCP/IP socket.
6425 2003-02-19 Havoc Pennington <hp@pobox.com>
6427 Throughout: mop up all the Doxygen warnings and undocumented
6430 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6431 to search any paths.
6433 * dbus/dbus-threads.c: move global mutex initializers to
6434 dbus-internals.h, multiple prototypes was confusing doxygen
6435 besides being kind of ugly
6437 * Doxyfile (PREDEFINED): have Doxygen define
6438 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6439 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6440 (do not abuse the feature! it's for stuff like the autogenerated
6441 macros in dbus-md5.c, not just for things you don't feel like
6444 2003-02-18 Havoc Pennington <hp@pobox.com>
6446 * dbus/dbus-string.c (_dbus_string_zero): new function
6448 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6449 wrap it in some dbus-friendly API
6451 * dbus/dbus-types.h: add 16-bit types
6453 2003-02-18 Joe Shaw <joe@assbarn.com>
6455 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6456 credentials from our currently running process.
6457 (get_word): Fix a buglet where we were copying the entire length
6458 instead of relative to our position.
6460 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6461 keys on the stack... it's 640k of data.
6463 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6464 read the credentials byte off the socket, even if we don't have
6466 (_dbus_poll): Implement poll() using select() for systems which
6469 * glib/test-dbus-glib.c (main): Print out an error if no
6470 parameters are given.
6472 * test/data/auth/fallback.auth-script: Added. Tests that a client
6473 can fallback to a secondary auth mechanism if the first fails.
6475 2003-02-18 Havoc Pennington <hp@pobox.com>
6479 2003-02-17 Havoc Pennington <hp@pobox.com>
6481 * doc/dbus-specification.sgml: lots of cosmetic
6482 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6483 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6484 s/server/bus/ (except in authentication section). Add a section
6485 "Message Bus Message Routing"
6487 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6493 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6495 * doc/dbus-specification.sgml:
6496 Specification updates.
6498 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6500 * bus/activation.c: (bus_activation_init), (child_setup),
6501 (bus_activation_activate_service):
6503 * bus/main.c: (main):
6504 Set DBUS_ADDRESS environment variable.
6506 * dbus/dbus-errors.c: (dbus_set_error):
6507 Don't use va_copy since that's a C99 feature.
6509 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6510 (_dbus_spawn_async):
6511 * dbus/dbus-sysdeps.h:
6512 Add child_setup_func to _dbus_spawn_async.
6514 * doc/dbus-specification.sgml:
6515 Update specification.
6517 * test/spawn-test.c: (setup_func), (main):
6520 2003-02-17 Alexander Larsson <alexl@redhat.com>
6522 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6525 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6529 * doc/dbus-test-plan.sgml:
6530 Add test plan document.
6535 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6537 * dbus/dbus-message.c: (decode_header_data),
6538 (_dbus_message_loader_return_buffer):
6539 Set the header padding amount when loading a message.
6541 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6543 * bus/dispatch.c: (send_one_message):
6544 Only send broadcast messages to registered connections.
6546 * dbus/dbus-message.c: (dbus_message_name_is):
6547 * dbus/dbus-message.h:
6548 New convenience function.
6550 * dbus/dbus-transport-debug.c: (do_reading):
6551 Only dispatch one message per run.
6554 * test/bus-test.c: (new_connection_callback), (die),
6555 (test_hello_client1_handler), (test_hello_client2_handler),
6556 (test_hello_replies), (main):
6558 * test/bus-test-loop.[ch]:
6561 2003-02-16 Havoc Pennington <hp@pobox.com>
6563 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6564 backward conditional
6566 2003-02-16 Alexander Larsson <alexl@redhat.com>
6568 * dbus/dbus-connection.c:
6569 Implement sent_message_with_reply. (with_reply_and block is still
6571 Made dispatch_message not lose message if OOM.
6573 * dbus/dbus-errors.h:
6574 Add NoReply error (for reply timeouts).
6576 2003-02-16 Alexander Larsson <alexl@redhat.com>
6578 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6579 Actually free keys and values when destroying hashtable.
6581 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6583 * dbus/dbus-auth.c: (client_try_next_mechanism):
6586 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6587 Return TRUE if there's no thread implementation around.
6589 * glib/dbus-gmain.c: (free_source),
6590 (dbus_connection_hookup_with_g_main):
6591 Make sure to remove the GSource when the connection is finalized.
6593 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6595 * bus/dispatch.c: (bus_dispatch_message_handler):
6596 * dbus/dbus-errors.h:
6597 Return an error if someone tries to send a message to a service
6600 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6602 * bus/activation.c: (load_directory), (bus_activation_init),
6603 (bus_activation_activate_service):
6606 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6607 More work on the activation handling.
6609 * dbus/dbus-errors.h:
6610 Add some error messages
6612 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6613 * dbus/dbus-message.h:
6614 New function that creates an error message.
6616 * dbus/dbus-protocol.h:
6617 Add ACTIVATE_SERVER message.
6619 * dbus/dbus-server-unix.c: (unix_handle_watch),
6620 (_dbus_server_new_for_domain_socket):
6621 Call _dbus_fd_set_close_on_exec.
6623 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6624 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6625 (_dbus_fd_set_close_on_exec):
6626 * dbus/dbus-sysdeps.h:
6627 Add _dbus_fd_set_close_on exec function. Also add function that checks
6628 that all open fds are set to close-on-exec and warns otherwise.
6630 * dbus/dbus-transport-unix.c:
6631 (_dbus_transport_new_for_domain_socket):
6632 Call _dbus_fd_set_close_on_exec.
6634 2003-02-16 Havoc Pennington <hp@pobox.com>
6636 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6637 allow people to avoid setting SIGPIPE to SIG_IGN
6638 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6639 we've been asked not to
6641 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6643 * dbus/dbus-list.c: (_dbus_list_append_link),
6644 (_dbus_list_prepend_link):
6645 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6649 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6652 * bus/activation.c: (bus_activation_entry_free),
6653 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6655 * bus/main.c: (main):
6656 Add simple activation support, doesn't work yet though.
6658 2003-02-15 Zack Rusin <zack@kde.org>
6660 * qt/dbus-qthread.cpp: small casting fix
6662 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6664 * dbus/dbus-errors.c: (dbus_set_error):
6665 * dbus/dbus-errors.h:
6666 Add a few errors and make dbus_set_error void.
6668 * dbus/dbus-sysdeps.c:
6669 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6670 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6671 * dbus/dbus-sysdeps.h:
6672 Add _dbus_spawn_async.
6674 * test/spawn-test.c: (main):
6675 Test for _dbus_spawn_async.
6677 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6679 * dbus/dbus-internals.h:
6680 Fix build without tests.
6682 * dbus/dbus-list.c: (alloc_link):
6683 Fix a segfault when a malloc fails.
6685 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6686 (dbus_malloc0), (dbus_realloc):
6687 Add support for malloc debugging.
6689 2003-02-15 Alexander Larsson <alexl@redhat.com>
6691 * dbus/dbus-threads.c:
6692 * dbus/dbus-threads.h:
6693 Add condvars. Remove static mutext from API.
6694 Implement static mutexes by initializing them from threads_init.
6696 * glib/dbus-gthread.c:
6697 * qt/dbus-qthread.cpp:
6698 Update with the thread api changes.
6703 Turn StaticMutex into normal mutex + init function.
6704 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6705 _dbus_list_append_link, _dbus_list_prepend_link
6708 * dbus/dbus-sysdeps.c:
6709 * dbus/dbus-sysdeps.h:
6710 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6711 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6713 * dbus/dbus-protocol.h:
6714 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6716 * dbus/dbus-message.c:
6717 Make ref/unref atomic.
6720 * dbus/dbus-connection-internal.h:
6721 * dbus/dbus-connection.c:
6722 * dbus/dbus-connection.h:
6724 Change _peek to _borrow,_return & _steal_borrowed.
6725 Change disconnect callback to event.
6726 Make dbus_connection_dispatch_messages reentrant.
6728 * dbus/dbus-transport.c:
6729 Don't ref the connection on calls to the transport
6732 * dbus/dbus-message-handler.c:
6735 * glib/dbus-gmain.c:
6736 Don't use peek_message anymore
6739 * test/debug-thread.c:
6740 * test/debug-thread.h:
6741 Simple thread implementation that asserts() on deadlocks in
6742 single-threaded code.
6745 (main) Call debug_threads_init.
6748 Use disconnect message instead of disconnect callback.
6752 Don't call dbus_connection_set_disconnect_function. Instead export
6753 bus_connection_disconnect.
6756 Call bus_connection_disconnect when we get a disconnected message.
6758 2003-02-15 Havoc Pennington <hp@pobox.com>
6760 * dbus/dbus-message.c (dbus_message_new): fool around with the
6763 2003-02-14 Havoc Pennington <hp@pobox.com>
6765 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6767 * dbus/dbus-memory.c: fail if the debug functions indicate we
6770 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6771 (_dbus_decrement_fail_alloc_counter): debug functions to
6772 simulate memory allocation failures
6774 2003-02-14 Havoc Pennington <hp@pobox.com>
6776 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6779 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6781 * bus/driver.c: (bus_driver_handle_hello):
6783 * bus/services.c: (bus_service_lookup):
6784 Reorder message sending so we get a more sane order.
6786 * test/bus-test.c: (message_handler):
6789 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6791 * bus/driver.c: (bus_driver_send_service_deleted),
6792 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6793 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6794 (bus_driver_send_welcome_message),
6795 (bus_driver_handle_list_services),
6796 (bus_driver_handle_acquire_service),
6797 (bus_driver_handle_service_exists):
6798 * dbus/dbus-bus.c: (dbus_bus_register_client),
6799 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6800 * dbus/dbus-errors.c: (dbus_result_to_string):
6801 * dbus/dbus-errors.h:
6802 * dbus/dbus-message.c: (dbus_message_append_args),
6803 (dbus_message_append_args_valist), (dbus_message_get_args),
6804 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6805 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6806 (dbus_message_iter_get_byte_array),
6807 (dbus_message_iter_get_string_array), (message_iter_test),
6808 (check_message_handling), (_dbus_message_test):
6809 * dbus/dbus-message.h:
6810 * test/bus-test.c: (main):
6811 Change fields to arguments in messages, so that they won't be
6812 confused with header fields.
6814 * glib/test-dbus-glib.c: (main):
6815 Remove append_fields from hello message.
6817 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6819 * dbus/dbus-errors.c:
6820 * dbus/dbus-message.c:
6821 * dbus/dbus-string.c:
6822 Documentation fixes.
6824 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6826 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6828 Implement support for timeouts in dbus-glib.
6830 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6832 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6833 * dbus/dbus-message.c: (process_test_subdir):
6834 * test/break-loader.c: (find_breaks_based_on):
6835 Plug some memory leaks.
6837 2003-02-13 Richard Hult <rhult@codefactory.se>
6839 * bus/main.c: Fix build.
6841 * dbus/dbus-errors.h:
6842 * dbus/dbus-errors.c: Fix copyright for Anders.
6844 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6849 * bus/connection.c: (bus_connection_foreach):
6852 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6853 (unescape_string), (new_section), (parse_section_start),
6854 (parse_key_value), (report_error), (bus_desktop_file_load),
6855 (bus_desktop_file_get_string):
6856 * bus/desktop-file.h:
6857 Use DBusError for error reporting.
6859 * bus/dispatch.c: (send_one_message),
6860 (bus_dispatch_message_handler):
6861 * bus/driver.c: (bus_driver_send_service_deleted),
6862 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6863 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6864 (bus_driver_send_welcome_message),
6865 (bus_driver_handle_list_services),
6866 (bus_driver_handle_acquire_service),
6867 (bus_driver_handle_service_exists):
6868 * bus/loop.c: (bus_loop_run):
6870 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6872 * bus/utils.c: (bus_wait_for_memory):
6874 New files with general utility functions.
6876 * dbus/dbus-internals.h:
6877 Remove _DBUS_HANDLE_OOM.
6879 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6881 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6882 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6883 * dbus/dbus-errors.h:
6884 Add DBusError structure.
6886 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6888 * test/data/valid-messages/standard-acquire-service.message:
6889 * test/data/valid-messages/standard-hello.message:
6890 * test/data/valid-messages/standard-list-services.message:
6891 * test/data/valid-messages/standard-service-exists.message:
6892 Add some standard messages.
6894 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6896 * bus/driver.c: (bus_driver_send_welcome_message),
6897 (bus_driver_handle_list_services),
6898 (bus_driver_handle_acquire_service),
6899 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6900 Update for API changes in libdbus.
6902 * dbus/dbus-message.c: (dbus_message_new_reply):
6903 * dbus/dbus-message.h:
6904 Remove the name argument. The spec states that replies shouldn't
6907 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6909 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6910 (report_error), (bus_desktop_file_load), (lookup_section),
6911 (lookup_line), (bus_desktop_file_get_raw),
6912 (bus_desktop_file_get_string):
6913 * bus/desktop-file.h:
6914 Some fixes, and new functions for getting a key value from a section.
6916 2003-02-13 Havoc Pennington <hp@pobox.com>
6918 * test/data/auth/fail-after-n-attempts.auth-script: new test
6920 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6923 2003-02-13 Havoc Pennington <hp@pobox.com>
6925 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6926 dbus_credentials_match were backward
6928 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6929 NO_CREDENTIALS and ROOT_CREDENTIALS
6931 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6932 into here. Never process more commands after we've reached an
6933 end state; store further data as unused bytes.
6935 * test/data/auth/*: add more auth tests
6937 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6938 command to match exact string and EXPECT_UNUSED to match unused
6941 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6943 2003-02-12 Havoc Pennington <hp@pobox.com>
6945 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6946 \r off of popped lines
6948 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6951 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6954 2003-02-12 Havoc Pennington <hp@pobox.com>
6956 * dbus/Makefile.am: remove break-loader from the build, since it
6959 * configure.in: add --enable-gcov to turn on coverage profiling
6960 flags and disable optimization
6962 2003-02-10 Havoc Pennington <hp@pobox.com>
6964 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6965 initial cut at test framework for DBusAuth from laptop.
6966 Doesn't quite work yet but it compiles and I need to get
6967 it off the 266mhz laptop. ;-)
6969 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6970 fix a memleak in error case
6972 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6975 * bus/desktop-file.c:
6976 * bus/desktop-file.h:
6977 Add a desktop file parser.
6979 2003-02-11 Zack Rusin <zack@kde.org>
6981 * qt/message.[h|cpp]: sample implementation
6982 of the KDE wrapper for DBusMessage
6984 2003-02-09 Zack Rusin <zack@kde.org>
6986 * test/bus-test.c: make_it_compile
6987 * doc/dbus-specification.sgml: minimal semantic fix
6989 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6995 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6998 * dbus/dbus-break-loader.c:
7000 * test/break-loader.c:
7001 Move dbus-break-loader to test/ and rename it to break-loader.
7003 2003-02-02 Havoc Pennington <hp@pobox.com>
7005 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
7006 for code to manage cookies in your home directory
7008 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
7010 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
7011 to authenticate, then disconnect the client.
7013 2003-02-03 Alexander Larsson <alexl@redhat.com>
7015 * dbus/dbus-message.c (dbus_message_append_fields):
7018 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7020 * doc/dbus-specification.sgml:
7021 Update address format section.
7023 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7026 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
7027 (message_handler), (new_connection_callback), (loop_quit),
7031 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7033 * bus/driver.c: (bus_driver_handle_service_exists):
7034 Simplify the code a bit.
7036 * dbus/dbus-bus.c: (dbus_bus_service_exists):
7039 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7042 Add libdbus-daemon.la and link to it.
7044 2003-02-01 James Willcox <jwillcox@gnome.org>
7046 * bus/driver.c: (bus_driver_handle_own_service):
7047 Actually include the service reply code in the message.
7049 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7051 * bus/driver.c: (bus_driver_handle_service_exists):
7052 Don't unref the incoming message.
7054 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7056 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
7058 2003-02-02 Anders Carlsson <andersca@codefactory.se>
7060 * dbus/dbus-server.c: (dbus_server_listen):
7061 * dbus/dbus-transport.c: (_dbus_transport_open):
7062 ifdef out the calls to the debug transport and server.
7064 2003-02-02 Alexander Larsson <alexl@redhat.com>
7066 * dbus/dbus-watch.c (dbus_watch_get_flags):
7067 Add note in the docs that ERROR or HANGUP won't be returned
7068 and are assumed always on.
7070 * glib/dbus-gmain.c (add_watch):
7071 Always add IO_ERR | IO_HUP
7073 * dbus/dbus-message.h:
7074 Add semicolon after dbus_message_iter_get_string_array().
7075 Makes qt code build again
7077 2003-02-01 Anders Carlsson <andersca@codefactory.se>
7079 * bus/driver.c: (create_unique_client_name),
7080 (bus_driver_handle_hello):
7081 Don't take a name, just use a numeric id to identify
7085 * dbus/dbus-bus.c: (dbus_bus_register_client),
7086 (dbus_bus_acquire_service), (dbus_bus_service_exists):
7088 Add new convenience functions for communicating with the bus.
7090 * dbus/dbus-message.h:
7092 * dbus/dbus-protocol.h:
7095 2003-02-01 Alexander Larsson <alexl@redhat.com>
7097 * dbus/dbus-message.c (dbus_message_append_fields):
7098 Add some more doc comments.
7100 2003-02-01 Havoc Pennington <hp@pobox.com>
7102 * dbus/dbus-break-loader.c (randomly_modify_length): change
7103 a 4-byte value in the message as if it were a length
7105 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
7106 execute bit on saved files
7108 2003-02-01 Havoc Pennington <hp@pobox.com>
7110 * dbus/dbus-break-loader.c (main): new program to find messages
7111 that break the loader.
7113 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
7114 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
7116 * dbus/dbus-string.c (_dbus_string_set_byte): new
7118 2003-01-31 Havoc Pennington <hp@pobox.com>
7120 * dbus/dbus-message.c: refactor the test code to be more general,
7121 in preparation for writing a "randomly permute test cases to
7122 try to break the loader" program.
7124 2003-01-31 Havoc Pennington <hp@pobox.com>
7126 * doc/dbus-specification.sgml: work on the specification
7128 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
7129 the protocol version of the message.
7131 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
7132 no longer specifies that.
7133 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
7136 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
7137 "break" for DBUS_TYPE_NIL, remove @todo
7139 2003-01-31 Havoc Pennington <hp@pobox.com>
7141 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
7142 just set_is_error/get_is_error as this is a commonly-used
7143 function, and write docs.
7145 2003-01-31 Anders Carlsson <andersca@codefactory.se>
7147 * dbus/dbus-address.c: (dbus_address_entry_free):
7148 Free key and value lists.
7150 * dbus/dbus-internals.c: (_dbus_type_to_string):
7151 Add the types we didn't have.
7153 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7154 (_dbus_marshal_validate_arg):
7157 * dbus/dbus-message.c: (dbus_message_set_sender):
7158 Remove todo about being able to set sender to NULL.
7160 (dbus_message_set_is_error_reply),
7161 (dbus_message_get_is_error_reply):
7162 * dbus/dbus-message.h:
7165 * dbus/dbus-protocol.h:
7166 Add error reply flag.
7168 * test/data/valid-messages/opposite-endian.message:
7169 Add NIL type to test.
7171 2003-01-31 Havoc Pennington <hp@pobox.com>
7173 * doc/dbus-specification.sgml: fully specify the header. Add
7174 flags and major protocol version, and change header/body len to
7177 * dbus/dbus-message-builder.c (append_saved_length): append length
7180 * dbus/dbus-message.c (dbus_message_create_header): change header
7181 length and body length to unsigned. Add the new fields from the
7183 (_dbus_message_loader_return_buffer): unsigned header/body len
7185 2003-01-30 Havoc Pennington <hp@pobox.com>
7187 * dbus/dbus-auth.c: rework to use only REJECTED, no
7190 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7191 use REJECTED, suggested by Mark McLoughlin
7193 2003-01-30 Havoc Pennington <hp@pobox.com>
7195 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7196 a better way to report errors here. e.g. "unix address lacks
7197 path" or something. also "no such file" when the path doesn't
7200 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7202 (dbus_parse_address): add @todo about documenting address format,
7203 and allowing , and ; to be escaped
7205 2003-01-30 Anders Carlsson <andersca@codefactory.se>
7208 Add dbus-address.[ch]
7210 * dbus/dbus-address.c: (dbus_address_entry_free),
7211 (dbus_address_entries_free), (create_entry),
7212 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7213 (dbus_parse_address), (_dbus_address_test):
7214 * dbus/dbus-address.h:
7215 New files for dealing with address parsing.
7217 * dbus/dbus-connection.c:
7218 Document timeout functions.
7220 * dbus/dbus-message.c:
7221 Document dbus_message_new_from_message.
7223 * dbus/dbus-server-debug.c:
7226 * dbus/dbus-server.c: (dbus_server_listen):
7227 Parse address and use correct server implementation.
7229 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7230 * dbus/dbus-string.h:
7231 New function with test.
7233 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7237 * dbus/dbus-transport-debug.c:
7240 * dbus/dbus-transport.c: (_dbus_transport_open):
7241 Parse address and use correct transport implementation.
7243 2003-01-30 Havoc Pennington <hp@pobox.com>
7245 * dbus/dbus-message.c: use message->byte_order instead of
7246 DBUS_COMPILER_BYTE_ORDER throughout.
7247 (dbus_message_create_header): pad header to align the
7248 start of the body of the message to 8-byte boundary
7250 * dbus/dbus-marshal.h: make all the demarshalers take const
7251 DBusString arguments.
7253 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7254 validate message args here, so we don't have to do slow validation
7255 later, and so we catch bad messages as they are incoming. Also add
7256 better checks on header_len and body_len. Also fill in
7259 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7260 implemented properly)
7261 (_dbus_string_validate_nul): new function to check all-nul
7263 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7264 get_arg_end_pos and remove all validation
7265 (_dbus_marshal_validate_arg): actually do validation here.
7267 2003-01-29 Havoc Pennington <hp@pobox.com>
7269 * dbus/dbus-message.c (check_message_handling): fix assertion
7270 failure on set_client_serial
7272 2003-01-28 Havoc Pennington <hp@pobox.com>
7274 * dbus/dbus-server-debug.c: Add doc section comments
7276 * dbus/dbus-transport-debug.c: add doc section comments
7278 2003-01-28 Havoc Pennington <hp@redhat.com>
7280 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7281 the reverse order from how I had it
7282 (_dbus_string_base64_encode): reverse encoding order. I was
7283 basically byteswapping everything during encoding.
7285 2003-01-28 Anders Carlsson <andersca@codefactory.se>
7287 * dbus/dbus-connection-internal.h:
7288 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7289 (_dbus_connection_remove_timeout):
7290 Add functions for adding and removing timeouts.
7292 * dbus/dbus-message.c: (dbus_message_new_from_message):
7293 Add new function that takes a message and creates an exact
7294 copy of it, but with the refcount set to 1.
7295 (check_message_handling):
7298 * dbus/dbus-server-protected.h:
7299 * dbus/dbus-server.c: (_dbus_server_init_base),
7300 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7301 (dbus_server_set_timeout_functions):
7302 (_dbus_server_remove_timeout):
7303 New functions so that a server can add and remove timeouts.
7305 (dbus_server_listen):
7306 Add commented out call to dbus_server_debug_new.
7308 * dbus/dbus-timeout.c: (_dbus_timeout_new):
7309 Actually set the handler, doh.
7311 * dbus/dbus-transport.c: (_dbus_transport_open):
7312 Add commented out call to dbus_transport_debug_client_new.
7315 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7317 2003-01-28 Havoc Pennington <hp@pobox.com>
7319 * dbus/dbus-message.c (check_message_handling): function to check
7320 on the loaded message, iterates over it etc.
7322 2003-01-28 Havoc Pennington <hp@pobox.com>
7324 * test/Makefile.am (dist-hook): fix make distdir
7326 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7328 2003-01-27 Havoc Pennington <hp@pobox.com>
7330 * dbus/dbus-mempool.c (time_for_size): replace printf with
7333 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7334 empty lines; fix the SAVE_LENGTH stuff to be
7335 START_LENGTH/END_LENGTH so it actually works; couple other
7338 * test/Makefile.am (dist-hook): add dist-hook for .message files
7340 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7341 can be constant or locked.
7342 (_dbus_string_free): allow freeing a const string as
7345 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7347 * dbus/dbus-test-main.c (main): take an argument which is the
7348 directory containing test data
7350 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7351 argument to this and load all the messages in test/data/
7352 checking that they can be loaded or not loaded as appropriate.
7354 2003-01-27 Anders Carlsson <andersca@codefactory.se>
7356 * bus/dispatch.c: (bus_dispatch_message_handler):
7357 Dispatch messages sent to services.
7359 * bus/driver.c: (bus_driver_send_service_deleted),
7360 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7361 (bus_driver_send_service_acquired):
7362 Add helper functions for sending service related messages.
7364 (bus_driver_send_welcome_message):
7365 Send HELLO_REPLY instead of WELCOME.
7367 (bus_driver_handle_list_services):
7368 Send LIST_SERVICES_REPLY instead of SERVICES.
7370 (bus_driver_handle_own_service),
7371 (bus_driver_handle_service_exists):
7372 New message handlers.
7374 (bus_driver_handle_message):
7375 Invoke new message handlers.
7377 (bus_driver_remove_connection):
7378 Don't remove any services here since that's done automatically
7379 by bus_service_remove_owner now.
7382 New function signatures.
7384 * bus/services.c: (bus_service_add_owner):
7385 Send ServiceAcquired message if we're the only primary owner.
7387 (bus_service_remove_owner):
7388 Send ServiceAcquired/ServiceLost messages.
7390 (bus_service_set_prohibit_replacement),
7391 (bus_service_get_prohibit_replacement):
7392 Functions for setting prohibit replacement.
7394 (bus_service_has_owner):
7395 New function that checks if a connection is in the owner queue of
7399 Add new function signatures.
7401 * dbus/dbus-list.c: (_dbus_list_test):
7402 Add tests for _dbus_list_remove_last and traversing the list backwards.
7405 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7406 go any further, so return NULL then.
7408 * dbus/dbus-protocol.h:
7409 Add new messages, service flags and service replies.
7411 2003-01-26 Havoc Pennington <hp@pobox.com>
7413 * dbus/dbus-message-builder.c: implement, completely untested.
7415 * test/data/*: add data to be used in testing.
7416 ".message" files are our simple loadable text format.
7417 ".message-raw" will be binary dumps of messages.
7419 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7421 2003-01-26 Havoc Pennington <hp@pobox.com>
7423 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7425 * dbus/dbus-errors.c (dbus_result_to_string): add
7428 * dbus/dbus-message-builder.c: new file, will contain code to load
7429 up messages from files. Not implemented yet.
7431 2003-01-26 Havoc Pennington <hp@pobox.com>
7433 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7434 the sender by setting to NULL
7436 2003-01-26 Havoc Pennington <hp@pobox.com>
7438 The unit tests pass, but otherwise untested. If it breaks, the
7439 tests should have been better. ;-)
7441 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7444 * dbus/dbus-message.c: redo everything so we maintain
7445 message->header as the only copy of the various fields.
7446 This avoids the possibility of out-of-memory in some cases,
7447 for example dbus_message_lock() can't run out of memory anymore,
7448 and avoids extra copying. Figured I may as well go ahead and do
7449 this since it was busted for dbus_message_lock to not return
7450 failure on OOM, and dbus_message_write_header was totally
7451 unchecked for OOM. Also fixed some random other bugs.
7453 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7454 that strings are nul-terminated. Also, end_pos can be equal
7455 to string length just not greater than, I think.
7456 (_dbus_marshal_set_int32): new function
7457 (_dbus_marshal_set_uint32): new function
7458 (_dbus_marshal_set_string): new function
7460 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7461 a warning, init timeout_list to NULL
7462 (dbus_connection_send_message): don't use uninitialized variable
7465 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7467 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7469 * bus/driver.c: (bus_driver_handle_hello),
7470 (bus_driver_send_welcome_message):
7473 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7475 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7476 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7477 (dbus_connection_unref):
7478 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7479 * dbus/dbus-message.c: (dbus_message_unref),
7482 (dbus_message_get_fields):
7483 Remove debugging printout.
7485 (_dbus_message_loader_return_buffer):
7486 Don't store the header string.
7488 (_dbus_message_test):
7491 2003-01-26 Richard Hult <rhult@codefactory.se>
7493 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7494 the file descriptor list, since it can change under us.
7496 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7498 * glib/dbus-gmain.c: (dbus_connection_prepare),
7499 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7500 (remove_watch), (dbus_connection_hookup_with_g_main):
7501 Rewrite the glib handling to use its own GSource instead of a
7502 GIOChannel so we can catch messages put in the queue while waiting
7505 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7508 * bus/connection.c: (connection_disconnect_handler),
7509 (connection_watch_callback), (bus_connection_setup):
7510 * bus/dispatch.c: (send_one_message),
7511 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7512 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7514 * bus/driver.c: (bus_driver_send_service_deleted),
7515 (bus_driver_send_service_created), (bus_driver_handle_hello),
7516 (bus_driver_send_welcome_message),
7517 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7518 (bus_driver_handle_message):
7520 Refactor code, put the message dispatching in its own file. Use
7521 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7524 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7526 * dbus/dbus-internals.h:
7527 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7529 * dbus/dbus-message.c: (dbus_message_get_sender):
7530 * dbus/dbus-message.h:
7531 Implement dbus_message_get_sender.
7533 * dbus/dbus-protocol.h:
7534 Add message and service defines.
7536 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7538 * dbus/dbus-connection.c: (dbus_connection_send_message):
7539 * dbus/dbus-message-internal.h:
7540 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7541 (dbus_message_write_header):
7542 Remove _dbus_messag_unlock and don't set the client serial on a
7543 message if one already exists.
7545 2003-01-24 Havoc Pennington <hp@pobox.com>
7547 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7550 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7553 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7555 * dbus/dbus-list.c: (alloc_link), (free_link):
7556 Use a memory pool for the links.
7558 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7560 * bus/connection.c: (bus_connection_foreach):
7562 Add new bus_connection_foreach function.
7564 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7565 Add function that broadcasts a message to all clients.
7567 (bus_driver_send_service_created), (bus_driver_handle_hello),
7568 (bus_driver_send_welcome_message),
7569 (bus_driver_handle_list_services), (bus_driver_message_handler):
7570 Implement functions that take care of listing services, and notifying
7571 clients when new services are created.
7573 * bus/services.c: (bus_services_list):
7575 Add new function that returns an array of strings with the currently
7576 registered services.
7579 * glib/dbus-gmain.c:
7580 Update copyright year.
7582 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7584 * dbus/dbus-connection.c: (dbus_connection_send_message):
7585 Unlock the message in case it was sent earlier.
7587 (dbus_connection_send_message_with_reply_and_block):
7588 Remove the reply message from the list.
7590 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7591 Set array_len and new_pos correctly.
7593 (_dbus_marshal_test):
7594 Remove debug output.
7596 * dbus/dbus-message-internal.h:
7597 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7598 New function that returns the reply serial.
7600 (_dbus_message_unlock):
7601 New function that unlocks a message and resets its header.
7603 (dbus_message_append_string_array),
7604 (dbus_message_get_fields_valist),
7605 (dbus_message_iter_get_field_type),
7606 (dbus_message_iter_get_string_array),
7607 (dbus_message_get_fields),
7608 (dbus_message_append_fields_valist):
7609 Handle string arrays.
7611 (dbus_message_set_sender):
7612 Make this function public since the bus daemon needs it.
7614 (decode_header_data):
7615 Set the reply serial to -1 initially.
7617 * dbus/dbus-message.h:
7618 Add dbus_message_set_sender.
7620 2003-01-24 Havoc Pennington <hp@pobox.com>
7622 * doc/dbus-specification.sgml: add some stuff
7624 2003-01-22 Havoc Pennington <hp@pobox.com>
7626 * doc/dbus-specification.sgml: Start to document the protocol.
7628 2003-01-22 Havoc Pennington <hp@pobox.com>
7630 * dbus/dbus-connection.c
7631 (dbus_connection_send_message_with_reply_and_block): add some @todo
7633 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7635 2003-01-21 Havoc Pennington <hp@pobox.com>
7637 (patch untested because can't compile)
7639 * bus/driver.c (create_unique_client_name): make this function
7640 never recycle client names. Also, caller should initialize
7643 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7645 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7647 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7648 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7649 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7650 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7651 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7652 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7653 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7654 * dbus/dbus-marshal.h:
7655 * dbus/dbus-protocol.h:
7656 Add support for marshalling and demarshalling integer, double
7659 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7664 * bus/connection.c: (connection_disconnect_handler):
7665 Remove the connection from the bus driver's list.
7667 (connection_watch_callback): Dispatch messages.
7669 (free_connection_data): Free connection name.
7671 (bus_connection_setup): Add connection to the bus driver's list.
7672 (bus_connection_remove_owned_service):
7673 (bus_connection_set_name), (bus_connection_get_name):
7674 Add functions for setting and getting the connection's name.
7677 Add function headers.
7679 * bus/driver.c: (create_unique_client_name),
7680 (bus_driver_handle_hello_message),
7681 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7682 (bus_driver_add_connection), (bus_driver_remove_connection):
7685 * bus/services.c: (bus_service_free):
7687 New file that handles communication and registreation with the bus
7690 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7692 * dbus/dbus-connection.c: (dbus_connection_send_message):
7693 Add a new client_serial parameter.
7695 (dbus_connection_send_message_with_reply):
7696 Remove a @todo since we've implemented the blocking function.
7698 (dbus_connection_send_message_with_reply_and_block):
7699 New function that sends a message and waits for a reply and
7700 then returns the reply.
7702 * dbus/dbus-connection.h:
7705 * dbus/dbus-errors.c: (dbus_result_to_string):
7706 * dbus/dbus-errors.h:
7707 Add new DBUS_RESULT.
7709 * dbus/dbus-message-internal.h:
7710 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7711 (_dbus_message_set_sender), (dbus_message_write_header),
7712 (dbus_message_new_reply), (decode_header_data),
7713 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7714 * dbus/dbus-message.h:
7715 Add new functions that set the reply serial and sender.
7716 Also marshal and demarshal them correctly and add test.
7718 * dbus/dbus-protocol.h:
7719 Add new DBUS_MESSAGE_TYPE_SENDER.
7722 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7723 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7724 (dbus_connection_hookup_with_g_main):
7725 * glib/test-dbus-glib.c: (main):
7726 Rewrite to use GIOChannel and remove the GSource crack.
7728 * test/echo-client.c: (main):
7729 * test/watch.c: (check_messages):
7730 Update for changed APIs
7732 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7734 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7736 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7737 Create a DBusTimeoutList.
7738 (dbus_connection_set_timeout_functions): Add new function to
7739 set timeout callbacks
7741 * dbus/dbus-connection.h: Add public DBusTimeout API.
7743 * dbus/dbus-message.c: (dbus_message_get_service):
7744 * dbus/dbus-message.h: New function.
7746 * dbus/dbus-server.c: Fix small doc typo.
7748 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7750 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7752 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7753 of the string, just as long as specified.
7755 2003-01-19 Havoc Pennington <hp@pobox.com>
7757 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7760 * dbus/dbus-server.c (dbus_server_set_max_connections)
7761 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7762 keep track of current number of connections, and add API for
7763 setting a max (but haven't implemented enforcing the max yet)
7765 2003-01-18 Havoc Pennington <hp@pobox.com>
7767 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7768 reading/writing if read_watch != NULL or write_watch != NULL.
7770 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7771 the message loader code to actually load message->header and
7772 message->body into the newly-created message.
7774 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7777 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7778 (dbus_connection_get_max_message_size)
7779 (dbus_connection_set_max_live_messages_size)
7780 (dbus_connection_get_max_live_messages_size): implement some
7781 resource limitation functions
7783 * dbus/dbus-resources.c: new file implementing some of the
7784 resource limits stuff
7786 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7787 missing docs, add @todo to handle OOM etc.
7789 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7792 2003-01-18 Havoc Pennington <hp@pobox.com>
7794 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7795 connection if it hasn't been already.
7797 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7798 replace with DisconnectFunction.
7800 2003-01-18 Havoc Pennington <hp@pobox.com>
7802 Building --disable-verbose-mode --disable-asserts --disable-tests
7803 cuts the library from 112K to 45K or so
7805 * configure.in: check for varargs macro support,
7806 add --enable-verbose-mode, --enable-asserts.
7808 * dbus/dbus-internals.h (_dbus_assert): support
7810 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7812 2003-01-18 Havoc Pennington <hp@pobox.com>
7814 * dbus/dbus-test.c: include config.h so that tests actually run
7816 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7817 so the failure mode when that assumption fails will be plenty
7820 2003-01-18 Havoc Pennington <hp@pobox.com>
7822 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7824 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7827 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7828 since we don't want to use those in make check
7830 2003-01-15 Havoc Pennington <hp@redhat.com>
7836 2003-01-15 Havoc Pennington <hp@redhat.com>
7838 * test/Makefile.am: fix so that test source code ends up in the
7839 distribution on make distcheck
7841 2003-01-15 Havoc Pennington <hp@redhat.com>
7847 2003-01-15 Havoc Pennington <hp@redhat.com>
7849 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7850 fix build when --disable-tests
7852 * Makefile.am (EXTRA_DIST): put HACKING in here
7854 * HACKING: document procedure for making a tarball release.
7856 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7858 * bus/connection.c: (connection_error_handler),
7859 (bus_connection_setup):
7860 * bus/main.c: (main):
7861 Make sure that the DBusConnectionData struct is NULLed
7862 out to prevent a segfault.
7864 * dbus/dbus-errors.c: (dbus_result_to_string):
7865 * dbus/dbus-errors.h:
7866 * dbus/dbus-message.c: (dbus_message_get_fields),
7867 (dbus_message_get_fields_valist), (_dbus_message_test):
7868 * dbus/dbus-message.h:
7869 Make dbus_message_get_fields return a result code so we can
7870 track invalid fields as well as oom.
7872 2003-01-11 Havoc Pennington <hp@pobox.com>
7874 * configure.in: change --enable-test/--enable-ansi action-if-given
7875 to enable_foo=$enableval instead of enable_foo=yes
7877 2003-01-08 Havoc Pennington <hp@pobox.com>
7879 * dbus/dbus-string.c (_dbus_string_align_length): new function
7881 * dbus/dbus-test-main.c: move main() for test app here
7883 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7884 symbol to run tests, because dbus-test isn't in the main
7887 Code review nitpicks.
7889 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7890 for people with narrow emacs ;-). Assert client_serial was filled
7891 in. Assert message->name != NULL.
7892 (dbus_message_append_fields): have "first_field_type" arg separate
7893 from va list, needed for C++ binding that also uses varargs IIRC
7894 and helps with type safety
7895 (dbus_message_new): add @todo about using DBusString to store
7896 service/name internally
7897 (dbus_message_new): don't leak ->service and ->name on OOM later
7899 (dbus_message_unref): free the service name
7900 (dbus_message_get_fields): same change to varargs
7901 i.e. first_field_type
7902 (_dbus_message_loader_return_buffer): assert that the message data
7903 is aligned (if not it's a bug in our code). Put in verbose griping
7904 about why we set corrupted = TRUE.
7905 (decode_header_data): add FIXME that char* is evil. Was going to
7906 add FIXME about evil locale-specific string.h strncmp, but just
7907 switched to wacky string-as-uint32 optimization. Move check for
7908 "no room for field name" above get_const_data_len() to avoid
7909 assertion failure in get_const_data_len if we have trailing 2
7910 bytes or the like. Check for service and name fields being
7911 provided twice. Don't leak service/name on error. Require field
7912 names to be aligned to 4 bytes.
7914 * dbus/dbus-marshal.c: move byte swap stuff to header
7915 (_dbus_pack_int32): uscore-prefix
7916 (_dbus_unpack_int32): uscore-prefix
7917 (_dbus_unpack_uint32): export
7918 (_dbus_demarshal_string): add @todo complaining about use of
7920 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7921 handling allowing corrupt data to go unchecked
7923 2003-01-08 Havoc Pennington <hp@redhat.com>
7925 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7926 to the select() as needed for authentication. (should be using
7927 _dbus_poll() not select, but for another day)
7929 * dbus/dbus.h: include dbus/dbus-protocol.h
7931 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7933 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7936 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7938 * dbus/dbus-internals.c: (_dbus_type_to_string):
7939 New function that returns a string describing a type.
7941 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7942 * dbus/dbus-marshal.h:
7943 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7944 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7945 (dbus_message_iter_get_byte_array):
7946 * dbus/dbus-message.h:
7947 Add new convenience functions for appending and getting message fields.
7948 Also add demarshalling routines for byte arrays.
7950 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7952 * dbus/dbus-connection-internal.h:
7953 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7954 (_dbus_connection_get_next_client_serial),
7955 (dbus_connection_send_message):
7956 * dbus/dbus-internals.h:
7957 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7958 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7959 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7960 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7961 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7962 (_dbus_verbose_bytes), (_dbus_marshal_test):
7963 * dbus/dbus-marshal.h:
7964 * dbus/dbus-message-internal.h:
7965 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7966 (dbus_message_write_header), (_dbus_message_lock),
7967 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7968 (dbus_message_get_name), (dbus_message_append_int32),
7969 (dbus_message_append_uint32), (dbus_message_append_double),
7970 (dbus_message_append_string), (dbus_message_append_byte_array),
7971 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7972 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7973 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7974 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7975 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7976 (decode_header_data), (_dbus_message_loader_return_buffer),
7977 (message_iter_test), (_dbus_message_test):
7978 * dbus/dbus-message.h:
7979 * dbus/dbus-protocol.h:
7980 * dbus/dbus-test.c: (main):
7982 * glib/test-dbus-glib.c: (message_handler), (main):
7983 * test/echo-client.c: (main):
7984 * test/watch.c: (check_messages):
7985 Make messages sendable and receivable for real.
7987 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7989 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7990 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7991 * dbus/dbus-message.c: (dbus_message_append_int32),
7992 (dbus_message_append_uint32), (dbus_message_append_double),
7993 (dbus_message_append_string), (dbus_message_append_byte_array):
7994 Handle OOM restoration.
7996 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7998 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7999 (_dbus_demarshal_string), (_dbus_marshal_test):
8000 * dbus/dbus-marshal.h:
8001 * dbus/dbus-message.c: (dbus_message_get_name),
8002 Document these functions.
8004 (dbus_message_append_int32), (dbus_message_append_uint32),
8005 (dbus_message_append_double), (dbus_message_append_string),
8006 (dbus_message_append_byte_array):
8007 * dbus/dbus-message.h:
8008 Add functions for adding message fields of different types.
8010 * dbus/dbus-protocol.h:
8011 Add the different types.
8013 2003-01-05 Havoc Pennington <hp@pobox.com>
8015 * bus/connection.c: implement routines for handling connections,
8016 first thing is keeping a list of owned services on each connection
8017 and setting up watches etc.
8019 * bus/services.c: implement a mapping from service names to lists
8022 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
8024 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
8025 to use static mutexes for global data
8027 * dbus/dbus-connection.c (dbus_connection_set_data): add new
8028 collection of functions to set/get application-specific data
8029 on the DBusConnection.
8031 2003-01-04 Havoc Pennington <hp@pobox.com>
8033 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
8034 (_dbus_poll): new function
8036 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
8039 * bus/loop.c: initial code for the daemon main loop
8041 2003-01-04 Havoc Pennington <hp@pobox.com>
8043 * test/watch.c (error_handler): make it safe if the error handler
8044 is called multiple times (if we s/error handler/disconnect
8045 handler/ we should just guarantee it's called only once)
8047 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
8048 error handler on disconnect (it's quite possible we should
8049 just change the error handler to a "disconnect handler," I'm
8050 not sure we have any other meaningful errors)
8052 * configure.in: check for getpwnam_r
8054 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
8055 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
8056 mechanism as in SASL spec, using socket credentials
8058 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
8059 (_dbus_send_credentials_unix_socket): new function
8061 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
8063 (_dbus_write): only check errno if <0 returned
8064 (_dbus_write_two): ditto
8066 2003-01-02 Anders Carlsson <andersca@codefactory.se>
8068 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
8069 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
8070 (_dbus_marshal_test):
8071 * dbus/dbus-marshal.h:
8072 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
8073 to _dbus_marshal_utf8_string. Also fix some tests.
8075 2002-12-28 Harri Porten <porten@kde.org>
8077 * configure.in: added check for C++ compiler and a very cheesy
8078 check for the Qt integration
8080 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
8082 * qt/Makefile.am: added
8084 * qt/.cvsignore: added
8086 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
8087 latter, added #ifdef QT_THREAD_SUPPORT guard.
8089 * dbus/Makefile.am: added missing headers for make dist
8091 2002-12-28 Kristian Rietveld <kris@gtk.org>
8093 * dbus/Makefile.am: fixup export-symbols-regex.
8095 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8097 * acinclude.m4: Add this file and put the
8098 PKG_CHECK_MODULE macro in it.
8100 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8102 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8103 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8104 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8105 (_dbus_marshal_test):
8106 Make the demarshalling routines align the pos argument.
8107 Add string marshalling tests and fix the obvious bugs
8110 2002-12-26 Havoc Pennington <hp@pobox.com>
8112 * dbus/dbus-auth.c: fixes fixes fixes
8114 * dbus/dbus-transport-unix.c: wire up support for
8115 encoding/decoding data on the wire
8117 * dbus/dbus-auth.c (_dbus_auth_encode_data)
8118 (_dbus_auth_decode_data): append to target string
8119 instead of nuking it.
8121 2002-12-26 Havoc Pennington <hp@pobox.com>
8123 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
8124 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
8127 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
8128 avoid swap_bytes() overhead (ignoring possible assembly stuff for
8129 now). Main point is because I wanted unpack_uint32 to implement
8131 (_dbus_verbose_bytes): new function
8133 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
8135 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
8136 mechanism to handle a corrupt message stream
8137 (_dbus_message_loader_new): fix preallocation to only prealloc,
8140 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
8141 (_dbus_string_test): enhance tests for copy/move and fix the
8144 * dbus/dbus-transport-unix.c: Hold references in more places to
8145 avoid reentrancy problems
8147 * dbus/dbus-transport.c: ditto
8149 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
8150 leak reference count in no-message case
8152 * test/watch.c (do_mainloop): handle adding/removing watches
8153 during iteration over the watches. Also, ref the connection/server
8154 stored on a watch, so we don't try to mangle a destroyed one.
8156 * dbus/dbus-transport-unix.c (do_authentication): perform
8159 * dbus/dbus-auth.c (get_state): add a state
8160 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
8161 (_dbus_auth_get_unused_bytes): append the unused bytes
8162 to the passed in string, rather than prepend
8164 * dbus/dbus-transport.c (_dbus_transport_init_base): create
8165 the auth conversation DBusAuth
8167 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8168 (_dbus_transport_new_for_domain_socket): when creating a
8169 transport, pass in whether it's a client-side or server-side
8170 transport so we know which DBusAuth to create
8172 2002-12-03 Havoc Pennington <hp@pobox.com>
8174 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8175 _after_ finalizing the derived members
8176 (unix_connection_set): unref watch if we fail to add it
8178 * dbus/dbus-connection.c (dbus_connection_unref): delete the
8179 transport first, so that the connection owned by the
8180 transport will be valid as the transport finalizes.
8182 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8183 if necessary, and remove watches from the connection.
8185 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8187 2002-12-26 Anders Carlsson <andersca@codefactory.se>
8189 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8190 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8191 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8192 (_dbus_marshal_test):
8193 * dbus/dbus-marshal.h:
8194 Add string marshal functions and have the demarshal functions
8195 return the new position.
8197 2002-12-25 Havoc Pennington <hp@pobox.com>
8199 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8200 it is a simple protocol that just maps directly to SASL.
8202 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8203 initial implementation, not actually used yet.
8205 * dbus/dbus-string.c (_dbus_string_find): new function
8206 (_dbus_string_equal): new function
8207 (_dbus_string_base64_encode): new function
8208 (_dbus_string_base64_decode): new function
8210 2002-12-25 Anders Carlsson <andersca@codefactory.se>
8213 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8214 (_dbus_marshal_int32), (_dbus_marshal_uint32),
8215 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8216 (_dbus_demarshal_uint32), (_dbus_marshal_test):
8217 * dbus/dbus-marshal.h:
8218 * dbus/dbus-protocol.h:
8219 * dbus/dbus-test.c: (main):
8221 Add un-optimized marshalling/demarshalling routines.
8223 2002-12-25 Harri Porten <porten@kde.org>
8225 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8227 2002-12-24 Zack Rusin <zack@kde.org>
8229 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8230 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8233 2002-12-24 Havoc Pennington <hp@pobox.com>
8235 * glib/dbus-gthread.c: fix include
8237 * glib/dbus-glib.h: rename DBusMessageHandler for now.
8238 I think glib API needs to change, though, as you don't
8239 want to use DBusMessageFunction, you want to use the
8240 DBusMessageHandler object. Probably
8241 dbus_connection_open_with_g_main_loop()
8242 and dbus_connection_setup_g_main_loop() or something like that
8243 (but think of better names...) that just create a connection
8244 that has watch/timeout functions etc. already set up.
8246 * dbus/dbus-connection.c
8247 (dbus_connection_send_message_with_reply): new function just to
8248 show how the message handler helps us deal with replies.
8250 * dbus/dbus-list.c (_dbus_list_remove_last): new function
8252 * dbus/dbus-string.c (_dbus_string_test): free a string that
8255 * dbus/dbus-hash.c: use memory pools for the hash entries
8256 (rebuild_table): be more paranoid about overflow, and
8257 shrink table when we can
8258 (_dbus_hash_test): reduce number of sprintfs and write
8259 valid C89. Add tests for case where we grow and then
8260 shrink the hash table.
8262 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8264 * dbus/dbus-connection.c (dbus_connection_register_handler)
8265 (dbus_connection_unregister_handler): new functions
8267 * dbus/dbus-message.c (dbus_message_get_name): new
8269 * dbus/dbus-list.c: fix docs typo
8271 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8272 an object representing a handler for messages.
8274 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8277 * glib/dbus-gthread.c: (dbus_gthread_init):
8278 Don't use the gdbus prefix for public functions.
8280 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8284 Add GLib checks and fixup .pc files
8288 * glib/dbus-gmain.c: (gdbus_connection_prepare),
8289 (gdbus_connection_check), (gdbus_connection_dispatch),
8290 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8291 (dbus_connection_gsource_new):
8292 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8293 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8294 * glib/test-dbus-glib.c: (message_handler), (main):
8297 2002-12-15 Harri Porten <porten@kde.org>
8299 * autogen.sh: check for libtoolize before attempting to use it
8301 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8304 * .cvsignore: ignore more stamp files
8306 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8308 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8309 without make install.
8311 2002-12-15 Havoc Pennington <hp@pobox.com>
8313 * dbus/dbus-threads.c: add thread stubs that a higher library
8314 layer can fill in. e.g. the GLib wrapper might fill them in with
8315 GThread stuff. We still need to use this thread API to
8316 thread-safe-ize the library.
8318 2002-12-12 Havoc Pennington <hp@pobox.com>
8320 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8321 below new interfaces and include fewer system headers.
8323 * dbus/dbus-sysdeps.c (_dbus_read): new function
8324 (_dbus_write): new function
8325 (_dbus_write_two): new function
8326 (_dbus_connect_unix_socket): new function
8327 (_dbus_listen_unix_socket): new function
8329 * dbus/dbus-message-internal.h: change interfaces to use
8332 2002-12-11 Havoc Pennington <hp@pobox.com>
8334 * dbus/dbus-types.h: add dbus_unichar
8336 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8338 * dbus/dbus-connection.c (dbus_connection_send_message): return
8341 * dbus/dbus-transport.c: include dbus-watch.h
8343 * dbus/dbus-connection.c: include dbus-message-internal.h
8345 * HACKING: add file with coding guidelines stuff.
8347 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8348 handling here, for security purposes (as in vsftpd). Not actually
8349 using this class yet.
8351 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8352 system/libc usage here, as in vsftpd, for ease of auditing (and
8353 should also simplify portability). Haven't actually moved all the
8354 system/libc usage into here yet.
8356 2002-11-25 Havoc Pennington <hp@pobox.com>
8358 * dbus/dbus-internals.c (_dbus_verbose): fix to not
8359 always print the first verbose message.
8361 2002-11-24 Havoc Pennington <hp@pobox.com>
8363 * test/echo-client.c, test/echo-server.c: cheesy test
8366 * configure.in (AC_CHECK_FUNCS): check for writev
8368 * dbus/dbus-message.c (_dbus_message_get_network_data): new
8371 * dbus/dbus-list.c (_dbus_list_foreach): new function
8373 * dbus/dbus-internals.c (_dbus_verbose): new function
8375 * dbus/dbus-server.c, dbus/dbus-server.h: public object
8376 representing a server that listens for connections.
8378 * dbus/.cvsignore: create
8380 * dbus/dbus-errors.h, dbus/dbus-errors.c:
8381 public API for reporting errors
8383 * dbus/dbus-connection.h, dbus/dbus-connection.c:
8384 public object representing a connection that
8385 sends/receives messages. (Same object used for
8386 both client and server.)
8388 * dbus/dbus-transport.h, dbus/dbus-transport.c:
8389 Basic abstraction for different kinds of stream
8390 that we might read/write messages from.
8392 2002-11-23 Havoc Pennington <hp@pobox.com>
8394 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8397 * dbus/dbus-test.c (main): add list test, and include
8398 dbus-test.h as intended
8400 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8401 (_dbus_hash_table_remove_int): return value indicates
8402 whether the entry existed to remove
8404 * dbus/dbus-list.c: add linked list utility class,
8407 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8410 2002-11-23 Havoc Pennington <hp@pobox.com>
8412 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8413 DBUS_END_DECLS to nothing, that should fix this once and for all
8415 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8417 * dbus/dbus-message.c, dbus/dbus-hash.c:
8418 add some missing @brief
8420 2002-11-23 Havoc Pennington <hp@pobox.com>
8422 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8423 to avoid confusing Doxygen
8425 * dbus/dbus-hash.c: @} not }@
8427 * dbus/dbus-message.c (struct DBusMessage): split out
8430 2002-11-23 Havoc Pennington <hp@pobox.com>
8432 * configure.in: pile on more warning flags if using gcc
8434 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8435 to document static functions
8437 * configure.in: add summary to end of configure so it
8438 looks nice and attractive
8440 * dbus/dbus-hash.c: finish implementation and write unit
8443 * configure.in: add --enable-tests to enable unit tests
8445 * dbus/dbus-test.c: test program to run unit tests
8446 for all files in dbus/*, initially runs a test for
8449 * dbus/dbus-internals.h: file to hold some internal utility stuff
8451 2002-11-22 Havoc Pennington <hp@redhat.com>
8453 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8454 "ported" away from Tcl
8456 * dbus/dbus-types.h: header for types such as dbus_bool_t
8458 2002-11-22 Havoc Pennington <hp@redhat.com>
8460 * dbus/dbus.h: fixups for doc warnings
8462 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8464 (QUIET): make it quiet so we can see warnings
8466 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8468 2002-11-22 Havoc Pennington <hp@redhat.com>
8470 * Makefile.am: include "Doxyfile" target in all-local
8472 * configure.in: generate the Doxyfile
8474 * Doxyfile.in: move Doxyfile here, so we can use
8475 configure to generate a Doxyfile with the right
8478 2002-11-22 Havoc Pennington <hp@redhat.com>
8480 * dbus/dbus-message.c: move inline docs into .c file
8482 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8483 so all docs are under doc/
8484 (MAN_EXTENSION): generate man pages. Use extension
8485 ".3dbus" which matches ".3qt" on my system,
8486 I guess this is OK, I don't know really.
8487 (FILE_PATTERNS): look for .c files not .h, makes sense
8490 2002-11-22 Havoc Pennington <hp@pobox.com>
8492 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8493 because any app can be a server, and any app can be a client,
8494 the bus is a special kind of server.
8496 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8498 * Doxyfile : adding. Still needs Makefile rules to be generated
8499 automatically (just run "doxygen" in the toplevel dir for now to
8502 * dbus/dbus-message.h : Adding sample docs (javadoc since
8503 resembles gtk-doc a little more)
8505 * dbus/dbus.h : Adding sample docs
8507 2002-11-21 Havoc Pennington <hp@redhat.com>
8509 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8510 so we can allow ourselves to include files directly,
8511 instead of having to use dbus.h
8513 * dbus/dbus.h: fill in
8515 * dbus/dbus-message.h: sketch out a sample header file.
8516 Include griping if you include it directly instead of
8519 * dbus/dbus-macros.h: new file with macros for extern "C",
8520 TRUE/FALSE, NULL, etc.
8522 * doc/file-boilerplate.c: put include guards in here
8524 2002-11-21 Havoc Pennington <hp@redhat.com>
8526 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8528 * COPYING: include the GPL as well, and license code
8529 under both AFL and GPL.
8531 2002-11-21 Havoc Pennington <hp@redhat.com>
8533 * acconfig.h: get rid of this
8535 * autogen.sh (run_configure): add --no-configure option
8537 * configure.in: remove AC_ARG_PROGRAM to make
8538 autoconf complain less. add AC_PREREQ.
8539 add AC_DEFINE third arg.
8541 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8544 Fix references so we can distcheck.
8546 2002-11-21 Havoc Pennington <hp@redhat.com>
8548 * Initial module creation