1 2005-01-23 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
4 get this all working, not many tests in the framework yet though
6 2005-01-22 Havoc Pennington <hp@redhat.com>
8 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
9 tutorial, based on work from David Wheeler.
11 2005-01-21 Havoc Pennington <hp@redhat.com>
13 * dbus/dbus-bus.c: add more return_if_fail checks
15 * dbus/dbus-message.c (load_message): have the "no validation"
16 mode (have to edit the code to toggle the mode for now though)
18 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
19 skips all validation; I want to use this at least for benchmark
20 baseline, I'm not sure if it should be a publicly-available switch.
22 2005-01-21 Havoc Pennington <hp@redhat.com>
24 * glib/dbus-gmain.c: don't put the GLib bindings in the same
25 toplevel doxygen group as the low-level API stuff
27 * dbus/dbus.h: note that libdbus is the low-level API
29 2005-01-20 Havoc Pennington <hp@redhat.com>
31 * update-dbus-docs.sh: script to update docs on the web site, only
32 works for me though. neener.
34 2005-01-20 Havoc Pennington <hp@redhat.com>
36 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
37 code can reveal bugs in it
39 2005-01-20 Havoc Pennington <hp@redhat.com>
41 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
42 select() version, patches from Tor Lillqvist
44 2005-01-20 Havoc Pennington <hp@redhat.com>
46 * doc/dbus-tutorial.xml: replace > with >
48 * bus/services.c (bus_registry_acquire_service): validate the name
49 and return a better error if it's no good.
51 * doc/dbus-specification.xml: note NO_AUTO_START change
53 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
54 from AUTO_START, we're toggling the default
56 * bus/dispatch.c: adapt the tests to change of auto-start default
58 2005-01-18 Havoc Pennington <hp@redhat.com>
60 * rename dbus-daemon-1 to dbus-daemon throughout
62 2005-01-18 Havoc Pennington <hp@redhat.com>
64 * Throughout, grand renaming to strip out the use of "service",
65 just say "name" instead (or "bus name" when ambiguous). Did not
66 change the internal code of the message bus itself, only the
67 programmer-facing API and messages.
69 * doc/dbus-specification.xml: further update the message bus section
71 * bus/config-parser.c (all_are_equiv): fix bug using freed string
74 2005-01-17 Havoc Pennington <hp@redhat.com>
76 * dbus/dbus-types.h: remove 16-bit types since we don't use them
79 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
80 "invalid name character" not only non-ASCII
82 * doc/dbus-specification.xml: further update spec, message bus
83 parts are still out-of-date but the marshaling etc. stuff is now
86 2005-01-17 Havoc Pennington <hp@redhat.com>
88 * doc/dbus-specification.xml: partially update spec
90 2005-01-17 Havoc Pennington <hp@redhat.com>
92 * Throughout, align variant bodies according to the contained
93 type, rather than always to 8. Should save a fair bit of space in
96 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
97 fix handling of case where p == end
99 * doc/TODO: remove the dbus_bool_t item and variant alignment items
101 2005-01-17 Havoc Pennington <hp@redhat.com>
103 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
105 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
106 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
107 are marshaling/unmarshaling a boolean.
109 2005-01-16 Havoc Pennington <hp@redhat.com>
111 This is about it on what can be disabled/deleted from libdbus
112 easily, back below 150K anyhow. Deeper cuts are more work than
113 just turning the code off as I've done here.
115 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
116 signed int convenience funcs
118 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
121 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
122 things out of libdbus
124 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
126 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
127 tests-enabled-only, though it should probably be deleted)
129 * dbus/dbus-message-util.c: same stuff
131 * dbus/dbus-auth-util.c: same stuff
133 2005-01-16 Havoc Pennington <hp@redhat.com>
135 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
137 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
138 way for stripping down dbus-userdb.c stuff included in libdbus.
139 Rename _dbus_parse_uid for consistency.
141 2005-01-16 Havoc Pennington <hp@redhat.com>
143 * dbus/dbus-internals.c (_dbus_real_assert): print the function
144 name the assertion failed in
146 * dbus/dbus-internals.h (_dbus_return_if_fail)
147 (_dbus_return_val_if_fail): assert that the name of the function
148 containing the check doesn't start with '_', since we only want to
149 use checks on public functions
151 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
154 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
155 change checks to asserts for private function
157 * dbus/dbus-message.c (_dbus_message_set_serial): checks
158 to asserts for private function
160 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
161 broken assertion that was breaking make check
162 (_dbus_type_reader_array_is_empty): remove this rather than fix
163 it, was only used in assertions
165 2005-01-16 Havoc Pennington <hp@redhat.com>
167 * test/unused-code-gc.py: hacky script to find code that's used
168 only by the bus (not libdbus) or used only by tests or not used at
169 all. It has some false alarms, but looks like we can clean up a
170 lot of size from libdbus.
172 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
173 dbus/Makefile.am: initially move 10K of binary size out of libdbus
175 2005-01-16 Havoc Pennington <hp@redhat.com>
177 * Add and fix docs according to Doxygen warnings throughout
180 * dbus/dbus-marshal-recursive.c
181 (_dbus_type_reader_array_is_empty): change this to just call
182 array_reader_get_array_len() and make it static
184 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
186 (dbus_message_iter_init_append): rename from append_iter_init
188 * dbus/dbus-marshal-recursive.c
189 (_dbus_type_reader_get_element_type): rename from
190 _dbus_type_reader_get_array_type
192 2005-01-15 Havoc Pennington <hp@redhat.com>
194 * test/glib/test-profile.c (with_bus_server_filter): fix crash
196 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
197 when DBUS_DISABLE_ASSERT
198 (_dbus_marshal_set_basic): be sure we align for the string length
200 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
203 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
205 (_dbus_string_set_byte): provide inline macro version
207 2005-01-15 Havoc Pennington <hp@redhat.com>
209 * Land the new message args API and type system.
211 This patch is huge, but the public API change is not
212 really large. The set of D-BUS types has changed somewhat,
213 and the arg "getters" are more geared toward language bindings;
214 they don't make a copy, etc.
216 There are also some known issues. See these emails for details
218 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
219 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
221 * dbus/dbus-marshal-*: all the new stuff
223 * dbus/dbus-message.c: basically rewritten
225 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
226 freed blocks to be all non-nul bytes so using freed memory is less
229 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
230 DBUS_FAIL_MALLOC=N environment variable, so you can do
231 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
232 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
235 * qt/message.cpp: port to the new message args API
236 (operator<<): use str.utf8() rather than str.unicode()
237 (pretty sure this is right from the Qt docs?)
239 * glib/dbus-gvalue.c: port to the new message args API
241 * bus/dispatch.c, bus/driver.c: port to the new message args API
243 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
244 "locked" flag to TRUE and align_offset to 0; I guess we never
245 looked at these anyhow, but seems cleaner.
247 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
248 move allocation padding macro to this header; use it to implement
249 (_DBUS_STRING_STATIC): ability to declare a static string.
251 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
252 change to return TRUE if the interface is not set.
254 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
255 to dbus-marshal-validate.[hc]
257 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
260 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
261 to dbus-marshal-*.[hc]
263 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
264 function here from dbus-marshal.c
266 2005-01-12 Joe Shaw <joeshaw@novell.com>
268 * NEWS: Update for 0.23.
270 * configure.in: Release 0.23.
272 2005-01-12 Joe Shaw <joeshaw@novell.com>
274 * mono/Makefile.am, mono/example/Makefile.am: Always build the
275 dbus DLL with --debug. Clean up after the .mdb files this leaves
278 * mono/doc/Makefile.am: Need to uninstall the docs on "make
281 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
282 is an enum, get the enum's underlying type. Another mono
285 2005-01-11 Joe Shaw <joeshaw@novell.com>
287 Patch from Sjoerd Simons <sjoerd@luon.net>
289 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
290 DESTDIR. It breaks stuff.
292 2005-01-11 Joe Shaw <joeshaw@novell.com>
294 Patch from Tambet Ingo <tambet@ximian.com>
296 * mono/DBusType/Array.cs (Get): Get the underlying element type by
297 calling type.GetElementType(). The code previously depended on
298 broken Mono behavior, which was fixed in Mono 1.1.3.
300 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
301 Activator.CreateInstance() so that the class's constructor is
302 called with the right parameters.
304 2005-01-11 Joe Shaw <joeshaw@novell.com>
306 Patch from Timo Teräs <ext-timo.teras@nokia.com>
308 * dbus/dbus-connection.c
309 (_dbus_connection_queue_received_message_link): Call
310 _dbus_connection_remove_timeout() instead of the _locked()
311 variant, since it's always called from
312 _dbus_connection_handle_watch(), which handles the locking.
313 Removed the _locked() variant since it's no longer used.
315 2005-01-03 Havoc Pennington <hp@redhat.com>
317 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
320 2004-12-26 Havoc Pennington <hp@redhat.com>
322 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
324 2005-01-03 Havoc Pennington <hp@redhat.com>
326 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
329 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
331 2005-01-02 Havoc Pennington <hp@redhat.com>
333 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
335 2005-01-01 Havoc Pennington <hp@redhat.com>
337 * configure.in: add -Wfloat-equal
339 2005-01-01 Havoc Pennington <hp@redhat.com>
341 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
342 for a variety of reasons '==' doesn't do this.
344 2004-12-31 Havoc Pennington <hp@redhat.com>
346 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
349 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
351 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
353 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
355 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
356 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
357 dbus-protocol.h. Because they are defines and not enums they are not
360 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
362 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
363 dbus_bus_activate_service
365 * python/dbus.py (Bus.activate_service): activate a service on the
368 2004-12-24 Havoc Pennington <hp@redhat.com>
370 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
371 file format has also changed and I haven't adapted to that yet
373 * Makefile.am: load .gcno files from latest gcc
375 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
376 * Patch from Rob Taylor <robtaylor@fastmail.fm>
378 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
381 * python/dbus.py (get_unix_user): Added binding to
382 call dbus_bindings.bus_get_unix_user
384 * python/extract.py: Modified the proto_pat regex to
387 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
389 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
390 better POSIX compliance.
392 2004-12-19 Havoc Pennington <hp@redhat.com>
394 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
395 (_dbus_string_insert_8_aligned): new functions
397 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
399 2004-12-18 Havoc Pennington <hp@redhat.com>
401 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
404 * dbus/dbus-message.c: fix a comment, and add a still-unused
405 not-implemented function
407 * dbus/dbus-marshal.h: fix comment
409 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
411 2004-12-17 Joe Shaw <joeshaw@novell.com>
413 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
414 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
415 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
416 Type.UnderlyingSystemType to get the actual system type
417 underneath. This code previously depended on the broken Mono
418 behavior, which was fixed in 1.1.3.
420 2004-11-27 Havoc Pennington <hp@redhat.com>
422 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
424 (_dbus_string_get_const_data): inline when asserts are disabled
426 * dbus/dbus-message.c: record the _dbus_current_generation of
427 creation so we can complain if dbus_shutdown() is used improperly.
428 Do this only if checks are enabled.
430 * dbus/dbus-connection.c: ditto
432 2004-11-26 Havoc Pennington <hp@redhat.com>
434 * test/glib/test-profile.c: add with_bus mode to profile echoes
435 that go through the bus.
437 * test/glib/run-test.sh: add ability to run test-profile
439 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
442 2004-11-26 Havoc Pennington <hp@redhat.com>
444 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
445 thing was implemented
447 2004-11-26 Havoc Pennington <hp@redhat.com>
449 * test/glib/test-profile.c: tweak a bit, add support for some
450 made-up minimal malloc overhead with plain sockets, since in
451 real life some sort of buffers are unavoidable thus we could
452 count them in the theoretical best case
454 2004-11-26 Havoc Pennington <hp@redhat.com>
456 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
457 where I was trying to cache one too many messages
459 2004-11-26 Havoc Pennington <hp@redhat.com>
461 * dbus/dbus-message.c: reimplement message cache as an array which
462 makes the cache about twice as fast and saves maybe 1.5% overall
464 2004-11-26 Havoc Pennington <hp@redhat.com>
466 * dbus/dbus-threads.c (init_global_locks): forgot to put the
467 message cache lock here
469 2004-11-26 Havoc Pennington <hp@redhat.com>
471 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
472 the "char byte_order" next to each other to save 4 bytes
473 (dbus_message_new_empty_header): reduce preallocation, since the
474 message cache should achieve a similar effect
475 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
476 message cache that keeps a few DBusMessage around in a pool,
477 another 8% speedup or so.
479 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
481 2004-11-25 Havoc Pennington <hp@redhat.com>
483 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
484 to write, without reading or blocking, try it before the poll()
485 and skip the poll() if nothing remains to write. This is about a
486 3% speedup in the echo client/server
488 2004-11-25 Havoc Pennington <hp@redhat.com>
490 The primary change here is to always write() once before adding
491 the write watch, which gives us about a 10% performance increase.
493 * dbus/dbus-transport-unix.c: a number of modifications to cope
494 with removing messages_pending
495 (check_write_watch): properly handle
496 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
497 messages_pending stuff
498 (check_read_watch): properly handle WAITING_FOR_MEMORY and
500 (unix_handle_watch): after writing, see if the write watch can be
502 (unix_do_iteration): assert that write_watch/read_watch are
503 non-NULL rather than testing that they aren't, since they
504 aren't allowed to be NULL. check_write_watch() at the end so
505 we add the watch if we did not finish writing (e.g. got EAGAIN)
507 * dbus/dbus-transport-protected.h: remove messages_pending call,
508 since it resulted in too much inefficient watch adding/removing;
509 instead we now require that the transport user does an iteration
510 after queueing outgoing messages, and after trying the first
511 write() we add a write watch if we got EAGAIN or exceeded our
512 max bytes to write per iteration setting
514 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
517 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
518 freed and then accessed, valgrind flagged this bug, fix it
520 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
521 as the last valid field plus 1, where really it is equal to the
522 last valid field. Corrects some message corruption issues.
524 * dbus/dbus-mainloop.c: verbosity changes
526 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
527 instead of aborting in one of the test codepaths
529 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
530 caused not printing the pid ever again if a verbose was missing
531 the newline at the end
532 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
534 * dbus/dbus-connection.c: verbosity changes;
535 (dbus_connection_has_messages_to_send): new function
536 (_dbus_connection_message_sent): no longer call transport->messages_pending
537 (_dbus_connection_send_preallocated_unlocked): do one iteration to
538 try to write() immediately, so we can avoid the write watch. This
539 is the core purpose of this patchset
540 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
541 dump the outgoing message queue, so nobody will get confused
542 trying to send them or thinking stuff is pending to be sent
544 * bus/test.c: verbosity changes
546 * bus/driver.c: verbosity/assertion changes
548 * bus/dispatch.c: a bunch of little tweaks to get it working again
549 because this patchset changes when/where you need to block.
551 2004-11-23 Havoc Pennington <hp@redhat.com>
553 * test/glib/test-profile.c: modify to accept a plain_sockets
554 argument in which case it will bench plain sockets instead of
555 libdbus, for comparison purposes.
557 2004-11-22 Havoc Pennington <hp@redhat.com>
559 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
560 threads for more time, so sysprof can get a grip on it.
562 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
565 2004-11-13 Havoc Pennington <hp@redhat.com>
567 * test/glib/test-profile.c: fix this thing up a bit
569 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
570 preallocation sizes by a fair bit; not sure if this will be an
571 overall performance win or not, but it does reduce reallocs.
573 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
574 the test hack that forced constant realloc if asserts are
575 disabled, so we can profile sanely. Sprinkle in some
576 _DBUS_UNLIKELY() which are probably pointless, but before I
577 noticed the real performance problem I put them in.
578 (_dbus_string_validate_utf8): micro-optimize this thing a little
579 bit, though callgrind says it didn't help; then special-case
580 ascii, which did help a lot; then be sure we detect nul bytes as
581 invalid, which is a bugfix.
582 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
583 superstition; use memset to nul the padding instead of a manual
585 (_dbus_string_get_length): inline this as a
586 macro; it showed up in the profile because it's used for loop
589 2004-11-10 Colin Walters <walters@verbum.org>
591 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
594 2004-11-09 Colin Walters <walters@verbum.org>
596 * dbus/dbus-string.c (_dbus_string_get_length): New
597 function, writes DBusString to C buffer.
599 * dbus/dbus-string.h: Prototype it.
601 * dbus/dbus-message.c (dbus_message_type_to_string): New
602 function, converts message type into C string.
604 * dbus/dbus-message.h: Prototype it.
606 * bus/selinux.c (bus_selinux_check): Take source pid,
607 target pid, and audit data. Pass audit data to
609 (log_audit_callback): New function, appends extra
611 (bus_selinux_allows_acquire_service): Also take
612 service name, add it to audit data.
613 (bus_selinux_allows_send): Also take message
614 type, interface, method member, error name,
615 and destination, and add them to audit data.
616 (log_cb): Initialize func_audit.
618 * bus/selinux.h (bus_selinux_allows_acquire_service)
619 (bus_selinux_allows_send): Update prototypes
621 * bus/services.c (bus_registry_acquire_service): Pass
622 service name to bus_selinux_allows_acquire_service.
624 * bus/bus.c (bus_context_check_security_policy): Pass
625 additional audit data. Move assignment of dest
628 2004-11-07 Colin Walters <walters@verbum.org>
630 * dbus/dbus-transport-unix.c (do_authentication): Always
631 initialize auth_completed.
633 2004-11-07 Colin Walters <walters@verbum.org>
635 * bus/bus.c (load_config): Break into three
636 separate functions: process_config_first_time_only,
637 process_config_every_time, and process_config_postinit.
638 (process_config_every_time): Move call of
639 bus_registry_set_service_context_table into
640 process_config_postinit.
641 (process_config_postinit): New function, does
642 any processing that needs to happen late
643 in initialization (and also on reload).
644 (bus_context_new): Instead of calling load_config,
645 open config parser here and call process_config_first_time_only
646 and process_config_every_time directly. Later, after
647 we have forked but before changing UID,
648 invoke bus_selinux_full_init, and then call
649 process_config_postinit.
650 (bus_context_reload_config): As in bus_context_new,
651 load parse file inside here, and call process_config_every_time
652 and process_config_postinit.
654 * bus/services.h, bus/services.c
655 (bus_registry_set_service_context_table): Rename
656 from bus_registry_set_sid_table. Take string hash from config
657 parser, and convert them here into SIDs.
659 * bus/config-parser.c (struct BusConfigParser): Have
660 config parser only store a mapping of service->context
662 (merge_service_context_hash): New function.
663 (merge_included): Merge context string hashes instead
664 of using bus_selinux_id_table_union.
665 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
666 simply create a new string hash.
667 (bus_config_parser_unref): Unref it.
668 (start_selinux_child): Simply insert strings into hash,
669 don't call bus_selinux_id_table_copy_over.
671 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
672 (bus_selinux_id_table_copy_over): Delete.
674 2004-11-03 Colin Walters <walters@verbum.org>
676 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
679 2004-11-03 Colin Walters <walters@verbum.org>
681 * bus/test-main.c (test_pre_hook): Fix test logic,
682 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
684 2004-11-02 Colin Walters <walters@redhat.com>
686 * bus/selinux.c (bus_selinux_init): Split into two functions,
687 bus_selinux_pre_init and bus_selinux_post_init.
688 (bus_selinux_pre_init): Just determine whether SELinux is
690 (bus_selinux_post_init): Do everything else.
692 * bus/main.c (main): Call bus_selinux_pre_init before parsing
693 config file, and bus_selinux_post_init after. This ensures that
694 we don't lose the policyreload notification thread that
695 bus_selinux_init created before forking previously.
697 * bus/test-main.c (test_pre_hook): Update for split.
699 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
701 Patch from Johan Fischer <linux@fischaz.com>
703 * mono/doc/Makefile.am (install-data-local): Added directory
706 2004-10-29 Colin Walters <walters@redhat.com>
708 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
709 parameter for fd to write pid to.
711 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
713 * bus/bus.c (bus_context_new): Pass print_pid_fd
714 to _dbus_become_daemon (bug #1720)
716 2004-10-29 Colin Walters <walters@redhat.com>
718 Patch from Ed Catmur <ed@catmur.co.uk>
720 * mono/doc/Makefile.am (install-data-local): Handle
723 2004-10-29 Colin Walters <walters@redhat.com>
725 * bus/.cvsignore, qt/.cvsignore: Update.
727 2004-10-29 Colin Walters <walters@redhat.com>
729 Patch from Kristof Vansant <de_lupus@pandora.be>
731 * configure.in: Detect Slackware.
732 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
733 * bus/rc.messagebus.in: New file.
735 2004-10-29 Colin Walters <walters@redhat.com>
737 * tools/dbus-monitor.c (filter_func): Return
738 DBUS_HANDLER_RESULT_HANDLED in filter function
740 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
742 2004-10-29 Colin Walters <walters@redhat.com>
744 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
746 * bus/services.c (bus_registry_acquire_service):
747 Correctly retrieve service name from DBusString
750 2004-10-29 Colin Walters <walters@redhat.com>
752 * dbus/dbus-glib.h: Update documentation to not
753 refer to internal APIs.
755 2004-10-27 Joe Shaw <joeshaw@novell.com>
757 * mono/Arguments.cs (GetDBusTypeConstructor):
758 type.UnderlyingSystemType will return "System.Byte" if you do it
759 on "byte[]", which is not what we want. So check the type.IsArray
760 property and use System.Array instead.
762 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
764 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
765 the DBusUserInfo structure since this is passed into the function.
766 This would cause a double free when the function that allocated
767 the structure would try to free it when an error occured.
769 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
770 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
771 for service activation to avoid 32bit/64bit parallel install issues
773 2004-10-21 Colin Walters <walters@verbum.org>
775 * AUTHORS: Fix my email address, the @gnu.org one
776 has been bouncing for some time. Also add J5.
778 2004-10-21 Colin Walters <walters@verbum.org>
780 * dbus/dbus-transport-unix.c (do_authentication): Return
781 authentication status to callers.
782 (unix_handle_watch): If we completed authentication this round,
783 don't do another read. Instead wait until the next iteration,
784 after we've read any pending data in the auth buffer.
785 (unix_do_iteration): Ditto.
786 (unix_handle_watch): Updated for new do_authentication prototype.
788 2004-10-18 Colin Walters <walters@verbum.org>
790 * bus/selinux.c (bus_selinux_enabled): Handle
791 --disable-selinux case.
793 2004-10-18 Colin Walters <walters@verbum.org>
795 * bus/selinux.h: Add bus_selinux_enabled.
797 * bus/selinux.c (bus_selinux_enabled): Implement it.
799 * bus/config-parser.c (struct include): Add
800 if_selinux_enabled member.
801 (start_busconfig_child): Parse if_selinux_enabled
802 attribute for include.
803 (bus_config_parser_content): Handle it.
805 * bus/session.conf.in, bus/system.conf.in: Add
806 inclusion of context mapping to default config files;
807 conditional on SELinux being enabled.
809 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
811 * test/data/invalid-config-files/badselinux-1.conf,
812 test/data/invalid-config-files/badselinux-2.conf:
813 Test files for bad syntax.
815 2004-10-17 Colin Walters <walters@verbum.org>
817 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
818 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
819 format specifier mismatches.
821 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
823 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
826 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
827 pointer (bug #1540, Leonardo Boiko).
829 2004-09-28 Jon Trowbridge <trow@ximian.com>
831 * mono/BusDriver.cs: Changed BusDriver struct to remove
832 the ServiceCreated and ServiceDeleted events and replace them
833 with the new ServiceOwnerChanged event.
835 * mono/example/BusListener.cs: Added a new example program,
836 which listens for and reports any ServiceOwnerChanged events
839 * mono/example/Makefile.am (DESTDIR): Build changes for the
840 new BusListener.cs example.
842 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
844 * bus/signals.c (bus_match_rule_parse): validate the components of
845 match rules (bug #1439).
847 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
849 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
851 * doc/dbus-specification.xml: document ServiceOwnerChanged
854 * bus/driver.c, bus/driver.h, bus/services.c: Use
855 ServiceOwnerChanged signal instead of ServiceCreated and
858 * bus/dispatch.c: update testcase for the new signal.
860 2004-09-20 Jon Trowbridge <trow@ximian.com>
862 Patch from Nat Friedman <nat@novell.com>
864 * mono/Makefile.am: A number of small build fixes to allow "make
865 distcheck" to succeed.
867 * mono/example/Makefile.am: "make distcheck" fixes.
869 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
872 * test/Makefile.am: "make distcheck" fixes.
874 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
876 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
878 * doc/busconfig.dtd: update the DTD for the at_console attribute.
880 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
881 messages after the first one (bug #1389).
883 * bus/dispatch.c (check_double_hello_message): add a test case for
884 the double hello message bug.
885 (check_existent_service_activation): fix check of spawning error.
887 2004-09-16 David Zeuthen <david@fubar.dk>
889 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
891 2004-09-12 David Zeuthen <david@fubar.dk>
893 Patch from Kay Sievers <kay.sievers@vrfy.org>
895 * bus/bus.c (bus_context_new):
899 Add commandline option --nofork to override configuration file
902 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
904 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
905 compilers don't like it (bug #974).
907 2004-09-04 Harald Fernengel <harry@kdevelop.org>
909 * qt/connection.*: Applied patch by Jérôme Lodewyck
910 <lodewyck@clipper.ens.fr> to integrate an existing
911 connection into the Qt eventloop
913 2004-08-30 Jon Trowbridge <trow@ximian.com>
915 * mono/BusDriver.cs: Added. This is a class for interacting with
916 the org.freedesktop.DBus service.
918 * mono/Message.cs: Added a mechanism to expose the message that is
919 currently being dispatched via the static Message.Current
920 property. Added Message.Sender and Message.Destination
923 * mono/Handler.cs: Expose the dispatched message via
924 Message.Current when handling method calls.
926 * mono/Service.cs: Expose the dispatched message via
927 Message.Current when handling signal emissions.
929 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
930 Connection.BaseService property.
932 2004-08-28 Havoc Pennington <hp@redhat.com>
934 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
936 More fixes from Steve Grubb
938 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
939 (_dbus_listen_tcp_socket): fix fd leak
941 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
942 EINTR to a bit lower in the code
944 2004-08-26 Jon Trowbridge <trow@ximian.com>
946 * bus/driver.c (bus_driver_handle_service_exists): Respond with
947 TRUE if we are inquiring about the existence of the built-in
948 org.freedesktop.DBus service.
950 2004-08-25 John Palmieri <johnp@redhat.com>
951 * bus/config-parser.c:
952 (struct PolicyType): Add POLICY_CONSOLE
953 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
954 (start_busconfig_child): Sets up console element when
955 <policy at_console=""> is encountered in a policy file
956 (append_rule_from_element): Convert console elements to console
960 (bus_policy_create_client_policy): Add console rules to the client
961 policy based on if the client is at the console
962 (bus_policy_append_console_rule): New function for adding a
963 console rule to a policy
964 (bus_policy_merge): Handle console rule merging
966 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
967 where we check for console user files
969 * dbus/dbus-sysdeps.c:
970 (_dbus_file_exists): New function which checks if the given
972 (_dbus_user_at_console): New function which does the system
973 specific process of checking if the user is at the console
975 * dbus/dbus-userdb.c:
976 (_dbus_is_console_user): New function converts a UID to user name
977 and then calls the system specific _dbus_user_at_console to
978 see if the user is at the console and therefor a console user
980 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
982 * bus/config-parser.c (set_limit):
983 * bus/dbus-daemon-1.1.in:
984 * test/data/valid-config-files/many-rules.conf: set the
985 max_match_rules_per_connection limt from the config file.
987 * doc/busconfig.dtd: update the DTD.
989 * bus/driver.c: remove some unused variables.
991 2004-08-24 Mikael Hallendal <micke@imendio.com>
993 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
994 it's been replaced by dbus_g_bus_get
996 2004-08-23 Colin Walters <walters@redhat.com>
998 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1000 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
1002 * bus/selinux.c: Create a thread for policy reload notification.
1003 (bus_selinux_get_policy_root): Implement.
1005 * bus/config-parser.c (start_busconfig_child)
1006 (bus_config_parser_content): Support SELinux-root relative
1009 * configure.in <HAVE_SELINUX>: Add -lpthread.
1011 * bus/test-main.c (test_pre_hook, test_post_hook): New.
1012 (test_post_hook): Move memory checking into here.
1013 (test_pre_hook, test_post_hook): Move SELinux checks in
1014 here, but conditional on a DBUS_TEST_SELINUX environment
1015 variable. Unfortunately we can't run the SELinux checks
1016 as a normal user, since they won't have any permissions
1017 for /selinux. So this will have to be tested manually
1018 for now, until we have virtualization for most of
1021 2004-08-23 Havoc Pennington <hp@redhat.com>
1023 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
1024 drop supplementary groups, suggested by Steve Grubb
1026 2004-08-20 Colin Walters <walters@redhat.com>
1028 * bus/config-parser.c (start_busconfig_child): Remove some unused
1031 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
1034 2004-08-17 Joe Shaw <joeshaw@novell.com>
1036 * configure.in: If --enable-mono is passed in, if we can't find
1039 * mono/Makefile.am: Use /gacutil to install assemblies into the
1042 2004-08-12 Havoc Pennington <hp@redhat.com>
1044 * NEWS: update for 0.22
1046 * configure.in: release 0.22
1048 2004-08-11 Colin Walters <walters@redhat.com>
1050 * tools/dbus-send.c (main, usage): Add --reply-timeout
1053 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
1055 * bus/bus.c (process_config_first_time_only): get rid of an unused
1056 DBusError that was causing a memoy leak (bug #989).
1058 * dbus/dbus-keyring.c, dbus/dbus-message.c:
1059 fix compilation on Solaris/Forte C (bug #974)
1061 * bus/main.c (main): plug two minuscule memleaks.
1063 2004-08-10 Havoc Pennington <hp@redhat.com>
1065 * doc/dbus-tutorial.xml: add some more info on GLib bindings
1067 2004-08-09 Havoc Pennington <hp@redhat.com>
1069 * COPYING: switch to Academic Free License version 2.1 instead of
1070 2.0, to resolve complaints about patent termination clause.
1072 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
1074 * README: added documentation for the --enable-python
1077 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1079 * bus/config-parser.c (bus_config_parser_new): fix an invalid
1080 _unref in the SELinux support.
1082 * doc/busconfig.dtd: update DTD for SELinux support.
1084 * bus/config-loader-libxml.c: fix error handler and parser
1085 initialisation/cleanup. OOM test now works with libxml2 HEAD.
1087 * configure.in: remove the warning about libxml2.
1089 * dbus/dbus-bus.c: silence doxygen warning.
1091 2004-07-31 Colin Walters <walters@redhat.com>
1093 * configure.in: Move #error in SELinux check to its own line.
1095 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1097 * dbus/dbus-internals.h (_DBUS_SET_OOM):
1098 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1101 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1102 broken by the change in the _SET_OOM macros.
1104 2004-07-31 Colin Walters <walters@redhat.com>
1106 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1109 2004-07-31 Colin Walters <walters@redhat.com>
1111 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1112 to correctly detect DBUS__ACQUIRE_SVC. Also add an
1115 2004-07-24 Havoc Pennington <hp@redhat.com>
1117 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1119 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1122 * configure.in: add --enable-selinux
1124 * bus/policy.c (bus_policy_merge): add FIXME to a comment
1126 * bus/main.c (main): initialize and shut down selinux
1128 * bus/connection.c: store SELinux ID on each connection, to avoid
1129 repeated getting of the string context and converting it into
1132 * bus/bus.c (bus_context_get_policy): new accessor, though it
1134 (bus_context_check_security_policy): check whether the security
1135 context of sender connection can send to the security context of
1136 recipient connection
1138 * bus/config-parser.c: add parsing for <selinux> and <associate>
1140 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1141 implement dbus_connection_get_unix_fd()
1143 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1144 function, used by the selinux stuff
1146 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
1148 * bus/config-loader-libxml.c: complete the implementation of
1149 libxml backend for config file loader. Doesn't work with full OOM
1152 * configure.in: change error when selecting libxml into a warning.
1154 * test/data/invalid-config-files: add two non-well-formed XML
1157 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1159 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1160 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1161 be necessary to read all the buffer. (bug #894)
1163 * bus/activation.c (bus_activation_activate_service): fix a
1164 potential assertion failure (bug #896). Small optimization in the
1165 case of auto-activation messages.
1167 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1168 add test case for byte-through-vararg bug (#901). patch by Kimmo
1171 2004-07-28 Anders Carlsson <andersca@gnome.org>
1174 * python/dbus_bindings.pyx.in:
1175 Add dbus.init_gthreads (), allow emit_signal to pass
1176 arguments to the signal.
1178 2004-07-24 Havoc Pennington <hp@redhat.com>
1180 * AUTHORS: add some people, not really comprehensively, let me
1181 know if I missed you
1183 2004-07-24 Havoc Pennington <hp@redhat.com>
1185 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1188 * test/Makefile.am (DIST_SUBDIRS): here also
1190 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1192 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1193 breaking build on Solaris, reported by Farhad Saberi on the ML.
1195 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1196 va_arg invocation to account for integer promotion in the case of
1197 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1199 * bus/services.c (bus_service_remove_owner): fix bug #902, use
1200 _dbus_list_get_first_link, not _dbus_list_get_first.
1202 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1204 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1205 handler functions so that the asserts in _dbus_object_subtree_unref
1208 * dbus/dbus-transport-unix.c (do_reading):
1209 _dbus_transport_queue_messages return value is of type
1210 dbus_bool_t, not DBusDispatchStatus.
1212 2004-07-19 David Zeuthen <david@fubar.dk>
1214 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1217 (check_get_connection_unix_user): Debug says GetProperty; but the
1218 method is called GetConnectionUnixUser
1219 (check_get_connection_unix_process_id): New function
1220 (bus_dispatch_test): Actually call check_get_connection_unix_user();
1221 also call check_get_connection_unix_process_id()
1224 (bus_driver_handle_get_connection_unix_process_id): New function,
1225 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1229 (handle_server_data_external_mech): Set pid from the credentials
1230 obtained from the socket
1232 * dbus/dbus-connection.c:
1233 (dbus_connection_get_unix_process_id): New function
1235 * dbus/dbus-connection.h:
1236 Add prototype for dbus_connection_get_unix_process_id
1238 * dbus/dbus-transport.c:
1239 (_dbus_transport_get_unix_process_id): New function
1241 * dbus/dbus-transport.h:
1242 Add prototype for _dbus_transport_get_unix_process_id
1244 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
1246 * dbus/dbus-message.c: Message counter fix, patch by Christian
1247 Hammond <chipx86@gnupdate.org>
1249 2004-07-18 Seth Nickell <seth@gnome.org>
1252 * python/dbus_bindings.pyx.in:
1253 * python/tests/test-client.py:
1255 Add dbus.ByteArray and dbus_bindings.ByteArray
1256 types so that byte streams can be passed back.
1258 Give jdahlin the heaps of credit that are so
1261 2004-07-12 Seth Nickell <seth@gnome.org>
1265 Add message argument to the default object_method_handler
1268 * python/dbus_bindings.pyx.in:
1270 Automatically return NIL when passed an empty list
1271 (we can't pass back a list since lists are typed
1272 and we don't have any idea what type the the client
1273 intended the list to be... :-( )
1275 2004-07-10 Seth Nickell <seth@gnome.org>
1277 * python/examples/Makefile.am:
1279 Fix distcheck breakage caused by new examples.
1281 2004-07-10 Seth Nickell <seth@gnome.org>
1285 Add "message" argument to service-side dbus.Object
1286 methods. This will break existing services written
1287 using the python bindings, but will allow extraction
1288 of all the message information (e.g. who its from).
1290 Add improved "object oriented" signal handling/emission.
1292 * python/examples/example-service.py:
1296 * python/examples/example-signal-emitter.py:
1297 * python/examples/example-signal-recipient.py:
1299 Two new examples that show how to emit and receive
1300 signals using the new APIs.
1302 * python/examples/example-signals.py:
1303 * python/examples/gconf-proxy-service.py:
1304 * python/examples/gconf-proxy-service2.py:
1306 Add "message" argument to service methods.
1308 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
1310 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1311 * dbus/bus.c (dbus_bus_get_unix_user)
1312 * doc/dbus-specification.xml: implement GetConnectionUnixUser
1313 method of org.freedesktop.DBus interface.
1315 * bus/dispatch.c: test case
1317 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
1319 * python/Makefile.am: switched include directory from glib/ to dbus/
1320 since dbus-glib.h moved
1322 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1324 * configure.in: prevent building the gcj stuff and libxml loader
1325 since they are broken.
1327 2004-06-20 Havoc Pennington <hp@redhat.com>
1329 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
1330 codes from the dbus error names
1332 * glib/dbus-glib.h: move to subdir dbus/ since it's included
1333 as dbus/dbus-glib.h and that breakage is now visible due to
1334 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1336 * glib/dbus-glib.h: s/gproxy/g_proxy/
1338 * dbus/dbus-shared.h: new header to hold stuff shared with
1341 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1344 * glib/dbus-glib.h (dbus_set_g_error): move to
1345 dbus-glib-lowlevel.h
1347 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1348 of stuff to enable this
1350 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1352 * a bunch of other changes with the same basic "separate glib
1353 bindings from dbus.h" theme
1355 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1357 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1359 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1361 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1363 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1364 the reply value of the ServiceExists message.
1366 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1368 * python/dbus_bindings.pyx.in: No longer need to parse path
1369 elements and pass them as arrays of strings. The C API now
1370 accepts plain path strings.
1371 (_build_parsed_path): removed
1373 2004-06-07 Havoc Pennington <hp@redhat.com>
1375 * doc/TODO: remove auto-activation item since it's done; sort
1376 items by importance/milestone
1378 2004-06-07 Havoc Pennington <hp@redhat.com>
1380 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1381 random signature when using REQUIRED_FIELDS (this hack won't work
1384 * dbus/dbus-message.c: change the signature to be a header field,
1385 instead of message->signature special-case string. Incremental
1386 step forward. Then we can fix up code to send the signature in the
1387 message, then fix up code to validate said signature, then fix up
1388 code to not put the typecodes inline, etc.
1389 (load_one_message): don't make up the signature after the fact
1390 (decode_header_data): require signature field for the known
1393 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1395 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1397 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1399 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1401 * mono/Handler.cs: Updated to follow new path argument for
1402 (un-)registering objects.
1404 * mono/example/Makefile.am:
1406 * configure.in: Bumped required version for mono and use new -pkg
1409 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1411 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1412 registration functions take the path argument as char* instead of
1415 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1416 split off the path decompostion part of
1417 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1420 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1422 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1424 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1425 machine approach. A state is implemented as a function that
1426 handles incoming events as specified for that state.
1428 * doc/dbus-specification.xml: Update auth protocol state machine
1429 specification to match implementation. Remove some leftover
1432 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1434 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1435 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1438 * Doxyfile.in: remove deprecated options.
1440 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1441 glib/test-thread.h, glib/test-thread-client.c,
1442 glib/test-thread-server.c, glib/test-profile.c,
1443 glib/test-dbus-glib.c: remove these unused files.
1445 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1447 * dbus/dbus-object-tree.c
1448 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1449 non-fallback handlers (bug #684).
1450 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1451 (find_subtree_recurse): report wether the returned subtree is an
1452 exact match or a "fallback" match higher up in the tree.
1453 (object_tree_test_iteration): update test case.
1455 2004-06-01 Seth Nickell <seth@gnome.org>
1457 * python/dbus_bindings.pyx.in:
1458 * python/tests/test-client.py:
1460 Round off basic type support. Add dicts (yay!), and
1461 remaining array types.
1463 Make MessageIter more general so it works for dicts too.
1465 Mark all loop variables as C integers.
1467 2004-05-31 Havoc Pennington <hp@redhat.com>
1469 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1472 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1474 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1475 option that runs the tests, and start filling in some code
1476 including for starters just dumping the interfaces to stdout
1478 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1480 * test/data/valid-introspection-files/lots-of-types.xml: test of
1481 an example introspection file
1483 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1486 2004-05-31 Seth Nickell <seth@gnome.org>
1488 * python/dbus_bindings.pyx.in:
1489 * python/tests/test-client.py:
1494 Fix string array memory trashing bug... oops...
1496 2004-05-30 Seth Nickell <seth@gnome.org>
1500 Add a nicer-but-less-flexible alternate API for handling
1501 calls to virtual objects in dbus.ObjectTree.
1503 Screw up the argument order to the dbus.Object constructor
1504 for consistency with dbus.ObjectTree (and to make dbus_methods
1505 optional for future extension)
1507 * python/examples/Makefile.am:
1508 * python/examples/gconf-proxy-service.py:
1509 * python/examples/gconf-proxy-service2.py:
1511 Alternate implementation of gconf-proxy-service using the
1512 nicer dbus.ObjectTree API.
1514 * python/examples/example-service.py:
1515 * python/tests/test-server.py
1517 Reverse the argument order to deal with dbus.Object constructor
1520 2004-05-30 Seth Nickell <seth@gnome.org>
1522 * python/examples/example-client.py:
1523 * python/examples/example-service.py:
1525 Take it back. Lists seem to work but they're broken
1526 in the test suite. Make the base examples use
1529 2004-05-30 Seth Nickell <seth@gnome.org>
1531 * python/dbus_bindings.pyx.in:
1532 * python/tests/test-client.py:
1534 Add some more tests and fix errors that crop up.
1535 Unfortunately, currently it seems like marshalling
1536 and unmarshalling of lists is completely broken :-(
1538 2004-05-30 Seth Nickell <seth@gnome.org>
1540 * python/dbus_bindings.pyx.in:
1542 Add support for ObjectPath type.
1546 Refactor message handling code to a common function.
1548 * python/tests/test-client.py:
1549 * python/tests/test-server.py:
1551 Add tests that check to make sure values of all types
1552 can be echoed from a service w/o mangling.
1554 2004-05-29 Seth Nickell <seth@gnome.org>
1558 Add ObjectTree class which allows implementation
1559 of trees of "virtual" objects. Basically the python
1560 wrapper for "register_fallback".
1562 * python/examples/Makefile.am
1563 * python/examples/gconf-proxy-client.py:
1564 * python/examples/gconf-proxy-service.py:
1566 Implement a simple GConf proxy service that supports
1567 get/set on string and int GConf keys using the ObjectTree.
1569 2004-05-29 Seth Nickell <seth@gnome.org>
1572 * python/examples/example-client.py:
1573 * python/examples/example-service.py:
1574 * python/examples/list-system-services.py:
1576 Add SessionBus, SystemBus and ActivationBus classes
1577 so you don't need to know the special little BUS_TYPE
1580 2004-05-29 Havoc Pennington <hp@redhat.com>
1582 * bus/config-parser.c (process_test_valid_subdir): temporarily
1583 stop testing config parser OOM handling, since expat has issues
1584 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1586 * bus/dbus-daemon-1.1.in: change requested_reply to
1587 send_requested_reply/receive_requested_reply so we can send the
1588 replies, not just receive them.
1590 * bus/config-parser.c: parse the new
1591 send_requested_reply/receive_requested_reply
1593 * bus/policy.c (bus_client_policy_check_can_send): add
1594 requested_reply argument and use it
1596 * bus/bus.c (bus_context_check_security_policy): pass through
1597 requested_reply status to message send check
1599 * bus/system.conf.in: adapt to requested_reply change
1601 2004-05-28 Havoc Pennington <hp@redhat.com>
1603 * test/glib/test-service-glib.c (main): remove unused variable
1605 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1607 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1608 from the enum, no longer in use.
1610 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1613 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1614 whether error_name passed in is a valid error name.
1616 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1618 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1619 OBJECT_PATH and OBJECT_PATH_ARRAY
1621 2004-05-28 Seth Nickell <seth@gnome.org>
1623 * python/examples/Makefile.am:
1625 Forget to add Makefile.am. Do not pass go.
1627 2004-05-28 Michael Meeks <michael@ximian.com>
1629 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1632 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1634 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1635 (_dbus_message_iter_get_basic_type_array): impl.
1636 drastically simplify ~all relevant _get methods to use these.
1637 (_dbus_message_iter_append_basic_array),
1638 (dbus_message_iter_append_basic): impl
1639 drastically simplify ~all relevant _append methods to use these.
1641 * dbus/dbus-message-builder.c (parse_basic_type)
1642 (parse_basic_array, lookup_basic_type): impl.
1643 (_dbus_message_data_load): prune scads of duplicate /
1646 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1647 (_dbus_demarshal_basic_type): implement,
1648 (demarshal_and_validate_len/arg): beef up debug.
1649 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1651 2004-05-27 Seth Nickell <seth@gnome.org>
1654 * python/Makefile.am:
1656 Include the example python apps in the tarball.
1658 * python/examples/list-system-services.py
1660 Add a python new example that fetches the list of services
1661 from the system bus.
1663 2004-05-27 Seth Nickell <seth@gnome.org>
1666 * python/dbus_bindings.pyx.in:
1668 Fix failure to notify that a signal was not handled,
1669 resulted in hung functions.
1671 2004-05-25 Colin Walters <walters@redhat.com>
1673 * tools/dbus-monitor.c (main): Monitor all types of messages.
1675 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1677 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1678 which unregisters the object path and disposes the handler.
1680 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1682 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1684 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1685 operands to && so we call dbus_message_iter_next () for the last
1688 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1690 * dbus/dbus-object-tree.c
1691 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1692 children even if the requested path isn't registered.
1693 (object_tree_test_iteration): test object_tree_list_registered.
1695 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1698 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1700 * doc/TODO: Remove resolved items.
1702 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1705 * bus/connection.c (bus_connections_expect_reply): Enforce the
1706 per-connection limit on pending replies.
1708 Patch from Jon Trowbridge <trow@ximian.com>:
1710 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1711 up a watch that triggers a config reload when one end of the pipe
1713 (signal_handler): Instead of doing the config reload in our SIGHUP
1714 handler, just write to the reload pipe and let the associated
1715 watch handle the reload when control returns to the main loop.
1717 * bus/driver.c (bus_driver_handle_reload_config): Added.
1718 Implements a ReloadConfig method for requesting a configuration
1719 file reload via the bus driver.
1721 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1723 * HACKING: Updated release instructions concerning the wiki page.
1725 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1727 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1728 filter against auth->allowed_mechs; we only add allowed mechs in
1729 record_mechanisms().
1731 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1732 ALLOWED_MECHS to auth-script format so we can set the list of
1735 * data/auth/client-out-of-mechanisms.auth-script: New test to
1736 check client disconnects when it is out of mechanisms to try.
1738 * dbus/dbus-auth.c (process_command): Remove check for lines
1739 longer that 1 MB; we only buffer up maximum 16 kB.
1741 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1742 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1743 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1744 assume there might be unused bytes.
1746 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1747 client-out-of-mechs, it is handled in process_reject(). Move check
1748 for max failures to send_rejected(), as it's a server-only thing.
1750 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1751 send_auth(), send_data(), send_rejected(), send_error(),
1752 send_ok(), send_begin() and send_cancel().
1754 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1756 Remove base64 encoding, replace with hex encoding. Original patch
1757 from trow@ximian.com, added error handling.
1759 * dbus/dbus-string.c (_dbus_string_base64_encode)
1760 (_dbus_string_base64_decode): Remove.
1761 (_dbus_string_hex_decode): Add end_return argument so we can
1762 distinguish between OOM and invalid hex encoding.
1763 (_dbus_string_test): Remove base64 tests and add test case for
1766 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1767 Replace base64 with hex.
1769 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1770 for invalid hex encoded data in auth protocol.
1772 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1774 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1777 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1779 * mono/dbus-sharp.dll.config.in: Added for GAC
1780 * mono/dbus-sharp.snk: Added for GAC
1781 * mono/Assembly.cs.in: Added for GAC
1782 * mono/Makefile.am: Changes for GAC installation
1783 * configure.in: Added refs for dbus-sharp.dll.config.in and
1784 Assembly.cs.in. More fixes for mono testing
1785 * mono/example/Makefile.am: Changed var to CSC
1786 * Makefile.am: Changed flag name to DBUS_USE_CSC
1788 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1790 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1791 * mono/doc/*: Added documentation framework
1792 * configure.in: Added monodoc check
1793 * README: Added description of mono configure flags
1795 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1797 * doc/dbus-specification.xml: Added a "Required" column to the
1798 header fields table and changed the "zero or more" verbage in
1799 the above paragraph to read "The header must contain the required
1800 named header fields and zero or more of the optional named header
1802 * test/data/invalid-messages/*.message: Added the required PATH
1803 named header field to the tests so that they don't fail on
1804 'Missing path field'
1806 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1808 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1809 the stack by implicitly defining variable and parameter types and
1810 removing the hack of defining C pointers as python objects and later
1813 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1815 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1817 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1819 * mono/DBusType/Dict.cs: Handle empty dicts
1820 * mono/DBusType/Array.cs: Handle empty arrays
1821 * mono/Arguments.cs: Handle empty arguments
1823 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1825 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1828 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1830 * test/data/valid-messages/standard-*.message: Update message
1831 test scripts to new header field names.
1833 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1835 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1836 overflow to times_we_did_each_thing array which would chop off the
1837 first character of the failure_dir string. Increased the size of
1838 the array to 7 to reflect the number of random mutation functions
1841 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1843 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1844 unix_server->watch here, it is unreffed in disconnect.
1845 (_dbus_server_new_for_tcp_socket): convert NULL host to
1846 "localhost" here so we don't append NULL to address.
1848 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1849 various addresses, including tcp with no explicit host.
1851 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1853 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1854 fix incorrect setting of .name_offset in the HeaderField (it was
1855 off by two bytes, positioned right after the name and typecode)
1857 * bus/bus.c (bus_context_new, bus_context_unref): test before
1858 calling dbus_server_free_data_slot and _dbus_user_database_unref
1859 in case of an error.
1861 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1864 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1866 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1867 _dbus_poll() instead of select().
1869 2004-04-15 Jon Trowbridge <trow@ximian.com>
1871 * bus/main.c (signal_handler): Reload the configuration files
1873 (main): Set up our SIGHUP handler.
1875 * bus/bus.c (struct BusContext): Store the config file, user and
1876 fork flag in the BusContext.
1877 (process_config_first_time_only): Added. Contains the code
1878 (previously in bus_context_new) for setting up the BusContext from
1879 the BusConfigParser that should only be run the first time the
1880 config files are read.
1881 (process_config_every_time): Added. Contains the code (previously
1882 in bus_context_new) for setting up the BusContext from the
1883 BusConfigParser that should be run every time the config files are
1885 (load_config): Added. Builds a BusConfigParser from the config
1886 files and passes the resulting structure off to
1887 process_config_first_time_only (assuming this is the first time)
1888 and process_config_every_time.
1889 (bus_context_new): All of the config-related code has been moved
1890 to process_config_first_time_only and process_config_every_time.
1891 Now this function just does the non-config-related initializations
1892 and calls load_config.
1893 (bus_context_reload_config): Added.
1895 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1897 * bus/driver.c (bus_driver_handle_get_service_owner):
1898 implement a GetServiceOwner method.
1899 * doc/dbus-specification.xml: document it.
1900 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1902 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1903 implement, using the bus GetServiceOwner method.
1905 * test/glib/test-dbus-glib.c:
1906 use dbus_gproxy_new_for_service_owner so that we can receive the
1909 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1911 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1912 dbus/dbus-message.c, dbus/dbus-protocol.h
1913 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1915 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1916 dbus/dbus-message.c, dbus/dbus-protocol.h
1917 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1919 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1920 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1921 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1923 * doc/dbus-specification.xml (Header Fields Table):
1924 s/SERVICE/DESTINATION
1925 s/SENDER_SERVICE/SENDER
1928 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1930 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1933 2004-04-13 Michael Meeks <michael@ximian.com>
1935 * glib/dbus-gobject.c (handle_introspect): split out
1936 (introspect_properties): this.
1937 (handle_introspect): implement this.
1939 * test/glib/Makefile.am: use the absolute path so the bus
1940 daemon's chdir ("/") doesn't kill us dead.
1942 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1944 2004-04-12 Jon Trowbridge <trow@ximian.com>
1946 * bus/config-parser.c (struct BusConfigParser): Added
1947 included_files field.
1948 (seen_include): Added. Checks whether or not a file has already
1949 been included by any parent BusConfigParser.
1950 (bus_config_parser_new): Copy the parent's included_files.
1951 (include_file): Track which files have been included, and fail on
1952 circular inclusions.
1953 (process_test_valid_subdir): Changed printf to report if we are
1954 testing valid or invalid conf files.
1955 (all_are_equiv): Changed printf to be a bit clearer about
1956 what we are actually doing.
1957 (bus_config_parser_test): Test invalid configuration files.
1959 2004-04-09 Jon Trowbridge <trow@ximian.com>
1961 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1962 argument. If non-null, the newly-constructed BusConfigParser will
1963 be initialized with the parent's BusLimits instead of the default
1965 (include_file): When including a config file, pass in
1966 the current parser as the parent and then copy the BusLimits
1967 from the included BusConfigParser pack to the current parser.
1968 (process_test_valid_subdir): Renamed from process_test_subdir.
1969 (process_test_equiv_subdir): Added. Walks through a directory,
1970 descending into each subdirectory and loading the config files
1971 it finds there. If any subdirectory contains two config files
1972 that don't produce identical BusConfigParser structs, fail.
1973 For now, the BusConfigParser's BusPolicies are not compared.
1974 (bus_config_parser_test): Call both process_test_valid_subdir and
1975 process_test_equiv_subdir.
1977 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1978 argument and pass it along to the call to bus_config_parser_new.
1979 Also made a few small changes to allow this code to compile.
1981 * bus/config-loader-expat.c (bus_config_load): Take a parent
1982 argument and pass it along to the call to bus_config_parser_new.
1984 * bus/bus.c (bus_context_new): Load the config file
1985 with a NULL parent argument.
1987 2004-03-29 Michael Meeks <michael@ximian.com>
1989 * glib/dbus-gobject.c (introspect_properties): split
1990 out, fix mangled 'while' flow control.
1991 (introspect_signals): implement.
1992 (handle_introspect): update.
1994 2004-03-29 Michael Meeks <michael@ximian.com>
1996 * glib/dbus-gobject.c (set_object_property): split out /
1997 re-work, use the property type, and not the message type(!)
1998 (get_object_property): ditto.
2000 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
2001 (dbus_gvalue_marshal): make this code re-usable, needed
2002 for signals too, also on both proxy and server side.
2003 Re-write for more efficiency / readability.
2005 2004-03-29 Michael Meeks <michael@ximian.com>
2007 * dbus/dbus-message.c
2008 (dbus_message_new_error_printf): impl.
2010 * dbus/dbus-connection.c
2011 (dbus_connection_unregister_object_path): fix warning.
2013 * configure.in: fix no-mono-installed situation.
2015 2004-03-27 Havoc Pennington <hp@redhat.com>
2017 Patch from Timo Teräs:
2019 * tools/dbus-send.c (main): if --print-reply, assume type is
2020 method call; support boolean type args
2022 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
2023 bunch of memleak and logic bugs
2025 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2027 * mono/Arguments.cs:
2028 * mono/Introspector.cs:
2030 * mono/InterfaceProxy.cs:
2032 * mono/ProxyBuilder.cs:
2034 Added InterfaceProxy class to avoid building proxies for every
2038 * dbus-message.c (dbus_message_append_args_valist)
2039 (dbus_message_iter_get_object_path)
2040 (dbus_message_iter_get_object_path_array)
2041 (dbus_message_iter_append_object_path)
2042 (dbus_message_iter_append_object_path_array):
2043 Added object_path iter functions to handle OBJECT_PATH arguments
2045 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
2047 First checkin of mono bindings.
2050 Build stuff for the bindings
2051 * dbus-sharp.pc.in: Added for pkgconfig
2053 2004-03-21 Havoc Pennington <hp@redhat.com>
2055 * test/test-service.c (main): remove debug spew
2057 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2059 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
2062 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
2063 (dbus_message_iter_init_array_iterator)
2064 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
2065 indicate whether the iterator is empty
2067 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
2070 2004-03-19 Havoc Pennington <hp@redhat.com>
2072 * NEWS: 0.21 updates
2074 * configure.in: 0.21
2076 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2078 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2079 you don't need pyrex to make dist
2081 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2084 2004-03-18 Richard Hult <richard@imendio.com>
2086 * dbus/dbus-message.c (dbus_message_get_auto_activation)
2087 (dbus_message_set_auto_activation): Add doxygen docs.
2089 2004-03-16 Richard Hult <richard@imendio.com>
2091 * bus/activation.c: (bus_activation_service_created),
2092 (bus_activation_send_pending_auto_activation_messages),
2093 (bus_activation_activate_service):
2095 * bus/dispatch.c: (bus_dispatch),
2096 (check_nonexistent_service_auto_activation),
2097 (check_service_auto_activated),
2098 (check_segfault_service_auto_activation),
2099 (check_existent_service_auto_activation), (bus_dispatch_test):
2100 * bus/driver.c: (bus_driver_handle_activate_service):
2101 * bus/services.c: (bus_registry_acquire_service):
2102 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2103 (dbus_message_get_auto_activation):
2104 * dbus/dbus-message.h:
2105 * dbus/dbus-protocol.h: Implement auto-activation.
2107 * doc/dbus-specification.xml: Add auto-activation to the spec.
2109 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
2111 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2112 fix a bug with CUSTOM types.
2114 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2115 a unit test for this bug (used to fail).
2117 2004-03-12 Mikael Hallendal <micke@imendio.com>
2120 (babysitter_watch_callback): notify all pending activations waiting for
2121 the same exec that the activation failed.
2122 (bus_activation_activate_service): shortcut the activation if we
2123 already waiting for the same executable to start up.
2125 2004-03-12 Mikael Hallendal <micke@imendio.com>
2128 - Added service file reloading.
2129 Each service files directory is kept in an hash table in
2130 BusActivation and each BusActivationEntry knows what .service-file it
2131 was read from. So when you try to activate a service the bus will
2132 check if it's been updated, removed or if new .service-files has
2134 - Test code at the bottom for the service file reloading.
2135 * bus/test-main.c: (main):
2137 - added service reloading test.
2138 * dbus/dbus-sysdeps.c:
2139 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2141 2004-03-08 Michael Meeks <michael@ximian.com>
2143 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
2144 bail immediately if disconnected, to avoid busy loop.
2146 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2147 cleanup cut/paste/inefficiency.
2149 2004-03-01 David Zeuthen <david@fubar.dk>
2151 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2152 bug where args were used twice. This bug resulted in a segfault
2153 on a Debian/PPC system when starting the messagebus daemon. Include
2154 dbus-sysdeps.h for DBUS_VA_COPY
2156 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2158 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2159 appropriate va_copy implementation. From GLib
2161 2004-02-24 Joe Shaw <joe@ximian.com>
2163 * bus/services.c (bus_registry_acquire_service): We need to pass
2164 in the service name to dbus_set_error() to prevent a crash.
2166 2003-12-26 Anders Carlsson <andersca@gnome.org>
2168 * AUTHORS: Reveal my True identity.
2170 2003-12-17 Mikael Hallendal <micke@imendio.com>
2172 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2173 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2175 2003-12-13 Mikael Hallendal <micke@imendio.com>
2177 * doc/TODO: Added not about better error check of configuration files.
2179 2003-12-02 Richard Hult <richard@imendio.com>
2181 * Update AFL version to 2.0 throughout the source files to reflect
2182 the update that was done a while ago.
2184 2003-12-02 Richard Hult <richard@imendio.com>
2186 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2187 wrote_dict_key to FALSE on the iter that the dict is appended to,
2188 just like when appending other types. Fixes a bug where a dict
2189 couldn't be put inside a dict.
2190 (dbus_message_iter_append_dict_key): Fix typo in warning message.
2191 (message_iter_test, _dbus_message_test): Add test case for dict
2194 2003-12-01 David Zeuthen <david@fubar.dk>
2196 * python/dbus.py: Add the actual message when calling the reciever
2197 of a signal such that parameters can be inspected. Add the method
2198 remove_signal_receiver
2200 2003-11-26 Mikael Hallendal <micke@imendio.com>
2204 * glib/*.[ch]: Made ref functions return the pointer
2206 2003-11-25 Zack Rusin <zack@kde.org>
2208 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2210 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
2213 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
2214 the Integrator and to better fit with the server,
2216 2003-11-24 Zack Rusin <zack@kde.org>
2218 * qt/connection.h, qt/connection.cpp: removing initDbus method since
2219 the integrator handles it now
2221 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2222 since QTimer wasn't really meant to be used the way DBusTimeout is
2224 2003-11-24 Zack Rusin <zack@kde.org>
2226 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
2227 Integrator class which integrates D-BUS with the Qt event loop,
2229 * qt/connection.h, qt/connection.cpp: Move all the code which
2230 was dealing with D-BUS integration to the Integrator class,
2231 and start using Integrator,
2233 2003-11-23 Zack Rusin <zack@kde.org>
2235 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
2238 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2239 switching namespaces to DBusQt, reworking the class,
2241 * Makefile.cvs: switching dependencies so that it matches KDE
2244 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
2247 2003-11-19 Havoc Pennington <hp@redhat.com>
2251 * configure.in: bump version to 0.20
2253 * configure.in (have_qt): add yet another place to look for qt
2254 (someone hand trolltech a .pc file...)
2256 2003-11-01 Havoc Pennington <hp@redhat.com>
2258 * doc/dbus-specification.xml: add state machine docs on the auth
2259 protocol; just a first draft, I'm sure it's wrong.
2261 2003-10-28 David Zeuthen <david@fubar.dk>
2263 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2264 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2266 2003-10-28 Havoc Pennington <hp@redhat.com>
2268 * dbus/dbus-message.c (get_next_field): delete unused function
2270 2003-10-28 Havoc Pennington <hp@redhat.com>
2272 * bus/expirelist.c (do_expiration_with_current_time): detect
2273 failure of the expire_func due to OOM
2275 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2277 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2278 NoReply error that's now created by the bus when the service exits
2280 2003-10-28 Havoc Pennington <hp@redhat.com>
2282 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2283 tests for set_path, set_interface, set_member, etc.
2285 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2287 * dbus/dbus-message.c (set_string_field): always just delete and
2288 re-append the field; accept NULL for deletion
2289 (re_align_fields_recurse): reimplement
2291 2003-10-26 Havoc Pennington <hp@redhat.com>
2293 * dbus/dbus-connection.c: fix docs to properly describe the
2294 disconnected message
2295 (_dbus_connection_notify_disconnected): remove this function;
2296 we can't synchronously add the disconnected message, we have to
2297 do it after we've queued any remaining real messages
2298 (_dbus_connection_get_dispatch_status_unlocked): queue the
2299 disconnect message only if the transport has finished queueing all
2300 its real messages and is disconnected.
2301 (dbus_connection_disconnect): update the dispatch status here
2303 2003-10-22 Havoc Pennington <hp@redhat.com>
2305 * bus/bus.c (bus_context_check_security_policy): fix up assertion
2307 * bus/connection.c (bus_transaction_send_from_driver): set the
2308 destination to the connection's base service
2310 2003-10-20 Havoc Pennington <hp@redhat.com>
2312 hmm, make check is currently not passing.
2314 * doc/dbus-specification.xml: add requirement that custom type
2315 names follow the same rules as interface names.
2317 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2318 duplication and allow 'c' to be 'custom'; dict is now 'm' for
2321 * doc/dbus-specification.xml: update type codes to match
2322 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2323 CUSTOM. Add type OBJECT_PATH to the spec.
2325 2003-10-17 Havoc Pennington <hp@redhat.com>
2327 * bus/driver.c (create_unique_client_name): use "." as separator
2328 in base service names instead of '-'
2330 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2331 byte at the end of the string
2333 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2334 optimization macros since string validation seems to be a slow
2337 * doc/dbus-specification.xml: restrict valid
2338 service/interface/member/error names. Add test suite code for the
2341 * dbus/dbus-string.c: limit service/interface/member/error names
2344 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2345 format arg to verbose spew
2347 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2348 memory, return instead of g_error
2350 * test/test-service.c (path_message_func): support emitting a
2353 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2354 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2355 assuming the activation bus was the session bus so that services
2356 started manually will still register.
2357 (init_connections_unlocked): fix so that in OOM situation we get
2358 the same semantics when retrying the function
2360 * test/test-service.c (main): change to use path registration, to
2361 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2362 than DBUS_BUS_SESSION
2364 2003-10-16 Havoc Pennington <hp@redhat.com>
2366 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2368 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2369 coverage of the tests
2370 (coverage-report.txt): don't move the .da and .bbg files around
2372 2003-10-16 Havoc Pennington <hp@redhat.com>
2374 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2377 2003-10-16 Havoc Pennington <hp@redhat.com>
2379 * bus/connection.c (bus_pending_reply_expired): either cancel or
2381 (bus_connections_check_reply): use unlink, not remove_link, as we
2382 don't want to free the link; fixes double free mess
2384 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2385 where no reply was received
2387 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2390 * bus/signals.c (match_rule_matches): add special cases for the
2391 bus driver, so you can match on sender/destination for it.
2393 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2394 DBUS_PRINT_BACKTRACE is set
2396 * dbus/dbus-internals.c: add pid to assertion failure messages
2398 * dbus/dbus-connection.c: add message type code to the debug spew
2400 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2401 sender=foo not service=foo
2403 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2404 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2405 DBUS_ACTIVATION_ADDRESS instead
2407 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2408 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2410 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2413 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2414 (dbus_message_iter_get_object_path_array): new function (half
2415 finished, disabled for the moment)
2417 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2418 DBUS_MESSAGE_TYPE_ERROR
2420 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2421 avoid redirecting stderr to /dev/null
2422 (babysit): close stdin if not doing the "exit_with_session" thing
2424 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2425 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2426 stdout/stdin, so things don't get confused
2428 * bus/system.conf.in: fix to allow replies, I modified .conf
2429 instead of .conf.in again.
2431 2003-10-14 David Zeuthen <david@fubar.dk>
2433 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2434 argtype to arg_type when raising unknown arg type exception.
2435 Changed type list to reflect the changes in dbus-protocol.h so
2436 the bindings actually work.
2438 2003-10-14 Havoc Pennington <hp@redhat.com>
2440 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2441 to have a bug keeping it from outputting the .da files sometimes
2442 (string_get_string): don't append garbage nul bytes to the string.
2444 2003-10-15 Seth Nickell <seth@gnome.org>
2446 * python/Makefile.am:
2448 Include dbus_h_wrapper.h in the dist tarball.
2450 2003-10-14 Havoc Pennington <hp@redhat.com>
2452 * bus/bus.c (bus_context_check_security_policy): revamp this to
2453 work more sanely with new policy-based requested reply setup
2455 * bus/connection.c (bus_transaction_send_from_driver): set bus
2456 driver messages as no reply
2458 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2459 requested_reply attribute on allow/deny rules
2461 * bus/system.conf: add <allow requested_reply="true"/>
2463 * bus/driver.c (bus_driver_handle_message): fix check for replies
2464 sent to the bus driver, which was backward. How did this ever work
2465 at all though? I think I'm missing something.
2467 * dbus/dbus-message.c (decode_header_data): require error and
2468 method return messages to have a reply serial field to be valid
2469 (_dbus_message_loader_queue_messages): break up this function;
2470 validate that reply serial and plain serial are nonzero;
2471 clean up the OOM/error handling.
2472 (get_uint_field): don't return -1 from this
2473 (dbus_message_create_header): fix signed/unsigned bug
2475 * bus/connection.c (bus_connections_expect_reply): save serial of
2476 the incoming message, not reply serial
2478 2003-10-14 Havoc Pennington <hp@redhat.com>
2480 * bus/connection.c: implement pending reply tracking using
2483 * bus/bus.c (bus_context_check_security_policy): verify that a
2484 reply is pending in order to allow a reply to be sent. Deny
2485 messages of unknown type.
2487 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2489 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2490 (bus_context_get_reply_timeout): new
2492 2003-10-13 Seth Nickell <seth@gnome.org>
2494 * python/Makefile.am:
2496 Pass "make distcheck": remove a couple files from DIST_FILES
2497 that weren't included in the final version.
2499 2003-10-12 Havoc Pennington <hp@pobox.com>
2501 Added test code that 1) starts an actual bus daemon and 2) uses
2502 DBusGProxy; fixed bugs that were revealed by the test. Lots
2503 more testing possible, but this is the basic framework.
2505 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2506 empty proxy lists from the proxy list hash
2508 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2509 couple of return_if_fail checks
2511 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2512 to allocate, so everything is cleared to NULL as it should be.
2514 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2515 source as data to dbus_connection_set_timeout_functions() as the
2516 timeout functions expected
2518 * test/glib/run-test.sh: add a little script to start up a message
2519 bus and run tests using it
2521 * tools/dbus-launch.1: updates
2523 * tools/dbus-launch.c (main): add --config-file option
2525 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2526 that could never be reached.
2528 * dbus/dbus-message.c (dbus_message_new_method_return)
2529 (dbus_message_new_error, dbus_message_new_signal): set the
2530 no-reply-expected flag on all these. Redundant, but may
2531 as well be consistent.
2533 2003-10-11 Havoc Pennington <hp@pobox.com>
2535 * test/decode-gcov.c (function_solve_graph): make broken block
2536 graph a nonfatal error since it seems to be broken. Need to debug
2539 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2540 can't just check type > INVALID < LAST anymore
2542 * dbus/dbus-message.c (dbus_message_get_signature): new function
2543 (dbus_message_has_signature): new function
2544 (struct DBusMessage): add signature field (right now it isn't sent
2545 over the wire, just generated on the fly)
2546 (dbus_message_copy): copy the signature, and init strings to
2547 proper length to avoid some reallocs
2548 (dbus_message_iter_init_array_iterator): return void, since it
2550 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2551 (_dbus_message_loader_queue_messages): add silly temporary hack to
2552 fill in message->signature on load
2554 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2555 characters, so they are relatively human-readable.
2557 2003-10-11 Havoc Pennington <hp@pobox.com>
2559 * dbus/dbus-message.c (_dbus_message_test): add more test
2560 coverage, but #if 0 for now since they uncover a bug
2561 not fixed yet; I think in re_align_field_recurse()
2562 (re_align_field_recurse): add FIXME about broken assertion
2564 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2566 * bus/connection.c: share a couple code bits with expirelist.c
2568 * bus/expirelist.h, bus/expirelist.c: implement a generic
2569 expire-items-after-N-seconds facility, was going to share between
2570 expiring connections and replies, decided not to use for expiring
2571 connections for now.
2573 * COPYING: include AFL 2.0 (still need to change all the file headers)
2575 2003-10-09 Havoc Pennington <hp@redhat.com>
2577 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2578 gcc 3.3. Not that we do anything about it yet.
2580 * bus/signals.c (bus_match_rule_parse): impose max length on the
2583 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2585 2003-10-09 Havoc Pennington <hp@redhat.com>
2587 Make matching rules theoretically work (add parser).
2589 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2590 the case where destination is explicitly specified as bus driver
2591 and someone else is eavesdropping.
2593 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2594 definition of eavesdropping and assertion
2596 * tools/dbus-send.c (main): use dbus_message_type_from_string
2598 * bus/signals.c (bus_match_rule_parse): implement
2600 * dbus/dbus-message.c (dbus_message_type_from_string): new
2602 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2604 2003-10-02 Havoc Pennington <hp@pobox.com>
2606 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2607 dbus_gproxy_oneway_call
2609 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2610 (dbus_server_setup_with_g_main): fix to allow calling them more
2611 than once on the same args
2612 (dbus_bus_get_with_g_main): new function
2614 2003-10-02 Havoc Pennington <hp@redhat.com>
2616 * doc/dbus-tutorial.xml: write some stuff
2618 2003-09-29 Havoc Pennington <hp@pobox.com>
2620 * configure.in: split checks for Doxygen from XML docs, check for
2623 * doc/Makefile.am: XML-ify all the docs, and add a blank
2626 2003-09-29 Havoc Pennington <hp@pobox.com>
2628 * Merge dbus-object-names branch. To see the entire patch
2629 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2630 it's huuuuge though.
2631 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2633 2003-09-28 Havoc Pennington <hp@pobox.com>
2635 * HACKING: update to reflect new server
2637 2003-09-26 Seth Nickell <seth@gnome.org>
2640 * python/examples/example-signals.py:
2642 Start implementing some notions of signals. The API
2643 is really terrible, but they sort of work (with the
2644 exception of being able to filter by service, and to
2645 transmit signals *as* a particular service). Need to
2646 figure out how to make messages come from the service
2649 * python/dbus_bindings.pyx.in:
2651 Removed duplicate message_handler callbacks.
2653 2003-09-25 Havoc Pennington <hp@redhat.com>
2655 * bus/session.conf.in: fix my mess
2657 2003-09-25 Havoc Pennington <hp@pobox.com>
2659 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2661 2003-09-25 Seth Nickell <seth@gnome.org>
2663 * python/examples/example-service.py:
2665 Johan notices complete wrong code in example-service, but
2666 completely wrong in a way that works exactly the same (!).
2667 Johan is confused, how could this possibly work? Example
2668 code fails to serve purpose of making things clear.
2671 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2673 * doc/dbus-specification.sgml: don't require header fields
2674 to be 4-byte aligned and specify that fields should be
2675 distinguished from padding by the fact that zero is not
2678 * doc/TODO: remove re-alignment item and add item to doc
2679 the OBJECT_PATH type.
2681 * dbus/dbus-message.c:
2682 (HeaderField): rename the original member to value_offset
2683 and introduce a name_offset member to keep track of where
2684 the field actually begins.
2685 (adjust_field_offsets): remove.
2686 (append_int_field), (append_uint_field),
2687 (append_string_field): don't align the start of the header
2688 field to a 4-byte boundary.
2689 (get_next_field): impl finding the next marhsalled field
2690 after a given field.
2691 (re_align_field_recurse): impl re-aligning a number of
2692 already marshalled fields.
2693 (delete_field): impl deleting a field of any type and
2694 re-aligning any following fields.
2695 (delete_int_or_uint_field), (delete_string_field): remove.
2696 (set_int_field), (set_uint_field): no need to re-check
2697 that we have the correct type for the field.
2698 (set_string_field): ditto and impl re-aligning any
2700 (decode_header_data): update to take into account that
2701 the fields aren't 4-byte aligned any more and the new
2702 way to distinguish padding from header fields. Also,
2703 don't exit when there is too much header padding.
2704 (process_test_subdir): print the directory.
2705 (_dbus_message_test): add test to make sure a following
2706 field is re-aligned correctly after field deletion.
2708 * dbus/dbus-string.[ch]:
2709 (_dbus_string_insert_bytes): rename from insert_byte and
2710 allow the insert of multiple bytes.
2711 (_dbus_string_test): test inserting multiple bytes.
2713 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2714 warning note to docs about having to re-align any
2715 marshalled values following the string.
2717 * dbus/dbus-message-builder.c:
2718 (append_string_field), (_dbus_message_data_load):
2719 don't align the header field.
2721 * dbus/dbus-auth.c: (process_test_subdir): print the
2724 * test/break-loader.c: (randomly_add_one_byte): upd. for
2727 * test/data/invalid-messages/bad-header-field-alignment.message:
2730 * test/data/valid-messages/unknown-header-field.message: shove
2731 a dict in the unknown field.
2733 2003-09-25 Seth Nickell <seth@gnome.org>
2736 * python/dbus_bindings.pyx.in:
2738 Handle return values.
2740 * python/examples/example-client.py:
2741 * python/examples/example-service.py:
2743 Pass back return values from the service to the client.
2745 2003-09-24 Seth Nickell <seth@gnome.org>
2749 Connect Object methods (when you are sharing an object) up... pass
2750 in a list of methods to be shared. Sharing all the methods just
2751 worked out too weird. You can now create nice Services over the
2754 * python/dbus_bindings.pyx.in:
2756 Keep references to user_data tuples passed into C functions so
2757 Python doesn't garbage collect on us.
2759 Implement MethodReturn and Error subclasses of Message for creating
2760 DBusMessage's of those types.
2762 * python/examples/example-client.py:
2763 * python/examples/example-service.py:
2765 Simple example code showing both how create DBus services and objects,
2766 and how to use them.
2768 2003-09-23 Havoc Pennington <hp@pobox.com>
2770 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2772 2003-09-23 Havoc Pennington <hp@redhat.com>
2774 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2775 (dbus_gproxy_disconnect_signal): implement
2776 (dbus_gproxy_manager_remove_signal_match): implement
2777 (dbus_gproxy_manager_add_signal_match): implement
2778 (dbus_gproxy_oneway_call): implement
2780 2003-09-23 Havoc Pennington <hp@pobox.com>
2782 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2783 subclass. This means dropping the transparent thread safety of the
2784 proxy; you now need a separate proxy per-thread, or your own
2785 locking on the proxy. Probably right anyway.
2786 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2788 2003-09-22 Havoc Pennington <hp@redhat.com>
2790 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2792 2003-09-21 Seth Nickell <seth@gnome.org>
2794 First checkin of the Python bindings.
2796 * python/.cvsignore:
2797 * python/Makefile.am:
2798 * python/dbus_bindings.pyx.in:
2799 * python/dbus_h_wrapper.h:
2801 Pieces for Pyrex to operate on, building a dbus_bindings.so
2802 python module for low-level access to the DBus APIs.
2806 High-level Python module for accessing DBus objects.
2811 Build stuff for the python bindings.
2815 Extra macro needed for finding the Python C header files.
2817 2003-09-21 Havoc Pennington <hp@pobox.com>
2819 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2820 implementing the proxy manager, didn't get very far.
2822 * dbus/dbus-bus.c (dbus_bus_add_match): new
2823 (dbus_bus_remove_match): new
2825 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2826 path_name argument; adjust the other not-yet-implemented
2827 gproxy constructors to be what I think they should be.
2829 2003-09-21 Havoc Pennington <hp@pobox.com>
2831 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2832 by default for message bus connections.
2834 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2835 exit_on_disconnect flag is set and we process the disconnected
2837 (dbus_connection_set_exit_on_disconnect): new function
2839 2003-09-21 Havoc Pennington <hp@pobox.com>
2841 Get matching rules mostly working in the bus; only actually
2842 parsing the rule text remains. However, the client side of
2843 "signal connections" hasn't been started, this patch is only the
2846 * dbus/dispatch.c: fix for the matching rules changes
2848 * bus/driver.c (bus_driver_handle_remove_match)
2849 (bus_driver_handle_add_match): send an ack reply from these
2852 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2853 arguments, reported by Seth Nickell
2855 * bus/config-parser.c (append_rule_from_element): support
2856 eavesdrop=true|false attribute on policies so match rules
2857 can be prevented from snooping on the system bus.
2859 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2860 and "destination" in attribute names; fix some docs bugs;
2861 add eavesdrop=true|false attribute
2863 * bus/driver.c (bus_driver_handle_add_match)
2864 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2867 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2868 rid of broadcast service concept, signals are just always broadcast
2870 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2871 mostly implement matching rules stuff (currently only exposed as signal
2874 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2876 * doc/dbus-specification.sgml: Change the header field name
2877 to be an enum and update the rest of the spec to reference
2878 the fields using the conventinal name.
2880 * dbus/dbus-protocol.h: update to reflect the spec.
2882 * doc/TODO: add item to remove the 4 byte alignment requirement.
2884 * dbus/dbus-message.c: Remove the code to generalise the
2885 header/body length and serial number header fields as named
2886 header fields so we can reference field names using the
2888 (append_int_field), (append_uint_field), (append_string_field):
2889 Append the field name as a byte rather than four chars.
2890 (delete_int_or_uint_field), (delete_string_field): reflect the
2891 fact that the field name and typecode now occupy 4 bytes instead
2893 (decode_string_field), (decode_header_data): update to reflect
2894 protocol changes and move the field specific encoding from
2895 decode_string_field() back into decode_header_data().
2897 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2898 Add utility to aid debugging.
2900 * dbus/dbus-message-builder.c:
2901 (append_string_field), (_dbus_message_data_load): Update to
2902 reflect protocol changes; Change the FIELD_NAME directive
2903 to HEADER_FIELD and allow it to take the field's conventional
2904 name rather than the actual value.
2906 * test/data/*/*.message: Update to use HEADER_FIELD instead
2907 of FIELD_NAME; Always align the header on an 8 byte boundary
2908 *before* updating the header length.
2910 2003-09-15 Havoc Pennington <hp@pobox.com>
2912 * dbus/dbus-pending-call.c: add the get/set object data
2913 boilerplate as for DBusConnection, etc. Use generic object data
2914 for the notify callback.
2916 * glib/dbus-gparser.c (parse_node): parse child nodes
2918 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2920 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2921 contain functions shared between the convenience lib and the
2924 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2925 -export-symbols-regex to the GLib library
2927 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2928 fix the locking in here, and add a default handler for
2929 Introspect() that just returns sub-nodes.
2931 2003-09-14 Havoc Pennington <hp@pobox.com>
2933 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2934 rather than gfoo consistent
2936 * glib/dbus-gproxy.h: delete for now, move contents to
2937 dbus-glib.h, because the include files don't work right since we
2938 aren't in the dbus/ subdir.
2940 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2941 (dbus_gproxy_end_call): finish
2942 (dbus_gproxy_begin_call): finish
2944 * glib/dbus-gmain.c (dbus_set_g_error): new
2946 * glib/dbus-gobject.c (handle_introspect): include information
2947 about child nodes in the introspection
2949 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2950 function to help in implementation of introspection
2952 * dbus/dbus-object-tree.c
2953 (_dbus_object_tree_list_registered_and_unlock): new function
2955 2003-09-12 Havoc Pennington <hp@pobox.com>
2957 * glib/dbus-gidl.h: add common base class for all the foo_info
2960 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2963 * test/Makefile.am: try test srcdir -ef . in addition to test
2964 srcdir = ., one of them should work (yeah lame)
2966 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2969 * glib/dbus-gparser.h: make description_load routines return
2970 NodeInfo* not Parser*
2972 * Makefile.am (SUBDIRS): build test dir after all library dirs
2974 * configure.in: add GTK+ detection
2976 2003-09-07 Havoc Pennington <hp@pobox.com>
2978 * Make Doxygen contented.
2980 2003-09-07 Havoc Pennington <hp@pobox.com>
2982 * doc/dbus-specification.sgml: more updates
2984 2003-09-06 Havoc Pennington <hp@pobox.com>
2986 * doc/dbus-specification.sgml: partial updates
2988 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2989 zillionth time; hopefully I edited the right file this time.
2991 * bus/config-parser.c (append_rule_from_element): support
2992 send_type, send_path, receive_type, receive_path
2994 * bus/policy.c: add message type and path to the list of things
2995 that can be "firewalled"
2997 2003-09-06 Havoc Pennington <hp@pobox.com>
2999 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
3000 (dbus_connection_register_object_path): make this not handle
3001 messages to paths below the given path
3003 2003-09-03 Havoc Pennington <hp@pobox.com>
3005 * test/glib/Makefile.am: add this with random glib-linked test
3008 * glib/Makefile.am: remove the random test programs from here,
3009 leave only the unit tests
3011 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
3012 uscore/javacaps conversion, and fix
3013 (get_object_property, set_object_property): change to .NET
3014 convention for mapping props to methods, set_FooBar/get_FooBar,
3015 since one language has such a convention we may as well copy it.
3016 Plus real methods in either getFooBar or get_foo_bar style won't
3017 collide with this convention.
3019 2003-09-01 Havoc Pennington <hp@pobox.com>
3021 * glib/dbus-gparser.c: implement
3023 * glib/dbus-gobject.c: start implementing skeletons support
3025 * configure.in: when disabling checks/assert, also define
3026 G_DISABLE_ASSERT and G_DISABLE_CHECKS
3028 2003-09-01 Havoc Pennington <hp@pobox.com>
3030 * glib/Makefile.am: rearrange a bunch of files and get "make
3031 check" framework set up
3033 2003-08-31 Havoc Pennington <hp@pobox.com>
3035 * fix build with --disable-tests
3037 2003-08-30 Havoc Pennington <hp@pobox.com>
3039 * dbus/dbus-connection.c: purge DBusMessageHandler
3041 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
3042 use callbacks everywhere
3044 2003-08-30 Havoc Pennington <hp@pobox.com>
3046 * test/data/valid-config-files/system.d/test.conf: change to
3047 root for the user so warnings don't get printed
3049 * dbus/dbus-message.c: add dbus_message_get_path,
3050 dbus_message_set_path
3052 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
3053 dispatching to a path
3055 * dbus/dbus-string.c (_dbus_string_validate_path): add
3057 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
3058 (_dbus_marshal_object_path): implement
3060 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
3061 to contain the path to the target object
3062 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
3063 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
3065 2003-08-30 Havoc Pennington <hp@pobox.com>
3067 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
3069 2003-08-29 Havoc Pennington <hp@pobox.com>
3071 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3073 (struct DBusObjectSubtree): shrink this
3074 a lot, since we may have a lot of them
3075 (_dbus_object_tree_free_all_unlocked): implement
3076 (_dbus_object_tree_dispatch_and_unlock): implement
3078 2003-08-29 Havoc Pennington <hp@pobox.com>
3080 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3082 2003-08-28 Havoc Pennington <hp@pobox.com>
3086 * dbus/dbus-connection.c: port to no ObjectID, create a
3087 DBusObjectTree, rename ObjectTree to ObjectPath in public API
3089 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
3090 everything except UnregisterFunction and MessageFunction
3092 * dbus/dbus-marshal.c: port away from DBusObjectID,
3093 add DBUS_TYPE_OBJECT_PATH
3095 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
3096 dbus/dbus-objectid.[hc]: remove these, we are moving to
3097 path-based object IDs
3099 2003-08-25 Havoc Pennington <hp@pobox.com>
3101 Just noticed that dbus_message_test is hosed, I wonder when I
3102 broke that. I thought make check was passing earlier...
3104 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
3105 container tree, will replace most of dbus-object-registry
3107 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3110 2003-08-19 Havoc Pennington <hp@pobox.com>
3112 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3113 (dbus_message_is_error): fix this function
3115 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3118 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3119 reflect clarified man page
3120 (bus_client_policy_check_can_send): ditto
3122 * bus/session.conf.in: fixup
3124 * bus/system.conf.in: fixup
3126 2003-08-18 Havoc Pennington <hp@redhat.com>
3128 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3130 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3131 dumb bug created earlier (wrong order of args to
3132 decode_header_data())
3134 * tools/dbus-send.c: port
3136 * tools/dbus-print-message.c (print_message): port
3138 * test/data/*messages: port all messages over
3140 * dbus/dbus-message-builder.c: support including
3143 * bus/driver.c: port over
3145 * bus/dispatch.c: port over to new stuff
3147 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3148 rename disconnect signal to "Disconnected"
3150 2003-08-17 Havoc Pennington <hp@pobox.com>
3152 This doesn't compile yet, but syncing up so I can hack on it from
3153 work. What are branches for if not broken code? ;-)
3155 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3156 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3157 DBUS_HEADER_FIELD_ERROR_NAME
3159 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3160 for the interface+member pairs
3161 (string_hash): change to use g_str_hash algorithm
3162 (find_direct_function, find_string_function): refactor these to
3165 * dbus/dbus-message.c: port all of this over to support
3166 interface/member fields instead of name field
3168 * dbus/dbus-object-registry.c: port over
3170 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3171 from _dbus_string_validate_name
3173 * bus/dbus-daemon-1.1: change file format for the
3174 <deny>/<allow> stuff to match new message naming scheme
3176 * bus/policy.c: port over
3178 * bus/config-parser.c: parse new format
3180 2003-08-16 Havoc Pennington <hp@pobox.com>
3182 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3185 * glib/dbus-gproxy.c: some hacking
3187 2003-08-15 Havoc Pennington <hp@redhat.com>
3189 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3191 * dbus/dbus-connection.c
3192 (dbus_connection_send_with_reply_and_block): factor out internals;
3193 change to convert any error replies to DBusError instead of
3194 returning them as a message
3196 2003-08-15 Havoc Pennington <hp@pobox.com>
3198 * dbus/dbus-connection.c,
3199 dbus/dbus-pending-call.c: Finish the pending call stuff
3201 2003-08-14 Havoc Pennington <hp@redhat.com>
3203 * dbus/dbus-pending-call.c: start on new object that will replace
3204 DBusMessageHandler and ReplyHandlerData for tracking outstanding
3207 * dbus/dbus-gproxy.c: start on proxy object used to communicate
3208 with remote interfaces
3210 * dbus/dbus-gidl.c: do the boring boilerplate in here
3212 2003-08-12 Havoc Pennington <hp@pobox.com>
3214 * bus/dispatch.c (bus_dispatch): make this return proper
3215 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3217 * dbus/dbus-errors.c (dbus_set_error): use
3218 _dbus_string_append_printf_valist
3220 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3221 (_dbus_string_append_printf): new
3223 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3226 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3227 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3228 message is unhandled.
3230 2003-08-11 Havoc Pennington <hp@pobox.com>
3232 * bus/test.c (client_disconnect_handler): change to return
3233 HANDLED (would have been REMOVE_MESSAGE)
3235 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3236 HANDLED/NOT_YET_HANDLED instead of
3237 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
3240 2003-08-10 Havoc Pennington <hp@pobox.com>
3242 * tools/dbus-send.c (main): add --type argument, for now
3243 supporting only method_call and signal types.
3245 * tools/dbus-print-message.c: print message type
3247 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3248 init connection->objects
3250 * doc/dbus-specification.sgml: fix sgml
3252 * bus/*.c: port over to object-instance API changes
3254 * test/test-service.c: ditto
3256 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3257 name, we will have to fix up the rest of the code to also handle
3259 (dbus_message_new): generic message-creation call
3260 (set_string_field): allow appending name field
3262 2003-08-06 Havoc Pennington <hp@pobox.com>
3264 * dbus/dbus-object-registry.c: implement signal connection
3267 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3269 * dbus/dbus-internals.c (_dbus_memdup): new function
3271 2003-08-02 Havoc Pennington <hp@pobox.com>
3273 * dbus/dbus-message.c (dbus_message_get_no_reply)
3274 (dbus_message_set_no_reply): add these and remove
3275 set_is_error/get_is_error
3277 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
3278 remove the ERROR flag, since there's now an ERROR type
3280 2003-08-01 Havoc Pennington <hp@pobox.com>
3282 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3285 * dbus/dbus-message.c (dbus_message_get_type): new function
3287 * doc/dbus-specification.sgml: add "type" byte to messages
3289 2003-08-01 Havoc Pennington <hp@pobox.com>
3291 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3292 a message type enum to distinguish kinds of message
3293 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
3294 that need not be replied to
3296 2003-08-01 Havoc Pennington <hp@pobox.com>
3298 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3299 (unpack_8_octets): fix no-64-bit-int bug
3301 * dbus/dbus-object-registry.c (validate_id): validate the
3302 connection ID bits, not just the instance ID.
3304 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3305 the connection-global 33 bits of the object ID
3307 * dbus/dbus-object-registry.c (info_from_entry): fill in
3308 object ID in the new way
3310 * dbus/dbus-objectid.h: rather than high/low bits, specifically
3311 define server/client/instance bits.
3313 2003-07-30 Havoc Pennington <hp@pobox.com>
3315 * dbus/dbus-connection.c (dbus_connection_register_object): fix
3318 2003-07-13 Havoc Pennington <hp@pobox.com>
3320 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3321 fields to DBusObjectVTable and DBusObjectInfo
3323 2003-07-12 Havoc Pennington <hp@pobox.com>
3325 * dbus/dbus-object-registry.c: implement unit test,
3326 fix bugs discovered in process
3328 * dbus/dbus-connection.c: remove handler_table and
3329 register_handler(), add DBusObjectRegistry usage
3331 * dbus/dbus-objectid.c (dbus_object_id_is_null)
3332 (dbus_object_id_set_null): new functions
3334 2003-07-08 Havoc Pennington <hp@pobox.com>
3336 * dbus/dbus-object.c: implement some of this
3338 * dbus/dbus-object-registry.c
3339 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3341 (_dbus_object_registry_new): handle OOM
3343 2003-07-08 Havoc Pennington <hp@pobox.com>
3345 * dbus/dbus-object.h: sketch out an API for registering objects
3346 with a connection, that allows us to use as little as 24 bytes
3347 per object and lets application code represent an object in
3348 any conceivable way.
3350 * dbus/dbus-object-registry.c: implement the hard bits of the
3351 DBusConnection aspect of object API. Not yet wired up.
3353 2003-07-06 Havoc Pennington <hp@pobox.com>
3355 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3356 (_dbus_marshal_object_id): new
3357 (_dbus_demarshal_object_id): new
3358 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3359 consolidate identical switch cases. Don't conditionalize handling
3360 of DBUS_TYPE_UINT64, need to handle the type always.
3361 (_dbus_marshal_validate_arg): consolidate identical cases, and
3362 handle DBUS_TYPE_OBJECT_ID
3364 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3366 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3368 2003-09-28 Havoc Pennington <hp@pobox.com>
3372 2003-09-28 Havoc Pennington <hp@pobox.com>
3374 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3375 to work with Debian db2html
3377 2003-09-28 Havoc Pennington <hp@pobox.com>
3379 * configure.in: 0.13
3381 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3382 stylesheet-images for benefit of Debian
3384 Change back to using filesystem-linked sockets for the system
3385 bus, so only root can create the default system bus address.
3387 * bus/system.conf.in: change to use
3388 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3390 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3393 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3394 here, and AC_DEFINE DBUS_SYSTEM_PATH
3396 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3399 * doc/busconfig.dtd:
3402 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3404 * doc/dbus-specification.sgml:
3405 Add activation reply values.
3407 2003-08-05 Havoc Pennington <hp@redhat.com>
3409 * configure.in: 0.12
3411 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3413 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3414 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3415 (add_watch), (remove_watch), (create_source):
3416 Refcount fds, fixes some reentrancy issues.
3418 2003-07-30 Havoc Pennington <hp@redhat.com>
3420 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3421 bus address to be abstract if we have abstract sockets
3425 2003-07-28 Havoc Pennington <hp@redhat.com>
3427 * bus/messagebus.in: fix to avoid processname/servicename
3428 confusion, from Michael Kearey
3429 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3431 2003-07-23 Havoc Pennington <hp@pobox.com>
3433 * dbus/dbus-message.c (dbus_message_iter_get_named):
3434 fix from Andy Hanton to remove broken "+1"
3436 2003-07-16 Havoc Pennington <hp@pobox.com>
3438 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3439 babysitter process, as suggested by Thomas Leonard, so
3440 an "eval `dbus-launch --exit-with-session`" will actually
3443 2003-07-16 Havoc Pennington <hp@pobox.com>
3445 * configure.in: print out EXPANDED_* variables in the summary at
3446 the end; clean up the code that computes EXPANDED_ variables and
3447 get the ones using exec_prefix right. Should make things work
3448 when you build without --prefix
3450 2003-06-29 Havoc Pennington <hp@pobox.com>
3452 * mono/Test.cs (class Test): fire up a main loop and run it
3454 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3455 done once, the app has to do it
3457 2003-06-26 Havoc Pennington <hp@pobox.com>
3459 * mono/Connection.cs: set up connection with the glib main loop
3461 2003-07-01 Havoc Pennington <hp@redhat.com>
3463 * doc/dbus-specification.sgml: clarify the format of a type code,
3464 change suggested by Jim Blandy
3466 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3469 * tools/Makefile.am: Don't assume srcdir == builddir.
3471 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3472 the allocated block.
3473 (_dbus_memory_test): New function.
3474 * dbus/dbus-test.h: Add _dbus_memory_test ().
3475 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3477 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3479 (dbus_message_new): Remove obsolete @todo.
3481 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3482 (_dbus_marshal_set_uint64): Fix comment.
3484 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3485 hardcode FIELD_REPLY_SERIAL.
3487 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3488 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3490 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3491 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3493 2003-06-24 Havoc Pennington <hp@pobox.com>
3495 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3497 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3503 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3504 * gcj/org/.cvsignore:
3505 * gcj/org/Makefile.am:
3506 * gcj/org/freedesktop/.cvsignore:
3507 * gcj/org/freedesktop/Makefile.am:
3508 * gcj/org/freedesktop/dbus/.cvsignore:
3509 * gcj/org/freedesktop/dbus/Makefile.am:
3510 * gcj/org/freedesktop/dbus/Message.java: (Message),
3512 * gcj/org/freedesktop/dbus/natMessage.cc:
3513 Fix the build system.
3515 2003-06-22 Havoc Pennington <hp@pobox.com>
3517 * mono/Connection.cs: add more bindings
3519 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3522 2003-06-22 Havoc Pennington <hp@pobox.com>
3524 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3525 Start wrapping more stuff.
3527 2003-06-22 Havoc Pennington <hp@pobox.com>
3529 * mono/Message.cs: implement Message.Wrap() that ensures we only
3530 have a single C# wrapper per DBusMessage, assuming it works which
3531 it probably doesn't.
3533 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3534 (dbus_message_free_data_slot): new
3535 (dbus_message_set_data): new
3536 (dbus_message_get_data): new
3538 2003-06-22 Havoc Pennington <hp@pobox.com>
3540 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3541 (_dbus_data_slot_allocator_alloc): rework these to keep a
3542 reference count on each slot and automatically manage a global
3543 slot ID variable passed in by address
3545 * bus/bus.c: convert to new dataslot API
3547 * dbus/dbus-bus.c: convert to new dataslot API
3549 * dbus/dbus-connection.c: convert to new dataslot API
3551 * dbus/dbus-server.c: convert to new dataslot API
3553 * glib/dbus-gmain.c: ditto
3557 * bus/connection.c: ditto
3559 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3561 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3562 after the gcj checks so that the correct configuration tags
3563 will be added to libtool.
3565 * dbus-glib-1.pc.in: No need to specify any includes since
3566 dbus-1.pc.in has those.
3568 2003-06-22 Havoc Pennington <hp@pobox.com>
3570 * mono/*, gcj/*, configure.in, Makefile.am:
3571 Check in makefiles and subdirs for mono and gcj bindings.
3572 Neither binding actually exists, just trying to get through
3573 all the build and other boring bits.
3575 2003-06-21 Philip Blundell <philb@gnu.org>
3577 * tools/dbus-monitor.1: Updated.
3579 * tools/dbus-send.1: Likewise.
3581 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3583 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3584 for hangup and error after checking read so we won't discard
3585 pending data if both hangup and read are set.
3587 2003-06-19 Philip Blundell <philb@gnu.org>
3589 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3591 * tools/dbus-send.c: Accept both --system and --session.
3593 * tools/dbus-monitor.c: Same here.
3595 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3597 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3598 from C++ (Patch by Miloslav Trmac).
3600 2003-06-15 Joe Shaw <joe@assbarn.com>
3602 * configure.in: Check for socklen_t.
3604 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3606 * test/test-segfault.c: Add #include <sys/time.h>
3608 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3609 dbus-launch needs it.
3611 2003-06-09 Havoc Pennington <hp@redhat.com>
3613 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3614 SUN_LEN, it breaks abstract socket usage
3616 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3619 2003-06-04 Havoc Pennington <hp@pobox.com>
3621 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3622 using unix:abstract=/foo, and when listening in a tmpdir
3623 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3625 * dbus/dbus-transport.c (_dbus_transport_open): support
3628 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3629 support abstract sockets
3631 * dbus/dbus-transport-unix.c
3632 (_dbus_transport_new_for_domain_socket): support abstract sockets
3634 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3635 toggle as an argument, implement abstract namespace support
3636 (_dbus_listen_unix_socket): ditto
3638 * configure.in: add --enable-abstract-sockets and implement
3639 a configure check for autodetection of the right value.
3641 2003-06-01 Havoc Pennington <hp@pobox.com>
3643 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3644 in /tmp (though on Linux this will end up being useless,
3645 when we add abstract namespace support)
3647 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3650 2003-05-28 Colin Walters <walters@verbum.org>
3652 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3654 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3656 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3658 2003-05-17 Colin Walters <walters@gnu.org>
3660 * tools/dbus-send.c: Don't exit with an error code if --help was
3661 passed. Default to using the session bus instead of the system
3664 * tools/dbus-launch.c: Ditto.
3666 * tools/dbus-monitor.c: Ditto.
3668 * tools/dbus-send.1: Update with new arguments.
3670 * tools/dbus-launch.c: Emit code to export variables. New
3671 arguments -s and -c to specify shell syntax, and a bit of code to
3672 autodetect syntax. Also, allow specifying a program to run.
3674 * tools/dbus-launch.1: Update with new arguments.
3676 * tools/dbus-send.1: Ditto.
3678 * tools/dbus-monitor.1: Ditto.
3680 2003-05-17 Havoc Pennington <hp@pobox.com>
3682 * bus/config-parser.c (merge_included): merge in policies from
3683 child configuration file.
3685 * bus/policy.c (bus_policy_merge): function to merge two policies
3688 2003-05-16 Havoc Pennington <hp@redhat.com>
3690 * dbus/dbus-connection.c: disable verbose lock spew
3692 * tools/dbus-send.c: add --print-reply command line option
3694 * tools/dbus-print-message.h (print_message): new util function
3695 shared by dbus-send and dbus-monitor
3697 * tools/dbus-monitor.c (handler_func): exit on disconnect
3699 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3700 disconnected, don't try to use the read_watch
3702 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3703 so we can find this bug more easily
3705 2003-05-16 Havoc Pennington <hp@redhat.com>
3707 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3708 NULL as DBusHashTable is annoyingly likely to do.
3710 2003-05-16 Colin Walters <walters@verbum.org>
3712 * tools/dbus-monitor.c: Add --session argument and usage()
3715 * tools/dbus-monitor.1: Update with new --session arg.
3717 * bus/Makefile.am (install-data-hook): Create
3718 $(libdir)/dbus-1.0/services so that the session bus is happy.
3720 2003-05-15 Havoc Pennington <hp@redhat.com>
3722 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3723 on non-x86. ifdef's are evil.
3725 2003-05-15 Havoc Pennington <hp@redhat.com>
3727 * configure.in: 0.11
3731 * bus/Makefile.am (initddir): apparently we are supposed to put
3732 init scripts in /etc/rc.d/init.d not /etc/init.d
3734 * bus/Makefile.am: remove the "you must --enable-tests to make
3735 check" as it broke distcheck
3737 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3739 2003-05-13 James Willcox <jwillcox@gnome.org>
3742 * bus/activation.c: (bus_activation_service_created),
3743 (bus_activation_activate_service):
3744 * bus/driver.c: (bus_driver_send_service_deleted),
3745 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3746 (bus_driver_send_service_acquired),
3747 (bus_driver_send_welcome_message),
3748 (bus_driver_handle_list_services):
3749 * bus/session.conf.in:
3750 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3751 (dbus_bus_service_exists), (dbus_bus_activate_service):
3754 Add some convenience API which lets you activate a service, and did a
3755 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3756 and dbus_message_get_args()
3758 2003-05-11 Havoc Pennington <hp@pobox.com>
3760 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3761 calling _dbus_marshal_validate_arg() for every byte in a byte
3764 * dbus/dbus-message-handler.c: use atomic reference counting to
3765 reduce number of locks slightly; the global lock in here sucks
3767 * dbus/dbus-connection.c
3768 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3769 update_dispatch_status that can be called with lock held; then use
3770 in a couple places to reduce locking/unlocking
3771 (dbus_connection_send): hold the lock over the whole function
3772 instead of acquiring it twice.
3774 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3776 * bus/connection.c (bus_connections_setup_connection): fix access
3777 to already-freed memory.
3779 * dbus/dbus-connection.c: keep a little cache of linked list
3780 nodes, to avoid using the global linked list alloc lock in the
3781 normal send-message case. Instead we just use the connection lock
3782 that we already have to take.
3784 * dbus/dbus-list.c (_dbus_list_find_last): new function
3786 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3787 change to use a struct for the atomic type; fix docs,
3788 they return value before increment, not after increment.
3790 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3791 (_dbus_string_append_8_aligned): new functions to try to
3792 microoptimize this operation.
3793 (reallocate_for_length): break this out of set_length(), to
3794 improve profile info, and also so we can consider inlining the
3797 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3798 strings with some preallocation, cuts down on our calls to realloc
3799 a fair bit. Though if we can get the "move entire string to empty
3800 string" optimization below to kick in here, it would be better.
3802 * dbus/dbus-string.c (_dbus_string_move): just call
3803 _dbus_string_move_len
3804 (_dbus_string_move_len): add a special case for moving
3805 an entire string into an empty string; we can just
3806 swap the string data instead of doing any reallocs.
3807 (_dbus_string_init_preallocated): new function
3809 2003-05-11 Havoc Pennington <hp@pobox.com>
3811 Write a "test-profile" that does echo client-server with threads;
3812 profile reveals lock contention, memcpy/realloc of buffers, and
3813 UTF-8 validation as hot spots. 20% of lock contention eliminated
3814 with dbus_atomic_inc/dec implementation on x86. Much remaining
3815 contention is global mempool locks for GList and DBusList.
3817 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3820 * dbus/dbus-connection.c (struct DBusConnection): use
3821 dbus_atomic_t for the reference count
3823 * dbus/dbus-message.c (struct DBusMessage): declare
3824 dbus_atomic_t values as volatile
3826 * configure.in: code to detect ability to use atomic integer
3827 operations in assembly, from GLib patch
3829 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3830 time, tired of it being wrong in threads and forked processes
3832 * glib/test-profile.c: a little program to bounce messages back
3833 and forth between threads and eat CPU
3835 * dbus/dbus-connection.c: add debug spew macros for debugging
3836 thread locks; include config.h at top; fix deadlock in
3837 dbus_connection_flush()
3839 2003-05-08 Havoc Pennington <hp@pobox.com>
3841 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3842 data from getting written, and there wasn't a good reason to
3845 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3846 dbus_verbose lines in test coverage
3847 (main): add list of functions sorted by # of untested blocks
3848 to the coverage report
3850 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3852 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3854 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3855 extend test coverage
3857 * test/data/auth/cancel.auth-script: test canceling an
3860 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3861 aren't used. in CVS history if we end up needing them.
3863 2003-05-04 Havoc Pennington <hp@pobox.com>
3865 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3868 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3869 function, which assumed length was in # of strings, not bytes
3871 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3874 * dbus/dbus-connection.c
3875 (_dbus_connection_queue_received_message): disable function for
3876 now, we are only using it in test mode
3878 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3879 remove a mistaken FIXME
3881 2003-05-04 Havoc Pennington <hp@pobox.com>
3883 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3884 unlock mutex on successful return, patch from Anders Gustafsson
3886 2003-05-04 Havoc Pennington <hp@pobox.com>
3888 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3891 2003-05-04 Havoc Pennington <hp@pobox.com>
3893 * tools/dbus-launch.c: implement
3895 * bus/main.c (main), bus/bus.c (bus_context_new):
3896 implement --print-pid and --fork
3898 2003-05-03 Havoc Pennington <hp@redhat.com>
3900 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3901 the address had no value, and add to test suite. Fix and
3902 regression test from Miloslav Trmac
3904 2003-05-03 Havoc Pennington <hp@pobox.com>
3906 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3907 watch is invalid when handled
3909 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3910 dbus-launch utility to launch the bus from a shell script. Didn't
3911 actually implement dbus-launch yet, it's just a placeholder still.
3913 2003-05-03 Havoc Pennington <hp@pobox.com>
3915 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3916 daemon; also documents daemon config file, so replaces
3917 doc/config-file.txt. Corrected some stuff from config-file.txt in
3918 the process of moving it.
3920 2003-05-03 Havoc Pennington <hp@pobox.com>
3922 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3925 2003-05-03 Colin Walters <walters@verbum.org>
3927 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3928 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3930 * Makefile.am: Update to use new .pc versioning scheme.
3932 2003-05-02 Havoc Pennington <hp@redhat.com>
3934 * bus/system.conf.in: allow send/receive to/from message bus
3937 2003-04-30 Havoc Pennington <hp@redhat.com>
3939 * configure.in: print a note when building with unit tests and
3942 2003-04-30 Havoc Pennington <hp@redhat.com>
3944 * Makefile.am: add a check-local that complains if you didn't
3945 configure with --enable-tests
3947 2003-04-29 Havoc Pennington <hp@redhat.com>
3949 * glib/dbus-gmain.c: docs cleanups
3951 * dbus/dbus-types.h: add docs on int64 types
3953 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3954 public API docs section
3956 2003-04-29 Havoc Pennington <hp@redhat.com>
3958 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3959 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3960 parallel install API version, not with the D-BUS package version.
3962 * HACKING: move some of README over here
3964 * README: updates, and document API/ABI policy
3966 * configure.in: reindentation
3968 2003-04-29 Havoc Pennington <hp@redhat.com>
3970 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3971 to use this library" to be sure people have the right
3974 2003-04-28 Havoc Pennington <hp@redhat.com>
3976 * configure.in: add --enable-docs which by default is auto yes if
3977 doxygen and db2html found, no otherwise; but can be forced on/off
3979 * doc/Makefile.am: conditionalize whether to build docs on
3982 2003-04-28 Havoc Pennington <hp@redhat.com>
3984 * configure.in: 0.10
3988 * bus/system.conf.in: add <includedir>system.d</includedir>
3990 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3991 username was provided but not uid
3993 * bus/config-parser.c (struct BusConfigParser): keep track of
3994 whether the parser is toplevel or was included; change some
3995 of the error handling if it's included.
3997 2003-04-27 Havoc Pennington <hp@pobox.com>
4001 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4002 report correct status if we finish processing authentication
4003 inside this function.
4005 * bus/activation.c (try_send_activation_failure): use
4006 bus_transaction_send_error_reply
4008 * bus/connection.c (bus_connection_get_groups): return an error
4009 explaining the problem
4011 * bus/bus.c (bus_context_check_security_policy): implement
4012 restriction here that inactive connections can only send the
4013 hello message. Also, allow bus driver to send anything to
4016 * bus/connection.c (bus_connection_complete): create the
4017 BusClientPolicy here instead of on-demand.
4018 (bus_connection_get_policy): don't return an error
4020 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
4021 sender field in message being replied to
4023 * bus/bus.c (bus_context_check_security_policy): fix silly typo
4024 causing it to return FALSE always
4026 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
4027 we checked sender rather than destination
4029 2003-04-25 Havoc Pennington <hp@redhat.com>
4031 test suite is slightly hosed at the moment, will fix soon
4033 * bus/connection.c (bus_connections_expire_incomplete): fix to
4034 properly disable the timeout when required
4035 (bus_connection_set_name): check whether we can remove incomplete
4036 connections timeout after we complete each connection.
4038 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
4039 probably still broken.
4041 * bus/services.c (bus_registry_acquire_service): implement max
4042 number of services owned, and honor allow/deny rules on which
4043 services a connection can own.
4045 * bus/connection.c (bus_connection_get_policy): report errors here
4047 * bus/activation.c: implement limit on number of pending
4050 2003-04-25 Havoc Pennington <hp@redhat.com>
4052 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
4053 where we used >= 0 instead of != DBUS_UID_UNSET.
4055 2003-04-25 Havoc Pennington <hp@redhat.com>
4057 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
4058 were toggled without add/remove, fix from Anders Gustafsson
4060 2003-04-24 Havoc Pennington <hp@redhat.com>
4062 * test/data/valid-config-files/basic.conf: add <limit> tags to
4065 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
4066 <limit> tag in configuration file.
4068 2003-04-24 Havoc Pennington <hp@redhat.com>
4070 * bus/dispatch.c: somehow missed some name_is
4072 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4073 (_dbus_timeout_set_interval): new
4075 * bus/connection.c (bus_connections_setup_connection): record time
4076 when each connection is first set up, and expire them after the
4077 auth timeout passes.
4079 2003-04-24 Havoc Pennington <hp@redhat.com>
4081 * dbus/dbus-message.c (dbus_message_name_is): rename
4082 (dbus_message_service_is): rename
4083 (dbus_message_sender_is): rename
4084 (dbus_message_get_service): rename
4086 2003-04-24 Havoc Pennington <hp@redhat.com>
4088 * configure.in: add --enable-checks
4090 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4092 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4093 to use thread locks.
4094 (_dbus_connection_handler_destroyed_locked): move some private
4095 functions into proper docs group
4097 * dbus/dbus-internals.h: add _dbus_return_if_fail,
4098 _dbus_return_val_if_fail
4100 Throughout: use dbus_return_if_fail
4102 2003-04-23 James Willcox <jwillcox@gnome.org>
4105 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4106 (dbus_connection_setup_with_g_main),
4107 (dbus_server_setup_with_g_main):
4108 * glib/test-dbus-glib.c: (main):
4109 * glib/test-thread-client.c: (main):
4110 * glib/test-thread-server.c: (new_connection_callback), (main):
4111 * tools/dbus-monitor.c: (main):
4113 Added a GMainContext argument to dbus_connection_setup_with_g_main()
4114 and dbus_server_setup_with_g_main().
4116 2003-04-20 Havoc Pennington <hp@pobox.com>
4118 * doc/dbus-specification.sgml: document the restrictions on
4119 message and service names
4121 2003-04-22 Havoc Pennington <hp@redhat.com>
4123 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4124 support, and do some code cleanups to share more code and
4125 speed up array marshal/demarshal.
4127 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4129 * configure.in: generate dbus-arch-deps.h
4131 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4134 2003-04-22 Havoc Pennington <hp@redhat.com>
4136 * test/data/valid-messages/opposite-endian.message: fix test
4137 to use proper type for rply field
4139 * test/data/invalid-messages: add tests for below validation
4141 * dbus/dbus-message.c (decode_header_data): validate field types,
4142 and validate that named fields are valid names
4143 (decode_name_field): consider messages in the
4144 org.freedesktop.Local. namespace to be invalid.
4146 * dbus/dbus-string.c (_dbus_string_validate_name): new
4148 2003-04-19 Havoc Pennington <hp@pobox.com>
4150 * bus/driver.c (bus_driver_handle_hello): check limits and
4151 return an error if they are exceeded.
4153 * bus/connection.c: maintain separate lists of active and inactive
4154 connections, and a count of each. Maintain count of completed
4155 connections per user. Implement code to check connection limits.
4157 * dbus/dbus-list.c (_dbus_list_unlink): export
4159 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4160 number of bytes in the message queue for a connection
4162 2003-04-18 Havoc Pennington <hp@pobox.com>
4164 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4166 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4169 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4170 on realloc be sure to update the pointer in the keyring
4172 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4173 offset to avoid writing to unallocated memory
4175 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4176 try the next mechanism, so we properly handle OOM
4178 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4180 (_dbus_keyring_new): fix OOM bug
4181 (_dbus_keyring_new_homedir): always set error; impose a maximum
4182 number of keys we'll load from the file, mostly to speed up the
4183 test suite and make its OOM checks more useful, but also for
4186 * dbus/dbus-auth.c (process_error_server): reject authentication
4187 if we get an error from the client
4188 (process_cancel): on cancel, send REJECTED, per the spec
4189 (process_error_client): send CANCEL if we get an error from the
4192 2003-04-18 Havoc Pennington <hp@pobox.com>
4194 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4197 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4200 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4201 about DBUS_TEST_HOMEDIR once
4203 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4206 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4207 config file so we test the right thing
4209 Throughout: assorted docs improvements
4211 2003-04-18 Havoc Pennington <hp@pobox.com>
4213 * glib/dbus-gmain.c: adapt to watch changes
4215 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4217 * dbus/dbus-server.h: remove dbus_server_handle_watch
4219 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4221 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4222 like DBusTimeout, so we don't need dbus_connection_handle_watch
4225 2003-04-17 Havoc Pennington <hp@redhat.com>
4227 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4228 database usage so it all goes via the DBusUserDatabase cache.
4230 2003-04-17 Havoc Pennington <hp@redhat.com>
4232 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4233 there was an OOM watch we skipped, we always return TRUE so we
4234 iterate again to have a look at it again. Fixes test suite hang.
4235 Code rearrangement also lets us lose some memset and only iterate
4236 over callbacks once.
4238 * bus/driver.c (bus_driver_handle_message): sense of test for
4241 2003-04-16 Havoc Pennington <hp@pobox.com>
4243 * doc/dbus-specification.sgml: make spec say serials are unsigned
4245 * dbus/dbus-message.h: change message serials to unsigned
4247 * dbus/dbus-connection.c: adapt to message serials being unsigned
4249 2003-04-15 Havoc Pennington <hp@pobox.com>
4251 * bus/bus.c: create and keep around a shared DBusUserDatabase
4254 * bus/connection.c (bus_connection_get_groups): don't cache
4255 groups for user in the connection object, since user database
4256 object now does that.
4258 2003-04-16 Havoc Pennington <hp@redhat.com>
4260 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4261 list of size counters
4262 (_dbus_message_loader_putback_message_link): put back a popped link
4264 * dbus/dbus-connection.c
4265 (dbus_connection_set_max_live_messages_size): rename
4267 (dbus_connection_get_outgoing_size): get size of outgoing
4269 (_dbus_connection_set_connection_counter): remove this cruft
4271 2003-04-14 Havoc Pennington <hp@redhat.com>
4273 * dbus/dbus-userdb.c: user database abstraction, mostly to get
4274 caching, but at some point we might want to be able to use a
4277 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4278 SHA1 conf file to test the sha1 auth mechanism, since the regular
4279 test always uses EXTERNAL when available.
4282 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4283 add conf file that requires use of sha1 auth
4285 2003-04-13 Havoc Pennington <hp@pobox.com>
4287 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4288 from Philip Blundell to send messages and monitor them.
4290 2003-04-13 Havoc Pennington <hp@pobox.com>
4292 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4295 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4298 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4299 fix to only recover unused bytes if we're already authenticated
4300 (_dbus_transport_get_is_authenticated): fix to still mark us
4301 authenticated if there are unused bytes.
4303 * bus/dispatch.c: implement security policy checking
4305 * bus/connection.c (bus_transaction_send_from_driver): new
4307 * bus/bus.c (bus_context_check_security_policy): new
4309 * bus/dispatch.c (send_service_nonexistent_error): delete this,
4310 now we just set the DBusError and it gets converted to an error
4313 * bus/connection.c (allow_user_function): enable code using actual
4314 data from the config file
4316 * bus/policy.c (list_allows_user): handle wildcard rules for
4317 user/group connection perms
4319 2003-04-13 Havoc Pennington <hp@pobox.com>
4321 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4323 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4325 * bus/policy.c (bus_policy_append_mandatory_rule)
4326 (bus_policy_append_default_rule, bus_policy_append_user_rule)
4327 (bus_policy_append_group_rule): new functions
4329 2003-04-12 Havoc Pennington <hp@pobox.com>
4331 * bus/config-parser.c (bus_config_parser_new): fix a memleak
4333 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4334 the pid/gid/uid, just for paranoia.
4336 * test/break-loader.c (randomly_do_n_things): find a byte
4337 containing a type code, and randomly change it to a different
4340 2003-04-12 Havoc Pennington <hp@pobox.com>
4342 * bus/policy.h: change BusPolicy to be the thing from the config
4343 file, and rename old BusPolicy to BusClientPolicy
4345 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4346 match change in how policy works
4348 * dbus/dbus-internals.h: mark assert_not_reached as
4349 __attribute((noreturn))__
4351 2003-04-11 Havoc Pennington <hp@redhat.com>
4353 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4354 the broadcast service. Use boolean return for ServiceExists.
4356 2003-04-11 Havoc Pennington <hp@redhat.com>
4358 * configure.in: add another directory to look for qt in.
4360 2003-04-11 Havoc Pennington <hp@redhat.com>
4362 * AUTHORS: add Colin Walters
4364 2003-04-11 Havoc Pennington <hp@redhat.com>
4370 2003-04-11 Havoc Pennington <hp@redhat.com>
4372 * bus/messagebus.in: remove pid file when stopping the
4373 message bus, since the bus won't have privileges to remove it
4376 2003-04-11 Havoc Pennington <hp@redhat.com>
4378 * bus/bus.c (bus_context_new): move credentials change after
4381 2003-04-11 Havoc Pennington <hp@pobox.com>
4383 * test/decode-gcov.c: add "below average functions" to the
4384 coverage report, and change how some of the code works.
4386 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4387 not in the coverage stats.
4389 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4390 couple places so running the test suite doesn't result in megaspam.
4392 2003-04-11 Havoc Pennington <hp@pobox.com>
4394 * bus/dispatch.c (check_existent_service_activation): accept a no
4395 memory error in a place we didn't before
4397 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4398 in case the first one failed," since the test suite is less
4401 2003-04-10 Havoc Pennington <hp@pobox.com>
4403 * bus/dispatch.c (check_segfault_service_activation): add test
4404 for launching an executable that just crashes.
4406 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4407 don't leave a million cores. We'll see how portable this is.
4409 2003-04-10 Havoc Pennington <hp@pobox.com>
4411 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4412 the possible parent failures before we fork, so that we don't
4413 fail to create a babysitter after creating the child.
4415 * bus/activation.c (bus_activation_activate_service): kill child
4416 if we don't successfully complete the activation.
4418 2003-04-10 Havoc Pennington <hp@redhat.com>
4420 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4421 the connection if it's disconnected
4423 * bus/activation.c (bus_activation_service_created): use new
4424 transaction features to roll back removal of pending activation if
4425 we don't successfully create the service after all. Don't remove
4426 pending activation if the function fails.
4428 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4429 (_dbus_list_insert_after_link): new code to facilitate
4432 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4433 new functionality, so we can preallocate the ability to insert
4436 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4437 allowing us to put custom hooks in a transaction to be used for
4438 cancelling said transaction
4440 * doc/dbus-specification.sgml: add some discussion of secondary
4441 service owners, and disallow zero-length service names
4443 * bus/services.c (bus_registry_acquire_service): new function,
4444 splits out part of bus_driver_handle_acquire_service() and fixes
4445 a bug where we didn't remove the service doing the acquiring
4446 from the secondary queue if we failed to remove the current owner
4447 from the front of the queue.
4449 2003-04-10 Alexander Larsson <alexl@redhat.com>
4451 * doc/dbus-specification.sgml:
4452 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4454 2003-04-10 Alexander Larsson <alexl@redhat.com>
4459 Added files to cvsignore
4461 * dbus/dbus-message.h:
4462 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4463 Make get_named() take two out argument and return a boolean.
4464 (dbus_message_iter_get_args_valist):
4465 Update usage of get_named().
4466 (dbus_message_iter_append_byte):
4468 (dbus_message_iter_append_named)
4470 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4473 2003-04-10 Alexander Larsson <alexl@redhat.com>
4475 * dbus/dbus-marshal.[ch]:
4476 Add array_type_pos argument to _dbus_marshal_validate_arg.
4477 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4479 * dbus/dbus-message.[ch]:
4480 Multi-dimensional arrays have full type specification in the
4481 outermost array. Iter code re-arranged to handle this.
4482 Added some more iter tests.
4484 * doc/dbus-specification.sgml:
4487 Update new array encoding description.
4488 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4490 * test/data/invalid-messages/array-with-mixed-types.message:
4491 * test/data/valid-messages/array-of-array-of-uint32.message:
4492 Change to the new array format.
4494 * test/data/invalid-messages/too-short-dict.message:
4497 * test/data/valid-messages/recursive-types.message:
4498 Fix up and extend test.
4500 2003-04-10 Havoc Pennington <hp@pobox.com>
4502 * bus/dispatch.c: lots of fixes
4504 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4505 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4506 that was crack, broke the test service.
4508 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4509 handling to avoid piling up errors if we get a failure on the
4512 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4513 pid in assertion failures.
4515 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4516 to some fixed size of file descriptor array. Don't return TRUE
4517 anytime a timeout exists, that led to lots of busy loop silliness
4520 2003-04-09 Havoc Pennington <hp@redhat.com>
4522 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4523 I'd checked this in earlier but hadn't.
4525 2003-04-09 Havoc Pennington <hp@redhat.com>
4527 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4528 the activation test (man this is getting old!)
4530 2003-04-09 Havoc Pennington <hp@redhat.com>
4532 * test/test-utils.c: use dispatch status function to fix this up
4534 * bus/connection.c (connection_watch_callback): don't dispatch
4536 (connection_timeout_callback): don't dispatch from here
4537 (bus_connections_setup_connection): set the dispatch status function
4538 (bus_connection_disconnected): unset it
4540 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4541 used to add a connection to be dispatched
4542 (_dbus_loop_iterate): do the dispatching at the end of each
4545 * dbus/dbus-connection.c
4546 (dbus_connection_set_dispatch_status_function): new function
4547 allowing us to fix up main loop usage
4548 (_dbus_connection_last_unref): free all the various function
4550 (dbus_connection_dispatch): call the DispatchStatusFunction
4551 whenever this function returns
4552 (dbus_connection_handle_watch): call DispatchStatusFunction
4553 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4554 (reply_handler_timeout): call DispatchStatusFunction
4555 (dbus_connection_flush): call DispatchStatusFunction
4557 2003-04-09 Havoc Pennington <hp@redhat.com>
4559 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4562 * bus/dispatch.c (check_service_activated): fix bug in test
4564 * dbus/dbus-mainloop.c (check_timeout): fix this up
4566 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4567 verbose output so we can sort out output from different processes,
4568 e.g. in the activation case.
4570 2003-04-08 Colin Walters <walters@gnu.org>
4572 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4574 (bus_context_new): Set it.
4575 (bus_context_unref): Use it to delete the pid file.
4577 2003-04-08 Havoc Pennington <hp@redhat.com>
4579 * test/data/invalid-messages/array-with-mixed-types.message:
4580 regression test that fails for the moment
4582 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4583 tests for convenience
4585 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4586 array of nil, it broke things.
4588 * test/data/invalid-messages/array-of-nil.message: regression test
4590 * test/data/valid-messages/array-of-array-of-uint32.message:
4591 happened to write this so added it to suite
4593 2003-04-08 Havoc Pennington <hp@redhat.com>
4595 * bus/driver.c (bus_driver_handle_acquire_service): init
4596 retval/reply before checking name
4598 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4599 recursion depth argument
4601 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4602 in the public struct for future extension
4604 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4607 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4610 * doc/dbus-specification.sgml: fix typo
4612 2003-04-08 Alexander Larsson <alexl@redhat.com>
4614 Implemented recursive types, named types and new-style iters
4617 * glib/test-thread-client.c: (thread_func):
4618 * glib/test-thread-server.c: (handle_test_message):
4619 * test/test-service.c: (handle_echo):
4628 * dbus/dbus-internals.c: (_dbus_type_to_string):
4629 Update for new types.
4631 * dbus/dbus-marshal.[ch]:
4632 Implement recursive types and the new marshalling format.
4633 Remove hardcoded dict marshalling.
4634 Marshal named types.
4636 * dbus/dbus-message-builder.c:
4638 Remove references to old types
4640 * dbus/dbus-message.[ch]:
4641 New non-refcounted iter API that supports recursive iters.
4642 Use iters for appending, including support for recursive
4644 Add byte and named type support.
4645 Update everything to new marshalling formats.
4646 Add tests for new API.
4648 * dbus/dbus-protocol.h:
4649 Remove old array types.
4650 Add types: BYTE, ARRAY, DICT, NAMED
4652 * dbus/dbus-string.c:
4653 * dbus/dbus-sysdeps.c:
4654 Make parse_double locale safe.
4656 * dbus/dbus-test-main.c:
4662 * doc/dbus-specification.sgml:
4665 * test/data/incomplete-messages/missing-body.message:
4666 * test/data/invalid-messages/bad-boolean.message:
4667 * test/data/invalid-messages/bad-boolean-array.message:
4668 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4669 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4670 * test/data/invalid-messages/too-short-dict.message:
4671 * test/data/valid-messages/dict-simple.message:
4672 * test/data/valid-messages/dict.message:
4673 * test/data/valid-messages/emptiness.message:
4674 * test/data/valid-messages/lots-of-arguments.message:
4675 * test/data/valid-messages/no-padding.message:
4676 * test/data/valid-messages/recursive-types.message:
4677 Add missing NAME fields
4678 Fix up dicts & arrays
4680 * test/data/invalid-messages/dict-with-nil-value.message:
4681 Removed, this is not invalid anymore.
4683 * test/data/valid-messages/recursive-types.message:
4684 Add new test for deeply recursive types.
4686 2003-04-07 Havoc Pennington <hp@pobox.com>
4688 * bus/driver.c (bus_driver_handle_acquire_service): return an
4689 error if you try to acquire a service that starts with ':'
4691 2003-04-07 Havoc Pennington <hp@redhat.com>
4693 * doc/dbus-specification.sgml: require that base service names
4694 start with ':' and that the base service is created/deleted
4695 as first and last things a connection does on the bus
4697 * bus/dispatch.c (check_existent_service_activation): lots more
4698 work on the activation test; it doesn't fully pass yet...
4700 * test/test-service.c (main): fix so we don't memleak the
4701 connection to the message bus
4702 (filter_func): accept a message asking us to exit
4704 2003-04-06 Havoc Pennington <hp@pobox.com>
4706 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4709 * configure.in: fixes to Qt detection from Colin Walters
4711 * doc/Makefile.am: Only remove generated docbook dirs if they
4712 exist, from Colin Walters
4714 * dbus/dbus-bus.c: change how we set well-known connections to
4715 NULL, so that it works if a single connection is stored in
4716 two well-known array slots.
4718 * test/Makefile.am: remove a lot of stuff that isn't immediately
4719 useful, it's in CVS history if we want it.
4721 * test/test-service.c: use dbus-mainloop instead of that
4724 2003-04-06 Havoc Pennington <hp@pobox.com>
4726 * dbus/Makefile.am: split lists of sources into stuff that goes in
4727 the library, util functions that go in the lib and are also used
4728 elsewhere, and util functions that are used in tests/daemon but
4729 don't go in the lib.
4731 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4732 here so it can be used in test binaries also
4734 2003-04-06 Havoc Pennington <hp@pobox.com>
4736 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4737 here in the parent process, so we can return an error if it
4738 fails. Also, move some of the code into the child so the parent
4739 is less hosed if we fail midway through.
4741 * bus/bus.c (bus_context_new): move pidfile detection further up
4742 in the function, before we start overwriting sockets and such.
4744 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4746 * configure.in: add --with-system-pid-file and --with-system-socket
4748 2003-04-06 Colin Walters <walters@verbum.org>
4750 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4752 * bus/system.conf.in: Declare a pidfile.
4754 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4755 create one (if appropriate).
4757 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4758 (struct BusConfigParser) [pidfile]: New.
4759 (element_type_to_name, merge_included, start_busconfig_child)
4760 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4761 (bus_config_parser_unref): Free it.
4762 (bus_config_parser_get_pidfile): New function.
4764 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4766 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4768 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4770 * dbus/dbus-sysdeps.h: Prototype it.
4772 2003-04-06 Havoc Pennington <hp@pobox.com>
4774 * bus/bus.c (bus_context_new): print the address in here, rather
4775 than in main(), because we need to do it before forking the daemon
4777 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4778 on the service nonexistent error
4780 * bus/driver.c (bus_driver_handle_acquire_service): set the
4781 sender on the AcquireService reply
4783 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4784 server also listen on a UNIX socket so services can connect to it.
4786 2003-04-06 Havoc Pennington <hp@pobox.com>
4788 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4789 so it detects deadlocks and also we actually init threads when
4792 2003-04-06 Havoc Pennington <hp@pobox.com>
4794 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4795 save the domain socket name, and unlink it when we disconnect the
4796 server. Means that at least when we exit normally, we won't leave
4797 a bunch of junk in /tmp
4799 * dbus/dbus-transport-unix.c
4800 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4801 memory management). (I was making a real change here but then
4804 2003-04-06 Havoc Pennington <hp@pobox.com>
4806 * bus/bus.c (bus_context_new): fix wrong handling of
4807 server_data_slot_unref() in the error case.
4809 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4810 "(condition) != 0" to _dbus_real_assert so that
4811 "_dbus_assert (pointer)" doesn't cause a warning
4813 * bus/main.c (main): accept --print-address option to print out
4814 the message bus address
4816 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4818 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4819 "tmpdir" option to unix: address on client side
4821 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4824 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4825 we can use to create sockets in the test suite.
4827 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4828 cleanly. To be used for testing.
4830 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4832 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4834 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4835 handle trying to call this when there's no servers active
4837 2003-04-05 Havoc Pennington <hp@pobox.com>
4843 2003-04-05 Havoc Pennington <hp@pobox.com>
4845 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4846 crash on startup. Need to get "try starting the daemon"
4847 in the test suite I guess. ;-)
4849 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4850 tracked the number of open connections; it's better done in
4851 application-specific code as you want it to span all servers etc.
4853 2003-04-05 Havoc Pennington <hp@pobox.com>
4855 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4856 patch from Colin Walters
4858 2003-04-05 Havoc Pennington <hp@pobox.com>
4860 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4861 reality; in fact multiple mechanisms are allowed.
4863 * dbus/dbus-internals.c (_dbus_real_assert)
4864 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4865 _dbus_assert_not_reached() into functions, so that they don't show
4866 up in basic block counts for test coverage, and don't use up as
4867 much disk space. Does mean slower execution speed though, so
4868 assumes --disable-asserts is the normal production case.
4870 2003-04-05 Havoc Pennington <hp@pobox.com>
4872 * test/Makefile.am (dist-hook): also dist *.in files
4878 2003-04-05 Havoc Pennington <hp@pobox.com>
4880 * dbus/dbus-string.c: docs warning
4882 * dbus/dbus-spawn.c: missing docs
4884 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4886 2003-04-05 Havoc Pennington <hp@pobox.com>
4888 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4891 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4892 to -1 once we've reaped the babysitter
4893 (_dbus_babysitter_handle_watch): do as much work as we can, not
4896 * bus/activation.c: add code using DBusBabysitter so that we
4897 handle it when a service fails to start up properly.
4898 (bus_activation_service_created): don't remove the activation
4899 entries as we go, just let them get removed when we free the pending
4900 activation. Unref reply messages after sending them.
4902 2003-04-05 Havoc Pennington <hp@pobox.com>
4904 * test/decode-gcov.c (main): print per-directory stats in the report
4906 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4908 2003-04-05 Havoc Pennington <hp@pobox.com>
4910 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4912 * test/decode-gcov.c: hack up a little program to suck data
4913 out of gcov files. Yes this is sort of silly.
4915 * configure.in: define something in config.h and do an
4916 AM_CONDITIONAL when gcov is enabled
4918 2003-04-04 Havoc Pennington <hp@redhat.com>
4920 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4921 return a "babysitter" object that is used to monitor the status of
4922 the spawned process and reap it when required.
4924 * test/test-segfault.c, test/test-exit.c,
4925 test/test-sleep-forever.c: binaries that do various lame things,
4926 used in the test suite.
4928 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4930 2003-04-03 Havoc Pennington <hp@pobox.com>
4932 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4933 in preparation for modifying it, dbus-sysdeps is getting
4936 2003-04-03 Havoc Pennington <hp@redhat.com>
4938 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4941 * bus/*.[hc]: adapt to mainloop change
4943 2003-04-03 Havoc Pennington <hp@redhat.com>
4945 * bus/activation.c (load_directory): fix up memleaks
4946 (bus_activation_entry_free): free the entry
4948 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4949 we get one from the message bus; fix memleaks.
4951 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4953 2003-04-03 Havoc Pennington <hp@pobox.com>
4955 * bus/config-parser.c (bus_config_parser_unref): free
4956 list of mechanisms, bug discovered by test suite enhancements
4957 (putting system.conf and session.conf into suite)
4959 * test/Makefile.am, test/test-service.c: add placeholder for a
4960 test service that we'll activate as part of test suite. Doesn't
4963 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4964 setting NULL value, and use system malloc not dbus_malloc()
4965 when we have unavoidable memleakage.
4967 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4968 didn't work, and support DBUS_BUS_ACTIVATION.
4970 * bus/activation.c (child_setup): pass our well-known bus type to
4973 * bus/config-parser.c: support <type> to specify well-known type
4975 * doc/dbus-specification.sgml: document the env variables to
4976 locate well-known buses and find service activator
4978 2003-04-02 Havoc Pennington <hp@redhat.com>
4980 * test/Makefile.am (all-local): add a rule to copy tests to
4981 builddir, so we can have generated tests. Use this to remove the
4982 silly hack for testing system.conf and session.conf. Will use this
4983 shortly to generate .service files pointing to test binaries.
4985 2003-04-02 Havoc Pennington <hp@redhat.com>
4987 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4988 current alloc and needed new length, not max of the doubled
4989 allocation and needed new length. Also, when building tests,
4990 don't do the double-allocation stuff, just realloc every time.
4992 2003-04-02 Havoc Pennington <hp@redhat.com>
4994 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4996 (_dbus_string_get_dirname): new
4997 (_dbus_sysdeps_test): new
4998 (_dbus_directory_open): include dirnames in error messages
5000 * bus/config-parser.c: interpret <include> and <includedir> and
5001 <servicedir> relative to config file location if the given
5002 filename is not absolute.
5004 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
5006 2003-04-02 Havoc Pennington <hp@redhat.com>
5008 * bus/connection.c (bus_transaction_send_error_reply): set sender
5009 service for the error, and unref the reply on success
5011 * bus/activation.c: convert to use BusTransaction so OOM can be
5013 (bus_activation_service_created): set sender of the message
5015 2003-04-01 Havoc Pennington <hp@redhat.com>
5017 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
5018 <includedir> (at least mostly)
5020 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
5021 first, then the user ID
5023 2003-04-01 Havoc Pennington <hp@pobox.com>
5025 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
5028 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
5030 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
5032 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
5033 socket 0777, and unlink any existing socket.
5035 * bus/bus.c (bus_context_new): change our UID/GID and fork if
5036 the configuration file so specifies; set up auth mechanism
5039 * bus/config-parser.c (bus_config_parser_content): add support
5040 for <fork> option and fill in code for <auth>
5042 * bus/system.conf.in: add <fork/> to default configuration,
5043 and limit auth mechanisms to EXTERNAL
5045 * doc/config-file.txt (Elements): add <fork>
5047 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
5048 (_dbus_change_identity): new function
5050 2003-03-31 Havoc Pennington <hp@redhat.com>
5052 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
5053 (_dbus_listen_unix_socket): fix off-by-one error in null
5054 termination spotted by Nalin
5056 2003-03-31 Havoc Pennington <hp@redhat.com>
5058 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
5059 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
5060 having a real home directory available.
5062 2003-03-31 Havoc Pennington <hp@redhat.com>
5064 * bus/Makefile.am (install-data-hook): create /var/run/dbus
5066 * bus/messagebus.in: add init script for Red Hat /etc/init.d
5068 * configure.in: add support for specifying a style of init script
5071 2003-03-31 Havoc Pennington <hp@redhat.com>
5073 Fix some annoying DBusString API and fix all affected code.
5075 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5077 (_dbus_string_get_data): change to return string instead of using
5079 (_dbus_string_get_const_data): ditto
5080 (_dbus_string_get_data_len): ditto
5081 (_dbus_string_get_const_data_len): ditto
5083 2003-03-31 Havoc Pennington <hp@redhat.com>
5085 * bus/main.c (main): fix up the command line arguments to be nicer
5087 2003-03-31 Havoc Pennington <hp@redhat.com>
5089 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5090 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5091 final location that lands in the config file
5093 * bus/config-loader-expat.c (bus_config_load): fix type of
5096 * doc/TODO: remove TODO item for dbus_bus_get()
5098 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5100 2003-03-31 Havoc Pennington <hp@pobox.com>
5102 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5103 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5104 argument since they are always client side
5106 * dbus/dbus-server.c (dbus_server_get_address): new function
5108 * bus/main.c (main): take the configuration file as an argument.
5110 * test/data/valid-config-files/debug-allow-all.conf: new file to
5111 use with dispatch.c tests for example
5113 * bus/test-main.c (main): require test data dir
5115 * bus/bus.c (bus_context_new): change this to take a
5116 configuration file name as argument
5118 * doc/config-file.txt (Elements): add <servicedir>
5120 * bus/system.conf, bus/session.conf: new files
5122 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5123 well-known socket if none set
5125 * configure.in: create system.conf and session.conf
5127 2003-03-30 Havoc Pennington <hp@pobox.com>
5129 * bus/config-parser.c: hacking
5131 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5132 to shut down, since it could cause weirdness with the DBusList
5135 * dbus/dbus-list.c (_dbus_list_test): add tests for the
5136 link-oriented stack routines
5137 (alloc_link): free the mempool if the first alloc from it fails
5139 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5141 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5143 (_dbus_string_skip_white): new
5145 * doc/config-file.txt (Elements): add <includedir>
5147 2003-03-28 Havoc Pennington <hp@pobox.com>
5149 * dbus/dbus-string.c (_dbus_string_copy_data_len)
5150 (_dbus_string_copy_data): new functions
5152 2003-03-28 Anders Carlsson <andersca@codefactory.se>
5154 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5158 * dbus/dbus-memory.c:
5161 2003-03-28 Havoc Pennington <hp@pobox.com>
5163 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5164 I think it may have just been superstition. Not sure.
5166 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5167 failures that were not being handled.
5169 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5171 * dbus/dbus-memory.c: add ability to set number of mallocs in a
5172 row that will fail on out-of-memory.
5174 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5175 function for testing out-of-memory handling.
5177 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5178 allocation functions, they do map exactly to the expat ones.
5180 2003-03-27 Havoc Pennington <hp@redhat.com>
5182 * bus/config-loader-libxml.c (bus_config_load): add another error
5185 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5188 Add note about automatic service activation.
5190 * doc/dbus-specification.sgml:
5191 Rename the specification and clarify a few things.
5193 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5196 * dbus/dbus-address.c:
5198 * dbus/dbus-marshal.c:
5199 * dbus/dbus-server-debug-pipe.c:
5200 * dbus/dbus-transport-unix.c:
5201 Fix documentation warnings.
5203 2003-03-26 Havoc Pennington <hp@pobox.com>
5205 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5206 after every test so it's quick and easy to see which leaked, and
5207 so we test multiple dbus_shutdown() calls
5209 * configure.in: change configure.in XML stuff to also support
5212 * config-loader-libxml.c: some hacking
5214 * config-loader-expat.c: some hacking
5216 * config-parser.c: some hacking, plus tests
5218 2003-03-25 Havoc Pennington <hp@redhat.com>
5220 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5222 * configure.in: add --with-xml option to specify XML library,
5223 right now only libxml is supported.
5225 * bus/config-loader-libxml.c, config-parser.c: sync some minor
5226 nonworking code between home and work, still just stubs
5228 2003-03-24 Havoc Pennington <hp@redhat.com>
5230 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5233 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5234 NULL argument for "message" if the error is a well-known one,
5235 fill in a generic message in this case.
5237 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5240 * bus/test.c (bus_test_flush_bus): add
5242 * bus/policy.c (bus_policy_test): test code stub
5244 2003-03-24 Havoc Pennington <hp@pobox.com>
5246 * bus/connection.c (bus_connections_setup_connection): set up
5247 the "can this user connect" function, but it always returns
5248 TRUE until we have a config file parser so we can have a config
5249 file that allows connections.
5251 2003-03-23 Havoc Pennington <hp@pobox.com>
5253 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5254 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5255 the mutex, so we can check for proper memory management
5258 * dbus/dbus-dataslot.c: remove the mutex from
5259 DBusDataSlotAllocator and lock it manually when using it,
5260 to simplify fitting it into the global slots framework.
5262 * dbus/dbus-threads.c (init_static_locks): rework how we're
5263 handling global locks so they are easily shut down.
5265 * bus/policy.c (bus_policy_append_rule): fix
5267 * bus/test-main.c (main): check for memleaks
5269 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5270 test suite check for memleaks
5272 * dbus/dbus-memory.c: add support in test mode for tracking
5273 number of outstanding blocks
5275 2003-03-23 Havoc Pennington <hp@pobox.com>
5277 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5280 * dbus/dbus-hash.h: add ULONG hash keys
5282 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5283 (_dbus_get_group_id): new function
5285 2003-03-20 Havoc Pennington <hp@redhat.com>
5287 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5289 (dbus_connection_get_unix_user): new function
5291 2003-03-20 Havoc Pennington <hp@pobox.com>
5293 * bus/connection.c (bus_connection_send_oom_error): assert that
5294 message has a sender
5295 (connection_execute_transaction): ditto
5296 (bus_connection_preallocate_oom_error): fix to set the sender, and
5297 set recipient to the destination service, not the bus driver
5299 * bus/policy.c: hacking
5301 * dbus/dbus-message.c (dbus_message_service_is): new function
5302 (dbus_message_sender_is): new
5304 2003-03-19 Havoc Pennington <hp@redhat.com>
5306 * bus/policy.c: start sketching code for policy restrictions on
5307 what connections can do.
5309 2003-03-18 Havoc Pennington <hp@redhat.com>
5311 * doc/TODO: some notes on high-level todo items. Little nitpick
5312 stuff is all in @todo, so no need to add it here.
5314 * doc/config-file.txt: some notes on how config file might look
5316 2003-03-18 Anders Carlsson <andersca@codefactory.se>
5322 2003-03-17 Havoc Pennington <hp@redhat.com>
5324 * dbus/dbus-internals.h: add gcc attributes so that
5325 our printf-style functions warn on bad arguments to
5328 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5331 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5334 2003-03-17 Havoc Pennington <hp@redhat.com>
5336 * bus/test-main.c (main): make it print something as it runs
5337 so make check doesn't look stuck
5339 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5340 from CVS, now obsolete
5342 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5344 * bus/dispatch.c: (bus_dispatch):
5345 Refetch the service name since it may have been reallocated
5346 when dbus_message_set_sender was called.
5348 * dbus/dbus-sysdeps.c: (_dbus_accept):
5349 Add address and address length variables and use them to stop
5350 valgrind from complaining.
5352 2003-03-17 Havoc Pennington <hp@pobox.com>
5354 All tests pass, no memleaks, no valgrind complaints.
5356 * bus/test.c: refcount handler_slot
5358 * bus/connection.c (bus_connections_new): refcount
5359 connection_data_slot
5361 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5362 bytes so that auth scripts pass.
5364 * bus/dispatch.c: init message_handler_slot so it gets allocated
5367 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5369 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5370 dealloc server_pipe_hash when no longer used for benefit of
5373 * dbus/dbus-auth.c (process_command): memleak fix
5375 * bus/dispatch.c (check_hello_message): memleak fix
5377 2003-03-16 Havoc Pennington <hp@pobox.com>
5379 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5381 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5383 * bus/activation.c (bus_activation_activate_service): Append
5384 the pending activation entry to the list of pending activations.
5386 2003-03-16 Havoc Pennington <hp@pobox.com>
5388 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5391 * dbus/dbus-address.c (create_entry): fix OOM handling when
5392 failing to alloc entry->method
5394 2003-03-16 Havoc Pennington <hp@pobox.com>
5396 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5399 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5400 add some missing dbus_set_result
5402 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5403 alloc the DBusMessageHandler
5405 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5406 the transport here, since we call this from the finalizer; it
5407 resulted in a double-finalize.
5409 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5410 where we tried to use transport->connection that was NULL,
5411 happened when transport was disconnected early on due to OOM
5413 * bus/*.c: adapt to handle OOM for watches/timeouts
5415 * dbus/dbus-transport-unix.c: port to handle OOM during
5418 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5419 reference to unused bytes instead of a copy
5421 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5424 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5427 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5430 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5432 * doc/dbus-specification.sgml:
5433 Document reply message for ActivateService.
5435 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5437 * bus/activation.c: (bus_pending_activation_entry_free),
5438 (bus_pending_activation_free), (bus_activation_new),
5439 (bus_activation_unref), (bus_activation_service_created),
5440 (bus_activation_activate_service):
5442 * bus/bus.c: (bus_context_new):
5443 * bus/desktop-file.c: (new_section):
5444 * bus/driver.c: (bus_driver_send_service_deleted),
5445 (bus_driver_handle_activate_service):
5446 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5448 * dbus/dbus-connection.c:
5449 (dbus_connection_send_with_reply_and_block):
5450 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5451 * dbus/dbus-protocol.h:
5452 Make activation work better. Now pending activations will be queued
5453 and the daemon won't try to activate services that are already registered.
5455 2003-03-16 Havoc Pennington <hp@pobox.com>
5457 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5460 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5461 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5463 2003-03-16 Havoc Pennington <hp@pobox.com>
5465 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5466 this. always run the test suite before commit...
5468 * bus/*: adapt to DBusConnection API changes
5470 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5471 requires renaming stuff to avoid dbus_connection_dispatch name
5474 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5477 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5478 separate from _dbus_message_loader_return_buffer()
5480 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5481 this, because it's now always broken to use; the number of
5482 messages in queue vs. the number still buffered by the message
5483 loader is undefined/meaningless. Should use
5484 dbus_connection_get_dispatch_state().
5485 (dbus_connection_dispatch): rename from
5486 dbus_connection_dispatch_message
5488 2003-03-16 Havoc Pennington <hp@pobox.com>
5490 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5493 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5495 * dbus/dbus-connection.c:
5496 (dbus_connection_send_with_reply_and_block):
5497 Decrease connection->n_incoming when removing an entry
5499 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5500 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5501 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5502 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5503 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5504 (dbus_dict_get_byte_array):
5505 Handle NULL arrays and strings. Also add support for byte arrays.
5507 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5508 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5509 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5510 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5511 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5512 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5513 * dbus/dbus-marshal.h:
5514 Add support for marshalling and demarshalling empty arrays and strings.
5516 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5517 (dbus_message_append_string_array),
5518 (dbus_message_iter_get_boolean),
5519 (dbus_message_iter_get_boolean_array),
5520 (dbus_message_iter_get_int32_array),
5521 (dbus_message_iter_get_uint32_array),
5522 (dbus_message_iter_get_double_array),
5523 (dbus_message_iter_get_byte_array),
5524 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5525 (check_message_handling):
5526 Add support for getting empty arrays and dicts.
5528 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5529 Don't do any validation at all for now, that's better than just checking
5532 * test/data/valid-messages/emptiness.message:
5533 New test message with lots of empty arrays.
5535 2003-03-16 Havoc Pennington <hp@pobox.com>
5537 * dbus/dbus-connection.c
5538 (_dbus_connection_queue_received_message_link): new function that
5539 can't fail due to OOM
5541 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5542 new function pops a message together with a list link
5545 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5546 message queuing functions to avoid needing to alloc memory
5548 2003-03-16 Havoc Pennington <hp@pobox.com>
5550 Oops - test code was only testing failure of around 30 of the
5551 mallocs in the test path, but it turns out there are 500+
5552 mallocs. I believe this was due to misguided linking setup such
5553 that there was one copy of dbus_malloc etc. in the daemon and one
5554 in the shared lib, and only daemon mallocs were tested. In any
5555 case, the test case now tests all 500+ mallocs, and doesn't pass
5556 yet, though there are lots of fixes in this patch.
5558 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5559 this so that it doesn't need to allocate memory, since it
5560 has no way of indicating failure due to OOM (and would be
5561 annoying if it did).
5563 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5565 * bus/Makefile.am: rearrange to create two self-contained
5566 libraries, to avoid having libraries with overlapping symbols.
5567 that was resulting in weirdness, e.g. I'm pretty sure there
5568 were two copies of global static variables.
5570 * dbus/dbus-internals.c: move the malloc debug stuff to
5573 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5576 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5578 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5581 * bus/dispatch.c (bus_dispatch_add_connection): free
5582 message_handler_slot when no longer using it, so
5583 memory leak checkers are happy for the test suite.
5585 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5587 * bus/bus.c (new_connection_callback): disconnect in here if
5588 bus_connections_setup_connection fails.
5590 * bus/connection.c (bus_connections_unref): fix to free the
5592 (bus_connections_setup_connection): if this fails, don't
5593 disconnect the connection, just be sure there are no side
5596 * dbus/dbus-string.c (undo_alignment): unbreak this
5598 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5600 (_dbus_auth_new): fix the order in which we free strings
5603 * bus/connection.c (bus_connection_disconnected): fix to
5604 not send ServiceDeleted multiple times in case of memory
5607 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5608 get the base service name
5609 (dbus_bus_register_client): don't return base service name,
5610 instead store it on the DBusConnection and have an accessor
5612 (dbus_bus_register_client): rename dbus_bus_register()
5614 * bus/dispatch.c (check_hello_message): verify that other
5615 connections on the bus also got the correct results, not
5616 just the one sending hello
5618 2003-03-15 Havoc Pennington <hp@pobox.com>
5620 Make it pass the Hello handling test including all OOM codepaths.
5621 Now to do other messages...
5623 * bus/services.c (bus_service_remove_owner): fix crash when
5624 removing owner from an empty list of owners
5625 (bus_registry_ensure): don't leave service in the list of
5626 a connection's owned services if we fail to put the service
5629 * bus/connection.c (bus_connection_preallocate_oom_error): set
5630 error flag on the OOM error.
5632 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5633 handle _dbus_transport_set_connection failure
5635 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5636 to create watches up front and simply enable/disable them as
5638 (unix_connection_set): this can now fail on OOM
5640 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5641 of enabling/disabling a watch or timeout.
5643 * bus/loop.c (bus_loop_iterate): don't touch disabled
5646 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5648 2003-03-15 Havoc Pennington <hp@pobox.com>
5650 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5651 write useful test code, after all that futzing around ;-)
5653 Test does not yet pass because we can't handle OOM in
5654 _dbus_transport_messages_pending (basically,
5655 dbus_connection_preallocate_send() does not prealloc the write
5656 watch). To fix this, I think we need to add new stuff to
5657 set_watch_functions, namely a SetEnabled function so we can alloc
5658 the watch earlier, then enable it later.
5660 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5661 dbus-memory.c to the convenience lib
5663 * bus/test.c: rename some static functions to keep them clearly
5664 distinct from stuff in connection.c. Handle client disconnection.
5666 2003-03-14 Havoc Pennington <hp@pobox.com>
5668 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5669 transport, tests more of the real codepath. Set up clients
5670 with bus_setup_debug_client.
5672 * bus/test.c (bus_setup_debug_client): function to set up debug
5673 "clients" on the main loop
5675 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5678 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5681 * dbus/dbus-server-debug.c: support a debug server based on pipes
5683 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5684 (_dbus_close): new function
5686 * configure.in: check for socketpair
5688 2003-03-14 Havoc Pennington <hp@redhat.com>
5690 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5693 * dbus/dbus-transport-debug.c: rework this a good bit to be
5694 less complicated. hopefully still works.
5696 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5699 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5702 * dbus/dbus-message.c (dbus_message_copy): rename from
5703 dbus_message_new_from_message, fix it up to copy
5704 all the message fields, add test case
5706 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5707 not quite passing yet
5709 2003-03-14 Havoc Pennington <hp@pobox.com>
5711 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5712 until no work remains" in test code. (the large diff here
5713 is just code movement, no actual changes)
5715 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5716 1, no point waiting around for test code.
5717 (_dbus_server_debug_accept_transport): unref the timeout
5718 after adding it (right?)
5720 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5722 2003-03-13 Havoc Pennington <hp@redhat.com>
5724 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5727 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5730 * dbus/dbus-connection.h: Make AddWatchFunction and
5731 AddTimeoutFunction return a bool so they can fail on out-of-memory
5733 * bus/bus.c (bus_context_new): set up timeout handlers
5735 * bus/connection.c (bus_connections_setup_connection): set up
5738 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5741 * bus/bus.c (bus_context_new): adapt to changes
5743 * bus/connection.c: adapt to changes
5745 * test/watch.c: adapt to DBusWatch changes
5747 * bus/dispatch.c (bus_dispatch_test): started adding this but
5750 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5752 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5754 2003-03-13 Havoc Pennington <hp@pobox.com>
5756 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5757 set up a test framework as for the library
5759 2003-03-12 Havoc Pennington <hp@pobox.com>
5761 Throughout: purge global variables, introduce BusActivation,
5762 BusConnections, BusRegistry, etc. objects instead.
5764 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5767 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5768 going to redo this a bit differently I think
5770 2003-03-12 Havoc Pennington <hp@redhat.com>
5772 Mega-patch that gets the message bus daemon initially handling
5773 out-of-memory. Work still needed. Also lots of random
5774 moving stuff to DBusError instead of ResultCode.
5776 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5778 * dbus/dbus-connection.c
5779 (dbus_connection_send_with_reply_and_block): use DBusError
5781 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5784 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5785 code here, as the only failure possible is OOM.
5787 * bus/connection.c (bus_connection_disconnect):
5788 rename bus_connection_disconnected as it's a notification only
5790 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5791 "name" on get_args failure, should be done by get_args;
5792 don't disconnect client for bad args, just return an error.
5793 (bus_driver_handle_service_exists): ditto
5795 * bus/services.c (bus_services_list): NULL-terminate returned array
5797 * bus/driver.c (bus_driver_send_service_lost)
5798 (bus_driver_send_service_acquired): send messages from driver to a
5799 specific client to the client's unique name, not to the broadcast
5802 * dbus/dbus-message.c (decode_header_data): reject messages that
5803 contain no name field
5804 (_dbus_message_get_client_serial): rename to
5805 dbus_message_get_serial and make public
5806 (_dbus_message_set_serial): rename from set_client_serial
5807 (_dbus_message_set_reply_serial): make public
5808 (_dbus_message_get_reply_serial): make public
5810 * bus/connection.c (bus_connection_foreach): allow stopping
5811 iteration by returning FALSE from foreach function.
5813 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5814 (dbus_connection_free_preallocated_send)
5815 (dbus_connection_preallocate_send): new API for sending a message
5816 without possibility of malloc failure.
5817 (dbus_connection_send_message): rename to just
5818 dbus_connection_send (and same for whole function family)
5820 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5822 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5824 * bus/activation.c: handle/return errors
5826 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5828 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5829 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5830 (_dbus_result_from_errno): move to this file
5832 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5834 * dbus/dbus-marshal.c:
5835 (_dbus_marshal_set_string):
5836 Take a length argument so we can marshal the correct string
5839 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5840 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5841 (_dbus_marshal_test):
5842 * dbus/dbus-marshal.h:
5843 Add support for marshalling and demarshalling dicts.
5845 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5846 Add support for TYPE DICT.
5848 * dbus/dbus-message.c: (set_string_field):
5849 Adjust header padding.
5851 (dbus_message_append_args_valist), (dbus_message_append_dict),
5852 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5853 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5854 (check_message_handling), (check_have_valid_message):
5855 * dbus/dbus-message.h:
5856 Add functions for setting and getting dicts.
5858 * dbus/dbus-protocol.h:
5864 * doc/dbus-specification.sgml:
5865 Add information about how dicts are marshalled.
5867 * test/data/invalid-messages/dict-with-nil-value.message:
5868 * test/data/invalid-messages/too-short-dict.message:
5869 * test/data/valid-messages/dict-simple.message:
5870 * test/data/valid-messages/dict.message:
5871 Add sample messages containing dicts.
5873 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5875 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5877 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5880 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5881 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5882 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5883 (dbus_dict_set_double), (dbus_dict_set_string),
5884 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5885 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5886 (dbus_dict_set_string_array), (_dbus_dict_test):
5888 Fix according to comments from Havoc.
5890 2003-03-06 Michael Meeks <michael@server.home>
5892 * configure.in: if we don't have kde-config, disable have_qt.
5894 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5899 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5900 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5901 (dbus_dict_remove), (dbus_dict_get_value_type),
5902 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5903 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5904 (dbus_dict_put_double), (dbus_dict_put_string),
5905 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5906 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5907 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5908 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5909 (dbus_dict_get_double), (dbus_dict_get_string),
5910 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5911 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5912 (dbus_dict_get_string_array), (_dbus_dict_test):
5914 Add DBusDict implementation
5916 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5920 2003-03-04 Havoc Pennington <hp@pobox.com>
5922 * test/data/auth/*: adapt to changes
5924 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5925 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5928 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5929 more stuff from being in a context name, to make the protocol
5930 simpler to deal with
5932 * dbus/dbus-errors.c (dbus_error_has_name): new function
5933 (dbus_error_is_set): new function
5935 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5936 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5938 * dbus/dbus-connection.c (dbus_connection_flush): also read
5939 messages during a flush operation
5941 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5943 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5945 * configure.in: Check for gethostbyname on Solaris.
5947 * dbus/dbus-transport.c: (_dbus_transport_open):
5948 Remove duplicate "tcp" entry.
5950 * doc/dbus-specification.sgml:
5951 Clarify some things.
5953 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5955 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5956 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5957 (_dbus_keyring_test):
5958 * dbus/dbus-md5.c: (_dbus_md5_compute):
5959 * dbus/dbus-sha.c: (_dbus_sha_compute):
5962 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5964 * README: Add some things.
5966 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5968 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5969 after case DBUS_TYPE_BOOELAN.
5971 2003-03-02 Havoc Pennington <hp@pobox.com>
5973 * test/break-loader.c (randomly_set_extreme_ints): add test that
5974 sets really huge and small integers
5976 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5977 that length of boolean array fits in the string, and that
5978 string has room for boolean value in single-bool case.
5980 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5981 optional value to "ALIGN" command which is what to fill the
5984 * test/data/valid-messages/no-padding.message: add regression
5985 test for the message padding problem
5987 2003-03-02 Havoc Pennington <hp@pobox.com>
5989 * dbus/dbus-message.c (decode_header_data): fix to always init
5990 message_padding, from Benjamin Dauvergne
5992 2003-03-02 Havoc Pennington <hp@pobox.com>
5998 2003-03-01 Joe Shaw <joe@assbarn.com>
6000 * configure.in: Check for "struct cmsgcred" and try to access its
6001 members for BSD-like unices.
6003 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
6004 _dbus_read_credentials_unix_socket().
6005 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
6006 read() for reading the credential byte off the unix socket. Use
6007 struct cmsgcred on systems that support it.
6009 2003-02-27 Alexander Larsson <alexl@redhat.com>
6013 Make gthreads-2.0 dependency optional. Don't build thread test if
6016 2003-02-27 Havoc Pennington <hp@pobox.com>
6018 * dbus/dbus-connection.c
6019 (dbus_connection_send_message_with_reply_and_block): fix doh!
6020 doh! doh! bug that resulted in never removing a reply from the
6021 queue, no wonder we called get_reply_serial so much ;-)
6023 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
6024 and client serial instead of demarshaling them every time
6026 2003-02-27 Havoc Pennington <hp@pobox.com>
6028 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
6029 more inlined, using dbus-string-private.h, speeds things up
6032 * dbus/dbus-string.c (_dbus_string_free): apply align offset
6033 when freeing the string
6034 (_dbus_string_steal_data): fix for align offset
6035 (undo_alignment): new function
6037 2003-02-26 Havoc Pennington <hp@redhat.com>
6039 All kinds of audit fixes from Owen, plus initial attempt to
6040 handle unaligned memory returned from malloc.
6042 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
6043 leave room for align_offset and nul byte
6044 (fixup_alignment): function to track an align_offset and
6045 ensure real->str is aligned
6046 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
6047 to allow a nul byte plus align offset
6048 (_dbus_string_lock): fix overflow issue
6049 (_dbus_string_init_const_len): add assertions on sanity of len,
6050 assign allocated to be ALLOCATION_PADDING larger than len
6051 (set_length): fixup the overflow handling
6052 (_dbus_string_get_data_len): fix overflow in assertion
6053 (open_gap): detect overflow in size of gap to be opened
6054 (_dbus_string_lengthen): add overflow check
6055 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
6056 (_dbus_string_append): add overflow check
6057 (_dbus_string_append_unichar): overflow
6058 (_dbus_string_delete): fix overflow in assertion
6059 (_dbus_string_copy_len): overflow in assertion
6060 (_dbus_string_replace_len): overflows in assertions
6061 (_dbus_string_find): change to implement in terms of
6062 _dbus_string_find_to
6063 (_dbus_string_find_to): assorted fixage
6064 (_dbus_string_equal_c_str): assert c_str != NULL,
6065 fix logic so the function works
6066 (_dbus_string_ends_with_c_str): fix overflow thingy
6067 (_dbus_string_base64_encode): overflow fix
6068 (_dbus_string_validate_ascii): overflow
6069 (_dbus_string_validate_nul): overflow
6071 2003-02-26 Havoc Pennington <hp@redhat.com>
6073 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6075 2003-02-26 Alexander Larsson <alexl@redhat.com>
6078 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6080 * dbus/dbus-connection.c:
6081 * dbus/dbus-connection.h:
6082 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6083 Add dbus_connection_set_wakeup_main_function and use it when queueing
6084 incoming and outgoing messages.
6087 * dbus/dbus-dataslot.c:
6088 Threadsafe usage of DBusDataSlotAllocator
6090 * dbus/dbus-message.c: (dbus_message_get_args_iter):
6093 * dbus/dbus-server-unix.c:
6096 * glib/dbus-gmain.c:
6097 Implement the new wakeup functions for glib.
6100 * glib/test-thread-client.c:
6101 * glib/test-thread-server.c:
6102 * glib/test-thread.h:
6103 Initial cut at some thread test code. Not really done yet.
6105 2003-02-26 Havoc Pennington <hp@pobox.com>
6107 * dbus/dbus-connection.c
6108 (dbus_connection_send_message_with_reply_and_block): fix crash
6109 where we ref'd the outgoing message instead of the returned reply
6111 * dbus/dbus-transport-unix.c (do_authentication): check read watch
6112 at the end of this function, so if we didn't need to read for
6113 authentication, we reinstall it for receiving messages
6115 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6116 a NULL sender for peer-to-peer case
6118 * dbus/dbus-transport-unix.c (check_read_watch): handle
6119 !authenticated case correctly
6121 * glib/dbus-gmain.c: add support for DBusServer
6123 * dbus/dbus-server.c: add data slot support
6125 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6126 return values and handle errors
6128 * dbus/dbus-dataslot.c: factor out the data slot stuff from
6131 * Doxyfile.in (INPUT): add glib subdir
6133 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6134 setup_with_g_main instead of hookup_with_g_main; write docs
6136 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6138 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6139 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6140 * dbus/dbus-message.c: (dbus_message_append_boolean),
6141 (dbus_message_append_boolean_array),
6142 (dbus_message_get_args_valist), (_dbus_message_test):
6143 * dbus/dbus-message.h:
6144 * doc/dbus-specification.sgml:
6145 Various fixes as pointed out by Havoc.
6147 * test/data/invalid-messages/bad-boolean-array.message:
6148 * test/data/invalid-messages/bad-boolean.message:
6149 Add invalid boolean value test cases.
6151 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6153 * dbus/dbus-internals.c: (_dbus_type_to_string):
6154 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6155 (_dbus_marshal_validate_arg):
6156 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6157 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6158 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6159 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6160 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6161 (dbus_message_iter_get_double),
6162 (dbus_message_iter_get_boolean_array), (message_iter_test):
6163 * dbus/dbus-message.h:
6164 * dbus/dbus-protocol.h:
6165 * doc/dbus-specification.sgml:
6166 * test/data/valid-messages/lots-of-arguments.message:
6167 Add support for boolean and boolean array types.
6169 2003-02-23 Havoc Pennington <hp@pobox.com>
6171 * dbus/dbus-keyring.c: finish most of this implementation and
6174 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6175 these barf if the error isn't cleared to NULL
6177 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6178 (_dbus_create_directory): new function
6180 * dbus/dbus-errors.c (dbus_set_error): fix warning
6182 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6183 (_dbus_string_hex_decode): new function
6184 (test_hex_roundtrip): test code
6186 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6188 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6190 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6191 the save-to-temp/rename trick to atomically write the new file
6192 (_dbus_string_parse_uint): new function
6194 2003-02-22 Havoc Pennington <hp@pobox.com>
6196 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6198 2003-02-22 Havoc Pennington <hp@pobox.com>
6200 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6201 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6203 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6205 * dbus/test/data/sha-1: add US government test suite for SHA-1
6207 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6209 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6210 Make string arrays NULL-terminated.
6212 * dbus/dbus-memory.c: (dbus_free_string_array):
6213 * dbus/dbus-memory.h:
6214 New function for freeing NULL-terminated string arrays.
6216 * dbus/dbus-message-builder.c: (append_quoted_string),
6217 (_dbus_message_data_load):
6218 Add support for array types.
6220 * dbus/dbus-message.c: (check_message_handling):
6221 Add more types as test cases.
6223 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6224 (_dbus_string_parse_double):
6225 Add the start offset to the end offset.
6227 * test/data/valid-messages/lots-of-arguments.message:
6228 New test message with lots of arguments.
6230 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6232 * dbus/dbus-message.c: (dbus_message_append_nil),
6233 (dbus_message_append_int32), (dbus_message_append_uint32),
6234 (dbus_message_append_double), (dbus_message_append_string),
6235 (dbus_message_append_int32_array),
6236 (dbus_message_append_uint32_array),
6237 (dbus_message_append_double_array),
6238 (dbus_message_append_byte_array),
6239 (dbus_message_append_string_array):
6240 Fix all out-of-memory handling in these functions.
6242 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6244 * dbus/dbus-message.c: (dbus_message_append_nil):
6247 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6249 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6250 (dbus_message_append_nil), (dbus_message_append_int32_array),
6251 (dbus_message_append_uint32_array),
6252 (dbus_message_append_double_array),
6253 (dbus_message_append_byte_array),
6254 (dbus_message_append_string_array), (dbus_message_get_args_valist),
6255 (dbus_message_iter_get_int32_array),
6256 (dbus_message_iter_get_uint32_array),
6257 (dbus_message_iter_get_double_array),
6258 (dbus_message_iter_get_byte_array),
6259 (dbus_message_iter_get_string_array):
6261 * dbus/dbus-message.h:
6262 Add functions for appending and getting arrays.
6264 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6266 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6267 element size at least 8 bytes, fixes mempool tests on
6270 2003-02-20 Alexander Larsson <alexl@redhat.com>
6272 * dbus/dbus-transport-unix.c (unix_do_iteration):
6273 Unlock the connection mutex during a blocking select call.
6274 Add todo about how we need a way to wake up the select.
6276 * dbus/dbus-connection-internal.h:
6277 * dbus/dbus-connection.c:
6278 Add _dbus_connection_lock and _dbus_connection_unlock.
6280 2003-02-19 Havoc Pennington <hp@pobox.com>
6282 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6283 Doxyfile.in, not Doxyfile
6285 * dbus/dbus-keyring.c: do some hacking on this
6287 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6289 * dbus/dbus-errors.c (dbus_set_error_const): do not call
6291 (dbus_set_error): remove dbus_error_init, check for message ==
6292 NULL *before* we sprintf into it, and add @todo about including
6293 system headers in this file
6295 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6297 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6299 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6300 get various bits of user information based on either username
6302 (_dbus_homedir_from_username): new function
6304 2003-02-19 Anders Carlsson <andersca@codefactory.se>
6307 Add check for nonposix getpwnam_r
6309 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6310 Align the pool element size to a sizeof (void *) boundary.
6312 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6313 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6314 General Solaris fixes.
6316 * test/data/valid-messages/simplest-manual.message:
6317 Explicitly state that we want little-endian packing.
6319 2003-02-19 Mikael Hallendal <micke@codefactory.se>
6321 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6323 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6324 Added to create a transport connecting using a tcp/ip socket.
6326 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6327 to a tcp socket at given host and port.
6328 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6331 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6333 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6334 Added to create a server listening on a TCP/IP socket.
6336 2003-02-19 Havoc Pennington <hp@pobox.com>
6338 Throughout: mop up all the Doxygen warnings and undocumented
6341 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6342 to search any paths.
6344 * dbus/dbus-threads.c: move global mutex initializers to
6345 dbus-internals.h, multiple prototypes was confusing doxygen
6346 besides being kind of ugly
6348 * Doxyfile (PREDEFINED): have Doxygen define
6349 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6350 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6351 (do not abuse the feature! it's for stuff like the autogenerated
6352 macros in dbus-md5.c, not just for things you don't feel like
6355 2003-02-18 Havoc Pennington <hp@pobox.com>
6357 * dbus/dbus-string.c (_dbus_string_zero): new function
6359 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6360 wrap it in some dbus-friendly API
6362 * dbus/dbus-types.h: add 16-bit types
6364 2003-02-18 Joe Shaw <joe@assbarn.com>
6366 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6367 credentials from our currently running process.
6368 (get_word): Fix a buglet where we were copying the entire length
6369 instead of relative to our position.
6371 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6372 keys on the stack... it's 640k of data.
6374 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6375 read the credentials byte off the socket, even if we don't have
6377 (_dbus_poll): Implement poll() using select() for systems which
6380 * glib/test-dbus-glib.c (main): Print out an error if no
6381 parameters are given.
6383 * test/data/auth/fallback.auth-script: Added. Tests that a client
6384 can fallback to a secondary auth mechanism if the first fails.
6386 2003-02-18 Havoc Pennington <hp@pobox.com>
6390 2003-02-17 Havoc Pennington <hp@pobox.com>
6392 * doc/dbus-specification.sgml: lots of cosmetic
6393 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6394 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6395 s/server/bus/ (except in authentication section). Add a section
6396 "Message Bus Message Routing"
6398 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6404 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6406 * doc/dbus-specification.sgml:
6407 Specification updates.
6409 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6411 * bus/activation.c: (bus_activation_init), (child_setup),
6412 (bus_activation_activate_service):
6414 * bus/main.c: (main):
6415 Set DBUS_ADDRESS environment variable.
6417 * dbus/dbus-errors.c: (dbus_set_error):
6418 Don't use va_copy since that's a C99 feature.
6420 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6421 (_dbus_spawn_async):
6422 * dbus/dbus-sysdeps.h:
6423 Add child_setup_func to _dbus_spawn_async.
6425 * doc/dbus-specification.sgml:
6426 Update specification.
6428 * test/spawn-test.c: (setup_func), (main):
6431 2003-02-17 Alexander Larsson <alexl@redhat.com>
6433 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6436 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6440 * doc/dbus-test-plan.sgml:
6441 Add test plan document.
6446 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6448 * dbus/dbus-message.c: (decode_header_data),
6449 (_dbus_message_loader_return_buffer):
6450 Set the header padding amount when loading a message.
6452 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6454 * bus/dispatch.c: (send_one_message):
6455 Only send broadcast messages to registered connections.
6457 * dbus/dbus-message.c: (dbus_message_name_is):
6458 * dbus/dbus-message.h:
6459 New convenience function.
6461 * dbus/dbus-transport-debug.c: (do_reading):
6462 Only dispatch one message per run.
6465 * test/bus-test.c: (new_connection_callback), (die),
6466 (test_hello_client1_handler), (test_hello_client2_handler),
6467 (test_hello_replies), (main):
6469 * test/bus-test-loop.[ch]:
6472 2003-02-16 Havoc Pennington <hp@pobox.com>
6474 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6475 backward conditional
6477 2003-02-16 Alexander Larsson <alexl@redhat.com>
6479 * dbus/dbus-connection.c:
6480 Implement sent_message_with_reply. (with_reply_and block is still
6482 Made dispatch_message not lose message if OOM.
6484 * dbus/dbus-errors.h:
6485 Add NoReply error (for reply timeouts).
6487 2003-02-16 Alexander Larsson <alexl@redhat.com>
6489 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6490 Actually free keys and values when destroying hashtable.
6492 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6494 * dbus/dbus-auth.c: (client_try_next_mechanism):
6497 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6498 Return TRUE if there's no thread implementation around.
6500 * glib/dbus-gmain.c: (free_source),
6501 (dbus_connection_hookup_with_g_main):
6502 Make sure to remove the GSource when the connection is finalized.
6504 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6506 * bus/dispatch.c: (bus_dispatch_message_handler):
6507 * dbus/dbus-errors.h:
6508 Return an error if someone tries to send a message to a service
6511 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6513 * bus/activation.c: (load_directory), (bus_activation_init),
6514 (bus_activation_activate_service):
6517 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6518 More work on the activation handling.
6520 * dbus/dbus-errors.h:
6521 Add some error messages
6523 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6524 * dbus/dbus-message.h:
6525 New function that creates an error message.
6527 * dbus/dbus-protocol.h:
6528 Add ACTIVATE_SERVER message.
6530 * dbus/dbus-server-unix.c: (unix_handle_watch),
6531 (_dbus_server_new_for_domain_socket):
6532 Call _dbus_fd_set_close_on_exec.
6534 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6535 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6536 (_dbus_fd_set_close_on_exec):
6537 * dbus/dbus-sysdeps.h:
6538 Add _dbus_fd_set_close_on exec function. Also add function that checks
6539 that all open fds are set to close-on-exec and warns otherwise.
6541 * dbus/dbus-transport-unix.c:
6542 (_dbus_transport_new_for_domain_socket):
6543 Call _dbus_fd_set_close_on_exec.
6545 2003-02-16 Havoc Pennington <hp@pobox.com>
6547 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6548 allow people to avoid setting SIGPIPE to SIG_IGN
6549 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6550 we've been asked not to
6552 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6554 * dbus/dbus-list.c: (_dbus_list_append_link),
6555 (_dbus_list_prepend_link):
6556 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6560 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6563 * bus/activation.c: (bus_activation_entry_free),
6564 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6566 * bus/main.c: (main):
6567 Add simple activation support, doesn't work yet though.
6569 2003-02-15 Zack Rusin <zack@kde.org>
6571 * qt/dbus-qthread.cpp: small casting fix
6573 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6575 * dbus/dbus-errors.c: (dbus_set_error):
6576 * dbus/dbus-errors.h:
6577 Add a few errors and make dbus_set_error void.
6579 * dbus/dbus-sysdeps.c:
6580 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6581 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6582 * dbus/dbus-sysdeps.h:
6583 Add _dbus_spawn_async.
6585 * test/spawn-test.c: (main):
6586 Test for _dbus_spawn_async.
6588 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6590 * dbus/dbus-internals.h:
6591 Fix build without tests.
6593 * dbus/dbus-list.c: (alloc_link):
6594 Fix a segfault when a malloc fails.
6596 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6597 (dbus_malloc0), (dbus_realloc):
6598 Add support for malloc debugging.
6600 2003-02-15 Alexander Larsson <alexl@redhat.com>
6602 * dbus/dbus-threads.c:
6603 * dbus/dbus-threads.h:
6604 Add condvars. Remove static mutext from API.
6605 Implement static mutexes by initializing them from threads_init.
6607 * glib/dbus-gthread.c:
6608 * qt/dbus-qthread.cpp:
6609 Update with the thread api changes.
6614 Turn StaticMutex into normal mutex + init function.
6615 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6616 _dbus_list_append_link, _dbus_list_prepend_link
6619 * dbus/dbus-sysdeps.c:
6620 * dbus/dbus-sysdeps.h:
6621 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6622 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6624 * dbus/dbus-protocol.h:
6625 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6627 * dbus/dbus-message.c:
6628 Make ref/unref atomic.
6631 * dbus/dbus-connection-internal.h:
6632 * dbus/dbus-connection.c:
6633 * dbus/dbus-connection.h:
6635 Change _peek to _borrow,_return & _steal_borrowed.
6636 Change disconnect callback to event.
6637 Make dbus_connection_dispatch_messages reentrant.
6639 * dbus/dbus-transport.c:
6640 Don't ref the connection on calls to the transport
6643 * dbus/dbus-message-handler.c:
6646 * glib/dbus-gmain.c:
6647 Don't use peek_message anymore
6650 * test/debug-thread.c:
6651 * test/debug-thread.h:
6652 Simple thread implementation that asserts() on deadlocks in
6653 single-threaded code.
6656 (main) Call debug_threads_init.
6659 Use disconnect message instead of disconnect callback.
6663 Don't call dbus_connection_set_disconnect_function. Instead export
6664 bus_connection_disconnect.
6667 Call bus_connection_disconnect when we get a disconnected message.
6669 2003-02-15 Havoc Pennington <hp@pobox.com>
6671 * dbus/dbus-message.c (dbus_message_new): fool around with the
6674 2003-02-14 Havoc Pennington <hp@pobox.com>
6676 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6678 * dbus/dbus-memory.c: fail if the debug functions indicate we
6681 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6682 (_dbus_decrement_fail_alloc_counter): debug functions to
6683 simulate memory allocation failures
6685 2003-02-14 Havoc Pennington <hp@pobox.com>
6687 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6690 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6692 * bus/driver.c: (bus_driver_handle_hello):
6694 * bus/services.c: (bus_service_lookup):
6695 Reorder message sending so we get a more sane order.
6697 * test/bus-test.c: (message_handler):
6700 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6702 * bus/driver.c: (bus_driver_send_service_deleted),
6703 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6704 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6705 (bus_driver_send_welcome_message),
6706 (bus_driver_handle_list_services),
6707 (bus_driver_handle_acquire_service),
6708 (bus_driver_handle_service_exists):
6709 * dbus/dbus-bus.c: (dbus_bus_register_client),
6710 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6711 * dbus/dbus-errors.c: (dbus_result_to_string):
6712 * dbus/dbus-errors.h:
6713 * dbus/dbus-message.c: (dbus_message_append_args),
6714 (dbus_message_append_args_valist), (dbus_message_get_args),
6715 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6716 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6717 (dbus_message_iter_get_byte_array),
6718 (dbus_message_iter_get_string_array), (message_iter_test),
6719 (check_message_handling), (_dbus_message_test):
6720 * dbus/dbus-message.h:
6721 * test/bus-test.c: (main):
6722 Change fields to arguments in messages, so that they won't be
6723 confused with header fields.
6725 * glib/test-dbus-glib.c: (main):
6726 Remove append_fields from hello message.
6728 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6730 * dbus/dbus-errors.c:
6731 * dbus/dbus-message.c:
6732 * dbus/dbus-string.c:
6733 Documentation fixes.
6735 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6737 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6739 Implement support for timeouts in dbus-glib.
6741 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6743 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6744 * dbus/dbus-message.c: (process_test_subdir):
6745 * test/break-loader.c: (find_breaks_based_on):
6746 Plug some memory leaks.
6748 2003-02-13 Richard Hult <rhult@codefactory.se>
6750 * bus/main.c: Fix build.
6752 * dbus/dbus-errors.h:
6753 * dbus/dbus-errors.c: Fix copyright for Anders.
6755 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6760 * bus/connection.c: (bus_connection_foreach):
6763 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6764 (unescape_string), (new_section), (parse_section_start),
6765 (parse_key_value), (report_error), (bus_desktop_file_load),
6766 (bus_desktop_file_get_string):
6767 * bus/desktop-file.h:
6768 Use DBusError for error reporting.
6770 * bus/dispatch.c: (send_one_message),
6771 (bus_dispatch_message_handler):
6772 * bus/driver.c: (bus_driver_send_service_deleted),
6773 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6774 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6775 (bus_driver_send_welcome_message),
6776 (bus_driver_handle_list_services),
6777 (bus_driver_handle_acquire_service),
6778 (bus_driver_handle_service_exists):
6779 * bus/loop.c: (bus_loop_run):
6781 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6783 * bus/utils.c: (bus_wait_for_memory):
6785 New files with general utility functions.
6787 * dbus/dbus-internals.h:
6788 Remove _DBUS_HANDLE_OOM.
6790 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6792 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6793 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6794 * dbus/dbus-errors.h:
6795 Add DBusError structure.
6797 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6799 * test/data/valid-messages/standard-acquire-service.message:
6800 * test/data/valid-messages/standard-hello.message:
6801 * test/data/valid-messages/standard-list-services.message:
6802 * test/data/valid-messages/standard-service-exists.message:
6803 Add some standard messages.
6805 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6807 * bus/driver.c: (bus_driver_send_welcome_message),
6808 (bus_driver_handle_list_services),
6809 (bus_driver_handle_acquire_service),
6810 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6811 Update for API changes in libdbus.
6813 * dbus/dbus-message.c: (dbus_message_new_reply):
6814 * dbus/dbus-message.h:
6815 Remove the name argument. The spec states that replies shouldn't
6818 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6820 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6821 (report_error), (bus_desktop_file_load), (lookup_section),
6822 (lookup_line), (bus_desktop_file_get_raw),
6823 (bus_desktop_file_get_string):
6824 * bus/desktop-file.h:
6825 Some fixes, and new functions for getting a key value from a section.
6827 2003-02-13 Havoc Pennington <hp@pobox.com>
6829 * test/data/auth/fail-after-n-attempts.auth-script: new test
6831 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6834 2003-02-13 Havoc Pennington <hp@pobox.com>
6836 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6837 dbus_credentials_match were backward
6839 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6840 NO_CREDENTIALS and ROOT_CREDENTIALS
6842 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6843 into here. Never process more commands after we've reached an
6844 end state; store further data as unused bytes.
6846 * test/data/auth/*: add more auth tests
6848 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6849 command to match exact string and EXPECT_UNUSED to match unused
6852 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6854 2003-02-12 Havoc Pennington <hp@pobox.com>
6856 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6857 \r off of popped lines
6859 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6862 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6865 2003-02-12 Havoc Pennington <hp@pobox.com>
6867 * dbus/Makefile.am: remove break-loader from the build, since it
6870 * configure.in: add --enable-gcov to turn on coverage profiling
6871 flags and disable optimization
6873 2003-02-10 Havoc Pennington <hp@pobox.com>
6875 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6876 initial cut at test framework for DBusAuth from laptop.
6877 Doesn't quite work yet but it compiles and I need to get
6878 it off the 266mhz laptop. ;-)
6880 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6881 fix a memleak in error case
6883 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6886 * bus/desktop-file.c:
6887 * bus/desktop-file.h:
6888 Add a desktop file parser.
6890 2003-02-11 Zack Rusin <zack@kde.org>
6892 * qt/message.[h|cpp]: sample implementation
6893 of the KDE wrapper for DBusMessage
6895 2003-02-09 Zack Rusin <zack@kde.org>
6897 * test/bus-test.c: make_it_compile
6898 * doc/dbus-specification.sgml: minimal semantic fix
6900 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6906 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6909 * dbus/dbus-break-loader.c:
6911 * test/break-loader.c:
6912 Move dbus-break-loader to test/ and rename it to break-loader.
6914 2003-02-02 Havoc Pennington <hp@pobox.com>
6916 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6917 for code to manage cookies in your home directory
6919 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6921 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6922 to authenticate, then disconnect the client.
6924 2003-02-03 Alexander Larsson <alexl@redhat.com>
6926 * dbus/dbus-message.c (dbus_message_append_fields):
6929 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6931 * doc/dbus-specification.sgml:
6932 Update address format section.
6934 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6937 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6938 (message_handler), (new_connection_callback), (loop_quit),
6942 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6944 * bus/driver.c: (bus_driver_handle_service_exists):
6945 Simplify the code a bit.
6947 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6950 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6953 Add libdbus-daemon.la and link to it.
6955 2003-02-01 James Willcox <jwillcox@gnome.org>
6957 * bus/driver.c: (bus_driver_handle_own_service):
6958 Actually include the service reply code in the message.
6960 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6962 * bus/driver.c: (bus_driver_handle_service_exists):
6963 Don't unref the incoming message.
6965 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6967 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6969 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6971 * dbus/dbus-server.c: (dbus_server_listen):
6972 * dbus/dbus-transport.c: (_dbus_transport_open):
6973 ifdef out the calls to the debug transport and server.
6975 2003-02-02 Alexander Larsson <alexl@redhat.com>
6977 * dbus/dbus-watch.c (dbus_watch_get_flags):
6978 Add note in the docs that ERROR or HANGUP won't be returned
6979 and are assumed always on.
6981 * glib/dbus-gmain.c (add_watch):
6982 Always add IO_ERR | IO_HUP
6984 * dbus/dbus-message.h:
6985 Add semicolon after dbus_message_iter_get_string_array().
6986 Makes qt code build again
6988 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6990 * bus/driver.c: (create_unique_client_name),
6991 (bus_driver_handle_hello):
6992 Don't take a name, just use a numeric id to identify
6996 * dbus/dbus-bus.c: (dbus_bus_register_client),
6997 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6999 Add new convenience functions for communicating with the bus.
7001 * dbus/dbus-message.h:
7003 * dbus/dbus-protocol.h:
7006 2003-02-01 Alexander Larsson <alexl@redhat.com>
7008 * dbus/dbus-message.c (dbus_message_append_fields):
7009 Add some more doc comments.
7011 2003-02-01 Havoc Pennington <hp@pobox.com>
7013 * dbus/dbus-break-loader.c (randomly_modify_length): change
7014 a 4-byte value in the message as if it were a length
7016 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
7017 execute bit on saved files
7019 2003-02-01 Havoc Pennington <hp@pobox.com>
7021 * dbus/dbus-break-loader.c (main): new program to find messages
7022 that break the loader.
7024 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
7025 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
7027 * dbus/dbus-string.c (_dbus_string_set_byte): new
7029 2003-01-31 Havoc Pennington <hp@pobox.com>
7031 * dbus/dbus-message.c: refactor the test code to be more general,
7032 in preparation for writing a "randomly permute test cases to
7033 try to break the loader" program.
7035 2003-01-31 Havoc Pennington <hp@pobox.com>
7037 * doc/dbus-specification.sgml: work on the specification
7039 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
7040 the protocol version of the message.
7042 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
7043 no longer specifies that.
7044 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
7047 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
7048 "break" for DBUS_TYPE_NIL, remove @todo
7050 2003-01-31 Havoc Pennington <hp@pobox.com>
7052 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
7053 just set_is_error/get_is_error as this is a commonly-used
7054 function, and write docs.
7056 2003-01-31 Anders Carlsson <andersca@codefactory.se>
7058 * dbus/dbus-address.c: (dbus_address_entry_free):
7059 Free key and value lists.
7061 * dbus/dbus-internals.c: (_dbus_type_to_string):
7062 Add the types we didn't have.
7064 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7065 (_dbus_marshal_validate_arg):
7068 * dbus/dbus-message.c: (dbus_message_set_sender):
7069 Remove todo about being able to set sender to NULL.
7071 (dbus_message_set_is_error_reply),
7072 (dbus_message_get_is_error_reply):
7073 * dbus/dbus-message.h:
7076 * dbus/dbus-protocol.h:
7077 Add error reply flag.
7079 * test/data/valid-messages/opposite-endian.message:
7080 Add NIL type to test.
7082 2003-01-31 Havoc Pennington <hp@pobox.com>
7084 * doc/dbus-specification.sgml: fully specify the header. Add
7085 flags and major protocol version, and change header/body len to
7088 * dbus/dbus-message-builder.c (append_saved_length): append length
7091 * dbus/dbus-message.c (dbus_message_create_header): change header
7092 length and body length to unsigned. Add the new fields from the
7094 (_dbus_message_loader_return_buffer): unsigned header/body len
7096 2003-01-30 Havoc Pennington <hp@pobox.com>
7098 * dbus/dbus-auth.c: rework to use only REJECTED, no
7101 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7102 use REJECTED, suggested by Mark McLoughlin
7104 2003-01-30 Havoc Pennington <hp@pobox.com>
7106 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7107 a better way to report errors here. e.g. "unix address lacks
7108 path" or something. also "no such file" when the path doesn't
7111 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7113 (dbus_parse_address): add @todo about documenting address format,
7114 and allowing , and ; to be escaped
7116 2003-01-30 Anders Carlsson <andersca@codefactory.se>
7119 Add dbus-address.[ch]
7121 * dbus/dbus-address.c: (dbus_address_entry_free),
7122 (dbus_address_entries_free), (create_entry),
7123 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7124 (dbus_parse_address), (_dbus_address_test):
7125 * dbus/dbus-address.h:
7126 New files for dealing with address parsing.
7128 * dbus/dbus-connection.c:
7129 Document timeout functions.
7131 * dbus/dbus-message.c:
7132 Document dbus_message_new_from_message.
7134 * dbus/dbus-server-debug.c:
7137 * dbus/dbus-server.c: (dbus_server_listen):
7138 Parse address and use correct server implementation.
7140 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7141 * dbus/dbus-string.h:
7142 New function with test.
7144 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7148 * dbus/dbus-transport-debug.c:
7151 * dbus/dbus-transport.c: (_dbus_transport_open):
7152 Parse address and use correct transport implementation.
7154 2003-01-30 Havoc Pennington <hp@pobox.com>
7156 * dbus/dbus-message.c: use message->byte_order instead of
7157 DBUS_COMPILER_BYTE_ORDER throughout.
7158 (dbus_message_create_header): pad header to align the
7159 start of the body of the message to 8-byte boundary
7161 * dbus/dbus-marshal.h: make all the demarshalers take const
7162 DBusString arguments.
7164 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7165 validate message args here, so we don't have to do slow validation
7166 later, and so we catch bad messages as they are incoming. Also add
7167 better checks on header_len and body_len. Also fill in
7170 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7171 implemented properly)
7172 (_dbus_string_validate_nul): new function to check all-nul
7174 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7175 get_arg_end_pos and remove all validation
7176 (_dbus_marshal_validate_arg): actually do validation here.
7178 2003-01-29 Havoc Pennington <hp@pobox.com>
7180 * dbus/dbus-message.c (check_message_handling): fix assertion
7181 failure on set_client_serial
7183 2003-01-28 Havoc Pennington <hp@pobox.com>
7185 * dbus/dbus-server-debug.c: Add doc section comments
7187 * dbus/dbus-transport-debug.c: add doc section comments
7189 2003-01-28 Havoc Pennington <hp@redhat.com>
7191 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7192 the reverse order from how I had it
7193 (_dbus_string_base64_encode): reverse encoding order. I was
7194 basically byteswapping everything during encoding.
7196 2003-01-28 Anders Carlsson <andersca@codefactory.se>
7198 * dbus/dbus-connection-internal.h:
7199 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7200 (_dbus_connection_remove_timeout):
7201 Add functions for adding and removing timeouts.
7203 * dbus/dbus-message.c: (dbus_message_new_from_message):
7204 Add new function that takes a message and creates an exact
7205 copy of it, but with the refcount set to 1.
7206 (check_message_handling):
7209 * dbus/dbus-server-protected.h:
7210 * dbus/dbus-server.c: (_dbus_server_init_base),
7211 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7212 (dbus_server_set_timeout_functions):
7213 (_dbus_server_remove_timeout):
7214 New functions so that a server can add and remove timeouts.
7216 (dbus_server_listen):
7217 Add commented out call to dbus_server_debug_new.
7219 * dbus/dbus-timeout.c: (_dbus_timeout_new):
7220 Actually set the handler, doh.
7222 * dbus/dbus-transport.c: (_dbus_transport_open):
7223 Add commented out call to dbus_transport_debug_client_new.
7226 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7228 2003-01-28 Havoc Pennington <hp@pobox.com>
7230 * dbus/dbus-message.c (check_message_handling): function to check
7231 on the loaded message, iterates over it etc.
7233 2003-01-28 Havoc Pennington <hp@pobox.com>
7235 * test/Makefile.am (dist-hook): fix make distdir
7237 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7239 2003-01-27 Havoc Pennington <hp@pobox.com>
7241 * dbus/dbus-mempool.c (time_for_size): replace printf with
7244 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7245 empty lines; fix the SAVE_LENGTH stuff to be
7246 START_LENGTH/END_LENGTH so it actually works; couple other
7249 * test/Makefile.am (dist-hook): add dist-hook for .message files
7251 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7252 can be constant or locked.
7253 (_dbus_string_free): allow freeing a const string as
7256 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7258 * dbus/dbus-test-main.c (main): take an argument which is the
7259 directory containing test data
7261 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7262 argument to this and load all the messages in test/data/
7263 checking that they can be loaded or not loaded as appropriate.
7265 2003-01-27 Anders Carlsson <andersca@codefactory.se>
7267 * bus/dispatch.c: (bus_dispatch_message_handler):
7268 Dispatch messages sent to services.
7270 * bus/driver.c: (bus_driver_send_service_deleted),
7271 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7272 (bus_driver_send_service_acquired):
7273 Add helper functions for sending service related messages.
7275 (bus_driver_send_welcome_message):
7276 Send HELLO_REPLY instead of WELCOME.
7278 (bus_driver_handle_list_services):
7279 Send LIST_SERVICES_REPLY instead of SERVICES.
7281 (bus_driver_handle_own_service),
7282 (bus_driver_handle_service_exists):
7283 New message handlers.
7285 (bus_driver_handle_message):
7286 Invoke new message handlers.
7288 (bus_driver_remove_connection):
7289 Don't remove any services here since that's done automatically
7290 by bus_service_remove_owner now.
7293 New function signatures.
7295 * bus/services.c: (bus_service_add_owner):
7296 Send ServiceAcquired message if we're the only primary owner.
7298 (bus_service_remove_owner):
7299 Send ServiceAcquired/ServiceLost messages.
7301 (bus_service_set_prohibit_replacement),
7302 (bus_service_get_prohibit_replacement):
7303 Functions for setting prohibit replacement.
7305 (bus_service_has_owner):
7306 New function that checks if a connection is in the owner queue of
7310 Add new function signatures.
7312 * dbus/dbus-list.c: (_dbus_list_test):
7313 Add tests for _dbus_list_remove_last and traversing the list backwards.
7316 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7317 go any further, so return NULL then.
7319 * dbus/dbus-protocol.h:
7320 Add new messages, service flags and service replies.
7322 2003-01-26 Havoc Pennington <hp@pobox.com>
7324 * dbus/dbus-message-builder.c: implement, completely untested.
7326 * test/data/*: add data to be used in testing.
7327 ".message" files are our simple loadable text format.
7328 ".message-raw" will be binary dumps of messages.
7330 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7332 2003-01-26 Havoc Pennington <hp@pobox.com>
7334 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7336 * dbus/dbus-errors.c (dbus_result_to_string): add
7339 * dbus/dbus-message-builder.c: new file, will contain code to load
7340 up messages from files. Not implemented yet.
7342 2003-01-26 Havoc Pennington <hp@pobox.com>
7344 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7345 the sender by setting to NULL
7347 2003-01-26 Havoc Pennington <hp@pobox.com>
7349 The unit tests pass, but otherwise untested. If it breaks, the
7350 tests should have been better. ;-)
7352 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7355 * dbus/dbus-message.c: redo everything so we maintain
7356 message->header as the only copy of the various fields.
7357 This avoids the possibility of out-of-memory in some cases,
7358 for example dbus_message_lock() can't run out of memory anymore,
7359 and avoids extra copying. Figured I may as well go ahead and do
7360 this since it was busted for dbus_message_lock to not return
7361 failure on OOM, and dbus_message_write_header was totally
7362 unchecked for OOM. Also fixed some random other bugs.
7364 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7365 that strings are nul-terminated. Also, end_pos can be equal
7366 to string length just not greater than, I think.
7367 (_dbus_marshal_set_int32): new function
7368 (_dbus_marshal_set_uint32): new function
7369 (_dbus_marshal_set_string): new function
7371 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7372 a warning, init timeout_list to NULL
7373 (dbus_connection_send_message): don't use uninitialized variable
7376 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7378 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7380 * bus/driver.c: (bus_driver_handle_hello),
7381 (bus_driver_send_welcome_message):
7384 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7386 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7387 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7388 (dbus_connection_unref):
7389 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7390 * dbus/dbus-message.c: (dbus_message_unref),
7393 (dbus_message_get_fields):
7394 Remove debugging printout.
7396 (_dbus_message_loader_return_buffer):
7397 Don't store the header string.
7399 (_dbus_message_test):
7402 2003-01-26 Richard Hult <rhult@codefactory.se>
7404 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7405 the file descriptor list, since it can change under us.
7407 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7409 * glib/dbus-gmain.c: (dbus_connection_prepare),
7410 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7411 (remove_watch), (dbus_connection_hookup_with_g_main):
7412 Rewrite the glib handling to use its own GSource instead of a
7413 GIOChannel so we can catch messages put in the queue while waiting
7416 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7419 * bus/connection.c: (connection_disconnect_handler),
7420 (connection_watch_callback), (bus_connection_setup):
7421 * bus/dispatch.c: (send_one_message),
7422 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7423 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7425 * bus/driver.c: (bus_driver_send_service_deleted),
7426 (bus_driver_send_service_created), (bus_driver_handle_hello),
7427 (bus_driver_send_welcome_message),
7428 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7429 (bus_driver_handle_message):
7431 Refactor code, put the message dispatching in its own file. Use
7432 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7435 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7437 * dbus/dbus-internals.h:
7438 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7440 * dbus/dbus-message.c: (dbus_message_get_sender):
7441 * dbus/dbus-message.h:
7442 Implement dbus_message_get_sender.
7444 * dbus/dbus-protocol.h:
7445 Add message and service defines.
7447 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7449 * dbus/dbus-connection.c: (dbus_connection_send_message):
7450 * dbus/dbus-message-internal.h:
7451 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7452 (dbus_message_write_header):
7453 Remove _dbus_messag_unlock and don't set the client serial on a
7454 message if one already exists.
7456 2003-01-24 Havoc Pennington <hp@pobox.com>
7458 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7461 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7464 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7466 * dbus/dbus-list.c: (alloc_link), (free_link):
7467 Use a memory pool for the links.
7469 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7471 * bus/connection.c: (bus_connection_foreach):
7473 Add new bus_connection_foreach function.
7475 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7476 Add function that broadcasts a message to all clients.
7478 (bus_driver_send_service_created), (bus_driver_handle_hello),
7479 (bus_driver_send_welcome_message),
7480 (bus_driver_handle_list_services), (bus_driver_message_handler):
7481 Implement functions that take care of listing services, and notifying
7482 clients when new services are created.
7484 * bus/services.c: (bus_services_list):
7486 Add new function that returns an array of strings with the currently
7487 registered services.
7490 * glib/dbus-gmain.c:
7491 Update copyright year.
7493 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7495 * dbus/dbus-connection.c: (dbus_connection_send_message):
7496 Unlock the message in case it was sent earlier.
7498 (dbus_connection_send_message_with_reply_and_block):
7499 Remove the reply message from the list.
7501 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7502 Set array_len and new_pos correctly.
7504 (_dbus_marshal_test):
7505 Remove debug output.
7507 * dbus/dbus-message-internal.h:
7508 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7509 New function that returns the reply serial.
7511 (_dbus_message_unlock):
7512 New function that unlocks a message and resets its header.
7514 (dbus_message_append_string_array),
7515 (dbus_message_get_fields_valist),
7516 (dbus_message_iter_get_field_type),
7517 (dbus_message_iter_get_string_array),
7518 (dbus_message_get_fields),
7519 (dbus_message_append_fields_valist):
7520 Handle string arrays.
7522 (dbus_message_set_sender):
7523 Make this function public since the bus daemon needs it.
7525 (decode_header_data):
7526 Set the reply serial to -1 initially.
7528 * dbus/dbus-message.h:
7529 Add dbus_message_set_sender.
7531 2003-01-24 Havoc Pennington <hp@pobox.com>
7533 * doc/dbus-specification.sgml: add some stuff
7535 2003-01-22 Havoc Pennington <hp@pobox.com>
7537 * doc/dbus-specification.sgml: Start to document the protocol.
7539 2003-01-22 Havoc Pennington <hp@pobox.com>
7541 * dbus/dbus-connection.c
7542 (dbus_connection_send_message_with_reply_and_block): add some @todo
7544 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7546 2003-01-21 Havoc Pennington <hp@pobox.com>
7548 (patch untested because can't compile)
7550 * bus/driver.c (create_unique_client_name): make this function
7551 never recycle client names. Also, caller should initialize
7554 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7556 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7558 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7559 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7560 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7561 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7562 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7563 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7564 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7565 * dbus/dbus-marshal.h:
7566 * dbus/dbus-protocol.h:
7567 Add support for marshalling and demarshalling integer, double
7570 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7575 * bus/connection.c: (connection_disconnect_handler):
7576 Remove the connection from the bus driver's list.
7578 (connection_watch_callback): Dispatch messages.
7580 (free_connection_data): Free connection name.
7582 (bus_connection_setup): Add connection to the bus driver's list.
7583 (bus_connection_remove_owned_service):
7584 (bus_connection_set_name), (bus_connection_get_name):
7585 Add functions for setting and getting the connection's name.
7588 Add function headers.
7590 * bus/driver.c: (create_unique_client_name),
7591 (bus_driver_handle_hello_message),
7592 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7593 (bus_driver_add_connection), (bus_driver_remove_connection):
7596 * bus/services.c: (bus_service_free):
7598 New file that handles communication and registreation with the bus
7601 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7603 * dbus/dbus-connection.c: (dbus_connection_send_message):
7604 Add a new client_serial parameter.
7606 (dbus_connection_send_message_with_reply):
7607 Remove a @todo since we've implemented the blocking function.
7609 (dbus_connection_send_message_with_reply_and_block):
7610 New function that sends a message and waits for a reply and
7611 then returns the reply.
7613 * dbus/dbus-connection.h:
7616 * dbus/dbus-errors.c: (dbus_result_to_string):
7617 * dbus/dbus-errors.h:
7618 Add new DBUS_RESULT.
7620 * dbus/dbus-message-internal.h:
7621 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7622 (_dbus_message_set_sender), (dbus_message_write_header),
7623 (dbus_message_new_reply), (decode_header_data),
7624 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7625 * dbus/dbus-message.h:
7626 Add new functions that set the reply serial and sender.
7627 Also marshal and demarshal them correctly and add test.
7629 * dbus/dbus-protocol.h:
7630 Add new DBUS_MESSAGE_TYPE_SENDER.
7633 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7634 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7635 (dbus_connection_hookup_with_g_main):
7636 * glib/test-dbus-glib.c: (main):
7637 Rewrite to use GIOChannel and remove the GSource crack.
7639 * test/echo-client.c: (main):
7640 * test/watch.c: (check_messages):
7641 Update for changed APIs
7643 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7645 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7647 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7648 Create a DBusTimeoutList.
7649 (dbus_connection_set_timeout_functions): Add new function to
7650 set timeout callbacks
7652 * dbus/dbus-connection.h: Add public DBusTimeout API.
7654 * dbus/dbus-message.c: (dbus_message_get_service):
7655 * dbus/dbus-message.h: New function.
7657 * dbus/dbus-server.c: Fix small doc typo.
7659 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7661 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7663 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7664 of the string, just as long as specified.
7666 2003-01-19 Havoc Pennington <hp@pobox.com>
7668 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7671 * dbus/dbus-server.c (dbus_server_set_max_connections)
7672 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7673 keep track of current number of connections, and add API for
7674 setting a max (but haven't implemented enforcing the max yet)
7676 2003-01-18 Havoc Pennington <hp@pobox.com>
7678 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7679 reading/writing if read_watch != NULL or write_watch != NULL.
7681 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7682 the message loader code to actually load message->header and
7683 message->body into the newly-created message.
7685 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7688 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7689 (dbus_connection_get_max_message_size)
7690 (dbus_connection_set_max_live_messages_size)
7691 (dbus_connection_get_max_live_messages_size): implement some
7692 resource limitation functions
7694 * dbus/dbus-resources.c: new file implementing some of the
7695 resource limits stuff
7697 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7698 missing docs, add @todo to handle OOM etc.
7700 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7703 2003-01-18 Havoc Pennington <hp@pobox.com>
7705 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7706 connection if it hasn't been already.
7708 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7709 replace with DisconnectFunction.
7711 2003-01-18 Havoc Pennington <hp@pobox.com>
7713 Building --disable-verbose-mode --disable-asserts --disable-tests
7714 cuts the library from 112K to 45K or so
7716 * configure.in: check for varargs macro support,
7717 add --enable-verbose-mode, --enable-asserts.
7719 * dbus/dbus-internals.h (_dbus_assert): support
7721 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7723 2003-01-18 Havoc Pennington <hp@pobox.com>
7725 * dbus/dbus-test.c: include config.h so that tests actually run
7727 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7728 so the failure mode when that assumption fails will be plenty
7731 2003-01-18 Havoc Pennington <hp@pobox.com>
7733 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7735 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7738 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7739 since we don't want to use those in make check
7741 2003-01-15 Havoc Pennington <hp@redhat.com>
7747 2003-01-15 Havoc Pennington <hp@redhat.com>
7749 * test/Makefile.am: fix so that test source code ends up in the
7750 distribution on make distcheck
7752 2003-01-15 Havoc Pennington <hp@redhat.com>
7758 2003-01-15 Havoc Pennington <hp@redhat.com>
7760 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7761 fix build when --disable-tests
7763 * Makefile.am (EXTRA_DIST): put HACKING in here
7765 * HACKING: document procedure for making a tarball release.
7767 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7769 * bus/connection.c: (connection_error_handler),
7770 (bus_connection_setup):
7771 * bus/main.c: (main):
7772 Make sure that the DBusConnectionData struct is NULLed
7773 out to prevent a segfault.
7775 * dbus/dbus-errors.c: (dbus_result_to_string):
7776 * dbus/dbus-errors.h:
7777 * dbus/dbus-message.c: (dbus_message_get_fields),
7778 (dbus_message_get_fields_valist), (_dbus_message_test):
7779 * dbus/dbus-message.h:
7780 Make dbus_message_get_fields return a result code so we can
7781 track invalid fields as well as oom.
7783 2003-01-11 Havoc Pennington <hp@pobox.com>
7785 * configure.in: change --enable-test/--enable-ansi action-if-given
7786 to enable_foo=$enableval instead of enable_foo=yes
7788 2003-01-08 Havoc Pennington <hp@pobox.com>
7790 * dbus/dbus-string.c (_dbus_string_align_length): new function
7792 * dbus/dbus-test-main.c: move main() for test app here
7794 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7795 symbol to run tests, because dbus-test isn't in the main
7798 Code review nitpicks.
7800 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7801 for people with narrow emacs ;-). Assert client_serial was filled
7802 in. Assert message->name != NULL.
7803 (dbus_message_append_fields): have "first_field_type" arg separate
7804 from va list, needed for C++ binding that also uses varargs IIRC
7805 and helps with type safety
7806 (dbus_message_new): add @todo about using DBusString to store
7807 service/name internally
7808 (dbus_message_new): don't leak ->service and ->name on OOM later
7810 (dbus_message_unref): free the service name
7811 (dbus_message_get_fields): same change to varargs
7812 i.e. first_field_type
7813 (_dbus_message_loader_return_buffer): assert that the message data
7814 is aligned (if not it's a bug in our code). Put in verbose griping
7815 about why we set corrupted = TRUE.
7816 (decode_header_data): add FIXME that char* is evil. Was going to
7817 add FIXME about evil locale-specific string.h strncmp, but just
7818 switched to wacky string-as-uint32 optimization. Move check for
7819 "no room for field name" above get_const_data_len() to avoid
7820 assertion failure in get_const_data_len if we have trailing 2
7821 bytes or the like. Check for service and name fields being
7822 provided twice. Don't leak service/name on error. Require field
7823 names to be aligned to 4 bytes.
7825 * dbus/dbus-marshal.c: move byte swap stuff to header
7826 (_dbus_pack_int32): uscore-prefix
7827 (_dbus_unpack_int32): uscore-prefix
7828 (_dbus_unpack_uint32): export
7829 (_dbus_demarshal_string): add @todo complaining about use of
7831 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7832 handling allowing corrupt data to go unchecked
7834 2003-01-08 Havoc Pennington <hp@redhat.com>
7836 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7837 to the select() as needed for authentication. (should be using
7838 _dbus_poll() not select, but for another day)
7840 * dbus/dbus.h: include dbus/dbus-protocol.h
7842 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7844 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7847 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7849 * dbus/dbus-internals.c: (_dbus_type_to_string):
7850 New function that returns a string describing a type.
7852 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7853 * dbus/dbus-marshal.h:
7854 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7855 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7856 (dbus_message_iter_get_byte_array):
7857 * dbus/dbus-message.h:
7858 Add new convenience functions for appending and getting message fields.
7859 Also add demarshalling routines for byte arrays.
7861 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7863 * dbus/dbus-connection-internal.h:
7864 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7865 (_dbus_connection_get_next_client_serial),
7866 (dbus_connection_send_message):
7867 * dbus/dbus-internals.h:
7868 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7869 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7870 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7871 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7872 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7873 (_dbus_verbose_bytes), (_dbus_marshal_test):
7874 * dbus/dbus-marshal.h:
7875 * dbus/dbus-message-internal.h:
7876 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7877 (dbus_message_write_header), (_dbus_message_lock),
7878 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7879 (dbus_message_get_name), (dbus_message_append_int32),
7880 (dbus_message_append_uint32), (dbus_message_append_double),
7881 (dbus_message_append_string), (dbus_message_append_byte_array),
7882 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7883 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7884 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7885 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7886 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7887 (decode_header_data), (_dbus_message_loader_return_buffer),
7888 (message_iter_test), (_dbus_message_test):
7889 * dbus/dbus-message.h:
7890 * dbus/dbus-protocol.h:
7891 * dbus/dbus-test.c: (main):
7893 * glib/test-dbus-glib.c: (message_handler), (main):
7894 * test/echo-client.c: (main):
7895 * test/watch.c: (check_messages):
7896 Make messages sendable and receivable for real.
7898 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7900 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7901 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7902 * dbus/dbus-message.c: (dbus_message_append_int32),
7903 (dbus_message_append_uint32), (dbus_message_append_double),
7904 (dbus_message_append_string), (dbus_message_append_byte_array):
7905 Handle OOM restoration.
7907 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7909 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7910 (_dbus_demarshal_string), (_dbus_marshal_test):
7911 * dbus/dbus-marshal.h:
7912 * dbus/dbus-message.c: (dbus_message_get_name),
7913 Document these functions.
7915 (dbus_message_append_int32), (dbus_message_append_uint32),
7916 (dbus_message_append_double), (dbus_message_append_string),
7917 (dbus_message_append_byte_array):
7918 * dbus/dbus-message.h:
7919 Add functions for adding message fields of different types.
7921 * dbus/dbus-protocol.h:
7922 Add the different types.
7924 2003-01-05 Havoc Pennington <hp@pobox.com>
7926 * bus/connection.c: implement routines for handling connections,
7927 first thing is keeping a list of owned services on each connection
7928 and setting up watches etc.
7930 * bus/services.c: implement a mapping from service names to lists
7933 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7935 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7936 to use static mutexes for global data
7938 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7939 collection of functions to set/get application-specific data
7940 on the DBusConnection.
7942 2003-01-04 Havoc Pennington <hp@pobox.com>
7944 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7945 (_dbus_poll): new function
7947 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7950 * bus/loop.c: initial code for the daemon main loop
7952 2003-01-04 Havoc Pennington <hp@pobox.com>
7954 * test/watch.c (error_handler): make it safe if the error handler
7955 is called multiple times (if we s/error handler/disconnect
7956 handler/ we should just guarantee it's called only once)
7958 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7959 error handler on disconnect (it's quite possible we should
7960 just change the error handler to a "disconnect handler," I'm
7961 not sure we have any other meaningful errors)
7963 * configure.in: check for getpwnam_r
7965 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7966 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7967 mechanism as in SASL spec, using socket credentials
7969 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7970 (_dbus_send_credentials_unix_socket): new function
7972 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7974 (_dbus_write): only check errno if <0 returned
7975 (_dbus_write_two): ditto
7977 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7979 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7980 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7981 (_dbus_marshal_test):
7982 * dbus/dbus-marshal.h:
7983 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7984 to _dbus_marshal_utf8_string. Also fix some tests.
7986 2002-12-28 Harri Porten <porten@kde.org>
7988 * configure.in: added check for C++ compiler and a very cheesy
7989 check for the Qt integration
7991 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7993 * qt/Makefile.am: added
7995 * qt/.cvsignore: added
7997 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7998 latter, added #ifdef QT_THREAD_SUPPORT guard.
8000 * dbus/Makefile.am: added missing headers for make dist
8002 2002-12-28 Kristian Rietveld <kris@gtk.org>
8004 * dbus/Makefile.am: fixup export-symbols-regex.
8006 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8008 * acinclude.m4: Add this file and put the
8009 PKG_CHECK_MODULE macro in it.
8011 2002-12-27 Anders Carlsson <andersca@codefactory.se>
8013 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8014 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8015 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8016 (_dbus_marshal_test):
8017 Make the demarshalling routines align the pos argument.
8018 Add string marshalling tests and fix the obvious bugs
8021 2002-12-26 Havoc Pennington <hp@pobox.com>
8023 * dbus/dbus-auth.c: fixes fixes fixes
8025 * dbus/dbus-transport-unix.c: wire up support for
8026 encoding/decoding data on the wire
8028 * dbus/dbus-auth.c (_dbus_auth_encode_data)
8029 (_dbus_auth_decode_data): append to target string
8030 instead of nuking it.
8032 2002-12-26 Havoc Pennington <hp@pobox.com>
8034 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
8035 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
8038 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
8039 avoid swap_bytes() overhead (ignoring possible assembly stuff for
8040 now). Main point is because I wanted unpack_uint32 to implement
8042 (_dbus_verbose_bytes): new function
8044 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
8046 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
8047 mechanism to handle a corrupt message stream
8048 (_dbus_message_loader_new): fix preallocation to only prealloc,
8051 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
8052 (_dbus_string_test): enhance tests for copy/move and fix the
8055 * dbus/dbus-transport-unix.c: Hold references in more places to
8056 avoid reentrancy problems
8058 * dbus/dbus-transport.c: ditto
8060 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
8061 leak reference count in no-message case
8063 * test/watch.c (do_mainloop): handle adding/removing watches
8064 during iteration over the watches. Also, ref the connection/server
8065 stored on a watch, so we don't try to mangle a destroyed one.
8067 * dbus/dbus-transport-unix.c (do_authentication): perform
8070 * dbus/dbus-auth.c (get_state): add a state
8071 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
8072 (_dbus_auth_get_unused_bytes): append the unused bytes
8073 to the passed in string, rather than prepend
8075 * dbus/dbus-transport.c (_dbus_transport_init_base): create
8076 the auth conversation DBusAuth
8078 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8079 (_dbus_transport_new_for_domain_socket): when creating a
8080 transport, pass in whether it's a client-side or server-side
8081 transport so we know which DBusAuth to create
8083 2002-12-03 Havoc Pennington <hp@pobox.com>
8085 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8086 _after_ finalizing the derived members
8087 (unix_connection_set): unref watch if we fail to add it
8089 * dbus/dbus-connection.c (dbus_connection_unref): delete the
8090 transport first, so that the connection owned by the
8091 transport will be valid as the transport finalizes.
8093 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8094 if necessary, and remove watches from the connection.
8096 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8098 2002-12-26 Anders Carlsson <andersca@codefactory.se>
8100 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8101 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8102 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8103 (_dbus_marshal_test):
8104 * dbus/dbus-marshal.h:
8105 Add string marshal functions and have the demarshal functions
8106 return the new position.
8108 2002-12-25 Havoc Pennington <hp@pobox.com>
8110 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8111 it is a simple protocol that just maps directly to SASL.
8113 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8114 initial implementation, not actually used yet.
8116 * dbus/dbus-string.c (_dbus_string_find): new function
8117 (_dbus_string_equal): new function
8118 (_dbus_string_base64_encode): new function
8119 (_dbus_string_base64_decode): new function
8121 2002-12-25 Anders Carlsson <andersca@codefactory.se>
8124 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8125 (_dbus_marshal_int32), (_dbus_marshal_uint32),
8126 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8127 (_dbus_demarshal_uint32), (_dbus_marshal_test):
8128 * dbus/dbus-marshal.h:
8129 * dbus/dbus-protocol.h:
8130 * dbus/dbus-test.c: (main):
8132 Add un-optimized marshalling/demarshalling routines.
8134 2002-12-25 Harri Porten <porten@kde.org>
8136 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8138 2002-12-24 Zack Rusin <zack@kde.org>
8140 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8141 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8144 2002-12-24 Havoc Pennington <hp@pobox.com>
8146 * glib/dbus-gthread.c: fix include
8148 * glib/dbus-glib.h: rename DBusMessageHandler for now.
8149 I think glib API needs to change, though, as you don't
8150 want to use DBusMessageFunction, you want to use the
8151 DBusMessageHandler object. Probably
8152 dbus_connection_open_with_g_main_loop()
8153 and dbus_connection_setup_g_main_loop() or something like that
8154 (but think of better names...) that just create a connection
8155 that has watch/timeout functions etc. already set up.
8157 * dbus/dbus-connection.c
8158 (dbus_connection_send_message_with_reply): new function just to
8159 show how the message handler helps us deal with replies.
8161 * dbus/dbus-list.c (_dbus_list_remove_last): new function
8163 * dbus/dbus-string.c (_dbus_string_test): free a string that
8166 * dbus/dbus-hash.c: use memory pools for the hash entries
8167 (rebuild_table): be more paranoid about overflow, and
8168 shrink table when we can
8169 (_dbus_hash_test): reduce number of sprintfs and write
8170 valid C89. Add tests for case where we grow and then
8171 shrink the hash table.
8173 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8175 * dbus/dbus-connection.c (dbus_connection_register_handler)
8176 (dbus_connection_unregister_handler): new functions
8178 * dbus/dbus-message.c (dbus_message_get_name): new
8180 * dbus/dbus-list.c: fix docs typo
8182 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8183 an object representing a handler for messages.
8185 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8188 * glib/dbus-gthread.c: (dbus_gthread_init):
8189 Don't use the gdbus prefix for public functions.
8191 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8195 Add GLib checks and fixup .pc files
8199 * glib/dbus-gmain.c: (gdbus_connection_prepare),
8200 (gdbus_connection_check), (gdbus_connection_dispatch),
8201 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8202 (dbus_connection_gsource_new):
8203 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8204 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8205 * glib/test-dbus-glib.c: (message_handler), (main):
8208 2002-12-15 Harri Porten <porten@kde.org>
8210 * autogen.sh: check for libtoolize before attempting to use it
8212 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8215 * .cvsignore: ignore more stamp files
8217 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8219 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8220 without make install.
8222 2002-12-15 Havoc Pennington <hp@pobox.com>
8224 * dbus/dbus-threads.c: add thread stubs that a higher library
8225 layer can fill in. e.g. the GLib wrapper might fill them in with
8226 GThread stuff. We still need to use this thread API to
8227 thread-safe-ize the library.
8229 2002-12-12 Havoc Pennington <hp@pobox.com>
8231 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8232 below new interfaces and include fewer system headers.
8234 * dbus/dbus-sysdeps.c (_dbus_read): new function
8235 (_dbus_write): new function
8236 (_dbus_write_two): new function
8237 (_dbus_connect_unix_socket): new function
8238 (_dbus_listen_unix_socket): new function
8240 * dbus/dbus-message-internal.h: change interfaces to use
8243 2002-12-11 Havoc Pennington <hp@pobox.com>
8245 * dbus/dbus-types.h: add dbus_unichar
8247 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8249 * dbus/dbus-connection.c (dbus_connection_send_message): return
8252 * dbus/dbus-transport.c: include dbus-watch.h
8254 * dbus/dbus-connection.c: include dbus-message-internal.h
8256 * HACKING: add file with coding guidelines stuff.
8258 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8259 handling here, for security purposes (as in vsftpd). Not actually
8260 using this class yet.
8262 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8263 system/libc usage here, as in vsftpd, for ease of auditing (and
8264 should also simplify portability). Haven't actually moved all the
8265 system/libc usage into here yet.
8267 2002-11-25 Havoc Pennington <hp@pobox.com>
8269 * dbus/dbus-internals.c (_dbus_verbose): fix to not
8270 always print the first verbose message.
8272 2002-11-24 Havoc Pennington <hp@pobox.com>
8274 * test/echo-client.c, test/echo-server.c: cheesy test
8277 * configure.in (AC_CHECK_FUNCS): check for writev
8279 * dbus/dbus-message.c (_dbus_message_get_network_data): new
8282 * dbus/dbus-list.c (_dbus_list_foreach): new function
8284 * dbus/dbus-internals.c (_dbus_verbose): new function
8286 * dbus/dbus-server.c, dbus/dbus-server.h: public object
8287 representing a server that listens for connections.
8289 * dbus/.cvsignore: create
8291 * dbus/dbus-errors.h, dbus/dbus-errors.c:
8292 public API for reporting errors
8294 * dbus/dbus-connection.h, dbus/dbus-connection.c:
8295 public object representing a connection that
8296 sends/receives messages. (Same object used for
8297 both client and server.)
8299 * dbus/dbus-transport.h, dbus/dbus-transport.c:
8300 Basic abstraction for different kinds of stream
8301 that we might read/write messages from.
8303 2002-11-23 Havoc Pennington <hp@pobox.com>
8305 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8308 * dbus/dbus-test.c (main): add list test, and include
8309 dbus-test.h as intended
8311 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8312 (_dbus_hash_table_remove_int): return value indicates
8313 whether the entry existed to remove
8315 * dbus/dbus-list.c: add linked list utility class,
8318 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8321 2002-11-23 Havoc Pennington <hp@pobox.com>
8323 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8324 DBUS_END_DECLS to nothing, that should fix this once and for all
8326 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8328 * dbus/dbus-message.c, dbus/dbus-hash.c:
8329 add some missing @brief
8331 2002-11-23 Havoc Pennington <hp@pobox.com>
8333 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8334 to avoid confusing Doxygen
8336 * dbus/dbus-hash.c: @} not }@
8338 * dbus/dbus-message.c (struct DBusMessage): split out
8341 2002-11-23 Havoc Pennington <hp@pobox.com>
8343 * configure.in: pile on more warning flags if using gcc
8345 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8346 to document static functions
8348 * configure.in: add summary to end of configure so it
8349 looks nice and attractive
8351 * dbus/dbus-hash.c: finish implementation and write unit
8354 * configure.in: add --enable-tests to enable unit tests
8356 * dbus/dbus-test.c: test program to run unit tests
8357 for all files in dbus/*, initially runs a test for
8360 * dbus/dbus-internals.h: file to hold some internal utility stuff
8362 2002-11-22 Havoc Pennington <hp@redhat.com>
8364 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8365 "ported" away from Tcl
8367 * dbus/dbus-types.h: header for types such as dbus_bool_t
8369 2002-11-22 Havoc Pennington <hp@redhat.com>
8371 * dbus/dbus.h: fixups for doc warnings
8373 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8375 (QUIET): make it quiet so we can see warnings
8377 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8379 2002-11-22 Havoc Pennington <hp@redhat.com>
8381 * Makefile.am: include "Doxyfile" target in all-local
8383 * configure.in: generate the Doxyfile
8385 * Doxyfile.in: move Doxyfile here, so we can use
8386 configure to generate a Doxyfile with the right
8389 2002-11-22 Havoc Pennington <hp@redhat.com>
8391 * dbus/dbus-message.c: move inline docs into .c file
8393 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8394 so all docs are under doc/
8395 (MAN_EXTENSION): generate man pages. Use extension
8396 ".3dbus" which matches ".3qt" on my system,
8397 I guess this is OK, I don't know really.
8398 (FILE_PATTERNS): look for .c files not .h, makes sense
8401 2002-11-22 Havoc Pennington <hp@pobox.com>
8403 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8404 because any app can be a server, and any app can be a client,
8405 the bus is a special kind of server.
8407 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8409 * Doxyfile : adding. Still needs Makefile rules to be generated
8410 automatically (just run "doxygen" in the toplevel dir for now to
8413 * dbus/dbus-message.h : Adding sample docs (javadoc since
8414 resembles gtk-doc a little more)
8416 * dbus/dbus.h : Adding sample docs
8418 2002-11-21 Havoc Pennington <hp@redhat.com>
8420 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8421 so we can allow ourselves to include files directly,
8422 instead of having to use dbus.h
8424 * dbus/dbus.h: fill in
8426 * dbus/dbus-message.h: sketch out a sample header file.
8427 Include griping if you include it directly instead of
8430 * dbus/dbus-macros.h: new file with macros for extern "C",
8431 TRUE/FALSE, NULL, etc.
8433 * doc/file-boilerplate.c: put include guards in here
8435 2002-11-21 Havoc Pennington <hp@redhat.com>
8437 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8439 * COPYING: include the GPL as well, and license code
8440 under both AFL and GPL.
8442 2002-11-21 Havoc Pennington <hp@redhat.com>
8444 * acconfig.h: get rid of this
8446 * autogen.sh (run_configure): add --no-configure option
8448 * configure.in: remove AC_ARG_PROGRAM to make
8449 autoconf complain less. add AC_PREREQ.
8450 add AC_DEFINE third arg.
8452 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8455 Fix references so we can distcheck.
8457 2002-11-21 Havoc Pennington <hp@redhat.com>
8459 * Initial module creation