1 2003-07-28 Havoc Pennington <hp@redhat.com>
3 * bus/messagebus.in: fix to avoid processname/servicename
4 confusion, from Michael Kearey
5 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7 2003-07-23 Havoc Pennington <hp@pobox.com>
9 * dbus/dbus-message.c (dbus_message_iter_get_named):
10 fix from Andy Hanton to remove broken "+1"
12 2003-07-16 Havoc Pennington <hp@pobox.com>
14 * tools/dbus-launch.c (babysit): close stdout/stderr in the
15 babysitter process, as suggested by Thomas Leonard, so
16 an "eval `dbus-launch --exit-with-session`" will actually
19 2003-07-16 Havoc Pennington <hp@pobox.com>
21 * configure.in: print out EXPANDED_* variables in the summary at
22 the end; clean up the code that computes EXPANDED_ variables and
23 get the ones using exec_prefix right. Should make things work
24 when you build without --prefix
26 2003-06-29 Havoc Pennington <hp@pobox.com>
28 * mono/Test.cs (class Test): fire up a main loop and run it
30 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
31 done once, the app has to do it
33 2003-06-26 Havoc Pennington <hp@pobox.com>
35 * mono/Connection.cs: set up connection with the glib main loop
37 2003-07-01 Havoc Pennington <hp@redhat.com>
39 * doc/dbus-specification.sgml: clarify the format of a type code,
40 change suggested by Jim Blandy
42 2003-06-29 Miloslav Trmac <mitr@volny.cz>
45 * tools/Makefile.am: Don't assume srcdir == builddir.
47 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
49 (_dbus_memory_test): New function.
50 * dbus/dbus-test.h: Add _dbus_memory_test ().
51 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
53 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
55 (dbus_message_new): Remove obsolete @todo.
57 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
58 (_dbus_marshal_set_uint64): Fix comment.
60 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
61 hardcode FIELD_REPLY_SERIAL.
63 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
64 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
66 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
67 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
69 2003-06-24 Havoc Pennington <hp@pobox.com>
71 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
73 2003-06-23 Anders Carlsson <andersca@codefactory.se>
79 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
81 * gcj/org/Makefile.am:
82 * gcj/org/freedesktop/.cvsignore:
83 * gcj/org/freedesktop/Makefile.am:
84 * gcj/org/freedesktop/dbus/.cvsignore:
85 * gcj/org/freedesktop/dbus/Makefile.am:
86 * gcj/org/freedesktop/dbus/Message.java: (Message),
88 * gcj/org/freedesktop/dbus/natMessage.cc:
91 2003-06-22 Havoc Pennington <hp@pobox.com>
93 * mono/Connection.cs: add more bindings
95 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
98 2003-06-22 Havoc Pennington <hp@pobox.com>
100 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
101 Start wrapping more stuff.
103 2003-06-22 Havoc Pennington <hp@pobox.com>
105 * mono/Message.cs: implement Message.Wrap() that ensures we only
106 have a single C# wrapper per DBusMessage, assuming it works which
109 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
110 (dbus_message_free_data_slot): new
111 (dbus_message_set_data): new
112 (dbus_message_get_data): new
114 2003-06-22 Havoc Pennington <hp@pobox.com>
116 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
117 (_dbus_data_slot_allocator_alloc): rework these to keep a
118 reference count on each slot and automatically manage a global
119 slot ID variable passed in by address
121 * bus/bus.c: convert to new dataslot API
123 * dbus/dbus-bus.c: convert to new dataslot API
125 * dbus/dbus-connection.c: convert to new dataslot API
127 * dbus/dbus-server.c: convert to new dataslot API
129 * glib/dbus-gmain.c: ditto
133 * bus/connection.c: ditto
135 2003-06-22 Anders Carlsson <andersca@codefactory.se>
137 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
138 after the gcj checks so that the correct configuration tags
139 will be added to libtool.
141 * dbus-glib-1.pc.in: No need to specify any includes since
142 dbus-1.pc.in has those.
144 2003-06-22 Havoc Pennington <hp@pobox.com>
146 * mono/*, gcj/*, configure.in, Makefile.am:
147 Check in makefiles and subdirs for mono and gcj bindings.
148 Neither binding actually exists, just trying to get through
149 all the build and other boring bits.
151 2003-06-21 Philip Blundell <philb@gnu.org>
153 * tools/dbus-monitor.1: Updated.
155 * tools/dbus-send.1: Likewise.
157 2003-06-20 Anders Carlsson <andersca@codefactory.se>
159 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
160 for hangup and error after checking read so we won't discard
161 pending data if both hangup and read are set.
163 2003-06-19 Philip Blundell <philb@gnu.org>
165 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
167 * tools/dbus-send.c: Accept both --system and --session.
169 * tools/dbus-monitor.c: Same here.
171 2003-06-19 Anders Carlsson <andersca@codefactory.se>
173 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
174 from C++ (Patch by Miloslav Trmac).
176 2003-06-15 Joe Shaw <joe@assbarn.com>
178 * configure.in: Check for socklen_t.
180 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
182 * test/test-segfault.c: Add #include <sys/time.h>
184 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
185 dbus-launch needs it.
187 2003-06-09 Havoc Pennington <hp@redhat.com>
189 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
190 SUN_LEN, it breaks abstract socket usage
192 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
195 2003-06-04 Havoc Pennington <hp@pobox.com>
197 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
198 using unix:abstract=/foo, and when listening in a tmpdir
199 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
201 * dbus/dbus-transport.c (_dbus_transport_open): support
204 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
205 support abstract sockets
207 * dbus/dbus-transport-unix.c
208 (_dbus_transport_new_for_domain_socket): support abstract sockets
210 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
211 toggle as an argument, implement abstract namespace support
212 (_dbus_listen_unix_socket): ditto
214 * configure.in: add --enable-abstract-sockets and implement
215 a configure check for autodetection of the right value.
217 2003-06-01 Havoc Pennington <hp@pobox.com>
219 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
220 in /tmp (though on Linux this will end up being useless,
221 when we add abstract namespace support)
223 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
226 2003-05-28 Colin Walters <walters@verbum.org>
228 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
230 2003-05-18 Anders Carlsson <andersca@codefactory.se>
232 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
234 2003-05-17 Colin Walters <walters@gnu.org>
236 * tools/dbus-send.c: Don't exit with an error code if --help was
237 passed. Default to using the session bus instead of the system
240 * tools/dbus-launch.c: Ditto.
242 * tools/dbus-monitor.c: Ditto.
244 * tools/dbus-send.1: Update with new arguments.
246 * tools/dbus-launch.c: Emit code to export variables. New
247 arguments -s and -c to specify shell syntax, and a bit of code to
248 autodetect syntax. Also, allow specifying a program to run.
250 * tools/dbus-launch.1: Update with new arguments.
252 * tools/dbus-send.1: Ditto.
254 * tools/dbus-monitor.1: Ditto.
256 2003-05-17 Havoc Pennington <hp@pobox.com>
258 * bus/config-parser.c (merge_included): merge in policies from
259 child configuration file.
261 * bus/policy.c (bus_policy_merge): function to merge two policies
264 2003-05-16 Havoc Pennington <hp@redhat.com>
266 * dbus/dbus-connection.c: disable verbose lock spew
268 * tools/dbus-send.c: add --print-reply command line option
270 * tools/dbus-print-message.h (print_message): new util function
271 shared by dbus-send and dbus-monitor
273 * tools/dbus-monitor.c (handler_func): exit on disconnect
275 * dbus/dbus-transport-unix.c (do_reading): if the transport is
276 disconnected, don't try to use the read_watch
278 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
279 so we can find this bug more easily
281 2003-05-16 Havoc Pennington <hp@redhat.com>
283 * bus/policy.c (free_rule_list_func): avoid a crash when passed
284 NULL as DBusHashTable is annoyingly likely to do.
286 2003-05-16 Colin Walters <walters@verbum.org>
288 * tools/dbus-monitor.c: Add --session argument and usage()
291 * tools/dbus-monitor.1: Update with new --session arg.
293 * bus/Makefile.am (install-data-hook): Create
294 $(libdir)/dbus-1.0/services so that the session bus is happy.
296 2003-05-15 Havoc Pennington <hp@redhat.com>
298 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
299 on non-x86. ifdef's are evil.
301 2003-05-15 Havoc Pennington <hp@redhat.com>
307 * bus/Makefile.am (initddir): apparently we are supposed to put
308 init scripts in /etc/rc.d/init.d not /etc/init.d
310 * bus/Makefile.am: remove the "you must --enable-tests to make
311 check" as it broke distcheck
313 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
315 2003-05-13 James Willcox <jwillcox@gnome.org>
318 * bus/activation.c: (bus_activation_service_created),
319 (bus_activation_activate_service):
320 * bus/driver.c: (bus_driver_send_service_deleted),
321 (bus_driver_send_service_created), (bus_driver_send_service_lost),
322 (bus_driver_send_service_acquired),
323 (bus_driver_send_welcome_message),
324 (bus_driver_handle_list_services):
325 * bus/session.conf.in:
326 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
327 (dbus_bus_service_exists), (dbus_bus_activate_service):
330 Add some convenience API which lets you activate a service, and did a
331 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
332 and dbus_message_get_args()
334 2003-05-11 Havoc Pennington <hp@pobox.com>
336 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
337 calling _dbus_marshal_validate_arg() for every byte in a byte
340 * dbus/dbus-message-handler.c: use atomic reference counting to
341 reduce number of locks slightly; the global lock in here sucks
343 * dbus/dbus-connection.c
344 (_dbus_connection_update_dispatch_status_and_unlock): variant of
345 update_dispatch_status that can be called with lock held; then use
346 in a couple places to reduce locking/unlocking
347 (dbus_connection_send): hold the lock over the whole function
348 instead of acquiring it twice.
350 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
352 * bus/connection.c (bus_connections_setup_connection): fix access
353 to already-freed memory.
355 * dbus/dbus-connection.c: keep a little cache of linked list
356 nodes, to avoid using the global linked list alloc lock in the
357 normal send-message case. Instead we just use the connection lock
358 that we already have to take.
360 * dbus/dbus-list.c (_dbus_list_find_last): new function
362 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
363 change to use a struct for the atomic type; fix docs,
364 they return value before increment, not after increment.
366 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
367 (_dbus_string_append_8_aligned): new functions to try to
368 microoptimize this operation.
369 (reallocate_for_length): break this out of set_length(), to
370 improve profile info, and also so we can consider inlining the
373 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
374 strings with some preallocation, cuts down on our calls to realloc
375 a fair bit. Though if we can get the "move entire string to empty
376 string" optimization below to kick in here, it would be better.
378 * dbus/dbus-string.c (_dbus_string_move): just call
379 _dbus_string_move_len
380 (_dbus_string_move_len): add a special case for moving
381 an entire string into an empty string; we can just
382 swap the string data instead of doing any reallocs.
383 (_dbus_string_init_preallocated): new function
385 2003-05-11 Havoc Pennington <hp@pobox.com>
387 Write a "test-profile" that does echo client-server with threads;
388 profile reveals lock contention, memcpy/realloc of buffers, and
389 UTF-8 validation as hot spots. 20% of lock contention eliminated
390 with dbus_atomic_inc/dec implementation on x86. Much remaining
391 contention is global mempool locks for GList and DBusList.
393 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
396 * dbus/dbus-connection.c (struct DBusConnection): use
397 dbus_atomic_t for the reference count
399 * dbus/dbus-message.c (struct DBusMessage): declare
400 dbus_atomic_t values as volatile
402 * configure.in: code to detect ability to use atomic integer
403 operations in assembly, from GLib patch
405 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
406 time, tired of it being wrong in threads and forked processes
408 * glib/test-profile.c: a little program to bounce messages back
409 and forth between threads and eat CPU
411 * dbus/dbus-connection.c: add debug spew macros for debugging
412 thread locks; include config.h at top; fix deadlock in
413 dbus_connection_flush()
415 2003-05-08 Havoc Pennington <hp@pobox.com>
417 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
418 data from getting written, and there wasn't a good reason to
421 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
422 dbus_verbose lines in test coverage
423 (main): add list of functions sorted by # of untested blocks
424 to the coverage report
426 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
428 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
430 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
433 * test/data/auth/cancel.auth-script: test canceling an
436 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
437 aren't used. in CVS history if we end up needing them.
439 2003-05-04 Havoc Pennington <hp@pobox.com>
441 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
444 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
445 function, which assumed length was in # of strings, not bytes
447 * dbus/dbus-message.c (_dbus_message_test): add tests for some
450 * dbus/dbus-connection.c
451 (_dbus_connection_queue_received_message): disable function for
452 now, we are only using it in test mode
454 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
455 remove a mistaken FIXME
457 2003-05-04 Havoc Pennington <hp@pobox.com>
459 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
460 unlock mutex on successful return, patch from Anders Gustafsson
462 2003-05-04 Havoc Pennington <hp@pobox.com>
464 * dbus-glib-1.pc.in (Requires): fix dependencies, from
467 2003-05-04 Havoc Pennington <hp@pobox.com>
469 * tools/dbus-launch.c: implement
471 * bus/main.c (main), bus/bus.c (bus_context_new):
472 implement --print-pid and --fork
474 2003-05-03 Havoc Pennington <hp@redhat.com>
476 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
477 the address had no value, and add to test suite. Fix and
478 regression test from Miloslav Trmac
480 2003-05-03 Havoc Pennington <hp@pobox.com>
482 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
483 watch is invalid when handled
485 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
486 dbus-launch utility to launch the bus from a shell script. Didn't
487 actually implement dbus-launch yet, it's just a placeholder still.
489 2003-05-03 Havoc Pennington <hp@pobox.com>
491 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
492 daemon; also documents daemon config file, so replaces
493 doc/config-file.txt. Corrected some stuff from config-file.txt in
494 the process of moving it.
496 2003-05-03 Havoc Pennington <hp@pobox.com>
498 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
501 2003-05-03 Colin Walters <walters@verbum.org>
503 * dbus/dbus-sysdeps.c (fill_user_info): Test against
504 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
506 * Makefile.am: Update to use new .pc versioning scheme.
508 2003-05-02 Havoc Pennington <hp@redhat.com>
510 * bus/system.conf.in: allow send/receive to/from message bus
513 2003-04-30 Havoc Pennington <hp@redhat.com>
515 * configure.in: print a note when building with unit tests and
518 2003-04-30 Havoc Pennington <hp@redhat.com>
520 * Makefile.am: add a check-local that complains if you didn't
521 configure with --enable-tests
523 2003-04-29 Havoc Pennington <hp@redhat.com>
525 * glib/dbus-gmain.c: docs cleanups
527 * dbus/dbus-types.h: add docs on int64 types
529 * dbus/dbus-memory.c: fix docs to avoid putting private API in
530 public API docs section
532 2003-04-29 Havoc Pennington <hp@redhat.com>
534 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
535 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
536 parallel install API version, not with the D-BUS package version.
538 * HACKING: move some of README over here
540 * README: updates, and document API/ABI policy
542 * configure.in: reindentation
544 2003-04-29 Havoc Pennington <hp@redhat.com>
546 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
547 to use this library" to be sure people have the right
550 2003-04-28 Havoc Pennington <hp@redhat.com>
552 * configure.in: add --enable-docs which by default is auto yes if
553 doxygen and db2html found, no otherwise; but can be forced on/off
555 * doc/Makefile.am: conditionalize whether to build docs on
558 2003-04-28 Havoc Pennington <hp@redhat.com>
564 * bus/system.conf.in: add <includedir>system.d</includedir>
566 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
567 username was provided but not uid
569 * bus/config-parser.c (struct BusConfigParser): keep track of
570 whether the parser is toplevel or was included; change some
571 of the error handling if it's included.
573 2003-04-27 Havoc Pennington <hp@pobox.com>
577 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
578 report correct status if we finish processing authentication
579 inside this function.
581 * bus/activation.c (try_send_activation_failure): use
582 bus_transaction_send_error_reply
584 * bus/connection.c (bus_connection_get_groups): return an error
585 explaining the problem
587 * bus/bus.c (bus_context_check_security_policy): implement
588 restriction here that inactive connections can only send the
589 hello message. Also, allow bus driver to send anything to
592 * bus/connection.c (bus_connection_complete): create the
593 BusClientPolicy here instead of on-demand.
594 (bus_connection_get_policy): don't return an error
596 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
597 sender field in message being replied to
599 * bus/bus.c (bus_context_check_security_policy): fix silly typo
600 causing it to return FALSE always
602 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
603 we checked sender rather than destination
605 2003-04-25 Havoc Pennington <hp@redhat.com>
607 test suite is slightly hosed at the moment, will fix soon
609 * bus/connection.c (bus_connections_expire_incomplete): fix to
610 properly disable the timeout when required
611 (bus_connection_set_name): check whether we can remove incomplete
612 connections timeout after we complete each connection.
614 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
615 probably still broken.
617 * bus/services.c (bus_registry_acquire_service): implement max
618 number of services owned, and honor allow/deny rules on which
619 services a connection can own.
621 * bus/connection.c (bus_connection_get_policy): report errors here
623 * bus/activation.c: implement limit on number of pending
626 2003-04-25 Havoc Pennington <hp@redhat.com>
628 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
629 where we used >= 0 instead of != DBUS_UID_UNSET.
631 2003-04-25 Havoc Pennington <hp@redhat.com>
633 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
634 were toggled without add/remove, fix from Anders Gustafsson
636 2003-04-24 Havoc Pennington <hp@redhat.com>
638 * test/data/valid-config-files/basic.conf: add <limit> tags to
641 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
642 <limit> tag in configuration file.
644 2003-04-24 Havoc Pennington <hp@redhat.com>
646 * bus/dispatch.c: somehow missed some name_is
648 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
649 (_dbus_timeout_set_interval): new
651 * bus/connection.c (bus_connections_setup_connection): record time
652 when each connection is first set up, and expire them after the
655 2003-04-24 Havoc Pennington <hp@redhat.com>
657 * dbus/dbus-message.c (dbus_message_name_is): rename
658 (dbus_message_service_is): rename
659 (dbus_message_sender_is): rename
660 (dbus_message_get_service): rename
662 2003-04-24 Havoc Pennington <hp@redhat.com>
664 * configure.in: add --enable-checks
666 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
668 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
670 (_dbus_connection_handler_destroyed_locked): move some private
671 functions into proper docs group
673 * dbus/dbus-internals.h: add _dbus_return_if_fail,
674 _dbus_return_val_if_fail
676 Throughout: use dbus_return_if_fail
678 2003-04-23 James Willcox <jwillcox@gnome.org>
681 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
682 (dbus_connection_setup_with_g_main),
683 (dbus_server_setup_with_g_main):
684 * glib/test-dbus-glib.c: (main):
685 * glib/test-thread-client.c: (main):
686 * glib/test-thread-server.c: (new_connection_callback), (main):
687 * tools/dbus-monitor.c: (main):
689 Added a GMainContext argument to dbus_connection_setup_with_g_main()
690 and dbus_server_setup_with_g_main().
692 2003-04-20 Havoc Pennington <hp@pobox.com>
694 * doc/dbus-specification.sgml: document the restrictions on
695 message and service names
697 2003-04-22 Havoc Pennington <hp@redhat.com>
699 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
700 support, and do some code cleanups to share more code and
701 speed up array marshal/demarshal.
703 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
705 * configure.in: generate dbus-arch-deps.h
707 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
710 2003-04-22 Havoc Pennington <hp@redhat.com>
712 * test/data/valid-messages/opposite-endian.message: fix test
713 to use proper type for rply field
715 * test/data/invalid-messages: add tests for below validation
717 * dbus/dbus-message.c (decode_header_data): validate field types,
718 and validate that named fields are valid names
719 (decode_name_field): consider messages in the
720 org.freedesktop.Local. namespace to be invalid.
722 * dbus/dbus-string.c (_dbus_string_validate_name): new
724 2003-04-19 Havoc Pennington <hp@pobox.com>
726 * bus/driver.c (bus_driver_handle_hello): check limits and
727 return an error if they are exceeded.
729 * bus/connection.c: maintain separate lists of active and inactive
730 connections, and a count of each. Maintain count of completed
731 connections per user. Implement code to check connection limits.
733 * dbus/dbus-list.c (_dbus_list_unlink): export
735 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
736 number of bytes in the message queue for a connection
738 2003-04-18 Havoc Pennington <hp@pobox.com>
740 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
742 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
745 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
746 on realloc be sure to update the pointer in the keyring
748 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
749 offset to avoid writing to unallocated memory
751 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
752 try the next mechanism, so we properly handle OOM
754 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
756 (_dbus_keyring_new): fix OOM bug
757 (_dbus_keyring_new_homedir): always set error; impose a maximum
758 number of keys we'll load from the file, mostly to speed up the
759 test suite and make its OOM checks more useful, but also for
762 * dbus/dbus-auth.c (process_error_server): reject authentication
763 if we get an error from the client
764 (process_cancel): on cancel, send REJECTED, per the spec
765 (process_error_client): send CANCEL if we get an error from the
768 2003-04-18 Havoc Pennington <hp@pobox.com>
770 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
773 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
776 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
777 about DBUS_TEST_HOMEDIR once
779 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
782 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
783 config file so we test the right thing
785 Throughout: assorted docs improvements
787 2003-04-18 Havoc Pennington <hp@pobox.com>
789 * glib/dbus-gmain.c: adapt to watch changes
791 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
793 * dbus/dbus-server.h: remove dbus_server_handle_watch
795 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
797 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
798 like DBusTimeout, so we don't need dbus_connection_handle_watch
801 2003-04-17 Havoc Pennington <hp@redhat.com>
803 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
804 database usage so it all goes via the DBusUserDatabase cache.
806 2003-04-17 Havoc Pennington <hp@redhat.com>
808 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
809 there was an OOM watch we skipped, we always return TRUE so we
810 iterate again to have a look at it again. Fixes test suite hang.
811 Code rearrangement also lets us lose some memset and only iterate
814 * bus/driver.c (bus_driver_handle_message): sense of test for
817 2003-04-16 Havoc Pennington <hp@pobox.com>
819 * doc/dbus-specification.sgml: make spec say serials are unsigned
821 * dbus/dbus-message.h: change message serials to unsigned
823 * dbus/dbus-connection.c: adapt to message serials being unsigned
825 2003-04-15 Havoc Pennington <hp@pobox.com>
827 * bus/bus.c: create and keep around a shared DBusUserDatabase
830 * bus/connection.c (bus_connection_get_groups): don't cache
831 groups for user in the connection object, since user database
832 object now does that.
834 2003-04-16 Havoc Pennington <hp@redhat.com>
836 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
837 list of size counters
838 (_dbus_message_loader_putback_message_link): put back a popped link
840 * dbus/dbus-connection.c
841 (dbus_connection_set_max_live_messages_size): rename
843 (dbus_connection_get_outgoing_size): get size of outgoing
845 (_dbus_connection_set_connection_counter): remove this cruft
847 2003-04-14 Havoc Pennington <hp@redhat.com>
849 * dbus/dbus-userdb.c: user database abstraction, mostly to get
850 caching, but at some point we might want to be able to use a
853 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
854 SHA1 conf file to test the sha1 auth mechanism, since the regular
855 test always uses EXTERNAL when available.
858 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
859 add conf file that requires use of sha1 auth
861 2003-04-13 Havoc Pennington <hp@pobox.com>
863 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
864 from Philip Blundell to send messages and monitor them.
866 2003-04-13 Havoc Pennington <hp@pobox.com>
868 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
871 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
874 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
875 fix to only recover unused bytes if we're already authenticated
876 (_dbus_transport_get_is_authenticated): fix to still mark us
877 authenticated if there are unused bytes.
879 * bus/dispatch.c: implement security policy checking
881 * bus/connection.c (bus_transaction_send_from_driver): new
883 * bus/bus.c (bus_context_check_security_policy): new
885 * bus/dispatch.c (send_service_nonexistent_error): delete this,
886 now we just set the DBusError and it gets converted to an error
889 * bus/connection.c (allow_user_function): enable code using actual
890 data from the config file
892 * bus/policy.c (list_allows_user): handle wildcard rules for
893 user/group connection perms
895 2003-04-13 Havoc Pennington <hp@pobox.com>
897 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
899 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
901 * bus/policy.c (bus_policy_append_mandatory_rule)
902 (bus_policy_append_default_rule, bus_policy_append_user_rule)
903 (bus_policy_append_group_rule): new functions
905 2003-04-12 Havoc Pennington <hp@pobox.com>
907 * bus/config-parser.c (bus_config_parser_new): fix a memleak
909 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
910 the pid/gid/uid, just for paranoia.
912 * test/break-loader.c (randomly_do_n_things): find a byte
913 containing a type code, and randomly change it to a different
916 2003-04-12 Havoc Pennington <hp@pobox.com>
918 * bus/policy.h: change BusPolicy to be the thing from the config
919 file, and rename old BusPolicy to BusClientPolicy
921 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
922 match change in how policy works
924 * dbus/dbus-internals.h: mark assert_not_reached as
925 __attribute((noreturn))__
927 2003-04-11 Havoc Pennington <hp@redhat.com>
929 * doc/dbus-specification.sgml: fix a spot with the wrong name for
930 the broadcast service. Use boolean return for ServiceExists.
932 2003-04-11 Havoc Pennington <hp@redhat.com>
934 * configure.in: add another directory to look for qt in.
936 2003-04-11 Havoc Pennington <hp@redhat.com>
938 * AUTHORS: add Colin Walters
940 2003-04-11 Havoc Pennington <hp@redhat.com>
946 2003-04-11 Havoc Pennington <hp@redhat.com>
948 * bus/messagebus.in: remove pid file when stopping the
949 message bus, since the bus won't have privileges to remove it
952 2003-04-11 Havoc Pennington <hp@redhat.com>
954 * bus/bus.c (bus_context_new): move credentials change after
957 2003-04-11 Havoc Pennington <hp@pobox.com>
959 * test/decode-gcov.c: add "below average functions" to the
960 coverage report, and change how some of the code works.
962 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
963 not in the coverage stats.
965 * test/test-service.c (main): use _dbus_verbose not fprintf in a
966 couple places so running the test suite doesn't result in megaspam.
968 2003-04-11 Havoc Pennington <hp@pobox.com>
970 * bus/dispatch.c (check_existent_service_activation): accept a no
971 memory error in a place we didn't before
973 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
974 in case the first one failed," since the test suite is less
977 2003-04-10 Havoc Pennington <hp@pobox.com>
979 * bus/dispatch.c (check_segfault_service_activation): add test
980 for launching an executable that just crashes.
982 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
983 don't leave a million cores. We'll see how portable this is.
985 2003-04-10 Havoc Pennington <hp@pobox.com>
987 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
988 the possible parent failures before we fork, so that we don't
989 fail to create a babysitter after creating the child.
991 * bus/activation.c (bus_activation_activate_service): kill child
992 if we don't successfully complete the activation.
994 2003-04-10 Havoc Pennington <hp@redhat.com>
996 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
997 the connection if it's disconnected
999 * bus/activation.c (bus_activation_service_created): use new
1000 transaction features to roll back removal of pending activation if
1001 we don't successfully create the service after all. Don't remove
1002 pending activation if the function fails.
1004 * dbus/dbus-list.c (_dbus_list_insert_before_link)
1005 (_dbus_list_insert_after_link): new code to facilitate
1008 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1009 new functionality, so we can preallocate the ability to insert
1012 * bus/connection.c (bus_transaction_add_cancel_hook): new function
1013 allowing us to put custom hooks in a transaction to be used for
1014 cancelling said transaction
1016 * doc/dbus-specification.sgml: add some discussion of secondary
1017 service owners, and disallow zero-length service names
1019 * bus/services.c (bus_registry_acquire_service): new function,
1020 splits out part of bus_driver_handle_acquire_service() and fixes
1021 a bug where we didn't remove the service doing the acquiring
1022 from the secondary queue if we failed to remove the current owner
1023 from the front of the queue.
1025 2003-04-10 Alexander Larsson <alexl@redhat.com>
1027 * doc/dbus-specification.sgml:
1028 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1030 2003-04-10 Alexander Larsson <alexl@redhat.com>
1035 Added files to cvsignore
1037 * dbus/dbus-message.h:
1038 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1039 Make get_named() take two out argument and return a boolean.
1040 (dbus_message_iter_get_args_valist):
1041 Update usage of get_named().
1042 (dbus_message_iter_append_byte):
1044 (dbus_message_iter_append_named)
1046 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1049 2003-04-10 Alexander Larsson <alexl@redhat.com>
1051 * dbus/dbus-marshal.[ch]:
1052 Add array_type_pos argument to _dbus_marshal_validate_arg.
1053 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1055 * dbus/dbus-message.[ch]:
1056 Multi-dimensional arrays have full type specification in the
1057 outermost array. Iter code re-arranged to handle this.
1058 Added some more iter tests.
1060 * doc/dbus-specification.sgml:
1063 Update new array encoding description.
1064 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1066 * test/data/invalid-messages/array-with-mixed-types.message:
1067 * test/data/valid-messages/array-of-array-of-uint32.message:
1068 Change to the new array format.
1070 * test/data/invalid-messages/too-short-dict.message:
1073 * test/data/valid-messages/recursive-types.message:
1074 Fix up and extend test.
1076 2003-04-10 Havoc Pennington <hp@pobox.com>
1078 * bus/dispatch.c: lots of fixes
1080 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1081 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1082 that was crack, broke the test service.
1084 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1085 handling to avoid piling up errors if we get a failure on the
1088 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1089 pid in assertion failures.
1091 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1092 to some fixed size of file descriptor array. Don't return TRUE
1093 anytime a timeout exists, that led to lots of busy loop silliness
1096 2003-04-09 Havoc Pennington <hp@redhat.com>
1098 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1099 I'd checked this in earlier but hadn't.
1101 2003-04-09 Havoc Pennington <hp@redhat.com>
1103 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1104 the activation test (man this is getting old!)
1106 2003-04-09 Havoc Pennington <hp@redhat.com>
1108 * test/test-utils.c: use dispatch status function to fix this up
1110 * bus/connection.c (connection_watch_callback): don't dispatch
1112 (connection_timeout_callback): don't dispatch from here
1113 (bus_connections_setup_connection): set the dispatch status function
1114 (bus_connection_disconnected): unset it
1116 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1117 used to add a connection to be dispatched
1118 (_dbus_loop_iterate): do the dispatching at the end of each
1121 * dbus/dbus-connection.c
1122 (dbus_connection_set_dispatch_status_function): new function
1123 allowing us to fix up main loop usage
1124 (_dbus_connection_last_unref): free all the various function
1126 (dbus_connection_dispatch): call the DispatchStatusFunction
1127 whenever this function returns
1128 (dbus_connection_handle_watch): call DispatchStatusFunction
1129 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1130 (reply_handler_timeout): call DispatchStatusFunction
1131 (dbus_connection_flush): call DispatchStatusFunction
1133 2003-04-09 Havoc Pennington <hp@redhat.com>
1135 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1138 * bus/dispatch.c (check_service_activated): fix bug in test
1140 * dbus/dbus-mainloop.c (check_timeout): fix this up
1142 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1143 verbose output so we can sort out output from different processes,
1144 e.g. in the activation case.
1146 2003-04-08 Colin Walters <walters@gnu.org>
1148 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1150 (bus_context_new): Set it.
1151 (bus_context_unref): Use it to delete the pid file.
1153 2003-04-08 Havoc Pennington <hp@redhat.com>
1155 * test/data/invalid-messages/array-with-mixed-types.message:
1156 regression test that fails for the moment
1158 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1159 tests for convenience
1161 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1162 array of nil, it broke things.
1164 * test/data/invalid-messages/array-of-nil.message: regression test
1166 * test/data/valid-messages/array-of-array-of-uint32.message:
1167 happened to write this so added it to suite
1169 2003-04-08 Havoc Pennington <hp@redhat.com>
1171 * bus/driver.c (bus_driver_handle_acquire_service): init
1172 retval/reply before checking name
1174 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1175 recursion depth argument
1177 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1178 in the public struct for future extension
1180 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1183 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1186 * doc/dbus-specification.sgml: fix typo
1188 2003-04-08 Alexander Larsson <alexl@redhat.com>
1190 Implemented recursive types, named types and new-style iters
1193 * glib/test-thread-client.c: (thread_func):
1194 * glib/test-thread-server.c: (handle_test_message):
1195 * test/test-service.c: (handle_echo):
1204 * dbus/dbus-internals.c: (_dbus_type_to_string):
1205 Update for new types.
1207 * dbus/dbus-marshal.[ch]:
1208 Implement recursive types and the new marshalling format.
1209 Remove hardcoded dict marshalling.
1210 Marshal named types.
1212 * dbus/dbus-message-builder.c:
1214 Remove references to old types
1216 * dbus/dbus-message.[ch]:
1217 New non-refcounted iter API that supports recursive iters.
1218 Use iters for appending, including support for recursive
1220 Add byte and named type support.
1221 Update everything to new marshalling formats.
1222 Add tests for new API.
1224 * dbus/dbus-protocol.h:
1225 Remove old array types.
1226 Add types: BYTE, ARRAY, DICT, NAMED
1228 * dbus/dbus-string.c:
1229 * dbus/dbus-sysdeps.c:
1230 Make parse_double locale safe.
1232 * dbus/dbus-test-main.c:
1238 * doc/dbus-specification.sgml:
1241 * test/data/incomplete-messages/missing-body.message:
1242 * test/data/invalid-messages/bad-boolean.message:
1243 * test/data/invalid-messages/bad-boolean-array.message:
1244 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1245 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1246 * test/data/invalid-messages/too-short-dict.message:
1247 * test/data/valid-messages/dict-simple.message:
1248 * test/data/valid-messages/dict.message:
1249 * test/data/valid-messages/emptiness.message:
1250 * test/data/valid-messages/lots-of-arguments.message:
1251 * test/data/valid-messages/no-padding.message:
1252 * test/data/valid-messages/recursive-types.message:
1253 Add missing NAME fields
1254 Fix up dicts & arrays
1256 * test/data/invalid-messages/dict-with-nil-value.message:
1257 Removed, this is not invalid anymore.
1259 * test/data/valid-messages/recursive-types.message:
1260 Add new test for deeply recursive types.
1262 2003-04-07 Havoc Pennington <hp@pobox.com>
1264 * bus/driver.c (bus_driver_handle_acquire_service): return an
1265 error if you try to acquire a service that starts with ':'
1267 2003-04-07 Havoc Pennington <hp@redhat.com>
1269 * doc/dbus-specification.sgml: require that base service names
1270 start with ':' and that the base service is created/deleted
1271 as first and last things a connection does on the bus
1273 * bus/dispatch.c (check_existent_service_activation): lots more
1274 work on the activation test; it doesn't fully pass yet...
1276 * test/test-service.c (main): fix so we don't memleak the
1277 connection to the message bus
1278 (filter_func): accept a message asking us to exit
1280 2003-04-06 Havoc Pennington <hp@pobox.com>
1282 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1285 * configure.in: fixes to Qt detection from Colin Walters
1287 * doc/Makefile.am: Only remove generated docbook dirs if they
1288 exist, from Colin Walters
1290 * dbus/dbus-bus.c: change how we set well-known connections to
1291 NULL, so that it works if a single connection is stored in
1292 two well-known array slots.
1294 * test/Makefile.am: remove a lot of stuff that isn't immediately
1295 useful, it's in CVS history if we want it.
1297 * test/test-service.c: use dbus-mainloop instead of that
1300 2003-04-06 Havoc Pennington <hp@pobox.com>
1302 * dbus/Makefile.am: split lists of sources into stuff that goes in
1303 the library, util functions that go in the lib and are also used
1304 elsewhere, and util functions that are used in tests/daemon but
1305 don't go in the lib.
1307 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1308 here so it can be used in test binaries also
1310 2003-04-06 Havoc Pennington <hp@pobox.com>
1312 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1313 here in the parent process, so we can return an error if it
1314 fails. Also, move some of the code into the child so the parent
1315 is less hosed if we fail midway through.
1317 * bus/bus.c (bus_context_new): move pidfile detection further up
1318 in the function, before we start overwriting sockets and such.
1320 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1322 * configure.in: add --with-system-pid-file and --with-system-socket
1324 2003-04-06 Colin Walters <walters@verbum.org>
1326 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1328 * bus/system.conf.in: Declare a pidfile.
1330 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1331 create one (if appropriate).
1333 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1334 (struct BusConfigParser) [pidfile]: New.
1335 (element_type_to_name, merge_included, start_busconfig_child)
1336 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1337 (bus_config_parser_unref): Free it.
1338 (bus_config_parser_get_pidfile): New function.
1340 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1342 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1344 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1346 * dbus/dbus-sysdeps.h: Prototype it.
1348 2003-04-06 Havoc Pennington <hp@pobox.com>
1350 * bus/bus.c (bus_context_new): print the address in here, rather
1351 than in main(), because we need to do it before forking the daemon
1353 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1354 on the service nonexistent error
1356 * bus/driver.c (bus_driver_handle_acquire_service): set the
1357 sender on the AcquireService reply
1359 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1360 server also listen on a UNIX socket so services can connect to it.
1362 2003-04-06 Havoc Pennington <hp@pobox.com>
1364 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1365 so it detects deadlocks and also we actually init threads when
1368 2003-04-06 Havoc Pennington <hp@pobox.com>
1370 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1371 save the domain socket name, and unlink it when we disconnect the
1372 server. Means that at least when we exit normally, we won't leave
1373 a bunch of junk in /tmp
1375 * dbus/dbus-transport-unix.c
1376 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1377 memory management). (I was making a real change here but then
1380 2003-04-06 Havoc Pennington <hp@pobox.com>
1382 * bus/bus.c (bus_context_new): fix wrong handling of
1383 server_data_slot_unref() in the error case.
1385 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1386 "(condition) != 0" to _dbus_real_assert so that
1387 "_dbus_assert (pointer)" doesn't cause a warning
1389 * bus/main.c (main): accept --print-address option to print out
1390 the message bus address
1392 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1394 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1395 "tmpdir" option to unix: address on client side
1397 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1400 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1401 we can use to create sockets in the test suite.
1403 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1404 cleanly. To be used for testing.
1406 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1408 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1410 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1411 handle trying to call this when there's no servers active
1413 2003-04-05 Havoc Pennington <hp@pobox.com>
1419 2003-04-05 Havoc Pennington <hp@pobox.com>
1421 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1422 crash on startup. Need to get "try starting the daemon"
1423 in the test suite I guess. ;-)
1425 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1426 tracked the number of open connections; it's better done in
1427 application-specific code as you want it to span all servers etc.
1429 2003-04-05 Havoc Pennington <hp@pobox.com>
1431 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1432 patch from Colin Walters
1434 2003-04-05 Havoc Pennington <hp@pobox.com>
1436 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1437 reality; in fact multiple mechanisms are allowed.
1439 * dbus/dbus-internals.c (_dbus_real_assert)
1440 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1441 _dbus_assert_not_reached() into functions, so that they don't show
1442 up in basic block counts for test coverage, and don't use up as
1443 much disk space. Does mean slower execution speed though, so
1444 assumes --disable-asserts is the normal production case.
1446 2003-04-05 Havoc Pennington <hp@pobox.com>
1448 * test/Makefile.am (dist-hook): also dist *.in files
1454 2003-04-05 Havoc Pennington <hp@pobox.com>
1456 * dbus/dbus-string.c: docs warning
1458 * dbus/dbus-spawn.c: missing docs
1460 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1462 2003-04-05 Havoc Pennington <hp@pobox.com>
1464 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1467 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1468 to -1 once we've reaped the babysitter
1469 (_dbus_babysitter_handle_watch): do as much work as we can, not
1472 * bus/activation.c: add code using DBusBabysitter so that we
1473 handle it when a service fails to start up properly.
1474 (bus_activation_service_created): don't remove the activation
1475 entries as we go, just let them get removed when we free the pending
1476 activation. Unref reply messages after sending them.
1478 2003-04-05 Havoc Pennington <hp@pobox.com>
1480 * test/decode-gcov.c (main): print per-directory stats in the report
1482 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1484 2003-04-05 Havoc Pennington <hp@pobox.com>
1486 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1488 * test/decode-gcov.c: hack up a little program to suck data
1489 out of gcov files. Yes this is sort of silly.
1491 * configure.in: define something in config.h and do an
1492 AM_CONDITIONAL when gcov is enabled
1494 2003-04-04 Havoc Pennington <hp@redhat.com>
1496 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1497 return a "babysitter" object that is used to monitor the status of
1498 the spawned process and reap it when required.
1500 * test/test-segfault.c, test/test-exit.c,
1501 test/test-sleep-forever.c: binaries that do various lame things,
1502 used in the test suite.
1504 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1506 2003-04-03 Havoc Pennington <hp@pobox.com>
1508 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1509 in preparation for modifying it, dbus-sysdeps is getting
1512 2003-04-03 Havoc Pennington <hp@redhat.com>
1514 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1517 * bus/*.[hc]: adapt to mainloop change
1519 2003-04-03 Havoc Pennington <hp@redhat.com>
1521 * bus/activation.c (load_directory): fix up memleaks
1522 (bus_activation_entry_free): free the entry
1524 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1525 we get one from the message bus; fix memleaks.
1527 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1529 2003-04-03 Havoc Pennington <hp@pobox.com>
1531 * bus/config-parser.c (bus_config_parser_unref): free
1532 list of mechanisms, bug discovered by test suite enhancements
1533 (putting system.conf and session.conf into suite)
1535 * test/Makefile.am, test/test-service.c: add placeholder for a
1536 test service that we'll activate as part of test suite. Doesn't
1539 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1540 setting NULL value, and use system malloc not dbus_malloc()
1541 when we have unavoidable memleakage.
1543 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1544 didn't work, and support DBUS_BUS_ACTIVATION.
1546 * bus/activation.c (child_setup): pass our well-known bus type to
1549 * bus/config-parser.c: support <type> to specify well-known type
1551 * doc/dbus-specification.sgml: document the env variables to
1552 locate well-known buses and find service activator
1554 2003-04-02 Havoc Pennington <hp@redhat.com>
1556 * test/Makefile.am (all-local): add a rule to copy tests to
1557 builddir, so we can have generated tests. Use this to remove the
1558 silly hack for testing system.conf and session.conf. Will use this
1559 shortly to generate .service files pointing to test binaries.
1561 2003-04-02 Havoc Pennington <hp@redhat.com>
1563 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1564 current alloc and needed new length, not max of the doubled
1565 allocation and needed new length. Also, when building tests,
1566 don't do the double-allocation stuff, just realloc every time.
1568 2003-04-02 Havoc Pennington <hp@redhat.com>
1570 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1572 (_dbus_string_get_dirname): new
1573 (_dbus_sysdeps_test): new
1574 (_dbus_directory_open): include dirnames in error messages
1576 * bus/config-parser.c: interpret <include> and <includedir> and
1577 <servicedir> relative to config file location if the given
1578 filename is not absolute.
1580 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1582 2003-04-02 Havoc Pennington <hp@redhat.com>
1584 * bus/connection.c (bus_transaction_send_error_reply): set sender
1585 service for the error, and unref the reply on success
1587 * bus/activation.c: convert to use BusTransaction so OOM can be
1589 (bus_activation_service_created): set sender of the message
1591 2003-04-01 Havoc Pennington <hp@redhat.com>
1593 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1594 <includedir> (at least mostly)
1596 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1597 first, then the user ID
1599 2003-04-01 Havoc Pennington <hp@pobox.com>
1601 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1604 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1606 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1608 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1609 socket 0777, and unlink any existing socket.
1611 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1612 the configuration file so specifies; set up auth mechanism
1615 * bus/config-parser.c (bus_config_parser_content): add support
1616 for <fork> option and fill in code for <auth>
1618 * bus/system.conf.in: add <fork/> to default configuration,
1619 and limit auth mechanisms to EXTERNAL
1621 * doc/config-file.txt (Elements): add <fork>
1623 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1624 (_dbus_change_identity): new function
1626 2003-03-31 Havoc Pennington <hp@redhat.com>
1628 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1629 (_dbus_listen_unix_socket): fix off-by-one error in null
1630 termination spotted by Nalin
1632 2003-03-31 Havoc Pennington <hp@redhat.com>
1634 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1635 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1636 having a real home directory available.
1638 2003-03-31 Havoc Pennington <hp@redhat.com>
1640 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1642 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1644 * configure.in: add support for specifying a style of init script
1647 2003-03-31 Havoc Pennington <hp@redhat.com>
1649 Fix some annoying DBusString API and fix all affected code.
1651 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1653 (_dbus_string_get_data): change to return string instead of using
1655 (_dbus_string_get_const_data): ditto
1656 (_dbus_string_get_data_len): ditto
1657 (_dbus_string_get_const_data_len): ditto
1659 2003-03-31 Havoc Pennington <hp@redhat.com>
1661 * bus/main.c (main): fix up the command line arguments to be nicer
1663 2003-03-31 Havoc Pennington <hp@redhat.com>
1665 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1666 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1667 final location that lands in the config file
1669 * bus/config-loader-expat.c (bus_config_load): fix type of
1672 * doc/TODO: remove TODO item for dbus_bus_get()
1674 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1676 2003-03-31 Havoc Pennington <hp@pobox.com>
1678 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1679 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1680 argument since they are always client side
1682 * dbus/dbus-server.c (dbus_server_get_address): new function
1684 * bus/main.c (main): take the configuration file as an argument.
1686 * test/data/valid-config-files/debug-allow-all.conf: new file to
1687 use with dispatch.c tests for example
1689 * bus/test-main.c (main): require test data dir
1691 * bus/bus.c (bus_context_new): change this to take a
1692 configuration file name as argument
1694 * doc/config-file.txt (Elements): add <servicedir>
1696 * bus/system.conf, bus/session.conf: new files
1698 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1699 well-known socket if none set
1701 * configure.in: create system.conf and session.conf
1703 2003-03-30 Havoc Pennington <hp@pobox.com>
1705 * bus/config-parser.c: hacking
1707 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1708 to shut down, since it could cause weirdness with the DBusList
1711 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1712 link-oriented stack routines
1713 (alloc_link): free the mempool if the first alloc from it fails
1715 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1717 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1719 (_dbus_string_skip_white): new
1721 * doc/config-file.txt (Elements): add <includedir>
1723 2003-03-28 Havoc Pennington <hp@pobox.com>
1725 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1726 (_dbus_string_copy_data): new functions
1728 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1730 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1734 * dbus/dbus-memory.c:
1737 2003-03-28 Havoc Pennington <hp@pobox.com>
1739 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1740 I think it may have just been superstition. Not sure.
1742 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1743 failures that were not being handled.
1745 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1747 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1748 row that will fail on out-of-memory.
1750 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1751 function for testing out-of-memory handling.
1753 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1754 allocation functions, they do map exactly to the expat ones.
1756 2003-03-27 Havoc Pennington <hp@redhat.com>
1758 * bus/config-loader-libxml.c (bus_config_load): add another error
1761 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1764 Add note about automatic service activation.
1766 * doc/dbus-specification.sgml:
1767 Rename the specification and clarify a few things.
1769 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1772 * dbus/dbus-address.c:
1774 * dbus/dbus-marshal.c:
1775 * dbus/dbus-server-debug-pipe.c:
1776 * dbus/dbus-transport-unix.c:
1777 Fix documentation warnings.
1779 2003-03-26 Havoc Pennington <hp@pobox.com>
1781 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1782 after every test so it's quick and easy to see which leaked, and
1783 so we test multiple dbus_shutdown() calls
1785 * configure.in: change configure.in XML stuff to also support
1788 * config-loader-libxml.c: some hacking
1790 * config-loader-expat.c: some hacking
1792 * config-parser.c: some hacking, plus tests
1794 2003-03-25 Havoc Pennington <hp@redhat.com>
1796 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1798 * configure.in: add --with-xml option to specify XML library,
1799 right now only libxml is supported.
1801 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1802 nonworking code between home and work, still just stubs
1804 2003-03-24 Havoc Pennington <hp@redhat.com>
1806 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1809 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1810 NULL argument for "message" if the error is a well-known one,
1811 fill in a generic message in this case.
1813 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1816 * bus/test.c (bus_test_flush_bus): add
1818 * bus/policy.c (bus_policy_test): test code stub
1820 2003-03-24 Havoc Pennington <hp@pobox.com>
1822 * bus/connection.c (bus_connections_setup_connection): set up
1823 the "can this user connect" function, but it always returns
1824 TRUE until we have a config file parser so we can have a config
1825 file that allows connections.
1827 2003-03-23 Havoc Pennington <hp@pobox.com>
1829 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1830 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1831 the mutex, so we can check for proper memory management
1834 * dbus/dbus-dataslot.c: remove the mutex from
1835 DBusDataSlotAllocator and lock it manually when using it,
1836 to simplify fitting it into the global slots framework.
1838 * dbus/dbus-threads.c (init_static_locks): rework how we're
1839 handling global locks so they are easily shut down.
1841 * bus/policy.c (bus_policy_append_rule): fix
1843 * bus/test-main.c (main): check for memleaks
1845 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1846 test suite check for memleaks
1848 * dbus/dbus-memory.c: add support in test mode for tracking
1849 number of outstanding blocks
1851 2003-03-23 Havoc Pennington <hp@pobox.com>
1853 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1856 * dbus/dbus-hash.h: add ULONG hash keys
1858 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1859 (_dbus_get_group_id): new function
1861 2003-03-20 Havoc Pennington <hp@redhat.com>
1863 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1865 (dbus_connection_get_unix_user): new function
1867 2003-03-20 Havoc Pennington <hp@pobox.com>
1869 * bus/connection.c (bus_connection_send_oom_error): assert that
1870 message has a sender
1871 (connection_execute_transaction): ditto
1872 (bus_connection_preallocate_oom_error): fix to set the sender, and
1873 set recipient to the destination service, not the bus driver
1875 * bus/policy.c: hacking
1877 * dbus/dbus-message.c (dbus_message_service_is): new function
1878 (dbus_message_sender_is): new
1880 2003-03-19 Havoc Pennington <hp@redhat.com>
1882 * bus/policy.c: start sketching code for policy restrictions on
1883 what connections can do.
1885 2003-03-18 Havoc Pennington <hp@redhat.com>
1887 * doc/TODO: some notes on high-level todo items. Little nitpick
1888 stuff is all in @todo, so no need to add it here.
1890 * doc/config-file.txt: some notes on how config file might look
1892 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1898 2003-03-17 Havoc Pennington <hp@redhat.com>
1900 * dbus/dbus-internals.h: add gcc attributes so that
1901 our printf-style functions warn on bad arguments to
1904 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1907 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1910 2003-03-17 Havoc Pennington <hp@redhat.com>
1912 * bus/test-main.c (main): make it print something as it runs
1913 so make check doesn't look stuck
1915 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1916 from CVS, now obsolete
1918 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1920 * bus/dispatch.c: (bus_dispatch):
1921 Refetch the service name since it may have been reallocated
1922 when dbus_message_set_sender was called.
1924 * dbus/dbus-sysdeps.c: (_dbus_accept):
1925 Add address and address length variables and use them to stop
1926 valgrind from complaining.
1928 2003-03-17 Havoc Pennington <hp@pobox.com>
1930 All tests pass, no memleaks, no valgrind complaints.
1932 * bus/test.c: refcount handler_slot
1934 * bus/connection.c (bus_connections_new): refcount
1935 connection_data_slot
1937 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1938 bytes so that auth scripts pass.
1940 * bus/dispatch.c: init message_handler_slot so it gets allocated
1943 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1945 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1946 dealloc server_pipe_hash when no longer used for benefit of
1949 * dbus/dbus-auth.c (process_command): memleak fix
1951 * bus/dispatch.c (check_hello_message): memleak fix
1953 2003-03-16 Havoc Pennington <hp@pobox.com>
1955 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1957 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1959 * bus/activation.c (bus_activation_activate_service): Append
1960 the pending activation entry to the list of pending activations.
1962 2003-03-16 Havoc Pennington <hp@pobox.com>
1964 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1967 * dbus/dbus-address.c (create_entry): fix OOM handling when
1968 failing to alloc entry->method
1970 2003-03-16 Havoc Pennington <hp@pobox.com>
1972 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1975 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1976 add some missing dbus_set_result
1978 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1979 alloc the DBusMessageHandler
1981 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1982 the transport here, since we call this from the finalizer; it
1983 resulted in a double-finalize.
1985 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1986 where we tried to use transport->connection that was NULL,
1987 happened when transport was disconnected early on due to OOM
1989 * bus/*.c: adapt to handle OOM for watches/timeouts
1991 * dbus/dbus-transport-unix.c: port to handle OOM during
1994 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1995 reference to unused bytes instead of a copy
1997 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
2000 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
2003 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2006 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2008 * doc/dbus-specification.sgml:
2009 Document reply message for ActivateService.
2011 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2013 * bus/activation.c: (bus_pending_activation_entry_free),
2014 (bus_pending_activation_free), (bus_activation_new),
2015 (bus_activation_unref), (bus_activation_service_created),
2016 (bus_activation_activate_service):
2018 * bus/bus.c: (bus_context_new):
2019 * bus/desktop-file.c: (new_section):
2020 * bus/driver.c: (bus_driver_send_service_deleted),
2021 (bus_driver_handle_activate_service):
2022 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2024 * dbus/dbus-connection.c:
2025 (dbus_connection_send_with_reply_and_block):
2026 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2027 * dbus/dbus-protocol.h:
2028 Make activation work better. Now pending activations will be queued
2029 and the daemon won't try to activate services that are already registered.
2031 2003-03-16 Havoc Pennington <hp@pobox.com>
2033 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2036 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2037 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2039 2003-03-16 Havoc Pennington <hp@pobox.com>
2041 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2042 this. always run the test suite before commit...
2044 * bus/*: adapt to DBusConnection API changes
2046 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2047 requires renaming stuff to avoid dbus_connection_dispatch name
2050 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2053 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2054 separate from _dbus_message_loader_return_buffer()
2056 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2057 this, because it's now always broken to use; the number of
2058 messages in queue vs. the number still buffered by the message
2059 loader is undefined/meaningless. Should use
2060 dbus_connection_get_dispatch_state().
2061 (dbus_connection_dispatch): rename from
2062 dbus_connection_dispatch_message
2064 2003-03-16 Havoc Pennington <hp@pobox.com>
2066 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2069 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2071 * dbus/dbus-connection.c:
2072 (dbus_connection_send_with_reply_and_block):
2073 Decrease connection->n_incoming when removing an entry
2075 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2076 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2077 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2078 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2079 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2080 (dbus_dict_get_byte_array):
2081 Handle NULL arrays and strings. Also add support for byte arrays.
2083 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2084 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2085 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2086 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2087 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2088 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2089 * dbus/dbus-marshal.h:
2090 Add support for marshalling and demarshalling empty arrays and strings.
2092 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2093 (dbus_message_append_string_array),
2094 (dbus_message_iter_get_boolean),
2095 (dbus_message_iter_get_boolean_array),
2096 (dbus_message_iter_get_int32_array),
2097 (dbus_message_iter_get_uint32_array),
2098 (dbus_message_iter_get_double_array),
2099 (dbus_message_iter_get_byte_array),
2100 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2101 (check_message_handling):
2102 Add support for getting empty arrays and dicts.
2104 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2105 Don't do any validation at all for now, that's better than just checking
2108 * test/data/valid-messages/emptiness.message:
2109 New test message with lots of empty arrays.
2111 2003-03-16 Havoc Pennington <hp@pobox.com>
2113 * dbus/dbus-connection.c
2114 (_dbus_connection_queue_received_message_link): new function that
2115 can't fail due to OOM
2117 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2118 new function pops a message together with a list link
2121 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2122 message queuing functions to avoid needing to alloc memory
2124 2003-03-16 Havoc Pennington <hp@pobox.com>
2126 Oops - test code was only testing failure of around 30 of the
2127 mallocs in the test path, but it turns out there are 500+
2128 mallocs. I believe this was due to misguided linking setup such
2129 that there was one copy of dbus_malloc etc. in the daemon and one
2130 in the shared lib, and only daemon mallocs were tested. In any
2131 case, the test case now tests all 500+ mallocs, and doesn't pass
2132 yet, though there are lots of fixes in this patch.
2134 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2135 this so that it doesn't need to allocate memory, since it
2136 has no way of indicating failure due to OOM (and would be
2137 annoying if it did).
2139 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2141 * bus/Makefile.am: rearrange to create two self-contained
2142 libraries, to avoid having libraries with overlapping symbols.
2143 that was resulting in weirdness, e.g. I'm pretty sure there
2144 were two copies of global static variables.
2146 * dbus/dbus-internals.c: move the malloc debug stuff to
2149 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2152 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2154 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2157 * bus/dispatch.c (bus_dispatch_add_connection): free
2158 message_handler_slot when no longer using it, so
2159 memory leak checkers are happy for the test suite.
2161 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2163 * bus/bus.c (new_connection_callback): disconnect in here if
2164 bus_connections_setup_connection fails.
2166 * bus/connection.c (bus_connections_unref): fix to free the
2168 (bus_connections_setup_connection): if this fails, don't
2169 disconnect the connection, just be sure there are no side
2172 * dbus/dbus-string.c (undo_alignment): unbreak this
2174 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2176 (_dbus_auth_new): fix the order in which we free strings
2179 * bus/connection.c (bus_connection_disconnected): fix to
2180 not send ServiceDeleted multiple times in case of memory
2183 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2184 get the base service name
2185 (dbus_bus_register_client): don't return base service name,
2186 instead store it on the DBusConnection and have an accessor
2188 (dbus_bus_register_client): rename dbus_bus_register()
2190 * bus/dispatch.c (check_hello_message): verify that other
2191 connections on the bus also got the correct results, not
2192 just the one sending hello
2194 2003-03-15 Havoc Pennington <hp@pobox.com>
2196 Make it pass the Hello handling test including all OOM codepaths.
2197 Now to do other messages...
2199 * bus/services.c (bus_service_remove_owner): fix crash when
2200 removing owner from an empty list of owners
2201 (bus_registry_ensure): don't leave service in the list of
2202 a connection's owned services if we fail to put the service
2205 * bus/connection.c (bus_connection_preallocate_oom_error): set
2206 error flag on the OOM error.
2208 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2209 handle _dbus_transport_set_connection failure
2211 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2212 to create watches up front and simply enable/disable them as
2214 (unix_connection_set): this can now fail on OOM
2216 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2217 of enabling/disabling a watch or timeout.
2219 * bus/loop.c (bus_loop_iterate): don't touch disabled
2222 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2224 2003-03-15 Havoc Pennington <hp@pobox.com>
2226 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2227 write useful test code, after all that futzing around ;-)
2229 Test does not yet pass because we can't handle OOM in
2230 _dbus_transport_messages_pending (basically,
2231 dbus_connection_preallocate_send() does not prealloc the write
2232 watch). To fix this, I think we need to add new stuff to
2233 set_watch_functions, namely a SetEnabled function so we can alloc
2234 the watch earlier, then enable it later.
2236 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2237 dbus-memory.c to the convenience lib
2239 * bus/test.c: rename some static functions to keep them clearly
2240 distinct from stuff in connection.c. Handle client disconnection.
2242 2003-03-14 Havoc Pennington <hp@pobox.com>
2244 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2245 transport, tests more of the real codepath. Set up clients
2246 with bus_setup_debug_client.
2248 * bus/test.c (bus_setup_debug_client): function to set up debug
2249 "clients" on the main loop
2251 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2254 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2257 * dbus/dbus-server-debug.c: support a debug server based on pipes
2259 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2260 (_dbus_close): new function
2262 * configure.in: check for socketpair
2264 2003-03-14 Havoc Pennington <hp@redhat.com>
2266 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2269 * dbus/dbus-transport-debug.c: rework this a good bit to be
2270 less complicated. hopefully still works.
2272 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2275 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2278 * dbus/dbus-message.c (dbus_message_copy): rename from
2279 dbus_message_new_from_message, fix it up to copy
2280 all the message fields, add test case
2282 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2283 not quite passing yet
2285 2003-03-14 Havoc Pennington <hp@pobox.com>
2287 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2288 until no work remains" in test code. (the large diff here
2289 is just code movement, no actual changes)
2291 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2292 1, no point waiting around for test code.
2293 (_dbus_server_debug_accept_transport): unref the timeout
2294 after adding it (right?)
2296 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2298 2003-03-13 Havoc Pennington <hp@redhat.com>
2300 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2303 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2306 * dbus/dbus-connection.h: Make AddWatchFunction and
2307 AddTimeoutFunction return a bool so they can fail on out-of-memory
2309 * bus/bus.c (bus_context_new): set up timeout handlers
2311 * bus/connection.c (bus_connections_setup_connection): set up
2314 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2317 * bus/bus.c (bus_context_new): adapt to changes
2319 * bus/connection.c: adapt to changes
2321 * test/watch.c: adapt to DBusWatch changes
2323 * bus/dispatch.c (bus_dispatch_test): started adding this but
2326 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2328 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2330 2003-03-13 Havoc Pennington <hp@pobox.com>
2332 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2333 set up a test framework as for the library
2335 2003-03-12 Havoc Pennington <hp@pobox.com>
2337 Throughout: purge global variables, introduce BusActivation,
2338 BusConnections, BusRegistry, etc. objects instead.
2340 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2343 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2344 going to redo this a bit differently I think
2346 2003-03-12 Havoc Pennington <hp@redhat.com>
2348 Mega-patch that gets the message bus daemon initially handling
2349 out-of-memory. Work still needed. Also lots of random
2350 moving stuff to DBusError instead of ResultCode.
2352 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2354 * dbus/dbus-connection.c
2355 (dbus_connection_send_with_reply_and_block): use DBusError
2357 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2360 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2361 code here, as the only failure possible is OOM.
2363 * bus/connection.c (bus_connection_disconnect):
2364 rename bus_connection_disconnected as it's a notification only
2366 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2367 "name" on get_args failure, should be done by get_args;
2368 don't disconnect client for bad args, just return an error.
2369 (bus_driver_handle_service_exists): ditto
2371 * bus/services.c (bus_services_list): NULL-terminate returned array
2373 * bus/driver.c (bus_driver_send_service_lost)
2374 (bus_driver_send_service_acquired): send messages from driver to a
2375 specific client to the client's unique name, not to the broadcast
2378 * dbus/dbus-message.c (decode_header_data): reject messages that
2379 contain no name field
2380 (_dbus_message_get_client_serial): rename to
2381 dbus_message_get_serial and make public
2382 (_dbus_message_set_serial): rename from set_client_serial
2383 (_dbus_message_set_reply_serial): make public
2384 (_dbus_message_get_reply_serial): make public
2386 * bus/connection.c (bus_connection_foreach): allow stopping
2387 iteration by returning FALSE from foreach function.
2389 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2390 (dbus_connection_free_preallocated_send)
2391 (dbus_connection_preallocate_send): new API for sending a message
2392 without possibility of malloc failure.
2393 (dbus_connection_send_message): rename to just
2394 dbus_connection_send (and same for whole function family)
2396 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2398 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2400 * bus/activation.c: handle/return errors
2402 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2404 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2405 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2406 (_dbus_result_from_errno): move to this file
2408 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2410 * dbus/dbus-marshal.c:
2411 (_dbus_marshal_set_string):
2412 Take a length argument so we can marshal the correct string
2415 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2416 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2417 (_dbus_marshal_test):
2418 * dbus/dbus-marshal.h:
2419 Add support for marshalling and demarshalling dicts.
2421 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2422 Add support for TYPE DICT.
2424 * dbus/dbus-message.c: (set_string_field):
2425 Adjust header padding.
2427 (dbus_message_append_args_valist), (dbus_message_append_dict),
2428 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2429 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2430 (check_message_handling), (check_have_valid_message):
2431 * dbus/dbus-message.h:
2432 Add functions for setting and getting dicts.
2434 * dbus/dbus-protocol.h:
2440 * doc/dbus-specification.sgml:
2441 Add information about how dicts are marshalled.
2443 * test/data/invalid-messages/dict-with-nil-value.message:
2444 * test/data/invalid-messages/too-short-dict.message:
2445 * test/data/valid-messages/dict-simple.message:
2446 * test/data/valid-messages/dict.message:
2447 Add sample messages containing dicts.
2449 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2451 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2453 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2456 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2457 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2458 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2459 (dbus_dict_set_double), (dbus_dict_set_string),
2460 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2461 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2462 (dbus_dict_set_string_array), (_dbus_dict_test):
2464 Fix according to comments from Havoc.
2466 2003-03-06 Michael Meeks <michael@server.home>
2468 * configure.in: if we don't have kde-config, disable have_qt.
2470 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2475 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2476 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2477 (dbus_dict_remove), (dbus_dict_get_value_type),
2478 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2479 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2480 (dbus_dict_put_double), (dbus_dict_put_string),
2481 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2482 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2483 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2484 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2485 (dbus_dict_get_double), (dbus_dict_get_string),
2486 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2487 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2488 (dbus_dict_get_string_array), (_dbus_dict_test):
2490 Add DBusDict implementation
2492 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2496 2003-03-04 Havoc Pennington <hp@pobox.com>
2498 * test/data/auth/*: adapt to changes
2500 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2501 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2504 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2505 more stuff from being in a context name, to make the protocol
2506 simpler to deal with
2508 * dbus/dbus-errors.c (dbus_error_has_name): new function
2509 (dbus_error_is_set): new function
2511 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2512 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2514 * dbus/dbus-connection.c (dbus_connection_flush): also read
2515 messages during a flush operation
2517 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2519 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2521 * configure.in: Check for gethostbyname on Solaris.
2523 * dbus/dbus-transport.c: (_dbus_transport_open):
2524 Remove duplicate "tcp" entry.
2526 * doc/dbus-specification.sgml:
2527 Clarify some things.
2529 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2531 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2532 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2533 (_dbus_keyring_test):
2534 * dbus/dbus-md5.c: (_dbus_md5_compute):
2535 * dbus/dbus-sha.c: (_dbus_sha_compute):
2538 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2540 * README: Add some things.
2542 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2544 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2545 after case DBUS_TYPE_BOOELAN.
2547 2003-03-02 Havoc Pennington <hp@pobox.com>
2549 * test/break-loader.c (randomly_set_extreme_ints): add test that
2550 sets really huge and small integers
2552 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2553 that length of boolean array fits in the string, and that
2554 string has room for boolean value in single-bool case.
2556 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2557 optional value to "ALIGN" command which is what to fill the
2560 * test/data/valid-messages/no-padding.message: add regression
2561 test for the message padding problem
2563 2003-03-02 Havoc Pennington <hp@pobox.com>
2565 * dbus/dbus-message.c (decode_header_data): fix to always init
2566 message_padding, from Benjamin Dauvergne
2568 2003-03-02 Havoc Pennington <hp@pobox.com>
2574 2003-03-01 Joe Shaw <joe@assbarn.com>
2576 * configure.in: Check for "struct cmsgcred" and try to access its
2577 members for BSD-like unices.
2579 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2580 _dbus_read_credentials_unix_socket().
2581 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2582 read() for reading the credential byte off the unix socket. Use
2583 struct cmsgcred on systems that support it.
2585 2003-02-27 Alexander Larsson <alexl@redhat.com>
2589 Make gthreads-2.0 dependency optional. Don't build thread test if
2592 2003-02-27 Havoc Pennington <hp@pobox.com>
2594 * dbus/dbus-connection.c
2595 (dbus_connection_send_message_with_reply_and_block): fix doh!
2596 doh! doh! bug that resulted in never removing a reply from the
2597 queue, no wonder we called get_reply_serial so much ;-)
2599 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2600 and client serial instead of demarshaling them every time
2602 2003-02-27 Havoc Pennington <hp@pobox.com>
2604 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2605 more inlined, using dbus-string-private.h, speeds things up
2608 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2609 when freeing the string
2610 (_dbus_string_steal_data): fix for align offset
2611 (undo_alignment): new function
2613 2003-02-26 Havoc Pennington <hp@redhat.com>
2615 All kinds of audit fixes from Owen, plus initial attempt to
2616 handle unaligned memory returned from malloc.
2618 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2619 leave room for align_offset and nul byte
2620 (fixup_alignment): function to track an align_offset and
2621 ensure real->str is aligned
2622 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2623 to allow a nul byte plus align offset
2624 (_dbus_string_lock): fix overflow issue
2625 (_dbus_string_init_const_len): add assertions on sanity of len,
2626 assign allocated to be ALLOCATION_PADDING larger than len
2627 (set_length): fixup the overflow handling
2628 (_dbus_string_get_data_len): fix overflow in assertion
2629 (open_gap): detect overflow in size of gap to be opened
2630 (_dbus_string_lengthen): add overflow check
2631 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2632 (_dbus_string_append): add overflow check
2633 (_dbus_string_append_unichar): overflow
2634 (_dbus_string_delete): fix overflow in assertion
2635 (_dbus_string_copy_len): overflow in assertion
2636 (_dbus_string_replace_len): overflows in assertions
2637 (_dbus_string_find): change to implement in terms of
2638 _dbus_string_find_to
2639 (_dbus_string_find_to): assorted fixage
2640 (_dbus_string_equal_c_str): assert c_str != NULL,
2641 fix logic so the function works
2642 (_dbus_string_ends_with_c_str): fix overflow thingy
2643 (_dbus_string_base64_encode): overflow fix
2644 (_dbus_string_validate_ascii): overflow
2645 (_dbus_string_validate_nul): overflow
2647 2003-02-26 Havoc Pennington <hp@redhat.com>
2649 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2651 2003-02-26 Alexander Larsson <alexl@redhat.com>
2654 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2656 * dbus/dbus-connection.c:
2657 * dbus/dbus-connection.h:
2658 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2659 Add dbus_connection_set_wakeup_main_function and use it when queueing
2660 incoming and outgoing messages.
2663 * dbus/dbus-dataslot.c:
2664 Threadsafe usage of DBusDataSlotAllocator
2666 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2669 * dbus/dbus-server-unix.c:
2672 * glib/dbus-gmain.c:
2673 Implement the new wakeup functions for glib.
2676 * glib/test-thread-client.c:
2677 * glib/test-thread-server.c:
2678 * glib/test-thread.h:
2679 Initial cut at some thread test code. Not really done yet.
2681 2003-02-26 Havoc Pennington <hp@pobox.com>
2683 * dbus/dbus-connection.c
2684 (dbus_connection_send_message_with_reply_and_block): fix crash
2685 where we ref'd the outgoing message instead of the returned reply
2687 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2688 at the end of this function, so if we didn't need to read for
2689 authentication, we reinstall it for receiving messages
2691 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2692 a NULL sender for peer-to-peer case
2694 * dbus/dbus-transport-unix.c (check_read_watch): handle
2695 !authenticated case correctly
2697 * glib/dbus-gmain.c: add support for DBusServer
2699 * dbus/dbus-server.c: add data slot support
2701 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2702 return values and handle errors
2704 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2707 * Doxyfile.in (INPUT): add glib subdir
2709 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2710 setup_with_g_main instead of hookup_with_g_main; write docs
2712 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2714 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2715 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2716 * dbus/dbus-message.c: (dbus_message_append_boolean),
2717 (dbus_message_append_boolean_array),
2718 (dbus_message_get_args_valist), (_dbus_message_test):
2719 * dbus/dbus-message.h:
2720 * doc/dbus-specification.sgml:
2721 Various fixes as pointed out by Havoc.
2723 * test/data/invalid-messages/bad-boolean-array.message:
2724 * test/data/invalid-messages/bad-boolean.message:
2725 Add invalid boolean value test cases.
2727 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2729 * dbus/dbus-internals.c: (_dbus_type_to_string):
2730 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2731 (_dbus_marshal_validate_arg):
2732 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2733 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2734 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2735 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2736 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2737 (dbus_message_iter_get_double),
2738 (dbus_message_iter_get_boolean_array), (message_iter_test):
2739 * dbus/dbus-message.h:
2740 * dbus/dbus-protocol.h:
2741 * doc/dbus-specification.sgml:
2742 * test/data/valid-messages/lots-of-arguments.message:
2743 Add support for boolean and boolean array types.
2745 2003-02-23 Havoc Pennington <hp@pobox.com>
2747 * dbus/dbus-keyring.c: finish most of this implementation and
2750 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2751 these barf if the error isn't cleared to NULL
2753 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2754 (_dbus_create_directory): new function
2756 * dbus/dbus-errors.c (dbus_set_error): fix warning
2758 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2759 (_dbus_string_hex_decode): new function
2760 (test_hex_roundtrip): test code
2762 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2764 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2766 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2767 the save-to-temp/rename trick to atomically write the new file
2768 (_dbus_string_parse_uint): new function
2770 2003-02-22 Havoc Pennington <hp@pobox.com>
2772 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2774 2003-02-22 Havoc Pennington <hp@pobox.com>
2776 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2777 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2779 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2781 * dbus/test/data/sha-1: add US government test suite for SHA-1
2783 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2785 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2786 Make string arrays NULL-terminated.
2788 * dbus/dbus-memory.c: (dbus_free_string_array):
2789 * dbus/dbus-memory.h:
2790 New function for freeing NULL-terminated string arrays.
2792 * dbus/dbus-message-builder.c: (append_quoted_string),
2793 (_dbus_message_data_load):
2794 Add support for array types.
2796 * dbus/dbus-message.c: (check_message_handling):
2797 Add more types as test cases.
2799 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2800 (_dbus_string_parse_double):
2801 Add the start offset to the end offset.
2803 * test/data/valid-messages/lots-of-arguments.message:
2804 New test message with lots of arguments.
2806 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2808 * dbus/dbus-message.c: (dbus_message_append_nil),
2809 (dbus_message_append_int32), (dbus_message_append_uint32),
2810 (dbus_message_append_double), (dbus_message_append_string),
2811 (dbus_message_append_int32_array),
2812 (dbus_message_append_uint32_array),
2813 (dbus_message_append_double_array),
2814 (dbus_message_append_byte_array),
2815 (dbus_message_append_string_array):
2816 Fix all out-of-memory handling in these functions.
2818 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2820 * dbus/dbus-message.c: (dbus_message_append_nil):
2823 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2825 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2826 (dbus_message_append_nil), (dbus_message_append_int32_array),
2827 (dbus_message_append_uint32_array),
2828 (dbus_message_append_double_array),
2829 (dbus_message_append_byte_array),
2830 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2831 (dbus_message_iter_get_int32_array),
2832 (dbus_message_iter_get_uint32_array),
2833 (dbus_message_iter_get_double_array),
2834 (dbus_message_iter_get_byte_array),
2835 (dbus_message_iter_get_string_array):
2837 * dbus/dbus-message.h:
2838 Add functions for appending and getting arrays.
2840 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2842 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2843 element size at least 8 bytes, fixes mempool tests on
2846 2003-02-20 Alexander Larsson <alexl@redhat.com>
2848 * dbus/dbus-transport-unix.c (unix_do_iteration):
2849 Unlock the connection mutex during a blocking select call.
2850 Add todo about how we need a way to wake up the select.
2852 * dbus/dbus-connection-internal.h:
2853 * dbus/dbus-connection.c:
2854 Add _dbus_connection_lock and _dbus_connection_unlock.
2856 2003-02-19 Havoc Pennington <hp@pobox.com>
2858 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2859 Doxyfile.in, not Doxyfile
2861 * dbus/dbus-keyring.c: do some hacking on this
2863 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2865 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2867 (dbus_set_error): remove dbus_error_init, check for message ==
2868 NULL *before* we sprintf into it, and add @todo about including
2869 system headers in this file
2871 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2873 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2875 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2876 get various bits of user information based on either username
2878 (_dbus_homedir_from_username): new function
2880 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2883 Add check for nonposix getpwnam_r
2885 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2886 Align the pool element size to a sizeof (void *) boundary.
2888 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2889 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2890 General Solaris fixes.
2892 * test/data/valid-messages/simplest-manual.message:
2893 Explicitly state that we want little-endian packing.
2895 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2897 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2899 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2900 Added to create a transport connecting using a tcp/ip socket.
2902 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2903 to a tcp socket at given host and port.
2904 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2907 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2909 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2910 Added to create a server listening on a TCP/IP socket.
2912 2003-02-19 Havoc Pennington <hp@pobox.com>
2914 Throughout: mop up all the Doxygen warnings and undocumented
2917 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2918 to search any paths.
2920 * dbus/dbus-threads.c: move global mutex initializers to
2921 dbus-internals.h, multiple prototypes was confusing doxygen
2922 besides being kind of ugly
2924 * Doxyfile (PREDEFINED): have Doxygen define
2925 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2926 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2927 (do not abuse the feature! it's for stuff like the autogenerated
2928 macros in dbus-md5.c, not just for things you don't feel like
2931 2003-02-18 Havoc Pennington <hp@pobox.com>
2933 * dbus/dbus-string.c (_dbus_string_zero): new function
2935 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2936 wrap it in some dbus-friendly API
2938 * dbus/dbus-types.h: add 16-bit types
2940 2003-02-18 Joe Shaw <joe@assbarn.com>
2942 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2943 credentials from our currently running process.
2944 (get_word): Fix a buglet where we were copying the entire length
2945 instead of relative to our position.
2947 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2948 keys on the stack... it's 640k of data.
2950 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2951 read the credentials byte off the socket, even if we don't have
2953 (_dbus_poll): Implement poll() using select() for systems which
2956 * glib/test-dbus-glib.c (main): Print out an error if no
2957 parameters are given.
2959 * test/data/auth/fallback.auth-script: Added. Tests that a client
2960 can fallback to a secondary auth mechanism if the first fails.
2962 2003-02-18 Havoc Pennington <hp@pobox.com>
2966 2003-02-17 Havoc Pennington <hp@pobox.com>
2968 * doc/dbus-specification.sgml: lots of cosmetic
2969 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2970 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2971 s/server/bus/ (except in authentication section). Add a section
2972 "Message Bus Message Routing"
2974 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2980 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2982 * doc/dbus-specification.sgml:
2983 Specification updates.
2985 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2987 * bus/activation.c: (bus_activation_init), (child_setup),
2988 (bus_activation_activate_service):
2990 * bus/main.c: (main):
2991 Set DBUS_ADDRESS environment variable.
2993 * dbus/dbus-errors.c: (dbus_set_error):
2994 Don't use va_copy since that's a C99 feature.
2996 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2997 (_dbus_spawn_async):
2998 * dbus/dbus-sysdeps.h:
2999 Add child_setup_func to _dbus_spawn_async.
3001 * doc/dbus-specification.sgml:
3002 Update specification.
3004 * test/spawn-test.c: (setup_func), (main):
3007 2003-02-17 Alexander Larsson <alexl@redhat.com>
3009 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3012 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3016 * doc/dbus-test-plan.sgml:
3017 Add test plan document.
3022 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3024 * dbus/dbus-message.c: (decode_header_data),
3025 (_dbus_message_loader_return_buffer):
3026 Set the header padding amount when loading a message.
3028 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3030 * bus/dispatch.c: (send_one_message):
3031 Only send broadcast messages to registered connections.
3033 * dbus/dbus-message.c: (dbus_message_name_is):
3034 * dbus/dbus-message.h:
3035 New convenience function.
3037 * dbus/dbus-transport-debug.c: (do_reading):
3038 Only dispatch one message per run.
3041 * test/bus-test.c: (new_connection_callback), (die),
3042 (test_hello_client1_handler), (test_hello_client2_handler),
3043 (test_hello_replies), (main):
3045 * test/bus-test-loop.[ch]:
3048 2003-02-16 Havoc Pennington <hp@pobox.com>
3050 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3051 backward conditional
3053 2003-02-16 Alexander Larsson <alexl@redhat.com>
3055 * dbus/dbus-connection.c:
3056 Implement sent_message_with_reply. (with_reply_and block is still
3058 Made dispatch_message not lose message if OOM.
3060 * dbus/dbus-errors.h:
3061 Add NoReply error (for reply timeouts).
3063 2003-02-16 Alexander Larsson <alexl@redhat.com>
3065 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3066 Actually free keys and values when destroying hashtable.
3068 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3070 * dbus/dbus-auth.c: (client_try_next_mechanism):
3073 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3074 Return TRUE if there's no thread implementation around.
3076 * glib/dbus-gmain.c: (free_source),
3077 (dbus_connection_hookup_with_g_main):
3078 Make sure to remove the GSource when the connection is finalized.
3080 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3082 * bus/dispatch.c: (bus_dispatch_message_handler):
3083 * dbus/dbus-errors.h:
3084 Return an error if someone tries to send a message to a service
3087 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3089 * bus/activation.c: (load_directory), (bus_activation_init),
3090 (bus_activation_activate_service):
3093 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3094 More work on the activation handling.
3096 * dbus/dbus-errors.h:
3097 Add some error messages
3099 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3100 * dbus/dbus-message.h:
3101 New function that creates an error message.
3103 * dbus/dbus-protocol.h:
3104 Add ACTIVATE_SERVER message.
3106 * dbus/dbus-server-unix.c: (unix_handle_watch),
3107 (_dbus_server_new_for_domain_socket):
3108 Call _dbus_fd_set_close_on_exec.
3110 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3111 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3112 (_dbus_fd_set_close_on_exec):
3113 * dbus/dbus-sysdeps.h:
3114 Add _dbus_fd_set_close_on exec function. Also add function that checks
3115 that all open fds are set to close-on-exec and warns otherwise.
3117 * dbus/dbus-transport-unix.c:
3118 (_dbus_transport_new_for_domain_socket):
3119 Call _dbus_fd_set_close_on_exec.
3121 2003-02-16 Havoc Pennington <hp@pobox.com>
3123 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3124 allow people to avoid setting SIGPIPE to SIG_IGN
3125 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3126 we've been asked not to
3128 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3130 * dbus/dbus-list.c: (_dbus_list_append_link),
3131 (_dbus_list_prepend_link):
3132 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3136 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3139 * bus/activation.c: (bus_activation_entry_free),
3140 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3142 * bus/main.c: (main):
3143 Add simple activation support, doesn't work yet though.
3145 2003-02-15 Zack Rusin <zack@kde.org>
3147 * qt/dbus-qthread.cpp: small casting fix
3149 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3151 * dbus/dbus-errors.c: (dbus_set_error):
3152 * dbus/dbus-errors.h:
3153 Add a few errors and make dbus_set_error void.
3155 * dbus/dbus-sysdeps.c:
3156 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3157 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3158 * dbus/dbus-sysdeps.h:
3159 Add _dbus_spawn_async.
3161 * test/spawn-test.c: (main):
3162 Test for _dbus_spawn_async.
3164 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3166 * dbus/dbus-internals.h:
3167 Fix build without tests.
3169 * dbus/dbus-list.c: (alloc_link):
3170 Fix a segfault when a malloc fails.
3172 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3173 (dbus_malloc0), (dbus_realloc):
3174 Add support for malloc debugging.
3176 2003-02-15 Alexander Larsson <alexl@redhat.com>
3178 * dbus/dbus-threads.c:
3179 * dbus/dbus-threads.h:
3180 Add condvars. Remove static mutext from API.
3181 Implement static mutexes by initializing them from threads_init.
3183 * glib/dbus-gthread.c:
3184 * qt/dbus-qthread.cpp:
3185 Update with the thread api changes.
3190 Turn StaticMutex into normal mutex + init function.
3191 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3192 _dbus_list_append_link, _dbus_list_prepend_link
3195 * dbus/dbus-sysdeps.c:
3196 * dbus/dbus-sysdeps.h:
3197 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3198 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3200 * dbus/dbus-protocol.h:
3201 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3203 * dbus/dbus-message.c:
3204 Make ref/unref atomic.
3207 * dbus/dbus-connection-internal.h:
3208 * dbus/dbus-connection.c:
3209 * dbus/dbus-connection.h:
3211 Change _peek to _borrow,_return & _steal_borrowed.
3212 Change disconnect callback to event.
3213 Make dbus_connection_dispatch_messages reentrant.
3215 * dbus/dbus-transport.c:
3216 Don't ref the connection on calls to the transport
3219 * dbus/dbus-message-handler.c:
3222 * glib/dbus-gmain.c:
3223 Don't use peek_message anymore
3226 * test/debug-thread.c:
3227 * test/debug-thread.h:
3228 Simple thread implementation that asserts() on deadlocks in
3229 single-threaded code.
3232 (main) Call debug_threads_init.
3235 Use disconnect message instead of disconnect callback.
3239 Don't call dbus_connection_set_disconnect_function. Instead export
3240 bus_connection_disconnect.
3243 Call bus_connection_disconnect when we get a disconnected message.
3245 2003-02-15 Havoc Pennington <hp@pobox.com>
3247 * dbus/dbus-message.c (dbus_message_new): fool around with the
3250 2003-02-14 Havoc Pennington <hp@pobox.com>
3252 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3254 * dbus/dbus-memory.c: fail if the debug functions indicate we
3257 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3258 (_dbus_decrement_fail_alloc_counter): debug functions to
3259 simulate memory allocation failures
3261 2003-02-14 Havoc Pennington <hp@pobox.com>
3263 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3266 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3268 * bus/driver.c: (bus_driver_handle_hello):
3270 * bus/services.c: (bus_service_lookup):
3271 Reorder message sending so we get a more sane order.
3273 * test/bus-test.c: (message_handler):
3276 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3278 * bus/driver.c: (bus_driver_send_service_deleted),
3279 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3280 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3281 (bus_driver_send_welcome_message),
3282 (bus_driver_handle_list_services),
3283 (bus_driver_handle_acquire_service),
3284 (bus_driver_handle_service_exists):
3285 * dbus/dbus-bus.c: (dbus_bus_register_client),
3286 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3287 * dbus/dbus-errors.c: (dbus_result_to_string):
3288 * dbus/dbus-errors.h:
3289 * dbus/dbus-message.c: (dbus_message_append_args),
3290 (dbus_message_append_args_valist), (dbus_message_get_args),
3291 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3292 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3293 (dbus_message_iter_get_byte_array),
3294 (dbus_message_iter_get_string_array), (message_iter_test),
3295 (check_message_handling), (_dbus_message_test):
3296 * dbus/dbus-message.h:
3297 * test/bus-test.c: (main):
3298 Change fields to arguments in messages, so that they won't be
3299 confused with header fields.
3301 * glib/test-dbus-glib.c: (main):
3302 Remove append_fields from hello message.
3304 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3306 * dbus/dbus-errors.c:
3307 * dbus/dbus-message.c:
3308 * dbus/dbus-string.c:
3309 Documentation fixes.
3311 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3313 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3315 Implement support for timeouts in dbus-glib.
3317 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3319 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3320 * dbus/dbus-message.c: (process_test_subdir):
3321 * test/break-loader.c: (find_breaks_based_on):
3322 Plug some memory leaks.
3324 2003-02-13 Richard Hult <rhult@codefactory.se>
3326 * bus/main.c: Fix build.
3328 * dbus/dbus-errors.h:
3329 * dbus/dbus-errors.c: Fix copyright for Anders.
3331 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3336 * bus/connection.c: (bus_connection_foreach):
3339 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3340 (unescape_string), (new_section), (parse_section_start),
3341 (parse_key_value), (report_error), (bus_desktop_file_load),
3342 (bus_desktop_file_get_string):
3343 * bus/desktop-file.h:
3344 Use DBusError for error reporting.
3346 * bus/dispatch.c: (send_one_message),
3347 (bus_dispatch_message_handler):
3348 * bus/driver.c: (bus_driver_send_service_deleted),
3349 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3350 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3351 (bus_driver_send_welcome_message),
3352 (bus_driver_handle_list_services),
3353 (bus_driver_handle_acquire_service),
3354 (bus_driver_handle_service_exists):
3355 * bus/loop.c: (bus_loop_run):
3357 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3359 * bus/utils.c: (bus_wait_for_memory):
3361 New files with general utility functions.
3363 * dbus/dbus-internals.h:
3364 Remove _DBUS_HANDLE_OOM.
3366 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3368 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3369 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3370 * dbus/dbus-errors.h:
3371 Add DBusError structure.
3373 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3375 * test/data/valid-messages/standard-acquire-service.message:
3376 * test/data/valid-messages/standard-hello.message:
3377 * test/data/valid-messages/standard-list-services.message:
3378 * test/data/valid-messages/standard-service-exists.message:
3379 Add some standard messages.
3381 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3383 * bus/driver.c: (bus_driver_send_welcome_message),
3384 (bus_driver_handle_list_services),
3385 (bus_driver_handle_acquire_service),
3386 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3387 Update for API changes in libdbus.
3389 * dbus/dbus-message.c: (dbus_message_new_reply):
3390 * dbus/dbus-message.h:
3391 Remove the name argument. The spec states that replies shouldn't
3394 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3396 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3397 (report_error), (bus_desktop_file_load), (lookup_section),
3398 (lookup_line), (bus_desktop_file_get_raw),
3399 (bus_desktop_file_get_string):
3400 * bus/desktop-file.h:
3401 Some fixes, and new functions for getting a key value from a section.
3403 2003-02-13 Havoc Pennington <hp@pobox.com>
3405 * test/data/auth/fail-after-n-attempts.auth-script: new test
3407 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3410 2003-02-13 Havoc Pennington <hp@pobox.com>
3412 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3413 dbus_credentials_match were backward
3415 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3416 NO_CREDENTIALS and ROOT_CREDENTIALS
3418 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3419 into here. Never process more commands after we've reached an
3420 end state; store further data as unused bytes.
3422 * test/data/auth/*: add more auth tests
3424 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3425 command to match exact string and EXPECT_UNUSED to match unused
3428 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3430 2003-02-12 Havoc Pennington <hp@pobox.com>
3432 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3433 \r off of popped lines
3435 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3438 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3441 2003-02-12 Havoc Pennington <hp@pobox.com>
3443 * dbus/Makefile.am: remove break-loader from the build, since it
3446 * configure.in: add --enable-gcov to turn on coverage profiling
3447 flags and disable optimization
3449 2003-02-10 Havoc Pennington <hp@pobox.com>
3451 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3452 initial cut at test framework for DBusAuth from laptop.
3453 Doesn't quite work yet but it compiles and I need to get
3454 it off the 266mhz laptop. ;-)
3456 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3457 fix a memleak in error case
3459 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3462 * bus/desktop-file.c:
3463 * bus/desktop-file.h:
3464 Add a desktop file parser.
3466 2003-02-11 Zack Rusin <zack@kde.org>
3468 * qt/message.[h|cpp]: sample implementation
3469 of the KDE wrapper for DBusMessage
3471 2003-02-09 Zack Rusin <zack@kde.org>
3473 * test/bus-test.c: make_it_compile
3474 * doc/dbus-specification.sgml: minimal semantic fix
3476 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3482 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3485 * dbus/dbus-break-loader.c:
3487 * test/break-loader.c:
3488 Move dbus-break-loader to test/ and rename it to break-loader.
3490 2003-02-02 Havoc Pennington <hp@pobox.com>
3492 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3493 for code to manage cookies in your home directory
3495 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3497 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3498 to authenticate, then disconnect the client.
3500 2003-02-03 Alexander Larsson <alexl@redhat.com>
3502 * dbus/dbus-message.c (dbus_message_append_fields):
3505 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3507 * doc/dbus-specification.sgml:
3508 Update address format section.
3510 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3513 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3514 (message_handler), (new_connection_callback), (loop_quit),
3518 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3520 * bus/driver.c: (bus_driver_handle_service_exists):
3521 Simplify the code a bit.
3523 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3526 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3529 Add libdbus-daemon.la and link to it.
3531 2003-02-01 James Willcox <jwillcox@gnome.org>
3533 * bus/driver.c: (bus_driver_handle_own_service):
3534 Actually include the service reply code in the message.
3536 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3538 * bus/driver.c: (bus_driver_handle_service_exists):
3539 Don't unref the incoming message.
3541 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3543 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3545 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3547 * dbus/dbus-server.c: (dbus_server_listen):
3548 * dbus/dbus-transport.c: (_dbus_transport_open):
3549 ifdef out the calls to the debug transport and server.
3551 2003-02-02 Alexander Larsson <alexl@redhat.com>
3553 * dbus/dbus-watch.c (dbus_watch_get_flags):
3554 Add note in the docs that ERROR or HANGUP won't be returned
3555 and are assumed always on.
3557 * glib/dbus-gmain.c (add_watch):
3558 Always add IO_ERR | IO_HUP
3560 * dbus/dbus-message.h:
3561 Add semicolon after dbus_message_iter_get_string_array().
3562 Makes qt code build again
3564 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3566 * bus/driver.c: (create_unique_client_name),
3567 (bus_driver_handle_hello):
3568 Don't take a name, just use a numeric id to identify
3572 * dbus/dbus-bus.c: (dbus_bus_register_client),
3573 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3575 Add new convenience functions for communicating with the bus.
3577 * dbus/dbus-message.h:
3579 * dbus/dbus-protocol.h:
3582 2003-02-01 Alexander Larsson <alexl@redhat.com>
3584 * dbus/dbus-message.c (dbus_message_append_fields):
3585 Add some more doc comments.
3587 2003-02-01 Havoc Pennington <hp@pobox.com>
3589 * dbus/dbus-break-loader.c (randomly_modify_length): change
3590 a 4-byte value in the message as if it were a length
3592 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3593 execute bit on saved files
3595 2003-02-01 Havoc Pennington <hp@pobox.com>
3597 * dbus/dbus-break-loader.c (main): new program to find messages
3598 that break the loader.
3600 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3601 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3603 * dbus/dbus-string.c (_dbus_string_set_byte): new
3605 2003-01-31 Havoc Pennington <hp@pobox.com>
3607 * dbus/dbus-message.c: refactor the test code to be more general,
3608 in preparation for writing a "randomly permute test cases to
3609 try to break the loader" program.
3611 2003-01-31 Havoc Pennington <hp@pobox.com>
3613 * doc/dbus-specification.sgml: work on the specification
3615 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3616 the protocol version of the message.
3618 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3619 no longer specifies that.
3620 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3623 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3624 "break" for DBUS_TYPE_NIL, remove @todo
3626 2003-01-31 Havoc Pennington <hp@pobox.com>
3628 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3629 just set_is_error/get_is_error as this is a commonly-used
3630 function, and write docs.
3632 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3634 * dbus/dbus-address.c: (dbus_address_entry_free):
3635 Free key and value lists.
3637 * dbus/dbus-internals.c: (_dbus_type_to_string):
3638 Add the types we didn't have.
3640 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3641 (_dbus_marshal_validate_arg):
3644 * dbus/dbus-message.c: (dbus_message_set_sender):
3645 Remove todo about being able to set sender to NULL.
3647 (dbus_message_set_is_error_reply),
3648 (dbus_message_get_is_error_reply):
3649 * dbus/dbus-message.h:
3652 * dbus/dbus-protocol.h:
3653 Add error reply flag.
3655 * test/data/valid-messages/opposite-endian.message:
3656 Add NIL type to test.
3658 2003-01-31 Havoc Pennington <hp@pobox.com>
3660 * doc/dbus-specification.sgml: fully specify the header. Add
3661 flags and major protocol version, and change header/body len to
3664 * dbus/dbus-message-builder.c (append_saved_length): append length
3667 * dbus/dbus-message.c (dbus_message_create_header): change header
3668 length and body length to unsigned. Add the new fields from the
3670 (_dbus_message_loader_return_buffer): unsigned header/body len
3672 2003-01-30 Havoc Pennington <hp@pobox.com>
3674 * dbus/dbus-auth.c: rework to use only REJECTED, no
3677 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3678 use REJECTED, suggested by Mark McLoughlin
3680 2003-01-30 Havoc Pennington <hp@pobox.com>
3682 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3683 a better way to report errors here. e.g. "unix address lacks
3684 path" or something. also "no such file" when the path doesn't
3687 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3689 (dbus_parse_address): add @todo about documenting address format,
3690 and allowing , and ; to be escaped
3692 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3695 Add dbus-address.[ch]
3697 * dbus/dbus-address.c: (dbus_address_entry_free),
3698 (dbus_address_entries_free), (create_entry),
3699 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3700 (dbus_parse_address), (_dbus_address_test):
3701 * dbus/dbus-address.h:
3702 New files for dealing with address parsing.
3704 * dbus/dbus-connection.c:
3705 Document timeout functions.
3707 * dbus/dbus-message.c:
3708 Document dbus_message_new_from_message.
3710 * dbus/dbus-server-debug.c:
3713 * dbus/dbus-server.c: (dbus_server_listen):
3714 Parse address and use correct server implementation.
3716 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3717 * dbus/dbus-string.h:
3718 New function with test.
3720 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3724 * dbus/dbus-transport-debug.c:
3727 * dbus/dbus-transport.c: (_dbus_transport_open):
3728 Parse address and use correct transport implementation.
3730 2003-01-30 Havoc Pennington <hp@pobox.com>
3732 * dbus/dbus-message.c: use message->byte_order instead of
3733 DBUS_COMPILER_BYTE_ORDER throughout.
3734 (dbus_message_create_header): pad header to align the
3735 start of the body of the message to 8-byte boundary
3737 * dbus/dbus-marshal.h: make all the demarshalers take const
3738 DBusString arguments.
3740 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3741 validate message args here, so we don't have to do slow validation
3742 later, and so we catch bad messages as they are incoming. Also add
3743 better checks on header_len and body_len. Also fill in
3746 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3747 implemented properly)
3748 (_dbus_string_validate_nul): new function to check all-nul
3750 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3751 get_arg_end_pos and remove all validation
3752 (_dbus_marshal_validate_arg): actually do validation here.
3754 2003-01-29 Havoc Pennington <hp@pobox.com>
3756 * dbus/dbus-message.c (check_message_handling): fix assertion
3757 failure on set_client_serial
3759 2003-01-28 Havoc Pennington <hp@pobox.com>
3761 * dbus/dbus-server-debug.c: Add doc section comments
3763 * dbus/dbus-transport-debug.c: add doc section comments
3765 2003-01-28 Havoc Pennington <hp@redhat.com>
3767 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3768 the reverse order from how I had it
3769 (_dbus_string_base64_encode): reverse encoding order. I was
3770 basically byteswapping everything during encoding.
3772 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3774 * dbus/dbus-connection-internal.h:
3775 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3776 (_dbus_connection_remove_timeout):
3777 Add functions for adding and removing timeouts.
3779 * dbus/dbus-message.c: (dbus_message_new_from_message):
3780 Add new function that takes a message and creates an exact
3781 copy of it, but with the refcount set to 1.
3782 (check_message_handling):
3785 * dbus/dbus-server-protected.h:
3786 * dbus/dbus-server.c: (_dbus_server_init_base),
3787 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3788 (dbus_server_set_timeout_functions):
3789 (_dbus_server_remove_timeout):
3790 New functions so that a server can add and remove timeouts.
3792 (dbus_server_listen):
3793 Add commented out call to dbus_server_debug_new.
3795 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3796 Actually set the handler, doh.
3798 * dbus/dbus-transport.c: (_dbus_transport_open):
3799 Add commented out call to dbus_transport_debug_client_new.
3802 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3804 2003-01-28 Havoc Pennington <hp@pobox.com>
3806 * dbus/dbus-message.c (check_message_handling): function to check
3807 on the loaded message, iterates over it etc.
3809 2003-01-28 Havoc Pennington <hp@pobox.com>
3811 * test/Makefile.am (dist-hook): fix make distdir
3813 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3815 2003-01-27 Havoc Pennington <hp@pobox.com>
3817 * dbus/dbus-mempool.c (time_for_size): replace printf with
3820 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3821 empty lines; fix the SAVE_LENGTH stuff to be
3822 START_LENGTH/END_LENGTH so it actually works; couple other
3825 * test/Makefile.am (dist-hook): add dist-hook for .message files
3827 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3828 can be constant or locked.
3829 (_dbus_string_free): allow freeing a const string as
3832 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3834 * dbus/dbus-test-main.c (main): take an argument which is the
3835 directory containing test data
3837 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3838 argument to this and load all the messages in test/data/
3839 checking that they can be loaded or not loaded as appropriate.
3841 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3843 * bus/dispatch.c: (bus_dispatch_message_handler):
3844 Dispatch messages sent to services.
3846 * bus/driver.c: (bus_driver_send_service_deleted),
3847 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3848 (bus_driver_send_service_acquired):
3849 Add helper functions for sending service related messages.
3851 (bus_driver_send_welcome_message):
3852 Send HELLO_REPLY instead of WELCOME.
3854 (bus_driver_handle_list_services):
3855 Send LIST_SERVICES_REPLY instead of SERVICES.
3857 (bus_driver_handle_own_service),
3858 (bus_driver_handle_service_exists):
3859 New message handlers.
3861 (bus_driver_handle_message):
3862 Invoke new message handlers.
3864 (bus_driver_remove_connection):
3865 Don't remove any services here since that's done automatically
3866 by bus_service_remove_owner now.
3869 New function signatures.
3871 * bus/services.c: (bus_service_add_owner):
3872 Send ServiceAcquired message if we're the only primary owner.
3874 (bus_service_remove_owner):
3875 Send ServiceAcquired/ServiceLost messages.
3877 (bus_service_set_prohibit_replacement),
3878 (bus_service_get_prohibit_replacement):
3879 Functions for setting prohibit replacement.
3881 (bus_service_has_owner):
3882 New function that checks if a connection is in the owner queue of
3886 Add new function signatures.
3888 * dbus/dbus-list.c: (_dbus_list_test):
3889 Add tests for _dbus_list_remove_last and traversing the list backwards.
3892 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3893 go any further, so return NULL then.
3895 * dbus/dbus-protocol.h:
3896 Add new messages, service flags and service replies.
3898 2003-01-26 Havoc Pennington <hp@pobox.com>
3900 * dbus/dbus-message-builder.c: implement, completely untested.
3902 * test/data/*: add data to be used in testing.
3903 ".message" files are our simple loadable text format.
3904 ".message-raw" will be binary dumps of messages.
3906 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3908 2003-01-26 Havoc Pennington <hp@pobox.com>
3910 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3912 * dbus/dbus-errors.c (dbus_result_to_string): add
3915 * dbus/dbus-message-builder.c: new file, will contain code to load
3916 up messages from files. Not implemented yet.
3918 2003-01-26 Havoc Pennington <hp@pobox.com>
3920 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3921 the sender by setting to NULL
3923 2003-01-26 Havoc Pennington <hp@pobox.com>
3925 The unit tests pass, but otherwise untested. If it breaks, the
3926 tests should have been better. ;-)
3928 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3931 * dbus/dbus-message.c: redo everything so we maintain
3932 message->header as the only copy of the various fields.
3933 This avoids the possibility of out-of-memory in some cases,
3934 for example dbus_message_lock() can't run out of memory anymore,
3935 and avoids extra copying. Figured I may as well go ahead and do
3936 this since it was busted for dbus_message_lock to not return
3937 failure on OOM, and dbus_message_write_header was totally
3938 unchecked for OOM. Also fixed some random other bugs.
3940 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3941 that strings are nul-terminated. Also, end_pos can be equal
3942 to string length just not greater than, I think.
3943 (_dbus_marshal_set_int32): new function
3944 (_dbus_marshal_set_uint32): new function
3945 (_dbus_marshal_set_string): new function
3947 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3948 a warning, init timeout_list to NULL
3949 (dbus_connection_send_message): don't use uninitialized variable
3952 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3954 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3956 * bus/driver.c: (bus_driver_handle_hello),
3957 (bus_driver_send_welcome_message):
3960 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3962 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3963 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3964 (dbus_connection_unref):
3965 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3966 * dbus/dbus-message.c: (dbus_message_unref),
3969 (dbus_message_get_fields):
3970 Remove debugging printout.
3972 (_dbus_message_loader_return_buffer):
3973 Don't store the header string.
3975 (_dbus_message_test):
3978 2003-01-26 Richard Hult <rhult@codefactory.se>
3980 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3981 the file descriptor list, since it can change under us.
3983 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3985 * glib/dbus-gmain.c: (dbus_connection_prepare),
3986 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3987 (remove_watch), (dbus_connection_hookup_with_g_main):
3988 Rewrite the glib handling to use its own GSource instead of a
3989 GIOChannel so we can catch messages put in the queue while waiting
3992 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3995 * bus/connection.c: (connection_disconnect_handler),
3996 (connection_watch_callback), (bus_connection_setup):
3997 * bus/dispatch.c: (send_one_message),
3998 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3999 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
4001 * bus/driver.c: (bus_driver_send_service_deleted),
4002 (bus_driver_send_service_created), (bus_driver_handle_hello),
4003 (bus_driver_send_welcome_message),
4004 (bus_driver_handle_list_services), (bus_driver_remove_connection),
4005 (bus_driver_handle_message):
4007 Refactor code, put the message dispatching in its own file. Use
4008 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4011 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4013 * dbus/dbus-internals.h:
4014 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4016 * dbus/dbus-message.c: (dbus_message_get_sender):
4017 * dbus/dbus-message.h:
4018 Implement dbus_message_get_sender.
4020 * dbus/dbus-protocol.h:
4021 Add message and service defines.
4023 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4025 * dbus/dbus-connection.c: (dbus_connection_send_message):
4026 * dbus/dbus-message-internal.h:
4027 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4028 (dbus_message_write_header):
4029 Remove _dbus_messag_unlock and don't set the client serial on a
4030 message if one already exists.
4032 2003-01-24 Havoc Pennington <hp@pobox.com>
4034 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4037 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4040 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4042 * dbus/dbus-list.c: (alloc_link), (free_link):
4043 Use a memory pool for the links.
4045 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4047 * bus/connection.c: (bus_connection_foreach):
4049 Add new bus_connection_foreach function.
4051 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4052 Add function that broadcasts a message to all clients.
4054 (bus_driver_send_service_created), (bus_driver_handle_hello),
4055 (bus_driver_send_welcome_message),
4056 (bus_driver_handle_list_services), (bus_driver_message_handler):
4057 Implement functions that take care of listing services, and notifying
4058 clients when new services are created.
4060 * bus/services.c: (bus_services_list):
4062 Add new function that returns an array of strings with the currently
4063 registered services.
4066 * glib/dbus-gmain.c:
4067 Update copyright year.
4069 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4071 * dbus/dbus-connection.c: (dbus_connection_send_message):
4072 Unlock the message in case it was sent earlier.
4074 (dbus_connection_send_message_with_reply_and_block):
4075 Remove the reply message from the list.
4077 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4078 Set array_len and new_pos correctly.
4080 (_dbus_marshal_test):
4081 Remove debug output.
4083 * dbus/dbus-message-internal.h:
4084 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4085 New function that returns the reply serial.
4087 (_dbus_message_unlock):
4088 New function that unlocks a message and resets its header.
4090 (dbus_message_append_string_array),
4091 (dbus_message_get_fields_valist),
4092 (dbus_message_iter_get_field_type),
4093 (dbus_message_iter_get_string_array),
4094 (dbus_message_get_fields),
4095 (dbus_message_append_fields_valist):
4096 Handle string arrays.
4098 (dbus_message_set_sender):
4099 Make this function public since the bus daemon needs it.
4101 (decode_header_data):
4102 Set the reply serial to -1 initially.
4104 * dbus/dbus-message.h:
4105 Add dbus_message_set_sender.
4107 2003-01-24 Havoc Pennington <hp@pobox.com>
4109 * doc/dbus-specification.sgml: add some stuff
4111 2003-01-22 Havoc Pennington <hp@pobox.com>
4113 * doc/dbus-specification.sgml: Start to document the protocol.
4115 2003-01-22 Havoc Pennington <hp@pobox.com>
4117 * dbus/dbus-connection.c
4118 (dbus_connection_send_message_with_reply_and_block): add some @todo
4120 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4122 2003-01-21 Havoc Pennington <hp@pobox.com>
4124 (patch untested because can't compile)
4126 * bus/driver.c (create_unique_client_name): make this function
4127 never recycle client names. Also, caller should initialize
4130 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4132 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4134 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4135 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4136 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4137 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4138 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4139 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4140 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4141 * dbus/dbus-marshal.h:
4142 * dbus/dbus-protocol.h:
4143 Add support for marshalling and demarshalling integer, double
4146 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4151 * bus/connection.c: (connection_disconnect_handler):
4152 Remove the connection from the bus driver's list.
4154 (connection_watch_callback): Dispatch messages.
4156 (free_connection_data): Free connection name.
4158 (bus_connection_setup): Add connection to the bus driver's list.
4159 (bus_connection_remove_owned_service):
4160 (bus_connection_set_name), (bus_connection_get_name):
4161 Add functions for setting and getting the connection's name.
4164 Add function headers.
4166 * bus/driver.c: (create_unique_client_name),
4167 (bus_driver_handle_hello_message),
4168 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4169 (bus_driver_add_connection), (bus_driver_remove_connection):
4172 * bus/services.c: (bus_service_free):
4174 New file that handles communication and registreation with the bus
4177 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4179 * dbus/dbus-connection.c: (dbus_connection_send_message):
4180 Add a new client_serial parameter.
4182 (dbus_connection_send_message_with_reply):
4183 Remove a @todo since we've implemented the blocking function.
4185 (dbus_connection_send_message_with_reply_and_block):
4186 New function that sends a message and waits for a reply and
4187 then returns the reply.
4189 * dbus/dbus-connection.h:
4192 * dbus/dbus-errors.c: (dbus_result_to_string):
4193 * dbus/dbus-errors.h:
4194 Add new DBUS_RESULT.
4196 * dbus/dbus-message-internal.h:
4197 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4198 (_dbus_message_set_sender), (dbus_message_write_header),
4199 (dbus_message_new_reply), (decode_header_data),
4200 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4201 * dbus/dbus-message.h:
4202 Add new functions that set the reply serial and sender.
4203 Also marshal and demarshal them correctly and add test.
4205 * dbus/dbus-protocol.h:
4206 Add new DBUS_MESSAGE_TYPE_SENDER.
4209 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4210 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4211 (dbus_connection_hookup_with_g_main):
4212 * glib/test-dbus-glib.c: (main):
4213 Rewrite to use GIOChannel and remove the GSource crack.
4215 * test/echo-client.c: (main):
4216 * test/watch.c: (check_messages):
4217 Update for changed APIs
4219 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4221 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4223 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4224 Create a DBusTimeoutList.
4225 (dbus_connection_set_timeout_functions): Add new function to
4226 set timeout callbacks
4228 * dbus/dbus-connection.h: Add public DBusTimeout API.
4230 * dbus/dbus-message.c: (dbus_message_get_service):
4231 * dbus/dbus-message.h: New function.
4233 * dbus/dbus-server.c: Fix small doc typo.
4235 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4237 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4239 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4240 of the string, just as long as specified.
4242 2003-01-19 Havoc Pennington <hp@pobox.com>
4244 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4247 * dbus/dbus-server.c (dbus_server_set_max_connections)
4248 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4249 keep track of current number of connections, and add API for
4250 setting a max (but haven't implemented enforcing the max yet)
4252 2003-01-18 Havoc Pennington <hp@pobox.com>
4254 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4255 reading/writing if read_watch != NULL or write_watch != NULL.
4257 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4258 the message loader code to actually load message->header and
4259 message->body into the newly-created message.
4261 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4264 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4265 (dbus_connection_get_max_message_size)
4266 (dbus_connection_set_max_live_messages_size)
4267 (dbus_connection_get_max_live_messages_size): implement some
4268 resource limitation functions
4270 * dbus/dbus-resources.c: new file implementing some of the
4271 resource limits stuff
4273 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4274 missing docs, add @todo to handle OOM etc.
4276 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4279 2003-01-18 Havoc Pennington <hp@pobox.com>
4281 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4282 connection if it hasn't been already.
4284 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4285 replace with DisconnectFunction.
4287 2003-01-18 Havoc Pennington <hp@pobox.com>
4289 Building --disable-verbose-mode --disable-asserts --disable-tests
4290 cuts the library from 112K to 45K or so
4292 * configure.in: check for varargs macro support,
4293 add --enable-verbose-mode, --enable-asserts.
4295 * dbus/dbus-internals.h (_dbus_assert): support
4297 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4299 2003-01-18 Havoc Pennington <hp@pobox.com>
4301 * dbus/dbus-test.c: include config.h so that tests actually run
4303 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4304 so the failure mode when that assumption fails will be plenty
4307 2003-01-18 Havoc Pennington <hp@pobox.com>
4309 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4311 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4314 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4315 since we don't want to use those in make check
4317 2003-01-15 Havoc Pennington <hp@redhat.com>
4323 2003-01-15 Havoc Pennington <hp@redhat.com>
4325 * test/Makefile.am: fix so that test source code ends up in the
4326 distribution on make distcheck
4328 2003-01-15 Havoc Pennington <hp@redhat.com>
4334 2003-01-15 Havoc Pennington <hp@redhat.com>
4336 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4337 fix build when --disable-tests
4339 * Makefile.am (EXTRA_DIST): put HACKING in here
4341 * HACKING: document procedure for making a tarball release.
4343 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4345 * bus/connection.c: (connection_error_handler),
4346 (bus_connection_setup):
4347 * bus/main.c: (main):
4348 Make sure that the DBusConnectionData struct is NULLed
4349 out to prevent a segfault.
4351 * dbus/dbus-errors.c: (dbus_result_to_string):
4352 * dbus/dbus-errors.h:
4353 * dbus/dbus-message.c: (dbus_message_get_fields),
4354 (dbus_message_get_fields_valist), (_dbus_message_test):
4355 * dbus/dbus-message.h:
4356 Make dbus_message_get_fields return a result code so we can
4357 track invalid fields as well as oom.
4359 2003-01-11 Havoc Pennington <hp@pobox.com>
4361 * configure.in: change --enable-test/--enable-ansi action-if-given
4362 to enable_foo=$enableval instead of enable_foo=yes
4364 2003-01-08 Havoc Pennington <hp@pobox.com>
4366 * dbus/dbus-string.c (_dbus_string_align_length): new function
4368 * dbus/dbus-test-main.c: move main() for test app here
4370 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4371 symbol to run tests, because dbus-test isn't in the main
4374 Code review nitpicks.
4376 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4377 for people with narrow emacs ;-). Assert client_serial was filled
4378 in. Assert message->name != NULL.
4379 (dbus_message_append_fields): have "first_field_type" arg separate
4380 from va list, needed for C++ binding that also uses varargs IIRC
4381 and helps with type safety
4382 (dbus_message_new): add @todo about using DBusString to store
4383 service/name internally
4384 (dbus_message_new): don't leak ->service and ->name on OOM later
4386 (dbus_message_unref): free the service name
4387 (dbus_message_get_fields): same change to varargs
4388 i.e. first_field_type
4389 (_dbus_message_loader_return_buffer): assert that the message data
4390 is aligned (if not it's a bug in our code). Put in verbose griping
4391 about why we set corrupted = TRUE.
4392 (decode_header_data): add FIXME that char* is evil. Was going to
4393 add FIXME about evil locale-specific string.h strncmp, but just
4394 switched to wacky string-as-uint32 optimization. Move check for
4395 "no room for field name" above get_const_data_len() to avoid
4396 assertion failure in get_const_data_len if we have trailing 2
4397 bytes or the like. Check for service and name fields being
4398 provided twice. Don't leak service/name on error. Require field
4399 names to be aligned to 4 bytes.
4401 * dbus/dbus-marshal.c: move byte swap stuff to header
4402 (_dbus_pack_int32): uscore-prefix
4403 (_dbus_unpack_int32): uscore-prefix
4404 (_dbus_unpack_uint32): export
4405 (_dbus_demarshal_string): add @todo complaining about use of
4407 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4408 handling allowing corrupt data to go unchecked
4410 2003-01-08 Havoc Pennington <hp@redhat.com>
4412 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4413 to the select() as needed for authentication. (should be using
4414 _dbus_poll() not select, but for another day)
4416 * dbus/dbus.h: include dbus/dbus-protocol.h
4418 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4420 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4423 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4425 * dbus/dbus-internals.c: (_dbus_type_to_string):
4426 New function that returns a string describing a type.
4428 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4429 * dbus/dbus-marshal.h:
4430 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4431 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4432 (dbus_message_iter_get_byte_array):
4433 * dbus/dbus-message.h:
4434 Add new convenience functions for appending and getting message fields.
4435 Also add demarshalling routines for byte arrays.
4437 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4439 * dbus/dbus-connection-internal.h:
4440 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4441 (_dbus_connection_get_next_client_serial),
4442 (dbus_connection_send_message):
4443 * dbus/dbus-internals.h:
4444 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4445 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4446 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4447 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4448 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4449 (_dbus_verbose_bytes), (_dbus_marshal_test):
4450 * dbus/dbus-marshal.h:
4451 * dbus/dbus-message-internal.h:
4452 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4453 (dbus_message_write_header), (_dbus_message_lock),
4454 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4455 (dbus_message_get_name), (dbus_message_append_int32),
4456 (dbus_message_append_uint32), (dbus_message_append_double),
4457 (dbus_message_append_string), (dbus_message_append_byte_array),
4458 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4459 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4460 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4461 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4462 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4463 (decode_header_data), (_dbus_message_loader_return_buffer),
4464 (message_iter_test), (_dbus_message_test):
4465 * dbus/dbus-message.h:
4466 * dbus/dbus-protocol.h:
4467 * dbus/dbus-test.c: (main):
4469 * glib/test-dbus-glib.c: (message_handler), (main):
4470 * test/echo-client.c: (main):
4471 * test/watch.c: (check_messages):
4472 Make messages sendable and receivable for real.
4474 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4476 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4477 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4478 * dbus/dbus-message.c: (dbus_message_append_int32),
4479 (dbus_message_append_uint32), (dbus_message_append_double),
4480 (dbus_message_append_string), (dbus_message_append_byte_array):
4481 Handle OOM restoration.
4483 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4485 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4486 (_dbus_demarshal_string), (_dbus_marshal_test):
4487 * dbus/dbus-marshal.h:
4488 * dbus/dbus-message.c: (dbus_message_get_name),
4489 Document these functions.
4491 (dbus_message_append_int32), (dbus_message_append_uint32),
4492 (dbus_message_append_double), (dbus_message_append_string),
4493 (dbus_message_append_byte_array):
4494 * dbus/dbus-message.h:
4495 Add functions for adding message fields of different types.
4497 * dbus/dbus-protocol.h:
4498 Add the different types.
4500 2003-01-05 Havoc Pennington <hp@pobox.com>
4502 * bus/connection.c: implement routines for handling connections,
4503 first thing is keeping a list of owned services on each connection
4504 and setting up watches etc.
4506 * bus/services.c: implement a mapping from service names to lists
4509 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4511 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4512 to use static mutexes for global data
4514 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4515 collection of functions to set/get application-specific data
4516 on the DBusConnection.
4518 2003-01-04 Havoc Pennington <hp@pobox.com>
4520 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4521 (_dbus_poll): new function
4523 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4526 * bus/loop.c: initial code for the daemon main loop
4528 2003-01-04 Havoc Pennington <hp@pobox.com>
4530 * test/watch.c (error_handler): make it safe if the error handler
4531 is called multiple times (if we s/error handler/disconnect
4532 handler/ we should just guarantee it's called only once)
4534 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4535 error handler on disconnect (it's quite possible we should
4536 just change the error handler to a "disconnect handler," I'm
4537 not sure we have any other meaningful errors)
4539 * configure.in: check for getpwnam_r
4541 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4542 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4543 mechanism as in SASL spec, using socket credentials
4545 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4546 (_dbus_send_credentials_unix_socket): new function
4548 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4550 (_dbus_write): only check errno if <0 returned
4551 (_dbus_write_two): ditto
4553 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4555 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4556 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4557 (_dbus_marshal_test):
4558 * dbus/dbus-marshal.h:
4559 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4560 to _dbus_marshal_utf8_string. Also fix some tests.
4562 2002-12-28 Harri Porten <porten@kde.org>
4564 * configure.in: added check for C++ compiler and a very cheesy
4565 check for the Qt integration
4567 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4569 * qt/Makefile.am: added
4571 * qt/.cvsignore: added
4573 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4574 latter, added #ifdef QT_THREAD_SUPPORT guard.
4576 * dbus/Makefile.am: added missing headers for make dist
4578 2002-12-28 Kristian Rietveld <kris@gtk.org>
4580 * dbus/Makefile.am: fixup export-symbols-regex.
4582 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4584 * acinclude.m4: Add this file and put the
4585 PKG_CHECK_MODULE macro in it.
4587 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4589 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4590 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4591 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4592 (_dbus_marshal_test):
4593 Make the demarshalling routines align the pos argument.
4594 Add string marshalling tests and fix the obvious bugs
4597 2002-12-26 Havoc Pennington <hp@pobox.com>
4599 * dbus/dbus-auth.c: fixes fixes fixes
4601 * dbus/dbus-transport-unix.c: wire up support for
4602 encoding/decoding data on the wire
4604 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4605 (_dbus_auth_decode_data): append to target string
4606 instead of nuking it.
4608 2002-12-26 Havoc Pennington <hp@pobox.com>
4610 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4611 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4614 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4615 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4616 now). Main point is because I wanted unpack_uint32 to implement
4618 (_dbus_verbose_bytes): new function
4620 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4622 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4623 mechanism to handle a corrupt message stream
4624 (_dbus_message_loader_new): fix preallocation to only prealloc,
4627 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4628 (_dbus_string_test): enhance tests for copy/move and fix the
4631 * dbus/dbus-transport-unix.c: Hold references in more places to
4632 avoid reentrancy problems
4634 * dbus/dbus-transport.c: ditto
4636 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4637 leak reference count in no-message case
4639 * test/watch.c (do_mainloop): handle adding/removing watches
4640 during iteration over the watches. Also, ref the connection/server
4641 stored on a watch, so we don't try to mangle a destroyed one.
4643 * dbus/dbus-transport-unix.c (do_authentication): perform
4646 * dbus/dbus-auth.c (get_state): add a state
4647 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4648 (_dbus_auth_get_unused_bytes): append the unused bytes
4649 to the passed in string, rather than prepend
4651 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4652 the auth conversation DBusAuth
4654 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4655 (_dbus_transport_new_for_domain_socket): when creating a
4656 transport, pass in whether it's a client-side or server-side
4657 transport so we know which DBusAuth to create
4659 2002-12-03 Havoc Pennington <hp@pobox.com>
4661 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4662 _after_ finalizing the derived members
4663 (unix_connection_set): unref watch if we fail to add it
4665 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4666 transport first, so that the connection owned by the
4667 transport will be valid as the transport finalizes.
4669 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4670 if necessary, and remove watches from the connection.
4672 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4674 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4676 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4677 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4678 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4679 (_dbus_marshal_test):
4680 * dbus/dbus-marshal.h:
4681 Add string marshal functions and have the demarshal functions
4682 return the new position.
4684 2002-12-25 Havoc Pennington <hp@pobox.com>
4686 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4687 it is a simple protocol that just maps directly to SASL.
4689 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4690 initial implementation, not actually used yet.
4692 * dbus/dbus-string.c (_dbus_string_find): new function
4693 (_dbus_string_equal): new function
4694 (_dbus_string_base64_encode): new function
4695 (_dbus_string_base64_decode): new function
4697 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4700 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4701 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4702 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4703 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4704 * dbus/dbus-marshal.h:
4705 * dbus/dbus-protocol.h:
4706 * dbus/dbus-test.c: (main):
4708 Add un-optimized marshalling/demarshalling routines.
4710 2002-12-25 Harri Porten <porten@kde.org>
4712 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4714 2002-12-24 Zack Rusin <zack@kde.org>
4716 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4717 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4720 2002-12-24 Havoc Pennington <hp@pobox.com>
4722 * glib/dbus-gthread.c: fix include
4724 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4725 I think glib API needs to change, though, as you don't
4726 want to use DBusMessageFunction, you want to use the
4727 DBusMessageHandler object. Probably
4728 dbus_connection_open_with_g_main_loop()
4729 and dbus_connection_setup_g_main_loop() or something like that
4730 (but think of better names...) that just create a connection
4731 that has watch/timeout functions etc. already set up.
4733 * dbus/dbus-connection.c
4734 (dbus_connection_send_message_with_reply): new function just to
4735 show how the message handler helps us deal with replies.
4737 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4739 * dbus/dbus-string.c (_dbus_string_test): free a string that
4742 * dbus/dbus-hash.c: use memory pools for the hash entries
4743 (rebuild_table): be more paranoid about overflow, and
4744 shrink table when we can
4745 (_dbus_hash_test): reduce number of sprintfs and write
4746 valid C89. Add tests for case where we grow and then
4747 shrink the hash table.
4749 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4751 * dbus/dbus-connection.c (dbus_connection_register_handler)
4752 (dbus_connection_unregister_handler): new functions
4754 * dbus/dbus-message.c (dbus_message_get_name): new
4756 * dbus/dbus-list.c: fix docs typo
4758 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4759 an object representing a handler for messages.
4761 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4764 * glib/dbus-gthread.c: (dbus_gthread_init):
4765 Don't use the gdbus prefix for public functions.
4767 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4771 Add GLib checks and fixup .pc files
4775 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4776 (gdbus_connection_check), (gdbus_connection_dispatch),
4777 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4778 (dbus_connection_gsource_new):
4779 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4780 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4781 * glib/test-dbus-glib.c: (message_handler), (main):
4784 2002-12-15 Harri Porten <porten@kde.org>
4786 * autogen.sh: check for libtoolize before attempting to use it
4788 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4791 * .cvsignore: ignore more stamp files
4793 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4795 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4796 without make install.
4798 2002-12-15 Havoc Pennington <hp@pobox.com>
4800 * dbus/dbus-threads.c: add thread stubs that a higher library
4801 layer can fill in. e.g. the GLib wrapper might fill them in with
4802 GThread stuff. We still need to use this thread API to
4803 thread-safe-ize the library.
4805 2002-12-12 Havoc Pennington <hp@pobox.com>
4807 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4808 below new interfaces and include fewer system headers.
4810 * dbus/dbus-sysdeps.c (_dbus_read): new function
4811 (_dbus_write): new function
4812 (_dbus_write_two): new function
4813 (_dbus_connect_unix_socket): new function
4814 (_dbus_listen_unix_socket): new function
4816 * dbus/dbus-message-internal.h: change interfaces to use
4819 2002-12-11 Havoc Pennington <hp@pobox.com>
4821 * dbus/dbus-types.h: add dbus_unichar
4823 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4825 * dbus/dbus-connection.c (dbus_connection_send_message): return
4828 * dbus/dbus-transport.c: include dbus-watch.h
4830 * dbus/dbus-connection.c: include dbus-message-internal.h
4832 * HACKING: add file with coding guidelines stuff.
4834 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4835 handling here, for security purposes (as in vsftpd). Not actually
4836 using this class yet.
4838 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4839 system/libc usage here, as in vsftpd, for ease of auditing (and
4840 should also simplify portability). Haven't actually moved all the
4841 system/libc usage into here yet.
4843 2002-11-25 Havoc Pennington <hp@pobox.com>
4845 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4846 always print the first verbose message.
4848 2002-11-24 Havoc Pennington <hp@pobox.com>
4850 * test/echo-client.c, test/echo-server.c: cheesy test
4853 * configure.in (AC_CHECK_FUNCS): check for writev
4855 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4858 * dbus/dbus-list.c (_dbus_list_foreach): new function
4860 * dbus/dbus-internals.c (_dbus_verbose): new function
4862 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4863 representing a server that listens for connections.
4865 * dbus/.cvsignore: create
4867 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4868 public API for reporting errors
4870 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4871 public object representing a connection that
4872 sends/receives messages. (Same object used for
4873 both client and server.)
4875 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4876 Basic abstraction for different kinds of stream
4877 that we might read/write messages from.
4879 2002-11-23 Havoc Pennington <hp@pobox.com>
4881 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4884 * dbus/dbus-test.c (main): add list test, and include
4885 dbus-test.h as intended
4887 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4888 (_dbus_hash_table_remove_int): return value indicates
4889 whether the entry existed to remove
4891 * dbus/dbus-list.c: add linked list utility class,
4894 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4897 2002-11-23 Havoc Pennington <hp@pobox.com>
4899 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4900 DBUS_END_DECLS to nothing, that should fix this once and for all
4902 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4904 * dbus/dbus-message.c, dbus/dbus-hash.c:
4905 add some missing @brief
4907 2002-11-23 Havoc Pennington <hp@pobox.com>
4909 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4910 to avoid confusing Doxygen
4912 * dbus/dbus-hash.c: @} not }@
4914 * dbus/dbus-message.c (struct DBusMessage): split out
4917 2002-11-23 Havoc Pennington <hp@pobox.com>
4919 * configure.in: pile on more warning flags if using gcc
4921 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4922 to document static functions
4924 * configure.in: add summary to end of configure so it
4925 looks nice and attractive
4927 * dbus/dbus-hash.c: finish implementation and write unit
4930 * configure.in: add --enable-tests to enable unit tests
4932 * dbus/dbus-test.c: test program to run unit tests
4933 for all files in dbus/*, initially runs a test for
4936 * dbus/dbus-internals.h: file to hold some internal utility stuff
4938 2002-11-22 Havoc Pennington <hp@redhat.com>
4940 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4941 "ported" away from Tcl
4943 * dbus/dbus-types.h: header for types such as dbus_bool_t
4945 2002-11-22 Havoc Pennington <hp@redhat.com>
4947 * dbus/dbus.h: fixups for doc warnings
4949 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4951 (QUIET): make it quiet so we can see warnings
4953 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4955 2002-11-22 Havoc Pennington <hp@redhat.com>
4957 * Makefile.am: include "Doxyfile" target in all-local
4959 * configure.in: generate the Doxyfile
4961 * Doxyfile.in: move Doxyfile here, so we can use
4962 configure to generate a Doxyfile with the right
4965 2002-11-22 Havoc Pennington <hp@redhat.com>
4967 * dbus/dbus-message.c: move inline docs into .c file
4969 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4970 so all docs are under doc/
4971 (MAN_EXTENSION): generate man pages. Use extension
4972 ".3dbus" which matches ".3qt" on my system,
4973 I guess this is OK, I don't know really.
4974 (FILE_PATTERNS): look for .c files not .h, makes sense
4977 2002-11-22 Havoc Pennington <hp@pobox.com>
4979 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4980 because any app can be a server, and any app can be a client,
4981 the bus is a special kind of server.
4983 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4985 * Doxyfile : adding. Still needs Makefile rules to be generated
4986 automatically (just run "doxygen" in the toplevel dir for now to
4989 * dbus/dbus-message.h : Adding sample docs (javadoc since
4990 resembles gtk-doc a little more)
4992 * dbus/dbus.h : Adding sample docs
4994 2002-11-21 Havoc Pennington <hp@redhat.com>
4996 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4997 so we can allow ourselves to include files directly,
4998 instead of having to use dbus.h
5000 * dbus/dbus.h: fill in
5002 * dbus/dbus-message.h: sketch out a sample header file.
5003 Include griping if you include it directly instead of
5006 * dbus/dbus-macros.h: new file with macros for extern "C",
5007 TRUE/FALSE, NULL, etc.
5009 * doc/file-boilerplate.c: put include guards in here
5011 2002-11-21 Havoc Pennington <hp@redhat.com>
5013 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5015 * COPYING: include the GPL as well, and license code
5016 under both AFL and GPL.
5018 2002-11-21 Havoc Pennington <hp@redhat.com>
5020 * acconfig.h: get rid of this
5022 * autogen.sh (run_configure): add --no-configure option
5024 * configure.in: remove AC_ARG_PROGRAM to make
5025 autoconf complain less. add AC_PREREQ.
5026 add AC_DEFINE third arg.
5028 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5031 Fix references so we can distcheck.
5033 2002-11-21 Havoc Pennington <hp@redhat.com>
5035 * Initial module creation