1 2003-07-16 Havoc Pennington <hp@pobox.com>
3 * configure.in: print out EXPANDED_* variables in the summary at
4 the end; clean up the code that computes EXPANDED_ variables and
5 get the ones using exec_prefix right. Should make things work
6 when you build without --prefix
8 2003-06-29 Havoc Pennington <hp@pobox.com>
10 * mono/Test.cs (class Test): fire up a main loop and run it
12 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
13 done once, the app has to do it
15 2003-06-26 Havoc Pennington <hp@pobox.com>
17 * mono/Connection.cs: set up connection with the glib main loop
19 2003-07-01 Havoc Pennington <hp@redhat.com>
21 * doc/dbus-specification.sgml: clarify the format of a type code,
22 change suggested by Jim Blandy
24 2003-06-29 Miloslav Trmac <mitr@volny.cz>
27 * tools/Makefile.am: Don't assume srcdir == builddir.
29 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
31 (_dbus_memory_test): New function.
32 * dbus/dbus-test.h: Add _dbus_memory_test ().
33 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
35 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
37 (dbus_message_new): Remove obsolete @todo.
39 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
40 (_dbus_marshal_set_uint64): Fix comment.
42 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
43 hardcode FIELD_REPLY_SERIAL.
45 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
46 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
48 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
49 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
51 2003-06-24 Havoc Pennington <hp@pobox.com>
53 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
55 2003-06-23 Anders Carlsson <andersca@codefactory.se>
61 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
63 * gcj/org/Makefile.am:
64 * gcj/org/freedesktop/.cvsignore:
65 * gcj/org/freedesktop/Makefile.am:
66 * gcj/org/freedesktop/dbus/.cvsignore:
67 * gcj/org/freedesktop/dbus/Makefile.am:
68 * gcj/org/freedesktop/dbus/Message.java: (Message),
70 * gcj/org/freedesktop/dbus/natMessage.cc:
73 2003-06-22 Havoc Pennington <hp@pobox.com>
75 * mono/Connection.cs: add more bindings
77 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
80 2003-06-22 Havoc Pennington <hp@pobox.com>
82 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
83 Start wrapping more stuff.
85 2003-06-22 Havoc Pennington <hp@pobox.com>
87 * mono/Message.cs: implement Message.Wrap() that ensures we only
88 have a single C# wrapper per DBusMessage, assuming it works which
91 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
92 (dbus_message_free_data_slot): new
93 (dbus_message_set_data): new
94 (dbus_message_get_data): new
96 2003-06-22 Havoc Pennington <hp@pobox.com>
98 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
99 (_dbus_data_slot_allocator_alloc): rework these to keep a
100 reference count on each slot and automatically manage a global
101 slot ID variable passed in by address
103 * bus/bus.c: convert to new dataslot API
105 * dbus/dbus-bus.c: convert to new dataslot API
107 * dbus/dbus-connection.c: convert to new dataslot API
109 * dbus/dbus-server.c: convert to new dataslot API
111 * glib/dbus-gmain.c: ditto
115 * bus/connection.c: ditto
117 2003-06-22 Anders Carlsson <andersca@codefactory.se>
119 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
120 after the gcj checks so that the correct configuration tags
121 will be added to libtool.
123 * dbus-glib-1.pc.in: No need to specify any includes since
124 dbus-1.pc.in has those.
126 2003-06-22 Havoc Pennington <hp@pobox.com>
128 * mono/*, gcj/*, configure.in, Makefile.am:
129 Check in makefiles and subdirs for mono and gcj bindings.
130 Neither binding actually exists, just trying to get through
131 all the build and other boring bits.
133 2003-06-21 Philip Blundell <philb@gnu.org>
135 * tools/dbus-monitor.1: Updated.
137 * tools/dbus-send.1: Likewise.
139 2003-06-20 Anders Carlsson <andersca@codefactory.se>
141 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
142 for hangup and error after checking read so we won't discard
143 pending data if both hangup and read are set.
145 2003-06-19 Philip Blundell <philb@gnu.org>
147 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
149 * tools/dbus-send.c: Accept both --system and --session.
151 * tools/dbus-monitor.c: Same here.
153 2003-06-19 Anders Carlsson <andersca@codefactory.se>
155 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
156 from C++ (Patch by Miloslav Trmac).
158 2003-06-15 Joe Shaw <joe@assbarn.com>
160 * configure.in: Check for socklen_t.
162 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
164 * test/test-segfault.c: Add #include <sys/time.h>
166 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
167 dbus-launch needs it.
169 2003-06-09 Havoc Pennington <hp@redhat.com>
171 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
172 SUN_LEN, it breaks abstract socket usage
174 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
177 2003-06-04 Havoc Pennington <hp@pobox.com>
179 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
180 using unix:abstract=/foo, and when listening in a tmpdir
181 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
183 * dbus/dbus-transport.c (_dbus_transport_open): support
186 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
187 support abstract sockets
189 * dbus/dbus-transport-unix.c
190 (_dbus_transport_new_for_domain_socket): support abstract sockets
192 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
193 toggle as an argument, implement abstract namespace support
194 (_dbus_listen_unix_socket): ditto
196 * configure.in: add --enable-abstract-sockets and implement
197 a configure check for autodetection of the right value.
199 2003-06-01 Havoc Pennington <hp@pobox.com>
201 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
202 in /tmp (though on Linux this will end up being useless,
203 when we add abstract namespace support)
205 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
208 2003-05-28 Colin Walters <walters@verbum.org>
210 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
212 2003-05-18 Anders Carlsson <andersca@codefactory.se>
214 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
216 2003-05-17 Colin Walters <walters@gnu.org>
218 * tools/dbus-send.c: Don't exit with an error code if --help was
219 passed. Default to using the session bus instead of the system
222 * tools/dbus-launch.c: Ditto.
224 * tools/dbus-monitor.c: Ditto.
226 * tools/dbus-send.1: Update with new arguments.
228 * tools/dbus-launch.c: Emit code to export variables. New
229 arguments -s and -c to specify shell syntax, and a bit of code to
230 autodetect syntax. Also, allow specifying a program to run.
232 * tools/dbus-launch.1: Update with new arguments.
234 * tools/dbus-send.1: Ditto.
236 * tools/dbus-monitor.1: Ditto.
238 2003-05-17 Havoc Pennington <hp@pobox.com>
240 * bus/config-parser.c (merge_included): merge in policies from
241 child configuration file.
243 * bus/policy.c (bus_policy_merge): function to merge two policies
246 2003-05-16 Havoc Pennington <hp@redhat.com>
248 * dbus/dbus-connection.c: disable verbose lock spew
250 * tools/dbus-send.c: add --print-reply command line option
252 * tools/dbus-print-message.h (print_message): new util function
253 shared by dbus-send and dbus-monitor
255 * tools/dbus-monitor.c (handler_func): exit on disconnect
257 * dbus/dbus-transport-unix.c (do_reading): if the transport is
258 disconnected, don't try to use the read_watch
260 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
261 so we can find this bug more easily
263 2003-05-16 Havoc Pennington <hp@redhat.com>
265 * bus/policy.c (free_rule_list_func): avoid a crash when passed
266 NULL as DBusHashTable is annoyingly likely to do.
268 2003-05-16 Colin Walters <walters@verbum.org>
270 * tools/dbus-monitor.c: Add --session argument and usage()
273 * tools/dbus-monitor.1: Update with new --session arg.
275 * bus/Makefile.am (install-data-hook): Create
276 $(libdir)/dbus-1.0/services so that the session bus is happy.
278 2003-05-15 Havoc Pennington <hp@redhat.com>
280 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
281 on non-x86. ifdef's are evil.
283 2003-05-15 Havoc Pennington <hp@redhat.com>
289 * bus/Makefile.am (initddir): apparently we are supposed to put
290 init scripts in /etc/rc.d/init.d not /etc/init.d
292 * bus/Makefile.am: remove the "you must --enable-tests to make
293 check" as it broke distcheck
295 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
297 2003-05-13 James Willcox <jwillcox@gnome.org>
300 * bus/activation.c: (bus_activation_service_created),
301 (bus_activation_activate_service):
302 * bus/driver.c: (bus_driver_send_service_deleted),
303 (bus_driver_send_service_created), (bus_driver_send_service_lost),
304 (bus_driver_send_service_acquired),
305 (bus_driver_send_welcome_message),
306 (bus_driver_handle_list_services):
307 * bus/session.conf.in:
308 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
309 (dbus_bus_service_exists), (dbus_bus_activate_service):
312 Add some convenience API which lets you activate a service, and did a
313 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
314 and dbus_message_get_args()
316 2003-05-11 Havoc Pennington <hp@pobox.com>
318 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
319 calling _dbus_marshal_validate_arg() for every byte in a byte
322 * dbus/dbus-message-handler.c: use atomic reference counting to
323 reduce number of locks slightly; the global lock in here sucks
325 * dbus/dbus-connection.c
326 (_dbus_connection_update_dispatch_status_and_unlock): variant of
327 update_dispatch_status that can be called with lock held; then use
328 in a couple places to reduce locking/unlocking
329 (dbus_connection_send): hold the lock over the whole function
330 instead of acquiring it twice.
332 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
334 * bus/connection.c (bus_connections_setup_connection): fix access
335 to already-freed memory.
337 * dbus/dbus-connection.c: keep a little cache of linked list
338 nodes, to avoid using the global linked list alloc lock in the
339 normal send-message case. Instead we just use the connection lock
340 that we already have to take.
342 * dbus/dbus-list.c (_dbus_list_find_last): new function
344 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
345 change to use a struct for the atomic type; fix docs,
346 they return value before increment, not after increment.
348 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
349 (_dbus_string_append_8_aligned): new functions to try to
350 microoptimize this operation.
351 (reallocate_for_length): break this out of set_length(), to
352 improve profile info, and also so we can consider inlining the
355 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
356 strings with some preallocation, cuts down on our calls to realloc
357 a fair bit. Though if we can get the "move entire string to empty
358 string" optimization below to kick in here, it would be better.
360 * dbus/dbus-string.c (_dbus_string_move): just call
361 _dbus_string_move_len
362 (_dbus_string_move_len): add a special case for moving
363 an entire string into an empty string; we can just
364 swap the string data instead of doing any reallocs.
365 (_dbus_string_init_preallocated): new function
367 2003-05-11 Havoc Pennington <hp@pobox.com>
369 Write a "test-profile" that does echo client-server with threads;
370 profile reveals lock contention, memcpy/realloc of buffers, and
371 UTF-8 validation as hot spots. 20% of lock contention eliminated
372 with dbus_atomic_inc/dec implementation on x86. Much remaining
373 contention is global mempool locks for GList and DBusList.
375 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
378 * dbus/dbus-connection.c (struct DBusConnection): use
379 dbus_atomic_t for the reference count
381 * dbus/dbus-message.c (struct DBusMessage): declare
382 dbus_atomic_t values as volatile
384 * configure.in: code to detect ability to use atomic integer
385 operations in assembly, from GLib patch
387 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
388 time, tired of it being wrong in threads and forked processes
390 * glib/test-profile.c: a little program to bounce messages back
391 and forth between threads and eat CPU
393 * dbus/dbus-connection.c: add debug spew macros for debugging
394 thread locks; include config.h at top; fix deadlock in
395 dbus_connection_flush()
397 2003-05-08 Havoc Pennington <hp@pobox.com>
399 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
400 data from getting written, and there wasn't a good reason to
403 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
404 dbus_verbose lines in test coverage
405 (main): add list of functions sorted by # of untested blocks
406 to the coverage report
408 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
410 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
412 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
415 * test/data/auth/cancel.auth-script: test canceling an
418 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
419 aren't used. in CVS history if we end up needing them.
421 2003-05-04 Havoc Pennington <hp@pobox.com>
423 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
426 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
427 function, which assumed length was in # of strings, not bytes
429 * dbus/dbus-message.c (_dbus_message_test): add tests for some
432 * dbus/dbus-connection.c
433 (_dbus_connection_queue_received_message): disable function for
434 now, we are only using it in test mode
436 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
437 remove a mistaken FIXME
439 2003-05-04 Havoc Pennington <hp@pobox.com>
441 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
442 unlock mutex on successful return, patch from Anders Gustafsson
444 2003-05-04 Havoc Pennington <hp@pobox.com>
446 * dbus-glib-1.pc.in (Requires): fix dependencies, from
449 2003-05-04 Havoc Pennington <hp@pobox.com>
451 * tools/dbus-launch.c: implement
453 * bus/main.c (main), bus/bus.c (bus_context_new):
454 implement --print-pid and --fork
456 2003-05-03 Havoc Pennington <hp@redhat.com>
458 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
459 the address had no value, and add to test suite. Fix and
460 regression test from Miloslav Trmac
462 2003-05-03 Havoc Pennington <hp@pobox.com>
464 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
465 watch is invalid when handled
467 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
468 dbus-launch utility to launch the bus from a shell script. Didn't
469 actually implement dbus-launch yet, it's just a placeholder still.
471 2003-05-03 Havoc Pennington <hp@pobox.com>
473 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
474 daemon; also documents daemon config file, so replaces
475 doc/config-file.txt. Corrected some stuff from config-file.txt in
476 the process of moving it.
478 2003-05-03 Havoc Pennington <hp@pobox.com>
480 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
483 2003-05-03 Colin Walters <walters@verbum.org>
485 * dbus/dbus-sysdeps.c (fill_user_info): Test against
486 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
488 * Makefile.am: Update to use new .pc versioning scheme.
490 2003-05-02 Havoc Pennington <hp@redhat.com>
492 * bus/system.conf.in: allow send/receive to/from message bus
495 2003-04-30 Havoc Pennington <hp@redhat.com>
497 * configure.in: print a note when building with unit tests and
500 2003-04-30 Havoc Pennington <hp@redhat.com>
502 * Makefile.am: add a check-local that complains if you didn't
503 configure with --enable-tests
505 2003-04-29 Havoc Pennington <hp@redhat.com>
507 * glib/dbus-gmain.c: docs cleanups
509 * dbus/dbus-types.h: add docs on int64 types
511 * dbus/dbus-memory.c: fix docs to avoid putting private API in
512 public API docs section
514 2003-04-29 Havoc Pennington <hp@redhat.com>
516 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
517 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
518 parallel install API version, not with the D-BUS package version.
520 * HACKING: move some of README over here
522 * README: updates, and document API/ABI policy
524 * configure.in: reindentation
526 2003-04-29 Havoc Pennington <hp@redhat.com>
528 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
529 to use this library" to be sure people have the right
532 2003-04-28 Havoc Pennington <hp@redhat.com>
534 * configure.in: add --enable-docs which by default is auto yes if
535 doxygen and db2html found, no otherwise; but can be forced on/off
537 * doc/Makefile.am: conditionalize whether to build docs on
540 2003-04-28 Havoc Pennington <hp@redhat.com>
546 * bus/system.conf.in: add <includedir>system.d</includedir>
548 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
549 username was provided but not uid
551 * bus/config-parser.c (struct BusConfigParser): keep track of
552 whether the parser is toplevel or was included; change some
553 of the error handling if it's included.
555 2003-04-27 Havoc Pennington <hp@pobox.com>
559 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
560 report correct status if we finish processing authentication
561 inside this function.
563 * bus/activation.c (try_send_activation_failure): use
564 bus_transaction_send_error_reply
566 * bus/connection.c (bus_connection_get_groups): return an error
567 explaining the problem
569 * bus/bus.c (bus_context_check_security_policy): implement
570 restriction here that inactive connections can only send the
571 hello message. Also, allow bus driver to send anything to
574 * bus/connection.c (bus_connection_complete): create the
575 BusClientPolicy here instead of on-demand.
576 (bus_connection_get_policy): don't return an error
578 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
579 sender field in message being replied to
581 * bus/bus.c (bus_context_check_security_policy): fix silly typo
582 causing it to return FALSE always
584 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
585 we checked sender rather than destination
587 2003-04-25 Havoc Pennington <hp@redhat.com>
589 test suite is slightly hosed at the moment, will fix soon
591 * bus/connection.c (bus_connections_expire_incomplete): fix to
592 properly disable the timeout when required
593 (bus_connection_set_name): check whether we can remove incomplete
594 connections timeout after we complete each connection.
596 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
597 probably still broken.
599 * bus/services.c (bus_registry_acquire_service): implement max
600 number of services owned, and honor allow/deny rules on which
601 services a connection can own.
603 * bus/connection.c (bus_connection_get_policy): report errors here
605 * bus/activation.c: implement limit on number of pending
608 2003-04-25 Havoc Pennington <hp@redhat.com>
610 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
611 where we used >= 0 instead of != DBUS_UID_UNSET.
613 2003-04-25 Havoc Pennington <hp@redhat.com>
615 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
616 were toggled without add/remove, fix from Anders Gustafsson
618 2003-04-24 Havoc Pennington <hp@redhat.com>
620 * test/data/valid-config-files/basic.conf: add <limit> tags to
623 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
624 <limit> tag in configuration file.
626 2003-04-24 Havoc Pennington <hp@redhat.com>
628 * bus/dispatch.c: somehow missed some name_is
630 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
631 (_dbus_timeout_set_interval): new
633 * bus/connection.c (bus_connections_setup_connection): record time
634 when each connection is first set up, and expire them after the
637 2003-04-24 Havoc Pennington <hp@redhat.com>
639 * dbus/dbus-message.c (dbus_message_name_is): rename
640 (dbus_message_service_is): rename
641 (dbus_message_sender_is): rename
642 (dbus_message_get_service): rename
644 2003-04-24 Havoc Pennington <hp@redhat.com>
646 * configure.in: add --enable-checks
648 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
650 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
652 (_dbus_connection_handler_destroyed_locked): move some private
653 functions into proper docs group
655 * dbus/dbus-internals.h: add _dbus_return_if_fail,
656 _dbus_return_val_if_fail
658 Throughout: use dbus_return_if_fail
660 2003-04-23 James Willcox <jwillcox@gnome.org>
663 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
664 (dbus_connection_setup_with_g_main),
665 (dbus_server_setup_with_g_main):
666 * glib/test-dbus-glib.c: (main):
667 * glib/test-thread-client.c: (main):
668 * glib/test-thread-server.c: (new_connection_callback), (main):
669 * tools/dbus-monitor.c: (main):
671 Added a GMainContext argument to dbus_connection_setup_with_g_main()
672 and dbus_server_setup_with_g_main().
674 2003-04-20 Havoc Pennington <hp@pobox.com>
676 * doc/dbus-specification.sgml: document the restrictions on
677 message and service names
679 2003-04-22 Havoc Pennington <hp@redhat.com>
681 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
682 support, and do some code cleanups to share more code and
683 speed up array marshal/demarshal.
685 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
687 * configure.in: generate dbus-arch-deps.h
689 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
692 2003-04-22 Havoc Pennington <hp@redhat.com>
694 * test/data/valid-messages/opposite-endian.message: fix test
695 to use proper type for rply field
697 * test/data/invalid-messages: add tests for below validation
699 * dbus/dbus-message.c (decode_header_data): validate field types,
700 and validate that named fields are valid names
701 (decode_name_field): consider messages in the
702 org.freedesktop.Local. namespace to be invalid.
704 * dbus/dbus-string.c (_dbus_string_validate_name): new
706 2003-04-19 Havoc Pennington <hp@pobox.com>
708 * bus/driver.c (bus_driver_handle_hello): check limits and
709 return an error if they are exceeded.
711 * bus/connection.c: maintain separate lists of active and inactive
712 connections, and a count of each. Maintain count of completed
713 connections per user. Implement code to check connection limits.
715 * dbus/dbus-list.c (_dbus_list_unlink): export
717 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
718 number of bytes in the message queue for a connection
720 2003-04-18 Havoc Pennington <hp@pobox.com>
722 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
724 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
727 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
728 on realloc be sure to update the pointer in the keyring
730 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
731 offset to avoid writing to unallocated memory
733 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
734 try the next mechanism, so we properly handle OOM
736 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
738 (_dbus_keyring_new): fix OOM bug
739 (_dbus_keyring_new_homedir): always set error; impose a maximum
740 number of keys we'll load from the file, mostly to speed up the
741 test suite and make its OOM checks more useful, but also for
744 * dbus/dbus-auth.c (process_error_server): reject authentication
745 if we get an error from the client
746 (process_cancel): on cancel, send REJECTED, per the spec
747 (process_error_client): send CANCEL if we get an error from the
750 2003-04-18 Havoc Pennington <hp@pobox.com>
752 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
755 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
758 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
759 about DBUS_TEST_HOMEDIR once
761 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
764 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
765 config file so we test the right thing
767 Throughout: assorted docs improvements
769 2003-04-18 Havoc Pennington <hp@pobox.com>
771 * glib/dbus-gmain.c: adapt to watch changes
773 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
775 * dbus/dbus-server.h: remove dbus_server_handle_watch
777 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
779 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
780 like DBusTimeout, so we don't need dbus_connection_handle_watch
783 2003-04-17 Havoc Pennington <hp@redhat.com>
785 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
786 database usage so it all goes via the DBusUserDatabase cache.
788 2003-04-17 Havoc Pennington <hp@redhat.com>
790 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
791 there was an OOM watch we skipped, we always return TRUE so we
792 iterate again to have a look at it again. Fixes test suite hang.
793 Code rearrangement also lets us lose some memset and only iterate
796 * bus/driver.c (bus_driver_handle_message): sense of test for
799 2003-04-16 Havoc Pennington <hp@pobox.com>
801 * doc/dbus-specification.sgml: make spec say serials are unsigned
803 * dbus/dbus-message.h: change message serials to unsigned
805 * dbus/dbus-connection.c: adapt to message serials being unsigned
807 2003-04-15 Havoc Pennington <hp@pobox.com>
809 * bus/bus.c: create and keep around a shared DBusUserDatabase
812 * bus/connection.c (bus_connection_get_groups): don't cache
813 groups for user in the connection object, since user database
814 object now does that.
816 2003-04-16 Havoc Pennington <hp@redhat.com>
818 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
819 list of size counters
820 (_dbus_message_loader_putback_message_link): put back a popped link
822 * dbus/dbus-connection.c
823 (dbus_connection_set_max_live_messages_size): rename
825 (dbus_connection_get_outgoing_size): get size of outgoing
827 (_dbus_connection_set_connection_counter): remove this cruft
829 2003-04-14 Havoc Pennington <hp@redhat.com>
831 * dbus/dbus-userdb.c: user database abstraction, mostly to get
832 caching, but at some point we might want to be able to use a
835 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
836 SHA1 conf file to test the sha1 auth mechanism, since the regular
837 test always uses EXTERNAL when available.
840 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
841 add conf file that requires use of sha1 auth
843 2003-04-13 Havoc Pennington <hp@pobox.com>
845 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
846 from Philip Blundell to send messages and monitor them.
848 2003-04-13 Havoc Pennington <hp@pobox.com>
850 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
853 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
856 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
857 fix to only recover unused bytes if we're already authenticated
858 (_dbus_transport_get_is_authenticated): fix to still mark us
859 authenticated if there are unused bytes.
861 * bus/dispatch.c: implement security policy checking
863 * bus/connection.c (bus_transaction_send_from_driver): new
865 * bus/bus.c (bus_context_check_security_policy): new
867 * bus/dispatch.c (send_service_nonexistent_error): delete this,
868 now we just set the DBusError and it gets converted to an error
871 * bus/connection.c (allow_user_function): enable code using actual
872 data from the config file
874 * bus/policy.c (list_allows_user): handle wildcard rules for
875 user/group connection perms
877 2003-04-13 Havoc Pennington <hp@pobox.com>
879 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
881 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
883 * bus/policy.c (bus_policy_append_mandatory_rule)
884 (bus_policy_append_default_rule, bus_policy_append_user_rule)
885 (bus_policy_append_group_rule): new functions
887 2003-04-12 Havoc Pennington <hp@pobox.com>
889 * bus/config-parser.c (bus_config_parser_new): fix a memleak
891 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
892 the pid/gid/uid, just for paranoia.
894 * test/break-loader.c (randomly_do_n_things): find a byte
895 containing a type code, and randomly change it to a different
898 2003-04-12 Havoc Pennington <hp@pobox.com>
900 * bus/policy.h: change BusPolicy to be the thing from the config
901 file, and rename old BusPolicy to BusClientPolicy
903 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
904 match change in how policy works
906 * dbus/dbus-internals.h: mark assert_not_reached as
907 __attribute((noreturn))__
909 2003-04-11 Havoc Pennington <hp@redhat.com>
911 * doc/dbus-specification.sgml: fix a spot with the wrong name for
912 the broadcast service. Use boolean return for ServiceExists.
914 2003-04-11 Havoc Pennington <hp@redhat.com>
916 * configure.in: add another directory to look for qt in.
918 2003-04-11 Havoc Pennington <hp@redhat.com>
920 * AUTHORS: add Colin Walters
922 2003-04-11 Havoc Pennington <hp@redhat.com>
928 2003-04-11 Havoc Pennington <hp@redhat.com>
930 * bus/messagebus.in: remove pid file when stopping the
931 message bus, since the bus won't have privileges to remove it
934 2003-04-11 Havoc Pennington <hp@redhat.com>
936 * bus/bus.c (bus_context_new): move credentials change after
939 2003-04-11 Havoc Pennington <hp@pobox.com>
941 * test/decode-gcov.c: add "below average functions" to the
942 coverage report, and change how some of the code works.
944 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
945 not in the coverage stats.
947 * test/test-service.c (main): use _dbus_verbose not fprintf in a
948 couple places so running the test suite doesn't result in megaspam.
950 2003-04-11 Havoc Pennington <hp@pobox.com>
952 * bus/dispatch.c (check_existent_service_activation): accept a no
953 memory error in a place we didn't before
955 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
956 in case the first one failed," since the test suite is less
959 2003-04-10 Havoc Pennington <hp@pobox.com>
961 * bus/dispatch.c (check_segfault_service_activation): add test
962 for launching an executable that just crashes.
964 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
965 don't leave a million cores. We'll see how portable this is.
967 2003-04-10 Havoc Pennington <hp@pobox.com>
969 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
970 the possible parent failures before we fork, so that we don't
971 fail to create a babysitter after creating the child.
973 * bus/activation.c (bus_activation_activate_service): kill child
974 if we don't successfully complete the activation.
976 2003-04-10 Havoc Pennington <hp@redhat.com>
978 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
979 the connection if it's disconnected
981 * bus/activation.c (bus_activation_service_created): use new
982 transaction features to roll back removal of pending activation if
983 we don't successfully create the service after all. Don't remove
984 pending activation if the function fails.
986 * dbus/dbus-list.c (_dbus_list_insert_before_link)
987 (_dbus_list_insert_after_link): new code to facilitate
990 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
991 new functionality, so we can preallocate the ability to insert
994 * bus/connection.c (bus_transaction_add_cancel_hook): new function
995 allowing us to put custom hooks in a transaction to be used for
996 cancelling said transaction
998 * doc/dbus-specification.sgml: add some discussion of secondary
999 service owners, and disallow zero-length service names
1001 * bus/services.c (bus_registry_acquire_service): new function,
1002 splits out part of bus_driver_handle_acquire_service() and fixes
1003 a bug where we didn't remove the service doing the acquiring
1004 from the secondary queue if we failed to remove the current owner
1005 from the front of the queue.
1007 2003-04-10 Alexander Larsson <alexl@redhat.com>
1009 * doc/dbus-specification.sgml:
1010 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1012 2003-04-10 Alexander Larsson <alexl@redhat.com>
1017 Added files to cvsignore
1019 * dbus/dbus-message.h:
1020 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1021 Make get_named() take two out argument and return a boolean.
1022 (dbus_message_iter_get_args_valist):
1023 Update usage of get_named().
1024 (dbus_message_iter_append_byte):
1026 (dbus_message_iter_append_named)
1028 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1031 2003-04-10 Alexander Larsson <alexl@redhat.com>
1033 * dbus/dbus-marshal.[ch]:
1034 Add array_type_pos argument to _dbus_marshal_validate_arg.
1035 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1037 * dbus/dbus-message.[ch]:
1038 Multi-dimensional arrays have full type specification in the
1039 outermost array. Iter code re-arranged to handle this.
1040 Added some more iter tests.
1042 * doc/dbus-specification.sgml:
1045 Update new array encoding description.
1046 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1048 * test/data/invalid-messages/array-with-mixed-types.message:
1049 * test/data/valid-messages/array-of-array-of-uint32.message:
1050 Change to the new array format.
1052 * test/data/invalid-messages/too-short-dict.message:
1055 * test/data/valid-messages/recursive-types.message:
1056 Fix up and extend test.
1058 2003-04-10 Havoc Pennington <hp@pobox.com>
1060 * bus/dispatch.c: lots of fixes
1062 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1063 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1064 that was crack, broke the test service.
1066 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1067 handling to avoid piling up errors if we get a failure on the
1070 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1071 pid in assertion failures.
1073 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1074 to some fixed size of file descriptor array. Don't return TRUE
1075 anytime a timeout exists, that led to lots of busy loop silliness
1078 2003-04-09 Havoc Pennington <hp@redhat.com>
1080 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1081 I'd checked this in earlier but hadn't.
1083 2003-04-09 Havoc Pennington <hp@redhat.com>
1085 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1086 the activation test (man this is getting old!)
1088 2003-04-09 Havoc Pennington <hp@redhat.com>
1090 * test/test-utils.c: use dispatch status function to fix this up
1092 * bus/connection.c (connection_watch_callback): don't dispatch
1094 (connection_timeout_callback): don't dispatch from here
1095 (bus_connections_setup_connection): set the dispatch status function
1096 (bus_connection_disconnected): unset it
1098 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1099 used to add a connection to be dispatched
1100 (_dbus_loop_iterate): do the dispatching at the end of each
1103 * dbus/dbus-connection.c
1104 (dbus_connection_set_dispatch_status_function): new function
1105 allowing us to fix up main loop usage
1106 (_dbus_connection_last_unref): free all the various function
1108 (dbus_connection_dispatch): call the DispatchStatusFunction
1109 whenever this function returns
1110 (dbus_connection_handle_watch): call DispatchStatusFunction
1111 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1112 (reply_handler_timeout): call DispatchStatusFunction
1113 (dbus_connection_flush): call DispatchStatusFunction
1115 2003-04-09 Havoc Pennington <hp@redhat.com>
1117 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1120 * bus/dispatch.c (check_service_activated): fix bug in test
1122 * dbus/dbus-mainloop.c (check_timeout): fix this up
1124 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1125 verbose output so we can sort out output from different processes,
1126 e.g. in the activation case.
1128 2003-04-08 Colin Walters <walters@gnu.org>
1130 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1132 (bus_context_new): Set it.
1133 (bus_context_unref): Use it to delete the pid file.
1135 2003-04-08 Havoc Pennington <hp@redhat.com>
1137 * test/data/invalid-messages/array-with-mixed-types.message:
1138 regression test that fails for the moment
1140 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1141 tests for convenience
1143 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1144 array of nil, it broke things.
1146 * test/data/invalid-messages/array-of-nil.message: regression test
1148 * test/data/valid-messages/array-of-array-of-uint32.message:
1149 happened to write this so added it to suite
1151 2003-04-08 Havoc Pennington <hp@redhat.com>
1153 * bus/driver.c (bus_driver_handle_acquire_service): init
1154 retval/reply before checking name
1156 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1157 recursion depth argument
1159 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1160 in the public struct for future extension
1162 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1165 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1168 * doc/dbus-specification.sgml: fix typo
1170 2003-04-08 Alexander Larsson <alexl@redhat.com>
1172 Implemented recursive types, named types and new-style iters
1175 * glib/test-thread-client.c: (thread_func):
1176 * glib/test-thread-server.c: (handle_test_message):
1177 * test/test-service.c: (handle_echo):
1186 * dbus/dbus-internals.c: (_dbus_type_to_string):
1187 Update for new types.
1189 * dbus/dbus-marshal.[ch]:
1190 Implement recursive types and the new marshalling format.
1191 Remove hardcoded dict marshalling.
1192 Marshal named types.
1194 * dbus/dbus-message-builder.c:
1196 Remove references to old types
1198 * dbus/dbus-message.[ch]:
1199 New non-refcounted iter API that supports recursive iters.
1200 Use iters for appending, including support for recursive
1202 Add byte and named type support.
1203 Update everything to new marshalling formats.
1204 Add tests for new API.
1206 * dbus/dbus-protocol.h:
1207 Remove old array types.
1208 Add types: BYTE, ARRAY, DICT, NAMED
1210 * dbus/dbus-string.c:
1211 * dbus/dbus-sysdeps.c:
1212 Make parse_double locale safe.
1214 * dbus/dbus-test-main.c:
1220 * doc/dbus-specification.sgml:
1223 * test/data/incomplete-messages/missing-body.message:
1224 * test/data/invalid-messages/bad-boolean.message:
1225 * test/data/invalid-messages/bad-boolean-array.message:
1226 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1227 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1228 * test/data/invalid-messages/too-short-dict.message:
1229 * test/data/valid-messages/dict-simple.message:
1230 * test/data/valid-messages/dict.message:
1231 * test/data/valid-messages/emptiness.message:
1232 * test/data/valid-messages/lots-of-arguments.message:
1233 * test/data/valid-messages/no-padding.message:
1234 * test/data/valid-messages/recursive-types.message:
1235 Add missing NAME fields
1236 Fix up dicts & arrays
1238 * test/data/invalid-messages/dict-with-nil-value.message:
1239 Removed, this is not invalid anymore.
1241 * test/data/valid-messages/recursive-types.message:
1242 Add new test for deeply recursive types.
1244 2003-04-07 Havoc Pennington <hp@pobox.com>
1246 * bus/driver.c (bus_driver_handle_acquire_service): return an
1247 error if you try to acquire a service that starts with ':'
1249 2003-04-07 Havoc Pennington <hp@redhat.com>
1251 * doc/dbus-specification.sgml: require that base service names
1252 start with ':' and that the base service is created/deleted
1253 as first and last things a connection does on the bus
1255 * bus/dispatch.c (check_existent_service_activation): lots more
1256 work on the activation test; it doesn't fully pass yet...
1258 * test/test-service.c (main): fix so we don't memleak the
1259 connection to the message bus
1260 (filter_func): accept a message asking us to exit
1262 2003-04-06 Havoc Pennington <hp@pobox.com>
1264 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1267 * configure.in: fixes to Qt detection from Colin Walters
1269 * doc/Makefile.am: Only remove generated docbook dirs if they
1270 exist, from Colin Walters
1272 * dbus/dbus-bus.c: change how we set well-known connections to
1273 NULL, so that it works if a single connection is stored in
1274 two well-known array slots.
1276 * test/Makefile.am: remove a lot of stuff that isn't immediately
1277 useful, it's in CVS history if we want it.
1279 * test/test-service.c: use dbus-mainloop instead of that
1282 2003-04-06 Havoc Pennington <hp@pobox.com>
1284 * dbus/Makefile.am: split lists of sources into stuff that goes in
1285 the library, util functions that go in the lib and are also used
1286 elsewhere, and util functions that are used in tests/daemon but
1287 don't go in the lib.
1289 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1290 here so it can be used in test binaries also
1292 2003-04-06 Havoc Pennington <hp@pobox.com>
1294 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1295 here in the parent process, so we can return an error if it
1296 fails. Also, move some of the code into the child so the parent
1297 is less hosed if we fail midway through.
1299 * bus/bus.c (bus_context_new): move pidfile detection further up
1300 in the function, before we start overwriting sockets and such.
1302 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1304 * configure.in: add --with-system-pid-file and --with-system-socket
1306 2003-04-06 Colin Walters <walters@verbum.org>
1308 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1310 * bus/system.conf.in: Declare a pidfile.
1312 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1313 create one (if appropriate).
1315 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1316 (struct BusConfigParser) [pidfile]: New.
1317 (element_type_to_name, merge_included, start_busconfig_child)
1318 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1319 (bus_config_parser_unref): Free it.
1320 (bus_config_parser_get_pidfile): New function.
1322 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1324 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1326 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1328 * dbus/dbus-sysdeps.h: Prototype it.
1330 2003-04-06 Havoc Pennington <hp@pobox.com>
1332 * bus/bus.c (bus_context_new): print the address in here, rather
1333 than in main(), because we need to do it before forking the daemon
1335 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1336 on the service nonexistent error
1338 * bus/driver.c (bus_driver_handle_acquire_service): set the
1339 sender on the AcquireService reply
1341 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1342 server also listen on a UNIX socket so services can connect to it.
1344 2003-04-06 Havoc Pennington <hp@pobox.com>
1346 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1347 so it detects deadlocks and also we actually init threads when
1350 2003-04-06 Havoc Pennington <hp@pobox.com>
1352 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1353 save the domain socket name, and unlink it when we disconnect the
1354 server. Means that at least when we exit normally, we won't leave
1355 a bunch of junk in /tmp
1357 * dbus/dbus-transport-unix.c
1358 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1359 memory management). (I was making a real change here but then
1362 2003-04-06 Havoc Pennington <hp@pobox.com>
1364 * bus/bus.c (bus_context_new): fix wrong handling of
1365 server_data_slot_unref() in the error case.
1367 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1368 "(condition) != 0" to _dbus_real_assert so that
1369 "_dbus_assert (pointer)" doesn't cause a warning
1371 * bus/main.c (main): accept --print-address option to print out
1372 the message bus address
1374 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1376 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1377 "tmpdir" option to unix: address on client side
1379 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1382 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1383 we can use to create sockets in the test suite.
1385 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1386 cleanly. To be used for testing.
1388 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1390 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1392 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1393 handle trying to call this when there's no servers active
1395 2003-04-05 Havoc Pennington <hp@pobox.com>
1401 2003-04-05 Havoc Pennington <hp@pobox.com>
1403 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1404 crash on startup. Need to get "try starting the daemon"
1405 in the test suite I guess. ;-)
1407 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1408 tracked the number of open connections; it's better done in
1409 application-specific code as you want it to span all servers etc.
1411 2003-04-05 Havoc Pennington <hp@pobox.com>
1413 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1414 patch from Colin Walters
1416 2003-04-05 Havoc Pennington <hp@pobox.com>
1418 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1419 reality; in fact multiple mechanisms are allowed.
1421 * dbus/dbus-internals.c (_dbus_real_assert)
1422 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1423 _dbus_assert_not_reached() into functions, so that they don't show
1424 up in basic block counts for test coverage, and don't use up as
1425 much disk space. Does mean slower execution speed though, so
1426 assumes --disable-asserts is the normal production case.
1428 2003-04-05 Havoc Pennington <hp@pobox.com>
1430 * test/Makefile.am (dist-hook): also dist *.in files
1436 2003-04-05 Havoc Pennington <hp@pobox.com>
1438 * dbus/dbus-string.c: docs warning
1440 * dbus/dbus-spawn.c: missing docs
1442 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1444 2003-04-05 Havoc Pennington <hp@pobox.com>
1446 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1449 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1450 to -1 once we've reaped the babysitter
1451 (_dbus_babysitter_handle_watch): do as much work as we can, not
1454 * bus/activation.c: add code using DBusBabysitter so that we
1455 handle it when a service fails to start up properly.
1456 (bus_activation_service_created): don't remove the activation
1457 entries as we go, just let them get removed when we free the pending
1458 activation. Unref reply messages after sending them.
1460 2003-04-05 Havoc Pennington <hp@pobox.com>
1462 * test/decode-gcov.c (main): print per-directory stats in the report
1464 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1466 2003-04-05 Havoc Pennington <hp@pobox.com>
1468 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1470 * test/decode-gcov.c: hack up a little program to suck data
1471 out of gcov files. Yes this is sort of silly.
1473 * configure.in: define something in config.h and do an
1474 AM_CONDITIONAL when gcov is enabled
1476 2003-04-04 Havoc Pennington <hp@redhat.com>
1478 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1479 return a "babysitter" object that is used to monitor the status of
1480 the spawned process and reap it when required.
1482 * test/test-segfault.c, test/test-exit.c,
1483 test/test-sleep-forever.c: binaries that do various lame things,
1484 used in the test suite.
1486 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1488 2003-04-03 Havoc Pennington <hp@pobox.com>
1490 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1491 in preparation for modifying it, dbus-sysdeps is getting
1494 2003-04-03 Havoc Pennington <hp@redhat.com>
1496 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1499 * bus/*.[hc]: adapt to mainloop change
1501 2003-04-03 Havoc Pennington <hp@redhat.com>
1503 * bus/activation.c (load_directory): fix up memleaks
1504 (bus_activation_entry_free): free the entry
1506 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1507 we get one from the message bus; fix memleaks.
1509 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1511 2003-04-03 Havoc Pennington <hp@pobox.com>
1513 * bus/config-parser.c (bus_config_parser_unref): free
1514 list of mechanisms, bug discovered by test suite enhancements
1515 (putting system.conf and session.conf into suite)
1517 * test/Makefile.am, test/test-service.c: add placeholder for a
1518 test service that we'll activate as part of test suite. Doesn't
1521 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1522 setting NULL value, and use system malloc not dbus_malloc()
1523 when we have unavoidable memleakage.
1525 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1526 didn't work, and support DBUS_BUS_ACTIVATION.
1528 * bus/activation.c (child_setup): pass our well-known bus type to
1531 * bus/config-parser.c: support <type> to specify well-known type
1533 * doc/dbus-specification.sgml: document the env variables to
1534 locate well-known buses and find service activator
1536 2003-04-02 Havoc Pennington <hp@redhat.com>
1538 * test/Makefile.am (all-local): add a rule to copy tests to
1539 builddir, so we can have generated tests. Use this to remove the
1540 silly hack for testing system.conf and session.conf. Will use this
1541 shortly to generate .service files pointing to test binaries.
1543 2003-04-02 Havoc Pennington <hp@redhat.com>
1545 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1546 current alloc and needed new length, not max of the doubled
1547 allocation and needed new length. Also, when building tests,
1548 don't do the double-allocation stuff, just realloc every time.
1550 2003-04-02 Havoc Pennington <hp@redhat.com>
1552 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1554 (_dbus_string_get_dirname): new
1555 (_dbus_sysdeps_test): new
1556 (_dbus_directory_open): include dirnames in error messages
1558 * bus/config-parser.c: interpret <include> and <includedir> and
1559 <servicedir> relative to config file location if the given
1560 filename is not absolute.
1562 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1564 2003-04-02 Havoc Pennington <hp@redhat.com>
1566 * bus/connection.c (bus_transaction_send_error_reply): set sender
1567 service for the error, and unref the reply on success
1569 * bus/activation.c: convert to use BusTransaction so OOM can be
1571 (bus_activation_service_created): set sender of the message
1573 2003-04-01 Havoc Pennington <hp@redhat.com>
1575 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1576 <includedir> (at least mostly)
1578 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1579 first, then the user ID
1581 2003-04-01 Havoc Pennington <hp@pobox.com>
1583 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1586 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1588 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1590 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1591 socket 0777, and unlink any existing socket.
1593 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1594 the configuration file so specifies; set up auth mechanism
1597 * bus/config-parser.c (bus_config_parser_content): add support
1598 for <fork> option and fill in code for <auth>
1600 * bus/system.conf.in: add <fork/> to default configuration,
1601 and limit auth mechanisms to EXTERNAL
1603 * doc/config-file.txt (Elements): add <fork>
1605 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1606 (_dbus_change_identity): new function
1608 2003-03-31 Havoc Pennington <hp@redhat.com>
1610 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1611 (_dbus_listen_unix_socket): fix off-by-one error in null
1612 termination spotted by Nalin
1614 2003-03-31 Havoc Pennington <hp@redhat.com>
1616 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1617 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1618 having a real home directory available.
1620 2003-03-31 Havoc Pennington <hp@redhat.com>
1622 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1624 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1626 * configure.in: add support for specifying a style of init script
1629 2003-03-31 Havoc Pennington <hp@redhat.com>
1631 Fix some annoying DBusString API and fix all affected code.
1633 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1635 (_dbus_string_get_data): change to return string instead of using
1637 (_dbus_string_get_const_data): ditto
1638 (_dbus_string_get_data_len): ditto
1639 (_dbus_string_get_const_data_len): ditto
1641 2003-03-31 Havoc Pennington <hp@redhat.com>
1643 * bus/main.c (main): fix up the command line arguments to be nicer
1645 2003-03-31 Havoc Pennington <hp@redhat.com>
1647 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1648 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1649 final location that lands in the config file
1651 * bus/config-loader-expat.c (bus_config_load): fix type of
1654 * doc/TODO: remove TODO item for dbus_bus_get()
1656 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1658 2003-03-31 Havoc Pennington <hp@pobox.com>
1660 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1661 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1662 argument since they are always client side
1664 * dbus/dbus-server.c (dbus_server_get_address): new function
1666 * bus/main.c (main): take the configuration file as an argument.
1668 * test/data/valid-config-files/debug-allow-all.conf: new file to
1669 use with dispatch.c tests for example
1671 * bus/test-main.c (main): require test data dir
1673 * bus/bus.c (bus_context_new): change this to take a
1674 configuration file name as argument
1676 * doc/config-file.txt (Elements): add <servicedir>
1678 * bus/system.conf, bus/session.conf: new files
1680 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1681 well-known socket if none set
1683 * configure.in: create system.conf and session.conf
1685 2003-03-30 Havoc Pennington <hp@pobox.com>
1687 * bus/config-parser.c: hacking
1689 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1690 to shut down, since it could cause weirdness with the DBusList
1693 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1694 link-oriented stack routines
1695 (alloc_link): free the mempool if the first alloc from it fails
1697 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1699 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1701 (_dbus_string_skip_white): new
1703 * doc/config-file.txt (Elements): add <includedir>
1705 2003-03-28 Havoc Pennington <hp@pobox.com>
1707 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1708 (_dbus_string_copy_data): new functions
1710 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1712 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1716 * dbus/dbus-memory.c:
1719 2003-03-28 Havoc Pennington <hp@pobox.com>
1721 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1722 I think it may have just been superstition. Not sure.
1724 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1725 failures that were not being handled.
1727 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1729 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1730 row that will fail on out-of-memory.
1732 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1733 function for testing out-of-memory handling.
1735 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1736 allocation functions, they do map exactly to the expat ones.
1738 2003-03-27 Havoc Pennington <hp@redhat.com>
1740 * bus/config-loader-libxml.c (bus_config_load): add another error
1743 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1746 Add note about automatic service activation.
1748 * doc/dbus-specification.sgml:
1749 Rename the specification and clarify a few things.
1751 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1754 * dbus/dbus-address.c:
1756 * dbus/dbus-marshal.c:
1757 * dbus/dbus-server-debug-pipe.c:
1758 * dbus/dbus-transport-unix.c:
1759 Fix documentation warnings.
1761 2003-03-26 Havoc Pennington <hp@pobox.com>
1763 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1764 after every test so it's quick and easy to see which leaked, and
1765 so we test multiple dbus_shutdown() calls
1767 * configure.in: change configure.in XML stuff to also support
1770 * config-loader-libxml.c: some hacking
1772 * config-loader-expat.c: some hacking
1774 * config-parser.c: some hacking, plus tests
1776 2003-03-25 Havoc Pennington <hp@redhat.com>
1778 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1780 * configure.in: add --with-xml option to specify XML library,
1781 right now only libxml is supported.
1783 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1784 nonworking code between home and work, still just stubs
1786 2003-03-24 Havoc Pennington <hp@redhat.com>
1788 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1791 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1792 NULL argument for "message" if the error is a well-known one,
1793 fill in a generic message in this case.
1795 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1798 * bus/test.c (bus_test_flush_bus): add
1800 * bus/policy.c (bus_policy_test): test code stub
1802 2003-03-24 Havoc Pennington <hp@pobox.com>
1804 * bus/connection.c (bus_connections_setup_connection): set up
1805 the "can this user connect" function, but it always returns
1806 TRUE until we have a config file parser so we can have a config
1807 file that allows connections.
1809 2003-03-23 Havoc Pennington <hp@pobox.com>
1811 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1812 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1813 the mutex, so we can check for proper memory management
1816 * dbus/dbus-dataslot.c: remove the mutex from
1817 DBusDataSlotAllocator and lock it manually when using it,
1818 to simplify fitting it into the global slots framework.
1820 * dbus/dbus-threads.c (init_static_locks): rework how we're
1821 handling global locks so they are easily shut down.
1823 * bus/policy.c (bus_policy_append_rule): fix
1825 * bus/test-main.c (main): check for memleaks
1827 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1828 test suite check for memleaks
1830 * dbus/dbus-memory.c: add support in test mode for tracking
1831 number of outstanding blocks
1833 2003-03-23 Havoc Pennington <hp@pobox.com>
1835 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1838 * dbus/dbus-hash.h: add ULONG hash keys
1840 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1841 (_dbus_get_group_id): new function
1843 2003-03-20 Havoc Pennington <hp@redhat.com>
1845 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1847 (dbus_connection_get_unix_user): new function
1849 2003-03-20 Havoc Pennington <hp@pobox.com>
1851 * bus/connection.c (bus_connection_send_oom_error): assert that
1852 message has a sender
1853 (connection_execute_transaction): ditto
1854 (bus_connection_preallocate_oom_error): fix to set the sender, and
1855 set recipient to the destination service, not the bus driver
1857 * bus/policy.c: hacking
1859 * dbus/dbus-message.c (dbus_message_service_is): new function
1860 (dbus_message_sender_is): new
1862 2003-03-19 Havoc Pennington <hp@redhat.com>
1864 * bus/policy.c: start sketching code for policy restrictions on
1865 what connections can do.
1867 2003-03-18 Havoc Pennington <hp@redhat.com>
1869 * doc/TODO: some notes on high-level todo items. Little nitpick
1870 stuff is all in @todo, so no need to add it here.
1872 * doc/config-file.txt: some notes on how config file might look
1874 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1880 2003-03-17 Havoc Pennington <hp@redhat.com>
1882 * dbus/dbus-internals.h: add gcc attributes so that
1883 our printf-style functions warn on bad arguments to
1886 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1889 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1892 2003-03-17 Havoc Pennington <hp@redhat.com>
1894 * bus/test-main.c (main): make it print something as it runs
1895 so make check doesn't look stuck
1897 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1898 from CVS, now obsolete
1900 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1902 * bus/dispatch.c: (bus_dispatch):
1903 Refetch the service name since it may have been reallocated
1904 when dbus_message_set_sender was called.
1906 * dbus/dbus-sysdeps.c: (_dbus_accept):
1907 Add address and address length variables and use them to stop
1908 valgrind from complaining.
1910 2003-03-17 Havoc Pennington <hp@pobox.com>
1912 All tests pass, no memleaks, no valgrind complaints.
1914 * bus/test.c: refcount handler_slot
1916 * bus/connection.c (bus_connections_new): refcount
1917 connection_data_slot
1919 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1920 bytes so that auth scripts pass.
1922 * bus/dispatch.c: init message_handler_slot so it gets allocated
1925 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1927 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1928 dealloc server_pipe_hash when no longer used for benefit of
1931 * dbus/dbus-auth.c (process_command): memleak fix
1933 * bus/dispatch.c (check_hello_message): memleak fix
1935 2003-03-16 Havoc Pennington <hp@pobox.com>
1937 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1939 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1941 * bus/activation.c (bus_activation_activate_service): Append
1942 the pending activation entry to the list of pending activations.
1944 2003-03-16 Havoc Pennington <hp@pobox.com>
1946 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1949 * dbus/dbus-address.c (create_entry): fix OOM handling when
1950 failing to alloc entry->method
1952 2003-03-16 Havoc Pennington <hp@pobox.com>
1954 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1957 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1958 add some missing dbus_set_result
1960 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1961 alloc the DBusMessageHandler
1963 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1964 the transport here, since we call this from the finalizer; it
1965 resulted in a double-finalize.
1967 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1968 where we tried to use transport->connection that was NULL,
1969 happened when transport was disconnected early on due to OOM
1971 * bus/*.c: adapt to handle OOM for watches/timeouts
1973 * dbus/dbus-transport-unix.c: port to handle OOM during
1976 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1977 reference to unused bytes instead of a copy
1979 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1982 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1985 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1988 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1990 * doc/dbus-specification.sgml:
1991 Document reply message for ActivateService.
1993 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1995 * bus/activation.c: (bus_pending_activation_entry_free),
1996 (bus_pending_activation_free), (bus_activation_new),
1997 (bus_activation_unref), (bus_activation_service_created),
1998 (bus_activation_activate_service):
2000 * bus/bus.c: (bus_context_new):
2001 * bus/desktop-file.c: (new_section):
2002 * bus/driver.c: (bus_driver_send_service_deleted),
2003 (bus_driver_handle_activate_service):
2004 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2006 * dbus/dbus-connection.c:
2007 (dbus_connection_send_with_reply_and_block):
2008 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2009 * dbus/dbus-protocol.h:
2010 Make activation work better. Now pending activations will be queued
2011 and the daemon won't try to activate services that are already registered.
2013 2003-03-16 Havoc Pennington <hp@pobox.com>
2015 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2018 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2019 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2021 2003-03-16 Havoc Pennington <hp@pobox.com>
2023 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2024 this. always run the test suite before commit...
2026 * bus/*: adapt to DBusConnection API changes
2028 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2029 requires renaming stuff to avoid dbus_connection_dispatch name
2032 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2035 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2036 separate from _dbus_message_loader_return_buffer()
2038 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2039 this, because it's now always broken to use; the number of
2040 messages in queue vs. the number still buffered by the message
2041 loader is undefined/meaningless. Should use
2042 dbus_connection_get_dispatch_state().
2043 (dbus_connection_dispatch): rename from
2044 dbus_connection_dispatch_message
2046 2003-03-16 Havoc Pennington <hp@pobox.com>
2048 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2051 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2053 * dbus/dbus-connection.c:
2054 (dbus_connection_send_with_reply_and_block):
2055 Decrease connection->n_incoming when removing an entry
2057 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2058 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2059 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2060 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2061 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2062 (dbus_dict_get_byte_array):
2063 Handle NULL arrays and strings. Also add support for byte arrays.
2065 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2066 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2067 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2068 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2069 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2070 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2071 * dbus/dbus-marshal.h:
2072 Add support for marshalling and demarshalling empty arrays and strings.
2074 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2075 (dbus_message_append_string_array),
2076 (dbus_message_iter_get_boolean),
2077 (dbus_message_iter_get_boolean_array),
2078 (dbus_message_iter_get_int32_array),
2079 (dbus_message_iter_get_uint32_array),
2080 (dbus_message_iter_get_double_array),
2081 (dbus_message_iter_get_byte_array),
2082 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2083 (check_message_handling):
2084 Add support for getting empty arrays and dicts.
2086 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2087 Don't do any validation at all for now, that's better than just checking
2090 * test/data/valid-messages/emptiness.message:
2091 New test message with lots of empty arrays.
2093 2003-03-16 Havoc Pennington <hp@pobox.com>
2095 * dbus/dbus-connection.c
2096 (_dbus_connection_queue_received_message_link): new function that
2097 can't fail due to OOM
2099 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2100 new function pops a message together with a list link
2103 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2104 message queuing functions to avoid needing to alloc memory
2106 2003-03-16 Havoc Pennington <hp@pobox.com>
2108 Oops - test code was only testing failure of around 30 of the
2109 mallocs in the test path, but it turns out there are 500+
2110 mallocs. I believe this was due to misguided linking setup such
2111 that there was one copy of dbus_malloc etc. in the daemon and one
2112 in the shared lib, and only daemon mallocs were tested. In any
2113 case, the test case now tests all 500+ mallocs, and doesn't pass
2114 yet, though there are lots of fixes in this patch.
2116 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2117 this so that it doesn't need to allocate memory, since it
2118 has no way of indicating failure due to OOM (and would be
2119 annoying if it did).
2121 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2123 * bus/Makefile.am: rearrange to create two self-contained
2124 libraries, to avoid having libraries with overlapping symbols.
2125 that was resulting in weirdness, e.g. I'm pretty sure there
2126 were two copies of global static variables.
2128 * dbus/dbus-internals.c: move the malloc debug stuff to
2131 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2134 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2136 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2139 * bus/dispatch.c (bus_dispatch_add_connection): free
2140 message_handler_slot when no longer using it, so
2141 memory leak checkers are happy for the test suite.
2143 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2145 * bus/bus.c (new_connection_callback): disconnect in here if
2146 bus_connections_setup_connection fails.
2148 * bus/connection.c (bus_connections_unref): fix to free the
2150 (bus_connections_setup_connection): if this fails, don't
2151 disconnect the connection, just be sure there are no side
2154 * dbus/dbus-string.c (undo_alignment): unbreak this
2156 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2158 (_dbus_auth_new): fix the order in which we free strings
2161 * bus/connection.c (bus_connection_disconnected): fix to
2162 not send ServiceDeleted multiple times in case of memory
2165 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2166 get the base service name
2167 (dbus_bus_register_client): don't return base service name,
2168 instead store it on the DBusConnection and have an accessor
2170 (dbus_bus_register_client): rename dbus_bus_register()
2172 * bus/dispatch.c (check_hello_message): verify that other
2173 connections on the bus also got the correct results, not
2174 just the one sending hello
2176 2003-03-15 Havoc Pennington <hp@pobox.com>
2178 Make it pass the Hello handling test including all OOM codepaths.
2179 Now to do other messages...
2181 * bus/services.c (bus_service_remove_owner): fix crash when
2182 removing owner from an empty list of owners
2183 (bus_registry_ensure): don't leave service in the list of
2184 a connection's owned services if we fail to put the service
2187 * bus/connection.c (bus_connection_preallocate_oom_error): set
2188 error flag on the OOM error.
2190 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2191 handle _dbus_transport_set_connection failure
2193 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2194 to create watches up front and simply enable/disable them as
2196 (unix_connection_set): this can now fail on OOM
2198 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2199 of enabling/disabling a watch or timeout.
2201 * bus/loop.c (bus_loop_iterate): don't touch disabled
2204 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2206 2003-03-15 Havoc Pennington <hp@pobox.com>
2208 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2209 write useful test code, after all that futzing around ;-)
2211 Test does not yet pass because we can't handle OOM in
2212 _dbus_transport_messages_pending (basically,
2213 dbus_connection_preallocate_send() does not prealloc the write
2214 watch). To fix this, I think we need to add new stuff to
2215 set_watch_functions, namely a SetEnabled function so we can alloc
2216 the watch earlier, then enable it later.
2218 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2219 dbus-memory.c to the convenience lib
2221 * bus/test.c: rename some static functions to keep them clearly
2222 distinct from stuff in connection.c. Handle client disconnection.
2224 2003-03-14 Havoc Pennington <hp@pobox.com>
2226 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2227 transport, tests more of the real codepath. Set up clients
2228 with bus_setup_debug_client.
2230 * bus/test.c (bus_setup_debug_client): function to set up debug
2231 "clients" on the main loop
2233 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2236 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2239 * dbus/dbus-server-debug.c: support a debug server based on pipes
2241 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2242 (_dbus_close): new function
2244 * configure.in: check for socketpair
2246 2003-03-14 Havoc Pennington <hp@redhat.com>
2248 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2251 * dbus/dbus-transport-debug.c: rework this a good bit to be
2252 less complicated. hopefully still works.
2254 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2257 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2260 * dbus/dbus-message.c (dbus_message_copy): rename from
2261 dbus_message_new_from_message, fix it up to copy
2262 all the message fields, add test case
2264 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2265 not quite passing yet
2267 2003-03-14 Havoc Pennington <hp@pobox.com>
2269 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2270 until no work remains" in test code. (the large diff here
2271 is just code movement, no actual changes)
2273 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2274 1, no point waiting around for test code.
2275 (_dbus_server_debug_accept_transport): unref the timeout
2276 after adding it (right?)
2278 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2280 2003-03-13 Havoc Pennington <hp@redhat.com>
2282 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2285 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2288 * dbus/dbus-connection.h: Make AddWatchFunction and
2289 AddTimeoutFunction return a bool so they can fail on out-of-memory
2291 * bus/bus.c (bus_context_new): set up timeout handlers
2293 * bus/connection.c (bus_connections_setup_connection): set up
2296 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2299 * bus/bus.c (bus_context_new): adapt to changes
2301 * bus/connection.c: adapt to changes
2303 * test/watch.c: adapt to DBusWatch changes
2305 * bus/dispatch.c (bus_dispatch_test): started adding this but
2308 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2310 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2312 2003-03-13 Havoc Pennington <hp@pobox.com>
2314 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2315 set up a test framework as for the library
2317 2003-03-12 Havoc Pennington <hp@pobox.com>
2319 Throughout: purge global variables, introduce BusActivation,
2320 BusConnections, BusRegistry, etc. objects instead.
2322 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2325 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2326 going to redo this a bit differently I think
2328 2003-03-12 Havoc Pennington <hp@redhat.com>
2330 Mega-patch that gets the message bus daemon initially handling
2331 out-of-memory. Work still needed. Also lots of random
2332 moving stuff to DBusError instead of ResultCode.
2334 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2336 * dbus/dbus-connection.c
2337 (dbus_connection_send_with_reply_and_block): use DBusError
2339 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2342 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2343 code here, as the only failure possible is OOM.
2345 * bus/connection.c (bus_connection_disconnect):
2346 rename bus_connection_disconnected as it's a notification only
2348 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2349 "name" on get_args failure, should be done by get_args;
2350 don't disconnect client for bad args, just return an error.
2351 (bus_driver_handle_service_exists): ditto
2353 * bus/services.c (bus_services_list): NULL-terminate returned array
2355 * bus/driver.c (bus_driver_send_service_lost)
2356 (bus_driver_send_service_acquired): send messages from driver to a
2357 specific client to the client's unique name, not to the broadcast
2360 * dbus/dbus-message.c (decode_header_data): reject messages that
2361 contain no name field
2362 (_dbus_message_get_client_serial): rename to
2363 dbus_message_get_serial and make public
2364 (_dbus_message_set_serial): rename from set_client_serial
2365 (_dbus_message_set_reply_serial): make public
2366 (_dbus_message_get_reply_serial): make public
2368 * bus/connection.c (bus_connection_foreach): allow stopping
2369 iteration by returning FALSE from foreach function.
2371 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2372 (dbus_connection_free_preallocated_send)
2373 (dbus_connection_preallocate_send): new API for sending a message
2374 without possibility of malloc failure.
2375 (dbus_connection_send_message): rename to just
2376 dbus_connection_send (and same for whole function family)
2378 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2380 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2382 * bus/activation.c: handle/return errors
2384 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2386 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2387 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2388 (_dbus_result_from_errno): move to this file
2390 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2392 * dbus/dbus-marshal.c:
2393 (_dbus_marshal_set_string):
2394 Take a length argument so we can marshal the correct string
2397 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2398 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2399 (_dbus_marshal_test):
2400 * dbus/dbus-marshal.h:
2401 Add support for marshalling and demarshalling dicts.
2403 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2404 Add support for TYPE DICT.
2406 * dbus/dbus-message.c: (set_string_field):
2407 Adjust header padding.
2409 (dbus_message_append_args_valist), (dbus_message_append_dict),
2410 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2411 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2412 (check_message_handling), (check_have_valid_message):
2413 * dbus/dbus-message.h:
2414 Add functions for setting and getting dicts.
2416 * dbus/dbus-protocol.h:
2422 * doc/dbus-specification.sgml:
2423 Add information about how dicts are marshalled.
2425 * test/data/invalid-messages/dict-with-nil-value.message:
2426 * test/data/invalid-messages/too-short-dict.message:
2427 * test/data/valid-messages/dict-simple.message:
2428 * test/data/valid-messages/dict.message:
2429 Add sample messages containing dicts.
2431 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2433 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2435 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2438 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2439 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2440 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2441 (dbus_dict_set_double), (dbus_dict_set_string),
2442 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2443 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2444 (dbus_dict_set_string_array), (_dbus_dict_test):
2446 Fix according to comments from Havoc.
2448 2003-03-06 Michael Meeks <michael@server.home>
2450 * configure.in: if we don't have kde-config, disable have_qt.
2452 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2457 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2458 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2459 (dbus_dict_remove), (dbus_dict_get_value_type),
2460 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2461 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2462 (dbus_dict_put_double), (dbus_dict_put_string),
2463 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2464 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2465 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2466 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2467 (dbus_dict_get_double), (dbus_dict_get_string),
2468 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2469 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2470 (dbus_dict_get_string_array), (_dbus_dict_test):
2472 Add DBusDict implementation
2474 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2478 2003-03-04 Havoc Pennington <hp@pobox.com>
2480 * test/data/auth/*: adapt to changes
2482 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2483 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2486 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2487 more stuff from being in a context name, to make the protocol
2488 simpler to deal with
2490 * dbus/dbus-errors.c (dbus_error_has_name): new function
2491 (dbus_error_is_set): new function
2493 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2494 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2496 * dbus/dbus-connection.c (dbus_connection_flush): also read
2497 messages during a flush operation
2499 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2501 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2503 * configure.in: Check for gethostbyname on Solaris.
2505 * dbus/dbus-transport.c: (_dbus_transport_open):
2506 Remove duplicate "tcp" entry.
2508 * doc/dbus-specification.sgml:
2509 Clarify some things.
2511 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2513 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2514 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2515 (_dbus_keyring_test):
2516 * dbus/dbus-md5.c: (_dbus_md5_compute):
2517 * dbus/dbus-sha.c: (_dbus_sha_compute):
2520 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2522 * README: Add some things.
2524 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2526 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2527 after case DBUS_TYPE_BOOELAN.
2529 2003-03-02 Havoc Pennington <hp@pobox.com>
2531 * test/break-loader.c (randomly_set_extreme_ints): add test that
2532 sets really huge and small integers
2534 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2535 that length of boolean array fits in the string, and that
2536 string has room for boolean value in single-bool case.
2538 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2539 optional value to "ALIGN" command which is what to fill the
2542 * test/data/valid-messages/no-padding.message: add regression
2543 test for the message padding problem
2545 2003-03-02 Havoc Pennington <hp@pobox.com>
2547 * dbus/dbus-message.c (decode_header_data): fix to always init
2548 message_padding, from Benjamin Dauvergne
2550 2003-03-02 Havoc Pennington <hp@pobox.com>
2556 2003-03-01 Joe Shaw <joe@assbarn.com>
2558 * configure.in: Check for "struct cmsgcred" and try to access its
2559 members for BSD-like unices.
2561 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2562 _dbus_read_credentials_unix_socket().
2563 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2564 read() for reading the credential byte off the unix socket. Use
2565 struct cmsgcred on systems that support it.
2567 2003-02-27 Alexander Larsson <alexl@redhat.com>
2571 Make gthreads-2.0 dependency optional. Don't build thread test if
2574 2003-02-27 Havoc Pennington <hp@pobox.com>
2576 * dbus/dbus-connection.c
2577 (dbus_connection_send_message_with_reply_and_block): fix doh!
2578 doh! doh! bug that resulted in never removing a reply from the
2579 queue, no wonder we called get_reply_serial so much ;-)
2581 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2582 and client serial instead of demarshaling them every time
2584 2003-02-27 Havoc Pennington <hp@pobox.com>
2586 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2587 more inlined, using dbus-string-private.h, speeds things up
2590 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2591 when freeing the string
2592 (_dbus_string_steal_data): fix for align offset
2593 (undo_alignment): new function
2595 2003-02-26 Havoc Pennington <hp@redhat.com>
2597 All kinds of audit fixes from Owen, plus initial attempt to
2598 handle unaligned memory returned from malloc.
2600 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2601 leave room for align_offset and nul byte
2602 (fixup_alignment): function to track an align_offset and
2603 ensure real->str is aligned
2604 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2605 to allow a nul byte plus align offset
2606 (_dbus_string_lock): fix overflow issue
2607 (_dbus_string_init_const_len): add assertions on sanity of len,
2608 assign allocated to be ALLOCATION_PADDING larger than len
2609 (set_length): fixup the overflow handling
2610 (_dbus_string_get_data_len): fix overflow in assertion
2611 (open_gap): detect overflow in size of gap to be opened
2612 (_dbus_string_lengthen): add overflow check
2613 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2614 (_dbus_string_append): add overflow check
2615 (_dbus_string_append_unichar): overflow
2616 (_dbus_string_delete): fix overflow in assertion
2617 (_dbus_string_copy_len): overflow in assertion
2618 (_dbus_string_replace_len): overflows in assertions
2619 (_dbus_string_find): change to implement in terms of
2620 _dbus_string_find_to
2621 (_dbus_string_find_to): assorted fixage
2622 (_dbus_string_equal_c_str): assert c_str != NULL,
2623 fix logic so the function works
2624 (_dbus_string_ends_with_c_str): fix overflow thingy
2625 (_dbus_string_base64_encode): overflow fix
2626 (_dbus_string_validate_ascii): overflow
2627 (_dbus_string_validate_nul): overflow
2629 2003-02-26 Havoc Pennington <hp@redhat.com>
2631 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2633 2003-02-26 Alexander Larsson <alexl@redhat.com>
2636 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2638 * dbus/dbus-connection.c:
2639 * dbus/dbus-connection.h:
2640 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2641 Add dbus_connection_set_wakeup_main_function and use it when queueing
2642 incoming and outgoing messages.
2645 * dbus/dbus-dataslot.c:
2646 Threadsafe usage of DBusDataSlotAllocator
2648 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2651 * dbus/dbus-server-unix.c:
2654 * glib/dbus-gmain.c:
2655 Implement the new wakeup functions for glib.
2658 * glib/test-thread-client.c:
2659 * glib/test-thread-server.c:
2660 * glib/test-thread.h:
2661 Initial cut at some thread test code. Not really done yet.
2663 2003-02-26 Havoc Pennington <hp@pobox.com>
2665 * dbus/dbus-connection.c
2666 (dbus_connection_send_message_with_reply_and_block): fix crash
2667 where we ref'd the outgoing message instead of the returned reply
2669 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2670 at the end of this function, so if we didn't need to read for
2671 authentication, we reinstall it for receiving messages
2673 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2674 a NULL sender for peer-to-peer case
2676 * dbus/dbus-transport-unix.c (check_read_watch): handle
2677 !authenticated case correctly
2679 * glib/dbus-gmain.c: add support for DBusServer
2681 * dbus/dbus-server.c: add data slot support
2683 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2684 return values and handle errors
2686 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2689 * Doxyfile.in (INPUT): add glib subdir
2691 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2692 setup_with_g_main instead of hookup_with_g_main; write docs
2694 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2696 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2697 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2698 * dbus/dbus-message.c: (dbus_message_append_boolean),
2699 (dbus_message_append_boolean_array),
2700 (dbus_message_get_args_valist), (_dbus_message_test):
2701 * dbus/dbus-message.h:
2702 * doc/dbus-specification.sgml:
2703 Various fixes as pointed out by Havoc.
2705 * test/data/invalid-messages/bad-boolean-array.message:
2706 * test/data/invalid-messages/bad-boolean.message:
2707 Add invalid boolean value test cases.
2709 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2711 * dbus/dbus-internals.c: (_dbus_type_to_string):
2712 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2713 (_dbus_marshal_validate_arg):
2714 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2715 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2716 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2717 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2718 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2719 (dbus_message_iter_get_double),
2720 (dbus_message_iter_get_boolean_array), (message_iter_test):
2721 * dbus/dbus-message.h:
2722 * dbus/dbus-protocol.h:
2723 * doc/dbus-specification.sgml:
2724 * test/data/valid-messages/lots-of-arguments.message:
2725 Add support for boolean and boolean array types.
2727 2003-02-23 Havoc Pennington <hp@pobox.com>
2729 * dbus/dbus-keyring.c: finish most of this implementation and
2732 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2733 these barf if the error isn't cleared to NULL
2735 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2736 (_dbus_create_directory): new function
2738 * dbus/dbus-errors.c (dbus_set_error): fix warning
2740 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2741 (_dbus_string_hex_decode): new function
2742 (test_hex_roundtrip): test code
2744 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2746 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2748 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2749 the save-to-temp/rename trick to atomically write the new file
2750 (_dbus_string_parse_uint): new function
2752 2003-02-22 Havoc Pennington <hp@pobox.com>
2754 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2756 2003-02-22 Havoc Pennington <hp@pobox.com>
2758 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2759 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2761 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2763 * dbus/test/data/sha-1: add US government test suite for SHA-1
2765 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2767 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2768 Make string arrays NULL-terminated.
2770 * dbus/dbus-memory.c: (dbus_free_string_array):
2771 * dbus/dbus-memory.h:
2772 New function for freeing NULL-terminated string arrays.
2774 * dbus/dbus-message-builder.c: (append_quoted_string),
2775 (_dbus_message_data_load):
2776 Add support for array types.
2778 * dbus/dbus-message.c: (check_message_handling):
2779 Add more types as test cases.
2781 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2782 (_dbus_string_parse_double):
2783 Add the start offset to the end offset.
2785 * test/data/valid-messages/lots-of-arguments.message:
2786 New test message with lots of arguments.
2788 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2790 * dbus/dbus-message.c: (dbus_message_append_nil),
2791 (dbus_message_append_int32), (dbus_message_append_uint32),
2792 (dbus_message_append_double), (dbus_message_append_string),
2793 (dbus_message_append_int32_array),
2794 (dbus_message_append_uint32_array),
2795 (dbus_message_append_double_array),
2796 (dbus_message_append_byte_array),
2797 (dbus_message_append_string_array):
2798 Fix all out-of-memory handling in these functions.
2800 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2802 * dbus/dbus-message.c: (dbus_message_append_nil):
2805 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2807 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2808 (dbus_message_append_nil), (dbus_message_append_int32_array),
2809 (dbus_message_append_uint32_array),
2810 (dbus_message_append_double_array),
2811 (dbus_message_append_byte_array),
2812 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2813 (dbus_message_iter_get_int32_array),
2814 (dbus_message_iter_get_uint32_array),
2815 (dbus_message_iter_get_double_array),
2816 (dbus_message_iter_get_byte_array),
2817 (dbus_message_iter_get_string_array):
2819 * dbus/dbus-message.h:
2820 Add functions for appending and getting arrays.
2822 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2824 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2825 element size at least 8 bytes, fixes mempool tests on
2828 2003-02-20 Alexander Larsson <alexl@redhat.com>
2830 * dbus/dbus-transport-unix.c (unix_do_iteration):
2831 Unlock the connection mutex during a blocking select call.
2832 Add todo about how we need a way to wake up the select.
2834 * dbus/dbus-connection-internal.h:
2835 * dbus/dbus-connection.c:
2836 Add _dbus_connection_lock and _dbus_connection_unlock.
2838 2003-02-19 Havoc Pennington <hp@pobox.com>
2840 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2841 Doxyfile.in, not Doxyfile
2843 * dbus/dbus-keyring.c: do some hacking on this
2845 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2847 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2849 (dbus_set_error): remove dbus_error_init, check for message ==
2850 NULL *before* we sprintf into it, and add @todo about including
2851 system headers in this file
2853 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2855 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2857 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2858 get various bits of user information based on either username
2860 (_dbus_homedir_from_username): new function
2862 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2865 Add check for nonposix getpwnam_r
2867 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2868 Align the pool element size to a sizeof (void *) boundary.
2870 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2871 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2872 General Solaris fixes.
2874 * test/data/valid-messages/simplest-manual.message:
2875 Explicitly state that we want little-endian packing.
2877 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2879 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2881 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2882 Added to create a transport connecting using a tcp/ip socket.
2884 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2885 to a tcp socket at given host and port.
2886 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2889 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2891 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2892 Added to create a server listening on a TCP/IP socket.
2894 2003-02-19 Havoc Pennington <hp@pobox.com>
2896 Throughout: mop up all the Doxygen warnings and undocumented
2899 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2900 to search any paths.
2902 * dbus/dbus-threads.c: move global mutex initializers to
2903 dbus-internals.h, multiple prototypes was confusing doxygen
2904 besides being kind of ugly
2906 * Doxyfile (PREDEFINED): have Doxygen define
2907 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2908 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2909 (do not abuse the feature! it's for stuff like the autogenerated
2910 macros in dbus-md5.c, not just for things you don't feel like
2913 2003-02-18 Havoc Pennington <hp@pobox.com>
2915 * dbus/dbus-string.c (_dbus_string_zero): new function
2917 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2918 wrap it in some dbus-friendly API
2920 * dbus/dbus-types.h: add 16-bit types
2922 2003-02-18 Joe Shaw <joe@assbarn.com>
2924 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2925 credentials from our currently running process.
2926 (get_word): Fix a buglet where we were copying the entire length
2927 instead of relative to our position.
2929 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2930 keys on the stack... it's 640k of data.
2932 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2933 read the credentials byte off the socket, even if we don't have
2935 (_dbus_poll): Implement poll() using select() for systems which
2938 * glib/test-dbus-glib.c (main): Print out an error if no
2939 parameters are given.
2941 * test/data/auth/fallback.auth-script: Added. Tests that a client
2942 can fallback to a secondary auth mechanism if the first fails.
2944 2003-02-18 Havoc Pennington <hp@pobox.com>
2948 2003-02-17 Havoc Pennington <hp@pobox.com>
2950 * doc/dbus-specification.sgml: lots of cosmetic
2951 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2952 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2953 s/server/bus/ (except in authentication section). Add a section
2954 "Message Bus Message Routing"
2956 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2962 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2964 * doc/dbus-specification.sgml:
2965 Specification updates.
2967 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2969 * bus/activation.c: (bus_activation_init), (child_setup),
2970 (bus_activation_activate_service):
2972 * bus/main.c: (main):
2973 Set DBUS_ADDRESS environment variable.
2975 * dbus/dbus-errors.c: (dbus_set_error):
2976 Don't use va_copy since that's a C99 feature.
2978 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2979 (_dbus_spawn_async):
2980 * dbus/dbus-sysdeps.h:
2981 Add child_setup_func to _dbus_spawn_async.
2983 * doc/dbus-specification.sgml:
2984 Update specification.
2986 * test/spawn-test.c: (setup_func), (main):
2989 2003-02-17 Alexander Larsson <alexl@redhat.com>
2991 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2994 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2998 * doc/dbus-test-plan.sgml:
2999 Add test plan document.
3004 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3006 * dbus/dbus-message.c: (decode_header_data),
3007 (_dbus_message_loader_return_buffer):
3008 Set the header padding amount when loading a message.
3010 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3012 * bus/dispatch.c: (send_one_message):
3013 Only send broadcast messages to registered connections.
3015 * dbus/dbus-message.c: (dbus_message_name_is):
3016 * dbus/dbus-message.h:
3017 New convenience function.
3019 * dbus/dbus-transport-debug.c: (do_reading):
3020 Only dispatch one message per run.
3023 * test/bus-test.c: (new_connection_callback), (die),
3024 (test_hello_client1_handler), (test_hello_client2_handler),
3025 (test_hello_replies), (main):
3027 * test/bus-test-loop.[ch]:
3030 2003-02-16 Havoc Pennington <hp@pobox.com>
3032 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3033 backward conditional
3035 2003-02-16 Alexander Larsson <alexl@redhat.com>
3037 * dbus/dbus-connection.c:
3038 Implement sent_message_with_reply. (with_reply_and block is still
3040 Made dispatch_message not lose message if OOM.
3042 * dbus/dbus-errors.h:
3043 Add NoReply error (for reply timeouts).
3045 2003-02-16 Alexander Larsson <alexl@redhat.com>
3047 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3048 Actually free keys and values when destroying hashtable.
3050 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3052 * dbus/dbus-auth.c: (client_try_next_mechanism):
3055 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3056 Return TRUE if there's no thread implementation around.
3058 * glib/dbus-gmain.c: (free_source),
3059 (dbus_connection_hookup_with_g_main):
3060 Make sure to remove the GSource when the connection is finalized.
3062 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3064 * bus/dispatch.c: (bus_dispatch_message_handler):
3065 * dbus/dbus-errors.h:
3066 Return an error if someone tries to send a message to a service
3069 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3071 * bus/activation.c: (load_directory), (bus_activation_init),
3072 (bus_activation_activate_service):
3075 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3076 More work on the activation handling.
3078 * dbus/dbus-errors.h:
3079 Add some error messages
3081 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3082 * dbus/dbus-message.h:
3083 New function that creates an error message.
3085 * dbus/dbus-protocol.h:
3086 Add ACTIVATE_SERVER message.
3088 * dbus/dbus-server-unix.c: (unix_handle_watch),
3089 (_dbus_server_new_for_domain_socket):
3090 Call _dbus_fd_set_close_on_exec.
3092 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3093 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3094 (_dbus_fd_set_close_on_exec):
3095 * dbus/dbus-sysdeps.h:
3096 Add _dbus_fd_set_close_on exec function. Also add function that checks
3097 that all open fds are set to close-on-exec and warns otherwise.
3099 * dbus/dbus-transport-unix.c:
3100 (_dbus_transport_new_for_domain_socket):
3101 Call _dbus_fd_set_close_on_exec.
3103 2003-02-16 Havoc Pennington <hp@pobox.com>
3105 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3106 allow people to avoid setting SIGPIPE to SIG_IGN
3107 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3108 we've been asked not to
3110 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3112 * dbus/dbus-list.c: (_dbus_list_append_link),
3113 (_dbus_list_prepend_link):
3114 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3118 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3121 * bus/activation.c: (bus_activation_entry_free),
3122 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3124 * bus/main.c: (main):
3125 Add simple activation support, doesn't work yet though.
3127 2003-02-15 Zack Rusin <zack@kde.org>
3129 * qt/dbus-qthread.cpp: small casting fix
3131 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3133 * dbus/dbus-errors.c: (dbus_set_error):
3134 * dbus/dbus-errors.h:
3135 Add a few errors and make dbus_set_error void.
3137 * dbus/dbus-sysdeps.c:
3138 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3139 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3140 * dbus/dbus-sysdeps.h:
3141 Add _dbus_spawn_async.
3143 * test/spawn-test.c: (main):
3144 Test for _dbus_spawn_async.
3146 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3148 * dbus/dbus-internals.h:
3149 Fix build without tests.
3151 * dbus/dbus-list.c: (alloc_link):
3152 Fix a segfault when a malloc fails.
3154 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3155 (dbus_malloc0), (dbus_realloc):
3156 Add support for malloc debugging.
3158 2003-02-15 Alexander Larsson <alexl@redhat.com>
3160 * dbus/dbus-threads.c:
3161 * dbus/dbus-threads.h:
3162 Add condvars. Remove static mutext from API.
3163 Implement static mutexes by initializing them from threads_init.
3165 * glib/dbus-gthread.c:
3166 * qt/dbus-qthread.cpp:
3167 Update with the thread api changes.
3172 Turn StaticMutex into normal mutex + init function.
3173 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3174 _dbus_list_append_link, _dbus_list_prepend_link
3177 * dbus/dbus-sysdeps.c:
3178 * dbus/dbus-sysdeps.h:
3179 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3180 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3182 * dbus/dbus-protocol.h:
3183 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3185 * dbus/dbus-message.c:
3186 Make ref/unref atomic.
3189 * dbus/dbus-connection-internal.h:
3190 * dbus/dbus-connection.c:
3191 * dbus/dbus-connection.h:
3193 Change _peek to _borrow,_return & _steal_borrowed.
3194 Change disconnect callback to event.
3195 Make dbus_connection_dispatch_messages reentrant.
3197 * dbus/dbus-transport.c:
3198 Don't ref the connection on calls to the transport
3201 * dbus/dbus-message-handler.c:
3204 * glib/dbus-gmain.c:
3205 Don't use peek_message anymore
3208 * test/debug-thread.c:
3209 * test/debug-thread.h:
3210 Simple thread implementation that asserts() on deadlocks in
3211 single-threaded code.
3214 (main) Call debug_threads_init.
3217 Use disconnect message instead of disconnect callback.
3221 Don't call dbus_connection_set_disconnect_function. Instead export
3222 bus_connection_disconnect.
3225 Call bus_connection_disconnect when we get a disconnected message.
3227 2003-02-15 Havoc Pennington <hp@pobox.com>
3229 * dbus/dbus-message.c (dbus_message_new): fool around with the
3232 2003-02-14 Havoc Pennington <hp@pobox.com>
3234 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3236 * dbus/dbus-memory.c: fail if the debug functions indicate we
3239 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3240 (_dbus_decrement_fail_alloc_counter): debug functions to
3241 simulate memory allocation failures
3243 2003-02-14 Havoc Pennington <hp@pobox.com>
3245 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3248 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3250 * bus/driver.c: (bus_driver_handle_hello):
3252 * bus/services.c: (bus_service_lookup):
3253 Reorder message sending so we get a more sane order.
3255 * test/bus-test.c: (message_handler):
3258 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3260 * bus/driver.c: (bus_driver_send_service_deleted),
3261 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3262 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3263 (bus_driver_send_welcome_message),
3264 (bus_driver_handle_list_services),
3265 (bus_driver_handle_acquire_service),
3266 (bus_driver_handle_service_exists):
3267 * dbus/dbus-bus.c: (dbus_bus_register_client),
3268 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3269 * dbus/dbus-errors.c: (dbus_result_to_string):
3270 * dbus/dbus-errors.h:
3271 * dbus/dbus-message.c: (dbus_message_append_args),
3272 (dbus_message_append_args_valist), (dbus_message_get_args),
3273 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3274 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3275 (dbus_message_iter_get_byte_array),
3276 (dbus_message_iter_get_string_array), (message_iter_test),
3277 (check_message_handling), (_dbus_message_test):
3278 * dbus/dbus-message.h:
3279 * test/bus-test.c: (main):
3280 Change fields to arguments in messages, so that they won't be
3281 confused with header fields.
3283 * glib/test-dbus-glib.c: (main):
3284 Remove append_fields from hello message.
3286 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3288 * dbus/dbus-errors.c:
3289 * dbus/dbus-message.c:
3290 * dbus/dbus-string.c:
3291 Documentation fixes.
3293 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3295 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3297 Implement support for timeouts in dbus-glib.
3299 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3301 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3302 * dbus/dbus-message.c: (process_test_subdir):
3303 * test/break-loader.c: (find_breaks_based_on):
3304 Plug some memory leaks.
3306 2003-02-13 Richard Hult <rhult@codefactory.se>
3308 * bus/main.c: Fix build.
3310 * dbus/dbus-errors.h:
3311 * dbus/dbus-errors.c: Fix copyright for Anders.
3313 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3318 * bus/connection.c: (bus_connection_foreach):
3321 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3322 (unescape_string), (new_section), (parse_section_start),
3323 (parse_key_value), (report_error), (bus_desktop_file_load),
3324 (bus_desktop_file_get_string):
3325 * bus/desktop-file.h:
3326 Use DBusError for error reporting.
3328 * bus/dispatch.c: (send_one_message),
3329 (bus_dispatch_message_handler):
3330 * bus/driver.c: (bus_driver_send_service_deleted),
3331 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3332 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3333 (bus_driver_send_welcome_message),
3334 (bus_driver_handle_list_services),
3335 (bus_driver_handle_acquire_service),
3336 (bus_driver_handle_service_exists):
3337 * bus/loop.c: (bus_loop_run):
3339 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3341 * bus/utils.c: (bus_wait_for_memory):
3343 New files with general utility functions.
3345 * dbus/dbus-internals.h:
3346 Remove _DBUS_HANDLE_OOM.
3348 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3350 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3351 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3352 * dbus/dbus-errors.h:
3353 Add DBusError structure.
3355 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3357 * test/data/valid-messages/standard-acquire-service.message:
3358 * test/data/valid-messages/standard-hello.message:
3359 * test/data/valid-messages/standard-list-services.message:
3360 * test/data/valid-messages/standard-service-exists.message:
3361 Add some standard messages.
3363 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3365 * bus/driver.c: (bus_driver_send_welcome_message),
3366 (bus_driver_handle_list_services),
3367 (bus_driver_handle_acquire_service),
3368 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3369 Update for API changes in libdbus.
3371 * dbus/dbus-message.c: (dbus_message_new_reply):
3372 * dbus/dbus-message.h:
3373 Remove the name argument. The spec states that replies shouldn't
3376 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3378 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3379 (report_error), (bus_desktop_file_load), (lookup_section),
3380 (lookup_line), (bus_desktop_file_get_raw),
3381 (bus_desktop_file_get_string):
3382 * bus/desktop-file.h:
3383 Some fixes, and new functions for getting a key value from a section.
3385 2003-02-13 Havoc Pennington <hp@pobox.com>
3387 * test/data/auth/fail-after-n-attempts.auth-script: new test
3389 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3392 2003-02-13 Havoc Pennington <hp@pobox.com>
3394 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3395 dbus_credentials_match were backward
3397 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3398 NO_CREDENTIALS and ROOT_CREDENTIALS
3400 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3401 into here. Never process more commands after we've reached an
3402 end state; store further data as unused bytes.
3404 * test/data/auth/*: add more auth tests
3406 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3407 command to match exact string and EXPECT_UNUSED to match unused
3410 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3412 2003-02-12 Havoc Pennington <hp@pobox.com>
3414 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3415 \r off of popped lines
3417 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3420 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3423 2003-02-12 Havoc Pennington <hp@pobox.com>
3425 * dbus/Makefile.am: remove break-loader from the build, since it
3428 * configure.in: add --enable-gcov to turn on coverage profiling
3429 flags and disable optimization
3431 2003-02-10 Havoc Pennington <hp@pobox.com>
3433 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3434 initial cut at test framework for DBusAuth from laptop.
3435 Doesn't quite work yet but it compiles and I need to get
3436 it off the 266mhz laptop. ;-)
3438 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3439 fix a memleak in error case
3441 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3444 * bus/desktop-file.c:
3445 * bus/desktop-file.h:
3446 Add a desktop file parser.
3448 2003-02-11 Zack Rusin <zack@kde.org>
3450 * qt/message.[h|cpp]: sample implementation
3451 of the KDE wrapper for DBusMessage
3453 2003-02-09 Zack Rusin <zack@kde.org>
3455 * test/bus-test.c: make_it_compile
3456 * doc/dbus-specification.sgml: minimal semantic fix
3458 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3464 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3467 * dbus/dbus-break-loader.c:
3469 * test/break-loader.c:
3470 Move dbus-break-loader to test/ and rename it to break-loader.
3472 2003-02-02 Havoc Pennington <hp@pobox.com>
3474 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3475 for code to manage cookies in your home directory
3477 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3479 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3480 to authenticate, then disconnect the client.
3482 2003-02-03 Alexander Larsson <alexl@redhat.com>
3484 * dbus/dbus-message.c (dbus_message_append_fields):
3487 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3489 * doc/dbus-specification.sgml:
3490 Update address format section.
3492 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3495 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3496 (message_handler), (new_connection_callback), (loop_quit),
3500 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3502 * bus/driver.c: (bus_driver_handle_service_exists):
3503 Simplify the code a bit.
3505 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3508 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3511 Add libdbus-daemon.la and link to it.
3513 2003-02-01 James Willcox <jwillcox@gnome.org>
3515 * bus/driver.c: (bus_driver_handle_own_service):
3516 Actually include the service reply code in the message.
3518 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3520 * bus/driver.c: (bus_driver_handle_service_exists):
3521 Don't unref the incoming message.
3523 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3525 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3527 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3529 * dbus/dbus-server.c: (dbus_server_listen):
3530 * dbus/dbus-transport.c: (_dbus_transport_open):
3531 ifdef out the calls to the debug transport and server.
3533 2003-02-02 Alexander Larsson <alexl@redhat.com>
3535 * dbus/dbus-watch.c (dbus_watch_get_flags):
3536 Add note in the docs that ERROR or HANGUP won't be returned
3537 and are assumed always on.
3539 * glib/dbus-gmain.c (add_watch):
3540 Always add IO_ERR | IO_HUP
3542 * dbus/dbus-message.h:
3543 Add semicolon after dbus_message_iter_get_string_array().
3544 Makes qt code build again
3546 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3548 * bus/driver.c: (create_unique_client_name),
3549 (bus_driver_handle_hello):
3550 Don't take a name, just use a numeric id to identify
3554 * dbus/dbus-bus.c: (dbus_bus_register_client),
3555 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3557 Add new convenience functions for communicating with the bus.
3559 * dbus/dbus-message.h:
3561 * dbus/dbus-protocol.h:
3564 2003-02-01 Alexander Larsson <alexl@redhat.com>
3566 * dbus/dbus-message.c (dbus_message_append_fields):
3567 Add some more doc comments.
3569 2003-02-01 Havoc Pennington <hp@pobox.com>
3571 * dbus/dbus-break-loader.c (randomly_modify_length): change
3572 a 4-byte value in the message as if it were a length
3574 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3575 execute bit on saved files
3577 2003-02-01 Havoc Pennington <hp@pobox.com>
3579 * dbus/dbus-break-loader.c (main): new program to find messages
3580 that break the loader.
3582 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3583 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3585 * dbus/dbus-string.c (_dbus_string_set_byte): new
3587 2003-01-31 Havoc Pennington <hp@pobox.com>
3589 * dbus/dbus-message.c: refactor the test code to be more general,
3590 in preparation for writing a "randomly permute test cases to
3591 try to break the loader" program.
3593 2003-01-31 Havoc Pennington <hp@pobox.com>
3595 * doc/dbus-specification.sgml: work on the specification
3597 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3598 the protocol version of the message.
3600 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3601 no longer specifies that.
3602 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3605 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3606 "break" for DBUS_TYPE_NIL, remove @todo
3608 2003-01-31 Havoc Pennington <hp@pobox.com>
3610 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3611 just set_is_error/get_is_error as this is a commonly-used
3612 function, and write docs.
3614 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3616 * dbus/dbus-address.c: (dbus_address_entry_free):
3617 Free key and value lists.
3619 * dbus/dbus-internals.c: (_dbus_type_to_string):
3620 Add the types we didn't have.
3622 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3623 (_dbus_marshal_validate_arg):
3626 * dbus/dbus-message.c: (dbus_message_set_sender):
3627 Remove todo about being able to set sender to NULL.
3629 (dbus_message_set_is_error_reply),
3630 (dbus_message_get_is_error_reply):
3631 * dbus/dbus-message.h:
3634 * dbus/dbus-protocol.h:
3635 Add error reply flag.
3637 * test/data/valid-messages/opposite-endian.message:
3638 Add NIL type to test.
3640 2003-01-31 Havoc Pennington <hp@pobox.com>
3642 * doc/dbus-specification.sgml: fully specify the header. Add
3643 flags and major protocol version, and change header/body len to
3646 * dbus/dbus-message-builder.c (append_saved_length): append length
3649 * dbus/dbus-message.c (dbus_message_create_header): change header
3650 length and body length to unsigned. Add the new fields from the
3652 (_dbus_message_loader_return_buffer): unsigned header/body len
3654 2003-01-30 Havoc Pennington <hp@pobox.com>
3656 * dbus/dbus-auth.c: rework to use only REJECTED, no
3659 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3660 use REJECTED, suggested by Mark McLoughlin
3662 2003-01-30 Havoc Pennington <hp@pobox.com>
3664 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3665 a better way to report errors here. e.g. "unix address lacks
3666 path" or something. also "no such file" when the path doesn't
3669 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3671 (dbus_parse_address): add @todo about documenting address format,
3672 and allowing , and ; to be escaped
3674 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3677 Add dbus-address.[ch]
3679 * dbus/dbus-address.c: (dbus_address_entry_free),
3680 (dbus_address_entries_free), (create_entry),
3681 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3682 (dbus_parse_address), (_dbus_address_test):
3683 * dbus/dbus-address.h:
3684 New files for dealing with address parsing.
3686 * dbus/dbus-connection.c:
3687 Document timeout functions.
3689 * dbus/dbus-message.c:
3690 Document dbus_message_new_from_message.
3692 * dbus/dbus-server-debug.c:
3695 * dbus/dbus-server.c: (dbus_server_listen):
3696 Parse address and use correct server implementation.
3698 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3699 * dbus/dbus-string.h:
3700 New function with test.
3702 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3706 * dbus/dbus-transport-debug.c:
3709 * dbus/dbus-transport.c: (_dbus_transport_open):
3710 Parse address and use correct transport implementation.
3712 2003-01-30 Havoc Pennington <hp@pobox.com>
3714 * dbus/dbus-message.c: use message->byte_order instead of
3715 DBUS_COMPILER_BYTE_ORDER throughout.
3716 (dbus_message_create_header): pad header to align the
3717 start of the body of the message to 8-byte boundary
3719 * dbus/dbus-marshal.h: make all the demarshalers take const
3720 DBusString arguments.
3722 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3723 validate message args here, so we don't have to do slow validation
3724 later, and so we catch bad messages as they are incoming. Also add
3725 better checks on header_len and body_len. Also fill in
3728 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3729 implemented properly)
3730 (_dbus_string_validate_nul): new function to check all-nul
3732 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3733 get_arg_end_pos and remove all validation
3734 (_dbus_marshal_validate_arg): actually do validation here.
3736 2003-01-29 Havoc Pennington <hp@pobox.com>
3738 * dbus/dbus-message.c (check_message_handling): fix assertion
3739 failure on set_client_serial
3741 2003-01-28 Havoc Pennington <hp@pobox.com>
3743 * dbus/dbus-server-debug.c: Add doc section comments
3745 * dbus/dbus-transport-debug.c: add doc section comments
3747 2003-01-28 Havoc Pennington <hp@redhat.com>
3749 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3750 the reverse order from how I had it
3751 (_dbus_string_base64_encode): reverse encoding order. I was
3752 basically byteswapping everything during encoding.
3754 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3756 * dbus/dbus-connection-internal.h:
3757 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3758 (_dbus_connection_remove_timeout):
3759 Add functions for adding and removing timeouts.
3761 * dbus/dbus-message.c: (dbus_message_new_from_message):
3762 Add new function that takes a message and creates an exact
3763 copy of it, but with the refcount set to 1.
3764 (check_message_handling):
3767 * dbus/dbus-server-protected.h:
3768 * dbus/dbus-server.c: (_dbus_server_init_base),
3769 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3770 (dbus_server_set_timeout_functions):
3771 (_dbus_server_remove_timeout):
3772 New functions so that a server can add and remove timeouts.
3774 (dbus_server_listen):
3775 Add commented out call to dbus_server_debug_new.
3777 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3778 Actually set the handler, doh.
3780 * dbus/dbus-transport.c: (_dbus_transport_open):
3781 Add commented out call to dbus_transport_debug_client_new.
3784 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3786 2003-01-28 Havoc Pennington <hp@pobox.com>
3788 * dbus/dbus-message.c (check_message_handling): function to check
3789 on the loaded message, iterates over it etc.
3791 2003-01-28 Havoc Pennington <hp@pobox.com>
3793 * test/Makefile.am (dist-hook): fix make distdir
3795 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3797 2003-01-27 Havoc Pennington <hp@pobox.com>
3799 * dbus/dbus-mempool.c (time_for_size): replace printf with
3802 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3803 empty lines; fix the SAVE_LENGTH stuff to be
3804 START_LENGTH/END_LENGTH so it actually works; couple other
3807 * test/Makefile.am (dist-hook): add dist-hook for .message files
3809 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3810 can be constant or locked.
3811 (_dbus_string_free): allow freeing a const string as
3814 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3816 * dbus/dbus-test-main.c (main): take an argument which is the
3817 directory containing test data
3819 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3820 argument to this and load all the messages in test/data/
3821 checking that they can be loaded or not loaded as appropriate.
3823 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3825 * bus/dispatch.c: (bus_dispatch_message_handler):
3826 Dispatch messages sent to services.
3828 * bus/driver.c: (bus_driver_send_service_deleted),
3829 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3830 (bus_driver_send_service_acquired):
3831 Add helper functions for sending service related messages.
3833 (bus_driver_send_welcome_message):
3834 Send HELLO_REPLY instead of WELCOME.
3836 (bus_driver_handle_list_services):
3837 Send LIST_SERVICES_REPLY instead of SERVICES.
3839 (bus_driver_handle_own_service),
3840 (bus_driver_handle_service_exists):
3841 New message handlers.
3843 (bus_driver_handle_message):
3844 Invoke new message handlers.
3846 (bus_driver_remove_connection):
3847 Don't remove any services here since that's done automatically
3848 by bus_service_remove_owner now.
3851 New function signatures.
3853 * bus/services.c: (bus_service_add_owner):
3854 Send ServiceAcquired message if we're the only primary owner.
3856 (bus_service_remove_owner):
3857 Send ServiceAcquired/ServiceLost messages.
3859 (bus_service_set_prohibit_replacement),
3860 (bus_service_get_prohibit_replacement):
3861 Functions for setting prohibit replacement.
3863 (bus_service_has_owner):
3864 New function that checks if a connection is in the owner queue of
3868 Add new function signatures.
3870 * dbus/dbus-list.c: (_dbus_list_test):
3871 Add tests for _dbus_list_remove_last and traversing the list backwards.
3874 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3875 go any further, so return NULL then.
3877 * dbus/dbus-protocol.h:
3878 Add new messages, service flags and service replies.
3880 2003-01-26 Havoc Pennington <hp@pobox.com>
3882 * dbus/dbus-message-builder.c: implement, completely untested.
3884 * test/data/*: add data to be used in testing.
3885 ".message" files are our simple loadable text format.
3886 ".message-raw" will be binary dumps of messages.
3888 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3890 2003-01-26 Havoc Pennington <hp@pobox.com>
3892 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3894 * dbus/dbus-errors.c (dbus_result_to_string): add
3897 * dbus/dbus-message-builder.c: new file, will contain code to load
3898 up messages from files. Not implemented yet.
3900 2003-01-26 Havoc Pennington <hp@pobox.com>
3902 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3903 the sender by setting to NULL
3905 2003-01-26 Havoc Pennington <hp@pobox.com>
3907 The unit tests pass, but otherwise untested. If it breaks, the
3908 tests should have been better. ;-)
3910 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3913 * dbus/dbus-message.c: redo everything so we maintain
3914 message->header as the only copy of the various fields.
3915 This avoids the possibility of out-of-memory in some cases,
3916 for example dbus_message_lock() can't run out of memory anymore,
3917 and avoids extra copying. Figured I may as well go ahead and do
3918 this since it was busted for dbus_message_lock to not return
3919 failure on OOM, and dbus_message_write_header was totally
3920 unchecked for OOM. Also fixed some random other bugs.
3922 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3923 that strings are nul-terminated. Also, end_pos can be equal
3924 to string length just not greater than, I think.
3925 (_dbus_marshal_set_int32): new function
3926 (_dbus_marshal_set_uint32): new function
3927 (_dbus_marshal_set_string): new function
3929 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3930 a warning, init timeout_list to NULL
3931 (dbus_connection_send_message): don't use uninitialized variable
3934 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3936 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3938 * bus/driver.c: (bus_driver_handle_hello),
3939 (bus_driver_send_welcome_message):
3942 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3944 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3945 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3946 (dbus_connection_unref):
3947 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3948 * dbus/dbus-message.c: (dbus_message_unref),
3951 (dbus_message_get_fields):
3952 Remove debugging printout.
3954 (_dbus_message_loader_return_buffer):
3955 Don't store the header string.
3957 (_dbus_message_test):
3960 2003-01-26 Richard Hult <rhult@codefactory.se>
3962 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3963 the file descriptor list, since it can change under us.
3965 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3967 * glib/dbus-gmain.c: (dbus_connection_prepare),
3968 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3969 (remove_watch), (dbus_connection_hookup_with_g_main):
3970 Rewrite the glib handling to use its own GSource instead of a
3971 GIOChannel so we can catch messages put in the queue while waiting
3974 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3977 * bus/connection.c: (connection_disconnect_handler),
3978 (connection_watch_callback), (bus_connection_setup):
3979 * bus/dispatch.c: (send_one_message),
3980 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3981 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3983 * bus/driver.c: (bus_driver_send_service_deleted),
3984 (bus_driver_send_service_created), (bus_driver_handle_hello),
3985 (bus_driver_send_welcome_message),
3986 (bus_driver_handle_list_services), (bus_driver_remove_connection),
3987 (bus_driver_handle_message):
3989 Refactor code, put the message dispatching in its own file. Use
3990 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3993 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3995 * dbus/dbus-internals.h:
3996 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3998 * dbus/dbus-message.c: (dbus_message_get_sender):
3999 * dbus/dbus-message.h:
4000 Implement dbus_message_get_sender.
4002 * dbus/dbus-protocol.h:
4003 Add message and service defines.
4005 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4007 * dbus/dbus-connection.c: (dbus_connection_send_message):
4008 * dbus/dbus-message-internal.h:
4009 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4010 (dbus_message_write_header):
4011 Remove _dbus_messag_unlock and don't set the client serial on a
4012 message if one already exists.
4014 2003-01-24 Havoc Pennington <hp@pobox.com>
4016 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4019 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4022 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4024 * dbus/dbus-list.c: (alloc_link), (free_link):
4025 Use a memory pool for the links.
4027 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4029 * bus/connection.c: (bus_connection_foreach):
4031 Add new bus_connection_foreach function.
4033 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4034 Add function that broadcasts a message to all clients.
4036 (bus_driver_send_service_created), (bus_driver_handle_hello),
4037 (bus_driver_send_welcome_message),
4038 (bus_driver_handle_list_services), (bus_driver_message_handler):
4039 Implement functions that take care of listing services, and notifying
4040 clients when new services are created.
4042 * bus/services.c: (bus_services_list):
4044 Add new function that returns an array of strings with the currently
4045 registered services.
4048 * glib/dbus-gmain.c:
4049 Update copyright year.
4051 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4053 * dbus/dbus-connection.c: (dbus_connection_send_message):
4054 Unlock the message in case it was sent earlier.
4056 (dbus_connection_send_message_with_reply_and_block):
4057 Remove the reply message from the list.
4059 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4060 Set array_len and new_pos correctly.
4062 (_dbus_marshal_test):
4063 Remove debug output.
4065 * dbus/dbus-message-internal.h:
4066 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4067 New function that returns the reply serial.
4069 (_dbus_message_unlock):
4070 New function that unlocks a message and resets its header.
4072 (dbus_message_append_string_array),
4073 (dbus_message_get_fields_valist),
4074 (dbus_message_iter_get_field_type),
4075 (dbus_message_iter_get_string_array),
4076 (dbus_message_get_fields),
4077 (dbus_message_append_fields_valist):
4078 Handle string arrays.
4080 (dbus_message_set_sender):
4081 Make this function public since the bus daemon needs it.
4083 (decode_header_data):
4084 Set the reply serial to -1 initially.
4086 * dbus/dbus-message.h:
4087 Add dbus_message_set_sender.
4089 2003-01-24 Havoc Pennington <hp@pobox.com>
4091 * doc/dbus-specification.sgml: add some stuff
4093 2003-01-22 Havoc Pennington <hp@pobox.com>
4095 * doc/dbus-specification.sgml: Start to document the protocol.
4097 2003-01-22 Havoc Pennington <hp@pobox.com>
4099 * dbus/dbus-connection.c
4100 (dbus_connection_send_message_with_reply_and_block): add some @todo
4102 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4104 2003-01-21 Havoc Pennington <hp@pobox.com>
4106 (patch untested because can't compile)
4108 * bus/driver.c (create_unique_client_name): make this function
4109 never recycle client names. Also, caller should initialize
4112 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4114 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4116 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4117 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4118 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4119 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4120 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4121 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4122 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4123 * dbus/dbus-marshal.h:
4124 * dbus/dbus-protocol.h:
4125 Add support for marshalling and demarshalling integer, double
4128 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4133 * bus/connection.c: (connection_disconnect_handler):
4134 Remove the connection from the bus driver's list.
4136 (connection_watch_callback): Dispatch messages.
4138 (free_connection_data): Free connection name.
4140 (bus_connection_setup): Add connection to the bus driver's list.
4141 (bus_connection_remove_owned_service):
4142 (bus_connection_set_name), (bus_connection_get_name):
4143 Add functions for setting and getting the connection's name.
4146 Add function headers.
4148 * bus/driver.c: (create_unique_client_name),
4149 (bus_driver_handle_hello_message),
4150 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4151 (bus_driver_add_connection), (bus_driver_remove_connection):
4154 * bus/services.c: (bus_service_free):
4156 New file that handles communication and registreation with the bus
4159 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4161 * dbus/dbus-connection.c: (dbus_connection_send_message):
4162 Add a new client_serial parameter.
4164 (dbus_connection_send_message_with_reply):
4165 Remove a @todo since we've implemented the blocking function.
4167 (dbus_connection_send_message_with_reply_and_block):
4168 New function that sends a message and waits for a reply and
4169 then returns the reply.
4171 * dbus/dbus-connection.h:
4174 * dbus/dbus-errors.c: (dbus_result_to_string):
4175 * dbus/dbus-errors.h:
4176 Add new DBUS_RESULT.
4178 * dbus/dbus-message-internal.h:
4179 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4180 (_dbus_message_set_sender), (dbus_message_write_header),
4181 (dbus_message_new_reply), (decode_header_data),
4182 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4183 * dbus/dbus-message.h:
4184 Add new functions that set the reply serial and sender.
4185 Also marshal and demarshal them correctly and add test.
4187 * dbus/dbus-protocol.h:
4188 Add new DBUS_MESSAGE_TYPE_SENDER.
4191 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4192 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4193 (dbus_connection_hookup_with_g_main):
4194 * glib/test-dbus-glib.c: (main):
4195 Rewrite to use GIOChannel and remove the GSource crack.
4197 * test/echo-client.c: (main):
4198 * test/watch.c: (check_messages):
4199 Update for changed APIs
4201 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4203 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4205 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4206 Create a DBusTimeoutList.
4207 (dbus_connection_set_timeout_functions): Add new function to
4208 set timeout callbacks
4210 * dbus/dbus-connection.h: Add public DBusTimeout API.
4212 * dbus/dbus-message.c: (dbus_message_get_service):
4213 * dbus/dbus-message.h: New function.
4215 * dbus/dbus-server.c: Fix small doc typo.
4217 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4219 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4221 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4222 of the string, just as long as specified.
4224 2003-01-19 Havoc Pennington <hp@pobox.com>
4226 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4229 * dbus/dbus-server.c (dbus_server_set_max_connections)
4230 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4231 keep track of current number of connections, and add API for
4232 setting a max (but haven't implemented enforcing the max yet)
4234 2003-01-18 Havoc Pennington <hp@pobox.com>
4236 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4237 reading/writing if read_watch != NULL or write_watch != NULL.
4239 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4240 the message loader code to actually load message->header and
4241 message->body into the newly-created message.
4243 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4246 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4247 (dbus_connection_get_max_message_size)
4248 (dbus_connection_set_max_live_messages_size)
4249 (dbus_connection_get_max_live_messages_size): implement some
4250 resource limitation functions
4252 * dbus/dbus-resources.c: new file implementing some of the
4253 resource limits stuff
4255 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4256 missing docs, add @todo to handle OOM etc.
4258 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4261 2003-01-18 Havoc Pennington <hp@pobox.com>
4263 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4264 connection if it hasn't been already.
4266 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4267 replace with DisconnectFunction.
4269 2003-01-18 Havoc Pennington <hp@pobox.com>
4271 Building --disable-verbose-mode --disable-asserts --disable-tests
4272 cuts the library from 112K to 45K or so
4274 * configure.in: check for varargs macro support,
4275 add --enable-verbose-mode, --enable-asserts.
4277 * dbus/dbus-internals.h (_dbus_assert): support
4279 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4281 2003-01-18 Havoc Pennington <hp@pobox.com>
4283 * dbus/dbus-test.c: include config.h so that tests actually run
4285 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4286 so the failure mode when that assumption fails will be plenty
4289 2003-01-18 Havoc Pennington <hp@pobox.com>
4291 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4293 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4296 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4297 since we don't want to use those in make check
4299 2003-01-15 Havoc Pennington <hp@redhat.com>
4305 2003-01-15 Havoc Pennington <hp@redhat.com>
4307 * test/Makefile.am: fix so that test source code ends up in the
4308 distribution on make distcheck
4310 2003-01-15 Havoc Pennington <hp@redhat.com>
4316 2003-01-15 Havoc Pennington <hp@redhat.com>
4318 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4319 fix build when --disable-tests
4321 * Makefile.am (EXTRA_DIST): put HACKING in here
4323 * HACKING: document procedure for making a tarball release.
4325 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4327 * bus/connection.c: (connection_error_handler),
4328 (bus_connection_setup):
4329 * bus/main.c: (main):
4330 Make sure that the DBusConnectionData struct is NULLed
4331 out to prevent a segfault.
4333 * dbus/dbus-errors.c: (dbus_result_to_string):
4334 * dbus/dbus-errors.h:
4335 * dbus/dbus-message.c: (dbus_message_get_fields),
4336 (dbus_message_get_fields_valist), (_dbus_message_test):
4337 * dbus/dbus-message.h:
4338 Make dbus_message_get_fields return a result code so we can
4339 track invalid fields as well as oom.
4341 2003-01-11 Havoc Pennington <hp@pobox.com>
4343 * configure.in: change --enable-test/--enable-ansi action-if-given
4344 to enable_foo=$enableval instead of enable_foo=yes
4346 2003-01-08 Havoc Pennington <hp@pobox.com>
4348 * dbus/dbus-string.c (_dbus_string_align_length): new function
4350 * dbus/dbus-test-main.c: move main() for test app here
4352 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4353 symbol to run tests, because dbus-test isn't in the main
4356 Code review nitpicks.
4358 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4359 for people with narrow emacs ;-). Assert client_serial was filled
4360 in. Assert message->name != NULL.
4361 (dbus_message_append_fields): have "first_field_type" arg separate
4362 from va list, needed for C++ binding that also uses varargs IIRC
4363 and helps with type safety
4364 (dbus_message_new): add @todo about using DBusString to store
4365 service/name internally
4366 (dbus_message_new): don't leak ->service and ->name on OOM later
4368 (dbus_message_unref): free the service name
4369 (dbus_message_get_fields): same change to varargs
4370 i.e. first_field_type
4371 (_dbus_message_loader_return_buffer): assert that the message data
4372 is aligned (if not it's a bug in our code). Put in verbose griping
4373 about why we set corrupted = TRUE.
4374 (decode_header_data): add FIXME that char* is evil. Was going to
4375 add FIXME about evil locale-specific string.h strncmp, but just
4376 switched to wacky string-as-uint32 optimization. Move check for
4377 "no room for field name" above get_const_data_len() to avoid
4378 assertion failure in get_const_data_len if we have trailing 2
4379 bytes or the like. Check for service and name fields being
4380 provided twice. Don't leak service/name on error. Require field
4381 names to be aligned to 4 bytes.
4383 * dbus/dbus-marshal.c: move byte swap stuff to header
4384 (_dbus_pack_int32): uscore-prefix
4385 (_dbus_unpack_int32): uscore-prefix
4386 (_dbus_unpack_uint32): export
4387 (_dbus_demarshal_string): add @todo complaining about use of
4389 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4390 handling allowing corrupt data to go unchecked
4392 2003-01-08 Havoc Pennington <hp@redhat.com>
4394 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4395 to the select() as needed for authentication. (should be using
4396 _dbus_poll() not select, but for another day)
4398 * dbus/dbus.h: include dbus/dbus-protocol.h
4400 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4402 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4405 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4407 * dbus/dbus-internals.c: (_dbus_type_to_string):
4408 New function that returns a string describing a type.
4410 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4411 * dbus/dbus-marshal.h:
4412 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4413 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4414 (dbus_message_iter_get_byte_array):
4415 * dbus/dbus-message.h:
4416 Add new convenience functions for appending and getting message fields.
4417 Also add demarshalling routines for byte arrays.
4419 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4421 * dbus/dbus-connection-internal.h:
4422 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4423 (_dbus_connection_get_next_client_serial),
4424 (dbus_connection_send_message):
4425 * dbus/dbus-internals.h:
4426 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4427 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4428 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4429 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4430 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4431 (_dbus_verbose_bytes), (_dbus_marshal_test):
4432 * dbus/dbus-marshal.h:
4433 * dbus/dbus-message-internal.h:
4434 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4435 (dbus_message_write_header), (_dbus_message_lock),
4436 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4437 (dbus_message_get_name), (dbus_message_append_int32),
4438 (dbus_message_append_uint32), (dbus_message_append_double),
4439 (dbus_message_append_string), (dbus_message_append_byte_array),
4440 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4441 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4442 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4443 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4444 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4445 (decode_header_data), (_dbus_message_loader_return_buffer),
4446 (message_iter_test), (_dbus_message_test):
4447 * dbus/dbus-message.h:
4448 * dbus/dbus-protocol.h:
4449 * dbus/dbus-test.c: (main):
4451 * glib/test-dbus-glib.c: (message_handler), (main):
4452 * test/echo-client.c: (main):
4453 * test/watch.c: (check_messages):
4454 Make messages sendable and receivable for real.
4456 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4458 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4459 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4460 * dbus/dbus-message.c: (dbus_message_append_int32),
4461 (dbus_message_append_uint32), (dbus_message_append_double),
4462 (dbus_message_append_string), (dbus_message_append_byte_array):
4463 Handle OOM restoration.
4465 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4467 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4468 (_dbus_demarshal_string), (_dbus_marshal_test):
4469 * dbus/dbus-marshal.h:
4470 * dbus/dbus-message.c: (dbus_message_get_name),
4471 Document these functions.
4473 (dbus_message_append_int32), (dbus_message_append_uint32),
4474 (dbus_message_append_double), (dbus_message_append_string),
4475 (dbus_message_append_byte_array):
4476 * dbus/dbus-message.h:
4477 Add functions for adding message fields of different types.
4479 * dbus/dbus-protocol.h:
4480 Add the different types.
4482 2003-01-05 Havoc Pennington <hp@pobox.com>
4484 * bus/connection.c: implement routines for handling connections,
4485 first thing is keeping a list of owned services on each connection
4486 and setting up watches etc.
4488 * bus/services.c: implement a mapping from service names to lists
4491 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4493 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4494 to use static mutexes for global data
4496 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4497 collection of functions to set/get application-specific data
4498 on the DBusConnection.
4500 2003-01-04 Havoc Pennington <hp@pobox.com>
4502 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4503 (_dbus_poll): new function
4505 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4508 * bus/loop.c: initial code for the daemon main loop
4510 2003-01-04 Havoc Pennington <hp@pobox.com>
4512 * test/watch.c (error_handler): make it safe if the error handler
4513 is called multiple times (if we s/error handler/disconnect
4514 handler/ we should just guarantee it's called only once)
4516 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4517 error handler on disconnect (it's quite possible we should
4518 just change the error handler to a "disconnect handler," I'm
4519 not sure we have any other meaningful errors)
4521 * configure.in: check for getpwnam_r
4523 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4524 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4525 mechanism as in SASL spec, using socket credentials
4527 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4528 (_dbus_send_credentials_unix_socket): new function
4530 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4532 (_dbus_write): only check errno if <0 returned
4533 (_dbus_write_two): ditto
4535 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4537 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4538 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4539 (_dbus_marshal_test):
4540 * dbus/dbus-marshal.h:
4541 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4542 to _dbus_marshal_utf8_string. Also fix some tests.
4544 2002-12-28 Harri Porten <porten@kde.org>
4546 * configure.in: added check for C++ compiler and a very cheesy
4547 check for the Qt integration
4549 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4551 * qt/Makefile.am: added
4553 * qt/.cvsignore: added
4555 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4556 latter, added #ifdef QT_THREAD_SUPPORT guard.
4558 * dbus/Makefile.am: added missing headers for make dist
4560 2002-12-28 Kristian Rietveld <kris@gtk.org>
4562 * dbus/Makefile.am: fixup export-symbols-regex.
4564 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4566 * acinclude.m4: Add this file and put the
4567 PKG_CHECK_MODULE macro in it.
4569 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4571 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4572 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4573 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4574 (_dbus_marshal_test):
4575 Make the demarshalling routines align the pos argument.
4576 Add string marshalling tests and fix the obvious bugs
4579 2002-12-26 Havoc Pennington <hp@pobox.com>
4581 * dbus/dbus-auth.c: fixes fixes fixes
4583 * dbus/dbus-transport-unix.c: wire up support for
4584 encoding/decoding data on the wire
4586 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4587 (_dbus_auth_decode_data): append to target string
4588 instead of nuking it.
4590 2002-12-26 Havoc Pennington <hp@pobox.com>
4592 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4593 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4596 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4597 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4598 now). Main point is because I wanted unpack_uint32 to implement
4600 (_dbus_verbose_bytes): new function
4602 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4604 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4605 mechanism to handle a corrupt message stream
4606 (_dbus_message_loader_new): fix preallocation to only prealloc,
4609 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4610 (_dbus_string_test): enhance tests for copy/move and fix the
4613 * dbus/dbus-transport-unix.c: Hold references in more places to
4614 avoid reentrancy problems
4616 * dbus/dbus-transport.c: ditto
4618 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4619 leak reference count in no-message case
4621 * test/watch.c (do_mainloop): handle adding/removing watches
4622 during iteration over the watches. Also, ref the connection/server
4623 stored on a watch, so we don't try to mangle a destroyed one.
4625 * dbus/dbus-transport-unix.c (do_authentication): perform
4628 * dbus/dbus-auth.c (get_state): add a state
4629 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4630 (_dbus_auth_get_unused_bytes): append the unused bytes
4631 to the passed in string, rather than prepend
4633 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4634 the auth conversation DBusAuth
4636 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4637 (_dbus_transport_new_for_domain_socket): when creating a
4638 transport, pass in whether it's a client-side or server-side
4639 transport so we know which DBusAuth to create
4641 2002-12-03 Havoc Pennington <hp@pobox.com>
4643 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4644 _after_ finalizing the derived members
4645 (unix_connection_set): unref watch if we fail to add it
4647 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4648 transport first, so that the connection owned by the
4649 transport will be valid as the transport finalizes.
4651 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4652 if necessary, and remove watches from the connection.
4654 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4656 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4658 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4659 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4660 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4661 (_dbus_marshal_test):
4662 * dbus/dbus-marshal.h:
4663 Add string marshal functions and have the demarshal functions
4664 return the new position.
4666 2002-12-25 Havoc Pennington <hp@pobox.com>
4668 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4669 it is a simple protocol that just maps directly to SASL.
4671 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4672 initial implementation, not actually used yet.
4674 * dbus/dbus-string.c (_dbus_string_find): new function
4675 (_dbus_string_equal): new function
4676 (_dbus_string_base64_encode): new function
4677 (_dbus_string_base64_decode): new function
4679 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4682 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4683 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4684 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4685 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4686 * dbus/dbus-marshal.h:
4687 * dbus/dbus-protocol.h:
4688 * dbus/dbus-test.c: (main):
4690 Add un-optimized marshalling/demarshalling routines.
4692 2002-12-25 Harri Porten <porten@kde.org>
4694 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4696 2002-12-24 Zack Rusin <zack@kde.org>
4698 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4699 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4702 2002-12-24 Havoc Pennington <hp@pobox.com>
4704 * glib/dbus-gthread.c: fix include
4706 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4707 I think glib API needs to change, though, as you don't
4708 want to use DBusMessageFunction, you want to use the
4709 DBusMessageHandler object. Probably
4710 dbus_connection_open_with_g_main_loop()
4711 and dbus_connection_setup_g_main_loop() or something like that
4712 (but think of better names...) that just create a connection
4713 that has watch/timeout functions etc. already set up.
4715 * dbus/dbus-connection.c
4716 (dbus_connection_send_message_with_reply): new function just to
4717 show how the message handler helps us deal with replies.
4719 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4721 * dbus/dbus-string.c (_dbus_string_test): free a string that
4724 * dbus/dbus-hash.c: use memory pools for the hash entries
4725 (rebuild_table): be more paranoid about overflow, and
4726 shrink table when we can
4727 (_dbus_hash_test): reduce number of sprintfs and write
4728 valid C89. Add tests for case where we grow and then
4729 shrink the hash table.
4731 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4733 * dbus/dbus-connection.c (dbus_connection_register_handler)
4734 (dbus_connection_unregister_handler): new functions
4736 * dbus/dbus-message.c (dbus_message_get_name): new
4738 * dbus/dbus-list.c: fix docs typo
4740 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4741 an object representing a handler for messages.
4743 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4746 * glib/dbus-gthread.c: (dbus_gthread_init):
4747 Don't use the gdbus prefix for public functions.
4749 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4753 Add GLib checks and fixup .pc files
4757 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4758 (gdbus_connection_check), (gdbus_connection_dispatch),
4759 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4760 (dbus_connection_gsource_new):
4761 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4762 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4763 * glib/test-dbus-glib.c: (message_handler), (main):
4766 2002-12-15 Harri Porten <porten@kde.org>
4768 * autogen.sh: check for libtoolize before attempting to use it
4770 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4773 * .cvsignore: ignore more stamp files
4775 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4777 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4778 without make install.
4780 2002-12-15 Havoc Pennington <hp@pobox.com>
4782 * dbus/dbus-threads.c: add thread stubs that a higher library
4783 layer can fill in. e.g. the GLib wrapper might fill them in with
4784 GThread stuff. We still need to use this thread API to
4785 thread-safe-ize the library.
4787 2002-12-12 Havoc Pennington <hp@pobox.com>
4789 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4790 below new interfaces and include fewer system headers.
4792 * dbus/dbus-sysdeps.c (_dbus_read): new function
4793 (_dbus_write): new function
4794 (_dbus_write_two): new function
4795 (_dbus_connect_unix_socket): new function
4796 (_dbus_listen_unix_socket): new function
4798 * dbus/dbus-message-internal.h: change interfaces to use
4801 2002-12-11 Havoc Pennington <hp@pobox.com>
4803 * dbus/dbus-types.h: add dbus_unichar
4805 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4807 * dbus/dbus-connection.c (dbus_connection_send_message): return
4810 * dbus/dbus-transport.c: include dbus-watch.h
4812 * dbus/dbus-connection.c: include dbus-message-internal.h
4814 * HACKING: add file with coding guidelines stuff.
4816 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4817 handling here, for security purposes (as in vsftpd). Not actually
4818 using this class yet.
4820 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4821 system/libc usage here, as in vsftpd, for ease of auditing (and
4822 should also simplify portability). Haven't actually moved all the
4823 system/libc usage into here yet.
4825 2002-11-25 Havoc Pennington <hp@pobox.com>
4827 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4828 always print the first verbose message.
4830 2002-11-24 Havoc Pennington <hp@pobox.com>
4832 * test/echo-client.c, test/echo-server.c: cheesy test
4835 * configure.in (AC_CHECK_FUNCS): check for writev
4837 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4840 * dbus/dbus-list.c (_dbus_list_foreach): new function
4842 * dbus/dbus-internals.c (_dbus_verbose): new function
4844 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4845 representing a server that listens for connections.
4847 * dbus/.cvsignore: create
4849 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4850 public API for reporting errors
4852 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4853 public object representing a connection that
4854 sends/receives messages. (Same object used for
4855 both client and server.)
4857 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4858 Basic abstraction for different kinds of stream
4859 that we might read/write messages from.
4861 2002-11-23 Havoc Pennington <hp@pobox.com>
4863 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4866 * dbus/dbus-test.c (main): add list test, and include
4867 dbus-test.h as intended
4869 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4870 (_dbus_hash_table_remove_int): return value indicates
4871 whether the entry existed to remove
4873 * dbus/dbus-list.c: add linked list utility class,
4876 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4879 2002-11-23 Havoc Pennington <hp@pobox.com>
4881 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4882 DBUS_END_DECLS to nothing, that should fix this once and for all
4884 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4886 * dbus/dbus-message.c, dbus/dbus-hash.c:
4887 add some missing @brief
4889 2002-11-23 Havoc Pennington <hp@pobox.com>
4891 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4892 to avoid confusing Doxygen
4894 * dbus/dbus-hash.c: @} not }@
4896 * dbus/dbus-message.c (struct DBusMessage): split out
4899 2002-11-23 Havoc Pennington <hp@pobox.com>
4901 * configure.in: pile on more warning flags if using gcc
4903 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4904 to document static functions
4906 * configure.in: add summary to end of configure so it
4907 looks nice and attractive
4909 * dbus/dbus-hash.c: finish implementation and write unit
4912 * configure.in: add --enable-tests to enable unit tests
4914 * dbus/dbus-test.c: test program to run unit tests
4915 for all files in dbus/*, initially runs a test for
4918 * dbus/dbus-internals.h: file to hold some internal utility stuff
4920 2002-11-22 Havoc Pennington <hp@redhat.com>
4922 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4923 "ported" away from Tcl
4925 * dbus/dbus-types.h: header for types such as dbus_bool_t
4927 2002-11-22 Havoc Pennington <hp@redhat.com>
4929 * dbus/dbus.h: fixups for doc warnings
4931 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4933 (QUIET): make it quiet so we can see warnings
4935 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4937 2002-11-22 Havoc Pennington <hp@redhat.com>
4939 * Makefile.am: include "Doxyfile" target in all-local
4941 * configure.in: generate the Doxyfile
4943 * Doxyfile.in: move Doxyfile here, so we can use
4944 configure to generate a Doxyfile with the right
4947 2002-11-22 Havoc Pennington <hp@redhat.com>
4949 * dbus/dbus-message.c: move inline docs into .c file
4951 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4952 so all docs are under doc/
4953 (MAN_EXTENSION): generate man pages. Use extension
4954 ".3dbus" which matches ".3qt" on my system,
4955 I guess this is OK, I don't know really.
4956 (FILE_PATTERNS): look for .c files not .h, makes sense
4959 2002-11-22 Havoc Pennington <hp@pobox.com>
4961 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4962 because any app can be a server, and any app can be a client,
4963 the bus is a special kind of server.
4965 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4967 * Doxyfile : adding. Still needs Makefile rules to be generated
4968 automatically (just run "doxygen" in the toplevel dir for now to
4971 * dbus/dbus-message.h : Adding sample docs (javadoc since
4972 resembles gtk-doc a little more)
4974 * dbus/dbus.h : Adding sample docs
4976 2002-11-21 Havoc Pennington <hp@redhat.com>
4978 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4979 so we can allow ourselves to include files directly,
4980 instead of having to use dbus.h
4982 * dbus/dbus.h: fill in
4984 * dbus/dbus-message.h: sketch out a sample header file.
4985 Include griping if you include it directly instead of
4988 * dbus/dbus-macros.h: new file with macros for extern "C",
4989 TRUE/FALSE, NULL, etc.
4991 * doc/file-boilerplate.c: put include guards in here
4993 2002-11-21 Havoc Pennington <hp@redhat.com>
4995 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4997 * COPYING: include the GPL as well, and license code
4998 under both AFL and GPL.
5000 2002-11-21 Havoc Pennington <hp@redhat.com>
5002 * acconfig.h: get rid of this
5004 * autogen.sh (run_configure): add --no-configure option
5006 * configure.in: remove AC_ARG_PROGRAM to make
5007 autoconf complain less. add AC_PREREQ.
5008 add AC_DEFINE third arg.
5010 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5013 Fix references so we can distcheck.
5015 2002-11-21 Havoc Pennington <hp@redhat.com>
5017 * Initial module creation