1 2003-06-29 Havoc Pennington <hp@pobox.com>
3 * mono/Test.cs (class Test): fire up a main loop and run it
5 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6 done once, the app has to do it
8 2003-06-26 Havoc Pennington <hp@pobox.com>
10 * mono/Connection.cs: set up connection with the glib main loop
12 2003-07-01 Havoc Pennington <hp@redhat.com>
14 * doc/dbus-specification.sgml: clarify the format of a type code,
15 change suggested by Jim Blandy
17 2003-06-29 Miloslav Trmac <mitr@volny.cz>
20 * tools/Makefile.am: Don't assume srcdir == builddir.
22 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
24 (_dbus_memory_test): New function.
25 * dbus/dbus-test.h: Add _dbus_memory_test ().
26 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
28 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
30 (dbus_message_new): Remove obsolete @todo.
32 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
33 (_dbus_marshal_set_uint64): Fix comment.
35 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
36 hardcode FIELD_REPLY_SERIAL.
38 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
39 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
41 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
42 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
44 2003-06-24 Havoc Pennington <hp@pobox.com>
46 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
48 2003-06-23 Anders Carlsson <andersca@codefactory.se>
54 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
56 * gcj/org/Makefile.am:
57 * gcj/org/freedesktop/.cvsignore:
58 * gcj/org/freedesktop/Makefile.am:
59 * gcj/org/freedesktop/dbus/.cvsignore:
60 * gcj/org/freedesktop/dbus/Makefile.am:
61 * gcj/org/freedesktop/dbus/Message.java: (Message),
63 * gcj/org/freedesktop/dbus/natMessage.cc:
66 2003-06-22 Havoc Pennington <hp@pobox.com>
68 * mono/Connection.cs: add more bindings
70 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
73 2003-06-22 Havoc Pennington <hp@pobox.com>
75 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
76 Start wrapping more stuff.
78 2003-06-22 Havoc Pennington <hp@pobox.com>
80 * mono/Message.cs: implement Message.Wrap() that ensures we only
81 have a single C# wrapper per DBusMessage, assuming it works which
84 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
85 (dbus_message_free_data_slot): new
86 (dbus_message_set_data): new
87 (dbus_message_get_data): new
89 2003-06-22 Havoc Pennington <hp@pobox.com>
91 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
92 (_dbus_data_slot_allocator_alloc): rework these to keep a
93 reference count on each slot and automatically manage a global
94 slot ID variable passed in by address
96 * bus/bus.c: convert to new dataslot API
98 * dbus/dbus-bus.c: convert to new dataslot API
100 * dbus/dbus-connection.c: convert to new dataslot API
102 * dbus/dbus-server.c: convert to new dataslot API
104 * glib/dbus-gmain.c: ditto
108 * bus/connection.c: ditto
110 2003-06-22 Anders Carlsson <andersca@codefactory.se>
112 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
113 after the gcj checks so that the correct configuration tags
114 will be added to libtool.
116 * dbus-glib-1.pc.in: No need to specify any includes since
117 dbus-1.pc.in has those.
119 2003-06-22 Havoc Pennington <hp@pobox.com>
121 * mono/*, gcj/*, configure.in, Makefile.am:
122 Check in makefiles and subdirs for mono and gcj bindings.
123 Neither binding actually exists, just trying to get through
124 all the build and other boring bits.
126 2003-06-21 Philip Blundell <philb@gnu.org>
128 * tools/dbus-monitor.1: Updated.
130 * tools/dbus-send.1: Likewise.
132 2003-06-20 Anders Carlsson <andersca@codefactory.se>
134 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
135 for hangup and error after checking read so we won't discard
136 pending data if both hangup and read are set.
138 2003-06-19 Philip Blundell <philb@gnu.org>
140 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
142 * tools/dbus-send.c: Accept both --system and --session.
144 * tools/dbus-monitor.c: Same here.
146 2003-06-19 Anders Carlsson <andersca@codefactory.se>
148 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
149 from C++ (Patch by Miloslav Trmac).
151 2003-06-15 Joe Shaw <joe@assbarn.com>
153 * configure.in: Check for socklen_t.
155 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
157 * test/test-segfault.c: Add #include <sys/time.h>
159 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
160 dbus-launch needs it.
162 2003-06-09 Havoc Pennington <hp@redhat.com>
164 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
165 SUN_LEN, it breaks abstract socket usage
167 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
170 2003-06-04 Havoc Pennington <hp@pobox.com>
172 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
173 using unix:abstract=/foo, and when listening in a tmpdir
174 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
176 * dbus/dbus-transport.c (_dbus_transport_open): support
179 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
180 support abstract sockets
182 * dbus/dbus-transport-unix.c
183 (_dbus_transport_new_for_domain_socket): support abstract sockets
185 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
186 toggle as an argument, implement abstract namespace support
187 (_dbus_listen_unix_socket): ditto
189 * configure.in: add --enable-abstract-sockets and implement
190 a configure check for autodetection of the right value.
192 2003-06-01 Havoc Pennington <hp@pobox.com>
194 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
195 in /tmp (though on Linux this will end up being useless,
196 when we add abstract namespace support)
198 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
201 2003-05-28 Colin Walters <walters@verbum.org>
203 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
205 2003-05-18 Anders Carlsson <andersca@codefactory.se>
207 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
209 2003-05-17 Colin Walters <walters@gnu.org>
211 * tools/dbus-send.c: Don't exit with an error code if --help was
212 passed. Default to using the session bus instead of the system
215 * tools/dbus-launch.c: Ditto.
217 * tools/dbus-monitor.c: Ditto.
219 * tools/dbus-send.1: Update with new arguments.
221 * tools/dbus-launch.c: Emit code to export variables. New
222 arguments -s and -c to specify shell syntax, and a bit of code to
223 autodetect syntax. Also, allow specifying a program to run.
225 * tools/dbus-launch.1: Update with new arguments.
227 * tools/dbus-send.1: Ditto.
229 * tools/dbus-monitor.1: Ditto.
231 2003-05-17 Havoc Pennington <hp@pobox.com>
233 * bus/config-parser.c (merge_included): merge in policies from
234 child configuration file.
236 * bus/policy.c (bus_policy_merge): function to merge two policies
239 2003-05-16 Havoc Pennington <hp@redhat.com>
241 * dbus/dbus-connection.c: disable verbose lock spew
243 * tools/dbus-send.c: add --print-reply command line option
245 * tools/dbus-print-message.h (print_message): new util function
246 shared by dbus-send and dbus-monitor
248 * tools/dbus-monitor.c (handler_func): exit on disconnect
250 * dbus/dbus-transport-unix.c (do_reading): if the transport is
251 disconnected, don't try to use the read_watch
253 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
254 so we can find this bug more easily
256 2003-05-16 Havoc Pennington <hp@redhat.com>
258 * bus/policy.c (free_rule_list_func): avoid a crash when passed
259 NULL as DBusHashTable is annoyingly likely to do.
261 2003-05-16 Colin Walters <walters@verbum.org>
263 * tools/dbus-monitor.c: Add --session argument and usage()
266 * tools/dbus-monitor.1: Update with new --session arg.
268 * bus/Makefile.am (install-data-hook): Create
269 $(libdir)/dbus-1.0/services so that the session bus is happy.
271 2003-05-15 Havoc Pennington <hp@redhat.com>
273 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
274 on non-x86. ifdef's are evil.
276 2003-05-15 Havoc Pennington <hp@redhat.com>
282 * bus/Makefile.am (initddir): apparently we are supposed to put
283 init scripts in /etc/rc.d/init.d not /etc/init.d
285 * bus/Makefile.am: remove the "you must --enable-tests to make
286 check" as it broke distcheck
288 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
290 2003-05-13 James Willcox <jwillcox@gnome.org>
293 * bus/activation.c: (bus_activation_service_created),
294 (bus_activation_activate_service):
295 * bus/driver.c: (bus_driver_send_service_deleted),
296 (bus_driver_send_service_created), (bus_driver_send_service_lost),
297 (bus_driver_send_service_acquired),
298 (bus_driver_send_welcome_message),
299 (bus_driver_handle_list_services):
300 * bus/session.conf.in:
301 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
302 (dbus_bus_service_exists), (dbus_bus_activate_service):
305 Add some convenience API which lets you activate a service, and did a
306 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
307 and dbus_message_get_args()
309 2003-05-11 Havoc Pennington <hp@pobox.com>
311 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
312 calling _dbus_marshal_validate_arg() for every byte in a byte
315 * dbus/dbus-message-handler.c: use atomic reference counting to
316 reduce number of locks slightly; the global lock in here sucks
318 * dbus/dbus-connection.c
319 (_dbus_connection_update_dispatch_status_and_unlock): variant of
320 update_dispatch_status that can be called with lock held; then use
321 in a couple places to reduce locking/unlocking
322 (dbus_connection_send): hold the lock over the whole function
323 instead of acquiring it twice.
325 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
327 * bus/connection.c (bus_connections_setup_connection): fix access
328 to already-freed memory.
330 * dbus/dbus-connection.c: keep a little cache of linked list
331 nodes, to avoid using the global linked list alloc lock in the
332 normal send-message case. Instead we just use the connection lock
333 that we already have to take.
335 * dbus/dbus-list.c (_dbus_list_find_last): new function
337 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
338 change to use a struct for the atomic type; fix docs,
339 they return value before increment, not after increment.
341 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
342 (_dbus_string_append_8_aligned): new functions to try to
343 microoptimize this operation.
344 (reallocate_for_length): break this out of set_length(), to
345 improve profile info, and also so we can consider inlining the
348 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
349 strings with some preallocation, cuts down on our calls to realloc
350 a fair bit. Though if we can get the "move entire string to empty
351 string" optimization below to kick in here, it would be better.
353 * dbus/dbus-string.c (_dbus_string_move): just call
354 _dbus_string_move_len
355 (_dbus_string_move_len): add a special case for moving
356 an entire string into an empty string; we can just
357 swap the string data instead of doing any reallocs.
358 (_dbus_string_init_preallocated): new function
360 2003-05-11 Havoc Pennington <hp@pobox.com>
362 Write a "test-profile" that does echo client-server with threads;
363 profile reveals lock contention, memcpy/realloc of buffers, and
364 UTF-8 validation as hot spots. 20% of lock contention eliminated
365 with dbus_atomic_inc/dec implementation on x86. Much remaining
366 contention is global mempool locks for GList and DBusList.
368 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
371 * dbus/dbus-connection.c (struct DBusConnection): use
372 dbus_atomic_t for the reference count
374 * dbus/dbus-message.c (struct DBusMessage): declare
375 dbus_atomic_t values as volatile
377 * configure.in: code to detect ability to use atomic integer
378 operations in assembly, from GLib patch
380 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
381 time, tired of it being wrong in threads and forked processes
383 * glib/test-profile.c: a little program to bounce messages back
384 and forth between threads and eat CPU
386 * dbus/dbus-connection.c: add debug spew macros for debugging
387 thread locks; include config.h at top; fix deadlock in
388 dbus_connection_flush()
390 2003-05-08 Havoc Pennington <hp@pobox.com>
392 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
393 data from getting written, and there wasn't a good reason to
396 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
397 dbus_verbose lines in test coverage
398 (main): add list of functions sorted by # of untested blocks
399 to the coverage report
401 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
403 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
405 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
408 * test/data/auth/cancel.auth-script: test canceling an
411 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
412 aren't used. in CVS history if we end up needing them.
414 2003-05-04 Havoc Pennington <hp@pobox.com>
416 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
419 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
420 function, which assumed length was in # of strings, not bytes
422 * dbus/dbus-message.c (_dbus_message_test): add tests for some
425 * dbus/dbus-connection.c
426 (_dbus_connection_queue_received_message): disable function for
427 now, we are only using it in test mode
429 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
430 remove a mistaken FIXME
432 2003-05-04 Havoc Pennington <hp@pobox.com>
434 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
435 unlock mutex on successful return, patch from Anders Gustafsson
437 2003-05-04 Havoc Pennington <hp@pobox.com>
439 * dbus-glib-1.pc.in (Requires): fix dependencies, from
442 2003-05-04 Havoc Pennington <hp@pobox.com>
444 * tools/dbus-launch.c: implement
446 * bus/main.c (main), bus/bus.c (bus_context_new):
447 implement --print-pid and --fork
449 2003-05-03 Havoc Pennington <hp@redhat.com>
451 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
452 the address had no value, and add to test suite. Fix and
453 regression test from Miloslav Trmac
455 2003-05-03 Havoc Pennington <hp@pobox.com>
457 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
458 watch is invalid when handled
460 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
461 dbus-launch utility to launch the bus from a shell script. Didn't
462 actually implement dbus-launch yet, it's just a placeholder still.
464 2003-05-03 Havoc Pennington <hp@pobox.com>
466 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
467 daemon; also documents daemon config file, so replaces
468 doc/config-file.txt. Corrected some stuff from config-file.txt in
469 the process of moving it.
471 2003-05-03 Havoc Pennington <hp@pobox.com>
473 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
476 2003-05-03 Colin Walters <walters@verbum.org>
478 * dbus/dbus-sysdeps.c (fill_user_info): Test against
479 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
481 * Makefile.am: Update to use new .pc versioning scheme.
483 2003-05-02 Havoc Pennington <hp@redhat.com>
485 * bus/system.conf.in: allow send/receive to/from message bus
488 2003-04-30 Havoc Pennington <hp@redhat.com>
490 * configure.in: print a note when building with unit tests and
493 2003-04-30 Havoc Pennington <hp@redhat.com>
495 * Makefile.am: add a check-local that complains if you didn't
496 configure with --enable-tests
498 2003-04-29 Havoc Pennington <hp@redhat.com>
500 * glib/dbus-gmain.c: docs cleanups
502 * dbus/dbus-types.h: add docs on int64 types
504 * dbus/dbus-memory.c: fix docs to avoid putting private API in
505 public API docs section
507 2003-04-29 Havoc Pennington <hp@redhat.com>
509 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
510 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
511 parallel install API version, not with the D-BUS package version.
513 * HACKING: move some of README over here
515 * README: updates, and document API/ABI policy
517 * configure.in: reindentation
519 2003-04-29 Havoc Pennington <hp@redhat.com>
521 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
522 to use this library" to be sure people have the right
525 2003-04-28 Havoc Pennington <hp@redhat.com>
527 * configure.in: add --enable-docs which by default is auto yes if
528 doxygen and db2html found, no otherwise; but can be forced on/off
530 * doc/Makefile.am: conditionalize whether to build docs on
533 2003-04-28 Havoc Pennington <hp@redhat.com>
539 * bus/system.conf.in: add <includedir>system.d</includedir>
541 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
542 username was provided but not uid
544 * bus/config-parser.c (struct BusConfigParser): keep track of
545 whether the parser is toplevel or was included; change some
546 of the error handling if it's included.
548 2003-04-27 Havoc Pennington <hp@pobox.com>
552 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
553 report correct status if we finish processing authentication
554 inside this function.
556 * bus/activation.c (try_send_activation_failure): use
557 bus_transaction_send_error_reply
559 * bus/connection.c (bus_connection_get_groups): return an error
560 explaining the problem
562 * bus/bus.c (bus_context_check_security_policy): implement
563 restriction here that inactive connections can only send the
564 hello message. Also, allow bus driver to send anything to
567 * bus/connection.c (bus_connection_complete): create the
568 BusClientPolicy here instead of on-demand.
569 (bus_connection_get_policy): don't return an error
571 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
572 sender field in message being replied to
574 * bus/bus.c (bus_context_check_security_policy): fix silly typo
575 causing it to return FALSE always
577 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
578 we checked sender rather than destination
580 2003-04-25 Havoc Pennington <hp@redhat.com>
582 test suite is slightly hosed at the moment, will fix soon
584 * bus/connection.c (bus_connections_expire_incomplete): fix to
585 properly disable the timeout when required
586 (bus_connection_set_name): check whether we can remove incomplete
587 connections timeout after we complete each connection.
589 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
590 probably still broken.
592 * bus/services.c (bus_registry_acquire_service): implement max
593 number of services owned, and honor allow/deny rules on which
594 services a connection can own.
596 * bus/connection.c (bus_connection_get_policy): report errors here
598 * bus/activation.c: implement limit on number of pending
601 2003-04-25 Havoc Pennington <hp@redhat.com>
603 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
604 where we used >= 0 instead of != DBUS_UID_UNSET.
606 2003-04-25 Havoc Pennington <hp@redhat.com>
608 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
609 were toggled without add/remove, fix from Anders Gustafsson
611 2003-04-24 Havoc Pennington <hp@redhat.com>
613 * test/data/valid-config-files/basic.conf: add <limit> tags to
616 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
617 <limit> tag in configuration file.
619 2003-04-24 Havoc Pennington <hp@redhat.com>
621 * bus/dispatch.c: somehow missed some name_is
623 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
624 (_dbus_timeout_set_interval): new
626 * bus/connection.c (bus_connections_setup_connection): record time
627 when each connection is first set up, and expire them after the
630 2003-04-24 Havoc Pennington <hp@redhat.com>
632 * dbus/dbus-message.c (dbus_message_name_is): rename
633 (dbus_message_service_is): rename
634 (dbus_message_sender_is): rename
635 (dbus_message_get_service): rename
637 2003-04-24 Havoc Pennington <hp@redhat.com>
639 * configure.in: add --enable-checks
641 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
643 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
645 (_dbus_connection_handler_destroyed_locked): move some private
646 functions into proper docs group
648 * dbus/dbus-internals.h: add _dbus_return_if_fail,
649 _dbus_return_val_if_fail
651 Throughout: use dbus_return_if_fail
653 2003-04-23 James Willcox <jwillcox@gnome.org>
656 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
657 (dbus_connection_setup_with_g_main),
658 (dbus_server_setup_with_g_main):
659 * glib/test-dbus-glib.c: (main):
660 * glib/test-thread-client.c: (main):
661 * glib/test-thread-server.c: (new_connection_callback), (main):
662 * tools/dbus-monitor.c: (main):
664 Added a GMainContext argument to dbus_connection_setup_with_g_main()
665 and dbus_server_setup_with_g_main().
667 2003-04-20 Havoc Pennington <hp@pobox.com>
669 * doc/dbus-specification.sgml: document the restrictions on
670 message and service names
672 2003-04-22 Havoc Pennington <hp@redhat.com>
674 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
675 support, and do some code cleanups to share more code and
676 speed up array marshal/demarshal.
678 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
680 * configure.in: generate dbus-arch-deps.h
682 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
685 2003-04-22 Havoc Pennington <hp@redhat.com>
687 * test/data/valid-messages/opposite-endian.message: fix test
688 to use proper type for rply field
690 * test/data/invalid-messages: add tests for below validation
692 * dbus/dbus-message.c (decode_header_data): validate field types,
693 and validate that named fields are valid names
694 (decode_name_field): consider messages in the
695 org.freedesktop.Local. namespace to be invalid.
697 * dbus/dbus-string.c (_dbus_string_validate_name): new
699 2003-04-19 Havoc Pennington <hp@pobox.com>
701 * bus/driver.c (bus_driver_handle_hello): check limits and
702 return an error if they are exceeded.
704 * bus/connection.c: maintain separate lists of active and inactive
705 connections, and a count of each. Maintain count of completed
706 connections per user. Implement code to check connection limits.
708 * dbus/dbus-list.c (_dbus_list_unlink): export
710 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
711 number of bytes in the message queue for a connection
713 2003-04-18 Havoc Pennington <hp@pobox.com>
715 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
717 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
720 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
721 on realloc be sure to update the pointer in the keyring
723 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
724 offset to avoid writing to unallocated memory
726 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
727 try the next mechanism, so we properly handle OOM
729 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
731 (_dbus_keyring_new): fix OOM bug
732 (_dbus_keyring_new_homedir): always set error; impose a maximum
733 number of keys we'll load from the file, mostly to speed up the
734 test suite and make its OOM checks more useful, but also for
737 * dbus/dbus-auth.c (process_error_server): reject authentication
738 if we get an error from the client
739 (process_cancel): on cancel, send REJECTED, per the spec
740 (process_error_client): send CANCEL if we get an error from the
743 2003-04-18 Havoc Pennington <hp@pobox.com>
745 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
748 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
751 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
752 about DBUS_TEST_HOMEDIR once
754 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
757 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
758 config file so we test the right thing
760 Throughout: assorted docs improvements
762 2003-04-18 Havoc Pennington <hp@pobox.com>
764 * glib/dbus-gmain.c: adapt to watch changes
766 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
768 * dbus/dbus-server.h: remove dbus_server_handle_watch
770 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
772 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
773 like DBusTimeout, so we don't need dbus_connection_handle_watch
776 2003-04-17 Havoc Pennington <hp@redhat.com>
778 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
779 database usage so it all goes via the DBusUserDatabase cache.
781 2003-04-17 Havoc Pennington <hp@redhat.com>
783 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
784 there was an OOM watch we skipped, we always return TRUE so we
785 iterate again to have a look at it again. Fixes test suite hang.
786 Code rearrangement also lets us lose some memset and only iterate
789 * bus/driver.c (bus_driver_handle_message): sense of test for
792 2003-04-16 Havoc Pennington <hp@pobox.com>
794 * doc/dbus-specification.sgml: make spec say serials are unsigned
796 * dbus/dbus-message.h: change message serials to unsigned
798 * dbus/dbus-connection.c: adapt to message serials being unsigned
800 2003-04-15 Havoc Pennington <hp@pobox.com>
802 * bus/bus.c: create and keep around a shared DBusUserDatabase
805 * bus/connection.c (bus_connection_get_groups): don't cache
806 groups for user in the connection object, since user database
807 object now does that.
809 2003-04-16 Havoc Pennington <hp@redhat.com>
811 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
812 list of size counters
813 (_dbus_message_loader_putback_message_link): put back a popped link
815 * dbus/dbus-connection.c
816 (dbus_connection_set_max_live_messages_size): rename
818 (dbus_connection_get_outgoing_size): get size of outgoing
820 (_dbus_connection_set_connection_counter): remove this cruft
822 2003-04-14 Havoc Pennington <hp@redhat.com>
824 * dbus/dbus-userdb.c: user database abstraction, mostly to get
825 caching, but at some point we might want to be able to use a
828 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
829 SHA1 conf file to test the sha1 auth mechanism, since the regular
830 test always uses EXTERNAL when available.
833 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
834 add conf file that requires use of sha1 auth
836 2003-04-13 Havoc Pennington <hp@pobox.com>
838 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
839 from Philip Blundell to send messages and monitor them.
841 2003-04-13 Havoc Pennington <hp@pobox.com>
843 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
846 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
849 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
850 fix to only recover unused bytes if we're already authenticated
851 (_dbus_transport_get_is_authenticated): fix to still mark us
852 authenticated if there are unused bytes.
854 * bus/dispatch.c: implement security policy checking
856 * bus/connection.c (bus_transaction_send_from_driver): new
858 * bus/bus.c (bus_context_check_security_policy): new
860 * bus/dispatch.c (send_service_nonexistent_error): delete this,
861 now we just set the DBusError and it gets converted to an error
864 * bus/connection.c (allow_user_function): enable code using actual
865 data from the config file
867 * bus/policy.c (list_allows_user): handle wildcard rules for
868 user/group connection perms
870 2003-04-13 Havoc Pennington <hp@pobox.com>
872 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
874 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
876 * bus/policy.c (bus_policy_append_mandatory_rule)
877 (bus_policy_append_default_rule, bus_policy_append_user_rule)
878 (bus_policy_append_group_rule): new functions
880 2003-04-12 Havoc Pennington <hp@pobox.com>
882 * bus/config-parser.c (bus_config_parser_new): fix a memleak
884 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
885 the pid/gid/uid, just for paranoia.
887 * test/break-loader.c (randomly_do_n_things): find a byte
888 containing a type code, and randomly change it to a different
891 2003-04-12 Havoc Pennington <hp@pobox.com>
893 * bus/policy.h: change BusPolicy to be the thing from the config
894 file, and rename old BusPolicy to BusClientPolicy
896 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
897 match change in how policy works
899 * dbus/dbus-internals.h: mark assert_not_reached as
900 __attribute((noreturn))__
902 2003-04-11 Havoc Pennington <hp@redhat.com>
904 * doc/dbus-specification.sgml: fix a spot with the wrong name for
905 the broadcast service. Use boolean return for ServiceExists.
907 2003-04-11 Havoc Pennington <hp@redhat.com>
909 * configure.in: add another directory to look for qt in.
911 2003-04-11 Havoc Pennington <hp@redhat.com>
913 * AUTHORS: add Colin Walters
915 2003-04-11 Havoc Pennington <hp@redhat.com>
921 2003-04-11 Havoc Pennington <hp@redhat.com>
923 * bus/messagebus.in: remove pid file when stopping the
924 message bus, since the bus won't have privileges to remove it
927 2003-04-11 Havoc Pennington <hp@redhat.com>
929 * bus/bus.c (bus_context_new): move credentials change after
932 2003-04-11 Havoc Pennington <hp@pobox.com>
934 * test/decode-gcov.c: add "below average functions" to the
935 coverage report, and change how some of the code works.
937 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
938 not in the coverage stats.
940 * test/test-service.c (main): use _dbus_verbose not fprintf in a
941 couple places so running the test suite doesn't result in megaspam.
943 2003-04-11 Havoc Pennington <hp@pobox.com>
945 * bus/dispatch.c (check_existent_service_activation): accept a no
946 memory error in a place we didn't before
948 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
949 in case the first one failed," since the test suite is less
952 2003-04-10 Havoc Pennington <hp@pobox.com>
954 * bus/dispatch.c (check_segfault_service_activation): add test
955 for launching an executable that just crashes.
957 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
958 don't leave a million cores. We'll see how portable this is.
960 2003-04-10 Havoc Pennington <hp@pobox.com>
962 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
963 the possible parent failures before we fork, so that we don't
964 fail to create a babysitter after creating the child.
966 * bus/activation.c (bus_activation_activate_service): kill child
967 if we don't successfully complete the activation.
969 2003-04-10 Havoc Pennington <hp@redhat.com>
971 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
972 the connection if it's disconnected
974 * bus/activation.c (bus_activation_service_created): use new
975 transaction features to roll back removal of pending activation if
976 we don't successfully create the service after all. Don't remove
977 pending activation if the function fails.
979 * dbus/dbus-list.c (_dbus_list_insert_before_link)
980 (_dbus_list_insert_after_link): new code to facilitate
983 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
984 new functionality, so we can preallocate the ability to insert
987 * bus/connection.c (bus_transaction_add_cancel_hook): new function
988 allowing us to put custom hooks in a transaction to be used for
989 cancelling said transaction
991 * doc/dbus-specification.sgml: add some discussion of secondary
992 service owners, and disallow zero-length service names
994 * bus/services.c (bus_registry_acquire_service): new function,
995 splits out part of bus_driver_handle_acquire_service() and fixes
996 a bug where we didn't remove the service doing the acquiring
997 from the secondary queue if we failed to remove the current owner
998 from the front of the queue.
1000 2003-04-10 Alexander Larsson <alexl@redhat.com>
1002 * doc/dbus-specification.sgml:
1003 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1005 2003-04-10 Alexander Larsson <alexl@redhat.com>
1010 Added files to cvsignore
1012 * dbus/dbus-message.h:
1013 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1014 Make get_named() take two out argument and return a boolean.
1015 (dbus_message_iter_get_args_valist):
1016 Update usage of get_named().
1017 (dbus_message_iter_append_byte):
1019 (dbus_message_iter_append_named)
1021 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1024 2003-04-10 Alexander Larsson <alexl@redhat.com>
1026 * dbus/dbus-marshal.[ch]:
1027 Add array_type_pos argument to _dbus_marshal_validate_arg.
1028 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1030 * dbus/dbus-message.[ch]:
1031 Multi-dimensional arrays have full type specification in the
1032 outermost array. Iter code re-arranged to handle this.
1033 Added some more iter tests.
1035 * doc/dbus-specification.sgml:
1038 Update new array encoding description.
1039 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1041 * test/data/invalid-messages/array-with-mixed-types.message:
1042 * test/data/valid-messages/array-of-array-of-uint32.message:
1043 Change to the new array format.
1045 * test/data/invalid-messages/too-short-dict.message:
1048 * test/data/valid-messages/recursive-types.message:
1049 Fix up and extend test.
1051 2003-04-10 Havoc Pennington <hp@pobox.com>
1053 * bus/dispatch.c: lots of fixes
1055 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1056 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1057 that was crack, broke the test service.
1059 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1060 handling to avoid piling up errors if we get a failure on the
1063 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1064 pid in assertion failures.
1066 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1067 to some fixed size of file descriptor array. Don't return TRUE
1068 anytime a timeout exists, that led to lots of busy loop silliness
1071 2003-04-09 Havoc Pennington <hp@redhat.com>
1073 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1074 I'd checked this in earlier but hadn't.
1076 2003-04-09 Havoc Pennington <hp@redhat.com>
1078 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1079 the activation test (man this is getting old!)
1081 2003-04-09 Havoc Pennington <hp@redhat.com>
1083 * test/test-utils.c: use dispatch status function to fix this up
1085 * bus/connection.c (connection_watch_callback): don't dispatch
1087 (connection_timeout_callback): don't dispatch from here
1088 (bus_connections_setup_connection): set the dispatch status function
1089 (bus_connection_disconnected): unset it
1091 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1092 used to add a connection to be dispatched
1093 (_dbus_loop_iterate): do the dispatching at the end of each
1096 * dbus/dbus-connection.c
1097 (dbus_connection_set_dispatch_status_function): new function
1098 allowing us to fix up main loop usage
1099 (_dbus_connection_last_unref): free all the various function
1101 (dbus_connection_dispatch): call the DispatchStatusFunction
1102 whenever this function returns
1103 (dbus_connection_handle_watch): call DispatchStatusFunction
1104 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1105 (reply_handler_timeout): call DispatchStatusFunction
1106 (dbus_connection_flush): call DispatchStatusFunction
1108 2003-04-09 Havoc Pennington <hp@redhat.com>
1110 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1113 * bus/dispatch.c (check_service_activated): fix bug in test
1115 * dbus/dbus-mainloop.c (check_timeout): fix this up
1117 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1118 verbose output so we can sort out output from different processes,
1119 e.g. in the activation case.
1121 2003-04-08 Colin Walters <walters@gnu.org>
1123 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1125 (bus_context_new): Set it.
1126 (bus_context_unref): Use it to delete the pid file.
1128 2003-04-08 Havoc Pennington <hp@redhat.com>
1130 * test/data/invalid-messages/array-with-mixed-types.message:
1131 regression test that fails for the moment
1133 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1134 tests for convenience
1136 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1137 array of nil, it broke things.
1139 * test/data/invalid-messages/array-of-nil.message: regression test
1141 * test/data/valid-messages/array-of-array-of-uint32.message:
1142 happened to write this so added it to suite
1144 2003-04-08 Havoc Pennington <hp@redhat.com>
1146 * bus/driver.c (bus_driver_handle_acquire_service): init
1147 retval/reply before checking name
1149 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1150 recursion depth argument
1152 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1153 in the public struct for future extension
1155 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1158 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1161 * doc/dbus-specification.sgml: fix typo
1163 2003-04-08 Alexander Larsson <alexl@redhat.com>
1165 Implemented recursive types, named types and new-style iters
1168 * glib/test-thread-client.c: (thread_func):
1169 * glib/test-thread-server.c: (handle_test_message):
1170 * test/test-service.c: (handle_echo):
1179 * dbus/dbus-internals.c: (_dbus_type_to_string):
1180 Update for new types.
1182 * dbus/dbus-marshal.[ch]:
1183 Implement recursive types and the new marshalling format.
1184 Remove hardcoded dict marshalling.
1185 Marshal named types.
1187 * dbus/dbus-message-builder.c:
1189 Remove references to old types
1191 * dbus/dbus-message.[ch]:
1192 New non-refcounted iter API that supports recursive iters.
1193 Use iters for appending, including support for recursive
1195 Add byte and named type support.
1196 Update everything to new marshalling formats.
1197 Add tests for new API.
1199 * dbus/dbus-protocol.h:
1200 Remove old array types.
1201 Add types: BYTE, ARRAY, DICT, NAMED
1203 * dbus/dbus-string.c:
1204 * dbus/dbus-sysdeps.c:
1205 Make parse_double locale safe.
1207 * dbus/dbus-test-main.c:
1213 * doc/dbus-specification.sgml:
1216 * test/data/incomplete-messages/missing-body.message:
1217 * test/data/invalid-messages/bad-boolean.message:
1218 * test/data/invalid-messages/bad-boolean-array.message:
1219 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1220 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1221 * test/data/invalid-messages/too-short-dict.message:
1222 * test/data/valid-messages/dict-simple.message:
1223 * test/data/valid-messages/dict.message:
1224 * test/data/valid-messages/emptiness.message:
1225 * test/data/valid-messages/lots-of-arguments.message:
1226 * test/data/valid-messages/no-padding.message:
1227 * test/data/valid-messages/recursive-types.message:
1228 Add missing NAME fields
1229 Fix up dicts & arrays
1231 * test/data/invalid-messages/dict-with-nil-value.message:
1232 Removed, this is not invalid anymore.
1234 * test/data/valid-messages/recursive-types.message:
1235 Add new test for deeply recursive types.
1237 2003-04-07 Havoc Pennington <hp@pobox.com>
1239 * bus/driver.c (bus_driver_handle_acquire_service): return an
1240 error if you try to acquire a service that starts with ':'
1242 2003-04-07 Havoc Pennington <hp@redhat.com>
1244 * doc/dbus-specification.sgml: require that base service names
1245 start with ':' and that the base service is created/deleted
1246 as first and last things a connection does on the bus
1248 * bus/dispatch.c (check_existent_service_activation): lots more
1249 work on the activation test; it doesn't fully pass yet...
1251 * test/test-service.c (main): fix so we don't memleak the
1252 connection to the message bus
1253 (filter_func): accept a message asking us to exit
1255 2003-04-06 Havoc Pennington <hp@pobox.com>
1257 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1260 * configure.in: fixes to Qt detection from Colin Walters
1262 * doc/Makefile.am: Only remove generated docbook dirs if they
1263 exist, from Colin Walters
1265 * dbus/dbus-bus.c: change how we set well-known connections to
1266 NULL, so that it works if a single connection is stored in
1267 two well-known array slots.
1269 * test/Makefile.am: remove a lot of stuff that isn't immediately
1270 useful, it's in CVS history if we want it.
1272 * test/test-service.c: use dbus-mainloop instead of that
1275 2003-04-06 Havoc Pennington <hp@pobox.com>
1277 * dbus/Makefile.am: split lists of sources into stuff that goes in
1278 the library, util functions that go in the lib and are also used
1279 elsewhere, and util functions that are used in tests/daemon but
1280 don't go in the lib.
1282 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1283 here so it can be used in test binaries also
1285 2003-04-06 Havoc Pennington <hp@pobox.com>
1287 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1288 here in the parent process, so we can return an error if it
1289 fails. Also, move some of the code into the child so the parent
1290 is less hosed if we fail midway through.
1292 * bus/bus.c (bus_context_new): move pidfile detection further up
1293 in the function, before we start overwriting sockets and such.
1295 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1297 * configure.in: add --with-system-pid-file and --with-system-socket
1299 2003-04-06 Colin Walters <walters@verbum.org>
1301 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1303 * bus/system.conf.in: Declare a pidfile.
1305 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1306 create one (if appropriate).
1308 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1309 (struct BusConfigParser) [pidfile]: New.
1310 (element_type_to_name, merge_included, start_busconfig_child)
1311 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1312 (bus_config_parser_unref): Free it.
1313 (bus_config_parser_get_pidfile): New function.
1315 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1317 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1319 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1321 * dbus/dbus-sysdeps.h: Prototype it.
1323 2003-04-06 Havoc Pennington <hp@pobox.com>
1325 * bus/bus.c (bus_context_new): print the address in here, rather
1326 than in main(), because we need to do it before forking the daemon
1328 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1329 on the service nonexistent error
1331 * bus/driver.c (bus_driver_handle_acquire_service): set the
1332 sender on the AcquireService reply
1334 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1335 server also listen on a UNIX socket so services can connect to it.
1337 2003-04-06 Havoc Pennington <hp@pobox.com>
1339 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1340 so it detects deadlocks and also we actually init threads when
1343 2003-04-06 Havoc Pennington <hp@pobox.com>
1345 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1346 save the domain socket name, and unlink it when we disconnect the
1347 server. Means that at least when we exit normally, we won't leave
1348 a bunch of junk in /tmp
1350 * dbus/dbus-transport-unix.c
1351 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1352 memory management). (I was making a real change here but then
1355 2003-04-06 Havoc Pennington <hp@pobox.com>
1357 * bus/bus.c (bus_context_new): fix wrong handling of
1358 server_data_slot_unref() in the error case.
1360 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1361 "(condition) != 0" to _dbus_real_assert so that
1362 "_dbus_assert (pointer)" doesn't cause a warning
1364 * bus/main.c (main): accept --print-address option to print out
1365 the message bus address
1367 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1369 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1370 "tmpdir" option to unix: address on client side
1372 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1375 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1376 we can use to create sockets in the test suite.
1378 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1379 cleanly. To be used for testing.
1381 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1383 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1385 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1386 handle trying to call this when there's no servers active
1388 2003-04-05 Havoc Pennington <hp@pobox.com>
1394 2003-04-05 Havoc Pennington <hp@pobox.com>
1396 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1397 crash on startup. Need to get "try starting the daemon"
1398 in the test suite I guess. ;-)
1400 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1401 tracked the number of open connections; it's better done in
1402 application-specific code as you want it to span all servers etc.
1404 2003-04-05 Havoc Pennington <hp@pobox.com>
1406 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1407 patch from Colin Walters
1409 2003-04-05 Havoc Pennington <hp@pobox.com>
1411 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1412 reality; in fact multiple mechanisms are allowed.
1414 * dbus/dbus-internals.c (_dbus_real_assert)
1415 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1416 _dbus_assert_not_reached() into functions, so that they don't show
1417 up in basic block counts for test coverage, and don't use up as
1418 much disk space. Does mean slower execution speed though, so
1419 assumes --disable-asserts is the normal production case.
1421 2003-04-05 Havoc Pennington <hp@pobox.com>
1423 * test/Makefile.am (dist-hook): also dist *.in files
1429 2003-04-05 Havoc Pennington <hp@pobox.com>
1431 * dbus/dbus-string.c: docs warning
1433 * dbus/dbus-spawn.c: missing docs
1435 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1437 2003-04-05 Havoc Pennington <hp@pobox.com>
1439 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1442 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1443 to -1 once we've reaped the babysitter
1444 (_dbus_babysitter_handle_watch): do as much work as we can, not
1447 * bus/activation.c: add code using DBusBabysitter so that we
1448 handle it when a service fails to start up properly.
1449 (bus_activation_service_created): don't remove the activation
1450 entries as we go, just let them get removed when we free the pending
1451 activation. Unref reply messages after sending them.
1453 2003-04-05 Havoc Pennington <hp@pobox.com>
1455 * test/decode-gcov.c (main): print per-directory stats in the report
1457 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1459 2003-04-05 Havoc Pennington <hp@pobox.com>
1461 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1463 * test/decode-gcov.c: hack up a little program to suck data
1464 out of gcov files. Yes this is sort of silly.
1466 * configure.in: define something in config.h and do an
1467 AM_CONDITIONAL when gcov is enabled
1469 2003-04-04 Havoc Pennington <hp@redhat.com>
1471 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1472 return a "babysitter" object that is used to monitor the status of
1473 the spawned process and reap it when required.
1475 * test/test-segfault.c, test/test-exit.c,
1476 test/test-sleep-forever.c: binaries that do various lame things,
1477 used in the test suite.
1479 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1481 2003-04-03 Havoc Pennington <hp@pobox.com>
1483 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1484 in preparation for modifying it, dbus-sysdeps is getting
1487 2003-04-03 Havoc Pennington <hp@redhat.com>
1489 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1492 * bus/*.[hc]: adapt to mainloop change
1494 2003-04-03 Havoc Pennington <hp@redhat.com>
1496 * bus/activation.c (load_directory): fix up memleaks
1497 (bus_activation_entry_free): free the entry
1499 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1500 we get one from the message bus; fix memleaks.
1502 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1504 2003-04-03 Havoc Pennington <hp@pobox.com>
1506 * bus/config-parser.c (bus_config_parser_unref): free
1507 list of mechanisms, bug discovered by test suite enhancements
1508 (putting system.conf and session.conf into suite)
1510 * test/Makefile.am, test/test-service.c: add placeholder for a
1511 test service that we'll activate as part of test suite. Doesn't
1514 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1515 setting NULL value, and use system malloc not dbus_malloc()
1516 when we have unavoidable memleakage.
1518 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1519 didn't work, and support DBUS_BUS_ACTIVATION.
1521 * bus/activation.c (child_setup): pass our well-known bus type to
1524 * bus/config-parser.c: support <type> to specify well-known type
1526 * doc/dbus-specification.sgml: document the env variables to
1527 locate well-known buses and find service activator
1529 2003-04-02 Havoc Pennington <hp@redhat.com>
1531 * test/Makefile.am (all-local): add a rule to copy tests to
1532 builddir, so we can have generated tests. Use this to remove the
1533 silly hack for testing system.conf and session.conf. Will use this
1534 shortly to generate .service files pointing to test binaries.
1536 2003-04-02 Havoc Pennington <hp@redhat.com>
1538 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1539 current alloc and needed new length, not max of the doubled
1540 allocation and needed new length. Also, when building tests,
1541 don't do the double-allocation stuff, just realloc every time.
1543 2003-04-02 Havoc Pennington <hp@redhat.com>
1545 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1547 (_dbus_string_get_dirname): new
1548 (_dbus_sysdeps_test): new
1549 (_dbus_directory_open): include dirnames in error messages
1551 * bus/config-parser.c: interpret <include> and <includedir> and
1552 <servicedir> relative to config file location if the given
1553 filename is not absolute.
1555 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1557 2003-04-02 Havoc Pennington <hp@redhat.com>
1559 * bus/connection.c (bus_transaction_send_error_reply): set sender
1560 service for the error, and unref the reply on success
1562 * bus/activation.c: convert to use BusTransaction so OOM can be
1564 (bus_activation_service_created): set sender of the message
1566 2003-04-01 Havoc Pennington <hp@redhat.com>
1568 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1569 <includedir> (at least mostly)
1571 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1572 first, then the user ID
1574 2003-04-01 Havoc Pennington <hp@pobox.com>
1576 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1579 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1581 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1583 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1584 socket 0777, and unlink any existing socket.
1586 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1587 the configuration file so specifies; set up auth mechanism
1590 * bus/config-parser.c (bus_config_parser_content): add support
1591 for <fork> option and fill in code for <auth>
1593 * bus/system.conf.in: add <fork/> to default configuration,
1594 and limit auth mechanisms to EXTERNAL
1596 * doc/config-file.txt (Elements): add <fork>
1598 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1599 (_dbus_change_identity): new function
1601 2003-03-31 Havoc Pennington <hp@redhat.com>
1603 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1604 (_dbus_listen_unix_socket): fix off-by-one error in null
1605 termination spotted by Nalin
1607 2003-03-31 Havoc Pennington <hp@redhat.com>
1609 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1610 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1611 having a real home directory available.
1613 2003-03-31 Havoc Pennington <hp@redhat.com>
1615 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1617 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1619 * configure.in: add support for specifying a style of init script
1622 2003-03-31 Havoc Pennington <hp@redhat.com>
1624 Fix some annoying DBusString API and fix all affected code.
1626 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1628 (_dbus_string_get_data): change to return string instead of using
1630 (_dbus_string_get_const_data): ditto
1631 (_dbus_string_get_data_len): ditto
1632 (_dbus_string_get_const_data_len): ditto
1634 2003-03-31 Havoc Pennington <hp@redhat.com>
1636 * bus/main.c (main): fix up the command line arguments to be nicer
1638 2003-03-31 Havoc Pennington <hp@redhat.com>
1640 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1641 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1642 final location that lands in the config file
1644 * bus/config-loader-expat.c (bus_config_load): fix type of
1647 * doc/TODO: remove TODO item for dbus_bus_get()
1649 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1651 2003-03-31 Havoc Pennington <hp@pobox.com>
1653 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1654 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1655 argument since they are always client side
1657 * dbus/dbus-server.c (dbus_server_get_address): new function
1659 * bus/main.c (main): take the configuration file as an argument.
1661 * test/data/valid-config-files/debug-allow-all.conf: new file to
1662 use with dispatch.c tests for example
1664 * bus/test-main.c (main): require test data dir
1666 * bus/bus.c (bus_context_new): change this to take a
1667 configuration file name as argument
1669 * doc/config-file.txt (Elements): add <servicedir>
1671 * bus/system.conf, bus/session.conf: new files
1673 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1674 well-known socket if none set
1676 * configure.in: create system.conf and session.conf
1678 2003-03-30 Havoc Pennington <hp@pobox.com>
1680 * bus/config-parser.c: hacking
1682 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1683 to shut down, since it could cause weirdness with the DBusList
1686 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1687 link-oriented stack routines
1688 (alloc_link): free the mempool if the first alloc from it fails
1690 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1692 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1694 (_dbus_string_skip_white): new
1696 * doc/config-file.txt (Elements): add <includedir>
1698 2003-03-28 Havoc Pennington <hp@pobox.com>
1700 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1701 (_dbus_string_copy_data): new functions
1703 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1705 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1709 * dbus/dbus-memory.c:
1712 2003-03-28 Havoc Pennington <hp@pobox.com>
1714 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1715 I think it may have just been superstition. Not sure.
1717 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1718 failures that were not being handled.
1720 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1722 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1723 row that will fail on out-of-memory.
1725 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1726 function for testing out-of-memory handling.
1728 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1729 allocation functions, they do map exactly to the expat ones.
1731 2003-03-27 Havoc Pennington <hp@redhat.com>
1733 * bus/config-loader-libxml.c (bus_config_load): add another error
1736 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1739 Add note about automatic service activation.
1741 * doc/dbus-specification.sgml:
1742 Rename the specification and clarify a few things.
1744 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1747 * dbus/dbus-address.c:
1749 * dbus/dbus-marshal.c:
1750 * dbus/dbus-server-debug-pipe.c:
1751 * dbus/dbus-transport-unix.c:
1752 Fix documentation warnings.
1754 2003-03-26 Havoc Pennington <hp@pobox.com>
1756 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1757 after every test so it's quick and easy to see which leaked, and
1758 so we test multiple dbus_shutdown() calls
1760 * configure.in: change configure.in XML stuff to also support
1763 * config-loader-libxml.c: some hacking
1765 * config-loader-expat.c: some hacking
1767 * config-parser.c: some hacking, plus tests
1769 2003-03-25 Havoc Pennington <hp@redhat.com>
1771 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1773 * configure.in: add --with-xml option to specify XML library,
1774 right now only libxml is supported.
1776 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1777 nonworking code between home and work, still just stubs
1779 2003-03-24 Havoc Pennington <hp@redhat.com>
1781 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1784 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1785 NULL argument for "message" if the error is a well-known one,
1786 fill in a generic message in this case.
1788 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1791 * bus/test.c (bus_test_flush_bus): add
1793 * bus/policy.c (bus_policy_test): test code stub
1795 2003-03-24 Havoc Pennington <hp@pobox.com>
1797 * bus/connection.c (bus_connections_setup_connection): set up
1798 the "can this user connect" function, but it always returns
1799 TRUE until we have a config file parser so we can have a config
1800 file that allows connections.
1802 2003-03-23 Havoc Pennington <hp@pobox.com>
1804 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1805 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1806 the mutex, so we can check for proper memory management
1809 * dbus/dbus-dataslot.c: remove the mutex from
1810 DBusDataSlotAllocator and lock it manually when using it,
1811 to simplify fitting it into the global slots framework.
1813 * dbus/dbus-threads.c (init_static_locks): rework how we're
1814 handling global locks so they are easily shut down.
1816 * bus/policy.c (bus_policy_append_rule): fix
1818 * bus/test-main.c (main): check for memleaks
1820 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1821 test suite check for memleaks
1823 * dbus/dbus-memory.c: add support in test mode for tracking
1824 number of outstanding blocks
1826 2003-03-23 Havoc Pennington <hp@pobox.com>
1828 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1831 * dbus/dbus-hash.h: add ULONG hash keys
1833 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1834 (_dbus_get_group_id): new function
1836 2003-03-20 Havoc Pennington <hp@redhat.com>
1838 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1840 (dbus_connection_get_unix_user): new function
1842 2003-03-20 Havoc Pennington <hp@pobox.com>
1844 * bus/connection.c (bus_connection_send_oom_error): assert that
1845 message has a sender
1846 (connection_execute_transaction): ditto
1847 (bus_connection_preallocate_oom_error): fix to set the sender, and
1848 set recipient to the destination service, not the bus driver
1850 * bus/policy.c: hacking
1852 * dbus/dbus-message.c (dbus_message_service_is): new function
1853 (dbus_message_sender_is): new
1855 2003-03-19 Havoc Pennington <hp@redhat.com>
1857 * bus/policy.c: start sketching code for policy restrictions on
1858 what connections can do.
1860 2003-03-18 Havoc Pennington <hp@redhat.com>
1862 * doc/TODO: some notes on high-level todo items. Little nitpick
1863 stuff is all in @todo, so no need to add it here.
1865 * doc/config-file.txt: some notes on how config file might look
1867 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1873 2003-03-17 Havoc Pennington <hp@redhat.com>
1875 * dbus/dbus-internals.h: add gcc attributes so that
1876 our printf-style functions warn on bad arguments to
1879 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1882 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1885 2003-03-17 Havoc Pennington <hp@redhat.com>
1887 * bus/test-main.c (main): make it print something as it runs
1888 so make check doesn't look stuck
1890 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1891 from CVS, now obsolete
1893 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1895 * bus/dispatch.c: (bus_dispatch):
1896 Refetch the service name since it may have been reallocated
1897 when dbus_message_set_sender was called.
1899 * dbus/dbus-sysdeps.c: (_dbus_accept):
1900 Add address and address length variables and use them to stop
1901 valgrind from complaining.
1903 2003-03-17 Havoc Pennington <hp@pobox.com>
1905 All tests pass, no memleaks, no valgrind complaints.
1907 * bus/test.c: refcount handler_slot
1909 * bus/connection.c (bus_connections_new): refcount
1910 connection_data_slot
1912 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1913 bytes so that auth scripts pass.
1915 * bus/dispatch.c: init message_handler_slot so it gets allocated
1918 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1920 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1921 dealloc server_pipe_hash when no longer used for benefit of
1924 * dbus/dbus-auth.c (process_command): memleak fix
1926 * bus/dispatch.c (check_hello_message): memleak fix
1928 2003-03-16 Havoc Pennington <hp@pobox.com>
1930 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1932 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1934 * bus/activation.c (bus_activation_activate_service): Append
1935 the pending activation entry to the list of pending activations.
1937 2003-03-16 Havoc Pennington <hp@pobox.com>
1939 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1942 * dbus/dbus-address.c (create_entry): fix OOM handling when
1943 failing to alloc entry->method
1945 2003-03-16 Havoc Pennington <hp@pobox.com>
1947 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1950 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1951 add some missing dbus_set_result
1953 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1954 alloc the DBusMessageHandler
1956 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1957 the transport here, since we call this from the finalizer; it
1958 resulted in a double-finalize.
1960 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1961 where we tried to use transport->connection that was NULL,
1962 happened when transport was disconnected early on due to OOM
1964 * bus/*.c: adapt to handle OOM for watches/timeouts
1966 * dbus/dbus-transport-unix.c: port to handle OOM during
1969 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1970 reference to unused bytes instead of a copy
1972 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1975 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1978 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1981 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1983 * doc/dbus-specification.sgml:
1984 Document reply message for ActivateService.
1986 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1988 * bus/activation.c: (bus_pending_activation_entry_free),
1989 (bus_pending_activation_free), (bus_activation_new),
1990 (bus_activation_unref), (bus_activation_service_created),
1991 (bus_activation_activate_service):
1993 * bus/bus.c: (bus_context_new):
1994 * bus/desktop-file.c: (new_section):
1995 * bus/driver.c: (bus_driver_send_service_deleted),
1996 (bus_driver_handle_activate_service):
1997 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
1999 * dbus/dbus-connection.c:
2000 (dbus_connection_send_with_reply_and_block):
2001 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2002 * dbus/dbus-protocol.h:
2003 Make activation work better. Now pending activations will be queued
2004 and the daemon won't try to activate services that are already registered.
2006 2003-03-16 Havoc Pennington <hp@pobox.com>
2008 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2011 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2012 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2014 2003-03-16 Havoc Pennington <hp@pobox.com>
2016 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2017 this. always run the test suite before commit...
2019 * bus/*: adapt to DBusConnection API changes
2021 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2022 requires renaming stuff to avoid dbus_connection_dispatch name
2025 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2028 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2029 separate from _dbus_message_loader_return_buffer()
2031 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2032 this, because it's now always broken to use; the number of
2033 messages in queue vs. the number still buffered by the message
2034 loader is undefined/meaningless. Should use
2035 dbus_connection_get_dispatch_state().
2036 (dbus_connection_dispatch): rename from
2037 dbus_connection_dispatch_message
2039 2003-03-16 Havoc Pennington <hp@pobox.com>
2041 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2044 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2046 * dbus/dbus-connection.c:
2047 (dbus_connection_send_with_reply_and_block):
2048 Decrease connection->n_incoming when removing an entry
2050 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2051 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2052 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2053 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2054 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2055 (dbus_dict_get_byte_array):
2056 Handle NULL arrays and strings. Also add support for byte arrays.
2058 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2059 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2060 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2061 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2062 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2063 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2064 * dbus/dbus-marshal.h:
2065 Add support for marshalling and demarshalling empty arrays and strings.
2067 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2068 (dbus_message_append_string_array),
2069 (dbus_message_iter_get_boolean),
2070 (dbus_message_iter_get_boolean_array),
2071 (dbus_message_iter_get_int32_array),
2072 (dbus_message_iter_get_uint32_array),
2073 (dbus_message_iter_get_double_array),
2074 (dbus_message_iter_get_byte_array),
2075 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2076 (check_message_handling):
2077 Add support for getting empty arrays and dicts.
2079 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2080 Don't do any validation at all for now, that's better than just checking
2083 * test/data/valid-messages/emptiness.message:
2084 New test message with lots of empty arrays.
2086 2003-03-16 Havoc Pennington <hp@pobox.com>
2088 * dbus/dbus-connection.c
2089 (_dbus_connection_queue_received_message_link): new function that
2090 can't fail due to OOM
2092 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2093 new function pops a message together with a list link
2096 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2097 message queuing functions to avoid needing to alloc memory
2099 2003-03-16 Havoc Pennington <hp@pobox.com>
2101 Oops - test code was only testing failure of around 30 of the
2102 mallocs in the test path, but it turns out there are 500+
2103 mallocs. I believe this was due to misguided linking setup such
2104 that there was one copy of dbus_malloc etc. in the daemon and one
2105 in the shared lib, and only daemon mallocs were tested. In any
2106 case, the test case now tests all 500+ mallocs, and doesn't pass
2107 yet, though there are lots of fixes in this patch.
2109 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2110 this so that it doesn't need to allocate memory, since it
2111 has no way of indicating failure due to OOM (and would be
2112 annoying if it did).
2114 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2116 * bus/Makefile.am: rearrange to create two self-contained
2117 libraries, to avoid having libraries with overlapping symbols.
2118 that was resulting in weirdness, e.g. I'm pretty sure there
2119 were two copies of global static variables.
2121 * dbus/dbus-internals.c: move the malloc debug stuff to
2124 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2127 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2129 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2132 * bus/dispatch.c (bus_dispatch_add_connection): free
2133 message_handler_slot when no longer using it, so
2134 memory leak checkers are happy for the test suite.
2136 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2138 * bus/bus.c (new_connection_callback): disconnect in here if
2139 bus_connections_setup_connection fails.
2141 * bus/connection.c (bus_connections_unref): fix to free the
2143 (bus_connections_setup_connection): if this fails, don't
2144 disconnect the connection, just be sure there are no side
2147 * dbus/dbus-string.c (undo_alignment): unbreak this
2149 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2151 (_dbus_auth_new): fix the order in which we free strings
2154 * bus/connection.c (bus_connection_disconnected): fix to
2155 not send ServiceDeleted multiple times in case of memory
2158 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2159 get the base service name
2160 (dbus_bus_register_client): don't return base service name,
2161 instead store it on the DBusConnection and have an accessor
2163 (dbus_bus_register_client): rename dbus_bus_register()
2165 * bus/dispatch.c (check_hello_message): verify that other
2166 connections on the bus also got the correct results, not
2167 just the one sending hello
2169 2003-03-15 Havoc Pennington <hp@pobox.com>
2171 Make it pass the Hello handling test including all OOM codepaths.
2172 Now to do other messages...
2174 * bus/services.c (bus_service_remove_owner): fix crash when
2175 removing owner from an empty list of owners
2176 (bus_registry_ensure): don't leave service in the list of
2177 a connection's owned services if we fail to put the service
2180 * bus/connection.c (bus_connection_preallocate_oom_error): set
2181 error flag on the OOM error.
2183 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2184 handle _dbus_transport_set_connection failure
2186 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2187 to create watches up front and simply enable/disable them as
2189 (unix_connection_set): this can now fail on OOM
2191 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2192 of enabling/disabling a watch or timeout.
2194 * bus/loop.c (bus_loop_iterate): don't touch disabled
2197 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2199 2003-03-15 Havoc Pennington <hp@pobox.com>
2201 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2202 write useful test code, after all that futzing around ;-)
2204 Test does not yet pass because we can't handle OOM in
2205 _dbus_transport_messages_pending (basically,
2206 dbus_connection_preallocate_send() does not prealloc the write
2207 watch). To fix this, I think we need to add new stuff to
2208 set_watch_functions, namely a SetEnabled function so we can alloc
2209 the watch earlier, then enable it later.
2211 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2212 dbus-memory.c to the convenience lib
2214 * bus/test.c: rename some static functions to keep them clearly
2215 distinct from stuff in connection.c. Handle client disconnection.
2217 2003-03-14 Havoc Pennington <hp@pobox.com>
2219 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2220 transport, tests more of the real codepath. Set up clients
2221 with bus_setup_debug_client.
2223 * bus/test.c (bus_setup_debug_client): function to set up debug
2224 "clients" on the main loop
2226 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2229 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2232 * dbus/dbus-server-debug.c: support a debug server based on pipes
2234 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2235 (_dbus_close): new function
2237 * configure.in: check for socketpair
2239 2003-03-14 Havoc Pennington <hp@redhat.com>
2241 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2244 * dbus/dbus-transport-debug.c: rework this a good bit to be
2245 less complicated. hopefully still works.
2247 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2250 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2253 * dbus/dbus-message.c (dbus_message_copy): rename from
2254 dbus_message_new_from_message, fix it up to copy
2255 all the message fields, add test case
2257 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2258 not quite passing yet
2260 2003-03-14 Havoc Pennington <hp@pobox.com>
2262 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2263 until no work remains" in test code. (the large diff here
2264 is just code movement, no actual changes)
2266 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2267 1, no point waiting around for test code.
2268 (_dbus_server_debug_accept_transport): unref the timeout
2269 after adding it (right?)
2271 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2273 2003-03-13 Havoc Pennington <hp@redhat.com>
2275 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2278 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2281 * dbus/dbus-connection.h: Make AddWatchFunction and
2282 AddTimeoutFunction return a bool so they can fail on out-of-memory
2284 * bus/bus.c (bus_context_new): set up timeout handlers
2286 * bus/connection.c (bus_connections_setup_connection): set up
2289 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2292 * bus/bus.c (bus_context_new): adapt to changes
2294 * bus/connection.c: adapt to changes
2296 * test/watch.c: adapt to DBusWatch changes
2298 * bus/dispatch.c (bus_dispatch_test): started adding this but
2301 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2303 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2305 2003-03-13 Havoc Pennington <hp@pobox.com>
2307 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2308 set up a test framework as for the library
2310 2003-03-12 Havoc Pennington <hp@pobox.com>
2312 Throughout: purge global variables, introduce BusActivation,
2313 BusConnections, BusRegistry, etc. objects instead.
2315 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2318 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2319 going to redo this a bit differently I think
2321 2003-03-12 Havoc Pennington <hp@redhat.com>
2323 Mega-patch that gets the message bus daemon initially handling
2324 out-of-memory. Work still needed. Also lots of random
2325 moving stuff to DBusError instead of ResultCode.
2327 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2329 * dbus/dbus-connection.c
2330 (dbus_connection_send_with_reply_and_block): use DBusError
2332 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2335 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2336 code here, as the only failure possible is OOM.
2338 * bus/connection.c (bus_connection_disconnect):
2339 rename bus_connection_disconnected as it's a notification only
2341 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2342 "name" on get_args failure, should be done by get_args;
2343 don't disconnect client for bad args, just return an error.
2344 (bus_driver_handle_service_exists): ditto
2346 * bus/services.c (bus_services_list): NULL-terminate returned array
2348 * bus/driver.c (bus_driver_send_service_lost)
2349 (bus_driver_send_service_acquired): send messages from driver to a
2350 specific client to the client's unique name, not to the broadcast
2353 * dbus/dbus-message.c (decode_header_data): reject messages that
2354 contain no name field
2355 (_dbus_message_get_client_serial): rename to
2356 dbus_message_get_serial and make public
2357 (_dbus_message_set_serial): rename from set_client_serial
2358 (_dbus_message_set_reply_serial): make public
2359 (_dbus_message_get_reply_serial): make public
2361 * bus/connection.c (bus_connection_foreach): allow stopping
2362 iteration by returning FALSE from foreach function.
2364 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2365 (dbus_connection_free_preallocated_send)
2366 (dbus_connection_preallocate_send): new API for sending a message
2367 without possibility of malloc failure.
2368 (dbus_connection_send_message): rename to just
2369 dbus_connection_send (and same for whole function family)
2371 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2373 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2375 * bus/activation.c: handle/return errors
2377 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2379 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2380 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2381 (_dbus_result_from_errno): move to this file
2383 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2385 * dbus/dbus-marshal.c:
2386 (_dbus_marshal_set_string):
2387 Take a length argument so we can marshal the correct string
2390 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2391 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2392 (_dbus_marshal_test):
2393 * dbus/dbus-marshal.h:
2394 Add support for marshalling and demarshalling dicts.
2396 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2397 Add support for TYPE DICT.
2399 * dbus/dbus-message.c: (set_string_field):
2400 Adjust header padding.
2402 (dbus_message_append_args_valist), (dbus_message_append_dict),
2403 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2404 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2405 (check_message_handling), (check_have_valid_message):
2406 * dbus/dbus-message.h:
2407 Add functions for setting and getting dicts.
2409 * dbus/dbus-protocol.h:
2415 * doc/dbus-specification.sgml:
2416 Add information about how dicts are marshalled.
2418 * test/data/invalid-messages/dict-with-nil-value.message:
2419 * test/data/invalid-messages/too-short-dict.message:
2420 * test/data/valid-messages/dict-simple.message:
2421 * test/data/valid-messages/dict.message:
2422 Add sample messages containing dicts.
2424 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2426 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2428 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2431 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2432 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2433 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2434 (dbus_dict_set_double), (dbus_dict_set_string),
2435 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2436 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2437 (dbus_dict_set_string_array), (_dbus_dict_test):
2439 Fix according to comments from Havoc.
2441 2003-03-06 Michael Meeks <michael@server.home>
2443 * configure.in: if we don't have kde-config, disable have_qt.
2445 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2450 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2451 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2452 (dbus_dict_remove), (dbus_dict_get_value_type),
2453 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2454 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2455 (dbus_dict_put_double), (dbus_dict_put_string),
2456 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2457 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2458 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2459 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2460 (dbus_dict_get_double), (dbus_dict_get_string),
2461 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2462 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2463 (dbus_dict_get_string_array), (_dbus_dict_test):
2465 Add DBusDict implementation
2467 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2471 2003-03-04 Havoc Pennington <hp@pobox.com>
2473 * test/data/auth/*: adapt to changes
2475 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2476 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2479 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2480 more stuff from being in a context name, to make the protocol
2481 simpler to deal with
2483 * dbus/dbus-errors.c (dbus_error_has_name): new function
2484 (dbus_error_is_set): new function
2486 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2487 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2489 * dbus/dbus-connection.c (dbus_connection_flush): also read
2490 messages during a flush operation
2492 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2494 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2496 * configure.in: Check for gethostbyname on Solaris.
2498 * dbus/dbus-transport.c: (_dbus_transport_open):
2499 Remove duplicate "tcp" entry.
2501 * doc/dbus-specification.sgml:
2502 Clarify some things.
2504 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2506 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2507 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2508 (_dbus_keyring_test):
2509 * dbus/dbus-md5.c: (_dbus_md5_compute):
2510 * dbus/dbus-sha.c: (_dbus_sha_compute):
2513 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2515 * README: Add some things.
2517 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2519 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2520 after case DBUS_TYPE_BOOELAN.
2522 2003-03-02 Havoc Pennington <hp@pobox.com>
2524 * test/break-loader.c (randomly_set_extreme_ints): add test that
2525 sets really huge and small integers
2527 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2528 that length of boolean array fits in the string, and that
2529 string has room for boolean value in single-bool case.
2531 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2532 optional value to "ALIGN" command which is what to fill the
2535 * test/data/valid-messages/no-padding.message: add regression
2536 test for the message padding problem
2538 2003-03-02 Havoc Pennington <hp@pobox.com>
2540 * dbus/dbus-message.c (decode_header_data): fix to always init
2541 message_padding, from Benjamin Dauvergne
2543 2003-03-02 Havoc Pennington <hp@pobox.com>
2549 2003-03-01 Joe Shaw <joe@assbarn.com>
2551 * configure.in: Check for "struct cmsgcred" and try to access its
2552 members for BSD-like unices.
2554 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2555 _dbus_read_credentials_unix_socket().
2556 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2557 read() for reading the credential byte off the unix socket. Use
2558 struct cmsgcred on systems that support it.
2560 2003-02-27 Alexander Larsson <alexl@redhat.com>
2564 Make gthreads-2.0 dependency optional. Don't build thread test if
2567 2003-02-27 Havoc Pennington <hp@pobox.com>
2569 * dbus/dbus-connection.c
2570 (dbus_connection_send_message_with_reply_and_block): fix doh!
2571 doh! doh! bug that resulted in never removing a reply from the
2572 queue, no wonder we called get_reply_serial so much ;-)
2574 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2575 and client serial instead of demarshaling them every time
2577 2003-02-27 Havoc Pennington <hp@pobox.com>
2579 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2580 more inlined, using dbus-string-private.h, speeds things up
2583 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2584 when freeing the string
2585 (_dbus_string_steal_data): fix for align offset
2586 (undo_alignment): new function
2588 2003-02-26 Havoc Pennington <hp@redhat.com>
2590 All kinds of audit fixes from Owen, plus initial attempt to
2591 handle unaligned memory returned from malloc.
2593 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2594 leave room for align_offset and nul byte
2595 (fixup_alignment): function to track an align_offset and
2596 ensure real->str is aligned
2597 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2598 to allow a nul byte plus align offset
2599 (_dbus_string_lock): fix overflow issue
2600 (_dbus_string_init_const_len): add assertions on sanity of len,
2601 assign allocated to be ALLOCATION_PADDING larger than len
2602 (set_length): fixup the overflow handling
2603 (_dbus_string_get_data_len): fix overflow in assertion
2604 (open_gap): detect overflow in size of gap to be opened
2605 (_dbus_string_lengthen): add overflow check
2606 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2607 (_dbus_string_append): add overflow check
2608 (_dbus_string_append_unichar): overflow
2609 (_dbus_string_delete): fix overflow in assertion
2610 (_dbus_string_copy_len): overflow in assertion
2611 (_dbus_string_replace_len): overflows in assertions
2612 (_dbus_string_find): change to implement in terms of
2613 _dbus_string_find_to
2614 (_dbus_string_find_to): assorted fixage
2615 (_dbus_string_equal_c_str): assert c_str != NULL,
2616 fix logic so the function works
2617 (_dbus_string_ends_with_c_str): fix overflow thingy
2618 (_dbus_string_base64_encode): overflow fix
2619 (_dbus_string_validate_ascii): overflow
2620 (_dbus_string_validate_nul): overflow
2622 2003-02-26 Havoc Pennington <hp@redhat.com>
2624 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2626 2003-02-26 Alexander Larsson <alexl@redhat.com>
2629 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2631 * dbus/dbus-connection.c:
2632 * dbus/dbus-connection.h:
2633 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2634 Add dbus_connection_set_wakeup_main_function and use it when queueing
2635 incoming and outgoing messages.
2638 * dbus/dbus-dataslot.c:
2639 Threadsafe usage of DBusDataSlotAllocator
2641 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2644 * dbus/dbus-server-unix.c:
2647 * glib/dbus-gmain.c:
2648 Implement the new wakeup functions for glib.
2651 * glib/test-thread-client.c:
2652 * glib/test-thread-server.c:
2653 * glib/test-thread.h:
2654 Initial cut at some thread test code. Not really done yet.
2656 2003-02-26 Havoc Pennington <hp@pobox.com>
2658 * dbus/dbus-connection.c
2659 (dbus_connection_send_message_with_reply_and_block): fix crash
2660 where we ref'd the outgoing message instead of the returned reply
2662 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2663 at the end of this function, so if we didn't need to read for
2664 authentication, we reinstall it for receiving messages
2666 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2667 a NULL sender for peer-to-peer case
2669 * dbus/dbus-transport-unix.c (check_read_watch): handle
2670 !authenticated case correctly
2672 * glib/dbus-gmain.c: add support for DBusServer
2674 * dbus/dbus-server.c: add data slot support
2676 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2677 return values and handle errors
2679 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2682 * Doxyfile.in (INPUT): add glib subdir
2684 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2685 setup_with_g_main instead of hookup_with_g_main; write docs
2687 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2689 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2690 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2691 * dbus/dbus-message.c: (dbus_message_append_boolean),
2692 (dbus_message_append_boolean_array),
2693 (dbus_message_get_args_valist), (_dbus_message_test):
2694 * dbus/dbus-message.h:
2695 * doc/dbus-specification.sgml:
2696 Various fixes as pointed out by Havoc.
2698 * test/data/invalid-messages/bad-boolean-array.message:
2699 * test/data/invalid-messages/bad-boolean.message:
2700 Add invalid boolean value test cases.
2702 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2704 * dbus/dbus-internals.c: (_dbus_type_to_string):
2705 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2706 (_dbus_marshal_validate_arg):
2707 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2708 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2709 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2710 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2711 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2712 (dbus_message_iter_get_double),
2713 (dbus_message_iter_get_boolean_array), (message_iter_test):
2714 * dbus/dbus-message.h:
2715 * dbus/dbus-protocol.h:
2716 * doc/dbus-specification.sgml:
2717 * test/data/valid-messages/lots-of-arguments.message:
2718 Add support for boolean and boolean array types.
2720 2003-02-23 Havoc Pennington <hp@pobox.com>
2722 * dbus/dbus-keyring.c: finish most of this implementation and
2725 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2726 these barf if the error isn't cleared to NULL
2728 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2729 (_dbus_create_directory): new function
2731 * dbus/dbus-errors.c (dbus_set_error): fix warning
2733 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2734 (_dbus_string_hex_decode): new function
2735 (test_hex_roundtrip): test code
2737 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2739 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2741 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2742 the save-to-temp/rename trick to atomically write the new file
2743 (_dbus_string_parse_uint): new function
2745 2003-02-22 Havoc Pennington <hp@pobox.com>
2747 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2749 2003-02-22 Havoc Pennington <hp@pobox.com>
2751 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2752 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2754 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2756 * dbus/test/data/sha-1: add US government test suite for SHA-1
2758 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2760 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2761 Make string arrays NULL-terminated.
2763 * dbus/dbus-memory.c: (dbus_free_string_array):
2764 * dbus/dbus-memory.h:
2765 New function for freeing NULL-terminated string arrays.
2767 * dbus/dbus-message-builder.c: (append_quoted_string),
2768 (_dbus_message_data_load):
2769 Add support for array types.
2771 * dbus/dbus-message.c: (check_message_handling):
2772 Add more types as test cases.
2774 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2775 (_dbus_string_parse_double):
2776 Add the start offset to the end offset.
2778 * test/data/valid-messages/lots-of-arguments.message:
2779 New test message with lots of arguments.
2781 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2783 * dbus/dbus-message.c: (dbus_message_append_nil),
2784 (dbus_message_append_int32), (dbus_message_append_uint32),
2785 (dbus_message_append_double), (dbus_message_append_string),
2786 (dbus_message_append_int32_array),
2787 (dbus_message_append_uint32_array),
2788 (dbus_message_append_double_array),
2789 (dbus_message_append_byte_array),
2790 (dbus_message_append_string_array):
2791 Fix all out-of-memory handling in these functions.
2793 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2795 * dbus/dbus-message.c: (dbus_message_append_nil):
2798 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2800 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2801 (dbus_message_append_nil), (dbus_message_append_int32_array),
2802 (dbus_message_append_uint32_array),
2803 (dbus_message_append_double_array),
2804 (dbus_message_append_byte_array),
2805 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2806 (dbus_message_iter_get_int32_array),
2807 (dbus_message_iter_get_uint32_array),
2808 (dbus_message_iter_get_double_array),
2809 (dbus_message_iter_get_byte_array),
2810 (dbus_message_iter_get_string_array):
2812 * dbus/dbus-message.h:
2813 Add functions for appending and getting arrays.
2815 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2817 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2818 element size at least 8 bytes, fixes mempool tests on
2821 2003-02-20 Alexander Larsson <alexl@redhat.com>
2823 * dbus/dbus-transport-unix.c (unix_do_iteration):
2824 Unlock the connection mutex during a blocking select call.
2825 Add todo about how we need a way to wake up the select.
2827 * dbus/dbus-connection-internal.h:
2828 * dbus/dbus-connection.c:
2829 Add _dbus_connection_lock and _dbus_connection_unlock.
2831 2003-02-19 Havoc Pennington <hp@pobox.com>
2833 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2834 Doxyfile.in, not Doxyfile
2836 * dbus/dbus-keyring.c: do some hacking on this
2838 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2840 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2842 (dbus_set_error): remove dbus_error_init, check for message ==
2843 NULL *before* we sprintf into it, and add @todo about including
2844 system headers in this file
2846 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2848 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2850 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2851 get various bits of user information based on either username
2853 (_dbus_homedir_from_username): new function
2855 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2858 Add check for nonposix getpwnam_r
2860 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2861 Align the pool element size to a sizeof (void *) boundary.
2863 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2864 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2865 General Solaris fixes.
2867 * test/data/valid-messages/simplest-manual.message:
2868 Explicitly state that we want little-endian packing.
2870 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2872 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2874 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2875 Added to create a transport connecting using a tcp/ip socket.
2877 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2878 to a tcp socket at given host and port.
2879 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2882 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2884 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2885 Added to create a server listening on a TCP/IP socket.
2887 2003-02-19 Havoc Pennington <hp@pobox.com>
2889 Throughout: mop up all the Doxygen warnings and undocumented
2892 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2893 to search any paths.
2895 * dbus/dbus-threads.c: move global mutex initializers to
2896 dbus-internals.h, multiple prototypes was confusing doxygen
2897 besides being kind of ugly
2899 * Doxyfile (PREDEFINED): have Doxygen define
2900 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2901 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2902 (do not abuse the feature! it's for stuff like the autogenerated
2903 macros in dbus-md5.c, not just for things you don't feel like
2906 2003-02-18 Havoc Pennington <hp@pobox.com>
2908 * dbus/dbus-string.c (_dbus_string_zero): new function
2910 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2911 wrap it in some dbus-friendly API
2913 * dbus/dbus-types.h: add 16-bit types
2915 2003-02-18 Joe Shaw <joe@assbarn.com>
2917 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2918 credentials from our currently running process.
2919 (get_word): Fix a buglet where we were copying the entire length
2920 instead of relative to our position.
2922 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2923 keys on the stack... it's 640k of data.
2925 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2926 read the credentials byte off the socket, even if we don't have
2928 (_dbus_poll): Implement poll() using select() for systems which
2931 * glib/test-dbus-glib.c (main): Print out an error if no
2932 parameters are given.
2934 * test/data/auth/fallback.auth-script: Added. Tests that a client
2935 can fallback to a secondary auth mechanism if the first fails.
2937 2003-02-18 Havoc Pennington <hp@pobox.com>
2941 2003-02-17 Havoc Pennington <hp@pobox.com>
2943 * doc/dbus-specification.sgml: lots of cosmetic
2944 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2945 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2946 s/server/bus/ (except in authentication section). Add a section
2947 "Message Bus Message Routing"
2949 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2955 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2957 * doc/dbus-specification.sgml:
2958 Specification updates.
2960 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2962 * bus/activation.c: (bus_activation_init), (child_setup),
2963 (bus_activation_activate_service):
2965 * bus/main.c: (main):
2966 Set DBUS_ADDRESS environment variable.
2968 * dbus/dbus-errors.c: (dbus_set_error):
2969 Don't use va_copy since that's a C99 feature.
2971 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2972 (_dbus_spawn_async):
2973 * dbus/dbus-sysdeps.h:
2974 Add child_setup_func to _dbus_spawn_async.
2976 * doc/dbus-specification.sgml:
2977 Update specification.
2979 * test/spawn-test.c: (setup_func), (main):
2982 2003-02-17 Alexander Larsson <alexl@redhat.com>
2984 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2987 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2991 * doc/dbus-test-plan.sgml:
2992 Add test plan document.
2997 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2999 * dbus/dbus-message.c: (decode_header_data),
3000 (_dbus_message_loader_return_buffer):
3001 Set the header padding amount when loading a message.
3003 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3005 * bus/dispatch.c: (send_one_message):
3006 Only send broadcast messages to registered connections.
3008 * dbus/dbus-message.c: (dbus_message_name_is):
3009 * dbus/dbus-message.h:
3010 New convenience function.
3012 * dbus/dbus-transport-debug.c: (do_reading):
3013 Only dispatch one message per run.
3016 * test/bus-test.c: (new_connection_callback), (die),
3017 (test_hello_client1_handler), (test_hello_client2_handler),
3018 (test_hello_replies), (main):
3020 * test/bus-test-loop.[ch]:
3023 2003-02-16 Havoc Pennington <hp@pobox.com>
3025 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3026 backward conditional
3028 2003-02-16 Alexander Larsson <alexl@redhat.com>
3030 * dbus/dbus-connection.c:
3031 Implement sent_message_with_reply. (with_reply_and block is still
3033 Made dispatch_message not lose message if OOM.
3035 * dbus/dbus-errors.h:
3036 Add NoReply error (for reply timeouts).
3038 2003-02-16 Alexander Larsson <alexl@redhat.com>
3040 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3041 Actually free keys and values when destroying hashtable.
3043 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3045 * dbus/dbus-auth.c: (client_try_next_mechanism):
3048 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3049 Return TRUE if there's no thread implementation around.
3051 * glib/dbus-gmain.c: (free_source),
3052 (dbus_connection_hookup_with_g_main):
3053 Make sure to remove the GSource when the connection is finalized.
3055 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3057 * bus/dispatch.c: (bus_dispatch_message_handler):
3058 * dbus/dbus-errors.h:
3059 Return an error if someone tries to send a message to a service
3062 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3064 * bus/activation.c: (load_directory), (bus_activation_init),
3065 (bus_activation_activate_service):
3068 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3069 More work on the activation handling.
3071 * dbus/dbus-errors.h:
3072 Add some error messages
3074 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3075 * dbus/dbus-message.h:
3076 New function that creates an error message.
3078 * dbus/dbus-protocol.h:
3079 Add ACTIVATE_SERVER message.
3081 * dbus/dbus-server-unix.c: (unix_handle_watch),
3082 (_dbus_server_new_for_domain_socket):
3083 Call _dbus_fd_set_close_on_exec.
3085 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3086 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3087 (_dbus_fd_set_close_on_exec):
3088 * dbus/dbus-sysdeps.h:
3089 Add _dbus_fd_set_close_on exec function. Also add function that checks
3090 that all open fds are set to close-on-exec and warns otherwise.
3092 * dbus/dbus-transport-unix.c:
3093 (_dbus_transport_new_for_domain_socket):
3094 Call _dbus_fd_set_close_on_exec.
3096 2003-02-16 Havoc Pennington <hp@pobox.com>
3098 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3099 allow people to avoid setting SIGPIPE to SIG_IGN
3100 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3101 we've been asked not to
3103 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3105 * dbus/dbus-list.c: (_dbus_list_append_link),
3106 (_dbus_list_prepend_link):
3107 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3111 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3114 * bus/activation.c: (bus_activation_entry_free),
3115 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3117 * bus/main.c: (main):
3118 Add simple activation support, doesn't work yet though.
3120 2003-02-15 Zack Rusin <zack@kde.org>
3122 * qt/dbus-qthread.cpp: small casting fix
3124 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3126 * dbus/dbus-errors.c: (dbus_set_error):
3127 * dbus/dbus-errors.h:
3128 Add a few errors and make dbus_set_error void.
3130 * dbus/dbus-sysdeps.c:
3131 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3132 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3133 * dbus/dbus-sysdeps.h:
3134 Add _dbus_spawn_async.
3136 * test/spawn-test.c: (main):
3137 Test for _dbus_spawn_async.
3139 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3141 * dbus/dbus-internals.h:
3142 Fix build without tests.
3144 * dbus/dbus-list.c: (alloc_link):
3145 Fix a segfault when a malloc fails.
3147 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3148 (dbus_malloc0), (dbus_realloc):
3149 Add support for malloc debugging.
3151 2003-02-15 Alexander Larsson <alexl@redhat.com>
3153 * dbus/dbus-threads.c:
3154 * dbus/dbus-threads.h:
3155 Add condvars. Remove static mutext from API.
3156 Implement static mutexes by initializing them from threads_init.
3158 * glib/dbus-gthread.c:
3159 * qt/dbus-qthread.cpp:
3160 Update with the thread api changes.
3165 Turn StaticMutex into normal mutex + init function.
3166 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3167 _dbus_list_append_link, _dbus_list_prepend_link
3170 * dbus/dbus-sysdeps.c:
3171 * dbus/dbus-sysdeps.h:
3172 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3173 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3175 * dbus/dbus-protocol.h:
3176 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3178 * dbus/dbus-message.c:
3179 Make ref/unref atomic.
3182 * dbus/dbus-connection-internal.h:
3183 * dbus/dbus-connection.c:
3184 * dbus/dbus-connection.h:
3186 Change _peek to _borrow,_return & _steal_borrowed.
3187 Change disconnect callback to event.
3188 Make dbus_connection_dispatch_messages reentrant.
3190 * dbus/dbus-transport.c:
3191 Don't ref the connection on calls to the transport
3194 * dbus/dbus-message-handler.c:
3197 * glib/dbus-gmain.c:
3198 Don't use peek_message anymore
3201 * test/debug-thread.c:
3202 * test/debug-thread.h:
3203 Simple thread implementation that asserts() on deadlocks in
3204 single-threaded code.
3207 (main) Call debug_threads_init.
3210 Use disconnect message instead of disconnect callback.
3214 Don't call dbus_connection_set_disconnect_function. Instead export
3215 bus_connection_disconnect.
3218 Call bus_connection_disconnect when we get a disconnected message.
3220 2003-02-15 Havoc Pennington <hp@pobox.com>
3222 * dbus/dbus-message.c (dbus_message_new): fool around with the
3225 2003-02-14 Havoc Pennington <hp@pobox.com>
3227 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3229 * dbus/dbus-memory.c: fail if the debug functions indicate we
3232 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3233 (_dbus_decrement_fail_alloc_counter): debug functions to
3234 simulate memory allocation failures
3236 2003-02-14 Havoc Pennington <hp@pobox.com>
3238 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3241 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3243 * bus/driver.c: (bus_driver_handle_hello):
3245 * bus/services.c: (bus_service_lookup):
3246 Reorder message sending so we get a more sane order.
3248 * test/bus-test.c: (message_handler):
3251 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3253 * bus/driver.c: (bus_driver_send_service_deleted),
3254 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3255 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3256 (bus_driver_send_welcome_message),
3257 (bus_driver_handle_list_services),
3258 (bus_driver_handle_acquire_service),
3259 (bus_driver_handle_service_exists):
3260 * dbus/dbus-bus.c: (dbus_bus_register_client),
3261 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3262 * dbus/dbus-errors.c: (dbus_result_to_string):
3263 * dbus/dbus-errors.h:
3264 * dbus/dbus-message.c: (dbus_message_append_args),
3265 (dbus_message_append_args_valist), (dbus_message_get_args),
3266 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3267 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3268 (dbus_message_iter_get_byte_array),
3269 (dbus_message_iter_get_string_array), (message_iter_test),
3270 (check_message_handling), (_dbus_message_test):
3271 * dbus/dbus-message.h:
3272 * test/bus-test.c: (main):
3273 Change fields to arguments in messages, so that they won't be
3274 confused with header fields.
3276 * glib/test-dbus-glib.c: (main):
3277 Remove append_fields from hello message.
3279 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3281 * dbus/dbus-errors.c:
3282 * dbus/dbus-message.c:
3283 * dbus/dbus-string.c:
3284 Documentation fixes.
3286 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3288 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3290 Implement support for timeouts in dbus-glib.
3292 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3294 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3295 * dbus/dbus-message.c: (process_test_subdir):
3296 * test/break-loader.c: (find_breaks_based_on):
3297 Plug some memory leaks.
3299 2003-02-13 Richard Hult <rhult@codefactory.se>
3301 * bus/main.c: Fix build.
3303 * dbus/dbus-errors.h:
3304 * dbus/dbus-errors.c: Fix copyright for Anders.
3306 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3311 * bus/connection.c: (bus_connection_foreach):
3314 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3315 (unescape_string), (new_section), (parse_section_start),
3316 (parse_key_value), (report_error), (bus_desktop_file_load),
3317 (bus_desktop_file_get_string):
3318 * bus/desktop-file.h:
3319 Use DBusError for error reporting.
3321 * bus/dispatch.c: (send_one_message),
3322 (bus_dispatch_message_handler):
3323 * bus/driver.c: (bus_driver_send_service_deleted),
3324 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3325 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3326 (bus_driver_send_welcome_message),
3327 (bus_driver_handle_list_services),
3328 (bus_driver_handle_acquire_service),
3329 (bus_driver_handle_service_exists):
3330 * bus/loop.c: (bus_loop_run):
3332 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3334 * bus/utils.c: (bus_wait_for_memory):
3336 New files with general utility functions.
3338 * dbus/dbus-internals.h:
3339 Remove _DBUS_HANDLE_OOM.
3341 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3343 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3344 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3345 * dbus/dbus-errors.h:
3346 Add DBusError structure.
3348 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3350 * test/data/valid-messages/standard-acquire-service.message:
3351 * test/data/valid-messages/standard-hello.message:
3352 * test/data/valid-messages/standard-list-services.message:
3353 * test/data/valid-messages/standard-service-exists.message:
3354 Add some standard messages.
3356 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3358 * bus/driver.c: (bus_driver_send_welcome_message),
3359 (bus_driver_handle_list_services),
3360 (bus_driver_handle_acquire_service),
3361 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3362 Update for API changes in libdbus.
3364 * dbus/dbus-message.c: (dbus_message_new_reply):
3365 * dbus/dbus-message.h:
3366 Remove the name argument. The spec states that replies shouldn't
3369 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3371 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3372 (report_error), (bus_desktop_file_load), (lookup_section),
3373 (lookup_line), (bus_desktop_file_get_raw),
3374 (bus_desktop_file_get_string):
3375 * bus/desktop-file.h:
3376 Some fixes, and new functions for getting a key value from a section.
3378 2003-02-13 Havoc Pennington <hp@pobox.com>
3380 * test/data/auth/fail-after-n-attempts.auth-script: new test
3382 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3385 2003-02-13 Havoc Pennington <hp@pobox.com>
3387 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3388 dbus_credentials_match were backward
3390 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3391 NO_CREDENTIALS and ROOT_CREDENTIALS
3393 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3394 into here. Never process more commands after we've reached an
3395 end state; store further data as unused bytes.
3397 * test/data/auth/*: add more auth tests
3399 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3400 command to match exact string and EXPECT_UNUSED to match unused
3403 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3405 2003-02-12 Havoc Pennington <hp@pobox.com>
3407 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3408 \r off of popped lines
3410 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3413 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3416 2003-02-12 Havoc Pennington <hp@pobox.com>
3418 * dbus/Makefile.am: remove break-loader from the build, since it
3421 * configure.in: add --enable-gcov to turn on coverage profiling
3422 flags and disable optimization
3424 2003-02-10 Havoc Pennington <hp@pobox.com>
3426 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3427 initial cut at test framework for DBusAuth from laptop.
3428 Doesn't quite work yet but it compiles and I need to get
3429 it off the 266mhz laptop. ;-)
3431 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3432 fix a memleak in error case
3434 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3437 * bus/desktop-file.c:
3438 * bus/desktop-file.h:
3439 Add a desktop file parser.
3441 2003-02-11 Zack Rusin <zack@kde.org>
3443 * qt/message.[h|cpp]: sample implementation
3444 of the KDE wrapper for DBusMessage
3446 2003-02-09 Zack Rusin <zack@kde.org>
3448 * test/bus-test.c: make_it_compile
3449 * doc/dbus-specification.sgml: minimal semantic fix
3451 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3457 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3460 * dbus/dbus-break-loader.c:
3462 * test/break-loader.c:
3463 Move dbus-break-loader to test/ and rename it to break-loader.
3465 2003-02-02 Havoc Pennington <hp@pobox.com>
3467 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3468 for code to manage cookies in your home directory
3470 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3472 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3473 to authenticate, then disconnect the client.
3475 2003-02-03 Alexander Larsson <alexl@redhat.com>
3477 * dbus/dbus-message.c (dbus_message_append_fields):
3480 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3482 * doc/dbus-specification.sgml:
3483 Update address format section.
3485 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3488 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3489 (message_handler), (new_connection_callback), (loop_quit),
3493 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3495 * bus/driver.c: (bus_driver_handle_service_exists):
3496 Simplify the code a bit.
3498 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3501 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3504 Add libdbus-daemon.la and link to it.
3506 2003-02-01 James Willcox <jwillcox@gnome.org>
3508 * bus/driver.c: (bus_driver_handle_own_service):
3509 Actually include the service reply code in the message.
3511 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3513 * bus/driver.c: (bus_driver_handle_service_exists):
3514 Don't unref the incoming message.
3516 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3518 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3520 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3522 * dbus/dbus-server.c: (dbus_server_listen):
3523 * dbus/dbus-transport.c: (_dbus_transport_open):
3524 ifdef out the calls to the debug transport and server.
3526 2003-02-02 Alexander Larsson <alexl@redhat.com>
3528 * dbus/dbus-watch.c (dbus_watch_get_flags):
3529 Add note in the docs that ERROR or HANGUP won't be returned
3530 and are assumed always on.
3532 * glib/dbus-gmain.c (add_watch):
3533 Always add IO_ERR | IO_HUP
3535 * dbus/dbus-message.h:
3536 Add semicolon after dbus_message_iter_get_string_array().
3537 Makes qt code build again
3539 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3541 * bus/driver.c: (create_unique_client_name),
3542 (bus_driver_handle_hello):
3543 Don't take a name, just use a numeric id to identify
3547 * dbus/dbus-bus.c: (dbus_bus_register_client),
3548 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3550 Add new convenience functions for communicating with the bus.
3552 * dbus/dbus-message.h:
3554 * dbus/dbus-protocol.h:
3557 2003-02-01 Alexander Larsson <alexl@redhat.com>
3559 * dbus/dbus-message.c (dbus_message_append_fields):
3560 Add some more doc comments.
3562 2003-02-01 Havoc Pennington <hp@pobox.com>
3564 * dbus/dbus-break-loader.c (randomly_modify_length): change
3565 a 4-byte value in the message as if it were a length
3567 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3568 execute bit on saved files
3570 2003-02-01 Havoc Pennington <hp@pobox.com>
3572 * dbus/dbus-break-loader.c (main): new program to find messages
3573 that break the loader.
3575 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3576 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3578 * dbus/dbus-string.c (_dbus_string_set_byte): new
3580 2003-01-31 Havoc Pennington <hp@pobox.com>
3582 * dbus/dbus-message.c: refactor the test code to be more general,
3583 in preparation for writing a "randomly permute test cases to
3584 try to break the loader" program.
3586 2003-01-31 Havoc Pennington <hp@pobox.com>
3588 * doc/dbus-specification.sgml: work on the specification
3590 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3591 the protocol version of the message.
3593 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3594 no longer specifies that.
3595 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3598 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3599 "break" for DBUS_TYPE_NIL, remove @todo
3601 2003-01-31 Havoc Pennington <hp@pobox.com>
3603 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3604 just set_is_error/get_is_error as this is a commonly-used
3605 function, and write docs.
3607 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3609 * dbus/dbus-address.c: (dbus_address_entry_free):
3610 Free key and value lists.
3612 * dbus/dbus-internals.c: (_dbus_type_to_string):
3613 Add the types we didn't have.
3615 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3616 (_dbus_marshal_validate_arg):
3619 * dbus/dbus-message.c: (dbus_message_set_sender):
3620 Remove todo about being able to set sender to NULL.
3622 (dbus_message_set_is_error_reply),
3623 (dbus_message_get_is_error_reply):
3624 * dbus/dbus-message.h:
3627 * dbus/dbus-protocol.h:
3628 Add error reply flag.
3630 * test/data/valid-messages/opposite-endian.message:
3631 Add NIL type to test.
3633 2003-01-31 Havoc Pennington <hp@pobox.com>
3635 * doc/dbus-specification.sgml: fully specify the header. Add
3636 flags and major protocol version, and change header/body len to
3639 * dbus/dbus-message-builder.c (append_saved_length): append length
3642 * dbus/dbus-message.c (dbus_message_create_header): change header
3643 length and body length to unsigned. Add the new fields from the
3645 (_dbus_message_loader_return_buffer): unsigned header/body len
3647 2003-01-30 Havoc Pennington <hp@pobox.com>
3649 * dbus/dbus-auth.c: rework to use only REJECTED, no
3652 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3653 use REJECTED, suggested by Mark McLoughlin
3655 2003-01-30 Havoc Pennington <hp@pobox.com>
3657 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3658 a better way to report errors here. e.g. "unix address lacks
3659 path" or something. also "no such file" when the path doesn't
3662 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3664 (dbus_parse_address): add @todo about documenting address format,
3665 and allowing , and ; to be escaped
3667 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3670 Add dbus-address.[ch]
3672 * dbus/dbus-address.c: (dbus_address_entry_free),
3673 (dbus_address_entries_free), (create_entry),
3674 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3675 (dbus_parse_address), (_dbus_address_test):
3676 * dbus/dbus-address.h:
3677 New files for dealing with address parsing.
3679 * dbus/dbus-connection.c:
3680 Document timeout functions.
3682 * dbus/dbus-message.c:
3683 Document dbus_message_new_from_message.
3685 * dbus/dbus-server-debug.c:
3688 * dbus/dbus-server.c: (dbus_server_listen):
3689 Parse address and use correct server implementation.
3691 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3692 * dbus/dbus-string.h:
3693 New function with test.
3695 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3699 * dbus/dbus-transport-debug.c:
3702 * dbus/dbus-transport.c: (_dbus_transport_open):
3703 Parse address and use correct transport implementation.
3705 2003-01-30 Havoc Pennington <hp@pobox.com>
3707 * dbus/dbus-message.c: use message->byte_order instead of
3708 DBUS_COMPILER_BYTE_ORDER throughout.
3709 (dbus_message_create_header): pad header to align the
3710 start of the body of the message to 8-byte boundary
3712 * dbus/dbus-marshal.h: make all the demarshalers take const
3713 DBusString arguments.
3715 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3716 validate message args here, so we don't have to do slow validation
3717 later, and so we catch bad messages as they are incoming. Also add
3718 better checks on header_len and body_len. Also fill in
3721 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3722 implemented properly)
3723 (_dbus_string_validate_nul): new function to check all-nul
3725 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3726 get_arg_end_pos and remove all validation
3727 (_dbus_marshal_validate_arg): actually do validation here.
3729 2003-01-29 Havoc Pennington <hp@pobox.com>
3731 * dbus/dbus-message.c (check_message_handling): fix assertion
3732 failure on set_client_serial
3734 2003-01-28 Havoc Pennington <hp@pobox.com>
3736 * dbus/dbus-server-debug.c: Add doc section comments
3738 * dbus/dbus-transport-debug.c: add doc section comments
3740 2003-01-28 Havoc Pennington <hp@redhat.com>
3742 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3743 the reverse order from how I had it
3744 (_dbus_string_base64_encode): reverse encoding order. I was
3745 basically byteswapping everything during encoding.
3747 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3749 * dbus/dbus-connection-internal.h:
3750 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3751 (_dbus_connection_remove_timeout):
3752 Add functions for adding and removing timeouts.
3754 * dbus/dbus-message.c: (dbus_message_new_from_message):
3755 Add new function that takes a message and creates an exact
3756 copy of it, but with the refcount set to 1.
3757 (check_message_handling):
3760 * dbus/dbus-server-protected.h:
3761 * dbus/dbus-server.c: (_dbus_server_init_base),
3762 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3763 (dbus_server_set_timeout_functions):
3764 (_dbus_server_remove_timeout):
3765 New functions so that a server can add and remove timeouts.
3767 (dbus_server_listen):
3768 Add commented out call to dbus_server_debug_new.
3770 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3771 Actually set the handler, doh.
3773 * dbus/dbus-transport.c: (_dbus_transport_open):
3774 Add commented out call to dbus_transport_debug_client_new.
3777 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3779 2003-01-28 Havoc Pennington <hp@pobox.com>
3781 * dbus/dbus-message.c (check_message_handling): function to check
3782 on the loaded message, iterates over it etc.
3784 2003-01-28 Havoc Pennington <hp@pobox.com>
3786 * test/Makefile.am (dist-hook): fix make distdir
3788 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3790 2003-01-27 Havoc Pennington <hp@pobox.com>
3792 * dbus/dbus-mempool.c (time_for_size): replace printf with
3795 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3796 empty lines; fix the SAVE_LENGTH stuff to be
3797 START_LENGTH/END_LENGTH so it actually works; couple other
3800 * test/Makefile.am (dist-hook): add dist-hook for .message files
3802 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3803 can be constant or locked.
3804 (_dbus_string_free): allow freeing a const string as
3807 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3809 * dbus/dbus-test-main.c (main): take an argument which is the
3810 directory containing test data
3812 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3813 argument to this and load all the messages in test/data/
3814 checking that they can be loaded or not loaded as appropriate.
3816 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3818 * bus/dispatch.c: (bus_dispatch_message_handler):
3819 Dispatch messages sent to services.
3821 * bus/driver.c: (bus_driver_send_service_deleted),
3822 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3823 (bus_driver_send_service_acquired):
3824 Add helper functions for sending service related messages.
3826 (bus_driver_send_welcome_message):
3827 Send HELLO_REPLY instead of WELCOME.
3829 (bus_driver_handle_list_services):
3830 Send LIST_SERVICES_REPLY instead of SERVICES.
3832 (bus_driver_handle_own_service),
3833 (bus_driver_handle_service_exists):
3834 New message handlers.
3836 (bus_driver_handle_message):
3837 Invoke new message handlers.
3839 (bus_driver_remove_connection):
3840 Don't remove any services here since that's done automatically
3841 by bus_service_remove_owner now.
3844 New function signatures.
3846 * bus/services.c: (bus_service_add_owner):
3847 Send ServiceAcquired message if we're the only primary owner.
3849 (bus_service_remove_owner):
3850 Send ServiceAcquired/ServiceLost messages.
3852 (bus_service_set_prohibit_replacement),
3853 (bus_service_get_prohibit_replacement):
3854 Functions for setting prohibit replacement.
3856 (bus_service_has_owner):
3857 New function that checks if a connection is in the owner queue of
3861 Add new function signatures.
3863 * dbus/dbus-list.c: (_dbus_list_test):
3864 Add tests for _dbus_list_remove_last and traversing the list backwards.
3867 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3868 go any further, so return NULL then.
3870 * dbus/dbus-protocol.h:
3871 Add new messages, service flags and service replies.
3873 2003-01-26 Havoc Pennington <hp@pobox.com>
3875 * dbus/dbus-message-builder.c: implement, completely untested.
3877 * test/data/*: add data to be used in testing.
3878 ".message" files are our simple loadable text format.
3879 ".message-raw" will be binary dumps of messages.
3881 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3883 2003-01-26 Havoc Pennington <hp@pobox.com>
3885 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3887 * dbus/dbus-errors.c (dbus_result_to_string): add
3890 * dbus/dbus-message-builder.c: new file, will contain code to load
3891 up messages from files. Not implemented yet.
3893 2003-01-26 Havoc Pennington <hp@pobox.com>
3895 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3896 the sender by setting to NULL
3898 2003-01-26 Havoc Pennington <hp@pobox.com>
3900 The unit tests pass, but otherwise untested. If it breaks, the
3901 tests should have been better. ;-)
3903 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3906 * dbus/dbus-message.c: redo everything so we maintain
3907 message->header as the only copy of the various fields.
3908 This avoids the possibility of out-of-memory in some cases,
3909 for example dbus_message_lock() can't run out of memory anymore,
3910 and avoids extra copying. Figured I may as well go ahead and do
3911 this since it was busted for dbus_message_lock to not return
3912 failure on OOM, and dbus_message_write_header was totally
3913 unchecked for OOM. Also fixed some random other bugs.
3915 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3916 that strings are nul-terminated. Also, end_pos can be equal
3917 to string length just not greater than, I think.
3918 (_dbus_marshal_set_int32): new function
3919 (_dbus_marshal_set_uint32): new function
3920 (_dbus_marshal_set_string): new function
3922 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3923 a warning, init timeout_list to NULL
3924 (dbus_connection_send_message): don't use uninitialized variable
3927 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3929 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3931 * bus/driver.c: (bus_driver_handle_hello),
3932 (bus_driver_send_welcome_message):
3935 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3937 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3938 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3939 (dbus_connection_unref):
3940 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3941 * dbus/dbus-message.c: (dbus_message_unref),
3944 (dbus_message_get_fields):
3945 Remove debugging printout.
3947 (_dbus_message_loader_return_buffer):
3948 Don't store the header string.
3950 (_dbus_message_test):
3953 2003-01-26 Richard Hult <rhult@codefactory.se>
3955 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3956 the file descriptor list, since it can change under us.
3958 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3960 * glib/dbus-gmain.c: (dbus_connection_prepare),
3961 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3962 (remove_watch), (dbus_connection_hookup_with_g_main):
3963 Rewrite the glib handling to use its own GSource instead of a
3964 GIOChannel so we can catch messages put in the queue while waiting
3967 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3970 * bus/connection.c: (connection_disconnect_handler),
3971 (connection_watch_callback), (bus_connection_setup):
3972 * bus/dispatch.c: (send_one_message),
3973 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3974 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3976 * bus/driver.c: (bus_driver_send_service_deleted),
3977 (bus_driver_send_service_created), (bus_driver_handle_hello),
3978 (bus_driver_send_welcome_message),
3979 (bus_driver_handle_list_services), (bus_driver_remove_connection),
3980 (bus_driver_handle_message):
3982 Refactor code, put the message dispatching in its own file. Use
3983 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3986 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3988 * dbus/dbus-internals.h:
3989 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3991 * dbus/dbus-message.c: (dbus_message_get_sender):
3992 * dbus/dbus-message.h:
3993 Implement dbus_message_get_sender.
3995 * dbus/dbus-protocol.h:
3996 Add message and service defines.
3998 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4000 * dbus/dbus-connection.c: (dbus_connection_send_message):
4001 * dbus/dbus-message-internal.h:
4002 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4003 (dbus_message_write_header):
4004 Remove _dbus_messag_unlock and don't set the client serial on a
4005 message if one already exists.
4007 2003-01-24 Havoc Pennington <hp@pobox.com>
4009 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4012 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4015 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4017 * dbus/dbus-list.c: (alloc_link), (free_link):
4018 Use a memory pool for the links.
4020 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4022 * bus/connection.c: (bus_connection_foreach):
4024 Add new bus_connection_foreach function.
4026 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4027 Add function that broadcasts a message to all clients.
4029 (bus_driver_send_service_created), (bus_driver_handle_hello),
4030 (bus_driver_send_welcome_message),
4031 (bus_driver_handle_list_services), (bus_driver_message_handler):
4032 Implement functions that take care of listing services, and notifying
4033 clients when new services are created.
4035 * bus/services.c: (bus_services_list):
4037 Add new function that returns an array of strings with the currently
4038 registered services.
4041 * glib/dbus-gmain.c:
4042 Update copyright year.
4044 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4046 * dbus/dbus-connection.c: (dbus_connection_send_message):
4047 Unlock the message in case it was sent earlier.
4049 (dbus_connection_send_message_with_reply_and_block):
4050 Remove the reply message from the list.
4052 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4053 Set array_len and new_pos correctly.
4055 (_dbus_marshal_test):
4056 Remove debug output.
4058 * dbus/dbus-message-internal.h:
4059 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4060 New function that returns the reply serial.
4062 (_dbus_message_unlock):
4063 New function that unlocks a message and resets its header.
4065 (dbus_message_append_string_array),
4066 (dbus_message_get_fields_valist),
4067 (dbus_message_iter_get_field_type),
4068 (dbus_message_iter_get_string_array),
4069 (dbus_message_get_fields),
4070 (dbus_message_append_fields_valist):
4071 Handle string arrays.
4073 (dbus_message_set_sender):
4074 Make this function public since the bus daemon needs it.
4076 (decode_header_data):
4077 Set the reply serial to -1 initially.
4079 * dbus/dbus-message.h:
4080 Add dbus_message_set_sender.
4082 2003-01-24 Havoc Pennington <hp@pobox.com>
4084 * doc/dbus-specification.sgml: add some stuff
4086 2003-01-22 Havoc Pennington <hp@pobox.com>
4088 * doc/dbus-specification.sgml: Start to document the protocol.
4090 2003-01-22 Havoc Pennington <hp@pobox.com>
4092 * dbus/dbus-connection.c
4093 (dbus_connection_send_message_with_reply_and_block): add some @todo
4095 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4097 2003-01-21 Havoc Pennington <hp@pobox.com>
4099 (patch untested because can't compile)
4101 * bus/driver.c (create_unique_client_name): make this function
4102 never recycle client names. Also, caller should initialize
4105 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4107 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4109 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4110 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4111 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4112 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4113 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4114 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4115 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4116 * dbus/dbus-marshal.h:
4117 * dbus/dbus-protocol.h:
4118 Add support for marshalling and demarshalling integer, double
4121 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4126 * bus/connection.c: (connection_disconnect_handler):
4127 Remove the connection from the bus driver's list.
4129 (connection_watch_callback): Dispatch messages.
4131 (free_connection_data): Free connection name.
4133 (bus_connection_setup): Add connection to the bus driver's list.
4134 (bus_connection_remove_owned_service):
4135 (bus_connection_set_name), (bus_connection_get_name):
4136 Add functions for setting and getting the connection's name.
4139 Add function headers.
4141 * bus/driver.c: (create_unique_client_name),
4142 (bus_driver_handle_hello_message),
4143 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4144 (bus_driver_add_connection), (bus_driver_remove_connection):
4147 * bus/services.c: (bus_service_free):
4149 New file that handles communication and registreation with the bus
4152 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4154 * dbus/dbus-connection.c: (dbus_connection_send_message):
4155 Add a new client_serial parameter.
4157 (dbus_connection_send_message_with_reply):
4158 Remove a @todo since we've implemented the blocking function.
4160 (dbus_connection_send_message_with_reply_and_block):
4161 New function that sends a message and waits for a reply and
4162 then returns the reply.
4164 * dbus/dbus-connection.h:
4167 * dbus/dbus-errors.c: (dbus_result_to_string):
4168 * dbus/dbus-errors.h:
4169 Add new DBUS_RESULT.
4171 * dbus/dbus-message-internal.h:
4172 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4173 (_dbus_message_set_sender), (dbus_message_write_header),
4174 (dbus_message_new_reply), (decode_header_data),
4175 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4176 * dbus/dbus-message.h:
4177 Add new functions that set the reply serial and sender.
4178 Also marshal and demarshal them correctly and add test.
4180 * dbus/dbus-protocol.h:
4181 Add new DBUS_MESSAGE_TYPE_SENDER.
4184 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4185 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4186 (dbus_connection_hookup_with_g_main):
4187 * glib/test-dbus-glib.c: (main):
4188 Rewrite to use GIOChannel and remove the GSource crack.
4190 * test/echo-client.c: (main):
4191 * test/watch.c: (check_messages):
4192 Update for changed APIs
4194 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4196 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4198 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4199 Create a DBusTimeoutList.
4200 (dbus_connection_set_timeout_functions): Add new function to
4201 set timeout callbacks
4203 * dbus/dbus-connection.h: Add public DBusTimeout API.
4205 * dbus/dbus-message.c: (dbus_message_get_service):
4206 * dbus/dbus-message.h: New function.
4208 * dbus/dbus-server.c: Fix small doc typo.
4210 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4212 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4214 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4215 of the string, just as long as specified.
4217 2003-01-19 Havoc Pennington <hp@pobox.com>
4219 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4222 * dbus/dbus-server.c (dbus_server_set_max_connections)
4223 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4224 keep track of current number of connections, and add API for
4225 setting a max (but haven't implemented enforcing the max yet)
4227 2003-01-18 Havoc Pennington <hp@pobox.com>
4229 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4230 reading/writing if read_watch != NULL or write_watch != NULL.
4232 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4233 the message loader code to actually load message->header and
4234 message->body into the newly-created message.
4236 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4239 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4240 (dbus_connection_get_max_message_size)
4241 (dbus_connection_set_max_live_messages_size)
4242 (dbus_connection_get_max_live_messages_size): implement some
4243 resource limitation functions
4245 * dbus/dbus-resources.c: new file implementing some of the
4246 resource limits stuff
4248 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4249 missing docs, add @todo to handle OOM etc.
4251 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4254 2003-01-18 Havoc Pennington <hp@pobox.com>
4256 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4257 connection if it hasn't been already.
4259 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4260 replace with DisconnectFunction.
4262 2003-01-18 Havoc Pennington <hp@pobox.com>
4264 Building --disable-verbose-mode --disable-asserts --disable-tests
4265 cuts the library from 112K to 45K or so
4267 * configure.in: check for varargs macro support,
4268 add --enable-verbose-mode, --enable-asserts.
4270 * dbus/dbus-internals.h (_dbus_assert): support
4272 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4274 2003-01-18 Havoc Pennington <hp@pobox.com>
4276 * dbus/dbus-test.c: include config.h so that tests actually run
4278 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4279 so the failure mode when that assumption fails will be plenty
4282 2003-01-18 Havoc Pennington <hp@pobox.com>
4284 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4286 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4289 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4290 since we don't want to use those in make check
4292 2003-01-15 Havoc Pennington <hp@redhat.com>
4298 2003-01-15 Havoc Pennington <hp@redhat.com>
4300 * test/Makefile.am: fix so that test source code ends up in the
4301 distribution on make distcheck
4303 2003-01-15 Havoc Pennington <hp@redhat.com>
4309 2003-01-15 Havoc Pennington <hp@redhat.com>
4311 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4312 fix build when --disable-tests
4314 * Makefile.am (EXTRA_DIST): put HACKING in here
4316 * HACKING: document procedure for making a tarball release.
4318 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4320 * bus/connection.c: (connection_error_handler),
4321 (bus_connection_setup):
4322 * bus/main.c: (main):
4323 Make sure that the DBusConnectionData struct is NULLed
4324 out to prevent a segfault.
4326 * dbus/dbus-errors.c: (dbus_result_to_string):
4327 * dbus/dbus-errors.h:
4328 * dbus/dbus-message.c: (dbus_message_get_fields),
4329 (dbus_message_get_fields_valist), (_dbus_message_test):
4330 * dbus/dbus-message.h:
4331 Make dbus_message_get_fields return a result code so we can
4332 track invalid fields as well as oom.
4334 2003-01-11 Havoc Pennington <hp@pobox.com>
4336 * configure.in: change --enable-test/--enable-ansi action-if-given
4337 to enable_foo=$enableval instead of enable_foo=yes
4339 2003-01-08 Havoc Pennington <hp@pobox.com>
4341 * dbus/dbus-string.c (_dbus_string_align_length): new function
4343 * dbus/dbus-test-main.c: move main() for test app here
4345 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4346 symbol to run tests, because dbus-test isn't in the main
4349 Code review nitpicks.
4351 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4352 for people with narrow emacs ;-). Assert client_serial was filled
4353 in. Assert message->name != NULL.
4354 (dbus_message_append_fields): have "first_field_type" arg separate
4355 from va list, needed for C++ binding that also uses varargs IIRC
4356 and helps with type safety
4357 (dbus_message_new): add @todo about using DBusString to store
4358 service/name internally
4359 (dbus_message_new): don't leak ->service and ->name on OOM later
4361 (dbus_message_unref): free the service name
4362 (dbus_message_get_fields): same change to varargs
4363 i.e. first_field_type
4364 (_dbus_message_loader_return_buffer): assert that the message data
4365 is aligned (if not it's a bug in our code). Put in verbose griping
4366 about why we set corrupted = TRUE.
4367 (decode_header_data): add FIXME that char* is evil. Was going to
4368 add FIXME about evil locale-specific string.h strncmp, but just
4369 switched to wacky string-as-uint32 optimization. Move check for
4370 "no room for field name" above get_const_data_len() to avoid
4371 assertion failure in get_const_data_len if we have trailing 2
4372 bytes or the like. Check for service and name fields being
4373 provided twice. Don't leak service/name on error. Require field
4374 names to be aligned to 4 bytes.
4376 * dbus/dbus-marshal.c: move byte swap stuff to header
4377 (_dbus_pack_int32): uscore-prefix
4378 (_dbus_unpack_int32): uscore-prefix
4379 (_dbus_unpack_uint32): export
4380 (_dbus_demarshal_string): add @todo complaining about use of
4382 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4383 handling allowing corrupt data to go unchecked
4385 2003-01-08 Havoc Pennington <hp@redhat.com>
4387 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4388 to the select() as needed for authentication. (should be using
4389 _dbus_poll() not select, but for another day)
4391 * dbus/dbus.h: include dbus/dbus-protocol.h
4393 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4395 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4398 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4400 * dbus/dbus-internals.c: (_dbus_type_to_string):
4401 New function that returns a string describing a type.
4403 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4404 * dbus/dbus-marshal.h:
4405 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4406 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4407 (dbus_message_iter_get_byte_array):
4408 * dbus/dbus-message.h:
4409 Add new convenience functions for appending and getting message fields.
4410 Also add demarshalling routines for byte arrays.
4412 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4414 * dbus/dbus-connection-internal.h:
4415 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4416 (_dbus_connection_get_next_client_serial),
4417 (dbus_connection_send_message):
4418 * dbus/dbus-internals.h:
4419 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4420 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4421 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4422 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4423 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4424 (_dbus_verbose_bytes), (_dbus_marshal_test):
4425 * dbus/dbus-marshal.h:
4426 * dbus/dbus-message-internal.h:
4427 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4428 (dbus_message_write_header), (_dbus_message_lock),
4429 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4430 (dbus_message_get_name), (dbus_message_append_int32),
4431 (dbus_message_append_uint32), (dbus_message_append_double),
4432 (dbus_message_append_string), (dbus_message_append_byte_array),
4433 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4434 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4435 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4436 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4437 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4438 (decode_header_data), (_dbus_message_loader_return_buffer),
4439 (message_iter_test), (_dbus_message_test):
4440 * dbus/dbus-message.h:
4441 * dbus/dbus-protocol.h:
4442 * dbus/dbus-test.c: (main):
4444 * glib/test-dbus-glib.c: (message_handler), (main):
4445 * test/echo-client.c: (main):
4446 * test/watch.c: (check_messages):
4447 Make messages sendable and receivable for real.
4449 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4451 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4452 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4453 * dbus/dbus-message.c: (dbus_message_append_int32),
4454 (dbus_message_append_uint32), (dbus_message_append_double),
4455 (dbus_message_append_string), (dbus_message_append_byte_array):
4456 Handle OOM restoration.
4458 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4460 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4461 (_dbus_demarshal_string), (_dbus_marshal_test):
4462 * dbus/dbus-marshal.h:
4463 * dbus/dbus-message.c: (dbus_message_get_name),
4464 Document these functions.
4466 (dbus_message_append_int32), (dbus_message_append_uint32),
4467 (dbus_message_append_double), (dbus_message_append_string),
4468 (dbus_message_append_byte_array):
4469 * dbus/dbus-message.h:
4470 Add functions for adding message fields of different types.
4472 * dbus/dbus-protocol.h:
4473 Add the different types.
4475 2003-01-05 Havoc Pennington <hp@pobox.com>
4477 * bus/connection.c: implement routines for handling connections,
4478 first thing is keeping a list of owned services on each connection
4479 and setting up watches etc.
4481 * bus/services.c: implement a mapping from service names to lists
4484 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4486 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4487 to use static mutexes for global data
4489 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4490 collection of functions to set/get application-specific data
4491 on the DBusConnection.
4493 2003-01-04 Havoc Pennington <hp@pobox.com>
4495 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4496 (_dbus_poll): new function
4498 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4501 * bus/loop.c: initial code for the daemon main loop
4503 2003-01-04 Havoc Pennington <hp@pobox.com>
4505 * test/watch.c (error_handler): make it safe if the error handler
4506 is called multiple times (if we s/error handler/disconnect
4507 handler/ we should just guarantee it's called only once)
4509 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4510 error handler on disconnect (it's quite possible we should
4511 just change the error handler to a "disconnect handler," I'm
4512 not sure we have any other meaningful errors)
4514 * configure.in: check for getpwnam_r
4516 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4517 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4518 mechanism as in SASL spec, using socket credentials
4520 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4521 (_dbus_send_credentials_unix_socket): new function
4523 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4525 (_dbus_write): only check errno if <0 returned
4526 (_dbus_write_two): ditto
4528 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4530 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4531 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4532 (_dbus_marshal_test):
4533 * dbus/dbus-marshal.h:
4534 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4535 to _dbus_marshal_utf8_string. Also fix some tests.
4537 2002-12-28 Harri Porten <porten@kde.org>
4539 * configure.in: added check for C++ compiler and a very cheesy
4540 check for the Qt integration
4542 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4544 * qt/Makefile.am: added
4546 * qt/.cvsignore: added
4548 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4549 latter, added #ifdef QT_THREAD_SUPPORT guard.
4551 * dbus/Makefile.am: added missing headers for make dist
4553 2002-12-28 Kristian Rietveld <kris@gtk.org>
4555 * dbus/Makefile.am: fixup export-symbols-regex.
4557 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4559 * acinclude.m4: Add this file and put the
4560 PKG_CHECK_MODULE macro in it.
4562 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4564 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4565 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4566 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4567 (_dbus_marshal_test):
4568 Make the demarshalling routines align the pos argument.
4569 Add string marshalling tests and fix the obvious bugs
4572 2002-12-26 Havoc Pennington <hp@pobox.com>
4574 * dbus/dbus-auth.c: fixes fixes fixes
4576 * dbus/dbus-transport-unix.c: wire up support for
4577 encoding/decoding data on the wire
4579 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4580 (_dbus_auth_decode_data): append to target string
4581 instead of nuking it.
4583 2002-12-26 Havoc Pennington <hp@pobox.com>
4585 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4586 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4589 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4590 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4591 now). Main point is because I wanted unpack_uint32 to implement
4593 (_dbus_verbose_bytes): new function
4595 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4597 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4598 mechanism to handle a corrupt message stream
4599 (_dbus_message_loader_new): fix preallocation to only prealloc,
4602 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4603 (_dbus_string_test): enhance tests for copy/move and fix the
4606 * dbus/dbus-transport-unix.c: Hold references in more places to
4607 avoid reentrancy problems
4609 * dbus/dbus-transport.c: ditto
4611 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4612 leak reference count in no-message case
4614 * test/watch.c (do_mainloop): handle adding/removing watches
4615 during iteration over the watches. Also, ref the connection/server
4616 stored on a watch, so we don't try to mangle a destroyed one.
4618 * dbus/dbus-transport-unix.c (do_authentication): perform
4621 * dbus/dbus-auth.c (get_state): add a state
4622 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4623 (_dbus_auth_get_unused_bytes): append the unused bytes
4624 to the passed in string, rather than prepend
4626 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4627 the auth conversation DBusAuth
4629 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4630 (_dbus_transport_new_for_domain_socket): when creating a
4631 transport, pass in whether it's a client-side or server-side
4632 transport so we know which DBusAuth to create
4634 2002-12-03 Havoc Pennington <hp@pobox.com>
4636 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4637 _after_ finalizing the derived members
4638 (unix_connection_set): unref watch if we fail to add it
4640 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4641 transport first, so that the connection owned by the
4642 transport will be valid as the transport finalizes.
4644 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4645 if necessary, and remove watches from the connection.
4647 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4649 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4651 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4652 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4653 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4654 (_dbus_marshal_test):
4655 * dbus/dbus-marshal.h:
4656 Add string marshal functions and have the demarshal functions
4657 return the new position.
4659 2002-12-25 Havoc Pennington <hp@pobox.com>
4661 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4662 it is a simple protocol that just maps directly to SASL.
4664 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4665 initial implementation, not actually used yet.
4667 * dbus/dbus-string.c (_dbus_string_find): new function
4668 (_dbus_string_equal): new function
4669 (_dbus_string_base64_encode): new function
4670 (_dbus_string_base64_decode): new function
4672 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4675 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4676 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4677 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4678 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4679 * dbus/dbus-marshal.h:
4680 * dbus/dbus-protocol.h:
4681 * dbus/dbus-test.c: (main):
4683 Add un-optimized marshalling/demarshalling routines.
4685 2002-12-25 Harri Porten <porten@kde.org>
4687 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4689 2002-12-24 Zack Rusin <zack@kde.org>
4691 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4692 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4695 2002-12-24 Havoc Pennington <hp@pobox.com>
4697 * glib/dbus-gthread.c: fix include
4699 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4700 I think glib API needs to change, though, as you don't
4701 want to use DBusMessageFunction, you want to use the
4702 DBusMessageHandler object. Probably
4703 dbus_connection_open_with_g_main_loop()
4704 and dbus_connection_setup_g_main_loop() or something like that
4705 (but think of better names...) that just create a connection
4706 that has watch/timeout functions etc. already set up.
4708 * dbus/dbus-connection.c
4709 (dbus_connection_send_message_with_reply): new function just to
4710 show how the message handler helps us deal with replies.
4712 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4714 * dbus/dbus-string.c (_dbus_string_test): free a string that
4717 * dbus/dbus-hash.c: use memory pools for the hash entries
4718 (rebuild_table): be more paranoid about overflow, and
4719 shrink table when we can
4720 (_dbus_hash_test): reduce number of sprintfs and write
4721 valid C89. Add tests for case where we grow and then
4722 shrink the hash table.
4724 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4726 * dbus/dbus-connection.c (dbus_connection_register_handler)
4727 (dbus_connection_unregister_handler): new functions
4729 * dbus/dbus-message.c (dbus_message_get_name): new
4731 * dbus/dbus-list.c: fix docs typo
4733 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4734 an object representing a handler for messages.
4736 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4739 * glib/dbus-gthread.c: (dbus_gthread_init):
4740 Don't use the gdbus prefix for public functions.
4742 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4746 Add GLib checks and fixup .pc files
4750 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4751 (gdbus_connection_check), (gdbus_connection_dispatch),
4752 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4753 (dbus_connection_gsource_new):
4754 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4755 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4756 * glib/test-dbus-glib.c: (message_handler), (main):
4759 2002-12-15 Harri Porten <porten@kde.org>
4761 * autogen.sh: check for libtoolize before attempting to use it
4763 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4766 * .cvsignore: ignore more stamp files
4768 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4770 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4771 without make install.
4773 2002-12-15 Havoc Pennington <hp@pobox.com>
4775 * dbus/dbus-threads.c: add thread stubs that a higher library
4776 layer can fill in. e.g. the GLib wrapper might fill them in with
4777 GThread stuff. We still need to use this thread API to
4778 thread-safe-ize the library.
4780 2002-12-12 Havoc Pennington <hp@pobox.com>
4782 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4783 below new interfaces and include fewer system headers.
4785 * dbus/dbus-sysdeps.c (_dbus_read): new function
4786 (_dbus_write): new function
4787 (_dbus_write_two): new function
4788 (_dbus_connect_unix_socket): new function
4789 (_dbus_listen_unix_socket): new function
4791 * dbus/dbus-message-internal.h: change interfaces to use
4794 2002-12-11 Havoc Pennington <hp@pobox.com>
4796 * dbus/dbus-types.h: add dbus_unichar
4798 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4800 * dbus/dbus-connection.c (dbus_connection_send_message): return
4803 * dbus/dbus-transport.c: include dbus-watch.h
4805 * dbus/dbus-connection.c: include dbus-message-internal.h
4807 * HACKING: add file with coding guidelines stuff.
4809 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4810 handling here, for security purposes (as in vsftpd). Not actually
4811 using this class yet.
4813 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4814 system/libc usage here, as in vsftpd, for ease of auditing (and
4815 should also simplify portability). Haven't actually moved all the
4816 system/libc usage into here yet.
4818 2002-11-25 Havoc Pennington <hp@pobox.com>
4820 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4821 always print the first verbose message.
4823 2002-11-24 Havoc Pennington <hp@pobox.com>
4825 * test/echo-client.c, test/echo-server.c: cheesy test
4828 * configure.in (AC_CHECK_FUNCS): check for writev
4830 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4833 * dbus/dbus-list.c (_dbus_list_foreach): new function
4835 * dbus/dbus-internals.c (_dbus_verbose): new function
4837 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4838 representing a server that listens for connections.
4840 * dbus/.cvsignore: create
4842 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4843 public API for reporting errors
4845 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4846 public object representing a connection that
4847 sends/receives messages. (Same object used for
4848 both client and server.)
4850 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4851 Basic abstraction for different kinds of stream
4852 that we might read/write messages from.
4854 2002-11-23 Havoc Pennington <hp@pobox.com>
4856 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4859 * dbus/dbus-test.c (main): add list test, and include
4860 dbus-test.h as intended
4862 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4863 (_dbus_hash_table_remove_int): return value indicates
4864 whether the entry existed to remove
4866 * dbus/dbus-list.c: add linked list utility class,
4869 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4872 2002-11-23 Havoc Pennington <hp@pobox.com>
4874 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4875 DBUS_END_DECLS to nothing, that should fix this once and for all
4877 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4879 * dbus/dbus-message.c, dbus/dbus-hash.c:
4880 add some missing @brief
4882 2002-11-23 Havoc Pennington <hp@pobox.com>
4884 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4885 to avoid confusing Doxygen
4887 * dbus/dbus-hash.c: @} not }@
4889 * dbus/dbus-message.c (struct DBusMessage): split out
4892 2002-11-23 Havoc Pennington <hp@pobox.com>
4894 * configure.in: pile on more warning flags if using gcc
4896 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4897 to document static functions
4899 * configure.in: add summary to end of configure so it
4900 looks nice and attractive
4902 * dbus/dbus-hash.c: finish implementation and write unit
4905 * configure.in: add --enable-tests to enable unit tests
4907 * dbus/dbus-test.c: test program to run unit tests
4908 for all files in dbus/*, initially runs a test for
4911 * dbus/dbus-internals.h: file to hold some internal utility stuff
4913 2002-11-22 Havoc Pennington <hp@redhat.com>
4915 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4916 "ported" away from Tcl
4918 * dbus/dbus-types.h: header for types such as dbus_bool_t
4920 2002-11-22 Havoc Pennington <hp@redhat.com>
4922 * dbus/dbus.h: fixups for doc warnings
4924 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4926 (QUIET): make it quiet so we can see warnings
4928 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4930 2002-11-22 Havoc Pennington <hp@redhat.com>
4932 * Makefile.am: include "Doxyfile" target in all-local
4934 * configure.in: generate the Doxyfile
4936 * Doxyfile.in: move Doxyfile here, so we can use
4937 configure to generate a Doxyfile with the right
4940 2002-11-22 Havoc Pennington <hp@redhat.com>
4942 * dbus/dbus-message.c: move inline docs into .c file
4944 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4945 so all docs are under doc/
4946 (MAN_EXTENSION): generate man pages. Use extension
4947 ".3dbus" which matches ".3qt" on my system,
4948 I guess this is OK, I don't know really.
4949 (FILE_PATTERNS): look for .c files not .h, makes sense
4952 2002-11-22 Havoc Pennington <hp@pobox.com>
4954 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4955 because any app can be a server, and any app can be a client,
4956 the bus is a special kind of server.
4958 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4960 * Doxyfile : adding. Still needs Makefile rules to be generated
4961 automatically (just run "doxygen" in the toplevel dir for now to
4964 * dbus/dbus-message.h : Adding sample docs (javadoc since
4965 resembles gtk-doc a little more)
4967 * dbus/dbus.h : Adding sample docs
4969 2002-11-21 Havoc Pennington <hp@redhat.com>
4971 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4972 so we can allow ourselves to include files directly,
4973 instead of having to use dbus.h
4975 * dbus/dbus.h: fill in
4977 * dbus/dbus-message.h: sketch out a sample header file.
4978 Include griping if you include it directly instead of
4981 * dbus/dbus-macros.h: new file with macros for extern "C",
4982 TRUE/FALSE, NULL, etc.
4984 * doc/file-boilerplate.c: put include guards in here
4986 2002-11-21 Havoc Pennington <hp@redhat.com>
4988 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4990 * COPYING: include the GPL as well, and license code
4991 under both AFL and GPL.
4993 2002-11-21 Havoc Pennington <hp@redhat.com>
4995 * acconfig.h: get rid of this
4997 * autogen.sh (run_configure): add --no-configure option
4999 * configure.in: remove AC_ARG_PROGRAM to make
5000 autoconf complain less. add AC_PREREQ.
5001 add AC_DEFINE third arg.
5003 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5006 Fix references so we can distcheck.
5008 2002-11-21 Havoc Pennington <hp@redhat.com>
5010 * Initial module creation