1 2003-07-23 Havoc Pennington <hp@pobox.com>
3 * dbus/dbus-message.c (dbus_message_iter_get_named):
4 fix from Andy Hanton to remove broken "+1"
6 2003-07-16 Havoc Pennington <hp@pobox.com>
8 * tools/dbus-launch.c (babysit): close stdout/stderr in the
9 babysitter process, as suggested by Thomas Leonard, so
10 an "eval `dbus-launch --exit-with-session`" will actually
13 2003-07-16 Havoc Pennington <hp@pobox.com>
15 * configure.in: print out EXPANDED_* variables in the summary at
16 the end; clean up the code that computes EXPANDED_ variables and
17 get the ones using exec_prefix right. Should make things work
18 when you build without --prefix
20 2003-06-29 Havoc Pennington <hp@pobox.com>
22 * mono/Test.cs (class Test): fire up a main loop and run it
24 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
25 done once, the app has to do it
27 2003-06-26 Havoc Pennington <hp@pobox.com>
29 * mono/Connection.cs: set up connection with the glib main loop
31 2003-07-01 Havoc Pennington <hp@redhat.com>
33 * doc/dbus-specification.sgml: clarify the format of a type code,
34 change suggested by Jim Blandy
36 2003-06-29 Miloslav Trmac <mitr@volny.cz>
39 * tools/Makefile.am: Don't assume srcdir == builddir.
41 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
43 (_dbus_memory_test): New function.
44 * dbus/dbus-test.h: Add _dbus_memory_test ().
45 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
47 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
49 (dbus_message_new): Remove obsolete @todo.
51 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
52 (_dbus_marshal_set_uint64): Fix comment.
54 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
55 hardcode FIELD_REPLY_SERIAL.
57 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
58 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
60 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
61 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
63 2003-06-24 Havoc Pennington <hp@pobox.com>
65 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
67 2003-06-23 Anders Carlsson <andersca@codefactory.se>
73 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
75 * gcj/org/Makefile.am:
76 * gcj/org/freedesktop/.cvsignore:
77 * gcj/org/freedesktop/Makefile.am:
78 * gcj/org/freedesktop/dbus/.cvsignore:
79 * gcj/org/freedesktop/dbus/Makefile.am:
80 * gcj/org/freedesktop/dbus/Message.java: (Message),
82 * gcj/org/freedesktop/dbus/natMessage.cc:
85 2003-06-22 Havoc Pennington <hp@pobox.com>
87 * mono/Connection.cs: add more bindings
89 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
92 2003-06-22 Havoc Pennington <hp@pobox.com>
94 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
95 Start wrapping more stuff.
97 2003-06-22 Havoc Pennington <hp@pobox.com>
99 * mono/Message.cs: implement Message.Wrap() that ensures we only
100 have a single C# wrapper per DBusMessage, assuming it works which
103 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
104 (dbus_message_free_data_slot): new
105 (dbus_message_set_data): new
106 (dbus_message_get_data): new
108 2003-06-22 Havoc Pennington <hp@pobox.com>
110 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
111 (_dbus_data_slot_allocator_alloc): rework these to keep a
112 reference count on each slot and automatically manage a global
113 slot ID variable passed in by address
115 * bus/bus.c: convert to new dataslot API
117 * dbus/dbus-bus.c: convert to new dataslot API
119 * dbus/dbus-connection.c: convert to new dataslot API
121 * dbus/dbus-server.c: convert to new dataslot API
123 * glib/dbus-gmain.c: ditto
127 * bus/connection.c: ditto
129 2003-06-22 Anders Carlsson <andersca@codefactory.se>
131 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
132 after the gcj checks so that the correct configuration tags
133 will be added to libtool.
135 * dbus-glib-1.pc.in: No need to specify any includes since
136 dbus-1.pc.in has those.
138 2003-06-22 Havoc Pennington <hp@pobox.com>
140 * mono/*, gcj/*, configure.in, Makefile.am:
141 Check in makefiles and subdirs for mono and gcj bindings.
142 Neither binding actually exists, just trying to get through
143 all the build and other boring bits.
145 2003-06-21 Philip Blundell <philb@gnu.org>
147 * tools/dbus-monitor.1: Updated.
149 * tools/dbus-send.1: Likewise.
151 2003-06-20 Anders Carlsson <andersca@codefactory.se>
153 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
154 for hangup and error after checking read so we won't discard
155 pending data if both hangup and read are set.
157 2003-06-19 Philip Blundell <philb@gnu.org>
159 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
161 * tools/dbus-send.c: Accept both --system and --session.
163 * tools/dbus-monitor.c: Same here.
165 2003-06-19 Anders Carlsson <andersca@codefactory.se>
167 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
168 from C++ (Patch by Miloslav Trmac).
170 2003-06-15 Joe Shaw <joe@assbarn.com>
172 * configure.in: Check for socklen_t.
174 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
176 * test/test-segfault.c: Add #include <sys/time.h>
178 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
179 dbus-launch needs it.
181 2003-06-09 Havoc Pennington <hp@redhat.com>
183 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
184 SUN_LEN, it breaks abstract socket usage
186 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
189 2003-06-04 Havoc Pennington <hp@pobox.com>
191 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
192 using unix:abstract=/foo, and when listening in a tmpdir
193 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
195 * dbus/dbus-transport.c (_dbus_transport_open): support
198 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
199 support abstract sockets
201 * dbus/dbus-transport-unix.c
202 (_dbus_transport_new_for_domain_socket): support abstract sockets
204 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
205 toggle as an argument, implement abstract namespace support
206 (_dbus_listen_unix_socket): ditto
208 * configure.in: add --enable-abstract-sockets and implement
209 a configure check for autodetection of the right value.
211 2003-06-01 Havoc Pennington <hp@pobox.com>
213 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
214 in /tmp (though on Linux this will end up being useless,
215 when we add abstract namespace support)
217 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
220 2003-05-28 Colin Walters <walters@verbum.org>
222 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
224 2003-05-18 Anders Carlsson <andersca@codefactory.se>
226 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
228 2003-05-17 Colin Walters <walters@gnu.org>
230 * tools/dbus-send.c: Don't exit with an error code if --help was
231 passed. Default to using the session bus instead of the system
234 * tools/dbus-launch.c: Ditto.
236 * tools/dbus-monitor.c: Ditto.
238 * tools/dbus-send.1: Update with new arguments.
240 * tools/dbus-launch.c: Emit code to export variables. New
241 arguments -s and -c to specify shell syntax, and a bit of code to
242 autodetect syntax. Also, allow specifying a program to run.
244 * tools/dbus-launch.1: Update with new arguments.
246 * tools/dbus-send.1: Ditto.
248 * tools/dbus-monitor.1: Ditto.
250 2003-05-17 Havoc Pennington <hp@pobox.com>
252 * bus/config-parser.c (merge_included): merge in policies from
253 child configuration file.
255 * bus/policy.c (bus_policy_merge): function to merge two policies
258 2003-05-16 Havoc Pennington <hp@redhat.com>
260 * dbus/dbus-connection.c: disable verbose lock spew
262 * tools/dbus-send.c: add --print-reply command line option
264 * tools/dbus-print-message.h (print_message): new util function
265 shared by dbus-send and dbus-monitor
267 * tools/dbus-monitor.c (handler_func): exit on disconnect
269 * dbus/dbus-transport-unix.c (do_reading): if the transport is
270 disconnected, don't try to use the read_watch
272 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
273 so we can find this bug more easily
275 2003-05-16 Havoc Pennington <hp@redhat.com>
277 * bus/policy.c (free_rule_list_func): avoid a crash when passed
278 NULL as DBusHashTable is annoyingly likely to do.
280 2003-05-16 Colin Walters <walters@verbum.org>
282 * tools/dbus-monitor.c: Add --session argument and usage()
285 * tools/dbus-monitor.1: Update with new --session arg.
287 * bus/Makefile.am (install-data-hook): Create
288 $(libdir)/dbus-1.0/services so that the session bus is happy.
290 2003-05-15 Havoc Pennington <hp@redhat.com>
292 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
293 on non-x86. ifdef's are evil.
295 2003-05-15 Havoc Pennington <hp@redhat.com>
301 * bus/Makefile.am (initddir): apparently we are supposed to put
302 init scripts in /etc/rc.d/init.d not /etc/init.d
304 * bus/Makefile.am: remove the "you must --enable-tests to make
305 check" as it broke distcheck
307 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
309 2003-05-13 James Willcox <jwillcox@gnome.org>
312 * bus/activation.c: (bus_activation_service_created),
313 (bus_activation_activate_service):
314 * bus/driver.c: (bus_driver_send_service_deleted),
315 (bus_driver_send_service_created), (bus_driver_send_service_lost),
316 (bus_driver_send_service_acquired),
317 (bus_driver_send_welcome_message),
318 (bus_driver_handle_list_services):
319 * bus/session.conf.in:
320 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
321 (dbus_bus_service_exists), (dbus_bus_activate_service):
324 Add some convenience API which lets you activate a service, and did a
325 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
326 and dbus_message_get_args()
328 2003-05-11 Havoc Pennington <hp@pobox.com>
330 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
331 calling _dbus_marshal_validate_arg() for every byte in a byte
334 * dbus/dbus-message-handler.c: use atomic reference counting to
335 reduce number of locks slightly; the global lock in here sucks
337 * dbus/dbus-connection.c
338 (_dbus_connection_update_dispatch_status_and_unlock): variant of
339 update_dispatch_status that can be called with lock held; then use
340 in a couple places to reduce locking/unlocking
341 (dbus_connection_send): hold the lock over the whole function
342 instead of acquiring it twice.
344 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
346 * bus/connection.c (bus_connections_setup_connection): fix access
347 to already-freed memory.
349 * dbus/dbus-connection.c: keep a little cache of linked list
350 nodes, to avoid using the global linked list alloc lock in the
351 normal send-message case. Instead we just use the connection lock
352 that we already have to take.
354 * dbus/dbus-list.c (_dbus_list_find_last): new function
356 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
357 change to use a struct for the atomic type; fix docs,
358 they return value before increment, not after increment.
360 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
361 (_dbus_string_append_8_aligned): new functions to try to
362 microoptimize this operation.
363 (reallocate_for_length): break this out of set_length(), to
364 improve profile info, and also so we can consider inlining the
367 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
368 strings with some preallocation, cuts down on our calls to realloc
369 a fair bit. Though if we can get the "move entire string to empty
370 string" optimization below to kick in here, it would be better.
372 * dbus/dbus-string.c (_dbus_string_move): just call
373 _dbus_string_move_len
374 (_dbus_string_move_len): add a special case for moving
375 an entire string into an empty string; we can just
376 swap the string data instead of doing any reallocs.
377 (_dbus_string_init_preallocated): new function
379 2003-05-11 Havoc Pennington <hp@pobox.com>
381 Write a "test-profile" that does echo client-server with threads;
382 profile reveals lock contention, memcpy/realloc of buffers, and
383 UTF-8 validation as hot spots. 20% of lock contention eliminated
384 with dbus_atomic_inc/dec implementation on x86. Much remaining
385 contention is global mempool locks for GList and DBusList.
387 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
390 * dbus/dbus-connection.c (struct DBusConnection): use
391 dbus_atomic_t for the reference count
393 * dbus/dbus-message.c (struct DBusMessage): declare
394 dbus_atomic_t values as volatile
396 * configure.in: code to detect ability to use atomic integer
397 operations in assembly, from GLib patch
399 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
400 time, tired of it being wrong in threads and forked processes
402 * glib/test-profile.c: a little program to bounce messages back
403 and forth between threads and eat CPU
405 * dbus/dbus-connection.c: add debug spew macros for debugging
406 thread locks; include config.h at top; fix deadlock in
407 dbus_connection_flush()
409 2003-05-08 Havoc Pennington <hp@pobox.com>
411 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
412 data from getting written, and there wasn't a good reason to
415 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
416 dbus_verbose lines in test coverage
417 (main): add list of functions sorted by # of untested blocks
418 to the coverage report
420 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
422 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
424 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
427 * test/data/auth/cancel.auth-script: test canceling an
430 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
431 aren't used. in CVS history if we end up needing them.
433 2003-05-04 Havoc Pennington <hp@pobox.com>
435 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
438 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
439 function, which assumed length was in # of strings, not bytes
441 * dbus/dbus-message.c (_dbus_message_test): add tests for some
444 * dbus/dbus-connection.c
445 (_dbus_connection_queue_received_message): disable function for
446 now, we are only using it in test mode
448 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
449 remove a mistaken FIXME
451 2003-05-04 Havoc Pennington <hp@pobox.com>
453 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
454 unlock mutex on successful return, patch from Anders Gustafsson
456 2003-05-04 Havoc Pennington <hp@pobox.com>
458 * dbus-glib-1.pc.in (Requires): fix dependencies, from
461 2003-05-04 Havoc Pennington <hp@pobox.com>
463 * tools/dbus-launch.c: implement
465 * bus/main.c (main), bus/bus.c (bus_context_new):
466 implement --print-pid and --fork
468 2003-05-03 Havoc Pennington <hp@redhat.com>
470 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
471 the address had no value, and add to test suite. Fix and
472 regression test from Miloslav Trmac
474 2003-05-03 Havoc Pennington <hp@pobox.com>
476 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
477 watch is invalid when handled
479 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
480 dbus-launch utility to launch the bus from a shell script. Didn't
481 actually implement dbus-launch yet, it's just a placeholder still.
483 2003-05-03 Havoc Pennington <hp@pobox.com>
485 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
486 daemon; also documents daemon config file, so replaces
487 doc/config-file.txt. Corrected some stuff from config-file.txt in
488 the process of moving it.
490 2003-05-03 Havoc Pennington <hp@pobox.com>
492 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
495 2003-05-03 Colin Walters <walters@verbum.org>
497 * dbus/dbus-sysdeps.c (fill_user_info): Test against
498 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
500 * Makefile.am: Update to use new .pc versioning scheme.
502 2003-05-02 Havoc Pennington <hp@redhat.com>
504 * bus/system.conf.in: allow send/receive to/from message bus
507 2003-04-30 Havoc Pennington <hp@redhat.com>
509 * configure.in: print a note when building with unit tests and
512 2003-04-30 Havoc Pennington <hp@redhat.com>
514 * Makefile.am: add a check-local that complains if you didn't
515 configure with --enable-tests
517 2003-04-29 Havoc Pennington <hp@redhat.com>
519 * glib/dbus-gmain.c: docs cleanups
521 * dbus/dbus-types.h: add docs on int64 types
523 * dbus/dbus-memory.c: fix docs to avoid putting private API in
524 public API docs section
526 2003-04-29 Havoc Pennington <hp@redhat.com>
528 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
529 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
530 parallel install API version, not with the D-BUS package version.
532 * HACKING: move some of README over here
534 * README: updates, and document API/ABI policy
536 * configure.in: reindentation
538 2003-04-29 Havoc Pennington <hp@redhat.com>
540 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
541 to use this library" to be sure people have the right
544 2003-04-28 Havoc Pennington <hp@redhat.com>
546 * configure.in: add --enable-docs which by default is auto yes if
547 doxygen and db2html found, no otherwise; but can be forced on/off
549 * doc/Makefile.am: conditionalize whether to build docs on
552 2003-04-28 Havoc Pennington <hp@redhat.com>
558 * bus/system.conf.in: add <includedir>system.d</includedir>
560 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
561 username was provided but not uid
563 * bus/config-parser.c (struct BusConfigParser): keep track of
564 whether the parser is toplevel or was included; change some
565 of the error handling if it's included.
567 2003-04-27 Havoc Pennington <hp@pobox.com>
571 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
572 report correct status if we finish processing authentication
573 inside this function.
575 * bus/activation.c (try_send_activation_failure): use
576 bus_transaction_send_error_reply
578 * bus/connection.c (bus_connection_get_groups): return an error
579 explaining the problem
581 * bus/bus.c (bus_context_check_security_policy): implement
582 restriction here that inactive connections can only send the
583 hello message. Also, allow bus driver to send anything to
586 * bus/connection.c (bus_connection_complete): create the
587 BusClientPolicy here instead of on-demand.
588 (bus_connection_get_policy): don't return an error
590 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
591 sender field in message being replied to
593 * bus/bus.c (bus_context_check_security_policy): fix silly typo
594 causing it to return FALSE always
596 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
597 we checked sender rather than destination
599 2003-04-25 Havoc Pennington <hp@redhat.com>
601 test suite is slightly hosed at the moment, will fix soon
603 * bus/connection.c (bus_connections_expire_incomplete): fix to
604 properly disable the timeout when required
605 (bus_connection_set_name): check whether we can remove incomplete
606 connections timeout after we complete each connection.
608 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
609 probably still broken.
611 * bus/services.c (bus_registry_acquire_service): implement max
612 number of services owned, and honor allow/deny rules on which
613 services a connection can own.
615 * bus/connection.c (bus_connection_get_policy): report errors here
617 * bus/activation.c: implement limit on number of pending
620 2003-04-25 Havoc Pennington <hp@redhat.com>
622 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
623 where we used >= 0 instead of != DBUS_UID_UNSET.
625 2003-04-25 Havoc Pennington <hp@redhat.com>
627 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
628 were toggled without add/remove, fix from Anders Gustafsson
630 2003-04-24 Havoc Pennington <hp@redhat.com>
632 * test/data/valid-config-files/basic.conf: add <limit> tags to
635 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
636 <limit> tag in configuration file.
638 2003-04-24 Havoc Pennington <hp@redhat.com>
640 * bus/dispatch.c: somehow missed some name_is
642 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
643 (_dbus_timeout_set_interval): new
645 * bus/connection.c (bus_connections_setup_connection): record time
646 when each connection is first set up, and expire them after the
649 2003-04-24 Havoc Pennington <hp@redhat.com>
651 * dbus/dbus-message.c (dbus_message_name_is): rename
652 (dbus_message_service_is): rename
653 (dbus_message_sender_is): rename
654 (dbus_message_get_service): rename
656 2003-04-24 Havoc Pennington <hp@redhat.com>
658 * configure.in: add --enable-checks
660 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
662 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
664 (_dbus_connection_handler_destroyed_locked): move some private
665 functions into proper docs group
667 * dbus/dbus-internals.h: add _dbus_return_if_fail,
668 _dbus_return_val_if_fail
670 Throughout: use dbus_return_if_fail
672 2003-04-23 James Willcox <jwillcox@gnome.org>
675 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
676 (dbus_connection_setup_with_g_main),
677 (dbus_server_setup_with_g_main):
678 * glib/test-dbus-glib.c: (main):
679 * glib/test-thread-client.c: (main):
680 * glib/test-thread-server.c: (new_connection_callback), (main):
681 * tools/dbus-monitor.c: (main):
683 Added a GMainContext argument to dbus_connection_setup_with_g_main()
684 and dbus_server_setup_with_g_main().
686 2003-04-20 Havoc Pennington <hp@pobox.com>
688 * doc/dbus-specification.sgml: document the restrictions on
689 message and service names
691 2003-04-22 Havoc Pennington <hp@redhat.com>
693 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
694 support, and do some code cleanups to share more code and
695 speed up array marshal/demarshal.
697 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
699 * configure.in: generate dbus-arch-deps.h
701 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
704 2003-04-22 Havoc Pennington <hp@redhat.com>
706 * test/data/valid-messages/opposite-endian.message: fix test
707 to use proper type for rply field
709 * test/data/invalid-messages: add tests for below validation
711 * dbus/dbus-message.c (decode_header_data): validate field types,
712 and validate that named fields are valid names
713 (decode_name_field): consider messages in the
714 org.freedesktop.Local. namespace to be invalid.
716 * dbus/dbus-string.c (_dbus_string_validate_name): new
718 2003-04-19 Havoc Pennington <hp@pobox.com>
720 * bus/driver.c (bus_driver_handle_hello): check limits and
721 return an error if they are exceeded.
723 * bus/connection.c: maintain separate lists of active and inactive
724 connections, and a count of each. Maintain count of completed
725 connections per user. Implement code to check connection limits.
727 * dbus/dbus-list.c (_dbus_list_unlink): export
729 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
730 number of bytes in the message queue for a connection
732 2003-04-18 Havoc Pennington <hp@pobox.com>
734 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
736 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
739 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
740 on realloc be sure to update the pointer in the keyring
742 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
743 offset to avoid writing to unallocated memory
745 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
746 try the next mechanism, so we properly handle OOM
748 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
750 (_dbus_keyring_new): fix OOM bug
751 (_dbus_keyring_new_homedir): always set error; impose a maximum
752 number of keys we'll load from the file, mostly to speed up the
753 test suite and make its OOM checks more useful, but also for
756 * dbus/dbus-auth.c (process_error_server): reject authentication
757 if we get an error from the client
758 (process_cancel): on cancel, send REJECTED, per the spec
759 (process_error_client): send CANCEL if we get an error from the
762 2003-04-18 Havoc Pennington <hp@pobox.com>
764 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
767 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
770 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
771 about DBUS_TEST_HOMEDIR once
773 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
776 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
777 config file so we test the right thing
779 Throughout: assorted docs improvements
781 2003-04-18 Havoc Pennington <hp@pobox.com>
783 * glib/dbus-gmain.c: adapt to watch changes
785 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
787 * dbus/dbus-server.h: remove dbus_server_handle_watch
789 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
791 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
792 like DBusTimeout, so we don't need dbus_connection_handle_watch
795 2003-04-17 Havoc Pennington <hp@redhat.com>
797 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
798 database usage so it all goes via the DBusUserDatabase cache.
800 2003-04-17 Havoc Pennington <hp@redhat.com>
802 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
803 there was an OOM watch we skipped, we always return TRUE so we
804 iterate again to have a look at it again. Fixes test suite hang.
805 Code rearrangement also lets us lose some memset and only iterate
808 * bus/driver.c (bus_driver_handle_message): sense of test for
811 2003-04-16 Havoc Pennington <hp@pobox.com>
813 * doc/dbus-specification.sgml: make spec say serials are unsigned
815 * dbus/dbus-message.h: change message serials to unsigned
817 * dbus/dbus-connection.c: adapt to message serials being unsigned
819 2003-04-15 Havoc Pennington <hp@pobox.com>
821 * bus/bus.c: create and keep around a shared DBusUserDatabase
824 * bus/connection.c (bus_connection_get_groups): don't cache
825 groups for user in the connection object, since user database
826 object now does that.
828 2003-04-16 Havoc Pennington <hp@redhat.com>
830 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
831 list of size counters
832 (_dbus_message_loader_putback_message_link): put back a popped link
834 * dbus/dbus-connection.c
835 (dbus_connection_set_max_live_messages_size): rename
837 (dbus_connection_get_outgoing_size): get size of outgoing
839 (_dbus_connection_set_connection_counter): remove this cruft
841 2003-04-14 Havoc Pennington <hp@redhat.com>
843 * dbus/dbus-userdb.c: user database abstraction, mostly to get
844 caching, but at some point we might want to be able to use a
847 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
848 SHA1 conf file to test the sha1 auth mechanism, since the regular
849 test always uses EXTERNAL when available.
852 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
853 add conf file that requires use of sha1 auth
855 2003-04-13 Havoc Pennington <hp@pobox.com>
857 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
858 from Philip Blundell to send messages and monitor them.
860 2003-04-13 Havoc Pennington <hp@pobox.com>
862 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
865 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
868 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
869 fix to only recover unused bytes if we're already authenticated
870 (_dbus_transport_get_is_authenticated): fix to still mark us
871 authenticated if there are unused bytes.
873 * bus/dispatch.c: implement security policy checking
875 * bus/connection.c (bus_transaction_send_from_driver): new
877 * bus/bus.c (bus_context_check_security_policy): new
879 * bus/dispatch.c (send_service_nonexistent_error): delete this,
880 now we just set the DBusError and it gets converted to an error
883 * bus/connection.c (allow_user_function): enable code using actual
884 data from the config file
886 * bus/policy.c (list_allows_user): handle wildcard rules for
887 user/group connection perms
889 2003-04-13 Havoc Pennington <hp@pobox.com>
891 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
893 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
895 * bus/policy.c (bus_policy_append_mandatory_rule)
896 (bus_policy_append_default_rule, bus_policy_append_user_rule)
897 (bus_policy_append_group_rule): new functions
899 2003-04-12 Havoc Pennington <hp@pobox.com>
901 * bus/config-parser.c (bus_config_parser_new): fix a memleak
903 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
904 the pid/gid/uid, just for paranoia.
906 * test/break-loader.c (randomly_do_n_things): find a byte
907 containing a type code, and randomly change it to a different
910 2003-04-12 Havoc Pennington <hp@pobox.com>
912 * bus/policy.h: change BusPolicy to be the thing from the config
913 file, and rename old BusPolicy to BusClientPolicy
915 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
916 match change in how policy works
918 * dbus/dbus-internals.h: mark assert_not_reached as
919 __attribute((noreturn))__
921 2003-04-11 Havoc Pennington <hp@redhat.com>
923 * doc/dbus-specification.sgml: fix a spot with the wrong name for
924 the broadcast service. Use boolean return for ServiceExists.
926 2003-04-11 Havoc Pennington <hp@redhat.com>
928 * configure.in: add another directory to look for qt in.
930 2003-04-11 Havoc Pennington <hp@redhat.com>
932 * AUTHORS: add Colin Walters
934 2003-04-11 Havoc Pennington <hp@redhat.com>
940 2003-04-11 Havoc Pennington <hp@redhat.com>
942 * bus/messagebus.in: remove pid file when stopping the
943 message bus, since the bus won't have privileges to remove it
946 2003-04-11 Havoc Pennington <hp@redhat.com>
948 * bus/bus.c (bus_context_new): move credentials change after
951 2003-04-11 Havoc Pennington <hp@pobox.com>
953 * test/decode-gcov.c: add "below average functions" to the
954 coverage report, and change how some of the code works.
956 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
957 not in the coverage stats.
959 * test/test-service.c (main): use _dbus_verbose not fprintf in a
960 couple places so running the test suite doesn't result in megaspam.
962 2003-04-11 Havoc Pennington <hp@pobox.com>
964 * bus/dispatch.c (check_existent_service_activation): accept a no
965 memory error in a place we didn't before
967 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
968 in case the first one failed," since the test suite is less
971 2003-04-10 Havoc Pennington <hp@pobox.com>
973 * bus/dispatch.c (check_segfault_service_activation): add test
974 for launching an executable that just crashes.
976 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
977 don't leave a million cores. We'll see how portable this is.
979 2003-04-10 Havoc Pennington <hp@pobox.com>
981 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
982 the possible parent failures before we fork, so that we don't
983 fail to create a babysitter after creating the child.
985 * bus/activation.c (bus_activation_activate_service): kill child
986 if we don't successfully complete the activation.
988 2003-04-10 Havoc Pennington <hp@redhat.com>
990 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
991 the connection if it's disconnected
993 * bus/activation.c (bus_activation_service_created): use new
994 transaction features to roll back removal of pending activation if
995 we don't successfully create the service after all. Don't remove
996 pending activation if the function fails.
998 * dbus/dbus-list.c (_dbus_list_insert_before_link)
999 (_dbus_list_insert_after_link): new code to facilitate
1002 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
1003 new functionality, so we can preallocate the ability to insert
1006 * bus/connection.c (bus_transaction_add_cancel_hook): new function
1007 allowing us to put custom hooks in a transaction to be used for
1008 cancelling said transaction
1010 * doc/dbus-specification.sgml: add some discussion of secondary
1011 service owners, and disallow zero-length service names
1013 * bus/services.c (bus_registry_acquire_service): new function,
1014 splits out part of bus_driver_handle_acquire_service() and fixes
1015 a bug where we didn't remove the service doing the acquiring
1016 from the secondary queue if we failed to remove the current owner
1017 from the front of the queue.
1019 2003-04-10 Alexander Larsson <alexl@redhat.com>
1021 * doc/dbus-specification.sgml:
1022 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
1024 2003-04-10 Alexander Larsson <alexl@redhat.com>
1029 Added files to cvsignore
1031 * dbus/dbus-message.h:
1032 * dbus/dbus-message.c: (dbus_message_iter_get_named):
1033 Make get_named() take two out argument and return a boolean.
1034 (dbus_message_iter_get_args_valist):
1035 Update usage of get_named().
1036 (dbus_message_iter_append_byte):
1038 (dbus_message_iter_append_named)
1040 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
1043 2003-04-10 Alexander Larsson <alexl@redhat.com>
1045 * dbus/dbus-marshal.[ch]:
1046 Add array_type_pos argument to _dbus_marshal_validate_arg.
1047 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
1049 * dbus/dbus-message.[ch]:
1050 Multi-dimensional arrays have full type specification in the
1051 outermost array. Iter code re-arranged to handle this.
1052 Added some more iter tests.
1054 * doc/dbus-specification.sgml:
1057 Update new array encoding description.
1058 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
1060 * test/data/invalid-messages/array-with-mixed-types.message:
1061 * test/data/valid-messages/array-of-array-of-uint32.message:
1062 Change to the new array format.
1064 * test/data/invalid-messages/too-short-dict.message:
1067 * test/data/valid-messages/recursive-types.message:
1068 Fix up and extend test.
1070 2003-04-10 Havoc Pennington <hp@pobox.com>
1072 * bus/dispatch.c: lots of fixes
1074 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
1075 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
1076 that was crack, broke the test service.
1078 * dbus/dbus-transport.c (_dbus_transport_open): fix error
1079 handling to avoid piling up errors if we get a failure on the
1082 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
1083 pid in assertion failures.
1085 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
1086 to some fixed size of file descriptor array. Don't return TRUE
1087 anytime a timeout exists, that led to lots of busy loop silliness
1090 2003-04-09 Havoc Pennington <hp@redhat.com>
1092 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1093 I'd checked this in earlier but hadn't.
1095 2003-04-09 Havoc Pennington <hp@redhat.com>
1097 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1098 the activation test (man this is getting old!)
1100 2003-04-09 Havoc Pennington <hp@redhat.com>
1102 * test/test-utils.c: use dispatch status function to fix this up
1104 * bus/connection.c (connection_watch_callback): don't dispatch
1106 (connection_timeout_callback): don't dispatch from here
1107 (bus_connections_setup_connection): set the dispatch status function
1108 (bus_connection_disconnected): unset it
1110 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1111 used to add a connection to be dispatched
1112 (_dbus_loop_iterate): do the dispatching at the end of each
1115 * dbus/dbus-connection.c
1116 (dbus_connection_set_dispatch_status_function): new function
1117 allowing us to fix up main loop usage
1118 (_dbus_connection_last_unref): free all the various function
1120 (dbus_connection_dispatch): call the DispatchStatusFunction
1121 whenever this function returns
1122 (dbus_connection_handle_watch): call DispatchStatusFunction
1123 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1124 (reply_handler_timeout): call DispatchStatusFunction
1125 (dbus_connection_flush): call DispatchStatusFunction
1127 2003-04-09 Havoc Pennington <hp@redhat.com>
1129 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1132 * bus/dispatch.c (check_service_activated): fix bug in test
1134 * dbus/dbus-mainloop.c (check_timeout): fix this up
1136 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1137 verbose output so we can sort out output from different processes,
1138 e.g. in the activation case.
1140 2003-04-08 Colin Walters <walters@gnu.org>
1142 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1144 (bus_context_new): Set it.
1145 (bus_context_unref): Use it to delete the pid file.
1147 2003-04-08 Havoc Pennington <hp@redhat.com>
1149 * test/data/invalid-messages/array-with-mixed-types.message:
1150 regression test that fails for the moment
1152 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1153 tests for convenience
1155 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1156 array of nil, it broke things.
1158 * test/data/invalid-messages/array-of-nil.message: regression test
1160 * test/data/valid-messages/array-of-array-of-uint32.message:
1161 happened to write this so added it to suite
1163 2003-04-08 Havoc Pennington <hp@redhat.com>
1165 * bus/driver.c (bus_driver_handle_acquire_service): init
1166 retval/reply before checking name
1168 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1169 recursion depth argument
1171 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1172 in the public struct for future extension
1174 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1177 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1180 * doc/dbus-specification.sgml: fix typo
1182 2003-04-08 Alexander Larsson <alexl@redhat.com>
1184 Implemented recursive types, named types and new-style iters
1187 * glib/test-thread-client.c: (thread_func):
1188 * glib/test-thread-server.c: (handle_test_message):
1189 * test/test-service.c: (handle_echo):
1198 * dbus/dbus-internals.c: (_dbus_type_to_string):
1199 Update for new types.
1201 * dbus/dbus-marshal.[ch]:
1202 Implement recursive types and the new marshalling format.
1203 Remove hardcoded dict marshalling.
1204 Marshal named types.
1206 * dbus/dbus-message-builder.c:
1208 Remove references to old types
1210 * dbus/dbus-message.[ch]:
1211 New non-refcounted iter API that supports recursive iters.
1212 Use iters for appending, including support for recursive
1214 Add byte and named type support.
1215 Update everything to new marshalling formats.
1216 Add tests for new API.
1218 * dbus/dbus-protocol.h:
1219 Remove old array types.
1220 Add types: BYTE, ARRAY, DICT, NAMED
1222 * dbus/dbus-string.c:
1223 * dbus/dbus-sysdeps.c:
1224 Make parse_double locale safe.
1226 * dbus/dbus-test-main.c:
1232 * doc/dbus-specification.sgml:
1235 * test/data/incomplete-messages/missing-body.message:
1236 * test/data/invalid-messages/bad-boolean.message:
1237 * test/data/invalid-messages/bad-boolean-array.message:
1238 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1239 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1240 * test/data/invalid-messages/too-short-dict.message:
1241 * test/data/valid-messages/dict-simple.message:
1242 * test/data/valid-messages/dict.message:
1243 * test/data/valid-messages/emptiness.message:
1244 * test/data/valid-messages/lots-of-arguments.message:
1245 * test/data/valid-messages/no-padding.message:
1246 * test/data/valid-messages/recursive-types.message:
1247 Add missing NAME fields
1248 Fix up dicts & arrays
1250 * test/data/invalid-messages/dict-with-nil-value.message:
1251 Removed, this is not invalid anymore.
1253 * test/data/valid-messages/recursive-types.message:
1254 Add new test for deeply recursive types.
1256 2003-04-07 Havoc Pennington <hp@pobox.com>
1258 * bus/driver.c (bus_driver_handle_acquire_service): return an
1259 error if you try to acquire a service that starts with ':'
1261 2003-04-07 Havoc Pennington <hp@redhat.com>
1263 * doc/dbus-specification.sgml: require that base service names
1264 start with ':' and that the base service is created/deleted
1265 as first and last things a connection does on the bus
1267 * bus/dispatch.c (check_existent_service_activation): lots more
1268 work on the activation test; it doesn't fully pass yet...
1270 * test/test-service.c (main): fix so we don't memleak the
1271 connection to the message bus
1272 (filter_func): accept a message asking us to exit
1274 2003-04-06 Havoc Pennington <hp@pobox.com>
1276 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1279 * configure.in: fixes to Qt detection from Colin Walters
1281 * doc/Makefile.am: Only remove generated docbook dirs if they
1282 exist, from Colin Walters
1284 * dbus/dbus-bus.c: change how we set well-known connections to
1285 NULL, so that it works if a single connection is stored in
1286 two well-known array slots.
1288 * test/Makefile.am: remove a lot of stuff that isn't immediately
1289 useful, it's in CVS history if we want it.
1291 * test/test-service.c: use dbus-mainloop instead of that
1294 2003-04-06 Havoc Pennington <hp@pobox.com>
1296 * dbus/Makefile.am: split lists of sources into stuff that goes in
1297 the library, util functions that go in the lib and are also used
1298 elsewhere, and util functions that are used in tests/daemon but
1299 don't go in the lib.
1301 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1302 here so it can be used in test binaries also
1304 2003-04-06 Havoc Pennington <hp@pobox.com>
1306 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1307 here in the parent process, so we can return an error if it
1308 fails. Also, move some of the code into the child so the parent
1309 is less hosed if we fail midway through.
1311 * bus/bus.c (bus_context_new): move pidfile detection further up
1312 in the function, before we start overwriting sockets and such.
1314 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1316 * configure.in: add --with-system-pid-file and --with-system-socket
1318 2003-04-06 Colin Walters <walters@verbum.org>
1320 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1322 * bus/system.conf.in: Declare a pidfile.
1324 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1325 create one (if appropriate).
1327 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1328 (struct BusConfigParser) [pidfile]: New.
1329 (element_type_to_name, merge_included, start_busconfig_child)
1330 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1331 (bus_config_parser_unref): Free it.
1332 (bus_config_parser_get_pidfile): New function.
1334 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1336 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1338 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1340 * dbus/dbus-sysdeps.h: Prototype it.
1342 2003-04-06 Havoc Pennington <hp@pobox.com>
1344 * bus/bus.c (bus_context_new): print the address in here, rather
1345 than in main(), because we need to do it before forking the daemon
1347 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1348 on the service nonexistent error
1350 * bus/driver.c (bus_driver_handle_acquire_service): set the
1351 sender on the AcquireService reply
1353 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1354 server also listen on a UNIX socket so services can connect to it.
1356 2003-04-06 Havoc Pennington <hp@pobox.com>
1358 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1359 so it detects deadlocks and also we actually init threads when
1362 2003-04-06 Havoc Pennington <hp@pobox.com>
1364 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1365 save the domain socket name, and unlink it when we disconnect the
1366 server. Means that at least when we exit normally, we won't leave
1367 a bunch of junk in /tmp
1369 * dbus/dbus-transport-unix.c
1370 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1371 memory management). (I was making a real change here but then
1374 2003-04-06 Havoc Pennington <hp@pobox.com>
1376 * bus/bus.c (bus_context_new): fix wrong handling of
1377 server_data_slot_unref() in the error case.
1379 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1380 "(condition) != 0" to _dbus_real_assert so that
1381 "_dbus_assert (pointer)" doesn't cause a warning
1383 * bus/main.c (main): accept --print-address option to print out
1384 the message bus address
1386 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1388 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1389 "tmpdir" option to unix: address on client side
1391 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1394 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1395 we can use to create sockets in the test suite.
1397 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1398 cleanly. To be used for testing.
1400 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1402 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1404 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1405 handle trying to call this when there's no servers active
1407 2003-04-05 Havoc Pennington <hp@pobox.com>
1413 2003-04-05 Havoc Pennington <hp@pobox.com>
1415 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1416 crash on startup. Need to get "try starting the daemon"
1417 in the test suite I guess. ;-)
1419 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1420 tracked the number of open connections; it's better done in
1421 application-specific code as you want it to span all servers etc.
1423 2003-04-05 Havoc Pennington <hp@pobox.com>
1425 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1426 patch from Colin Walters
1428 2003-04-05 Havoc Pennington <hp@pobox.com>
1430 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1431 reality; in fact multiple mechanisms are allowed.
1433 * dbus/dbus-internals.c (_dbus_real_assert)
1434 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1435 _dbus_assert_not_reached() into functions, so that they don't show
1436 up in basic block counts for test coverage, and don't use up as
1437 much disk space. Does mean slower execution speed though, so
1438 assumes --disable-asserts is the normal production case.
1440 2003-04-05 Havoc Pennington <hp@pobox.com>
1442 * test/Makefile.am (dist-hook): also dist *.in files
1448 2003-04-05 Havoc Pennington <hp@pobox.com>
1450 * dbus/dbus-string.c: docs warning
1452 * dbus/dbus-spawn.c: missing docs
1454 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1456 2003-04-05 Havoc Pennington <hp@pobox.com>
1458 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1461 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1462 to -1 once we've reaped the babysitter
1463 (_dbus_babysitter_handle_watch): do as much work as we can, not
1466 * bus/activation.c: add code using DBusBabysitter so that we
1467 handle it when a service fails to start up properly.
1468 (bus_activation_service_created): don't remove the activation
1469 entries as we go, just let them get removed when we free the pending
1470 activation. Unref reply messages after sending them.
1472 2003-04-05 Havoc Pennington <hp@pobox.com>
1474 * test/decode-gcov.c (main): print per-directory stats in the report
1476 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1478 2003-04-05 Havoc Pennington <hp@pobox.com>
1480 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1482 * test/decode-gcov.c: hack up a little program to suck data
1483 out of gcov files. Yes this is sort of silly.
1485 * configure.in: define something in config.h and do an
1486 AM_CONDITIONAL when gcov is enabled
1488 2003-04-04 Havoc Pennington <hp@redhat.com>
1490 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1491 return a "babysitter" object that is used to monitor the status of
1492 the spawned process and reap it when required.
1494 * test/test-segfault.c, test/test-exit.c,
1495 test/test-sleep-forever.c: binaries that do various lame things,
1496 used in the test suite.
1498 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1500 2003-04-03 Havoc Pennington <hp@pobox.com>
1502 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1503 in preparation for modifying it, dbus-sysdeps is getting
1506 2003-04-03 Havoc Pennington <hp@redhat.com>
1508 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1511 * bus/*.[hc]: adapt to mainloop change
1513 2003-04-03 Havoc Pennington <hp@redhat.com>
1515 * bus/activation.c (load_directory): fix up memleaks
1516 (bus_activation_entry_free): free the entry
1518 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1519 we get one from the message bus; fix memleaks.
1521 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1523 2003-04-03 Havoc Pennington <hp@pobox.com>
1525 * bus/config-parser.c (bus_config_parser_unref): free
1526 list of mechanisms, bug discovered by test suite enhancements
1527 (putting system.conf and session.conf into suite)
1529 * test/Makefile.am, test/test-service.c: add placeholder for a
1530 test service that we'll activate as part of test suite. Doesn't
1533 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1534 setting NULL value, and use system malloc not dbus_malloc()
1535 when we have unavoidable memleakage.
1537 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1538 didn't work, and support DBUS_BUS_ACTIVATION.
1540 * bus/activation.c (child_setup): pass our well-known bus type to
1543 * bus/config-parser.c: support <type> to specify well-known type
1545 * doc/dbus-specification.sgml: document the env variables to
1546 locate well-known buses and find service activator
1548 2003-04-02 Havoc Pennington <hp@redhat.com>
1550 * test/Makefile.am (all-local): add a rule to copy tests to
1551 builddir, so we can have generated tests. Use this to remove the
1552 silly hack for testing system.conf and session.conf. Will use this
1553 shortly to generate .service files pointing to test binaries.
1555 2003-04-02 Havoc Pennington <hp@redhat.com>
1557 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1558 current alloc and needed new length, not max of the doubled
1559 allocation and needed new length. Also, when building tests,
1560 don't do the double-allocation stuff, just realloc every time.
1562 2003-04-02 Havoc Pennington <hp@redhat.com>
1564 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1566 (_dbus_string_get_dirname): new
1567 (_dbus_sysdeps_test): new
1568 (_dbus_directory_open): include dirnames in error messages
1570 * bus/config-parser.c: interpret <include> and <includedir> and
1571 <servicedir> relative to config file location if the given
1572 filename is not absolute.
1574 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1576 2003-04-02 Havoc Pennington <hp@redhat.com>
1578 * bus/connection.c (bus_transaction_send_error_reply): set sender
1579 service for the error, and unref the reply on success
1581 * bus/activation.c: convert to use BusTransaction so OOM can be
1583 (bus_activation_service_created): set sender of the message
1585 2003-04-01 Havoc Pennington <hp@redhat.com>
1587 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1588 <includedir> (at least mostly)
1590 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1591 first, then the user ID
1593 2003-04-01 Havoc Pennington <hp@pobox.com>
1595 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1598 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1600 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1602 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1603 socket 0777, and unlink any existing socket.
1605 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1606 the configuration file so specifies; set up auth mechanism
1609 * bus/config-parser.c (bus_config_parser_content): add support
1610 for <fork> option and fill in code for <auth>
1612 * bus/system.conf.in: add <fork/> to default configuration,
1613 and limit auth mechanisms to EXTERNAL
1615 * doc/config-file.txt (Elements): add <fork>
1617 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1618 (_dbus_change_identity): new function
1620 2003-03-31 Havoc Pennington <hp@redhat.com>
1622 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1623 (_dbus_listen_unix_socket): fix off-by-one error in null
1624 termination spotted by Nalin
1626 2003-03-31 Havoc Pennington <hp@redhat.com>
1628 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1629 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1630 having a real home directory available.
1632 2003-03-31 Havoc Pennington <hp@redhat.com>
1634 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1636 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1638 * configure.in: add support for specifying a style of init script
1641 2003-03-31 Havoc Pennington <hp@redhat.com>
1643 Fix some annoying DBusString API and fix all affected code.
1645 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1647 (_dbus_string_get_data): change to return string instead of using
1649 (_dbus_string_get_const_data): ditto
1650 (_dbus_string_get_data_len): ditto
1651 (_dbus_string_get_const_data_len): ditto
1653 2003-03-31 Havoc Pennington <hp@redhat.com>
1655 * bus/main.c (main): fix up the command line arguments to be nicer
1657 2003-03-31 Havoc Pennington <hp@redhat.com>
1659 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1660 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1661 final location that lands in the config file
1663 * bus/config-loader-expat.c (bus_config_load): fix type of
1666 * doc/TODO: remove TODO item for dbus_bus_get()
1668 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1670 2003-03-31 Havoc Pennington <hp@pobox.com>
1672 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1673 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1674 argument since they are always client side
1676 * dbus/dbus-server.c (dbus_server_get_address): new function
1678 * bus/main.c (main): take the configuration file as an argument.
1680 * test/data/valid-config-files/debug-allow-all.conf: new file to
1681 use with dispatch.c tests for example
1683 * bus/test-main.c (main): require test data dir
1685 * bus/bus.c (bus_context_new): change this to take a
1686 configuration file name as argument
1688 * doc/config-file.txt (Elements): add <servicedir>
1690 * bus/system.conf, bus/session.conf: new files
1692 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1693 well-known socket if none set
1695 * configure.in: create system.conf and session.conf
1697 2003-03-30 Havoc Pennington <hp@pobox.com>
1699 * bus/config-parser.c: hacking
1701 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1702 to shut down, since it could cause weirdness with the DBusList
1705 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1706 link-oriented stack routines
1707 (alloc_link): free the mempool if the first alloc from it fails
1709 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1711 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1713 (_dbus_string_skip_white): new
1715 * doc/config-file.txt (Elements): add <includedir>
1717 2003-03-28 Havoc Pennington <hp@pobox.com>
1719 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1720 (_dbus_string_copy_data): new functions
1722 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1724 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1728 * dbus/dbus-memory.c:
1731 2003-03-28 Havoc Pennington <hp@pobox.com>
1733 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1734 I think it may have just been superstition. Not sure.
1736 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1737 failures that were not being handled.
1739 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1741 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1742 row that will fail on out-of-memory.
1744 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1745 function for testing out-of-memory handling.
1747 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1748 allocation functions, they do map exactly to the expat ones.
1750 2003-03-27 Havoc Pennington <hp@redhat.com>
1752 * bus/config-loader-libxml.c (bus_config_load): add another error
1755 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1758 Add note about automatic service activation.
1760 * doc/dbus-specification.sgml:
1761 Rename the specification and clarify a few things.
1763 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1766 * dbus/dbus-address.c:
1768 * dbus/dbus-marshal.c:
1769 * dbus/dbus-server-debug-pipe.c:
1770 * dbus/dbus-transport-unix.c:
1771 Fix documentation warnings.
1773 2003-03-26 Havoc Pennington <hp@pobox.com>
1775 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1776 after every test so it's quick and easy to see which leaked, and
1777 so we test multiple dbus_shutdown() calls
1779 * configure.in: change configure.in XML stuff to also support
1782 * config-loader-libxml.c: some hacking
1784 * config-loader-expat.c: some hacking
1786 * config-parser.c: some hacking, plus tests
1788 2003-03-25 Havoc Pennington <hp@redhat.com>
1790 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1792 * configure.in: add --with-xml option to specify XML library,
1793 right now only libxml is supported.
1795 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1796 nonworking code between home and work, still just stubs
1798 2003-03-24 Havoc Pennington <hp@redhat.com>
1800 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1803 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1804 NULL argument for "message" if the error is a well-known one,
1805 fill in a generic message in this case.
1807 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1810 * bus/test.c (bus_test_flush_bus): add
1812 * bus/policy.c (bus_policy_test): test code stub
1814 2003-03-24 Havoc Pennington <hp@pobox.com>
1816 * bus/connection.c (bus_connections_setup_connection): set up
1817 the "can this user connect" function, but it always returns
1818 TRUE until we have a config file parser so we can have a config
1819 file that allows connections.
1821 2003-03-23 Havoc Pennington <hp@pobox.com>
1823 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1824 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1825 the mutex, so we can check for proper memory management
1828 * dbus/dbus-dataslot.c: remove the mutex from
1829 DBusDataSlotAllocator and lock it manually when using it,
1830 to simplify fitting it into the global slots framework.
1832 * dbus/dbus-threads.c (init_static_locks): rework how we're
1833 handling global locks so they are easily shut down.
1835 * bus/policy.c (bus_policy_append_rule): fix
1837 * bus/test-main.c (main): check for memleaks
1839 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1840 test suite check for memleaks
1842 * dbus/dbus-memory.c: add support in test mode for tracking
1843 number of outstanding blocks
1845 2003-03-23 Havoc Pennington <hp@pobox.com>
1847 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1850 * dbus/dbus-hash.h: add ULONG hash keys
1852 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1853 (_dbus_get_group_id): new function
1855 2003-03-20 Havoc Pennington <hp@redhat.com>
1857 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1859 (dbus_connection_get_unix_user): new function
1861 2003-03-20 Havoc Pennington <hp@pobox.com>
1863 * bus/connection.c (bus_connection_send_oom_error): assert that
1864 message has a sender
1865 (connection_execute_transaction): ditto
1866 (bus_connection_preallocate_oom_error): fix to set the sender, and
1867 set recipient to the destination service, not the bus driver
1869 * bus/policy.c: hacking
1871 * dbus/dbus-message.c (dbus_message_service_is): new function
1872 (dbus_message_sender_is): new
1874 2003-03-19 Havoc Pennington <hp@redhat.com>
1876 * bus/policy.c: start sketching code for policy restrictions on
1877 what connections can do.
1879 2003-03-18 Havoc Pennington <hp@redhat.com>
1881 * doc/TODO: some notes on high-level todo items. Little nitpick
1882 stuff is all in @todo, so no need to add it here.
1884 * doc/config-file.txt: some notes on how config file might look
1886 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1892 2003-03-17 Havoc Pennington <hp@redhat.com>
1894 * dbus/dbus-internals.h: add gcc attributes so that
1895 our printf-style functions warn on bad arguments to
1898 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1901 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1904 2003-03-17 Havoc Pennington <hp@redhat.com>
1906 * bus/test-main.c (main): make it print something as it runs
1907 so make check doesn't look stuck
1909 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1910 from CVS, now obsolete
1912 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1914 * bus/dispatch.c: (bus_dispatch):
1915 Refetch the service name since it may have been reallocated
1916 when dbus_message_set_sender was called.
1918 * dbus/dbus-sysdeps.c: (_dbus_accept):
1919 Add address and address length variables and use them to stop
1920 valgrind from complaining.
1922 2003-03-17 Havoc Pennington <hp@pobox.com>
1924 All tests pass, no memleaks, no valgrind complaints.
1926 * bus/test.c: refcount handler_slot
1928 * bus/connection.c (bus_connections_new): refcount
1929 connection_data_slot
1931 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1932 bytes so that auth scripts pass.
1934 * bus/dispatch.c: init message_handler_slot so it gets allocated
1937 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1939 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1940 dealloc server_pipe_hash when no longer used for benefit of
1943 * dbus/dbus-auth.c (process_command): memleak fix
1945 * bus/dispatch.c (check_hello_message): memleak fix
1947 2003-03-16 Havoc Pennington <hp@pobox.com>
1949 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1951 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1953 * bus/activation.c (bus_activation_activate_service): Append
1954 the pending activation entry to the list of pending activations.
1956 2003-03-16 Havoc Pennington <hp@pobox.com>
1958 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1961 * dbus/dbus-address.c (create_entry): fix OOM handling when
1962 failing to alloc entry->method
1964 2003-03-16 Havoc Pennington <hp@pobox.com>
1966 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1969 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1970 add some missing dbus_set_result
1972 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1973 alloc the DBusMessageHandler
1975 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1976 the transport here, since we call this from the finalizer; it
1977 resulted in a double-finalize.
1979 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1980 where we tried to use transport->connection that was NULL,
1981 happened when transport was disconnected early on due to OOM
1983 * bus/*.c: adapt to handle OOM for watches/timeouts
1985 * dbus/dbus-transport-unix.c: port to handle OOM during
1988 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1989 reference to unused bytes instead of a copy
1991 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1994 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1997 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
2000 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2002 * doc/dbus-specification.sgml:
2003 Document reply message for ActivateService.
2005 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2007 * bus/activation.c: (bus_pending_activation_entry_free),
2008 (bus_pending_activation_free), (bus_activation_new),
2009 (bus_activation_unref), (bus_activation_service_created),
2010 (bus_activation_activate_service):
2012 * bus/bus.c: (bus_context_new):
2013 * bus/desktop-file.c: (new_section):
2014 * bus/driver.c: (bus_driver_send_service_deleted),
2015 (bus_driver_handle_activate_service):
2016 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
2018 * dbus/dbus-connection.c:
2019 (dbus_connection_send_with_reply_and_block):
2020 * dbus/dbus-message.c: (dbus_message_append_args_valist):
2021 * dbus/dbus-protocol.h:
2022 Make activation work better. Now pending activations will be queued
2023 and the daemon won't try to activate services that are already registered.
2025 2003-03-16 Havoc Pennington <hp@pobox.com>
2027 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
2030 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
2031 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
2033 2003-03-16 Havoc Pennington <hp@pobox.com>
2035 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
2036 this. always run the test suite before commit...
2038 * bus/*: adapt to DBusConnection API changes
2040 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
2041 requires renaming stuff to avoid dbus_connection_dispatch name
2044 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
2047 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2048 separate from _dbus_message_loader_return_buffer()
2050 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
2051 this, because it's now always broken to use; the number of
2052 messages in queue vs. the number still buffered by the message
2053 loader is undefined/meaningless. Should use
2054 dbus_connection_get_dispatch_state().
2055 (dbus_connection_dispatch): rename from
2056 dbus_connection_dispatch_message
2058 2003-03-16 Havoc Pennington <hp@pobox.com>
2060 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
2063 2003-03-16 Anders Carlsson <andersca@codefactory.se>
2065 * dbus/dbus-connection.c:
2066 (dbus_connection_send_with_reply_and_block):
2067 Decrease connection->n_incoming when removing an entry
2069 * dbus/dbus-dict.c: (dbus_dict_entry_free),
2070 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2071 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2072 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
2073 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
2074 (dbus_dict_get_byte_array):
2075 Handle NULL arrays and strings. Also add support for byte arrays.
2077 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
2078 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
2079 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
2080 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
2081 (_dbus_demarshal_dict), (demarshal_and_validate_len),
2082 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
2083 * dbus/dbus-marshal.h:
2084 Add support for marshalling and demarshalling empty arrays and strings.
2086 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2087 (dbus_message_append_string_array),
2088 (dbus_message_iter_get_boolean),
2089 (dbus_message_iter_get_boolean_array),
2090 (dbus_message_iter_get_int32_array),
2091 (dbus_message_iter_get_uint32_array),
2092 (dbus_message_iter_get_double_array),
2093 (dbus_message_iter_get_byte_array),
2094 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2095 (check_message_handling):
2096 Add support for getting empty arrays and dicts.
2098 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2099 Don't do any validation at all for now, that's better than just checking
2102 * test/data/valid-messages/emptiness.message:
2103 New test message with lots of empty arrays.
2105 2003-03-16 Havoc Pennington <hp@pobox.com>
2107 * dbus/dbus-connection.c
2108 (_dbus_connection_queue_received_message_link): new function that
2109 can't fail due to OOM
2111 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2112 new function pops a message together with a list link
2115 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2116 message queuing functions to avoid needing to alloc memory
2118 2003-03-16 Havoc Pennington <hp@pobox.com>
2120 Oops - test code was only testing failure of around 30 of the
2121 mallocs in the test path, but it turns out there are 500+
2122 mallocs. I believe this was due to misguided linking setup such
2123 that there was one copy of dbus_malloc etc. in the daemon and one
2124 in the shared lib, and only daemon mallocs were tested. In any
2125 case, the test case now tests all 500+ mallocs, and doesn't pass
2126 yet, though there are lots of fixes in this patch.
2128 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2129 this so that it doesn't need to allocate memory, since it
2130 has no way of indicating failure due to OOM (and would be
2131 annoying if it did).
2133 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2135 * bus/Makefile.am: rearrange to create two self-contained
2136 libraries, to avoid having libraries with overlapping symbols.
2137 that was resulting in weirdness, e.g. I'm pretty sure there
2138 were two copies of global static variables.
2140 * dbus/dbus-internals.c: move the malloc debug stuff to
2143 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2146 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2148 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2151 * bus/dispatch.c (bus_dispatch_add_connection): free
2152 message_handler_slot when no longer using it, so
2153 memory leak checkers are happy for the test suite.
2155 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2157 * bus/bus.c (new_connection_callback): disconnect in here if
2158 bus_connections_setup_connection fails.
2160 * bus/connection.c (bus_connections_unref): fix to free the
2162 (bus_connections_setup_connection): if this fails, don't
2163 disconnect the connection, just be sure there are no side
2166 * dbus/dbus-string.c (undo_alignment): unbreak this
2168 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2170 (_dbus_auth_new): fix the order in which we free strings
2173 * bus/connection.c (bus_connection_disconnected): fix to
2174 not send ServiceDeleted multiple times in case of memory
2177 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2178 get the base service name
2179 (dbus_bus_register_client): don't return base service name,
2180 instead store it on the DBusConnection and have an accessor
2182 (dbus_bus_register_client): rename dbus_bus_register()
2184 * bus/dispatch.c (check_hello_message): verify that other
2185 connections on the bus also got the correct results, not
2186 just the one sending hello
2188 2003-03-15 Havoc Pennington <hp@pobox.com>
2190 Make it pass the Hello handling test including all OOM codepaths.
2191 Now to do other messages...
2193 * bus/services.c (bus_service_remove_owner): fix crash when
2194 removing owner from an empty list of owners
2195 (bus_registry_ensure): don't leave service in the list of
2196 a connection's owned services if we fail to put the service
2199 * bus/connection.c (bus_connection_preallocate_oom_error): set
2200 error flag on the OOM error.
2202 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2203 handle _dbus_transport_set_connection failure
2205 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2206 to create watches up front and simply enable/disable them as
2208 (unix_connection_set): this can now fail on OOM
2210 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2211 of enabling/disabling a watch or timeout.
2213 * bus/loop.c (bus_loop_iterate): don't touch disabled
2216 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2218 2003-03-15 Havoc Pennington <hp@pobox.com>
2220 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2221 write useful test code, after all that futzing around ;-)
2223 Test does not yet pass because we can't handle OOM in
2224 _dbus_transport_messages_pending (basically,
2225 dbus_connection_preallocate_send() does not prealloc the write
2226 watch). To fix this, I think we need to add new stuff to
2227 set_watch_functions, namely a SetEnabled function so we can alloc
2228 the watch earlier, then enable it later.
2230 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2231 dbus-memory.c to the convenience lib
2233 * bus/test.c: rename some static functions to keep them clearly
2234 distinct from stuff in connection.c. Handle client disconnection.
2236 2003-03-14 Havoc Pennington <hp@pobox.com>
2238 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2239 transport, tests more of the real codepath. Set up clients
2240 with bus_setup_debug_client.
2242 * bus/test.c (bus_setup_debug_client): function to set up debug
2243 "clients" on the main loop
2245 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2248 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2251 * dbus/dbus-server-debug.c: support a debug server based on pipes
2253 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2254 (_dbus_close): new function
2256 * configure.in: check for socketpair
2258 2003-03-14 Havoc Pennington <hp@redhat.com>
2260 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2263 * dbus/dbus-transport-debug.c: rework this a good bit to be
2264 less complicated. hopefully still works.
2266 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2269 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2272 * dbus/dbus-message.c (dbus_message_copy): rename from
2273 dbus_message_new_from_message, fix it up to copy
2274 all the message fields, add test case
2276 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2277 not quite passing yet
2279 2003-03-14 Havoc Pennington <hp@pobox.com>
2281 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2282 until no work remains" in test code. (the large diff here
2283 is just code movement, no actual changes)
2285 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2286 1, no point waiting around for test code.
2287 (_dbus_server_debug_accept_transport): unref the timeout
2288 after adding it (right?)
2290 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2292 2003-03-13 Havoc Pennington <hp@redhat.com>
2294 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2297 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2300 * dbus/dbus-connection.h: Make AddWatchFunction and
2301 AddTimeoutFunction return a bool so they can fail on out-of-memory
2303 * bus/bus.c (bus_context_new): set up timeout handlers
2305 * bus/connection.c (bus_connections_setup_connection): set up
2308 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2311 * bus/bus.c (bus_context_new): adapt to changes
2313 * bus/connection.c: adapt to changes
2315 * test/watch.c: adapt to DBusWatch changes
2317 * bus/dispatch.c (bus_dispatch_test): started adding this but
2320 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2322 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2324 2003-03-13 Havoc Pennington <hp@pobox.com>
2326 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2327 set up a test framework as for the library
2329 2003-03-12 Havoc Pennington <hp@pobox.com>
2331 Throughout: purge global variables, introduce BusActivation,
2332 BusConnections, BusRegistry, etc. objects instead.
2334 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2337 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2338 going to redo this a bit differently I think
2340 2003-03-12 Havoc Pennington <hp@redhat.com>
2342 Mega-patch that gets the message bus daemon initially handling
2343 out-of-memory. Work still needed. Also lots of random
2344 moving stuff to DBusError instead of ResultCode.
2346 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2348 * dbus/dbus-connection.c
2349 (dbus_connection_send_with_reply_and_block): use DBusError
2351 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2354 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2355 code here, as the only failure possible is OOM.
2357 * bus/connection.c (bus_connection_disconnect):
2358 rename bus_connection_disconnected as it's a notification only
2360 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2361 "name" on get_args failure, should be done by get_args;
2362 don't disconnect client for bad args, just return an error.
2363 (bus_driver_handle_service_exists): ditto
2365 * bus/services.c (bus_services_list): NULL-terminate returned array
2367 * bus/driver.c (bus_driver_send_service_lost)
2368 (bus_driver_send_service_acquired): send messages from driver to a
2369 specific client to the client's unique name, not to the broadcast
2372 * dbus/dbus-message.c (decode_header_data): reject messages that
2373 contain no name field
2374 (_dbus_message_get_client_serial): rename to
2375 dbus_message_get_serial and make public
2376 (_dbus_message_set_serial): rename from set_client_serial
2377 (_dbus_message_set_reply_serial): make public
2378 (_dbus_message_get_reply_serial): make public
2380 * bus/connection.c (bus_connection_foreach): allow stopping
2381 iteration by returning FALSE from foreach function.
2383 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2384 (dbus_connection_free_preallocated_send)
2385 (dbus_connection_preallocate_send): new API for sending a message
2386 without possibility of malloc failure.
2387 (dbus_connection_send_message): rename to just
2388 dbus_connection_send (and same for whole function family)
2390 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2392 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2394 * bus/activation.c: handle/return errors
2396 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2398 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2399 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2400 (_dbus_result_from_errno): move to this file
2402 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2404 * dbus/dbus-marshal.c:
2405 (_dbus_marshal_set_string):
2406 Take a length argument so we can marshal the correct string
2409 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2410 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2411 (_dbus_marshal_test):
2412 * dbus/dbus-marshal.h:
2413 Add support for marshalling and demarshalling dicts.
2415 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2416 Add support for TYPE DICT.
2418 * dbus/dbus-message.c: (set_string_field):
2419 Adjust header padding.
2421 (dbus_message_append_args_valist), (dbus_message_append_dict),
2422 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2423 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2424 (check_message_handling), (check_have_valid_message):
2425 * dbus/dbus-message.h:
2426 Add functions for setting and getting dicts.
2428 * dbus/dbus-protocol.h:
2434 * doc/dbus-specification.sgml:
2435 Add information about how dicts are marshalled.
2437 * test/data/invalid-messages/dict-with-nil-value.message:
2438 * test/data/invalid-messages/too-short-dict.message:
2439 * test/data/valid-messages/dict-simple.message:
2440 * test/data/valid-messages/dict.message:
2441 Add sample messages containing dicts.
2443 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2445 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2447 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2450 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2451 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2452 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2453 (dbus_dict_set_double), (dbus_dict_set_string),
2454 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2455 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2456 (dbus_dict_set_string_array), (_dbus_dict_test):
2458 Fix according to comments from Havoc.
2460 2003-03-06 Michael Meeks <michael@server.home>
2462 * configure.in: if we don't have kde-config, disable have_qt.
2464 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2469 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2470 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2471 (dbus_dict_remove), (dbus_dict_get_value_type),
2472 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2473 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2474 (dbus_dict_put_double), (dbus_dict_put_string),
2475 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2476 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2477 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2478 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2479 (dbus_dict_get_double), (dbus_dict_get_string),
2480 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2481 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2482 (dbus_dict_get_string_array), (_dbus_dict_test):
2484 Add DBusDict implementation
2486 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2490 2003-03-04 Havoc Pennington <hp@pobox.com>
2492 * test/data/auth/*: adapt to changes
2494 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2495 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2498 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2499 more stuff from being in a context name, to make the protocol
2500 simpler to deal with
2502 * dbus/dbus-errors.c (dbus_error_has_name): new function
2503 (dbus_error_is_set): new function
2505 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2506 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2508 * dbus/dbus-connection.c (dbus_connection_flush): also read
2509 messages during a flush operation
2511 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2513 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2515 * configure.in: Check for gethostbyname on Solaris.
2517 * dbus/dbus-transport.c: (_dbus_transport_open):
2518 Remove duplicate "tcp" entry.
2520 * doc/dbus-specification.sgml:
2521 Clarify some things.
2523 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2525 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2526 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2527 (_dbus_keyring_test):
2528 * dbus/dbus-md5.c: (_dbus_md5_compute):
2529 * dbus/dbus-sha.c: (_dbus_sha_compute):
2532 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2534 * README: Add some things.
2536 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2538 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2539 after case DBUS_TYPE_BOOELAN.
2541 2003-03-02 Havoc Pennington <hp@pobox.com>
2543 * test/break-loader.c (randomly_set_extreme_ints): add test that
2544 sets really huge and small integers
2546 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2547 that length of boolean array fits in the string, and that
2548 string has room for boolean value in single-bool case.
2550 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2551 optional value to "ALIGN" command which is what to fill the
2554 * test/data/valid-messages/no-padding.message: add regression
2555 test for the message padding problem
2557 2003-03-02 Havoc Pennington <hp@pobox.com>
2559 * dbus/dbus-message.c (decode_header_data): fix to always init
2560 message_padding, from Benjamin Dauvergne
2562 2003-03-02 Havoc Pennington <hp@pobox.com>
2568 2003-03-01 Joe Shaw <joe@assbarn.com>
2570 * configure.in: Check for "struct cmsgcred" and try to access its
2571 members for BSD-like unices.
2573 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2574 _dbus_read_credentials_unix_socket().
2575 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2576 read() for reading the credential byte off the unix socket. Use
2577 struct cmsgcred on systems that support it.
2579 2003-02-27 Alexander Larsson <alexl@redhat.com>
2583 Make gthreads-2.0 dependency optional. Don't build thread test if
2586 2003-02-27 Havoc Pennington <hp@pobox.com>
2588 * dbus/dbus-connection.c
2589 (dbus_connection_send_message_with_reply_and_block): fix doh!
2590 doh! doh! bug that resulted in never removing a reply from the
2591 queue, no wonder we called get_reply_serial so much ;-)
2593 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2594 and client serial instead of demarshaling them every time
2596 2003-02-27 Havoc Pennington <hp@pobox.com>
2598 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2599 more inlined, using dbus-string-private.h, speeds things up
2602 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2603 when freeing the string
2604 (_dbus_string_steal_data): fix for align offset
2605 (undo_alignment): new function
2607 2003-02-26 Havoc Pennington <hp@redhat.com>
2609 All kinds of audit fixes from Owen, plus initial attempt to
2610 handle unaligned memory returned from malloc.
2612 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2613 leave room for align_offset and nul byte
2614 (fixup_alignment): function to track an align_offset and
2615 ensure real->str is aligned
2616 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2617 to allow a nul byte plus align offset
2618 (_dbus_string_lock): fix overflow issue
2619 (_dbus_string_init_const_len): add assertions on sanity of len,
2620 assign allocated to be ALLOCATION_PADDING larger than len
2621 (set_length): fixup the overflow handling
2622 (_dbus_string_get_data_len): fix overflow in assertion
2623 (open_gap): detect overflow in size of gap to be opened
2624 (_dbus_string_lengthen): add overflow check
2625 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2626 (_dbus_string_append): add overflow check
2627 (_dbus_string_append_unichar): overflow
2628 (_dbus_string_delete): fix overflow in assertion
2629 (_dbus_string_copy_len): overflow in assertion
2630 (_dbus_string_replace_len): overflows in assertions
2631 (_dbus_string_find): change to implement in terms of
2632 _dbus_string_find_to
2633 (_dbus_string_find_to): assorted fixage
2634 (_dbus_string_equal_c_str): assert c_str != NULL,
2635 fix logic so the function works
2636 (_dbus_string_ends_with_c_str): fix overflow thingy
2637 (_dbus_string_base64_encode): overflow fix
2638 (_dbus_string_validate_ascii): overflow
2639 (_dbus_string_validate_nul): overflow
2641 2003-02-26 Havoc Pennington <hp@redhat.com>
2643 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2645 2003-02-26 Alexander Larsson <alexl@redhat.com>
2648 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2650 * dbus/dbus-connection.c:
2651 * dbus/dbus-connection.h:
2652 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2653 Add dbus_connection_set_wakeup_main_function and use it when queueing
2654 incoming and outgoing messages.
2657 * dbus/dbus-dataslot.c:
2658 Threadsafe usage of DBusDataSlotAllocator
2660 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2663 * dbus/dbus-server-unix.c:
2666 * glib/dbus-gmain.c:
2667 Implement the new wakeup functions for glib.
2670 * glib/test-thread-client.c:
2671 * glib/test-thread-server.c:
2672 * glib/test-thread.h:
2673 Initial cut at some thread test code. Not really done yet.
2675 2003-02-26 Havoc Pennington <hp@pobox.com>
2677 * dbus/dbus-connection.c
2678 (dbus_connection_send_message_with_reply_and_block): fix crash
2679 where we ref'd the outgoing message instead of the returned reply
2681 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2682 at the end of this function, so if we didn't need to read for
2683 authentication, we reinstall it for receiving messages
2685 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2686 a NULL sender for peer-to-peer case
2688 * dbus/dbus-transport-unix.c (check_read_watch): handle
2689 !authenticated case correctly
2691 * glib/dbus-gmain.c: add support for DBusServer
2693 * dbus/dbus-server.c: add data slot support
2695 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2696 return values and handle errors
2698 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2701 * Doxyfile.in (INPUT): add glib subdir
2703 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2704 setup_with_g_main instead of hookup_with_g_main; write docs
2706 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2708 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2709 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2710 * dbus/dbus-message.c: (dbus_message_append_boolean),
2711 (dbus_message_append_boolean_array),
2712 (dbus_message_get_args_valist), (_dbus_message_test):
2713 * dbus/dbus-message.h:
2714 * doc/dbus-specification.sgml:
2715 Various fixes as pointed out by Havoc.
2717 * test/data/invalid-messages/bad-boolean-array.message:
2718 * test/data/invalid-messages/bad-boolean.message:
2719 Add invalid boolean value test cases.
2721 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2723 * dbus/dbus-internals.c: (_dbus_type_to_string):
2724 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2725 (_dbus_marshal_validate_arg):
2726 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2727 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2728 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2729 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2730 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2731 (dbus_message_iter_get_double),
2732 (dbus_message_iter_get_boolean_array), (message_iter_test):
2733 * dbus/dbus-message.h:
2734 * dbus/dbus-protocol.h:
2735 * doc/dbus-specification.sgml:
2736 * test/data/valid-messages/lots-of-arguments.message:
2737 Add support for boolean and boolean array types.
2739 2003-02-23 Havoc Pennington <hp@pobox.com>
2741 * dbus/dbus-keyring.c: finish most of this implementation and
2744 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2745 these barf if the error isn't cleared to NULL
2747 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2748 (_dbus_create_directory): new function
2750 * dbus/dbus-errors.c (dbus_set_error): fix warning
2752 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2753 (_dbus_string_hex_decode): new function
2754 (test_hex_roundtrip): test code
2756 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2758 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2760 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2761 the save-to-temp/rename trick to atomically write the new file
2762 (_dbus_string_parse_uint): new function
2764 2003-02-22 Havoc Pennington <hp@pobox.com>
2766 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2768 2003-02-22 Havoc Pennington <hp@pobox.com>
2770 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2771 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2773 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2775 * dbus/test/data/sha-1: add US government test suite for SHA-1
2777 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2779 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2780 Make string arrays NULL-terminated.
2782 * dbus/dbus-memory.c: (dbus_free_string_array):
2783 * dbus/dbus-memory.h:
2784 New function for freeing NULL-terminated string arrays.
2786 * dbus/dbus-message-builder.c: (append_quoted_string),
2787 (_dbus_message_data_load):
2788 Add support for array types.
2790 * dbus/dbus-message.c: (check_message_handling):
2791 Add more types as test cases.
2793 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2794 (_dbus_string_parse_double):
2795 Add the start offset to the end offset.
2797 * test/data/valid-messages/lots-of-arguments.message:
2798 New test message with lots of arguments.
2800 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2802 * dbus/dbus-message.c: (dbus_message_append_nil),
2803 (dbus_message_append_int32), (dbus_message_append_uint32),
2804 (dbus_message_append_double), (dbus_message_append_string),
2805 (dbus_message_append_int32_array),
2806 (dbus_message_append_uint32_array),
2807 (dbus_message_append_double_array),
2808 (dbus_message_append_byte_array),
2809 (dbus_message_append_string_array):
2810 Fix all out-of-memory handling in these functions.
2812 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2814 * dbus/dbus-message.c: (dbus_message_append_nil):
2817 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2819 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2820 (dbus_message_append_nil), (dbus_message_append_int32_array),
2821 (dbus_message_append_uint32_array),
2822 (dbus_message_append_double_array),
2823 (dbus_message_append_byte_array),
2824 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2825 (dbus_message_iter_get_int32_array),
2826 (dbus_message_iter_get_uint32_array),
2827 (dbus_message_iter_get_double_array),
2828 (dbus_message_iter_get_byte_array),
2829 (dbus_message_iter_get_string_array):
2831 * dbus/dbus-message.h:
2832 Add functions for appending and getting arrays.
2834 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2836 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2837 element size at least 8 bytes, fixes mempool tests on
2840 2003-02-20 Alexander Larsson <alexl@redhat.com>
2842 * dbus/dbus-transport-unix.c (unix_do_iteration):
2843 Unlock the connection mutex during a blocking select call.
2844 Add todo about how we need a way to wake up the select.
2846 * dbus/dbus-connection-internal.h:
2847 * dbus/dbus-connection.c:
2848 Add _dbus_connection_lock and _dbus_connection_unlock.
2850 2003-02-19 Havoc Pennington <hp@pobox.com>
2852 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2853 Doxyfile.in, not Doxyfile
2855 * dbus/dbus-keyring.c: do some hacking on this
2857 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2859 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2861 (dbus_set_error): remove dbus_error_init, check for message ==
2862 NULL *before* we sprintf into it, and add @todo about including
2863 system headers in this file
2865 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2867 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2869 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2870 get various bits of user information based on either username
2872 (_dbus_homedir_from_username): new function
2874 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2877 Add check for nonposix getpwnam_r
2879 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2880 Align the pool element size to a sizeof (void *) boundary.
2882 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2883 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2884 General Solaris fixes.
2886 * test/data/valid-messages/simplest-manual.message:
2887 Explicitly state that we want little-endian packing.
2889 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2891 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2893 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2894 Added to create a transport connecting using a tcp/ip socket.
2896 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2897 to a tcp socket at given host and port.
2898 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2901 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2903 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2904 Added to create a server listening on a TCP/IP socket.
2906 2003-02-19 Havoc Pennington <hp@pobox.com>
2908 Throughout: mop up all the Doxygen warnings and undocumented
2911 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2912 to search any paths.
2914 * dbus/dbus-threads.c: move global mutex initializers to
2915 dbus-internals.h, multiple prototypes was confusing doxygen
2916 besides being kind of ugly
2918 * Doxyfile (PREDEFINED): have Doxygen define
2919 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2920 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2921 (do not abuse the feature! it's for stuff like the autogenerated
2922 macros in dbus-md5.c, not just for things you don't feel like
2925 2003-02-18 Havoc Pennington <hp@pobox.com>
2927 * dbus/dbus-string.c (_dbus_string_zero): new function
2929 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2930 wrap it in some dbus-friendly API
2932 * dbus/dbus-types.h: add 16-bit types
2934 2003-02-18 Joe Shaw <joe@assbarn.com>
2936 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2937 credentials from our currently running process.
2938 (get_word): Fix a buglet where we were copying the entire length
2939 instead of relative to our position.
2941 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2942 keys on the stack... it's 640k of data.
2944 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2945 read the credentials byte off the socket, even if we don't have
2947 (_dbus_poll): Implement poll() using select() for systems which
2950 * glib/test-dbus-glib.c (main): Print out an error if no
2951 parameters are given.
2953 * test/data/auth/fallback.auth-script: Added. Tests that a client
2954 can fallback to a secondary auth mechanism if the first fails.
2956 2003-02-18 Havoc Pennington <hp@pobox.com>
2960 2003-02-17 Havoc Pennington <hp@pobox.com>
2962 * doc/dbus-specification.sgml: lots of cosmetic
2963 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2964 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2965 s/server/bus/ (except in authentication section). Add a section
2966 "Message Bus Message Routing"
2968 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2974 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2976 * doc/dbus-specification.sgml:
2977 Specification updates.
2979 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2981 * bus/activation.c: (bus_activation_init), (child_setup),
2982 (bus_activation_activate_service):
2984 * bus/main.c: (main):
2985 Set DBUS_ADDRESS environment variable.
2987 * dbus/dbus-errors.c: (dbus_set_error):
2988 Don't use va_copy since that's a C99 feature.
2990 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2991 (_dbus_spawn_async):
2992 * dbus/dbus-sysdeps.h:
2993 Add child_setup_func to _dbus_spawn_async.
2995 * doc/dbus-specification.sgml:
2996 Update specification.
2998 * test/spawn-test.c: (setup_func), (main):
3001 2003-02-17 Alexander Larsson <alexl@redhat.com>
3003 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
3006 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3010 * doc/dbus-test-plan.sgml:
3011 Add test plan document.
3016 2003-02-17 Anders Carlsson <andersca@codefactory.se>
3018 * dbus/dbus-message.c: (decode_header_data),
3019 (_dbus_message_loader_return_buffer):
3020 Set the header padding amount when loading a message.
3022 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3024 * bus/dispatch.c: (send_one_message):
3025 Only send broadcast messages to registered connections.
3027 * dbus/dbus-message.c: (dbus_message_name_is):
3028 * dbus/dbus-message.h:
3029 New convenience function.
3031 * dbus/dbus-transport-debug.c: (do_reading):
3032 Only dispatch one message per run.
3035 * test/bus-test.c: (new_connection_callback), (die),
3036 (test_hello_client1_handler), (test_hello_client2_handler),
3037 (test_hello_replies), (main):
3039 * test/bus-test-loop.[ch]:
3042 2003-02-16 Havoc Pennington <hp@pobox.com>
3044 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
3045 backward conditional
3047 2003-02-16 Alexander Larsson <alexl@redhat.com>
3049 * dbus/dbus-connection.c:
3050 Implement sent_message_with_reply. (with_reply_and block is still
3052 Made dispatch_message not lose message if OOM.
3054 * dbus/dbus-errors.h:
3055 Add NoReply error (for reply timeouts).
3057 2003-02-16 Alexander Larsson <alexl@redhat.com>
3059 * dbus/dbus-hash.c (_dbus_hash_table_unref):
3060 Actually free keys and values when destroying hashtable.
3062 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3064 * dbus/dbus-auth.c: (client_try_next_mechanism):
3067 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
3068 Return TRUE if there's no thread implementation around.
3070 * glib/dbus-gmain.c: (free_source),
3071 (dbus_connection_hookup_with_g_main):
3072 Make sure to remove the GSource when the connection is finalized.
3074 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3076 * bus/dispatch.c: (bus_dispatch_message_handler):
3077 * dbus/dbus-errors.h:
3078 Return an error if someone tries to send a message to a service
3081 2003-02-16 Anders Carlsson <andersca@codefactory.se>
3083 * bus/activation.c: (load_directory), (bus_activation_init),
3084 (bus_activation_activate_service):
3087 (bus_driver_handle_activate_service), (bus_driver_handle_message):
3088 More work on the activation handling.
3090 * dbus/dbus-errors.h:
3091 Add some error messages
3093 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3094 * dbus/dbus-message.h:
3095 New function that creates an error message.
3097 * dbus/dbus-protocol.h:
3098 Add ACTIVATE_SERVER message.
3100 * dbus/dbus-server-unix.c: (unix_handle_watch),
3101 (_dbus_server_new_for_domain_socket):
3102 Call _dbus_fd_set_close_on_exec.
3104 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3105 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3106 (_dbus_fd_set_close_on_exec):
3107 * dbus/dbus-sysdeps.h:
3108 Add _dbus_fd_set_close_on exec function. Also add function that checks
3109 that all open fds are set to close-on-exec and warns otherwise.
3111 * dbus/dbus-transport-unix.c:
3112 (_dbus_transport_new_for_domain_socket):
3113 Call _dbus_fd_set_close_on_exec.
3115 2003-02-16 Havoc Pennington <hp@pobox.com>
3117 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3118 allow people to avoid setting SIGPIPE to SIG_IGN
3119 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3120 we've been asked not to
3122 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3124 * dbus/dbus-list.c: (_dbus_list_append_link),
3125 (_dbus_list_prepend_link):
3126 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3130 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3133 * bus/activation.c: (bus_activation_entry_free),
3134 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3136 * bus/main.c: (main):
3137 Add simple activation support, doesn't work yet though.
3139 2003-02-15 Zack Rusin <zack@kde.org>
3141 * qt/dbus-qthread.cpp: small casting fix
3143 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3145 * dbus/dbus-errors.c: (dbus_set_error):
3146 * dbus/dbus-errors.h:
3147 Add a few errors and make dbus_set_error void.
3149 * dbus/dbus-sysdeps.c:
3150 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3151 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3152 * dbus/dbus-sysdeps.h:
3153 Add _dbus_spawn_async.
3155 * test/spawn-test.c: (main):
3156 Test for _dbus_spawn_async.
3158 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3160 * dbus/dbus-internals.h:
3161 Fix build without tests.
3163 * dbus/dbus-list.c: (alloc_link):
3164 Fix a segfault when a malloc fails.
3166 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3167 (dbus_malloc0), (dbus_realloc):
3168 Add support for malloc debugging.
3170 2003-02-15 Alexander Larsson <alexl@redhat.com>
3172 * dbus/dbus-threads.c:
3173 * dbus/dbus-threads.h:
3174 Add condvars. Remove static mutext from API.
3175 Implement static mutexes by initializing them from threads_init.
3177 * glib/dbus-gthread.c:
3178 * qt/dbus-qthread.cpp:
3179 Update with the thread api changes.
3184 Turn StaticMutex into normal mutex + init function.
3185 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3186 _dbus_list_append_link, _dbus_list_prepend_link
3189 * dbus/dbus-sysdeps.c:
3190 * dbus/dbus-sysdeps.h:
3191 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3192 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3194 * dbus/dbus-protocol.h:
3195 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3197 * dbus/dbus-message.c:
3198 Make ref/unref atomic.
3201 * dbus/dbus-connection-internal.h:
3202 * dbus/dbus-connection.c:
3203 * dbus/dbus-connection.h:
3205 Change _peek to _borrow,_return & _steal_borrowed.
3206 Change disconnect callback to event.
3207 Make dbus_connection_dispatch_messages reentrant.
3209 * dbus/dbus-transport.c:
3210 Don't ref the connection on calls to the transport
3213 * dbus/dbus-message-handler.c:
3216 * glib/dbus-gmain.c:
3217 Don't use peek_message anymore
3220 * test/debug-thread.c:
3221 * test/debug-thread.h:
3222 Simple thread implementation that asserts() on deadlocks in
3223 single-threaded code.
3226 (main) Call debug_threads_init.
3229 Use disconnect message instead of disconnect callback.
3233 Don't call dbus_connection_set_disconnect_function. Instead export
3234 bus_connection_disconnect.
3237 Call bus_connection_disconnect when we get a disconnected message.
3239 2003-02-15 Havoc Pennington <hp@pobox.com>
3241 * dbus/dbus-message.c (dbus_message_new): fool around with the
3244 2003-02-14 Havoc Pennington <hp@pobox.com>
3246 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3248 * dbus/dbus-memory.c: fail if the debug functions indicate we
3251 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3252 (_dbus_decrement_fail_alloc_counter): debug functions to
3253 simulate memory allocation failures
3255 2003-02-14 Havoc Pennington <hp@pobox.com>
3257 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3260 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3262 * bus/driver.c: (bus_driver_handle_hello):
3264 * bus/services.c: (bus_service_lookup):
3265 Reorder message sending so we get a more sane order.
3267 * test/bus-test.c: (message_handler):
3270 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3272 * bus/driver.c: (bus_driver_send_service_deleted),
3273 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3274 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3275 (bus_driver_send_welcome_message),
3276 (bus_driver_handle_list_services),
3277 (bus_driver_handle_acquire_service),
3278 (bus_driver_handle_service_exists):
3279 * dbus/dbus-bus.c: (dbus_bus_register_client),
3280 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3281 * dbus/dbus-errors.c: (dbus_result_to_string):
3282 * dbus/dbus-errors.h:
3283 * dbus/dbus-message.c: (dbus_message_append_args),
3284 (dbus_message_append_args_valist), (dbus_message_get_args),
3285 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3286 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3287 (dbus_message_iter_get_byte_array),
3288 (dbus_message_iter_get_string_array), (message_iter_test),
3289 (check_message_handling), (_dbus_message_test):
3290 * dbus/dbus-message.h:
3291 * test/bus-test.c: (main):
3292 Change fields to arguments in messages, so that they won't be
3293 confused with header fields.
3295 * glib/test-dbus-glib.c: (main):
3296 Remove append_fields from hello message.
3298 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3300 * dbus/dbus-errors.c:
3301 * dbus/dbus-message.c:
3302 * dbus/dbus-string.c:
3303 Documentation fixes.
3305 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3307 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3309 Implement support for timeouts in dbus-glib.
3311 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3313 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3314 * dbus/dbus-message.c: (process_test_subdir):
3315 * test/break-loader.c: (find_breaks_based_on):
3316 Plug some memory leaks.
3318 2003-02-13 Richard Hult <rhult@codefactory.se>
3320 * bus/main.c: Fix build.
3322 * dbus/dbus-errors.h:
3323 * dbus/dbus-errors.c: Fix copyright for Anders.
3325 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3330 * bus/connection.c: (bus_connection_foreach):
3333 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3334 (unescape_string), (new_section), (parse_section_start),
3335 (parse_key_value), (report_error), (bus_desktop_file_load),
3336 (bus_desktop_file_get_string):
3337 * bus/desktop-file.h:
3338 Use DBusError for error reporting.
3340 * bus/dispatch.c: (send_one_message),
3341 (bus_dispatch_message_handler):
3342 * bus/driver.c: (bus_driver_send_service_deleted),
3343 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3344 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3345 (bus_driver_send_welcome_message),
3346 (bus_driver_handle_list_services),
3347 (bus_driver_handle_acquire_service),
3348 (bus_driver_handle_service_exists):
3349 * bus/loop.c: (bus_loop_run):
3351 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3353 * bus/utils.c: (bus_wait_for_memory):
3355 New files with general utility functions.
3357 * dbus/dbus-internals.h:
3358 Remove _DBUS_HANDLE_OOM.
3360 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3362 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3363 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3364 * dbus/dbus-errors.h:
3365 Add DBusError structure.
3367 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3369 * test/data/valid-messages/standard-acquire-service.message:
3370 * test/data/valid-messages/standard-hello.message:
3371 * test/data/valid-messages/standard-list-services.message:
3372 * test/data/valid-messages/standard-service-exists.message:
3373 Add some standard messages.
3375 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3377 * bus/driver.c: (bus_driver_send_welcome_message),
3378 (bus_driver_handle_list_services),
3379 (bus_driver_handle_acquire_service),
3380 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3381 Update for API changes in libdbus.
3383 * dbus/dbus-message.c: (dbus_message_new_reply):
3384 * dbus/dbus-message.h:
3385 Remove the name argument. The spec states that replies shouldn't
3388 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3390 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3391 (report_error), (bus_desktop_file_load), (lookup_section),
3392 (lookup_line), (bus_desktop_file_get_raw),
3393 (bus_desktop_file_get_string):
3394 * bus/desktop-file.h:
3395 Some fixes, and new functions for getting a key value from a section.
3397 2003-02-13 Havoc Pennington <hp@pobox.com>
3399 * test/data/auth/fail-after-n-attempts.auth-script: new test
3401 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3404 2003-02-13 Havoc Pennington <hp@pobox.com>
3406 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3407 dbus_credentials_match were backward
3409 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3410 NO_CREDENTIALS and ROOT_CREDENTIALS
3412 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3413 into here. Never process more commands after we've reached an
3414 end state; store further data as unused bytes.
3416 * test/data/auth/*: add more auth tests
3418 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3419 command to match exact string and EXPECT_UNUSED to match unused
3422 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3424 2003-02-12 Havoc Pennington <hp@pobox.com>
3426 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3427 \r off of popped lines
3429 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3432 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3435 2003-02-12 Havoc Pennington <hp@pobox.com>
3437 * dbus/Makefile.am: remove break-loader from the build, since it
3440 * configure.in: add --enable-gcov to turn on coverage profiling
3441 flags and disable optimization
3443 2003-02-10 Havoc Pennington <hp@pobox.com>
3445 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3446 initial cut at test framework for DBusAuth from laptop.
3447 Doesn't quite work yet but it compiles and I need to get
3448 it off the 266mhz laptop. ;-)
3450 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3451 fix a memleak in error case
3453 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3456 * bus/desktop-file.c:
3457 * bus/desktop-file.h:
3458 Add a desktop file parser.
3460 2003-02-11 Zack Rusin <zack@kde.org>
3462 * qt/message.[h|cpp]: sample implementation
3463 of the KDE wrapper for DBusMessage
3465 2003-02-09 Zack Rusin <zack@kde.org>
3467 * test/bus-test.c: make_it_compile
3468 * doc/dbus-specification.sgml: minimal semantic fix
3470 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3476 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3479 * dbus/dbus-break-loader.c:
3481 * test/break-loader.c:
3482 Move dbus-break-loader to test/ and rename it to break-loader.
3484 2003-02-02 Havoc Pennington <hp@pobox.com>
3486 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3487 for code to manage cookies in your home directory
3489 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3491 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3492 to authenticate, then disconnect the client.
3494 2003-02-03 Alexander Larsson <alexl@redhat.com>
3496 * dbus/dbus-message.c (dbus_message_append_fields):
3499 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3501 * doc/dbus-specification.sgml:
3502 Update address format section.
3504 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3507 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3508 (message_handler), (new_connection_callback), (loop_quit),
3512 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3514 * bus/driver.c: (bus_driver_handle_service_exists):
3515 Simplify the code a bit.
3517 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3520 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3523 Add libdbus-daemon.la and link to it.
3525 2003-02-01 James Willcox <jwillcox@gnome.org>
3527 * bus/driver.c: (bus_driver_handle_own_service):
3528 Actually include the service reply code in the message.
3530 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3532 * bus/driver.c: (bus_driver_handle_service_exists):
3533 Don't unref the incoming message.
3535 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3537 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3539 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3541 * dbus/dbus-server.c: (dbus_server_listen):
3542 * dbus/dbus-transport.c: (_dbus_transport_open):
3543 ifdef out the calls to the debug transport and server.
3545 2003-02-02 Alexander Larsson <alexl@redhat.com>
3547 * dbus/dbus-watch.c (dbus_watch_get_flags):
3548 Add note in the docs that ERROR or HANGUP won't be returned
3549 and are assumed always on.
3551 * glib/dbus-gmain.c (add_watch):
3552 Always add IO_ERR | IO_HUP
3554 * dbus/dbus-message.h:
3555 Add semicolon after dbus_message_iter_get_string_array().
3556 Makes qt code build again
3558 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3560 * bus/driver.c: (create_unique_client_name),
3561 (bus_driver_handle_hello):
3562 Don't take a name, just use a numeric id to identify
3566 * dbus/dbus-bus.c: (dbus_bus_register_client),
3567 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3569 Add new convenience functions for communicating with the bus.
3571 * dbus/dbus-message.h:
3573 * dbus/dbus-protocol.h:
3576 2003-02-01 Alexander Larsson <alexl@redhat.com>
3578 * dbus/dbus-message.c (dbus_message_append_fields):
3579 Add some more doc comments.
3581 2003-02-01 Havoc Pennington <hp@pobox.com>
3583 * dbus/dbus-break-loader.c (randomly_modify_length): change
3584 a 4-byte value in the message as if it were a length
3586 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3587 execute bit on saved files
3589 2003-02-01 Havoc Pennington <hp@pobox.com>
3591 * dbus/dbus-break-loader.c (main): new program to find messages
3592 that break the loader.
3594 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3595 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3597 * dbus/dbus-string.c (_dbus_string_set_byte): new
3599 2003-01-31 Havoc Pennington <hp@pobox.com>
3601 * dbus/dbus-message.c: refactor the test code to be more general,
3602 in preparation for writing a "randomly permute test cases to
3603 try to break the loader" program.
3605 2003-01-31 Havoc Pennington <hp@pobox.com>
3607 * doc/dbus-specification.sgml: work on the specification
3609 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3610 the protocol version of the message.
3612 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3613 no longer specifies that.
3614 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3617 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3618 "break" for DBUS_TYPE_NIL, remove @todo
3620 2003-01-31 Havoc Pennington <hp@pobox.com>
3622 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3623 just set_is_error/get_is_error as this is a commonly-used
3624 function, and write docs.
3626 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3628 * dbus/dbus-address.c: (dbus_address_entry_free):
3629 Free key and value lists.
3631 * dbus/dbus-internals.c: (_dbus_type_to_string):
3632 Add the types we didn't have.
3634 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3635 (_dbus_marshal_validate_arg):
3638 * dbus/dbus-message.c: (dbus_message_set_sender):
3639 Remove todo about being able to set sender to NULL.
3641 (dbus_message_set_is_error_reply),
3642 (dbus_message_get_is_error_reply):
3643 * dbus/dbus-message.h:
3646 * dbus/dbus-protocol.h:
3647 Add error reply flag.
3649 * test/data/valid-messages/opposite-endian.message:
3650 Add NIL type to test.
3652 2003-01-31 Havoc Pennington <hp@pobox.com>
3654 * doc/dbus-specification.sgml: fully specify the header. Add
3655 flags and major protocol version, and change header/body len to
3658 * dbus/dbus-message-builder.c (append_saved_length): append length
3661 * dbus/dbus-message.c (dbus_message_create_header): change header
3662 length and body length to unsigned. Add the new fields from the
3664 (_dbus_message_loader_return_buffer): unsigned header/body len
3666 2003-01-30 Havoc Pennington <hp@pobox.com>
3668 * dbus/dbus-auth.c: rework to use only REJECTED, no
3671 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3672 use REJECTED, suggested by Mark McLoughlin
3674 2003-01-30 Havoc Pennington <hp@pobox.com>
3676 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3677 a better way to report errors here. e.g. "unix address lacks
3678 path" or something. also "no such file" when the path doesn't
3681 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3683 (dbus_parse_address): add @todo about documenting address format,
3684 and allowing , and ; to be escaped
3686 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3689 Add dbus-address.[ch]
3691 * dbus/dbus-address.c: (dbus_address_entry_free),
3692 (dbus_address_entries_free), (create_entry),
3693 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3694 (dbus_parse_address), (_dbus_address_test):
3695 * dbus/dbus-address.h:
3696 New files for dealing with address parsing.
3698 * dbus/dbus-connection.c:
3699 Document timeout functions.
3701 * dbus/dbus-message.c:
3702 Document dbus_message_new_from_message.
3704 * dbus/dbus-server-debug.c:
3707 * dbus/dbus-server.c: (dbus_server_listen):
3708 Parse address and use correct server implementation.
3710 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3711 * dbus/dbus-string.h:
3712 New function with test.
3714 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3718 * dbus/dbus-transport-debug.c:
3721 * dbus/dbus-transport.c: (_dbus_transport_open):
3722 Parse address and use correct transport implementation.
3724 2003-01-30 Havoc Pennington <hp@pobox.com>
3726 * dbus/dbus-message.c: use message->byte_order instead of
3727 DBUS_COMPILER_BYTE_ORDER throughout.
3728 (dbus_message_create_header): pad header to align the
3729 start of the body of the message to 8-byte boundary
3731 * dbus/dbus-marshal.h: make all the demarshalers take const
3732 DBusString arguments.
3734 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3735 validate message args here, so we don't have to do slow validation
3736 later, and so we catch bad messages as they are incoming. Also add
3737 better checks on header_len and body_len. Also fill in
3740 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3741 implemented properly)
3742 (_dbus_string_validate_nul): new function to check all-nul
3744 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3745 get_arg_end_pos and remove all validation
3746 (_dbus_marshal_validate_arg): actually do validation here.
3748 2003-01-29 Havoc Pennington <hp@pobox.com>
3750 * dbus/dbus-message.c (check_message_handling): fix assertion
3751 failure on set_client_serial
3753 2003-01-28 Havoc Pennington <hp@pobox.com>
3755 * dbus/dbus-server-debug.c: Add doc section comments
3757 * dbus/dbus-transport-debug.c: add doc section comments
3759 2003-01-28 Havoc Pennington <hp@redhat.com>
3761 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3762 the reverse order from how I had it
3763 (_dbus_string_base64_encode): reverse encoding order. I was
3764 basically byteswapping everything during encoding.
3766 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3768 * dbus/dbus-connection-internal.h:
3769 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3770 (_dbus_connection_remove_timeout):
3771 Add functions for adding and removing timeouts.
3773 * dbus/dbus-message.c: (dbus_message_new_from_message):
3774 Add new function that takes a message and creates an exact
3775 copy of it, but with the refcount set to 1.
3776 (check_message_handling):
3779 * dbus/dbus-server-protected.h:
3780 * dbus/dbus-server.c: (_dbus_server_init_base),
3781 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3782 (dbus_server_set_timeout_functions):
3783 (_dbus_server_remove_timeout):
3784 New functions so that a server can add and remove timeouts.
3786 (dbus_server_listen):
3787 Add commented out call to dbus_server_debug_new.
3789 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3790 Actually set the handler, doh.
3792 * dbus/dbus-transport.c: (_dbus_transport_open):
3793 Add commented out call to dbus_transport_debug_client_new.
3796 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3798 2003-01-28 Havoc Pennington <hp@pobox.com>
3800 * dbus/dbus-message.c (check_message_handling): function to check
3801 on the loaded message, iterates over it etc.
3803 2003-01-28 Havoc Pennington <hp@pobox.com>
3805 * test/Makefile.am (dist-hook): fix make distdir
3807 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3809 2003-01-27 Havoc Pennington <hp@pobox.com>
3811 * dbus/dbus-mempool.c (time_for_size): replace printf with
3814 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3815 empty lines; fix the SAVE_LENGTH stuff to be
3816 START_LENGTH/END_LENGTH so it actually works; couple other
3819 * test/Makefile.am (dist-hook): add dist-hook for .message files
3821 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3822 can be constant or locked.
3823 (_dbus_string_free): allow freeing a const string as
3826 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3828 * dbus/dbus-test-main.c (main): take an argument which is the
3829 directory containing test data
3831 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3832 argument to this and load all the messages in test/data/
3833 checking that they can be loaded or not loaded as appropriate.
3835 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3837 * bus/dispatch.c: (bus_dispatch_message_handler):
3838 Dispatch messages sent to services.
3840 * bus/driver.c: (bus_driver_send_service_deleted),
3841 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3842 (bus_driver_send_service_acquired):
3843 Add helper functions for sending service related messages.
3845 (bus_driver_send_welcome_message):
3846 Send HELLO_REPLY instead of WELCOME.
3848 (bus_driver_handle_list_services):
3849 Send LIST_SERVICES_REPLY instead of SERVICES.
3851 (bus_driver_handle_own_service),
3852 (bus_driver_handle_service_exists):
3853 New message handlers.
3855 (bus_driver_handle_message):
3856 Invoke new message handlers.
3858 (bus_driver_remove_connection):
3859 Don't remove any services here since that's done automatically
3860 by bus_service_remove_owner now.
3863 New function signatures.
3865 * bus/services.c: (bus_service_add_owner):
3866 Send ServiceAcquired message if we're the only primary owner.
3868 (bus_service_remove_owner):
3869 Send ServiceAcquired/ServiceLost messages.
3871 (bus_service_set_prohibit_replacement),
3872 (bus_service_get_prohibit_replacement):
3873 Functions for setting prohibit replacement.
3875 (bus_service_has_owner):
3876 New function that checks if a connection is in the owner queue of
3880 Add new function signatures.
3882 * dbus/dbus-list.c: (_dbus_list_test):
3883 Add tests for _dbus_list_remove_last and traversing the list backwards.
3886 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3887 go any further, so return NULL then.
3889 * dbus/dbus-protocol.h:
3890 Add new messages, service flags and service replies.
3892 2003-01-26 Havoc Pennington <hp@pobox.com>
3894 * dbus/dbus-message-builder.c: implement, completely untested.
3896 * test/data/*: add data to be used in testing.
3897 ".message" files are our simple loadable text format.
3898 ".message-raw" will be binary dumps of messages.
3900 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3902 2003-01-26 Havoc Pennington <hp@pobox.com>
3904 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3906 * dbus/dbus-errors.c (dbus_result_to_string): add
3909 * dbus/dbus-message-builder.c: new file, will contain code to load
3910 up messages from files. Not implemented yet.
3912 2003-01-26 Havoc Pennington <hp@pobox.com>
3914 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3915 the sender by setting to NULL
3917 2003-01-26 Havoc Pennington <hp@pobox.com>
3919 The unit tests pass, but otherwise untested. If it breaks, the
3920 tests should have been better. ;-)
3922 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3925 * dbus/dbus-message.c: redo everything so we maintain
3926 message->header as the only copy of the various fields.
3927 This avoids the possibility of out-of-memory in some cases,
3928 for example dbus_message_lock() can't run out of memory anymore,
3929 and avoids extra copying. Figured I may as well go ahead and do
3930 this since it was busted for dbus_message_lock to not return
3931 failure on OOM, and dbus_message_write_header was totally
3932 unchecked for OOM. Also fixed some random other bugs.
3934 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3935 that strings are nul-terminated. Also, end_pos can be equal
3936 to string length just not greater than, I think.
3937 (_dbus_marshal_set_int32): new function
3938 (_dbus_marshal_set_uint32): new function
3939 (_dbus_marshal_set_string): new function
3941 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3942 a warning, init timeout_list to NULL
3943 (dbus_connection_send_message): don't use uninitialized variable
3946 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3948 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3950 * bus/driver.c: (bus_driver_handle_hello),
3951 (bus_driver_send_welcome_message):
3954 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3956 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3957 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3958 (dbus_connection_unref):
3959 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3960 * dbus/dbus-message.c: (dbus_message_unref),
3963 (dbus_message_get_fields):
3964 Remove debugging printout.
3966 (_dbus_message_loader_return_buffer):
3967 Don't store the header string.
3969 (_dbus_message_test):
3972 2003-01-26 Richard Hult <rhult@codefactory.se>
3974 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3975 the file descriptor list, since it can change under us.
3977 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3979 * glib/dbus-gmain.c: (dbus_connection_prepare),
3980 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3981 (remove_watch), (dbus_connection_hookup_with_g_main):
3982 Rewrite the glib handling to use its own GSource instead of a
3983 GIOChannel so we can catch messages put in the queue while waiting
3986 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3989 * bus/connection.c: (connection_disconnect_handler),
3990 (connection_watch_callback), (bus_connection_setup):
3991 * bus/dispatch.c: (send_one_message),
3992 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3993 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3995 * bus/driver.c: (bus_driver_send_service_deleted),
3996 (bus_driver_send_service_created), (bus_driver_handle_hello),
3997 (bus_driver_send_welcome_message),
3998 (bus_driver_handle_list_services), (bus_driver_remove_connection),
3999 (bus_driver_handle_message):
4001 Refactor code, put the message dispatching in its own file. Use
4002 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
4005 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4007 * dbus/dbus-internals.h:
4008 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
4010 * dbus/dbus-message.c: (dbus_message_get_sender):
4011 * dbus/dbus-message.h:
4012 Implement dbus_message_get_sender.
4014 * dbus/dbus-protocol.h:
4015 Add message and service defines.
4017 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4019 * dbus/dbus-connection.c: (dbus_connection_send_message):
4020 * dbus/dbus-message-internal.h:
4021 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
4022 (dbus_message_write_header):
4023 Remove _dbus_messag_unlock and don't set the client serial on a
4024 message if one already exists.
4026 2003-01-24 Havoc Pennington <hp@pobox.com>
4028 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
4031 * bus/driver.c (bus_driver_handle_list_services): fix a leak
4034 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4036 * dbus/dbus-list.c: (alloc_link), (free_link):
4037 Use a memory pool for the links.
4039 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4041 * bus/connection.c: (bus_connection_foreach):
4043 Add new bus_connection_foreach function.
4045 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
4046 Add function that broadcasts a message to all clients.
4048 (bus_driver_send_service_created), (bus_driver_handle_hello),
4049 (bus_driver_send_welcome_message),
4050 (bus_driver_handle_list_services), (bus_driver_message_handler):
4051 Implement functions that take care of listing services, and notifying
4052 clients when new services are created.
4054 * bus/services.c: (bus_services_list):
4056 Add new function that returns an array of strings with the currently
4057 registered services.
4060 * glib/dbus-gmain.c:
4061 Update copyright year.
4063 2003-01-25 Anders Carlsson <andersca@codefactory.se>
4065 * dbus/dbus-connection.c: (dbus_connection_send_message):
4066 Unlock the message in case it was sent earlier.
4068 (dbus_connection_send_message_with_reply_and_block):
4069 Remove the reply message from the list.
4071 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4072 Set array_len and new_pos correctly.
4074 (_dbus_marshal_test):
4075 Remove debug output.
4077 * dbus/dbus-message-internal.h:
4078 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
4079 New function that returns the reply serial.
4081 (_dbus_message_unlock):
4082 New function that unlocks a message and resets its header.
4084 (dbus_message_append_string_array),
4085 (dbus_message_get_fields_valist),
4086 (dbus_message_iter_get_field_type),
4087 (dbus_message_iter_get_string_array),
4088 (dbus_message_get_fields),
4089 (dbus_message_append_fields_valist):
4090 Handle string arrays.
4092 (dbus_message_set_sender):
4093 Make this function public since the bus daemon needs it.
4095 (decode_header_data):
4096 Set the reply serial to -1 initially.
4098 * dbus/dbus-message.h:
4099 Add dbus_message_set_sender.
4101 2003-01-24 Havoc Pennington <hp@pobox.com>
4103 * doc/dbus-specification.sgml: add some stuff
4105 2003-01-22 Havoc Pennington <hp@pobox.com>
4107 * doc/dbus-specification.sgml: Start to document the protocol.
4109 2003-01-22 Havoc Pennington <hp@pobox.com>
4111 * dbus/dbus-connection.c
4112 (dbus_connection_send_message_with_reply_and_block): add some @todo
4114 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4116 2003-01-21 Havoc Pennington <hp@pobox.com>
4118 (patch untested because can't compile)
4120 * bus/driver.c (create_unique_client_name): make this function
4121 never recycle client names. Also, caller should initialize
4124 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4126 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4128 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4129 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4130 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4131 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4132 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4133 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4134 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4135 * dbus/dbus-marshal.h:
4136 * dbus/dbus-protocol.h:
4137 Add support for marshalling and demarshalling integer, double
4140 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4145 * bus/connection.c: (connection_disconnect_handler):
4146 Remove the connection from the bus driver's list.
4148 (connection_watch_callback): Dispatch messages.
4150 (free_connection_data): Free connection name.
4152 (bus_connection_setup): Add connection to the bus driver's list.
4153 (bus_connection_remove_owned_service):
4154 (bus_connection_set_name), (bus_connection_get_name):
4155 Add functions for setting and getting the connection's name.
4158 Add function headers.
4160 * bus/driver.c: (create_unique_client_name),
4161 (bus_driver_handle_hello_message),
4162 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4163 (bus_driver_add_connection), (bus_driver_remove_connection):
4166 * bus/services.c: (bus_service_free):
4168 New file that handles communication and registreation with the bus
4171 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4173 * dbus/dbus-connection.c: (dbus_connection_send_message):
4174 Add a new client_serial parameter.
4176 (dbus_connection_send_message_with_reply):
4177 Remove a @todo since we've implemented the blocking function.
4179 (dbus_connection_send_message_with_reply_and_block):
4180 New function that sends a message and waits for a reply and
4181 then returns the reply.
4183 * dbus/dbus-connection.h:
4186 * dbus/dbus-errors.c: (dbus_result_to_string):
4187 * dbus/dbus-errors.h:
4188 Add new DBUS_RESULT.
4190 * dbus/dbus-message-internal.h:
4191 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4192 (_dbus_message_set_sender), (dbus_message_write_header),
4193 (dbus_message_new_reply), (decode_header_data),
4194 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4195 * dbus/dbus-message.h:
4196 Add new functions that set the reply serial and sender.
4197 Also marshal and demarshal them correctly and add test.
4199 * dbus/dbus-protocol.h:
4200 Add new DBUS_MESSAGE_TYPE_SENDER.
4203 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4204 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4205 (dbus_connection_hookup_with_g_main):
4206 * glib/test-dbus-glib.c: (main):
4207 Rewrite to use GIOChannel and remove the GSource crack.
4209 * test/echo-client.c: (main):
4210 * test/watch.c: (check_messages):
4211 Update for changed APIs
4213 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4215 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4217 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4218 Create a DBusTimeoutList.
4219 (dbus_connection_set_timeout_functions): Add new function to
4220 set timeout callbacks
4222 * dbus/dbus-connection.h: Add public DBusTimeout API.
4224 * dbus/dbus-message.c: (dbus_message_get_service):
4225 * dbus/dbus-message.h: New function.
4227 * dbus/dbus-server.c: Fix small doc typo.
4229 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4231 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4233 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4234 of the string, just as long as specified.
4236 2003-01-19 Havoc Pennington <hp@pobox.com>
4238 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4241 * dbus/dbus-server.c (dbus_server_set_max_connections)
4242 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4243 keep track of current number of connections, and add API for
4244 setting a max (but haven't implemented enforcing the max yet)
4246 2003-01-18 Havoc Pennington <hp@pobox.com>
4248 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4249 reading/writing if read_watch != NULL or write_watch != NULL.
4251 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4252 the message loader code to actually load message->header and
4253 message->body into the newly-created message.
4255 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4258 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4259 (dbus_connection_get_max_message_size)
4260 (dbus_connection_set_max_live_messages_size)
4261 (dbus_connection_get_max_live_messages_size): implement some
4262 resource limitation functions
4264 * dbus/dbus-resources.c: new file implementing some of the
4265 resource limits stuff
4267 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4268 missing docs, add @todo to handle OOM etc.
4270 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4273 2003-01-18 Havoc Pennington <hp@pobox.com>
4275 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4276 connection if it hasn't been already.
4278 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4279 replace with DisconnectFunction.
4281 2003-01-18 Havoc Pennington <hp@pobox.com>
4283 Building --disable-verbose-mode --disable-asserts --disable-tests
4284 cuts the library from 112K to 45K or so
4286 * configure.in: check for varargs macro support,
4287 add --enable-verbose-mode, --enable-asserts.
4289 * dbus/dbus-internals.h (_dbus_assert): support
4291 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4293 2003-01-18 Havoc Pennington <hp@pobox.com>
4295 * dbus/dbus-test.c: include config.h so that tests actually run
4297 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4298 so the failure mode when that assumption fails will be plenty
4301 2003-01-18 Havoc Pennington <hp@pobox.com>
4303 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4305 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4308 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4309 since we don't want to use those in make check
4311 2003-01-15 Havoc Pennington <hp@redhat.com>
4317 2003-01-15 Havoc Pennington <hp@redhat.com>
4319 * test/Makefile.am: fix so that test source code ends up in the
4320 distribution on make distcheck
4322 2003-01-15 Havoc Pennington <hp@redhat.com>
4328 2003-01-15 Havoc Pennington <hp@redhat.com>
4330 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4331 fix build when --disable-tests
4333 * Makefile.am (EXTRA_DIST): put HACKING in here
4335 * HACKING: document procedure for making a tarball release.
4337 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4339 * bus/connection.c: (connection_error_handler),
4340 (bus_connection_setup):
4341 * bus/main.c: (main):
4342 Make sure that the DBusConnectionData struct is NULLed
4343 out to prevent a segfault.
4345 * dbus/dbus-errors.c: (dbus_result_to_string):
4346 * dbus/dbus-errors.h:
4347 * dbus/dbus-message.c: (dbus_message_get_fields),
4348 (dbus_message_get_fields_valist), (_dbus_message_test):
4349 * dbus/dbus-message.h:
4350 Make dbus_message_get_fields return a result code so we can
4351 track invalid fields as well as oom.
4353 2003-01-11 Havoc Pennington <hp@pobox.com>
4355 * configure.in: change --enable-test/--enable-ansi action-if-given
4356 to enable_foo=$enableval instead of enable_foo=yes
4358 2003-01-08 Havoc Pennington <hp@pobox.com>
4360 * dbus/dbus-string.c (_dbus_string_align_length): new function
4362 * dbus/dbus-test-main.c: move main() for test app here
4364 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4365 symbol to run tests, because dbus-test isn't in the main
4368 Code review nitpicks.
4370 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4371 for people with narrow emacs ;-). Assert client_serial was filled
4372 in. Assert message->name != NULL.
4373 (dbus_message_append_fields): have "first_field_type" arg separate
4374 from va list, needed for C++ binding that also uses varargs IIRC
4375 and helps with type safety
4376 (dbus_message_new): add @todo about using DBusString to store
4377 service/name internally
4378 (dbus_message_new): don't leak ->service and ->name on OOM later
4380 (dbus_message_unref): free the service name
4381 (dbus_message_get_fields): same change to varargs
4382 i.e. first_field_type
4383 (_dbus_message_loader_return_buffer): assert that the message data
4384 is aligned (if not it's a bug in our code). Put in verbose griping
4385 about why we set corrupted = TRUE.
4386 (decode_header_data): add FIXME that char* is evil. Was going to
4387 add FIXME about evil locale-specific string.h strncmp, but just
4388 switched to wacky string-as-uint32 optimization. Move check for
4389 "no room for field name" above get_const_data_len() to avoid
4390 assertion failure in get_const_data_len if we have trailing 2
4391 bytes or the like. Check for service and name fields being
4392 provided twice. Don't leak service/name on error. Require field
4393 names to be aligned to 4 bytes.
4395 * dbus/dbus-marshal.c: move byte swap stuff to header
4396 (_dbus_pack_int32): uscore-prefix
4397 (_dbus_unpack_int32): uscore-prefix
4398 (_dbus_unpack_uint32): export
4399 (_dbus_demarshal_string): add @todo complaining about use of
4401 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4402 handling allowing corrupt data to go unchecked
4404 2003-01-08 Havoc Pennington <hp@redhat.com>
4406 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4407 to the select() as needed for authentication. (should be using
4408 _dbus_poll() not select, but for another day)
4410 * dbus/dbus.h: include dbus/dbus-protocol.h
4412 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4414 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4417 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4419 * dbus/dbus-internals.c: (_dbus_type_to_string):
4420 New function that returns a string describing a type.
4422 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4423 * dbus/dbus-marshal.h:
4424 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4425 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4426 (dbus_message_iter_get_byte_array):
4427 * dbus/dbus-message.h:
4428 Add new convenience functions for appending and getting message fields.
4429 Also add demarshalling routines for byte arrays.
4431 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4433 * dbus/dbus-connection-internal.h:
4434 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4435 (_dbus_connection_get_next_client_serial),
4436 (dbus_connection_send_message):
4437 * dbus/dbus-internals.h:
4438 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4439 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4440 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4441 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4442 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4443 (_dbus_verbose_bytes), (_dbus_marshal_test):
4444 * dbus/dbus-marshal.h:
4445 * dbus/dbus-message-internal.h:
4446 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4447 (dbus_message_write_header), (_dbus_message_lock),
4448 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4449 (dbus_message_get_name), (dbus_message_append_int32),
4450 (dbus_message_append_uint32), (dbus_message_append_double),
4451 (dbus_message_append_string), (dbus_message_append_byte_array),
4452 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4453 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4454 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4455 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4456 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4457 (decode_header_data), (_dbus_message_loader_return_buffer),
4458 (message_iter_test), (_dbus_message_test):
4459 * dbus/dbus-message.h:
4460 * dbus/dbus-protocol.h:
4461 * dbus/dbus-test.c: (main):
4463 * glib/test-dbus-glib.c: (message_handler), (main):
4464 * test/echo-client.c: (main):
4465 * test/watch.c: (check_messages):
4466 Make messages sendable and receivable for real.
4468 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4470 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4471 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4472 * dbus/dbus-message.c: (dbus_message_append_int32),
4473 (dbus_message_append_uint32), (dbus_message_append_double),
4474 (dbus_message_append_string), (dbus_message_append_byte_array):
4475 Handle OOM restoration.
4477 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4479 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4480 (_dbus_demarshal_string), (_dbus_marshal_test):
4481 * dbus/dbus-marshal.h:
4482 * dbus/dbus-message.c: (dbus_message_get_name),
4483 Document these functions.
4485 (dbus_message_append_int32), (dbus_message_append_uint32),
4486 (dbus_message_append_double), (dbus_message_append_string),
4487 (dbus_message_append_byte_array):
4488 * dbus/dbus-message.h:
4489 Add functions for adding message fields of different types.
4491 * dbus/dbus-protocol.h:
4492 Add the different types.
4494 2003-01-05 Havoc Pennington <hp@pobox.com>
4496 * bus/connection.c: implement routines for handling connections,
4497 first thing is keeping a list of owned services on each connection
4498 and setting up watches etc.
4500 * bus/services.c: implement a mapping from service names to lists
4503 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4505 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4506 to use static mutexes for global data
4508 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4509 collection of functions to set/get application-specific data
4510 on the DBusConnection.
4512 2003-01-04 Havoc Pennington <hp@pobox.com>
4514 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4515 (_dbus_poll): new function
4517 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4520 * bus/loop.c: initial code for the daemon main loop
4522 2003-01-04 Havoc Pennington <hp@pobox.com>
4524 * test/watch.c (error_handler): make it safe if the error handler
4525 is called multiple times (if we s/error handler/disconnect
4526 handler/ we should just guarantee it's called only once)
4528 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4529 error handler on disconnect (it's quite possible we should
4530 just change the error handler to a "disconnect handler," I'm
4531 not sure we have any other meaningful errors)
4533 * configure.in: check for getpwnam_r
4535 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4536 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4537 mechanism as in SASL spec, using socket credentials
4539 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4540 (_dbus_send_credentials_unix_socket): new function
4542 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4544 (_dbus_write): only check errno if <0 returned
4545 (_dbus_write_two): ditto
4547 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4549 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4550 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4551 (_dbus_marshal_test):
4552 * dbus/dbus-marshal.h:
4553 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4554 to _dbus_marshal_utf8_string. Also fix some tests.
4556 2002-12-28 Harri Porten <porten@kde.org>
4558 * configure.in: added check for C++ compiler and a very cheesy
4559 check for the Qt integration
4561 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4563 * qt/Makefile.am: added
4565 * qt/.cvsignore: added
4567 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4568 latter, added #ifdef QT_THREAD_SUPPORT guard.
4570 * dbus/Makefile.am: added missing headers for make dist
4572 2002-12-28 Kristian Rietveld <kris@gtk.org>
4574 * dbus/Makefile.am: fixup export-symbols-regex.
4576 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4578 * acinclude.m4: Add this file and put the
4579 PKG_CHECK_MODULE macro in it.
4581 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4583 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4584 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4585 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4586 (_dbus_marshal_test):
4587 Make the demarshalling routines align the pos argument.
4588 Add string marshalling tests and fix the obvious bugs
4591 2002-12-26 Havoc Pennington <hp@pobox.com>
4593 * dbus/dbus-auth.c: fixes fixes fixes
4595 * dbus/dbus-transport-unix.c: wire up support for
4596 encoding/decoding data on the wire
4598 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4599 (_dbus_auth_decode_data): append to target string
4600 instead of nuking it.
4602 2002-12-26 Havoc Pennington <hp@pobox.com>
4604 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4605 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4608 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4609 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4610 now). Main point is because I wanted unpack_uint32 to implement
4612 (_dbus_verbose_bytes): new function
4614 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4616 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4617 mechanism to handle a corrupt message stream
4618 (_dbus_message_loader_new): fix preallocation to only prealloc,
4621 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4622 (_dbus_string_test): enhance tests for copy/move and fix the
4625 * dbus/dbus-transport-unix.c: Hold references in more places to
4626 avoid reentrancy problems
4628 * dbus/dbus-transport.c: ditto
4630 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4631 leak reference count in no-message case
4633 * test/watch.c (do_mainloop): handle adding/removing watches
4634 during iteration over the watches. Also, ref the connection/server
4635 stored on a watch, so we don't try to mangle a destroyed one.
4637 * dbus/dbus-transport-unix.c (do_authentication): perform
4640 * dbus/dbus-auth.c (get_state): add a state
4641 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4642 (_dbus_auth_get_unused_bytes): append the unused bytes
4643 to the passed in string, rather than prepend
4645 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4646 the auth conversation DBusAuth
4648 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4649 (_dbus_transport_new_for_domain_socket): when creating a
4650 transport, pass in whether it's a client-side or server-side
4651 transport so we know which DBusAuth to create
4653 2002-12-03 Havoc Pennington <hp@pobox.com>
4655 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4656 _after_ finalizing the derived members
4657 (unix_connection_set): unref watch if we fail to add it
4659 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4660 transport first, so that the connection owned by the
4661 transport will be valid as the transport finalizes.
4663 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4664 if necessary, and remove watches from the connection.
4666 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4668 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4670 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4671 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4672 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4673 (_dbus_marshal_test):
4674 * dbus/dbus-marshal.h:
4675 Add string marshal functions and have the demarshal functions
4676 return the new position.
4678 2002-12-25 Havoc Pennington <hp@pobox.com>
4680 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4681 it is a simple protocol that just maps directly to SASL.
4683 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4684 initial implementation, not actually used yet.
4686 * dbus/dbus-string.c (_dbus_string_find): new function
4687 (_dbus_string_equal): new function
4688 (_dbus_string_base64_encode): new function
4689 (_dbus_string_base64_decode): new function
4691 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4694 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4695 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4696 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4697 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4698 * dbus/dbus-marshal.h:
4699 * dbus/dbus-protocol.h:
4700 * dbus/dbus-test.c: (main):
4702 Add un-optimized marshalling/demarshalling routines.
4704 2002-12-25 Harri Porten <porten@kde.org>
4706 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4708 2002-12-24 Zack Rusin <zack@kde.org>
4710 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4711 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4714 2002-12-24 Havoc Pennington <hp@pobox.com>
4716 * glib/dbus-gthread.c: fix include
4718 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4719 I think glib API needs to change, though, as you don't
4720 want to use DBusMessageFunction, you want to use the
4721 DBusMessageHandler object. Probably
4722 dbus_connection_open_with_g_main_loop()
4723 and dbus_connection_setup_g_main_loop() or something like that
4724 (but think of better names...) that just create a connection
4725 that has watch/timeout functions etc. already set up.
4727 * dbus/dbus-connection.c
4728 (dbus_connection_send_message_with_reply): new function just to
4729 show how the message handler helps us deal with replies.
4731 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4733 * dbus/dbus-string.c (_dbus_string_test): free a string that
4736 * dbus/dbus-hash.c: use memory pools for the hash entries
4737 (rebuild_table): be more paranoid about overflow, and
4738 shrink table when we can
4739 (_dbus_hash_test): reduce number of sprintfs and write
4740 valid C89. Add tests for case where we grow and then
4741 shrink the hash table.
4743 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4745 * dbus/dbus-connection.c (dbus_connection_register_handler)
4746 (dbus_connection_unregister_handler): new functions
4748 * dbus/dbus-message.c (dbus_message_get_name): new
4750 * dbus/dbus-list.c: fix docs typo
4752 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4753 an object representing a handler for messages.
4755 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4758 * glib/dbus-gthread.c: (dbus_gthread_init):
4759 Don't use the gdbus prefix for public functions.
4761 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4765 Add GLib checks and fixup .pc files
4769 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4770 (gdbus_connection_check), (gdbus_connection_dispatch),
4771 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4772 (dbus_connection_gsource_new):
4773 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4774 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4775 * glib/test-dbus-glib.c: (message_handler), (main):
4778 2002-12-15 Harri Porten <porten@kde.org>
4780 * autogen.sh: check for libtoolize before attempting to use it
4782 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4785 * .cvsignore: ignore more stamp files
4787 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4789 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4790 without make install.
4792 2002-12-15 Havoc Pennington <hp@pobox.com>
4794 * dbus/dbus-threads.c: add thread stubs that a higher library
4795 layer can fill in. e.g. the GLib wrapper might fill them in with
4796 GThread stuff. We still need to use this thread API to
4797 thread-safe-ize the library.
4799 2002-12-12 Havoc Pennington <hp@pobox.com>
4801 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4802 below new interfaces and include fewer system headers.
4804 * dbus/dbus-sysdeps.c (_dbus_read): new function
4805 (_dbus_write): new function
4806 (_dbus_write_two): new function
4807 (_dbus_connect_unix_socket): new function
4808 (_dbus_listen_unix_socket): new function
4810 * dbus/dbus-message-internal.h: change interfaces to use
4813 2002-12-11 Havoc Pennington <hp@pobox.com>
4815 * dbus/dbus-types.h: add dbus_unichar
4817 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4819 * dbus/dbus-connection.c (dbus_connection_send_message): return
4822 * dbus/dbus-transport.c: include dbus-watch.h
4824 * dbus/dbus-connection.c: include dbus-message-internal.h
4826 * HACKING: add file with coding guidelines stuff.
4828 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4829 handling here, for security purposes (as in vsftpd). Not actually
4830 using this class yet.
4832 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4833 system/libc usage here, as in vsftpd, for ease of auditing (and
4834 should also simplify portability). Haven't actually moved all the
4835 system/libc usage into here yet.
4837 2002-11-25 Havoc Pennington <hp@pobox.com>
4839 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4840 always print the first verbose message.
4842 2002-11-24 Havoc Pennington <hp@pobox.com>
4844 * test/echo-client.c, test/echo-server.c: cheesy test
4847 * configure.in (AC_CHECK_FUNCS): check for writev
4849 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4852 * dbus/dbus-list.c (_dbus_list_foreach): new function
4854 * dbus/dbus-internals.c (_dbus_verbose): new function
4856 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4857 representing a server that listens for connections.
4859 * dbus/.cvsignore: create
4861 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4862 public API for reporting errors
4864 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4865 public object representing a connection that
4866 sends/receives messages. (Same object used for
4867 both client and server.)
4869 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4870 Basic abstraction for different kinds of stream
4871 that we might read/write messages from.
4873 2002-11-23 Havoc Pennington <hp@pobox.com>
4875 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4878 * dbus/dbus-test.c (main): add list test, and include
4879 dbus-test.h as intended
4881 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4882 (_dbus_hash_table_remove_int): return value indicates
4883 whether the entry existed to remove
4885 * dbus/dbus-list.c: add linked list utility class,
4888 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4891 2002-11-23 Havoc Pennington <hp@pobox.com>
4893 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4894 DBUS_END_DECLS to nothing, that should fix this once and for all
4896 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4898 * dbus/dbus-message.c, dbus/dbus-hash.c:
4899 add some missing @brief
4901 2002-11-23 Havoc Pennington <hp@pobox.com>
4903 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4904 to avoid confusing Doxygen
4906 * dbus/dbus-hash.c: @} not }@
4908 * dbus/dbus-message.c (struct DBusMessage): split out
4911 2002-11-23 Havoc Pennington <hp@pobox.com>
4913 * configure.in: pile on more warning flags if using gcc
4915 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4916 to document static functions
4918 * configure.in: add summary to end of configure so it
4919 looks nice and attractive
4921 * dbus/dbus-hash.c: finish implementation and write unit
4924 * configure.in: add --enable-tests to enable unit tests
4926 * dbus/dbus-test.c: test program to run unit tests
4927 for all files in dbus/*, initially runs a test for
4930 * dbus/dbus-internals.h: file to hold some internal utility stuff
4932 2002-11-22 Havoc Pennington <hp@redhat.com>
4934 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4935 "ported" away from Tcl
4937 * dbus/dbus-types.h: header for types such as dbus_bool_t
4939 2002-11-22 Havoc Pennington <hp@redhat.com>
4941 * dbus/dbus.h: fixups for doc warnings
4943 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4945 (QUIET): make it quiet so we can see warnings
4947 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4949 2002-11-22 Havoc Pennington <hp@redhat.com>
4951 * Makefile.am: include "Doxyfile" target in all-local
4953 * configure.in: generate the Doxyfile
4955 * Doxyfile.in: move Doxyfile here, so we can use
4956 configure to generate a Doxyfile with the right
4959 2002-11-22 Havoc Pennington <hp@redhat.com>
4961 * dbus/dbus-message.c: move inline docs into .c file
4963 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4964 so all docs are under doc/
4965 (MAN_EXTENSION): generate man pages. Use extension
4966 ".3dbus" which matches ".3qt" on my system,
4967 I guess this is OK, I don't know really.
4968 (FILE_PATTERNS): look for .c files not .h, makes sense
4971 2002-11-22 Havoc Pennington <hp@pobox.com>
4973 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4974 because any app can be a server, and any app can be a client,
4975 the bus is a special kind of server.
4977 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4979 * Doxyfile : adding. Still needs Makefile rules to be generated
4980 automatically (just run "doxygen" in the toplevel dir for now to
4983 * dbus/dbus-message.h : Adding sample docs (javadoc since
4984 resembles gtk-doc a little more)
4986 * dbus/dbus.h : Adding sample docs
4988 2002-11-21 Havoc Pennington <hp@redhat.com>
4990 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4991 so we can allow ourselves to include files directly,
4992 instead of having to use dbus.h
4994 * dbus/dbus.h: fill in
4996 * dbus/dbus-message.h: sketch out a sample header file.
4997 Include griping if you include it directly instead of
5000 * dbus/dbus-macros.h: new file with macros for extern "C",
5001 TRUE/FALSE, NULL, etc.
5003 * doc/file-boilerplate.c: put include guards in here
5005 2002-11-21 Havoc Pennington <hp@redhat.com>
5007 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
5009 * COPYING: include the GPL as well, and license code
5010 under both AFL and GPL.
5012 2002-11-21 Havoc Pennington <hp@redhat.com>
5014 * acconfig.h: get rid of this
5016 * autogen.sh (run_configure): add --no-configure option
5018 * configure.in: remove AC_ARG_PROGRAM to make
5019 autoconf complain less. add AC_PREREQ.
5020 add AC_DEFINE third arg.
5022 2002-11-21 Anders Carlsson <andersca@codefactory.se>
5025 Fix references so we can distcheck.
5027 2002-11-21 Havoc Pennington <hp@redhat.com>
5029 * Initial module creation