1 2005-01-17 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-types.h: remove 16-bit types since we don't use them
6 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
7 "invalid name character" not only non-ASCII
9 * doc/dbus-specification.xml: further update spec, message bus
10 parts are still out-of-date but the marshaling etc. stuff is now
13 2005-01-17 Havoc Pennington <hp@redhat.com>
15 * doc/dbus-specification.xml: partially update spec
17 2005-01-17 Havoc Pennington <hp@redhat.com>
19 * Throughout, align variant bodies according to the contained
20 type, rather than always to 8. Should save a fair bit of space in
23 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
24 fix handling of case where p == end
26 * doc/TODO: remove the dbus_bool_t item and variant alignment items
28 2005-01-17 Havoc Pennington <hp@redhat.com>
30 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
32 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
33 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
34 are marshaling/unmarshaling a boolean.
36 2005-01-16 Havoc Pennington <hp@redhat.com>
38 This is about it on what can be disabled/deleted from libdbus
39 easily, back below 150K anyhow. Deeper cuts are more work than
40 just turning the code off as I've done here.
42 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
43 signed int convenience funcs
45 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
48 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
51 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
53 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
54 tests-enabled-only, though it should probably be deleted)
56 * dbus/dbus-message-util.c: same stuff
58 * dbus/dbus-auth-util.c: same stuff
60 2005-01-16 Havoc Pennington <hp@redhat.com>
62 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
64 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
65 way for stripping down dbus-userdb.c stuff included in libdbus.
66 Rename _dbus_parse_uid for consistency.
68 2005-01-16 Havoc Pennington <hp@redhat.com>
70 * dbus/dbus-internals.c (_dbus_real_assert): print the function
71 name the assertion failed in
73 * dbus/dbus-internals.h (_dbus_return_if_fail)
74 (_dbus_return_val_if_fail): assert that the name of the function
75 containing the check doesn't start with '_', since we only want to
76 use checks on public functions
78 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
81 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
82 change checks to asserts for private function
84 * dbus/dbus-message.c (_dbus_message_set_serial): checks
85 to asserts for private function
87 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
88 broken assertion that was breaking make check
89 (_dbus_type_reader_array_is_empty): remove this rather than fix
90 it, was only used in assertions
92 2005-01-16 Havoc Pennington <hp@redhat.com>
94 * test/unused-code-gc.py: hacky script to find code that's used
95 only by the bus (not libdbus) or used only by tests or not used at
96 all. It has some false alarms, but looks like we can clean up a
97 lot of size from libdbus.
99 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
100 dbus/Makefile.am: initially move 10K of binary size out of libdbus
102 2005-01-16 Havoc Pennington <hp@redhat.com>
104 * Add and fix docs according to Doxygen warnings throughout
107 * dbus/dbus-marshal-recursive.c
108 (_dbus_type_reader_array_is_empty): change this to just call
109 array_reader_get_array_len() and make it static
111 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
113 (dbus_message_iter_init_append): rename from append_iter_init
115 * dbus/dbus-marshal-recursive.c
116 (_dbus_type_reader_get_element_type): rename from
117 _dbus_type_reader_get_array_type
119 2005-01-15 Havoc Pennington <hp@redhat.com>
121 * test/glib/test-profile.c (with_bus_server_filter): fix crash
123 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
124 when DBUS_DISABLE_ASSERT
125 (_dbus_marshal_set_basic): be sure we align for the string length
127 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
130 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
132 (_dbus_string_set_byte): provide inline macro version
134 2005-01-15 Havoc Pennington <hp@redhat.com>
136 * Land the new message args API and type system.
138 This patch is huge, but the public API change is not
139 really large. The set of D-BUS types has changed somewhat,
140 and the arg "getters" are more geared toward language bindings;
141 they don't make a copy, etc.
143 There are also some known issues. See these emails for details
145 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
146 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
148 * dbus/dbus-marshal-*: all the new stuff
150 * dbus/dbus-message.c: basically rewritten
152 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
153 freed blocks to be all non-nul bytes so using freed memory is less
156 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
157 DBUS_FAIL_MALLOC=N environment variable, so you can do
158 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
159 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
162 * qt/message.cpp: port to the new message args API
163 (operator<<): use str.utf8() rather than str.unicode()
164 (pretty sure this is right from the Qt docs?)
166 * glib/dbus-gvalue.c: port to the new message args API
168 * bus/dispatch.c, bus/driver.c: port to the new message args API
170 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
171 "locked" flag to TRUE and align_offset to 0; I guess we never
172 looked at these anyhow, but seems cleaner.
174 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
175 move allocation padding macro to this header; use it to implement
176 (_DBUS_STRING_STATIC): ability to declare a static string.
178 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
179 change to return TRUE if the interface is not set.
181 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
182 to dbus-marshal-validate.[hc]
184 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
187 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
188 to dbus-marshal-*.[hc]
190 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
191 function here from dbus-marshal.c
193 2005-01-12 Joe Shaw <joeshaw@novell.com>
195 * NEWS: Update for 0.23.
197 * configure.in: Release 0.23.
199 2005-01-12 Joe Shaw <joeshaw@novell.com>
201 * mono/Makefile.am, mono/example/Makefile.am: Always build the
202 dbus DLL with --debug. Clean up after the .mdb files this leaves
205 * mono/doc/Makefile.am: Need to uninstall the docs on "make
208 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
209 is an enum, get the enum's underlying type. Another mono
212 2005-01-11 Joe Shaw <joeshaw@novell.com>
214 Patch from Sjoerd Simons <sjoerd@luon.net>
216 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
217 DESTDIR. It breaks stuff.
219 2005-01-11 Joe Shaw <joeshaw@novell.com>
221 Patch from Tambet Ingo <tambet@ximian.com>
223 * mono/DBusType/Array.cs (Get): Get the underlying element type by
224 calling type.GetElementType(). The code previously depended on
225 broken Mono behavior, which was fixed in Mono 1.1.3.
227 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
228 Activator.CreateInstance() so that the class's constructor is
229 called with the right parameters.
231 2005-01-11 Joe Shaw <joeshaw@novell.com>
233 Patch from Timo Teräs <ext-timo.teras@nokia.com>
235 * dbus/dbus-connection.c
236 (_dbus_connection_queue_received_message_link): Call
237 _dbus_connection_remove_timeout() instead of the _locked()
238 variant, since it's always called from
239 _dbus_connection_handle_watch(), which handles the locking.
240 Removed the _locked() variant since it's no longer used.
242 2005-01-03 Havoc Pennington <hp@redhat.com>
244 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
247 2004-12-26 Havoc Pennington <hp@redhat.com>
249 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
251 2005-01-03 Havoc Pennington <hp@redhat.com>
253 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
256 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
258 2005-01-02 Havoc Pennington <hp@redhat.com>
260 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
262 2005-01-01 Havoc Pennington <hp@redhat.com>
264 * configure.in: add -Wfloat-equal
266 2005-01-01 Havoc Pennington <hp@redhat.com>
268 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
269 for a variety of reasons '==' doesn't do this.
271 2004-12-31 Havoc Pennington <hp@redhat.com>
273 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
276 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
278 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
280 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
282 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
283 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
284 dbus-protocol.h. Because they are defines and not enums they are not
287 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
289 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
290 dbus_bus_activate_service
292 * python/dbus.py (Bus.activate_service): activate a service on the
295 2004-12-24 Havoc Pennington <hp@redhat.com>
297 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
298 file format has also changed and I haven't adapted to that yet
300 * Makefile.am: load .gcno files from latest gcc
302 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
303 * Patch from Rob Taylor <robtaylor@fastmail.fm>
305 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
308 * python/dbus.py (get_unix_user): Added binding to
309 call dbus_bindings.bus_get_unix_user
311 * python/extract.py: Modified the proto_pat regex to
314 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
316 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
317 better POSIX compliance.
319 2004-12-19 Havoc Pennington <hp@redhat.com>
321 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
322 (_dbus_string_insert_8_aligned): new functions
324 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
326 2004-12-18 Havoc Pennington <hp@redhat.com>
328 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
331 * dbus/dbus-message.c: fix a comment, and add a still-unused
332 not-implemented function
334 * dbus/dbus-marshal.h: fix comment
336 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
338 2004-12-17 Joe Shaw <joeshaw@novell.com>
340 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
341 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
342 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
343 Type.UnderlyingSystemType to get the actual system type
344 underneath. This code previously depended on the broken Mono
345 behavior, which was fixed in 1.1.3.
347 2004-11-27 Havoc Pennington <hp@redhat.com>
349 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
351 (_dbus_string_get_const_data): inline when asserts are disabled
353 * dbus/dbus-message.c: record the _dbus_current_generation of
354 creation so we can complain if dbus_shutdown() is used improperly.
355 Do this only if checks are enabled.
357 * dbus/dbus-connection.c: ditto
359 2004-11-26 Havoc Pennington <hp@redhat.com>
361 * test/glib/test-profile.c: add with_bus mode to profile echoes
362 that go through the bus.
364 * test/glib/run-test.sh: add ability to run test-profile
366 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
369 2004-11-26 Havoc Pennington <hp@redhat.com>
371 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
372 thing was implemented
374 2004-11-26 Havoc Pennington <hp@redhat.com>
376 * test/glib/test-profile.c: tweak a bit, add support for some
377 made-up minimal malloc overhead with plain sockets, since in
378 real life some sort of buffers are unavoidable thus we could
379 count them in the theoretical best case
381 2004-11-26 Havoc Pennington <hp@redhat.com>
383 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
384 where I was trying to cache one too many messages
386 2004-11-26 Havoc Pennington <hp@redhat.com>
388 * dbus/dbus-message.c: reimplement message cache as an array which
389 makes the cache about twice as fast and saves maybe 1.5% overall
391 2004-11-26 Havoc Pennington <hp@redhat.com>
393 * dbus/dbus-threads.c (init_global_locks): forgot to put the
394 message cache lock here
396 2004-11-26 Havoc Pennington <hp@redhat.com>
398 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
399 the "char byte_order" next to each other to save 4 bytes
400 (dbus_message_new_empty_header): reduce preallocation, since the
401 message cache should achieve a similar effect
402 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
403 message cache that keeps a few DBusMessage around in a pool,
404 another 8% speedup or so.
406 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
408 2004-11-25 Havoc Pennington <hp@redhat.com>
410 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
411 to write, without reading or blocking, try it before the poll()
412 and skip the poll() if nothing remains to write. This is about a
413 3% speedup in the echo client/server
415 2004-11-25 Havoc Pennington <hp@redhat.com>
417 The primary change here is to always write() once before adding
418 the write watch, which gives us about a 10% performance increase.
420 * dbus/dbus-transport-unix.c: a number of modifications to cope
421 with removing messages_pending
422 (check_write_watch): properly handle
423 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
424 messages_pending stuff
425 (check_read_watch): properly handle WAITING_FOR_MEMORY and
427 (unix_handle_watch): after writing, see if the write watch can be
429 (unix_do_iteration): assert that write_watch/read_watch are
430 non-NULL rather than testing that they aren't, since they
431 aren't allowed to be NULL. check_write_watch() at the end so
432 we add the watch if we did not finish writing (e.g. got EAGAIN)
434 * dbus/dbus-transport-protected.h: remove messages_pending call,
435 since it resulted in too much inefficient watch adding/removing;
436 instead we now require that the transport user does an iteration
437 after queueing outgoing messages, and after trying the first
438 write() we add a write watch if we got EAGAIN or exceeded our
439 max bytes to write per iteration setting
441 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
444 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
445 freed and then accessed, valgrind flagged this bug, fix it
447 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
448 as the last valid field plus 1, where really it is equal to the
449 last valid field. Corrects some message corruption issues.
451 * dbus/dbus-mainloop.c: verbosity changes
453 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
454 instead of aborting in one of the test codepaths
456 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
457 caused not printing the pid ever again if a verbose was missing
458 the newline at the end
459 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
461 * dbus/dbus-connection.c: verbosity changes;
462 (dbus_connection_has_messages_to_send): new function
463 (_dbus_connection_message_sent): no longer call transport->messages_pending
464 (_dbus_connection_send_preallocated_unlocked): do one iteration to
465 try to write() immediately, so we can avoid the write watch. This
466 is the core purpose of this patchset
467 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
468 dump the outgoing message queue, so nobody will get confused
469 trying to send them or thinking stuff is pending to be sent
471 * bus/test.c: verbosity changes
473 * bus/driver.c: verbosity/assertion changes
475 * bus/dispatch.c: a bunch of little tweaks to get it working again
476 because this patchset changes when/where you need to block.
478 2004-11-23 Havoc Pennington <hp@redhat.com>
480 * test/glib/test-profile.c: modify to accept a plain_sockets
481 argument in which case it will bench plain sockets instead of
482 libdbus, for comparison purposes.
484 2004-11-22 Havoc Pennington <hp@redhat.com>
486 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
487 threads for more time, so sysprof can get a grip on it.
489 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
492 2004-11-13 Havoc Pennington <hp@redhat.com>
494 * test/glib/test-profile.c: fix this thing up a bit
496 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
497 preallocation sizes by a fair bit; not sure if this will be an
498 overall performance win or not, but it does reduce reallocs.
500 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
501 the test hack that forced constant realloc if asserts are
502 disabled, so we can profile sanely. Sprinkle in some
503 _DBUS_UNLIKELY() which are probably pointless, but before I
504 noticed the real performance problem I put them in.
505 (_dbus_string_validate_utf8): micro-optimize this thing a little
506 bit, though callgrind says it didn't help; then special-case
507 ascii, which did help a lot; then be sure we detect nul bytes as
508 invalid, which is a bugfix.
509 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
510 superstition; use memset to nul the padding instead of a manual
512 (_dbus_string_get_length): inline this as a
513 macro; it showed up in the profile because it's used for loop
516 2004-11-10 Colin Walters <walters@verbum.org>
518 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
521 2004-11-09 Colin Walters <walters@verbum.org>
523 * dbus/dbus-string.c (_dbus_string_get_length): New
524 function, writes DBusString to C buffer.
526 * dbus/dbus-string.h: Prototype it.
528 * dbus/dbus-message.c (dbus_message_type_to_string): New
529 function, converts message type into C string.
531 * dbus/dbus-message.h: Prototype it.
533 * bus/selinux.c (bus_selinux_check): Take source pid,
534 target pid, and audit data. Pass audit data to
536 (log_audit_callback): New function, appends extra
538 (bus_selinux_allows_acquire_service): Also take
539 service name, add it to audit data.
540 (bus_selinux_allows_send): Also take message
541 type, interface, method member, error name,
542 and destination, and add them to audit data.
543 (log_cb): Initialize func_audit.
545 * bus/selinux.h (bus_selinux_allows_acquire_service)
546 (bus_selinux_allows_send): Update prototypes
548 * bus/services.c (bus_registry_acquire_service): Pass
549 service name to bus_selinux_allows_acquire_service.
551 * bus/bus.c (bus_context_check_security_policy): Pass
552 additional audit data. Move assignment of dest
555 2004-11-07 Colin Walters <walters@verbum.org>
557 * dbus/dbus-transport-unix.c (do_authentication): Always
558 initialize auth_completed.
560 2004-11-07 Colin Walters <walters@verbum.org>
562 * bus/bus.c (load_config): Break into three
563 separate functions: process_config_first_time_only,
564 process_config_every_time, and process_config_postinit.
565 (process_config_every_time): Move call of
566 bus_registry_set_service_context_table into
567 process_config_postinit.
568 (process_config_postinit): New function, does
569 any processing that needs to happen late
570 in initialization (and also on reload).
571 (bus_context_new): Instead of calling load_config,
572 open config parser here and call process_config_first_time_only
573 and process_config_every_time directly. Later, after
574 we have forked but before changing UID,
575 invoke bus_selinux_full_init, and then call
576 process_config_postinit.
577 (bus_context_reload_config): As in bus_context_new,
578 load parse file inside here, and call process_config_every_time
579 and process_config_postinit.
581 * bus/services.h, bus/services.c
582 (bus_registry_set_service_context_table): Rename
583 from bus_registry_set_sid_table. Take string hash from config
584 parser, and convert them here into SIDs.
586 * bus/config-parser.c (struct BusConfigParser): Have
587 config parser only store a mapping of service->context
589 (merge_service_context_hash): New function.
590 (merge_included): Merge context string hashes instead
591 of using bus_selinux_id_table_union.
592 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
593 simply create a new string hash.
594 (bus_config_parser_unref): Unref it.
595 (start_selinux_child): Simply insert strings into hash,
596 don't call bus_selinux_id_table_copy_over.
598 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
599 (bus_selinux_id_table_copy_over): Delete.
601 2004-11-03 Colin Walters <walters@verbum.org>
603 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
606 2004-11-03 Colin Walters <walters@verbum.org>
608 * bus/test-main.c (test_pre_hook): Fix test logic,
609 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
611 2004-11-02 Colin Walters <walters@redhat.com>
613 * bus/selinux.c (bus_selinux_init): Split into two functions,
614 bus_selinux_pre_init and bus_selinux_post_init.
615 (bus_selinux_pre_init): Just determine whether SELinux is
617 (bus_selinux_post_init): Do everything else.
619 * bus/main.c (main): Call bus_selinux_pre_init before parsing
620 config file, and bus_selinux_post_init after. This ensures that
621 we don't lose the policyreload notification thread that
622 bus_selinux_init created before forking previously.
624 * bus/test-main.c (test_pre_hook): Update for split.
626 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
628 Patch from Johan Fischer <linux@fischaz.com>
630 * mono/doc/Makefile.am (install-data-local): Added directory
633 2004-10-29 Colin Walters <walters@redhat.com>
635 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
636 parameter for fd to write pid to.
638 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
640 * bus/bus.c (bus_context_new): Pass print_pid_fd
641 to _dbus_become_daemon (bug #1720)
643 2004-10-29 Colin Walters <walters@redhat.com>
645 Patch from Ed Catmur <ed@catmur.co.uk>
647 * mono/doc/Makefile.am (install-data-local): Handle
650 2004-10-29 Colin Walters <walters@redhat.com>
652 * bus/.cvsignore, qt/.cvsignore: Update.
654 2004-10-29 Colin Walters <walters@redhat.com>
656 Patch from Kristof Vansant <de_lupus@pandora.be>
658 * configure.in: Detect Slackware.
659 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
660 * bus/rc.messagebus.in: New file.
662 2004-10-29 Colin Walters <walters@redhat.com>
664 * tools/dbus-monitor.c (filter_func): Return
665 DBUS_HANDLER_RESULT_HANDLED in filter function
667 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
669 2004-10-29 Colin Walters <walters@redhat.com>
671 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
673 * bus/services.c (bus_registry_acquire_service):
674 Correctly retrieve service name from DBusString
677 2004-10-29 Colin Walters <walters@redhat.com>
679 * dbus/dbus-glib.h: Update documentation to not
680 refer to internal APIs.
682 2004-10-27 Joe Shaw <joeshaw@novell.com>
684 * mono/Arguments.cs (GetDBusTypeConstructor):
685 type.UnderlyingSystemType will return "System.Byte" if you do it
686 on "byte[]", which is not what we want. So check the type.IsArray
687 property and use System.Array instead.
689 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
691 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
692 the DBusUserInfo structure since this is passed into the function.
693 This would cause a double free when the function that allocated
694 the structure would try to free it when an error occured.
696 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
697 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
698 for service activation to avoid 32bit/64bit parallel install issues
700 2004-10-21 Colin Walters <walters@verbum.org>
702 * AUTHORS: Fix my email address, the @gnu.org one
703 has been bouncing for some time. Also add J5.
705 2004-10-21 Colin Walters <walters@verbum.org>
707 * dbus/dbus-transport-unix.c (do_authentication): Return
708 authentication status to callers.
709 (unix_handle_watch): If we completed authentication this round,
710 don't do another read. Instead wait until the next iteration,
711 after we've read any pending data in the auth buffer.
712 (unix_do_iteration): Ditto.
713 (unix_handle_watch): Updated for new do_authentication prototype.
715 2004-10-18 Colin Walters <walters@verbum.org>
717 * bus/selinux.c (bus_selinux_enabled): Handle
718 --disable-selinux case.
720 2004-10-18 Colin Walters <walters@verbum.org>
722 * bus/selinux.h: Add bus_selinux_enabled.
724 * bus/selinux.c (bus_selinux_enabled): Implement it.
726 * bus/config-parser.c (struct include): Add
727 if_selinux_enabled member.
728 (start_busconfig_child): Parse if_selinux_enabled
729 attribute for include.
730 (bus_config_parser_content): Handle it.
732 * bus/session.conf.in, bus/system.conf.in: Add
733 inclusion of context mapping to default config files;
734 conditional on SELinux being enabled.
736 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
738 * test/data/invalid-config-files/badselinux-1.conf,
739 test/data/invalid-config-files/badselinux-2.conf:
740 Test files for bad syntax.
742 2004-10-17 Colin Walters <walters@verbum.org>
744 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
745 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
746 format specifier mismatches.
748 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
750 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
753 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
754 pointer (bug #1540, Leonardo Boiko).
756 2004-09-28 Jon Trowbridge <trow@ximian.com>
758 * mono/BusDriver.cs: Changed BusDriver struct to remove
759 the ServiceCreated and ServiceDeleted events and replace them
760 with the new ServiceOwnerChanged event.
762 * mono/example/BusListener.cs: Added a new example program,
763 which listens for and reports any ServiceOwnerChanged events
766 * mono/example/Makefile.am (DESTDIR): Build changes for the
767 new BusListener.cs example.
769 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
771 * bus/signals.c (bus_match_rule_parse): validate the components of
772 match rules (bug #1439).
774 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
776 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
778 * doc/dbus-specification.xml: document ServiceOwnerChanged
781 * bus/driver.c, bus/driver.h, bus/services.c: Use
782 ServiceOwnerChanged signal instead of ServiceCreated and
785 * bus/dispatch.c: update testcase for the new signal.
787 2004-09-20 Jon Trowbridge <trow@ximian.com>
789 Patch from Nat Friedman <nat@novell.com>
791 * mono/Makefile.am: A number of small build fixes to allow "make
792 distcheck" to succeed.
794 * mono/example/Makefile.am: "make distcheck" fixes.
796 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
799 * test/Makefile.am: "make distcheck" fixes.
801 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
803 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
805 * doc/busconfig.dtd: update the DTD for the at_console attribute.
807 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
808 messages after the first one (bug #1389).
810 * bus/dispatch.c (check_double_hello_message): add a test case for
811 the double hello message bug.
812 (check_existent_service_activation): fix check of spawning error.
814 2004-09-16 David Zeuthen <david@fubar.dk>
816 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
818 2004-09-12 David Zeuthen <david@fubar.dk>
820 Patch from Kay Sievers <kay.sievers@vrfy.org>
822 * bus/bus.c (bus_context_new):
826 Add commandline option --nofork to override configuration file
829 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
831 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
832 compilers don't like it (bug #974).
834 2004-09-04 Harald Fernengel <harry@kdevelop.org>
836 * qt/connection.*: Applied patch by JĂ©rĂ´me Lodewyck
837 <lodewyck@clipper.ens.fr> to integrate an existing
838 connection into the Qt eventloop
840 2004-08-30 Jon Trowbridge <trow@ximian.com>
842 * mono/BusDriver.cs: Added. This is a class for interacting with
843 the org.freedesktop.DBus service.
845 * mono/Message.cs: Added a mechanism to expose the message that is
846 currently being dispatched via the static Message.Current
847 property. Added Message.Sender and Message.Destination
850 * mono/Handler.cs: Expose the dispatched message via
851 Message.Current when handling method calls.
853 * mono/Service.cs: Expose the dispatched message via
854 Message.Current when handling signal emissions.
856 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
857 Connection.BaseService property.
859 2004-08-28 Havoc Pennington <hp@redhat.com>
861 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
863 More fixes from Steve Grubb
865 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
866 (_dbus_listen_tcp_socket): fix fd leak
868 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
869 EINTR to a bit lower in the code
871 2004-08-26 Jon Trowbridge <trow@ximian.com>
873 * bus/driver.c (bus_driver_handle_service_exists): Respond with
874 TRUE if we are inquiring about the existence of the built-in
875 org.freedesktop.DBus service.
877 2004-08-25 John Palmieri <johnp@redhat.com>
878 * bus/config-parser.c:
879 (struct PolicyType): Add POLICY_CONSOLE
880 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
881 (start_busconfig_child): Sets up console element when
882 <policy at_console=""> is encountered in a policy file
883 (append_rule_from_element): Convert console elements to console
887 (bus_policy_create_client_policy): Add console rules to the client
888 policy based on if the client is at the console
889 (bus_policy_append_console_rule): New function for adding a
890 console rule to a policy
891 (bus_policy_merge): Handle console rule merging
893 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
894 where we check for console user files
896 * dbus/dbus-sysdeps.c:
897 (_dbus_file_exists): New function which checks if the given
899 (_dbus_user_at_console): New function which does the system
900 specific process of checking if the user is at the console
902 * dbus/dbus-userdb.c:
903 (_dbus_is_console_user): New function converts a UID to user name
904 and then calls the system specific _dbus_user_at_console to
905 see if the user is at the console and therefor a console user
907 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
909 * bus/config-parser.c (set_limit):
910 * bus/dbus-daemon-1.1.in:
911 * test/data/valid-config-files/many-rules.conf: set the
912 max_match_rules_per_connection limt from the config file.
914 * doc/busconfig.dtd: update the DTD.
916 * bus/driver.c: remove some unused variables.
918 2004-08-24 Mikael Hallendal <micke@imendio.com>
920 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
921 it's been replaced by dbus_g_bus_get
923 2004-08-23 Colin Walters <walters@redhat.com>
925 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
927 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
929 * bus/selinux.c: Create a thread for policy reload notification.
930 (bus_selinux_get_policy_root): Implement.
932 * bus/config-parser.c (start_busconfig_child)
933 (bus_config_parser_content): Support SELinux-root relative
936 * configure.in <HAVE_SELINUX>: Add -lpthread.
938 * bus/test-main.c (test_pre_hook, test_post_hook): New.
939 (test_post_hook): Move memory checking into here.
940 (test_pre_hook, test_post_hook): Move SELinux checks in
941 here, but conditional on a DBUS_TEST_SELINUX environment
942 variable. Unfortunately we can't run the SELinux checks
943 as a normal user, since they won't have any permissions
944 for /selinux. So this will have to be tested manually
945 for now, until we have virtualization for most of
948 2004-08-23 Havoc Pennington <hp@redhat.com>
950 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
951 drop supplementary groups, suggested by Steve Grubb
953 2004-08-20 Colin Walters <walters@redhat.com>
955 * bus/config-parser.c (start_busconfig_child): Remove some unused
958 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
961 2004-08-17 Joe Shaw <joeshaw@novell.com>
963 * configure.in: If --enable-mono is passed in, if we can't find
966 * mono/Makefile.am: Use /gacutil to install assemblies into the
969 2004-08-12 Havoc Pennington <hp@redhat.com>
971 * NEWS: update for 0.22
973 * configure.in: release 0.22
975 2004-08-11 Colin Walters <walters@redhat.com>
977 * tools/dbus-send.c (main, usage): Add --reply-timeout
980 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
982 * bus/bus.c (process_config_first_time_only): get rid of an unused
983 DBusError that was causing a memoy leak (bug #989).
985 * dbus/dbus-keyring.c, dbus/dbus-message.c:
986 fix compilation on Solaris/Forte C (bug #974)
988 * bus/main.c (main): plug two minuscule memleaks.
990 2004-08-10 Havoc Pennington <hp@redhat.com>
992 * doc/dbus-tutorial.xml: add some more info on GLib bindings
994 2004-08-09 Havoc Pennington <hp@redhat.com>
996 * COPYING: switch to Academic Free License version 2.1 instead of
997 2.0, to resolve complaints about patent termination clause.
999 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
1001 * README: added documentation for the --enable-python
1004 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1006 * bus/config-parser.c (bus_config_parser_new): fix an invalid
1007 _unref in the SELinux support.
1009 * doc/busconfig.dtd: update DTD for SELinux support.
1011 * bus/config-loader-libxml.c: fix error handler and parser
1012 initialisation/cleanup. OOM test now works with libxml2 HEAD.
1014 * configure.in: remove the warning about libxml2.
1016 * dbus/dbus-bus.c: silence doxygen warning.
1018 2004-07-31 Colin Walters <walters@redhat.com>
1020 * configure.in: Move #error in SELinux check to its own line.
1022 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
1024 * dbus/dbus-internals.h (_DBUS_SET_OOM):
1025 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
1028 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
1029 broken by the change in the _SET_OOM macros.
1031 2004-07-31 Colin Walters <walters@redhat.com>
1033 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
1036 2004-07-31 Colin Walters <walters@redhat.com>
1038 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
1039 to correctly detect DBUS__ACQUIRE_SVC. Also add an
1042 2004-07-24 Havoc Pennington <hp@redhat.com>
1044 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
1046 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
1049 * configure.in: add --enable-selinux
1051 * bus/policy.c (bus_policy_merge): add FIXME to a comment
1053 * bus/main.c (main): initialize and shut down selinux
1055 * bus/connection.c: store SELinux ID on each connection, to avoid
1056 repeated getting of the string context and converting it into
1059 * bus/bus.c (bus_context_get_policy): new accessor, though it
1061 (bus_context_check_security_policy): check whether the security
1062 context of sender connection can send to the security context of
1063 recipient connection
1065 * bus/config-parser.c: add parsing for <selinux> and <associate>
1067 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
1068 implement dbus_connection_get_unix_fd()
1070 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
1071 function, used by the selinux stuff
1073 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
1075 * bus/config-loader-libxml.c: complete the implementation of
1076 libxml backend for config file loader. Doesn't work with full OOM
1079 * configure.in: change error when selecting libxml into a warning.
1081 * test/data/invalid-config-files: add two non-well-formed XML
1084 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
1086 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
1087 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
1088 be necessary to read all the buffer. (bug #894)
1090 * bus/activation.c (bus_activation_activate_service): fix a
1091 potential assertion failure (bug #896). Small optimization in the
1092 case of auto-activation messages.
1094 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
1095 add test case for byte-through-vararg bug (#901). patch by Kimmo
1098 2004-07-28 Anders Carlsson <andersca@gnome.org>
1101 * python/dbus_bindings.pyx.in:
1102 Add dbus.init_gthreads (), allow emit_signal to pass
1103 arguments to the signal.
1105 2004-07-24 Havoc Pennington <hp@redhat.com>
1107 * AUTHORS: add some people, not really comprehensively, let me
1108 know if I missed you
1110 2004-07-24 Havoc Pennington <hp@redhat.com>
1112 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
1115 * test/Makefile.am (DIST_SUBDIRS): here also
1117 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1119 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
1120 breaking build on Solaris, reported by Farhad Saberi on the ML.
1122 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
1123 va_arg invocation to account for integer promotion in the case of
1124 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
1126 * bus/services.c (bus_service_remove_owner): fix bug #902, use
1127 _dbus_list_get_first_link, not _dbus_list_get_first.
1129 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
1131 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
1132 handler functions so that the asserts in _dbus_object_subtree_unref
1135 * dbus/dbus-transport-unix.c (do_reading):
1136 _dbus_transport_queue_messages return value is of type
1137 dbus_bool_t, not DBusDispatchStatus.
1139 2004-07-19 David Zeuthen <david@fubar.dk>
1141 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
1144 (check_get_connection_unix_user): Debug says GetProperty; but the
1145 method is called GetConnectionUnixUser
1146 (check_get_connection_unix_process_id): New function
1147 (bus_dispatch_test): Actually call check_get_connection_unix_user();
1148 also call check_get_connection_unix_process_id()
1151 (bus_driver_handle_get_connection_unix_process_id): New function,
1152 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
1156 (handle_server_data_external_mech): Set pid from the credentials
1157 obtained from the socket
1159 * dbus/dbus-connection.c:
1160 (dbus_connection_get_unix_process_id): New function
1162 * dbus/dbus-connection.h:
1163 Add prototype for dbus_connection_get_unix_process_id
1165 * dbus/dbus-transport.c:
1166 (_dbus_transport_get_unix_process_id): New function
1168 * dbus/dbus-transport.h:
1169 Add prototype for _dbus_transport_get_unix_process_id
1171 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
1173 * dbus/dbus-message.c: Message counter fix, patch by Christian
1174 Hammond <chipx86@gnupdate.org>
1176 2004-07-18 Seth Nickell <seth@gnome.org>
1179 * python/dbus_bindings.pyx.in:
1180 * python/tests/test-client.py:
1182 Add dbus.ByteArray and dbus_bindings.ByteArray
1183 types so that byte streams can be passed back.
1185 Give jdahlin the heaps of credit that are so
1188 2004-07-12 Seth Nickell <seth@gnome.org>
1192 Add message argument to the default object_method_handler
1195 * python/dbus_bindings.pyx.in:
1197 Automatically return NIL when passed an empty list
1198 (we can't pass back a list since lists are typed
1199 and we don't have any idea what type the the client
1200 intended the list to be... :-( )
1202 2004-07-10 Seth Nickell <seth@gnome.org>
1204 * python/examples/Makefile.am:
1206 Fix distcheck breakage caused by new examples.
1208 2004-07-10 Seth Nickell <seth@gnome.org>
1212 Add "message" argument to service-side dbus.Object
1213 methods. This will break existing services written
1214 using the python bindings, but will allow extraction
1215 of all the message information (e.g. who its from).
1217 Add improved "object oriented" signal handling/emission.
1219 * python/examples/example-service.py:
1223 * python/examples/example-signal-emitter.py:
1224 * python/examples/example-signal-recipient.py:
1226 Two new examples that show how to emit and receive
1227 signals using the new APIs.
1229 * python/examples/example-signals.py:
1230 * python/examples/gconf-proxy-service.py:
1231 * python/examples/gconf-proxy-service2.py:
1233 Add "message" argument to service methods.
1235 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
1237 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
1238 * dbus/bus.c (dbus_bus_get_unix_user)
1239 * doc/dbus-specification.xml: implement GetConnectionUnixUser
1240 method of org.freedesktop.DBus interface.
1242 * bus/dispatch.c: test case
1244 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
1246 * python/Makefile.am: switched include directory from glib/ to dbus/
1247 since dbus-glib.h moved
1249 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
1251 * configure.in: prevent building the gcj stuff and libxml loader
1252 since they are broken.
1254 2004-06-20 Havoc Pennington <hp@redhat.com>
1256 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
1257 codes from the dbus error names
1259 * glib/dbus-glib.h: move to subdir dbus/ since it's included
1260 as dbus/dbus-glib.h and that breakage is now visible due to
1261 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
1263 * glib/dbus-glib.h: s/gproxy/g_proxy/
1265 * dbus/dbus-shared.h: new header to hold stuff shared with
1268 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
1271 * glib/dbus-glib.h (dbus_set_g_error): move to
1272 dbus-glib-lowlevel.h
1274 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
1275 of stuff to enable this
1277 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
1279 * a bunch of other changes with the same basic "separate glib
1280 bindings from dbus.h" theme
1282 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
1284 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
1286 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
1288 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
1290 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
1291 the reply value of the ServiceExists message.
1293 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
1295 * python/dbus_bindings.pyx.in: No longer need to parse path
1296 elements and pass them as arrays of strings. The C API now
1297 accepts plain path strings.
1298 (_build_parsed_path): removed
1300 2004-06-07 Havoc Pennington <hp@redhat.com>
1302 * doc/TODO: remove auto-activation item since it's done; sort
1303 items by importance/milestone
1305 2004-06-07 Havoc Pennington <hp@redhat.com>
1307 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
1308 random signature when using REQUIRED_FIELDS (this hack won't work
1311 * dbus/dbus-message.c: change the signature to be a header field,
1312 instead of message->signature special-case string. Incremental
1313 step forward. Then we can fix up code to send the signature in the
1314 message, then fix up code to validate said signature, then fix up
1315 code to not put the typecodes inline, etc.
1316 (load_one_message): don't make up the signature after the fact
1317 (decode_header_data): require signature field for the known
1320 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
1322 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
1324 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
1326 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
1328 * mono/Handler.cs: Updated to follow new path argument for
1329 (un-)registering objects.
1331 * mono/example/Makefile.am:
1333 * configure.in: Bumped required version for mono and use new -pkg
1336 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
1338 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
1339 registration functions take the path argument as char* instead of
1342 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
1343 split off the path decompostion part of
1344 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
1347 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
1349 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1351 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
1352 machine approach. A state is implemented as a function that
1353 handles incoming events as specified for that state.
1355 * doc/dbus-specification.xml: Update auth protocol state machine
1356 specification to match implementation. Remove some leftover
1359 2004-06-02 Kristian Høgsberg <krh@redhat.com>
1361 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
1362 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
1365 * Doxyfile.in: remove deprecated options.
1367 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
1368 glib/test-thread.h, glib/test-thread-client.c,
1369 glib/test-thread-server.c, glib/test-profile.c,
1370 glib/test-dbus-glib.c: remove these unused files.
1372 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
1374 * dbus/dbus-object-tree.c
1375 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
1376 non-fallback handlers (bug #684).
1377 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
1378 (find_subtree_recurse): report wether the returned subtree is an
1379 exact match or a "fallback" match higher up in the tree.
1380 (object_tree_test_iteration): update test case.
1382 2004-06-01 Seth Nickell <seth@gnome.org>
1384 * python/dbus_bindings.pyx.in:
1385 * python/tests/test-client.py:
1387 Round off basic type support. Add dicts (yay!), and
1388 remaining array types.
1390 Make MessageIter more general so it works for dicts too.
1392 Mark all loop variables as C integers.
1394 2004-05-31 Havoc Pennington <hp@redhat.com>
1396 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
1399 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
1401 * glib/dbus-glib-tool.c (main): set up to have a --self-test
1402 option that runs the tests, and start filling in some code
1403 including for starters just dumping the interfaces to stdout
1405 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
1407 * test/data/valid-introspection-files/lots-of-types.xml: test of
1408 an example introspection file
1410 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
1413 2004-05-31 Seth Nickell <seth@gnome.org>
1415 * python/dbus_bindings.pyx.in:
1416 * python/tests/test-client.py:
1421 Fix string array memory trashing bug... oops...
1423 2004-05-30 Seth Nickell <seth@gnome.org>
1427 Add a nicer-but-less-flexible alternate API for handling
1428 calls to virtual objects in dbus.ObjectTree.
1430 Screw up the argument order to the dbus.Object constructor
1431 for consistency with dbus.ObjectTree (and to make dbus_methods
1432 optional for future extension)
1434 * python/examples/Makefile.am:
1435 * python/examples/gconf-proxy-service.py:
1436 * python/examples/gconf-proxy-service2.py:
1438 Alternate implementation of gconf-proxy-service using the
1439 nicer dbus.ObjectTree API.
1441 * python/examples/example-service.py:
1442 * python/tests/test-server.py
1444 Reverse the argument order to deal with dbus.Object constructor
1447 2004-05-30 Seth Nickell <seth@gnome.org>
1449 * python/examples/example-client.py:
1450 * python/examples/example-service.py:
1452 Take it back. Lists seem to work but they're broken
1453 in the test suite. Make the base examples use
1456 2004-05-30 Seth Nickell <seth@gnome.org>
1458 * python/dbus_bindings.pyx.in:
1459 * python/tests/test-client.py:
1461 Add some more tests and fix errors that crop up.
1462 Unfortunately, currently it seems like marshalling
1463 and unmarshalling of lists is completely broken :-(
1465 2004-05-30 Seth Nickell <seth@gnome.org>
1467 * python/dbus_bindings.pyx.in:
1469 Add support for ObjectPath type.
1473 Refactor message handling code to a common function.
1475 * python/tests/test-client.py:
1476 * python/tests/test-server.py:
1478 Add tests that check to make sure values of all types
1479 can be echoed from a service w/o mangling.
1481 2004-05-29 Seth Nickell <seth@gnome.org>
1485 Add ObjectTree class which allows implementation
1486 of trees of "virtual" objects. Basically the python
1487 wrapper for "register_fallback".
1489 * python/examples/Makefile.am
1490 * python/examples/gconf-proxy-client.py:
1491 * python/examples/gconf-proxy-service.py:
1493 Implement a simple GConf proxy service that supports
1494 get/set on string and int GConf keys using the ObjectTree.
1496 2004-05-29 Seth Nickell <seth@gnome.org>
1499 * python/examples/example-client.py:
1500 * python/examples/example-service.py:
1501 * python/examples/list-system-services.py:
1503 Add SessionBus, SystemBus and ActivationBus classes
1504 so you don't need to know the special little BUS_TYPE
1507 2004-05-29 Havoc Pennington <hp@redhat.com>
1509 * bus/config-parser.c (process_test_valid_subdir): temporarily
1510 stop testing config parser OOM handling, since expat has issues
1511 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
1513 * bus/dbus-daemon-1.1.in: change requested_reply to
1514 send_requested_reply/receive_requested_reply so we can send the
1515 replies, not just receive them.
1517 * bus/config-parser.c: parse the new
1518 send_requested_reply/receive_requested_reply
1520 * bus/policy.c (bus_client_policy_check_can_send): add
1521 requested_reply argument and use it
1523 * bus/bus.c (bus_context_check_security_policy): pass through
1524 requested_reply status to message send check
1526 * bus/system.conf.in: adapt to requested_reply change
1528 2004-05-28 Havoc Pennington <hp@redhat.com>
1530 * test/glib/test-service-glib.c (main): remove unused variable
1532 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
1534 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
1535 from the enum, no longer in use.
1537 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
1540 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
1541 whether error_name passed in is a valid error name.
1543 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
1545 * dbus/dbus-message.c (dbus_message_get_args): Added support for
1546 OBJECT_PATH and OBJECT_PATH_ARRAY
1548 2004-05-28 Seth Nickell <seth@gnome.org>
1550 * python/examples/Makefile.am:
1552 Forget to add Makefile.am. Do not pass go.
1554 2004-05-28 Michael Meeks <michael@ximian.com>
1556 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
1559 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
1561 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
1562 (_dbus_message_iter_get_basic_type_array): impl.
1563 drastically simplify ~all relevant _get methods to use these.
1564 (_dbus_message_iter_append_basic_array),
1565 (dbus_message_iter_append_basic): impl
1566 drastically simplify ~all relevant _append methods to use these.
1568 * dbus/dbus-message-builder.c (parse_basic_type)
1569 (parse_basic_array, lookup_basic_type): impl.
1570 (_dbus_message_data_load): prune scads of duplicate /
1573 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
1574 (_dbus_demarshal_basic_type): implement,
1575 (demarshal_and_validate_len/arg): beef up debug.
1576 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
1578 2004-05-27 Seth Nickell <seth@gnome.org>
1581 * python/Makefile.am:
1583 Include the example python apps in the tarball.
1585 * python/examples/list-system-services.py
1587 Add a python new example that fetches the list of services
1588 from the system bus.
1590 2004-05-27 Seth Nickell <seth@gnome.org>
1593 * python/dbus_bindings.pyx.in:
1595 Fix failure to notify that a signal was not handled,
1596 resulted in hung functions.
1598 2004-05-25 Colin Walters <walters@redhat.com>
1600 * tools/dbus-monitor.c (main): Monitor all types of messages.
1602 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
1604 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
1605 which unregisters the object path and disposes the handler.
1607 2004-05-23 Kristian Høgsberg <krh@redhat.com>
1609 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
1611 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
1612 operands to && so we call dbus_message_iter_next () for the last
1615 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1617 * dbus/dbus-object-tree.c
1618 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
1619 children even if the requested path isn't registered.
1620 (object_tree_test_iteration): test object_tree_list_registered.
1622 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
1625 2004-05-20 Kristian Høgsberg <krh@redhat.com>
1627 * doc/TODO: Remove resolved items.
1629 * bus/expirelist.h (struct BusExpireList): remove unused n_items
1632 * bus/connection.c (bus_connections_expect_reply): Enforce the
1633 per-connection limit on pending replies.
1635 Patch from Jon Trowbridge <trow@ximian.com>:
1637 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
1638 up a watch that triggers a config reload when one end of the pipe
1640 (signal_handler): Instead of doing the config reload in our SIGHUP
1641 handler, just write to the reload pipe and let the associated
1642 watch handle the reload when control returns to the main loop.
1644 * bus/driver.c (bus_driver_handle_reload_config): Added.
1645 Implements a ReloadConfig method for requesting a configuration
1646 file reload via the bus driver.
1648 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
1650 * HACKING: Updated release instructions concerning the wiki page.
1652 2004-05-18 Kristian Høgsberg <krh@redhat.com>
1654 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
1655 filter against auth->allowed_mechs; we only add allowed mechs in
1656 record_mechanisms().
1658 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
1659 ALLOWED_MECHS to auth-script format so we can set the list of
1662 * data/auth/client-out-of-mechanisms.auth-script: New test to
1663 check client disconnects when it is out of mechanisms to try.
1665 * dbus/dbus-auth.c (process_command): Remove check for lines
1666 longer that 1 MB; we only buffer up maximum 16 kB.
1668 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
1669 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
1670 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
1671 assume there might be unused bytes.
1673 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
1674 client-out-of-mechs, it is handled in process_reject(). Move check
1675 for max failures to send_rejected(), as it's a server-only thing.
1677 * dbus/dbus-auth.c: Factor out protocol reply code into functions
1678 send_auth(), send_data(), send_rejected(), send_error(),
1679 send_ok(), send_begin() and send_cancel().
1681 2004-05-17 Kristian Høgsberg <krh@redhat.com>
1683 Remove base64 encoding, replace with hex encoding. Original patch
1684 from trow@ximian.com, added error handling.
1686 * dbus/dbus-string.c (_dbus_string_base64_encode)
1687 (_dbus_string_base64_decode): Remove.
1688 (_dbus_string_hex_decode): Add end_return argument so we can
1689 distinguish between OOM and invalid hex encoding.
1690 (_dbus_string_test): Remove base64 tests and add test case for
1693 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
1694 Replace base64 with hex.
1696 * test/data/auth/invalid-hex-encoding.auth-script: New test case
1697 for invalid hex encoded data in auth protocol.
1699 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
1701 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
1704 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1706 * mono/dbus-sharp.dll.config.in: Added for GAC
1707 * mono/dbus-sharp.snk: Added for GAC
1708 * mono/Assembly.cs.in: Added for GAC
1709 * mono/Makefile.am: Changes for GAC installation
1710 * configure.in: Added refs for dbus-sharp.dll.config.in and
1711 Assembly.cs.in. More fixes for mono testing
1712 * mono/example/Makefile.am: Changed var to CSC
1713 * Makefile.am: Changed flag name to DBUS_USE_CSC
1715 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
1717 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
1718 * mono/doc/*: Added documentation framework
1719 * configure.in: Added monodoc check
1720 * README: Added description of mono configure flags
1722 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
1724 * doc/dbus-specification.xml: Added a "Required" column to the
1725 header fields table and changed the "zero or more" verbage in
1726 the above paragraph to read "The header must contain the required
1727 named header fields and zero or more of the optional named header
1729 * test/data/invalid-messages/*.message: Added the required PATH
1730 named header field to the tests so that they don't fail on
1731 'Missing path field'
1733 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
1735 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
1736 the stack by implicitly defining variable and parameter types and
1737 removing the hack of defining C pointers as python objects and later
1740 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
1742 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
1744 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
1746 * mono/DBusType/Dict.cs: Handle empty dicts
1747 * mono/DBusType/Array.cs: Handle empty arrays
1748 * mono/Arguments.cs: Handle empty arguments
1750 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
1752 * dbus-sharp.pc.in: Modified to include include Libs and Requires
1755 2004-04-25 Kristian Høgsberg <krh@redhat.com>
1757 * test/data/valid-messages/standard-*.message: Update message
1758 test scripts to new header field names.
1760 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
1762 * test/break-loader.c (randomly_do_n_things): tracked down buffer
1763 overflow to times_we_did_each_thing array which would chop off the
1764 first character of the failure_dir string. Increased the size of
1765 the array to 7 to reflect the number of random mutation functions
1768 2004-04-21 Kristian Høgsberg <krh@redhat.com>
1770 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
1771 unix_server->watch here, it is unreffed in disconnect.
1772 (_dbus_server_new_for_tcp_socket): convert NULL host to
1773 "localhost" here so we don't append NULL to address.
1775 * dbus/dbus-server.c (_dbus_server_test): Add test case for
1776 various addresses, including tcp with no explicit host.
1778 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1780 * dbus/dbus-message.c (decode_header_data, decode_string_field):
1781 fix incorrect setting of .name_offset in the HeaderField (it was
1782 off by two bytes, positioned right after the name and typecode)
1784 * bus/bus.c (bus_context_new, bus_context_unref): test before
1785 calling dbus_server_free_data_slot and _dbus_user_database_unref
1786 in case of an error.
1788 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
1791 2004-04-19 Kristian Høgsberg <krh@redhat.com>
1793 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
1794 _dbus_poll() instead of select().
1796 2004-04-15 Jon Trowbridge <trow@ximian.com>
1798 * bus/main.c (signal_handler): Reload the configuration files
1800 (main): Set up our SIGHUP handler.
1802 * bus/bus.c (struct BusContext): Store the config file, user and
1803 fork flag in the BusContext.
1804 (process_config_first_time_only): Added. Contains the code
1805 (previously in bus_context_new) for setting up the BusContext from
1806 the BusConfigParser that should only be run the first time the
1807 config files are read.
1808 (process_config_every_time): Added. Contains the code (previously
1809 in bus_context_new) for setting up the BusContext from the
1810 BusConfigParser that should be run every time the config files are
1812 (load_config): Added. Builds a BusConfigParser from the config
1813 files and passes the resulting structure off to
1814 process_config_first_time_only (assuming this is the first time)
1815 and process_config_every_time.
1816 (bus_context_new): All of the config-related code has been moved
1817 to process_config_first_time_only and process_config_every_time.
1818 Now this function just does the non-config-related initializations
1819 and calls load_config.
1820 (bus_context_reload_config): Added.
1822 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
1824 * bus/driver.c (bus_driver_handle_get_service_owner):
1825 implement a GetServiceOwner method.
1826 * doc/dbus-specification.xml: document it.
1827 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
1829 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
1830 implement, using the bus GetServiceOwner method.
1832 * test/glib/test-dbus-glib.c:
1833 use dbus_gproxy_new_for_service_owner so that we can receive the
1836 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
1838 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1839 dbus/dbus-message.c, dbus/dbus-protocol.h
1840 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
1842 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
1843 dbus/dbus-message.c, dbus/dbus-protocol.h
1844 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
1846 * dbus/dbus-internals.c (_dbus_header_field_to_string):
1847 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
1848 DBUS_HEADER_FIELD_SENDER resolves to "sender"
1850 * doc/dbus-specification.xml (Header Fields Table):
1851 s/SERVICE/DESTINATION
1852 s/SENDER_SERVICE/SENDER
1855 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
1857 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
1860 2004-04-13 Michael Meeks <michael@ximian.com>
1862 * glib/dbus-gobject.c (handle_introspect): split out
1863 (introspect_properties): this.
1864 (handle_introspect): implement this.
1866 * test/glib/Makefile.am: use the absolute path so the bus
1867 daemon's chdir ("/") doesn't kill us dead.
1869 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
1871 2004-04-12 Jon Trowbridge <trow@ximian.com>
1873 * bus/config-parser.c (struct BusConfigParser): Added
1874 included_files field.
1875 (seen_include): Added. Checks whether or not a file has already
1876 been included by any parent BusConfigParser.
1877 (bus_config_parser_new): Copy the parent's included_files.
1878 (include_file): Track which files have been included, and fail on
1879 circular inclusions.
1880 (process_test_valid_subdir): Changed printf to report if we are
1881 testing valid or invalid conf files.
1882 (all_are_equiv): Changed printf to be a bit clearer about
1883 what we are actually doing.
1884 (bus_config_parser_test): Test invalid configuration files.
1886 2004-04-09 Jon Trowbridge <trow@ximian.com>
1888 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
1889 argument. If non-null, the newly-constructed BusConfigParser will
1890 be initialized with the parent's BusLimits instead of the default
1892 (include_file): When including a config file, pass in
1893 the current parser as the parent and then copy the BusLimits
1894 from the included BusConfigParser pack to the current parser.
1895 (process_test_valid_subdir): Renamed from process_test_subdir.
1896 (process_test_equiv_subdir): Added. Walks through a directory,
1897 descending into each subdirectory and loading the config files
1898 it finds there. If any subdirectory contains two config files
1899 that don't produce identical BusConfigParser structs, fail.
1900 For now, the BusConfigParser's BusPolicies are not compared.
1901 (bus_config_parser_test): Call both process_test_valid_subdir and
1902 process_test_equiv_subdir.
1904 * bus/config-loader-libxml.c (bus_config_load): Take a parent
1905 argument and pass it along to the call to bus_config_parser_new.
1906 Also made a few small changes to allow this code to compile.
1908 * bus/config-loader-expat.c (bus_config_load): Take a parent
1909 argument and pass it along to the call to bus_config_parser_new.
1911 * bus/bus.c (bus_context_new): Load the config file
1912 with a NULL parent argument.
1914 2004-03-29 Michael Meeks <michael@ximian.com>
1916 * glib/dbus-gobject.c (introspect_properties): split
1917 out, fix mangled 'while' flow control.
1918 (introspect_signals): implement.
1919 (handle_introspect): update.
1921 2004-03-29 Michael Meeks <michael@ximian.com>
1923 * glib/dbus-gobject.c (set_object_property): split out /
1924 re-work, use the property type, and not the message type(!)
1925 (get_object_property): ditto.
1927 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
1928 (dbus_gvalue_marshal): make this code re-usable, needed
1929 for signals too, also on both proxy and server side.
1930 Re-write for more efficiency / readability.
1932 2004-03-29 Michael Meeks <michael@ximian.com>
1934 * dbus/dbus-message.c
1935 (dbus_message_new_error_printf): impl.
1937 * dbus/dbus-connection.c
1938 (dbus_connection_unregister_object_path): fix warning.
1940 * configure.in: fix no-mono-installed situation.
1942 2004-03-27 Havoc Pennington <hp@redhat.com>
1944 Patch from Timo Teräs:
1946 * tools/dbus-send.c (main): if --print-reply, assume type is
1947 method call; support boolean type args
1949 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
1950 bunch of memleak and logic bugs
1952 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1954 * mono/Arguments.cs:
1955 * mono/Introspector.cs:
1957 * mono/InterfaceProxy.cs:
1959 * mono/ProxyBuilder.cs:
1961 Added InterfaceProxy class to avoid building proxies for every
1965 * dbus-message.c (dbus_message_append_args_valist)
1966 (dbus_message_iter_get_object_path)
1967 (dbus_message_iter_get_object_path_array)
1968 (dbus_message_iter_append_object_path)
1969 (dbus_message_iter_append_object_path_array):
1970 Added object_path iter functions to handle OBJECT_PATH arguments
1972 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
1974 First checkin of mono bindings.
1977 Build stuff for the bindings
1978 * dbus-sharp.pc.in: Added for pkgconfig
1980 2004-03-21 Havoc Pennington <hp@redhat.com>
1982 * test/test-service.c (main): remove debug spew
1984 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
1986 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
1989 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
1990 (dbus_message_iter_init_array_iterator)
1991 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
1992 indicate whether the iterator is empty
1994 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
1997 2004-03-19 Havoc Pennington <hp@redhat.com>
1999 * NEWS: 0.21 updates
2001 * configure.in: 0.21
2003 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
2005 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
2006 you don't need pyrex to make dist
2008 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
2011 2004-03-18 Richard Hult <richard@imendio.com>
2013 * dbus/dbus-message.c (dbus_message_get_auto_activation)
2014 (dbus_message_set_auto_activation): Add doxygen docs.
2016 2004-03-16 Richard Hult <richard@imendio.com>
2018 * bus/activation.c: (bus_activation_service_created),
2019 (bus_activation_send_pending_auto_activation_messages),
2020 (bus_activation_activate_service):
2022 * bus/dispatch.c: (bus_dispatch),
2023 (check_nonexistent_service_auto_activation),
2024 (check_service_auto_activated),
2025 (check_segfault_service_auto_activation),
2026 (check_existent_service_auto_activation), (bus_dispatch_test):
2027 * bus/driver.c: (bus_driver_handle_activate_service):
2028 * bus/services.c: (bus_registry_acquire_service):
2029 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
2030 (dbus_message_get_auto_activation):
2031 * dbus/dbus-message.h:
2032 * dbus/dbus-protocol.h: Implement auto-activation.
2034 * doc/dbus-specification.xml: Add auto-activation to the spec.
2036 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
2038 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
2039 fix a bug with CUSTOM types.
2041 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
2042 a unit test for this bug (used to fail).
2044 2004-03-12 Mikael Hallendal <micke@imendio.com>
2047 (babysitter_watch_callback): notify all pending activations waiting for
2048 the same exec that the activation failed.
2049 (bus_activation_activate_service): shortcut the activation if we
2050 already waiting for the same executable to start up.
2052 2004-03-12 Mikael Hallendal <micke@imendio.com>
2055 - Added service file reloading.
2056 Each service files directory is kept in an hash table in
2057 BusActivation and each BusActivationEntry knows what .service-file it
2058 was read from. So when you try to activate a service the bus will
2059 check if it's been updated, removed or if new .service-files has
2061 - Test code at the bottom for the service file reloading.
2062 * bus/test-main.c: (main):
2064 - added service reloading test.
2065 * dbus/dbus-sysdeps.c:
2066 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
2068 2004-03-08 Michael Meeks <michael@ximian.com>
2070 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
2071 bail immediately if disconnected, to avoid busy loop.
2073 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
2074 cleanup cut/paste/inefficiency.
2076 2004-03-01 David Zeuthen <david@fubar.dk>
2078 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
2079 bug where args were used twice. This bug resulted in a segfault
2080 on a Debian/PPC system when starting the messagebus daemon. Include
2081 dbus-sysdeps.h for DBUS_VA_COPY
2083 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
2085 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
2086 appropriate va_copy implementation. From GLib
2088 2004-02-24 Joe Shaw <joe@ximian.com>
2090 * bus/services.c (bus_registry_acquire_service): We need to pass
2091 in the service name to dbus_set_error() to prevent a crash.
2093 2003-12-26 Anders Carlsson <andersca@gnome.org>
2095 * AUTHORS: Reveal my True identity.
2097 2003-12-17 Mikael Hallendal <micke@imendio.com>
2099 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2100 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
2102 2003-12-13 Mikael Hallendal <micke@imendio.com>
2104 * doc/TODO: Added not about better error check of configuration files.
2106 2003-12-02 Richard Hult <richard@imendio.com>
2108 * Update AFL version to 2.0 throughout the source files to reflect
2109 the update that was done a while ago.
2111 2003-12-02 Richard Hult <richard@imendio.com>
2113 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
2114 wrote_dict_key to FALSE on the iter that the dict is appended to,
2115 just like when appending other types. Fixes a bug where a dict
2116 couldn't be put inside a dict.
2117 (dbus_message_iter_append_dict_key): Fix typo in warning message.
2118 (message_iter_test, _dbus_message_test): Add test case for dict
2121 2003-12-01 David Zeuthen <david@fubar.dk>
2123 * python/dbus.py: Add the actual message when calling the reciever
2124 of a signal such that parameters can be inspected. Add the method
2125 remove_signal_receiver
2127 2003-11-26 Mikael Hallendal <micke@imendio.com>
2131 * glib/*.[ch]: Made ref functions return the pointer
2133 2003-11-25 Zack Rusin <zack@kde.org>
2135 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
2137 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
2140 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
2141 the Integrator and to better fit with the server,
2143 2003-11-24 Zack Rusin <zack@kde.org>
2145 * qt/connection.h, qt/connection.cpp: removing initDbus method since
2146 the integrator handles it now
2148 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
2149 since QTimer wasn't really meant to be used the way DBusTimeout is
2151 2003-11-24 Zack Rusin <zack@kde.org>
2153 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
2154 Integrator class which integrates D-BUS with the Qt event loop,
2156 * qt/connection.h, qt/connection.cpp: Move all the code which
2157 was dealing with D-BUS integration to the Integrator class,
2158 and start using Integrator,
2160 2003-11-23 Zack Rusin <zack@kde.org>
2162 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
2165 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
2166 switching namespaces to DBusQt, reworking the class,
2168 * Makefile.cvs: switching dependencies so that it matches KDE
2171 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
2174 2003-11-19 Havoc Pennington <hp@redhat.com>
2178 * configure.in: bump version to 0.20
2180 * configure.in (have_qt): add yet another place to look for qt
2181 (someone hand trolltech a .pc file...)
2183 2003-11-01 Havoc Pennington <hp@redhat.com>
2185 * doc/dbus-specification.xml: add state machine docs on the auth
2186 protocol; just a first draft, I'm sure it's wrong.
2188 2003-10-28 David Zeuthen <david@fubar.dk>
2190 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
2191 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
2193 2003-10-28 Havoc Pennington <hp@redhat.com>
2195 * dbus/dbus-message.c (get_next_field): delete unused function
2197 2003-10-28 Havoc Pennington <hp@redhat.com>
2199 * bus/expirelist.c (do_expiration_with_current_time): detect
2200 failure of the expire_func due to OOM
2202 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
2204 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
2205 NoReply error that's now created by the bus when the service exits
2207 2003-10-28 Havoc Pennington <hp@redhat.com>
2209 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
2210 tests for set_path, set_interface, set_member, etc.
2212 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
2214 * dbus/dbus-message.c (set_string_field): always just delete and
2215 re-append the field; accept NULL for deletion
2216 (re_align_fields_recurse): reimplement
2218 2003-10-26 Havoc Pennington <hp@redhat.com>
2220 * dbus/dbus-connection.c: fix docs to properly describe the
2221 disconnected message
2222 (_dbus_connection_notify_disconnected): remove this function;
2223 we can't synchronously add the disconnected message, we have to
2224 do it after we've queued any remaining real messages
2225 (_dbus_connection_get_dispatch_status_unlocked): queue the
2226 disconnect message only if the transport has finished queueing all
2227 its real messages and is disconnected.
2228 (dbus_connection_disconnect): update the dispatch status here
2230 2003-10-22 Havoc Pennington <hp@redhat.com>
2232 * bus/bus.c (bus_context_check_security_policy): fix up assertion
2234 * bus/connection.c (bus_transaction_send_from_driver): set the
2235 destination to the connection's base service
2237 2003-10-20 Havoc Pennington <hp@redhat.com>
2239 hmm, make check is currently not passing.
2241 * doc/dbus-specification.xml: add requirement that custom type
2242 names follow the same rules as interface names.
2244 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
2245 duplication and allow 'c' to be 'custom'; dict is now 'm' for
2248 * doc/dbus-specification.xml: update type codes to match
2249 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
2250 CUSTOM. Add type OBJECT_PATH to the spec.
2252 2003-10-17 Havoc Pennington <hp@redhat.com>
2254 * bus/driver.c (create_unique_client_name): use "." as separator
2255 in base service names instead of '-'
2257 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
2258 byte at the end of the string
2260 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
2261 optimization macros since string validation seems to be a slow
2264 * doc/dbus-specification.xml: restrict valid
2265 service/interface/member/error names. Add test suite code for the
2268 * dbus/dbus-string.c: limit service/interface/member/error names
2271 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
2272 format arg to verbose spew
2274 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
2275 memory, return instead of g_error
2277 * test/test-service.c (path_message_func): support emitting a
2280 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
2281 activation bus type if DBUS_BUS_ACTIVATION was set; default to
2282 assuming the activation bus was the session bus so that services
2283 started manually will still register.
2284 (init_connections_unlocked): fix so that in OOM situation we get
2285 the same semantics when retrying the function
2287 * test/test-service.c (main): change to use path registration, to
2288 test those codepaths; register with DBUS_BUS_ACTIVATION rather
2289 than DBUS_BUS_SESSION
2291 2003-10-16 Havoc Pennington <hp@redhat.com>
2293 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
2295 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
2296 coverage of the tests
2297 (coverage-report.txt): don't move the .da and .bbg files around
2299 2003-10-16 Havoc Pennington <hp@redhat.com>
2301 * bus/bus.c (struct BusContext): remove struct field I didn't mean
2304 2003-10-16 Havoc Pennington <hp@redhat.com>
2306 * bus/connection.c (bus_pending_reply_expired): either cancel or
2308 (bus_connections_check_reply): use unlink, not remove_link, as we
2309 don't want to free the link; fixes double free mess
2311 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
2312 where no reply was received
2314 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
2317 * bus/signals.c (match_rule_matches): add special cases for the
2318 bus driver, so you can match on sender/destination for it.
2320 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
2321 DBUS_PRINT_BACKTRACE is set
2323 * dbus/dbus-internals.c: add pid to assertion failure messages
2325 * dbus/dbus-connection.c: add message type code to the debug spew
2327 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
2328 sender=foo not service=foo
2330 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
2331 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
2332 DBUS_ACTIVATION_ADDRESS instead
2334 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
2335 DBUS_SYSTEM_BUS_ADDRESS if appropriate
2337 * bus/bus.c (bus_context_new): handle OOM copying bus type into
2340 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
2341 (dbus_message_iter_get_object_path_array): new function (half
2342 finished, disabled for the moment)
2344 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
2345 DBUS_MESSAGE_TYPE_ERROR
2347 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
2348 avoid redirecting stderr to /dev/null
2349 (babysit): close stdin if not doing the "exit_with_session" thing
2351 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
2352 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
2353 stdout/stdin, so things don't get confused
2355 * bus/system.conf.in: fix to allow replies, I modified .conf
2356 instead of .conf.in again.
2358 2003-10-14 David Zeuthen <david@fubar.dk>
2360 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
2361 argtype to arg_type when raising unknown arg type exception.
2362 Changed type list to reflect the changes in dbus-protocol.h so
2363 the bindings actually work.
2365 2003-10-14 Havoc Pennington <hp@redhat.com>
2367 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
2368 to have a bug keeping it from outputting the .da files sometimes
2369 (string_get_string): don't append garbage nul bytes to the string.
2371 2003-10-15 Seth Nickell <seth@gnome.org>
2373 * python/Makefile.am:
2375 Include dbus_h_wrapper.h in the dist tarball.
2377 2003-10-14 Havoc Pennington <hp@redhat.com>
2379 * bus/bus.c (bus_context_check_security_policy): revamp this to
2380 work more sanely with new policy-based requested reply setup
2382 * bus/connection.c (bus_transaction_send_from_driver): set bus
2383 driver messages as no reply
2385 * bus/policy.c (bus_client_policy_check_can_receive): handle a
2386 requested_reply attribute on allow/deny rules
2388 * bus/system.conf: add <allow requested_reply="true"/>
2390 * bus/driver.c (bus_driver_handle_message): fix check for replies
2391 sent to the bus driver, which was backward. How did this ever work
2392 at all though? I think I'm missing something.
2394 * dbus/dbus-message.c (decode_header_data): require error and
2395 method return messages to have a reply serial field to be valid
2396 (_dbus_message_loader_queue_messages): break up this function;
2397 validate that reply serial and plain serial are nonzero;
2398 clean up the OOM/error handling.
2399 (get_uint_field): don't return -1 from this
2400 (dbus_message_create_header): fix signed/unsigned bug
2402 * bus/connection.c (bus_connections_expect_reply): save serial of
2403 the incoming message, not reply serial
2405 2003-10-14 Havoc Pennington <hp@redhat.com>
2407 * bus/connection.c: implement pending reply tracking using
2410 * bus/bus.c (bus_context_check_security_policy): verify that a
2411 reply is pending in order to allow a reply to be sent. Deny
2412 messages of unknown type.
2414 * bus/dbus-daemon-1.1.in: update to mention new resource limits
2416 * bus/bus.c (bus_context_get_max_replies_per_connection): new
2417 (bus_context_get_reply_timeout): new
2419 2003-10-13 Seth Nickell <seth@gnome.org>
2421 * python/Makefile.am:
2423 Pass "make distcheck": remove a couple files from DIST_FILES
2424 that weren't included in the final version.
2426 2003-10-12 Havoc Pennington <hp@pobox.com>
2428 Added test code that 1) starts an actual bus daemon and 2) uses
2429 DBusGProxy; fixed bugs that were revealed by the test. Lots
2430 more testing possible, but this is the basic framework.
2432 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
2433 empty proxy lists from the proxy list hash
2435 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
2436 couple of return_if_fail checks
2438 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
2439 to allocate, so everything is cleared to NULL as it should be.
2441 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
2442 source as data to dbus_connection_set_timeout_functions() as the
2443 timeout functions expected
2445 * test/glib/run-test.sh: add a little script to start up a message
2446 bus and run tests using it
2448 * tools/dbus-launch.1: updates
2450 * tools/dbus-launch.c (main): add --config-file option
2452 * tools/dbus-launch.c (main): remove confusing else if (runprog)
2453 that could never be reached.
2455 * dbus/dbus-message.c (dbus_message_new_method_return)
2456 (dbus_message_new_error, dbus_message_new_signal): set the
2457 no-reply-expected flag on all these. Redundant, but may
2458 as well be consistent.
2460 2003-10-11 Havoc Pennington <hp@pobox.com>
2462 * test/decode-gcov.c (function_solve_graph): make broken block
2463 graph a nonfatal error since it seems to be broken. Need to debug
2466 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
2467 can't just check type > INVALID < LAST anymore
2469 * dbus/dbus-message.c (dbus_message_get_signature): new function
2470 (dbus_message_has_signature): new function
2471 (struct DBusMessage): add signature field (right now it isn't sent
2472 over the wire, just generated on the fly)
2473 (dbus_message_copy): copy the signature, and init strings to
2474 proper length to avoid some reallocs
2475 (dbus_message_iter_init_array_iterator): return void, since it
2477 (dbus_message_iter_init_dict_iterator): return void since it can't fail
2478 (_dbus_message_loader_queue_messages): add silly temporary hack to
2479 fill in message->signature on load
2481 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
2482 characters, so they are relatively human-readable.
2484 2003-10-11 Havoc Pennington <hp@pobox.com>
2486 * dbus/dbus-message.c (_dbus_message_test): add more test
2487 coverage, but #if 0 for now since they uncover a bug
2488 not fixed yet; I think in re_align_field_recurse()
2489 (re_align_field_recurse): add FIXME about broken assertion
2491 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
2493 * bus/connection.c: share a couple code bits with expirelist.c
2495 * bus/expirelist.h, bus/expirelist.c: implement a generic
2496 expire-items-after-N-seconds facility, was going to share between
2497 expiring connections and replies, decided not to use for expiring
2498 connections for now.
2500 * COPYING: include AFL 2.0 (still need to change all the file headers)
2502 2003-10-09 Havoc Pennington <hp@redhat.com>
2504 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
2505 gcc 3.3. Not that we do anything about it yet.
2507 * bus/signals.c (bus_match_rule_parse): impose max length on the
2510 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
2512 2003-10-09 Havoc Pennington <hp@redhat.com>
2514 Make matching rules theoretically work (add parser).
2516 * bus/bus.c (bus_context_check_security_policy): fix up to handle
2517 the case where destination is explicitly specified as bus driver
2518 and someone else is eavesdropping.
2520 * bus/policy.c (bus_client_policy_check_can_receive): fix up
2521 definition of eavesdropping and assertion
2523 * tools/dbus-send.c (main): use dbus_message_type_from_string
2525 * bus/signals.c (bus_match_rule_parse): implement
2527 * dbus/dbus-message.c (dbus_message_type_from_string): new
2529 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
2531 2003-10-02 Havoc Pennington <hp@pobox.com>
2533 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
2534 dbus_gproxy_oneway_call
2536 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
2537 (dbus_server_setup_with_g_main): fix to allow calling them more
2538 than once on the same args
2539 (dbus_bus_get_with_g_main): new function
2541 2003-10-02 Havoc Pennington <hp@redhat.com>
2543 * doc/dbus-tutorial.xml: write some stuff
2545 2003-09-29 Havoc Pennington <hp@pobox.com>
2547 * configure.in: split checks for Doxygen from XML docs, check for
2550 * doc/Makefile.am: XML-ify all the docs, and add a blank
2553 2003-09-29 Havoc Pennington <hp@pobox.com>
2555 * Merge dbus-object-names branch. To see the entire patch
2556 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
2557 it's huuuuge though.
2558 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
2560 2003-09-28 Havoc Pennington <hp@pobox.com>
2562 * HACKING: update to reflect new server
2564 2003-09-26 Seth Nickell <seth@gnome.org>
2567 * python/examples/example-signals.py:
2569 Start implementing some notions of signals. The API
2570 is really terrible, but they sort of work (with the
2571 exception of being able to filter by service, and to
2572 transmit signals *as* a particular service). Need to
2573 figure out how to make messages come from the service
2576 * python/dbus_bindings.pyx.in:
2578 Removed duplicate message_handler callbacks.
2580 2003-09-25 Havoc Pennington <hp@redhat.com>
2582 * bus/session.conf.in: fix my mess
2584 2003-09-25 Havoc Pennington <hp@pobox.com>
2586 * bus/session.conf.in: fix security policy, reported by Seth Nickell
2588 2003-09-25 Seth Nickell <seth@gnome.org>
2590 * python/examples/example-service.py:
2592 Johan notices complete wrong code in example-service, but
2593 completely wrong in a way that works exactly the same (!).
2594 Johan is confused, how could this possibly work? Example
2595 code fails to serve purpose of making things clear.
2598 2003-09-25 Mark McLoughlin <mark@skynet.ie>
2600 * doc/dbus-specification.sgml: don't require header fields
2601 to be 4-byte aligned and specify that fields should be
2602 distinguished from padding by the fact that zero is not
2605 * doc/TODO: remove re-alignment item and add item to doc
2606 the OBJECT_PATH type.
2608 * dbus/dbus-message.c:
2609 (HeaderField): rename the original member to value_offset
2610 and introduce a name_offset member to keep track of where
2611 the field actually begins.
2612 (adjust_field_offsets): remove.
2613 (append_int_field), (append_uint_field),
2614 (append_string_field): don't align the start of the header
2615 field to a 4-byte boundary.
2616 (get_next_field): impl finding the next marhsalled field
2617 after a given field.
2618 (re_align_field_recurse): impl re-aligning a number of
2619 already marshalled fields.
2620 (delete_field): impl deleting a field of any type and
2621 re-aligning any following fields.
2622 (delete_int_or_uint_field), (delete_string_field): remove.
2623 (set_int_field), (set_uint_field): no need to re-check
2624 that we have the correct type for the field.
2625 (set_string_field): ditto and impl re-aligning any
2627 (decode_header_data): update to take into account that
2628 the fields aren't 4-byte aligned any more and the new
2629 way to distinguish padding from header fields. Also,
2630 don't exit when there is too much header padding.
2631 (process_test_subdir): print the directory.
2632 (_dbus_message_test): add test to make sure a following
2633 field is re-aligned correctly after field deletion.
2635 * dbus/dbus-string.[ch]:
2636 (_dbus_string_insert_bytes): rename from insert_byte and
2637 allow the insert of multiple bytes.
2638 (_dbus_string_test): test inserting multiple bytes.
2640 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
2641 warning note to docs about having to re-align any
2642 marshalled values following the string.
2644 * dbus/dbus-message-builder.c:
2645 (append_string_field), (_dbus_message_data_load):
2646 don't align the header field.
2648 * dbus/dbus-auth.c: (process_test_subdir): print the
2651 * test/break-loader.c: (randomly_add_one_byte): upd. for
2654 * test/data/invalid-messages/bad-header-field-alignment.message:
2657 * test/data/valid-messages/unknown-header-field.message: shove
2658 a dict in the unknown field.
2660 2003-09-25 Seth Nickell <seth@gnome.org>
2663 * python/dbus_bindings.pyx.in:
2665 Handle return values.
2667 * python/examples/example-client.py:
2668 * python/examples/example-service.py:
2670 Pass back return values from the service to the client.
2672 2003-09-24 Seth Nickell <seth@gnome.org>
2676 Connect Object methods (when you are sharing an object) up... pass
2677 in a list of methods to be shared. Sharing all the methods just
2678 worked out too weird. You can now create nice Services over the
2681 * python/dbus_bindings.pyx.in:
2683 Keep references to user_data tuples passed into C functions so
2684 Python doesn't garbage collect on us.
2686 Implement MethodReturn and Error subclasses of Message for creating
2687 DBusMessage's of those types.
2689 * python/examples/example-client.py:
2690 * python/examples/example-service.py:
2692 Simple example code showing both how create DBus services and objects,
2693 and how to use them.
2695 2003-09-23 Havoc Pennington <hp@pobox.com>
2697 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
2699 2003-09-23 Havoc Pennington <hp@redhat.com>
2701 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
2702 (dbus_gproxy_disconnect_signal): implement
2703 (dbus_gproxy_manager_remove_signal_match): implement
2704 (dbus_gproxy_manager_add_signal_match): implement
2705 (dbus_gproxy_oneway_call): implement
2707 2003-09-23 Havoc Pennington <hp@pobox.com>
2709 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
2710 subclass. This means dropping the transparent thread safety of the
2711 proxy; you now need a separate proxy per-thread, or your own
2712 locking on the proxy. Probably right anyway.
2713 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
2715 2003-09-22 Havoc Pennington <hp@redhat.com>
2717 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
2719 2003-09-21 Seth Nickell <seth@gnome.org>
2721 First checkin of the Python bindings.
2723 * python/.cvsignore:
2724 * python/Makefile.am:
2725 * python/dbus_bindings.pyx.in:
2726 * python/dbus_h_wrapper.h:
2728 Pieces for Pyrex to operate on, building a dbus_bindings.so
2729 python module for low-level access to the DBus APIs.
2733 High-level Python module for accessing DBus objects.
2738 Build stuff for the python bindings.
2742 Extra macro needed for finding the Python C header files.
2744 2003-09-21 Havoc Pennington <hp@pobox.com>
2746 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
2747 implementing the proxy manager, didn't get very far.
2749 * dbus/dbus-bus.c (dbus_bus_add_match): new
2750 (dbus_bus_remove_match): new
2752 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
2753 path_name argument; adjust the other not-yet-implemented
2754 gproxy constructors to be what I think they should be.
2756 2003-09-21 Havoc Pennington <hp@pobox.com>
2758 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
2759 by default for message bus connections.
2761 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
2762 exit_on_disconnect flag is set and we process the disconnected
2764 (dbus_connection_set_exit_on_disconnect): new function
2766 2003-09-21 Havoc Pennington <hp@pobox.com>
2768 Get matching rules mostly working in the bus; only actually
2769 parsing the rule text remains. However, the client side of
2770 "signal connections" hasn't been started, this patch is only the
2773 * dbus/dispatch.c: fix for the matching rules changes
2775 * bus/driver.c (bus_driver_handle_remove_match)
2776 (bus_driver_handle_add_match): send an ack reply from these
2779 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
2780 arguments, reported by Seth Nickell
2782 * bus/config-parser.c (append_rule_from_element): support
2783 eavesdrop=true|false attribute on policies so match rules
2784 can be prevented from snooping on the system bus.
2786 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
2787 and "destination" in attribute names; fix some docs bugs;
2788 add eavesdrop=true|false attribute
2790 * bus/driver.c (bus_driver_handle_add_match)
2791 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
2794 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
2795 rid of broadcast service concept, signals are just always broadcast
2797 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
2798 mostly implement matching rules stuff (currently only exposed as signal
2801 2003-09-21 Mark McLoughlin <mark@skynet.ie>
2803 * doc/dbus-specification.sgml: Change the header field name
2804 to be an enum and update the rest of the spec to reference
2805 the fields using the conventinal name.
2807 * dbus/dbus-protocol.h: update to reflect the spec.
2809 * doc/TODO: add item to remove the 4 byte alignment requirement.
2811 * dbus/dbus-message.c: Remove the code to generalise the
2812 header/body length and serial number header fields as named
2813 header fields so we can reference field names using the
2815 (append_int_field), (append_uint_field), (append_string_field):
2816 Append the field name as a byte rather than four chars.
2817 (delete_int_or_uint_field), (delete_string_field): reflect the
2818 fact that the field name and typecode now occupy 4 bytes instead
2820 (decode_string_field), (decode_header_data): update to reflect
2821 protocol changes and move the field specific encoding from
2822 decode_string_field() back into decode_header_data().
2824 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
2825 Add utility to aid debugging.
2827 * dbus/dbus-message-builder.c:
2828 (append_string_field), (_dbus_message_data_load): Update to
2829 reflect protocol changes; Change the FIELD_NAME directive
2830 to HEADER_FIELD and allow it to take the field's conventional
2831 name rather than the actual value.
2833 * test/data/*/*.message: Update to use HEADER_FIELD instead
2834 of FIELD_NAME; Always align the header on an 8 byte boundary
2835 *before* updating the header length.
2837 2003-09-15 Havoc Pennington <hp@pobox.com>
2839 * dbus/dbus-pending-call.c: add the get/set object data
2840 boilerplate as for DBusConnection, etc. Use generic object data
2841 for the notify callback.
2843 * glib/dbus-gparser.c (parse_node): parse child nodes
2845 * tools/dbus-viewer.c: more hacking on the dbus-viewer
2847 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
2848 contain functions shared between the convenience lib and the
2851 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
2852 -export-symbols-regex to the GLib library
2854 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
2855 fix the locking in here, and add a default handler for
2856 Introspect() that just returns sub-nodes.
2858 2003-09-14 Havoc Pennington <hp@pobox.com>
2860 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
2861 rather than gfoo consistent
2863 * glib/dbus-gproxy.h: delete for now, move contents to
2864 dbus-glib.h, because the include files don't work right since we
2865 aren't in the dbus/ subdir.
2867 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
2868 (dbus_gproxy_end_call): finish
2869 (dbus_gproxy_begin_call): finish
2871 * glib/dbus-gmain.c (dbus_set_g_error): new
2873 * glib/dbus-gobject.c (handle_introspect): include information
2874 about child nodes in the introspection
2876 * dbus/dbus-connection.c (dbus_connection_list_registered): new
2877 function to help in implementation of introspection
2879 * dbus/dbus-object-tree.c
2880 (_dbus_object_tree_list_registered_and_unlock): new function
2882 2003-09-12 Havoc Pennington <hp@pobox.com>
2884 * glib/dbus-gidl.h: add common base class for all the foo_info
2887 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
2890 * test/Makefile.am: try test srcdir -ef . in addition to test
2891 srcdir = ., one of them should work (yeah lame)
2893 * glib/Makefile.am: build the "idl" parser stuff as a convenience
2896 * glib/dbus-gparser.h: make description_load routines return
2897 NodeInfo* not Parser*
2899 * Makefile.am (SUBDIRS): build test dir after all library dirs
2901 * configure.in: add GTK+ detection
2903 2003-09-07 Havoc Pennington <hp@pobox.com>
2905 * Make Doxygen contented.
2907 2003-09-07 Havoc Pennington <hp@pobox.com>
2909 * doc/dbus-specification.sgml: more updates
2911 2003-09-06 Havoc Pennington <hp@pobox.com>
2913 * doc/dbus-specification.sgml: partial updates
2915 * bus/dbus-daemon-1.1.in: fix the config file docs for the
2916 zillionth time; hopefully I edited the right file this time.
2918 * bus/config-parser.c (append_rule_from_element): support
2919 send_type, send_path, receive_type, receive_path
2921 * bus/policy.c: add message type and path to the list of things
2922 that can be "firewalled"
2924 2003-09-06 Havoc Pennington <hp@pobox.com>
2926 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
2927 (dbus_connection_register_object_path): make this not handle
2928 messages to paths below the given path
2930 2003-09-03 Havoc Pennington <hp@pobox.com>
2932 * test/glib/Makefile.am: add this with random glib-linked test
2935 * glib/Makefile.am: remove the random test programs from here,
2936 leave only the unit tests
2938 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
2939 uscore/javacaps conversion, and fix
2940 (get_object_property, set_object_property): change to .NET
2941 convention for mapping props to methods, set_FooBar/get_FooBar,
2942 since one language has such a convention we may as well copy it.
2943 Plus real methods in either getFooBar or get_foo_bar style won't
2944 collide with this convention.
2946 2003-09-01 Havoc Pennington <hp@pobox.com>
2948 * glib/dbus-gparser.c: implement
2950 * glib/dbus-gobject.c: start implementing skeletons support
2952 * configure.in: when disabling checks/assert, also define
2953 G_DISABLE_ASSERT and G_DISABLE_CHECKS
2955 2003-09-01 Havoc Pennington <hp@pobox.com>
2957 * glib/Makefile.am: rearrange a bunch of files and get "make
2958 check" framework set up
2960 2003-08-31 Havoc Pennington <hp@pobox.com>
2962 * fix build with --disable-tests
2964 2003-08-30 Havoc Pennington <hp@pobox.com>
2966 * dbus/dbus-connection.c: purge DBusMessageHandler
2968 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
2969 use callbacks everywhere
2971 2003-08-30 Havoc Pennington <hp@pobox.com>
2973 * test/data/valid-config-files/system.d/test.conf: change to
2974 root for the user so warnings don't get printed
2976 * dbus/dbus-message.c: add dbus_message_get_path,
2977 dbus_message_set_path
2979 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
2980 dispatching to a path
2982 * dbus/dbus-string.c (_dbus_string_validate_path): add
2984 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
2985 (_dbus_marshal_object_path): implement
2987 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
2988 to contain the path to the target object
2989 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
2990 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
2992 2003-08-30 Havoc Pennington <hp@pobox.com>
2994 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
2996 2003-08-29 Havoc Pennington <hp@pobox.com>
2998 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
3000 (struct DBusObjectSubtree): shrink this
3001 a lot, since we may have a lot of them
3002 (_dbus_object_tree_free_all_unlocked): implement
3003 (_dbus_object_tree_dispatch_and_unlock): implement
3005 2003-08-29 Havoc Pennington <hp@pobox.com>
3007 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
3009 2003-08-28 Havoc Pennington <hp@pobox.com>
3013 * dbus/dbus-connection.c: port to no ObjectID, create a
3014 DBusObjectTree, rename ObjectTree to ObjectPath in public API
3016 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
3017 everything except UnregisterFunction and MessageFunction
3019 * dbus/dbus-marshal.c: port away from DBusObjectID,
3020 add DBUS_TYPE_OBJECT_PATH
3022 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
3023 dbus/dbus-objectid.[hc]: remove these, we are moving to
3024 path-based object IDs
3026 2003-08-25 Havoc Pennington <hp@pobox.com>
3028 Just noticed that dbus_message_test is hosed, I wonder when I
3029 broke that. I thought make check was passing earlier...
3031 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
3032 container tree, will replace most of dbus-object-registry
3034 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
3037 2003-08-19 Havoc Pennington <hp@pobox.com>
3039 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
3040 (dbus_message_is_error): fix this function
3042 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
3045 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
3046 reflect clarified man page
3047 (bus_client_policy_check_can_send): ditto
3049 * bus/session.conf.in: fixup
3051 * bus/system.conf.in: fixup
3053 2003-08-18 Havoc Pennington <hp@redhat.com>
3055 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
3057 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
3058 dumb bug created earlier (wrong order of args to
3059 decode_header_data())
3061 * tools/dbus-send.c: port
3063 * tools/dbus-print-message.c (print_message): port
3065 * test/data/*messages: port all messages over
3067 * dbus/dbus-message-builder.c: support including
3070 * bus/driver.c: port over
3072 * bus/dispatch.c: port over to new stuff
3074 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3075 rename disconnect signal to "Disconnected"
3077 2003-08-17 Havoc Pennington <hp@pobox.com>
3079 This doesn't compile yet, but syncing up so I can hack on it from
3080 work. What are branches for if not broken code? ;-)
3082 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
3083 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
3084 DBUS_HEADER_FIELD_ERROR_NAME
3086 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
3087 for the interface+member pairs
3088 (string_hash): change to use g_str_hash algorithm
3089 (find_direct_function, find_string_function): refactor these to
3092 * dbus/dbus-message.c: port all of this over to support
3093 interface/member fields instead of name field
3095 * dbus/dbus-object-registry.c: port over
3097 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
3098 from _dbus_string_validate_name
3100 * bus/dbus-daemon-1.1: change file format for the
3101 <deny>/<allow> stuff to match new message naming scheme
3103 * bus/policy.c: port over
3105 * bus/config-parser.c: parse new format
3107 2003-08-16 Havoc Pennington <hp@pobox.com>
3109 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
3112 * glib/dbus-gproxy.c: some hacking
3114 2003-08-15 Havoc Pennington <hp@redhat.com>
3116 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
3118 * dbus/dbus-connection.c
3119 (dbus_connection_send_with_reply_and_block): factor out internals;
3120 change to convert any error replies to DBusError instead of
3121 returning them as a message
3123 2003-08-15 Havoc Pennington <hp@pobox.com>
3125 * dbus/dbus-connection.c,
3126 dbus/dbus-pending-call.c: Finish the pending call stuff
3128 2003-08-14 Havoc Pennington <hp@redhat.com>
3130 * dbus/dbus-pending-call.c: start on new object that will replace
3131 DBusMessageHandler and ReplyHandlerData for tracking outstanding
3134 * dbus/dbus-gproxy.c: start on proxy object used to communicate
3135 with remote interfaces
3137 * dbus/dbus-gidl.c: do the boring boilerplate in here
3139 2003-08-12 Havoc Pennington <hp@pobox.com>
3141 * bus/dispatch.c (bus_dispatch): make this return proper
3142 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
3144 * dbus/dbus-errors.c (dbus_set_error): use
3145 _dbus_string_append_printf_valist
3147 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
3148 (_dbus_string_append_printf): new
3150 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
3153 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
3154 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
3155 message is unhandled.
3157 2003-08-11 Havoc Pennington <hp@pobox.com>
3159 * bus/test.c (client_disconnect_handler): change to return
3160 HANDLED (would have been REMOVE_MESSAGE)
3162 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
3163 HANDLED/NOT_YET_HANDLED instead of
3164 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
3167 2003-08-10 Havoc Pennington <hp@pobox.com>
3169 * tools/dbus-send.c (main): add --type argument, for now
3170 supporting only method_call and signal types.
3172 * tools/dbus-print-message.c: print message type
3174 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
3175 init connection->objects
3177 * doc/dbus-specification.sgml: fix sgml
3179 * bus/*.c: port over to object-instance API changes
3181 * test/test-service.c: ditto
3183 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
3184 name, we will have to fix up the rest of the code to also handle
3186 (dbus_message_new): generic message-creation call
3187 (set_string_field): allow appending name field
3189 2003-08-06 Havoc Pennington <hp@pobox.com>
3191 * dbus/dbus-object-registry.c: implement signal connection
3194 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
3196 * dbus/dbus-internals.c (_dbus_memdup): new function
3198 2003-08-02 Havoc Pennington <hp@pobox.com>
3200 * dbus/dbus-message.c (dbus_message_get_no_reply)
3201 (dbus_message_set_no_reply): add these and remove
3202 set_is_error/get_is_error
3204 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
3205 remove the ERROR flag, since there's now an ERROR type
3207 2003-08-01 Havoc Pennington <hp@pobox.com>
3209 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
3212 * dbus/dbus-message.c (dbus_message_get_type): new function
3214 * doc/dbus-specification.sgml: add "type" byte to messages
3216 2003-08-01 Havoc Pennington <hp@pobox.com>
3218 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
3219 a message type enum to distinguish kinds of message
3220 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
3221 that need not be replied to
3223 2003-08-01 Havoc Pennington <hp@pobox.com>
3225 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
3226 (unpack_8_octets): fix no-64-bit-int bug
3228 * dbus/dbus-object-registry.c (validate_id): validate the
3229 connection ID bits, not just the instance ID.
3231 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
3232 the connection-global 33 bits of the object ID
3234 * dbus/dbus-object-registry.c (info_from_entry): fill in
3235 object ID in the new way
3237 * dbus/dbus-objectid.h: rather than high/low bits, specifically
3238 define server/client/instance bits.
3240 2003-07-30 Havoc Pennington <hp@pobox.com>
3242 * dbus/dbus-connection.c (dbus_connection_register_object): fix
3245 2003-07-13 Havoc Pennington <hp@pobox.com>
3247 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
3248 fields to DBusObjectVTable and DBusObjectInfo
3250 2003-07-12 Havoc Pennington <hp@pobox.com>
3252 * dbus/dbus-object-registry.c: implement unit test,
3253 fix bugs discovered in process
3255 * dbus/dbus-connection.c: remove handler_table and
3256 register_handler(), add DBusObjectRegistry usage
3258 * dbus/dbus-objectid.c (dbus_object_id_is_null)
3259 (dbus_object_id_set_null): new functions
3261 2003-07-08 Havoc Pennington <hp@pobox.com>
3263 * dbus/dbus-object.c: implement some of this
3265 * dbus/dbus-object-registry.c
3266 (_dbus_object_registry_add_and_unlock): fill in the object_id out
3268 (_dbus_object_registry_new): handle OOM
3270 2003-07-08 Havoc Pennington <hp@pobox.com>
3272 * dbus/dbus-object.h: sketch out an API for registering objects
3273 with a connection, that allows us to use as little as 24 bytes
3274 per object and lets application code represent an object in
3275 any conceivable way.
3277 * dbus/dbus-object-registry.c: implement the hard bits of the
3278 DBusConnection aspect of object API. Not yet wired up.
3280 2003-07-06 Havoc Pennington <hp@pobox.com>
3282 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
3283 (_dbus_marshal_object_id): new
3284 (_dbus_demarshal_object_id): new
3285 (_dbus_marshal_get_arg_end_pos): support object ID type, and
3286 consolidate identical switch cases. Don't conditionalize handling
3287 of DBUS_TYPE_UINT64, need to handle the type always.
3288 (_dbus_marshal_validate_arg): consolidate identical cases, and
3289 handle DBUS_TYPE_OBJECT_ID
3291 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
3293 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
3295 2003-09-28 Havoc Pennington <hp@pobox.com>
3299 2003-09-28 Havoc Pennington <hp@pobox.com>
3301 * doc/Makefile.am (dbus-specification.html): testing a funky hack
3302 to work with Debian db2html
3304 2003-09-28 Havoc Pennington <hp@pobox.com>
3306 * configure.in: 0.13
3308 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
3309 stylesheet-images for benefit of Debian
3311 Change back to using filesystem-linked sockets for the system
3312 bus, so only root can create the default system bus address.
3314 * bus/system.conf.in: change to use
3315 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3317 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
3320 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
3321 here, and AC_DEFINE DBUS_SYSTEM_PATH
3323 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3326 * doc/busconfig.dtd:
3329 2003-08-09 Anders Carlsson <andersca@codefactory.se>
3331 * doc/dbus-specification.sgml:
3332 Add activation reply values.
3334 2003-08-05 Havoc Pennington <hp@redhat.com>
3336 * configure.in: 0.12
3338 2003-08-05 Anders Carlsson <andersca@codefactory.se>
3340 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
3341 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
3342 (add_watch), (remove_watch), (create_source):
3343 Refcount fds, fixes some reentrancy issues.
3345 2003-07-30 Havoc Pennington <hp@redhat.com>
3347 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
3348 bus address to be abstract if we have abstract sockets
3352 2003-07-28 Havoc Pennington <hp@redhat.com>
3354 * bus/messagebus.in: fix to avoid processname/servicename
3355 confusion, from Michael Kearey
3356 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
3358 2003-07-23 Havoc Pennington <hp@pobox.com>
3360 * dbus/dbus-message.c (dbus_message_iter_get_named):
3361 fix from Andy Hanton to remove broken "+1"
3363 2003-07-16 Havoc Pennington <hp@pobox.com>
3365 * tools/dbus-launch.c (babysit): close stdout/stderr in the
3366 babysitter process, as suggested by Thomas Leonard, so
3367 an "eval `dbus-launch --exit-with-session`" will actually
3370 2003-07-16 Havoc Pennington <hp@pobox.com>
3372 * configure.in: print out EXPANDED_* variables in the summary at
3373 the end; clean up the code that computes EXPANDED_ variables and
3374 get the ones using exec_prefix right. Should make things work
3375 when you build without --prefix
3377 2003-06-29 Havoc Pennington <hp@pobox.com>
3379 * mono/Test.cs (class Test): fire up a main loop and run it
3381 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
3382 done once, the app has to do it
3384 2003-06-26 Havoc Pennington <hp@pobox.com>
3386 * mono/Connection.cs: set up connection with the glib main loop
3388 2003-07-01 Havoc Pennington <hp@redhat.com>
3390 * doc/dbus-specification.sgml: clarify the format of a type code,
3391 change suggested by Jim Blandy
3393 2003-06-29 Miloslav Trmac <mitr@volny.cz>
3396 * tools/Makefile.am: Don't assume srcdir == builddir.
3398 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
3399 the allocated block.
3400 (_dbus_memory_test): New function.
3401 * dbus/dbus-test.h: Add _dbus_memory_test ().
3402 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
3404 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
3406 (dbus_message_new): Remove obsolete @todo.
3408 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
3409 (_dbus_marshal_set_uint64): Fix comment.
3411 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
3412 hardcode FIELD_REPLY_SERIAL.
3414 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
3415 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
3417 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
3418 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
3420 2003-06-24 Havoc Pennington <hp@pobox.com>
3422 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
3424 2003-06-23 Anders Carlsson <andersca@codefactory.se>
3430 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
3431 * gcj/org/.cvsignore:
3432 * gcj/org/Makefile.am:
3433 * gcj/org/freedesktop/.cvsignore:
3434 * gcj/org/freedesktop/Makefile.am:
3435 * gcj/org/freedesktop/dbus/.cvsignore:
3436 * gcj/org/freedesktop/dbus/Makefile.am:
3437 * gcj/org/freedesktop/dbus/Message.java: (Message),
3439 * gcj/org/freedesktop/dbus/natMessage.cc:
3440 Fix the build system.
3442 2003-06-22 Havoc Pennington <hp@pobox.com>
3444 * mono/Connection.cs: add more bindings
3446 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
3449 2003-06-22 Havoc Pennington <hp@pobox.com>
3451 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
3452 Start wrapping more stuff.
3454 2003-06-22 Havoc Pennington <hp@pobox.com>
3456 * mono/Message.cs: implement Message.Wrap() that ensures we only
3457 have a single C# wrapper per DBusMessage, assuming it works which
3458 it probably doesn't.
3460 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
3461 (dbus_message_free_data_slot): new
3462 (dbus_message_set_data): new
3463 (dbus_message_get_data): new
3465 2003-06-22 Havoc Pennington <hp@pobox.com>
3467 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
3468 (_dbus_data_slot_allocator_alloc): rework these to keep a
3469 reference count on each slot and automatically manage a global
3470 slot ID variable passed in by address
3472 * bus/bus.c: convert to new dataslot API
3474 * dbus/dbus-bus.c: convert to new dataslot API
3476 * dbus/dbus-connection.c: convert to new dataslot API
3478 * dbus/dbus-server.c: convert to new dataslot API
3480 * glib/dbus-gmain.c: ditto
3484 * bus/connection.c: ditto
3486 2003-06-22 Anders Carlsson <andersca@codefactory.se>
3488 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
3489 after the gcj checks so that the correct configuration tags
3490 will be added to libtool.
3492 * dbus-glib-1.pc.in: No need to specify any includes since
3493 dbus-1.pc.in has those.
3495 2003-06-22 Havoc Pennington <hp@pobox.com>
3497 * mono/*, gcj/*, configure.in, Makefile.am:
3498 Check in makefiles and subdirs for mono and gcj bindings.
3499 Neither binding actually exists, just trying to get through
3500 all the build and other boring bits.
3502 2003-06-21 Philip Blundell <philb@gnu.org>
3504 * tools/dbus-monitor.1: Updated.
3506 * tools/dbus-send.1: Likewise.
3508 2003-06-20 Anders Carlsson <andersca@codefactory.se>
3510 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
3511 for hangup and error after checking read so we won't discard
3512 pending data if both hangup and read are set.
3514 2003-06-19 Philip Blundell <philb@gnu.org>
3516 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
3518 * tools/dbus-send.c: Accept both --system and --session.
3520 * tools/dbus-monitor.c: Same here.
3522 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3524 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
3525 from C++ (Patch by Miloslav Trmac).
3527 2003-06-15 Joe Shaw <joe@assbarn.com>
3529 * configure.in: Check for socklen_t.
3531 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
3533 * test/test-segfault.c: Add #include <sys/time.h>
3535 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
3536 dbus-launch needs it.
3538 2003-06-09 Havoc Pennington <hp@redhat.com>
3540 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
3541 SUN_LEN, it breaks abstract socket usage
3543 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
3546 2003-06-04 Havoc Pennington <hp@pobox.com>
3548 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
3549 using unix:abstract=/foo, and when listening in a tmpdir
3550 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
3552 * dbus/dbus-transport.c (_dbus_transport_open): support
3555 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3556 support abstract sockets
3558 * dbus/dbus-transport-unix.c
3559 (_dbus_transport_new_for_domain_socket): support abstract sockets
3561 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
3562 toggle as an argument, implement abstract namespace support
3563 (_dbus_listen_unix_socket): ditto
3565 * configure.in: add --enable-abstract-sockets and implement
3566 a configure check for autodetection of the right value.
3568 2003-06-01 Havoc Pennington <hp@pobox.com>
3570 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
3571 in /tmp (though on Linux this will end up being useless,
3572 when we add abstract namespace support)
3574 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
3577 2003-05-28 Colin Walters <walters@verbum.org>
3579 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
3581 2003-05-18 Anders Carlsson <andersca@codefactory.se>
3583 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
3585 2003-05-17 Colin Walters <walters@gnu.org>
3587 * tools/dbus-send.c: Don't exit with an error code if --help was
3588 passed. Default to using the session bus instead of the system
3591 * tools/dbus-launch.c: Ditto.
3593 * tools/dbus-monitor.c: Ditto.
3595 * tools/dbus-send.1: Update with new arguments.
3597 * tools/dbus-launch.c: Emit code to export variables. New
3598 arguments -s and -c to specify shell syntax, and a bit of code to
3599 autodetect syntax. Also, allow specifying a program to run.
3601 * tools/dbus-launch.1: Update with new arguments.
3603 * tools/dbus-send.1: Ditto.
3605 * tools/dbus-monitor.1: Ditto.
3607 2003-05-17 Havoc Pennington <hp@pobox.com>
3609 * bus/config-parser.c (merge_included): merge in policies from
3610 child configuration file.
3612 * bus/policy.c (bus_policy_merge): function to merge two policies
3615 2003-05-16 Havoc Pennington <hp@redhat.com>
3617 * dbus/dbus-connection.c: disable verbose lock spew
3619 * tools/dbus-send.c: add --print-reply command line option
3621 * tools/dbus-print-message.h (print_message): new util function
3622 shared by dbus-send and dbus-monitor
3624 * tools/dbus-monitor.c (handler_func): exit on disconnect
3626 * dbus/dbus-transport-unix.c (do_reading): if the transport is
3627 disconnected, don't try to use the read_watch
3629 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
3630 so we can find this bug more easily
3632 2003-05-16 Havoc Pennington <hp@redhat.com>
3634 * bus/policy.c (free_rule_list_func): avoid a crash when passed
3635 NULL as DBusHashTable is annoyingly likely to do.
3637 2003-05-16 Colin Walters <walters@verbum.org>
3639 * tools/dbus-monitor.c: Add --session argument and usage()
3642 * tools/dbus-monitor.1: Update with new --session arg.
3644 * bus/Makefile.am (install-data-hook): Create
3645 $(libdir)/dbus-1.0/services so that the session bus is happy.
3647 2003-05-15 Havoc Pennington <hp@redhat.com>
3649 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
3650 on non-x86. ifdef's are evil.
3652 2003-05-15 Havoc Pennington <hp@redhat.com>
3654 * configure.in: 0.11
3658 * bus/Makefile.am (initddir): apparently we are supposed to put
3659 init scripts in /etc/rc.d/init.d not /etc/init.d
3661 * bus/Makefile.am: remove the "you must --enable-tests to make
3662 check" as it broke distcheck
3664 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
3666 2003-05-13 James Willcox <jwillcox@gnome.org>
3669 * bus/activation.c: (bus_activation_service_created),
3670 (bus_activation_activate_service):
3671 * bus/driver.c: (bus_driver_send_service_deleted),
3672 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3673 (bus_driver_send_service_acquired),
3674 (bus_driver_send_welcome_message),
3675 (bus_driver_handle_list_services):
3676 * bus/session.conf.in:
3677 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
3678 (dbus_bus_service_exists), (dbus_bus_activate_service):
3681 Add some convenience API which lets you activate a service, and did a
3682 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
3683 and dbus_message_get_args()
3685 2003-05-11 Havoc Pennington <hp@pobox.com>
3687 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
3688 calling _dbus_marshal_validate_arg() for every byte in a byte
3691 * dbus/dbus-message-handler.c: use atomic reference counting to
3692 reduce number of locks slightly; the global lock in here sucks
3694 * dbus/dbus-connection.c
3695 (_dbus_connection_update_dispatch_status_and_unlock): variant of
3696 update_dispatch_status that can be called with lock held; then use
3697 in a couple places to reduce locking/unlocking
3698 (dbus_connection_send): hold the lock over the whole function
3699 instead of acquiring it twice.
3701 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
3703 * bus/connection.c (bus_connections_setup_connection): fix access
3704 to already-freed memory.
3706 * dbus/dbus-connection.c: keep a little cache of linked list
3707 nodes, to avoid using the global linked list alloc lock in the
3708 normal send-message case. Instead we just use the connection lock
3709 that we already have to take.
3711 * dbus/dbus-list.c (_dbus_list_find_last): new function
3713 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
3714 change to use a struct for the atomic type; fix docs,
3715 they return value before increment, not after increment.
3717 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
3718 (_dbus_string_append_8_aligned): new functions to try to
3719 microoptimize this operation.
3720 (reallocate_for_length): break this out of set_length(), to
3721 improve profile info, and also so we can consider inlining the
3724 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
3725 strings with some preallocation, cuts down on our calls to realloc
3726 a fair bit. Though if we can get the "move entire string to empty
3727 string" optimization below to kick in here, it would be better.
3729 * dbus/dbus-string.c (_dbus_string_move): just call
3730 _dbus_string_move_len
3731 (_dbus_string_move_len): add a special case for moving
3732 an entire string into an empty string; we can just
3733 swap the string data instead of doing any reallocs.
3734 (_dbus_string_init_preallocated): new function
3736 2003-05-11 Havoc Pennington <hp@pobox.com>
3738 Write a "test-profile" that does echo client-server with threads;
3739 profile reveals lock contention, memcpy/realloc of buffers, and
3740 UTF-8 validation as hot spots. 20% of lock contention eliminated
3741 with dbus_atomic_inc/dec implementation on x86. Much remaining
3742 contention is global mempool locks for GList and DBusList.
3744 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
3747 * dbus/dbus-connection.c (struct DBusConnection): use
3748 dbus_atomic_t for the reference count
3750 * dbus/dbus-message.c (struct DBusMessage): declare
3751 dbus_atomic_t values as volatile
3753 * configure.in: code to detect ability to use atomic integer
3754 operations in assembly, from GLib patch
3756 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
3757 time, tired of it being wrong in threads and forked processes
3759 * glib/test-profile.c: a little program to bounce messages back
3760 and forth between threads and eat CPU
3762 * dbus/dbus-connection.c: add debug spew macros for debugging
3763 thread locks; include config.h at top; fix deadlock in
3764 dbus_connection_flush()
3766 2003-05-08 Havoc Pennington <hp@pobox.com>
3768 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
3769 data from getting written, and there wasn't a good reason to
3772 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
3773 dbus_verbose lines in test coverage
3774 (main): add list of functions sorted by # of untested blocks
3775 to the coverage report
3777 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
3779 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
3781 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
3782 extend test coverage
3784 * test/data/auth/cancel.auth-script: test canceling an
3787 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
3788 aren't used. in CVS history if we end up needing them.
3790 2003-05-04 Havoc Pennington <hp@pobox.com>
3792 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
3795 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
3796 function, which assumed length was in # of strings, not bytes
3798 * dbus/dbus-message.c (_dbus_message_test): add tests for some
3801 * dbus/dbus-connection.c
3802 (_dbus_connection_queue_received_message): disable function for
3803 now, we are only using it in test mode
3805 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
3806 remove a mistaken FIXME
3808 2003-05-04 Havoc Pennington <hp@pobox.com>
3810 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
3811 unlock mutex on successful return, patch from Anders Gustafsson
3813 2003-05-04 Havoc Pennington <hp@pobox.com>
3815 * dbus-glib-1.pc.in (Requires): fix dependencies, from
3818 2003-05-04 Havoc Pennington <hp@pobox.com>
3820 * tools/dbus-launch.c: implement
3822 * bus/main.c (main), bus/bus.c (bus_context_new):
3823 implement --print-pid and --fork
3825 2003-05-03 Havoc Pennington <hp@redhat.com>
3827 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
3828 the address had no value, and add to test suite. Fix and
3829 regression test from Miloslav Trmac
3831 2003-05-03 Havoc Pennington <hp@pobox.com>
3833 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
3834 watch is invalid when handled
3836 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
3837 dbus-launch utility to launch the bus from a shell script. Didn't
3838 actually implement dbus-launch yet, it's just a placeholder still.
3840 2003-05-03 Havoc Pennington <hp@pobox.com>
3842 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
3843 daemon; also documents daemon config file, so replaces
3844 doc/config-file.txt. Corrected some stuff from config-file.txt in
3845 the process of moving it.
3847 2003-05-03 Havoc Pennington <hp@pobox.com>
3849 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
3852 2003-05-03 Colin Walters <walters@verbum.org>
3854 * dbus/dbus-sysdeps.c (fill_user_info): Test against
3855 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
3857 * Makefile.am: Update to use new .pc versioning scheme.
3859 2003-05-02 Havoc Pennington <hp@redhat.com>
3861 * bus/system.conf.in: allow send/receive to/from message bus
3864 2003-04-30 Havoc Pennington <hp@redhat.com>
3866 * configure.in: print a note when building with unit tests and
3869 2003-04-30 Havoc Pennington <hp@redhat.com>
3871 * Makefile.am: add a check-local that complains if you didn't
3872 configure with --enable-tests
3874 2003-04-29 Havoc Pennington <hp@redhat.com>
3876 * glib/dbus-gmain.c: docs cleanups
3878 * dbus/dbus-types.h: add docs on int64 types
3880 * dbus/dbus-memory.c: fix docs to avoid putting private API in
3881 public API docs section
3883 2003-04-29 Havoc Pennington <hp@redhat.com>
3885 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
3886 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
3887 parallel install API version, not with the D-BUS package version.
3889 * HACKING: move some of README over here
3891 * README: updates, and document API/ABI policy
3893 * configure.in: reindentation
3895 2003-04-29 Havoc Pennington <hp@redhat.com>
3897 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
3898 to use this library" to be sure people have the right
3901 2003-04-28 Havoc Pennington <hp@redhat.com>
3903 * configure.in: add --enable-docs which by default is auto yes if
3904 doxygen and db2html found, no otherwise; but can be forced on/off
3906 * doc/Makefile.am: conditionalize whether to build docs on
3909 2003-04-28 Havoc Pennington <hp@redhat.com>
3911 * configure.in: 0.10
3915 * bus/system.conf.in: add <includedir>system.d</includedir>
3917 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
3918 username was provided but not uid
3920 * bus/config-parser.c (struct BusConfigParser): keep track of
3921 whether the parser is toplevel or was included; change some
3922 of the error handling if it's included.
3924 2003-04-27 Havoc Pennington <hp@pobox.com>
3928 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
3929 report correct status if we finish processing authentication
3930 inside this function.
3932 * bus/activation.c (try_send_activation_failure): use
3933 bus_transaction_send_error_reply
3935 * bus/connection.c (bus_connection_get_groups): return an error
3936 explaining the problem
3938 * bus/bus.c (bus_context_check_security_policy): implement
3939 restriction here that inactive connections can only send the
3940 hello message. Also, allow bus driver to send anything to
3943 * bus/connection.c (bus_connection_complete): create the
3944 BusClientPolicy here instead of on-demand.
3945 (bus_connection_get_policy): don't return an error
3947 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
3948 sender field in message being replied to
3950 * bus/bus.c (bus_context_check_security_policy): fix silly typo
3951 causing it to return FALSE always
3953 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
3954 we checked sender rather than destination
3956 2003-04-25 Havoc Pennington <hp@redhat.com>
3958 test suite is slightly hosed at the moment, will fix soon
3960 * bus/connection.c (bus_connections_expire_incomplete): fix to
3961 properly disable the timeout when required
3962 (bus_connection_set_name): check whether we can remove incomplete
3963 connections timeout after we complete each connection.
3965 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
3966 probably still broken.
3968 * bus/services.c (bus_registry_acquire_service): implement max
3969 number of services owned, and honor allow/deny rules on which
3970 services a connection can own.
3972 * bus/connection.c (bus_connection_get_policy): report errors here
3974 * bus/activation.c: implement limit on number of pending
3977 2003-04-25 Havoc Pennington <hp@redhat.com>
3979 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
3980 where we used >= 0 instead of != DBUS_UID_UNSET.
3982 2003-04-25 Havoc Pennington <hp@redhat.com>
3984 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
3985 were toggled without add/remove, fix from Anders Gustafsson
3987 2003-04-24 Havoc Pennington <hp@redhat.com>
3989 * test/data/valid-config-files/basic.conf: add <limit> tags to
3992 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
3993 <limit> tag in configuration file.
3995 2003-04-24 Havoc Pennington <hp@redhat.com>
3997 * bus/dispatch.c: somehow missed some name_is
3999 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
4000 (_dbus_timeout_set_interval): new
4002 * bus/connection.c (bus_connections_setup_connection): record time
4003 when each connection is first set up, and expire them after the
4004 auth timeout passes.
4006 2003-04-24 Havoc Pennington <hp@redhat.com>
4008 * dbus/dbus-message.c (dbus_message_name_is): rename
4009 (dbus_message_service_is): rename
4010 (dbus_message_sender_is): rename
4011 (dbus_message_get_service): rename
4013 2003-04-24 Havoc Pennington <hp@redhat.com>
4015 * configure.in: add --enable-checks
4017 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
4019 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
4020 to use thread locks.
4021 (_dbus_connection_handler_destroyed_locked): move some private
4022 functions into proper docs group
4024 * dbus/dbus-internals.h: add _dbus_return_if_fail,
4025 _dbus_return_val_if_fail
4027 Throughout: use dbus_return_if_fail
4029 2003-04-23 James Willcox <jwillcox@gnome.org>
4032 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
4033 (dbus_connection_setup_with_g_main),
4034 (dbus_server_setup_with_g_main):
4035 * glib/test-dbus-glib.c: (main):
4036 * glib/test-thread-client.c: (main):
4037 * glib/test-thread-server.c: (new_connection_callback), (main):
4038 * tools/dbus-monitor.c: (main):
4040 Added a GMainContext argument to dbus_connection_setup_with_g_main()
4041 and dbus_server_setup_with_g_main().
4043 2003-04-20 Havoc Pennington <hp@pobox.com>
4045 * doc/dbus-specification.sgml: document the restrictions on
4046 message and service names
4048 2003-04-22 Havoc Pennington <hp@redhat.com>
4050 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
4051 support, and do some code cleanups to share more code and
4052 speed up array marshal/demarshal.
4054 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
4056 * configure.in: generate dbus-arch-deps.h
4058 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
4061 2003-04-22 Havoc Pennington <hp@redhat.com>
4063 * test/data/valid-messages/opposite-endian.message: fix test
4064 to use proper type for rply field
4066 * test/data/invalid-messages: add tests for below validation
4068 * dbus/dbus-message.c (decode_header_data): validate field types,
4069 and validate that named fields are valid names
4070 (decode_name_field): consider messages in the
4071 org.freedesktop.Local. namespace to be invalid.
4073 * dbus/dbus-string.c (_dbus_string_validate_name): new
4075 2003-04-19 Havoc Pennington <hp@pobox.com>
4077 * bus/driver.c (bus_driver_handle_hello): check limits and
4078 return an error if they are exceeded.
4080 * bus/connection.c: maintain separate lists of active and inactive
4081 connections, and a count of each. Maintain count of completed
4082 connections per user. Implement code to check connection limits.
4084 * dbus/dbus-list.c (_dbus_list_unlink): export
4086 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
4087 number of bytes in the message queue for a connection
4089 2003-04-18 Havoc Pennington <hp@pobox.com>
4091 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
4093 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
4096 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
4097 on realloc be sure to update the pointer in the keyring
4099 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
4100 offset to avoid writing to unallocated memory
4102 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
4103 try the next mechanism, so we properly handle OOM
4105 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
4107 (_dbus_keyring_new): fix OOM bug
4108 (_dbus_keyring_new_homedir): always set error; impose a maximum
4109 number of keys we'll load from the file, mostly to speed up the
4110 test suite and make its OOM checks more useful, but also for
4113 * dbus/dbus-auth.c (process_error_server): reject authentication
4114 if we get an error from the client
4115 (process_cancel): on cancel, send REJECTED, per the spec
4116 (process_error_client): send CANCEL if we get an error from the
4119 2003-04-18 Havoc Pennington <hp@pobox.com>
4121 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
4124 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
4127 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
4128 about DBUS_TEST_HOMEDIR once
4130 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
4133 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
4134 config file so we test the right thing
4136 Throughout: assorted docs improvements
4138 2003-04-18 Havoc Pennington <hp@pobox.com>
4140 * glib/dbus-gmain.c: adapt to watch changes
4142 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
4144 * dbus/dbus-server.h: remove dbus_server_handle_watch
4146 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
4148 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
4149 like DBusTimeout, so we don't need dbus_connection_handle_watch
4152 2003-04-17 Havoc Pennington <hp@redhat.com>
4154 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
4155 database usage so it all goes via the DBusUserDatabase cache.
4157 2003-04-17 Havoc Pennington <hp@redhat.com>
4159 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
4160 there was an OOM watch we skipped, we always return TRUE so we
4161 iterate again to have a look at it again. Fixes test suite hang.
4162 Code rearrangement also lets us lose some memset and only iterate
4163 over callbacks once.
4165 * bus/driver.c (bus_driver_handle_message): sense of test for
4168 2003-04-16 Havoc Pennington <hp@pobox.com>
4170 * doc/dbus-specification.sgml: make spec say serials are unsigned
4172 * dbus/dbus-message.h: change message serials to unsigned
4174 * dbus/dbus-connection.c: adapt to message serials being unsigned
4176 2003-04-15 Havoc Pennington <hp@pobox.com>
4178 * bus/bus.c: create and keep around a shared DBusUserDatabase
4181 * bus/connection.c (bus_connection_get_groups): don't cache
4182 groups for user in the connection object, since user database
4183 object now does that.
4185 2003-04-16 Havoc Pennington <hp@redhat.com>
4187 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
4188 list of size counters
4189 (_dbus_message_loader_putback_message_link): put back a popped link
4191 * dbus/dbus-connection.c
4192 (dbus_connection_set_max_live_messages_size): rename
4194 (dbus_connection_get_outgoing_size): get size of outgoing
4196 (_dbus_connection_set_connection_counter): remove this cruft
4198 2003-04-14 Havoc Pennington <hp@redhat.com>
4200 * dbus/dbus-userdb.c: user database abstraction, mostly to get
4201 caching, but at some point we might want to be able to use a
4204 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
4205 SHA1 conf file to test the sha1 auth mechanism, since the regular
4206 test always uses EXTERNAL when available.
4209 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
4210 add conf file that requires use of sha1 auth
4212 2003-04-13 Havoc Pennington <hp@pobox.com>
4214 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
4215 from Philip Blundell to send messages and monitor them.
4217 2003-04-13 Havoc Pennington <hp@pobox.com>
4219 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
4222 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
4225 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
4226 fix to only recover unused bytes if we're already authenticated
4227 (_dbus_transport_get_is_authenticated): fix to still mark us
4228 authenticated if there are unused bytes.
4230 * bus/dispatch.c: implement security policy checking
4232 * bus/connection.c (bus_transaction_send_from_driver): new
4234 * bus/bus.c (bus_context_check_security_policy): new
4236 * bus/dispatch.c (send_service_nonexistent_error): delete this,
4237 now we just set the DBusError and it gets converted to an error
4240 * bus/connection.c (allow_user_function): enable code using actual
4241 data from the config file
4243 * bus/policy.c (list_allows_user): handle wildcard rules for
4244 user/group connection perms
4246 2003-04-13 Havoc Pennington <hp@pobox.com>
4248 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
4250 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
4252 * bus/policy.c (bus_policy_append_mandatory_rule)
4253 (bus_policy_append_default_rule, bus_policy_append_user_rule)
4254 (bus_policy_append_group_rule): new functions
4256 2003-04-12 Havoc Pennington <hp@pobox.com>
4258 * bus/config-parser.c (bus_config_parser_new): fix a memleak
4260 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
4261 the pid/gid/uid, just for paranoia.
4263 * test/break-loader.c (randomly_do_n_things): find a byte
4264 containing a type code, and randomly change it to a different
4267 2003-04-12 Havoc Pennington <hp@pobox.com>
4269 * bus/policy.h: change BusPolicy to be the thing from the config
4270 file, and rename old BusPolicy to BusClientPolicy
4272 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
4273 match change in how policy works
4275 * dbus/dbus-internals.h: mark assert_not_reached as
4276 __attribute((noreturn))__
4278 2003-04-11 Havoc Pennington <hp@redhat.com>
4280 * doc/dbus-specification.sgml: fix a spot with the wrong name for
4281 the broadcast service. Use boolean return for ServiceExists.
4283 2003-04-11 Havoc Pennington <hp@redhat.com>
4285 * configure.in: add another directory to look for qt in.
4287 2003-04-11 Havoc Pennington <hp@redhat.com>
4289 * AUTHORS: add Colin Walters
4291 2003-04-11 Havoc Pennington <hp@redhat.com>
4297 2003-04-11 Havoc Pennington <hp@redhat.com>
4299 * bus/messagebus.in: remove pid file when stopping the
4300 message bus, since the bus won't have privileges to remove it
4303 2003-04-11 Havoc Pennington <hp@redhat.com>
4305 * bus/bus.c (bus_context_new): move credentials change after
4308 2003-04-11 Havoc Pennington <hp@pobox.com>
4310 * test/decode-gcov.c: add "below average functions" to the
4311 coverage report, and change how some of the code works.
4313 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
4314 not in the coverage stats.
4316 * test/test-service.c (main): use _dbus_verbose not fprintf in a
4317 couple places so running the test suite doesn't result in megaspam.
4319 2003-04-11 Havoc Pennington <hp@pobox.com>
4321 * bus/dispatch.c (check_existent_service_activation): accept a no
4322 memory error in a place we didn't before
4324 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
4325 in case the first one failed," since the test suite is less
4328 2003-04-10 Havoc Pennington <hp@pobox.com>
4330 * bus/dispatch.c (check_segfault_service_activation): add test
4331 for launching an executable that just crashes.
4333 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
4334 don't leave a million cores. We'll see how portable this is.
4336 2003-04-10 Havoc Pennington <hp@pobox.com>
4338 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
4339 the possible parent failures before we fork, so that we don't
4340 fail to create a babysitter after creating the child.
4342 * bus/activation.c (bus_activation_activate_service): kill child
4343 if we don't successfully complete the activation.
4345 2003-04-10 Havoc Pennington <hp@redhat.com>
4347 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
4348 the connection if it's disconnected
4350 * bus/activation.c (bus_activation_service_created): use new
4351 transaction features to roll back removal of pending activation if
4352 we don't successfully create the service after all. Don't remove
4353 pending activation if the function fails.
4355 * dbus/dbus-list.c (_dbus_list_insert_before_link)
4356 (_dbus_list_insert_after_link): new code to facilitate
4359 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
4360 new functionality, so we can preallocate the ability to insert
4363 * bus/connection.c (bus_transaction_add_cancel_hook): new function
4364 allowing us to put custom hooks in a transaction to be used for
4365 cancelling said transaction
4367 * doc/dbus-specification.sgml: add some discussion of secondary
4368 service owners, and disallow zero-length service names
4370 * bus/services.c (bus_registry_acquire_service): new function,
4371 splits out part of bus_driver_handle_acquire_service() and fixes
4372 a bug where we didn't remove the service doing the acquiring
4373 from the secondary queue if we failed to remove the current owner
4374 from the front of the queue.
4376 2003-04-10 Alexander Larsson <alexl@redhat.com>
4378 * doc/dbus-specification.sgml:
4379 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
4381 2003-04-10 Alexander Larsson <alexl@redhat.com>
4386 Added files to cvsignore
4388 * dbus/dbus-message.h:
4389 * dbus/dbus-message.c: (dbus_message_iter_get_named):
4390 Make get_named() take two out argument and return a boolean.
4391 (dbus_message_iter_get_args_valist):
4392 Update usage of get_named().
4393 (dbus_message_iter_append_byte):
4395 (dbus_message_iter_append_named)
4397 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
4400 2003-04-10 Alexander Larsson <alexl@redhat.com>
4402 * dbus/dbus-marshal.[ch]:
4403 Add array_type_pos argument to _dbus_marshal_validate_arg.
4404 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
4406 * dbus/dbus-message.[ch]:
4407 Multi-dimensional arrays have full type specification in the
4408 outermost array. Iter code re-arranged to handle this.
4409 Added some more iter tests.
4411 * doc/dbus-specification.sgml:
4414 Update new array encoding description.
4415 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
4417 * test/data/invalid-messages/array-with-mixed-types.message:
4418 * test/data/valid-messages/array-of-array-of-uint32.message:
4419 Change to the new array format.
4421 * test/data/invalid-messages/too-short-dict.message:
4424 * test/data/valid-messages/recursive-types.message:
4425 Fix up and extend test.
4427 2003-04-10 Havoc Pennington <hp@pobox.com>
4429 * bus/dispatch.c: lots of fixes
4431 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
4432 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
4433 that was crack, broke the test service.
4435 * dbus/dbus-transport.c (_dbus_transport_open): fix error
4436 handling to avoid piling up errors if we get a failure on the
4439 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
4440 pid in assertion failures.
4442 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
4443 to some fixed size of file descriptor array. Don't return TRUE
4444 anytime a timeout exists, that led to lots of busy loop silliness
4447 2003-04-09 Havoc Pennington <hp@redhat.com>
4449 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
4450 I'd checked this in earlier but hadn't.
4452 2003-04-09 Havoc Pennington <hp@redhat.com>
4454 * bus/dispatch.c (bus_dispatch_test): get a bit further through
4455 the activation test (man this is getting old!)
4457 2003-04-09 Havoc Pennington <hp@redhat.com>
4459 * test/test-utils.c: use dispatch status function to fix this up
4461 * bus/connection.c (connection_watch_callback): don't dispatch
4463 (connection_timeout_callback): don't dispatch from here
4464 (bus_connections_setup_connection): set the dispatch status function
4465 (bus_connection_disconnected): unset it
4467 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
4468 used to add a connection to be dispatched
4469 (_dbus_loop_iterate): do the dispatching at the end of each
4472 * dbus/dbus-connection.c
4473 (dbus_connection_set_dispatch_status_function): new function
4474 allowing us to fix up main loop usage
4475 (_dbus_connection_last_unref): free all the various function
4477 (dbus_connection_dispatch): call the DispatchStatusFunction
4478 whenever this function returns
4479 (dbus_connection_handle_watch): call DispatchStatusFunction
4480 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
4481 (reply_handler_timeout): call DispatchStatusFunction
4482 (dbus_connection_flush): call DispatchStatusFunction
4484 2003-04-09 Havoc Pennington <hp@redhat.com>
4486 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
4489 * bus/dispatch.c (check_service_activated): fix bug in test
4491 * dbus/dbus-mainloop.c (check_timeout): fix this up
4493 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
4494 verbose output so we can sort out output from different processes,
4495 e.g. in the activation case.
4497 2003-04-08 Colin Walters <walters@gnu.org>
4499 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
4501 (bus_context_new): Set it.
4502 (bus_context_unref): Use it to delete the pid file.
4504 2003-04-08 Havoc Pennington <hp@redhat.com>
4506 * test/data/invalid-messages/array-with-mixed-types.message:
4507 regression test that fails for the moment
4509 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
4510 tests for convenience
4512 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
4513 array of nil, it broke things.
4515 * test/data/invalid-messages/array-of-nil.message: regression test
4517 * test/data/valid-messages/array-of-array-of-uint32.message:
4518 happened to write this so added it to suite
4520 2003-04-08 Havoc Pennington <hp@redhat.com>
4522 * bus/driver.c (bus_driver_handle_acquire_service): init
4523 retval/reply before checking name
4525 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
4526 recursion depth argument
4528 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
4529 in the public struct for future extension
4531 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
4534 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
4537 * doc/dbus-specification.sgml: fix typo
4539 2003-04-08 Alexander Larsson <alexl@redhat.com>
4541 Implemented recursive types, named types and new-style iters
4544 * glib/test-thread-client.c: (thread_func):
4545 * glib/test-thread-server.c: (handle_test_message):
4546 * test/test-service.c: (handle_echo):
4555 * dbus/dbus-internals.c: (_dbus_type_to_string):
4556 Update for new types.
4558 * dbus/dbus-marshal.[ch]:
4559 Implement recursive types and the new marshalling format.
4560 Remove hardcoded dict marshalling.
4561 Marshal named types.
4563 * dbus/dbus-message-builder.c:
4565 Remove references to old types
4567 * dbus/dbus-message.[ch]:
4568 New non-refcounted iter API that supports recursive iters.
4569 Use iters for appending, including support for recursive
4571 Add byte and named type support.
4572 Update everything to new marshalling formats.
4573 Add tests for new API.
4575 * dbus/dbus-protocol.h:
4576 Remove old array types.
4577 Add types: BYTE, ARRAY, DICT, NAMED
4579 * dbus/dbus-string.c:
4580 * dbus/dbus-sysdeps.c:
4581 Make parse_double locale safe.
4583 * dbus/dbus-test-main.c:
4589 * doc/dbus-specification.sgml:
4592 * test/data/incomplete-messages/missing-body.message:
4593 * test/data/invalid-messages/bad-boolean.message:
4594 * test/data/invalid-messages/bad-boolean-array.message:
4595 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
4596 * test/data/invalid-messages/boolean-has-no-value.message-raw:
4597 * test/data/invalid-messages/too-short-dict.message:
4598 * test/data/valid-messages/dict-simple.message:
4599 * test/data/valid-messages/dict.message:
4600 * test/data/valid-messages/emptiness.message:
4601 * test/data/valid-messages/lots-of-arguments.message:
4602 * test/data/valid-messages/no-padding.message:
4603 * test/data/valid-messages/recursive-types.message:
4604 Add missing NAME fields
4605 Fix up dicts & arrays
4607 * test/data/invalid-messages/dict-with-nil-value.message:
4608 Removed, this is not invalid anymore.
4610 * test/data/valid-messages/recursive-types.message:
4611 Add new test for deeply recursive types.
4613 2003-04-07 Havoc Pennington <hp@pobox.com>
4615 * bus/driver.c (bus_driver_handle_acquire_service): return an
4616 error if you try to acquire a service that starts with ':'
4618 2003-04-07 Havoc Pennington <hp@redhat.com>
4620 * doc/dbus-specification.sgml: require that base service names
4621 start with ':' and that the base service is created/deleted
4622 as first and last things a connection does on the bus
4624 * bus/dispatch.c (check_existent_service_activation): lots more
4625 work on the activation test; it doesn't fully pass yet...
4627 * test/test-service.c (main): fix so we don't memleak the
4628 connection to the message bus
4629 (filter_func): accept a message asking us to exit
4631 2003-04-06 Havoc Pennington <hp@pobox.com>
4633 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
4636 * configure.in: fixes to Qt detection from Colin Walters
4638 * doc/Makefile.am: Only remove generated docbook dirs if they
4639 exist, from Colin Walters
4641 * dbus/dbus-bus.c: change how we set well-known connections to
4642 NULL, so that it works if a single connection is stored in
4643 two well-known array slots.
4645 * test/Makefile.am: remove a lot of stuff that isn't immediately
4646 useful, it's in CVS history if we want it.
4648 * test/test-service.c: use dbus-mainloop instead of that
4651 2003-04-06 Havoc Pennington <hp@pobox.com>
4653 * dbus/Makefile.am: split lists of sources into stuff that goes in
4654 the library, util functions that go in the lib and are also used
4655 elsewhere, and util functions that are used in tests/daemon but
4656 don't go in the lib.
4658 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
4659 here so it can be used in test binaries also
4661 2003-04-06 Havoc Pennington <hp@pobox.com>
4663 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
4664 here in the parent process, so we can return an error if it
4665 fails. Also, move some of the code into the child so the parent
4666 is less hosed if we fail midway through.
4668 * bus/bus.c (bus_context_new): move pidfile detection further up
4669 in the function, before we start overwriting sockets and such.
4671 * bus/messagebus.in: adjust this a bit, not sure if it will work.
4673 * configure.in: add --with-system-pid-file and --with-system-socket
4675 2003-04-06 Colin Walters <walters@verbum.org>
4677 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
4679 * bus/system.conf.in: Declare a pidfile.
4681 * bus/bus.c (bus_context_new): Test for an existing pid file, and
4682 create one (if appropriate).
4684 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
4685 (struct BusConfigParser) [pidfile]: New.
4686 (element_type_to_name, merge_included, start_busconfig_child)
4687 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
4688 (bus_config_parser_unref): Free it.
4689 (bus_config_parser_get_pidfile): New function.
4691 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
4693 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
4695 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
4697 * dbus/dbus-sysdeps.h: Prototype it.
4699 2003-04-06 Havoc Pennington <hp@pobox.com>
4701 * bus/bus.c (bus_context_new): print the address in here, rather
4702 than in main(), because we need to do it before forking the daemon
4704 * bus/dispatch.c (send_service_nonexistent_error): set the sender
4705 on the service nonexistent error
4707 * bus/driver.c (bus_driver_handle_acquire_service): set the
4708 sender on the AcquireService reply
4710 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
4711 server also listen on a UNIX socket so services can connect to it.
4713 2003-04-06 Havoc Pennington <hp@pobox.com>
4715 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
4716 so it detects deadlocks and also we actually init threads when
4719 2003-04-06 Havoc Pennington <hp@pobox.com>
4721 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
4722 save the domain socket name, and unlink it when we disconnect the
4723 server. Means that at least when we exit normally, we won't leave
4724 a bunch of junk in /tmp
4726 * dbus/dbus-transport-unix.c
4727 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
4728 memory management). (I was making a real change here but then
4731 2003-04-06 Havoc Pennington <hp@pobox.com>
4733 * bus/bus.c (bus_context_new): fix wrong handling of
4734 server_data_slot_unref() in the error case.
4736 * dbus/dbus-internals.h (_dbus_assert): change so it passes
4737 "(condition) != 0" to _dbus_real_assert so that
4738 "_dbus_assert (pointer)" doesn't cause a warning
4740 * bus/main.c (main): accept --print-address option to print out
4741 the message bus address
4743 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
4745 * dbus/dbus-transport.c (_dbus_transport_open): special error for
4746 "tmpdir" option to unix: address on client side
4748 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
4751 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
4752 we can use to create sockets in the test suite.
4754 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
4755 cleanly. To be used for testing.
4757 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
4759 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
4761 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4762 handle trying to call this when there's no servers active
4764 2003-04-05 Havoc Pennington <hp@pobox.com>
4770 2003-04-05 Havoc Pennington <hp@pobox.com>
4772 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
4773 crash on startup. Need to get "try starting the daemon"
4774 in the test suite I guess. ;-)
4776 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
4777 tracked the number of open connections; it's better done in
4778 application-specific code as you want it to span all servers etc.
4780 2003-04-05 Havoc Pennington <hp@pobox.com>
4782 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
4783 patch from Colin Walters
4785 2003-04-05 Havoc Pennington <hp@pobox.com>
4787 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
4788 reality; in fact multiple mechanisms are allowed.
4790 * dbus/dbus-internals.c (_dbus_real_assert)
4791 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
4792 _dbus_assert_not_reached() into functions, so that they don't show
4793 up in basic block counts for test coverage, and don't use up as
4794 much disk space. Does mean slower execution speed though, so
4795 assumes --disable-asserts is the normal production case.
4797 2003-04-05 Havoc Pennington <hp@pobox.com>
4799 * test/Makefile.am (dist-hook): also dist *.in files
4805 2003-04-05 Havoc Pennington <hp@pobox.com>
4807 * dbus/dbus-string.c: docs warning
4809 * dbus/dbus-spawn.c: missing docs
4811 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
4813 2003-04-05 Havoc Pennington <hp@pobox.com>
4815 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
4818 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
4819 to -1 once we've reaped the babysitter
4820 (_dbus_babysitter_handle_watch): do as much work as we can, not
4823 * bus/activation.c: add code using DBusBabysitter so that we
4824 handle it when a service fails to start up properly.
4825 (bus_activation_service_created): don't remove the activation
4826 entries as we go, just let them get removed when we free the pending
4827 activation. Unref reply messages after sending them.
4829 2003-04-05 Havoc Pennington <hp@pobox.com>
4831 * test/decode-gcov.c (main): print per-directory stats in the report
4833 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
4835 2003-04-05 Havoc Pennington <hp@pobox.com>
4837 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
4839 * test/decode-gcov.c: hack up a little program to suck data
4840 out of gcov files. Yes this is sort of silly.
4842 * configure.in: define something in config.h and do an
4843 AM_CONDITIONAL when gcov is enabled
4845 2003-04-04 Havoc Pennington <hp@redhat.com>
4847 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
4848 return a "babysitter" object that is used to monitor the status of
4849 the spawned process and reap it when required.
4851 * test/test-segfault.c, test/test-exit.c,
4852 test/test-sleep-forever.c: binaries that do various lame things,
4853 used in the test suite.
4855 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
4857 2003-04-03 Havoc Pennington <hp@pobox.com>
4859 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
4860 in preparation for modifying it, dbus-sysdeps is getting
4863 2003-04-03 Havoc Pennington <hp@redhat.com>
4865 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
4868 * bus/*.[hc]: adapt to mainloop change
4870 2003-04-03 Havoc Pennington <hp@redhat.com>
4872 * bus/activation.c (load_directory): fix up memleaks
4873 (bus_activation_entry_free): free the entry
4875 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
4876 we get one from the message bus; fix memleaks.
4878 * dbus/dbus-message.c (dbus_set_error_from_message): new function
4880 2003-04-03 Havoc Pennington <hp@pobox.com>
4882 * bus/config-parser.c (bus_config_parser_unref): free
4883 list of mechanisms, bug discovered by test suite enhancements
4884 (putting system.conf and session.conf into suite)
4886 * test/Makefile.am, test/test-service.c: add placeholder for a
4887 test service that we'll activate as part of test suite. Doesn't
4890 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
4891 setting NULL value, and use system malloc not dbus_malloc()
4892 when we have unavoidable memleakage.
4894 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
4895 didn't work, and support DBUS_BUS_ACTIVATION.
4897 * bus/activation.c (child_setup): pass our well-known bus type to
4900 * bus/config-parser.c: support <type> to specify well-known type
4902 * doc/dbus-specification.sgml: document the env variables to
4903 locate well-known buses and find service activator
4905 2003-04-02 Havoc Pennington <hp@redhat.com>
4907 * test/Makefile.am (all-local): add a rule to copy tests to
4908 builddir, so we can have generated tests. Use this to remove the
4909 silly hack for testing system.conf and session.conf. Will use this
4910 shortly to generate .service files pointing to test binaries.
4912 2003-04-02 Havoc Pennington <hp@redhat.com>
4914 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
4915 current alloc and needed new length, not max of the doubled
4916 allocation and needed new length. Also, when building tests,
4917 don't do the double-allocation stuff, just realloc every time.
4919 2003-04-02 Havoc Pennington <hp@redhat.com>
4921 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
4923 (_dbus_string_get_dirname): new
4924 (_dbus_sysdeps_test): new
4925 (_dbus_directory_open): include dirnames in error messages
4927 * bus/config-parser.c: interpret <include> and <includedir> and
4928 <servicedir> relative to config file location if the given
4929 filename is not absolute.
4931 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
4933 2003-04-02 Havoc Pennington <hp@redhat.com>
4935 * bus/connection.c (bus_transaction_send_error_reply): set sender
4936 service for the error, and unref the reply on success
4938 * bus/activation.c: convert to use BusTransaction so OOM can be
4940 (bus_activation_service_created): set sender of the message
4942 2003-04-01 Havoc Pennington <hp@redhat.com>
4944 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
4945 <includedir> (at least mostly)
4947 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
4948 first, then the user ID
4950 2003-04-01 Havoc Pennington <hp@pobox.com>
4952 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
4955 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
4957 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
4959 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
4960 socket 0777, and unlink any existing socket.
4962 * bus/bus.c (bus_context_new): change our UID/GID and fork if
4963 the configuration file so specifies; set up auth mechanism
4966 * bus/config-parser.c (bus_config_parser_content): add support
4967 for <fork> option and fill in code for <auth>
4969 * bus/system.conf.in: add <fork/> to default configuration,
4970 and limit auth mechanisms to EXTERNAL
4972 * doc/config-file.txt (Elements): add <fork>
4974 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
4975 (_dbus_change_identity): new function
4977 2003-03-31 Havoc Pennington <hp@redhat.com>
4979 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
4980 (_dbus_listen_unix_socket): fix off-by-one error in null
4981 termination spotted by Nalin
4983 2003-03-31 Havoc Pennington <hp@redhat.com>
4985 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
4986 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
4987 having a real home directory available.
4989 2003-03-31 Havoc Pennington <hp@redhat.com>
4991 * bus/Makefile.am (install-data-hook): create /var/run/dbus
4993 * bus/messagebus.in: add init script for Red Hat /etc/init.d
4995 * configure.in: add support for specifying a style of init script
4998 2003-03-31 Havoc Pennington <hp@redhat.com>
5000 Fix some annoying DBusString API and fix all affected code.
5002 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
5004 (_dbus_string_get_data): change to return string instead of using
5006 (_dbus_string_get_const_data): ditto
5007 (_dbus_string_get_data_len): ditto
5008 (_dbus_string_get_const_data_len): ditto
5010 2003-03-31 Havoc Pennington <hp@redhat.com>
5012 * bus/main.c (main): fix up the command line arguments to be nicer
5014 2003-03-31 Havoc Pennington <hp@redhat.com>
5016 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
5017 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
5018 final location that lands in the config file
5020 * bus/config-loader-expat.c (bus_config_load): fix type of
5023 * doc/TODO: remove TODO item for dbus_bus_get()
5025 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
5027 2003-03-31 Havoc Pennington <hp@pobox.com>
5029 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
5030 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
5031 argument since they are always client side
5033 * dbus/dbus-server.c (dbus_server_get_address): new function
5035 * bus/main.c (main): take the configuration file as an argument.
5037 * test/data/valid-config-files/debug-allow-all.conf: new file to
5038 use with dispatch.c tests for example
5040 * bus/test-main.c (main): require test data dir
5042 * bus/bus.c (bus_context_new): change this to take a
5043 configuration file name as argument
5045 * doc/config-file.txt (Elements): add <servicedir>
5047 * bus/system.conf, bus/session.conf: new files
5049 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
5050 well-known socket if none set
5052 * configure.in: create system.conf and session.conf
5054 2003-03-30 Havoc Pennington <hp@pobox.com>
5056 * bus/config-parser.c: hacking
5058 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
5059 to shut down, since it could cause weirdness with the DBusList
5062 * dbus/dbus-list.c (_dbus_list_test): add tests for the
5063 link-oriented stack routines
5064 (alloc_link): free the mempool if the first alloc from it fails
5066 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
5068 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
5070 (_dbus_string_skip_white): new
5072 * doc/config-file.txt (Elements): add <includedir>
5074 2003-03-28 Havoc Pennington <hp@pobox.com>
5076 * dbus/dbus-string.c (_dbus_string_copy_data_len)
5077 (_dbus_string_copy_data): new functions
5079 2003-03-28 Anders Carlsson <andersca@codefactory.se>
5081 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
5085 * dbus/dbus-memory.c:
5088 2003-03-28 Havoc Pennington <hp@pobox.com>
5090 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
5091 I think it may have just been superstition. Not sure.
5093 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
5094 failures that were not being handled.
5096 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
5098 * dbus/dbus-memory.c: add ability to set number of mallocs in a
5099 row that will fail on out-of-memory.
5101 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
5102 function for testing out-of-memory handling.
5104 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
5105 allocation functions, they do map exactly to the expat ones.
5107 2003-03-27 Havoc Pennington <hp@redhat.com>
5109 * bus/config-loader-libxml.c (bus_config_load): add another error
5112 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5115 Add note about automatic service activation.
5117 * doc/dbus-specification.sgml:
5118 Rename the specification and clarify a few things.
5120 2003-03-26 Anders Carlsson <andersca@codefactory.se>
5123 * dbus/dbus-address.c:
5125 * dbus/dbus-marshal.c:
5126 * dbus/dbus-server-debug-pipe.c:
5127 * dbus/dbus-transport-unix.c:
5128 Fix documentation warnings.
5130 2003-03-26 Havoc Pennington <hp@pobox.com>
5132 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
5133 after every test so it's quick and easy to see which leaked, and
5134 so we test multiple dbus_shutdown() calls
5136 * configure.in: change configure.in XML stuff to also support
5139 * config-loader-libxml.c: some hacking
5141 * config-loader-expat.c: some hacking
5143 * config-parser.c: some hacking, plus tests
5145 2003-03-25 Havoc Pennington <hp@redhat.com>
5147 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
5149 * configure.in: add --with-xml option to specify XML library,
5150 right now only libxml is supported.
5152 * bus/config-loader-libxml.c, config-parser.c: sync some minor
5153 nonworking code between home and work, still just stubs
5155 2003-03-24 Havoc Pennington <hp@redhat.com>
5157 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
5160 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
5161 NULL argument for "message" if the error is a well-known one,
5162 fill in a generic message in this case.
5164 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
5167 * bus/test.c (bus_test_flush_bus): add
5169 * bus/policy.c (bus_policy_test): test code stub
5171 2003-03-24 Havoc Pennington <hp@pobox.com>
5173 * bus/connection.c (bus_connections_setup_connection): set up
5174 the "can this user connect" function, but it always returns
5175 TRUE until we have a config file parser so we can have a config
5176 file that allows connections.
5178 2003-03-23 Havoc Pennington <hp@pobox.com>
5180 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
5181 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
5182 the mutex, so we can check for proper memory management
5185 * dbus/dbus-dataslot.c: remove the mutex from
5186 DBusDataSlotAllocator and lock it manually when using it,
5187 to simplify fitting it into the global slots framework.
5189 * dbus/dbus-threads.c (init_static_locks): rework how we're
5190 handling global locks so they are easily shut down.
5192 * bus/policy.c (bus_policy_append_rule): fix
5194 * bus/test-main.c (main): check for memleaks
5196 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
5197 test suite check for memleaks
5199 * dbus/dbus-memory.c: add support in test mode for tracking
5200 number of outstanding blocks
5202 2003-03-23 Havoc Pennington <hp@pobox.com>
5204 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
5207 * dbus/dbus-hash.h: add ULONG hash keys
5209 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
5210 (_dbus_get_group_id): new function
5212 2003-03-20 Havoc Pennington <hp@redhat.com>
5214 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
5216 (dbus_connection_get_unix_user): new function
5218 2003-03-20 Havoc Pennington <hp@pobox.com>
5220 * bus/connection.c (bus_connection_send_oom_error): assert that
5221 message has a sender
5222 (connection_execute_transaction): ditto
5223 (bus_connection_preallocate_oom_error): fix to set the sender, and
5224 set recipient to the destination service, not the bus driver
5226 * bus/policy.c: hacking
5228 * dbus/dbus-message.c (dbus_message_service_is): new function
5229 (dbus_message_sender_is): new
5231 2003-03-19 Havoc Pennington <hp@redhat.com>
5233 * bus/policy.c: start sketching code for policy restrictions on
5234 what connections can do.
5236 2003-03-18 Havoc Pennington <hp@redhat.com>
5238 * doc/TODO: some notes on high-level todo items. Little nitpick
5239 stuff is all in @todo, so no need to add it here.
5241 * doc/config-file.txt: some notes on how config file might look
5243 2003-03-18 Anders Carlsson <andersca@codefactory.se>
5249 2003-03-17 Havoc Pennington <hp@redhat.com>
5251 * dbus/dbus-internals.h: add gcc attributes so that
5252 our printf-style functions warn on bad arguments to
5255 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
5258 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5261 2003-03-17 Havoc Pennington <hp@redhat.com>
5263 * bus/test-main.c (main): make it print something as it runs
5264 so make check doesn't look stuck
5266 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
5267 from CVS, now obsolete
5269 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5271 * bus/dispatch.c: (bus_dispatch):
5272 Refetch the service name since it may have been reallocated
5273 when dbus_message_set_sender was called.
5275 * dbus/dbus-sysdeps.c: (_dbus_accept):
5276 Add address and address length variables and use them to stop
5277 valgrind from complaining.
5279 2003-03-17 Havoc Pennington <hp@pobox.com>
5281 All tests pass, no memleaks, no valgrind complaints.
5283 * bus/test.c: refcount handler_slot
5285 * bus/connection.c (bus_connections_new): refcount
5286 connection_data_slot
5288 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
5289 bytes so that auth scripts pass.
5291 * bus/dispatch.c: init message_handler_slot so it gets allocated
5294 * bus/dispatch.c (message_handler_slot_ref): fix memleak
5296 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
5297 dealloc server_pipe_hash when no longer used for benefit of
5300 * dbus/dbus-auth.c (process_command): memleak fix
5302 * bus/dispatch.c (check_hello_message): memleak fix
5304 2003-03-16 Havoc Pennington <hp@pobox.com>
5306 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
5308 2003-03-17 Anders Carlsson <andersca@codefactory.se>
5310 * bus/activation.c (bus_activation_activate_service): Append
5311 the pending activation entry to the list of pending activations.
5313 2003-03-16 Havoc Pennington <hp@pobox.com>
5315 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
5318 * dbus/dbus-address.c (create_entry): fix OOM handling when
5319 failing to alloc entry->method
5321 2003-03-16 Havoc Pennington <hp@pobox.com>
5323 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
5326 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
5327 add some missing dbus_set_result
5329 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
5330 alloc the DBusMessageHandler
5332 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
5333 the transport here, since we call this from the finalizer; it
5334 resulted in a double-finalize.
5336 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
5337 where we tried to use transport->connection that was NULL,
5338 happened when transport was disconnected early on due to OOM
5340 * bus/*.c: adapt to handle OOM for watches/timeouts
5342 * dbus/dbus-transport-unix.c: port to handle OOM during
5345 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
5346 reference to unused bytes instead of a copy
5348 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
5351 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
5354 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
5357 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5359 * doc/dbus-specification.sgml:
5360 Document reply message for ActivateService.
5362 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5364 * bus/activation.c: (bus_pending_activation_entry_free),
5365 (bus_pending_activation_free), (bus_activation_new),
5366 (bus_activation_unref), (bus_activation_service_created),
5367 (bus_activation_activate_service):
5369 * bus/bus.c: (bus_context_new):
5370 * bus/desktop-file.c: (new_section):
5371 * bus/driver.c: (bus_driver_send_service_deleted),
5372 (bus_driver_handle_activate_service):
5373 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
5375 * dbus/dbus-connection.c:
5376 (dbus_connection_send_with_reply_and_block):
5377 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5378 * dbus/dbus-protocol.h:
5379 Make activation work better. Now pending activations will be queued
5380 and the daemon won't try to activate services that are already registered.
5382 2003-03-16 Havoc Pennington <hp@pobox.com>
5384 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
5387 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
5388 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
5390 2003-03-16 Havoc Pennington <hp@pobox.com>
5392 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
5393 this. always run the test suite before commit...
5395 * bus/*: adapt to DBusConnection API changes
5397 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
5398 requires renaming stuff to avoid dbus_connection_dispatch name
5401 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
5404 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5405 separate from _dbus_message_loader_return_buffer()
5407 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
5408 this, because it's now always broken to use; the number of
5409 messages in queue vs. the number still buffered by the message
5410 loader is undefined/meaningless. Should use
5411 dbus_connection_get_dispatch_state().
5412 (dbus_connection_dispatch): rename from
5413 dbus_connection_dispatch_message
5415 2003-03-16 Havoc Pennington <hp@pobox.com>
5417 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
5420 2003-03-16 Anders Carlsson <andersca@codefactory.se>
5422 * dbus/dbus-connection.c:
5423 (dbus_connection_send_with_reply_and_block):
5424 Decrease connection->n_incoming when removing an entry
5426 * dbus/dbus-dict.c: (dbus_dict_entry_free),
5427 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5428 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5429 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
5430 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
5431 (dbus_dict_get_byte_array):
5432 Handle NULL arrays and strings. Also add support for byte arrays.
5434 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
5435 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
5436 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
5437 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
5438 (_dbus_demarshal_dict), (demarshal_and_validate_len),
5439 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
5440 * dbus/dbus-marshal.h:
5441 Add support for marshalling and demarshalling empty arrays and strings.
5443 * dbus/dbus-message.c: (dbus_message_append_args_valist),
5444 (dbus_message_append_string_array),
5445 (dbus_message_iter_get_boolean),
5446 (dbus_message_iter_get_boolean_array),
5447 (dbus_message_iter_get_int32_array),
5448 (dbus_message_iter_get_uint32_array),
5449 (dbus_message_iter_get_double_array),
5450 (dbus_message_iter_get_byte_array),
5451 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
5452 (check_message_handling):
5453 Add support for getting empty arrays and dicts.
5455 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
5456 Don't do any validation at all for now, that's better than just checking
5459 * test/data/valid-messages/emptiness.message:
5460 New test message with lots of empty arrays.
5462 2003-03-16 Havoc Pennington <hp@pobox.com>
5464 * dbus/dbus-connection.c
5465 (_dbus_connection_queue_received_message_link): new function that
5466 can't fail due to OOM
5468 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
5469 new function pops a message together with a list link
5472 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
5473 message queuing functions to avoid needing to alloc memory
5475 2003-03-16 Havoc Pennington <hp@pobox.com>
5477 Oops - test code was only testing failure of around 30 of the
5478 mallocs in the test path, but it turns out there are 500+
5479 mallocs. I believe this was due to misguided linking setup such
5480 that there was one copy of dbus_malloc etc. in the daemon and one
5481 in the shared lib, and only daemon mallocs were tested. In any
5482 case, the test case now tests all 500+ mallocs, and doesn't pass
5483 yet, though there are lots of fixes in this patch.
5485 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5486 this so that it doesn't need to allocate memory, since it
5487 has no way of indicating failure due to OOM (and would be
5488 annoying if it did).
5490 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
5492 * bus/Makefile.am: rearrange to create two self-contained
5493 libraries, to avoid having libraries with overlapping symbols.
5494 that was resulting in weirdness, e.g. I'm pretty sure there
5495 were two copies of global static variables.
5497 * dbus/dbus-internals.c: move the malloc debug stuff to
5500 * dbus/dbus-list.c (free_link): free list mempool if it becomes
5503 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
5505 * dbus/dbus-address.c (dbus_parse_address): free list nodes
5508 * bus/dispatch.c (bus_dispatch_add_connection): free
5509 message_handler_slot when no longer using it, so
5510 memory leak checkers are happy for the test suite.
5512 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
5514 * bus/bus.c (new_connection_callback): disconnect in here if
5515 bus_connections_setup_connection fails.
5517 * bus/connection.c (bus_connections_unref): fix to free the
5519 (bus_connections_setup_connection): if this fails, don't
5520 disconnect the connection, just be sure there are no side
5523 * dbus/dbus-string.c (undo_alignment): unbreak this
5525 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
5527 (_dbus_auth_new): fix the order in which we free strings
5530 * bus/connection.c (bus_connection_disconnected): fix to
5531 not send ServiceDeleted multiple times in case of memory
5534 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
5535 get the base service name
5536 (dbus_bus_register_client): don't return base service name,
5537 instead store it on the DBusConnection and have an accessor
5539 (dbus_bus_register_client): rename dbus_bus_register()
5541 * bus/dispatch.c (check_hello_message): verify that other
5542 connections on the bus also got the correct results, not
5543 just the one sending hello
5545 2003-03-15 Havoc Pennington <hp@pobox.com>
5547 Make it pass the Hello handling test including all OOM codepaths.
5548 Now to do other messages...
5550 * bus/services.c (bus_service_remove_owner): fix crash when
5551 removing owner from an empty list of owners
5552 (bus_registry_ensure): don't leave service in the list of
5553 a connection's owned services if we fail to put the service
5556 * bus/connection.c (bus_connection_preallocate_oom_error): set
5557 error flag on the OOM error.
5559 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5560 handle _dbus_transport_set_connection failure
5562 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
5563 to create watches up front and simply enable/disable them as
5565 (unix_connection_set): this can now fail on OOM
5567 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
5568 of enabling/disabling a watch or timeout.
5570 * bus/loop.c (bus_loop_iterate): don't touch disabled
5573 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
5575 2003-03-15 Havoc Pennington <hp@pobox.com>
5577 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
5578 write useful test code, after all that futzing around ;-)
5580 Test does not yet pass because we can't handle OOM in
5581 _dbus_transport_messages_pending (basically,
5582 dbus_connection_preallocate_send() does not prealloc the write
5583 watch). To fix this, I think we need to add new stuff to
5584 set_watch_functions, namely a SetEnabled function so we can alloc
5585 the watch earlier, then enable it later.
5587 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
5588 dbus-memory.c to the convenience lib
5590 * bus/test.c: rename some static functions to keep them clearly
5591 distinct from stuff in connection.c. Handle client disconnection.
5593 2003-03-14 Havoc Pennington <hp@pobox.com>
5595 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
5596 transport, tests more of the real codepath. Set up clients
5597 with bus_setup_debug_client.
5599 * bus/test.c (bus_setup_debug_client): function to set up debug
5600 "clients" on the main loop
5602 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
5605 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
5608 * dbus/dbus-server-debug.c: support a debug server based on pipes
5610 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
5611 (_dbus_close): new function
5613 * configure.in: check for socketpair
5615 2003-03-14 Havoc Pennington <hp@redhat.com>
5617 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
5620 * dbus/dbus-transport-debug.c: rework this a good bit to be
5621 less complicated. hopefully still works.
5623 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
5626 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
5629 * dbus/dbus-message.c (dbus_message_copy): rename from
5630 dbus_message_new_from_message, fix it up to copy
5631 all the message fields, add test case
5633 * bus/dispatch.c (bus_dispatch_test): add some more test code,
5634 not quite passing yet
5636 2003-03-14 Havoc Pennington <hp@pobox.com>
5638 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
5639 until no work remains" in test code. (the large diff here
5640 is just code movement, no actual changes)
5642 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
5643 1, no point waiting around for test code.
5644 (_dbus_server_debug_accept_transport): unref the timeout
5645 after adding it (right?)
5647 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
5649 2003-03-13 Havoc Pennington <hp@redhat.com>
5651 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
5654 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
5657 * dbus/dbus-connection.h: Make AddWatchFunction and
5658 AddTimeoutFunction return a bool so they can fail on out-of-memory
5660 * bus/bus.c (bus_context_new): set up timeout handlers
5662 * bus/connection.c (bus_connections_setup_connection): set up
5665 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
5668 * bus/bus.c (bus_context_new): adapt to changes
5670 * bus/connection.c: adapt to changes
5672 * test/watch.c: adapt to DBusWatch changes
5674 * bus/dispatch.c (bus_dispatch_test): started adding this but
5677 2003-03-14 Anders Carlsson <andersca@codefactory.se>
5679 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
5681 2003-03-13 Havoc Pennington <hp@pobox.com>
5683 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
5684 set up a test framework as for the library
5686 2003-03-12 Havoc Pennington <hp@pobox.com>
5688 Throughout: purge global variables, introduce BusActivation,
5689 BusConnections, BusRegistry, etc. objects instead.
5691 * bus/bus.h, bus/bus.c: introduce BusContext as a global
5694 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
5695 going to redo this a bit differently I think
5697 2003-03-12 Havoc Pennington <hp@redhat.com>
5699 Mega-patch that gets the message bus daemon initially handling
5700 out-of-memory. Work still needed. Also lots of random
5701 moving stuff to DBusError instead of ResultCode.
5703 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
5705 * dbus/dbus-connection.c
5706 (dbus_connection_send_with_reply_and_block): use DBusError
5708 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
5711 * dbus/dbus-connection.c (dbus_connection_send): drop the result
5712 code here, as the only failure possible is OOM.
5714 * bus/connection.c (bus_connection_disconnect):
5715 rename bus_connection_disconnected as it's a notification only
5717 * bus/driver.c (bus_driver_handle_acquire_service): don't free
5718 "name" on get_args failure, should be done by get_args;
5719 don't disconnect client for bad args, just return an error.
5720 (bus_driver_handle_service_exists): ditto
5722 * bus/services.c (bus_services_list): NULL-terminate returned array
5724 * bus/driver.c (bus_driver_send_service_lost)
5725 (bus_driver_send_service_acquired): send messages from driver to a
5726 specific client to the client's unique name, not to the broadcast
5729 * dbus/dbus-message.c (decode_header_data): reject messages that
5730 contain no name field
5731 (_dbus_message_get_client_serial): rename to
5732 dbus_message_get_serial and make public
5733 (_dbus_message_set_serial): rename from set_client_serial
5734 (_dbus_message_set_reply_serial): make public
5735 (_dbus_message_get_reply_serial): make public
5737 * bus/connection.c (bus_connection_foreach): allow stopping
5738 iteration by returning FALSE from foreach function.
5740 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
5741 (dbus_connection_free_preallocated_send)
5742 (dbus_connection_preallocate_send): new API for sending a message
5743 without possibility of malloc failure.
5744 (dbus_connection_send_message): rename to just
5745 dbus_connection_send (and same for whole function family)
5747 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
5749 * dbus/dbus-sysdeps.c (_dbus_exit): new function
5751 * bus/activation.c: handle/return errors
5753 * dbus/dbus-errors.h: add more DBUS_ERROR #define
5755 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
5756 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
5757 (_dbus_result_from_errno): move to this file
5759 2003-03-10 Anders Carlsson <andersca@codefactory.se>
5761 * dbus/dbus-marshal.c:
5762 (_dbus_marshal_set_string):
5763 Take a length argument so we can marshal the correct string
5766 (_dbus_marshal_dict), (_dbus_demarshal_dict),
5767 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
5768 (_dbus_marshal_test):
5769 * dbus/dbus-marshal.h:
5770 Add support for marshalling and demarshalling dicts.
5772 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5773 Add support for TYPE DICT.
5775 * dbus/dbus-message.c: (set_string_field):
5776 Adjust header padding.
5778 (dbus_message_append_args_valist), (dbus_message_append_dict),
5779 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
5780 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
5781 (check_message_handling), (check_have_valid_message):
5782 * dbus/dbus-message.h:
5783 Add functions for setting and getting dicts.
5785 * dbus/dbus-protocol.h:
5791 * doc/dbus-specification.sgml:
5792 Add information about how dicts are marshalled.
5794 * test/data/invalid-messages/dict-with-nil-value.message:
5795 * test/data/invalid-messages/too-short-dict.message:
5796 * test/data/valid-messages/dict-simple.message:
5797 * test/data/valid-messages/dict.message:
5798 Add sample messages containing dicts.
5800 2003-03-08 Anders Carlsson <andersca@codefactory.se>
5802 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
5804 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5807 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5808 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
5809 (dbus_dict_set_int32), (dbus_dict_set_uint32),
5810 (dbus_dict_set_double), (dbus_dict_set_string),
5811 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
5812 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
5813 (dbus_dict_set_string_array), (_dbus_dict_test):
5815 Fix according to comments from Havoc.
5817 2003-03-06 Michael Meeks <michael@server.home>
5819 * configure.in: if we don't have kde-config, disable have_qt.
5821 2003-03-07 Anders Carlsson <andersca@codefactory.se>
5826 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
5827 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
5828 (dbus_dict_remove), (dbus_dict_get_value_type),
5829 (dbus_dict_get_keys), (dbus_dict_put_boolean),
5830 (dbus_dict_put_int32), (dbus_dict_put_uint32),
5831 (dbus_dict_put_double), (dbus_dict_put_string),
5832 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
5833 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
5834 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
5835 (dbus_dict_get_int32), (dbus_dict_get_uint32),
5836 (dbus_dict_get_double), (dbus_dict_get_string),
5837 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
5838 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
5839 (dbus_dict_get_string_array), (_dbus_dict_test):
5841 Add DBusDict implementation
5843 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
5847 2003-03-04 Havoc Pennington <hp@pobox.com>
5849 * test/data/auth/*: adapt to changes
5851 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
5852 USERID_BASE64 and change USERNAME_BASE64 to put in username not
5855 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
5856 more stuff from being in a context name, to make the protocol
5857 simpler to deal with
5859 * dbus/dbus-errors.c (dbus_error_has_name): new function
5860 (dbus_error_is_set): new function
5862 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
5863 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
5865 * dbus/dbus-connection.c (dbus_connection_flush): also read
5866 messages during a flush operation
5868 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
5870 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5872 * configure.in: Check for gethostbyname on Solaris.
5874 * dbus/dbus-transport.c: (_dbus_transport_open):
5875 Remove duplicate "tcp" entry.
5877 * doc/dbus-specification.sgml:
5878 Clarify some things.
5880 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5882 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
5883 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
5884 (_dbus_keyring_test):
5885 * dbus/dbus-md5.c: (_dbus_md5_compute):
5886 * dbus/dbus-sha.c: (_dbus_sha_compute):
5889 2003-03-05 Anders Carlsson <andersca@codefactory.se>
5891 * README: Add some things.
5893 2003-03-04 Anders Carlsson <andersca@codefactory.se>
5895 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
5896 after case DBUS_TYPE_BOOELAN.
5898 2003-03-02 Havoc Pennington <hp@pobox.com>
5900 * test/break-loader.c (randomly_set_extreme_ints): add test that
5901 sets really huge and small integers
5903 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
5904 that length of boolean array fits in the string, and that
5905 string has room for boolean value in single-bool case.
5907 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
5908 optional value to "ALIGN" command which is what to fill the
5911 * test/data/valid-messages/no-padding.message: add regression
5912 test for the message padding problem
5914 2003-03-02 Havoc Pennington <hp@pobox.com>
5916 * dbus/dbus-message.c (decode_header_data): fix to always init
5917 message_padding, from Benjamin Dauvergne
5919 2003-03-02 Havoc Pennington <hp@pobox.com>
5925 2003-03-01 Joe Shaw <joe@assbarn.com>
5927 * configure.in: Check for "struct cmsgcred" and try to access its
5928 members for BSD-like unices.
5930 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
5931 _dbus_read_credentials_unix_socket().
5932 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
5933 read() for reading the credential byte off the unix socket. Use
5934 struct cmsgcred on systems that support it.
5936 2003-02-27 Alexander Larsson <alexl@redhat.com>
5940 Make gthreads-2.0 dependency optional. Don't build thread test if
5943 2003-02-27 Havoc Pennington <hp@pobox.com>
5945 * dbus/dbus-connection.c
5946 (dbus_connection_send_message_with_reply_and_block): fix doh!
5947 doh! doh! bug that resulted in never removing a reply from the
5948 queue, no wonder we called get_reply_serial so much ;-)
5950 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
5951 and client serial instead of demarshaling them every time
5953 2003-02-27 Havoc Pennington <hp@pobox.com>
5955 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
5956 more inlined, using dbus-string-private.h, speeds things up
5959 * dbus/dbus-string.c (_dbus_string_free): apply align offset
5960 when freeing the string
5961 (_dbus_string_steal_data): fix for align offset
5962 (undo_alignment): new function
5964 2003-02-26 Havoc Pennington <hp@redhat.com>
5966 All kinds of audit fixes from Owen, plus initial attempt to
5967 handle unaligned memory returned from malloc.
5969 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
5970 leave room for align_offset and nul byte
5971 (fixup_alignment): function to track an align_offset and
5972 ensure real->str is aligned
5973 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
5974 to allow a nul byte plus align offset
5975 (_dbus_string_lock): fix overflow issue
5976 (_dbus_string_init_const_len): add assertions on sanity of len,
5977 assign allocated to be ALLOCATION_PADDING larger than len
5978 (set_length): fixup the overflow handling
5979 (_dbus_string_get_data_len): fix overflow in assertion
5980 (open_gap): detect overflow in size of gap to be opened
5981 (_dbus_string_lengthen): add overflow check
5982 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
5983 (_dbus_string_append): add overflow check
5984 (_dbus_string_append_unichar): overflow
5985 (_dbus_string_delete): fix overflow in assertion
5986 (_dbus_string_copy_len): overflow in assertion
5987 (_dbus_string_replace_len): overflows in assertions
5988 (_dbus_string_find): change to implement in terms of
5989 _dbus_string_find_to
5990 (_dbus_string_find_to): assorted fixage
5991 (_dbus_string_equal_c_str): assert c_str != NULL,
5992 fix logic so the function works
5993 (_dbus_string_ends_with_c_str): fix overflow thingy
5994 (_dbus_string_base64_encode): overflow fix
5995 (_dbus_string_validate_ascii): overflow
5996 (_dbus_string_validate_nul): overflow
5998 2003-02-26 Havoc Pennington <hp@redhat.com>
6000 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
6002 2003-02-26 Alexander Larsson <alexl@redhat.com>
6005 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
6007 * dbus/dbus-connection.c:
6008 * dbus/dbus-connection.h:
6009 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
6010 Add dbus_connection_set_wakeup_main_function and use it when queueing
6011 incoming and outgoing messages.
6014 * dbus/dbus-dataslot.c:
6015 Threadsafe usage of DBusDataSlotAllocator
6017 * dbus/dbus-message.c: (dbus_message_get_args_iter):
6020 * dbus/dbus-server-unix.c:
6023 * glib/dbus-gmain.c:
6024 Implement the new wakeup functions for glib.
6027 * glib/test-thread-client.c:
6028 * glib/test-thread-server.c:
6029 * glib/test-thread.h:
6030 Initial cut at some thread test code. Not really done yet.
6032 2003-02-26 Havoc Pennington <hp@pobox.com>
6034 * dbus/dbus-connection.c
6035 (dbus_connection_send_message_with_reply_and_block): fix crash
6036 where we ref'd the outgoing message instead of the returned reply
6038 * dbus/dbus-transport-unix.c (do_authentication): check read watch
6039 at the end of this function, so if we didn't need to read for
6040 authentication, we reinstall it for receiving messages
6042 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
6043 a NULL sender for peer-to-peer case
6045 * dbus/dbus-transport-unix.c (check_read_watch): handle
6046 !authenticated case correctly
6048 * glib/dbus-gmain.c: add support for DBusServer
6050 * dbus/dbus-server.c: add data slot support
6052 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
6053 return values and handle errors
6055 * dbus/dbus-dataslot.c: factor out the data slot stuff from
6058 * Doxyfile.in (INPUT): add glib subdir
6060 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
6061 setup_with_g_main instead of hookup_with_g_main; write docs
6063 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6065 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
6066 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6067 * dbus/dbus-message.c: (dbus_message_append_boolean),
6068 (dbus_message_append_boolean_array),
6069 (dbus_message_get_args_valist), (_dbus_message_test):
6070 * dbus/dbus-message.h:
6071 * doc/dbus-specification.sgml:
6072 Various fixes as pointed out by Havoc.
6074 * test/data/invalid-messages/bad-boolean-array.message:
6075 * test/data/invalid-messages/bad-boolean.message:
6076 Add invalid boolean value test cases.
6078 2003-02-24 Anders Carlsson <andersca@codefactory.se>
6080 * dbus/dbus-internals.c: (_dbus_type_to_string):
6081 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6082 (_dbus_marshal_validate_arg):
6083 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6084 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6085 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
6086 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
6087 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
6088 (dbus_message_iter_get_double),
6089 (dbus_message_iter_get_boolean_array), (message_iter_test):
6090 * dbus/dbus-message.h:
6091 * dbus/dbus-protocol.h:
6092 * doc/dbus-specification.sgml:
6093 * test/data/valid-messages/lots-of-arguments.message:
6094 Add support for boolean and boolean array types.
6096 2003-02-23 Havoc Pennington <hp@pobox.com>
6098 * dbus/dbus-keyring.c: finish most of this implementation and
6101 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
6102 these barf if the error isn't cleared to NULL
6104 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
6105 (_dbus_create_directory): new function
6107 * dbus/dbus-errors.c (dbus_set_error): fix warning
6109 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
6110 (_dbus_string_hex_decode): new function
6111 (test_hex_roundtrip): test code
6113 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
6115 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
6117 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
6118 the save-to-temp/rename trick to atomically write the new file
6119 (_dbus_string_parse_uint): new function
6121 2003-02-22 Havoc Pennington <hp@pobox.com>
6123 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
6125 2003-02-22 Havoc Pennington <hp@pobox.com>
6127 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
6128 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
6130 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
6132 * dbus/test/data/sha-1: add US government test suite for SHA-1
6134 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6136 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6137 Make string arrays NULL-terminated.
6139 * dbus/dbus-memory.c: (dbus_free_string_array):
6140 * dbus/dbus-memory.h:
6141 New function for freeing NULL-terminated string arrays.
6143 * dbus/dbus-message-builder.c: (append_quoted_string),
6144 (_dbus_message_data_load):
6145 Add support for array types.
6147 * dbus/dbus-message.c: (check_message_handling):
6148 Add more types as test cases.
6150 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
6151 (_dbus_string_parse_double):
6152 Add the start offset to the end offset.
6154 * test/data/valid-messages/lots-of-arguments.message:
6155 New test message with lots of arguments.
6157 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6159 * dbus/dbus-message.c: (dbus_message_append_nil),
6160 (dbus_message_append_int32), (dbus_message_append_uint32),
6161 (dbus_message_append_double), (dbus_message_append_string),
6162 (dbus_message_append_int32_array),
6163 (dbus_message_append_uint32_array),
6164 (dbus_message_append_double_array),
6165 (dbus_message_append_byte_array),
6166 (dbus_message_append_string_array):
6167 Fix all out-of-memory handling in these functions.
6169 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6171 * dbus/dbus-message.c: (dbus_message_append_nil):
6174 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6176 * dbus/dbus-message.c: (dbus_message_append_args_valist),
6177 (dbus_message_append_nil), (dbus_message_append_int32_array),
6178 (dbus_message_append_uint32_array),
6179 (dbus_message_append_double_array),
6180 (dbus_message_append_byte_array),
6181 (dbus_message_append_string_array), (dbus_message_get_args_valist),
6182 (dbus_message_iter_get_int32_array),
6183 (dbus_message_iter_get_uint32_array),
6184 (dbus_message_iter_get_double_array),
6185 (dbus_message_iter_get_byte_array),
6186 (dbus_message_iter_get_string_array):
6188 * dbus/dbus-message.h:
6189 Add functions for appending and getting arrays.
6191 2003-02-21 Anders Carlsson <andersca@codefactory.se>
6193 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
6194 element size at least 8 bytes, fixes mempool tests on
6197 2003-02-20 Alexander Larsson <alexl@redhat.com>
6199 * dbus/dbus-transport-unix.c (unix_do_iteration):
6200 Unlock the connection mutex during a blocking select call.
6201 Add todo about how we need a way to wake up the select.
6203 * dbus/dbus-connection-internal.h:
6204 * dbus/dbus-connection.c:
6205 Add _dbus_connection_lock and _dbus_connection_unlock.
6207 2003-02-19 Havoc Pennington <hp@pobox.com>
6209 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
6210 Doxyfile.in, not Doxyfile
6212 * dbus/dbus-keyring.c: do some hacking on this
6214 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
6216 * dbus/dbus-errors.c (dbus_set_error_const): do not call
6218 (dbus_set_error): remove dbus_error_init, check for message ==
6219 NULL *before* we sprintf into it, and add @todo about including
6220 system headers in this file
6222 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
6224 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
6226 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
6227 get various bits of user information based on either username
6229 (_dbus_homedir_from_username): new function
6231 2003-02-19 Anders Carlsson <andersca@codefactory.se>
6234 Add check for nonposix getpwnam_r
6236 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
6237 Align the pool element size to a sizeof (void *) boundary.
6239 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
6240 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
6241 General Solaris fixes.
6243 * test/data/valid-messages/simplest-manual.message:
6244 Explicitly state that we want little-endian packing.
6246 2003-02-19 Mikael Hallendal <micke@codefactory.se>
6248 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6250 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
6251 Added to create a transport connecting using a tcp/ip socket.
6253 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
6254 to a tcp socket at given host and port.
6255 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
6258 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
6260 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
6261 Added to create a server listening on a TCP/IP socket.
6263 2003-02-19 Havoc Pennington <hp@pobox.com>
6265 Throughout: mop up all the Doxygen warnings and undocumented
6268 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
6269 to search any paths.
6271 * dbus/dbus-threads.c: move global mutex initializers to
6272 dbus-internals.h, multiple prototypes was confusing doxygen
6273 besides being kind of ugly
6275 * Doxyfile (PREDEFINED): have Doxygen define
6276 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
6277 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
6278 (do not abuse the feature! it's for stuff like the autogenerated
6279 macros in dbus-md5.c, not just for things you don't feel like
6282 2003-02-18 Havoc Pennington <hp@pobox.com>
6284 * dbus/dbus-string.c (_dbus_string_zero): new function
6286 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
6287 wrap it in some dbus-friendly API
6289 * dbus/dbus-types.h: add 16-bit types
6291 2003-02-18 Joe Shaw <joe@assbarn.com>
6293 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
6294 credentials from our currently running process.
6295 (get_word): Fix a buglet where we were copying the entire length
6296 instead of relative to our position.
6298 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
6299 keys on the stack... it's 640k of data.
6301 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
6302 read the credentials byte off the socket, even if we don't have
6304 (_dbus_poll): Implement poll() using select() for systems which
6307 * glib/test-dbus-glib.c (main): Print out an error if no
6308 parameters are given.
6310 * test/data/auth/fallback.auth-script: Added. Tests that a client
6311 can fallback to a secondary auth mechanism if the first fails.
6313 2003-02-18 Havoc Pennington <hp@pobox.com>
6317 2003-02-17 Havoc Pennington <hp@pobox.com>
6319 * doc/dbus-specification.sgml: lots of cosmetic
6320 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
6321 env variable to DBUS_BUS_ADDRESS, s/client/application/,
6322 s/server/bus/ (except in authentication section). Add a section
6323 "Message Bus Message Routing"
6325 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
6331 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6333 * doc/dbus-specification.sgml:
6334 Specification updates.
6336 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6338 * bus/activation.c: (bus_activation_init), (child_setup),
6339 (bus_activation_activate_service):
6341 * bus/main.c: (main):
6342 Set DBUS_ADDRESS environment variable.
6344 * dbus/dbus-errors.c: (dbus_set_error):
6345 Don't use va_copy since that's a C99 feature.
6347 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
6348 (_dbus_spawn_async):
6349 * dbus/dbus-sysdeps.h:
6350 Add child_setup_func to _dbus_spawn_async.
6352 * doc/dbus-specification.sgml:
6353 Update specification.
6355 * test/spawn-test.c: (setup_func), (main):
6358 2003-02-17 Alexander Larsson <alexl@redhat.com>
6360 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
6363 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6367 * doc/dbus-test-plan.sgml:
6368 Add test plan document.
6373 2003-02-17 Anders Carlsson <andersca@codefactory.se>
6375 * dbus/dbus-message.c: (decode_header_data),
6376 (_dbus_message_loader_return_buffer):
6377 Set the header padding amount when loading a message.
6379 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6381 * bus/dispatch.c: (send_one_message):
6382 Only send broadcast messages to registered connections.
6384 * dbus/dbus-message.c: (dbus_message_name_is):
6385 * dbus/dbus-message.h:
6386 New convenience function.
6388 * dbus/dbus-transport-debug.c: (do_reading):
6389 Only dispatch one message per run.
6392 * test/bus-test.c: (new_connection_callback), (die),
6393 (test_hello_client1_handler), (test_hello_client2_handler),
6394 (test_hello_replies), (main):
6396 * test/bus-test-loop.[ch]:
6399 2003-02-16 Havoc Pennington <hp@pobox.com>
6401 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
6402 backward conditional
6404 2003-02-16 Alexander Larsson <alexl@redhat.com>
6406 * dbus/dbus-connection.c:
6407 Implement sent_message_with_reply. (with_reply_and block is still
6409 Made dispatch_message not lose message if OOM.
6411 * dbus/dbus-errors.h:
6412 Add NoReply error (for reply timeouts).
6414 2003-02-16 Alexander Larsson <alexl@redhat.com>
6416 * dbus/dbus-hash.c (_dbus_hash_table_unref):
6417 Actually free keys and values when destroying hashtable.
6419 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6421 * dbus/dbus-auth.c: (client_try_next_mechanism):
6424 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
6425 Return TRUE if there's no thread implementation around.
6427 * glib/dbus-gmain.c: (free_source),
6428 (dbus_connection_hookup_with_g_main):
6429 Make sure to remove the GSource when the connection is finalized.
6431 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6433 * bus/dispatch.c: (bus_dispatch_message_handler):
6434 * dbus/dbus-errors.h:
6435 Return an error if someone tries to send a message to a service
6438 2003-02-16 Anders Carlsson <andersca@codefactory.se>
6440 * bus/activation.c: (load_directory), (bus_activation_init),
6441 (bus_activation_activate_service):
6444 (bus_driver_handle_activate_service), (bus_driver_handle_message):
6445 More work on the activation handling.
6447 * dbus/dbus-errors.h:
6448 Add some error messages
6450 * dbus/dbus-message.c: (dbus_message_new_error_reply):
6451 * dbus/dbus-message.h:
6452 New function that creates an error message.
6454 * dbus/dbus-protocol.h:
6455 Add ACTIVATE_SERVER message.
6457 * dbus/dbus-server-unix.c: (unix_handle_watch),
6458 (_dbus_server_new_for_domain_socket):
6459 Call _dbus_fd_set_close_on_exec.
6461 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
6462 (_dbus_spawn_async), (_dbus_disable_sigpipe),
6463 (_dbus_fd_set_close_on_exec):
6464 * dbus/dbus-sysdeps.h:
6465 Add _dbus_fd_set_close_on exec function. Also add function that checks
6466 that all open fds are set to close-on-exec and warns otherwise.
6468 * dbus/dbus-transport-unix.c:
6469 (_dbus_transport_new_for_domain_socket):
6470 Call _dbus_fd_set_close_on_exec.
6472 2003-02-16 Havoc Pennington <hp@pobox.com>
6474 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
6475 allow people to avoid setting SIGPIPE to SIG_IGN
6476 (_dbus_connection_new_for_transport): disable SIGPIPE unless
6477 we've been asked not to
6479 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6481 * dbus/dbus-list.c: (_dbus_list_append_link),
6482 (_dbus_list_prepend_link):
6483 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
6487 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6490 * bus/activation.c: (bus_activation_entry_free),
6491 (add_desktop_file_entry), (load_directory), (bus_activation_init):
6493 * bus/main.c: (main):
6494 Add simple activation support, doesn't work yet though.
6496 2003-02-15 Zack Rusin <zack@kde.org>
6498 * qt/dbus-qthread.cpp: small casting fix
6500 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6502 * dbus/dbus-errors.c: (dbus_set_error):
6503 * dbus/dbus-errors.h:
6504 Add a few errors and make dbus_set_error void.
6506 * dbus/dbus-sysdeps.c:
6507 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
6508 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
6509 * dbus/dbus-sysdeps.h:
6510 Add _dbus_spawn_async.
6512 * test/spawn-test.c: (main):
6513 Test for _dbus_spawn_async.
6515 2003-02-15 Anders Carlsson <andersca@codefactory.se>
6517 * dbus/dbus-internals.h:
6518 Fix build without tests.
6520 * dbus/dbus-list.c: (alloc_link):
6521 Fix a segfault when a malloc fails.
6523 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
6524 (dbus_malloc0), (dbus_realloc):
6525 Add support for malloc debugging.
6527 2003-02-15 Alexander Larsson <alexl@redhat.com>
6529 * dbus/dbus-threads.c:
6530 * dbus/dbus-threads.h:
6531 Add condvars. Remove static mutext from API.
6532 Implement static mutexes by initializing them from threads_init.
6534 * glib/dbus-gthread.c:
6535 * qt/dbus-qthread.cpp:
6536 Update with the thread api changes.
6541 Turn StaticMutex into normal mutex + init function.
6542 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
6543 _dbus_list_append_link, _dbus_list_prepend_link
6546 * dbus/dbus-sysdeps.c:
6547 * dbus/dbus-sysdeps.h:
6548 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
6549 _dbus_atomic_dec. Only slow fallback implementation at the moment.
6551 * dbus/dbus-protocol.h:
6552 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
6554 * dbus/dbus-message.c:
6555 Make ref/unref atomic.
6558 * dbus/dbus-connection-internal.h:
6559 * dbus/dbus-connection.c:
6560 * dbus/dbus-connection.h:
6562 Change _peek to _borrow,_return & _steal_borrowed.
6563 Change disconnect callback to event.
6564 Make dbus_connection_dispatch_messages reentrant.
6566 * dbus/dbus-transport.c:
6567 Don't ref the connection on calls to the transport
6570 * dbus/dbus-message-handler.c:
6573 * glib/dbus-gmain.c:
6574 Don't use peek_message anymore
6577 * test/debug-thread.c:
6578 * test/debug-thread.h:
6579 Simple thread implementation that asserts() on deadlocks in
6580 single-threaded code.
6583 (main) Call debug_threads_init.
6586 Use disconnect message instead of disconnect callback.
6590 Don't call dbus_connection_set_disconnect_function. Instead export
6591 bus_connection_disconnect.
6594 Call bus_connection_disconnect when we get a disconnected message.
6596 2003-02-15 Havoc Pennington <hp@pobox.com>
6598 * dbus/dbus-message.c (dbus_message_new): fool around with the
6601 2003-02-14 Havoc Pennington <hp@pobox.com>
6603 * dbus/dbus-mempool.c: fail if the debug functions so indicate
6605 * dbus/dbus-memory.c: fail if the debug functions indicate we
6608 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
6609 (_dbus_decrement_fail_alloc_counter): debug functions to
6610 simulate memory allocation failures
6612 2003-02-14 Havoc Pennington <hp@pobox.com>
6614 * dbus/dbus-errors.h (struct DBusError): add a word of padding
6617 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6619 * bus/driver.c: (bus_driver_handle_hello):
6621 * bus/services.c: (bus_service_lookup):
6622 Reorder message sending so we get a more sane order.
6624 * test/bus-test.c: (message_handler):
6627 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6629 * bus/driver.c: (bus_driver_send_service_deleted),
6630 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6631 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6632 (bus_driver_send_welcome_message),
6633 (bus_driver_handle_list_services),
6634 (bus_driver_handle_acquire_service),
6635 (bus_driver_handle_service_exists):
6636 * dbus/dbus-bus.c: (dbus_bus_register_client),
6637 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6638 * dbus/dbus-errors.c: (dbus_result_to_string):
6639 * dbus/dbus-errors.h:
6640 * dbus/dbus-message.c: (dbus_message_append_args),
6641 (dbus_message_append_args_valist), (dbus_message_get_args),
6642 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
6643 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
6644 (dbus_message_iter_get_byte_array),
6645 (dbus_message_iter_get_string_array), (message_iter_test),
6646 (check_message_handling), (_dbus_message_test):
6647 * dbus/dbus-message.h:
6648 * test/bus-test.c: (main):
6649 Change fields to arguments in messages, so that they won't be
6650 confused with header fields.
6652 * glib/test-dbus-glib.c: (main):
6653 Remove append_fields from hello message.
6655 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6657 * dbus/dbus-errors.c:
6658 * dbus/dbus-message.c:
6659 * dbus/dbus-string.c:
6660 Documentation fixes.
6662 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6664 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
6666 Implement support for timeouts in dbus-glib.
6668 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6670 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
6671 * dbus/dbus-message.c: (process_test_subdir):
6672 * test/break-loader.c: (find_breaks_based_on):
6673 Plug some memory leaks.
6675 2003-02-13 Richard Hult <rhult@codefactory.se>
6677 * bus/main.c: Fix build.
6679 * dbus/dbus-errors.h:
6680 * dbus/dbus-errors.c: Fix copyright for Anders.
6682 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6687 * bus/connection.c: (bus_connection_foreach):
6690 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
6691 (unescape_string), (new_section), (parse_section_start),
6692 (parse_key_value), (report_error), (bus_desktop_file_load),
6693 (bus_desktop_file_get_string):
6694 * bus/desktop-file.h:
6695 Use DBusError for error reporting.
6697 * bus/dispatch.c: (send_one_message),
6698 (bus_dispatch_message_handler):
6699 * bus/driver.c: (bus_driver_send_service_deleted),
6700 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6701 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
6702 (bus_driver_send_welcome_message),
6703 (bus_driver_handle_list_services),
6704 (bus_driver_handle_acquire_service),
6705 (bus_driver_handle_service_exists):
6706 * bus/loop.c: (bus_loop_run):
6708 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
6710 * bus/utils.c: (bus_wait_for_memory):
6712 New files with general utility functions.
6714 * dbus/dbus-internals.h:
6715 Remove _DBUS_HANDLE_OOM.
6717 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6719 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
6720 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
6721 * dbus/dbus-errors.h:
6722 Add DBusError structure.
6724 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6726 * test/data/valid-messages/standard-acquire-service.message:
6727 * test/data/valid-messages/standard-hello.message:
6728 * test/data/valid-messages/standard-list-services.message:
6729 * test/data/valid-messages/standard-service-exists.message:
6730 Add some standard messages.
6732 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6734 * bus/driver.c: (bus_driver_send_welcome_message),
6735 (bus_driver_handle_list_services),
6736 (bus_driver_handle_acquire_service),
6737 (bus_driver_handle_service_exists), (bus_driver_handle_message):
6738 Update for API changes in libdbus.
6740 * dbus/dbus-message.c: (dbus_message_new_reply):
6741 * dbus/dbus-message.h:
6742 Remove the name argument. The spec states that replies shouldn't
6745 2003-02-13 Anders Carlsson <andersca@codefactory.se>
6747 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
6748 (report_error), (bus_desktop_file_load), (lookup_section),
6749 (lookup_line), (bus_desktop_file_get_raw),
6750 (bus_desktop_file_get_string):
6751 * bus/desktop-file.h:
6752 Some fixes, and new functions for getting a key value from a section.
6754 2003-02-13 Havoc Pennington <hp@pobox.com>
6756 * test/data/auth/fail-after-n-attempts.auth-script: new test
6758 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
6761 2003-02-13 Havoc Pennington <hp@pobox.com>
6763 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
6764 dbus_credentials_match were backward
6766 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
6767 NO_CREDENTIALS and ROOT_CREDENTIALS
6769 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
6770 into here. Never process more commands after we've reached an
6771 end state; store further data as unused bytes.
6773 * test/data/auth/*: add more auth tests
6775 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
6776 command to match exact string and EXPECT_UNUSED to match unused
6779 * test/Makefile.am (dist-hook): fix to dist all the test stuff
6781 2003-02-12 Havoc Pennington <hp@pobox.com>
6783 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
6784 \r off of popped lines
6786 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
6789 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
6792 2003-02-12 Havoc Pennington <hp@pobox.com>
6794 * dbus/Makefile.am: remove break-loader from the build, since it
6797 * configure.in: add --enable-gcov to turn on coverage profiling
6798 flags and disable optimization
6800 2003-02-10 Havoc Pennington <hp@pobox.com>
6802 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
6803 initial cut at test framework for DBusAuth from laptop.
6804 Doesn't quite work yet but it compiles and I need to get
6805 it off the 266mhz laptop. ;-)
6807 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
6808 fix a memleak in error case
6810 2003-02-12 Anders Carlsson <andersca@codefactory.se>
6813 * bus/desktop-file.c:
6814 * bus/desktop-file.h:
6815 Add a desktop file parser.
6817 2003-02-11 Zack Rusin <zack@kde.org>
6819 * qt/message.[h|cpp]: sample implementation
6820 of the KDE wrapper for DBusMessage
6822 2003-02-09 Zack Rusin <zack@kde.org>
6824 * test/bus-test.c: make_it_compile
6825 * doc/dbus-specification.sgml: minimal semantic fix
6827 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6833 2003-02-06 Anders Carlsson <andersca@codefactory.se>
6836 * dbus/dbus-break-loader.c:
6838 * test/break-loader.c:
6839 Move dbus-break-loader to test/ and rename it to break-loader.
6841 2003-02-02 Havoc Pennington <hp@pobox.com>
6843 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
6844 for code to manage cookies in your home directory
6846 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
6848 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
6849 to authenticate, then disconnect the client.
6851 2003-02-03 Alexander Larsson <alexl@redhat.com>
6853 * dbus/dbus-message.c (dbus_message_append_fields):
6856 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6858 * doc/dbus-specification.sgml:
6859 Update address format section.
6861 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6864 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
6865 (message_handler), (new_connection_callback), (loop_quit),
6869 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6871 * bus/driver.c: (bus_driver_handle_service_exists):
6872 Simplify the code a bit.
6874 * dbus/dbus-bus.c: (dbus_bus_service_exists):
6877 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6880 Add libdbus-daemon.la and link to it.
6882 2003-02-01 James Willcox <jwillcox@gnome.org>
6884 * bus/driver.c: (bus_driver_handle_own_service):
6885 Actually include the service reply code in the message.
6887 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6889 * bus/driver.c: (bus_driver_handle_service_exists):
6890 Don't unref the incoming message.
6892 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6894 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
6896 2003-02-02 Anders Carlsson <andersca@codefactory.se>
6898 * dbus/dbus-server.c: (dbus_server_listen):
6899 * dbus/dbus-transport.c: (_dbus_transport_open):
6900 ifdef out the calls to the debug transport and server.
6902 2003-02-02 Alexander Larsson <alexl@redhat.com>
6904 * dbus/dbus-watch.c (dbus_watch_get_flags):
6905 Add note in the docs that ERROR or HANGUP won't be returned
6906 and are assumed always on.
6908 * glib/dbus-gmain.c (add_watch):
6909 Always add IO_ERR | IO_HUP
6911 * dbus/dbus-message.h:
6912 Add semicolon after dbus_message_iter_get_string_array().
6913 Makes qt code build again
6915 2003-02-01 Anders Carlsson <andersca@codefactory.se>
6917 * bus/driver.c: (create_unique_client_name),
6918 (bus_driver_handle_hello):
6919 Don't take a name, just use a numeric id to identify
6923 * dbus/dbus-bus.c: (dbus_bus_register_client),
6924 (dbus_bus_acquire_service), (dbus_bus_service_exists):
6926 Add new convenience functions for communicating with the bus.
6928 * dbus/dbus-message.h:
6930 * dbus/dbus-protocol.h:
6933 2003-02-01 Alexander Larsson <alexl@redhat.com>
6935 * dbus/dbus-message.c (dbus_message_append_fields):
6936 Add some more doc comments.
6938 2003-02-01 Havoc Pennington <hp@pobox.com>
6940 * dbus/dbus-break-loader.c (randomly_modify_length): change
6941 a 4-byte value in the message as if it were a length
6943 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
6944 execute bit on saved files
6946 2003-02-01 Havoc Pennington <hp@pobox.com>
6948 * dbus/dbus-break-loader.c (main): new program to find messages
6949 that break the loader.
6951 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
6952 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
6954 * dbus/dbus-string.c (_dbus_string_set_byte): new
6956 2003-01-31 Havoc Pennington <hp@pobox.com>
6958 * dbus/dbus-message.c: refactor the test code to be more general,
6959 in preparation for writing a "randomly permute test cases to
6960 try to break the loader" program.
6962 2003-01-31 Havoc Pennington <hp@pobox.com>
6964 * doc/dbus-specification.sgml: work on the specification
6966 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
6967 the protocol version of the message.
6969 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
6970 no longer specifies that.
6971 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
6974 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
6975 "break" for DBUS_TYPE_NIL, remove @todo
6977 2003-01-31 Havoc Pennington <hp@pobox.com>
6979 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
6980 just set_is_error/get_is_error as this is a commonly-used
6981 function, and write docs.
6983 2003-01-31 Anders Carlsson <andersca@codefactory.se>
6985 * dbus/dbus-address.c: (dbus_address_entry_free):
6986 Free key and value lists.
6988 * dbus/dbus-internals.c: (_dbus_type_to_string):
6989 Add the types we didn't have.
6991 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
6992 (_dbus_marshal_validate_arg):
6995 * dbus/dbus-message.c: (dbus_message_set_sender):
6996 Remove todo about being able to set sender to NULL.
6998 (dbus_message_set_is_error_reply),
6999 (dbus_message_get_is_error_reply):
7000 * dbus/dbus-message.h:
7003 * dbus/dbus-protocol.h:
7004 Add error reply flag.
7006 * test/data/valid-messages/opposite-endian.message:
7007 Add NIL type to test.
7009 2003-01-31 Havoc Pennington <hp@pobox.com>
7011 * doc/dbus-specification.sgml: fully specify the header. Add
7012 flags and major protocol version, and change header/body len to
7015 * dbus/dbus-message-builder.c (append_saved_length): append length
7018 * dbus/dbus-message.c (dbus_message_create_header): change header
7019 length and body length to unsigned. Add the new fields from the
7021 (_dbus_message_loader_return_buffer): unsigned header/body len
7023 2003-01-30 Havoc Pennington <hp@pobox.com>
7025 * dbus/dbus-auth.c: rework to use only REJECTED, no
7028 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
7029 use REJECTED, suggested by Mark McLoughlin
7031 2003-01-30 Havoc Pennington <hp@pobox.com>
7033 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
7034 a better way to report errors here. e.g. "unix address lacks
7035 path" or something. also "no such file" when the path doesn't
7038 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
7040 (dbus_parse_address): add @todo about documenting address format,
7041 and allowing , and ; to be escaped
7043 2003-01-30 Anders Carlsson <andersca@codefactory.se>
7046 Add dbus-address.[ch]
7048 * dbus/dbus-address.c: (dbus_address_entry_free),
7049 (dbus_address_entries_free), (create_entry),
7050 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
7051 (dbus_parse_address), (_dbus_address_test):
7052 * dbus/dbus-address.h:
7053 New files for dealing with address parsing.
7055 * dbus/dbus-connection.c:
7056 Document timeout functions.
7058 * dbus/dbus-message.c:
7059 Document dbus_message_new_from_message.
7061 * dbus/dbus-server-debug.c:
7064 * dbus/dbus-server.c: (dbus_server_listen):
7065 Parse address and use correct server implementation.
7067 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
7068 * dbus/dbus-string.h:
7069 New function with test.
7071 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
7075 * dbus/dbus-transport-debug.c:
7078 * dbus/dbus-transport.c: (_dbus_transport_open):
7079 Parse address and use correct transport implementation.
7081 2003-01-30 Havoc Pennington <hp@pobox.com>
7083 * dbus/dbus-message.c: use message->byte_order instead of
7084 DBUS_COMPILER_BYTE_ORDER throughout.
7085 (dbus_message_create_header): pad header to align the
7086 start of the body of the message to 8-byte boundary
7088 * dbus/dbus-marshal.h: make all the demarshalers take const
7089 DBusString arguments.
7091 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
7092 validate message args here, so we don't have to do slow validation
7093 later, and so we catch bad messages as they are incoming. Also add
7094 better checks on header_len and body_len. Also fill in
7097 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
7098 implemented properly)
7099 (_dbus_string_validate_nul): new function to check all-nul
7101 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
7102 get_arg_end_pos and remove all validation
7103 (_dbus_marshal_validate_arg): actually do validation here.
7105 2003-01-29 Havoc Pennington <hp@pobox.com>
7107 * dbus/dbus-message.c (check_message_handling): fix assertion
7108 failure on set_client_serial
7110 2003-01-28 Havoc Pennington <hp@pobox.com>
7112 * dbus/dbus-server-debug.c: Add doc section comments
7114 * dbus/dbus-transport-debug.c: add doc section comments
7116 2003-01-28 Havoc Pennington <hp@redhat.com>
7118 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
7119 the reverse order from how I had it
7120 (_dbus_string_base64_encode): reverse encoding order. I was
7121 basically byteswapping everything during encoding.
7123 2003-01-28 Anders Carlsson <andersca@codefactory.se>
7125 * dbus/dbus-connection-internal.h:
7126 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
7127 (_dbus_connection_remove_timeout):
7128 Add functions for adding and removing timeouts.
7130 * dbus/dbus-message.c: (dbus_message_new_from_message):
7131 Add new function that takes a message and creates an exact
7132 copy of it, but with the refcount set to 1.
7133 (check_message_handling):
7136 * dbus/dbus-server-protected.h:
7137 * dbus/dbus-server.c: (_dbus_server_init_base),
7138 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
7139 (dbus_server_set_timeout_functions):
7140 (_dbus_server_remove_timeout):
7141 New functions so that a server can add and remove timeouts.
7143 (dbus_server_listen):
7144 Add commented out call to dbus_server_debug_new.
7146 * dbus/dbus-timeout.c: (_dbus_timeout_new):
7147 Actually set the handler, doh.
7149 * dbus/dbus-transport.c: (_dbus_transport_open):
7150 Add commented out call to dbus_transport_debug_client_new.
7153 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
7155 2003-01-28 Havoc Pennington <hp@pobox.com>
7157 * dbus/dbus-message.c (check_message_handling): function to check
7158 on the loaded message, iterates over it etc.
7160 2003-01-28 Havoc Pennington <hp@pobox.com>
7162 * test/Makefile.am (dist-hook): fix make distdir
7164 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
7166 2003-01-27 Havoc Pennington <hp@pobox.com>
7168 * dbus/dbus-mempool.c (time_for_size): replace printf with
7171 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
7172 empty lines; fix the SAVE_LENGTH stuff to be
7173 START_LENGTH/END_LENGTH so it actually works; couple other
7176 * test/Makefile.am (dist-hook): add dist-hook for .message files
7178 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
7179 can be constant or locked.
7180 (_dbus_string_free): allow freeing a const string as
7183 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
7185 * dbus/dbus-test-main.c (main): take an argument which is the
7186 directory containing test data
7188 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
7189 argument to this and load all the messages in test/data/
7190 checking that they can be loaded or not loaded as appropriate.
7192 2003-01-27 Anders Carlsson <andersca@codefactory.se>
7194 * bus/dispatch.c: (bus_dispatch_message_handler):
7195 Dispatch messages sent to services.
7197 * bus/driver.c: (bus_driver_send_service_deleted),
7198 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7199 (bus_driver_send_service_acquired):
7200 Add helper functions for sending service related messages.
7202 (bus_driver_send_welcome_message):
7203 Send HELLO_REPLY instead of WELCOME.
7205 (bus_driver_handle_list_services):
7206 Send LIST_SERVICES_REPLY instead of SERVICES.
7208 (bus_driver_handle_own_service),
7209 (bus_driver_handle_service_exists):
7210 New message handlers.
7212 (bus_driver_handle_message):
7213 Invoke new message handlers.
7215 (bus_driver_remove_connection):
7216 Don't remove any services here since that's done automatically
7217 by bus_service_remove_owner now.
7220 New function signatures.
7222 * bus/services.c: (bus_service_add_owner):
7223 Send ServiceAcquired message if we're the only primary owner.
7225 (bus_service_remove_owner):
7226 Send ServiceAcquired/ServiceLost messages.
7228 (bus_service_set_prohibit_replacement),
7229 (bus_service_get_prohibit_replacement):
7230 Functions for setting prohibit replacement.
7232 (bus_service_has_owner):
7233 New function that checks if a connection is in the owner queue of
7237 Add new function signatures.
7239 * dbus/dbus-list.c: (_dbus_list_test):
7240 Add tests for _dbus_list_remove_last and traversing the list backwards.
7243 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
7244 go any further, so return NULL then.
7246 * dbus/dbus-protocol.h:
7247 Add new messages, service flags and service replies.
7249 2003-01-26 Havoc Pennington <hp@pobox.com>
7251 * dbus/dbus-message-builder.c: implement, completely untested.
7253 * test/data/*: add data to be used in testing.
7254 ".message" files are our simple loadable text format.
7255 ".message-raw" will be binary dumps of messages.
7257 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
7259 2003-01-26 Havoc Pennington <hp@pobox.com>
7261 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
7263 * dbus/dbus-errors.c (dbus_result_to_string): add
7266 * dbus/dbus-message-builder.c: new file, will contain code to load
7267 up messages from files. Not implemented yet.
7269 2003-01-26 Havoc Pennington <hp@pobox.com>
7271 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
7272 the sender by setting to NULL
7274 2003-01-26 Havoc Pennington <hp@pobox.com>
7276 The unit tests pass, but otherwise untested. If it breaks, the
7277 tests should have been better. ;-)
7279 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
7282 * dbus/dbus-message.c: redo everything so we maintain
7283 message->header as the only copy of the various fields.
7284 This avoids the possibility of out-of-memory in some cases,
7285 for example dbus_message_lock() can't run out of memory anymore,
7286 and avoids extra copying. Figured I may as well go ahead and do
7287 this since it was busted for dbus_message_lock to not return
7288 failure on OOM, and dbus_message_write_header was totally
7289 unchecked for OOM. Also fixed some random other bugs.
7291 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
7292 that strings are nul-terminated. Also, end_pos can be equal
7293 to string length just not greater than, I think.
7294 (_dbus_marshal_set_int32): new function
7295 (_dbus_marshal_set_uint32): new function
7296 (_dbus_marshal_set_string): new function
7298 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
7299 a warning, init timeout_list to NULL
7300 (dbus_connection_send_message): don't use uninitialized variable
7303 * dbus/dbus-string.c (_dbus_string_replace_len): new function
7305 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7307 * bus/driver.c: (bus_driver_handle_hello),
7308 (bus_driver_send_welcome_message):
7311 2003-01-26 Anders Carlsson <andersca@codefactory.se>
7313 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
7314 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7315 (dbus_connection_unref):
7316 * dbus/dbus-marshal.c: (_dbus_marshal_test):
7317 * dbus/dbus-message.c: (dbus_message_unref),
7320 (dbus_message_get_fields):
7321 Remove debugging printout.
7323 (_dbus_message_loader_return_buffer):
7324 Don't store the header string.
7326 (_dbus_message_test):
7329 2003-01-26 Richard Hult <rhult@codefactory.se>
7331 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
7332 the file descriptor list, since it can change under us.
7334 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7336 * glib/dbus-gmain.c: (dbus_connection_prepare),
7337 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
7338 (remove_watch), (dbus_connection_hookup_with_g_main):
7339 Rewrite the glib handling to use its own GSource instead of a
7340 GIOChannel so we can catch messages put in the queue while waiting
7343 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7346 * bus/connection.c: (connection_disconnect_handler),
7347 (connection_watch_callback), (bus_connection_setup):
7348 * bus/dispatch.c: (send_one_message),
7349 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
7350 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
7352 * bus/driver.c: (bus_driver_send_service_deleted),
7353 (bus_driver_send_service_created), (bus_driver_handle_hello),
7354 (bus_driver_send_welcome_message),
7355 (bus_driver_handle_list_services), (bus_driver_remove_connection),
7356 (bus_driver_handle_message):
7358 Refactor code, put the message dispatching in its own file. Use
7359 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
7362 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7364 * dbus/dbus-internals.h:
7365 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
7367 * dbus/dbus-message.c: (dbus_message_get_sender):
7368 * dbus/dbus-message.h:
7369 Implement dbus_message_get_sender.
7371 * dbus/dbus-protocol.h:
7372 Add message and service defines.
7374 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7376 * dbus/dbus-connection.c: (dbus_connection_send_message):
7377 * dbus/dbus-message-internal.h:
7378 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
7379 (dbus_message_write_header):
7380 Remove _dbus_messag_unlock and don't set the client serial on a
7381 message if one already exists.
7383 2003-01-24 Havoc Pennington <hp@pobox.com>
7385 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
7388 * bus/driver.c (bus_driver_handle_list_services): fix a leak
7391 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7393 * dbus/dbus-list.c: (alloc_link), (free_link):
7394 Use a memory pool for the links.
7396 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7398 * bus/connection.c: (bus_connection_foreach):
7400 Add new bus_connection_foreach function.
7402 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
7403 Add function that broadcasts a message to all clients.
7405 (bus_driver_send_service_created), (bus_driver_handle_hello),
7406 (bus_driver_send_welcome_message),
7407 (bus_driver_handle_list_services), (bus_driver_message_handler):
7408 Implement functions that take care of listing services, and notifying
7409 clients when new services are created.
7411 * bus/services.c: (bus_services_list):
7413 Add new function that returns an array of strings with the currently
7414 registered services.
7417 * glib/dbus-gmain.c:
7418 Update copyright year.
7420 2003-01-25 Anders Carlsson <andersca@codefactory.se>
7422 * dbus/dbus-connection.c: (dbus_connection_send_message):
7423 Unlock the message in case it was sent earlier.
7425 (dbus_connection_send_message_with_reply_and_block):
7426 Remove the reply message from the list.
7428 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7429 Set array_len and new_pos correctly.
7431 (_dbus_marshal_test):
7432 Remove debug output.
7434 * dbus/dbus-message-internal.h:
7435 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
7436 New function that returns the reply serial.
7438 (_dbus_message_unlock):
7439 New function that unlocks a message and resets its header.
7441 (dbus_message_append_string_array),
7442 (dbus_message_get_fields_valist),
7443 (dbus_message_iter_get_field_type),
7444 (dbus_message_iter_get_string_array),
7445 (dbus_message_get_fields),
7446 (dbus_message_append_fields_valist):
7447 Handle string arrays.
7449 (dbus_message_set_sender):
7450 Make this function public since the bus daemon needs it.
7452 (decode_header_data):
7453 Set the reply serial to -1 initially.
7455 * dbus/dbus-message.h:
7456 Add dbus_message_set_sender.
7458 2003-01-24 Havoc Pennington <hp@pobox.com>
7460 * doc/dbus-specification.sgml: add some stuff
7462 2003-01-22 Havoc Pennington <hp@pobox.com>
7464 * doc/dbus-specification.sgml: Start to document the protocol.
7466 2003-01-22 Havoc Pennington <hp@pobox.com>
7468 * dbus/dbus-connection.c
7469 (dbus_connection_send_message_with_reply_and_block): add some @todo
7471 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
7473 2003-01-21 Havoc Pennington <hp@pobox.com>
7475 (patch untested because can't compile)
7477 * bus/driver.c (create_unique_client_name): make this function
7478 never recycle client names. Also, caller should initialize
7481 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
7483 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7485 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7486 (_dbus_marshal_int32), (_dbus_marshal_uint32),
7487 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
7488 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
7489 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7490 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7491 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
7492 * dbus/dbus-marshal.h:
7493 * dbus/dbus-protocol.h:
7494 Add support for marshalling and demarshalling integer, double
7497 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7502 * bus/connection.c: (connection_disconnect_handler):
7503 Remove the connection from the bus driver's list.
7505 (connection_watch_callback): Dispatch messages.
7507 (free_connection_data): Free connection name.
7509 (bus_connection_setup): Add connection to the bus driver's list.
7510 (bus_connection_remove_owned_service):
7511 (bus_connection_set_name), (bus_connection_get_name):
7512 Add functions for setting and getting the connection's name.
7515 Add function headers.
7517 * bus/driver.c: (create_unique_client_name),
7518 (bus_driver_handle_hello_message),
7519 (bus_driver_send_welcome_message), (bus_driver_message_handler),
7520 (bus_driver_add_connection), (bus_driver_remove_connection):
7523 * bus/services.c: (bus_service_free):
7525 New file that handles communication and registreation with the bus
7528 2003-01-21 Anders Carlsson <andersca@codefactory.se>
7530 * dbus/dbus-connection.c: (dbus_connection_send_message):
7531 Add a new client_serial parameter.
7533 (dbus_connection_send_message_with_reply):
7534 Remove a @todo since we've implemented the blocking function.
7536 (dbus_connection_send_message_with_reply_and_block):
7537 New function that sends a message and waits for a reply and
7538 then returns the reply.
7540 * dbus/dbus-connection.h:
7543 * dbus/dbus-errors.c: (dbus_result_to_string):
7544 * dbus/dbus-errors.h:
7545 Add new DBUS_RESULT.
7547 * dbus/dbus-message-internal.h:
7548 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
7549 (_dbus_message_set_sender), (dbus_message_write_header),
7550 (dbus_message_new_reply), (decode_header_data),
7551 (_dbus_message_loader_return_buffer), (_dbus_message_test):
7552 * dbus/dbus-message.h:
7553 Add new functions that set the reply serial and sender.
7554 Also marshal and demarshal them correctly and add test.
7556 * dbus/dbus-protocol.h:
7557 Add new DBUS_MESSAGE_TYPE_SENDER.
7560 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
7561 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
7562 (dbus_connection_hookup_with_g_main):
7563 * glib/test-dbus-glib.c: (main):
7564 Rewrite to use GIOChannel and remove the GSource crack.
7566 * test/echo-client.c: (main):
7567 * test/watch.c: (check_messages):
7568 Update for changed APIs
7570 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7572 * dbus/Makefile.am: Add dbus-timeout.[cħ]
7574 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
7575 Create a DBusTimeoutList.
7576 (dbus_connection_set_timeout_functions): Add new function to
7577 set timeout callbacks
7579 * dbus/dbus-connection.h: Add public DBusTimeout API.
7581 * dbus/dbus-message.c: (dbus_message_get_service):
7582 * dbus/dbus-message.h: New function.
7584 * dbus/dbus-server.c: Fix small doc typo.
7586 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
7588 2003-01-19 Anders Carlsson <andersca@codefactory.se>
7590 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
7591 of the string, just as long as specified.
7593 2003-01-19 Havoc Pennington <hp@pobox.com>
7595 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
7598 * dbus/dbus-server.c (dbus_server_set_max_connections)
7599 (dbus_server_get_max_connections, dbus_server_get_n_connections):
7600 keep track of current number of connections, and add API for
7601 setting a max (but haven't implemented enforcing the max yet)
7603 2003-01-18 Havoc Pennington <hp@pobox.com>
7605 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
7606 reading/writing if read_watch != NULL or write_watch != NULL.
7608 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
7609 the message loader code to actually load message->header and
7610 message->body into the newly-created message.
7612 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
7615 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
7616 (dbus_connection_get_max_message_size)
7617 (dbus_connection_set_max_live_messages_size)
7618 (dbus_connection_get_max_live_messages_size): implement some
7619 resource limitation functions
7621 * dbus/dbus-resources.c: new file implementing some of the
7622 resource limits stuff
7624 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
7625 missing docs, add @todo to handle OOM etc.
7627 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
7630 2003-01-18 Havoc Pennington <hp@pobox.com>
7632 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
7633 connection if it hasn't been already.
7635 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
7636 replace with DisconnectFunction.
7638 2003-01-18 Havoc Pennington <hp@pobox.com>
7640 Building --disable-verbose-mode --disable-asserts --disable-tests
7641 cuts the library from 112K to 45K or so
7643 * configure.in: check for varargs macro support,
7644 add --enable-verbose-mode, --enable-asserts.
7646 * dbus/dbus-internals.h (_dbus_assert): support
7648 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
7650 2003-01-18 Havoc Pennington <hp@pobox.com>
7652 * dbus/dbus-test.c: include config.h so that tests actually run
7654 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
7655 so the failure mode when that assumption fails will be plenty
7658 2003-01-18 Havoc Pennington <hp@pobox.com>
7660 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
7662 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
7665 * test/Makefile.am: don't use special variable "TESTS" for echo-*
7666 since we don't want to use those in make check
7668 2003-01-15 Havoc Pennington <hp@redhat.com>
7674 2003-01-15 Havoc Pennington <hp@redhat.com>
7676 * test/Makefile.am: fix so that test source code ends up in the
7677 distribution on make distcheck
7679 2003-01-15 Havoc Pennington <hp@redhat.com>
7685 2003-01-15 Havoc Pennington <hp@redhat.com>
7687 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
7688 fix build when --disable-tests
7690 * Makefile.am (EXTRA_DIST): put HACKING in here
7692 * HACKING: document procedure for making a tarball release.
7694 2003-01-14 Anders Carlsson <andersca@codefactory.se>
7696 * bus/connection.c: (connection_error_handler),
7697 (bus_connection_setup):
7698 * bus/main.c: (main):
7699 Make sure that the DBusConnectionData struct is NULLed
7700 out to prevent a segfault.
7702 * dbus/dbus-errors.c: (dbus_result_to_string):
7703 * dbus/dbus-errors.h:
7704 * dbus/dbus-message.c: (dbus_message_get_fields),
7705 (dbus_message_get_fields_valist), (_dbus_message_test):
7706 * dbus/dbus-message.h:
7707 Make dbus_message_get_fields return a result code so we can
7708 track invalid fields as well as oom.
7710 2003-01-11 Havoc Pennington <hp@pobox.com>
7712 * configure.in: change --enable-test/--enable-ansi action-if-given
7713 to enable_foo=$enableval instead of enable_foo=yes
7715 2003-01-08 Havoc Pennington <hp@pobox.com>
7717 * dbus/dbus-string.c (_dbus_string_align_length): new function
7719 * dbus/dbus-test-main.c: move main() for test app here
7721 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
7722 symbol to run tests, because dbus-test isn't in the main
7725 Code review nitpicks.
7727 * dbus/dbus-message.c (dbus_message_write_header): add newlines
7728 for people with narrow emacs ;-). Assert client_serial was filled
7729 in. Assert message->name != NULL.
7730 (dbus_message_append_fields): have "first_field_type" arg separate
7731 from va list, needed for C++ binding that also uses varargs IIRC
7732 and helps with type safety
7733 (dbus_message_new): add @todo about using DBusString to store
7734 service/name internally
7735 (dbus_message_new): don't leak ->service and ->name on OOM later
7737 (dbus_message_unref): free the service name
7738 (dbus_message_get_fields): same change to varargs
7739 i.e. first_field_type
7740 (_dbus_message_loader_return_buffer): assert that the message data
7741 is aligned (if not it's a bug in our code). Put in verbose griping
7742 about why we set corrupted = TRUE.
7743 (decode_header_data): add FIXME that char* is evil. Was going to
7744 add FIXME about evil locale-specific string.h strncmp, but just
7745 switched to wacky string-as-uint32 optimization. Move check for
7746 "no room for field name" above get_const_data_len() to avoid
7747 assertion failure in get_const_data_len if we have trailing 2
7748 bytes or the like. Check for service and name fields being
7749 provided twice. Don't leak service/name on error. Require field
7750 names to be aligned to 4 bytes.
7752 * dbus/dbus-marshal.c: move byte swap stuff to header
7753 (_dbus_pack_int32): uscore-prefix
7754 (_dbus_unpack_int32): uscore-prefix
7755 (_dbus_unpack_uint32): export
7756 (_dbus_demarshal_string): add @todo complaining about use of
7758 (_dbus_marshal_get_field_end_pos): add @todo about bad error
7759 handling allowing corrupt data to go unchecked
7761 2003-01-08 Havoc Pennington <hp@redhat.com>
7763 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
7764 to the select() as needed for authentication. (should be using
7765 _dbus_poll() not select, but for another day)
7767 * dbus/dbus.h: include dbus/dbus-protocol.h
7769 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7771 * dbus/Makefile.am (dbusinclude_HEADERS): Install
7774 2003-01-08 Anders Carlsson <andersca@codefactory.se>
7776 * dbus/dbus-internals.c: (_dbus_type_to_string):
7777 New function that returns a string describing a type.
7779 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
7780 * dbus/dbus-marshal.h:
7781 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
7782 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
7783 (dbus_message_iter_get_byte_array):
7784 * dbus/dbus-message.h:
7785 Add new convenience functions for appending and getting message fields.
7786 Also add demarshalling routines for byte arrays.
7788 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7790 * dbus/dbus-connection-internal.h:
7791 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
7792 (_dbus_connection_get_next_client_serial),
7793 (dbus_connection_send_message):
7794 * dbus/dbus-internals.h:
7795 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
7796 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
7797 (_dbus_marshal_uint32), (_dbus_demarshal_double),
7798 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
7799 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
7800 (_dbus_verbose_bytes), (_dbus_marshal_test):
7801 * dbus/dbus-marshal.h:
7802 * dbus/dbus-message-internal.h:
7803 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
7804 (dbus_message_write_header), (_dbus_message_lock),
7805 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
7806 (dbus_message_get_name), (dbus_message_append_int32),
7807 (dbus_message_append_uint32), (dbus_message_append_double),
7808 (dbus_message_append_string), (dbus_message_append_byte_array),
7809 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
7810 (dbus_message_iter_unref), (dbus_message_iter_has_next),
7811 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
7812 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
7813 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
7814 (decode_header_data), (_dbus_message_loader_return_buffer),
7815 (message_iter_test), (_dbus_message_test):
7816 * dbus/dbus-message.h:
7817 * dbus/dbus-protocol.h:
7818 * dbus/dbus-test.c: (main):
7820 * glib/test-dbus-glib.c: (message_handler), (main):
7821 * test/echo-client.c: (main):
7822 * test/watch.c: (check_messages):
7823 Make messages sendable and receivable for real.
7825 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7827 * dbus/dbus-marshal.c: (_dbus_marshal_double),
7828 (_dbus_marshal_string), (_dbus_marshal_byte_array):
7829 * dbus/dbus-message.c: (dbus_message_append_int32),
7830 (dbus_message_append_uint32), (dbus_message_append_double),
7831 (dbus_message_append_string), (dbus_message_append_byte_array):
7832 Handle OOM restoration.
7834 2003-01-07 Anders Carlsson <andersca@codefactory.se>
7836 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7837 (_dbus_demarshal_string), (_dbus_marshal_test):
7838 * dbus/dbus-marshal.h:
7839 * dbus/dbus-message.c: (dbus_message_get_name),
7840 Document these functions.
7842 (dbus_message_append_int32), (dbus_message_append_uint32),
7843 (dbus_message_append_double), (dbus_message_append_string),
7844 (dbus_message_append_byte_array):
7845 * dbus/dbus-message.h:
7846 Add functions for adding message fields of different types.
7848 * dbus/dbus-protocol.h:
7849 Add the different types.
7851 2003-01-05 Havoc Pennington <hp@pobox.com>
7853 * bus/connection.c: implement routines for handling connections,
7854 first thing is keeping a list of owned services on each connection
7855 and setting up watches etc.
7857 * bus/services.c: implement a mapping from service names to lists
7860 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
7862 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
7863 to use static mutexes for global data
7865 * dbus/dbus-connection.c (dbus_connection_set_data): add new
7866 collection of functions to set/get application-specific data
7867 on the DBusConnection.
7869 2003-01-04 Havoc Pennington <hp@pobox.com>
7871 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
7872 (_dbus_poll): new function
7874 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
7877 * bus/loop.c: initial code for the daemon main loop
7879 2003-01-04 Havoc Pennington <hp@pobox.com>
7881 * test/watch.c (error_handler): make it safe if the error handler
7882 is called multiple times (if we s/error handler/disconnect
7883 handler/ we should just guarantee it's called only once)
7885 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
7886 error handler on disconnect (it's quite possible we should
7887 just change the error handler to a "disconnect handler," I'm
7888 not sure we have any other meaningful errors)
7890 * configure.in: check for getpwnam_r
7892 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
7893 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
7894 mechanism as in SASL spec, using socket credentials
7896 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
7897 (_dbus_send_credentials_unix_socket): new function
7899 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
7901 (_dbus_write): only check errno if <0 returned
7902 (_dbus_write_two): ditto
7904 2003-01-02 Anders Carlsson <andersca@codefactory.se>
7906 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
7907 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
7908 (_dbus_marshal_test):
7909 * dbus/dbus-marshal.h:
7910 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
7911 to _dbus_marshal_utf8_string. Also fix some tests.
7913 2002-12-28 Harri Porten <porten@kde.org>
7915 * configure.in: added check for C++ compiler and a very cheesy
7916 check for the Qt integration
7918 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
7920 * qt/Makefile.am: added
7922 * qt/.cvsignore: added
7924 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
7925 latter, added #ifdef QT_THREAD_SUPPORT guard.
7927 * dbus/Makefile.am: added missing headers for make dist
7929 2002-12-28 Kristian Rietveld <kris@gtk.org>
7931 * dbus/Makefile.am: fixup export-symbols-regex.
7933 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7935 * acinclude.m4: Add this file and put the
7936 PKG_CHECK_MODULE macro in it.
7938 2002-12-27 Anders Carlsson <andersca@codefactory.se>
7940 * dbus/dbus-marshal.c: (_dbus_marshal_string),
7941 (_dbus_demarshal_double), (_dbus_demarshal_int32),
7942 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
7943 (_dbus_marshal_test):
7944 Make the demarshalling routines align the pos argument.
7945 Add string marshalling tests and fix the obvious bugs
7948 2002-12-26 Havoc Pennington <hp@pobox.com>
7950 * dbus/dbus-auth.c: fixes fixes fixes
7952 * dbus/dbus-transport-unix.c: wire up support for
7953 encoding/decoding data on the wire
7955 * dbus/dbus-auth.c (_dbus_auth_encode_data)
7956 (_dbus_auth_decode_data): append to target string
7957 instead of nuking it.
7959 2002-12-26 Havoc Pennington <hp@pobox.com>
7961 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
7962 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
7965 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
7966 avoid swap_bytes() overhead (ignoring possible assembly stuff for
7967 now). Main point is because I wanted unpack_uint32 to implement
7969 (_dbus_verbose_bytes): new function
7971 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
7973 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
7974 mechanism to handle a corrupt message stream
7975 (_dbus_message_loader_new): fix preallocation to only prealloc,
7978 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
7979 (_dbus_string_test): enhance tests for copy/move and fix the
7982 * dbus/dbus-transport-unix.c: Hold references in more places to
7983 avoid reentrancy problems
7985 * dbus/dbus-transport.c: ditto
7987 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
7988 leak reference count in no-message case
7990 * test/watch.c (do_mainloop): handle adding/removing watches
7991 during iteration over the watches. Also, ref the connection/server
7992 stored on a watch, so we don't try to mangle a destroyed one.
7994 * dbus/dbus-transport-unix.c (do_authentication): perform
7997 * dbus/dbus-auth.c (get_state): add a state
7998 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
7999 (_dbus_auth_get_unused_bytes): append the unused bytes
8000 to the passed in string, rather than prepend
8002 * dbus/dbus-transport.c (_dbus_transport_init_base): create
8003 the auth conversation DBusAuth
8005 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
8006 (_dbus_transport_new_for_domain_socket): when creating a
8007 transport, pass in whether it's a client-side or server-side
8008 transport so we know which DBusAuth to create
8010 2002-12-03 Havoc Pennington <hp@pobox.com>
8012 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
8013 _after_ finalizing the derived members
8014 (unix_connection_set): unref watch if we fail to add it
8016 * dbus/dbus-connection.c (dbus_connection_unref): delete the
8017 transport first, so that the connection owned by the
8018 transport will be valid as the transport finalizes.
8020 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
8021 if necessary, and remove watches from the connection.
8023 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
8025 2002-12-26 Anders Carlsson <andersca@codefactory.se>
8027 * dbus/dbus-marshal.c: (_dbus_marshal_string),
8028 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8029 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
8030 (_dbus_marshal_test):
8031 * dbus/dbus-marshal.h:
8032 Add string marshal functions and have the demarshal functions
8033 return the new position.
8035 2002-12-25 Havoc Pennington <hp@pobox.com>
8037 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
8038 it is a simple protocol that just maps directly to SASL.
8040 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
8041 initial implementation, not actually used yet.
8043 * dbus/dbus-string.c (_dbus_string_find): new function
8044 (_dbus_string_equal): new function
8045 (_dbus_string_base64_encode): new function
8046 (_dbus_string_base64_decode): new function
8048 2002-12-25 Anders Carlsson <andersca@codefactory.se>
8051 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
8052 (_dbus_marshal_int32), (_dbus_marshal_uint32),
8053 (_dbus_demarshal_double), (_dbus_demarshal_int32),
8054 (_dbus_demarshal_uint32), (_dbus_marshal_test):
8055 * dbus/dbus-marshal.h:
8056 * dbus/dbus-protocol.h:
8057 * dbus/dbus-test.c: (main):
8059 Add un-optimized marshalling/demarshalling routines.
8061 2002-12-25 Harri Porten <porten@kde.org>
8063 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
8065 2002-12-24 Zack Rusin <zack@kde.org>
8067 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
8068 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
8071 2002-12-24 Havoc Pennington <hp@pobox.com>
8073 * glib/dbus-gthread.c: fix include
8075 * glib/dbus-glib.h: rename DBusMessageHandler for now.
8076 I think glib API needs to change, though, as you don't
8077 want to use DBusMessageFunction, you want to use the
8078 DBusMessageHandler object. Probably
8079 dbus_connection_open_with_g_main_loop()
8080 and dbus_connection_setup_g_main_loop() or something like that
8081 (but think of better names...) that just create a connection
8082 that has watch/timeout functions etc. already set up.
8084 * dbus/dbus-connection.c
8085 (dbus_connection_send_message_with_reply): new function just to
8086 show how the message handler helps us deal with replies.
8088 * dbus/dbus-list.c (_dbus_list_remove_last): new function
8090 * dbus/dbus-string.c (_dbus_string_test): free a string that
8093 * dbus/dbus-hash.c: use memory pools for the hash entries
8094 (rebuild_table): be more paranoid about overflow, and
8095 shrink table when we can
8096 (_dbus_hash_test): reduce number of sprintfs and write
8097 valid C89. Add tests for case where we grow and then
8098 shrink the hash table.
8100 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
8102 * dbus/dbus-connection.c (dbus_connection_register_handler)
8103 (dbus_connection_unregister_handler): new functions
8105 * dbus/dbus-message.c (dbus_message_get_name): new
8107 * dbus/dbus-list.c: fix docs typo
8109 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
8110 an object representing a handler for messages.
8112 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8115 * glib/dbus-gthread.c: (dbus_gthread_init):
8116 Don't use the gdbus prefix for public functions.
8118 2002-12-16 Anders Carlsson <andersca@codefactory.se>
8122 Add GLib checks and fixup .pc files
8126 * glib/dbus-gmain.c: (gdbus_connection_prepare),
8127 (gdbus_connection_check), (gdbus_connection_dispatch),
8128 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
8129 (dbus_connection_gsource_new):
8130 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
8131 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
8132 * glib/test-dbus-glib.c: (message_handler), (main):
8135 2002-12-15 Harri Porten <porten@kde.org>
8137 * autogen.sh: check for libtoolize before attempting to use it
8139 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
8142 * .cvsignore: ignore more stamp files
8144 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
8146 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
8147 without make install.
8149 2002-12-15 Havoc Pennington <hp@pobox.com>
8151 * dbus/dbus-threads.c: add thread stubs that a higher library
8152 layer can fill in. e.g. the GLib wrapper might fill them in with
8153 GThread stuff. We still need to use this thread API to
8154 thread-safe-ize the library.
8156 2002-12-12 Havoc Pennington <hp@pobox.com>
8158 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
8159 below new interfaces and include fewer system headers.
8161 * dbus/dbus-sysdeps.c (_dbus_read): new function
8162 (_dbus_write): new function
8163 (_dbus_write_two): new function
8164 (_dbus_connect_unix_socket): new function
8165 (_dbus_listen_unix_socket): new function
8167 * dbus/dbus-message-internal.h: change interfaces to use
8170 2002-12-11 Havoc Pennington <hp@pobox.com>
8172 * dbus/dbus-types.h: add dbus_unichar
8174 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
8176 * dbus/dbus-connection.c (dbus_connection_send_message): return
8179 * dbus/dbus-transport.c: include dbus-watch.h
8181 * dbus/dbus-connection.c: include dbus-message-internal.h
8183 * HACKING: add file with coding guidelines stuff.
8185 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
8186 handling here, for security purposes (as in vsftpd). Not actually
8187 using this class yet.
8189 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
8190 system/libc usage here, as in vsftpd, for ease of auditing (and
8191 should also simplify portability). Haven't actually moved all the
8192 system/libc usage into here yet.
8194 2002-11-25 Havoc Pennington <hp@pobox.com>
8196 * dbus/dbus-internals.c (_dbus_verbose): fix to not
8197 always print the first verbose message.
8199 2002-11-24 Havoc Pennington <hp@pobox.com>
8201 * test/echo-client.c, test/echo-server.c: cheesy test
8204 * configure.in (AC_CHECK_FUNCS): check for writev
8206 * dbus/dbus-message.c (_dbus_message_get_network_data): new
8209 * dbus/dbus-list.c (_dbus_list_foreach): new function
8211 * dbus/dbus-internals.c (_dbus_verbose): new function
8213 * dbus/dbus-server.c, dbus/dbus-server.h: public object
8214 representing a server that listens for connections.
8216 * dbus/.cvsignore: create
8218 * dbus/dbus-errors.h, dbus/dbus-errors.c:
8219 public API for reporting errors
8221 * dbus/dbus-connection.h, dbus/dbus-connection.c:
8222 public object representing a connection that
8223 sends/receives messages. (Same object used for
8224 both client and server.)
8226 * dbus/dbus-transport.h, dbus/dbus-transport.c:
8227 Basic abstraction for different kinds of stream
8228 that we might read/write messages from.
8230 2002-11-23 Havoc Pennington <hp@pobox.com>
8232 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
8235 * dbus/dbus-test.c (main): add list test, and include
8236 dbus-test.h as intended
8238 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
8239 (_dbus_hash_table_remove_int): return value indicates
8240 whether the entry existed to remove
8242 * dbus/dbus-list.c: add linked list utility class,
8245 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
8248 2002-11-23 Havoc Pennington <hp@pobox.com>
8250 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
8251 DBUS_END_DECLS to nothing, that should fix this once and for all
8253 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
8255 * dbus/dbus-message.c, dbus/dbus-hash.c:
8256 add some missing @brief
8258 2002-11-23 Havoc Pennington <hp@pobox.com>
8260 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
8261 to avoid confusing Doxygen
8263 * dbus/dbus-hash.c: @} not }@
8265 * dbus/dbus-message.c (struct DBusMessage): split out
8268 2002-11-23 Havoc Pennington <hp@pobox.com>
8270 * configure.in: pile on more warning flags if using gcc
8272 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
8273 to document static functions
8275 * configure.in: add summary to end of configure so it
8276 looks nice and attractive
8278 * dbus/dbus-hash.c: finish implementation and write unit
8281 * configure.in: add --enable-tests to enable unit tests
8283 * dbus/dbus-test.c: test program to run unit tests
8284 for all files in dbus/*, initially runs a test for
8287 * dbus/dbus-internals.h: file to hold some internal utility stuff
8289 2002-11-22 Havoc Pennington <hp@redhat.com>
8291 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
8292 "ported" away from Tcl
8294 * dbus/dbus-types.h: header for types such as dbus_bool_t
8296 2002-11-22 Havoc Pennington <hp@redhat.com>
8298 * dbus/dbus.h: fixups for doc warnings
8300 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
8302 (QUIET): make it quiet so we can see warnings
8304 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
8306 2002-11-22 Havoc Pennington <hp@redhat.com>
8308 * Makefile.am: include "Doxyfile" target in all-local
8310 * configure.in: generate the Doxyfile
8312 * Doxyfile.in: move Doxyfile here, so we can use
8313 configure to generate a Doxyfile with the right
8316 2002-11-22 Havoc Pennington <hp@redhat.com>
8318 * dbus/dbus-message.c: move inline docs into .c file
8320 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
8321 so all docs are under doc/
8322 (MAN_EXTENSION): generate man pages. Use extension
8323 ".3dbus" which matches ".3qt" on my system,
8324 I guess this is OK, I don't know really.
8325 (FILE_PATTERNS): look for .c files not .h, makes sense
8328 2002-11-22 Havoc Pennington <hp@pobox.com>
8330 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
8331 because any app can be a server, and any app can be a client,
8332 the bus is a special kind of server.
8334 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
8336 * Doxyfile : adding. Still needs Makefile rules to be generated
8337 automatically (just run "doxygen" in the toplevel dir for now to
8340 * dbus/dbus-message.h : Adding sample docs (javadoc since
8341 resembles gtk-doc a little more)
8343 * dbus/dbus.h : Adding sample docs
8345 2002-11-21 Havoc Pennington <hp@redhat.com>
8347 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
8348 so we can allow ourselves to include files directly,
8349 instead of having to use dbus.h
8351 * dbus/dbus.h: fill in
8353 * dbus/dbus-message.h: sketch out a sample header file.
8354 Include griping if you include it directly instead of
8357 * dbus/dbus-macros.h: new file with macros for extern "C",
8358 TRUE/FALSE, NULL, etc.
8360 * doc/file-boilerplate.c: put include guards in here
8362 2002-11-21 Havoc Pennington <hp@redhat.com>
8364 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
8366 * COPYING: include the GPL as well, and license code
8367 under both AFL and GPL.
8369 2002-11-21 Havoc Pennington <hp@redhat.com>
8371 * acconfig.h: get rid of this
8373 * autogen.sh (run_configure): add --no-configure option
8375 * configure.in: remove AC_ARG_PROGRAM to make
8376 autoconf complain less. add AC_PREREQ.
8377 add AC_DEFINE third arg.
8379 2002-11-21 Anders Carlsson <andersca@codefactory.se>
8382 Fix references so we can distcheck.
8384 2002-11-21 Havoc Pennington <hp@redhat.com>
8386 * Initial module creation