1 2003-07-08 Havoc Pennington <hp@pobox.com>
3 * dbus/dbus-object.c: implement some of this
5 * dbus/dbus-object-registry.c
6 (_dbus_object_registry_add_and_unlock): fill in the object_id out
8 (_dbus_object_registry_new): handle OOM
10 2003-07-08 Havoc Pennington <hp@pobox.com>
12 * dbus/dbus-object.h: sketch out an API for registering objects
13 with a connection, that allows us to use as little as 24 bytes
14 per object and lets application code represent an object in
17 * dbus/dbus-object-registry.c: implement the hard bits of the
18 DBusConnection aspect of object API. Not yet wired up.
20 2003-07-06 Havoc Pennington <hp@pobox.com>
22 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
23 (_dbus_marshal_object_id): new
24 (_dbus_demarshal_object_id): new
25 (_dbus_marshal_get_arg_end_pos): support object ID type, and
26 consolidate identical switch cases. Don't conditionalize handling
27 of DBUS_TYPE_UINT64, need to handle the type always.
28 (_dbus_marshal_validate_arg): consolidate identical cases, and
29 handle DBUS_TYPE_OBJECT_ID
31 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
33 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
35 2003-06-29 Havoc Pennington <hp@pobox.com>
37 * mono/Test.cs (class Test): fire up a main loop and run it
39 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
40 done once, the app has to do it
42 2003-06-26 Havoc Pennington <hp@pobox.com>
44 * mono/Connection.cs: set up connection with the glib main loop
46 2003-07-01 Havoc Pennington <hp@redhat.com>
48 * doc/dbus-specification.sgml: clarify the format of a type code,
49 change suggested by Jim Blandy
51 2003-06-29 Miloslav Trmac <mitr@volny.cz>
54 * tools/Makefile.am: Don't assume srcdir == builddir.
56 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
58 (_dbus_memory_test): New function.
59 * dbus/dbus-test.h: Add _dbus_memory_test ().
60 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
62 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
64 (dbus_message_new): Remove obsolete @todo.
66 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
67 (_dbus_marshal_set_uint64): Fix comment.
69 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
70 hardcode FIELD_REPLY_SERIAL.
72 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
73 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
75 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
76 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
78 2003-06-24 Havoc Pennington <hp@pobox.com>
80 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
82 2003-06-23 Anders Carlsson <andersca@codefactory.se>
88 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
90 * gcj/org/Makefile.am:
91 * gcj/org/freedesktop/.cvsignore:
92 * gcj/org/freedesktop/Makefile.am:
93 * gcj/org/freedesktop/dbus/.cvsignore:
94 * gcj/org/freedesktop/dbus/Makefile.am:
95 * gcj/org/freedesktop/dbus/Message.java: (Message),
97 * gcj/org/freedesktop/dbus/natMessage.cc:
100 2003-06-22 Havoc Pennington <hp@pobox.com>
102 * mono/Connection.cs: add more bindings
104 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
107 2003-06-22 Havoc Pennington <hp@pobox.com>
109 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
110 Start wrapping more stuff.
112 2003-06-22 Havoc Pennington <hp@pobox.com>
114 * mono/Message.cs: implement Message.Wrap() that ensures we only
115 have a single C# wrapper per DBusMessage, assuming it works which
118 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
119 (dbus_message_free_data_slot): new
120 (dbus_message_set_data): new
121 (dbus_message_get_data): new
123 2003-06-22 Havoc Pennington <hp@pobox.com>
125 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
126 (_dbus_data_slot_allocator_alloc): rework these to keep a
127 reference count on each slot and automatically manage a global
128 slot ID variable passed in by address
130 * bus/bus.c: convert to new dataslot API
132 * dbus/dbus-bus.c: convert to new dataslot API
134 * dbus/dbus-connection.c: convert to new dataslot API
136 * dbus/dbus-server.c: convert to new dataslot API
138 * glib/dbus-gmain.c: ditto
142 * bus/connection.c: ditto
144 2003-06-22 Anders Carlsson <andersca@codefactory.se>
146 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
147 after the gcj checks so that the correct configuration tags
148 will be added to libtool.
150 * dbus-glib-1.pc.in: No need to specify any includes since
151 dbus-1.pc.in has those.
153 2003-06-22 Havoc Pennington <hp@pobox.com>
155 * mono/*, gcj/*, configure.in, Makefile.am:
156 Check in makefiles and subdirs for mono and gcj bindings.
157 Neither binding actually exists, just trying to get through
158 all the build and other boring bits.
160 2003-06-21 Philip Blundell <philb@gnu.org>
162 * tools/dbus-monitor.1: Updated.
164 * tools/dbus-send.1: Likewise.
166 2003-06-20 Anders Carlsson <andersca@codefactory.se>
168 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
169 for hangup and error after checking read so we won't discard
170 pending data if both hangup and read are set.
172 2003-06-19 Philip Blundell <philb@gnu.org>
174 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
176 * tools/dbus-send.c: Accept both --system and --session.
178 * tools/dbus-monitor.c: Same here.
180 2003-06-19 Anders Carlsson <andersca@codefactory.se>
182 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
183 from C++ (Patch by Miloslav Trmac).
185 2003-06-15 Joe Shaw <joe@assbarn.com>
187 * configure.in: Check for socklen_t.
189 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
191 * test/test-segfault.c: Add #include <sys/time.h>
193 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
194 dbus-launch needs it.
196 2003-06-09 Havoc Pennington <hp@redhat.com>
198 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
199 SUN_LEN, it breaks abstract socket usage
201 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
204 2003-06-04 Havoc Pennington <hp@pobox.com>
206 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
207 using unix:abstract=/foo, and when listening in a tmpdir
208 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
210 * dbus/dbus-transport.c (_dbus_transport_open): support
213 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
214 support abstract sockets
216 * dbus/dbus-transport-unix.c
217 (_dbus_transport_new_for_domain_socket): support abstract sockets
219 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
220 toggle as an argument, implement abstract namespace support
221 (_dbus_listen_unix_socket): ditto
223 * configure.in: add --enable-abstract-sockets and implement
224 a configure check for autodetection of the right value.
226 2003-06-01 Havoc Pennington <hp@pobox.com>
228 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
229 in /tmp (though on Linux this will end up being useless,
230 when we add abstract namespace support)
232 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
235 2003-05-28 Colin Walters <walters@verbum.org>
237 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
239 2003-05-18 Anders Carlsson <andersca@codefactory.se>
241 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
243 2003-05-17 Colin Walters <walters@gnu.org>
245 * tools/dbus-send.c: Don't exit with an error code if --help was
246 passed. Default to using the session bus instead of the system
249 * tools/dbus-launch.c: Ditto.
251 * tools/dbus-monitor.c: Ditto.
253 * tools/dbus-send.1: Update with new arguments.
255 * tools/dbus-launch.c: Emit code to export variables. New
256 arguments -s and -c to specify shell syntax, and a bit of code to
257 autodetect syntax. Also, allow specifying a program to run.
259 * tools/dbus-launch.1: Update with new arguments.
261 * tools/dbus-send.1: Ditto.
263 * tools/dbus-monitor.1: Ditto.
265 2003-05-17 Havoc Pennington <hp@pobox.com>
267 * bus/config-parser.c (merge_included): merge in policies from
268 child configuration file.
270 * bus/policy.c (bus_policy_merge): function to merge two policies
273 2003-05-16 Havoc Pennington <hp@redhat.com>
275 * dbus/dbus-connection.c: disable verbose lock spew
277 * tools/dbus-send.c: add --print-reply command line option
279 * tools/dbus-print-message.h (print_message): new util function
280 shared by dbus-send and dbus-monitor
282 * tools/dbus-monitor.c (handler_func): exit on disconnect
284 * dbus/dbus-transport-unix.c (do_reading): if the transport is
285 disconnected, don't try to use the read_watch
287 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
288 so we can find this bug more easily
290 2003-05-16 Havoc Pennington <hp@redhat.com>
292 * bus/policy.c (free_rule_list_func): avoid a crash when passed
293 NULL as DBusHashTable is annoyingly likely to do.
295 2003-05-16 Colin Walters <walters@verbum.org>
297 * tools/dbus-monitor.c: Add --session argument and usage()
300 * tools/dbus-monitor.1: Update with new --session arg.
302 * bus/Makefile.am (install-data-hook): Create
303 $(libdir)/dbus-1.0/services so that the session bus is happy.
305 2003-05-15 Havoc Pennington <hp@redhat.com>
307 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
308 on non-x86. ifdef's are evil.
310 2003-05-15 Havoc Pennington <hp@redhat.com>
316 * bus/Makefile.am (initddir): apparently we are supposed to put
317 init scripts in /etc/rc.d/init.d not /etc/init.d
319 * bus/Makefile.am: remove the "you must --enable-tests to make
320 check" as it broke distcheck
322 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
324 2003-05-13 James Willcox <jwillcox@gnome.org>
327 * bus/activation.c: (bus_activation_service_created),
328 (bus_activation_activate_service):
329 * bus/driver.c: (bus_driver_send_service_deleted),
330 (bus_driver_send_service_created), (bus_driver_send_service_lost),
331 (bus_driver_send_service_acquired),
332 (bus_driver_send_welcome_message),
333 (bus_driver_handle_list_services):
334 * bus/session.conf.in:
335 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
336 (dbus_bus_service_exists), (dbus_bus_activate_service):
339 Add some convenience API which lets you activate a service, and did a
340 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
341 and dbus_message_get_args()
343 2003-05-11 Havoc Pennington <hp@pobox.com>
345 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
346 calling _dbus_marshal_validate_arg() for every byte in a byte
349 * dbus/dbus-message-handler.c: use atomic reference counting to
350 reduce number of locks slightly; the global lock in here sucks
352 * dbus/dbus-connection.c
353 (_dbus_connection_update_dispatch_status_and_unlock): variant of
354 update_dispatch_status that can be called with lock held; then use
355 in a couple places to reduce locking/unlocking
356 (dbus_connection_send): hold the lock over the whole function
357 instead of acquiring it twice.
359 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
361 * bus/connection.c (bus_connections_setup_connection): fix access
362 to already-freed memory.
364 * dbus/dbus-connection.c: keep a little cache of linked list
365 nodes, to avoid using the global linked list alloc lock in the
366 normal send-message case. Instead we just use the connection lock
367 that we already have to take.
369 * dbus/dbus-list.c (_dbus_list_find_last): new function
371 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
372 change to use a struct for the atomic type; fix docs,
373 they return value before increment, not after increment.
375 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
376 (_dbus_string_append_8_aligned): new functions to try to
377 microoptimize this operation.
378 (reallocate_for_length): break this out of set_length(), to
379 improve profile info, and also so we can consider inlining the
382 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
383 strings with some preallocation, cuts down on our calls to realloc
384 a fair bit. Though if we can get the "move entire string to empty
385 string" optimization below to kick in here, it would be better.
387 * dbus/dbus-string.c (_dbus_string_move): just call
388 _dbus_string_move_len
389 (_dbus_string_move_len): add a special case for moving
390 an entire string into an empty string; we can just
391 swap the string data instead of doing any reallocs.
392 (_dbus_string_init_preallocated): new function
394 2003-05-11 Havoc Pennington <hp@pobox.com>
396 Write a "test-profile" that does echo client-server with threads;
397 profile reveals lock contention, memcpy/realloc of buffers, and
398 UTF-8 validation as hot spots. 20% of lock contention eliminated
399 with dbus_atomic_inc/dec implementation on x86. Much remaining
400 contention is global mempool locks for GList and DBusList.
402 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
405 * dbus/dbus-connection.c (struct DBusConnection): use
406 dbus_atomic_t for the reference count
408 * dbus/dbus-message.c (struct DBusMessage): declare
409 dbus_atomic_t values as volatile
411 * configure.in: code to detect ability to use atomic integer
412 operations in assembly, from GLib patch
414 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
415 time, tired of it being wrong in threads and forked processes
417 * glib/test-profile.c: a little program to bounce messages back
418 and forth between threads and eat CPU
420 * dbus/dbus-connection.c: add debug spew macros for debugging
421 thread locks; include config.h at top; fix deadlock in
422 dbus_connection_flush()
424 2003-05-08 Havoc Pennington <hp@pobox.com>
426 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
427 data from getting written, and there wasn't a good reason to
430 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
431 dbus_verbose lines in test coverage
432 (main): add list of functions sorted by # of untested blocks
433 to the coverage report
435 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
437 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
439 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
442 * test/data/auth/cancel.auth-script: test canceling an
445 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
446 aren't used. in CVS history if we end up needing them.
448 2003-05-04 Havoc Pennington <hp@pobox.com>
450 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
453 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
454 function, which assumed length was in # of strings, not bytes
456 * dbus/dbus-message.c (_dbus_message_test): add tests for some
459 * dbus/dbus-connection.c
460 (_dbus_connection_queue_received_message): disable function for
461 now, we are only using it in test mode
463 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
464 remove a mistaken FIXME
466 2003-05-04 Havoc Pennington <hp@pobox.com>
468 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
469 unlock mutex on successful return, patch from Anders Gustafsson
471 2003-05-04 Havoc Pennington <hp@pobox.com>
473 * dbus-glib-1.pc.in (Requires): fix dependencies, from
476 2003-05-04 Havoc Pennington <hp@pobox.com>
478 * tools/dbus-launch.c: implement
480 * bus/main.c (main), bus/bus.c (bus_context_new):
481 implement --print-pid and --fork
483 2003-05-03 Havoc Pennington <hp@redhat.com>
485 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
486 the address had no value, and add to test suite. Fix and
487 regression test from Miloslav Trmac
489 2003-05-03 Havoc Pennington <hp@pobox.com>
491 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
492 watch is invalid when handled
494 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
495 dbus-launch utility to launch the bus from a shell script. Didn't
496 actually implement dbus-launch yet, it's just a placeholder still.
498 2003-05-03 Havoc Pennington <hp@pobox.com>
500 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
501 daemon; also documents daemon config file, so replaces
502 doc/config-file.txt. Corrected some stuff from config-file.txt in
503 the process of moving it.
505 2003-05-03 Havoc Pennington <hp@pobox.com>
507 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
510 2003-05-03 Colin Walters <walters@verbum.org>
512 * dbus/dbus-sysdeps.c (fill_user_info): Test against
513 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
515 * Makefile.am: Update to use new .pc versioning scheme.
517 2003-05-02 Havoc Pennington <hp@redhat.com>
519 * bus/system.conf.in: allow send/receive to/from message bus
522 2003-04-30 Havoc Pennington <hp@redhat.com>
524 * configure.in: print a note when building with unit tests and
527 2003-04-30 Havoc Pennington <hp@redhat.com>
529 * Makefile.am: add a check-local that complains if you didn't
530 configure with --enable-tests
532 2003-04-29 Havoc Pennington <hp@redhat.com>
534 * glib/dbus-gmain.c: docs cleanups
536 * dbus/dbus-types.h: add docs on int64 types
538 * dbus/dbus-memory.c: fix docs to avoid putting private API in
539 public API docs section
541 2003-04-29 Havoc Pennington <hp@redhat.com>
543 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
544 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
545 parallel install API version, not with the D-BUS package version.
547 * HACKING: move some of README over here
549 * README: updates, and document API/ABI policy
551 * configure.in: reindentation
553 2003-04-29 Havoc Pennington <hp@redhat.com>
555 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
556 to use this library" to be sure people have the right
559 2003-04-28 Havoc Pennington <hp@redhat.com>
561 * configure.in: add --enable-docs which by default is auto yes if
562 doxygen and db2html found, no otherwise; but can be forced on/off
564 * doc/Makefile.am: conditionalize whether to build docs on
567 2003-04-28 Havoc Pennington <hp@redhat.com>
573 * bus/system.conf.in: add <includedir>system.d</includedir>
575 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
576 username was provided but not uid
578 * bus/config-parser.c (struct BusConfigParser): keep track of
579 whether the parser is toplevel or was included; change some
580 of the error handling if it's included.
582 2003-04-27 Havoc Pennington <hp@pobox.com>
586 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
587 report correct status if we finish processing authentication
588 inside this function.
590 * bus/activation.c (try_send_activation_failure): use
591 bus_transaction_send_error_reply
593 * bus/connection.c (bus_connection_get_groups): return an error
594 explaining the problem
596 * bus/bus.c (bus_context_check_security_policy): implement
597 restriction here that inactive connections can only send the
598 hello message. Also, allow bus driver to send anything to
601 * bus/connection.c (bus_connection_complete): create the
602 BusClientPolicy here instead of on-demand.
603 (bus_connection_get_policy): don't return an error
605 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
606 sender field in message being replied to
608 * bus/bus.c (bus_context_check_security_policy): fix silly typo
609 causing it to return FALSE always
611 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
612 we checked sender rather than destination
614 2003-04-25 Havoc Pennington <hp@redhat.com>
616 test suite is slightly hosed at the moment, will fix soon
618 * bus/connection.c (bus_connections_expire_incomplete): fix to
619 properly disable the timeout when required
620 (bus_connection_set_name): check whether we can remove incomplete
621 connections timeout after we complete each connection.
623 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
624 probably still broken.
626 * bus/services.c (bus_registry_acquire_service): implement max
627 number of services owned, and honor allow/deny rules on which
628 services a connection can own.
630 * bus/connection.c (bus_connection_get_policy): report errors here
632 * bus/activation.c: implement limit on number of pending
635 2003-04-25 Havoc Pennington <hp@redhat.com>
637 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
638 where we used >= 0 instead of != DBUS_UID_UNSET.
640 2003-04-25 Havoc Pennington <hp@redhat.com>
642 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
643 were toggled without add/remove, fix from Anders Gustafsson
645 2003-04-24 Havoc Pennington <hp@redhat.com>
647 * test/data/valid-config-files/basic.conf: add <limit> tags to
650 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
651 <limit> tag in configuration file.
653 2003-04-24 Havoc Pennington <hp@redhat.com>
655 * bus/dispatch.c: somehow missed some name_is
657 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
658 (_dbus_timeout_set_interval): new
660 * bus/connection.c (bus_connections_setup_connection): record time
661 when each connection is first set up, and expire them after the
664 2003-04-24 Havoc Pennington <hp@redhat.com>
666 * dbus/dbus-message.c (dbus_message_name_is): rename
667 (dbus_message_service_is): rename
668 (dbus_message_sender_is): rename
669 (dbus_message_get_service): rename
671 2003-04-24 Havoc Pennington <hp@redhat.com>
673 * configure.in: add --enable-checks
675 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
677 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
679 (_dbus_connection_handler_destroyed_locked): move some private
680 functions into proper docs group
682 * dbus/dbus-internals.h: add _dbus_return_if_fail,
683 _dbus_return_val_if_fail
685 Throughout: use dbus_return_if_fail
687 2003-04-23 James Willcox <jwillcox@gnome.org>
690 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
691 (dbus_connection_setup_with_g_main),
692 (dbus_server_setup_with_g_main):
693 * glib/test-dbus-glib.c: (main):
694 * glib/test-thread-client.c: (main):
695 * glib/test-thread-server.c: (new_connection_callback), (main):
696 * tools/dbus-monitor.c: (main):
698 Added a GMainContext argument to dbus_connection_setup_with_g_main()
699 and dbus_server_setup_with_g_main().
701 2003-04-20 Havoc Pennington <hp@pobox.com>
703 * doc/dbus-specification.sgml: document the restrictions on
704 message and service names
706 2003-04-22 Havoc Pennington <hp@redhat.com>
708 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
709 support, and do some code cleanups to share more code and
710 speed up array marshal/demarshal.
712 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
714 * configure.in: generate dbus-arch-deps.h
716 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
719 2003-04-22 Havoc Pennington <hp@redhat.com>
721 * test/data/valid-messages/opposite-endian.message: fix test
722 to use proper type for rply field
724 * test/data/invalid-messages: add tests for below validation
726 * dbus/dbus-message.c (decode_header_data): validate field types,
727 and validate that named fields are valid names
728 (decode_name_field): consider messages in the
729 org.freedesktop.Local. namespace to be invalid.
731 * dbus/dbus-string.c (_dbus_string_validate_name): new
733 2003-04-19 Havoc Pennington <hp@pobox.com>
735 * bus/driver.c (bus_driver_handle_hello): check limits and
736 return an error if they are exceeded.
738 * bus/connection.c: maintain separate lists of active and inactive
739 connections, and a count of each. Maintain count of completed
740 connections per user. Implement code to check connection limits.
742 * dbus/dbus-list.c (_dbus_list_unlink): export
744 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
745 number of bytes in the message queue for a connection
747 2003-04-18 Havoc Pennington <hp@pobox.com>
749 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
751 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
754 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
755 on realloc be sure to update the pointer in the keyring
757 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
758 offset to avoid writing to unallocated memory
760 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
761 try the next mechanism, so we properly handle OOM
763 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
765 (_dbus_keyring_new): fix OOM bug
766 (_dbus_keyring_new_homedir): always set error; impose a maximum
767 number of keys we'll load from the file, mostly to speed up the
768 test suite and make its OOM checks more useful, but also for
771 * dbus/dbus-auth.c (process_error_server): reject authentication
772 if we get an error from the client
773 (process_cancel): on cancel, send REJECTED, per the spec
774 (process_error_client): send CANCEL if we get an error from the
777 2003-04-18 Havoc Pennington <hp@pobox.com>
779 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
782 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
785 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
786 about DBUS_TEST_HOMEDIR once
788 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
791 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
792 config file so we test the right thing
794 Throughout: assorted docs improvements
796 2003-04-18 Havoc Pennington <hp@pobox.com>
798 * glib/dbus-gmain.c: adapt to watch changes
800 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
802 * dbus/dbus-server.h: remove dbus_server_handle_watch
804 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
806 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
807 like DBusTimeout, so we don't need dbus_connection_handle_watch
810 2003-04-17 Havoc Pennington <hp@redhat.com>
812 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
813 database usage so it all goes via the DBusUserDatabase cache.
815 2003-04-17 Havoc Pennington <hp@redhat.com>
817 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
818 there was an OOM watch we skipped, we always return TRUE so we
819 iterate again to have a look at it again. Fixes test suite hang.
820 Code rearrangement also lets us lose some memset and only iterate
823 * bus/driver.c (bus_driver_handle_message): sense of test for
826 2003-04-16 Havoc Pennington <hp@pobox.com>
828 * doc/dbus-specification.sgml: make spec say serials are unsigned
830 * dbus/dbus-message.h: change message serials to unsigned
832 * dbus/dbus-connection.c: adapt to message serials being unsigned
834 2003-04-15 Havoc Pennington <hp@pobox.com>
836 * bus/bus.c: create and keep around a shared DBusUserDatabase
839 * bus/connection.c (bus_connection_get_groups): don't cache
840 groups for user in the connection object, since user database
841 object now does that.
843 2003-04-16 Havoc Pennington <hp@redhat.com>
845 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
846 list of size counters
847 (_dbus_message_loader_putback_message_link): put back a popped link
849 * dbus/dbus-connection.c
850 (dbus_connection_set_max_live_messages_size): rename
852 (dbus_connection_get_outgoing_size): get size of outgoing
854 (_dbus_connection_set_connection_counter): remove this cruft
856 2003-04-14 Havoc Pennington <hp@redhat.com>
858 * dbus/dbus-userdb.c: user database abstraction, mostly to get
859 caching, but at some point we might want to be able to use a
862 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
863 SHA1 conf file to test the sha1 auth mechanism, since the regular
864 test always uses EXTERNAL when available.
867 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
868 add conf file that requires use of sha1 auth
870 2003-04-13 Havoc Pennington <hp@pobox.com>
872 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
873 from Philip Blundell to send messages and monitor them.
875 2003-04-13 Havoc Pennington <hp@pobox.com>
877 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
880 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
883 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
884 fix to only recover unused bytes if we're already authenticated
885 (_dbus_transport_get_is_authenticated): fix to still mark us
886 authenticated if there are unused bytes.
888 * bus/dispatch.c: implement security policy checking
890 * bus/connection.c (bus_transaction_send_from_driver): new
892 * bus/bus.c (bus_context_check_security_policy): new
894 * bus/dispatch.c (send_service_nonexistent_error): delete this,
895 now we just set the DBusError and it gets converted to an error
898 * bus/connection.c (allow_user_function): enable code using actual
899 data from the config file
901 * bus/policy.c (list_allows_user): handle wildcard rules for
902 user/group connection perms
904 2003-04-13 Havoc Pennington <hp@pobox.com>
906 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
908 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
910 * bus/policy.c (bus_policy_append_mandatory_rule)
911 (bus_policy_append_default_rule, bus_policy_append_user_rule)
912 (bus_policy_append_group_rule): new functions
914 2003-04-12 Havoc Pennington <hp@pobox.com>
916 * bus/config-parser.c (bus_config_parser_new): fix a memleak
918 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
919 the pid/gid/uid, just for paranoia.
921 * test/break-loader.c (randomly_do_n_things): find a byte
922 containing a type code, and randomly change it to a different
925 2003-04-12 Havoc Pennington <hp@pobox.com>
927 * bus/policy.h: change BusPolicy to be the thing from the config
928 file, and rename old BusPolicy to BusClientPolicy
930 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
931 match change in how policy works
933 * dbus/dbus-internals.h: mark assert_not_reached as
934 __attribute((noreturn))__
936 2003-04-11 Havoc Pennington <hp@redhat.com>
938 * doc/dbus-specification.sgml: fix a spot with the wrong name for
939 the broadcast service. Use boolean return for ServiceExists.
941 2003-04-11 Havoc Pennington <hp@redhat.com>
943 * configure.in: add another directory to look for qt in.
945 2003-04-11 Havoc Pennington <hp@redhat.com>
947 * AUTHORS: add Colin Walters
949 2003-04-11 Havoc Pennington <hp@redhat.com>
955 2003-04-11 Havoc Pennington <hp@redhat.com>
957 * bus/messagebus.in: remove pid file when stopping the
958 message bus, since the bus won't have privileges to remove it
961 2003-04-11 Havoc Pennington <hp@redhat.com>
963 * bus/bus.c (bus_context_new): move credentials change after
966 2003-04-11 Havoc Pennington <hp@pobox.com>
968 * test/decode-gcov.c: add "below average functions" to the
969 coverage report, and change how some of the code works.
971 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
972 not in the coverage stats.
974 * test/test-service.c (main): use _dbus_verbose not fprintf in a
975 couple places so running the test suite doesn't result in megaspam.
977 2003-04-11 Havoc Pennington <hp@pobox.com>
979 * bus/dispatch.c (check_existent_service_activation): accept a no
980 memory error in a place we didn't before
982 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
983 in case the first one failed," since the test suite is less
986 2003-04-10 Havoc Pennington <hp@pobox.com>
988 * bus/dispatch.c (check_segfault_service_activation): add test
989 for launching an executable that just crashes.
991 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
992 don't leave a million cores. We'll see how portable this is.
994 2003-04-10 Havoc Pennington <hp@pobox.com>
996 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
997 the possible parent failures before we fork, so that we don't
998 fail to create a babysitter after creating the child.
1000 * bus/activation.c (bus_activation_activate_service): kill child
1001 if we don't successfully complete the activation.
1003 2003-04-10 Havoc Pennington <hp@redhat.com>
1005 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
1006 the connection if it's disconnected
1008 * bus/activation.c (bus_activation_service_created): use new
1009 transaction features to roll back removal of pending activation if
1010 we don't successfully create the service after all. Don't remove
1011 pending activation if the function fails.
1013 * dbus/dbus-list.c (_dbus_list_insert_before_link)
1014 (_dbus_list_insert_after_link): new code to facilitate
1017 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1018 new functionality, so we can preallocate the ability to insert
1021 * bus/connection.c (bus_transaction_add_cancel_hook): new function
1022 allowing us to put custom hooks in a transaction to be used for
1023 cancelling said transaction
1025 * doc/dbus-specification.sgml: add some discussion of secondary
1026 service owners, and disallow zero-length service names
1028 * bus/services.c (bus_registry_acquire_service): new function,
1029 splits out part of bus_driver_handle_acquire_service() and fixes
1030 a bug where we didn't remove the service doing the acquiring
1031 from the secondary queue if we failed to remove the current owner
1032 from the front of the queue.
1034 2003-04-10 Alexander Larsson <alexl@redhat.com>
1036 * doc/dbus-specification.sgml:
1037 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1039 2003-04-10 Alexander Larsson <alexl@redhat.com>
1044 Added files to cvsignore
1046 * dbus/dbus-message.h:
1047 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1048 Make get_named() take two out argument and return a boolean.
1049 (dbus_message_iter_get_args_valist):
1050 Update usage of get_named().
1051 (dbus_message_iter_append_byte):
1053 (dbus_message_iter_append_named)
1055 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1058 2003-04-10 Alexander Larsson <alexl@redhat.com>
1060 * dbus/dbus-marshal.[ch]:
1061 Add array_type_pos argument to _dbus_marshal_validate_arg.
1062 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1064 * dbus/dbus-message.[ch]:
1065 Multi-dimensional arrays have full type specification in the
1066 outermost array. Iter code re-arranged to handle this.
1067 Added some more iter tests.
1069 * doc/dbus-specification.sgml:
1072 Update new array encoding description.
1073 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1075 * test/data/invalid-messages/array-with-mixed-types.message:
1076 * test/data/valid-messages/array-of-array-of-uint32.message:
1077 Change to the new array format.
1079 * test/data/invalid-messages/too-short-dict.message:
1082 * test/data/valid-messages/recursive-types.message:
1083 Fix up and extend test.
1085 2003-04-10 Havoc Pennington <hp@pobox.com>
1087 * bus/dispatch.c: lots of fixes
1089 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1090 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1091 that was crack, broke the test service.
1093 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1094 handling to avoid piling up errors if we get a failure on the
1097 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1098 pid in assertion failures.
1100 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1101 to some fixed size of file descriptor array. Don't return TRUE
1102 anytime a timeout exists, that led to lots of busy loop silliness
1105 2003-04-09 Havoc Pennington <hp@redhat.com>
1107 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1108 I'd checked this in earlier but hadn't.
1110 2003-04-09 Havoc Pennington <hp@redhat.com>
1112 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1113 the activation test (man this is getting old!)
1115 2003-04-09 Havoc Pennington <hp@redhat.com>
1117 * test/test-utils.c: use dispatch status function to fix this up
1119 * bus/connection.c (connection_watch_callback): don't dispatch
1121 (connection_timeout_callback): don't dispatch from here
1122 (bus_connections_setup_connection): set the dispatch status function
1123 (bus_connection_disconnected): unset it
1125 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1126 used to add a connection to be dispatched
1127 (_dbus_loop_iterate): do the dispatching at the end of each
1130 * dbus/dbus-connection.c
1131 (dbus_connection_set_dispatch_status_function): new function
1132 allowing us to fix up main loop usage
1133 (_dbus_connection_last_unref): free all the various function
1135 (dbus_connection_dispatch): call the DispatchStatusFunction
1136 whenever this function returns
1137 (dbus_connection_handle_watch): call DispatchStatusFunction
1138 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1139 (reply_handler_timeout): call DispatchStatusFunction
1140 (dbus_connection_flush): call DispatchStatusFunction
1142 2003-04-09 Havoc Pennington <hp@redhat.com>
1144 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1147 * bus/dispatch.c (check_service_activated): fix bug in test
1149 * dbus/dbus-mainloop.c (check_timeout): fix this up
1151 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1152 verbose output so we can sort out output from different processes,
1153 e.g. in the activation case.
1155 2003-04-08 Colin Walters <walters@gnu.org>
1157 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1159 (bus_context_new): Set it.
1160 (bus_context_unref): Use it to delete the pid file.
1162 2003-04-08 Havoc Pennington <hp@redhat.com>
1164 * test/data/invalid-messages/array-with-mixed-types.message:
1165 regression test that fails for the moment
1167 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1168 tests for convenience
1170 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1171 array of nil, it broke things.
1173 * test/data/invalid-messages/array-of-nil.message: regression test
1175 * test/data/valid-messages/array-of-array-of-uint32.message:
1176 happened to write this so added it to suite
1178 2003-04-08 Havoc Pennington <hp@redhat.com>
1180 * bus/driver.c (bus_driver_handle_acquire_service): init
1181 retval/reply before checking name
1183 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1184 recursion depth argument
1186 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1187 in the public struct for future extension
1189 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1192 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1195 * doc/dbus-specification.sgml: fix typo
1197 2003-04-08 Alexander Larsson <alexl@redhat.com>
1199 Implemented recursive types, named types and new-style iters
1202 * glib/test-thread-client.c: (thread_func):
1203 * glib/test-thread-server.c: (handle_test_message):
1204 * test/test-service.c: (handle_echo):
1213 * dbus/dbus-internals.c: (_dbus_type_to_string):
1214 Update for new types.
1216 * dbus/dbus-marshal.[ch]:
1217 Implement recursive types and the new marshalling format.
1218 Remove hardcoded dict marshalling.
1219 Marshal named types.
1221 * dbus/dbus-message-builder.c:
1223 Remove references to old types
1225 * dbus/dbus-message.[ch]:
1226 New non-refcounted iter API that supports recursive iters.
1227 Use iters for appending, including support for recursive
1229 Add byte and named type support.
1230 Update everything to new marshalling formats.
1231 Add tests for new API.
1233 * dbus/dbus-protocol.h:
1234 Remove old array types.
1235 Add types: BYTE, ARRAY, DICT, NAMED
1237 * dbus/dbus-string.c:
1238 * dbus/dbus-sysdeps.c:
1239 Make parse_double locale safe.
1241 * dbus/dbus-test-main.c:
1247 * doc/dbus-specification.sgml:
1250 * test/data/incomplete-messages/missing-body.message:
1251 * test/data/invalid-messages/bad-boolean.message:
1252 * test/data/invalid-messages/bad-boolean-array.message:
1253 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1254 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1255 * test/data/invalid-messages/too-short-dict.message:
1256 * test/data/valid-messages/dict-simple.message:
1257 * test/data/valid-messages/dict.message:
1258 * test/data/valid-messages/emptiness.message:
1259 * test/data/valid-messages/lots-of-arguments.message:
1260 * test/data/valid-messages/no-padding.message:
1261 * test/data/valid-messages/recursive-types.message:
1262 Add missing NAME fields
1263 Fix up dicts & arrays
1265 * test/data/invalid-messages/dict-with-nil-value.message:
1266 Removed, this is not invalid anymore.
1268 * test/data/valid-messages/recursive-types.message:
1269 Add new test for deeply recursive types.
1271 2003-04-07 Havoc Pennington <hp@pobox.com>
1273 * bus/driver.c (bus_driver_handle_acquire_service): return an
1274 error if you try to acquire a service that starts with ':'
1276 2003-04-07 Havoc Pennington <hp@redhat.com>
1278 * doc/dbus-specification.sgml: require that base service names
1279 start with ':' and that the base service is created/deleted
1280 as first and last things a connection does on the bus
1282 * bus/dispatch.c (check_existent_service_activation): lots more
1283 work on the activation test; it doesn't fully pass yet...
1285 * test/test-service.c (main): fix so we don't memleak the
1286 connection to the message bus
1287 (filter_func): accept a message asking us to exit
1289 2003-04-06 Havoc Pennington <hp@pobox.com>
1291 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1294 * configure.in: fixes to Qt detection from Colin Walters
1296 * doc/Makefile.am: Only remove generated docbook dirs if they
1297 exist, from Colin Walters
1299 * dbus/dbus-bus.c: change how we set well-known connections to
1300 NULL, so that it works if a single connection is stored in
1301 two well-known array slots.
1303 * test/Makefile.am: remove a lot of stuff that isn't immediately
1304 useful, it's in CVS history if we want it.
1306 * test/test-service.c: use dbus-mainloop instead of that
1309 2003-04-06 Havoc Pennington <hp@pobox.com>
1311 * dbus/Makefile.am: split lists of sources into stuff that goes in
1312 the library, util functions that go in the lib and are also used
1313 elsewhere, and util functions that are used in tests/daemon but
1314 don't go in the lib.
1316 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1317 here so it can be used in test binaries also
1319 2003-04-06 Havoc Pennington <hp@pobox.com>
1321 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1322 here in the parent process, so we can return an error if it
1323 fails. Also, move some of the code into the child so the parent
1324 is less hosed if we fail midway through.
1326 * bus/bus.c (bus_context_new): move pidfile detection further up
1327 in the function, before we start overwriting sockets and such.
1329 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1331 * configure.in: add --with-system-pid-file and --with-system-socket
1333 2003-04-06 Colin Walters <walters@verbum.org>
1335 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1337 * bus/system.conf.in: Declare a pidfile.
1339 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1340 create one (if appropriate).
1342 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1343 (struct BusConfigParser) [pidfile]: New.
1344 (element_type_to_name, merge_included, start_busconfig_child)
1345 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1346 (bus_config_parser_unref): Free it.
1347 (bus_config_parser_get_pidfile): New function.
1349 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1351 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1353 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1355 * dbus/dbus-sysdeps.h: Prototype it.
1357 2003-04-06 Havoc Pennington <hp@pobox.com>
1359 * bus/bus.c (bus_context_new): print the address in here, rather
1360 than in main(), because we need to do it before forking the daemon
1362 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1363 on the service nonexistent error
1365 * bus/driver.c (bus_driver_handle_acquire_service): set the
1366 sender on the AcquireService reply
1368 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1369 server also listen on a UNIX socket so services can connect to it.
1371 2003-04-06 Havoc Pennington <hp@pobox.com>
1373 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1374 so it detects deadlocks and also we actually init threads when
1377 2003-04-06 Havoc Pennington <hp@pobox.com>
1379 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1380 save the domain socket name, and unlink it when we disconnect the
1381 server. Means that at least when we exit normally, we won't leave
1382 a bunch of junk in /tmp
1384 * dbus/dbus-transport-unix.c
1385 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1386 memory management). (I was making a real change here but then
1389 2003-04-06 Havoc Pennington <hp@pobox.com>
1391 * bus/bus.c (bus_context_new): fix wrong handling of
1392 server_data_slot_unref() in the error case.
1394 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1395 "(condition) != 0" to _dbus_real_assert so that
1396 "_dbus_assert (pointer)" doesn't cause a warning
1398 * bus/main.c (main): accept --print-address option to print out
1399 the message bus address
1401 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1403 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1404 "tmpdir" option to unix: address on client side
1406 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1409 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1410 we can use to create sockets in the test suite.
1412 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1413 cleanly. To be used for testing.
1415 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1417 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1419 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1420 handle trying to call this when there's no servers active
1422 2003-04-05 Havoc Pennington <hp@pobox.com>
1428 2003-04-05 Havoc Pennington <hp@pobox.com>
1430 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1431 crash on startup. Need to get "try starting the daemon"
1432 in the test suite I guess. ;-)
1434 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1435 tracked the number of open connections; it's better done in
1436 application-specific code as you want it to span all servers etc.
1438 2003-04-05 Havoc Pennington <hp@pobox.com>
1440 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1441 patch from Colin Walters
1443 2003-04-05 Havoc Pennington <hp@pobox.com>
1445 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1446 reality; in fact multiple mechanisms are allowed.
1448 * dbus/dbus-internals.c (_dbus_real_assert)
1449 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1450 _dbus_assert_not_reached() into functions, so that they don't show
1451 up in basic block counts for test coverage, and don't use up as
1452 much disk space. Does mean slower execution speed though, so
1453 assumes --disable-asserts is the normal production case.
1455 2003-04-05 Havoc Pennington <hp@pobox.com>
1457 * test/Makefile.am (dist-hook): also dist *.in files
1463 2003-04-05 Havoc Pennington <hp@pobox.com>
1465 * dbus/dbus-string.c: docs warning
1467 * dbus/dbus-spawn.c: missing docs
1469 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1471 2003-04-05 Havoc Pennington <hp@pobox.com>
1473 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1476 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1477 to -1 once we've reaped the babysitter
1478 (_dbus_babysitter_handle_watch): do as much work as we can, not
1481 * bus/activation.c: add code using DBusBabysitter so that we
1482 handle it when a service fails to start up properly.
1483 (bus_activation_service_created): don't remove the activation
1484 entries as we go, just let them get removed when we free the pending
1485 activation. Unref reply messages after sending them.
1487 2003-04-05 Havoc Pennington <hp@pobox.com>
1489 * test/decode-gcov.c (main): print per-directory stats in the report
1491 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1493 2003-04-05 Havoc Pennington <hp@pobox.com>
1495 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1497 * test/decode-gcov.c: hack up a little program to suck data
1498 out of gcov files. Yes this is sort of silly.
1500 * configure.in: define something in config.h and do an
1501 AM_CONDITIONAL when gcov is enabled
1503 2003-04-04 Havoc Pennington <hp@redhat.com>
1505 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1506 return a "babysitter" object that is used to monitor the status of
1507 the spawned process and reap it when required.
1509 * test/test-segfault.c, test/test-exit.c,
1510 test/test-sleep-forever.c: binaries that do various lame things,
1511 used in the test suite.
1513 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1515 2003-04-03 Havoc Pennington <hp@pobox.com>
1517 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1518 in preparation for modifying it, dbus-sysdeps is getting
1521 2003-04-03 Havoc Pennington <hp@redhat.com>
1523 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1526 * bus/*.[hc]: adapt to mainloop change
1528 2003-04-03 Havoc Pennington <hp@redhat.com>
1530 * bus/activation.c (load_directory): fix up memleaks
1531 (bus_activation_entry_free): free the entry
1533 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1534 we get one from the message bus; fix memleaks.
1536 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1538 2003-04-03 Havoc Pennington <hp@pobox.com>
1540 * bus/config-parser.c (bus_config_parser_unref): free
1541 list of mechanisms, bug discovered by test suite enhancements
1542 (putting system.conf and session.conf into suite)
1544 * test/Makefile.am, test/test-service.c: add placeholder for a
1545 test service that we'll activate as part of test suite. Doesn't
1548 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1549 setting NULL value, and use system malloc not dbus_malloc()
1550 when we have unavoidable memleakage.
1552 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1553 didn't work, and support DBUS_BUS_ACTIVATION.
1555 * bus/activation.c (child_setup): pass our well-known bus type to
1558 * bus/config-parser.c: support <type> to specify well-known type
1560 * doc/dbus-specification.sgml: document the env variables to
1561 locate well-known buses and find service activator
1563 2003-04-02 Havoc Pennington <hp@redhat.com>
1565 * test/Makefile.am (all-local): add a rule to copy tests to
1566 builddir, so we can have generated tests. Use this to remove the
1567 silly hack for testing system.conf and session.conf. Will use this
1568 shortly to generate .service files pointing to test binaries.
1570 2003-04-02 Havoc Pennington <hp@redhat.com>
1572 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1573 current alloc and needed new length, not max of the doubled
1574 allocation and needed new length. Also, when building tests,
1575 don't do the double-allocation stuff, just realloc every time.
1577 2003-04-02 Havoc Pennington <hp@redhat.com>
1579 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1581 (_dbus_string_get_dirname): new
1582 (_dbus_sysdeps_test): new
1583 (_dbus_directory_open): include dirnames in error messages
1585 * bus/config-parser.c: interpret <include> and <includedir> and
1586 <servicedir> relative to config file location if the given
1587 filename is not absolute.
1589 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1591 2003-04-02 Havoc Pennington <hp@redhat.com>
1593 * bus/connection.c (bus_transaction_send_error_reply): set sender
1594 service for the error, and unref the reply on success
1596 * bus/activation.c: convert to use BusTransaction so OOM can be
1598 (bus_activation_service_created): set sender of the message
1600 2003-04-01 Havoc Pennington <hp@redhat.com>
1602 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1603 <includedir> (at least mostly)
1605 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1606 first, then the user ID
1608 2003-04-01 Havoc Pennington <hp@pobox.com>
1610 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1613 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1615 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1617 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1618 socket 0777, and unlink any existing socket.
1620 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1621 the configuration file so specifies; set up auth mechanism
1624 * bus/config-parser.c (bus_config_parser_content): add support
1625 for <fork> option and fill in code for <auth>
1627 * bus/system.conf.in: add <fork/> to default configuration,
1628 and limit auth mechanisms to EXTERNAL
1630 * doc/config-file.txt (Elements): add <fork>
1632 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1633 (_dbus_change_identity): new function
1635 2003-03-31 Havoc Pennington <hp@redhat.com>
1637 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1638 (_dbus_listen_unix_socket): fix off-by-one error in null
1639 termination spotted by Nalin
1641 2003-03-31 Havoc Pennington <hp@redhat.com>
1643 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1644 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1645 having a real home directory available.
1647 2003-03-31 Havoc Pennington <hp@redhat.com>
1649 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1651 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1653 * configure.in: add support for specifying a style of init script
1656 2003-03-31 Havoc Pennington <hp@redhat.com>
1658 Fix some annoying DBusString API and fix all affected code.
1660 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1662 (_dbus_string_get_data): change to return string instead of using
1664 (_dbus_string_get_const_data): ditto
1665 (_dbus_string_get_data_len): ditto
1666 (_dbus_string_get_const_data_len): ditto
1668 2003-03-31 Havoc Pennington <hp@redhat.com>
1670 * bus/main.c (main): fix up the command line arguments to be nicer
1672 2003-03-31 Havoc Pennington <hp@redhat.com>
1674 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1675 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1676 final location that lands in the config file
1678 * bus/config-loader-expat.c (bus_config_load): fix type of
1681 * doc/TODO: remove TODO item for dbus_bus_get()
1683 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1685 2003-03-31 Havoc Pennington <hp@pobox.com>
1687 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1688 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1689 argument since they are always client side
1691 * dbus/dbus-server.c (dbus_server_get_address): new function
1693 * bus/main.c (main): take the configuration file as an argument.
1695 * test/data/valid-config-files/debug-allow-all.conf: new file to
1696 use with dispatch.c tests for example
1698 * bus/test-main.c (main): require test data dir
1700 * bus/bus.c (bus_context_new): change this to take a
1701 configuration file name as argument
1703 * doc/config-file.txt (Elements): add <servicedir>
1705 * bus/system.conf, bus/session.conf: new files
1707 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1708 well-known socket if none set
1710 * configure.in: create system.conf and session.conf
1712 2003-03-30 Havoc Pennington <hp@pobox.com>
1714 * bus/config-parser.c: hacking
1716 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1717 to shut down, since it could cause weirdness with the DBusList
1720 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1721 link-oriented stack routines
1722 (alloc_link): free the mempool if the first alloc from it fails
1724 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1726 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1728 (_dbus_string_skip_white): new
1730 * doc/config-file.txt (Elements): add <includedir>
1732 2003-03-28 Havoc Pennington <hp@pobox.com>
1734 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1735 (_dbus_string_copy_data): new functions
1737 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1739 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1743 * dbus/dbus-memory.c:
1746 2003-03-28 Havoc Pennington <hp@pobox.com>
1748 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1749 I think it may have just been superstition. Not sure.
1751 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1752 failures that were not being handled.
1754 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1756 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1757 row that will fail on out-of-memory.
1759 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1760 function for testing out-of-memory handling.
1762 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1763 allocation functions, they do map exactly to the expat ones.
1765 2003-03-27 Havoc Pennington <hp@redhat.com>
1767 * bus/config-loader-libxml.c (bus_config_load): add another error
1770 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1773 Add note about automatic service activation.
1775 * doc/dbus-specification.sgml:
1776 Rename the specification and clarify a few things.
1778 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1781 * dbus/dbus-address.c:
1783 * dbus/dbus-marshal.c:
1784 * dbus/dbus-server-debug-pipe.c:
1785 * dbus/dbus-transport-unix.c:
1786 Fix documentation warnings.
1788 2003-03-26 Havoc Pennington <hp@pobox.com>
1790 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1791 after every test so it's quick and easy to see which leaked, and
1792 so we test multiple dbus_shutdown() calls
1794 * configure.in: change configure.in XML stuff to also support
1797 * config-loader-libxml.c: some hacking
1799 * config-loader-expat.c: some hacking
1801 * config-parser.c: some hacking, plus tests
1803 2003-03-25 Havoc Pennington <hp@redhat.com>
1805 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1807 * configure.in: add --with-xml option to specify XML library,
1808 right now only libxml is supported.
1810 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1811 nonworking code between home and work, still just stubs
1813 2003-03-24 Havoc Pennington <hp@redhat.com>
1815 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1818 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1819 NULL argument for "message" if the error is a well-known one,
1820 fill in a generic message in this case.
1822 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1825 * bus/test.c (bus_test_flush_bus): add
1827 * bus/policy.c (bus_policy_test): test code stub
1829 2003-03-24 Havoc Pennington <hp@pobox.com>
1831 * bus/connection.c (bus_connections_setup_connection): set up
1832 the "can this user connect" function, but it always returns
1833 TRUE until we have a config file parser so we can have a config
1834 file that allows connections.
1836 2003-03-23 Havoc Pennington <hp@pobox.com>
1838 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1839 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1840 the mutex, so we can check for proper memory management
1843 * dbus/dbus-dataslot.c: remove the mutex from
1844 DBusDataSlotAllocator and lock it manually when using it,
1845 to simplify fitting it into the global slots framework.
1847 * dbus/dbus-threads.c (init_static_locks): rework how we're
1848 handling global locks so they are easily shut down.
1850 * bus/policy.c (bus_policy_append_rule): fix
1852 * bus/test-main.c (main): check for memleaks
1854 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1855 test suite check for memleaks
1857 * dbus/dbus-memory.c: add support in test mode for tracking
1858 number of outstanding blocks
1860 2003-03-23 Havoc Pennington <hp@pobox.com>
1862 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1865 * dbus/dbus-hash.h: add ULONG hash keys
1867 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1868 (_dbus_get_group_id): new function
1870 2003-03-20 Havoc Pennington <hp@redhat.com>
1872 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1874 (dbus_connection_get_unix_user): new function
1876 2003-03-20 Havoc Pennington <hp@pobox.com>
1878 * bus/connection.c (bus_connection_send_oom_error): assert that
1879 message has a sender
1880 (connection_execute_transaction): ditto
1881 (bus_connection_preallocate_oom_error): fix to set the sender, and
1882 set recipient to the destination service, not the bus driver
1884 * bus/policy.c: hacking
1886 * dbus/dbus-message.c (dbus_message_service_is): new function
1887 (dbus_message_sender_is): new
1889 2003-03-19 Havoc Pennington <hp@redhat.com>
1891 * bus/policy.c: start sketching code for policy restrictions on
1892 what connections can do.
1894 2003-03-18 Havoc Pennington <hp@redhat.com>
1896 * doc/TODO: some notes on high-level todo items. Little nitpick
1897 stuff is all in @todo, so no need to add it here.
1899 * doc/config-file.txt: some notes on how config file might look
1901 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1907 2003-03-17 Havoc Pennington <hp@redhat.com>
1909 * dbus/dbus-internals.h: add gcc attributes so that
1910 our printf-style functions warn on bad arguments to
1913 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1916 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1919 2003-03-17 Havoc Pennington <hp@redhat.com>
1921 * bus/test-main.c (main): make it print something as it runs
1922 so make check doesn't look stuck
1924 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1925 from CVS, now obsolete
1927 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1929 * bus/dispatch.c: (bus_dispatch):
1930 Refetch the service name since it may have been reallocated
1931 when dbus_message_set_sender was called.
1933 * dbus/dbus-sysdeps.c: (_dbus_accept):
1934 Add address and address length variables and use them to stop
1935 valgrind from complaining.
1937 2003-03-17 Havoc Pennington <hp@pobox.com>
1939 All tests pass, no memleaks, no valgrind complaints.
1941 * bus/test.c: refcount handler_slot
1943 * bus/connection.c (bus_connections_new): refcount
1944 connection_data_slot
1946 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1947 bytes so that auth scripts pass.
1949 * bus/dispatch.c: init message_handler_slot so it gets allocated
1952 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1954 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1955 dealloc server_pipe_hash when no longer used for benefit of
1958 * dbus/dbus-auth.c (process_command): memleak fix
1960 * bus/dispatch.c (check_hello_message): memleak fix
1962 2003-03-16 Havoc Pennington <hp@pobox.com>
1964 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1966 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1968 * bus/activation.c (bus_activation_activate_service): Append
1969 the pending activation entry to the list of pending activations.
1971 2003-03-16 Havoc Pennington <hp@pobox.com>
1973 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1976 * dbus/dbus-address.c (create_entry): fix OOM handling when
1977 failing to alloc entry->method
1979 2003-03-16 Havoc Pennington <hp@pobox.com>
1981 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1984 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1985 add some missing dbus_set_result
1987 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1988 alloc the DBusMessageHandler
1990 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1991 the transport here, since we call this from the finalizer; it
1992 resulted in a double-finalize.
1994 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1995 where we tried to use transport->connection that was NULL,
1996 happened when transport was disconnected early on due to OOM
1998 * bus/*.c: adapt to handle OOM for watches/timeouts
2000 * dbus/dbus-transport-unix.c: port to handle OOM during
2003 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
2004 reference to unused bytes instead of a copy
2006 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
2009 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
2012 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2015 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2017 * doc/dbus-specification.sgml:
2018 Document reply message for ActivateService.
2020 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2022 * bus/activation.c: (bus_pending_activation_entry_free),
2023 (bus_pending_activation_free), (bus_activation_new),
2024 (bus_activation_unref), (bus_activation_service_created),
2025 (bus_activation_activate_service):
2027 * bus/bus.c: (bus_context_new):
2028 * bus/desktop-file.c: (new_section):
2029 * bus/driver.c: (bus_driver_send_service_deleted),
2030 (bus_driver_handle_activate_service):
2031 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2033 * dbus/dbus-connection.c:
2034 (dbus_connection_send_with_reply_and_block):
2035 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2036 * dbus/dbus-protocol.h:
2037 Make activation work better. Now pending activations will be queued
2038 and the daemon won't try to activate services that are already registered.
2040 2003-03-16 Havoc Pennington <hp@pobox.com>
2042 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2045 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2046 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2048 2003-03-16 Havoc Pennington <hp@pobox.com>
2050 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2051 this. always run the test suite before commit...
2053 * bus/*: adapt to DBusConnection API changes
2055 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2056 requires renaming stuff to avoid dbus_connection_dispatch name
2059 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2062 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2063 separate from _dbus_message_loader_return_buffer()
2065 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2066 this, because it's now always broken to use; the number of
2067 messages in queue vs. the number still buffered by the message
2068 loader is undefined/meaningless. Should use
2069 dbus_connection_get_dispatch_state().
2070 (dbus_connection_dispatch): rename from
2071 dbus_connection_dispatch_message
2073 2003-03-16 Havoc Pennington <hp@pobox.com>
2075 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2078 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2080 * dbus/dbus-connection.c:
2081 (dbus_connection_send_with_reply_and_block):
2082 Decrease connection->n_incoming when removing an entry
2084 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2085 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2086 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2087 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2088 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2089 (dbus_dict_get_byte_array):
2090 Handle NULL arrays and strings. Also add support for byte arrays.
2092 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2093 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2094 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2095 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2096 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2097 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2098 * dbus/dbus-marshal.h:
2099 Add support for marshalling and demarshalling empty arrays and strings.
2101 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2102 (dbus_message_append_string_array),
2103 (dbus_message_iter_get_boolean),
2104 (dbus_message_iter_get_boolean_array),
2105 (dbus_message_iter_get_int32_array),
2106 (dbus_message_iter_get_uint32_array),
2107 (dbus_message_iter_get_double_array),
2108 (dbus_message_iter_get_byte_array),
2109 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2110 (check_message_handling):
2111 Add support for getting empty arrays and dicts.
2113 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2114 Don't do any validation at all for now, that's better than just checking
2117 * test/data/valid-messages/emptiness.message:
2118 New test message with lots of empty arrays.
2120 2003-03-16 Havoc Pennington <hp@pobox.com>
2122 * dbus/dbus-connection.c
2123 (_dbus_connection_queue_received_message_link): new function that
2124 can't fail due to OOM
2126 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2127 new function pops a message together with a list link
2130 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2131 message queuing functions to avoid needing to alloc memory
2133 2003-03-16 Havoc Pennington <hp@pobox.com>
2135 Oops - test code was only testing failure of around 30 of the
2136 mallocs in the test path, but it turns out there are 500+
2137 mallocs. I believe this was due to misguided linking setup such
2138 that there was one copy of dbus_malloc etc. in the daemon and one
2139 in the shared lib, and only daemon mallocs were tested. In any
2140 case, the test case now tests all 500+ mallocs, and doesn't pass
2141 yet, though there are lots of fixes in this patch.
2143 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2144 this so that it doesn't need to allocate memory, since it
2145 has no way of indicating failure due to OOM (and would be
2146 annoying if it did).
2148 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2150 * bus/Makefile.am: rearrange to create two self-contained
2151 libraries, to avoid having libraries with overlapping symbols.
2152 that was resulting in weirdness, e.g. I'm pretty sure there
2153 were two copies of global static variables.
2155 * dbus/dbus-internals.c: move the malloc debug stuff to
2158 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2161 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2163 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2166 * bus/dispatch.c (bus_dispatch_add_connection): free
2167 message_handler_slot when no longer using it, so
2168 memory leak checkers are happy for the test suite.
2170 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2172 * bus/bus.c (new_connection_callback): disconnect in here if
2173 bus_connections_setup_connection fails.
2175 * bus/connection.c (bus_connections_unref): fix to free the
2177 (bus_connections_setup_connection): if this fails, don't
2178 disconnect the connection, just be sure there are no side
2181 * dbus/dbus-string.c (undo_alignment): unbreak this
2183 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2185 (_dbus_auth_new): fix the order in which we free strings
2188 * bus/connection.c (bus_connection_disconnected): fix to
2189 not send ServiceDeleted multiple times in case of memory
2192 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2193 get the base service name
2194 (dbus_bus_register_client): don't return base service name,
2195 instead store it on the DBusConnection and have an accessor
2197 (dbus_bus_register_client): rename dbus_bus_register()
2199 * bus/dispatch.c (check_hello_message): verify that other
2200 connections on the bus also got the correct results, not
2201 just the one sending hello
2203 2003-03-15 Havoc Pennington <hp@pobox.com>
2205 Make it pass the Hello handling test including all OOM codepaths.
2206 Now to do other messages...
2208 * bus/services.c (bus_service_remove_owner): fix crash when
2209 removing owner from an empty list of owners
2210 (bus_registry_ensure): don't leave service in the list of
2211 a connection's owned services if we fail to put the service
2214 * bus/connection.c (bus_connection_preallocate_oom_error): set
2215 error flag on the OOM error.
2217 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2218 handle _dbus_transport_set_connection failure
2220 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2221 to create watches up front and simply enable/disable them as
2223 (unix_connection_set): this can now fail on OOM
2225 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2226 of enabling/disabling a watch or timeout.
2228 * bus/loop.c (bus_loop_iterate): don't touch disabled
2231 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2233 2003-03-15 Havoc Pennington <hp@pobox.com>
2235 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2236 write useful test code, after all that futzing around ;-)
2238 Test does not yet pass because we can't handle OOM in
2239 _dbus_transport_messages_pending (basically,
2240 dbus_connection_preallocate_send() does not prealloc the write
2241 watch). To fix this, I think we need to add new stuff to
2242 set_watch_functions, namely a SetEnabled function so we can alloc
2243 the watch earlier, then enable it later.
2245 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2246 dbus-memory.c to the convenience lib
2248 * bus/test.c: rename some static functions to keep them clearly
2249 distinct from stuff in connection.c. Handle client disconnection.
2251 2003-03-14 Havoc Pennington <hp@pobox.com>
2253 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2254 transport, tests more of the real codepath. Set up clients
2255 with bus_setup_debug_client.
2257 * bus/test.c (bus_setup_debug_client): function to set up debug
2258 "clients" on the main loop
2260 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2263 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2266 * dbus/dbus-server-debug.c: support a debug server based on pipes
2268 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2269 (_dbus_close): new function
2271 * configure.in: check for socketpair
2273 2003-03-14 Havoc Pennington <hp@redhat.com>
2275 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2278 * dbus/dbus-transport-debug.c: rework this a good bit to be
2279 less complicated. hopefully still works.
2281 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2284 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2287 * dbus/dbus-message.c (dbus_message_copy): rename from
2288 dbus_message_new_from_message, fix it up to copy
2289 all the message fields, add test case
2291 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2292 not quite passing yet
2294 2003-03-14 Havoc Pennington <hp@pobox.com>
2296 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2297 until no work remains" in test code. (the large diff here
2298 is just code movement, no actual changes)
2300 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2301 1, no point waiting around for test code.
2302 (_dbus_server_debug_accept_transport): unref the timeout
2303 after adding it (right?)
2305 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2307 2003-03-13 Havoc Pennington <hp@redhat.com>
2309 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2312 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2315 * dbus/dbus-connection.h: Make AddWatchFunction and
2316 AddTimeoutFunction return a bool so they can fail on out-of-memory
2318 * bus/bus.c (bus_context_new): set up timeout handlers
2320 * bus/connection.c (bus_connections_setup_connection): set up
2323 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2326 * bus/bus.c (bus_context_new): adapt to changes
2328 * bus/connection.c: adapt to changes
2330 * test/watch.c: adapt to DBusWatch changes
2332 * bus/dispatch.c (bus_dispatch_test): started adding this but
2335 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2337 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2339 2003-03-13 Havoc Pennington <hp@pobox.com>
2341 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2342 set up a test framework as for the library
2344 2003-03-12 Havoc Pennington <hp@pobox.com>
2346 Throughout: purge global variables, introduce BusActivation,
2347 BusConnections, BusRegistry, etc. objects instead.
2349 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2352 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2353 going to redo this a bit differently I think
2355 2003-03-12 Havoc Pennington <hp@redhat.com>
2357 Mega-patch that gets the message bus daemon initially handling
2358 out-of-memory. Work still needed. Also lots of random
2359 moving stuff to DBusError instead of ResultCode.
2361 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2363 * dbus/dbus-connection.c
2364 (dbus_connection_send_with_reply_and_block): use DBusError
2366 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2369 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2370 code here, as the only failure possible is OOM.
2372 * bus/connection.c (bus_connection_disconnect):
2373 rename bus_connection_disconnected as it's a notification only
2375 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2376 "name" on get_args failure, should be done by get_args;
2377 don't disconnect client for bad args, just return an error.
2378 (bus_driver_handle_service_exists): ditto
2380 * bus/services.c (bus_services_list): NULL-terminate returned array
2382 * bus/driver.c (bus_driver_send_service_lost)
2383 (bus_driver_send_service_acquired): send messages from driver to a
2384 specific client to the client's unique name, not to the broadcast
2387 * dbus/dbus-message.c (decode_header_data): reject messages that
2388 contain no name field
2389 (_dbus_message_get_client_serial): rename to
2390 dbus_message_get_serial and make public
2391 (_dbus_message_set_serial): rename from set_client_serial
2392 (_dbus_message_set_reply_serial): make public
2393 (_dbus_message_get_reply_serial): make public
2395 * bus/connection.c (bus_connection_foreach): allow stopping
2396 iteration by returning FALSE from foreach function.
2398 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2399 (dbus_connection_free_preallocated_send)
2400 (dbus_connection_preallocate_send): new API for sending a message
2401 without possibility of malloc failure.
2402 (dbus_connection_send_message): rename to just
2403 dbus_connection_send (and same for whole function family)
2405 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2407 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2409 * bus/activation.c: handle/return errors
2411 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2413 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2414 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2415 (_dbus_result_from_errno): move to this file
2417 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2419 * dbus/dbus-marshal.c:
2420 (_dbus_marshal_set_string):
2421 Take a length argument so we can marshal the correct string
2424 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2425 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2426 (_dbus_marshal_test):
2427 * dbus/dbus-marshal.h:
2428 Add support for marshalling and demarshalling dicts.
2430 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2431 Add support for TYPE DICT.
2433 * dbus/dbus-message.c: (set_string_field):
2434 Adjust header padding.
2436 (dbus_message_append_args_valist), (dbus_message_append_dict),
2437 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2438 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2439 (check_message_handling), (check_have_valid_message):
2440 * dbus/dbus-message.h:
2441 Add functions for setting and getting dicts.
2443 * dbus/dbus-protocol.h:
2449 * doc/dbus-specification.sgml:
2450 Add information about how dicts are marshalled.
2452 * test/data/invalid-messages/dict-with-nil-value.message:
2453 * test/data/invalid-messages/too-short-dict.message:
2454 * test/data/valid-messages/dict-simple.message:
2455 * test/data/valid-messages/dict.message:
2456 Add sample messages containing dicts.
2458 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2460 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2462 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2465 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2466 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2467 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2468 (dbus_dict_set_double), (dbus_dict_set_string),
2469 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2470 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2471 (dbus_dict_set_string_array), (_dbus_dict_test):
2473 Fix according to comments from Havoc.
2475 2003-03-06 Michael Meeks <michael@server.home>
2477 * configure.in: if we don't have kde-config, disable have_qt.
2479 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2484 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2485 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2486 (dbus_dict_remove), (dbus_dict_get_value_type),
2487 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2488 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2489 (dbus_dict_put_double), (dbus_dict_put_string),
2490 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2491 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2492 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2493 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2494 (dbus_dict_get_double), (dbus_dict_get_string),
2495 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2496 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2497 (dbus_dict_get_string_array), (_dbus_dict_test):
2499 Add DBusDict implementation
2501 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2505 2003-03-04 Havoc Pennington <hp@pobox.com>
2507 * test/data/auth/*: adapt to changes
2509 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2510 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2513 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2514 more stuff from being in a context name, to make the protocol
2515 simpler to deal with
2517 * dbus/dbus-errors.c (dbus_error_has_name): new function
2518 (dbus_error_is_set): new function
2520 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2521 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2523 * dbus/dbus-connection.c (dbus_connection_flush): also read
2524 messages during a flush operation
2526 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2528 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2530 * configure.in: Check for gethostbyname on Solaris.
2532 * dbus/dbus-transport.c: (_dbus_transport_open):
2533 Remove duplicate "tcp" entry.
2535 * doc/dbus-specification.sgml:
2536 Clarify some things.
2538 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2540 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2541 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2542 (_dbus_keyring_test):
2543 * dbus/dbus-md5.c: (_dbus_md5_compute):
2544 * dbus/dbus-sha.c: (_dbus_sha_compute):
2547 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2549 * README: Add some things.
2551 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2553 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2554 after case DBUS_TYPE_BOOELAN.
2556 2003-03-02 Havoc Pennington <hp@pobox.com>
2558 * test/break-loader.c (randomly_set_extreme_ints): add test that
2559 sets really huge and small integers
2561 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2562 that length of boolean array fits in the string, and that
2563 string has room for boolean value in single-bool case.
2565 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2566 optional value to "ALIGN" command which is what to fill the
2569 * test/data/valid-messages/no-padding.message: add regression
2570 test for the message padding problem
2572 2003-03-02 Havoc Pennington <hp@pobox.com>
2574 * dbus/dbus-message.c (decode_header_data): fix to always init
2575 message_padding, from Benjamin Dauvergne
2577 2003-03-02 Havoc Pennington <hp@pobox.com>
2583 2003-03-01 Joe Shaw <joe@assbarn.com>
2585 * configure.in: Check for "struct cmsgcred" and try to access its
2586 members for BSD-like unices.
2588 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2589 _dbus_read_credentials_unix_socket().
2590 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2591 read() for reading the credential byte off the unix socket. Use
2592 struct cmsgcred on systems that support it.
2594 2003-02-27 Alexander Larsson <alexl@redhat.com>
2598 Make gthreads-2.0 dependency optional. Don't build thread test if
2601 2003-02-27 Havoc Pennington <hp@pobox.com>
2603 * dbus/dbus-connection.c
2604 (dbus_connection_send_message_with_reply_and_block): fix doh!
2605 doh! doh! bug that resulted in never removing a reply from the
2606 queue, no wonder we called get_reply_serial so much ;-)
2608 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2609 and client serial instead of demarshaling them every time
2611 2003-02-27 Havoc Pennington <hp@pobox.com>
2613 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2614 more inlined, using dbus-string-private.h, speeds things up
2617 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2618 when freeing the string
2619 (_dbus_string_steal_data): fix for align offset
2620 (undo_alignment): new function
2622 2003-02-26 Havoc Pennington <hp@redhat.com>
2624 All kinds of audit fixes from Owen, plus initial attempt to
2625 handle unaligned memory returned from malloc.
2627 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2628 leave room for align_offset and nul byte
2629 (fixup_alignment): function to track an align_offset and
2630 ensure real->str is aligned
2631 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2632 to allow a nul byte plus align offset
2633 (_dbus_string_lock): fix overflow issue
2634 (_dbus_string_init_const_len): add assertions on sanity of len,
2635 assign allocated to be ALLOCATION_PADDING larger than len
2636 (set_length): fixup the overflow handling
2637 (_dbus_string_get_data_len): fix overflow in assertion
2638 (open_gap): detect overflow in size of gap to be opened
2639 (_dbus_string_lengthen): add overflow check
2640 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2641 (_dbus_string_append): add overflow check
2642 (_dbus_string_append_unichar): overflow
2643 (_dbus_string_delete): fix overflow in assertion
2644 (_dbus_string_copy_len): overflow in assertion
2645 (_dbus_string_replace_len): overflows in assertions
2646 (_dbus_string_find): change to implement in terms of
2647 _dbus_string_find_to
2648 (_dbus_string_find_to): assorted fixage
2649 (_dbus_string_equal_c_str): assert c_str != NULL,
2650 fix logic so the function works
2651 (_dbus_string_ends_with_c_str): fix overflow thingy
2652 (_dbus_string_base64_encode): overflow fix
2653 (_dbus_string_validate_ascii): overflow
2654 (_dbus_string_validate_nul): overflow
2656 2003-02-26 Havoc Pennington <hp@redhat.com>
2658 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2660 2003-02-26 Alexander Larsson <alexl@redhat.com>
2663 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2665 * dbus/dbus-connection.c:
2666 * dbus/dbus-connection.h:
2667 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2668 Add dbus_connection_set_wakeup_main_function and use it when queueing
2669 incoming and outgoing messages.
2672 * dbus/dbus-dataslot.c:
2673 Threadsafe usage of DBusDataSlotAllocator
2675 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2678 * dbus/dbus-server-unix.c:
2681 * glib/dbus-gmain.c:
2682 Implement the new wakeup functions for glib.
2685 * glib/test-thread-client.c:
2686 * glib/test-thread-server.c:
2687 * glib/test-thread.h:
2688 Initial cut at some thread test code. Not really done yet.
2690 2003-02-26 Havoc Pennington <hp@pobox.com>
2692 * dbus/dbus-connection.c
2693 (dbus_connection_send_message_with_reply_and_block): fix crash
2694 where we ref'd the outgoing message instead of the returned reply
2696 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2697 at the end of this function, so if we didn't need to read for
2698 authentication, we reinstall it for receiving messages
2700 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2701 a NULL sender for peer-to-peer case
2703 * dbus/dbus-transport-unix.c (check_read_watch): handle
2704 !authenticated case correctly
2706 * glib/dbus-gmain.c: add support for DBusServer
2708 * dbus/dbus-server.c: add data slot support
2710 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2711 return values and handle errors
2713 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2716 * Doxyfile.in (INPUT): add glib subdir
2718 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2719 setup_with_g_main instead of hookup_with_g_main; write docs
2721 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2723 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2724 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2725 * dbus/dbus-message.c: (dbus_message_append_boolean),
2726 (dbus_message_append_boolean_array),
2727 (dbus_message_get_args_valist), (_dbus_message_test):
2728 * dbus/dbus-message.h:
2729 * doc/dbus-specification.sgml:
2730 Various fixes as pointed out by Havoc.
2732 * test/data/invalid-messages/bad-boolean-array.message:
2733 * test/data/invalid-messages/bad-boolean.message:
2734 Add invalid boolean value test cases.
2736 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2738 * dbus/dbus-internals.c: (_dbus_type_to_string):
2739 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2740 (_dbus_marshal_validate_arg):
2741 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2742 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2743 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2744 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2745 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2746 (dbus_message_iter_get_double),
2747 (dbus_message_iter_get_boolean_array), (message_iter_test):
2748 * dbus/dbus-message.h:
2749 * dbus/dbus-protocol.h:
2750 * doc/dbus-specification.sgml:
2751 * test/data/valid-messages/lots-of-arguments.message:
2752 Add support for boolean and boolean array types.
2754 2003-02-23 Havoc Pennington <hp@pobox.com>
2756 * dbus/dbus-keyring.c: finish most of this implementation and
2759 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2760 these barf if the error isn't cleared to NULL
2762 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2763 (_dbus_create_directory): new function
2765 * dbus/dbus-errors.c (dbus_set_error): fix warning
2767 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2768 (_dbus_string_hex_decode): new function
2769 (test_hex_roundtrip): test code
2771 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2773 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2775 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2776 the save-to-temp/rename trick to atomically write the new file
2777 (_dbus_string_parse_uint): new function
2779 2003-02-22 Havoc Pennington <hp@pobox.com>
2781 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2783 2003-02-22 Havoc Pennington <hp@pobox.com>
2785 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2786 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2788 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2790 * dbus/test/data/sha-1: add US government test suite for SHA-1
2792 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2794 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2795 Make string arrays NULL-terminated.
2797 * dbus/dbus-memory.c: (dbus_free_string_array):
2798 * dbus/dbus-memory.h:
2799 New function for freeing NULL-terminated string arrays.
2801 * dbus/dbus-message-builder.c: (append_quoted_string),
2802 (_dbus_message_data_load):
2803 Add support for array types.
2805 * dbus/dbus-message.c: (check_message_handling):
2806 Add more types as test cases.
2808 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2809 (_dbus_string_parse_double):
2810 Add the start offset to the end offset.
2812 * test/data/valid-messages/lots-of-arguments.message:
2813 New test message with lots of arguments.
2815 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2817 * dbus/dbus-message.c: (dbus_message_append_nil),
2818 (dbus_message_append_int32), (dbus_message_append_uint32),
2819 (dbus_message_append_double), (dbus_message_append_string),
2820 (dbus_message_append_int32_array),
2821 (dbus_message_append_uint32_array),
2822 (dbus_message_append_double_array),
2823 (dbus_message_append_byte_array),
2824 (dbus_message_append_string_array):
2825 Fix all out-of-memory handling in these functions.
2827 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2829 * dbus/dbus-message.c: (dbus_message_append_nil):
2832 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2834 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2835 (dbus_message_append_nil), (dbus_message_append_int32_array),
2836 (dbus_message_append_uint32_array),
2837 (dbus_message_append_double_array),
2838 (dbus_message_append_byte_array),
2839 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2840 (dbus_message_iter_get_int32_array),
2841 (dbus_message_iter_get_uint32_array),
2842 (dbus_message_iter_get_double_array),
2843 (dbus_message_iter_get_byte_array),
2844 (dbus_message_iter_get_string_array):
2846 * dbus/dbus-message.h:
2847 Add functions for appending and getting arrays.
2849 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2851 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2852 element size at least 8 bytes, fixes mempool tests on
2855 2003-02-20 Alexander Larsson <alexl@redhat.com>
2857 * dbus/dbus-transport-unix.c (unix_do_iteration):
2858 Unlock the connection mutex during a blocking select call.
2859 Add todo about how we need a way to wake up the select.
2861 * dbus/dbus-connection-internal.h:
2862 * dbus/dbus-connection.c:
2863 Add _dbus_connection_lock and _dbus_connection_unlock.
2865 2003-02-19 Havoc Pennington <hp@pobox.com>
2867 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2868 Doxyfile.in, not Doxyfile
2870 * dbus/dbus-keyring.c: do some hacking on this
2872 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2874 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2876 (dbus_set_error): remove dbus_error_init, check for message ==
2877 NULL *before* we sprintf into it, and add @todo about including
2878 system headers in this file
2880 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2882 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2884 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2885 get various bits of user information based on either username
2887 (_dbus_homedir_from_username): new function
2889 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2892 Add check for nonposix getpwnam_r
2894 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2895 Align the pool element size to a sizeof (void *) boundary.
2897 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2898 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2899 General Solaris fixes.
2901 * test/data/valid-messages/simplest-manual.message:
2902 Explicitly state that we want little-endian packing.
2904 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2906 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2908 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2909 Added to create a transport connecting using a tcp/ip socket.
2911 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2912 to a tcp socket at given host and port.
2913 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2916 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2918 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2919 Added to create a server listening on a TCP/IP socket.
2921 2003-02-19 Havoc Pennington <hp@pobox.com>
2923 Throughout: mop up all the Doxygen warnings and undocumented
2926 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2927 to search any paths.
2929 * dbus/dbus-threads.c: move global mutex initializers to
2930 dbus-internals.h, multiple prototypes was confusing doxygen
2931 besides being kind of ugly
2933 * Doxyfile (PREDEFINED): have Doxygen define
2934 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2935 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2936 (do not abuse the feature! it's for stuff like the autogenerated
2937 macros in dbus-md5.c, not just for things you don't feel like
2940 2003-02-18 Havoc Pennington <hp@pobox.com>
2942 * dbus/dbus-string.c (_dbus_string_zero): new function
2944 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2945 wrap it in some dbus-friendly API
2947 * dbus/dbus-types.h: add 16-bit types
2949 2003-02-18 Joe Shaw <joe@assbarn.com>
2951 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2952 credentials from our currently running process.
2953 (get_word): Fix a buglet where we were copying the entire length
2954 instead of relative to our position.
2956 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2957 keys on the stack... it's 640k of data.
2959 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2960 read the credentials byte off the socket, even if we don't have
2962 (_dbus_poll): Implement poll() using select() for systems which
2965 * glib/test-dbus-glib.c (main): Print out an error if no
2966 parameters are given.
2968 * test/data/auth/fallback.auth-script: Added. Tests that a client
2969 can fallback to a secondary auth mechanism if the first fails.
2971 2003-02-18 Havoc Pennington <hp@pobox.com>
2975 2003-02-17 Havoc Pennington <hp@pobox.com>
2977 * doc/dbus-specification.sgml: lots of cosmetic
2978 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2979 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2980 s/server/bus/ (except in authentication section). Add a section
2981 "Message Bus Message Routing"
2983 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2989 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2991 * doc/dbus-specification.sgml:
2992 Specification updates.
2994 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2996 * bus/activation.c: (bus_activation_init), (child_setup),
2997 (bus_activation_activate_service):
2999 * bus/main.c: (main):
3000 Set DBUS_ADDRESS environment variable.
3002 * dbus/dbus-errors.c: (dbus_set_error):
3003 Don't use va_copy since that's a C99 feature.
3005 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
3006 (_dbus_spawn_async):
3007 * dbus/dbus-sysdeps.h:
3008 Add child_setup_func to _dbus_spawn_async.
3010 * doc/dbus-specification.sgml:
3011 Update specification.
3013 * test/spawn-test.c: (setup_func), (main):
3016 2003-02-17 Alexander Larsson <alexl@redhat.com>
3018 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3021 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3025 * doc/dbus-test-plan.sgml:
3026 Add test plan document.
3031 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3033 * dbus/dbus-message.c: (decode_header_data),
3034 (_dbus_message_loader_return_buffer):
3035 Set the header padding amount when loading a message.
3037 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3039 * bus/dispatch.c: (send_one_message):
3040 Only send broadcast messages to registered connections.
3042 * dbus/dbus-message.c: (dbus_message_name_is):
3043 * dbus/dbus-message.h:
3044 New convenience function.
3046 * dbus/dbus-transport-debug.c: (do_reading):
3047 Only dispatch one message per run.
3050 * test/bus-test.c: (new_connection_callback), (die),
3051 (test_hello_client1_handler), (test_hello_client2_handler),
3052 (test_hello_replies), (main):
3054 * test/bus-test-loop.[ch]:
3057 2003-02-16 Havoc Pennington <hp@pobox.com>
3059 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3060 backward conditional
3062 2003-02-16 Alexander Larsson <alexl@redhat.com>
3064 * dbus/dbus-connection.c:
3065 Implement sent_message_with_reply. (with_reply_and block is still
3067 Made dispatch_message not lose message if OOM.
3069 * dbus/dbus-errors.h:
3070 Add NoReply error (for reply timeouts).
3072 2003-02-16 Alexander Larsson <alexl@redhat.com>
3074 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3075 Actually free keys and values when destroying hashtable.
3077 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3079 * dbus/dbus-auth.c: (client_try_next_mechanism):
3082 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3083 Return TRUE if there's no thread implementation around.
3085 * glib/dbus-gmain.c: (free_source),
3086 (dbus_connection_hookup_with_g_main):
3087 Make sure to remove the GSource when the connection is finalized.
3089 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3091 * bus/dispatch.c: (bus_dispatch_message_handler):
3092 * dbus/dbus-errors.h:
3093 Return an error if someone tries to send a message to a service
3096 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3098 * bus/activation.c: (load_directory), (bus_activation_init),
3099 (bus_activation_activate_service):
3102 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3103 More work on the activation handling.
3105 * dbus/dbus-errors.h:
3106 Add some error messages
3108 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3109 * dbus/dbus-message.h:
3110 New function that creates an error message.
3112 * dbus/dbus-protocol.h:
3113 Add ACTIVATE_SERVER message.
3115 * dbus/dbus-server-unix.c: (unix_handle_watch),
3116 (_dbus_server_new_for_domain_socket):
3117 Call _dbus_fd_set_close_on_exec.
3119 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3120 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3121 (_dbus_fd_set_close_on_exec):
3122 * dbus/dbus-sysdeps.h:
3123 Add _dbus_fd_set_close_on exec function. Also add function that checks
3124 that all open fds are set to close-on-exec and warns otherwise.
3126 * dbus/dbus-transport-unix.c:
3127 (_dbus_transport_new_for_domain_socket):
3128 Call _dbus_fd_set_close_on_exec.
3130 2003-02-16 Havoc Pennington <hp@pobox.com>
3132 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3133 allow people to avoid setting SIGPIPE to SIG_IGN
3134 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3135 we've been asked not to
3137 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3139 * dbus/dbus-list.c: (_dbus_list_append_link),
3140 (_dbus_list_prepend_link):
3141 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3145 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3148 * bus/activation.c: (bus_activation_entry_free),
3149 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3151 * bus/main.c: (main):
3152 Add simple activation support, doesn't work yet though.
3154 2003-02-15 Zack Rusin <zack@kde.org>
3156 * qt/dbus-qthread.cpp: small casting fix
3158 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3160 * dbus/dbus-errors.c: (dbus_set_error):
3161 * dbus/dbus-errors.h:
3162 Add a few errors and make dbus_set_error void.
3164 * dbus/dbus-sysdeps.c:
3165 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3166 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3167 * dbus/dbus-sysdeps.h:
3168 Add _dbus_spawn_async.
3170 * test/spawn-test.c: (main):
3171 Test for _dbus_spawn_async.
3173 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3175 * dbus/dbus-internals.h:
3176 Fix build without tests.
3178 * dbus/dbus-list.c: (alloc_link):
3179 Fix a segfault when a malloc fails.
3181 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3182 (dbus_malloc0), (dbus_realloc):
3183 Add support for malloc debugging.
3185 2003-02-15 Alexander Larsson <alexl@redhat.com>
3187 * dbus/dbus-threads.c:
3188 * dbus/dbus-threads.h:
3189 Add condvars. Remove static mutext from API.
3190 Implement static mutexes by initializing them from threads_init.
3192 * glib/dbus-gthread.c:
3193 * qt/dbus-qthread.cpp:
3194 Update with the thread api changes.
3199 Turn StaticMutex into normal mutex + init function.
3200 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3201 _dbus_list_append_link, _dbus_list_prepend_link
3204 * dbus/dbus-sysdeps.c:
3205 * dbus/dbus-sysdeps.h:
3206 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3207 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3209 * dbus/dbus-protocol.h:
3210 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3212 * dbus/dbus-message.c:
3213 Make ref/unref atomic.
3216 * dbus/dbus-connection-internal.h:
3217 * dbus/dbus-connection.c:
3218 * dbus/dbus-connection.h:
3220 Change _peek to _borrow,_return & _steal_borrowed.
3221 Change disconnect callback to event.
3222 Make dbus_connection_dispatch_messages reentrant.
3224 * dbus/dbus-transport.c:
3225 Don't ref the connection on calls to the transport
3228 * dbus/dbus-message-handler.c:
3231 * glib/dbus-gmain.c:
3232 Don't use peek_message anymore
3235 * test/debug-thread.c:
3236 * test/debug-thread.h:
3237 Simple thread implementation that asserts() on deadlocks in
3238 single-threaded code.
3241 (main) Call debug_threads_init.
3244 Use disconnect message instead of disconnect callback.
3248 Don't call dbus_connection_set_disconnect_function. Instead export
3249 bus_connection_disconnect.
3252 Call bus_connection_disconnect when we get a disconnected message.
3254 2003-02-15 Havoc Pennington <hp@pobox.com>
3256 * dbus/dbus-message.c (dbus_message_new): fool around with the
3259 2003-02-14 Havoc Pennington <hp@pobox.com>
3261 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3263 * dbus/dbus-memory.c: fail if the debug functions indicate we
3266 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3267 (_dbus_decrement_fail_alloc_counter): debug functions to
3268 simulate memory allocation failures
3270 2003-02-14 Havoc Pennington <hp@pobox.com>
3272 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3275 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3277 * bus/driver.c: (bus_driver_handle_hello):
3279 * bus/services.c: (bus_service_lookup):
3280 Reorder message sending so we get a more sane order.
3282 * test/bus-test.c: (message_handler):
3285 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3287 * bus/driver.c: (bus_driver_send_service_deleted),
3288 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3289 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3290 (bus_driver_send_welcome_message),
3291 (bus_driver_handle_list_services),
3292 (bus_driver_handle_acquire_service),
3293 (bus_driver_handle_service_exists):
3294 * dbus/dbus-bus.c: (dbus_bus_register_client),
3295 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3296 * dbus/dbus-errors.c: (dbus_result_to_string):
3297 * dbus/dbus-errors.h:
3298 * dbus/dbus-message.c: (dbus_message_append_args),
3299 (dbus_message_append_args_valist), (dbus_message_get_args),
3300 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3301 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3302 (dbus_message_iter_get_byte_array),
3303 (dbus_message_iter_get_string_array), (message_iter_test),
3304 (check_message_handling), (_dbus_message_test):
3305 * dbus/dbus-message.h:
3306 * test/bus-test.c: (main):
3307 Change fields to arguments in messages, so that they won't be
3308 confused with header fields.
3310 * glib/test-dbus-glib.c: (main):
3311 Remove append_fields from hello message.
3313 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3315 * dbus/dbus-errors.c:
3316 * dbus/dbus-message.c:
3317 * dbus/dbus-string.c:
3318 Documentation fixes.
3320 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3322 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3324 Implement support for timeouts in dbus-glib.
3326 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3328 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3329 * dbus/dbus-message.c: (process_test_subdir):
3330 * test/break-loader.c: (find_breaks_based_on):
3331 Plug some memory leaks.
3333 2003-02-13 Richard Hult <rhult@codefactory.se>
3335 * bus/main.c: Fix build.
3337 * dbus/dbus-errors.h:
3338 * dbus/dbus-errors.c: Fix copyright for Anders.
3340 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3345 * bus/connection.c: (bus_connection_foreach):
3348 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3349 (unescape_string), (new_section), (parse_section_start),
3350 (parse_key_value), (report_error), (bus_desktop_file_load),
3351 (bus_desktop_file_get_string):
3352 * bus/desktop-file.h:
3353 Use DBusError for error reporting.
3355 * bus/dispatch.c: (send_one_message),
3356 (bus_dispatch_message_handler):
3357 * bus/driver.c: (bus_driver_send_service_deleted),
3358 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3359 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3360 (bus_driver_send_welcome_message),
3361 (bus_driver_handle_list_services),
3362 (bus_driver_handle_acquire_service),
3363 (bus_driver_handle_service_exists):
3364 * bus/loop.c: (bus_loop_run):
3366 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3368 * bus/utils.c: (bus_wait_for_memory):
3370 New files with general utility functions.
3372 * dbus/dbus-internals.h:
3373 Remove _DBUS_HANDLE_OOM.
3375 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3377 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3378 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3379 * dbus/dbus-errors.h:
3380 Add DBusError structure.
3382 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3384 * test/data/valid-messages/standard-acquire-service.message:
3385 * test/data/valid-messages/standard-hello.message:
3386 * test/data/valid-messages/standard-list-services.message:
3387 * test/data/valid-messages/standard-service-exists.message:
3388 Add some standard messages.
3390 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3392 * bus/driver.c: (bus_driver_send_welcome_message),
3393 (bus_driver_handle_list_services),
3394 (bus_driver_handle_acquire_service),
3395 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3396 Update for API changes in libdbus.
3398 * dbus/dbus-message.c: (dbus_message_new_reply):
3399 * dbus/dbus-message.h:
3400 Remove the name argument. The spec states that replies shouldn't
3403 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3405 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3406 (report_error), (bus_desktop_file_load), (lookup_section),
3407 (lookup_line), (bus_desktop_file_get_raw),
3408 (bus_desktop_file_get_string):
3409 * bus/desktop-file.h:
3410 Some fixes, and new functions for getting a key value from a section.
3412 2003-02-13 Havoc Pennington <hp@pobox.com>
3414 * test/data/auth/fail-after-n-attempts.auth-script: new test
3416 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3419 2003-02-13 Havoc Pennington <hp@pobox.com>
3421 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3422 dbus_credentials_match were backward
3424 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3425 NO_CREDENTIALS and ROOT_CREDENTIALS
3427 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3428 into here. Never process more commands after we've reached an
3429 end state; store further data as unused bytes.
3431 * test/data/auth/*: add more auth tests
3433 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3434 command to match exact string and EXPECT_UNUSED to match unused
3437 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3439 2003-02-12 Havoc Pennington <hp@pobox.com>
3441 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3442 \r off of popped lines
3444 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3447 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3450 2003-02-12 Havoc Pennington <hp@pobox.com>
3452 * dbus/Makefile.am: remove break-loader from the build, since it
3455 * configure.in: add --enable-gcov to turn on coverage profiling
3456 flags and disable optimization
3458 2003-02-10 Havoc Pennington <hp@pobox.com>
3460 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3461 initial cut at test framework for DBusAuth from laptop.
3462 Doesn't quite work yet but it compiles and I need to get
3463 it off the 266mhz laptop. ;-)
3465 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3466 fix a memleak in error case
3468 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3471 * bus/desktop-file.c:
3472 * bus/desktop-file.h:
3473 Add a desktop file parser.
3475 2003-02-11 Zack Rusin <zack@kde.org>
3477 * qt/message.[h|cpp]: sample implementation
3478 of the KDE wrapper for DBusMessage
3480 2003-02-09 Zack Rusin <zack@kde.org>
3482 * test/bus-test.c: make_it_compile
3483 * doc/dbus-specification.sgml: minimal semantic fix
3485 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3491 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3494 * dbus/dbus-break-loader.c:
3496 * test/break-loader.c:
3497 Move dbus-break-loader to test/ and rename it to break-loader.
3499 2003-02-02 Havoc Pennington <hp@pobox.com>
3501 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3502 for code to manage cookies in your home directory
3504 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3506 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3507 to authenticate, then disconnect the client.
3509 2003-02-03 Alexander Larsson <alexl@redhat.com>
3511 * dbus/dbus-message.c (dbus_message_append_fields):
3514 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3516 * doc/dbus-specification.sgml:
3517 Update address format section.
3519 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3522 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3523 (message_handler), (new_connection_callback), (loop_quit),
3527 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3529 * bus/driver.c: (bus_driver_handle_service_exists):
3530 Simplify the code a bit.
3532 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3535 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3538 Add libdbus-daemon.la and link to it.
3540 2003-02-01 James Willcox <jwillcox@gnome.org>
3542 * bus/driver.c: (bus_driver_handle_own_service):
3543 Actually include the service reply code in the message.
3545 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3547 * bus/driver.c: (bus_driver_handle_service_exists):
3548 Don't unref the incoming message.
3550 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3552 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3554 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3556 * dbus/dbus-server.c: (dbus_server_listen):
3557 * dbus/dbus-transport.c: (_dbus_transport_open):
3558 ifdef out the calls to the debug transport and server.
3560 2003-02-02 Alexander Larsson <alexl@redhat.com>
3562 * dbus/dbus-watch.c (dbus_watch_get_flags):
3563 Add note in the docs that ERROR or HANGUP won't be returned
3564 and are assumed always on.
3566 * glib/dbus-gmain.c (add_watch):
3567 Always add IO_ERR | IO_HUP
3569 * dbus/dbus-message.h:
3570 Add semicolon after dbus_message_iter_get_string_array().
3571 Makes qt code build again
3573 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3575 * bus/driver.c: (create_unique_client_name),
3576 (bus_driver_handle_hello):
3577 Don't take a name, just use a numeric id to identify
3581 * dbus/dbus-bus.c: (dbus_bus_register_client),
3582 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3584 Add new convenience functions for communicating with the bus.
3586 * dbus/dbus-message.h:
3588 * dbus/dbus-protocol.h:
3591 2003-02-01 Alexander Larsson <alexl@redhat.com>
3593 * dbus/dbus-message.c (dbus_message_append_fields):
3594 Add some more doc comments.
3596 2003-02-01 Havoc Pennington <hp@pobox.com>
3598 * dbus/dbus-break-loader.c (randomly_modify_length): change
3599 a 4-byte value in the message as if it were a length
3601 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3602 execute bit on saved files
3604 2003-02-01 Havoc Pennington <hp@pobox.com>
3606 * dbus/dbus-break-loader.c (main): new program to find messages
3607 that break the loader.
3609 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3610 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3612 * dbus/dbus-string.c (_dbus_string_set_byte): new
3614 2003-01-31 Havoc Pennington <hp@pobox.com>
3616 * dbus/dbus-message.c: refactor the test code to be more general,
3617 in preparation for writing a "randomly permute test cases to
3618 try to break the loader" program.
3620 2003-01-31 Havoc Pennington <hp@pobox.com>
3622 * doc/dbus-specification.sgml: work on the specification
3624 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3625 the protocol version of the message.
3627 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3628 no longer specifies that.
3629 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3632 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3633 "break" for DBUS_TYPE_NIL, remove @todo
3635 2003-01-31 Havoc Pennington <hp@pobox.com>
3637 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3638 just set_is_error/get_is_error as this is a commonly-used
3639 function, and write docs.
3641 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3643 * dbus/dbus-address.c: (dbus_address_entry_free):
3644 Free key and value lists.
3646 * dbus/dbus-internals.c: (_dbus_type_to_string):
3647 Add the types we didn't have.
3649 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3650 (_dbus_marshal_validate_arg):
3653 * dbus/dbus-message.c: (dbus_message_set_sender):
3654 Remove todo about being able to set sender to NULL.
3656 (dbus_message_set_is_error_reply),
3657 (dbus_message_get_is_error_reply):
3658 * dbus/dbus-message.h:
3661 * dbus/dbus-protocol.h:
3662 Add error reply flag.
3664 * test/data/valid-messages/opposite-endian.message:
3665 Add NIL type to test.
3667 2003-01-31 Havoc Pennington <hp@pobox.com>
3669 * doc/dbus-specification.sgml: fully specify the header. Add
3670 flags and major protocol version, and change header/body len to
3673 * dbus/dbus-message-builder.c (append_saved_length): append length
3676 * dbus/dbus-message.c (dbus_message_create_header): change header
3677 length and body length to unsigned. Add the new fields from the
3679 (_dbus_message_loader_return_buffer): unsigned header/body len
3681 2003-01-30 Havoc Pennington <hp@pobox.com>
3683 * dbus/dbus-auth.c: rework to use only REJECTED, no
3686 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3687 use REJECTED, suggested by Mark McLoughlin
3689 2003-01-30 Havoc Pennington <hp@pobox.com>
3691 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3692 a better way to report errors here. e.g. "unix address lacks
3693 path" or something. also "no such file" when the path doesn't
3696 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3698 (dbus_parse_address): add @todo about documenting address format,
3699 and allowing , and ; to be escaped
3701 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3704 Add dbus-address.[ch]
3706 * dbus/dbus-address.c: (dbus_address_entry_free),
3707 (dbus_address_entries_free), (create_entry),
3708 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3709 (dbus_parse_address), (_dbus_address_test):
3710 * dbus/dbus-address.h:
3711 New files for dealing with address parsing.
3713 * dbus/dbus-connection.c:
3714 Document timeout functions.
3716 * dbus/dbus-message.c:
3717 Document dbus_message_new_from_message.
3719 * dbus/dbus-server-debug.c:
3722 * dbus/dbus-server.c: (dbus_server_listen):
3723 Parse address and use correct server implementation.
3725 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3726 * dbus/dbus-string.h:
3727 New function with test.
3729 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3733 * dbus/dbus-transport-debug.c:
3736 * dbus/dbus-transport.c: (_dbus_transport_open):
3737 Parse address and use correct transport implementation.
3739 2003-01-30 Havoc Pennington <hp@pobox.com>
3741 * dbus/dbus-message.c: use message->byte_order instead of
3742 DBUS_COMPILER_BYTE_ORDER throughout.
3743 (dbus_message_create_header): pad header to align the
3744 start of the body of the message to 8-byte boundary
3746 * dbus/dbus-marshal.h: make all the demarshalers take const
3747 DBusString arguments.
3749 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3750 validate message args here, so we don't have to do slow validation
3751 later, and so we catch bad messages as they are incoming. Also add
3752 better checks on header_len and body_len. Also fill in
3755 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3756 implemented properly)
3757 (_dbus_string_validate_nul): new function to check all-nul
3759 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3760 get_arg_end_pos and remove all validation
3761 (_dbus_marshal_validate_arg): actually do validation here.
3763 2003-01-29 Havoc Pennington <hp@pobox.com>
3765 * dbus/dbus-message.c (check_message_handling): fix assertion
3766 failure on set_client_serial
3768 2003-01-28 Havoc Pennington <hp@pobox.com>
3770 * dbus/dbus-server-debug.c: Add doc section comments
3772 * dbus/dbus-transport-debug.c: add doc section comments
3774 2003-01-28 Havoc Pennington <hp@redhat.com>
3776 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3777 the reverse order from how I had it
3778 (_dbus_string_base64_encode): reverse encoding order. I was
3779 basically byteswapping everything during encoding.
3781 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3783 * dbus/dbus-connection-internal.h:
3784 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3785 (_dbus_connection_remove_timeout):
3786 Add functions for adding and removing timeouts.
3788 * dbus/dbus-message.c: (dbus_message_new_from_message):
3789 Add new function that takes a message and creates an exact
3790 copy of it, but with the refcount set to 1.
3791 (check_message_handling):
3794 * dbus/dbus-server-protected.h:
3795 * dbus/dbus-server.c: (_dbus_server_init_base),
3796 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3797 (dbus_server_set_timeout_functions):
3798 (_dbus_server_remove_timeout):
3799 New functions so that a server can add and remove timeouts.
3801 (dbus_server_listen):
3802 Add commented out call to dbus_server_debug_new.
3804 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3805 Actually set the handler, doh.
3807 * dbus/dbus-transport.c: (_dbus_transport_open):
3808 Add commented out call to dbus_transport_debug_client_new.
3811 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3813 2003-01-28 Havoc Pennington <hp@pobox.com>
3815 * dbus/dbus-message.c (check_message_handling): function to check
3816 on the loaded message, iterates over it etc.
3818 2003-01-28 Havoc Pennington <hp@pobox.com>
3820 * test/Makefile.am (dist-hook): fix make distdir
3822 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3824 2003-01-27 Havoc Pennington <hp@pobox.com>
3826 * dbus/dbus-mempool.c (time_for_size): replace printf with
3829 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3830 empty lines; fix the SAVE_LENGTH stuff to be
3831 START_LENGTH/END_LENGTH so it actually works; couple other
3834 * test/Makefile.am (dist-hook): add dist-hook for .message files
3836 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3837 can be constant or locked.
3838 (_dbus_string_free): allow freeing a const string as
3841 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3843 * dbus/dbus-test-main.c (main): take an argument which is the
3844 directory containing test data
3846 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3847 argument to this and load all the messages in test/data/
3848 checking that they can be loaded or not loaded as appropriate.
3850 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3852 * bus/dispatch.c: (bus_dispatch_message_handler):
3853 Dispatch messages sent to services.
3855 * bus/driver.c: (bus_driver_send_service_deleted),
3856 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3857 (bus_driver_send_service_acquired):
3858 Add helper functions for sending service related messages.
3860 (bus_driver_send_welcome_message):
3861 Send HELLO_REPLY instead of WELCOME.
3863 (bus_driver_handle_list_services):
3864 Send LIST_SERVICES_REPLY instead of SERVICES.
3866 (bus_driver_handle_own_service),
3867 (bus_driver_handle_service_exists):
3868 New message handlers.
3870 (bus_driver_handle_message):
3871 Invoke new message handlers.
3873 (bus_driver_remove_connection):
3874 Don't remove any services here since that's done automatically
3875 by bus_service_remove_owner now.
3878 New function signatures.
3880 * bus/services.c: (bus_service_add_owner):
3881 Send ServiceAcquired message if we're the only primary owner.
3883 (bus_service_remove_owner):
3884 Send ServiceAcquired/ServiceLost messages.
3886 (bus_service_set_prohibit_replacement),
3887 (bus_service_get_prohibit_replacement):
3888 Functions for setting prohibit replacement.
3890 (bus_service_has_owner):
3891 New function that checks if a connection is in the owner queue of
3895 Add new function signatures.
3897 * dbus/dbus-list.c: (_dbus_list_test):
3898 Add tests for _dbus_list_remove_last and traversing the list backwards.
3901 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3902 go any further, so return NULL then.
3904 * dbus/dbus-protocol.h:
3905 Add new messages, service flags and service replies.
3907 2003-01-26 Havoc Pennington <hp@pobox.com>
3909 * dbus/dbus-message-builder.c: implement, completely untested.
3911 * test/data/*: add data to be used in testing.
3912 ".message" files are our simple loadable text format.
3913 ".message-raw" will be binary dumps of messages.
3915 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3917 2003-01-26 Havoc Pennington <hp@pobox.com>
3919 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3921 * dbus/dbus-errors.c (dbus_result_to_string): add
3924 * dbus/dbus-message-builder.c: new file, will contain code to load
3925 up messages from files. Not implemented yet.
3927 2003-01-26 Havoc Pennington <hp@pobox.com>
3929 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3930 the sender by setting to NULL
3932 2003-01-26 Havoc Pennington <hp@pobox.com>
3934 The unit tests pass, but otherwise untested. If it breaks, the
3935 tests should have been better. ;-)
3937 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3940 * dbus/dbus-message.c: redo everything so we maintain
3941 message->header as the only copy of the various fields.
3942 This avoids the possibility of out-of-memory in some cases,
3943 for example dbus_message_lock() can't run out of memory anymore,
3944 and avoids extra copying. Figured I may as well go ahead and do
3945 this since it was busted for dbus_message_lock to not return
3946 failure on OOM, and dbus_message_write_header was totally
3947 unchecked for OOM. Also fixed some random other bugs.
3949 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3950 that strings are nul-terminated. Also, end_pos can be equal
3951 to string length just not greater than, I think.
3952 (_dbus_marshal_set_int32): new function
3953 (_dbus_marshal_set_uint32): new function
3954 (_dbus_marshal_set_string): new function
3956 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3957 a warning, init timeout_list to NULL
3958 (dbus_connection_send_message): don't use uninitialized variable
3961 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3963 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3965 * bus/driver.c: (bus_driver_handle_hello),
3966 (bus_driver_send_welcome_message):
3969 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3971 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3972 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3973 (dbus_connection_unref):
3974 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3975 * dbus/dbus-message.c: (dbus_message_unref),
3978 (dbus_message_get_fields):
3979 Remove debugging printout.
3981 (_dbus_message_loader_return_buffer):
3982 Don't store the header string.
3984 (_dbus_message_test):
3987 2003-01-26 Richard Hult <rhult@codefactory.se>
3989 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3990 the file descriptor list, since it can change under us.
3992 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3994 * glib/dbus-gmain.c: (dbus_connection_prepare),
3995 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3996 (remove_watch), (dbus_connection_hookup_with_g_main):
3997 Rewrite the glib handling to use its own GSource instead of a
3998 GIOChannel so we can catch messages put in the queue while waiting
4001 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4004 * bus/connection.c: (connection_disconnect_handler),
4005 (connection_watch_callback), (bus_connection_setup):
4006 * bus/dispatch.c: (send_one_message),
4007 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
4008 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
4010 * bus/driver.c: (bus_driver_send_service_deleted),
4011 (bus_driver_send_service_created), (bus_driver_handle_hello),
4012 (bus_driver_send_welcome_message),
4013 (bus_driver_handle_list_services), (bus_driver_remove_connection),
4014 (bus_driver_handle_message):
4016 Refactor code, put the message dispatching in its own file. Use
4017 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4020 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4022 * dbus/dbus-internals.h:
4023 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4025 * dbus/dbus-message.c: (dbus_message_get_sender):
4026 * dbus/dbus-message.h:
4027 Implement dbus_message_get_sender.
4029 * dbus/dbus-protocol.h:
4030 Add message and service defines.
4032 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4034 * dbus/dbus-connection.c: (dbus_connection_send_message):
4035 * dbus/dbus-message-internal.h:
4036 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4037 (dbus_message_write_header):
4038 Remove _dbus_messag_unlock and don't set the client serial on a
4039 message if one already exists.
4041 2003-01-24 Havoc Pennington <hp@pobox.com>
4043 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4046 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4049 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4051 * dbus/dbus-list.c: (alloc_link), (free_link):
4052 Use a memory pool for the links.
4054 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4056 * bus/connection.c: (bus_connection_foreach):
4058 Add new bus_connection_foreach function.
4060 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4061 Add function that broadcasts a message to all clients.
4063 (bus_driver_send_service_created), (bus_driver_handle_hello),
4064 (bus_driver_send_welcome_message),
4065 (bus_driver_handle_list_services), (bus_driver_message_handler):
4066 Implement functions that take care of listing services, and notifying
4067 clients when new services are created.
4069 * bus/services.c: (bus_services_list):
4071 Add new function that returns an array of strings with the currently
4072 registered services.
4075 * glib/dbus-gmain.c:
4076 Update copyright year.
4078 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4080 * dbus/dbus-connection.c: (dbus_connection_send_message):
4081 Unlock the message in case it was sent earlier.
4083 (dbus_connection_send_message_with_reply_and_block):
4084 Remove the reply message from the list.
4086 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4087 Set array_len and new_pos correctly.
4089 (_dbus_marshal_test):
4090 Remove debug output.
4092 * dbus/dbus-message-internal.h:
4093 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4094 New function that returns the reply serial.
4096 (_dbus_message_unlock):
4097 New function that unlocks a message and resets its header.
4099 (dbus_message_append_string_array),
4100 (dbus_message_get_fields_valist),
4101 (dbus_message_iter_get_field_type),
4102 (dbus_message_iter_get_string_array),
4103 (dbus_message_get_fields),
4104 (dbus_message_append_fields_valist):
4105 Handle string arrays.
4107 (dbus_message_set_sender):
4108 Make this function public since the bus daemon needs it.
4110 (decode_header_data):
4111 Set the reply serial to -1 initially.
4113 * dbus/dbus-message.h:
4114 Add dbus_message_set_sender.
4116 2003-01-24 Havoc Pennington <hp@pobox.com>
4118 * doc/dbus-specification.sgml: add some stuff
4120 2003-01-22 Havoc Pennington <hp@pobox.com>
4122 * doc/dbus-specification.sgml: Start to document the protocol.
4124 2003-01-22 Havoc Pennington <hp@pobox.com>
4126 * dbus/dbus-connection.c
4127 (dbus_connection_send_message_with_reply_and_block): add some @todo
4129 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4131 2003-01-21 Havoc Pennington <hp@pobox.com>
4133 (patch untested because can't compile)
4135 * bus/driver.c (create_unique_client_name): make this function
4136 never recycle client names. Also, caller should initialize
4139 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4141 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4143 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4144 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4145 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4146 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4147 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4148 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4149 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4150 * dbus/dbus-marshal.h:
4151 * dbus/dbus-protocol.h:
4152 Add support for marshalling and demarshalling integer, double
4155 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4160 * bus/connection.c: (connection_disconnect_handler):
4161 Remove the connection from the bus driver's list.
4163 (connection_watch_callback): Dispatch messages.
4165 (free_connection_data): Free connection name.
4167 (bus_connection_setup): Add connection to the bus driver's list.
4168 (bus_connection_remove_owned_service):
4169 (bus_connection_set_name), (bus_connection_get_name):
4170 Add functions for setting and getting the connection's name.
4173 Add function headers.
4175 * bus/driver.c: (create_unique_client_name),
4176 (bus_driver_handle_hello_message),
4177 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4178 (bus_driver_add_connection), (bus_driver_remove_connection):
4181 * bus/services.c: (bus_service_free):
4183 New file that handles communication and registreation with the bus
4186 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4188 * dbus/dbus-connection.c: (dbus_connection_send_message):
4189 Add a new client_serial parameter.
4191 (dbus_connection_send_message_with_reply):
4192 Remove a @todo since we've implemented the blocking function.
4194 (dbus_connection_send_message_with_reply_and_block):
4195 New function that sends a message and waits for a reply and
4196 then returns the reply.
4198 * dbus/dbus-connection.h:
4201 * dbus/dbus-errors.c: (dbus_result_to_string):
4202 * dbus/dbus-errors.h:
4203 Add new DBUS_RESULT.
4205 * dbus/dbus-message-internal.h:
4206 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4207 (_dbus_message_set_sender), (dbus_message_write_header),
4208 (dbus_message_new_reply), (decode_header_data),
4209 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4210 * dbus/dbus-message.h:
4211 Add new functions that set the reply serial and sender.
4212 Also marshal and demarshal them correctly and add test.
4214 * dbus/dbus-protocol.h:
4215 Add new DBUS_MESSAGE_TYPE_SENDER.
4218 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4219 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4220 (dbus_connection_hookup_with_g_main):
4221 * glib/test-dbus-glib.c: (main):
4222 Rewrite to use GIOChannel and remove the GSource crack.
4224 * test/echo-client.c: (main):
4225 * test/watch.c: (check_messages):
4226 Update for changed APIs
4228 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4230 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4232 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4233 Create a DBusTimeoutList.
4234 (dbus_connection_set_timeout_functions): Add new function to
4235 set timeout callbacks
4237 * dbus/dbus-connection.h: Add public DBusTimeout API.
4239 * dbus/dbus-message.c: (dbus_message_get_service):
4240 * dbus/dbus-message.h: New function.
4242 * dbus/dbus-server.c: Fix small doc typo.
4244 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4246 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4248 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4249 of the string, just as long as specified.
4251 2003-01-19 Havoc Pennington <hp@pobox.com>
4253 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4256 * dbus/dbus-server.c (dbus_server_set_max_connections)
4257 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4258 keep track of current number of connections, and add API for
4259 setting a max (but haven't implemented enforcing the max yet)
4261 2003-01-18 Havoc Pennington <hp@pobox.com>
4263 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4264 reading/writing if read_watch != NULL or write_watch != NULL.
4266 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4267 the message loader code to actually load message->header and
4268 message->body into the newly-created message.
4270 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4273 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4274 (dbus_connection_get_max_message_size)
4275 (dbus_connection_set_max_live_messages_size)
4276 (dbus_connection_get_max_live_messages_size): implement some
4277 resource limitation functions
4279 * dbus/dbus-resources.c: new file implementing some of the
4280 resource limits stuff
4282 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4283 missing docs, add @todo to handle OOM etc.
4285 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4288 2003-01-18 Havoc Pennington <hp@pobox.com>
4290 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4291 connection if it hasn't been already.
4293 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4294 replace with DisconnectFunction.
4296 2003-01-18 Havoc Pennington <hp@pobox.com>
4298 Building --disable-verbose-mode --disable-asserts --disable-tests
4299 cuts the library from 112K to 45K or so
4301 * configure.in: check for varargs macro support,
4302 add --enable-verbose-mode, --enable-asserts.
4304 * dbus/dbus-internals.h (_dbus_assert): support
4306 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4308 2003-01-18 Havoc Pennington <hp@pobox.com>
4310 * dbus/dbus-test.c: include config.h so that tests actually run
4312 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4313 so the failure mode when that assumption fails will be plenty
4316 2003-01-18 Havoc Pennington <hp@pobox.com>
4318 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4320 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4323 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4324 since we don't want to use those in make check
4326 2003-01-15 Havoc Pennington <hp@redhat.com>
4332 2003-01-15 Havoc Pennington <hp@redhat.com>
4334 * test/Makefile.am: fix so that test source code ends up in the
4335 distribution on make distcheck
4337 2003-01-15 Havoc Pennington <hp@redhat.com>
4343 2003-01-15 Havoc Pennington <hp@redhat.com>
4345 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4346 fix build when --disable-tests
4348 * Makefile.am (EXTRA_DIST): put HACKING in here
4350 * HACKING: document procedure for making a tarball release.
4352 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4354 * bus/connection.c: (connection_error_handler),
4355 (bus_connection_setup):
4356 * bus/main.c: (main):
4357 Make sure that the DBusConnectionData struct is NULLed
4358 out to prevent a segfault.
4360 * dbus/dbus-errors.c: (dbus_result_to_string):
4361 * dbus/dbus-errors.h:
4362 * dbus/dbus-message.c: (dbus_message_get_fields),
4363 (dbus_message_get_fields_valist), (_dbus_message_test):
4364 * dbus/dbus-message.h:
4365 Make dbus_message_get_fields return a result code so we can
4366 track invalid fields as well as oom.
4368 2003-01-11 Havoc Pennington <hp@pobox.com>
4370 * configure.in: change --enable-test/--enable-ansi action-if-given
4371 to enable_foo=$enableval instead of enable_foo=yes
4373 2003-01-08 Havoc Pennington <hp@pobox.com>
4375 * dbus/dbus-string.c (_dbus_string_align_length): new function
4377 * dbus/dbus-test-main.c: move main() for test app here
4379 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4380 symbol to run tests, because dbus-test isn't in the main
4383 Code review nitpicks.
4385 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4386 for people with narrow emacs ;-). Assert client_serial was filled
4387 in. Assert message->name != NULL.
4388 (dbus_message_append_fields): have "first_field_type" arg separate
4389 from va list, needed for C++ binding that also uses varargs IIRC
4390 and helps with type safety
4391 (dbus_message_new): add @todo about using DBusString to store
4392 service/name internally
4393 (dbus_message_new): don't leak ->service and ->name on OOM later
4395 (dbus_message_unref): free the service name
4396 (dbus_message_get_fields): same change to varargs
4397 i.e. first_field_type
4398 (_dbus_message_loader_return_buffer): assert that the message data
4399 is aligned (if not it's a bug in our code). Put in verbose griping
4400 about why we set corrupted = TRUE.
4401 (decode_header_data): add FIXME that char* is evil. Was going to
4402 add FIXME about evil locale-specific string.h strncmp, but just
4403 switched to wacky string-as-uint32 optimization. Move check for
4404 "no room for field name" above get_const_data_len() to avoid
4405 assertion failure in get_const_data_len if we have trailing 2
4406 bytes or the like. Check for service and name fields being
4407 provided twice. Don't leak service/name on error. Require field
4408 names to be aligned to 4 bytes.
4410 * dbus/dbus-marshal.c: move byte swap stuff to header
4411 (_dbus_pack_int32): uscore-prefix
4412 (_dbus_unpack_int32): uscore-prefix
4413 (_dbus_unpack_uint32): export
4414 (_dbus_demarshal_string): add @todo complaining about use of
4416 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4417 handling allowing corrupt data to go unchecked
4419 2003-01-08 Havoc Pennington <hp@redhat.com>
4421 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4422 to the select() as needed for authentication. (should be using
4423 _dbus_poll() not select, but for another day)
4425 * dbus/dbus.h: include dbus/dbus-protocol.h
4427 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4429 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4432 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4434 * dbus/dbus-internals.c: (_dbus_type_to_string):
4435 New function that returns a string describing a type.
4437 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4438 * dbus/dbus-marshal.h:
4439 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4440 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4441 (dbus_message_iter_get_byte_array):
4442 * dbus/dbus-message.h:
4443 Add new convenience functions for appending and getting message fields.
4444 Also add demarshalling routines for byte arrays.
4446 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4448 * dbus/dbus-connection-internal.h:
4449 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4450 (_dbus_connection_get_next_client_serial),
4451 (dbus_connection_send_message):
4452 * dbus/dbus-internals.h:
4453 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4454 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4455 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4456 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4457 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4458 (_dbus_verbose_bytes), (_dbus_marshal_test):
4459 * dbus/dbus-marshal.h:
4460 * dbus/dbus-message-internal.h:
4461 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4462 (dbus_message_write_header), (_dbus_message_lock),
4463 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4464 (dbus_message_get_name), (dbus_message_append_int32),
4465 (dbus_message_append_uint32), (dbus_message_append_double),
4466 (dbus_message_append_string), (dbus_message_append_byte_array),
4467 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4468 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4469 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4470 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4471 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4472 (decode_header_data), (_dbus_message_loader_return_buffer),
4473 (message_iter_test), (_dbus_message_test):
4474 * dbus/dbus-message.h:
4475 * dbus/dbus-protocol.h:
4476 * dbus/dbus-test.c: (main):
4478 * glib/test-dbus-glib.c: (message_handler), (main):
4479 * test/echo-client.c: (main):
4480 * test/watch.c: (check_messages):
4481 Make messages sendable and receivable for real.
4483 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4485 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4486 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4487 * dbus/dbus-message.c: (dbus_message_append_int32),
4488 (dbus_message_append_uint32), (dbus_message_append_double),
4489 (dbus_message_append_string), (dbus_message_append_byte_array):
4490 Handle OOM restoration.
4492 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4494 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4495 (_dbus_demarshal_string), (_dbus_marshal_test):
4496 * dbus/dbus-marshal.h:
4497 * dbus/dbus-message.c: (dbus_message_get_name),
4498 Document these functions.
4500 (dbus_message_append_int32), (dbus_message_append_uint32),
4501 (dbus_message_append_double), (dbus_message_append_string),
4502 (dbus_message_append_byte_array):
4503 * dbus/dbus-message.h:
4504 Add functions for adding message fields of different types.
4506 * dbus/dbus-protocol.h:
4507 Add the different types.
4509 2003-01-05 Havoc Pennington <hp@pobox.com>
4511 * bus/connection.c: implement routines for handling connections,
4512 first thing is keeping a list of owned services on each connection
4513 and setting up watches etc.
4515 * bus/services.c: implement a mapping from service names to lists
4518 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4520 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4521 to use static mutexes for global data
4523 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4524 collection of functions to set/get application-specific data
4525 on the DBusConnection.
4527 2003-01-04 Havoc Pennington <hp@pobox.com>
4529 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4530 (_dbus_poll): new function
4532 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4535 * bus/loop.c: initial code for the daemon main loop
4537 2003-01-04 Havoc Pennington <hp@pobox.com>
4539 * test/watch.c (error_handler): make it safe if the error handler
4540 is called multiple times (if we s/error handler/disconnect
4541 handler/ we should just guarantee it's called only once)
4543 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4544 error handler on disconnect (it's quite possible we should
4545 just change the error handler to a "disconnect handler," I'm
4546 not sure we have any other meaningful errors)
4548 * configure.in: check for getpwnam_r
4550 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4551 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4552 mechanism as in SASL spec, using socket credentials
4554 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4555 (_dbus_send_credentials_unix_socket): new function
4557 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4559 (_dbus_write): only check errno if <0 returned
4560 (_dbus_write_two): ditto
4562 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4564 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4565 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4566 (_dbus_marshal_test):
4567 * dbus/dbus-marshal.h:
4568 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4569 to _dbus_marshal_utf8_string. Also fix some tests.
4571 2002-12-28 Harri Porten <porten@kde.org>
4573 * configure.in: added check for C++ compiler and a very cheesy
4574 check for the Qt integration
4576 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4578 * qt/Makefile.am: added
4580 * qt/.cvsignore: added
4582 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4583 latter, added #ifdef QT_THREAD_SUPPORT guard.
4585 * dbus/Makefile.am: added missing headers for make dist
4587 2002-12-28 Kristian Rietveld <kris@gtk.org>
4589 * dbus/Makefile.am: fixup export-symbols-regex.
4591 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4593 * acinclude.m4: Add this file and put the
4594 PKG_CHECK_MODULE macro in it.
4596 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4598 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4599 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4600 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4601 (_dbus_marshal_test):
4602 Make the demarshalling routines align the pos argument.
4603 Add string marshalling tests and fix the obvious bugs
4606 2002-12-26 Havoc Pennington <hp@pobox.com>
4608 * dbus/dbus-auth.c: fixes fixes fixes
4610 * dbus/dbus-transport-unix.c: wire up support for
4611 encoding/decoding data on the wire
4613 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4614 (_dbus_auth_decode_data): append to target string
4615 instead of nuking it.
4617 2002-12-26 Havoc Pennington <hp@pobox.com>
4619 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4620 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4623 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4624 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4625 now). Main point is because I wanted unpack_uint32 to implement
4627 (_dbus_verbose_bytes): new function
4629 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4631 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4632 mechanism to handle a corrupt message stream
4633 (_dbus_message_loader_new): fix preallocation to only prealloc,
4636 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4637 (_dbus_string_test): enhance tests for copy/move and fix the
4640 * dbus/dbus-transport-unix.c: Hold references in more places to
4641 avoid reentrancy problems
4643 * dbus/dbus-transport.c: ditto
4645 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4646 leak reference count in no-message case
4648 * test/watch.c (do_mainloop): handle adding/removing watches
4649 during iteration over the watches. Also, ref the connection/server
4650 stored on a watch, so we don't try to mangle a destroyed one.
4652 * dbus/dbus-transport-unix.c (do_authentication): perform
4655 * dbus/dbus-auth.c (get_state): add a state
4656 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4657 (_dbus_auth_get_unused_bytes): append the unused bytes
4658 to the passed in string, rather than prepend
4660 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4661 the auth conversation DBusAuth
4663 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4664 (_dbus_transport_new_for_domain_socket): when creating a
4665 transport, pass in whether it's a client-side or server-side
4666 transport so we know which DBusAuth to create
4668 2002-12-03 Havoc Pennington <hp@pobox.com>
4670 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4671 _after_ finalizing the derived members
4672 (unix_connection_set): unref watch if we fail to add it
4674 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4675 transport first, so that the connection owned by the
4676 transport will be valid as the transport finalizes.
4678 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4679 if necessary, and remove watches from the connection.
4681 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4683 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4685 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4686 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4687 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4688 (_dbus_marshal_test):
4689 * dbus/dbus-marshal.h:
4690 Add string marshal functions and have the demarshal functions
4691 return the new position.
4693 2002-12-25 Havoc Pennington <hp@pobox.com>
4695 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4696 it is a simple protocol that just maps directly to SASL.
4698 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4699 initial implementation, not actually used yet.
4701 * dbus/dbus-string.c (_dbus_string_find): new function
4702 (_dbus_string_equal): new function
4703 (_dbus_string_base64_encode): new function
4704 (_dbus_string_base64_decode): new function
4706 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4709 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4710 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4711 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4712 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4713 * dbus/dbus-marshal.h:
4714 * dbus/dbus-protocol.h:
4715 * dbus/dbus-test.c: (main):
4717 Add un-optimized marshalling/demarshalling routines.
4719 2002-12-25 Harri Porten <porten@kde.org>
4721 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4723 2002-12-24 Zack Rusin <zack@kde.org>
4725 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4726 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4729 2002-12-24 Havoc Pennington <hp@pobox.com>
4731 * glib/dbus-gthread.c: fix include
4733 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4734 I think glib API needs to change, though, as you don't
4735 want to use DBusMessageFunction, you want to use the
4736 DBusMessageHandler object. Probably
4737 dbus_connection_open_with_g_main_loop()
4738 and dbus_connection_setup_g_main_loop() or something like that
4739 (but think of better names...) that just create a connection
4740 that has watch/timeout functions etc. already set up.
4742 * dbus/dbus-connection.c
4743 (dbus_connection_send_message_with_reply): new function just to
4744 show how the message handler helps us deal with replies.
4746 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4748 * dbus/dbus-string.c (_dbus_string_test): free a string that
4751 * dbus/dbus-hash.c: use memory pools for the hash entries
4752 (rebuild_table): be more paranoid about overflow, and
4753 shrink table when we can
4754 (_dbus_hash_test): reduce number of sprintfs and write
4755 valid C89. Add tests for case where we grow and then
4756 shrink the hash table.
4758 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4760 * dbus/dbus-connection.c (dbus_connection_register_handler)
4761 (dbus_connection_unregister_handler): new functions
4763 * dbus/dbus-message.c (dbus_message_get_name): new
4765 * dbus/dbus-list.c: fix docs typo
4767 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4768 an object representing a handler for messages.
4770 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4773 * glib/dbus-gthread.c: (dbus_gthread_init):
4774 Don't use the gdbus prefix for public functions.
4776 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4780 Add GLib checks and fixup .pc files
4784 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4785 (gdbus_connection_check), (gdbus_connection_dispatch),
4786 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4787 (dbus_connection_gsource_new):
4788 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4789 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4790 * glib/test-dbus-glib.c: (message_handler), (main):
4793 2002-12-15 Harri Porten <porten@kde.org>
4795 * autogen.sh: check for libtoolize before attempting to use it
4797 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4800 * .cvsignore: ignore more stamp files
4802 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4804 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4805 without make install.
4807 2002-12-15 Havoc Pennington <hp@pobox.com>
4809 * dbus/dbus-threads.c: add thread stubs that a higher library
4810 layer can fill in. e.g. the GLib wrapper might fill them in with
4811 GThread stuff. We still need to use this thread API to
4812 thread-safe-ize the library.
4814 2002-12-12 Havoc Pennington <hp@pobox.com>
4816 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4817 below new interfaces and include fewer system headers.
4819 * dbus/dbus-sysdeps.c (_dbus_read): new function
4820 (_dbus_write): new function
4821 (_dbus_write_two): new function
4822 (_dbus_connect_unix_socket): new function
4823 (_dbus_listen_unix_socket): new function
4825 * dbus/dbus-message-internal.h: change interfaces to use
4828 2002-12-11 Havoc Pennington <hp@pobox.com>
4830 * dbus/dbus-types.h: add dbus_unichar
4832 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4834 * dbus/dbus-connection.c (dbus_connection_send_message): return
4837 * dbus/dbus-transport.c: include dbus-watch.h
4839 * dbus/dbus-connection.c: include dbus-message-internal.h
4841 * HACKING: add file with coding guidelines stuff.
4843 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4844 handling here, for security purposes (as in vsftpd). Not actually
4845 using this class yet.
4847 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4848 system/libc usage here, as in vsftpd, for ease of auditing (and
4849 should also simplify portability). Haven't actually moved all the
4850 system/libc usage into here yet.
4852 2002-11-25 Havoc Pennington <hp@pobox.com>
4854 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4855 always print the first verbose message.
4857 2002-11-24 Havoc Pennington <hp@pobox.com>
4859 * test/echo-client.c, test/echo-server.c: cheesy test
4862 * configure.in (AC_CHECK_FUNCS): check for writev
4864 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4867 * dbus/dbus-list.c (_dbus_list_foreach): new function
4869 * dbus/dbus-internals.c (_dbus_verbose): new function
4871 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4872 representing a server that listens for connections.
4874 * dbus/.cvsignore: create
4876 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4877 public API for reporting errors
4879 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4880 public object representing a connection that
4881 sends/receives messages. (Same object used for
4882 both client and server.)
4884 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4885 Basic abstraction for different kinds of stream
4886 that we might read/write messages from.
4888 2002-11-23 Havoc Pennington <hp@pobox.com>
4890 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4893 * dbus/dbus-test.c (main): add list test, and include
4894 dbus-test.h as intended
4896 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4897 (_dbus_hash_table_remove_int): return value indicates
4898 whether the entry existed to remove
4900 * dbus/dbus-list.c: add linked list utility class,
4903 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4906 2002-11-23 Havoc Pennington <hp@pobox.com>
4908 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4909 DBUS_END_DECLS to nothing, that should fix this once and for all
4911 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4913 * dbus/dbus-message.c, dbus/dbus-hash.c:
4914 add some missing @brief
4916 2002-11-23 Havoc Pennington <hp@pobox.com>
4918 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4919 to avoid confusing Doxygen
4921 * dbus/dbus-hash.c: @} not }@
4923 * dbus/dbus-message.c (struct DBusMessage): split out
4926 2002-11-23 Havoc Pennington <hp@pobox.com>
4928 * configure.in: pile on more warning flags if using gcc
4930 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4931 to document static functions
4933 * configure.in: add summary to end of configure so it
4934 looks nice and attractive
4936 * dbus/dbus-hash.c: finish implementation and write unit
4939 * configure.in: add --enable-tests to enable unit tests
4941 * dbus/dbus-test.c: test program to run unit tests
4942 for all files in dbus/*, initially runs a test for
4945 * dbus/dbus-internals.h: file to hold some internal utility stuff
4947 2002-11-22 Havoc Pennington <hp@redhat.com>
4949 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4950 "ported" away from Tcl
4952 * dbus/dbus-types.h: header for types such as dbus_bool_t
4954 2002-11-22 Havoc Pennington <hp@redhat.com>
4956 * dbus/dbus.h: fixups for doc warnings
4958 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4960 (QUIET): make it quiet so we can see warnings
4962 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4964 2002-11-22 Havoc Pennington <hp@redhat.com>
4966 * Makefile.am: include "Doxyfile" target in all-local
4968 * configure.in: generate the Doxyfile
4970 * Doxyfile.in: move Doxyfile here, so we can use
4971 configure to generate a Doxyfile with the right
4974 2002-11-22 Havoc Pennington <hp@redhat.com>
4976 * dbus/dbus-message.c: move inline docs into .c file
4978 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4979 so all docs are under doc/
4980 (MAN_EXTENSION): generate man pages. Use extension
4981 ".3dbus" which matches ".3qt" on my system,
4982 I guess this is OK, I don't know really.
4983 (FILE_PATTERNS): look for .c files not .h, makes sense
4986 2002-11-22 Havoc Pennington <hp@pobox.com>
4988 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4989 because any app can be a server, and any app can be a client,
4990 the bus is a special kind of server.
4992 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4994 * Doxyfile : adding. Still needs Makefile rules to be generated
4995 automatically (just run "doxygen" in the toplevel dir for now to
4998 * dbus/dbus-message.h : Adding sample docs (javadoc since
4999 resembles gtk-doc a little more)
5001 * dbus/dbus.h : Adding sample docs
5003 2002-11-21 Havoc Pennington <hp@redhat.com>
5005 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
5006 so we can allow ourselves to include files directly,
5007 instead of having to use dbus.h
5009 * dbus/dbus.h: fill in
5011 * dbus/dbus-message.h: sketch out a sample header file.
5012 Include griping if you include it directly instead of
5015 * dbus/dbus-macros.h: new file with macros for extern "C",
5016 TRUE/FALSE, NULL, etc.
5018 * doc/file-boilerplate.c: put include guards in here
5020 2002-11-21 Havoc Pennington <hp@redhat.com>
5022 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5024 * COPYING: include the GPL as well, and license code
5025 under both AFL and GPL.
5027 2002-11-21 Havoc Pennington <hp@redhat.com>
5029 * acconfig.h: get rid of this
5031 * autogen.sh (run_configure): add --no-configure option
5033 * configure.in: remove AC_ARG_PROGRAM to make
5034 autoconf complain less. add AC_PREREQ.
5035 add AC_DEFINE third arg.
5037 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5040 Fix references so we can distcheck.
5042 2002-11-21 Havoc Pennington <hp@redhat.com>
5044 * Initial module creation