1 2003-06-22 Havoc Pennington <hp@pobox.com>
3 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
4 Start wrapping more stuff.
6 2003-06-22 Havoc Pennington <hp@pobox.com>
8 * mono/Message.cs: implement Message.Wrap() that ensures we only
9 have a single C# wrapper per DBusMessage, assuming it works which
12 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
13 (dbus_message_free_data_slot): new
14 (dbus_message_set_data): new
15 (dbus_message_get_data): new
17 2003-06-22 Havoc Pennington <hp@pobox.com>
19 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
20 (_dbus_data_slot_allocator_alloc): rework these to keep a
21 reference count on each slot and automatically manage a global
22 slot ID variable passed in by address
24 * bus/bus.c: convert to new dataslot API
26 * dbus/dbus-bus.c: convert to new dataslot API
28 * dbus/dbus-connection.c: convert to new dataslot API
30 * dbus/dbus-server.c: convert to new dataslot API
32 * glib/dbus-gmain.c: ditto
36 * bus/connection.c: ditto
38 2003-06-22 Anders Carlsson <andersca@codefactory.se>
40 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
41 after the gcj checks so that the correct configuration tags
42 will be added to libtool.
44 * dbus-glib-1.pc.in: No need to specify any includes since
45 dbus-1.pc.in has those.
47 2003-06-22 Havoc Pennington <hp@pobox.com>
49 * mono/*, gcj/*, configure.in, Makefile.am:
50 Check in makefiles and subdirs for mono and gcj bindings.
51 Neither binding actually exists, just trying to get through
52 all the build and other boring bits.
54 2003-06-21 Philip Blundell <philb@gnu.org>
56 * tools/dbus-monitor.1: Updated.
58 * tools/dbus-send.1: Likewise.
60 2003-06-20 Anders Carlsson <andersca@codefactory.se>
62 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
63 for hangup and error after checking read so we won't discard
64 pending data if both hangup and read are set.
66 2003-06-19 Philip Blundell <philb@gnu.org>
68 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
70 * tools/dbus-send.c: Accept both --system and --session.
72 * tools/dbus-monitor.c: Same here.
74 2003-06-19 Anders Carlsson <andersca@codefactory.se>
76 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
77 from C++ (Patch by Miloslav Trmac).
79 2003-06-15 Joe Shaw <joe@assbarn.com>
81 * configure.in: Check for socklen_t.
83 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
85 * test/test-segfault.c: Add #include <sys/time.h>
87 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
90 2003-06-09 Havoc Pennington <hp@redhat.com>
92 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
93 SUN_LEN, it breaks abstract socket usage
95 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
98 2003-06-04 Havoc Pennington <hp@pobox.com>
100 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
101 using unix:abstract=/foo, and when listening in a tmpdir
102 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
104 * dbus/dbus-transport.c (_dbus_transport_open): support
107 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
108 support abstract sockets
110 * dbus/dbus-transport-unix.c
111 (_dbus_transport_new_for_domain_socket): support abstract sockets
113 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
114 toggle as an argument, implement abstract namespace support
115 (_dbus_listen_unix_socket): ditto
117 * configure.in: add --enable-abstract-sockets and implement
118 a configure check for autodetection of the right value.
120 2003-06-01 Havoc Pennington <hp@pobox.com>
122 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
123 in /tmp (though on Linux this will end up being useless,
124 when we add abstract namespace support)
126 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
129 2003-05-28 Colin Walters <walters@verbum.org>
131 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
133 2003-05-18 Anders Carlsson <andersca@codefactory.se>
135 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
137 2003-05-17 Colin Walters <walters@gnu.org>
139 * tools/dbus-send.c: Don't exit with an error code if --help was
140 passed. Default to using the session bus instead of the system
143 * tools/dbus-launch.c: Ditto.
145 * tools/dbus-monitor.c: Ditto.
147 * tools/dbus-send.1: Update with new arguments.
149 * tools/dbus-launch.c: Emit code to export variables. New
150 arguments -s and -c to specify shell syntax, and a bit of code to
151 autodetect syntax. Also, allow specifying a program to run.
153 * tools/dbus-launch.1: Update with new arguments.
155 * tools/dbus-send.1: Ditto.
157 * tools/dbus-monitor.1: Ditto.
159 2003-05-17 Havoc Pennington <hp@pobox.com>
161 * bus/config-parser.c (merge_included): merge in policies from
162 child configuration file.
164 * bus/policy.c (bus_policy_merge): function to merge two policies
167 2003-05-16 Havoc Pennington <hp@redhat.com>
169 * dbus/dbus-connection.c: disable verbose lock spew
171 * tools/dbus-send.c: add --print-reply command line option
173 * tools/dbus-print-message.h (print_message): new util function
174 shared by dbus-send and dbus-monitor
176 * tools/dbus-monitor.c (handler_func): exit on disconnect
178 * dbus/dbus-transport-unix.c (do_reading): if the transport is
179 disconnected, don't try to use the read_watch
181 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
182 so we can find this bug more easily
184 2003-05-16 Havoc Pennington <hp@redhat.com>
186 * bus/policy.c (free_rule_list_func): avoid a crash when passed
187 NULL as DBusHashTable is annoyingly likely to do.
189 2003-05-16 Colin Walters <walters@verbum.org>
191 * tools/dbus-monitor.c: Add --session argument and usage()
194 * tools/dbus-monitor.1: Update with new --session arg.
196 * bus/Makefile.am (install-data-hook): Create
197 $(libdir)/dbus-1.0/services so that the session bus is happy.
199 2003-05-15 Havoc Pennington <hp@redhat.com>
201 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
202 on non-x86. ifdef's are evil.
204 2003-05-15 Havoc Pennington <hp@redhat.com>
210 * bus/Makefile.am (initddir): apparently we are supposed to put
211 init scripts in /etc/rc.d/init.d not /etc/init.d
213 * bus/Makefile.am: remove the "you must --enable-tests to make
214 check" as it broke distcheck
216 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
218 2003-05-13 James Willcox <jwillcox@gnome.org>
221 * bus/activation.c: (bus_activation_service_created),
222 (bus_activation_activate_service):
223 * bus/driver.c: (bus_driver_send_service_deleted),
224 (bus_driver_send_service_created), (bus_driver_send_service_lost),
225 (bus_driver_send_service_acquired),
226 (bus_driver_send_welcome_message),
227 (bus_driver_handle_list_services):
228 * bus/session.conf.in:
229 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
230 (dbus_bus_service_exists), (dbus_bus_activate_service):
233 Add some convenience API which lets you activate a service, and did a
234 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
235 and dbus_message_get_args()
237 2003-05-11 Havoc Pennington <hp@pobox.com>
239 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
240 calling _dbus_marshal_validate_arg() for every byte in a byte
243 * dbus/dbus-message-handler.c: use atomic reference counting to
244 reduce number of locks slightly; the global lock in here sucks
246 * dbus/dbus-connection.c
247 (_dbus_connection_update_dispatch_status_and_unlock): variant of
248 update_dispatch_status that can be called with lock held; then use
249 in a couple places to reduce locking/unlocking
250 (dbus_connection_send): hold the lock over the whole function
251 instead of acquiring it twice.
253 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
255 * bus/connection.c (bus_connections_setup_connection): fix access
256 to already-freed memory.
258 * dbus/dbus-connection.c: keep a little cache of linked list
259 nodes, to avoid using the global linked list alloc lock in the
260 normal send-message case. Instead we just use the connection lock
261 that we already have to take.
263 * dbus/dbus-list.c (_dbus_list_find_last): new function
265 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
266 change to use a struct for the atomic type; fix docs,
267 they return value before increment, not after increment.
269 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
270 (_dbus_string_append_8_aligned): new functions to try to
271 microoptimize this operation.
272 (reallocate_for_length): break this out of set_length(), to
273 improve profile info, and also so we can consider inlining the
276 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
277 strings with some preallocation, cuts down on our calls to realloc
278 a fair bit. Though if we can get the "move entire string to empty
279 string" optimization below to kick in here, it would be better.
281 * dbus/dbus-string.c (_dbus_string_move): just call
282 _dbus_string_move_len
283 (_dbus_string_move_len): add a special case for moving
284 an entire string into an empty string; we can just
285 swap the string data instead of doing any reallocs.
286 (_dbus_string_init_preallocated): new function
288 2003-05-11 Havoc Pennington <hp@pobox.com>
290 Write a "test-profile" that does echo client-server with threads;
291 profile reveals lock contention, memcpy/realloc of buffers, and
292 UTF-8 validation as hot spots. 20% of lock contention eliminated
293 with dbus_atomic_inc/dec implementation on x86. Much remaining
294 contention is global mempool locks for GList and DBusList.
296 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
299 * dbus/dbus-connection.c (struct DBusConnection): use
300 dbus_atomic_t for the reference count
302 * dbus/dbus-message.c (struct DBusMessage): declare
303 dbus_atomic_t values as volatile
305 * configure.in: code to detect ability to use atomic integer
306 operations in assembly, from GLib patch
308 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
309 time, tired of it being wrong in threads and forked processes
311 * glib/test-profile.c: a little program to bounce messages back
312 and forth between threads and eat CPU
314 * dbus/dbus-connection.c: add debug spew macros for debugging
315 thread locks; include config.h at top; fix deadlock in
316 dbus_connection_flush()
318 2003-05-08 Havoc Pennington <hp@pobox.com>
320 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
321 data from getting written, and there wasn't a good reason to
324 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
325 dbus_verbose lines in test coverage
326 (main): add list of functions sorted by # of untested blocks
327 to the coverage report
329 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
331 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
333 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
336 * test/data/auth/cancel.auth-script: test canceling an
339 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
340 aren't used. in CVS history if we end up needing them.
342 2003-05-04 Havoc Pennington <hp@pobox.com>
344 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
347 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
348 function, which assumed length was in # of strings, not bytes
350 * dbus/dbus-message.c (_dbus_message_test): add tests for some
353 * dbus/dbus-connection.c
354 (_dbus_connection_queue_received_message): disable function for
355 now, we are only using it in test mode
357 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
358 remove a mistaken FIXME
360 2003-05-04 Havoc Pennington <hp@pobox.com>
362 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
363 unlock mutex on successful return, patch from Anders Gustafsson
365 2003-05-04 Havoc Pennington <hp@pobox.com>
367 * dbus-glib-1.pc.in (Requires): fix dependencies, from
370 2003-05-04 Havoc Pennington <hp@pobox.com>
372 * tools/dbus-launch.c: implement
374 * bus/main.c (main), bus/bus.c (bus_context_new):
375 implement --print-pid and --fork
377 2003-05-03 Havoc Pennington <hp@redhat.com>
379 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
380 the address had no value, and add to test suite. Fix and
381 regression test from Miloslav Trmac
383 2003-05-03 Havoc Pennington <hp@pobox.com>
385 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
386 watch is invalid when handled
388 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
389 dbus-launch utility to launch the bus from a shell script. Didn't
390 actually implement dbus-launch yet, it's just a placeholder still.
392 2003-05-03 Havoc Pennington <hp@pobox.com>
394 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
395 daemon; also documents daemon config file, so replaces
396 doc/config-file.txt. Corrected some stuff from config-file.txt in
397 the process of moving it.
399 2003-05-03 Havoc Pennington <hp@pobox.com>
401 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
404 2003-05-03 Colin Walters <walters@verbum.org>
406 * dbus/dbus-sysdeps.c (fill_user_info): Test against
407 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
409 * Makefile.am: Update to use new .pc versioning scheme.
411 2003-05-02 Havoc Pennington <hp@redhat.com>
413 * bus/system.conf.in: allow send/receive to/from message bus
416 2003-04-30 Havoc Pennington <hp@redhat.com>
418 * configure.in: print a note when building with unit tests and
421 2003-04-30 Havoc Pennington <hp@redhat.com>
423 * Makefile.am: add a check-local that complains if you didn't
424 configure with --enable-tests
426 2003-04-29 Havoc Pennington <hp@redhat.com>
428 * glib/dbus-gmain.c: docs cleanups
430 * dbus/dbus-types.h: add docs on int64 types
432 * dbus/dbus-memory.c: fix docs to avoid putting private API in
433 public API docs section
435 2003-04-29 Havoc Pennington <hp@redhat.com>
437 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
438 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
439 parallel install API version, not with the D-BUS package version.
441 * HACKING: move some of README over here
443 * README: updates, and document API/ABI policy
445 * configure.in: reindentation
447 2003-04-29 Havoc Pennington <hp@redhat.com>
449 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
450 to use this library" to be sure people have the right
453 2003-04-28 Havoc Pennington <hp@redhat.com>
455 * configure.in: add --enable-docs which by default is auto yes if
456 doxygen and db2html found, no otherwise; but can be forced on/off
458 * doc/Makefile.am: conditionalize whether to build docs on
461 2003-04-28 Havoc Pennington <hp@redhat.com>
467 * bus/system.conf.in: add <includedir>system.d</includedir>
469 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
470 username was provided but not uid
472 * bus/config-parser.c (struct BusConfigParser): keep track of
473 whether the parser is toplevel or was included; change some
474 of the error handling if it's included.
476 2003-04-27 Havoc Pennington <hp@pobox.com>
480 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
481 report correct status if we finish processing authentication
482 inside this function.
484 * bus/activation.c (try_send_activation_failure): use
485 bus_transaction_send_error_reply
487 * bus/connection.c (bus_connection_get_groups): return an error
488 explaining the problem
490 * bus/bus.c (bus_context_check_security_policy): implement
491 restriction here that inactive connections can only send the
492 hello message. Also, allow bus driver to send anything to
495 * bus/connection.c (bus_connection_complete): create the
496 BusClientPolicy here instead of on-demand.
497 (bus_connection_get_policy): don't return an error
499 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
500 sender field in message being replied to
502 * bus/bus.c (bus_context_check_security_policy): fix silly typo
503 causing it to return FALSE always
505 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
506 we checked sender rather than destination
508 2003-04-25 Havoc Pennington <hp@redhat.com>
510 test suite is slightly hosed at the moment, will fix soon
512 * bus/connection.c (bus_connections_expire_incomplete): fix to
513 properly disable the timeout when required
514 (bus_connection_set_name): check whether we can remove incomplete
515 connections timeout after we complete each connection.
517 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
518 probably still broken.
520 * bus/services.c (bus_registry_acquire_service): implement max
521 number of services owned, and honor allow/deny rules on which
522 services a connection can own.
524 * bus/connection.c (bus_connection_get_policy): report errors here
526 * bus/activation.c: implement limit on number of pending
529 2003-04-25 Havoc Pennington <hp@redhat.com>
531 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
532 where we used >= 0 instead of != DBUS_UID_UNSET.
534 2003-04-25 Havoc Pennington <hp@redhat.com>
536 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
537 were toggled without add/remove, fix from Anders Gustafsson
539 2003-04-24 Havoc Pennington <hp@redhat.com>
541 * test/data/valid-config-files/basic.conf: add <limit> tags to
544 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
545 <limit> tag in configuration file.
547 2003-04-24 Havoc Pennington <hp@redhat.com>
549 * bus/dispatch.c: somehow missed some name_is
551 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
552 (_dbus_timeout_set_interval): new
554 * bus/connection.c (bus_connections_setup_connection): record time
555 when each connection is first set up, and expire them after the
558 2003-04-24 Havoc Pennington <hp@redhat.com>
560 * dbus/dbus-message.c (dbus_message_name_is): rename
561 (dbus_message_service_is): rename
562 (dbus_message_sender_is): rename
563 (dbus_message_get_service): rename
565 2003-04-24 Havoc Pennington <hp@redhat.com>
567 * configure.in: add --enable-checks
569 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
571 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
573 (_dbus_connection_handler_destroyed_locked): move some private
574 functions into proper docs group
576 * dbus/dbus-internals.h: add _dbus_return_if_fail,
577 _dbus_return_val_if_fail
579 Throughout: use dbus_return_if_fail
581 2003-04-23 James Willcox <jwillcox@gnome.org>
584 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
585 (dbus_connection_setup_with_g_main),
586 (dbus_server_setup_with_g_main):
587 * glib/test-dbus-glib.c: (main):
588 * glib/test-thread-client.c: (main):
589 * glib/test-thread-server.c: (new_connection_callback), (main):
590 * tools/dbus-monitor.c: (main):
592 Added a GMainContext argument to dbus_connection_setup_with_g_main()
593 and dbus_server_setup_with_g_main().
595 2003-04-20 Havoc Pennington <hp@pobox.com>
597 * doc/dbus-specification.sgml: document the restrictions on
598 message and service names
600 2003-04-22 Havoc Pennington <hp@redhat.com>
602 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
603 support, and do some code cleanups to share more code and
604 speed up array marshal/demarshal.
606 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
608 * configure.in: generate dbus-arch-deps.h
610 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
613 2003-04-22 Havoc Pennington <hp@redhat.com>
615 * test/data/valid-messages/opposite-endian.message: fix test
616 to use proper type for rply field
618 * test/data/invalid-messages: add tests for below validation
620 * dbus/dbus-message.c (decode_header_data): validate field types,
621 and validate that named fields are valid names
622 (decode_name_field): consider messages in the
623 org.freedesktop.Local. namespace to be invalid.
625 * dbus/dbus-string.c (_dbus_string_validate_name): new
627 2003-04-19 Havoc Pennington <hp@pobox.com>
629 * bus/driver.c (bus_driver_handle_hello): check limits and
630 return an error if they are exceeded.
632 * bus/connection.c: maintain separate lists of active and inactive
633 connections, and a count of each. Maintain count of completed
634 connections per user. Implement code to check connection limits.
636 * dbus/dbus-list.c (_dbus_list_unlink): export
638 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
639 number of bytes in the message queue for a connection
641 2003-04-18 Havoc Pennington <hp@pobox.com>
643 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
645 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
648 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
649 on realloc be sure to update the pointer in the keyring
651 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
652 offset to avoid writing to unallocated memory
654 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
655 try the next mechanism, so we properly handle OOM
657 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
659 (_dbus_keyring_new): fix OOM bug
660 (_dbus_keyring_new_homedir): always set error; impose a maximum
661 number of keys we'll load from the file, mostly to speed up the
662 test suite and make its OOM checks more useful, but also for
665 * dbus/dbus-auth.c (process_error_server): reject authentication
666 if we get an error from the client
667 (process_cancel): on cancel, send REJECTED, per the spec
668 (process_error_client): send CANCEL if we get an error from the
671 2003-04-18 Havoc Pennington <hp@pobox.com>
673 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
676 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
679 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
680 about DBUS_TEST_HOMEDIR once
682 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
685 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
686 config file so we test the right thing
688 Throughout: assorted docs improvements
690 2003-04-18 Havoc Pennington <hp@pobox.com>
692 * glib/dbus-gmain.c: adapt to watch changes
694 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
696 * dbus/dbus-server.h: remove dbus_server_handle_watch
698 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
700 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
701 like DBusTimeout, so we don't need dbus_connection_handle_watch
704 2003-04-17 Havoc Pennington <hp@redhat.com>
706 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
707 database usage so it all goes via the DBusUserDatabase cache.
709 2003-04-17 Havoc Pennington <hp@redhat.com>
711 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
712 there was an OOM watch we skipped, we always return TRUE so we
713 iterate again to have a look at it again. Fixes test suite hang.
714 Code rearrangement also lets us lose some memset and only iterate
717 * bus/driver.c (bus_driver_handle_message): sense of test for
720 2003-04-16 Havoc Pennington <hp@pobox.com>
722 * doc/dbus-specification.sgml: make spec say serials are unsigned
724 * dbus/dbus-message.h: change message serials to unsigned
726 * dbus/dbus-connection.c: adapt to message serials being unsigned
728 2003-04-15 Havoc Pennington <hp@pobox.com>
730 * bus/bus.c: create and keep around a shared DBusUserDatabase
733 * bus/connection.c (bus_connection_get_groups): don't cache
734 groups for user in the connection object, since user database
735 object now does that.
737 2003-04-16 Havoc Pennington <hp@redhat.com>
739 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
740 list of size counters
741 (_dbus_message_loader_putback_message_link): put back a popped link
743 * dbus/dbus-connection.c
744 (dbus_connection_set_max_live_messages_size): rename
746 (dbus_connection_get_outgoing_size): get size of outgoing
748 (_dbus_connection_set_connection_counter): remove this cruft
750 2003-04-14 Havoc Pennington <hp@redhat.com>
752 * dbus/dbus-userdb.c: user database abstraction, mostly to get
753 caching, but at some point we might want to be able to use a
756 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
757 SHA1 conf file to test the sha1 auth mechanism, since the regular
758 test always uses EXTERNAL when available.
761 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
762 add conf file that requires use of sha1 auth
764 2003-04-13 Havoc Pennington <hp@pobox.com>
766 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
767 from Philip Blundell to send messages and monitor them.
769 2003-04-13 Havoc Pennington <hp@pobox.com>
771 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
774 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
777 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
778 fix to only recover unused bytes if we're already authenticated
779 (_dbus_transport_get_is_authenticated): fix to still mark us
780 authenticated if there are unused bytes.
782 * bus/dispatch.c: implement security policy checking
784 * bus/connection.c (bus_transaction_send_from_driver): new
786 * bus/bus.c (bus_context_check_security_policy): new
788 * bus/dispatch.c (send_service_nonexistent_error): delete this,
789 now we just set the DBusError and it gets converted to an error
792 * bus/connection.c (allow_user_function): enable code using actual
793 data from the config file
795 * bus/policy.c (list_allows_user): handle wildcard rules for
796 user/group connection perms
798 2003-04-13 Havoc Pennington <hp@pobox.com>
800 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
802 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
804 * bus/policy.c (bus_policy_append_mandatory_rule)
805 (bus_policy_append_default_rule, bus_policy_append_user_rule)
806 (bus_policy_append_group_rule): new functions
808 2003-04-12 Havoc Pennington <hp@pobox.com>
810 * bus/config-parser.c (bus_config_parser_new): fix a memleak
812 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
813 the pid/gid/uid, just for paranoia.
815 * test/break-loader.c (randomly_do_n_things): find a byte
816 containing a type code, and randomly change it to a different
819 2003-04-12 Havoc Pennington <hp@pobox.com>
821 * bus/policy.h: change BusPolicy to be the thing from the config
822 file, and rename old BusPolicy to BusClientPolicy
824 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
825 match change in how policy works
827 * dbus/dbus-internals.h: mark assert_not_reached as
828 __attribute((noreturn))__
830 2003-04-11 Havoc Pennington <hp@redhat.com>
832 * doc/dbus-specification.sgml: fix a spot with the wrong name for
833 the broadcast service. Use boolean return for ServiceExists.
835 2003-04-11 Havoc Pennington <hp@redhat.com>
837 * configure.in: add another directory to look for qt in.
839 2003-04-11 Havoc Pennington <hp@redhat.com>
841 * AUTHORS: add Colin Walters
843 2003-04-11 Havoc Pennington <hp@redhat.com>
849 2003-04-11 Havoc Pennington <hp@redhat.com>
851 * bus/messagebus.in: remove pid file when stopping the
852 message bus, since the bus won't have privileges to remove it
855 2003-04-11 Havoc Pennington <hp@redhat.com>
857 * bus/bus.c (bus_context_new): move credentials change after
860 2003-04-11 Havoc Pennington <hp@pobox.com>
862 * test/decode-gcov.c: add "below average functions" to the
863 coverage report, and change how some of the code works.
865 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
866 not in the coverage stats.
868 * test/test-service.c (main): use _dbus_verbose not fprintf in a
869 couple places so running the test suite doesn't result in megaspam.
871 2003-04-11 Havoc Pennington <hp@pobox.com>
873 * bus/dispatch.c (check_existent_service_activation): accept a no
874 memory error in a place we didn't before
876 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
877 in case the first one failed," since the test suite is less
880 2003-04-10 Havoc Pennington <hp@pobox.com>
882 * bus/dispatch.c (check_segfault_service_activation): add test
883 for launching an executable that just crashes.
885 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
886 don't leave a million cores. We'll see how portable this is.
888 2003-04-10 Havoc Pennington <hp@pobox.com>
890 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
891 the possible parent failures before we fork, so that we don't
892 fail to create a babysitter after creating the child.
894 * bus/activation.c (bus_activation_activate_service): kill child
895 if we don't successfully complete the activation.
897 2003-04-10 Havoc Pennington <hp@redhat.com>
899 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
900 the connection if it's disconnected
902 * bus/activation.c (bus_activation_service_created): use new
903 transaction features to roll back removal of pending activation if
904 we don't successfully create the service after all. Don't remove
905 pending activation if the function fails.
907 * dbus/dbus-list.c (_dbus_list_insert_before_link)
908 (_dbus_list_insert_after_link): new code to facilitate
911 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
912 new functionality, so we can preallocate the ability to insert
915 * bus/connection.c (bus_transaction_add_cancel_hook): new function
916 allowing us to put custom hooks in a transaction to be used for
917 cancelling said transaction
919 * doc/dbus-specification.sgml: add some discussion of secondary
920 service owners, and disallow zero-length service names
922 * bus/services.c (bus_registry_acquire_service): new function,
923 splits out part of bus_driver_handle_acquire_service() and fixes
924 a bug where we didn't remove the service doing the acquiring
925 from the secondary queue if we failed to remove the current owner
926 from the front of the queue.
928 2003-04-10 Alexander Larsson <alexl@redhat.com>
930 * doc/dbus-specification.sgml:
931 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
933 2003-04-10 Alexander Larsson <alexl@redhat.com>
938 Added files to cvsignore
940 * dbus/dbus-message.h:
941 * dbus/dbus-message.c: (dbus_message_iter_get_named):
942 Make get_named() take two out argument and return a boolean.
943 (dbus_message_iter_get_args_valist):
944 Update usage of get_named().
945 (dbus_message_iter_append_byte):
947 (dbus_message_iter_append_named)
949 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
952 2003-04-10 Alexander Larsson <alexl@redhat.com>
954 * dbus/dbus-marshal.[ch]:
955 Add array_type_pos argument to _dbus_marshal_validate_arg.
956 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
958 * dbus/dbus-message.[ch]:
959 Multi-dimensional arrays have full type specification in the
960 outermost array. Iter code re-arranged to handle this.
961 Added some more iter tests.
963 * doc/dbus-specification.sgml:
966 Update new array encoding description.
967 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
969 * test/data/invalid-messages/array-with-mixed-types.message:
970 * test/data/valid-messages/array-of-array-of-uint32.message:
971 Change to the new array format.
973 * test/data/invalid-messages/too-short-dict.message:
976 * test/data/valid-messages/recursive-types.message:
977 Fix up and extend test.
979 2003-04-10 Havoc Pennington <hp@pobox.com>
981 * bus/dispatch.c: lots of fixes
983 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
984 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
985 that was crack, broke the test service.
987 * dbus/dbus-transport.c (_dbus_transport_open): fix error
988 handling to avoid piling up errors if we get a failure on the
991 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
992 pid in assertion failures.
994 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
995 to some fixed size of file descriptor array. Don't return TRUE
996 anytime a timeout exists, that led to lots of busy loop silliness
999 2003-04-09 Havoc Pennington <hp@redhat.com>
1001 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
1002 I'd checked this in earlier but hadn't.
1004 2003-04-09 Havoc Pennington <hp@redhat.com>
1006 * bus/dispatch.c (bus_dispatch_test): get a bit further through
1007 the activation test (man this is getting old!)
1009 2003-04-09 Havoc Pennington <hp@redhat.com>
1011 * test/test-utils.c: use dispatch status function to fix this up
1013 * bus/connection.c (connection_watch_callback): don't dispatch
1015 (connection_timeout_callback): don't dispatch from here
1016 (bus_connections_setup_connection): set the dispatch status function
1017 (bus_connection_disconnected): unset it
1019 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
1020 used to add a connection to be dispatched
1021 (_dbus_loop_iterate): do the dispatching at the end of each
1024 * dbus/dbus-connection.c
1025 (dbus_connection_set_dispatch_status_function): new function
1026 allowing us to fix up main loop usage
1027 (_dbus_connection_last_unref): free all the various function
1029 (dbus_connection_dispatch): call the DispatchStatusFunction
1030 whenever this function returns
1031 (dbus_connection_handle_watch): call DispatchStatusFunction
1032 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
1033 (reply_handler_timeout): call DispatchStatusFunction
1034 (dbus_connection_flush): call DispatchStatusFunction
1036 2003-04-09 Havoc Pennington <hp@redhat.com>
1038 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
1041 * bus/dispatch.c (check_service_activated): fix bug in test
1043 * dbus/dbus-mainloop.c (check_timeout): fix this up
1045 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
1046 verbose output so we can sort out output from different processes,
1047 e.g. in the activation case.
1049 2003-04-08 Colin Walters <walters@gnu.org>
1051 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
1053 (bus_context_new): Set it.
1054 (bus_context_unref): Use it to delete the pid file.
1056 2003-04-08 Havoc Pennington <hp@redhat.com>
1058 * test/data/invalid-messages/array-with-mixed-types.message:
1059 regression test that fails for the moment
1061 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
1062 tests for convenience
1064 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
1065 array of nil, it broke things.
1067 * test/data/invalid-messages/array-of-nil.message: regression test
1069 * test/data/valid-messages/array-of-array-of-uint32.message:
1070 happened to write this so added it to suite
1072 2003-04-08 Havoc Pennington <hp@redhat.com>
1074 * bus/driver.c (bus_driver_handle_acquire_service): init
1075 retval/reply before checking name
1077 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1078 recursion depth argument
1080 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1081 in the public struct for future extension
1083 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1086 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1089 * doc/dbus-specification.sgml: fix typo
1091 2003-04-08 Alexander Larsson <alexl@redhat.com>
1093 Implemented recursive types, named types and new-style iters
1096 * glib/test-thread-client.c: (thread_func):
1097 * glib/test-thread-server.c: (handle_test_message):
1098 * test/test-service.c: (handle_echo):
1107 * dbus/dbus-internals.c: (_dbus_type_to_string):
1108 Update for new types.
1110 * dbus/dbus-marshal.[ch]:
1111 Implement recursive types and the new marshalling format.
1112 Remove hardcoded dict marshalling.
1113 Marshal named types.
1115 * dbus/dbus-message-builder.c:
1117 Remove references to old types
1119 * dbus/dbus-message.[ch]:
1120 New non-refcounted iter API that supports recursive iters.
1121 Use iters for appending, including support for recursive
1123 Add byte and named type support.
1124 Update everything to new marshalling formats.
1125 Add tests for new API.
1127 * dbus/dbus-protocol.h:
1128 Remove old array types.
1129 Add types: BYTE, ARRAY, DICT, NAMED
1131 * dbus/dbus-string.c:
1132 * dbus/dbus-sysdeps.c:
1133 Make parse_double locale safe.
1135 * dbus/dbus-test-main.c:
1141 * doc/dbus-specification.sgml:
1144 * test/data/incomplete-messages/missing-body.message:
1145 * test/data/invalid-messages/bad-boolean.message:
1146 * test/data/invalid-messages/bad-boolean-array.message:
1147 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1148 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1149 * test/data/invalid-messages/too-short-dict.message:
1150 * test/data/valid-messages/dict-simple.message:
1151 * test/data/valid-messages/dict.message:
1152 * test/data/valid-messages/emptiness.message:
1153 * test/data/valid-messages/lots-of-arguments.message:
1154 * test/data/valid-messages/no-padding.message:
1155 * test/data/valid-messages/recursive-types.message:
1156 Add missing NAME fields
1157 Fix up dicts & arrays
1159 * test/data/invalid-messages/dict-with-nil-value.message:
1160 Removed, this is not invalid anymore.
1162 * test/data/valid-messages/recursive-types.message:
1163 Add new test for deeply recursive types.
1165 2003-04-07 Havoc Pennington <hp@pobox.com>
1167 * bus/driver.c (bus_driver_handle_acquire_service): return an
1168 error if you try to acquire a service that starts with ':'
1170 2003-04-07 Havoc Pennington <hp@redhat.com>
1172 * doc/dbus-specification.sgml: require that base service names
1173 start with ':' and that the base service is created/deleted
1174 as first and last things a connection does on the bus
1176 * bus/dispatch.c (check_existent_service_activation): lots more
1177 work on the activation test; it doesn't fully pass yet...
1179 * test/test-service.c (main): fix so we don't memleak the
1180 connection to the message bus
1181 (filter_func): accept a message asking us to exit
1183 2003-04-06 Havoc Pennington <hp@pobox.com>
1185 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1188 * configure.in: fixes to Qt detection from Colin Walters
1190 * doc/Makefile.am: Only remove generated docbook dirs if they
1191 exist, from Colin Walters
1193 * dbus/dbus-bus.c: change how we set well-known connections to
1194 NULL, so that it works if a single connection is stored in
1195 two well-known array slots.
1197 * test/Makefile.am: remove a lot of stuff that isn't immediately
1198 useful, it's in CVS history if we want it.
1200 * test/test-service.c: use dbus-mainloop instead of that
1203 2003-04-06 Havoc Pennington <hp@pobox.com>
1205 * dbus/Makefile.am: split lists of sources into stuff that goes in
1206 the library, util functions that go in the lib and are also used
1207 elsewhere, and util functions that are used in tests/daemon but
1208 don't go in the lib.
1210 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1211 here so it can be used in test binaries also
1213 2003-04-06 Havoc Pennington <hp@pobox.com>
1215 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1216 here in the parent process, so we can return an error if it
1217 fails. Also, move some of the code into the child so the parent
1218 is less hosed if we fail midway through.
1220 * bus/bus.c (bus_context_new): move pidfile detection further up
1221 in the function, before we start overwriting sockets and such.
1223 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1225 * configure.in: add --with-system-pid-file and --with-system-socket
1227 2003-04-06 Colin Walters <walters@verbum.org>
1229 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1231 * bus/system.conf.in: Declare a pidfile.
1233 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1234 create one (if appropriate).
1236 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1237 (struct BusConfigParser) [pidfile]: New.
1238 (element_type_to_name, merge_included, start_busconfig_child)
1239 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1240 (bus_config_parser_unref): Free it.
1241 (bus_config_parser_get_pidfile): New function.
1243 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1245 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1247 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1249 * dbus/dbus-sysdeps.h: Prototype it.
1251 2003-04-06 Havoc Pennington <hp@pobox.com>
1253 * bus/bus.c (bus_context_new): print the address in here, rather
1254 than in main(), because we need to do it before forking the daemon
1256 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1257 on the service nonexistent error
1259 * bus/driver.c (bus_driver_handle_acquire_service): set the
1260 sender on the AcquireService reply
1262 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1263 server also listen on a UNIX socket so services can connect to it.
1265 2003-04-06 Havoc Pennington <hp@pobox.com>
1267 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1268 so it detects deadlocks and also we actually init threads when
1271 2003-04-06 Havoc Pennington <hp@pobox.com>
1273 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1274 save the domain socket name, and unlink it when we disconnect the
1275 server. Means that at least when we exit normally, we won't leave
1276 a bunch of junk in /tmp
1278 * dbus/dbus-transport-unix.c
1279 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1280 memory management). (I was making a real change here but then
1283 2003-04-06 Havoc Pennington <hp@pobox.com>
1285 * bus/bus.c (bus_context_new): fix wrong handling of
1286 server_data_slot_unref() in the error case.
1288 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1289 "(condition) != 0" to _dbus_real_assert so that
1290 "_dbus_assert (pointer)" doesn't cause a warning
1292 * bus/main.c (main): accept --print-address option to print out
1293 the message bus address
1295 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1297 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1298 "tmpdir" option to unix: address on client side
1300 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1303 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1304 we can use to create sockets in the test suite.
1306 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1307 cleanly. To be used for testing.
1309 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1311 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1313 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1314 handle trying to call this when there's no servers active
1316 2003-04-05 Havoc Pennington <hp@pobox.com>
1322 2003-04-05 Havoc Pennington <hp@pobox.com>
1324 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1325 crash on startup. Need to get "try starting the daemon"
1326 in the test suite I guess. ;-)
1328 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1329 tracked the number of open connections; it's better done in
1330 application-specific code as you want it to span all servers etc.
1332 2003-04-05 Havoc Pennington <hp@pobox.com>
1334 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1335 patch from Colin Walters
1337 2003-04-05 Havoc Pennington <hp@pobox.com>
1339 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1340 reality; in fact multiple mechanisms are allowed.
1342 * dbus/dbus-internals.c (_dbus_real_assert)
1343 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1344 _dbus_assert_not_reached() into functions, so that they don't show
1345 up in basic block counts for test coverage, and don't use up as
1346 much disk space. Does mean slower execution speed though, so
1347 assumes --disable-asserts is the normal production case.
1349 2003-04-05 Havoc Pennington <hp@pobox.com>
1351 * test/Makefile.am (dist-hook): also dist *.in files
1357 2003-04-05 Havoc Pennington <hp@pobox.com>
1359 * dbus/dbus-string.c: docs warning
1361 * dbus/dbus-spawn.c: missing docs
1363 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1365 2003-04-05 Havoc Pennington <hp@pobox.com>
1367 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1370 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1371 to -1 once we've reaped the babysitter
1372 (_dbus_babysitter_handle_watch): do as much work as we can, not
1375 * bus/activation.c: add code using DBusBabysitter so that we
1376 handle it when a service fails to start up properly.
1377 (bus_activation_service_created): don't remove the activation
1378 entries as we go, just let them get removed when we free the pending
1379 activation. Unref reply messages after sending them.
1381 2003-04-05 Havoc Pennington <hp@pobox.com>
1383 * test/decode-gcov.c (main): print per-directory stats in the report
1385 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1387 2003-04-05 Havoc Pennington <hp@pobox.com>
1389 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1391 * test/decode-gcov.c: hack up a little program to suck data
1392 out of gcov files. Yes this is sort of silly.
1394 * configure.in: define something in config.h and do an
1395 AM_CONDITIONAL when gcov is enabled
1397 2003-04-04 Havoc Pennington <hp@redhat.com>
1399 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1400 return a "babysitter" object that is used to monitor the status of
1401 the spawned process and reap it when required.
1403 * test/test-segfault.c, test/test-exit.c,
1404 test/test-sleep-forever.c: binaries that do various lame things,
1405 used in the test suite.
1407 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1409 2003-04-03 Havoc Pennington <hp@pobox.com>
1411 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1412 in preparation for modifying it, dbus-sysdeps is getting
1415 2003-04-03 Havoc Pennington <hp@redhat.com>
1417 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1420 * bus/*.[hc]: adapt to mainloop change
1422 2003-04-03 Havoc Pennington <hp@redhat.com>
1424 * bus/activation.c (load_directory): fix up memleaks
1425 (bus_activation_entry_free): free the entry
1427 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1428 we get one from the message bus; fix memleaks.
1430 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1432 2003-04-03 Havoc Pennington <hp@pobox.com>
1434 * bus/config-parser.c (bus_config_parser_unref): free
1435 list of mechanisms, bug discovered by test suite enhancements
1436 (putting system.conf and session.conf into suite)
1438 * test/Makefile.am, test/test-service.c: add placeholder for a
1439 test service that we'll activate as part of test suite. Doesn't
1442 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1443 setting NULL value, and use system malloc not dbus_malloc()
1444 when we have unavoidable memleakage.
1446 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1447 didn't work, and support DBUS_BUS_ACTIVATION.
1449 * bus/activation.c (child_setup): pass our well-known bus type to
1452 * bus/config-parser.c: support <type> to specify well-known type
1454 * doc/dbus-specification.sgml: document the env variables to
1455 locate well-known buses and find service activator
1457 2003-04-02 Havoc Pennington <hp@redhat.com>
1459 * test/Makefile.am (all-local): add a rule to copy tests to
1460 builddir, so we can have generated tests. Use this to remove the
1461 silly hack for testing system.conf and session.conf. Will use this
1462 shortly to generate .service files pointing to test binaries.
1464 2003-04-02 Havoc Pennington <hp@redhat.com>
1466 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1467 current alloc and needed new length, not max of the doubled
1468 allocation and needed new length. Also, when building tests,
1469 don't do the double-allocation stuff, just realloc every time.
1471 2003-04-02 Havoc Pennington <hp@redhat.com>
1473 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1475 (_dbus_string_get_dirname): new
1476 (_dbus_sysdeps_test): new
1477 (_dbus_directory_open): include dirnames in error messages
1479 * bus/config-parser.c: interpret <include> and <includedir> and
1480 <servicedir> relative to config file location if the given
1481 filename is not absolute.
1483 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1485 2003-04-02 Havoc Pennington <hp@redhat.com>
1487 * bus/connection.c (bus_transaction_send_error_reply): set sender
1488 service for the error, and unref the reply on success
1490 * bus/activation.c: convert to use BusTransaction so OOM can be
1492 (bus_activation_service_created): set sender of the message
1494 2003-04-01 Havoc Pennington <hp@redhat.com>
1496 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1497 <includedir> (at least mostly)
1499 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1500 first, then the user ID
1502 2003-04-01 Havoc Pennington <hp@pobox.com>
1504 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1507 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1509 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1511 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1512 socket 0777, and unlink any existing socket.
1514 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1515 the configuration file so specifies; set up auth mechanism
1518 * bus/config-parser.c (bus_config_parser_content): add support
1519 for <fork> option and fill in code for <auth>
1521 * bus/system.conf.in: add <fork/> to default configuration,
1522 and limit auth mechanisms to EXTERNAL
1524 * doc/config-file.txt (Elements): add <fork>
1526 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1527 (_dbus_change_identity): new function
1529 2003-03-31 Havoc Pennington <hp@redhat.com>
1531 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1532 (_dbus_listen_unix_socket): fix off-by-one error in null
1533 termination spotted by Nalin
1535 2003-03-31 Havoc Pennington <hp@redhat.com>
1537 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1538 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1539 having a real home directory available.
1541 2003-03-31 Havoc Pennington <hp@redhat.com>
1543 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1545 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1547 * configure.in: add support for specifying a style of init script
1550 2003-03-31 Havoc Pennington <hp@redhat.com>
1552 Fix some annoying DBusString API and fix all affected code.
1554 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1556 (_dbus_string_get_data): change to return string instead of using
1558 (_dbus_string_get_const_data): ditto
1559 (_dbus_string_get_data_len): ditto
1560 (_dbus_string_get_const_data_len): ditto
1562 2003-03-31 Havoc Pennington <hp@redhat.com>
1564 * bus/main.c (main): fix up the command line arguments to be nicer
1566 2003-03-31 Havoc Pennington <hp@redhat.com>
1568 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1569 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1570 final location that lands in the config file
1572 * bus/config-loader-expat.c (bus_config_load): fix type of
1575 * doc/TODO: remove TODO item for dbus_bus_get()
1577 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1579 2003-03-31 Havoc Pennington <hp@pobox.com>
1581 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1582 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1583 argument since they are always client side
1585 * dbus/dbus-server.c (dbus_server_get_address): new function
1587 * bus/main.c (main): take the configuration file as an argument.
1589 * test/data/valid-config-files/debug-allow-all.conf: new file to
1590 use with dispatch.c tests for example
1592 * bus/test-main.c (main): require test data dir
1594 * bus/bus.c (bus_context_new): change this to take a
1595 configuration file name as argument
1597 * doc/config-file.txt (Elements): add <servicedir>
1599 * bus/system.conf, bus/session.conf: new files
1601 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1602 well-known socket if none set
1604 * configure.in: create system.conf and session.conf
1606 2003-03-30 Havoc Pennington <hp@pobox.com>
1608 * bus/config-parser.c: hacking
1610 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1611 to shut down, since it could cause weirdness with the DBusList
1614 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1615 link-oriented stack routines
1616 (alloc_link): free the mempool if the first alloc from it fails
1618 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1620 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1622 (_dbus_string_skip_white): new
1624 * doc/config-file.txt (Elements): add <includedir>
1626 2003-03-28 Havoc Pennington <hp@pobox.com>
1628 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1629 (_dbus_string_copy_data): new functions
1631 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1633 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1637 * dbus/dbus-memory.c:
1640 2003-03-28 Havoc Pennington <hp@pobox.com>
1642 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1643 I think it may have just been superstition. Not sure.
1645 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1646 failures that were not being handled.
1648 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1650 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1651 row that will fail on out-of-memory.
1653 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1654 function for testing out-of-memory handling.
1656 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1657 allocation functions, they do map exactly to the expat ones.
1659 2003-03-27 Havoc Pennington <hp@redhat.com>
1661 * bus/config-loader-libxml.c (bus_config_load): add another error
1664 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1667 Add note about automatic service activation.
1669 * doc/dbus-specification.sgml:
1670 Rename the specification and clarify a few things.
1672 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1675 * dbus/dbus-address.c:
1677 * dbus/dbus-marshal.c:
1678 * dbus/dbus-server-debug-pipe.c:
1679 * dbus/dbus-transport-unix.c:
1680 Fix documentation warnings.
1682 2003-03-26 Havoc Pennington <hp@pobox.com>
1684 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1685 after every test so it's quick and easy to see which leaked, and
1686 so we test multiple dbus_shutdown() calls
1688 * configure.in: change configure.in XML stuff to also support
1691 * config-loader-libxml.c: some hacking
1693 * config-loader-expat.c: some hacking
1695 * config-parser.c: some hacking, plus tests
1697 2003-03-25 Havoc Pennington <hp@redhat.com>
1699 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1701 * configure.in: add --with-xml option to specify XML library,
1702 right now only libxml is supported.
1704 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1705 nonworking code between home and work, still just stubs
1707 2003-03-24 Havoc Pennington <hp@redhat.com>
1709 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1712 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1713 NULL argument for "message" if the error is a well-known one,
1714 fill in a generic message in this case.
1716 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1719 * bus/test.c (bus_test_flush_bus): add
1721 * bus/policy.c (bus_policy_test): test code stub
1723 2003-03-24 Havoc Pennington <hp@pobox.com>
1725 * bus/connection.c (bus_connections_setup_connection): set up
1726 the "can this user connect" function, but it always returns
1727 TRUE until we have a config file parser so we can have a config
1728 file that allows connections.
1730 2003-03-23 Havoc Pennington <hp@pobox.com>
1732 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1733 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1734 the mutex, so we can check for proper memory management
1737 * dbus/dbus-dataslot.c: remove the mutex from
1738 DBusDataSlotAllocator and lock it manually when using it,
1739 to simplify fitting it into the global slots framework.
1741 * dbus/dbus-threads.c (init_static_locks): rework how we're
1742 handling global locks so they are easily shut down.
1744 * bus/policy.c (bus_policy_append_rule): fix
1746 * bus/test-main.c (main): check for memleaks
1748 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1749 test suite check for memleaks
1751 * dbus/dbus-memory.c: add support in test mode for tracking
1752 number of outstanding blocks
1754 2003-03-23 Havoc Pennington <hp@pobox.com>
1756 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1759 * dbus/dbus-hash.h: add ULONG hash keys
1761 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1762 (_dbus_get_group_id): new function
1764 2003-03-20 Havoc Pennington <hp@redhat.com>
1766 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1768 (dbus_connection_get_unix_user): new function
1770 2003-03-20 Havoc Pennington <hp@pobox.com>
1772 * bus/connection.c (bus_connection_send_oom_error): assert that
1773 message has a sender
1774 (connection_execute_transaction): ditto
1775 (bus_connection_preallocate_oom_error): fix to set the sender, and
1776 set recipient to the destination service, not the bus driver
1778 * bus/policy.c: hacking
1780 * dbus/dbus-message.c (dbus_message_service_is): new function
1781 (dbus_message_sender_is): new
1783 2003-03-19 Havoc Pennington <hp@redhat.com>
1785 * bus/policy.c: start sketching code for policy restrictions on
1786 what connections can do.
1788 2003-03-18 Havoc Pennington <hp@redhat.com>
1790 * doc/TODO: some notes on high-level todo items. Little nitpick
1791 stuff is all in @todo, so no need to add it here.
1793 * doc/config-file.txt: some notes on how config file might look
1795 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1801 2003-03-17 Havoc Pennington <hp@redhat.com>
1803 * dbus/dbus-internals.h: add gcc attributes so that
1804 our printf-style functions warn on bad arguments to
1807 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1810 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1813 2003-03-17 Havoc Pennington <hp@redhat.com>
1815 * bus/test-main.c (main): make it print something as it runs
1816 so make check doesn't look stuck
1818 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1819 from CVS, now obsolete
1821 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1823 * bus/dispatch.c: (bus_dispatch):
1824 Refetch the service name since it may have been reallocated
1825 when dbus_message_set_sender was called.
1827 * dbus/dbus-sysdeps.c: (_dbus_accept):
1828 Add address and address length variables and use them to stop
1829 valgrind from complaining.
1831 2003-03-17 Havoc Pennington <hp@pobox.com>
1833 All tests pass, no memleaks, no valgrind complaints.
1835 * bus/test.c: refcount handler_slot
1837 * bus/connection.c (bus_connections_new): refcount
1838 connection_data_slot
1840 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1841 bytes so that auth scripts pass.
1843 * bus/dispatch.c: init message_handler_slot so it gets allocated
1846 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1848 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1849 dealloc server_pipe_hash when no longer used for benefit of
1852 * dbus/dbus-auth.c (process_command): memleak fix
1854 * bus/dispatch.c (check_hello_message): memleak fix
1856 2003-03-16 Havoc Pennington <hp@pobox.com>
1858 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1860 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1862 * bus/activation.c (bus_activation_activate_service): Append
1863 the pending activation entry to the list of pending activations.
1865 2003-03-16 Havoc Pennington <hp@pobox.com>
1867 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1870 * dbus/dbus-address.c (create_entry): fix OOM handling when
1871 failing to alloc entry->method
1873 2003-03-16 Havoc Pennington <hp@pobox.com>
1875 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1878 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1879 add some missing dbus_set_result
1881 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1882 alloc the DBusMessageHandler
1884 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1885 the transport here, since we call this from the finalizer; it
1886 resulted in a double-finalize.
1888 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1889 where we tried to use transport->connection that was NULL,
1890 happened when transport was disconnected early on due to OOM
1892 * bus/*.c: adapt to handle OOM for watches/timeouts
1894 * dbus/dbus-transport-unix.c: port to handle OOM during
1897 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1898 reference to unused bytes instead of a copy
1900 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1903 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1906 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1909 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1911 * doc/dbus-specification.sgml:
1912 Document reply message for ActivateService.
1914 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1916 * bus/activation.c: (bus_pending_activation_entry_free),
1917 (bus_pending_activation_free), (bus_activation_new),
1918 (bus_activation_unref), (bus_activation_service_created),
1919 (bus_activation_activate_service):
1921 * bus/bus.c: (bus_context_new):
1922 * bus/desktop-file.c: (new_section):
1923 * bus/driver.c: (bus_driver_send_service_deleted),
1924 (bus_driver_handle_activate_service):
1925 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
1927 * dbus/dbus-connection.c:
1928 (dbus_connection_send_with_reply_and_block):
1929 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1930 * dbus/dbus-protocol.h:
1931 Make activation work better. Now pending activations will be queued
1932 and the daemon won't try to activate services that are already registered.
1934 2003-03-16 Havoc Pennington <hp@pobox.com>
1936 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
1939 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
1940 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
1942 2003-03-16 Havoc Pennington <hp@pobox.com>
1944 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
1945 this. always run the test suite before commit...
1947 * bus/*: adapt to DBusConnection API changes
1949 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
1950 requires renaming stuff to avoid dbus_connection_dispatch name
1953 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
1956 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1957 separate from _dbus_message_loader_return_buffer()
1959 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
1960 this, because it's now always broken to use; the number of
1961 messages in queue vs. the number still buffered by the message
1962 loader is undefined/meaningless. Should use
1963 dbus_connection_get_dispatch_state().
1964 (dbus_connection_dispatch): rename from
1965 dbus_connection_dispatch_message
1967 2003-03-16 Havoc Pennington <hp@pobox.com>
1969 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
1972 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1974 * dbus/dbus-connection.c:
1975 (dbus_connection_send_with_reply_and_block):
1976 Decrease connection->n_incoming when removing an entry
1978 * dbus/dbus-dict.c: (dbus_dict_entry_free),
1979 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
1980 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
1981 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
1982 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
1983 (dbus_dict_get_byte_array):
1984 Handle NULL arrays and strings. Also add support for byte arrays.
1986 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
1987 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
1988 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
1989 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
1990 (_dbus_demarshal_dict), (demarshal_and_validate_len),
1991 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
1992 * dbus/dbus-marshal.h:
1993 Add support for marshalling and demarshalling empty arrays and strings.
1995 * dbus/dbus-message.c: (dbus_message_append_args_valist),
1996 (dbus_message_append_string_array),
1997 (dbus_message_iter_get_boolean),
1998 (dbus_message_iter_get_boolean_array),
1999 (dbus_message_iter_get_int32_array),
2000 (dbus_message_iter_get_uint32_array),
2001 (dbus_message_iter_get_double_array),
2002 (dbus_message_iter_get_byte_array),
2003 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
2004 (check_message_handling):
2005 Add support for getting empty arrays and dicts.
2007 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
2008 Don't do any validation at all for now, that's better than just checking
2011 * test/data/valid-messages/emptiness.message:
2012 New test message with lots of empty arrays.
2014 2003-03-16 Havoc Pennington <hp@pobox.com>
2016 * dbus/dbus-connection.c
2017 (_dbus_connection_queue_received_message_link): new function that
2018 can't fail due to OOM
2020 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
2021 new function pops a message together with a list link
2024 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
2025 message queuing functions to avoid needing to alloc memory
2027 2003-03-16 Havoc Pennington <hp@pobox.com>
2029 Oops - test code was only testing failure of around 30 of the
2030 mallocs in the test path, but it turns out there are 500+
2031 mallocs. I believe this was due to misguided linking setup such
2032 that there was one copy of dbus_malloc etc. in the daemon and one
2033 in the shared lib, and only daemon mallocs were tested. In any
2034 case, the test case now tests all 500+ mallocs, and doesn't pass
2035 yet, though there are lots of fixes in this patch.
2037 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2038 this so that it doesn't need to allocate memory, since it
2039 has no way of indicating failure due to OOM (and would be
2040 annoying if it did).
2042 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
2044 * bus/Makefile.am: rearrange to create two self-contained
2045 libraries, to avoid having libraries with overlapping symbols.
2046 that was resulting in weirdness, e.g. I'm pretty sure there
2047 were two copies of global static variables.
2049 * dbus/dbus-internals.c: move the malloc debug stuff to
2052 * dbus/dbus-list.c (free_link): free list mempool if it becomes
2055 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
2057 * dbus/dbus-address.c (dbus_parse_address): free list nodes
2060 * bus/dispatch.c (bus_dispatch_add_connection): free
2061 message_handler_slot when no longer using it, so
2062 memory leak checkers are happy for the test suite.
2064 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
2066 * bus/bus.c (new_connection_callback): disconnect in here if
2067 bus_connections_setup_connection fails.
2069 * bus/connection.c (bus_connections_unref): fix to free the
2071 (bus_connections_setup_connection): if this fails, don't
2072 disconnect the connection, just be sure there are no side
2075 * dbus/dbus-string.c (undo_alignment): unbreak this
2077 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2079 (_dbus_auth_new): fix the order in which we free strings
2082 * bus/connection.c (bus_connection_disconnected): fix to
2083 not send ServiceDeleted multiple times in case of memory
2086 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2087 get the base service name
2088 (dbus_bus_register_client): don't return base service name,
2089 instead store it on the DBusConnection and have an accessor
2091 (dbus_bus_register_client): rename dbus_bus_register()
2093 * bus/dispatch.c (check_hello_message): verify that other
2094 connections on the bus also got the correct results, not
2095 just the one sending hello
2097 2003-03-15 Havoc Pennington <hp@pobox.com>
2099 Make it pass the Hello handling test including all OOM codepaths.
2100 Now to do other messages...
2102 * bus/services.c (bus_service_remove_owner): fix crash when
2103 removing owner from an empty list of owners
2104 (bus_registry_ensure): don't leave service in the list of
2105 a connection's owned services if we fail to put the service
2108 * bus/connection.c (bus_connection_preallocate_oom_error): set
2109 error flag on the OOM error.
2111 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2112 handle _dbus_transport_set_connection failure
2114 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2115 to create watches up front and simply enable/disable them as
2117 (unix_connection_set): this can now fail on OOM
2119 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2120 of enabling/disabling a watch or timeout.
2122 * bus/loop.c (bus_loop_iterate): don't touch disabled
2125 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2127 2003-03-15 Havoc Pennington <hp@pobox.com>
2129 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2130 write useful test code, after all that futzing around ;-)
2132 Test does not yet pass because we can't handle OOM in
2133 _dbus_transport_messages_pending (basically,
2134 dbus_connection_preallocate_send() does not prealloc the write
2135 watch). To fix this, I think we need to add new stuff to
2136 set_watch_functions, namely a SetEnabled function so we can alloc
2137 the watch earlier, then enable it later.
2139 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2140 dbus-memory.c to the convenience lib
2142 * bus/test.c: rename some static functions to keep them clearly
2143 distinct from stuff in connection.c. Handle client disconnection.
2145 2003-03-14 Havoc Pennington <hp@pobox.com>
2147 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2148 transport, tests more of the real codepath. Set up clients
2149 with bus_setup_debug_client.
2151 * bus/test.c (bus_setup_debug_client): function to set up debug
2152 "clients" on the main loop
2154 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2157 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2160 * dbus/dbus-server-debug.c: support a debug server based on pipes
2162 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2163 (_dbus_close): new function
2165 * configure.in: check for socketpair
2167 2003-03-14 Havoc Pennington <hp@redhat.com>
2169 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2172 * dbus/dbus-transport-debug.c: rework this a good bit to be
2173 less complicated. hopefully still works.
2175 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2178 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2181 * dbus/dbus-message.c (dbus_message_copy): rename from
2182 dbus_message_new_from_message, fix it up to copy
2183 all the message fields, add test case
2185 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2186 not quite passing yet
2188 2003-03-14 Havoc Pennington <hp@pobox.com>
2190 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2191 until no work remains" in test code. (the large diff here
2192 is just code movement, no actual changes)
2194 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2195 1, no point waiting around for test code.
2196 (_dbus_server_debug_accept_transport): unref the timeout
2197 after adding it (right?)
2199 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2201 2003-03-13 Havoc Pennington <hp@redhat.com>
2203 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2206 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2209 * dbus/dbus-connection.h: Make AddWatchFunction and
2210 AddTimeoutFunction return a bool so they can fail on out-of-memory
2212 * bus/bus.c (bus_context_new): set up timeout handlers
2214 * bus/connection.c (bus_connections_setup_connection): set up
2217 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2220 * bus/bus.c (bus_context_new): adapt to changes
2222 * bus/connection.c: adapt to changes
2224 * test/watch.c: adapt to DBusWatch changes
2226 * bus/dispatch.c (bus_dispatch_test): started adding this but
2229 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2231 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2233 2003-03-13 Havoc Pennington <hp@pobox.com>
2235 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2236 set up a test framework as for the library
2238 2003-03-12 Havoc Pennington <hp@pobox.com>
2240 Throughout: purge global variables, introduce BusActivation,
2241 BusConnections, BusRegistry, etc. objects instead.
2243 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2246 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2247 going to redo this a bit differently I think
2249 2003-03-12 Havoc Pennington <hp@redhat.com>
2251 Mega-patch that gets the message bus daemon initially handling
2252 out-of-memory. Work still needed. Also lots of random
2253 moving stuff to DBusError instead of ResultCode.
2255 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2257 * dbus/dbus-connection.c
2258 (dbus_connection_send_with_reply_and_block): use DBusError
2260 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2263 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2264 code here, as the only failure possible is OOM.
2266 * bus/connection.c (bus_connection_disconnect):
2267 rename bus_connection_disconnected as it's a notification only
2269 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2270 "name" on get_args failure, should be done by get_args;
2271 don't disconnect client for bad args, just return an error.
2272 (bus_driver_handle_service_exists): ditto
2274 * bus/services.c (bus_services_list): NULL-terminate returned array
2276 * bus/driver.c (bus_driver_send_service_lost)
2277 (bus_driver_send_service_acquired): send messages from driver to a
2278 specific client to the client's unique name, not to the broadcast
2281 * dbus/dbus-message.c (decode_header_data): reject messages that
2282 contain no name field
2283 (_dbus_message_get_client_serial): rename to
2284 dbus_message_get_serial and make public
2285 (_dbus_message_set_serial): rename from set_client_serial
2286 (_dbus_message_set_reply_serial): make public
2287 (_dbus_message_get_reply_serial): make public
2289 * bus/connection.c (bus_connection_foreach): allow stopping
2290 iteration by returning FALSE from foreach function.
2292 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2293 (dbus_connection_free_preallocated_send)
2294 (dbus_connection_preallocate_send): new API for sending a message
2295 without possibility of malloc failure.
2296 (dbus_connection_send_message): rename to just
2297 dbus_connection_send (and same for whole function family)
2299 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2301 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2303 * bus/activation.c: handle/return errors
2305 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2307 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2308 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2309 (_dbus_result_from_errno): move to this file
2311 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2313 * dbus/dbus-marshal.c:
2314 (_dbus_marshal_set_string):
2315 Take a length argument so we can marshal the correct string
2318 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2319 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2320 (_dbus_marshal_test):
2321 * dbus/dbus-marshal.h:
2322 Add support for marshalling and demarshalling dicts.
2324 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2325 Add support for TYPE DICT.
2327 * dbus/dbus-message.c: (set_string_field):
2328 Adjust header padding.
2330 (dbus_message_append_args_valist), (dbus_message_append_dict),
2331 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2332 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2333 (check_message_handling), (check_have_valid_message):
2334 * dbus/dbus-message.h:
2335 Add functions for setting and getting dicts.
2337 * dbus/dbus-protocol.h:
2343 * doc/dbus-specification.sgml:
2344 Add information about how dicts are marshalled.
2346 * test/data/invalid-messages/dict-with-nil-value.message:
2347 * test/data/invalid-messages/too-short-dict.message:
2348 * test/data/valid-messages/dict-simple.message:
2349 * test/data/valid-messages/dict.message:
2350 Add sample messages containing dicts.
2352 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2354 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2356 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2359 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2360 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2361 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2362 (dbus_dict_set_double), (dbus_dict_set_string),
2363 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2364 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2365 (dbus_dict_set_string_array), (_dbus_dict_test):
2367 Fix according to comments from Havoc.
2369 2003-03-06 Michael Meeks <michael@server.home>
2371 * configure.in: if we don't have kde-config, disable have_qt.
2373 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2378 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2379 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2380 (dbus_dict_remove), (dbus_dict_get_value_type),
2381 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2382 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2383 (dbus_dict_put_double), (dbus_dict_put_string),
2384 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2385 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2386 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2387 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2388 (dbus_dict_get_double), (dbus_dict_get_string),
2389 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2390 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2391 (dbus_dict_get_string_array), (_dbus_dict_test):
2393 Add DBusDict implementation
2395 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2399 2003-03-04 Havoc Pennington <hp@pobox.com>
2401 * test/data/auth/*: adapt to changes
2403 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2404 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2407 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2408 more stuff from being in a context name, to make the protocol
2409 simpler to deal with
2411 * dbus/dbus-errors.c (dbus_error_has_name): new function
2412 (dbus_error_is_set): new function
2414 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2415 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2417 * dbus/dbus-connection.c (dbus_connection_flush): also read
2418 messages during a flush operation
2420 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2422 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2424 * configure.in: Check for gethostbyname on Solaris.
2426 * dbus/dbus-transport.c: (_dbus_transport_open):
2427 Remove duplicate "tcp" entry.
2429 * doc/dbus-specification.sgml:
2430 Clarify some things.
2432 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2434 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2435 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2436 (_dbus_keyring_test):
2437 * dbus/dbus-md5.c: (_dbus_md5_compute):
2438 * dbus/dbus-sha.c: (_dbus_sha_compute):
2441 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2443 * README: Add some things.
2445 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2447 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2448 after case DBUS_TYPE_BOOELAN.
2450 2003-03-02 Havoc Pennington <hp@pobox.com>
2452 * test/break-loader.c (randomly_set_extreme_ints): add test that
2453 sets really huge and small integers
2455 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2456 that length of boolean array fits in the string, and that
2457 string has room for boolean value in single-bool case.
2459 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2460 optional value to "ALIGN" command which is what to fill the
2463 * test/data/valid-messages/no-padding.message: add regression
2464 test for the message padding problem
2466 2003-03-02 Havoc Pennington <hp@pobox.com>
2468 * dbus/dbus-message.c (decode_header_data): fix to always init
2469 message_padding, from Benjamin Dauvergne
2471 2003-03-02 Havoc Pennington <hp@pobox.com>
2477 2003-03-01 Joe Shaw <joe@assbarn.com>
2479 * configure.in: Check for "struct cmsgcred" and try to access its
2480 members for BSD-like unices.
2482 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2483 _dbus_read_credentials_unix_socket().
2484 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2485 read() for reading the credential byte off the unix socket. Use
2486 struct cmsgcred on systems that support it.
2488 2003-02-27 Alexander Larsson <alexl@redhat.com>
2492 Make gthreads-2.0 dependency optional. Don't build thread test if
2495 2003-02-27 Havoc Pennington <hp@pobox.com>
2497 * dbus/dbus-connection.c
2498 (dbus_connection_send_message_with_reply_and_block): fix doh!
2499 doh! doh! bug that resulted in never removing a reply from the
2500 queue, no wonder we called get_reply_serial so much ;-)
2502 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2503 and client serial instead of demarshaling them every time
2505 2003-02-27 Havoc Pennington <hp@pobox.com>
2507 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2508 more inlined, using dbus-string-private.h, speeds things up
2511 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2512 when freeing the string
2513 (_dbus_string_steal_data): fix for align offset
2514 (undo_alignment): new function
2516 2003-02-26 Havoc Pennington <hp@redhat.com>
2518 All kinds of audit fixes from Owen, plus initial attempt to
2519 handle unaligned memory returned from malloc.
2521 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2522 leave room for align_offset and nul byte
2523 (fixup_alignment): function to track an align_offset and
2524 ensure real->str is aligned
2525 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2526 to allow a nul byte plus align offset
2527 (_dbus_string_lock): fix overflow issue
2528 (_dbus_string_init_const_len): add assertions on sanity of len,
2529 assign allocated to be ALLOCATION_PADDING larger than len
2530 (set_length): fixup the overflow handling
2531 (_dbus_string_get_data_len): fix overflow in assertion
2532 (open_gap): detect overflow in size of gap to be opened
2533 (_dbus_string_lengthen): add overflow check
2534 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2535 (_dbus_string_append): add overflow check
2536 (_dbus_string_append_unichar): overflow
2537 (_dbus_string_delete): fix overflow in assertion
2538 (_dbus_string_copy_len): overflow in assertion
2539 (_dbus_string_replace_len): overflows in assertions
2540 (_dbus_string_find): change to implement in terms of
2541 _dbus_string_find_to
2542 (_dbus_string_find_to): assorted fixage
2543 (_dbus_string_equal_c_str): assert c_str != NULL,
2544 fix logic so the function works
2545 (_dbus_string_ends_with_c_str): fix overflow thingy
2546 (_dbus_string_base64_encode): overflow fix
2547 (_dbus_string_validate_ascii): overflow
2548 (_dbus_string_validate_nul): overflow
2550 2003-02-26 Havoc Pennington <hp@redhat.com>
2552 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2554 2003-02-26 Alexander Larsson <alexl@redhat.com>
2557 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2559 * dbus/dbus-connection.c:
2560 * dbus/dbus-connection.h:
2561 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2562 Add dbus_connection_set_wakeup_main_function and use it when queueing
2563 incoming and outgoing messages.
2566 * dbus/dbus-dataslot.c:
2567 Threadsafe usage of DBusDataSlotAllocator
2569 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2572 * dbus/dbus-server-unix.c:
2575 * glib/dbus-gmain.c:
2576 Implement the new wakeup functions for glib.
2579 * glib/test-thread-client.c:
2580 * glib/test-thread-server.c:
2581 * glib/test-thread.h:
2582 Initial cut at some thread test code. Not really done yet.
2584 2003-02-26 Havoc Pennington <hp@pobox.com>
2586 * dbus/dbus-connection.c
2587 (dbus_connection_send_message_with_reply_and_block): fix crash
2588 where we ref'd the outgoing message instead of the returned reply
2590 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2591 at the end of this function, so if we didn't need to read for
2592 authentication, we reinstall it for receiving messages
2594 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2595 a NULL sender for peer-to-peer case
2597 * dbus/dbus-transport-unix.c (check_read_watch): handle
2598 !authenticated case correctly
2600 * glib/dbus-gmain.c: add support for DBusServer
2602 * dbus/dbus-server.c: add data slot support
2604 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2605 return values and handle errors
2607 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2610 * Doxyfile.in (INPUT): add glib subdir
2612 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2613 setup_with_g_main instead of hookup_with_g_main; write docs
2615 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2617 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2618 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2619 * dbus/dbus-message.c: (dbus_message_append_boolean),
2620 (dbus_message_append_boolean_array),
2621 (dbus_message_get_args_valist), (_dbus_message_test):
2622 * dbus/dbus-message.h:
2623 * doc/dbus-specification.sgml:
2624 Various fixes as pointed out by Havoc.
2626 * test/data/invalid-messages/bad-boolean-array.message:
2627 * test/data/invalid-messages/bad-boolean.message:
2628 Add invalid boolean value test cases.
2630 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2632 * dbus/dbus-internals.c: (_dbus_type_to_string):
2633 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2634 (_dbus_marshal_validate_arg):
2635 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2636 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2637 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2638 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2639 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2640 (dbus_message_iter_get_double),
2641 (dbus_message_iter_get_boolean_array), (message_iter_test):
2642 * dbus/dbus-message.h:
2643 * dbus/dbus-protocol.h:
2644 * doc/dbus-specification.sgml:
2645 * test/data/valid-messages/lots-of-arguments.message:
2646 Add support for boolean and boolean array types.
2648 2003-02-23 Havoc Pennington <hp@pobox.com>
2650 * dbus/dbus-keyring.c: finish most of this implementation and
2653 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2654 these barf if the error isn't cleared to NULL
2656 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2657 (_dbus_create_directory): new function
2659 * dbus/dbus-errors.c (dbus_set_error): fix warning
2661 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2662 (_dbus_string_hex_decode): new function
2663 (test_hex_roundtrip): test code
2665 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2667 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2669 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2670 the save-to-temp/rename trick to atomically write the new file
2671 (_dbus_string_parse_uint): new function
2673 2003-02-22 Havoc Pennington <hp@pobox.com>
2675 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2677 2003-02-22 Havoc Pennington <hp@pobox.com>
2679 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2680 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2682 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2684 * dbus/test/data/sha-1: add US government test suite for SHA-1
2686 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2688 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2689 Make string arrays NULL-terminated.
2691 * dbus/dbus-memory.c: (dbus_free_string_array):
2692 * dbus/dbus-memory.h:
2693 New function for freeing NULL-terminated string arrays.
2695 * dbus/dbus-message-builder.c: (append_quoted_string),
2696 (_dbus_message_data_load):
2697 Add support for array types.
2699 * dbus/dbus-message.c: (check_message_handling):
2700 Add more types as test cases.
2702 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2703 (_dbus_string_parse_double):
2704 Add the start offset to the end offset.
2706 * test/data/valid-messages/lots-of-arguments.message:
2707 New test message with lots of arguments.
2709 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2711 * dbus/dbus-message.c: (dbus_message_append_nil),
2712 (dbus_message_append_int32), (dbus_message_append_uint32),
2713 (dbus_message_append_double), (dbus_message_append_string),
2714 (dbus_message_append_int32_array),
2715 (dbus_message_append_uint32_array),
2716 (dbus_message_append_double_array),
2717 (dbus_message_append_byte_array),
2718 (dbus_message_append_string_array):
2719 Fix all out-of-memory handling in these functions.
2721 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2723 * dbus/dbus-message.c: (dbus_message_append_nil):
2726 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2728 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2729 (dbus_message_append_nil), (dbus_message_append_int32_array),
2730 (dbus_message_append_uint32_array),
2731 (dbus_message_append_double_array),
2732 (dbus_message_append_byte_array),
2733 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2734 (dbus_message_iter_get_int32_array),
2735 (dbus_message_iter_get_uint32_array),
2736 (dbus_message_iter_get_double_array),
2737 (dbus_message_iter_get_byte_array),
2738 (dbus_message_iter_get_string_array):
2740 * dbus/dbus-message.h:
2741 Add functions for appending and getting arrays.
2743 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2745 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2746 element size at least 8 bytes, fixes mempool tests on
2749 2003-02-20 Alexander Larsson <alexl@redhat.com>
2751 * dbus/dbus-transport-unix.c (unix_do_iteration):
2752 Unlock the connection mutex during a blocking select call.
2753 Add todo about how we need a way to wake up the select.
2755 * dbus/dbus-connection-internal.h:
2756 * dbus/dbus-connection.c:
2757 Add _dbus_connection_lock and _dbus_connection_unlock.
2759 2003-02-19 Havoc Pennington <hp@pobox.com>
2761 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2762 Doxyfile.in, not Doxyfile
2764 * dbus/dbus-keyring.c: do some hacking on this
2766 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2768 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2770 (dbus_set_error): remove dbus_error_init, check for message ==
2771 NULL *before* we sprintf into it, and add @todo about including
2772 system headers in this file
2774 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2776 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2778 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2779 get various bits of user information based on either username
2781 (_dbus_homedir_from_username): new function
2783 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2786 Add check for nonposix getpwnam_r
2788 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2789 Align the pool element size to a sizeof (void *) boundary.
2791 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2792 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2793 General Solaris fixes.
2795 * test/data/valid-messages/simplest-manual.message:
2796 Explicitly state that we want little-endian packing.
2798 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2800 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2802 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2803 Added to create a transport connecting using a tcp/ip socket.
2805 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2806 to a tcp socket at given host and port.
2807 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2810 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2812 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2813 Added to create a server listening on a TCP/IP socket.
2815 2003-02-19 Havoc Pennington <hp@pobox.com>
2817 Throughout: mop up all the Doxygen warnings and undocumented
2820 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2821 to search any paths.
2823 * dbus/dbus-threads.c: move global mutex initializers to
2824 dbus-internals.h, multiple prototypes was confusing doxygen
2825 besides being kind of ugly
2827 * Doxyfile (PREDEFINED): have Doxygen define
2828 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2829 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2830 (do not abuse the feature! it's for stuff like the autogenerated
2831 macros in dbus-md5.c, not just for things you don't feel like
2834 2003-02-18 Havoc Pennington <hp@pobox.com>
2836 * dbus/dbus-string.c (_dbus_string_zero): new function
2838 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2839 wrap it in some dbus-friendly API
2841 * dbus/dbus-types.h: add 16-bit types
2843 2003-02-18 Joe Shaw <joe@assbarn.com>
2845 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2846 credentials from our currently running process.
2847 (get_word): Fix a buglet where we were copying the entire length
2848 instead of relative to our position.
2850 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2851 keys on the stack... it's 640k of data.
2853 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2854 read the credentials byte off the socket, even if we don't have
2856 (_dbus_poll): Implement poll() using select() for systems which
2859 * glib/test-dbus-glib.c (main): Print out an error if no
2860 parameters are given.
2862 * test/data/auth/fallback.auth-script: Added. Tests that a client
2863 can fallback to a secondary auth mechanism if the first fails.
2865 2003-02-18 Havoc Pennington <hp@pobox.com>
2869 2003-02-17 Havoc Pennington <hp@pobox.com>
2871 * doc/dbus-specification.sgml: lots of cosmetic
2872 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2873 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2874 s/server/bus/ (except in authentication section). Add a section
2875 "Message Bus Message Routing"
2877 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2883 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2885 * doc/dbus-specification.sgml:
2886 Specification updates.
2888 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2890 * bus/activation.c: (bus_activation_init), (child_setup),
2891 (bus_activation_activate_service):
2893 * bus/main.c: (main):
2894 Set DBUS_ADDRESS environment variable.
2896 * dbus/dbus-errors.c: (dbus_set_error):
2897 Don't use va_copy since that's a C99 feature.
2899 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2900 (_dbus_spawn_async):
2901 * dbus/dbus-sysdeps.h:
2902 Add child_setup_func to _dbus_spawn_async.
2904 * doc/dbus-specification.sgml:
2905 Update specification.
2907 * test/spawn-test.c: (setup_func), (main):
2910 2003-02-17 Alexander Larsson <alexl@redhat.com>
2912 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2915 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2919 * doc/dbus-test-plan.sgml:
2920 Add test plan document.
2925 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2927 * dbus/dbus-message.c: (decode_header_data),
2928 (_dbus_message_loader_return_buffer):
2929 Set the header padding amount when loading a message.
2931 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2933 * bus/dispatch.c: (send_one_message):
2934 Only send broadcast messages to registered connections.
2936 * dbus/dbus-message.c: (dbus_message_name_is):
2937 * dbus/dbus-message.h:
2938 New convenience function.
2940 * dbus/dbus-transport-debug.c: (do_reading):
2941 Only dispatch one message per run.
2944 * test/bus-test.c: (new_connection_callback), (die),
2945 (test_hello_client1_handler), (test_hello_client2_handler),
2946 (test_hello_replies), (main):
2948 * test/bus-test-loop.[ch]:
2951 2003-02-16 Havoc Pennington <hp@pobox.com>
2953 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2954 backward conditional
2956 2003-02-16 Alexander Larsson <alexl@redhat.com>
2958 * dbus/dbus-connection.c:
2959 Implement sent_message_with_reply. (with_reply_and block is still
2961 Made dispatch_message not lose message if OOM.
2963 * dbus/dbus-errors.h:
2964 Add NoReply error (for reply timeouts).
2966 2003-02-16 Alexander Larsson <alexl@redhat.com>
2968 * dbus/dbus-hash.c (_dbus_hash_table_unref):
2969 Actually free keys and values when destroying hashtable.
2971 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2973 * dbus/dbus-auth.c: (client_try_next_mechanism):
2976 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
2977 Return TRUE if there's no thread implementation around.
2979 * glib/dbus-gmain.c: (free_source),
2980 (dbus_connection_hookup_with_g_main):
2981 Make sure to remove the GSource when the connection is finalized.
2983 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2985 * bus/dispatch.c: (bus_dispatch_message_handler):
2986 * dbus/dbus-errors.h:
2987 Return an error if someone tries to send a message to a service
2990 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2992 * bus/activation.c: (load_directory), (bus_activation_init),
2993 (bus_activation_activate_service):
2996 (bus_driver_handle_activate_service), (bus_driver_handle_message):
2997 More work on the activation handling.
2999 * dbus/dbus-errors.h:
3000 Add some error messages
3002 * dbus/dbus-message.c: (dbus_message_new_error_reply):
3003 * dbus/dbus-message.h:
3004 New function that creates an error message.
3006 * dbus/dbus-protocol.h:
3007 Add ACTIVATE_SERVER message.
3009 * dbus/dbus-server-unix.c: (unix_handle_watch),
3010 (_dbus_server_new_for_domain_socket):
3011 Call _dbus_fd_set_close_on_exec.
3013 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
3014 (_dbus_spawn_async), (_dbus_disable_sigpipe),
3015 (_dbus_fd_set_close_on_exec):
3016 * dbus/dbus-sysdeps.h:
3017 Add _dbus_fd_set_close_on exec function. Also add function that checks
3018 that all open fds are set to close-on-exec and warns otherwise.
3020 * dbus/dbus-transport-unix.c:
3021 (_dbus_transport_new_for_domain_socket):
3022 Call _dbus_fd_set_close_on_exec.
3024 2003-02-16 Havoc Pennington <hp@pobox.com>
3026 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
3027 allow people to avoid setting SIGPIPE to SIG_IGN
3028 (_dbus_connection_new_for_transport): disable SIGPIPE unless
3029 we've been asked not to
3031 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3033 * dbus/dbus-list.c: (_dbus_list_append_link),
3034 (_dbus_list_prepend_link):
3035 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
3039 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3042 * bus/activation.c: (bus_activation_entry_free),
3043 (add_desktop_file_entry), (load_directory), (bus_activation_init):
3045 * bus/main.c: (main):
3046 Add simple activation support, doesn't work yet though.
3048 2003-02-15 Zack Rusin <zack@kde.org>
3050 * qt/dbus-qthread.cpp: small casting fix
3052 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3054 * dbus/dbus-errors.c: (dbus_set_error):
3055 * dbus/dbus-errors.h:
3056 Add a few errors and make dbus_set_error void.
3058 * dbus/dbus-sysdeps.c:
3059 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
3060 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
3061 * dbus/dbus-sysdeps.h:
3062 Add _dbus_spawn_async.
3064 * test/spawn-test.c: (main):
3065 Test for _dbus_spawn_async.
3067 2003-02-15 Anders Carlsson <andersca@codefactory.se>
3069 * dbus/dbus-internals.h:
3070 Fix build without tests.
3072 * dbus/dbus-list.c: (alloc_link):
3073 Fix a segfault when a malloc fails.
3075 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3076 (dbus_malloc0), (dbus_realloc):
3077 Add support for malloc debugging.
3079 2003-02-15 Alexander Larsson <alexl@redhat.com>
3081 * dbus/dbus-threads.c:
3082 * dbus/dbus-threads.h:
3083 Add condvars. Remove static mutext from API.
3084 Implement static mutexes by initializing them from threads_init.
3086 * glib/dbus-gthread.c:
3087 * qt/dbus-qthread.cpp:
3088 Update with the thread api changes.
3093 Turn StaticMutex into normal mutex + init function.
3094 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3095 _dbus_list_append_link, _dbus_list_prepend_link
3098 * dbus/dbus-sysdeps.c:
3099 * dbus/dbus-sysdeps.h:
3100 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3101 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3103 * dbus/dbus-protocol.h:
3104 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3106 * dbus/dbus-message.c:
3107 Make ref/unref atomic.
3110 * dbus/dbus-connection-internal.h:
3111 * dbus/dbus-connection.c:
3112 * dbus/dbus-connection.h:
3114 Change _peek to _borrow,_return & _steal_borrowed.
3115 Change disconnect callback to event.
3116 Make dbus_connection_dispatch_messages reentrant.
3118 * dbus/dbus-transport.c:
3119 Don't ref the connection on calls to the transport
3122 * dbus/dbus-message-handler.c:
3125 * glib/dbus-gmain.c:
3126 Don't use peek_message anymore
3129 * test/debug-thread.c:
3130 * test/debug-thread.h:
3131 Simple thread implementation that asserts() on deadlocks in
3132 single-threaded code.
3135 (main) Call debug_threads_init.
3138 Use disconnect message instead of disconnect callback.
3142 Don't call dbus_connection_set_disconnect_function. Instead export
3143 bus_connection_disconnect.
3146 Call bus_connection_disconnect when we get a disconnected message.
3148 2003-02-15 Havoc Pennington <hp@pobox.com>
3150 * dbus/dbus-message.c (dbus_message_new): fool around with the
3153 2003-02-14 Havoc Pennington <hp@pobox.com>
3155 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3157 * dbus/dbus-memory.c: fail if the debug functions indicate we
3160 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3161 (_dbus_decrement_fail_alloc_counter): debug functions to
3162 simulate memory allocation failures
3164 2003-02-14 Havoc Pennington <hp@pobox.com>
3166 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3169 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3171 * bus/driver.c: (bus_driver_handle_hello):
3173 * bus/services.c: (bus_service_lookup):
3174 Reorder message sending so we get a more sane order.
3176 * test/bus-test.c: (message_handler):
3179 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3181 * bus/driver.c: (bus_driver_send_service_deleted),
3182 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3183 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3184 (bus_driver_send_welcome_message),
3185 (bus_driver_handle_list_services),
3186 (bus_driver_handle_acquire_service),
3187 (bus_driver_handle_service_exists):
3188 * dbus/dbus-bus.c: (dbus_bus_register_client),
3189 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3190 * dbus/dbus-errors.c: (dbus_result_to_string):
3191 * dbus/dbus-errors.h:
3192 * dbus/dbus-message.c: (dbus_message_append_args),
3193 (dbus_message_append_args_valist), (dbus_message_get_args),
3194 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3195 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3196 (dbus_message_iter_get_byte_array),
3197 (dbus_message_iter_get_string_array), (message_iter_test),
3198 (check_message_handling), (_dbus_message_test):
3199 * dbus/dbus-message.h:
3200 * test/bus-test.c: (main):
3201 Change fields to arguments in messages, so that they won't be
3202 confused with header fields.
3204 * glib/test-dbus-glib.c: (main):
3205 Remove append_fields from hello message.
3207 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3209 * dbus/dbus-errors.c:
3210 * dbus/dbus-message.c:
3211 * dbus/dbus-string.c:
3212 Documentation fixes.
3214 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3216 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3218 Implement support for timeouts in dbus-glib.
3220 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3222 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3223 * dbus/dbus-message.c: (process_test_subdir):
3224 * test/break-loader.c: (find_breaks_based_on):
3225 Plug some memory leaks.
3227 2003-02-13 Richard Hult <rhult@codefactory.se>
3229 * bus/main.c: Fix build.
3231 * dbus/dbus-errors.h:
3232 * dbus/dbus-errors.c: Fix copyright for Anders.
3234 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3239 * bus/connection.c: (bus_connection_foreach):
3242 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3243 (unescape_string), (new_section), (parse_section_start),
3244 (parse_key_value), (report_error), (bus_desktop_file_load),
3245 (bus_desktop_file_get_string):
3246 * bus/desktop-file.h:
3247 Use DBusError for error reporting.
3249 * bus/dispatch.c: (send_one_message),
3250 (bus_dispatch_message_handler):
3251 * bus/driver.c: (bus_driver_send_service_deleted),
3252 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3253 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3254 (bus_driver_send_welcome_message),
3255 (bus_driver_handle_list_services),
3256 (bus_driver_handle_acquire_service),
3257 (bus_driver_handle_service_exists):
3258 * bus/loop.c: (bus_loop_run):
3260 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3262 * bus/utils.c: (bus_wait_for_memory):
3264 New files with general utility functions.
3266 * dbus/dbus-internals.h:
3267 Remove _DBUS_HANDLE_OOM.
3269 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3271 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3272 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3273 * dbus/dbus-errors.h:
3274 Add DBusError structure.
3276 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3278 * test/data/valid-messages/standard-acquire-service.message:
3279 * test/data/valid-messages/standard-hello.message:
3280 * test/data/valid-messages/standard-list-services.message:
3281 * test/data/valid-messages/standard-service-exists.message:
3282 Add some standard messages.
3284 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3286 * bus/driver.c: (bus_driver_send_welcome_message),
3287 (bus_driver_handle_list_services),
3288 (bus_driver_handle_acquire_service),
3289 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3290 Update for API changes in libdbus.
3292 * dbus/dbus-message.c: (dbus_message_new_reply):
3293 * dbus/dbus-message.h:
3294 Remove the name argument. The spec states that replies shouldn't
3297 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3299 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3300 (report_error), (bus_desktop_file_load), (lookup_section),
3301 (lookup_line), (bus_desktop_file_get_raw),
3302 (bus_desktop_file_get_string):
3303 * bus/desktop-file.h:
3304 Some fixes, and new functions for getting a key value from a section.
3306 2003-02-13 Havoc Pennington <hp@pobox.com>
3308 * test/data/auth/fail-after-n-attempts.auth-script: new test
3310 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3313 2003-02-13 Havoc Pennington <hp@pobox.com>
3315 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3316 dbus_credentials_match were backward
3318 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3319 NO_CREDENTIALS and ROOT_CREDENTIALS
3321 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3322 into here. Never process more commands after we've reached an
3323 end state; store further data as unused bytes.
3325 * test/data/auth/*: add more auth tests
3327 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3328 command to match exact string and EXPECT_UNUSED to match unused
3331 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3333 2003-02-12 Havoc Pennington <hp@pobox.com>
3335 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3336 \r off of popped lines
3338 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3341 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3344 2003-02-12 Havoc Pennington <hp@pobox.com>
3346 * dbus/Makefile.am: remove break-loader from the build, since it
3349 * configure.in: add --enable-gcov to turn on coverage profiling
3350 flags and disable optimization
3352 2003-02-10 Havoc Pennington <hp@pobox.com>
3354 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3355 initial cut at test framework for DBusAuth from laptop.
3356 Doesn't quite work yet but it compiles and I need to get
3357 it off the 266mhz laptop. ;-)
3359 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3360 fix a memleak in error case
3362 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3365 * bus/desktop-file.c:
3366 * bus/desktop-file.h:
3367 Add a desktop file parser.
3369 2003-02-11 Zack Rusin <zack@kde.org>
3371 * qt/message.[h|cpp]: sample implementation
3372 of the KDE wrapper for DBusMessage
3374 2003-02-09 Zack Rusin <zack@kde.org>
3376 * test/bus-test.c: make_it_compile
3377 * doc/dbus-specification.sgml: minimal semantic fix
3379 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3385 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3388 * dbus/dbus-break-loader.c:
3390 * test/break-loader.c:
3391 Move dbus-break-loader to test/ and rename it to break-loader.
3393 2003-02-02 Havoc Pennington <hp@pobox.com>
3395 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3396 for code to manage cookies in your home directory
3398 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3400 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3401 to authenticate, then disconnect the client.
3403 2003-02-03 Alexander Larsson <alexl@redhat.com>
3405 * dbus/dbus-message.c (dbus_message_append_fields):
3408 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3410 * doc/dbus-specification.sgml:
3411 Update address format section.
3413 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3416 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3417 (message_handler), (new_connection_callback), (loop_quit),
3421 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3423 * bus/driver.c: (bus_driver_handle_service_exists):
3424 Simplify the code a bit.
3426 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3429 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3432 Add libdbus-daemon.la and link to it.
3434 2003-02-01 James Willcox <jwillcox@gnome.org>
3436 * bus/driver.c: (bus_driver_handle_own_service):
3437 Actually include the service reply code in the message.
3439 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3441 * bus/driver.c: (bus_driver_handle_service_exists):
3442 Don't unref the incoming message.
3444 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3446 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3448 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3450 * dbus/dbus-server.c: (dbus_server_listen):
3451 * dbus/dbus-transport.c: (_dbus_transport_open):
3452 ifdef out the calls to the debug transport and server.
3454 2003-02-02 Alexander Larsson <alexl@redhat.com>
3456 * dbus/dbus-watch.c (dbus_watch_get_flags):
3457 Add note in the docs that ERROR or HANGUP won't be returned
3458 and are assumed always on.
3460 * glib/dbus-gmain.c (add_watch):
3461 Always add IO_ERR | IO_HUP
3463 * dbus/dbus-message.h:
3464 Add semicolon after dbus_message_iter_get_string_array().
3465 Makes qt code build again
3467 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3469 * bus/driver.c: (create_unique_client_name),
3470 (bus_driver_handle_hello):
3471 Don't take a name, just use a numeric id to identify
3475 * dbus/dbus-bus.c: (dbus_bus_register_client),
3476 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3478 Add new convenience functions for communicating with the bus.
3480 * dbus/dbus-message.h:
3482 * dbus/dbus-protocol.h:
3485 2003-02-01 Alexander Larsson <alexl@redhat.com>
3487 * dbus/dbus-message.c (dbus_message_append_fields):
3488 Add some more doc comments.
3490 2003-02-01 Havoc Pennington <hp@pobox.com>
3492 * dbus/dbus-break-loader.c (randomly_modify_length): change
3493 a 4-byte value in the message as if it were a length
3495 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3496 execute bit on saved files
3498 2003-02-01 Havoc Pennington <hp@pobox.com>
3500 * dbus/dbus-break-loader.c (main): new program to find messages
3501 that break the loader.
3503 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3504 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3506 * dbus/dbus-string.c (_dbus_string_set_byte): new
3508 2003-01-31 Havoc Pennington <hp@pobox.com>
3510 * dbus/dbus-message.c: refactor the test code to be more general,
3511 in preparation for writing a "randomly permute test cases to
3512 try to break the loader" program.
3514 2003-01-31 Havoc Pennington <hp@pobox.com>
3516 * doc/dbus-specification.sgml: work on the specification
3518 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3519 the protocol version of the message.
3521 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3522 no longer specifies that.
3523 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3526 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3527 "break" for DBUS_TYPE_NIL, remove @todo
3529 2003-01-31 Havoc Pennington <hp@pobox.com>
3531 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3532 just set_is_error/get_is_error as this is a commonly-used
3533 function, and write docs.
3535 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3537 * dbus/dbus-address.c: (dbus_address_entry_free):
3538 Free key and value lists.
3540 * dbus/dbus-internals.c: (_dbus_type_to_string):
3541 Add the types we didn't have.
3543 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3544 (_dbus_marshal_validate_arg):
3547 * dbus/dbus-message.c: (dbus_message_set_sender):
3548 Remove todo about being able to set sender to NULL.
3550 (dbus_message_set_is_error_reply),
3551 (dbus_message_get_is_error_reply):
3552 * dbus/dbus-message.h:
3555 * dbus/dbus-protocol.h:
3556 Add error reply flag.
3558 * test/data/valid-messages/opposite-endian.message:
3559 Add NIL type to test.
3561 2003-01-31 Havoc Pennington <hp@pobox.com>
3563 * doc/dbus-specification.sgml: fully specify the header. Add
3564 flags and major protocol version, and change header/body len to
3567 * dbus/dbus-message-builder.c (append_saved_length): append length
3570 * dbus/dbus-message.c (dbus_message_create_header): change header
3571 length and body length to unsigned. Add the new fields from the
3573 (_dbus_message_loader_return_buffer): unsigned header/body len
3575 2003-01-30 Havoc Pennington <hp@pobox.com>
3577 * dbus/dbus-auth.c: rework to use only REJECTED, no
3580 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3581 use REJECTED, suggested by Mark McLoughlin
3583 2003-01-30 Havoc Pennington <hp@pobox.com>
3585 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3586 a better way to report errors here. e.g. "unix address lacks
3587 path" or something. also "no such file" when the path doesn't
3590 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3592 (dbus_parse_address): add @todo about documenting address format,
3593 and allowing , and ; to be escaped
3595 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3598 Add dbus-address.[ch]
3600 * dbus/dbus-address.c: (dbus_address_entry_free),
3601 (dbus_address_entries_free), (create_entry),
3602 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3603 (dbus_parse_address), (_dbus_address_test):
3604 * dbus/dbus-address.h:
3605 New files for dealing with address parsing.
3607 * dbus/dbus-connection.c:
3608 Document timeout functions.
3610 * dbus/dbus-message.c:
3611 Document dbus_message_new_from_message.
3613 * dbus/dbus-server-debug.c:
3616 * dbus/dbus-server.c: (dbus_server_listen):
3617 Parse address and use correct server implementation.
3619 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3620 * dbus/dbus-string.h:
3621 New function with test.
3623 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3627 * dbus/dbus-transport-debug.c:
3630 * dbus/dbus-transport.c: (_dbus_transport_open):
3631 Parse address and use correct transport implementation.
3633 2003-01-30 Havoc Pennington <hp@pobox.com>
3635 * dbus/dbus-message.c: use message->byte_order instead of
3636 DBUS_COMPILER_BYTE_ORDER throughout.
3637 (dbus_message_create_header): pad header to align the
3638 start of the body of the message to 8-byte boundary
3640 * dbus/dbus-marshal.h: make all the demarshalers take const
3641 DBusString arguments.
3643 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3644 validate message args here, so we don't have to do slow validation
3645 later, and so we catch bad messages as they are incoming. Also add
3646 better checks on header_len and body_len. Also fill in
3649 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3650 implemented properly)
3651 (_dbus_string_validate_nul): new function to check all-nul
3653 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3654 get_arg_end_pos and remove all validation
3655 (_dbus_marshal_validate_arg): actually do validation here.
3657 2003-01-29 Havoc Pennington <hp@pobox.com>
3659 * dbus/dbus-message.c (check_message_handling): fix assertion
3660 failure on set_client_serial
3662 2003-01-28 Havoc Pennington <hp@pobox.com>
3664 * dbus/dbus-server-debug.c: Add doc section comments
3666 * dbus/dbus-transport-debug.c: add doc section comments
3668 2003-01-28 Havoc Pennington <hp@redhat.com>
3670 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3671 the reverse order from how I had it
3672 (_dbus_string_base64_encode): reverse encoding order. I was
3673 basically byteswapping everything during encoding.
3675 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3677 * dbus/dbus-connection-internal.h:
3678 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3679 (_dbus_connection_remove_timeout):
3680 Add functions for adding and removing timeouts.
3682 * dbus/dbus-message.c: (dbus_message_new_from_message):
3683 Add new function that takes a message and creates an exact
3684 copy of it, but with the refcount set to 1.
3685 (check_message_handling):
3688 * dbus/dbus-server-protected.h:
3689 * dbus/dbus-server.c: (_dbus_server_init_base),
3690 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3691 (dbus_server_set_timeout_functions):
3692 (_dbus_server_remove_timeout):
3693 New functions so that a server can add and remove timeouts.
3695 (dbus_server_listen):
3696 Add commented out call to dbus_server_debug_new.
3698 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3699 Actually set the handler, doh.
3701 * dbus/dbus-transport.c: (_dbus_transport_open):
3702 Add commented out call to dbus_transport_debug_client_new.
3705 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3707 2003-01-28 Havoc Pennington <hp@pobox.com>
3709 * dbus/dbus-message.c (check_message_handling): function to check
3710 on the loaded message, iterates over it etc.
3712 2003-01-28 Havoc Pennington <hp@pobox.com>
3714 * test/Makefile.am (dist-hook): fix make distdir
3716 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3718 2003-01-27 Havoc Pennington <hp@pobox.com>
3720 * dbus/dbus-mempool.c (time_for_size): replace printf with
3723 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3724 empty lines; fix the SAVE_LENGTH stuff to be
3725 START_LENGTH/END_LENGTH so it actually works; couple other
3728 * test/Makefile.am (dist-hook): add dist-hook for .message files
3730 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3731 can be constant or locked.
3732 (_dbus_string_free): allow freeing a const string as
3735 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3737 * dbus/dbus-test-main.c (main): take an argument which is the
3738 directory containing test data
3740 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3741 argument to this and load all the messages in test/data/
3742 checking that they can be loaded or not loaded as appropriate.
3744 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3746 * bus/dispatch.c: (bus_dispatch_message_handler):
3747 Dispatch messages sent to services.
3749 * bus/driver.c: (bus_driver_send_service_deleted),
3750 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3751 (bus_driver_send_service_acquired):
3752 Add helper functions for sending service related messages.
3754 (bus_driver_send_welcome_message):
3755 Send HELLO_REPLY instead of WELCOME.
3757 (bus_driver_handle_list_services):
3758 Send LIST_SERVICES_REPLY instead of SERVICES.
3760 (bus_driver_handle_own_service),
3761 (bus_driver_handle_service_exists):
3762 New message handlers.
3764 (bus_driver_handle_message):
3765 Invoke new message handlers.
3767 (bus_driver_remove_connection):
3768 Don't remove any services here since that's done automatically
3769 by bus_service_remove_owner now.
3772 New function signatures.
3774 * bus/services.c: (bus_service_add_owner):
3775 Send ServiceAcquired message if we're the only primary owner.
3777 (bus_service_remove_owner):
3778 Send ServiceAcquired/ServiceLost messages.
3780 (bus_service_set_prohibit_replacement),
3781 (bus_service_get_prohibit_replacement):
3782 Functions for setting prohibit replacement.
3784 (bus_service_has_owner):
3785 New function that checks if a connection is in the owner queue of
3789 Add new function signatures.
3791 * dbus/dbus-list.c: (_dbus_list_test):
3792 Add tests for _dbus_list_remove_last and traversing the list backwards.
3795 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3796 go any further, so return NULL then.
3798 * dbus/dbus-protocol.h:
3799 Add new messages, service flags and service replies.
3801 2003-01-26 Havoc Pennington <hp@pobox.com>
3803 * dbus/dbus-message-builder.c: implement, completely untested.
3805 * test/data/*: add data to be used in testing.
3806 ".message" files are our simple loadable text format.
3807 ".message-raw" will be binary dumps of messages.
3809 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3811 2003-01-26 Havoc Pennington <hp@pobox.com>
3813 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3815 * dbus/dbus-errors.c (dbus_result_to_string): add
3818 * dbus/dbus-message-builder.c: new file, will contain code to load
3819 up messages from files. Not implemented yet.
3821 2003-01-26 Havoc Pennington <hp@pobox.com>
3823 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3824 the sender by setting to NULL
3826 2003-01-26 Havoc Pennington <hp@pobox.com>
3828 The unit tests pass, but otherwise untested. If it breaks, the
3829 tests should have been better. ;-)
3831 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3834 * dbus/dbus-message.c: redo everything so we maintain
3835 message->header as the only copy of the various fields.
3836 This avoids the possibility of out-of-memory in some cases,
3837 for example dbus_message_lock() can't run out of memory anymore,
3838 and avoids extra copying. Figured I may as well go ahead and do
3839 this since it was busted for dbus_message_lock to not return
3840 failure on OOM, and dbus_message_write_header was totally
3841 unchecked for OOM. Also fixed some random other bugs.
3843 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3844 that strings are nul-terminated. Also, end_pos can be equal
3845 to string length just not greater than, I think.
3846 (_dbus_marshal_set_int32): new function
3847 (_dbus_marshal_set_uint32): new function
3848 (_dbus_marshal_set_string): new function
3850 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3851 a warning, init timeout_list to NULL
3852 (dbus_connection_send_message): don't use uninitialized variable
3855 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3857 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3859 * bus/driver.c: (bus_driver_handle_hello),
3860 (bus_driver_send_welcome_message):
3863 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3865 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3866 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3867 (dbus_connection_unref):
3868 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3869 * dbus/dbus-message.c: (dbus_message_unref),
3872 (dbus_message_get_fields):
3873 Remove debugging printout.
3875 (_dbus_message_loader_return_buffer):
3876 Don't store the header string.
3878 (_dbus_message_test):
3881 2003-01-26 Richard Hult <rhult@codefactory.se>
3883 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3884 the file descriptor list, since it can change under us.
3886 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3888 * glib/dbus-gmain.c: (dbus_connection_prepare),
3889 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3890 (remove_watch), (dbus_connection_hookup_with_g_main):
3891 Rewrite the glib handling to use its own GSource instead of a
3892 GIOChannel so we can catch messages put in the queue while waiting
3895 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3898 * bus/connection.c: (connection_disconnect_handler),
3899 (connection_watch_callback), (bus_connection_setup):
3900 * bus/dispatch.c: (send_one_message),
3901 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3902 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3904 * bus/driver.c: (bus_driver_send_service_deleted),
3905 (bus_driver_send_service_created), (bus_driver_handle_hello),
3906 (bus_driver_send_welcome_message),
3907 (bus_driver_handle_list_services), (bus_driver_remove_connection),
3908 (bus_driver_handle_message):
3910 Refactor code, put the message dispatching in its own file. Use
3911 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3914 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3916 * dbus/dbus-internals.h:
3917 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3919 * dbus/dbus-message.c: (dbus_message_get_sender):
3920 * dbus/dbus-message.h:
3921 Implement dbus_message_get_sender.
3923 * dbus/dbus-protocol.h:
3924 Add message and service defines.
3926 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3928 * dbus/dbus-connection.c: (dbus_connection_send_message):
3929 * dbus/dbus-message-internal.h:
3930 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
3931 (dbus_message_write_header):
3932 Remove _dbus_messag_unlock and don't set the client serial on a
3933 message if one already exists.
3935 2003-01-24 Havoc Pennington <hp@pobox.com>
3937 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
3940 * bus/driver.c (bus_driver_handle_list_services): fix a leak
3943 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3945 * dbus/dbus-list.c: (alloc_link), (free_link):
3946 Use a memory pool for the links.
3948 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3950 * bus/connection.c: (bus_connection_foreach):
3952 Add new bus_connection_foreach function.
3954 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
3955 Add function that broadcasts a message to all clients.
3957 (bus_driver_send_service_created), (bus_driver_handle_hello),
3958 (bus_driver_send_welcome_message),
3959 (bus_driver_handle_list_services), (bus_driver_message_handler):
3960 Implement functions that take care of listing services, and notifying
3961 clients when new services are created.
3963 * bus/services.c: (bus_services_list):
3965 Add new function that returns an array of strings with the currently
3966 registered services.
3969 * glib/dbus-gmain.c:
3970 Update copyright year.
3972 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3974 * dbus/dbus-connection.c: (dbus_connection_send_message):
3975 Unlock the message in case it was sent earlier.
3977 (dbus_connection_send_message_with_reply_and_block):
3978 Remove the reply message from the list.
3980 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3981 Set array_len and new_pos correctly.
3983 (_dbus_marshal_test):
3984 Remove debug output.
3986 * dbus/dbus-message-internal.h:
3987 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
3988 New function that returns the reply serial.
3990 (_dbus_message_unlock):
3991 New function that unlocks a message and resets its header.
3993 (dbus_message_append_string_array),
3994 (dbus_message_get_fields_valist),
3995 (dbus_message_iter_get_field_type),
3996 (dbus_message_iter_get_string_array),
3997 (dbus_message_get_fields),
3998 (dbus_message_append_fields_valist):
3999 Handle string arrays.
4001 (dbus_message_set_sender):
4002 Make this function public since the bus daemon needs it.
4004 (decode_header_data):
4005 Set the reply serial to -1 initially.
4007 * dbus/dbus-message.h:
4008 Add dbus_message_set_sender.
4010 2003-01-24 Havoc Pennington <hp@pobox.com>
4012 * doc/dbus-specification.sgml: add some stuff
4014 2003-01-22 Havoc Pennington <hp@pobox.com>
4016 * doc/dbus-specification.sgml: Start to document the protocol.
4018 2003-01-22 Havoc Pennington <hp@pobox.com>
4020 * dbus/dbus-connection.c
4021 (dbus_connection_send_message_with_reply_and_block): add some @todo
4023 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
4025 2003-01-21 Havoc Pennington <hp@pobox.com>
4027 (patch untested because can't compile)
4029 * bus/driver.c (create_unique_client_name): make this function
4030 never recycle client names. Also, caller should initialize
4033 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
4035 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4037 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4038 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4039 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
4040 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
4041 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4042 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4043 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
4044 * dbus/dbus-marshal.h:
4045 * dbus/dbus-protocol.h:
4046 Add support for marshalling and demarshalling integer, double
4049 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4054 * bus/connection.c: (connection_disconnect_handler):
4055 Remove the connection from the bus driver's list.
4057 (connection_watch_callback): Dispatch messages.
4059 (free_connection_data): Free connection name.
4061 (bus_connection_setup): Add connection to the bus driver's list.
4062 (bus_connection_remove_owned_service):
4063 (bus_connection_set_name), (bus_connection_get_name):
4064 Add functions for setting and getting the connection's name.
4067 Add function headers.
4069 * bus/driver.c: (create_unique_client_name),
4070 (bus_driver_handle_hello_message),
4071 (bus_driver_send_welcome_message), (bus_driver_message_handler),
4072 (bus_driver_add_connection), (bus_driver_remove_connection):
4075 * bus/services.c: (bus_service_free):
4077 New file that handles communication and registreation with the bus
4080 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4082 * dbus/dbus-connection.c: (dbus_connection_send_message):
4083 Add a new client_serial parameter.
4085 (dbus_connection_send_message_with_reply):
4086 Remove a @todo since we've implemented the blocking function.
4088 (dbus_connection_send_message_with_reply_and_block):
4089 New function that sends a message and waits for a reply and
4090 then returns the reply.
4092 * dbus/dbus-connection.h:
4095 * dbus/dbus-errors.c: (dbus_result_to_string):
4096 * dbus/dbus-errors.h:
4097 Add new DBUS_RESULT.
4099 * dbus/dbus-message-internal.h:
4100 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4101 (_dbus_message_set_sender), (dbus_message_write_header),
4102 (dbus_message_new_reply), (decode_header_data),
4103 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4104 * dbus/dbus-message.h:
4105 Add new functions that set the reply serial and sender.
4106 Also marshal and demarshal them correctly and add test.
4108 * dbus/dbus-protocol.h:
4109 Add new DBUS_MESSAGE_TYPE_SENDER.
4112 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4113 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4114 (dbus_connection_hookup_with_g_main):
4115 * glib/test-dbus-glib.c: (main):
4116 Rewrite to use GIOChannel and remove the GSource crack.
4118 * test/echo-client.c: (main):
4119 * test/watch.c: (check_messages):
4120 Update for changed APIs
4122 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4124 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4126 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4127 Create a DBusTimeoutList.
4128 (dbus_connection_set_timeout_functions): Add new function to
4129 set timeout callbacks
4131 * dbus/dbus-connection.h: Add public DBusTimeout API.
4133 * dbus/dbus-message.c: (dbus_message_get_service):
4134 * dbus/dbus-message.h: New function.
4136 * dbus/dbus-server.c: Fix small doc typo.
4138 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4140 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4142 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4143 of the string, just as long as specified.
4145 2003-01-19 Havoc Pennington <hp@pobox.com>
4147 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4150 * dbus/dbus-server.c (dbus_server_set_max_connections)
4151 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4152 keep track of current number of connections, and add API for
4153 setting a max (but haven't implemented enforcing the max yet)
4155 2003-01-18 Havoc Pennington <hp@pobox.com>
4157 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4158 reading/writing if read_watch != NULL or write_watch != NULL.
4160 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4161 the message loader code to actually load message->header and
4162 message->body into the newly-created message.
4164 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4167 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4168 (dbus_connection_get_max_message_size)
4169 (dbus_connection_set_max_live_messages_size)
4170 (dbus_connection_get_max_live_messages_size): implement some
4171 resource limitation functions
4173 * dbus/dbus-resources.c: new file implementing some of the
4174 resource limits stuff
4176 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4177 missing docs, add @todo to handle OOM etc.
4179 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4182 2003-01-18 Havoc Pennington <hp@pobox.com>
4184 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4185 connection if it hasn't been already.
4187 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4188 replace with DisconnectFunction.
4190 2003-01-18 Havoc Pennington <hp@pobox.com>
4192 Building --disable-verbose-mode --disable-asserts --disable-tests
4193 cuts the library from 112K to 45K or so
4195 * configure.in: check for varargs macro support,
4196 add --enable-verbose-mode, --enable-asserts.
4198 * dbus/dbus-internals.h (_dbus_assert): support
4200 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4202 2003-01-18 Havoc Pennington <hp@pobox.com>
4204 * dbus/dbus-test.c: include config.h so that tests actually run
4206 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4207 so the failure mode when that assumption fails will be plenty
4210 2003-01-18 Havoc Pennington <hp@pobox.com>
4212 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4214 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4217 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4218 since we don't want to use those in make check
4220 2003-01-15 Havoc Pennington <hp@redhat.com>
4226 2003-01-15 Havoc Pennington <hp@redhat.com>
4228 * test/Makefile.am: fix so that test source code ends up in the
4229 distribution on make distcheck
4231 2003-01-15 Havoc Pennington <hp@redhat.com>
4237 2003-01-15 Havoc Pennington <hp@redhat.com>
4239 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4240 fix build when --disable-tests
4242 * Makefile.am (EXTRA_DIST): put HACKING in here
4244 * HACKING: document procedure for making a tarball release.
4246 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4248 * bus/connection.c: (connection_error_handler),
4249 (bus_connection_setup):
4250 * bus/main.c: (main):
4251 Make sure that the DBusConnectionData struct is NULLed
4252 out to prevent a segfault.
4254 * dbus/dbus-errors.c: (dbus_result_to_string):
4255 * dbus/dbus-errors.h:
4256 * dbus/dbus-message.c: (dbus_message_get_fields),
4257 (dbus_message_get_fields_valist), (_dbus_message_test):
4258 * dbus/dbus-message.h:
4259 Make dbus_message_get_fields return a result code so we can
4260 track invalid fields as well as oom.
4262 2003-01-11 Havoc Pennington <hp@pobox.com>
4264 * configure.in: change --enable-test/--enable-ansi action-if-given
4265 to enable_foo=$enableval instead of enable_foo=yes
4267 2003-01-08 Havoc Pennington <hp@pobox.com>
4269 * dbus/dbus-string.c (_dbus_string_align_length): new function
4271 * dbus/dbus-test-main.c: move main() for test app here
4273 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4274 symbol to run tests, because dbus-test isn't in the main
4277 Code review nitpicks.
4279 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4280 for people with narrow emacs ;-). Assert client_serial was filled
4281 in. Assert message->name != NULL.
4282 (dbus_message_append_fields): have "first_field_type" arg separate
4283 from va list, needed for C++ binding that also uses varargs IIRC
4284 and helps with type safety
4285 (dbus_message_new): add @todo about using DBusString to store
4286 service/name internally
4287 (dbus_message_new): don't leak ->service and ->name on OOM later
4289 (dbus_message_unref): free the service name
4290 (dbus_message_get_fields): same change to varargs
4291 i.e. first_field_type
4292 (_dbus_message_loader_return_buffer): assert that the message data
4293 is aligned (if not it's a bug in our code). Put in verbose griping
4294 about why we set corrupted = TRUE.
4295 (decode_header_data): add FIXME that char* is evil. Was going to
4296 add FIXME about evil locale-specific string.h strncmp, but just
4297 switched to wacky string-as-uint32 optimization. Move check for
4298 "no room for field name" above get_const_data_len() to avoid
4299 assertion failure in get_const_data_len if we have trailing 2
4300 bytes or the like. Check for service and name fields being
4301 provided twice. Don't leak service/name on error. Require field
4302 names to be aligned to 4 bytes.
4304 * dbus/dbus-marshal.c: move byte swap stuff to header
4305 (_dbus_pack_int32): uscore-prefix
4306 (_dbus_unpack_int32): uscore-prefix
4307 (_dbus_unpack_uint32): export
4308 (_dbus_demarshal_string): add @todo complaining about use of
4310 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4311 handling allowing corrupt data to go unchecked
4313 2003-01-08 Havoc Pennington <hp@redhat.com>
4315 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4316 to the select() as needed for authentication. (should be using
4317 _dbus_poll() not select, but for another day)
4319 * dbus/dbus.h: include dbus/dbus-protocol.h
4321 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4323 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4326 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4328 * dbus/dbus-internals.c: (_dbus_type_to_string):
4329 New function that returns a string describing a type.
4331 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4332 * dbus/dbus-marshal.h:
4333 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4334 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4335 (dbus_message_iter_get_byte_array):
4336 * dbus/dbus-message.h:
4337 Add new convenience functions for appending and getting message fields.
4338 Also add demarshalling routines for byte arrays.
4340 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4342 * dbus/dbus-connection-internal.h:
4343 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4344 (_dbus_connection_get_next_client_serial),
4345 (dbus_connection_send_message):
4346 * dbus/dbus-internals.h:
4347 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4348 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4349 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4350 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4351 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4352 (_dbus_verbose_bytes), (_dbus_marshal_test):
4353 * dbus/dbus-marshal.h:
4354 * dbus/dbus-message-internal.h:
4355 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4356 (dbus_message_write_header), (_dbus_message_lock),
4357 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4358 (dbus_message_get_name), (dbus_message_append_int32),
4359 (dbus_message_append_uint32), (dbus_message_append_double),
4360 (dbus_message_append_string), (dbus_message_append_byte_array),
4361 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4362 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4363 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4364 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4365 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4366 (decode_header_data), (_dbus_message_loader_return_buffer),
4367 (message_iter_test), (_dbus_message_test):
4368 * dbus/dbus-message.h:
4369 * dbus/dbus-protocol.h:
4370 * dbus/dbus-test.c: (main):
4372 * glib/test-dbus-glib.c: (message_handler), (main):
4373 * test/echo-client.c: (main):
4374 * test/watch.c: (check_messages):
4375 Make messages sendable and receivable for real.
4377 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4379 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4380 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4381 * dbus/dbus-message.c: (dbus_message_append_int32),
4382 (dbus_message_append_uint32), (dbus_message_append_double),
4383 (dbus_message_append_string), (dbus_message_append_byte_array):
4384 Handle OOM restoration.
4386 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4388 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4389 (_dbus_demarshal_string), (_dbus_marshal_test):
4390 * dbus/dbus-marshal.h:
4391 * dbus/dbus-message.c: (dbus_message_get_name),
4392 Document these functions.
4394 (dbus_message_append_int32), (dbus_message_append_uint32),
4395 (dbus_message_append_double), (dbus_message_append_string),
4396 (dbus_message_append_byte_array):
4397 * dbus/dbus-message.h:
4398 Add functions for adding message fields of different types.
4400 * dbus/dbus-protocol.h:
4401 Add the different types.
4403 2003-01-05 Havoc Pennington <hp@pobox.com>
4405 * bus/connection.c: implement routines for handling connections,
4406 first thing is keeping a list of owned services on each connection
4407 and setting up watches etc.
4409 * bus/services.c: implement a mapping from service names to lists
4412 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4414 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4415 to use static mutexes for global data
4417 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4418 collection of functions to set/get application-specific data
4419 on the DBusConnection.
4421 2003-01-04 Havoc Pennington <hp@pobox.com>
4423 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4424 (_dbus_poll): new function
4426 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4429 * bus/loop.c: initial code for the daemon main loop
4431 2003-01-04 Havoc Pennington <hp@pobox.com>
4433 * test/watch.c (error_handler): make it safe if the error handler
4434 is called multiple times (if we s/error handler/disconnect
4435 handler/ we should just guarantee it's called only once)
4437 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4438 error handler on disconnect (it's quite possible we should
4439 just change the error handler to a "disconnect handler," I'm
4440 not sure we have any other meaningful errors)
4442 * configure.in: check for getpwnam_r
4444 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4445 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4446 mechanism as in SASL spec, using socket credentials
4448 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4449 (_dbus_send_credentials_unix_socket): new function
4451 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4453 (_dbus_write): only check errno if <0 returned
4454 (_dbus_write_two): ditto
4456 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4458 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4459 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4460 (_dbus_marshal_test):
4461 * dbus/dbus-marshal.h:
4462 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4463 to _dbus_marshal_utf8_string. Also fix some tests.
4465 2002-12-28 Harri Porten <porten@kde.org>
4467 * configure.in: added check for C++ compiler and a very cheesy
4468 check for the Qt integration
4470 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4472 * qt/Makefile.am: added
4474 * qt/.cvsignore: added
4476 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4477 latter, added #ifdef QT_THREAD_SUPPORT guard.
4479 * dbus/Makefile.am: added missing headers for make dist
4481 2002-12-28 Kristian Rietveld <kris@gtk.org>
4483 * dbus/Makefile.am: fixup export-symbols-regex.
4485 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4487 * acinclude.m4: Add this file and put the
4488 PKG_CHECK_MODULE macro in it.
4490 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4492 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4493 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4494 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4495 (_dbus_marshal_test):
4496 Make the demarshalling routines align the pos argument.
4497 Add string marshalling tests and fix the obvious bugs
4500 2002-12-26 Havoc Pennington <hp@pobox.com>
4502 * dbus/dbus-auth.c: fixes fixes fixes
4504 * dbus/dbus-transport-unix.c: wire up support for
4505 encoding/decoding data on the wire
4507 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4508 (_dbus_auth_decode_data): append to target string
4509 instead of nuking it.
4511 2002-12-26 Havoc Pennington <hp@pobox.com>
4513 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4514 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4517 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4518 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4519 now). Main point is because I wanted unpack_uint32 to implement
4521 (_dbus_verbose_bytes): new function
4523 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4525 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4526 mechanism to handle a corrupt message stream
4527 (_dbus_message_loader_new): fix preallocation to only prealloc,
4530 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4531 (_dbus_string_test): enhance tests for copy/move and fix the
4534 * dbus/dbus-transport-unix.c: Hold references in more places to
4535 avoid reentrancy problems
4537 * dbus/dbus-transport.c: ditto
4539 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4540 leak reference count in no-message case
4542 * test/watch.c (do_mainloop): handle adding/removing watches
4543 during iteration over the watches. Also, ref the connection/server
4544 stored on a watch, so we don't try to mangle a destroyed one.
4546 * dbus/dbus-transport-unix.c (do_authentication): perform
4549 * dbus/dbus-auth.c (get_state): add a state
4550 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4551 (_dbus_auth_get_unused_bytes): append the unused bytes
4552 to the passed in string, rather than prepend
4554 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4555 the auth conversation DBusAuth
4557 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4558 (_dbus_transport_new_for_domain_socket): when creating a
4559 transport, pass in whether it's a client-side or server-side
4560 transport so we know which DBusAuth to create
4562 2002-12-03 Havoc Pennington <hp@pobox.com>
4564 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4565 _after_ finalizing the derived members
4566 (unix_connection_set): unref watch if we fail to add it
4568 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4569 transport first, so that the connection owned by the
4570 transport will be valid as the transport finalizes.
4572 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4573 if necessary, and remove watches from the connection.
4575 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4577 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4579 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4580 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4581 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4582 (_dbus_marshal_test):
4583 * dbus/dbus-marshal.h:
4584 Add string marshal functions and have the demarshal functions
4585 return the new position.
4587 2002-12-25 Havoc Pennington <hp@pobox.com>
4589 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4590 it is a simple protocol that just maps directly to SASL.
4592 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4593 initial implementation, not actually used yet.
4595 * dbus/dbus-string.c (_dbus_string_find): new function
4596 (_dbus_string_equal): new function
4597 (_dbus_string_base64_encode): new function
4598 (_dbus_string_base64_decode): new function
4600 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4603 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4604 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4605 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4606 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4607 * dbus/dbus-marshal.h:
4608 * dbus/dbus-protocol.h:
4609 * dbus/dbus-test.c: (main):
4611 Add un-optimized marshalling/demarshalling routines.
4613 2002-12-25 Harri Porten <porten@kde.org>
4615 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4617 2002-12-24 Zack Rusin <zack@kde.org>
4619 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4620 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4623 2002-12-24 Havoc Pennington <hp@pobox.com>
4625 * glib/dbus-gthread.c: fix include
4627 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4628 I think glib API needs to change, though, as you don't
4629 want to use DBusMessageFunction, you want to use the
4630 DBusMessageHandler object. Probably
4631 dbus_connection_open_with_g_main_loop()
4632 and dbus_connection_setup_g_main_loop() or something like that
4633 (but think of better names...) that just create a connection
4634 that has watch/timeout functions etc. already set up.
4636 * dbus/dbus-connection.c
4637 (dbus_connection_send_message_with_reply): new function just to
4638 show how the message handler helps us deal with replies.
4640 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4642 * dbus/dbus-string.c (_dbus_string_test): free a string that
4645 * dbus/dbus-hash.c: use memory pools for the hash entries
4646 (rebuild_table): be more paranoid about overflow, and
4647 shrink table when we can
4648 (_dbus_hash_test): reduce number of sprintfs and write
4649 valid C89. Add tests for case where we grow and then
4650 shrink the hash table.
4652 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4654 * dbus/dbus-connection.c (dbus_connection_register_handler)
4655 (dbus_connection_unregister_handler): new functions
4657 * dbus/dbus-message.c (dbus_message_get_name): new
4659 * dbus/dbus-list.c: fix docs typo
4661 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4662 an object representing a handler for messages.
4664 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4667 * glib/dbus-gthread.c: (dbus_gthread_init):
4668 Don't use the gdbus prefix for public functions.
4670 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4674 Add GLib checks and fixup .pc files
4678 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4679 (gdbus_connection_check), (gdbus_connection_dispatch),
4680 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4681 (dbus_connection_gsource_new):
4682 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4683 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4684 * glib/test-dbus-glib.c: (message_handler), (main):
4687 2002-12-15 Harri Porten <porten@kde.org>
4689 * autogen.sh: check for libtoolize before attempting to use it
4691 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4694 * .cvsignore: ignore more stamp files
4696 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4698 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4699 without make install.
4701 2002-12-15 Havoc Pennington <hp@pobox.com>
4703 * dbus/dbus-threads.c: add thread stubs that a higher library
4704 layer can fill in. e.g. the GLib wrapper might fill them in with
4705 GThread stuff. We still need to use this thread API to
4706 thread-safe-ize the library.
4708 2002-12-12 Havoc Pennington <hp@pobox.com>
4710 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4711 below new interfaces and include fewer system headers.
4713 * dbus/dbus-sysdeps.c (_dbus_read): new function
4714 (_dbus_write): new function
4715 (_dbus_write_two): new function
4716 (_dbus_connect_unix_socket): new function
4717 (_dbus_listen_unix_socket): new function
4719 * dbus/dbus-message-internal.h: change interfaces to use
4722 2002-12-11 Havoc Pennington <hp@pobox.com>
4724 * dbus/dbus-types.h: add dbus_unichar
4726 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4728 * dbus/dbus-connection.c (dbus_connection_send_message): return
4731 * dbus/dbus-transport.c: include dbus-watch.h
4733 * dbus/dbus-connection.c: include dbus-message-internal.h
4735 * HACKING: add file with coding guidelines stuff.
4737 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4738 handling here, for security purposes (as in vsftpd). Not actually
4739 using this class yet.
4741 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4742 system/libc usage here, as in vsftpd, for ease of auditing (and
4743 should also simplify portability). Haven't actually moved all the
4744 system/libc usage into here yet.
4746 2002-11-25 Havoc Pennington <hp@pobox.com>
4748 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4749 always print the first verbose message.
4751 2002-11-24 Havoc Pennington <hp@pobox.com>
4753 * test/echo-client.c, test/echo-server.c: cheesy test
4756 * configure.in (AC_CHECK_FUNCS): check for writev
4758 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4761 * dbus/dbus-list.c (_dbus_list_foreach): new function
4763 * dbus/dbus-internals.c (_dbus_verbose): new function
4765 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4766 representing a server that listens for connections.
4768 * dbus/.cvsignore: create
4770 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4771 public API for reporting errors
4773 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4774 public object representing a connection that
4775 sends/receives messages. (Same object used for
4776 both client and server.)
4778 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4779 Basic abstraction for different kinds of stream
4780 that we might read/write messages from.
4782 2002-11-23 Havoc Pennington <hp@pobox.com>
4784 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4787 * dbus/dbus-test.c (main): add list test, and include
4788 dbus-test.h as intended
4790 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4791 (_dbus_hash_table_remove_int): return value indicates
4792 whether the entry existed to remove
4794 * dbus/dbus-list.c: add linked list utility class,
4797 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4800 2002-11-23 Havoc Pennington <hp@pobox.com>
4802 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4803 DBUS_END_DECLS to nothing, that should fix this once and for all
4805 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4807 * dbus/dbus-message.c, dbus/dbus-hash.c:
4808 add some missing @brief
4810 2002-11-23 Havoc Pennington <hp@pobox.com>
4812 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4813 to avoid confusing Doxygen
4815 * dbus/dbus-hash.c: @} not }@
4817 * dbus/dbus-message.c (struct DBusMessage): split out
4820 2002-11-23 Havoc Pennington <hp@pobox.com>
4822 * configure.in: pile on more warning flags if using gcc
4824 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4825 to document static functions
4827 * configure.in: add summary to end of configure so it
4828 looks nice and attractive
4830 * dbus/dbus-hash.c: finish implementation and write unit
4833 * configure.in: add --enable-tests to enable unit tests
4835 * dbus/dbus-test.c: test program to run unit tests
4836 for all files in dbus/*, initially runs a test for
4839 * dbus/dbus-internals.h: file to hold some internal utility stuff
4841 2002-11-22 Havoc Pennington <hp@redhat.com>
4843 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4844 "ported" away from Tcl
4846 * dbus/dbus-types.h: header for types such as dbus_bool_t
4848 2002-11-22 Havoc Pennington <hp@redhat.com>
4850 * dbus/dbus.h: fixups for doc warnings
4852 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4854 (QUIET): make it quiet so we can see warnings
4856 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4858 2002-11-22 Havoc Pennington <hp@redhat.com>
4860 * Makefile.am: include "Doxyfile" target in all-local
4862 * configure.in: generate the Doxyfile
4864 * Doxyfile.in: move Doxyfile here, so we can use
4865 configure to generate a Doxyfile with the right
4868 2002-11-22 Havoc Pennington <hp@redhat.com>
4870 * dbus/dbus-message.c: move inline docs into .c file
4872 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4873 so all docs are under doc/
4874 (MAN_EXTENSION): generate man pages. Use extension
4875 ".3dbus" which matches ".3qt" on my system,
4876 I guess this is OK, I don't know really.
4877 (FILE_PATTERNS): look for .c files not .h, makes sense
4880 2002-11-22 Havoc Pennington <hp@pobox.com>
4882 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4883 because any app can be a server, and any app can be a client,
4884 the bus is a special kind of server.
4886 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4888 * Doxyfile : adding. Still needs Makefile rules to be generated
4889 automatically (just run "doxygen" in the toplevel dir for now to
4892 * dbus/dbus-message.h : Adding sample docs (javadoc since
4893 resembles gtk-doc a little more)
4895 * dbus/dbus.h : Adding sample docs
4897 2002-11-21 Havoc Pennington <hp@redhat.com>
4899 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4900 so we can allow ourselves to include files directly,
4901 instead of having to use dbus.h
4903 * dbus/dbus.h: fill in
4905 * dbus/dbus-message.h: sketch out a sample header file.
4906 Include griping if you include it directly instead of
4909 * dbus/dbus-macros.h: new file with macros for extern "C",
4910 TRUE/FALSE, NULL, etc.
4912 * doc/file-boilerplate.c: put include guards in here
4914 2002-11-21 Havoc Pennington <hp@redhat.com>
4916 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4918 * COPYING: include the GPL as well, and license code
4919 under both AFL and GPL.
4921 2002-11-21 Havoc Pennington <hp@redhat.com>
4923 * acconfig.h: get rid of this
4925 * autogen.sh (run_configure): add --no-configure option
4927 * configure.in: remove AC_ARG_PROGRAM to make
4928 autoconf complain less. add AC_PREREQ.
4929 add AC_DEFINE third arg.
4931 2002-11-21 Anders Carlsson <andersca@codefactory.se>
4934 Fix references so we can distcheck.
4936 2002-11-21 Havoc Pennington <hp@redhat.com>
4938 * Initial module creation