1 2003-06-19 Anders Carlsson <andersca@codefactory.se>
3 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
4 from C++ (Patch by Miloslav Trmac).
6 2003-06-15 Joe Shaw <joe@assbarn.com>
8 * configure.in: Check for socklen_t.
10 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
12 * test/test-segfault.c: Add #include <sys/time.h>
14 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
17 2003-06-09 Havoc Pennington <hp@redhat.com>
19 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
20 SUN_LEN, it breaks abstract socket usage
22 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
25 2003-06-04 Havoc Pennington <hp@pobox.com>
27 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
28 using unix:abstract=/foo, and when listening in a tmpdir
29 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
31 * dbus/dbus-transport.c (_dbus_transport_open): support
34 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
35 support abstract sockets
37 * dbus/dbus-transport-unix.c
38 (_dbus_transport_new_for_domain_socket): support abstract sockets
40 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
41 toggle as an argument, implement abstract namespace support
42 (_dbus_listen_unix_socket): ditto
44 * configure.in: add --enable-abstract-sockets and implement
45 a configure check for autodetection of the right value.
47 2003-06-01 Havoc Pennington <hp@pobox.com>
49 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
50 in /tmp (though on Linux this will end up being useless,
51 when we add abstract namespace support)
53 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
56 2003-05-28 Colin Walters <walters@verbum.org>
58 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
60 2003-05-18 Anders Carlsson <andersca@codefactory.se>
62 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
64 2003-05-17 Colin Walters <walters@gnu.org>
66 * tools/dbus-send.c: Don't exit with an error code if --help was
67 passed. Default to using the session bus instead of the system
70 * tools/dbus-launch.c: Ditto.
72 * tools/dbus-monitor.c: Ditto.
74 * tools/dbus-send.1: Update with new arguments.
76 * tools/dbus-launch.c: Emit code to export variables. New
77 arguments -s and -c to specify shell syntax, and a bit of code to
78 autodetect syntax. Also, allow specifying a program to run.
80 * tools/dbus-launch.1: Update with new arguments.
82 * tools/dbus-send.1: Ditto.
84 * tools/dbus-monitor.1: Ditto.
86 2003-05-17 Havoc Pennington <hp@pobox.com>
88 * bus/config-parser.c (merge_included): merge in policies from
89 child configuration file.
91 * bus/policy.c (bus_policy_merge): function to merge two policies
94 2003-05-16 Havoc Pennington <hp@redhat.com>
96 * dbus/dbus-connection.c: disable verbose lock spew
98 * tools/dbus-send.c: add --print-reply command line option
100 * tools/dbus-print-message.h (print_message): new util function
101 shared by dbus-send and dbus-monitor
103 * tools/dbus-monitor.c (handler_func): exit on disconnect
105 * dbus/dbus-transport-unix.c (do_reading): if the transport is
106 disconnected, don't try to use the read_watch
108 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
109 so we can find this bug more easily
111 2003-05-16 Havoc Pennington <hp@redhat.com>
113 * bus/policy.c (free_rule_list_func): avoid a crash when passed
114 NULL as DBusHashTable is annoyingly likely to do.
116 2003-05-16 Colin Walters <walters@verbum.org>
118 * tools/dbus-monitor.c: Add --session argument and usage()
121 * tools/dbus-monitor.1: Update with new --session arg.
123 * bus/Makefile.am (install-data-hook): Create
124 $(libdir)/dbus-1.0/services so that the session bus is happy.
126 2003-05-15 Havoc Pennington <hp@redhat.com>
128 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
129 on non-x86. ifdef's are evil.
131 2003-05-15 Havoc Pennington <hp@redhat.com>
137 * bus/Makefile.am (initddir): apparently we are supposed to put
138 init scripts in /etc/rc.d/init.d not /etc/init.d
140 * bus/Makefile.am: remove the "you must --enable-tests to make
141 check" as it broke distcheck
143 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
145 2003-05-13 James Willcox <jwillcox@gnome.org>
148 * bus/activation.c: (bus_activation_service_created),
149 (bus_activation_activate_service):
150 * bus/driver.c: (bus_driver_send_service_deleted),
151 (bus_driver_send_service_created), (bus_driver_send_service_lost),
152 (bus_driver_send_service_acquired),
153 (bus_driver_send_welcome_message),
154 (bus_driver_handle_list_services):
155 * bus/session.conf.in:
156 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
157 (dbus_bus_service_exists), (dbus_bus_activate_service):
160 Add some convenience API which lets you activate a service, and did a
161 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
162 and dbus_message_get_args()
164 2003-05-11 Havoc Pennington <hp@pobox.com>
166 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
167 calling _dbus_marshal_validate_arg() for every byte in a byte
170 * dbus/dbus-message-handler.c: use atomic reference counting to
171 reduce number of locks slightly; the global lock in here sucks
173 * dbus/dbus-connection.c
174 (_dbus_connection_update_dispatch_status_and_unlock): variant of
175 update_dispatch_status that can be called with lock held; then use
176 in a couple places to reduce locking/unlocking
177 (dbus_connection_send): hold the lock over the whole function
178 instead of acquiring it twice.
180 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
182 * bus/connection.c (bus_connections_setup_connection): fix access
183 to already-freed memory.
185 * dbus/dbus-connection.c: keep a little cache of linked list
186 nodes, to avoid using the global linked list alloc lock in the
187 normal send-message case. Instead we just use the connection lock
188 that we already have to take.
190 * dbus/dbus-list.c (_dbus_list_find_last): new function
192 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
193 change to use a struct for the atomic type; fix docs,
194 they return value before increment, not after increment.
196 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
197 (_dbus_string_append_8_aligned): new functions to try to
198 microoptimize this operation.
199 (reallocate_for_length): break this out of set_length(), to
200 improve profile info, and also so we can consider inlining the
203 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
204 strings with some preallocation, cuts down on our calls to realloc
205 a fair bit. Though if we can get the "move entire string to empty
206 string" optimization below to kick in here, it would be better.
208 * dbus/dbus-string.c (_dbus_string_move): just call
209 _dbus_string_move_len
210 (_dbus_string_move_len): add a special case for moving
211 an entire string into an empty string; we can just
212 swap the string data instead of doing any reallocs.
213 (_dbus_string_init_preallocated): new function
215 2003-05-11 Havoc Pennington <hp@pobox.com>
217 Write a "test-profile" that does echo client-server with threads;
218 profile reveals lock contention, memcpy/realloc of buffers, and
219 UTF-8 validation as hot spots. 20% of lock contention eliminated
220 with dbus_atomic_inc/dec implementation on x86. Much remaining
221 contention is global mempool locks for GList and DBusList.
223 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
226 * dbus/dbus-connection.c (struct DBusConnection): use
227 dbus_atomic_t for the reference count
229 * dbus/dbus-message.c (struct DBusMessage): declare
230 dbus_atomic_t values as volatile
232 * configure.in: code to detect ability to use atomic integer
233 operations in assembly, from GLib patch
235 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
236 time, tired of it being wrong in threads and forked processes
238 * glib/test-profile.c: a little program to bounce messages back
239 and forth between threads and eat CPU
241 * dbus/dbus-connection.c: add debug spew macros for debugging
242 thread locks; include config.h at top; fix deadlock in
243 dbus_connection_flush()
245 2003-05-08 Havoc Pennington <hp@pobox.com>
247 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
248 data from getting written, and there wasn't a good reason to
251 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
252 dbus_verbose lines in test coverage
253 (main): add list of functions sorted by # of untested blocks
254 to the coverage report
256 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
258 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
260 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
263 * test/data/auth/cancel.auth-script: test canceling an
266 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
267 aren't used. in CVS history if we end up needing them.
269 2003-05-04 Havoc Pennington <hp@pobox.com>
271 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
274 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
275 function, which assumed length was in # of strings, not bytes
277 * dbus/dbus-message.c (_dbus_message_test): add tests for some
280 * dbus/dbus-connection.c
281 (_dbus_connection_queue_received_message): disable function for
282 now, we are only using it in test mode
284 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
285 remove a mistaken FIXME
287 2003-05-04 Havoc Pennington <hp@pobox.com>
289 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
290 unlock mutex on successful return, patch from Anders Gustafsson
292 2003-05-04 Havoc Pennington <hp@pobox.com>
294 * dbus-glib-1.pc.in (Requires): fix dependencies, from
297 2003-05-04 Havoc Pennington <hp@pobox.com>
299 * tools/dbus-launch.c: implement
301 * bus/main.c (main), bus/bus.c (bus_context_new):
302 implement --print-pid and --fork
304 2003-05-03 Havoc Pennington <hp@redhat.com>
306 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
307 the address had no value, and add to test suite. Fix and
308 regression test from Miloslav Trmac
310 2003-05-03 Havoc Pennington <hp@pobox.com>
312 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
313 watch is invalid when handled
315 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
316 dbus-launch utility to launch the bus from a shell script. Didn't
317 actually implement dbus-launch yet, it's just a placeholder still.
319 2003-05-03 Havoc Pennington <hp@pobox.com>
321 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
322 daemon; also documents daemon config file, so replaces
323 doc/config-file.txt. Corrected some stuff from config-file.txt in
324 the process of moving it.
326 2003-05-03 Havoc Pennington <hp@pobox.com>
328 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
331 2003-05-03 Colin Walters <walters@verbum.org>
333 * dbus/dbus-sysdeps.c (fill_user_info): Test against
334 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
336 * Makefile.am: Update to use new .pc versioning scheme.
338 2003-05-02 Havoc Pennington <hp@redhat.com>
340 * bus/system.conf.in: allow send/receive to/from message bus
343 2003-04-30 Havoc Pennington <hp@redhat.com>
345 * configure.in: print a note when building with unit tests and
348 2003-04-30 Havoc Pennington <hp@redhat.com>
350 * Makefile.am: add a check-local that complains if you didn't
351 configure with --enable-tests
353 2003-04-29 Havoc Pennington <hp@redhat.com>
355 * glib/dbus-gmain.c: docs cleanups
357 * dbus/dbus-types.h: add docs on int64 types
359 * dbus/dbus-memory.c: fix docs to avoid putting private API in
360 public API docs section
362 2003-04-29 Havoc Pennington <hp@redhat.com>
364 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
365 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
366 parallel install API version, not with the D-BUS package version.
368 * HACKING: move some of README over here
370 * README: updates, and document API/ABI policy
372 * configure.in: reindentation
374 2003-04-29 Havoc Pennington <hp@redhat.com>
376 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
377 to use this library" to be sure people have the right
380 2003-04-28 Havoc Pennington <hp@redhat.com>
382 * configure.in: add --enable-docs which by default is auto yes if
383 doxygen and db2html found, no otherwise; but can be forced on/off
385 * doc/Makefile.am: conditionalize whether to build docs on
388 2003-04-28 Havoc Pennington <hp@redhat.com>
394 * bus/system.conf.in: add <includedir>system.d</includedir>
396 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
397 username was provided but not uid
399 * bus/config-parser.c (struct BusConfigParser): keep track of
400 whether the parser is toplevel or was included; change some
401 of the error handling if it's included.
403 2003-04-27 Havoc Pennington <hp@pobox.com>
407 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
408 report correct status if we finish processing authentication
409 inside this function.
411 * bus/activation.c (try_send_activation_failure): use
412 bus_transaction_send_error_reply
414 * bus/connection.c (bus_connection_get_groups): return an error
415 explaining the problem
417 * bus/bus.c (bus_context_check_security_policy): implement
418 restriction here that inactive connections can only send the
419 hello message. Also, allow bus driver to send anything to
422 * bus/connection.c (bus_connection_complete): create the
423 BusClientPolicy here instead of on-demand.
424 (bus_connection_get_policy): don't return an error
426 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
427 sender field in message being replied to
429 * bus/bus.c (bus_context_check_security_policy): fix silly typo
430 causing it to return FALSE always
432 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
433 we checked sender rather than destination
435 2003-04-25 Havoc Pennington <hp@redhat.com>
437 test suite is slightly hosed at the moment, will fix soon
439 * bus/connection.c (bus_connections_expire_incomplete): fix to
440 properly disable the timeout when required
441 (bus_connection_set_name): check whether we can remove incomplete
442 connections timeout after we complete each connection.
444 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
445 probably still broken.
447 * bus/services.c (bus_registry_acquire_service): implement max
448 number of services owned, and honor allow/deny rules on which
449 services a connection can own.
451 * bus/connection.c (bus_connection_get_policy): report errors here
453 * bus/activation.c: implement limit on number of pending
456 2003-04-25 Havoc Pennington <hp@redhat.com>
458 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
459 where we used >= 0 instead of != DBUS_UID_UNSET.
461 2003-04-25 Havoc Pennington <hp@redhat.com>
463 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
464 were toggled without add/remove, fix from Anders Gustafsson
466 2003-04-24 Havoc Pennington <hp@redhat.com>
468 * test/data/valid-config-files/basic.conf: add <limit> tags to
471 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
472 <limit> tag in configuration file.
474 2003-04-24 Havoc Pennington <hp@redhat.com>
476 * bus/dispatch.c: somehow missed some name_is
478 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
479 (_dbus_timeout_set_interval): new
481 * bus/connection.c (bus_connections_setup_connection): record time
482 when each connection is first set up, and expire them after the
485 2003-04-24 Havoc Pennington <hp@redhat.com>
487 * dbus/dbus-message.c (dbus_message_name_is): rename
488 (dbus_message_service_is): rename
489 (dbus_message_sender_is): rename
490 (dbus_message_get_service): rename
492 2003-04-24 Havoc Pennington <hp@redhat.com>
494 * configure.in: add --enable-checks
496 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
498 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
500 (_dbus_connection_handler_destroyed_locked): move some private
501 functions into proper docs group
503 * dbus/dbus-internals.h: add _dbus_return_if_fail,
504 _dbus_return_val_if_fail
506 Throughout: use dbus_return_if_fail
508 2003-04-23 James Willcox <jwillcox@gnome.org>
511 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
512 (dbus_connection_setup_with_g_main),
513 (dbus_server_setup_with_g_main):
514 * glib/test-dbus-glib.c: (main):
515 * glib/test-thread-client.c: (main):
516 * glib/test-thread-server.c: (new_connection_callback), (main):
517 * tools/dbus-monitor.c: (main):
519 Added a GMainContext argument to dbus_connection_setup_with_g_main()
520 and dbus_server_setup_with_g_main().
522 2003-04-20 Havoc Pennington <hp@pobox.com>
524 * doc/dbus-specification.sgml: document the restrictions on
525 message and service names
527 2003-04-22 Havoc Pennington <hp@redhat.com>
529 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
530 support, and do some code cleanups to share more code and
531 speed up array marshal/demarshal.
533 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
535 * configure.in: generate dbus-arch-deps.h
537 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
540 2003-04-22 Havoc Pennington <hp@redhat.com>
542 * test/data/valid-messages/opposite-endian.message: fix test
543 to use proper type for rply field
545 * test/data/invalid-messages: add tests for below validation
547 * dbus/dbus-message.c (decode_header_data): validate field types,
548 and validate that named fields are valid names
549 (decode_name_field): consider messages in the
550 org.freedesktop.Local. namespace to be invalid.
552 * dbus/dbus-string.c (_dbus_string_validate_name): new
554 2003-04-19 Havoc Pennington <hp@pobox.com>
556 * bus/driver.c (bus_driver_handle_hello): check limits and
557 return an error if they are exceeded.
559 * bus/connection.c: maintain separate lists of active and inactive
560 connections, and a count of each. Maintain count of completed
561 connections per user. Implement code to check connection limits.
563 * dbus/dbus-list.c (_dbus_list_unlink): export
565 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
566 number of bytes in the message queue for a connection
568 2003-04-18 Havoc Pennington <hp@pobox.com>
570 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
572 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
575 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
576 on realloc be sure to update the pointer in the keyring
578 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
579 offset to avoid writing to unallocated memory
581 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
582 try the next mechanism, so we properly handle OOM
584 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
586 (_dbus_keyring_new): fix OOM bug
587 (_dbus_keyring_new_homedir): always set error; impose a maximum
588 number of keys we'll load from the file, mostly to speed up the
589 test suite and make its OOM checks more useful, but also for
592 * dbus/dbus-auth.c (process_error_server): reject authentication
593 if we get an error from the client
594 (process_cancel): on cancel, send REJECTED, per the spec
595 (process_error_client): send CANCEL if we get an error from the
598 2003-04-18 Havoc Pennington <hp@pobox.com>
600 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
603 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
606 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
607 about DBUS_TEST_HOMEDIR once
609 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
612 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
613 config file so we test the right thing
615 Throughout: assorted docs improvements
617 2003-04-18 Havoc Pennington <hp@pobox.com>
619 * glib/dbus-gmain.c: adapt to watch changes
621 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
623 * dbus/dbus-server.h: remove dbus_server_handle_watch
625 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
627 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
628 like DBusTimeout, so we don't need dbus_connection_handle_watch
631 2003-04-17 Havoc Pennington <hp@redhat.com>
633 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
634 database usage so it all goes via the DBusUserDatabase cache.
636 2003-04-17 Havoc Pennington <hp@redhat.com>
638 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
639 there was an OOM watch we skipped, we always return TRUE so we
640 iterate again to have a look at it again. Fixes test suite hang.
641 Code rearrangement also lets us lose some memset and only iterate
644 * bus/driver.c (bus_driver_handle_message): sense of test for
647 2003-04-16 Havoc Pennington <hp@pobox.com>
649 * doc/dbus-specification.sgml: make spec say serials are unsigned
651 * dbus/dbus-message.h: change message serials to unsigned
653 * dbus/dbus-connection.c: adapt to message serials being unsigned
655 2003-04-15 Havoc Pennington <hp@pobox.com>
657 * bus/bus.c: create and keep around a shared DBusUserDatabase
660 * bus/connection.c (bus_connection_get_groups): don't cache
661 groups for user in the connection object, since user database
662 object now does that.
664 2003-04-16 Havoc Pennington <hp@redhat.com>
666 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
667 list of size counters
668 (_dbus_message_loader_putback_message_link): put back a popped link
670 * dbus/dbus-connection.c
671 (dbus_connection_set_max_live_messages_size): rename
673 (dbus_connection_get_outgoing_size): get size of outgoing
675 (_dbus_connection_set_connection_counter): remove this cruft
677 2003-04-14 Havoc Pennington <hp@redhat.com>
679 * dbus/dbus-userdb.c: user database abstraction, mostly to get
680 caching, but at some point we might want to be able to use a
683 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
684 SHA1 conf file to test the sha1 auth mechanism, since the regular
685 test always uses EXTERNAL when available.
688 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
689 add conf file that requires use of sha1 auth
691 2003-04-13 Havoc Pennington <hp@pobox.com>
693 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
694 from Philip Blundell to send messages and monitor them.
696 2003-04-13 Havoc Pennington <hp@pobox.com>
698 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
701 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
704 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
705 fix to only recover unused bytes if we're already authenticated
706 (_dbus_transport_get_is_authenticated): fix to still mark us
707 authenticated if there are unused bytes.
709 * bus/dispatch.c: implement security policy checking
711 * bus/connection.c (bus_transaction_send_from_driver): new
713 * bus/bus.c (bus_context_check_security_policy): new
715 * bus/dispatch.c (send_service_nonexistent_error): delete this,
716 now we just set the DBusError and it gets converted to an error
719 * bus/connection.c (allow_user_function): enable code using actual
720 data from the config file
722 * bus/policy.c (list_allows_user): handle wildcard rules for
723 user/group connection perms
725 2003-04-13 Havoc Pennington <hp@pobox.com>
727 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
729 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
731 * bus/policy.c (bus_policy_append_mandatory_rule)
732 (bus_policy_append_default_rule, bus_policy_append_user_rule)
733 (bus_policy_append_group_rule): new functions
735 2003-04-12 Havoc Pennington <hp@pobox.com>
737 * bus/config-parser.c (bus_config_parser_new): fix a memleak
739 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
740 the pid/gid/uid, just for paranoia.
742 * test/break-loader.c (randomly_do_n_things): find a byte
743 containing a type code, and randomly change it to a different
746 2003-04-12 Havoc Pennington <hp@pobox.com>
748 * bus/policy.h: change BusPolicy to be the thing from the config
749 file, and rename old BusPolicy to BusClientPolicy
751 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
752 match change in how policy works
754 * dbus/dbus-internals.h: mark assert_not_reached as
755 __attribute((noreturn))__
757 2003-04-11 Havoc Pennington <hp@redhat.com>
759 * doc/dbus-specification.sgml: fix a spot with the wrong name for
760 the broadcast service. Use boolean return for ServiceExists.
762 2003-04-11 Havoc Pennington <hp@redhat.com>
764 * configure.in: add another directory to look for qt in.
766 2003-04-11 Havoc Pennington <hp@redhat.com>
768 * AUTHORS: add Colin Walters
770 2003-04-11 Havoc Pennington <hp@redhat.com>
776 2003-04-11 Havoc Pennington <hp@redhat.com>
778 * bus/messagebus.in: remove pid file when stopping the
779 message bus, since the bus won't have privileges to remove it
782 2003-04-11 Havoc Pennington <hp@redhat.com>
784 * bus/bus.c (bus_context_new): move credentials change after
787 2003-04-11 Havoc Pennington <hp@pobox.com>
789 * test/decode-gcov.c: add "below average functions" to the
790 coverage report, and change how some of the code works.
792 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
793 not in the coverage stats.
795 * test/test-service.c (main): use _dbus_verbose not fprintf in a
796 couple places so running the test suite doesn't result in megaspam.
798 2003-04-11 Havoc Pennington <hp@pobox.com>
800 * bus/dispatch.c (check_existent_service_activation): accept a no
801 memory error in a place we didn't before
803 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
804 in case the first one failed," since the test suite is less
807 2003-04-10 Havoc Pennington <hp@pobox.com>
809 * bus/dispatch.c (check_segfault_service_activation): add test
810 for launching an executable that just crashes.
812 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
813 don't leave a million cores. We'll see how portable this is.
815 2003-04-10 Havoc Pennington <hp@pobox.com>
817 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
818 the possible parent failures before we fork, so that we don't
819 fail to create a babysitter after creating the child.
821 * bus/activation.c (bus_activation_activate_service): kill child
822 if we don't successfully complete the activation.
824 2003-04-10 Havoc Pennington <hp@redhat.com>
826 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
827 the connection if it's disconnected
829 * bus/activation.c (bus_activation_service_created): use new
830 transaction features to roll back removal of pending activation if
831 we don't successfully create the service after all. Don't remove
832 pending activation if the function fails.
834 * dbus/dbus-list.c (_dbus_list_insert_before_link)
835 (_dbus_list_insert_after_link): new code to facilitate
838 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
839 new functionality, so we can preallocate the ability to insert
842 * bus/connection.c (bus_transaction_add_cancel_hook): new function
843 allowing us to put custom hooks in a transaction to be used for
844 cancelling said transaction
846 * doc/dbus-specification.sgml: add some discussion of secondary
847 service owners, and disallow zero-length service names
849 * bus/services.c (bus_registry_acquire_service): new function,
850 splits out part of bus_driver_handle_acquire_service() and fixes
851 a bug where we didn't remove the service doing the acquiring
852 from the secondary queue if we failed to remove the current owner
853 from the front of the queue.
855 2003-04-10 Alexander Larsson <alexl@redhat.com>
857 * doc/dbus-specification.sgml:
858 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
860 2003-04-10 Alexander Larsson <alexl@redhat.com>
865 Added files to cvsignore
867 * dbus/dbus-message.h:
868 * dbus/dbus-message.c: (dbus_message_iter_get_named):
869 Make get_named() take two out argument and return a boolean.
870 (dbus_message_iter_get_args_valist):
871 Update usage of get_named().
872 (dbus_message_iter_append_byte):
874 (dbus_message_iter_append_named)
876 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
879 2003-04-10 Alexander Larsson <alexl@redhat.com>
881 * dbus/dbus-marshal.[ch]:
882 Add array_type_pos argument to _dbus_marshal_validate_arg.
883 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
885 * dbus/dbus-message.[ch]:
886 Multi-dimensional arrays have full type specification in the
887 outermost array. Iter code re-arranged to handle this.
888 Added some more iter tests.
890 * doc/dbus-specification.sgml:
893 Update new array encoding description.
894 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
896 * test/data/invalid-messages/array-with-mixed-types.message:
897 * test/data/valid-messages/array-of-array-of-uint32.message:
898 Change to the new array format.
900 * test/data/invalid-messages/too-short-dict.message:
903 * test/data/valid-messages/recursive-types.message:
904 Fix up and extend test.
906 2003-04-10 Havoc Pennington <hp@pobox.com>
908 * bus/dispatch.c: lots of fixes
910 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
911 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
912 that was crack, broke the test service.
914 * dbus/dbus-transport.c (_dbus_transport_open): fix error
915 handling to avoid piling up errors if we get a failure on the
918 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
919 pid in assertion failures.
921 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
922 to some fixed size of file descriptor array. Don't return TRUE
923 anytime a timeout exists, that led to lots of busy loop silliness
926 2003-04-09 Havoc Pennington <hp@redhat.com>
928 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
929 I'd checked this in earlier but hadn't.
931 2003-04-09 Havoc Pennington <hp@redhat.com>
933 * bus/dispatch.c (bus_dispatch_test): get a bit further through
934 the activation test (man this is getting old!)
936 2003-04-09 Havoc Pennington <hp@redhat.com>
938 * test/test-utils.c: use dispatch status function to fix this up
940 * bus/connection.c (connection_watch_callback): don't dispatch
942 (connection_timeout_callback): don't dispatch from here
943 (bus_connections_setup_connection): set the dispatch status function
944 (bus_connection_disconnected): unset it
946 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
947 used to add a connection to be dispatched
948 (_dbus_loop_iterate): do the dispatching at the end of each
951 * dbus/dbus-connection.c
952 (dbus_connection_set_dispatch_status_function): new function
953 allowing us to fix up main loop usage
954 (_dbus_connection_last_unref): free all the various function
956 (dbus_connection_dispatch): call the DispatchStatusFunction
957 whenever this function returns
958 (dbus_connection_handle_watch): call DispatchStatusFunction
959 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
960 (reply_handler_timeout): call DispatchStatusFunction
961 (dbus_connection_flush): call DispatchStatusFunction
963 2003-04-09 Havoc Pennington <hp@redhat.com>
965 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
968 * bus/dispatch.c (check_service_activated): fix bug in test
970 * dbus/dbus-mainloop.c (check_timeout): fix this up
972 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
973 verbose output so we can sort out output from different processes,
974 e.g. in the activation case.
976 2003-04-08 Colin Walters <walters@gnu.org>
978 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
980 (bus_context_new): Set it.
981 (bus_context_unref): Use it to delete the pid file.
983 2003-04-08 Havoc Pennington <hp@redhat.com>
985 * test/data/invalid-messages/array-with-mixed-types.message:
986 regression test that fails for the moment
988 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
989 tests for convenience
991 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
992 array of nil, it broke things.
994 * test/data/invalid-messages/array-of-nil.message: regression test
996 * test/data/valid-messages/array-of-array-of-uint32.message:
997 happened to write this so added it to suite
999 2003-04-08 Havoc Pennington <hp@redhat.com>
1001 * bus/driver.c (bus_driver_handle_acquire_service): init
1002 retval/reply before checking name
1004 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
1005 recursion depth argument
1007 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
1008 in the public struct for future extension
1010 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
1013 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
1016 * doc/dbus-specification.sgml: fix typo
1018 2003-04-08 Alexander Larsson <alexl@redhat.com>
1020 Implemented recursive types, named types and new-style iters
1023 * glib/test-thread-client.c: (thread_func):
1024 * glib/test-thread-server.c: (handle_test_message):
1025 * test/test-service.c: (handle_echo):
1034 * dbus/dbus-internals.c: (_dbus_type_to_string):
1035 Update for new types.
1037 * dbus/dbus-marshal.[ch]:
1038 Implement recursive types and the new marshalling format.
1039 Remove hardcoded dict marshalling.
1040 Marshal named types.
1042 * dbus/dbus-message-builder.c:
1044 Remove references to old types
1046 * dbus/dbus-message.[ch]:
1047 New non-refcounted iter API that supports recursive iters.
1048 Use iters for appending, including support for recursive
1050 Add byte and named type support.
1051 Update everything to new marshalling formats.
1052 Add tests for new API.
1054 * dbus/dbus-protocol.h:
1055 Remove old array types.
1056 Add types: BYTE, ARRAY, DICT, NAMED
1058 * dbus/dbus-string.c:
1059 * dbus/dbus-sysdeps.c:
1060 Make parse_double locale safe.
1062 * dbus/dbus-test-main.c:
1068 * doc/dbus-specification.sgml:
1071 * test/data/incomplete-messages/missing-body.message:
1072 * test/data/invalid-messages/bad-boolean.message:
1073 * test/data/invalid-messages/bad-boolean-array.message:
1074 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
1075 * test/data/invalid-messages/boolean-has-no-value.message-raw:
1076 * test/data/invalid-messages/too-short-dict.message:
1077 * test/data/valid-messages/dict-simple.message:
1078 * test/data/valid-messages/dict.message:
1079 * test/data/valid-messages/emptiness.message:
1080 * test/data/valid-messages/lots-of-arguments.message:
1081 * test/data/valid-messages/no-padding.message:
1082 * test/data/valid-messages/recursive-types.message:
1083 Add missing NAME fields
1084 Fix up dicts & arrays
1086 * test/data/invalid-messages/dict-with-nil-value.message:
1087 Removed, this is not invalid anymore.
1089 * test/data/valid-messages/recursive-types.message:
1090 Add new test for deeply recursive types.
1092 2003-04-07 Havoc Pennington <hp@pobox.com>
1094 * bus/driver.c (bus_driver_handle_acquire_service): return an
1095 error if you try to acquire a service that starts with ':'
1097 2003-04-07 Havoc Pennington <hp@redhat.com>
1099 * doc/dbus-specification.sgml: require that base service names
1100 start with ':' and that the base service is created/deleted
1101 as first and last things a connection does on the bus
1103 * bus/dispatch.c (check_existent_service_activation): lots more
1104 work on the activation test; it doesn't fully pass yet...
1106 * test/test-service.c (main): fix so we don't memleak the
1107 connection to the message bus
1108 (filter_func): accept a message asking us to exit
1110 2003-04-06 Havoc Pennington <hp@pobox.com>
1112 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
1115 * configure.in: fixes to Qt detection from Colin Walters
1117 * doc/Makefile.am: Only remove generated docbook dirs if they
1118 exist, from Colin Walters
1120 * dbus/dbus-bus.c: change how we set well-known connections to
1121 NULL, so that it works if a single connection is stored in
1122 two well-known array slots.
1124 * test/Makefile.am: remove a lot of stuff that isn't immediately
1125 useful, it's in CVS history if we want it.
1127 * test/test-service.c: use dbus-mainloop instead of that
1130 2003-04-06 Havoc Pennington <hp@pobox.com>
1132 * dbus/Makefile.am: split lists of sources into stuff that goes in
1133 the library, util functions that go in the lib and are also used
1134 elsewhere, and util functions that are used in tests/daemon but
1135 don't go in the lib.
1137 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
1138 here so it can be used in test binaries also
1140 2003-04-06 Havoc Pennington <hp@pobox.com>
1142 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
1143 here in the parent process, so we can return an error if it
1144 fails. Also, move some of the code into the child so the parent
1145 is less hosed if we fail midway through.
1147 * bus/bus.c (bus_context_new): move pidfile detection further up
1148 in the function, before we start overwriting sockets and such.
1150 * bus/messagebus.in: adjust this a bit, not sure if it will work.
1152 * configure.in: add --with-system-pid-file and --with-system-socket
1154 2003-04-06 Colin Walters <walters@verbum.org>
1156 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
1158 * bus/system.conf.in: Declare a pidfile.
1160 * bus/bus.c (bus_context_new): Test for an existing pid file, and
1161 create one (if appropriate).
1163 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
1164 (struct BusConfigParser) [pidfile]: New.
1165 (element_type_to_name, merge_included, start_busconfig_child)
1166 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
1167 (bus_config_parser_unref): Free it.
1168 (bus_config_parser_get_pidfile): New function.
1170 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
1172 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
1174 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
1176 * dbus/dbus-sysdeps.h: Prototype it.
1178 2003-04-06 Havoc Pennington <hp@pobox.com>
1180 * bus/bus.c (bus_context_new): print the address in here, rather
1181 than in main(), because we need to do it before forking the daemon
1183 * bus/dispatch.c (send_service_nonexistent_error): set the sender
1184 on the service nonexistent error
1186 * bus/driver.c (bus_driver_handle_acquire_service): set the
1187 sender on the AcquireService reply
1189 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
1190 server also listen on a UNIX socket so services can connect to it.
1192 2003-04-06 Havoc Pennington <hp@pobox.com>
1194 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
1195 so it detects deadlocks and also we actually init threads when
1198 2003-04-06 Havoc Pennington <hp@pobox.com>
1200 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
1201 save the domain socket name, and unlink it when we disconnect the
1202 server. Means that at least when we exit normally, we won't leave
1203 a bunch of junk in /tmp
1205 * dbus/dbus-transport-unix.c
1206 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
1207 memory management). (I was making a real change here but then
1210 2003-04-06 Havoc Pennington <hp@pobox.com>
1212 * bus/bus.c (bus_context_new): fix wrong handling of
1213 server_data_slot_unref() in the error case.
1215 * dbus/dbus-internals.h (_dbus_assert): change so it passes
1216 "(condition) != 0" to _dbus_real_assert so that
1217 "_dbus_assert (pointer)" doesn't cause a warning
1219 * bus/main.c (main): accept --print-address option to print out
1220 the message bus address
1222 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
1224 * dbus/dbus-transport.c (_dbus_transport_open): special error for
1225 "tmpdir" option to unix: address on client side
1227 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
1230 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
1231 we can use to create sockets in the test suite.
1233 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
1234 cleanly. To be used for testing.
1236 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
1238 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
1240 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1241 handle trying to call this when there's no servers active
1243 2003-04-05 Havoc Pennington <hp@pobox.com>
1249 2003-04-05 Havoc Pennington <hp@pobox.com>
1251 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
1252 crash on startup. Need to get "try starting the daemon"
1253 in the test suite I guess. ;-)
1255 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
1256 tracked the number of open connections; it's better done in
1257 application-specific code as you want it to span all servers etc.
1259 2003-04-05 Havoc Pennington <hp@pobox.com>
1261 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
1262 patch from Colin Walters
1264 2003-04-05 Havoc Pennington <hp@pobox.com>
1266 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
1267 reality; in fact multiple mechanisms are allowed.
1269 * dbus/dbus-internals.c (_dbus_real_assert)
1270 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
1271 _dbus_assert_not_reached() into functions, so that they don't show
1272 up in basic block counts for test coverage, and don't use up as
1273 much disk space. Does mean slower execution speed though, so
1274 assumes --disable-asserts is the normal production case.
1276 2003-04-05 Havoc Pennington <hp@pobox.com>
1278 * test/Makefile.am (dist-hook): also dist *.in files
1284 2003-04-05 Havoc Pennington <hp@pobox.com>
1286 * dbus/dbus-string.c: docs warning
1288 * dbus/dbus-spawn.c: missing docs
1290 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
1292 2003-04-05 Havoc Pennington <hp@pobox.com>
1294 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
1297 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
1298 to -1 once we've reaped the babysitter
1299 (_dbus_babysitter_handle_watch): do as much work as we can, not
1302 * bus/activation.c: add code using DBusBabysitter so that we
1303 handle it when a service fails to start up properly.
1304 (bus_activation_service_created): don't remove the activation
1305 entries as we go, just let them get removed when we free the pending
1306 activation. Unref reply messages after sending them.
1308 2003-04-05 Havoc Pennington <hp@pobox.com>
1310 * test/decode-gcov.c (main): print per-directory stats in the report
1312 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
1314 2003-04-05 Havoc Pennington <hp@pobox.com>
1316 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
1318 * test/decode-gcov.c: hack up a little program to suck data
1319 out of gcov files. Yes this is sort of silly.
1321 * configure.in: define something in config.h and do an
1322 AM_CONDITIONAL when gcov is enabled
1324 2003-04-04 Havoc Pennington <hp@redhat.com>
1326 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
1327 return a "babysitter" object that is used to monitor the status of
1328 the spawned process and reap it when required.
1330 * test/test-segfault.c, test/test-exit.c,
1331 test/test-sleep-forever.c: binaries that do various lame things,
1332 used in the test suite.
1334 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
1336 2003-04-03 Havoc Pennington <hp@pobox.com>
1338 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
1339 in preparation for modifying it, dbus-sysdeps is getting
1342 2003-04-03 Havoc Pennington <hp@redhat.com>
1344 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
1347 * bus/*.[hc]: adapt to mainloop change
1349 2003-04-03 Havoc Pennington <hp@redhat.com>
1351 * bus/activation.c (load_directory): fix up memleaks
1352 (bus_activation_entry_free): free the entry
1354 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
1355 we get one from the message bus; fix memleaks.
1357 * dbus/dbus-message.c (dbus_set_error_from_message): new function
1359 2003-04-03 Havoc Pennington <hp@pobox.com>
1361 * bus/config-parser.c (bus_config_parser_unref): free
1362 list of mechanisms, bug discovered by test suite enhancements
1363 (putting system.conf and session.conf into suite)
1365 * test/Makefile.am, test/test-service.c: add placeholder for a
1366 test service that we'll activate as part of test suite. Doesn't
1369 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
1370 setting NULL value, and use system malloc not dbus_malloc()
1371 when we have unavoidable memleakage.
1373 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
1374 didn't work, and support DBUS_BUS_ACTIVATION.
1376 * bus/activation.c (child_setup): pass our well-known bus type to
1379 * bus/config-parser.c: support <type> to specify well-known type
1381 * doc/dbus-specification.sgml: document the env variables to
1382 locate well-known buses and find service activator
1384 2003-04-02 Havoc Pennington <hp@redhat.com>
1386 * test/Makefile.am (all-local): add a rule to copy tests to
1387 builddir, so we can have generated tests. Use this to remove the
1388 silly hack for testing system.conf and session.conf. Will use this
1389 shortly to generate .service files pointing to test binaries.
1391 2003-04-02 Havoc Pennington <hp@redhat.com>
1393 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
1394 current alloc and needed new length, not max of the doubled
1395 allocation and needed new length. Also, when building tests,
1396 don't do the double-allocation stuff, just realloc every time.
1398 2003-04-02 Havoc Pennington <hp@redhat.com>
1400 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
1402 (_dbus_string_get_dirname): new
1403 (_dbus_sysdeps_test): new
1404 (_dbus_directory_open): include dirnames in error messages
1406 * bus/config-parser.c: interpret <include> and <includedir> and
1407 <servicedir> relative to config file location if the given
1408 filename is not absolute.
1410 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
1412 2003-04-02 Havoc Pennington <hp@redhat.com>
1414 * bus/connection.c (bus_transaction_send_error_reply): set sender
1415 service for the error, and unref the reply on success
1417 * bus/activation.c: convert to use BusTransaction so OOM can be
1419 (bus_activation_service_created): set sender of the message
1421 2003-04-01 Havoc Pennington <hp@redhat.com>
1423 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
1424 <includedir> (at least mostly)
1426 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
1427 first, then the user ID
1429 2003-04-01 Havoc Pennington <hp@pobox.com>
1431 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
1434 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
1436 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
1438 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
1439 socket 0777, and unlink any existing socket.
1441 * bus/bus.c (bus_context_new): change our UID/GID and fork if
1442 the configuration file so specifies; set up auth mechanism
1445 * bus/config-parser.c (bus_config_parser_content): add support
1446 for <fork> option and fill in code for <auth>
1448 * bus/system.conf.in: add <fork/> to default configuration,
1449 and limit auth mechanisms to EXTERNAL
1451 * doc/config-file.txt (Elements): add <fork>
1453 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
1454 (_dbus_change_identity): new function
1456 2003-03-31 Havoc Pennington <hp@redhat.com>
1458 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
1459 (_dbus_listen_unix_socket): fix off-by-one error in null
1460 termination spotted by Nalin
1462 2003-03-31 Havoc Pennington <hp@redhat.com>
1464 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
1465 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
1466 having a real home directory available.
1468 2003-03-31 Havoc Pennington <hp@redhat.com>
1470 * bus/Makefile.am (install-data-hook): create /var/run/dbus
1472 * bus/messagebus.in: add init script for Red Hat /etc/init.d
1474 * configure.in: add support for specifying a style of init script
1477 2003-03-31 Havoc Pennington <hp@redhat.com>
1479 Fix some annoying DBusString API and fix all affected code.
1481 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
1483 (_dbus_string_get_data): change to return string instead of using
1485 (_dbus_string_get_const_data): ditto
1486 (_dbus_string_get_data_len): ditto
1487 (_dbus_string_get_const_data_len): ditto
1489 2003-03-31 Havoc Pennington <hp@redhat.com>
1491 * bus/main.c (main): fix up the command line arguments to be nicer
1493 2003-03-31 Havoc Pennington <hp@redhat.com>
1495 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
1496 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
1497 final location that lands in the config file
1499 * bus/config-loader-expat.c (bus_config_load): fix type of
1502 * doc/TODO: remove TODO item for dbus_bus_get()
1504 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
1506 2003-03-31 Havoc Pennington <hp@pobox.com>
1508 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
1509 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
1510 argument since they are always client side
1512 * dbus/dbus-server.c (dbus_server_get_address): new function
1514 * bus/main.c (main): take the configuration file as an argument.
1516 * test/data/valid-config-files/debug-allow-all.conf: new file to
1517 use with dispatch.c tests for example
1519 * bus/test-main.c (main): require test data dir
1521 * bus/bus.c (bus_context_new): change this to take a
1522 configuration file name as argument
1524 * doc/config-file.txt (Elements): add <servicedir>
1526 * bus/system.conf, bus/session.conf: new files
1528 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
1529 well-known socket if none set
1531 * configure.in: create system.conf and session.conf
1533 2003-03-30 Havoc Pennington <hp@pobox.com>
1535 * bus/config-parser.c: hacking
1537 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
1538 to shut down, since it could cause weirdness with the DBusList
1541 * dbus/dbus-list.c (_dbus_list_test): add tests for the
1542 link-oriented stack routines
1543 (alloc_link): free the mempool if the first alloc from it fails
1545 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
1547 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
1549 (_dbus_string_skip_white): new
1551 * doc/config-file.txt (Elements): add <includedir>
1553 2003-03-28 Havoc Pennington <hp@pobox.com>
1555 * dbus/dbus-string.c (_dbus_string_copy_data_len)
1556 (_dbus_string_copy_data): new functions
1558 2003-03-28 Anders Carlsson <andersca@codefactory.se>
1560 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
1564 * dbus/dbus-memory.c:
1567 2003-03-28 Havoc Pennington <hp@pobox.com>
1569 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
1570 I think it may have just been superstition. Not sure.
1572 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
1573 failures that were not being handled.
1575 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
1577 * dbus/dbus-memory.c: add ability to set number of mallocs in a
1578 row that will fail on out-of-memory.
1580 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
1581 function for testing out-of-memory handling.
1583 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
1584 allocation functions, they do map exactly to the expat ones.
1586 2003-03-27 Havoc Pennington <hp@redhat.com>
1588 * bus/config-loader-libxml.c (bus_config_load): add another error
1591 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1594 Add note about automatic service activation.
1596 * doc/dbus-specification.sgml:
1597 Rename the specification and clarify a few things.
1599 2003-03-26 Anders Carlsson <andersca@codefactory.se>
1602 * dbus/dbus-address.c:
1604 * dbus/dbus-marshal.c:
1605 * dbus/dbus-server-debug-pipe.c:
1606 * dbus/dbus-transport-unix.c:
1607 Fix documentation warnings.
1609 2003-03-26 Havoc Pennington <hp@pobox.com>
1611 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
1612 after every test so it's quick and easy to see which leaked, and
1613 so we test multiple dbus_shutdown() calls
1615 * configure.in: change configure.in XML stuff to also support
1618 * config-loader-libxml.c: some hacking
1620 * config-loader-expat.c: some hacking
1622 * config-parser.c: some hacking, plus tests
1624 2003-03-25 Havoc Pennington <hp@redhat.com>
1626 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
1628 * configure.in: add --with-xml option to specify XML library,
1629 right now only libxml is supported.
1631 * bus/config-loader-libxml.c, config-parser.c: sync some minor
1632 nonworking code between home and work, still just stubs
1634 2003-03-24 Havoc Pennington <hp@redhat.com>
1636 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
1639 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
1640 NULL argument for "message" if the error is a well-known one,
1641 fill in a generic message in this case.
1643 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
1646 * bus/test.c (bus_test_flush_bus): add
1648 * bus/policy.c (bus_policy_test): test code stub
1650 2003-03-24 Havoc Pennington <hp@pobox.com>
1652 * bus/connection.c (bus_connections_setup_connection): set up
1653 the "can this user connect" function, but it always returns
1654 TRUE until we have a config file parser so we can have a config
1655 file that allows connections.
1657 2003-03-23 Havoc Pennington <hp@pobox.com>
1659 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
1660 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
1661 the mutex, so we can check for proper memory management
1664 * dbus/dbus-dataslot.c: remove the mutex from
1665 DBusDataSlotAllocator and lock it manually when using it,
1666 to simplify fitting it into the global slots framework.
1668 * dbus/dbus-threads.c (init_static_locks): rework how we're
1669 handling global locks so they are easily shut down.
1671 * bus/policy.c (bus_policy_append_rule): fix
1673 * bus/test-main.c (main): check for memleaks
1675 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
1676 test suite check for memleaks
1678 * dbus/dbus-memory.c: add support in test mode for tracking
1679 number of outstanding blocks
1681 2003-03-23 Havoc Pennington <hp@pobox.com>
1683 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
1686 * dbus/dbus-hash.h: add ULONG hash keys
1688 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
1689 (_dbus_get_group_id): new function
1691 2003-03-20 Havoc Pennington <hp@redhat.com>
1693 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
1695 (dbus_connection_get_unix_user): new function
1697 2003-03-20 Havoc Pennington <hp@pobox.com>
1699 * bus/connection.c (bus_connection_send_oom_error): assert that
1700 message has a sender
1701 (connection_execute_transaction): ditto
1702 (bus_connection_preallocate_oom_error): fix to set the sender, and
1703 set recipient to the destination service, not the bus driver
1705 * bus/policy.c: hacking
1707 * dbus/dbus-message.c (dbus_message_service_is): new function
1708 (dbus_message_sender_is): new
1710 2003-03-19 Havoc Pennington <hp@redhat.com>
1712 * bus/policy.c: start sketching code for policy restrictions on
1713 what connections can do.
1715 2003-03-18 Havoc Pennington <hp@redhat.com>
1717 * doc/TODO: some notes on high-level todo items. Little nitpick
1718 stuff is all in @todo, so no need to add it here.
1720 * doc/config-file.txt: some notes on how config file might look
1722 2003-03-18 Anders Carlsson <andersca@codefactory.se>
1728 2003-03-17 Havoc Pennington <hp@redhat.com>
1730 * dbus/dbus-internals.h: add gcc attributes so that
1731 our printf-style functions warn on bad arguments to
1734 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
1737 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1740 2003-03-17 Havoc Pennington <hp@redhat.com>
1742 * bus/test-main.c (main): make it print something as it runs
1743 so make check doesn't look stuck
1745 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
1746 from CVS, now obsolete
1748 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1750 * bus/dispatch.c: (bus_dispatch):
1751 Refetch the service name since it may have been reallocated
1752 when dbus_message_set_sender was called.
1754 * dbus/dbus-sysdeps.c: (_dbus_accept):
1755 Add address and address length variables and use them to stop
1756 valgrind from complaining.
1758 2003-03-17 Havoc Pennington <hp@pobox.com>
1760 All tests pass, no memleaks, no valgrind complaints.
1762 * bus/test.c: refcount handler_slot
1764 * bus/connection.c (bus_connections_new): refcount
1765 connection_data_slot
1767 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
1768 bytes so that auth scripts pass.
1770 * bus/dispatch.c: init message_handler_slot so it gets allocated
1773 * bus/dispatch.c (message_handler_slot_ref): fix memleak
1775 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
1776 dealloc server_pipe_hash when no longer used for benefit of
1779 * dbus/dbus-auth.c (process_command): memleak fix
1781 * bus/dispatch.c (check_hello_message): memleak fix
1783 2003-03-16 Havoc Pennington <hp@pobox.com>
1785 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
1787 2003-03-17 Anders Carlsson <andersca@codefactory.se>
1789 * bus/activation.c (bus_activation_activate_service): Append
1790 the pending activation entry to the list of pending activations.
1792 2003-03-16 Havoc Pennington <hp@pobox.com>
1794 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
1797 * dbus/dbus-address.c (create_entry): fix OOM handling when
1798 failing to alloc entry->method
1800 2003-03-16 Havoc Pennington <hp@pobox.com>
1802 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
1805 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1806 add some missing dbus_set_result
1808 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
1809 alloc the DBusMessageHandler
1811 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
1812 the transport here, since we call this from the finalizer; it
1813 resulted in a double-finalize.
1815 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
1816 where we tried to use transport->connection that was NULL,
1817 happened when transport was disconnected early on due to OOM
1819 * bus/*.c: adapt to handle OOM for watches/timeouts
1821 * dbus/dbus-transport-unix.c: port to handle OOM during
1824 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
1825 reference to unused bytes instead of a copy
1827 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
1830 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
1833 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
1836 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1838 * doc/dbus-specification.sgml:
1839 Document reply message for ActivateService.
1841 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1843 * bus/activation.c: (bus_pending_activation_entry_free),
1844 (bus_pending_activation_free), (bus_activation_new),
1845 (bus_activation_unref), (bus_activation_service_created),
1846 (bus_activation_activate_service):
1848 * bus/bus.c: (bus_context_new):
1849 * bus/desktop-file.c: (new_section):
1850 * bus/driver.c: (bus_driver_send_service_deleted),
1851 (bus_driver_handle_activate_service):
1852 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
1854 * dbus/dbus-connection.c:
1855 (dbus_connection_send_with_reply_and_block):
1856 * dbus/dbus-message.c: (dbus_message_append_args_valist):
1857 * dbus/dbus-protocol.h:
1858 Make activation work better. Now pending activations will be queued
1859 and the daemon won't try to activate services that are already registered.
1861 2003-03-16 Havoc Pennington <hp@pobox.com>
1863 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
1866 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
1867 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
1869 2003-03-16 Havoc Pennington <hp@pobox.com>
1871 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
1872 this. always run the test suite before commit...
1874 * bus/*: adapt to DBusConnection API changes
1876 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
1877 requires renaming stuff to avoid dbus_connection_dispatch name
1880 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
1883 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
1884 separate from _dbus_message_loader_return_buffer()
1886 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
1887 this, because it's now always broken to use; the number of
1888 messages in queue vs. the number still buffered by the message
1889 loader is undefined/meaningless. Should use
1890 dbus_connection_get_dispatch_state().
1891 (dbus_connection_dispatch): rename from
1892 dbus_connection_dispatch_message
1894 2003-03-16 Havoc Pennington <hp@pobox.com>
1896 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
1899 2003-03-16 Anders Carlsson <andersca@codefactory.se>
1901 * dbus/dbus-connection.c:
1902 (dbus_connection_send_with_reply_and_block):
1903 Decrease connection->n_incoming when removing an entry
1905 * dbus/dbus-dict.c: (dbus_dict_entry_free),
1906 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
1907 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
1908 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
1909 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
1910 (dbus_dict_get_byte_array):
1911 Handle NULL arrays and strings. Also add support for byte arrays.
1913 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
1914 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
1915 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
1916 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
1917 (_dbus_demarshal_dict), (demarshal_and_validate_len),
1918 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
1919 * dbus/dbus-marshal.h:
1920 Add support for marshalling and demarshalling empty arrays and strings.
1922 * dbus/dbus-message.c: (dbus_message_append_args_valist),
1923 (dbus_message_append_string_array),
1924 (dbus_message_iter_get_boolean),
1925 (dbus_message_iter_get_boolean_array),
1926 (dbus_message_iter_get_int32_array),
1927 (dbus_message_iter_get_uint32_array),
1928 (dbus_message_iter_get_double_array),
1929 (dbus_message_iter_get_byte_array),
1930 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
1931 (check_message_handling):
1932 Add support for getting empty arrays and dicts.
1934 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
1935 Don't do any validation at all for now, that's better than just checking
1938 * test/data/valid-messages/emptiness.message:
1939 New test message with lots of empty arrays.
1941 2003-03-16 Havoc Pennington <hp@pobox.com>
1943 * dbus/dbus-connection.c
1944 (_dbus_connection_queue_received_message_link): new function that
1945 can't fail due to OOM
1947 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
1948 new function pops a message together with a list link
1951 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
1952 message queuing functions to avoid needing to alloc memory
1954 2003-03-16 Havoc Pennington <hp@pobox.com>
1956 Oops - test code was only testing failure of around 30 of the
1957 mallocs in the test path, but it turns out there are 500+
1958 mallocs. I believe this was due to misguided linking setup such
1959 that there was one copy of dbus_malloc etc. in the daemon and one
1960 in the shared lib, and only daemon mallocs were tested. In any
1961 case, the test case now tests all 500+ mallocs, and doesn't pass
1962 yet, though there are lots of fixes in this patch.
1964 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
1965 this so that it doesn't need to allocate memory, since it
1966 has no way of indicating failure due to OOM (and would be
1967 annoying if it did).
1969 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
1971 * bus/Makefile.am: rearrange to create two self-contained
1972 libraries, to avoid having libraries with overlapping symbols.
1973 that was resulting in weirdness, e.g. I'm pretty sure there
1974 were two copies of global static variables.
1976 * dbus/dbus-internals.c: move the malloc debug stuff to
1979 * dbus/dbus-list.c (free_link): free list mempool if it becomes
1982 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
1984 * dbus/dbus-address.c (dbus_parse_address): free list nodes
1987 * bus/dispatch.c (bus_dispatch_add_connection): free
1988 message_handler_slot when no longer using it, so
1989 memory leak checkers are happy for the test suite.
1991 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
1993 * bus/bus.c (new_connection_callback): disconnect in here if
1994 bus_connections_setup_connection fails.
1996 * bus/connection.c (bus_connections_unref): fix to free the
1998 (bus_connections_setup_connection): if this fails, don't
1999 disconnect the connection, just be sure there are no side
2002 * dbus/dbus-string.c (undo_alignment): unbreak this
2004 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
2006 (_dbus_auth_new): fix the order in which we free strings
2009 * bus/connection.c (bus_connection_disconnected): fix to
2010 not send ServiceDeleted multiple times in case of memory
2013 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
2014 get the base service name
2015 (dbus_bus_register_client): don't return base service name,
2016 instead store it on the DBusConnection and have an accessor
2018 (dbus_bus_register_client): rename dbus_bus_register()
2020 * bus/dispatch.c (check_hello_message): verify that other
2021 connections on the bus also got the correct results, not
2022 just the one sending hello
2024 2003-03-15 Havoc Pennington <hp@pobox.com>
2026 Make it pass the Hello handling test including all OOM codepaths.
2027 Now to do other messages...
2029 * bus/services.c (bus_service_remove_owner): fix crash when
2030 removing owner from an empty list of owners
2031 (bus_registry_ensure): don't leave service in the list of
2032 a connection's owned services if we fail to put the service
2035 * bus/connection.c (bus_connection_preallocate_oom_error): set
2036 error flag on the OOM error.
2038 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
2039 handle _dbus_transport_set_connection failure
2041 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
2042 to create watches up front and simply enable/disable them as
2044 (unix_connection_set): this can now fail on OOM
2046 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
2047 of enabling/disabling a watch or timeout.
2049 * bus/loop.c (bus_loop_iterate): don't touch disabled
2052 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
2054 2003-03-15 Havoc Pennington <hp@pobox.com>
2056 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
2057 write useful test code, after all that futzing around ;-)
2059 Test does not yet pass because we can't handle OOM in
2060 _dbus_transport_messages_pending (basically,
2061 dbus_connection_preallocate_send() does not prealloc the write
2062 watch). To fix this, I think we need to add new stuff to
2063 set_watch_functions, namely a SetEnabled function so we can alloc
2064 the watch earlier, then enable it later.
2066 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
2067 dbus-memory.c to the convenience lib
2069 * bus/test.c: rename some static functions to keep them clearly
2070 distinct from stuff in connection.c. Handle client disconnection.
2072 2003-03-14 Havoc Pennington <hp@pobox.com>
2074 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
2075 transport, tests more of the real codepath. Set up clients
2076 with bus_setup_debug_client.
2078 * bus/test.c (bus_setup_debug_client): function to set up debug
2079 "clients" on the main loop
2081 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
2084 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
2087 * dbus/dbus-server-debug.c: support a debug server based on pipes
2089 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
2090 (_dbus_close): new function
2092 * configure.in: check for socketpair
2094 2003-03-14 Havoc Pennington <hp@redhat.com>
2096 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
2099 * dbus/dbus-transport-debug.c: rework this a good bit to be
2100 less complicated. hopefully still works.
2102 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
2105 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
2108 * dbus/dbus-message.c (dbus_message_copy): rename from
2109 dbus_message_new_from_message, fix it up to copy
2110 all the message fields, add test case
2112 * bus/dispatch.c (bus_dispatch_test): add some more test code,
2113 not quite passing yet
2115 2003-03-14 Havoc Pennington <hp@pobox.com>
2117 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
2118 until no work remains" in test code. (the large diff here
2119 is just code movement, no actual changes)
2121 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
2122 1, no point waiting around for test code.
2123 (_dbus_server_debug_accept_transport): unref the timeout
2124 after adding it (right?)
2126 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
2128 2003-03-13 Havoc Pennington <hp@redhat.com>
2130 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
2133 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
2136 * dbus/dbus-connection.h: Make AddWatchFunction and
2137 AddTimeoutFunction return a bool so they can fail on out-of-memory
2139 * bus/bus.c (bus_context_new): set up timeout handlers
2141 * bus/connection.c (bus_connections_setup_connection): set up
2144 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
2147 * bus/bus.c (bus_context_new): adapt to changes
2149 * bus/connection.c: adapt to changes
2151 * test/watch.c: adapt to DBusWatch changes
2153 * bus/dispatch.c (bus_dispatch_test): started adding this but
2156 2003-03-14 Anders Carlsson <andersca@codefactory.se>
2158 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
2160 2003-03-13 Havoc Pennington <hp@pobox.com>
2162 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
2163 set up a test framework as for the library
2165 2003-03-12 Havoc Pennington <hp@pobox.com>
2167 Throughout: purge global variables, introduce BusActivation,
2168 BusConnections, BusRegistry, etc. objects instead.
2170 * bus/bus.h, bus/bus.c: introduce BusContext as a global
2173 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
2174 going to redo this a bit differently I think
2176 2003-03-12 Havoc Pennington <hp@redhat.com>
2178 Mega-patch that gets the message bus daemon initially handling
2179 out-of-memory. Work still needed. Also lots of random
2180 moving stuff to DBusError instead of ResultCode.
2182 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
2184 * dbus/dbus-connection.c
2185 (dbus_connection_send_with_reply_and_block): use DBusError
2187 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
2190 * dbus/dbus-connection.c (dbus_connection_send): drop the result
2191 code here, as the only failure possible is OOM.
2193 * bus/connection.c (bus_connection_disconnect):
2194 rename bus_connection_disconnected as it's a notification only
2196 * bus/driver.c (bus_driver_handle_acquire_service): don't free
2197 "name" on get_args failure, should be done by get_args;
2198 don't disconnect client for bad args, just return an error.
2199 (bus_driver_handle_service_exists): ditto
2201 * bus/services.c (bus_services_list): NULL-terminate returned array
2203 * bus/driver.c (bus_driver_send_service_lost)
2204 (bus_driver_send_service_acquired): send messages from driver to a
2205 specific client to the client's unique name, not to the broadcast
2208 * dbus/dbus-message.c (decode_header_data): reject messages that
2209 contain no name field
2210 (_dbus_message_get_client_serial): rename to
2211 dbus_message_get_serial and make public
2212 (_dbus_message_set_serial): rename from set_client_serial
2213 (_dbus_message_set_reply_serial): make public
2214 (_dbus_message_get_reply_serial): make public
2216 * bus/connection.c (bus_connection_foreach): allow stopping
2217 iteration by returning FALSE from foreach function.
2219 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
2220 (dbus_connection_free_preallocated_send)
2221 (dbus_connection_preallocate_send): new API for sending a message
2222 without possibility of malloc failure.
2223 (dbus_connection_send_message): rename to just
2224 dbus_connection_send (and same for whole function family)
2226 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
2228 * dbus/dbus-sysdeps.c (_dbus_exit): new function
2230 * bus/activation.c: handle/return errors
2232 * dbus/dbus-errors.h: add more DBUS_ERROR #define
2234 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
2235 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
2236 (_dbus_result_from_errno): move to this file
2238 2003-03-10 Anders Carlsson <andersca@codefactory.se>
2240 * dbus/dbus-marshal.c:
2241 (_dbus_marshal_set_string):
2242 Take a length argument so we can marshal the correct string
2245 (_dbus_marshal_dict), (_dbus_demarshal_dict),
2246 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
2247 (_dbus_marshal_test):
2248 * dbus/dbus-marshal.h:
2249 Add support for marshalling and demarshalling dicts.
2251 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2252 Add support for TYPE DICT.
2254 * dbus/dbus-message.c: (set_string_field):
2255 Adjust header padding.
2257 (dbus_message_append_args_valist), (dbus_message_append_dict),
2258 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
2259 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
2260 (check_message_handling), (check_have_valid_message):
2261 * dbus/dbus-message.h:
2262 Add functions for setting and getting dicts.
2264 * dbus/dbus-protocol.h:
2270 * doc/dbus-specification.sgml:
2271 Add information about how dicts are marshalled.
2273 * test/data/invalid-messages/dict-with-nil-value.message:
2274 * test/data/invalid-messages/too-short-dict.message:
2275 * test/data/valid-messages/dict-simple.message:
2276 * test/data/valid-messages/dict.message:
2277 Add sample messages containing dicts.
2279 2003-03-08 Anders Carlsson <andersca@codefactory.se>
2281 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
2283 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2286 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2287 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
2288 (dbus_dict_set_int32), (dbus_dict_set_uint32),
2289 (dbus_dict_set_double), (dbus_dict_set_string),
2290 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
2291 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
2292 (dbus_dict_set_string_array), (_dbus_dict_test):
2294 Fix according to comments from Havoc.
2296 2003-03-06 Michael Meeks <michael@server.home>
2298 * configure.in: if we don't have kde-config, disable have_qt.
2300 2003-03-07 Anders Carlsson <andersca@codefactory.se>
2305 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
2306 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
2307 (dbus_dict_remove), (dbus_dict_get_value_type),
2308 (dbus_dict_get_keys), (dbus_dict_put_boolean),
2309 (dbus_dict_put_int32), (dbus_dict_put_uint32),
2310 (dbus_dict_put_double), (dbus_dict_put_string),
2311 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
2312 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
2313 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
2314 (dbus_dict_get_int32), (dbus_dict_get_uint32),
2315 (dbus_dict_get_double), (dbus_dict_get_string),
2316 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
2317 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
2318 (dbus_dict_get_string_array), (_dbus_dict_test):
2320 Add DBusDict implementation
2322 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
2326 2003-03-04 Havoc Pennington <hp@pobox.com>
2328 * test/data/auth/*: adapt to changes
2330 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
2331 USERID_BASE64 and change USERNAME_BASE64 to put in username not
2334 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
2335 more stuff from being in a context name, to make the protocol
2336 simpler to deal with
2338 * dbus/dbus-errors.c (dbus_error_has_name): new function
2339 (dbus_error_is_set): new function
2341 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
2342 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
2344 * dbus/dbus-connection.c (dbus_connection_flush): also read
2345 messages during a flush operation
2347 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
2349 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2351 * configure.in: Check for gethostbyname on Solaris.
2353 * dbus/dbus-transport.c: (_dbus_transport_open):
2354 Remove duplicate "tcp" entry.
2356 * doc/dbus-specification.sgml:
2357 Clarify some things.
2359 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2361 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
2362 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
2363 (_dbus_keyring_test):
2364 * dbus/dbus-md5.c: (_dbus_md5_compute):
2365 * dbus/dbus-sha.c: (_dbus_sha_compute):
2368 2003-03-05 Anders Carlsson <andersca@codefactory.se>
2370 * README: Add some things.
2372 2003-03-04 Anders Carlsson <andersca@codefactory.se>
2374 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
2375 after case DBUS_TYPE_BOOELAN.
2377 2003-03-02 Havoc Pennington <hp@pobox.com>
2379 * test/break-loader.c (randomly_set_extreme_ints): add test that
2380 sets really huge and small integers
2382 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
2383 that length of boolean array fits in the string, and that
2384 string has room for boolean value in single-bool case.
2386 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
2387 optional value to "ALIGN" command which is what to fill the
2390 * test/data/valid-messages/no-padding.message: add regression
2391 test for the message padding problem
2393 2003-03-02 Havoc Pennington <hp@pobox.com>
2395 * dbus/dbus-message.c (decode_header_data): fix to always init
2396 message_padding, from Benjamin Dauvergne
2398 2003-03-02 Havoc Pennington <hp@pobox.com>
2404 2003-03-01 Joe Shaw <joe@assbarn.com>
2406 * configure.in: Check for "struct cmsgcred" and try to access its
2407 members for BSD-like unices.
2409 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
2410 _dbus_read_credentials_unix_socket().
2411 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
2412 read() for reading the credential byte off the unix socket. Use
2413 struct cmsgcred on systems that support it.
2415 2003-02-27 Alexander Larsson <alexl@redhat.com>
2419 Make gthreads-2.0 dependency optional. Don't build thread test if
2422 2003-02-27 Havoc Pennington <hp@pobox.com>
2424 * dbus/dbus-connection.c
2425 (dbus_connection_send_message_with_reply_and_block): fix doh!
2426 doh! doh! bug that resulted in never removing a reply from the
2427 queue, no wonder we called get_reply_serial so much ;-)
2429 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
2430 and client serial instead of demarshaling them every time
2432 2003-02-27 Havoc Pennington <hp@pobox.com>
2434 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
2435 more inlined, using dbus-string-private.h, speeds things up
2438 * dbus/dbus-string.c (_dbus_string_free): apply align offset
2439 when freeing the string
2440 (_dbus_string_steal_data): fix for align offset
2441 (undo_alignment): new function
2443 2003-02-26 Havoc Pennington <hp@redhat.com>
2445 All kinds of audit fixes from Owen, plus initial attempt to
2446 handle unaligned memory returned from malloc.
2448 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
2449 leave room for align_offset and nul byte
2450 (fixup_alignment): function to track an align_offset and
2451 ensure real->str is aligned
2452 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
2453 to allow a nul byte plus align offset
2454 (_dbus_string_lock): fix overflow issue
2455 (_dbus_string_init_const_len): add assertions on sanity of len,
2456 assign allocated to be ALLOCATION_PADDING larger than len
2457 (set_length): fixup the overflow handling
2458 (_dbus_string_get_data_len): fix overflow in assertion
2459 (open_gap): detect overflow in size of gap to be opened
2460 (_dbus_string_lengthen): add overflow check
2461 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
2462 (_dbus_string_append): add overflow check
2463 (_dbus_string_append_unichar): overflow
2464 (_dbus_string_delete): fix overflow in assertion
2465 (_dbus_string_copy_len): overflow in assertion
2466 (_dbus_string_replace_len): overflows in assertions
2467 (_dbus_string_find): change to implement in terms of
2468 _dbus_string_find_to
2469 (_dbus_string_find_to): assorted fixage
2470 (_dbus_string_equal_c_str): assert c_str != NULL,
2471 fix logic so the function works
2472 (_dbus_string_ends_with_c_str): fix overflow thingy
2473 (_dbus_string_base64_encode): overflow fix
2474 (_dbus_string_validate_ascii): overflow
2475 (_dbus_string_validate_nul): overflow
2477 2003-02-26 Havoc Pennington <hp@redhat.com>
2479 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
2481 2003-02-26 Alexander Larsson <alexl@redhat.com>
2484 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
2486 * dbus/dbus-connection.c:
2487 * dbus/dbus-connection.h:
2488 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
2489 Add dbus_connection_set_wakeup_main_function and use it when queueing
2490 incoming and outgoing messages.
2493 * dbus/dbus-dataslot.c:
2494 Threadsafe usage of DBusDataSlotAllocator
2496 * dbus/dbus-message.c: (dbus_message_get_args_iter):
2499 * dbus/dbus-server-unix.c:
2502 * glib/dbus-gmain.c:
2503 Implement the new wakeup functions for glib.
2506 * glib/test-thread-client.c:
2507 * glib/test-thread-server.c:
2508 * glib/test-thread.h:
2509 Initial cut at some thread test code. Not really done yet.
2511 2003-02-26 Havoc Pennington <hp@pobox.com>
2513 * dbus/dbus-connection.c
2514 (dbus_connection_send_message_with_reply_and_block): fix crash
2515 where we ref'd the outgoing message instead of the returned reply
2517 * dbus/dbus-transport-unix.c (do_authentication): check read watch
2518 at the end of this function, so if we didn't need to read for
2519 authentication, we reinstall it for receiving messages
2521 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
2522 a NULL sender for peer-to-peer case
2524 * dbus/dbus-transport-unix.c (check_read_watch): handle
2525 !authenticated case correctly
2527 * glib/dbus-gmain.c: add support for DBusServer
2529 * dbus/dbus-server.c: add data slot support
2531 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
2532 return values and handle errors
2534 * dbus/dbus-dataslot.c: factor out the data slot stuff from
2537 * Doxyfile.in (INPUT): add glib subdir
2539 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
2540 setup_with_g_main instead of hookup_with_g_main; write docs
2542 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2544 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
2545 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2546 * dbus/dbus-message.c: (dbus_message_append_boolean),
2547 (dbus_message_append_boolean_array),
2548 (dbus_message_get_args_valist), (_dbus_message_test):
2549 * dbus/dbus-message.h:
2550 * doc/dbus-specification.sgml:
2551 Various fixes as pointed out by Havoc.
2553 * test/data/invalid-messages/bad-boolean-array.message:
2554 * test/data/invalid-messages/bad-boolean.message:
2555 Add invalid boolean value test cases.
2557 2003-02-24 Anders Carlsson <andersca@codefactory.se>
2559 * dbus/dbus-internals.c: (_dbus_type_to_string):
2560 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2561 (_dbus_marshal_validate_arg):
2562 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2563 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2564 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
2565 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
2566 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
2567 (dbus_message_iter_get_double),
2568 (dbus_message_iter_get_boolean_array), (message_iter_test):
2569 * dbus/dbus-message.h:
2570 * dbus/dbus-protocol.h:
2571 * doc/dbus-specification.sgml:
2572 * test/data/valid-messages/lots-of-arguments.message:
2573 Add support for boolean and boolean array types.
2575 2003-02-23 Havoc Pennington <hp@pobox.com>
2577 * dbus/dbus-keyring.c: finish most of this implementation and
2580 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
2581 these barf if the error isn't cleared to NULL
2583 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
2584 (_dbus_create_directory): new function
2586 * dbus/dbus-errors.c (dbus_set_error): fix warning
2588 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
2589 (_dbus_string_hex_decode): new function
2590 (test_hex_roundtrip): test code
2592 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
2594 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
2596 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
2597 the save-to-temp/rename trick to atomically write the new file
2598 (_dbus_string_parse_uint): new function
2600 2003-02-22 Havoc Pennington <hp@pobox.com>
2602 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
2604 2003-02-22 Havoc Pennington <hp@pobox.com>
2606 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
2607 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
2609 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
2611 * dbus/test/data/sha-1: add US government test suite for SHA-1
2613 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2615 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2616 Make string arrays NULL-terminated.
2618 * dbus/dbus-memory.c: (dbus_free_string_array):
2619 * dbus/dbus-memory.h:
2620 New function for freeing NULL-terminated string arrays.
2622 * dbus/dbus-message-builder.c: (append_quoted_string),
2623 (_dbus_message_data_load):
2624 Add support for array types.
2626 * dbus/dbus-message.c: (check_message_handling):
2627 Add more types as test cases.
2629 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
2630 (_dbus_string_parse_double):
2631 Add the start offset to the end offset.
2633 * test/data/valid-messages/lots-of-arguments.message:
2634 New test message with lots of arguments.
2636 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2638 * dbus/dbus-message.c: (dbus_message_append_nil),
2639 (dbus_message_append_int32), (dbus_message_append_uint32),
2640 (dbus_message_append_double), (dbus_message_append_string),
2641 (dbus_message_append_int32_array),
2642 (dbus_message_append_uint32_array),
2643 (dbus_message_append_double_array),
2644 (dbus_message_append_byte_array),
2645 (dbus_message_append_string_array):
2646 Fix all out-of-memory handling in these functions.
2648 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2650 * dbus/dbus-message.c: (dbus_message_append_nil):
2653 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2655 * dbus/dbus-message.c: (dbus_message_append_args_valist),
2656 (dbus_message_append_nil), (dbus_message_append_int32_array),
2657 (dbus_message_append_uint32_array),
2658 (dbus_message_append_double_array),
2659 (dbus_message_append_byte_array),
2660 (dbus_message_append_string_array), (dbus_message_get_args_valist),
2661 (dbus_message_iter_get_int32_array),
2662 (dbus_message_iter_get_uint32_array),
2663 (dbus_message_iter_get_double_array),
2664 (dbus_message_iter_get_byte_array),
2665 (dbus_message_iter_get_string_array):
2667 * dbus/dbus-message.h:
2668 Add functions for appending and getting arrays.
2670 2003-02-21 Anders Carlsson <andersca@codefactory.se>
2672 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
2673 element size at least 8 bytes, fixes mempool tests on
2676 2003-02-20 Alexander Larsson <alexl@redhat.com>
2678 * dbus/dbus-transport-unix.c (unix_do_iteration):
2679 Unlock the connection mutex during a blocking select call.
2680 Add todo about how we need a way to wake up the select.
2682 * dbus/dbus-connection-internal.h:
2683 * dbus/dbus-connection.c:
2684 Add _dbus_connection_lock and _dbus_connection_unlock.
2686 2003-02-19 Havoc Pennington <hp@pobox.com>
2688 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
2689 Doxyfile.in, not Doxyfile
2691 * dbus/dbus-keyring.c: do some hacking on this
2693 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
2695 * dbus/dbus-errors.c (dbus_set_error_const): do not call
2697 (dbus_set_error): remove dbus_error_init, check for message ==
2698 NULL *before* we sprintf into it, and add @todo about including
2699 system headers in this file
2701 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
2703 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
2705 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
2706 get various bits of user information based on either username
2708 (_dbus_homedir_from_username): new function
2710 2003-02-19 Anders Carlsson <andersca@codefactory.se>
2713 Add check for nonposix getpwnam_r
2715 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
2716 Align the pool element size to a sizeof (void *) boundary.
2718 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
2719 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
2720 General Solaris fixes.
2722 * test/data/valid-messages/simplest-manual.message:
2723 Explicitly state that we want little-endian packing.
2725 2003-02-19 Mikael Hallendal <micke@codefactory.se>
2727 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2729 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
2730 Added to create a transport connecting using a tcp/ip socket.
2732 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
2733 to a tcp socket at given host and port.
2734 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
2737 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
2739 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2740 Added to create a server listening on a TCP/IP socket.
2742 2003-02-19 Havoc Pennington <hp@pobox.com>
2744 Throughout: mop up all the Doxygen warnings and undocumented
2747 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
2748 to search any paths.
2750 * dbus/dbus-threads.c: move global mutex initializers to
2751 dbus-internals.h, multiple prototypes was confusing doxygen
2752 besides being kind of ugly
2754 * Doxyfile (PREDEFINED): have Doxygen define
2755 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
2756 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
2757 (do not abuse the feature! it's for stuff like the autogenerated
2758 macros in dbus-md5.c, not just for things you don't feel like
2761 2003-02-18 Havoc Pennington <hp@pobox.com>
2763 * dbus/dbus-string.c (_dbus_string_zero): new function
2765 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
2766 wrap it in some dbus-friendly API
2768 * dbus/dbus-types.h: add 16-bit types
2770 2003-02-18 Joe Shaw <joe@assbarn.com>
2772 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
2773 credentials from our currently running process.
2774 (get_word): Fix a buglet where we were copying the entire length
2775 instead of relative to our position.
2777 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
2778 keys on the stack... it's 640k of data.
2780 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
2781 read the credentials byte off the socket, even if we don't have
2783 (_dbus_poll): Implement poll() using select() for systems which
2786 * glib/test-dbus-glib.c (main): Print out an error if no
2787 parameters are given.
2789 * test/data/auth/fallback.auth-script: Added. Tests that a client
2790 can fallback to a secondary auth mechanism if the first fails.
2792 2003-02-18 Havoc Pennington <hp@pobox.com>
2796 2003-02-17 Havoc Pennington <hp@pobox.com>
2798 * doc/dbus-specification.sgml: lots of cosmetic
2799 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
2800 env variable to DBUS_BUS_ADDRESS, s/client/application/,
2801 s/server/bus/ (except in authentication section). Add a section
2802 "Message Bus Message Routing"
2804 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
2810 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2812 * doc/dbus-specification.sgml:
2813 Specification updates.
2815 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2817 * bus/activation.c: (bus_activation_init), (child_setup),
2818 (bus_activation_activate_service):
2820 * bus/main.c: (main):
2821 Set DBUS_ADDRESS environment variable.
2823 * dbus/dbus-errors.c: (dbus_set_error):
2824 Don't use va_copy since that's a C99 feature.
2826 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
2827 (_dbus_spawn_async):
2828 * dbus/dbus-sysdeps.h:
2829 Add child_setup_func to _dbus_spawn_async.
2831 * doc/dbus-specification.sgml:
2832 Update specification.
2834 * test/spawn-test.c: (setup_func), (main):
2837 2003-02-17 Alexander Larsson <alexl@redhat.com>
2839 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
2842 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2846 * doc/dbus-test-plan.sgml:
2847 Add test plan document.
2852 2003-02-17 Anders Carlsson <andersca@codefactory.se>
2854 * dbus/dbus-message.c: (decode_header_data),
2855 (_dbus_message_loader_return_buffer):
2856 Set the header padding amount when loading a message.
2858 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2860 * bus/dispatch.c: (send_one_message):
2861 Only send broadcast messages to registered connections.
2863 * dbus/dbus-message.c: (dbus_message_name_is):
2864 * dbus/dbus-message.h:
2865 New convenience function.
2867 * dbus/dbus-transport-debug.c: (do_reading):
2868 Only dispatch one message per run.
2871 * test/bus-test.c: (new_connection_callback), (die),
2872 (test_hello_client1_handler), (test_hello_client2_handler),
2873 (test_hello_replies), (main):
2875 * test/bus-test-loop.[ch]:
2878 2003-02-16 Havoc Pennington <hp@pobox.com>
2880 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
2881 backward conditional
2883 2003-02-16 Alexander Larsson <alexl@redhat.com>
2885 * dbus/dbus-connection.c:
2886 Implement sent_message_with_reply. (with_reply_and block is still
2888 Made dispatch_message not lose message if OOM.
2890 * dbus/dbus-errors.h:
2891 Add NoReply error (for reply timeouts).
2893 2003-02-16 Alexander Larsson <alexl@redhat.com>
2895 * dbus/dbus-hash.c (_dbus_hash_table_unref):
2896 Actually free keys and values when destroying hashtable.
2898 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2900 * dbus/dbus-auth.c: (client_try_next_mechanism):
2903 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
2904 Return TRUE if there's no thread implementation around.
2906 * glib/dbus-gmain.c: (free_source),
2907 (dbus_connection_hookup_with_g_main):
2908 Make sure to remove the GSource when the connection is finalized.
2910 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2912 * bus/dispatch.c: (bus_dispatch_message_handler):
2913 * dbus/dbus-errors.h:
2914 Return an error if someone tries to send a message to a service
2917 2003-02-16 Anders Carlsson <andersca@codefactory.se>
2919 * bus/activation.c: (load_directory), (bus_activation_init),
2920 (bus_activation_activate_service):
2923 (bus_driver_handle_activate_service), (bus_driver_handle_message):
2924 More work on the activation handling.
2926 * dbus/dbus-errors.h:
2927 Add some error messages
2929 * dbus/dbus-message.c: (dbus_message_new_error_reply):
2930 * dbus/dbus-message.h:
2931 New function that creates an error message.
2933 * dbus/dbus-protocol.h:
2934 Add ACTIVATE_SERVER message.
2936 * dbus/dbus-server-unix.c: (unix_handle_watch),
2937 (_dbus_server_new_for_domain_socket):
2938 Call _dbus_fd_set_close_on_exec.
2940 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
2941 (_dbus_spawn_async), (_dbus_disable_sigpipe),
2942 (_dbus_fd_set_close_on_exec):
2943 * dbus/dbus-sysdeps.h:
2944 Add _dbus_fd_set_close_on exec function. Also add function that checks
2945 that all open fds are set to close-on-exec and warns otherwise.
2947 * dbus/dbus-transport-unix.c:
2948 (_dbus_transport_new_for_domain_socket):
2949 Call _dbus_fd_set_close_on_exec.
2951 2003-02-16 Havoc Pennington <hp@pobox.com>
2953 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
2954 allow people to avoid setting SIGPIPE to SIG_IGN
2955 (_dbus_connection_new_for_transport): disable SIGPIPE unless
2956 we've been asked not to
2958 2003-02-15 Anders Carlsson <andersca@codefactory.se>
2960 * dbus/dbus-list.c: (_dbus_list_append_link),
2961 (_dbus_list_prepend_link):
2962 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
2966 2003-02-15 Anders Carlsson <andersca@codefactory.se>
2969 * bus/activation.c: (bus_activation_entry_free),
2970 (add_desktop_file_entry), (load_directory), (bus_activation_init):
2972 * bus/main.c: (main):
2973 Add simple activation support, doesn't work yet though.
2975 2003-02-15 Zack Rusin <zack@kde.org>
2977 * qt/dbus-qthread.cpp: small casting fix
2979 2003-02-15 Anders Carlsson <andersca@codefactory.se>
2981 * dbus/dbus-errors.c: (dbus_set_error):
2982 * dbus/dbus-errors.h:
2983 Add a few errors and make dbus_set_error void.
2985 * dbus/dbus-sysdeps.c:
2986 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
2987 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
2988 * dbus/dbus-sysdeps.h:
2989 Add _dbus_spawn_async.
2991 * test/spawn-test.c: (main):
2992 Test for _dbus_spawn_async.
2994 2003-02-15 Anders Carlsson <andersca@codefactory.se>
2996 * dbus/dbus-internals.h:
2997 Fix build without tests.
2999 * dbus/dbus-list.c: (alloc_link):
3000 Fix a segfault when a malloc fails.
3002 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
3003 (dbus_malloc0), (dbus_realloc):
3004 Add support for malloc debugging.
3006 2003-02-15 Alexander Larsson <alexl@redhat.com>
3008 * dbus/dbus-threads.c:
3009 * dbus/dbus-threads.h:
3010 Add condvars. Remove static mutext from API.
3011 Implement static mutexes by initializing them from threads_init.
3013 * glib/dbus-gthread.c:
3014 * qt/dbus-qthread.cpp:
3015 Update with the thread api changes.
3020 Turn StaticMutex into normal mutex + init function.
3021 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
3022 _dbus_list_append_link, _dbus_list_prepend_link
3025 * dbus/dbus-sysdeps.c:
3026 * dbus/dbus-sysdeps.h:
3027 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
3028 _dbus_atomic_dec. Only slow fallback implementation at the moment.
3030 * dbus/dbus-protocol.h:
3031 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
3033 * dbus/dbus-message.c:
3034 Make ref/unref atomic.
3037 * dbus/dbus-connection-internal.h:
3038 * dbus/dbus-connection.c:
3039 * dbus/dbus-connection.h:
3041 Change _peek to _borrow,_return & _steal_borrowed.
3042 Change disconnect callback to event.
3043 Make dbus_connection_dispatch_messages reentrant.
3045 * dbus/dbus-transport.c:
3046 Don't ref the connection on calls to the transport
3049 * dbus/dbus-message-handler.c:
3052 * glib/dbus-gmain.c:
3053 Don't use peek_message anymore
3056 * test/debug-thread.c:
3057 * test/debug-thread.h:
3058 Simple thread implementation that asserts() on deadlocks in
3059 single-threaded code.
3062 (main) Call debug_threads_init.
3065 Use disconnect message instead of disconnect callback.
3069 Don't call dbus_connection_set_disconnect_function. Instead export
3070 bus_connection_disconnect.
3073 Call bus_connection_disconnect when we get a disconnected message.
3075 2003-02-15 Havoc Pennington <hp@pobox.com>
3077 * dbus/dbus-message.c (dbus_message_new): fool around with the
3080 2003-02-14 Havoc Pennington <hp@pobox.com>
3082 * dbus/dbus-mempool.c: fail if the debug functions so indicate
3084 * dbus/dbus-memory.c: fail if the debug functions indicate we
3087 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
3088 (_dbus_decrement_fail_alloc_counter): debug functions to
3089 simulate memory allocation failures
3091 2003-02-14 Havoc Pennington <hp@pobox.com>
3093 * dbus/dbus-errors.h (struct DBusError): add a word of padding
3096 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3098 * bus/driver.c: (bus_driver_handle_hello):
3100 * bus/services.c: (bus_service_lookup):
3101 Reorder message sending so we get a more sane order.
3103 * test/bus-test.c: (message_handler):
3106 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3108 * bus/driver.c: (bus_driver_send_service_deleted),
3109 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3110 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3111 (bus_driver_send_welcome_message),
3112 (bus_driver_handle_list_services),
3113 (bus_driver_handle_acquire_service),
3114 (bus_driver_handle_service_exists):
3115 * dbus/dbus-bus.c: (dbus_bus_register_client),
3116 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3117 * dbus/dbus-errors.c: (dbus_result_to_string):
3118 * dbus/dbus-errors.h:
3119 * dbus/dbus-message.c: (dbus_message_append_args),
3120 (dbus_message_append_args_valist), (dbus_message_get_args),
3121 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
3122 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
3123 (dbus_message_iter_get_byte_array),
3124 (dbus_message_iter_get_string_array), (message_iter_test),
3125 (check_message_handling), (_dbus_message_test):
3126 * dbus/dbus-message.h:
3127 * test/bus-test.c: (main):
3128 Change fields to arguments in messages, so that they won't be
3129 confused with header fields.
3131 * glib/test-dbus-glib.c: (main):
3132 Remove append_fields from hello message.
3134 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3136 * dbus/dbus-errors.c:
3137 * dbus/dbus-message.c:
3138 * dbus/dbus-string.c:
3139 Documentation fixes.
3141 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3143 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
3145 Implement support for timeouts in dbus-glib.
3147 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3149 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
3150 * dbus/dbus-message.c: (process_test_subdir):
3151 * test/break-loader.c: (find_breaks_based_on):
3152 Plug some memory leaks.
3154 2003-02-13 Richard Hult <rhult@codefactory.se>
3156 * bus/main.c: Fix build.
3158 * dbus/dbus-errors.h:
3159 * dbus/dbus-errors.c: Fix copyright for Anders.
3161 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3166 * bus/connection.c: (bus_connection_foreach):
3169 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
3170 (unescape_string), (new_section), (parse_section_start),
3171 (parse_key_value), (report_error), (bus_desktop_file_load),
3172 (bus_desktop_file_get_string):
3173 * bus/desktop-file.h:
3174 Use DBusError for error reporting.
3176 * bus/dispatch.c: (send_one_message),
3177 (bus_dispatch_message_handler):
3178 * bus/driver.c: (bus_driver_send_service_deleted),
3179 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3180 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
3181 (bus_driver_send_welcome_message),
3182 (bus_driver_handle_list_services),
3183 (bus_driver_handle_acquire_service),
3184 (bus_driver_handle_service_exists):
3185 * bus/loop.c: (bus_loop_run):
3187 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
3189 * bus/utils.c: (bus_wait_for_memory):
3191 New files with general utility functions.
3193 * dbus/dbus-internals.h:
3194 Remove _DBUS_HANDLE_OOM.
3196 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3198 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
3199 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
3200 * dbus/dbus-errors.h:
3201 Add DBusError structure.
3203 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3205 * test/data/valid-messages/standard-acquire-service.message:
3206 * test/data/valid-messages/standard-hello.message:
3207 * test/data/valid-messages/standard-list-services.message:
3208 * test/data/valid-messages/standard-service-exists.message:
3209 Add some standard messages.
3211 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3213 * bus/driver.c: (bus_driver_send_welcome_message),
3214 (bus_driver_handle_list_services),
3215 (bus_driver_handle_acquire_service),
3216 (bus_driver_handle_service_exists), (bus_driver_handle_message):
3217 Update for API changes in libdbus.
3219 * dbus/dbus-message.c: (dbus_message_new_reply):
3220 * dbus/dbus-message.h:
3221 Remove the name argument. The spec states that replies shouldn't
3224 2003-02-13 Anders Carlsson <andersca@codefactory.se>
3226 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
3227 (report_error), (bus_desktop_file_load), (lookup_section),
3228 (lookup_line), (bus_desktop_file_get_raw),
3229 (bus_desktop_file_get_string):
3230 * bus/desktop-file.h:
3231 Some fixes, and new functions for getting a key value from a section.
3233 2003-02-13 Havoc Pennington <hp@pobox.com>
3235 * test/data/auth/fail-after-n-attempts.auth-script: new test
3237 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
3240 2003-02-13 Havoc Pennington <hp@pobox.com>
3242 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
3243 dbus_credentials_match were backward
3245 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
3246 NO_CREDENTIALS and ROOT_CREDENTIALS
3248 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
3249 into here. Never process more commands after we've reached an
3250 end state; store further data as unused bytes.
3252 * test/data/auth/*: add more auth tests
3254 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
3255 command to match exact string and EXPECT_UNUSED to match unused
3258 * test/Makefile.am (dist-hook): fix to dist all the test stuff
3260 2003-02-12 Havoc Pennington <hp@pobox.com>
3262 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
3263 \r off of popped lines
3265 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
3268 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
3271 2003-02-12 Havoc Pennington <hp@pobox.com>
3273 * dbus/Makefile.am: remove break-loader from the build, since it
3276 * configure.in: add --enable-gcov to turn on coverage profiling
3277 flags and disable optimization
3279 2003-02-10 Havoc Pennington <hp@pobox.com>
3281 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
3282 initial cut at test framework for DBusAuth from laptop.
3283 Doesn't quite work yet but it compiles and I need to get
3284 it off the 266mhz laptop. ;-)
3286 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
3287 fix a memleak in error case
3289 2003-02-12 Anders Carlsson <andersca@codefactory.se>
3292 * bus/desktop-file.c:
3293 * bus/desktop-file.h:
3294 Add a desktop file parser.
3296 2003-02-11 Zack Rusin <zack@kde.org>
3298 * qt/message.[h|cpp]: sample implementation
3299 of the KDE wrapper for DBusMessage
3301 2003-02-09 Zack Rusin <zack@kde.org>
3303 * test/bus-test.c: make_it_compile
3304 * doc/dbus-specification.sgml: minimal semantic fix
3306 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3312 2003-02-06 Anders Carlsson <andersca@codefactory.se>
3315 * dbus/dbus-break-loader.c:
3317 * test/break-loader.c:
3318 Move dbus-break-loader to test/ and rename it to break-loader.
3320 2003-02-02 Havoc Pennington <hp@pobox.com>
3322 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
3323 for code to manage cookies in your home directory
3325 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
3327 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
3328 to authenticate, then disconnect the client.
3330 2003-02-03 Alexander Larsson <alexl@redhat.com>
3332 * dbus/dbus-message.c (dbus_message_append_fields):
3335 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3337 * doc/dbus-specification.sgml:
3338 Update address format section.
3340 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3343 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
3344 (message_handler), (new_connection_callback), (loop_quit),
3348 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3350 * bus/driver.c: (bus_driver_handle_service_exists):
3351 Simplify the code a bit.
3353 * dbus/dbus-bus.c: (dbus_bus_service_exists):
3356 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3359 Add libdbus-daemon.la and link to it.
3361 2003-02-01 James Willcox <jwillcox@gnome.org>
3363 * bus/driver.c: (bus_driver_handle_own_service):
3364 Actually include the service reply code in the message.
3366 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3368 * bus/driver.c: (bus_driver_handle_service_exists):
3369 Don't unref the incoming message.
3371 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3373 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
3375 2003-02-02 Anders Carlsson <andersca@codefactory.se>
3377 * dbus/dbus-server.c: (dbus_server_listen):
3378 * dbus/dbus-transport.c: (_dbus_transport_open):
3379 ifdef out the calls to the debug transport and server.
3381 2003-02-02 Alexander Larsson <alexl@redhat.com>
3383 * dbus/dbus-watch.c (dbus_watch_get_flags):
3384 Add note in the docs that ERROR or HANGUP won't be returned
3385 and are assumed always on.
3387 * glib/dbus-gmain.c (add_watch):
3388 Always add IO_ERR | IO_HUP
3390 * dbus/dbus-message.h:
3391 Add semicolon after dbus_message_iter_get_string_array().
3392 Makes qt code build again
3394 2003-02-01 Anders Carlsson <andersca@codefactory.se>
3396 * bus/driver.c: (create_unique_client_name),
3397 (bus_driver_handle_hello):
3398 Don't take a name, just use a numeric id to identify
3402 * dbus/dbus-bus.c: (dbus_bus_register_client),
3403 (dbus_bus_acquire_service), (dbus_bus_service_exists):
3405 Add new convenience functions for communicating with the bus.
3407 * dbus/dbus-message.h:
3409 * dbus/dbus-protocol.h:
3412 2003-02-01 Alexander Larsson <alexl@redhat.com>
3414 * dbus/dbus-message.c (dbus_message_append_fields):
3415 Add some more doc comments.
3417 2003-02-01 Havoc Pennington <hp@pobox.com>
3419 * dbus/dbus-break-loader.c (randomly_modify_length): change
3420 a 4-byte value in the message as if it were a length
3422 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
3423 execute bit on saved files
3425 2003-02-01 Havoc Pennington <hp@pobox.com>
3427 * dbus/dbus-break-loader.c (main): new program to find messages
3428 that break the loader.
3430 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
3431 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
3433 * dbus/dbus-string.c (_dbus_string_set_byte): new
3435 2003-01-31 Havoc Pennington <hp@pobox.com>
3437 * dbus/dbus-message.c: refactor the test code to be more general,
3438 in preparation for writing a "randomly permute test cases to
3439 try to break the loader" program.
3441 2003-01-31 Havoc Pennington <hp@pobox.com>
3443 * doc/dbus-specification.sgml: work on the specification
3445 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
3446 the protocol version of the message.
3448 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
3449 no longer specifies that.
3450 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
3453 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
3454 "break" for DBUS_TYPE_NIL, remove @todo
3456 2003-01-31 Havoc Pennington <hp@pobox.com>
3458 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
3459 just set_is_error/get_is_error as this is a commonly-used
3460 function, and write docs.
3462 2003-01-31 Anders Carlsson <andersca@codefactory.se>
3464 * dbus/dbus-address.c: (dbus_address_entry_free):
3465 Free key and value lists.
3467 * dbus/dbus-internals.c: (_dbus_type_to_string):
3468 Add the types we didn't have.
3470 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
3471 (_dbus_marshal_validate_arg):
3474 * dbus/dbus-message.c: (dbus_message_set_sender):
3475 Remove todo about being able to set sender to NULL.
3477 (dbus_message_set_is_error_reply),
3478 (dbus_message_get_is_error_reply):
3479 * dbus/dbus-message.h:
3482 * dbus/dbus-protocol.h:
3483 Add error reply flag.
3485 * test/data/valid-messages/opposite-endian.message:
3486 Add NIL type to test.
3488 2003-01-31 Havoc Pennington <hp@pobox.com>
3490 * doc/dbus-specification.sgml: fully specify the header. Add
3491 flags and major protocol version, and change header/body len to
3494 * dbus/dbus-message-builder.c (append_saved_length): append length
3497 * dbus/dbus-message.c (dbus_message_create_header): change header
3498 length and body length to unsigned. Add the new fields from the
3500 (_dbus_message_loader_return_buffer): unsigned header/body len
3502 2003-01-30 Havoc Pennington <hp@pobox.com>
3504 * dbus/dbus-auth.c: rework to use only REJECTED, no
3507 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
3508 use REJECTED, suggested by Mark McLoughlin
3510 2003-01-30 Havoc Pennington <hp@pobox.com>
3512 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
3513 a better way to report errors here. e.g. "unix address lacks
3514 path" or something. also "no such file" when the path doesn't
3517 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
3519 (dbus_parse_address): add @todo about documenting address format,
3520 and allowing , and ; to be escaped
3522 2003-01-30 Anders Carlsson <andersca@codefactory.se>
3525 Add dbus-address.[ch]
3527 * dbus/dbus-address.c: (dbus_address_entry_free),
3528 (dbus_address_entries_free), (create_entry),
3529 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
3530 (dbus_parse_address), (_dbus_address_test):
3531 * dbus/dbus-address.h:
3532 New files for dealing with address parsing.
3534 * dbus/dbus-connection.c:
3535 Document timeout functions.
3537 * dbus/dbus-message.c:
3538 Document dbus_message_new_from_message.
3540 * dbus/dbus-server-debug.c:
3543 * dbus/dbus-server.c: (dbus_server_listen):
3544 Parse address and use correct server implementation.
3546 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
3547 * dbus/dbus-string.h:
3548 New function with test.
3550 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
3554 * dbus/dbus-transport-debug.c:
3557 * dbus/dbus-transport.c: (_dbus_transport_open):
3558 Parse address and use correct transport implementation.
3560 2003-01-30 Havoc Pennington <hp@pobox.com>
3562 * dbus/dbus-message.c: use message->byte_order instead of
3563 DBUS_COMPILER_BYTE_ORDER throughout.
3564 (dbus_message_create_header): pad header to align the
3565 start of the body of the message to 8-byte boundary
3567 * dbus/dbus-marshal.h: make all the demarshalers take const
3568 DBusString arguments.
3570 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
3571 validate message args here, so we don't have to do slow validation
3572 later, and so we catch bad messages as they are incoming. Also add
3573 better checks on header_len and body_len. Also fill in
3576 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
3577 implemented properly)
3578 (_dbus_string_validate_nul): new function to check all-nul
3580 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
3581 get_arg_end_pos and remove all validation
3582 (_dbus_marshal_validate_arg): actually do validation here.
3584 2003-01-29 Havoc Pennington <hp@pobox.com>
3586 * dbus/dbus-message.c (check_message_handling): fix assertion
3587 failure on set_client_serial
3589 2003-01-28 Havoc Pennington <hp@pobox.com>
3591 * dbus/dbus-server-debug.c: Add doc section comments
3593 * dbus/dbus-transport-debug.c: add doc section comments
3595 2003-01-28 Havoc Pennington <hp@redhat.com>
3597 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
3598 the reverse order from how I had it
3599 (_dbus_string_base64_encode): reverse encoding order. I was
3600 basically byteswapping everything during encoding.
3602 2003-01-28 Anders Carlsson <andersca@codefactory.se>
3604 * dbus/dbus-connection-internal.h:
3605 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
3606 (_dbus_connection_remove_timeout):
3607 Add functions for adding and removing timeouts.
3609 * dbus/dbus-message.c: (dbus_message_new_from_message):
3610 Add new function that takes a message and creates an exact
3611 copy of it, but with the refcount set to 1.
3612 (check_message_handling):
3615 * dbus/dbus-server-protected.h:
3616 * dbus/dbus-server.c: (_dbus_server_init_base),
3617 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
3618 (dbus_server_set_timeout_functions):
3619 (_dbus_server_remove_timeout):
3620 New functions so that a server can add and remove timeouts.
3622 (dbus_server_listen):
3623 Add commented out call to dbus_server_debug_new.
3625 * dbus/dbus-timeout.c: (_dbus_timeout_new):
3626 Actually set the handler, doh.
3628 * dbus/dbus-transport.c: (_dbus_transport_open):
3629 Add commented out call to dbus_transport_debug_client_new.
3632 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
3634 2003-01-28 Havoc Pennington <hp@pobox.com>
3636 * dbus/dbus-message.c (check_message_handling): function to check
3637 on the loaded message, iterates over it etc.
3639 2003-01-28 Havoc Pennington <hp@pobox.com>
3641 * test/Makefile.am (dist-hook): fix make distdir
3643 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
3645 2003-01-27 Havoc Pennington <hp@pobox.com>
3647 * dbus/dbus-mempool.c (time_for_size): replace printf with
3650 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
3651 empty lines; fix the SAVE_LENGTH stuff to be
3652 START_LENGTH/END_LENGTH so it actually works; couple other
3655 * test/Makefile.am (dist-hook): add dist-hook for .message files
3657 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
3658 can be constant or locked.
3659 (_dbus_string_free): allow freeing a const string as
3662 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
3664 * dbus/dbus-test-main.c (main): take an argument which is the
3665 directory containing test data
3667 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
3668 argument to this and load all the messages in test/data/
3669 checking that they can be loaded or not loaded as appropriate.
3671 2003-01-27 Anders Carlsson <andersca@codefactory.se>
3673 * bus/dispatch.c: (bus_dispatch_message_handler):
3674 Dispatch messages sent to services.
3676 * bus/driver.c: (bus_driver_send_service_deleted),
3677 (bus_driver_send_service_created), (bus_driver_send_service_lost),
3678 (bus_driver_send_service_acquired):
3679 Add helper functions for sending service related messages.
3681 (bus_driver_send_welcome_message):
3682 Send HELLO_REPLY instead of WELCOME.
3684 (bus_driver_handle_list_services):
3685 Send LIST_SERVICES_REPLY instead of SERVICES.
3687 (bus_driver_handle_own_service),
3688 (bus_driver_handle_service_exists):
3689 New message handlers.
3691 (bus_driver_handle_message):
3692 Invoke new message handlers.
3694 (bus_driver_remove_connection):
3695 Don't remove any services here since that's done automatically
3696 by bus_service_remove_owner now.
3699 New function signatures.
3701 * bus/services.c: (bus_service_add_owner):
3702 Send ServiceAcquired message if we're the only primary owner.
3704 (bus_service_remove_owner):
3705 Send ServiceAcquired/ServiceLost messages.
3707 (bus_service_set_prohibit_replacement),
3708 (bus_service_get_prohibit_replacement):
3709 Functions for setting prohibit replacement.
3711 (bus_service_has_owner):
3712 New function that checks if a connection is in the owner queue of
3716 Add new function signatures.
3718 * dbus/dbus-list.c: (_dbus_list_test):
3719 Add tests for _dbus_list_remove_last and traversing the list backwards.
3722 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
3723 go any further, so return NULL then.
3725 * dbus/dbus-protocol.h:
3726 Add new messages, service flags and service replies.
3728 2003-01-26 Havoc Pennington <hp@pobox.com>
3730 * dbus/dbus-message-builder.c: implement, completely untested.
3732 * test/data/*: add data to be used in testing.
3733 ".message" files are our simple loadable text format.
3734 ".message-raw" will be binary dumps of messages.
3736 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
3738 2003-01-26 Havoc Pennington <hp@pobox.com>
3740 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
3742 * dbus/dbus-errors.c (dbus_result_to_string): add
3745 * dbus/dbus-message-builder.c: new file, will contain code to load
3746 up messages from files. Not implemented yet.
3748 2003-01-26 Havoc Pennington <hp@pobox.com>
3750 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
3751 the sender by setting to NULL
3753 2003-01-26 Havoc Pennington <hp@pobox.com>
3755 The unit tests pass, but otherwise untested. If it breaks, the
3756 tests should have been better. ;-)
3758 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
3761 * dbus/dbus-message.c: redo everything so we maintain
3762 message->header as the only copy of the various fields.
3763 This avoids the possibility of out-of-memory in some cases,
3764 for example dbus_message_lock() can't run out of memory anymore,
3765 and avoids extra copying. Figured I may as well go ahead and do
3766 this since it was busted for dbus_message_lock to not return
3767 failure on OOM, and dbus_message_write_header was totally
3768 unchecked for OOM. Also fixed some random other bugs.
3770 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
3771 that strings are nul-terminated. Also, end_pos can be equal
3772 to string length just not greater than, I think.
3773 (_dbus_marshal_set_int32): new function
3774 (_dbus_marshal_set_uint32): new function
3775 (_dbus_marshal_set_string): new function
3777 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
3778 a warning, init timeout_list to NULL
3779 (dbus_connection_send_message): don't use uninitialized variable
3782 * dbus/dbus-string.c (_dbus_string_replace_len): new function
3784 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3786 * bus/driver.c: (bus_driver_handle_hello),
3787 (bus_driver_send_welcome_message):
3790 2003-01-26 Anders Carlsson <andersca@codefactory.se>
3792 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
3793 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3794 (dbus_connection_unref):
3795 * dbus/dbus-marshal.c: (_dbus_marshal_test):
3796 * dbus/dbus-message.c: (dbus_message_unref),
3799 (dbus_message_get_fields):
3800 Remove debugging printout.
3802 (_dbus_message_loader_return_buffer):
3803 Don't store the header string.
3805 (_dbus_message_test):
3808 2003-01-26 Richard Hult <rhult@codefactory.se>
3810 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
3811 the file descriptor list, since it can change under us.
3813 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3815 * glib/dbus-gmain.c: (dbus_connection_prepare),
3816 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
3817 (remove_watch), (dbus_connection_hookup_with_g_main):
3818 Rewrite the glib handling to use its own GSource instead of a
3819 GIOChannel so we can catch messages put in the queue while waiting
3822 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3825 * bus/connection.c: (connection_disconnect_handler),
3826 (connection_watch_callback), (bus_connection_setup):
3827 * bus/dispatch.c: (send_one_message),
3828 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
3829 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
3831 * bus/driver.c: (bus_driver_send_service_deleted),
3832 (bus_driver_send_service_created), (bus_driver_handle_hello),
3833 (bus_driver_send_welcome_message),
3834 (bus_driver_handle_list_services), (bus_driver_remove_connection),
3835 (bus_driver_handle_message):
3837 Refactor code, put the message dispatching in its own file. Use
3838 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
3841 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3843 * dbus/dbus-internals.h:
3844 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
3846 * dbus/dbus-message.c: (dbus_message_get_sender):
3847 * dbus/dbus-message.h:
3848 Implement dbus_message_get_sender.
3850 * dbus/dbus-protocol.h:
3851 Add message and service defines.
3853 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3855 * dbus/dbus-connection.c: (dbus_connection_send_message):
3856 * dbus/dbus-message-internal.h:
3857 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
3858 (dbus_message_write_header):
3859 Remove _dbus_messag_unlock and don't set the client serial on a
3860 message if one already exists.
3862 2003-01-24 Havoc Pennington <hp@pobox.com>
3864 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
3867 * bus/driver.c (bus_driver_handle_list_services): fix a leak
3870 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3872 * dbus/dbus-list.c: (alloc_link), (free_link):
3873 Use a memory pool for the links.
3875 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3877 * bus/connection.c: (bus_connection_foreach):
3879 Add new bus_connection_foreach function.
3881 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
3882 Add function that broadcasts a message to all clients.
3884 (bus_driver_send_service_created), (bus_driver_handle_hello),
3885 (bus_driver_send_welcome_message),
3886 (bus_driver_handle_list_services), (bus_driver_message_handler):
3887 Implement functions that take care of listing services, and notifying
3888 clients when new services are created.
3890 * bus/services.c: (bus_services_list):
3892 Add new function that returns an array of strings with the currently
3893 registered services.
3896 * glib/dbus-gmain.c:
3897 Update copyright year.
3899 2003-01-25 Anders Carlsson <andersca@codefactory.se>
3901 * dbus/dbus-connection.c: (dbus_connection_send_message):
3902 Unlock the message in case it was sent earlier.
3904 (dbus_connection_send_message_with_reply_and_block):
3905 Remove the reply message from the list.
3907 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
3908 Set array_len and new_pos correctly.
3910 (_dbus_marshal_test):
3911 Remove debug output.
3913 * dbus/dbus-message-internal.h:
3914 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
3915 New function that returns the reply serial.
3917 (_dbus_message_unlock):
3918 New function that unlocks a message and resets its header.
3920 (dbus_message_append_string_array),
3921 (dbus_message_get_fields_valist),
3922 (dbus_message_iter_get_field_type),
3923 (dbus_message_iter_get_string_array),
3924 (dbus_message_get_fields),
3925 (dbus_message_append_fields_valist):
3926 Handle string arrays.
3928 (dbus_message_set_sender):
3929 Make this function public since the bus daemon needs it.
3931 (decode_header_data):
3932 Set the reply serial to -1 initially.
3934 * dbus/dbus-message.h:
3935 Add dbus_message_set_sender.
3937 2003-01-24 Havoc Pennington <hp@pobox.com>
3939 * doc/dbus-specification.sgml: add some stuff
3941 2003-01-22 Havoc Pennington <hp@pobox.com>
3943 * doc/dbus-specification.sgml: Start to document the protocol.
3945 2003-01-22 Havoc Pennington <hp@pobox.com>
3947 * dbus/dbus-connection.c
3948 (dbus_connection_send_message_with_reply_and_block): add some @todo
3950 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
3952 2003-01-21 Havoc Pennington <hp@pobox.com>
3954 (patch untested because can't compile)
3956 * bus/driver.c (create_unique_client_name): make this function
3957 never recycle client names. Also, caller should initialize
3960 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
3962 2003-01-21 Anders Carlsson <andersca@codefactory.se>
3964 * dbus/dbus-marshal.c: (_dbus_marshal_double),
3965 (_dbus_marshal_int32), (_dbus_marshal_uint32),
3966 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
3967 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
3968 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3969 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3970 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
3971 * dbus/dbus-marshal.h:
3972 * dbus/dbus-protocol.h:
3973 Add support for marshalling and demarshalling integer, double
3976 2003-01-21 Anders Carlsson <andersca@codefactory.se>
3981 * bus/connection.c: (connection_disconnect_handler):
3982 Remove the connection from the bus driver's list.
3984 (connection_watch_callback): Dispatch messages.
3986 (free_connection_data): Free connection name.
3988 (bus_connection_setup): Add connection to the bus driver's list.
3989 (bus_connection_remove_owned_service):
3990 (bus_connection_set_name), (bus_connection_get_name):
3991 Add functions for setting and getting the connection's name.
3994 Add function headers.
3996 * bus/driver.c: (create_unique_client_name),
3997 (bus_driver_handle_hello_message),
3998 (bus_driver_send_welcome_message), (bus_driver_message_handler),
3999 (bus_driver_add_connection), (bus_driver_remove_connection):
4002 * bus/services.c: (bus_service_free):
4004 New file that handles communication and registreation with the bus
4007 2003-01-21 Anders Carlsson <andersca@codefactory.se>
4009 * dbus/dbus-connection.c: (dbus_connection_send_message):
4010 Add a new client_serial parameter.
4012 (dbus_connection_send_message_with_reply):
4013 Remove a @todo since we've implemented the blocking function.
4015 (dbus_connection_send_message_with_reply_and_block):
4016 New function that sends a message and waits for a reply and
4017 then returns the reply.
4019 * dbus/dbus-connection.h:
4022 * dbus/dbus-errors.c: (dbus_result_to_string):
4023 * dbus/dbus-errors.h:
4024 Add new DBUS_RESULT.
4026 * dbus/dbus-message-internal.h:
4027 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
4028 (_dbus_message_set_sender), (dbus_message_write_header),
4029 (dbus_message_new_reply), (decode_header_data),
4030 (_dbus_message_loader_return_buffer), (_dbus_message_test):
4031 * dbus/dbus-message.h:
4032 Add new functions that set the reply serial and sender.
4033 Also marshal and demarshal them correctly and add test.
4035 * dbus/dbus-protocol.h:
4036 Add new DBUS_MESSAGE_TYPE_SENDER.
4039 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
4040 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
4041 (dbus_connection_hookup_with_g_main):
4042 * glib/test-dbus-glib.c: (main):
4043 Rewrite to use GIOChannel and remove the GSource crack.
4045 * test/echo-client.c: (main):
4046 * test/watch.c: (check_messages):
4047 Update for changed APIs
4049 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4051 * dbus/Makefile.am: Add dbus-timeout.[cħ]
4053 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
4054 Create a DBusTimeoutList.
4055 (dbus_connection_set_timeout_functions): Add new function to
4056 set timeout callbacks
4058 * dbus/dbus-connection.h: Add public DBusTimeout API.
4060 * dbus/dbus-message.c: (dbus_message_get_service):
4061 * dbus/dbus-message.h: New function.
4063 * dbus/dbus-server.c: Fix small doc typo.
4065 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
4067 2003-01-19 Anders Carlsson <andersca@codefactory.se>
4069 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
4070 of the string, just as long as specified.
4072 2003-01-19 Havoc Pennington <hp@pobox.com>
4074 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
4077 * dbus/dbus-server.c (dbus_server_set_max_connections)
4078 (dbus_server_get_max_connections, dbus_server_get_n_connections):
4079 keep track of current number of connections, and add API for
4080 setting a max (but haven't implemented enforcing the max yet)
4082 2003-01-18 Havoc Pennington <hp@pobox.com>
4084 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
4085 reading/writing if read_watch != NULL or write_watch != NULL.
4087 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
4088 the message loader code to actually load message->header and
4089 message->body into the newly-created message.
4091 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
4094 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
4095 (dbus_connection_get_max_message_size)
4096 (dbus_connection_set_max_live_messages_size)
4097 (dbus_connection_get_max_live_messages_size): implement some
4098 resource limitation functions
4100 * dbus/dbus-resources.c: new file implementing some of the
4101 resource limits stuff
4103 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
4104 missing docs, add @todo to handle OOM etc.
4106 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
4109 2003-01-18 Havoc Pennington <hp@pobox.com>
4111 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
4112 connection if it hasn't been already.
4114 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
4115 replace with DisconnectFunction.
4117 2003-01-18 Havoc Pennington <hp@pobox.com>
4119 Building --disable-verbose-mode --disable-asserts --disable-tests
4120 cuts the library from 112K to 45K or so
4122 * configure.in: check for varargs macro support,
4123 add --enable-verbose-mode, --enable-asserts.
4125 * dbus/dbus-internals.h (_dbus_assert): support
4127 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
4129 2003-01-18 Havoc Pennington <hp@pobox.com>
4131 * dbus/dbus-test.c: include config.h so that tests actually run
4133 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
4134 so the failure mode when that assumption fails will be plenty
4137 2003-01-18 Havoc Pennington <hp@pobox.com>
4139 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
4141 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
4144 * test/Makefile.am: don't use special variable "TESTS" for echo-*
4145 since we don't want to use those in make check
4147 2003-01-15 Havoc Pennington <hp@redhat.com>
4153 2003-01-15 Havoc Pennington <hp@redhat.com>
4155 * test/Makefile.am: fix so that test source code ends up in the
4156 distribution on make distcheck
4158 2003-01-15 Havoc Pennington <hp@redhat.com>
4164 2003-01-15 Havoc Pennington <hp@redhat.com>
4166 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
4167 fix build when --disable-tests
4169 * Makefile.am (EXTRA_DIST): put HACKING in here
4171 * HACKING: document procedure for making a tarball release.
4173 2003-01-14 Anders Carlsson <andersca@codefactory.se>
4175 * bus/connection.c: (connection_error_handler),
4176 (bus_connection_setup):
4177 * bus/main.c: (main):
4178 Make sure that the DBusConnectionData struct is NULLed
4179 out to prevent a segfault.
4181 * dbus/dbus-errors.c: (dbus_result_to_string):
4182 * dbus/dbus-errors.h:
4183 * dbus/dbus-message.c: (dbus_message_get_fields),
4184 (dbus_message_get_fields_valist), (_dbus_message_test):
4185 * dbus/dbus-message.h:
4186 Make dbus_message_get_fields return a result code so we can
4187 track invalid fields as well as oom.
4189 2003-01-11 Havoc Pennington <hp@pobox.com>
4191 * configure.in: change --enable-test/--enable-ansi action-if-given
4192 to enable_foo=$enableval instead of enable_foo=yes
4194 2003-01-08 Havoc Pennington <hp@pobox.com>
4196 * dbus/dbus-string.c (_dbus_string_align_length): new function
4198 * dbus/dbus-test-main.c: move main() for test app here
4200 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
4201 symbol to run tests, because dbus-test isn't in the main
4204 Code review nitpicks.
4206 * dbus/dbus-message.c (dbus_message_write_header): add newlines
4207 for people with narrow emacs ;-). Assert client_serial was filled
4208 in. Assert message->name != NULL.
4209 (dbus_message_append_fields): have "first_field_type" arg separate
4210 from va list, needed for C++ binding that also uses varargs IIRC
4211 and helps with type safety
4212 (dbus_message_new): add @todo about using DBusString to store
4213 service/name internally
4214 (dbus_message_new): don't leak ->service and ->name on OOM later
4216 (dbus_message_unref): free the service name
4217 (dbus_message_get_fields): same change to varargs
4218 i.e. first_field_type
4219 (_dbus_message_loader_return_buffer): assert that the message data
4220 is aligned (if not it's a bug in our code). Put in verbose griping
4221 about why we set corrupted = TRUE.
4222 (decode_header_data): add FIXME that char* is evil. Was going to
4223 add FIXME about evil locale-specific string.h strncmp, but just
4224 switched to wacky string-as-uint32 optimization. Move check for
4225 "no room for field name" above get_const_data_len() to avoid
4226 assertion failure in get_const_data_len if we have trailing 2
4227 bytes or the like. Check for service and name fields being
4228 provided twice. Don't leak service/name on error. Require field
4229 names to be aligned to 4 bytes.
4231 * dbus/dbus-marshal.c: move byte swap stuff to header
4232 (_dbus_pack_int32): uscore-prefix
4233 (_dbus_unpack_int32): uscore-prefix
4234 (_dbus_unpack_uint32): export
4235 (_dbus_demarshal_string): add @todo complaining about use of
4237 (_dbus_marshal_get_field_end_pos): add @todo about bad error
4238 handling allowing corrupt data to go unchecked
4240 2003-01-08 Havoc Pennington <hp@redhat.com>
4242 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
4243 to the select() as needed for authentication. (should be using
4244 _dbus_poll() not select, but for another day)
4246 * dbus/dbus.h: include dbus/dbus-protocol.h
4248 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4250 * dbus/Makefile.am (dbusinclude_HEADERS): Install
4253 2003-01-08 Anders Carlsson <andersca@codefactory.se>
4255 * dbus/dbus-internals.c: (_dbus_type_to_string):
4256 New function that returns a string describing a type.
4258 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
4259 * dbus/dbus-marshal.h:
4260 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
4261 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
4262 (dbus_message_iter_get_byte_array):
4263 * dbus/dbus-message.h:
4264 Add new convenience functions for appending and getting message fields.
4265 Also add demarshalling routines for byte arrays.
4267 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4269 * dbus/dbus-connection-internal.h:
4270 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
4271 (_dbus_connection_get_next_client_serial),
4272 (dbus_connection_send_message):
4273 * dbus/dbus-internals.h:
4274 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
4275 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
4276 (_dbus_marshal_uint32), (_dbus_demarshal_double),
4277 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
4278 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
4279 (_dbus_verbose_bytes), (_dbus_marshal_test):
4280 * dbus/dbus-marshal.h:
4281 * dbus/dbus-message-internal.h:
4282 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
4283 (dbus_message_write_header), (_dbus_message_lock),
4284 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
4285 (dbus_message_get_name), (dbus_message_append_int32),
4286 (dbus_message_append_uint32), (dbus_message_append_double),
4287 (dbus_message_append_string), (dbus_message_append_byte_array),
4288 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
4289 (dbus_message_iter_unref), (dbus_message_iter_has_next),
4290 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
4291 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
4292 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
4293 (decode_header_data), (_dbus_message_loader_return_buffer),
4294 (message_iter_test), (_dbus_message_test):
4295 * dbus/dbus-message.h:
4296 * dbus/dbus-protocol.h:
4297 * dbus/dbus-test.c: (main):
4299 * glib/test-dbus-glib.c: (message_handler), (main):
4300 * test/echo-client.c: (main):
4301 * test/watch.c: (check_messages):
4302 Make messages sendable and receivable for real.
4304 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4306 * dbus/dbus-marshal.c: (_dbus_marshal_double),
4307 (_dbus_marshal_string), (_dbus_marshal_byte_array):
4308 * dbus/dbus-message.c: (dbus_message_append_int32),
4309 (dbus_message_append_uint32), (dbus_message_append_double),
4310 (dbus_message_append_string), (dbus_message_append_byte_array):
4311 Handle OOM restoration.
4313 2003-01-07 Anders Carlsson <andersca@codefactory.se>
4315 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4316 (_dbus_demarshal_string), (_dbus_marshal_test):
4317 * dbus/dbus-marshal.h:
4318 * dbus/dbus-message.c: (dbus_message_get_name),
4319 Document these functions.
4321 (dbus_message_append_int32), (dbus_message_append_uint32),
4322 (dbus_message_append_double), (dbus_message_append_string),
4323 (dbus_message_append_byte_array):
4324 * dbus/dbus-message.h:
4325 Add functions for adding message fields of different types.
4327 * dbus/dbus-protocol.h:
4328 Add the different types.
4330 2003-01-05 Havoc Pennington <hp@pobox.com>
4332 * bus/connection.c: implement routines for handling connections,
4333 first thing is keeping a list of owned services on each connection
4334 and setting up watches etc.
4336 * bus/services.c: implement a mapping from service names to lists
4339 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
4341 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
4342 to use static mutexes for global data
4344 * dbus/dbus-connection.c (dbus_connection_set_data): add new
4345 collection of functions to set/get application-specific data
4346 on the DBusConnection.
4348 2003-01-04 Havoc Pennington <hp@pobox.com>
4350 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
4351 (_dbus_poll): new function
4353 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
4356 * bus/loop.c: initial code for the daemon main loop
4358 2003-01-04 Havoc Pennington <hp@pobox.com>
4360 * test/watch.c (error_handler): make it safe if the error handler
4361 is called multiple times (if we s/error handler/disconnect
4362 handler/ we should just guarantee it's called only once)
4364 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
4365 error handler on disconnect (it's quite possible we should
4366 just change the error handler to a "disconnect handler," I'm
4367 not sure we have any other meaningful errors)
4369 * configure.in: check for getpwnam_r
4371 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4372 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
4373 mechanism as in SASL spec, using socket credentials
4375 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
4376 (_dbus_send_credentials_unix_socket): new function
4378 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
4380 (_dbus_write): only check errno if <0 returned
4381 (_dbus_write_two): ditto
4383 2003-01-02 Anders Carlsson <andersca@codefactory.se>
4385 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
4386 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
4387 (_dbus_marshal_test):
4388 * dbus/dbus-marshal.h:
4389 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
4390 to _dbus_marshal_utf8_string. Also fix some tests.
4392 2002-12-28 Harri Porten <porten@kde.org>
4394 * configure.in: added check for C++ compiler and a very cheesy
4395 check for the Qt integration
4397 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
4399 * qt/Makefile.am: added
4401 * qt/.cvsignore: added
4403 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
4404 latter, added #ifdef QT_THREAD_SUPPORT guard.
4406 * dbus/Makefile.am: added missing headers for make dist
4408 2002-12-28 Kristian Rietveld <kris@gtk.org>
4410 * dbus/Makefile.am: fixup export-symbols-regex.
4412 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4414 * acinclude.m4: Add this file and put the
4415 PKG_CHECK_MODULE macro in it.
4417 2002-12-27 Anders Carlsson <andersca@codefactory.se>
4419 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4420 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4421 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4422 (_dbus_marshal_test):
4423 Make the demarshalling routines align the pos argument.
4424 Add string marshalling tests and fix the obvious bugs
4427 2002-12-26 Havoc Pennington <hp@pobox.com>
4429 * dbus/dbus-auth.c: fixes fixes fixes
4431 * dbus/dbus-transport-unix.c: wire up support for
4432 encoding/decoding data on the wire
4434 * dbus/dbus-auth.c (_dbus_auth_encode_data)
4435 (_dbus_auth_decode_data): append to target string
4436 instead of nuking it.
4438 2002-12-26 Havoc Pennington <hp@pobox.com>
4440 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
4441 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
4444 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
4445 avoid swap_bytes() overhead (ignoring possible assembly stuff for
4446 now). Main point is because I wanted unpack_uint32 to implement
4448 (_dbus_verbose_bytes): new function
4450 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
4452 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
4453 mechanism to handle a corrupt message stream
4454 (_dbus_message_loader_new): fix preallocation to only prealloc,
4457 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
4458 (_dbus_string_test): enhance tests for copy/move and fix the
4461 * dbus/dbus-transport-unix.c: Hold references in more places to
4462 avoid reentrancy problems
4464 * dbus/dbus-transport.c: ditto
4466 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
4467 leak reference count in no-message case
4469 * test/watch.c (do_mainloop): handle adding/removing watches
4470 during iteration over the watches. Also, ref the connection/server
4471 stored on a watch, so we don't try to mangle a destroyed one.
4473 * dbus/dbus-transport-unix.c (do_authentication): perform
4476 * dbus/dbus-auth.c (get_state): add a state
4477 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
4478 (_dbus_auth_get_unused_bytes): append the unused bytes
4479 to the passed in string, rather than prepend
4481 * dbus/dbus-transport.c (_dbus_transport_init_base): create
4482 the auth conversation DBusAuth
4484 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
4485 (_dbus_transport_new_for_domain_socket): when creating a
4486 transport, pass in whether it's a client-side or server-side
4487 transport so we know which DBusAuth to create
4489 2002-12-03 Havoc Pennington <hp@pobox.com>
4491 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
4492 _after_ finalizing the derived members
4493 (unix_connection_set): unref watch if we fail to add it
4495 * dbus/dbus-connection.c (dbus_connection_unref): delete the
4496 transport first, so that the connection owned by the
4497 transport will be valid as the transport finalizes.
4499 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
4500 if necessary, and remove watches from the connection.
4502 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
4504 2002-12-26 Anders Carlsson <andersca@codefactory.se>
4506 * dbus/dbus-marshal.c: (_dbus_marshal_string),
4507 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4508 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
4509 (_dbus_marshal_test):
4510 * dbus/dbus-marshal.h:
4511 Add string marshal functions and have the demarshal functions
4512 return the new position.
4514 2002-12-25 Havoc Pennington <hp@pobox.com>
4516 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
4517 it is a simple protocol that just maps directly to SASL.
4519 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
4520 initial implementation, not actually used yet.
4522 * dbus/dbus-string.c (_dbus_string_find): new function
4523 (_dbus_string_equal): new function
4524 (_dbus_string_base64_encode): new function
4525 (_dbus_string_base64_decode): new function
4527 2002-12-25 Anders Carlsson <andersca@codefactory.se>
4530 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
4531 (_dbus_marshal_int32), (_dbus_marshal_uint32),
4532 (_dbus_demarshal_double), (_dbus_demarshal_int32),
4533 (_dbus_demarshal_uint32), (_dbus_marshal_test):
4534 * dbus/dbus-marshal.h:
4535 * dbus/dbus-protocol.h:
4536 * dbus/dbus-test.c: (main):
4538 Add un-optimized marshalling/demarshalling routines.
4540 2002-12-25 Harri Porten <porten@kde.org>
4542 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
4544 2002-12-24 Zack Rusin <zack@kde.org>
4546 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
4547 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
4550 2002-12-24 Havoc Pennington <hp@pobox.com>
4552 * glib/dbus-gthread.c: fix include
4554 * glib/dbus-glib.h: rename DBusMessageHandler for now.
4555 I think glib API needs to change, though, as you don't
4556 want to use DBusMessageFunction, you want to use the
4557 DBusMessageHandler object. Probably
4558 dbus_connection_open_with_g_main_loop()
4559 and dbus_connection_setup_g_main_loop() or something like that
4560 (but think of better names...) that just create a connection
4561 that has watch/timeout functions etc. already set up.
4563 * dbus/dbus-connection.c
4564 (dbus_connection_send_message_with_reply): new function just to
4565 show how the message handler helps us deal with replies.
4567 * dbus/dbus-list.c (_dbus_list_remove_last): new function
4569 * dbus/dbus-string.c (_dbus_string_test): free a string that
4572 * dbus/dbus-hash.c: use memory pools for the hash entries
4573 (rebuild_table): be more paranoid about overflow, and
4574 shrink table when we can
4575 (_dbus_hash_test): reduce number of sprintfs and write
4576 valid C89. Add tests for case where we grow and then
4577 shrink the hash table.
4579 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
4581 * dbus/dbus-connection.c (dbus_connection_register_handler)
4582 (dbus_connection_unregister_handler): new functions
4584 * dbus/dbus-message.c (dbus_message_get_name): new
4586 * dbus/dbus-list.c: fix docs typo
4588 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
4589 an object representing a handler for messages.
4591 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4594 * glib/dbus-gthread.c: (dbus_gthread_init):
4595 Don't use the gdbus prefix for public functions.
4597 2002-12-16 Anders Carlsson <andersca@codefactory.se>
4601 Add GLib checks and fixup .pc files
4605 * glib/dbus-gmain.c: (gdbus_connection_prepare),
4606 (gdbus_connection_check), (gdbus_connection_dispatch),
4607 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
4608 (dbus_connection_gsource_new):
4609 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
4610 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
4611 * glib/test-dbus-glib.c: (message_handler), (main):
4614 2002-12-15 Harri Porten <porten@kde.org>
4616 * autogen.sh: check for libtoolize before attempting to use it
4618 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
4621 * .cvsignore: ignore more stamp files
4623 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
4625 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
4626 without make install.
4628 2002-12-15 Havoc Pennington <hp@pobox.com>
4630 * dbus/dbus-threads.c: add thread stubs that a higher library
4631 layer can fill in. e.g. the GLib wrapper might fill them in with
4632 GThread stuff. We still need to use this thread API to
4633 thread-safe-ize the library.
4635 2002-12-12 Havoc Pennington <hp@pobox.com>
4637 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
4638 below new interfaces and include fewer system headers.
4640 * dbus/dbus-sysdeps.c (_dbus_read): new function
4641 (_dbus_write): new function
4642 (_dbus_write_two): new function
4643 (_dbus_connect_unix_socket): new function
4644 (_dbus_listen_unix_socket): new function
4646 * dbus/dbus-message-internal.h: change interfaces to use
4649 2002-12-11 Havoc Pennington <hp@pobox.com>
4651 * dbus/dbus-types.h: add dbus_unichar
4653 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
4655 * dbus/dbus-connection.c (dbus_connection_send_message): return
4658 * dbus/dbus-transport.c: include dbus-watch.h
4660 * dbus/dbus-connection.c: include dbus-message-internal.h
4662 * HACKING: add file with coding guidelines stuff.
4664 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
4665 handling here, for security purposes (as in vsftpd). Not actually
4666 using this class yet.
4668 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
4669 system/libc usage here, as in vsftpd, for ease of auditing (and
4670 should also simplify portability). Haven't actually moved all the
4671 system/libc usage into here yet.
4673 2002-11-25 Havoc Pennington <hp@pobox.com>
4675 * dbus/dbus-internals.c (_dbus_verbose): fix to not
4676 always print the first verbose message.
4678 2002-11-24 Havoc Pennington <hp@pobox.com>
4680 * test/echo-client.c, test/echo-server.c: cheesy test
4683 * configure.in (AC_CHECK_FUNCS): check for writev
4685 * dbus/dbus-message.c (_dbus_message_get_network_data): new
4688 * dbus/dbus-list.c (_dbus_list_foreach): new function
4690 * dbus/dbus-internals.c (_dbus_verbose): new function
4692 * dbus/dbus-server.c, dbus/dbus-server.h: public object
4693 representing a server that listens for connections.
4695 * dbus/.cvsignore: create
4697 * dbus/dbus-errors.h, dbus/dbus-errors.c:
4698 public API for reporting errors
4700 * dbus/dbus-connection.h, dbus/dbus-connection.c:
4701 public object representing a connection that
4702 sends/receives messages. (Same object used for
4703 both client and server.)
4705 * dbus/dbus-transport.h, dbus/dbus-transport.c:
4706 Basic abstraction for different kinds of stream
4707 that we might read/write messages from.
4709 2002-11-23 Havoc Pennington <hp@pobox.com>
4711 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
4714 * dbus/dbus-test.c (main): add list test, and include
4715 dbus-test.h as intended
4717 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
4718 (_dbus_hash_table_remove_int): return value indicates
4719 whether the entry existed to remove
4721 * dbus/dbus-list.c: add linked list utility class,
4724 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
4727 2002-11-23 Havoc Pennington <hp@pobox.com>
4729 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
4730 DBUS_END_DECLS to nothing, that should fix this once and for all
4732 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
4734 * dbus/dbus-message.c, dbus/dbus-hash.c:
4735 add some missing @brief
4737 2002-11-23 Havoc Pennington <hp@pobox.com>
4739 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
4740 to avoid confusing Doxygen
4742 * dbus/dbus-hash.c: @} not }@
4744 * dbus/dbus-message.c (struct DBusMessage): split out
4747 2002-11-23 Havoc Pennington <hp@pobox.com>
4749 * configure.in: pile on more warning flags if using gcc
4751 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
4752 to document static functions
4754 * configure.in: add summary to end of configure so it
4755 looks nice and attractive
4757 * dbus/dbus-hash.c: finish implementation and write unit
4760 * configure.in: add --enable-tests to enable unit tests
4762 * dbus/dbus-test.c: test program to run unit tests
4763 for all files in dbus/*, initially runs a test for
4766 * dbus/dbus-internals.h: file to hold some internal utility stuff
4768 2002-11-22 Havoc Pennington <hp@redhat.com>
4770 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
4771 "ported" away from Tcl
4773 * dbus/dbus-types.h: header for types such as dbus_bool_t
4775 2002-11-22 Havoc Pennington <hp@redhat.com>
4777 * dbus/dbus.h: fixups for doc warnings
4779 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
4781 (QUIET): make it quiet so we can see warnings
4783 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
4785 2002-11-22 Havoc Pennington <hp@redhat.com>
4787 * Makefile.am: include "Doxyfile" target in all-local
4789 * configure.in: generate the Doxyfile
4791 * Doxyfile.in: move Doxyfile here, so we can use
4792 configure to generate a Doxyfile with the right
4795 2002-11-22 Havoc Pennington <hp@redhat.com>
4797 * dbus/dbus-message.c: move inline docs into .c file
4799 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
4800 so all docs are under doc/
4801 (MAN_EXTENSION): generate man pages. Use extension
4802 ".3dbus" which matches ".3qt" on my system,
4803 I guess this is OK, I don't know really.
4804 (FILE_PATTERNS): look for .c files not .h, makes sense
4807 2002-11-22 Havoc Pennington <hp@pobox.com>
4809 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
4810 because any app can be a server, and any app can be a client,
4811 the bus is a special kind of server.
4813 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
4815 * Doxyfile : adding. Still needs Makefile rules to be generated
4816 automatically (just run "doxygen" in the toplevel dir for now to
4819 * dbus/dbus-message.h : Adding sample docs (javadoc since
4820 resembles gtk-doc a little more)
4822 * dbus/dbus.h : Adding sample docs
4824 2002-11-21 Havoc Pennington <hp@redhat.com>
4826 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
4827 so we can allow ourselves to include files directly,
4828 instead of having to use dbus.h
4830 * dbus/dbus.h: fill in
4832 * dbus/dbus-message.h: sketch out a sample header file.
4833 Include griping if you include it directly instead of
4836 * dbus/dbus-macros.h: new file with macros for extern "C",
4837 TRUE/FALSE, NULL, etc.
4839 * doc/file-boilerplate.c: put include guards in here
4841 2002-11-21 Havoc Pennington <hp@redhat.com>
4843 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
4845 * COPYING: include the GPL as well, and license code
4846 under both AFL and GPL.
4848 2002-11-21 Havoc Pennington <hp@redhat.com>
4850 * acconfig.h: get rid of this
4852 * autogen.sh (run_configure): add --no-configure option
4854 * configure.in: remove AC_ARG_PROGRAM to make
4855 autoconf complain less. add AC_PREREQ.
4856 add AC_DEFINE third arg.
4858 2002-11-21 Anders Carlsson <andersca@codefactory.se>
4861 Fix references so we can distcheck.
4863 2002-11-21 Havoc Pennington <hp@redhat.com>
4865 * Initial module creation