1 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
3 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4 * dbus/bus.c (dbus_bus_get_unix_user)
5 * doc/dbus-specification.xml: implement GetConnectionUnixUser
6 method of org.freedesktop.DBus interface.
8 * bus/dispatch.c: test case
10 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
12 * python/Makefile.am: switched include directory from glib/ to dbus/
13 since dbus-glib.h moved
15 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
17 * configure.in: prevent building the gcj stuff and libxml loader
18 since they are broken.
20 2004-06-20 Havoc Pennington <hp@redhat.com>
22 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
23 codes from the dbus error names
25 * glib/dbus-glib.h: move to subdir dbus/ since it's included
26 as dbus/dbus-glib.h and that breakage is now visible due to
27 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
29 * glib/dbus-glib.h: s/gproxy/g_proxy/
31 * dbus/dbus-shared.h: new header to hold stuff shared with
34 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
37 * glib/dbus-glib.h (dbus_set_g_error): move to
40 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
41 of stuff to enable this
43 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
45 * a bunch of other changes with the same basic "separate glib
46 bindings from dbus.h" theme
48 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
50 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
52 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
54 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
56 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
57 the reply value of the ServiceExists message.
59 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
61 * python/dbus_bindings.pyx.in: No longer need to parse path
62 elements and pass them as arrays of strings. The C API now
63 accepts plain path strings.
64 (_build_parsed_path): removed
66 2004-06-07 Havoc Pennington <hp@redhat.com>
68 * doc/TODO: remove auto-activation item since it's done; sort
69 items by importance/milestone
71 2004-06-07 Havoc Pennington <hp@redhat.com>
73 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
74 random signature when using REQUIRED_FIELDS (this hack won't work
77 * dbus/dbus-message.c: change the signature to be a header field,
78 instead of message->signature special-case string. Incremental
79 step forward. Then we can fix up code to send the signature in the
80 message, then fix up code to validate said signature, then fix up
81 code to not put the typecodes inline, etc.
82 (load_one_message): don't make up the signature after the fact
83 (decode_header_data): require signature field for the known
86 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
88 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
90 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
92 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
94 * mono/Handler.cs: Updated to follow new path argument for
95 (un-)registering objects.
97 * mono/example/Makefile.am:
99 * configure.in: Bumped required version for mono and use new -pkg
102 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
104 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
105 registration functions take the path argument as char* instead of
108 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
109 split off the path decompostion part of
110 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
113 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
115 2004-06-02 Kristian Høgsberg <krh@redhat.com>
117 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
118 machine approach. A state is implemented as a function that
119 handles incoming events as specified for that state.
121 * doc/dbus-specification.xml: Update auth protocol state machine
122 specification to match implementation. Remove some leftover
125 2004-06-02 Kristian Høgsberg <krh@redhat.com>
127 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
128 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
131 * Doxyfile.in: remove deprecated options.
133 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
134 glib/test-thread.h, glib/test-thread-client.c,
135 glib/test-thread-server.c, glib/test-profile.c,
136 glib/test-dbus-glib.c: remove these unused files.
138 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
140 * dbus/dbus-object-tree.c
141 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
142 non-fallback handlers (bug #684).
143 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
144 (find_subtree_recurse): report wether the returned subtree is an
145 exact match or a "fallback" match higher up in the tree.
146 (object_tree_test_iteration): update test case.
148 2004-06-01 Seth Nickell <seth@gnome.org>
150 * python/dbus_bindings.pyx.in:
151 * python/tests/test-client.py:
153 Round off basic type support. Add dicts (yay!), and
154 remaining array types.
156 Make MessageIter more general so it works for dicts too.
158 Mark all loop variables as C integers.
160 2004-05-31 Havoc Pennington <hp@redhat.com>
162 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
165 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
167 * glib/dbus-glib-tool.c (main): set up to have a --self-test
168 option that runs the tests, and start filling in some code
169 including for starters just dumping the interfaces to stdout
171 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
173 * test/data/valid-introspection-files/lots-of-types.xml: test of
174 an example introspection file
176 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
179 2004-05-31 Seth Nickell <seth@gnome.org>
181 * python/dbus_bindings.pyx.in:
182 * python/tests/test-client.py:
187 Fix string array memory trashing bug... oops...
189 2004-05-30 Seth Nickell <seth@gnome.org>
193 Add a nicer-but-less-flexible alternate API for handling
194 calls to virtual objects in dbus.ObjectTree.
196 Screw up the argument order to the dbus.Object constructor
197 for consistency with dbus.ObjectTree (and to make dbus_methods
198 optional for future extension)
200 * python/examples/Makefile.am:
201 * python/examples/gconf-proxy-service.py:
202 * python/examples/gconf-proxy-service2.py:
204 Alternate implementation of gconf-proxy-service using the
205 nicer dbus.ObjectTree API.
207 * python/examples/example-service.py:
208 * python/tests/test-server.py
210 Reverse the argument order to deal with dbus.Object constructor
213 2004-05-30 Seth Nickell <seth@gnome.org>
215 * python/examples/example-client.py:
216 * python/examples/example-service.py:
218 Take it back. Lists seem to work but they're broken
219 in the test suite. Make the base examples use
222 2004-05-30 Seth Nickell <seth@gnome.org>
224 * python/dbus_bindings.pyx.in:
225 * python/tests/test-client.py:
227 Add some more tests and fix errors that crop up.
228 Unfortunately, currently it seems like marshalling
229 and unmarshalling of lists is completely broken :-(
231 2004-05-30 Seth Nickell <seth@gnome.org>
233 * python/dbus_bindings.pyx.in:
235 Add support for ObjectPath type.
239 Refactor message handling code to a common function.
241 * python/tests/test-client.py:
242 * python/tests/test-server.py:
244 Add tests that check to make sure values of all types
245 can be echoed from a service w/o mangling.
247 2004-05-29 Seth Nickell <seth@gnome.org>
251 Add ObjectTree class which allows implementation
252 of trees of "virtual" objects. Basically the python
253 wrapper for "register_fallback".
255 * python/examples/Makefile.am
256 * python/examples/gconf-proxy-client.py:
257 * python/examples/gconf-proxy-service.py:
259 Implement a simple GConf proxy service that supports
260 get/set on string and int GConf keys using the ObjectTree.
262 2004-05-29 Seth Nickell <seth@gnome.org>
265 * python/examples/example-client.py:
266 * python/examples/example-service.py:
267 * python/examples/list-system-services.py:
269 Add SessionBus, SystemBus and ActivationBus classes
270 so you don't need to know the special little BUS_TYPE
273 2004-05-29 Havoc Pennington <hp@redhat.com>
275 * bus/config-parser.c (process_test_valid_subdir): temporarily
276 stop testing config parser OOM handling, since expat has issues
277 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
279 * bus/dbus-daemon-1.1.in: change requested_reply to
280 send_requested_reply/receive_requested_reply so we can send the
281 replies, not just receive them.
283 * bus/config-parser.c: parse the new
284 send_requested_reply/receive_requested_reply
286 * bus/policy.c (bus_client_policy_check_can_send): add
287 requested_reply argument and use it
289 * bus/bus.c (bus_context_check_security_policy): pass through
290 requested_reply status to message send check
292 * bus/system.conf.in: adapt to requested_reply change
294 2004-05-28 Havoc Pennington <hp@redhat.com>
296 * test/glib/test-service-glib.c (main): remove unused variable
298 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
300 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
301 from the enum, no longer in use.
303 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
306 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
307 whether error_name passed in is a valid error name.
309 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
311 * dbus/dbus-message.c (dbus_message_get_args): Added support for
312 OBJECT_PATH and OBJECT_PATH_ARRAY
314 2004-05-28 Seth Nickell <seth@gnome.org>
316 * python/examples/Makefile.am:
318 Forget to add Makefile.am. Do not pass go.
320 2004-05-28 Michael Meeks <michael@ximian.com>
322 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
325 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
327 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
328 (_dbus_message_iter_get_basic_type_array): impl.
329 drastically simplify ~all relevant _get methods to use these.
330 (_dbus_message_iter_append_basic_array),
331 (dbus_message_iter_append_basic): impl
332 drastically simplify ~all relevant _append methods to use these.
334 * dbus/dbus-message-builder.c (parse_basic_type)
335 (parse_basic_array, lookup_basic_type): impl.
336 (_dbus_message_data_load): prune scads of duplicate /
339 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
340 (_dbus_demarshal_basic_type): implement,
341 (demarshal_and_validate_len/arg): beef up debug.
342 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
344 2004-05-27 Seth Nickell <seth@gnome.org>
347 * python/Makefile.am:
349 Include the example python apps in the tarball.
351 * python/examples/list-system-services.py
353 Add a python new example that fetches the list of services
356 2004-05-27 Seth Nickell <seth@gnome.org>
359 * python/dbus_bindings.pyx.in:
361 Fix failure to notify that a signal was not handled,
362 resulted in hung functions.
364 2004-05-25 Colin Walters <walters@redhat.com>
366 * tools/dbus-monitor.c (main): Monitor all types of messages.
368 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
370 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
371 which unregisters the object path and disposes the handler.
373 2004-05-23 Kristian Høgsberg <krh@redhat.com>
375 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
377 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
378 operands to && so we call dbus_message_iter_next () for the last
381 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
383 * dbus/dbus-object-tree.c
384 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
385 children even if the requested path isn't registered.
386 (object_tree_test_iteration): test object_tree_list_registered.
388 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
391 2004-05-20 Kristian Høgsberg <krh@redhat.com>
393 * doc/TODO: Remove resolved items.
395 * bus/expirelist.h (struct BusExpireList): remove unused n_items
398 * bus/connection.c (bus_connections_expect_reply): Enforce the
399 per-connection limit on pending replies.
401 Patch from Jon Trowbridge <trow@ximian.com>:
403 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
404 up a watch that triggers a config reload when one end of the pipe
406 (signal_handler): Instead of doing the config reload in our SIGHUP
407 handler, just write to the reload pipe and let the associated
408 watch handle the reload when control returns to the main loop.
410 * bus/driver.c (bus_driver_handle_reload_config): Added.
411 Implements a ReloadConfig method for requesting a configuration
412 file reload via the bus driver.
414 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
416 * HACKING: Updated release instructions concerning the wiki page.
418 2004-05-18 Kristian Høgsberg <krh@redhat.com>
420 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
421 filter against auth->allowed_mechs; we only add allowed mechs in
424 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
425 ALLOWED_MECHS to auth-script format so we can set the list of
428 * data/auth/client-out-of-mechanisms.auth-script: New test to
429 check client disconnects when it is out of mechanisms to try.
431 * dbus/dbus-auth.c (process_command): Remove check for lines
432 longer that 1 MB; we only buffer up maximum 16 kB.
434 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
435 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
436 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
437 assume there might be unused bytes.
439 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
440 client-out-of-mechs, it is handled in process_reject(). Move check
441 for max failures to send_rejected(), as it's a server-only thing.
443 * dbus/dbus-auth.c: Factor out protocol reply code into functions
444 send_auth(), send_data(), send_rejected(), send_error(),
445 send_ok(), send_begin() and send_cancel().
447 2004-05-17 Kristian Høgsberg <krh@redhat.com>
449 Remove base64 encoding, replace with hex encoding. Original patch
450 from trow@ximian.com, added error handling.
452 * dbus/dbus-string.c (_dbus_string_base64_encode)
453 (_dbus_string_base64_decode): Remove.
454 (_dbus_string_hex_decode): Add end_return argument so we can
455 distinguish between OOM and invalid hex encoding.
456 (_dbus_string_test): Remove base64 tests and add test case for
459 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
460 Replace base64 with hex.
462 * test/data/auth/invalid-hex-encoding.auth-script: New test case
463 for invalid hex encoded data in auth protocol.
465 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
467 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
470 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
472 * mono/dbus-sharp.dll.config.in: Added for GAC
473 * mono/dbus-sharp.snk: Added for GAC
474 * mono/Assembly.cs.in: Added for GAC
475 * mono/Makefile.am: Changes for GAC installation
476 * configure.in: Added refs for dbus-sharp.dll.config.in and
477 Assembly.cs.in. More fixes for mono testing
478 * mono/example/Makefile.am: Changed var to CSC
479 * Makefile.am: Changed flag name to DBUS_USE_CSC
481 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
483 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
484 * mono/doc/*: Added documentation framework
485 * configure.in: Added monodoc check
486 * README: Added description of mono configure flags
488 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
490 * doc/dbus-specification.xml: Added a "Required" column to the
491 header fields table and changed the "zero or more" verbage in
492 the above paragraph to read "The header must contain the required
493 named header fields and zero or more of the optional named header
495 * test/data/invalid-messages/*.message: Added the required PATH
496 named header field to the tests so that they don't fail on
499 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
501 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
502 the stack by implicitly defining variable and parameter types and
503 removing the hack of defining C pointers as python objects and later
506 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
508 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
510 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
512 * mono/DBusType/Dict.cs: Handle empty dicts
513 * mono/DBusType/Array.cs: Handle empty arrays
514 * mono/Arguments.cs: Handle empty arguments
517 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
519 * dbus-sharp.pc.in: Modified to include include Libs and Requires
522 2004-04-25 Kristian Høgsberg <krh@redhat.com>
524 * test/data/valid-messages/standard-*.message: Update message
525 test scripts to new header field names.
527 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
529 * test/break-loader.c (randomly_do_n_things): tracked down buffer
530 overflow to times_we_did_each_thing array which would chop off the
531 first character of the failure_dir string. Increased the size of
532 the array to 7 to reflect the number of random mutation functions
535 2004-04-21 Kristian Høgsberg <krh@redhat.com>
537 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
538 unix_server->watch here, it is unreffed in disconnect.
539 (_dbus_server_new_for_tcp_socket): convert NULL host to
540 "localhost" here so we don't append NULL to address.
542 * dbus/dbus-server.c (_dbus_server_test): Add test case for
543 various addresses, including tcp with no explicit host.
545 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
547 * dbus/dbus-message.c (decode_header_data, decode_string_field):
548 fix incorrect setting of .name_offset in the HeaderField (it was
549 off by two bytes, positioned right after the name and typecode)
551 * bus/bus.c (bus_context_new, bus_context_unref): test before
552 calling dbus_server_free_data_slot and _dbus_user_database_unref
555 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
558 2004-04-19 Kristian Høgsberg <krh@redhat.com>
560 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
561 _dbus_poll() instead of select().
563 2004-04-15 Jon Trowbridge <trow@ximian.com>
565 * bus/main.c (signal_handler): Reload the configuration files
567 (main): Set up our SIGHUP handler.
569 * bus/bus.c (struct BusContext): Store the config file, user and
570 fork flag in the BusContext.
571 (process_config_first_time_only): Added. Contains the code
572 (previously in bus_context_new) for setting up the BusContext from
573 the BusConfigParser that should only be run the first time the
574 config files are read.
575 (process_config_every_time): Added. Contains the code (previously
576 in bus_context_new) for setting up the BusContext from the
577 BusConfigParser that should be run every time the config files are
579 (load_config): Added. Builds a BusConfigParser from the config
580 files and passes the resulting structure off to
581 process_config_first_time_only (assuming this is the first time)
582 and process_config_every_time.
583 (bus_context_new): All of the config-related code has been moved
584 to process_config_first_time_only and process_config_every_time.
585 Now this function just does the non-config-related initializations
586 and calls load_config.
587 (bus_context_reload_config): Added.
589 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
591 * bus/driver.c (bus_driver_handle_get_service_owner):
592 implement a GetServiceOwner method.
593 * doc/dbus-specification.xml: document it.
594 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
596 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
597 implement, using the bus GetServiceOwner method.
599 * test/glib/test-dbus-glib.c:
600 use dbus_gproxy_new_for_service_owner so that we can receive the
603 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
605 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
606 dbus/dbus-message.c, dbus/dbus-protocol.h
607 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
609 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
610 dbus/dbus-message.c, dbus/dbus-protocol.h
611 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
613 * dbus/dbus-internals.c (_dbus_header_field_to_string):
614 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
615 DBUS_HEADER_FIELD_SENDER resolves to "sender"
617 * doc/dbus-specification.xml (Header Fields Table):
618 s/SERVICE/DESTINATION
619 s/SENDER_SERVICE/SENDER
622 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
624 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
627 2004-04-13 Michael Meeks <michael@ximian.com>
629 * glib/dbus-gobject.c (handle_introspect): split out
630 (introspect_properties): this.
631 (handle_introspect): implement this.
633 * test/glib/Makefile.am: use the absolute path so the bus
634 daemon's chdir ("/") doesn't kill us dead.
636 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
638 2004-04-12 Jon Trowbridge <trow@ximian.com>
640 * bus/config-parser.c (struct BusConfigParser): Added
641 included_files field.
642 (seen_include): Added. Checks whether or not a file has already
643 been included by any parent BusConfigParser.
644 (bus_config_parser_new): Copy the parent's included_files.
645 (include_file): Track which files have been included, and fail on
647 (process_test_valid_subdir): Changed printf to report if we are
648 testing valid or invalid conf files.
649 (all_are_equiv): Changed printf to be a bit clearer about
650 what we are actually doing.
651 (bus_config_parser_test): Test invalid configuration files.
653 2004-04-09 Jon Trowbridge <trow@ximian.com>
655 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
656 argument. If non-null, the newly-constructed BusConfigParser will
657 be initialized with the parent's BusLimits instead of the default
659 (include_file): When including a config file, pass in
660 the current parser as the parent and then copy the BusLimits
661 from the included BusConfigParser pack to the current parser.
662 (process_test_valid_subdir): Renamed from process_test_subdir.
663 (process_test_equiv_subdir): Added. Walks through a directory,
664 descending into each subdirectory and loading the config files
665 it finds there. If any subdirectory contains two config files
666 that don't produce identical BusConfigParser structs, fail.
667 For now, the BusConfigParser's BusPolicies are not compared.
668 (bus_config_parser_test): Call both process_test_valid_subdir and
669 process_test_equiv_subdir.
671 * bus/config-loader-libxml.c (bus_config_load): Take a parent
672 argument and pass it along to the call to bus_config_parser_new.
673 Also made a few small changes to allow this code to compile.
675 * bus/config-loader-expat.c (bus_config_load): Take a parent
676 argument and pass it along to the call to bus_config_parser_new.
678 * bus/bus.c (bus_context_new): Load the config file
679 with a NULL parent argument.
681 2004-03-29 Michael Meeks <michael@ximian.com>
683 * glib/dbus-gobject.c (introspect_properties): split
684 out, fix mangled 'while' flow control.
685 (introspect_signals): implement.
686 (handle_introspect): update.
688 2004-03-29 Michael Meeks <michael@ximian.com>
690 * glib/dbus-gobject.c (set_object_property): split out /
691 re-work, use the property type, and not the message type(!)
692 (get_object_property): ditto.
694 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
695 (dbus_gvalue_marshal): make this code re-usable, needed
696 for signals too, also on both proxy and server side.
697 Re-write for more efficiency / readability.
699 2004-03-29 Michael Meeks <michael@ximian.com>
701 * dbus/dbus-message.c
702 (dbus_message_new_error_printf): impl.
704 * dbus/dbus-connection.c
705 (dbus_connection_unregister_object_path): fix warning.
707 * configure.in: fix no-mono-installed situation.
709 2004-03-27 Havoc Pennington <hp@redhat.com>
711 Patch from Timo Teräs:
713 * tools/dbus-send.c (main): if --print-reply, assume type is
714 method call; support boolean type args
716 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
717 bunch of memleak and logic bugs
719 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
722 * mono/Introspector.cs:
724 * mono/InterfaceProxy.cs:
726 * mono/ProxyBuilder.cs:
728 Added InterfaceProxy class to avoid building proxies for every
732 * dbus-message.c (dbus_message_append_args_valist)
733 (dbus_message_iter_get_object_path)
734 (dbus_message_iter_get_object_path_array)
735 (dbus_message_iter_append_object_path)
736 (dbus_message_iter_append_object_path_array):
737 Added object_path iter functions to handle OBJECT_PATH arguments
739 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
741 First checkin of mono bindings.
744 Build stuff for the bindings
745 * dbus-sharp.pc.in: Added for pkgconfig
747 2004-03-21 Havoc Pennington <hp@redhat.com>
749 * test/test-service.c (main): remove debug spew
751 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
753 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
756 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
757 (dbus_message_iter_init_array_iterator)
758 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
759 indicate whether the iterator is empty
761 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
764 2004-03-19 Havoc Pennington <hp@redhat.com>
770 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
772 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
773 you don't need pyrex to make dist
775 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
778 2004-03-18 Richard Hult <richard@imendio.com>
780 * dbus/dbus-message.c (dbus_message_get_auto_activation)
781 (dbus_message_set_auto_activation): Add doxygen docs.
783 2004-03-16 Richard Hult <richard@imendio.com>
785 * bus/activation.c: (bus_activation_service_created),
786 (bus_activation_send_pending_auto_activation_messages),
787 (bus_activation_activate_service):
789 * bus/dispatch.c: (bus_dispatch),
790 (check_nonexistent_service_auto_activation),
791 (check_service_auto_activated),
792 (check_segfault_service_auto_activation),
793 (check_existent_service_auto_activation), (bus_dispatch_test):
794 * bus/driver.c: (bus_driver_handle_activate_service):
795 * bus/services.c: (bus_registry_acquire_service):
796 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
797 (dbus_message_get_auto_activation):
798 * dbus/dbus-message.h:
799 * dbus/dbus-protocol.h: Implement auto-activation.
801 * doc/dbus-specification.xml: Add auto-activation to the spec.
803 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
805 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
806 fix a bug with CUSTOM types.
808 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
809 a unit test for this bug (used to fail).
811 2004-03-12 Mikael Hallendal <micke@imendio.com>
814 (babysitter_watch_callback): notify all pending activations waiting for
815 the same exec that the activation failed.
816 (bus_activation_activate_service): shortcut the activation if we
817 already waiting for the same executable to start up.
819 2004-03-12 Mikael Hallendal <micke@imendio.com>
822 - Added service file reloading.
823 Each service files directory is kept in an hash table in
824 BusActivation and each BusActivationEntry knows what .service-file it
825 was read from. So when you try to activate a service the bus will
826 check if it's been updated, removed or if new .service-files has
828 - Test code at the bottom for the service file reloading.
829 * bus/test-main.c: (main):
831 - added service reloading test.
832 * dbus/dbus-sysdeps.c:
833 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
835 2004-03-08 Michael Meeks <michael@ximian.com>
837 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
838 bail immediately if disconnected, to avoid busy loop.
840 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
841 cleanup cut/paste/inefficiency.
843 2004-03-01 David Zeuthen <david@fubar.dk>
845 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
846 bug where args were used twice. This bug resulted in a segfault
847 on a Debian/PPC system when starting the messagebus daemon. Include
848 dbus-sysdeps.h for DBUS_VA_COPY
850 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
852 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
853 appropriate va_copy implementation. From GLib
855 2004-02-24 Joe Shaw <joe@ximian.com>
857 * bus/services.c (bus_registry_acquire_service): We need to pass
858 in the service name to dbus_set_error() to prevent a crash.
860 2003-12-26 Anders Carlsson <andersca@gnome.org>
862 * AUTHORS: Reveal my True identity.
864 2003-12-17 Mikael Hallendal <micke@imendio.com>
866 * dbus/dbus-message.c: (dbus_message_append_args_valist):
867 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
869 2003-12-13 Mikael Hallendal <micke@imendio.com>
871 * doc/TODO: Added not about better error check of configuration files.
873 2003-12-02 Richard Hult <richard@imendio.com>
875 * Update AFL version to 2.0 throughout the source files to reflect
876 the update that was done a while ago.
878 2003-12-02 Richard Hult <richard@imendio.com>
880 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
881 wrote_dict_key to FALSE on the iter that the dict is appended to,
882 just like when appending other types. Fixes a bug where a dict
883 couldn't be put inside a dict.
884 (dbus_message_iter_append_dict_key): Fix typo in warning message.
885 (message_iter_test, _dbus_message_test): Add test case for dict
888 2003-12-01 David Zeuthen <david@fubar.dk>
890 * python/dbus.py: Add the actual message when calling the reciever
891 of a signal such that parameters can be inspected. Add the method
892 remove_signal_receiver
894 2003-11-26 Mikael Hallendal <micke@imendio.com>
898 * glib/*.[ch]: Made ref functions return the pointer
900 2003-11-25 Zack Rusin <zack@kde.org>
902 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
904 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
907 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
908 the Integrator and to better fit with the server,
910 2003-11-24 Zack Rusin <zack@kde.org>
912 * qt/connection.h, qt/connection.cpp: removing initDbus method since
913 the integrator handles it now
915 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
916 since QTimer wasn't really meant to be used the way DBusTimeout is
918 2003-11-24 Zack Rusin <zack@kde.org>
920 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
921 Integrator class which integrates D-BUS with the Qt event loop,
923 * qt/connection.h, qt/connection.cpp: Move all the code which
924 was dealing with D-BUS integration to the Integrator class,
925 and start using Integrator,
927 2003-11-23 Zack Rusin <zack@kde.org>
929 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
932 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
933 switching namespaces to DBusQt, reworking the class,
935 * Makefile.cvs: switching dependencies so that it matches KDE
938 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
941 2003-11-19 Havoc Pennington <hp@redhat.com>
945 * configure.in: bump version to 0.20
947 * configure.in (have_qt): add yet another place to look for qt
948 (someone hand trolltech a .pc file...)
950 2003-11-01 Havoc Pennington <hp@redhat.com>
952 * doc/dbus-specification.xml: add state machine docs on the auth
953 protocol; just a first draft, I'm sure it's wrong.
955 2003-10-28 David Zeuthen <david@fubar.dk>
957 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
958 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
960 2003-10-28 Havoc Pennington <hp@redhat.com>
962 * dbus/dbus-message.c (get_next_field): delete unused function
964 2003-10-28 Havoc Pennington <hp@redhat.com>
966 * bus/expirelist.c (do_expiration_with_current_time): detect
967 failure of the expire_func due to OOM
969 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
971 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
972 NoReply error that's now created by the bus when the service exits
974 2003-10-28 Havoc Pennington <hp@redhat.com>
976 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
977 tests for set_path, set_interface, set_member, etc.
979 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
981 * dbus/dbus-message.c (set_string_field): always just delete and
982 re-append the field; accept NULL for deletion
983 (re_align_fields_recurse): reimplement
985 2003-10-26 Havoc Pennington <hp@redhat.com>
987 * dbus/dbus-connection.c: fix docs to properly describe the
989 (_dbus_connection_notify_disconnected): remove this function;
990 we can't synchronously add the disconnected message, we have to
991 do it after we've queued any remaining real messages
992 (_dbus_connection_get_dispatch_status_unlocked): queue the
993 disconnect message only if the transport has finished queueing all
994 its real messages and is disconnected.
995 (dbus_connection_disconnect): update the dispatch status here
997 2003-10-22 Havoc Pennington <hp@redhat.com>
999 * bus/bus.c (bus_context_check_security_policy): fix up assertion
1001 * bus/connection.c (bus_transaction_send_from_driver): set the
1002 destination to the connection's base service
1004 2003-10-20 Havoc Pennington <hp@redhat.com>
1006 hmm, make check is currently not passing.
1008 * doc/dbus-specification.xml: add requirement that custom type
1009 names follow the same rules as interface names.
1011 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
1012 duplication and allow 'c' to be 'custom'; dict is now 'm' for
1015 * doc/dbus-specification.xml: update type codes to match
1016 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
1017 CUSTOM. Add type OBJECT_PATH to the spec.
1019 2003-10-17 Havoc Pennington <hp@redhat.com>
1021 * bus/driver.c (create_unique_client_name): use "." as separator
1022 in base service names instead of '-'
1024 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
1025 byte at the end of the string
1027 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
1028 optimization macros since string validation seems to be a slow
1031 * doc/dbus-specification.xml: restrict valid
1032 service/interface/member/error names. Add test suite code for the
1035 * dbus/dbus-string.c: limit service/interface/member/error names
1038 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
1039 format arg to verbose spew
1041 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
1042 memory, return instead of g_error
1044 * test/test-service.c (path_message_func): support emitting a
1047 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
1048 activation bus type if DBUS_BUS_ACTIVATION was set; default to
1049 assuming the activation bus was the session bus so that services
1050 started manually will still register.
1051 (init_connections_unlocked): fix so that in OOM situation we get
1052 the same semantics when retrying the function
1054 * test/test-service.c (main): change to use path registration, to
1055 test those codepaths; register with DBUS_BUS_ACTIVATION rather
1056 than DBUS_BUS_SESSION
1058 2003-10-16 Havoc Pennington <hp@redhat.com>
1060 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
1062 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
1063 coverage of the tests
1064 (coverage-report.txt): don't move the .da and .bbg files around
1066 2003-10-16 Havoc Pennington <hp@redhat.com>
1068 * bus/bus.c (struct BusContext): remove struct field I didn't mean
1071 2003-10-16 Havoc Pennington <hp@redhat.com>
1073 * bus/connection.c (bus_pending_reply_expired): either cancel or
1075 (bus_connections_check_reply): use unlink, not remove_link, as we
1076 don't want to free the link; fixes double free mess
1078 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
1079 where no reply was received
1081 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
1084 * bus/signals.c (match_rule_matches): add special cases for the
1085 bus driver, so you can match on sender/destination for it.
1087 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
1088 DBUS_PRINT_BACKTRACE is set
1090 * dbus/dbus-internals.c: add pid to assertion failure messages
1092 * dbus/dbus-connection.c: add message type code to the debug spew
1094 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
1095 sender=foo not service=foo
1097 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
1098 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
1099 DBUS_ACTIVATION_ADDRESS instead
1101 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
1102 DBUS_SYSTEM_BUS_ADDRESS if appropriate
1104 * bus/bus.c (bus_context_new): handle OOM copying bus type into
1107 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
1108 (dbus_message_iter_get_object_path_array): new function (half
1109 finished, disabled for the moment)
1111 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
1112 DBUS_MESSAGE_TYPE_ERROR
1114 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
1115 avoid redirecting stderr to /dev/null
1116 (babysit): close stdin if not doing the "exit_with_session" thing
1118 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
1119 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
1120 stdout/stdin, so things don't get confused
1122 * bus/system.conf.in: fix to allow replies, I modified .conf
1123 instead of .conf.in again.
1125 2003-10-14 David Zeuthen <david@fubar.dk>
1127 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
1128 argtype to arg_type when raising unknown arg type exception.
1129 Changed type list to reflect the changes in dbus-protocol.h so
1130 the bindings actually work.
1132 2003-10-14 Havoc Pennington <hp@redhat.com>
1134 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
1135 to have a bug keeping it from outputting the .da files sometimes
1136 (string_get_string): don't append garbage nul bytes to the string.
1138 2003-10-15 Seth Nickell <seth@gnome.org>
1140 * python/Makefile.am:
1142 Include dbus_h_wrapper.h in the dist tarball.
1144 2003-10-14 Havoc Pennington <hp@redhat.com>
1146 * bus/bus.c (bus_context_check_security_policy): revamp this to
1147 work more sanely with new policy-based requested reply setup
1149 * bus/connection.c (bus_transaction_send_from_driver): set bus
1150 driver messages as no reply
1152 * bus/policy.c (bus_client_policy_check_can_receive): handle a
1153 requested_reply attribute on allow/deny rules
1155 * bus/system.conf: add <allow requested_reply="true"/>
1157 * bus/driver.c (bus_driver_handle_message): fix check for replies
1158 sent to the bus driver, which was backward. How did this ever work
1159 at all though? I think I'm missing something.
1161 * dbus/dbus-message.c (decode_header_data): require error and
1162 method return messages to have a reply serial field to be valid
1163 (_dbus_message_loader_queue_messages): break up this function;
1164 validate that reply serial and plain serial are nonzero;
1165 clean up the OOM/error handling.
1166 (get_uint_field): don't return -1 from this
1167 (dbus_message_create_header): fix signed/unsigned bug
1169 * bus/connection.c (bus_connections_expect_reply): save serial of
1170 the incoming message, not reply serial
1172 2003-10-14 Havoc Pennington <hp@redhat.com>
1174 * bus/connection.c: implement pending reply tracking using
1177 * bus/bus.c (bus_context_check_security_policy): verify that a
1178 reply is pending in order to allow a reply to be sent. Deny
1179 messages of unknown type.
1181 * bus/dbus-daemon-1.1.in: update to mention new resource limits
1183 * bus/bus.c (bus_context_get_max_replies_per_connection): new
1184 (bus_context_get_reply_timeout): new
1186 2003-10-13 Seth Nickell <seth@gnome.org>
1188 * python/Makefile.am:
1190 Pass "make distcheck": remove a couple files from DIST_FILES
1191 that weren't included in the final version.
1193 2003-10-12 Havoc Pennington <hp@pobox.com>
1195 Added test code that 1) starts an actual bus daemon and 2) uses
1196 DBusGProxy; fixed bugs that were revealed by the test. Lots
1197 more testing possible, but this is the basic framework.
1199 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
1200 empty proxy lists from the proxy list hash
1202 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
1203 couple of return_if_fail checks
1205 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
1206 to allocate, so everything is cleared to NULL as it should be.
1208 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
1209 source as data to dbus_connection_set_timeout_functions() as the
1210 timeout functions expected
1212 * test/glib/run-test.sh: add a little script to start up a message
1213 bus and run tests using it
1215 * tools/dbus-launch.1: updates
1217 * tools/dbus-launch.c (main): add --config-file option
1219 * tools/dbus-launch.c (main): remove confusing else if (runprog)
1220 that could never be reached.
1222 * dbus/dbus-message.c (dbus_message_new_method_return)
1223 (dbus_message_new_error, dbus_message_new_signal): set the
1224 no-reply-expected flag on all these. Redundant, but may
1225 as well be consistent.
1227 2003-10-11 Havoc Pennington <hp@pobox.com>
1229 * test/decode-gcov.c (function_solve_graph): make broken block
1230 graph a nonfatal error since it seems to be broken. Need to debug
1233 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
1234 can't just check type > INVALID < LAST anymore
1236 * dbus/dbus-message.c (dbus_message_get_signature): new function
1237 (dbus_message_has_signature): new function
1238 (struct DBusMessage): add signature field (right now it isn't sent
1239 over the wire, just generated on the fly)
1240 (dbus_message_copy): copy the signature, and init strings to
1241 proper length to avoid some reallocs
1242 (dbus_message_iter_init_array_iterator): return void, since it
1244 (dbus_message_iter_init_dict_iterator): return void since it can't fail
1245 (_dbus_message_loader_queue_messages): add silly temporary hack to
1246 fill in message->signature on load
1248 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
1249 characters, so they are relatively human-readable.
1251 2003-10-11 Havoc Pennington <hp@pobox.com>
1253 * dbus/dbus-message.c (_dbus_message_test): add more test
1254 coverage, but #if 0 for now since they uncover a bug
1255 not fixed yet; I think in re_align_field_recurse()
1256 (re_align_field_recurse): add FIXME about broken assertion
1258 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
1260 * bus/connection.c: share a couple code bits with expirelist.c
1262 * bus/expirelist.h, bus/expirelist.c: implement a generic
1263 expire-items-after-N-seconds facility, was going to share between
1264 expiring connections and replies, decided not to use for expiring
1265 connections for now.
1267 * COPYING: include AFL 2.0 (still need to change all the file headers)
1269 2003-10-09 Havoc Pennington <hp@redhat.com>
1271 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
1272 gcc 3.3. Not that we do anything about it yet.
1274 * bus/signals.c (bus_match_rule_parse): impose max length on the
1277 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
1279 2003-10-09 Havoc Pennington <hp@redhat.com>
1281 Make matching rules theoretically work (add parser).
1283 * bus/bus.c (bus_context_check_security_policy): fix up to handle
1284 the case where destination is explicitly specified as bus driver
1285 and someone else is eavesdropping.
1287 * bus/policy.c (bus_client_policy_check_can_receive): fix up
1288 definition of eavesdropping and assertion
1290 * tools/dbus-send.c (main): use dbus_message_type_from_string
1292 * bus/signals.c (bus_match_rule_parse): implement
1294 * dbus/dbus-message.c (dbus_message_type_from_string): new
1296 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
1298 2003-10-02 Havoc Pennington <hp@pobox.com>
1300 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
1301 dbus_gproxy_oneway_call
1303 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
1304 (dbus_server_setup_with_g_main): fix to allow calling them more
1305 than once on the same args
1306 (dbus_bus_get_with_g_main): new function
1308 2003-10-02 Havoc Pennington <hp@redhat.com>
1310 * doc/dbus-tutorial.xml: write some stuff
1312 2003-09-29 Havoc Pennington <hp@pobox.com>
1314 * configure.in: split checks for Doxygen from XML docs, check for
1317 * doc/Makefile.am: XML-ify all the docs, and add a blank
1320 2003-09-29 Havoc Pennington <hp@pobox.com>
1322 * Merge dbus-object-names branch. To see the entire patch
1323 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
1324 it's huuuuge though.
1325 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
1327 2003-09-28 Havoc Pennington <hp@pobox.com>
1329 * HACKING: update to reflect new server
1331 2003-09-26 Seth Nickell <seth@gnome.org>
1334 * python/examples/example-signals.py:
1336 Start implementing some notions of signals. The API
1337 is really terrible, but they sort of work (with the
1338 exception of being able to filter by service, and to
1339 transmit signals *as* a particular service). Need to
1340 figure out how to make messages come from the service
1343 * python/dbus_bindings.pyx.in:
1345 Removed duplicate message_handler callbacks.
1347 2003-09-25 Havoc Pennington <hp@redhat.com>
1349 * bus/session.conf.in: fix my mess
1351 2003-09-25 Havoc Pennington <hp@pobox.com>
1353 * bus/session.conf.in: fix security policy, reported by Seth Nickell
1355 2003-09-25 Seth Nickell <seth@gnome.org>
1357 * python/examples/example-service.py:
1359 Johan notices complete wrong code in example-service, but
1360 completely wrong in a way that works exactly the same (!).
1361 Johan is confused, how could this possibly work? Example
1362 code fails to serve purpose of making things clear.
1365 2003-09-25 Mark McLoughlin <mark@skynet.ie>
1367 * doc/dbus-specification.sgml: don't require header fields
1368 to be 4-byte aligned and specify that fields should be
1369 distinguished from padding by the fact that zero is not
1372 * doc/TODO: remove re-alignment item and add item to doc
1373 the OBJECT_PATH type.
1375 * dbus/dbus-message.c:
1376 (HeaderField): rename the original member to value_offset
1377 and introduce a name_offset member to keep track of where
1378 the field actually begins.
1379 (adjust_field_offsets): remove.
1380 (append_int_field), (append_uint_field),
1381 (append_string_field): don't align the start of the header
1382 field to a 4-byte boundary.
1383 (get_next_field): impl finding the next marhsalled field
1384 after a given field.
1385 (re_align_field_recurse): impl re-aligning a number of
1386 already marshalled fields.
1387 (delete_field): impl deleting a field of any type and
1388 re-aligning any following fields.
1389 (delete_int_or_uint_field), (delete_string_field): remove.
1390 (set_int_field), (set_uint_field): no need to re-check
1391 that we have the correct type for the field.
1392 (set_string_field): ditto and impl re-aligning any
1394 (decode_header_data): update to take into account that
1395 the fields aren't 4-byte aligned any more and the new
1396 way to distinguish padding from header fields. Also,
1397 don't exit when there is too much header padding.
1398 (process_test_subdir): print the directory.
1399 (_dbus_message_test): add test to make sure a following
1400 field is re-aligned correctly after field deletion.
1402 * dbus/dbus-string.[ch]:
1403 (_dbus_string_insert_bytes): rename from insert_byte and
1404 allow the insert of multiple bytes.
1405 (_dbus_string_test): test inserting multiple bytes.
1407 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
1408 warning note to docs about having to re-align any
1409 marshalled values following the string.
1411 * dbus/dbus-message-builder.c:
1412 (append_string_field), (_dbus_message_data_load):
1413 don't align the header field.
1415 * dbus/dbus-auth.c: (process_test_subdir): print the
1418 * test/break-loader.c: (randomly_add_one_byte): upd. for
1421 * test/data/invalid-messages/bad-header-field-alignment.message:
1424 * test/data/valid-messages/unknown-header-field.message: shove
1425 a dict in the unknown field.
1427 2003-09-25 Seth Nickell <seth@gnome.org>
1430 * python/dbus_bindings.pyx.in:
1432 Handle return values.
1434 * python/examples/example-client.py:
1435 * python/examples/example-service.py:
1437 Pass back return values from the service to the client.
1439 2003-09-24 Seth Nickell <seth@gnome.org>
1443 Connect Object methods (when you are sharing an object) up... pass
1444 in a list of methods to be shared. Sharing all the methods just
1445 worked out too weird. You can now create nice Services over the
1448 * python/dbus_bindings.pyx.in:
1450 Keep references to user_data tuples passed into C functions so
1451 Python doesn't garbage collect on us.
1453 Implement MethodReturn and Error subclasses of Message for creating
1454 DBusMessage's of those types.
1456 * python/examples/example-client.py:
1457 * python/examples/example-service.py:
1459 Simple example code showing both how create DBus services and objects,
1460 and how to use them.
1462 2003-09-23 Havoc Pennington <hp@pobox.com>
1464 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
1466 2003-09-23 Havoc Pennington <hp@redhat.com>
1468 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
1469 (dbus_gproxy_disconnect_signal): implement
1470 (dbus_gproxy_manager_remove_signal_match): implement
1471 (dbus_gproxy_manager_add_signal_match): implement
1472 (dbus_gproxy_oneway_call): implement
1474 2003-09-23 Havoc Pennington <hp@pobox.com>
1476 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
1477 subclass. This means dropping the transparent thread safety of the
1478 proxy; you now need a separate proxy per-thread, or your own
1479 locking on the proxy. Probably right anyway.
1480 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
1482 2003-09-22 Havoc Pennington <hp@redhat.com>
1484 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
1486 2003-09-21 Seth Nickell <seth@gnome.org>
1488 First checkin of the Python bindings.
1490 * python/.cvsignore:
1491 * python/Makefile.am:
1492 * python/dbus_bindings.pyx.in:
1493 * python/dbus_h_wrapper.h:
1495 Pieces for Pyrex to operate on, building a dbus_bindings.so
1496 python module for low-level access to the DBus APIs.
1500 High-level Python module for accessing DBus objects.
1505 Build stuff for the python bindings.
1509 Extra macro needed for finding the Python C header files.
1511 2003-09-21 Havoc Pennington <hp@pobox.com>
1513 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
1514 implementing the proxy manager, didn't get very far.
1516 * dbus/dbus-bus.c (dbus_bus_add_match): new
1517 (dbus_bus_remove_match): new
1519 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
1520 path_name argument; adjust the other not-yet-implemented
1521 gproxy constructors to be what I think they should be.
1523 2003-09-21 Havoc Pennington <hp@pobox.com>
1525 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
1526 by default for message bus connections.
1528 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
1529 exit_on_disconnect flag is set and we process the disconnected
1531 (dbus_connection_set_exit_on_disconnect): new function
1533 2003-09-21 Havoc Pennington <hp@pobox.com>
1535 Get matching rules mostly working in the bus; only actually
1536 parsing the rule text remains. However, the client side of
1537 "signal connections" hasn't been started, this patch is only the
1540 * dbus/dispatch.c: fix for the matching rules changes
1542 * bus/driver.c (bus_driver_handle_remove_match)
1543 (bus_driver_handle_add_match): send an ack reply from these
1546 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
1547 arguments, reported by Seth Nickell
1549 * bus/config-parser.c (append_rule_from_element): support
1550 eavesdrop=true|false attribute on policies so match rules
1551 can be prevented from snooping on the system bus.
1553 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
1554 and "destination" in attribute names; fix some docs bugs;
1555 add eavesdrop=true|false attribute
1557 * bus/driver.c (bus_driver_handle_add_match)
1558 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
1561 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
1562 rid of broadcast service concept, signals are just always broadcast
1564 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
1565 mostly implement matching rules stuff (currently only exposed as signal
1568 2003-09-21 Mark McLoughlin <mark@skynet.ie>
1570 * doc/dbus-specification.sgml: Change the header field name
1571 to be an enum and update the rest of the spec to reference
1572 the fields using the conventinal name.
1574 * dbus/dbus-protocol.h: update to reflect the spec.
1576 * doc/TODO: add item to remove the 4 byte alignment requirement.
1578 * dbus/dbus-message.c: Remove the code to generalise the
1579 header/body length and serial number header fields as named
1580 header fields so we can reference field names using the
1582 (append_int_field), (append_uint_field), (append_string_field):
1583 Append the field name as a byte rather than four chars.
1584 (delete_int_or_uint_field), (delete_string_field): reflect the
1585 fact that the field name and typecode now occupy 4 bytes instead
1587 (decode_string_field), (decode_header_data): update to reflect
1588 protocol changes and move the field specific encoding from
1589 decode_string_field() back into decode_header_data().
1591 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
1592 Add utility to aid debugging.
1594 * dbus/dbus-message-builder.c:
1595 (append_string_field), (_dbus_message_data_load): Update to
1596 reflect protocol changes; Change the FIELD_NAME directive
1597 to HEADER_FIELD and allow it to take the field's conventional
1598 name rather than the actual value.
1600 * test/data/*/*.message: Update to use HEADER_FIELD instead
1601 of FIELD_NAME; Always align the header on an 8 byte boundary
1602 *before* updating the header length.
1604 2003-09-15 Havoc Pennington <hp@pobox.com>
1606 * dbus/dbus-pending-call.c: add the get/set object data
1607 boilerplate as for DBusConnection, etc. Use generic object data
1608 for the notify callback.
1610 * glib/dbus-gparser.c (parse_node): parse child nodes
1612 * tools/dbus-viewer.c: more hacking on the dbus-viewer
1614 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
1615 contain functions shared between the convenience lib and the
1618 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
1619 -export-symbols-regex to the GLib library
1621 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
1622 fix the locking in here, and add a default handler for
1623 Introspect() that just returns sub-nodes.
1625 2003-09-14 Havoc Pennington <hp@pobox.com>
1627 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
1628 rather than gfoo consistent
1630 * glib/dbus-gproxy.h: delete for now, move contents to
1631 dbus-glib.h, because the include files don't work right since we
1632 aren't in the dbus/ subdir.
1634 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
1635 (dbus_gproxy_end_call): finish
1636 (dbus_gproxy_begin_call): finish
1638 * glib/dbus-gmain.c (dbus_set_g_error): new
1640 * glib/dbus-gobject.c (handle_introspect): include information
1641 about child nodes in the introspection
1643 * dbus/dbus-connection.c (dbus_connection_list_registered): new
1644 function to help in implementation of introspection
1646 * dbus/dbus-object-tree.c
1647 (_dbus_object_tree_list_registered_and_unlock): new function
1649 2003-09-12 Havoc Pennington <hp@pobox.com>
1651 * glib/dbus-gidl.h: add common base class for all the foo_info
1654 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
1657 * test/Makefile.am: try test srcdir -ef . in addition to test
1658 srcdir = ., one of them should work (yeah lame)
1660 * glib/Makefile.am: build the "idl" parser stuff as a convenience
1663 * glib/dbus-gparser.h: make description_load routines return
1664 NodeInfo* not Parser*
1666 * Makefile.am (SUBDIRS): build test dir after all library dirs
1668 * configure.in: add GTK+ detection
1670 2003-09-07 Havoc Pennington <hp@pobox.com>
1672 * Make Doxygen contented.
1674 2003-09-07 Havoc Pennington <hp@pobox.com>
1676 * doc/dbus-specification.sgml: more updates
1678 2003-09-06 Havoc Pennington <hp@pobox.com>
1680 * doc/dbus-specification.sgml: partial updates
1682 * bus/dbus-daemon-1.1.in: fix the config file docs for the
1683 zillionth time; hopefully I edited the right file this time.
1685 * bus/config-parser.c (append_rule_from_element): support
1686 send_type, send_path, receive_type, receive_path
1688 * bus/policy.c: add message type and path to the list of things
1689 that can be "firewalled"
1691 2003-09-06 Havoc Pennington <hp@pobox.com>
1693 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
1694 (dbus_connection_register_object_path): make this not handle
1695 messages to paths below the given path
1697 2003-09-03 Havoc Pennington <hp@pobox.com>
1699 * test/glib/Makefile.am: add this with random glib-linked test
1702 * glib/Makefile.am: remove the random test programs from here,
1703 leave only the unit tests
1705 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
1706 uscore/javacaps conversion, and fix
1707 (get_object_property, set_object_property): change to .NET
1708 convention for mapping props to methods, set_FooBar/get_FooBar,
1709 since one language has such a convention we may as well copy it.
1710 Plus real methods in either getFooBar or get_foo_bar style won't
1711 collide with this convention.
1713 2003-09-01 Havoc Pennington <hp@pobox.com>
1715 * glib/dbus-gparser.c: implement
1717 * glib/dbus-gobject.c: start implementing skeletons support
1719 * configure.in: when disabling checks/assert, also define
1720 G_DISABLE_ASSERT and G_DISABLE_CHECKS
1722 2003-09-01 Havoc Pennington <hp@pobox.com>
1724 * glib/Makefile.am: rearrange a bunch of files and get "make
1725 check" framework set up
1727 2003-08-31 Havoc Pennington <hp@pobox.com>
1729 * fix build with --disable-tests
1731 2003-08-30 Havoc Pennington <hp@pobox.com>
1733 * dbus/dbus-connection.c: purge DBusMessageHandler
1735 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
1736 use callbacks everywhere
1738 2003-08-30 Havoc Pennington <hp@pobox.com>
1740 * test/data/valid-config-files/system.d/test.conf: change to
1741 root for the user so warnings don't get printed
1743 * dbus/dbus-message.c: add dbus_message_get_path,
1744 dbus_message_set_path
1746 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
1747 dispatching to a path
1749 * dbus/dbus-string.c (_dbus_string_validate_path): add
1751 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
1752 (_dbus_marshal_object_path): implement
1754 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
1755 to contain the path to the target object
1756 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
1757 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
1759 2003-08-30 Havoc Pennington <hp@pobox.com>
1761 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
1763 2003-08-29 Havoc Pennington <hp@pobox.com>
1765 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
1767 (struct DBusObjectSubtree): shrink this
1768 a lot, since we may have a lot of them
1769 (_dbus_object_tree_free_all_unlocked): implement
1770 (_dbus_object_tree_dispatch_and_unlock): implement
1772 2003-08-29 Havoc Pennington <hp@pobox.com>
1774 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
1776 2003-08-28 Havoc Pennington <hp@pobox.com>
1780 * dbus/dbus-connection.c: port to no ObjectID, create a
1781 DBusObjectTree, rename ObjectTree to ObjectPath in public API
1783 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
1784 everything except UnregisterFunction and MessageFunction
1786 * dbus/dbus-marshal.c: port away from DBusObjectID,
1787 add DBUS_TYPE_OBJECT_PATH
1789 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
1790 dbus/dbus-objectid.[hc]: remove these, we are moving to
1791 path-based object IDs
1793 2003-08-25 Havoc Pennington <hp@pobox.com>
1795 Just noticed that dbus_message_test is hosed, I wonder when I
1796 broke that. I thought make check was passing earlier...
1798 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
1799 container tree, will replace most of dbus-object-registry
1801 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
1804 2003-08-19 Havoc Pennington <hp@pobox.com>
1806 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
1807 (dbus_message_is_error): fix this function
1809 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
1812 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
1813 reflect clarified man page
1814 (bus_client_policy_check_can_send): ditto
1816 * bus/session.conf.in: fixup
1818 * bus/system.conf.in: fixup
1820 2003-08-18 Havoc Pennington <hp@redhat.com>
1822 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
1824 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
1825 dumb bug created earlier (wrong order of args to
1826 decode_header_data())
1828 * tools/dbus-send.c: port
1830 * tools/dbus-print-message.c (print_message): port
1832 * test/data/*messages: port all messages over
1834 * dbus/dbus-message-builder.c: support including
1837 * bus/driver.c: port over
1839 * bus/dispatch.c: port over to new stuff
1841 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1842 rename disconnect signal to "Disconnected"
1844 2003-08-17 Havoc Pennington <hp@pobox.com>
1846 This doesn't compile yet, but syncing up so I can hack on it from
1847 work. What are branches for if not broken code? ;-)
1849 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
1850 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
1851 DBUS_HEADER_FIELD_ERROR_NAME
1853 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
1854 for the interface+member pairs
1855 (string_hash): change to use g_str_hash algorithm
1856 (find_direct_function, find_string_function): refactor these to
1859 * dbus/dbus-message.c: port all of this over to support
1860 interface/member fields instead of name field
1862 * dbus/dbus-object-registry.c: port over
1864 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
1865 from _dbus_string_validate_name
1867 * bus/dbus-daemon-1.1: change file format for the
1868 <deny>/<allow> stuff to match new message naming scheme
1870 * bus/policy.c: port over
1872 * bus/config-parser.c: parse new format
1874 2003-08-16 Havoc Pennington <hp@pobox.com>
1876 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
1879 * glib/dbus-gproxy.c: some hacking
1881 2003-08-15 Havoc Pennington <hp@redhat.com>
1883 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
1885 * dbus/dbus-connection.c
1886 (dbus_connection_send_with_reply_and_block): factor out internals;
1887 change to convert any error replies to DBusError instead of
1888 returning them as a message
1890 2003-08-15 Havoc Pennington <hp@pobox.com>
1892 * dbus/dbus-connection.c,
1893 dbus/dbus-pending-call.c: Finish the pending call stuff
1895 2003-08-14 Havoc Pennington <hp@redhat.com>
1897 * dbus/dbus-pending-call.c: start on new object that will replace
1898 DBusMessageHandler and ReplyHandlerData for tracking outstanding
1901 * dbus/dbus-gproxy.c: start on proxy object used to communicate
1902 with remote interfaces
1904 * dbus/dbus-gidl.c: do the boring boilerplate in here
1906 2003-08-12 Havoc Pennington <hp@pobox.com>
1908 * bus/dispatch.c (bus_dispatch): make this return proper
1909 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
1911 * dbus/dbus-errors.c (dbus_set_error): use
1912 _dbus_string_append_printf_valist
1914 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
1915 (_dbus_string_append_printf): new
1917 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
1920 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
1921 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
1922 message is unhandled.
1924 2003-08-11 Havoc Pennington <hp@pobox.com>
1926 * bus/test.c (client_disconnect_handler): change to return
1927 HANDLED (would have been REMOVE_MESSAGE)
1929 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
1930 HANDLED/NOT_YET_HANDLED instead of
1931 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
1934 2003-08-10 Havoc Pennington <hp@pobox.com>
1936 * tools/dbus-send.c (main): add --type argument, for now
1937 supporting only method_call and signal types.
1939 * tools/dbus-print-message.c: print message type
1941 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1942 init connection->objects
1944 * doc/dbus-specification.sgml: fix sgml
1946 * bus/*.c: port over to object-instance API changes
1948 * test/test-service.c: ditto
1950 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
1951 name, we will have to fix up the rest of the code to also handle
1953 (dbus_message_new): generic message-creation call
1954 (set_string_field): allow appending name field
1956 2003-08-06 Havoc Pennington <hp@pobox.com>
1958 * dbus/dbus-object-registry.c: implement signal connection
1961 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
1963 * dbus/dbus-internals.c (_dbus_memdup): new function
1965 2003-08-02 Havoc Pennington <hp@pobox.com>
1967 * dbus/dbus-message.c (dbus_message_get_no_reply)
1968 (dbus_message_set_no_reply): add these and remove
1969 set_is_error/get_is_error
1971 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
1972 remove the ERROR flag, since there's now an ERROR type
1974 2003-08-01 Havoc Pennington <hp@pobox.com>
1976 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
1979 * dbus/dbus-message.c (dbus_message_get_type): new function
1981 * doc/dbus-specification.sgml: add "type" byte to messages
1983 2003-08-01 Havoc Pennington <hp@pobox.com>
1985 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
1986 a message type enum to distinguish kinds of message
1987 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
1988 that need not be replied to
1990 2003-08-01 Havoc Pennington <hp@pobox.com>
1992 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
1993 (unpack_8_octets): fix no-64-bit-int bug
1995 * dbus/dbus-object-registry.c (validate_id): validate the
1996 connection ID bits, not just the instance ID.
1998 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
1999 the connection-global 33 bits of the object ID
2001 * dbus/dbus-object-registry.c (info_from_entry): fill in
2002 object ID in the new way
2004 * dbus/dbus-objectid.h: rather than high/low bits, specifically
2005 define server/client/instance bits.
2007 2003-07-30 Havoc Pennington <hp@pobox.com>
2009 * dbus/dbus-connection.c (dbus_connection_register_object): fix
2012 2003-07-13 Havoc Pennington <hp@pobox.com>
2014 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
2015 fields to DBusObjectVTable and DBusObjectInfo
2017 2003-07-12 Havoc Pennington <hp@pobox.com>
2019 * dbus/dbus-object-registry.c: implement unit test,
2020 fix bugs discovered in process
2022 * dbus/dbus-connection.c: remove handler_table and
2023 register_handler(), add DBusObjectRegistry usage
2025 * dbus/dbus-objectid.c (dbus_object_id_is_null)
2026 (dbus_object_id_set_null): new functions
2028 2003-07-08 Havoc Pennington <hp@pobox.com>
2030 * dbus/dbus-object.c: implement some of this
2032 * dbus/dbus-object-registry.c
2033 (_dbus_object_registry_add_and_unlock): fill in the object_id out
2035 (_dbus_object_registry_new): handle OOM
2037 2003-07-08 Havoc Pennington <hp@pobox.com>
2039 * dbus/dbus-object.h: sketch out an API for registering objects
2040 with a connection, that allows us to use as little as 24 bytes
2041 per object and lets application code represent an object in
2042 any conceivable way.
2044 * dbus/dbus-object-registry.c: implement the hard bits of the
2045 DBusConnection aspect of object API. Not yet wired up.
2047 2003-07-06 Havoc Pennington <hp@pobox.com>
2049 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
2050 (_dbus_marshal_object_id): new
2051 (_dbus_demarshal_object_id): new
2052 (_dbus_marshal_get_arg_end_pos): support object ID type, and
2053 consolidate identical switch cases. Don't conditionalize handling
2054 of DBUS_TYPE_UINT64, need to handle the type always.
2055 (_dbus_marshal_validate_arg): consolidate identical cases, and
2056 handle DBUS_TYPE_OBJECT_ID
2058 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
2060 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
2062 2003-09-28 Havoc Pennington <hp@pobox.com>
2066 2003-09-28 Havoc Pennington <hp@pobox.com>
2068 * doc/Makefile.am (dbus-specification.html): testing a funky hack
2069 to work with Debian db2html
2071 2003-09-28 Havoc Pennington <hp@pobox.com>
2073 * configure.in: 0.13
2075 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
2076 stylesheet-images for benefit of Debian
2078 Change back to using filesystem-linked sockets for the system
2079 bus, so only root can create the default system bus address.
2081 * bus/system.conf.in: change to use
2082 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2084 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
2087 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
2088 here, and AC_DEFINE DBUS_SYSTEM_PATH
2090 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2093 * doc/busconfig.dtd:
2096 2003-08-09 Anders Carlsson <andersca@codefactory.se>
2098 * doc/dbus-specification.sgml:
2099 Add activation reply values.
2101 2003-08-05 Havoc Pennington <hp@redhat.com>
2103 * configure.in: 0.12
2105 2003-08-05 Anders Carlsson <andersca@codefactory.se>
2107 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
2108 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
2109 (add_watch), (remove_watch), (create_source):
2110 Refcount fds, fixes some reentrancy issues.
2112 2003-07-30 Havoc Pennington <hp@redhat.com>
2114 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
2115 bus address to be abstract if we have abstract sockets
2119 2003-07-28 Havoc Pennington <hp@redhat.com>
2121 * bus/messagebus.in: fix to avoid processname/servicename
2122 confusion, from Michael Kearey
2123 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
2125 2003-07-23 Havoc Pennington <hp@pobox.com>
2127 * dbus/dbus-message.c (dbus_message_iter_get_named):
2128 fix from Andy Hanton to remove broken "+1"
2130 2003-07-16 Havoc Pennington <hp@pobox.com>
2132 * tools/dbus-launch.c (babysit): close stdout/stderr in the
2133 babysitter process, as suggested by Thomas Leonard, so
2134 an "eval `dbus-launch --exit-with-session`" will actually
2137 2003-07-16 Havoc Pennington <hp@pobox.com>
2139 * configure.in: print out EXPANDED_* variables in the summary at
2140 the end; clean up the code that computes EXPANDED_ variables and
2141 get the ones using exec_prefix right. Should make things work
2142 when you build without --prefix
2144 2003-06-29 Havoc Pennington <hp@pobox.com>
2146 * mono/Test.cs (class Test): fire up a main loop and run it
2148 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
2149 done once, the app has to do it
2151 2003-06-26 Havoc Pennington <hp@pobox.com>
2153 * mono/Connection.cs: set up connection with the glib main loop
2155 2003-07-01 Havoc Pennington <hp@redhat.com>
2157 * doc/dbus-specification.sgml: clarify the format of a type code,
2158 change suggested by Jim Blandy
2160 2003-06-29 Miloslav Trmac <mitr@volny.cz>
2163 * tools/Makefile.am: Don't assume srcdir == builddir.
2165 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
2166 the allocated block.
2167 (_dbus_memory_test): New function.
2168 * dbus/dbus-test.h: Add _dbus_memory_test ().
2169 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
2171 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
2173 (dbus_message_new): Remove obsolete @todo.
2175 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
2176 (_dbus_marshal_set_uint64): Fix comment.
2178 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
2179 hardcode FIELD_REPLY_SERIAL.
2181 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
2182 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
2184 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
2185 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
2187 2003-06-24 Havoc Pennington <hp@pobox.com>
2189 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
2191 2003-06-23 Anders Carlsson <andersca@codefactory.se>
2197 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
2198 * gcj/org/.cvsignore:
2199 * gcj/org/Makefile.am:
2200 * gcj/org/freedesktop/.cvsignore:
2201 * gcj/org/freedesktop/Makefile.am:
2202 * gcj/org/freedesktop/dbus/.cvsignore:
2203 * gcj/org/freedesktop/dbus/Makefile.am:
2204 * gcj/org/freedesktop/dbus/Message.java: (Message),
2206 * gcj/org/freedesktop/dbus/natMessage.cc:
2207 Fix the build system.
2209 2003-06-22 Havoc Pennington <hp@pobox.com>
2211 * mono/Connection.cs: add more bindings
2213 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
2216 2003-06-22 Havoc Pennington <hp@pobox.com>
2218 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
2219 Start wrapping more stuff.
2221 2003-06-22 Havoc Pennington <hp@pobox.com>
2223 * mono/Message.cs: implement Message.Wrap() that ensures we only
2224 have a single C# wrapper per DBusMessage, assuming it works which
2225 it probably doesn't.
2227 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
2228 (dbus_message_free_data_slot): new
2229 (dbus_message_set_data): new
2230 (dbus_message_get_data): new
2232 2003-06-22 Havoc Pennington <hp@pobox.com>
2234 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
2235 (_dbus_data_slot_allocator_alloc): rework these to keep a
2236 reference count on each slot and automatically manage a global
2237 slot ID variable passed in by address
2239 * bus/bus.c: convert to new dataslot API
2241 * dbus/dbus-bus.c: convert to new dataslot API
2243 * dbus/dbus-connection.c: convert to new dataslot API
2245 * dbus/dbus-server.c: convert to new dataslot API
2247 * glib/dbus-gmain.c: ditto
2251 * bus/connection.c: ditto
2253 2003-06-22 Anders Carlsson <andersca@codefactory.se>
2255 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
2256 after the gcj checks so that the correct configuration tags
2257 will be added to libtool.
2259 * dbus-glib-1.pc.in: No need to specify any includes since
2260 dbus-1.pc.in has those.
2262 2003-06-22 Havoc Pennington <hp@pobox.com>
2264 * mono/*, gcj/*, configure.in, Makefile.am:
2265 Check in makefiles and subdirs for mono and gcj bindings.
2266 Neither binding actually exists, just trying to get through
2267 all the build and other boring bits.
2269 2003-06-21 Philip Blundell <philb@gnu.org>
2271 * tools/dbus-monitor.1: Updated.
2273 * tools/dbus-send.1: Likewise.
2275 2003-06-20 Anders Carlsson <andersca@codefactory.se>
2277 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
2278 for hangup and error after checking read so we won't discard
2279 pending data if both hangup and read are set.
2281 2003-06-19 Philip Blundell <philb@gnu.org>
2283 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
2285 * tools/dbus-send.c: Accept both --system and --session.
2287 * tools/dbus-monitor.c: Same here.
2289 2003-06-19 Anders Carlsson <andersca@codefactory.se>
2291 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
2292 from C++ (Patch by Miloslav Trmac).
2294 2003-06-15 Joe Shaw <joe@assbarn.com>
2296 * configure.in: Check for socklen_t.
2298 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
2300 * test/test-segfault.c: Add #include <sys/time.h>
2302 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
2303 dbus-launch needs it.
2305 2003-06-09 Havoc Pennington <hp@redhat.com>
2307 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
2308 SUN_LEN, it breaks abstract socket usage
2310 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
2313 2003-06-04 Havoc Pennington <hp@pobox.com>
2315 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
2316 using unix:abstract=/foo, and when listening in a tmpdir
2317 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
2319 * dbus/dbus-transport.c (_dbus_transport_open): support
2322 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
2323 support abstract sockets
2325 * dbus/dbus-transport-unix.c
2326 (_dbus_transport_new_for_domain_socket): support abstract sockets
2328 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
2329 toggle as an argument, implement abstract namespace support
2330 (_dbus_listen_unix_socket): ditto
2332 * configure.in: add --enable-abstract-sockets and implement
2333 a configure check for autodetection of the right value.
2335 2003-06-01 Havoc Pennington <hp@pobox.com>
2337 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
2338 in /tmp (though on Linux this will end up being useless,
2339 when we add abstract namespace support)
2341 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
2344 2003-05-28 Colin Walters <walters@verbum.org>
2346 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
2348 2003-05-18 Anders Carlsson <andersca@codefactory.se>
2350 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
2352 2003-05-17 Colin Walters <walters@gnu.org>
2354 * tools/dbus-send.c: Don't exit with an error code if --help was
2355 passed. Default to using the session bus instead of the system
2358 * tools/dbus-launch.c: Ditto.
2360 * tools/dbus-monitor.c: Ditto.
2362 * tools/dbus-send.1: Update with new arguments.
2364 * tools/dbus-launch.c: Emit code to export variables. New
2365 arguments -s and -c to specify shell syntax, and a bit of code to
2366 autodetect syntax. Also, allow specifying a program to run.
2368 * tools/dbus-launch.1: Update with new arguments.
2370 * tools/dbus-send.1: Ditto.
2372 * tools/dbus-monitor.1: Ditto.
2374 2003-05-17 Havoc Pennington <hp@pobox.com>
2376 * bus/config-parser.c (merge_included): merge in policies from
2377 child configuration file.
2379 * bus/policy.c (bus_policy_merge): function to merge two policies
2382 2003-05-16 Havoc Pennington <hp@redhat.com>
2384 * dbus/dbus-connection.c: disable verbose lock spew
2386 * tools/dbus-send.c: add --print-reply command line option
2388 * tools/dbus-print-message.h (print_message): new util function
2389 shared by dbus-send and dbus-monitor
2391 * tools/dbus-monitor.c (handler_func): exit on disconnect
2393 * dbus/dbus-transport-unix.c (do_reading): if the transport is
2394 disconnected, don't try to use the read_watch
2396 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
2397 so we can find this bug more easily
2399 2003-05-16 Havoc Pennington <hp@redhat.com>
2401 * bus/policy.c (free_rule_list_func): avoid a crash when passed
2402 NULL as DBusHashTable is annoyingly likely to do.
2404 2003-05-16 Colin Walters <walters@verbum.org>
2406 * tools/dbus-monitor.c: Add --session argument and usage()
2409 * tools/dbus-monitor.1: Update with new --session arg.
2411 * bus/Makefile.am (install-data-hook): Create
2412 $(libdir)/dbus-1.0/services so that the session bus is happy.
2414 2003-05-15 Havoc Pennington <hp@redhat.com>
2416 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
2417 on non-x86. ifdef's are evil.
2419 2003-05-15 Havoc Pennington <hp@redhat.com>
2421 * configure.in: 0.11
2425 * bus/Makefile.am (initddir): apparently we are supposed to put
2426 init scripts in /etc/rc.d/init.d not /etc/init.d
2428 * bus/Makefile.am: remove the "you must --enable-tests to make
2429 check" as it broke distcheck
2431 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
2433 2003-05-13 James Willcox <jwillcox@gnome.org>
2436 * bus/activation.c: (bus_activation_service_created),
2437 (bus_activation_activate_service):
2438 * bus/driver.c: (bus_driver_send_service_deleted),
2439 (bus_driver_send_service_created), (bus_driver_send_service_lost),
2440 (bus_driver_send_service_acquired),
2441 (bus_driver_send_welcome_message),
2442 (bus_driver_handle_list_services):
2443 * bus/session.conf.in:
2444 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
2445 (dbus_bus_service_exists), (dbus_bus_activate_service):
2448 Add some convenience API which lets you activate a service, and did a
2449 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
2450 and dbus_message_get_args()
2452 2003-05-11 Havoc Pennington <hp@pobox.com>
2454 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
2455 calling _dbus_marshal_validate_arg() for every byte in a byte
2458 * dbus/dbus-message-handler.c: use atomic reference counting to
2459 reduce number of locks slightly; the global lock in here sucks
2461 * dbus/dbus-connection.c
2462 (_dbus_connection_update_dispatch_status_and_unlock): variant of
2463 update_dispatch_status that can be called with lock held; then use
2464 in a couple places to reduce locking/unlocking
2465 (dbus_connection_send): hold the lock over the whole function
2466 instead of acquiring it twice.
2468 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
2470 * bus/connection.c (bus_connections_setup_connection): fix access
2471 to already-freed memory.
2473 * dbus/dbus-connection.c: keep a little cache of linked list
2474 nodes, to avoid using the global linked list alloc lock in the
2475 normal send-message case. Instead we just use the connection lock
2476 that we already have to take.
2478 * dbus/dbus-list.c (_dbus_list_find_last): new function
2480 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
2481 change to use a struct for the atomic type; fix docs,
2482 they return value before increment, not after increment.
2484 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
2485 (_dbus_string_append_8_aligned): new functions to try to
2486 microoptimize this operation.
2487 (reallocate_for_length): break this out of set_length(), to
2488 improve profile info, and also so we can consider inlining the
2491 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
2492 strings with some preallocation, cuts down on our calls to realloc
2493 a fair bit. Though if we can get the "move entire string to empty
2494 string" optimization below to kick in here, it would be better.
2496 * dbus/dbus-string.c (_dbus_string_move): just call
2497 _dbus_string_move_len
2498 (_dbus_string_move_len): add a special case for moving
2499 an entire string into an empty string; we can just
2500 swap the string data instead of doing any reallocs.
2501 (_dbus_string_init_preallocated): new function
2503 2003-05-11 Havoc Pennington <hp@pobox.com>
2505 Write a "test-profile" that does echo client-server with threads;
2506 profile reveals lock contention, memcpy/realloc of buffers, and
2507 UTF-8 validation as hot spots. 20% of lock contention eliminated
2508 with dbus_atomic_inc/dec implementation on x86. Much remaining
2509 contention is global mempool locks for GList and DBusList.
2511 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
2514 * dbus/dbus-connection.c (struct DBusConnection): use
2515 dbus_atomic_t for the reference count
2517 * dbus/dbus-message.c (struct DBusMessage): declare
2518 dbus_atomic_t values as volatile
2520 * configure.in: code to detect ability to use atomic integer
2521 operations in assembly, from GLib patch
2523 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
2524 time, tired of it being wrong in threads and forked processes
2526 * glib/test-profile.c: a little program to bounce messages back
2527 and forth between threads and eat CPU
2529 * dbus/dbus-connection.c: add debug spew macros for debugging
2530 thread locks; include config.h at top; fix deadlock in
2531 dbus_connection_flush()
2533 2003-05-08 Havoc Pennington <hp@pobox.com>
2535 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
2536 data from getting written, and there wasn't a good reason to
2539 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
2540 dbus_verbose lines in test coverage
2541 (main): add list of functions sorted by # of untested blocks
2542 to the coverage report
2544 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
2546 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
2548 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
2549 extend test coverage
2551 * test/data/auth/cancel.auth-script: test canceling an
2554 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
2555 aren't used. in CVS history if we end up needing them.
2557 2003-05-04 Havoc Pennington <hp@pobox.com>
2559 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
2562 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
2563 function, which assumed length was in # of strings, not bytes
2565 * dbus/dbus-message.c (_dbus_message_test): add tests for some
2568 * dbus/dbus-connection.c
2569 (_dbus_connection_queue_received_message): disable function for
2570 now, we are only using it in test mode
2572 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
2573 remove a mistaken FIXME
2575 2003-05-04 Havoc Pennington <hp@pobox.com>
2577 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
2578 unlock mutex on successful return, patch from Anders Gustafsson
2580 2003-05-04 Havoc Pennington <hp@pobox.com>
2582 * dbus-glib-1.pc.in (Requires): fix dependencies, from
2585 2003-05-04 Havoc Pennington <hp@pobox.com>
2587 * tools/dbus-launch.c: implement
2589 * bus/main.c (main), bus/bus.c (bus_context_new):
2590 implement --print-pid and --fork
2592 2003-05-03 Havoc Pennington <hp@redhat.com>
2594 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
2595 the address had no value, and add to test suite. Fix and
2596 regression test from Miloslav Trmac
2598 2003-05-03 Havoc Pennington <hp@pobox.com>
2600 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
2601 watch is invalid when handled
2603 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
2604 dbus-launch utility to launch the bus from a shell script. Didn't
2605 actually implement dbus-launch yet, it's just a placeholder still.
2607 2003-05-03 Havoc Pennington <hp@pobox.com>
2609 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
2610 daemon; also documents daemon config file, so replaces
2611 doc/config-file.txt. Corrected some stuff from config-file.txt in
2612 the process of moving it.
2614 2003-05-03 Havoc Pennington <hp@pobox.com>
2616 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
2619 2003-05-03 Colin Walters <walters@verbum.org>
2621 * dbus/dbus-sysdeps.c (fill_user_info): Test against
2622 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
2624 * Makefile.am: Update to use new .pc versioning scheme.
2626 2003-05-02 Havoc Pennington <hp@redhat.com>
2628 * bus/system.conf.in: allow send/receive to/from message bus
2631 2003-04-30 Havoc Pennington <hp@redhat.com>
2633 * configure.in: print a note when building with unit tests and
2636 2003-04-30 Havoc Pennington <hp@redhat.com>
2638 * Makefile.am: add a check-local that complains if you didn't
2639 configure with --enable-tests
2641 2003-04-29 Havoc Pennington <hp@redhat.com>
2643 * glib/dbus-gmain.c: docs cleanups
2645 * dbus/dbus-types.h: add docs on int64 types
2647 * dbus/dbus-memory.c: fix docs to avoid putting private API in
2648 public API docs section
2650 2003-04-29 Havoc Pennington <hp@redhat.com>
2652 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
2653 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
2654 parallel install API version, not with the D-BUS package version.
2656 * HACKING: move some of README over here
2658 * README: updates, and document API/ABI policy
2660 * configure.in: reindentation
2662 2003-04-29 Havoc Pennington <hp@redhat.com>
2664 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
2665 to use this library" to be sure people have the right
2668 2003-04-28 Havoc Pennington <hp@redhat.com>
2670 * configure.in: add --enable-docs which by default is auto yes if
2671 doxygen and db2html found, no otherwise; but can be forced on/off
2673 * doc/Makefile.am: conditionalize whether to build docs on
2676 2003-04-28 Havoc Pennington <hp@redhat.com>
2678 * configure.in: 0.10
2682 * bus/system.conf.in: add <includedir>system.d</includedir>
2684 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
2685 username was provided but not uid
2687 * bus/config-parser.c (struct BusConfigParser): keep track of
2688 whether the parser is toplevel or was included; change some
2689 of the error handling if it's included.
2691 2003-04-27 Havoc Pennington <hp@pobox.com>
2695 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2696 report correct status if we finish processing authentication
2697 inside this function.
2699 * bus/activation.c (try_send_activation_failure): use
2700 bus_transaction_send_error_reply
2702 * bus/connection.c (bus_connection_get_groups): return an error
2703 explaining the problem
2705 * bus/bus.c (bus_context_check_security_policy): implement
2706 restriction here that inactive connections can only send the
2707 hello message. Also, allow bus driver to send anything to
2710 * bus/connection.c (bus_connection_complete): create the
2711 BusClientPolicy here instead of on-demand.
2712 (bus_connection_get_policy): don't return an error
2714 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
2715 sender field in message being replied to
2717 * bus/bus.c (bus_context_check_security_policy): fix silly typo
2718 causing it to return FALSE always
2720 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
2721 we checked sender rather than destination
2723 2003-04-25 Havoc Pennington <hp@redhat.com>
2725 test suite is slightly hosed at the moment, will fix soon
2727 * bus/connection.c (bus_connections_expire_incomplete): fix to
2728 properly disable the timeout when required
2729 (bus_connection_set_name): check whether we can remove incomplete
2730 connections timeout after we complete each connection.
2732 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
2733 probably still broken.
2735 * bus/services.c (bus_registry_acquire_service): implement max
2736 number of services owned, and honor allow/deny rules on which
2737 services a connection can own.
2739 * bus/connection.c (bus_connection_get_policy): report errors here
2741 * bus/activation.c: implement limit on number of pending
2744 2003-04-25 Havoc Pennington <hp@redhat.com>
2746 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
2747 where we used >= 0 instead of != DBUS_UID_UNSET.
2749 2003-04-25 Havoc Pennington <hp@redhat.com>
2751 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
2752 were toggled without add/remove, fix from Anders Gustafsson
2754 2003-04-24 Havoc Pennington <hp@redhat.com>
2756 * test/data/valid-config-files/basic.conf: add <limit> tags to
2759 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
2760 <limit> tag in configuration file.
2762 2003-04-24 Havoc Pennington <hp@redhat.com>
2764 * bus/dispatch.c: somehow missed some name_is
2766 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
2767 (_dbus_timeout_set_interval): new
2769 * bus/connection.c (bus_connections_setup_connection): record time
2770 when each connection is first set up, and expire them after the
2771 auth timeout passes.
2773 2003-04-24 Havoc Pennington <hp@redhat.com>
2775 * dbus/dbus-message.c (dbus_message_name_is): rename
2776 (dbus_message_service_is): rename
2777 (dbus_message_sender_is): rename
2778 (dbus_message_get_service): rename
2780 2003-04-24 Havoc Pennington <hp@redhat.com>
2782 * configure.in: add --enable-checks
2784 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
2786 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
2787 to use thread locks.
2788 (_dbus_connection_handler_destroyed_locked): move some private
2789 functions into proper docs group
2791 * dbus/dbus-internals.h: add _dbus_return_if_fail,
2792 _dbus_return_val_if_fail
2794 Throughout: use dbus_return_if_fail
2796 2003-04-23 James Willcox <jwillcox@gnome.org>
2799 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
2800 (dbus_connection_setup_with_g_main),
2801 (dbus_server_setup_with_g_main):
2802 * glib/test-dbus-glib.c: (main):
2803 * glib/test-thread-client.c: (main):
2804 * glib/test-thread-server.c: (new_connection_callback), (main):
2805 * tools/dbus-monitor.c: (main):
2807 Added a GMainContext argument to dbus_connection_setup_with_g_main()
2808 and dbus_server_setup_with_g_main().
2810 2003-04-20 Havoc Pennington <hp@pobox.com>
2812 * doc/dbus-specification.sgml: document the restrictions on
2813 message and service names
2815 2003-04-22 Havoc Pennington <hp@redhat.com>
2817 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
2818 support, and do some code cleanups to share more code and
2819 speed up array marshal/demarshal.
2821 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
2823 * configure.in: generate dbus-arch-deps.h
2825 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
2828 2003-04-22 Havoc Pennington <hp@redhat.com>
2830 * test/data/valid-messages/opposite-endian.message: fix test
2831 to use proper type for rply field
2833 * test/data/invalid-messages: add tests for below validation
2835 * dbus/dbus-message.c (decode_header_data): validate field types,
2836 and validate that named fields are valid names
2837 (decode_name_field): consider messages in the
2838 org.freedesktop.Local. namespace to be invalid.
2840 * dbus/dbus-string.c (_dbus_string_validate_name): new
2842 2003-04-19 Havoc Pennington <hp@pobox.com>
2844 * bus/driver.c (bus_driver_handle_hello): check limits and
2845 return an error if they are exceeded.
2847 * bus/connection.c: maintain separate lists of active and inactive
2848 connections, and a count of each. Maintain count of completed
2849 connections per user. Implement code to check connection limits.
2851 * dbus/dbus-list.c (_dbus_list_unlink): export
2853 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
2854 number of bytes in the message queue for a connection
2856 2003-04-18 Havoc Pennington <hp@pobox.com>
2858 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
2860 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
2863 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
2864 on realloc be sure to update the pointer in the keyring
2866 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
2867 offset to avoid writing to unallocated memory
2869 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
2870 try the next mechanism, so we properly handle OOM
2872 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
2874 (_dbus_keyring_new): fix OOM bug
2875 (_dbus_keyring_new_homedir): always set error; impose a maximum
2876 number of keys we'll load from the file, mostly to speed up the
2877 test suite and make its OOM checks more useful, but also for
2880 * dbus/dbus-auth.c (process_error_server): reject authentication
2881 if we get an error from the client
2882 (process_cancel): on cancel, send REJECTED, per the spec
2883 (process_error_client): send CANCEL if we get an error from the
2886 2003-04-18 Havoc Pennington <hp@pobox.com>
2888 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
2891 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
2894 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
2895 about DBUS_TEST_HOMEDIR once
2897 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
2900 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
2901 config file so we test the right thing
2903 Throughout: assorted docs improvements
2905 2003-04-18 Havoc Pennington <hp@pobox.com>
2907 * glib/dbus-gmain.c: adapt to watch changes
2909 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
2911 * dbus/dbus-server.h: remove dbus_server_handle_watch
2913 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
2915 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
2916 like DBusTimeout, so we don't need dbus_connection_handle_watch
2919 2003-04-17 Havoc Pennington <hp@redhat.com>
2921 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
2922 database usage so it all goes via the DBusUserDatabase cache.
2924 2003-04-17 Havoc Pennington <hp@redhat.com>
2926 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
2927 there was an OOM watch we skipped, we always return TRUE so we
2928 iterate again to have a look at it again. Fixes test suite hang.
2929 Code rearrangement also lets us lose some memset and only iterate
2930 over callbacks once.
2932 * bus/driver.c (bus_driver_handle_message): sense of test for
2935 2003-04-16 Havoc Pennington <hp@pobox.com>
2937 * doc/dbus-specification.sgml: make spec say serials are unsigned
2939 * dbus/dbus-message.h: change message serials to unsigned
2941 * dbus/dbus-connection.c: adapt to message serials being unsigned
2943 2003-04-15 Havoc Pennington <hp@pobox.com>
2945 * bus/bus.c: create and keep around a shared DBusUserDatabase
2948 * bus/connection.c (bus_connection_get_groups): don't cache
2949 groups for user in the connection object, since user database
2950 object now does that.
2952 2003-04-16 Havoc Pennington <hp@redhat.com>
2954 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
2955 list of size counters
2956 (_dbus_message_loader_putback_message_link): put back a popped link
2958 * dbus/dbus-connection.c
2959 (dbus_connection_set_max_live_messages_size): rename
2961 (dbus_connection_get_outgoing_size): get size of outgoing
2963 (_dbus_connection_set_connection_counter): remove this cruft
2965 2003-04-14 Havoc Pennington <hp@redhat.com>
2967 * dbus/dbus-userdb.c: user database abstraction, mostly to get
2968 caching, but at some point we might want to be able to use a
2971 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
2972 SHA1 conf file to test the sha1 auth mechanism, since the regular
2973 test always uses EXTERNAL when available.
2976 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
2977 add conf file that requires use of sha1 auth
2979 2003-04-13 Havoc Pennington <hp@pobox.com>
2981 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
2982 from Philip Blundell to send messages and monitor them.
2984 2003-04-13 Havoc Pennington <hp@pobox.com>
2986 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
2989 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
2992 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
2993 fix to only recover unused bytes if we're already authenticated
2994 (_dbus_transport_get_is_authenticated): fix to still mark us
2995 authenticated if there are unused bytes.
2997 * bus/dispatch.c: implement security policy checking
2999 * bus/connection.c (bus_transaction_send_from_driver): new
3001 * bus/bus.c (bus_context_check_security_policy): new
3003 * bus/dispatch.c (send_service_nonexistent_error): delete this,
3004 now we just set the DBusError and it gets converted to an error
3007 * bus/connection.c (allow_user_function): enable code using actual
3008 data from the config file
3010 * bus/policy.c (list_allows_user): handle wildcard rules for
3011 user/group connection perms
3013 2003-04-13 Havoc Pennington <hp@pobox.com>
3015 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
3017 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
3019 * bus/policy.c (bus_policy_append_mandatory_rule)
3020 (bus_policy_append_default_rule, bus_policy_append_user_rule)
3021 (bus_policy_append_group_rule): new functions
3023 2003-04-12 Havoc Pennington <hp@pobox.com>
3025 * bus/config-parser.c (bus_config_parser_new): fix a memleak
3027 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
3028 the pid/gid/uid, just for paranoia.
3030 * test/break-loader.c (randomly_do_n_things): find a byte
3031 containing a type code, and randomly change it to a different
3034 2003-04-12 Havoc Pennington <hp@pobox.com>
3036 * bus/policy.h: change BusPolicy to be the thing from the config
3037 file, and rename old BusPolicy to BusClientPolicy
3039 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
3040 match change in how policy works
3042 * dbus/dbus-internals.h: mark assert_not_reached as
3043 __attribute((noreturn))__
3045 2003-04-11 Havoc Pennington <hp@redhat.com>
3047 * doc/dbus-specification.sgml: fix a spot with the wrong name for
3048 the broadcast service. Use boolean return for ServiceExists.
3050 2003-04-11 Havoc Pennington <hp@redhat.com>
3052 * configure.in: add another directory to look for qt in.
3054 2003-04-11 Havoc Pennington <hp@redhat.com>
3056 * AUTHORS: add Colin Walters
3058 2003-04-11 Havoc Pennington <hp@redhat.com>
3064 2003-04-11 Havoc Pennington <hp@redhat.com>
3066 * bus/messagebus.in: remove pid file when stopping the
3067 message bus, since the bus won't have privileges to remove it
3070 2003-04-11 Havoc Pennington <hp@redhat.com>
3072 * bus/bus.c (bus_context_new): move credentials change after
3075 2003-04-11 Havoc Pennington <hp@pobox.com>
3077 * test/decode-gcov.c: add "below average functions" to the
3078 coverage report, and change how some of the code works.
3080 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
3081 not in the coverage stats.
3083 * test/test-service.c (main): use _dbus_verbose not fprintf in a
3084 couple places so running the test suite doesn't result in megaspam.
3086 2003-04-11 Havoc Pennington <hp@pobox.com>
3088 * bus/dispatch.c (check_existent_service_activation): accept a no
3089 memory error in a place we didn't before
3091 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
3092 in case the first one failed," since the test suite is less
3095 2003-04-10 Havoc Pennington <hp@pobox.com>
3097 * bus/dispatch.c (check_segfault_service_activation): add test
3098 for launching an executable that just crashes.
3100 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
3101 don't leave a million cores. We'll see how portable this is.
3103 2003-04-10 Havoc Pennington <hp@pobox.com>
3105 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
3106 the possible parent failures before we fork, so that we don't
3107 fail to create a babysitter after creating the child.
3109 * bus/activation.c (bus_activation_activate_service): kill child
3110 if we don't successfully complete the activation.
3112 2003-04-10 Havoc Pennington <hp@redhat.com>
3114 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
3115 the connection if it's disconnected
3117 * bus/activation.c (bus_activation_service_created): use new
3118 transaction features to roll back removal of pending activation if
3119 we don't successfully create the service after all. Don't remove
3120 pending activation if the function fails.
3122 * dbus/dbus-list.c (_dbus_list_insert_before_link)
3123 (_dbus_list_insert_after_link): new code to facilitate
3126 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
3127 new functionality, so we can preallocate the ability to insert
3130 * bus/connection.c (bus_transaction_add_cancel_hook): new function
3131 allowing us to put custom hooks in a transaction to be used for
3132 cancelling said transaction
3134 * doc/dbus-specification.sgml: add some discussion of secondary
3135 service owners, and disallow zero-length service names
3137 * bus/services.c (bus_registry_acquire_service): new function,
3138 splits out part of bus_driver_handle_acquire_service() and fixes
3139 a bug where we didn't remove the service doing the acquiring
3140 from the secondary queue if we failed to remove the current owner
3141 from the front of the queue.
3143 2003-04-10 Alexander Larsson <alexl@redhat.com>
3145 * doc/dbus-specification.sgml:
3146 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
3148 2003-04-10 Alexander Larsson <alexl@redhat.com>
3153 Added files to cvsignore
3155 * dbus/dbus-message.h:
3156 * dbus/dbus-message.c: (dbus_message_iter_get_named):
3157 Make get_named() take two out argument and return a boolean.
3158 (dbus_message_iter_get_args_valist):
3159 Update usage of get_named().
3160 (dbus_message_iter_append_byte):
3162 (dbus_message_iter_append_named)
3164 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
3167 2003-04-10 Alexander Larsson <alexl@redhat.com>
3169 * dbus/dbus-marshal.[ch]:
3170 Add array_type_pos argument to _dbus_marshal_validate_arg.
3171 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
3173 * dbus/dbus-message.[ch]:
3174 Multi-dimensional arrays have full type specification in the
3175 outermost array. Iter code re-arranged to handle this.
3176 Added some more iter tests.
3178 * doc/dbus-specification.sgml:
3181 Update new array encoding description.
3182 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
3184 * test/data/invalid-messages/array-with-mixed-types.message:
3185 * test/data/valid-messages/array-of-array-of-uint32.message:
3186 Change to the new array format.
3188 * test/data/invalid-messages/too-short-dict.message:
3191 * test/data/valid-messages/recursive-types.message:
3192 Fix up and extend test.
3194 2003-04-10 Havoc Pennington <hp@pobox.com>
3196 * bus/dispatch.c: lots of fixes
3198 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
3199 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
3200 that was crack, broke the test service.
3202 * dbus/dbus-transport.c (_dbus_transport_open): fix error
3203 handling to avoid piling up errors if we get a failure on the
3206 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
3207 pid in assertion failures.
3209 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
3210 to some fixed size of file descriptor array. Don't return TRUE
3211 anytime a timeout exists, that led to lots of busy loop silliness
3214 2003-04-09 Havoc Pennington <hp@redhat.com>
3216 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
3217 I'd checked this in earlier but hadn't.
3219 2003-04-09 Havoc Pennington <hp@redhat.com>
3221 * bus/dispatch.c (bus_dispatch_test): get a bit further through
3222 the activation test (man this is getting old!)
3224 2003-04-09 Havoc Pennington <hp@redhat.com>
3226 * test/test-utils.c: use dispatch status function to fix this up
3228 * bus/connection.c (connection_watch_callback): don't dispatch
3230 (connection_timeout_callback): don't dispatch from here
3231 (bus_connections_setup_connection): set the dispatch status function
3232 (bus_connection_disconnected): unset it
3234 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
3235 used to add a connection to be dispatched
3236 (_dbus_loop_iterate): do the dispatching at the end of each
3239 * dbus/dbus-connection.c
3240 (dbus_connection_set_dispatch_status_function): new function
3241 allowing us to fix up main loop usage
3242 (_dbus_connection_last_unref): free all the various function
3244 (dbus_connection_dispatch): call the DispatchStatusFunction
3245 whenever this function returns
3246 (dbus_connection_handle_watch): call DispatchStatusFunction
3247 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
3248 (reply_handler_timeout): call DispatchStatusFunction
3249 (dbus_connection_flush): call DispatchStatusFunction
3251 2003-04-09 Havoc Pennington <hp@redhat.com>
3253 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
3256 * bus/dispatch.c (check_service_activated): fix bug in test
3258 * dbus/dbus-mainloop.c (check_timeout): fix this up
3260 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
3261 verbose output so we can sort out output from different processes,
3262 e.g. in the activation case.
3264 2003-04-08 Colin Walters <walters@gnu.org>
3266 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
3268 (bus_context_new): Set it.
3269 (bus_context_unref): Use it to delete the pid file.
3271 2003-04-08 Havoc Pennington <hp@redhat.com>
3273 * test/data/invalid-messages/array-with-mixed-types.message:
3274 regression test that fails for the moment
3276 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
3277 tests for convenience
3279 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
3280 array of nil, it broke things.
3282 * test/data/invalid-messages/array-of-nil.message: regression test
3284 * test/data/valid-messages/array-of-array-of-uint32.message:
3285 happened to write this so added it to suite
3287 2003-04-08 Havoc Pennington <hp@redhat.com>
3289 * bus/driver.c (bus_driver_handle_acquire_service): init
3290 retval/reply before checking name
3292 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
3293 recursion depth argument
3295 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
3296 in the public struct for future extension
3298 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
3301 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
3304 * doc/dbus-specification.sgml: fix typo
3306 2003-04-08 Alexander Larsson <alexl@redhat.com>
3308 Implemented recursive types, named types and new-style iters
3311 * glib/test-thread-client.c: (thread_func):
3312 * glib/test-thread-server.c: (handle_test_message):
3313 * test/test-service.c: (handle_echo):
3322 * dbus/dbus-internals.c: (_dbus_type_to_string):
3323 Update for new types.
3325 * dbus/dbus-marshal.[ch]:
3326 Implement recursive types and the new marshalling format.
3327 Remove hardcoded dict marshalling.
3328 Marshal named types.
3330 * dbus/dbus-message-builder.c:
3332 Remove references to old types
3334 * dbus/dbus-message.[ch]:
3335 New non-refcounted iter API that supports recursive iters.
3336 Use iters for appending, including support for recursive
3338 Add byte and named type support.
3339 Update everything to new marshalling formats.
3340 Add tests for new API.
3342 * dbus/dbus-protocol.h:
3343 Remove old array types.
3344 Add types: BYTE, ARRAY, DICT, NAMED
3346 * dbus/dbus-string.c:
3347 * dbus/dbus-sysdeps.c:
3348 Make parse_double locale safe.
3350 * dbus/dbus-test-main.c:
3356 * doc/dbus-specification.sgml:
3359 * test/data/incomplete-messages/missing-body.message:
3360 * test/data/invalid-messages/bad-boolean.message:
3361 * test/data/invalid-messages/bad-boolean-array.message:
3362 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
3363 * test/data/invalid-messages/boolean-has-no-value.message-raw:
3364 * test/data/invalid-messages/too-short-dict.message:
3365 * test/data/valid-messages/dict-simple.message:
3366 * test/data/valid-messages/dict.message:
3367 * test/data/valid-messages/emptiness.message:
3368 * test/data/valid-messages/lots-of-arguments.message:
3369 * test/data/valid-messages/no-padding.message:
3370 * test/data/valid-messages/recursive-types.message:
3371 Add missing NAME fields
3372 Fix up dicts & arrays
3374 * test/data/invalid-messages/dict-with-nil-value.message:
3375 Removed, this is not invalid anymore.
3377 * test/data/valid-messages/recursive-types.message:
3378 Add new test for deeply recursive types.
3380 2003-04-07 Havoc Pennington <hp@pobox.com>
3382 * bus/driver.c (bus_driver_handle_acquire_service): return an
3383 error if you try to acquire a service that starts with ':'
3385 2003-04-07 Havoc Pennington <hp@redhat.com>
3387 * doc/dbus-specification.sgml: require that base service names
3388 start with ':' and that the base service is created/deleted
3389 as first and last things a connection does on the bus
3391 * bus/dispatch.c (check_existent_service_activation): lots more
3392 work on the activation test; it doesn't fully pass yet...
3394 * test/test-service.c (main): fix so we don't memleak the
3395 connection to the message bus
3396 (filter_func): accept a message asking us to exit
3398 2003-04-06 Havoc Pennington <hp@pobox.com>
3400 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
3403 * configure.in: fixes to Qt detection from Colin Walters
3405 * doc/Makefile.am: Only remove generated docbook dirs if they
3406 exist, from Colin Walters
3408 * dbus/dbus-bus.c: change how we set well-known connections to
3409 NULL, so that it works if a single connection is stored in
3410 two well-known array slots.
3412 * test/Makefile.am: remove a lot of stuff that isn't immediately
3413 useful, it's in CVS history if we want it.
3415 * test/test-service.c: use dbus-mainloop instead of that
3418 2003-04-06 Havoc Pennington <hp@pobox.com>
3420 * dbus/Makefile.am: split lists of sources into stuff that goes in
3421 the library, util functions that go in the lib and are also used
3422 elsewhere, and util functions that are used in tests/daemon but
3423 don't go in the lib.
3425 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
3426 here so it can be used in test binaries also
3428 2003-04-06 Havoc Pennington <hp@pobox.com>
3430 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
3431 here in the parent process, so we can return an error if it
3432 fails. Also, move some of the code into the child so the parent
3433 is less hosed if we fail midway through.
3435 * bus/bus.c (bus_context_new): move pidfile detection further up
3436 in the function, before we start overwriting sockets and such.
3438 * bus/messagebus.in: adjust this a bit, not sure if it will work.
3440 * configure.in: add --with-system-pid-file and --with-system-socket
3442 2003-04-06 Colin Walters <walters@verbum.org>
3444 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
3446 * bus/system.conf.in: Declare a pidfile.
3448 * bus/bus.c (bus_context_new): Test for an existing pid file, and
3449 create one (if appropriate).
3451 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
3452 (struct BusConfigParser) [pidfile]: New.
3453 (element_type_to_name, merge_included, start_busconfig_child)
3454 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
3455 (bus_config_parser_unref): Free it.
3456 (bus_config_parser_get_pidfile): New function.
3458 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
3460 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
3462 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
3464 * dbus/dbus-sysdeps.h: Prototype it.
3466 2003-04-06 Havoc Pennington <hp@pobox.com>
3468 * bus/bus.c (bus_context_new): print the address in here, rather
3469 than in main(), because we need to do it before forking the daemon
3471 * bus/dispatch.c (send_service_nonexistent_error): set the sender
3472 on the service nonexistent error
3474 * bus/driver.c (bus_driver_handle_acquire_service): set the
3475 sender on the AcquireService reply
3477 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
3478 server also listen on a UNIX socket so services can connect to it.
3480 2003-04-06 Havoc Pennington <hp@pobox.com>
3482 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
3483 so it detects deadlocks and also we actually init threads when
3486 2003-04-06 Havoc Pennington <hp@pobox.com>
3488 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
3489 save the domain socket name, and unlink it when we disconnect the
3490 server. Means that at least when we exit normally, we won't leave
3491 a bunch of junk in /tmp
3493 * dbus/dbus-transport-unix.c
3494 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
3495 memory management). (I was making a real change here but then
3498 2003-04-06 Havoc Pennington <hp@pobox.com>
3500 * bus/bus.c (bus_context_new): fix wrong handling of
3501 server_data_slot_unref() in the error case.
3503 * dbus/dbus-internals.h (_dbus_assert): change so it passes
3504 "(condition) != 0" to _dbus_real_assert so that
3505 "_dbus_assert (pointer)" doesn't cause a warning
3507 * bus/main.c (main): accept --print-address option to print out
3508 the message bus address
3510 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
3512 * dbus/dbus-transport.c (_dbus_transport_open): special error for
3513 "tmpdir" option to unix: address on client side
3515 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
3518 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
3519 we can use to create sockets in the test suite.
3521 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
3522 cleanly. To be used for testing.
3524 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
3526 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
3528 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3529 handle trying to call this when there's no servers active
3531 2003-04-05 Havoc Pennington <hp@pobox.com>
3537 2003-04-05 Havoc Pennington <hp@pobox.com>
3539 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
3540 crash on startup. Need to get "try starting the daemon"
3541 in the test suite I guess. ;-)
3543 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
3544 tracked the number of open connections; it's better done in
3545 application-specific code as you want it to span all servers etc.
3547 2003-04-05 Havoc Pennington <hp@pobox.com>
3549 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
3550 patch from Colin Walters
3552 2003-04-05 Havoc Pennington <hp@pobox.com>
3554 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
3555 reality; in fact multiple mechanisms are allowed.
3557 * dbus/dbus-internals.c (_dbus_real_assert)
3558 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
3559 _dbus_assert_not_reached() into functions, so that they don't show
3560 up in basic block counts for test coverage, and don't use up as
3561 much disk space. Does mean slower execution speed though, so
3562 assumes --disable-asserts is the normal production case.
3564 2003-04-05 Havoc Pennington <hp@pobox.com>
3566 * test/Makefile.am (dist-hook): also dist *.in files
3572 2003-04-05 Havoc Pennington <hp@pobox.com>
3574 * dbus/dbus-string.c: docs warning
3576 * dbus/dbus-spawn.c: missing docs
3578 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
3580 2003-04-05 Havoc Pennington <hp@pobox.com>
3582 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
3585 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
3586 to -1 once we've reaped the babysitter
3587 (_dbus_babysitter_handle_watch): do as much work as we can, not
3590 * bus/activation.c: add code using DBusBabysitter so that we
3591 handle it when a service fails to start up properly.
3592 (bus_activation_service_created): don't remove the activation
3593 entries as we go, just let them get removed when we free the pending
3594 activation. Unref reply messages after sending them.
3596 2003-04-05 Havoc Pennington <hp@pobox.com>
3598 * test/decode-gcov.c (main): print per-directory stats in the report
3600 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
3602 2003-04-05 Havoc Pennington <hp@pobox.com>
3604 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
3606 * test/decode-gcov.c: hack up a little program to suck data
3607 out of gcov files. Yes this is sort of silly.
3609 * configure.in: define something in config.h and do an
3610 AM_CONDITIONAL when gcov is enabled
3612 2003-04-04 Havoc Pennington <hp@redhat.com>
3614 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
3615 return a "babysitter" object that is used to monitor the status of
3616 the spawned process and reap it when required.
3618 * test/test-segfault.c, test/test-exit.c,
3619 test/test-sleep-forever.c: binaries that do various lame things,
3620 used in the test suite.
3622 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
3624 2003-04-03 Havoc Pennington <hp@pobox.com>
3626 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
3627 in preparation for modifying it, dbus-sysdeps is getting
3630 2003-04-03 Havoc Pennington <hp@redhat.com>
3632 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
3635 * bus/*.[hc]: adapt to mainloop change
3637 2003-04-03 Havoc Pennington <hp@redhat.com>
3639 * bus/activation.c (load_directory): fix up memleaks
3640 (bus_activation_entry_free): free the entry
3642 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
3643 we get one from the message bus; fix memleaks.
3645 * dbus/dbus-message.c (dbus_set_error_from_message): new function
3647 2003-04-03 Havoc Pennington <hp@pobox.com>
3649 * bus/config-parser.c (bus_config_parser_unref): free
3650 list of mechanisms, bug discovered by test suite enhancements
3651 (putting system.conf and session.conf into suite)
3653 * test/Makefile.am, test/test-service.c: add placeholder for a
3654 test service that we'll activate as part of test suite. Doesn't
3657 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
3658 setting NULL value, and use system malloc not dbus_malloc()
3659 when we have unavoidable memleakage.
3661 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
3662 didn't work, and support DBUS_BUS_ACTIVATION.
3664 * bus/activation.c (child_setup): pass our well-known bus type to
3667 * bus/config-parser.c: support <type> to specify well-known type
3669 * doc/dbus-specification.sgml: document the env variables to
3670 locate well-known buses and find service activator
3672 2003-04-02 Havoc Pennington <hp@redhat.com>
3674 * test/Makefile.am (all-local): add a rule to copy tests to
3675 builddir, so we can have generated tests. Use this to remove the
3676 silly hack for testing system.conf and session.conf. Will use this
3677 shortly to generate .service files pointing to test binaries.
3679 2003-04-02 Havoc Pennington <hp@redhat.com>
3681 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
3682 current alloc and needed new length, not max of the doubled
3683 allocation and needed new length. Also, when building tests,
3684 don't do the double-allocation stuff, just realloc every time.
3686 2003-04-02 Havoc Pennington <hp@redhat.com>
3688 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
3690 (_dbus_string_get_dirname): new
3691 (_dbus_sysdeps_test): new
3692 (_dbus_directory_open): include dirnames in error messages
3694 * bus/config-parser.c: interpret <include> and <includedir> and
3695 <servicedir> relative to config file location if the given
3696 filename is not absolute.
3698 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
3700 2003-04-02 Havoc Pennington <hp@redhat.com>
3702 * bus/connection.c (bus_transaction_send_error_reply): set sender
3703 service for the error, and unref the reply on success
3705 * bus/activation.c: convert to use BusTransaction so OOM can be
3707 (bus_activation_service_created): set sender of the message
3709 2003-04-01 Havoc Pennington <hp@redhat.com>
3711 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
3712 <includedir> (at least mostly)
3714 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
3715 first, then the user ID
3717 2003-04-01 Havoc Pennington <hp@pobox.com>
3719 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
3722 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
3724 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
3726 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
3727 socket 0777, and unlink any existing socket.
3729 * bus/bus.c (bus_context_new): change our UID/GID and fork if
3730 the configuration file so specifies; set up auth mechanism
3733 * bus/config-parser.c (bus_config_parser_content): add support
3734 for <fork> option and fill in code for <auth>
3736 * bus/system.conf.in: add <fork/> to default configuration,
3737 and limit auth mechanisms to EXTERNAL
3739 * doc/config-file.txt (Elements): add <fork>
3741 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
3742 (_dbus_change_identity): new function
3744 2003-03-31 Havoc Pennington <hp@redhat.com>
3746 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
3747 (_dbus_listen_unix_socket): fix off-by-one error in null
3748 termination spotted by Nalin
3750 2003-03-31 Havoc Pennington <hp@redhat.com>
3752 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
3753 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
3754 having a real home directory available.
3756 2003-03-31 Havoc Pennington <hp@redhat.com>
3758 * bus/Makefile.am (install-data-hook): create /var/run/dbus
3760 * bus/messagebus.in: add init script for Red Hat /etc/init.d
3762 * configure.in: add support for specifying a style of init script
3765 2003-03-31 Havoc Pennington <hp@redhat.com>
3767 Fix some annoying DBusString API and fix all affected code.
3769 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
3771 (_dbus_string_get_data): change to return string instead of using
3773 (_dbus_string_get_const_data): ditto
3774 (_dbus_string_get_data_len): ditto
3775 (_dbus_string_get_const_data_len): ditto
3777 2003-03-31 Havoc Pennington <hp@redhat.com>
3779 * bus/main.c (main): fix up the command line arguments to be nicer
3781 2003-03-31 Havoc Pennington <hp@redhat.com>
3783 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
3784 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
3785 final location that lands in the config file
3787 * bus/config-loader-expat.c (bus_config_load): fix type of
3790 * doc/TODO: remove TODO item for dbus_bus_get()
3792 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
3794 2003-03-31 Havoc Pennington <hp@pobox.com>
3796 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
3797 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
3798 argument since they are always client side
3800 * dbus/dbus-server.c (dbus_server_get_address): new function
3802 * bus/main.c (main): take the configuration file as an argument.
3804 * test/data/valid-config-files/debug-allow-all.conf: new file to
3805 use with dispatch.c tests for example
3807 * bus/test-main.c (main): require test data dir
3809 * bus/bus.c (bus_context_new): change this to take a
3810 configuration file name as argument
3812 * doc/config-file.txt (Elements): add <servicedir>
3814 * bus/system.conf, bus/session.conf: new files
3816 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
3817 well-known socket if none set
3819 * configure.in: create system.conf and session.conf
3821 2003-03-30 Havoc Pennington <hp@pobox.com>
3823 * bus/config-parser.c: hacking
3825 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
3826 to shut down, since it could cause weirdness with the DBusList
3829 * dbus/dbus-list.c (_dbus_list_test): add tests for the
3830 link-oriented stack routines
3831 (alloc_link): free the mempool if the first alloc from it fails
3833 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
3835 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
3837 (_dbus_string_skip_white): new
3839 * doc/config-file.txt (Elements): add <includedir>
3841 2003-03-28 Havoc Pennington <hp@pobox.com>
3843 * dbus/dbus-string.c (_dbus_string_copy_data_len)
3844 (_dbus_string_copy_data): new functions
3846 2003-03-28 Anders Carlsson <andersca@codefactory.se>
3848 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
3852 * dbus/dbus-memory.c:
3855 2003-03-28 Havoc Pennington <hp@pobox.com>
3857 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
3858 I think it may have just been superstition. Not sure.
3860 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
3861 failures that were not being handled.
3863 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
3865 * dbus/dbus-memory.c: add ability to set number of mallocs in a
3866 row that will fail on out-of-memory.
3868 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
3869 function for testing out-of-memory handling.
3871 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
3872 allocation functions, they do map exactly to the expat ones.
3874 2003-03-27 Havoc Pennington <hp@redhat.com>
3876 * bus/config-loader-libxml.c (bus_config_load): add another error
3879 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3882 Add note about automatic service activation.
3884 * doc/dbus-specification.sgml:
3885 Rename the specification and clarify a few things.
3887 2003-03-26 Anders Carlsson <andersca@codefactory.se>
3890 * dbus/dbus-address.c:
3892 * dbus/dbus-marshal.c:
3893 * dbus/dbus-server-debug-pipe.c:
3894 * dbus/dbus-transport-unix.c:
3895 Fix documentation warnings.
3897 2003-03-26 Havoc Pennington <hp@pobox.com>
3899 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
3900 after every test so it's quick and easy to see which leaked, and
3901 so we test multiple dbus_shutdown() calls
3903 * configure.in: change configure.in XML stuff to also support
3906 * config-loader-libxml.c: some hacking
3908 * config-loader-expat.c: some hacking
3910 * config-parser.c: some hacking, plus tests
3912 2003-03-25 Havoc Pennington <hp@redhat.com>
3914 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
3916 * configure.in: add --with-xml option to specify XML library,
3917 right now only libxml is supported.
3919 * bus/config-loader-libxml.c, config-parser.c: sync some minor
3920 nonworking code between home and work, still just stubs
3922 2003-03-24 Havoc Pennington <hp@redhat.com>
3924 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
3927 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
3928 NULL argument for "message" if the error is a well-known one,
3929 fill in a generic message in this case.
3931 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
3934 * bus/test.c (bus_test_flush_bus): add
3936 * bus/policy.c (bus_policy_test): test code stub
3938 2003-03-24 Havoc Pennington <hp@pobox.com>
3940 * bus/connection.c (bus_connections_setup_connection): set up
3941 the "can this user connect" function, but it always returns
3942 TRUE until we have a config file parser so we can have a config
3943 file that allows connections.
3945 2003-03-23 Havoc Pennington <hp@pobox.com>
3947 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
3948 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
3949 the mutex, so we can check for proper memory management
3952 * dbus/dbus-dataslot.c: remove the mutex from
3953 DBusDataSlotAllocator and lock it manually when using it,
3954 to simplify fitting it into the global slots framework.
3956 * dbus/dbus-threads.c (init_static_locks): rework how we're
3957 handling global locks so they are easily shut down.
3959 * bus/policy.c (bus_policy_append_rule): fix
3961 * bus/test-main.c (main): check for memleaks
3963 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
3964 test suite check for memleaks
3966 * dbus/dbus-memory.c: add support in test mode for tracking
3967 number of outstanding blocks
3969 2003-03-23 Havoc Pennington <hp@pobox.com>
3971 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
3974 * dbus/dbus-hash.h: add ULONG hash keys
3976 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
3977 (_dbus_get_group_id): new function
3979 2003-03-20 Havoc Pennington <hp@redhat.com>
3981 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
3983 (dbus_connection_get_unix_user): new function
3985 2003-03-20 Havoc Pennington <hp@pobox.com>
3987 * bus/connection.c (bus_connection_send_oom_error): assert that
3988 message has a sender
3989 (connection_execute_transaction): ditto
3990 (bus_connection_preallocate_oom_error): fix to set the sender, and
3991 set recipient to the destination service, not the bus driver
3993 * bus/policy.c: hacking
3995 * dbus/dbus-message.c (dbus_message_service_is): new function
3996 (dbus_message_sender_is): new
3998 2003-03-19 Havoc Pennington <hp@redhat.com>
4000 * bus/policy.c: start sketching code for policy restrictions on
4001 what connections can do.
4003 2003-03-18 Havoc Pennington <hp@redhat.com>
4005 * doc/TODO: some notes on high-level todo items. Little nitpick
4006 stuff is all in @todo, so no need to add it here.
4008 * doc/config-file.txt: some notes on how config file might look
4010 2003-03-18 Anders Carlsson <andersca@codefactory.se>
4016 2003-03-17 Havoc Pennington <hp@redhat.com>
4018 * dbus/dbus-internals.h: add gcc attributes so that
4019 our printf-style functions warn on bad arguments to
4022 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
4025 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4028 2003-03-17 Havoc Pennington <hp@redhat.com>
4030 * bus/test-main.c (main): make it print something as it runs
4031 so make check doesn't look stuck
4033 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
4034 from CVS, now obsolete
4036 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4038 * bus/dispatch.c: (bus_dispatch):
4039 Refetch the service name since it may have been reallocated
4040 when dbus_message_set_sender was called.
4042 * dbus/dbus-sysdeps.c: (_dbus_accept):
4043 Add address and address length variables and use them to stop
4044 valgrind from complaining.
4046 2003-03-17 Havoc Pennington <hp@pobox.com>
4048 All tests pass, no memleaks, no valgrind complaints.
4050 * bus/test.c: refcount handler_slot
4052 * bus/connection.c (bus_connections_new): refcount
4053 connection_data_slot
4055 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
4056 bytes so that auth scripts pass.
4058 * bus/dispatch.c: init message_handler_slot so it gets allocated
4061 * bus/dispatch.c (message_handler_slot_ref): fix memleak
4063 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
4064 dealloc server_pipe_hash when no longer used for benefit of
4067 * dbus/dbus-auth.c (process_command): memleak fix
4069 * bus/dispatch.c (check_hello_message): memleak fix
4071 2003-03-16 Havoc Pennington <hp@pobox.com>
4073 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
4075 2003-03-17 Anders Carlsson <andersca@codefactory.se>
4077 * bus/activation.c (bus_activation_activate_service): Append
4078 the pending activation entry to the list of pending activations.
4080 2003-03-16 Havoc Pennington <hp@pobox.com>
4082 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
4085 * dbus/dbus-address.c (create_entry): fix OOM handling when
4086 failing to alloc entry->method
4088 2003-03-16 Havoc Pennington <hp@pobox.com>
4090 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
4093 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
4094 add some missing dbus_set_result
4096 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
4097 alloc the DBusMessageHandler
4099 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
4100 the transport here, since we call this from the finalizer; it
4101 resulted in a double-finalize.
4103 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
4104 where we tried to use transport->connection that was NULL,
4105 happened when transport was disconnected early on due to OOM
4107 * bus/*.c: adapt to handle OOM for watches/timeouts
4109 * dbus/dbus-transport-unix.c: port to handle OOM during
4112 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
4113 reference to unused bytes instead of a copy
4115 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
4118 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
4121 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
4124 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4126 * doc/dbus-specification.sgml:
4127 Document reply message for ActivateService.
4129 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4131 * bus/activation.c: (bus_pending_activation_entry_free),
4132 (bus_pending_activation_free), (bus_activation_new),
4133 (bus_activation_unref), (bus_activation_service_created),
4134 (bus_activation_activate_service):
4136 * bus/bus.c: (bus_context_new):
4137 * bus/desktop-file.c: (new_section):
4138 * bus/driver.c: (bus_driver_send_service_deleted),
4139 (bus_driver_handle_activate_service):
4140 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
4142 * dbus/dbus-connection.c:
4143 (dbus_connection_send_with_reply_and_block):
4144 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4145 * dbus/dbus-protocol.h:
4146 Make activation work better. Now pending activations will be queued
4147 and the daemon won't try to activate services that are already registered.
4149 2003-03-16 Havoc Pennington <hp@pobox.com>
4151 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
4154 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
4155 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
4157 2003-03-16 Havoc Pennington <hp@pobox.com>
4159 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
4160 this. always run the test suite before commit...
4162 * bus/*: adapt to DBusConnection API changes
4164 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
4165 requires renaming stuff to avoid dbus_connection_dispatch name
4168 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
4171 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
4172 separate from _dbus_message_loader_return_buffer()
4174 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
4175 this, because it's now always broken to use; the number of
4176 messages in queue vs. the number still buffered by the message
4177 loader is undefined/meaningless. Should use
4178 dbus_connection_get_dispatch_state().
4179 (dbus_connection_dispatch): rename from
4180 dbus_connection_dispatch_message
4182 2003-03-16 Havoc Pennington <hp@pobox.com>
4184 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
4187 2003-03-16 Anders Carlsson <andersca@codefactory.se>
4189 * dbus/dbus-connection.c:
4190 (dbus_connection_send_with_reply_and_block):
4191 Decrease connection->n_incoming when removing an entry
4193 * dbus/dbus-dict.c: (dbus_dict_entry_free),
4194 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4195 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4196 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
4197 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
4198 (dbus_dict_get_byte_array):
4199 Handle NULL arrays and strings. Also add support for byte arrays.
4201 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
4202 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
4203 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
4204 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
4205 (_dbus_demarshal_dict), (demarshal_and_validate_len),
4206 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
4207 * dbus/dbus-marshal.h:
4208 Add support for marshalling and demarshalling empty arrays and strings.
4210 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4211 (dbus_message_append_string_array),
4212 (dbus_message_iter_get_boolean),
4213 (dbus_message_iter_get_boolean_array),
4214 (dbus_message_iter_get_int32_array),
4215 (dbus_message_iter_get_uint32_array),
4216 (dbus_message_iter_get_double_array),
4217 (dbus_message_iter_get_byte_array),
4218 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
4219 (check_message_handling):
4220 Add support for getting empty arrays and dicts.
4222 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
4223 Don't do any validation at all for now, that's better than just checking
4226 * test/data/valid-messages/emptiness.message:
4227 New test message with lots of empty arrays.
4229 2003-03-16 Havoc Pennington <hp@pobox.com>
4231 * dbus/dbus-connection.c
4232 (_dbus_connection_queue_received_message_link): new function that
4233 can't fail due to OOM
4235 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
4236 new function pops a message together with a list link
4239 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
4240 message queuing functions to avoid needing to alloc memory
4242 2003-03-16 Havoc Pennington <hp@pobox.com>
4244 Oops - test code was only testing failure of around 30 of the
4245 mallocs in the test path, but it turns out there are 500+
4246 mallocs. I believe this was due to misguided linking setup such
4247 that there was one copy of dbus_malloc etc. in the daemon and one
4248 in the shared lib, and only daemon mallocs were tested. In any
4249 case, the test case now tests all 500+ mallocs, and doesn't pass
4250 yet, though there are lots of fixes in this patch.
4252 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
4253 this so that it doesn't need to allocate memory, since it
4254 has no way of indicating failure due to OOM (and would be
4255 annoying if it did).
4257 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
4259 * bus/Makefile.am: rearrange to create two self-contained
4260 libraries, to avoid having libraries with overlapping symbols.
4261 that was resulting in weirdness, e.g. I'm pretty sure there
4262 were two copies of global static variables.
4264 * dbus/dbus-internals.c: move the malloc debug stuff to
4267 * dbus/dbus-list.c (free_link): free list mempool if it becomes
4270 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
4272 * dbus/dbus-address.c (dbus_parse_address): free list nodes
4275 * bus/dispatch.c (bus_dispatch_add_connection): free
4276 message_handler_slot when no longer using it, so
4277 memory leak checkers are happy for the test suite.
4279 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
4281 * bus/bus.c (new_connection_callback): disconnect in here if
4282 bus_connections_setup_connection fails.
4284 * bus/connection.c (bus_connections_unref): fix to free the
4286 (bus_connections_setup_connection): if this fails, don't
4287 disconnect the connection, just be sure there are no side
4290 * dbus/dbus-string.c (undo_alignment): unbreak this
4292 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
4294 (_dbus_auth_new): fix the order in which we free strings
4297 * bus/connection.c (bus_connection_disconnected): fix to
4298 not send ServiceDeleted multiple times in case of memory
4301 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
4302 get the base service name
4303 (dbus_bus_register_client): don't return base service name,
4304 instead store it on the DBusConnection and have an accessor
4306 (dbus_bus_register_client): rename dbus_bus_register()
4308 * bus/dispatch.c (check_hello_message): verify that other
4309 connections on the bus also got the correct results, not
4310 just the one sending hello
4312 2003-03-15 Havoc Pennington <hp@pobox.com>
4314 Make it pass the Hello handling test including all OOM codepaths.
4315 Now to do other messages...
4317 * bus/services.c (bus_service_remove_owner): fix crash when
4318 removing owner from an empty list of owners
4319 (bus_registry_ensure): don't leave service in the list of
4320 a connection's owned services if we fail to put the service
4323 * bus/connection.c (bus_connection_preallocate_oom_error): set
4324 error flag on the OOM error.
4326 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4327 handle _dbus_transport_set_connection failure
4329 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
4330 to create watches up front and simply enable/disable them as
4332 (unix_connection_set): this can now fail on OOM
4334 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
4335 of enabling/disabling a watch or timeout.
4337 * bus/loop.c (bus_loop_iterate): don't touch disabled
4340 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
4342 2003-03-15 Havoc Pennington <hp@pobox.com>
4344 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
4345 write useful test code, after all that futzing around ;-)
4347 Test does not yet pass because we can't handle OOM in
4348 _dbus_transport_messages_pending (basically,
4349 dbus_connection_preallocate_send() does not prealloc the write
4350 watch). To fix this, I think we need to add new stuff to
4351 set_watch_functions, namely a SetEnabled function so we can alloc
4352 the watch earlier, then enable it later.
4354 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
4355 dbus-memory.c to the convenience lib
4357 * bus/test.c: rename some static functions to keep them clearly
4358 distinct from stuff in connection.c. Handle client disconnection.
4360 2003-03-14 Havoc Pennington <hp@pobox.com>
4362 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
4363 transport, tests more of the real codepath. Set up clients
4364 with bus_setup_debug_client.
4366 * bus/test.c (bus_setup_debug_client): function to set up debug
4367 "clients" on the main loop
4369 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
4372 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
4375 * dbus/dbus-server-debug.c: support a debug server based on pipes
4377 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
4378 (_dbus_close): new function
4380 * configure.in: check for socketpair
4382 2003-03-14 Havoc Pennington <hp@redhat.com>
4384 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
4387 * dbus/dbus-transport-debug.c: rework this a good bit to be
4388 less complicated. hopefully still works.
4390 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
4393 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
4396 * dbus/dbus-message.c (dbus_message_copy): rename from
4397 dbus_message_new_from_message, fix it up to copy
4398 all the message fields, add test case
4400 * bus/dispatch.c (bus_dispatch_test): add some more test code,
4401 not quite passing yet
4403 2003-03-14 Havoc Pennington <hp@pobox.com>
4405 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
4406 until no work remains" in test code. (the large diff here
4407 is just code movement, no actual changes)
4409 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
4410 1, no point waiting around for test code.
4411 (_dbus_server_debug_accept_transport): unref the timeout
4412 after adding it (right?)
4414 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
4416 2003-03-13 Havoc Pennington <hp@redhat.com>
4418 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
4421 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
4424 * dbus/dbus-connection.h: Make AddWatchFunction and
4425 AddTimeoutFunction return a bool so they can fail on out-of-memory
4427 * bus/bus.c (bus_context_new): set up timeout handlers
4429 * bus/connection.c (bus_connections_setup_connection): set up
4432 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
4435 * bus/bus.c (bus_context_new): adapt to changes
4437 * bus/connection.c: adapt to changes
4439 * test/watch.c: adapt to DBusWatch changes
4441 * bus/dispatch.c (bus_dispatch_test): started adding this but
4444 2003-03-14 Anders Carlsson <andersca@codefactory.se>
4446 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
4448 2003-03-13 Havoc Pennington <hp@pobox.com>
4450 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
4451 set up a test framework as for the library
4453 2003-03-12 Havoc Pennington <hp@pobox.com>
4455 Throughout: purge global variables, introduce BusActivation,
4456 BusConnections, BusRegistry, etc. objects instead.
4458 * bus/bus.h, bus/bus.c: introduce BusContext as a global
4461 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
4462 going to redo this a bit differently I think
4464 2003-03-12 Havoc Pennington <hp@redhat.com>
4466 Mega-patch that gets the message bus daemon initially handling
4467 out-of-memory. Work still needed. Also lots of random
4468 moving stuff to DBusError instead of ResultCode.
4470 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
4472 * dbus/dbus-connection.c
4473 (dbus_connection_send_with_reply_and_block): use DBusError
4475 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
4478 * dbus/dbus-connection.c (dbus_connection_send): drop the result
4479 code here, as the only failure possible is OOM.
4481 * bus/connection.c (bus_connection_disconnect):
4482 rename bus_connection_disconnected as it's a notification only
4484 * bus/driver.c (bus_driver_handle_acquire_service): don't free
4485 "name" on get_args failure, should be done by get_args;
4486 don't disconnect client for bad args, just return an error.
4487 (bus_driver_handle_service_exists): ditto
4489 * bus/services.c (bus_services_list): NULL-terminate returned array
4491 * bus/driver.c (bus_driver_send_service_lost)
4492 (bus_driver_send_service_acquired): send messages from driver to a
4493 specific client to the client's unique name, not to the broadcast
4496 * dbus/dbus-message.c (decode_header_data): reject messages that
4497 contain no name field
4498 (_dbus_message_get_client_serial): rename to
4499 dbus_message_get_serial and make public
4500 (_dbus_message_set_serial): rename from set_client_serial
4501 (_dbus_message_set_reply_serial): make public
4502 (_dbus_message_get_reply_serial): make public
4504 * bus/connection.c (bus_connection_foreach): allow stopping
4505 iteration by returning FALSE from foreach function.
4507 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
4508 (dbus_connection_free_preallocated_send)
4509 (dbus_connection_preallocate_send): new API for sending a message
4510 without possibility of malloc failure.
4511 (dbus_connection_send_message): rename to just
4512 dbus_connection_send (and same for whole function family)
4514 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
4516 * dbus/dbus-sysdeps.c (_dbus_exit): new function
4518 * bus/activation.c: handle/return errors
4520 * dbus/dbus-errors.h: add more DBUS_ERROR #define
4522 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
4523 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
4524 (_dbus_result_from_errno): move to this file
4526 2003-03-10 Anders Carlsson <andersca@codefactory.se>
4528 * dbus/dbus-marshal.c:
4529 (_dbus_marshal_set_string):
4530 Take a length argument so we can marshal the correct string
4533 (_dbus_marshal_dict), (_dbus_demarshal_dict),
4534 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
4535 (_dbus_marshal_test):
4536 * dbus/dbus-marshal.h:
4537 Add support for marshalling and demarshalling dicts.
4539 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4540 Add support for TYPE DICT.
4542 * dbus/dbus-message.c: (set_string_field):
4543 Adjust header padding.
4545 (dbus_message_append_args_valist), (dbus_message_append_dict),
4546 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
4547 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
4548 (check_message_handling), (check_have_valid_message):
4549 * dbus/dbus-message.h:
4550 Add functions for setting and getting dicts.
4552 * dbus/dbus-protocol.h:
4558 * doc/dbus-specification.sgml:
4559 Add information about how dicts are marshalled.
4561 * test/data/invalid-messages/dict-with-nil-value.message:
4562 * test/data/invalid-messages/too-short-dict.message:
4563 * test/data/valid-messages/dict-simple.message:
4564 * test/data/valid-messages/dict.message:
4565 Add sample messages containing dicts.
4567 2003-03-08 Anders Carlsson <andersca@codefactory.se>
4569 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
4571 2003-03-07 Anders Carlsson <andersca@codefactory.se>
4574 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4575 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
4576 (dbus_dict_set_int32), (dbus_dict_set_uint32),
4577 (dbus_dict_set_double), (dbus_dict_set_string),
4578 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
4579 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
4580 (dbus_dict_set_string_array), (_dbus_dict_test):
4582 Fix according to comments from Havoc.
4584 2003-03-06 Michael Meeks <michael@server.home>
4586 * configure.in: if we don't have kde-config, disable have_qt.
4588 2003-03-07 Anders Carlsson <andersca@codefactory.se>
4593 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
4594 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
4595 (dbus_dict_remove), (dbus_dict_get_value_type),
4596 (dbus_dict_get_keys), (dbus_dict_put_boolean),
4597 (dbus_dict_put_int32), (dbus_dict_put_uint32),
4598 (dbus_dict_put_double), (dbus_dict_put_string),
4599 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
4600 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
4601 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
4602 (dbus_dict_get_int32), (dbus_dict_get_uint32),
4603 (dbus_dict_get_double), (dbus_dict_get_string),
4604 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
4605 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
4606 (dbus_dict_get_string_array), (_dbus_dict_test):
4608 Add DBusDict implementation
4610 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
4614 2003-03-04 Havoc Pennington <hp@pobox.com>
4616 * test/data/auth/*: adapt to changes
4618 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
4619 USERID_BASE64 and change USERNAME_BASE64 to put in username not
4622 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
4623 more stuff from being in a context name, to make the protocol
4624 simpler to deal with
4626 * dbus/dbus-errors.c (dbus_error_has_name): new function
4627 (dbus_error_is_set): new function
4629 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
4630 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
4632 * dbus/dbus-connection.c (dbus_connection_flush): also read
4633 messages during a flush operation
4635 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
4637 2003-03-05 Anders Carlsson <andersca@codefactory.se>
4639 * configure.in: Check for gethostbyname on Solaris.
4641 * dbus/dbus-transport.c: (_dbus_transport_open):
4642 Remove duplicate "tcp" entry.
4644 * doc/dbus-specification.sgml:
4645 Clarify some things.
4647 2003-03-05 Anders Carlsson <andersca@codefactory.se>
4649 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
4650 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
4651 (_dbus_keyring_test):
4652 * dbus/dbus-md5.c: (_dbus_md5_compute):
4653 * dbus/dbus-sha.c: (_dbus_sha_compute):
4656 2003-03-05 Anders Carlsson <andersca@codefactory.se>
4658 * README: Add some things.
4660 2003-03-04 Anders Carlsson <andersca@codefactory.se>
4662 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
4663 after case DBUS_TYPE_BOOELAN.
4665 2003-03-02 Havoc Pennington <hp@pobox.com>
4667 * test/break-loader.c (randomly_set_extreme_ints): add test that
4668 sets really huge and small integers
4670 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
4671 that length of boolean array fits in the string, and that
4672 string has room for boolean value in single-bool case.
4674 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
4675 optional value to "ALIGN" command which is what to fill the
4678 * test/data/valid-messages/no-padding.message: add regression
4679 test for the message padding problem
4681 2003-03-02 Havoc Pennington <hp@pobox.com>
4683 * dbus/dbus-message.c (decode_header_data): fix to always init
4684 message_padding, from Benjamin Dauvergne
4686 2003-03-02 Havoc Pennington <hp@pobox.com>
4692 2003-03-01 Joe Shaw <joe@assbarn.com>
4694 * configure.in: Check for "struct cmsgcred" and try to access its
4695 members for BSD-like unices.
4697 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
4698 _dbus_read_credentials_unix_socket().
4699 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
4700 read() for reading the credential byte off the unix socket. Use
4701 struct cmsgcred on systems that support it.
4703 2003-02-27 Alexander Larsson <alexl@redhat.com>
4707 Make gthreads-2.0 dependency optional. Don't build thread test if
4710 2003-02-27 Havoc Pennington <hp@pobox.com>
4712 * dbus/dbus-connection.c
4713 (dbus_connection_send_message_with_reply_and_block): fix doh!
4714 doh! doh! bug that resulted in never removing a reply from the
4715 queue, no wonder we called get_reply_serial so much ;-)
4717 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
4718 and client serial instead of demarshaling them every time
4720 2003-02-27 Havoc Pennington <hp@pobox.com>
4722 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
4723 more inlined, using dbus-string-private.h, speeds things up
4726 * dbus/dbus-string.c (_dbus_string_free): apply align offset
4727 when freeing the string
4728 (_dbus_string_steal_data): fix for align offset
4729 (undo_alignment): new function
4731 2003-02-26 Havoc Pennington <hp@redhat.com>
4733 All kinds of audit fixes from Owen, plus initial attempt to
4734 handle unaligned memory returned from malloc.
4736 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
4737 leave room for align_offset and nul byte
4738 (fixup_alignment): function to track an align_offset and
4739 ensure real->str is aligned
4740 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
4741 to allow a nul byte plus align offset
4742 (_dbus_string_lock): fix overflow issue
4743 (_dbus_string_init_const_len): add assertions on sanity of len,
4744 assign allocated to be ALLOCATION_PADDING larger than len
4745 (set_length): fixup the overflow handling
4746 (_dbus_string_get_data_len): fix overflow in assertion
4747 (open_gap): detect overflow in size of gap to be opened
4748 (_dbus_string_lengthen): add overflow check
4749 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
4750 (_dbus_string_append): add overflow check
4751 (_dbus_string_append_unichar): overflow
4752 (_dbus_string_delete): fix overflow in assertion
4753 (_dbus_string_copy_len): overflow in assertion
4754 (_dbus_string_replace_len): overflows in assertions
4755 (_dbus_string_find): change to implement in terms of
4756 _dbus_string_find_to
4757 (_dbus_string_find_to): assorted fixage
4758 (_dbus_string_equal_c_str): assert c_str != NULL,
4759 fix logic so the function works
4760 (_dbus_string_ends_with_c_str): fix overflow thingy
4761 (_dbus_string_base64_encode): overflow fix
4762 (_dbus_string_validate_ascii): overflow
4763 (_dbus_string_validate_nul): overflow
4765 2003-02-26 Havoc Pennington <hp@redhat.com>
4767 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
4769 2003-02-26 Alexander Larsson <alexl@redhat.com>
4772 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
4774 * dbus/dbus-connection.c:
4775 * dbus/dbus-connection.h:
4776 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
4777 Add dbus_connection_set_wakeup_main_function and use it when queueing
4778 incoming and outgoing messages.
4781 * dbus/dbus-dataslot.c:
4782 Threadsafe usage of DBusDataSlotAllocator
4784 * dbus/dbus-message.c: (dbus_message_get_args_iter):
4787 * dbus/dbus-server-unix.c:
4790 * glib/dbus-gmain.c:
4791 Implement the new wakeup functions for glib.
4794 * glib/test-thread-client.c:
4795 * glib/test-thread-server.c:
4796 * glib/test-thread.h:
4797 Initial cut at some thread test code. Not really done yet.
4799 2003-02-26 Havoc Pennington <hp@pobox.com>
4801 * dbus/dbus-connection.c
4802 (dbus_connection_send_message_with_reply_and_block): fix crash
4803 where we ref'd the outgoing message instead of the returned reply
4805 * dbus/dbus-transport-unix.c (do_authentication): check read watch
4806 at the end of this function, so if we didn't need to read for
4807 authentication, we reinstall it for receiving messages
4809 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
4810 a NULL sender for peer-to-peer case
4812 * dbus/dbus-transport-unix.c (check_read_watch): handle
4813 !authenticated case correctly
4815 * glib/dbus-gmain.c: add support for DBusServer
4817 * dbus/dbus-server.c: add data slot support
4819 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
4820 return values and handle errors
4822 * dbus/dbus-dataslot.c: factor out the data slot stuff from
4825 * Doxyfile.in (INPUT): add glib subdir
4827 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
4828 setup_with_g_main instead of hookup_with_g_main; write docs
4830 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4832 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
4833 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4834 * dbus/dbus-message.c: (dbus_message_append_boolean),
4835 (dbus_message_append_boolean_array),
4836 (dbus_message_get_args_valist), (_dbus_message_test):
4837 * dbus/dbus-message.h:
4838 * doc/dbus-specification.sgml:
4839 Various fixes as pointed out by Havoc.
4841 * test/data/invalid-messages/bad-boolean-array.message:
4842 * test/data/invalid-messages/bad-boolean.message:
4843 Add invalid boolean value test cases.
4845 2003-02-24 Anders Carlsson <andersca@codefactory.se>
4847 * dbus/dbus-internals.c: (_dbus_type_to_string):
4848 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
4849 (_dbus_marshal_validate_arg):
4850 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
4851 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4852 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
4853 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
4854 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
4855 (dbus_message_iter_get_double),
4856 (dbus_message_iter_get_boolean_array), (message_iter_test):
4857 * dbus/dbus-message.h:
4858 * dbus/dbus-protocol.h:
4859 * doc/dbus-specification.sgml:
4860 * test/data/valid-messages/lots-of-arguments.message:
4861 Add support for boolean and boolean array types.
4863 2003-02-23 Havoc Pennington <hp@pobox.com>
4865 * dbus/dbus-keyring.c: finish most of this implementation and
4868 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
4869 these barf if the error isn't cleared to NULL
4871 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
4872 (_dbus_create_directory): new function
4874 * dbus/dbus-errors.c (dbus_set_error): fix warning
4876 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
4877 (_dbus_string_hex_decode): new function
4878 (test_hex_roundtrip): test code
4880 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
4882 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
4884 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
4885 the save-to-temp/rename trick to atomically write the new file
4886 (_dbus_string_parse_uint): new function
4888 2003-02-22 Havoc Pennington <hp@pobox.com>
4890 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
4892 2003-02-22 Havoc Pennington <hp@pobox.com>
4894 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
4895 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
4897 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
4899 * dbus/test/data/sha-1: add US government test suite for SHA-1
4901 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4903 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
4904 Make string arrays NULL-terminated.
4906 * dbus/dbus-memory.c: (dbus_free_string_array):
4907 * dbus/dbus-memory.h:
4908 New function for freeing NULL-terminated string arrays.
4910 * dbus/dbus-message-builder.c: (append_quoted_string),
4911 (_dbus_message_data_load):
4912 Add support for array types.
4914 * dbus/dbus-message.c: (check_message_handling):
4915 Add more types as test cases.
4917 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
4918 (_dbus_string_parse_double):
4919 Add the start offset to the end offset.
4921 * test/data/valid-messages/lots-of-arguments.message:
4922 New test message with lots of arguments.
4924 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4926 * dbus/dbus-message.c: (dbus_message_append_nil),
4927 (dbus_message_append_int32), (dbus_message_append_uint32),
4928 (dbus_message_append_double), (dbus_message_append_string),
4929 (dbus_message_append_int32_array),
4930 (dbus_message_append_uint32_array),
4931 (dbus_message_append_double_array),
4932 (dbus_message_append_byte_array),
4933 (dbus_message_append_string_array):
4934 Fix all out-of-memory handling in these functions.
4936 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4938 * dbus/dbus-message.c: (dbus_message_append_nil):
4941 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4943 * dbus/dbus-message.c: (dbus_message_append_args_valist),
4944 (dbus_message_append_nil), (dbus_message_append_int32_array),
4945 (dbus_message_append_uint32_array),
4946 (dbus_message_append_double_array),
4947 (dbus_message_append_byte_array),
4948 (dbus_message_append_string_array), (dbus_message_get_args_valist),
4949 (dbus_message_iter_get_int32_array),
4950 (dbus_message_iter_get_uint32_array),
4951 (dbus_message_iter_get_double_array),
4952 (dbus_message_iter_get_byte_array),
4953 (dbus_message_iter_get_string_array):
4955 * dbus/dbus-message.h:
4956 Add functions for appending and getting arrays.
4958 2003-02-21 Anders Carlsson <andersca@codefactory.se>
4960 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
4961 element size at least 8 bytes, fixes mempool tests on
4964 2003-02-20 Alexander Larsson <alexl@redhat.com>
4966 * dbus/dbus-transport-unix.c (unix_do_iteration):
4967 Unlock the connection mutex during a blocking select call.
4968 Add todo about how we need a way to wake up the select.
4970 * dbus/dbus-connection-internal.h:
4971 * dbus/dbus-connection.c:
4972 Add _dbus_connection_lock and _dbus_connection_unlock.
4974 2003-02-19 Havoc Pennington <hp@pobox.com>
4976 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
4977 Doxyfile.in, not Doxyfile
4979 * dbus/dbus-keyring.c: do some hacking on this
4981 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
4983 * dbus/dbus-errors.c (dbus_set_error_const): do not call
4985 (dbus_set_error): remove dbus_error_init, check for message ==
4986 NULL *before* we sprintf into it, and add @todo about including
4987 system headers in this file
4989 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
4991 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
4993 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
4994 get various bits of user information based on either username
4996 (_dbus_homedir_from_username): new function
4998 2003-02-19 Anders Carlsson <andersca@codefactory.se>
5001 Add check for nonposix getpwnam_r
5003 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
5004 Align the pool element size to a sizeof (void *) boundary.
5006 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
5007 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
5008 General Solaris fixes.
5010 * test/data/valid-messages/simplest-manual.message:
5011 Explicitly state that we want little-endian packing.
5013 2003-02-19 Mikael Hallendal <micke@codefactory.se>
5015 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5017 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
5018 Added to create a transport connecting using a tcp/ip socket.
5020 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
5021 to a tcp socket at given host and port.
5022 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
5025 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
5027 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
5028 Added to create a server listening on a TCP/IP socket.
5030 2003-02-19 Havoc Pennington <hp@pobox.com>
5032 Throughout: mop up all the Doxygen warnings and undocumented
5035 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
5036 to search any paths.
5038 * dbus/dbus-threads.c: move global mutex initializers to
5039 dbus-internals.h, multiple prototypes was confusing doxygen
5040 besides being kind of ugly
5042 * Doxyfile (PREDEFINED): have Doxygen define
5043 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
5044 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
5045 (do not abuse the feature! it's for stuff like the autogenerated
5046 macros in dbus-md5.c, not just for things you don't feel like
5049 2003-02-18 Havoc Pennington <hp@pobox.com>
5051 * dbus/dbus-string.c (_dbus_string_zero): new function
5053 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
5054 wrap it in some dbus-friendly API
5056 * dbus/dbus-types.h: add 16-bit types
5058 2003-02-18 Joe Shaw <joe@assbarn.com>
5060 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
5061 credentials from our currently running process.
5062 (get_word): Fix a buglet where we were copying the entire length
5063 instead of relative to our position.
5065 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
5066 keys on the stack... it's 640k of data.
5068 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
5069 read the credentials byte off the socket, even if we don't have
5071 (_dbus_poll): Implement poll() using select() for systems which
5074 * glib/test-dbus-glib.c (main): Print out an error if no
5075 parameters are given.
5077 * test/data/auth/fallback.auth-script: Added. Tests that a client
5078 can fallback to a secondary auth mechanism if the first fails.
5080 2003-02-18 Havoc Pennington <hp@pobox.com>
5084 2003-02-17 Havoc Pennington <hp@pobox.com>
5086 * doc/dbus-specification.sgml: lots of cosmetic
5087 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
5088 env variable to DBUS_BUS_ADDRESS, s/client/application/,
5089 s/server/bus/ (except in authentication section). Add a section
5090 "Message Bus Message Routing"
5092 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
5098 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5100 * doc/dbus-specification.sgml:
5101 Specification updates.
5103 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5105 * bus/activation.c: (bus_activation_init), (child_setup),
5106 (bus_activation_activate_service):
5108 * bus/main.c: (main):
5109 Set DBUS_ADDRESS environment variable.
5111 * dbus/dbus-errors.c: (dbus_set_error):
5112 Don't use va_copy since that's a C99 feature.
5114 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
5115 (_dbus_spawn_async):
5116 * dbus/dbus-sysdeps.h:
5117 Add child_setup_func to _dbus_spawn_async.
5119 * doc/dbus-specification.sgml:
5120 Update specification.
5122 * test/spawn-test.c: (setup_func), (main):
5125 2003-02-17 Alexander Larsson <alexl@redhat.com>
5127 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
5130 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5134 * doc/dbus-test-plan.sgml:
5135 Add test plan document.
5140 2003-02-17 Anders Carlsson <andersca@codefactory.se>
5142 * dbus/dbus-message.c: (decode_header_data),
5143 (_dbus_message_loader_return_buffer):
5144 Set the header padding amount when loading a message.
5146 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5148 * bus/dispatch.c: (send_one_message):
5149 Only send broadcast messages to registered connections.
5151 * dbus/dbus-message.c: (dbus_message_name_is):
5152 * dbus/dbus-message.h:
5153 New convenience function.
5155 * dbus/dbus-transport-debug.c: (do_reading):
5156 Only dispatch one message per run.
5159 * test/bus-test.c: (new_connection_callback), (die),
5160 (test_hello_client1_handler), (test_hello_client2_handler),
5161 (test_hello_replies), (main):
5163 * test/bus-test-loop.[ch]:
5166 2003-02-16 Havoc Pennington <hp@pobox.com>
5168 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
5169 backward conditional
5171 2003-02-16 Alexander Larsson <alexl@redhat.com>
5173 * dbus/dbus-connection.c:
5174 Implement sent_message_with_reply. (with_reply_and block is still
5176 Made dispatch_message not lose message if OOM.
5178 * dbus/dbus-errors.h:
5179 Add NoReply error (for reply timeouts).
5181 2003-02-16 Alexander Larsson <alexl@redhat.com>
5183 * dbus/dbus-hash.c (_dbus_hash_table_unref):
5184 Actually free keys and values when destroying hashtable.
5186 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5188 * dbus/dbus-auth.c: (client_try_next_mechanism):
5191 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
5192 Return TRUE if there's no thread implementation around.
5194 * glib/dbus-gmain.c: (free_source),
5195 (dbus_connection_hookup_with_g_main):
5196 Make sure to remove the GSource when the connection is finalized.
5198 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5200 * bus/dispatch.c: (bus_dispatch_message_handler):
5201 * dbus/dbus-errors.h:
5202 Return an error if someone tries to send a message to a service
5205 2003-02-16 Anders Carlsson <andersca@codefactory.se>
5207 * bus/activation.c: (load_directory), (bus_activation_init),
5208 (bus_activation_activate_service):
5211 (bus_driver_handle_activate_service), (bus_driver_handle_message):
5212 More work on the activation handling.
5214 * dbus/dbus-errors.h:
5215 Add some error messages
5217 * dbus/dbus-message.c: (dbus_message_new_error_reply):
5218 * dbus/dbus-message.h:
5219 New function that creates an error message.
5221 * dbus/dbus-protocol.h:
5222 Add ACTIVATE_SERVER message.
5224 * dbus/dbus-server-unix.c: (unix_handle_watch),
5225 (_dbus_server_new_for_domain_socket):
5226 Call _dbus_fd_set_close_on_exec.
5228 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
5229 (_dbus_spawn_async), (_dbus_disable_sigpipe),
5230 (_dbus_fd_set_close_on_exec):
5231 * dbus/dbus-sysdeps.h:
5232 Add _dbus_fd_set_close_on exec function. Also add function that checks
5233 that all open fds are set to close-on-exec and warns otherwise.
5235 * dbus/dbus-transport-unix.c:
5236 (_dbus_transport_new_for_domain_socket):
5237 Call _dbus_fd_set_close_on_exec.
5239 2003-02-16 Havoc Pennington <hp@pobox.com>
5241 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
5242 allow people to avoid setting SIGPIPE to SIG_IGN
5243 (_dbus_connection_new_for_transport): disable SIGPIPE unless
5244 we've been asked not to
5246 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5248 * dbus/dbus-list.c: (_dbus_list_append_link),
5249 (_dbus_list_prepend_link):
5250 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
5254 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5257 * bus/activation.c: (bus_activation_entry_free),
5258 (add_desktop_file_entry), (load_directory), (bus_activation_init):
5260 * bus/main.c: (main):
5261 Add simple activation support, doesn't work yet though.
5263 2003-02-15 Zack Rusin <zack@kde.org>
5265 * qt/dbus-qthread.cpp: small casting fix
5267 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5269 * dbus/dbus-errors.c: (dbus_set_error):
5270 * dbus/dbus-errors.h:
5271 Add a few errors and make dbus_set_error void.
5273 * dbus/dbus-sysdeps.c:
5274 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
5275 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
5276 * dbus/dbus-sysdeps.h:
5277 Add _dbus_spawn_async.
5279 * test/spawn-test.c: (main):
5280 Test for _dbus_spawn_async.
5282 2003-02-15 Anders Carlsson <andersca@codefactory.se>
5284 * dbus/dbus-internals.h:
5285 Fix build without tests.
5287 * dbus/dbus-list.c: (alloc_link):
5288 Fix a segfault when a malloc fails.
5290 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
5291 (dbus_malloc0), (dbus_realloc):
5292 Add support for malloc debugging.
5294 2003-02-15 Alexander Larsson <alexl@redhat.com>
5296 * dbus/dbus-threads.c:
5297 * dbus/dbus-threads.h:
5298 Add condvars. Remove static mutext from API.
5299 Implement static mutexes by initializing them from threads_init.
5301 * glib/dbus-gthread.c:
5302 * qt/dbus-qthread.cpp:
5303 Update with the thread api changes.
5308 Turn StaticMutex into normal mutex + init function.
5309 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
5310 _dbus_list_append_link, _dbus_list_prepend_link
5313 * dbus/dbus-sysdeps.c:
5314 * dbus/dbus-sysdeps.h:
5315 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
5316 _dbus_atomic_dec. Only slow fallback implementation at the moment.
5318 * dbus/dbus-protocol.h:
5319 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
5321 * dbus/dbus-message.c:
5322 Make ref/unref atomic.
5325 * dbus/dbus-connection-internal.h:
5326 * dbus/dbus-connection.c:
5327 * dbus/dbus-connection.h:
5329 Change _peek to _borrow,_return & _steal_borrowed.
5330 Change disconnect callback to event.
5331 Make dbus_connection_dispatch_messages reentrant.
5333 * dbus/dbus-transport.c:
5334 Don't ref the connection on calls to the transport
5337 * dbus/dbus-message-handler.c:
5340 * glib/dbus-gmain.c:
5341 Don't use peek_message anymore
5344 * test/debug-thread.c:
5345 * test/debug-thread.h:
5346 Simple thread implementation that asserts() on deadlocks in
5347 single-threaded code.
5350 (main) Call debug_threads_init.
5353 Use disconnect message instead of disconnect callback.
5357 Don't call dbus_connection_set_disconnect_function. Instead export
5358 bus_connection_disconnect.
5361 Call bus_connection_disconnect when we get a disconnected message.
5363 2003-02-15 Havoc Pennington <hp@pobox.com>
5365 * dbus/dbus-message.c (dbus_message_new): fool around with the
5368 2003-02-14 Havoc Pennington <hp@pobox.com>
5370 * dbus/dbus-mempool.c: fail if the debug functions so indicate
5372 * dbus/dbus-memory.c: fail if the debug functions indicate we
5375 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
5376 (_dbus_decrement_fail_alloc_counter): debug functions to
5377 simulate memory allocation failures
5379 2003-02-14 Havoc Pennington <hp@pobox.com>
5381 * dbus/dbus-errors.h (struct DBusError): add a word of padding
5384 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5386 * bus/driver.c: (bus_driver_handle_hello):
5388 * bus/services.c: (bus_service_lookup):
5389 Reorder message sending so we get a more sane order.
5391 * test/bus-test.c: (message_handler):
5394 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5396 * bus/driver.c: (bus_driver_send_service_deleted),
5397 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5398 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5399 (bus_driver_send_welcome_message),
5400 (bus_driver_handle_list_services),
5401 (bus_driver_handle_acquire_service),
5402 (bus_driver_handle_service_exists):
5403 * dbus/dbus-bus.c: (dbus_bus_register_client),
5404 (dbus_bus_acquire_service), (dbus_bus_service_exists):
5405 * dbus/dbus-errors.c: (dbus_result_to_string):
5406 * dbus/dbus-errors.h:
5407 * dbus/dbus-message.c: (dbus_message_append_args),
5408 (dbus_message_append_args_valist), (dbus_message_get_args),
5409 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
5410 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
5411 (dbus_message_iter_get_byte_array),
5412 (dbus_message_iter_get_string_array), (message_iter_test),
5413 (check_message_handling), (_dbus_message_test):
5414 * dbus/dbus-message.h:
5415 * test/bus-test.c: (main):
5416 Change fields to arguments in messages, so that they won't be
5417 confused with header fields.
5419 * glib/test-dbus-glib.c: (main):
5420 Remove append_fields from hello message.
5422 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5424 * dbus/dbus-errors.c:
5425 * dbus/dbus-message.c:
5426 * dbus/dbus-string.c:
5427 Documentation fixes.
5429 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5431 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
5433 Implement support for timeouts in dbus-glib.
5435 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5437 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
5438 * dbus/dbus-message.c: (process_test_subdir):
5439 * test/break-loader.c: (find_breaks_based_on):
5440 Plug some memory leaks.
5442 2003-02-13 Richard Hult <rhult@codefactory.se>
5444 * bus/main.c: Fix build.
5446 * dbus/dbus-errors.h:
5447 * dbus/dbus-errors.c: Fix copyright for Anders.
5449 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5454 * bus/connection.c: (bus_connection_foreach):
5457 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
5458 (unescape_string), (new_section), (parse_section_start),
5459 (parse_key_value), (report_error), (bus_desktop_file_load),
5460 (bus_desktop_file_get_string):
5461 * bus/desktop-file.h:
5462 Use DBusError for error reporting.
5464 * bus/dispatch.c: (send_one_message),
5465 (bus_dispatch_message_handler):
5466 * bus/driver.c: (bus_driver_send_service_deleted),
5467 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5468 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
5469 (bus_driver_send_welcome_message),
5470 (bus_driver_handle_list_services),
5471 (bus_driver_handle_acquire_service),
5472 (bus_driver_handle_service_exists):
5473 * bus/loop.c: (bus_loop_run):
5475 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
5477 * bus/utils.c: (bus_wait_for_memory):
5479 New files with general utility functions.
5481 * dbus/dbus-internals.h:
5482 Remove _DBUS_HANDLE_OOM.
5484 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5486 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
5487 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
5488 * dbus/dbus-errors.h:
5489 Add DBusError structure.
5491 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5493 * test/data/valid-messages/standard-acquire-service.message:
5494 * test/data/valid-messages/standard-hello.message:
5495 * test/data/valid-messages/standard-list-services.message:
5496 * test/data/valid-messages/standard-service-exists.message:
5497 Add some standard messages.
5499 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5501 * bus/driver.c: (bus_driver_send_welcome_message),
5502 (bus_driver_handle_list_services),
5503 (bus_driver_handle_acquire_service),
5504 (bus_driver_handle_service_exists), (bus_driver_handle_message):
5505 Update for API changes in libdbus.
5507 * dbus/dbus-message.c: (dbus_message_new_reply):
5508 * dbus/dbus-message.h:
5509 Remove the name argument. The spec states that replies shouldn't
5512 2003-02-13 Anders Carlsson <andersca@codefactory.se>
5514 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
5515 (report_error), (bus_desktop_file_load), (lookup_section),
5516 (lookup_line), (bus_desktop_file_get_raw),
5517 (bus_desktop_file_get_string):
5518 * bus/desktop-file.h:
5519 Some fixes, and new functions for getting a key value from a section.
5521 2003-02-13 Havoc Pennington <hp@pobox.com>
5523 * test/data/auth/fail-after-n-attempts.auth-script: new test
5525 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
5528 2003-02-13 Havoc Pennington <hp@pobox.com>
5530 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
5531 dbus_credentials_match were backward
5533 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
5534 NO_CREDENTIALS and ROOT_CREDENTIALS
5536 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
5537 into here. Never process more commands after we've reached an
5538 end state; store further data as unused bytes.
5540 * test/data/auth/*: add more auth tests
5542 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
5543 command to match exact string and EXPECT_UNUSED to match unused
5546 * test/Makefile.am (dist-hook): fix to dist all the test stuff
5548 2003-02-12 Havoc Pennington <hp@pobox.com>
5550 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
5551 \r off of popped lines
5553 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
5556 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
5559 2003-02-12 Havoc Pennington <hp@pobox.com>
5561 * dbus/Makefile.am: remove break-loader from the build, since it
5564 * configure.in: add --enable-gcov to turn on coverage profiling
5565 flags and disable optimization
5567 2003-02-10 Havoc Pennington <hp@pobox.com>
5569 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
5570 initial cut at test framework for DBusAuth from laptop.
5571 Doesn't quite work yet but it compiles and I need to get
5572 it off the 266mhz laptop. ;-)
5574 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
5575 fix a memleak in error case
5577 2003-02-12 Anders Carlsson <andersca@codefactory.se>
5580 * bus/desktop-file.c:
5581 * bus/desktop-file.h:
5582 Add a desktop file parser.
5584 2003-02-11 Zack Rusin <zack@kde.org>
5586 * qt/message.[h|cpp]: sample implementation
5587 of the KDE wrapper for DBusMessage
5589 2003-02-09 Zack Rusin <zack@kde.org>
5591 * test/bus-test.c: make_it_compile
5592 * doc/dbus-specification.sgml: minimal semantic fix
5594 2003-02-06 Anders Carlsson <andersca@codefactory.se>
5600 2003-02-06 Anders Carlsson <andersca@codefactory.se>
5603 * dbus/dbus-break-loader.c:
5605 * test/break-loader.c:
5606 Move dbus-break-loader to test/ and rename it to break-loader.
5608 2003-02-02 Havoc Pennington <hp@pobox.com>
5610 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
5611 for code to manage cookies in your home directory
5613 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
5615 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
5616 to authenticate, then disconnect the client.
5618 2003-02-03 Alexander Larsson <alexl@redhat.com>
5620 * dbus/dbus-message.c (dbus_message_append_fields):
5623 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5625 * doc/dbus-specification.sgml:
5626 Update address format section.
5628 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5631 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
5632 (message_handler), (new_connection_callback), (loop_quit),
5636 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5638 * bus/driver.c: (bus_driver_handle_service_exists):
5639 Simplify the code a bit.
5641 * dbus/dbus-bus.c: (dbus_bus_service_exists):
5644 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5647 Add libdbus-daemon.la and link to it.
5649 2003-02-01 James Willcox <jwillcox@gnome.org>
5651 * bus/driver.c: (bus_driver_handle_own_service):
5652 Actually include the service reply code in the message.
5654 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5656 * bus/driver.c: (bus_driver_handle_service_exists):
5657 Don't unref the incoming message.
5659 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5661 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
5663 2003-02-02 Anders Carlsson <andersca@codefactory.se>
5665 * dbus/dbus-server.c: (dbus_server_listen):
5666 * dbus/dbus-transport.c: (_dbus_transport_open):
5667 ifdef out the calls to the debug transport and server.
5669 2003-02-02 Alexander Larsson <alexl@redhat.com>
5671 * dbus/dbus-watch.c (dbus_watch_get_flags):
5672 Add note in the docs that ERROR or HANGUP won't be returned
5673 and are assumed always on.
5675 * glib/dbus-gmain.c (add_watch):
5676 Always add IO_ERR | IO_HUP
5678 * dbus/dbus-message.h:
5679 Add semicolon after dbus_message_iter_get_string_array().
5680 Makes qt code build again
5682 2003-02-01 Anders Carlsson <andersca@codefactory.se>
5684 * bus/driver.c: (create_unique_client_name),
5685 (bus_driver_handle_hello):
5686 Don't take a name, just use a numeric id to identify
5690 * dbus/dbus-bus.c: (dbus_bus_register_client),
5691 (dbus_bus_acquire_service), (dbus_bus_service_exists):
5693 Add new convenience functions for communicating with the bus.
5695 * dbus/dbus-message.h:
5697 * dbus/dbus-protocol.h:
5700 2003-02-01 Alexander Larsson <alexl@redhat.com>
5702 * dbus/dbus-message.c (dbus_message_append_fields):
5703 Add some more doc comments.
5705 2003-02-01 Havoc Pennington <hp@pobox.com>
5707 * dbus/dbus-break-loader.c (randomly_modify_length): change
5708 a 4-byte value in the message as if it were a length
5710 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
5711 execute bit on saved files
5713 2003-02-01 Havoc Pennington <hp@pobox.com>
5715 * dbus/dbus-break-loader.c (main): new program to find messages
5716 that break the loader.
5718 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
5719 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
5721 * dbus/dbus-string.c (_dbus_string_set_byte): new
5723 2003-01-31 Havoc Pennington <hp@pobox.com>
5725 * dbus/dbus-message.c: refactor the test code to be more general,
5726 in preparation for writing a "randomly permute test cases to
5727 try to break the loader" program.
5729 2003-01-31 Havoc Pennington <hp@pobox.com>
5731 * doc/dbus-specification.sgml: work on the specification
5733 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
5734 the protocol version of the message.
5736 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
5737 no longer specifies that.
5738 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
5741 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
5742 "break" for DBUS_TYPE_NIL, remove @todo
5744 2003-01-31 Havoc Pennington <hp@pobox.com>
5746 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
5747 just set_is_error/get_is_error as this is a commonly-used
5748 function, and write docs.
5750 2003-01-31 Anders Carlsson <andersca@codefactory.se>
5752 * dbus/dbus-address.c: (dbus_address_entry_free):
5753 Free key and value lists.
5755 * dbus/dbus-internals.c: (_dbus_type_to_string):
5756 Add the types we didn't have.
5758 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
5759 (_dbus_marshal_validate_arg):
5762 * dbus/dbus-message.c: (dbus_message_set_sender):
5763 Remove todo about being able to set sender to NULL.
5765 (dbus_message_set_is_error_reply),
5766 (dbus_message_get_is_error_reply):
5767 * dbus/dbus-message.h:
5770 * dbus/dbus-protocol.h:
5771 Add error reply flag.
5773 * test/data/valid-messages/opposite-endian.message:
5774 Add NIL type to test.
5776 2003-01-31 Havoc Pennington <hp@pobox.com>
5778 * doc/dbus-specification.sgml: fully specify the header. Add
5779 flags and major protocol version, and change header/body len to
5782 * dbus/dbus-message-builder.c (append_saved_length): append length
5785 * dbus/dbus-message.c (dbus_message_create_header): change header
5786 length and body length to unsigned. Add the new fields from the
5788 (_dbus_message_loader_return_buffer): unsigned header/body len
5790 2003-01-30 Havoc Pennington <hp@pobox.com>
5792 * dbus/dbus-auth.c: rework to use only REJECTED, no
5795 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
5796 use REJECTED, suggested by Mark McLoughlin
5798 2003-01-30 Havoc Pennington <hp@pobox.com>
5800 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
5801 a better way to report errors here. e.g. "unix address lacks
5802 path" or something. also "no such file" when the path doesn't
5805 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
5807 (dbus_parse_address): add @todo about documenting address format,
5808 and allowing , and ; to be escaped
5810 2003-01-30 Anders Carlsson <andersca@codefactory.se>
5813 Add dbus-address.[ch]
5815 * dbus/dbus-address.c: (dbus_address_entry_free),
5816 (dbus_address_entries_free), (create_entry),
5817 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
5818 (dbus_parse_address), (_dbus_address_test):
5819 * dbus/dbus-address.h:
5820 New files for dealing with address parsing.
5822 * dbus/dbus-connection.c:
5823 Document timeout functions.
5825 * dbus/dbus-message.c:
5826 Document dbus_message_new_from_message.
5828 * dbus/dbus-server-debug.c:
5831 * dbus/dbus-server.c: (dbus_server_listen):
5832 Parse address and use correct server implementation.
5834 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
5835 * dbus/dbus-string.h:
5836 New function with test.
5838 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
5842 * dbus/dbus-transport-debug.c:
5845 * dbus/dbus-transport.c: (_dbus_transport_open):
5846 Parse address and use correct transport implementation.
5848 2003-01-30 Havoc Pennington <hp@pobox.com>
5850 * dbus/dbus-message.c: use message->byte_order instead of
5851 DBUS_COMPILER_BYTE_ORDER throughout.
5852 (dbus_message_create_header): pad header to align the
5853 start of the body of the message to 8-byte boundary
5855 * dbus/dbus-marshal.h: make all the demarshalers take const
5856 DBusString arguments.
5858 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
5859 validate message args here, so we don't have to do slow validation
5860 later, and so we catch bad messages as they are incoming. Also add
5861 better checks on header_len and body_len. Also fill in
5864 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
5865 implemented properly)
5866 (_dbus_string_validate_nul): new function to check all-nul
5868 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
5869 get_arg_end_pos and remove all validation
5870 (_dbus_marshal_validate_arg): actually do validation here.
5872 2003-01-29 Havoc Pennington <hp@pobox.com>
5874 * dbus/dbus-message.c (check_message_handling): fix assertion
5875 failure on set_client_serial
5877 2003-01-28 Havoc Pennington <hp@pobox.com>
5879 * dbus/dbus-server-debug.c: Add doc section comments
5881 * dbus/dbus-transport-debug.c: add doc section comments
5883 2003-01-28 Havoc Pennington <hp@redhat.com>
5885 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
5886 the reverse order from how I had it
5887 (_dbus_string_base64_encode): reverse encoding order. I was
5888 basically byteswapping everything during encoding.
5890 2003-01-28 Anders Carlsson <andersca@codefactory.se>
5892 * dbus/dbus-connection-internal.h:
5893 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
5894 (_dbus_connection_remove_timeout):
5895 Add functions for adding and removing timeouts.
5897 * dbus/dbus-message.c: (dbus_message_new_from_message):
5898 Add new function that takes a message and creates an exact
5899 copy of it, but with the refcount set to 1.
5900 (check_message_handling):
5903 * dbus/dbus-server-protected.h:
5904 * dbus/dbus-server.c: (_dbus_server_init_base),
5905 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
5906 (dbus_server_set_timeout_functions):
5907 (_dbus_server_remove_timeout):
5908 New functions so that a server can add and remove timeouts.
5910 (dbus_server_listen):
5911 Add commented out call to dbus_server_debug_new.
5913 * dbus/dbus-timeout.c: (_dbus_timeout_new):
5914 Actually set the handler, doh.
5916 * dbus/dbus-transport.c: (_dbus_transport_open):
5917 Add commented out call to dbus_transport_debug_client_new.
5920 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
5922 2003-01-28 Havoc Pennington <hp@pobox.com>
5924 * dbus/dbus-message.c (check_message_handling): function to check
5925 on the loaded message, iterates over it etc.
5927 2003-01-28 Havoc Pennington <hp@pobox.com>
5929 * test/Makefile.am (dist-hook): fix make distdir
5931 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
5933 2003-01-27 Havoc Pennington <hp@pobox.com>
5935 * dbus/dbus-mempool.c (time_for_size): replace printf with
5938 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
5939 empty lines; fix the SAVE_LENGTH stuff to be
5940 START_LENGTH/END_LENGTH so it actually works; couple other
5943 * test/Makefile.am (dist-hook): add dist-hook for .message files
5945 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
5946 can be constant or locked.
5947 (_dbus_string_free): allow freeing a const string as
5950 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
5952 * dbus/dbus-test-main.c (main): take an argument which is the
5953 directory containing test data
5955 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
5956 argument to this and load all the messages in test/data/
5957 checking that they can be loaded or not loaded as appropriate.
5959 2003-01-27 Anders Carlsson <andersca@codefactory.se>
5961 * bus/dispatch.c: (bus_dispatch_message_handler):
5962 Dispatch messages sent to services.
5964 * bus/driver.c: (bus_driver_send_service_deleted),
5965 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5966 (bus_driver_send_service_acquired):
5967 Add helper functions for sending service related messages.
5969 (bus_driver_send_welcome_message):
5970 Send HELLO_REPLY instead of WELCOME.
5972 (bus_driver_handle_list_services):
5973 Send LIST_SERVICES_REPLY instead of SERVICES.
5975 (bus_driver_handle_own_service),
5976 (bus_driver_handle_service_exists):
5977 New message handlers.
5979 (bus_driver_handle_message):
5980 Invoke new message handlers.
5982 (bus_driver_remove_connection):
5983 Don't remove any services here since that's done automatically
5984 by bus_service_remove_owner now.
5987 New function signatures.
5989 * bus/services.c: (bus_service_add_owner):
5990 Send ServiceAcquired message if we're the only primary owner.
5992 (bus_service_remove_owner):
5993 Send ServiceAcquired/ServiceLost messages.
5995 (bus_service_set_prohibit_replacement),
5996 (bus_service_get_prohibit_replacement):
5997 Functions for setting prohibit replacement.
5999 (bus_service_has_owner):
6000 New function that checks if a connection is in the owner queue of
6004 Add new function signatures.
6006 * dbus/dbus-list.c: (_dbus_list_test):
6007 Add tests for _dbus_list_remove_last and traversing the list backwards.
6010 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
6011 go any further, so return NULL then.
6013 * dbus/dbus-protocol.h:
6014 Add new messages, service flags and service replies.
6016 2003-01-26 Havoc Pennington <hp@pobox.com>
6018 * dbus/dbus-message-builder.c: implement, completely untested.
6020 * test/data/*: add data to be used in testing.
6021 ".message" files are our simple loadable text format.
6022 ".message-raw" will be binary dumps of messages.
6024 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
6026 2003-01-26 Havoc Pennington <hp@pobox.com>
6028 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
6030 * dbus/dbus-errors.c (dbus_result_to_string): add
6033 * dbus/dbus-message-builder.c: new file, will contain code to load
6034 up messages from files. Not implemented yet.
6036 2003-01-26 Havoc Pennington <hp@pobox.com>
6038 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
6039 the sender by setting to NULL
6041 2003-01-26 Havoc Pennington <hp@pobox.com>
6043 The unit tests pass, but otherwise untested. If it breaks, the
6044 tests should have been better. ;-)
6046 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
6049 * dbus/dbus-message.c: redo everything so we maintain
6050 message->header as the only copy of the various fields.
6051 This avoids the possibility of out-of-memory in some cases,
6052 for example dbus_message_lock() can't run out of memory anymore,
6053 and avoids extra copying. Figured I may as well go ahead and do
6054 this since it was busted for dbus_message_lock to not return
6055 failure on OOM, and dbus_message_write_header was totally
6056 unchecked for OOM. Also fixed some random other bugs.
6058 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
6059 that strings are nul-terminated. Also, end_pos can be equal
6060 to string length just not greater than, I think.
6061 (_dbus_marshal_set_int32): new function
6062 (_dbus_marshal_set_uint32): new function
6063 (_dbus_marshal_set_string): new function
6065 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
6066 a warning, init timeout_list to NULL
6067 (dbus_connection_send_message): don't use uninitialized variable
6070 * dbus/dbus-string.c (_dbus_string_replace_len): new function
6072 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6074 * bus/driver.c: (bus_driver_handle_hello),
6075 (bus_driver_send_welcome_message):
6078 2003-01-26 Anders Carlsson <andersca@codefactory.se>
6080 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
6081 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6082 (dbus_connection_unref):
6083 * dbus/dbus-marshal.c: (_dbus_marshal_test):
6084 * dbus/dbus-message.c: (dbus_message_unref),
6087 (dbus_message_get_fields):
6088 Remove debugging printout.
6090 (_dbus_message_loader_return_buffer):
6091 Don't store the header string.
6093 (_dbus_message_test):
6096 2003-01-26 Richard Hult <rhult@codefactory.se>
6098 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
6099 the file descriptor list, since it can change under us.
6101 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6103 * glib/dbus-gmain.c: (dbus_connection_prepare),
6104 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
6105 (remove_watch), (dbus_connection_hookup_with_g_main):
6106 Rewrite the glib handling to use its own GSource instead of a
6107 GIOChannel so we can catch messages put in the queue while waiting
6110 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6113 * bus/connection.c: (connection_disconnect_handler),
6114 (connection_watch_callback), (bus_connection_setup):
6115 * bus/dispatch.c: (send_one_message),
6116 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
6117 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
6119 * bus/driver.c: (bus_driver_send_service_deleted),
6120 (bus_driver_send_service_created), (bus_driver_handle_hello),
6121 (bus_driver_send_welcome_message),
6122 (bus_driver_handle_list_services), (bus_driver_remove_connection),
6123 (bus_driver_handle_message):
6125 Refactor code, put the message dispatching in its own file. Use
6126 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
6129 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6131 * dbus/dbus-internals.h:
6132 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
6134 * dbus/dbus-message.c: (dbus_message_get_sender):
6135 * dbus/dbus-message.h:
6136 Implement dbus_message_get_sender.
6138 * dbus/dbus-protocol.h:
6139 Add message and service defines.
6141 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6143 * dbus/dbus-connection.c: (dbus_connection_send_message):
6144 * dbus/dbus-message-internal.h:
6145 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
6146 (dbus_message_write_header):
6147 Remove _dbus_messag_unlock and don't set the client serial on a
6148 message if one already exists.
6150 2003-01-24 Havoc Pennington <hp@pobox.com>
6152 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
6155 * bus/driver.c (bus_driver_handle_list_services): fix a leak
6158 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6160 * dbus/dbus-list.c: (alloc_link), (free_link):
6161 Use a memory pool for the links.
6163 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6165 * bus/connection.c: (bus_connection_foreach):
6167 Add new bus_connection_foreach function.
6169 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
6170 Add function that broadcasts a message to all clients.
6172 (bus_driver_send_service_created), (bus_driver_handle_hello),
6173 (bus_driver_send_welcome_message),
6174 (bus_driver_handle_list_services), (bus_driver_message_handler):
6175 Implement functions that take care of listing services, and notifying
6176 clients when new services are created.
6178 * bus/services.c: (bus_services_list):
6180 Add new function that returns an array of strings with the currently
6181 registered services.
6184 * glib/dbus-gmain.c:
6185 Update copyright year.
6187 2003-01-25 Anders Carlsson <andersca@codefactory.se>
6189 * dbus/dbus-connection.c: (dbus_connection_send_message):
6190 Unlock the message in case it was sent earlier.
6192 (dbus_connection_send_message_with_reply_and_block):
6193 Remove the reply message from the list.
6195 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
6196 Set array_len and new_pos correctly.
6198 (_dbus_marshal_test):
6199 Remove debug output.
6201 * dbus/dbus-message-internal.h:
6202 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
6203 New function that returns the reply serial.
6205 (_dbus_message_unlock):
6206 New function that unlocks a message and resets its header.
6208 (dbus_message_append_string_array),
6209 (dbus_message_get_fields_valist),
6210 (dbus_message_iter_get_field_type),
6211 (dbus_message_iter_get_string_array),
6212 (dbus_message_get_fields),
6213 (dbus_message_append_fields_valist):
6214 Handle string arrays.
6216 (dbus_message_set_sender):
6217 Make this function public since the bus daemon needs it.
6219 (decode_header_data):
6220 Set the reply serial to -1 initially.
6222 * dbus/dbus-message.h:
6223 Add dbus_message_set_sender.
6225 2003-01-24 Havoc Pennington <hp@pobox.com>
6227 * doc/dbus-specification.sgml: add some stuff
6229 2003-01-22 Havoc Pennington <hp@pobox.com>
6231 * doc/dbus-specification.sgml: Start to document the protocol.
6233 2003-01-22 Havoc Pennington <hp@pobox.com>
6235 * dbus/dbus-connection.c
6236 (dbus_connection_send_message_with_reply_and_block): add some @todo
6238 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
6240 2003-01-21 Havoc Pennington <hp@pobox.com>
6242 (patch untested because can't compile)
6244 * bus/driver.c (create_unique_client_name): make this function
6245 never recycle client names. Also, caller should initialize
6248 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
6250 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6252 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6253 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6254 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
6255 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
6256 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
6257 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
6258 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
6259 * dbus/dbus-marshal.h:
6260 * dbus/dbus-protocol.h:
6261 Add support for marshalling and demarshalling integer, double
6264 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6269 * bus/connection.c: (connection_disconnect_handler):
6270 Remove the connection from the bus driver's list.
6272 (connection_watch_callback): Dispatch messages.
6274 (free_connection_data): Free connection name.
6276 (bus_connection_setup): Add connection to the bus driver's list.
6277 (bus_connection_remove_owned_service):
6278 (bus_connection_set_name), (bus_connection_get_name):
6279 Add functions for setting and getting the connection's name.
6282 Add function headers.
6284 * bus/driver.c: (create_unique_client_name),
6285 (bus_driver_handle_hello_message),
6286 (bus_driver_send_welcome_message), (bus_driver_message_handler),
6287 (bus_driver_add_connection), (bus_driver_remove_connection):
6290 * bus/services.c: (bus_service_free):
6292 New file that handles communication and registreation with the bus
6295 2003-01-21 Anders Carlsson <andersca@codefactory.se>
6297 * dbus/dbus-connection.c: (dbus_connection_send_message):
6298 Add a new client_serial parameter.
6300 (dbus_connection_send_message_with_reply):
6301 Remove a @todo since we've implemented the blocking function.
6303 (dbus_connection_send_message_with_reply_and_block):
6304 New function that sends a message and waits for a reply and
6305 then returns the reply.
6307 * dbus/dbus-connection.h:
6310 * dbus/dbus-errors.c: (dbus_result_to_string):
6311 * dbus/dbus-errors.h:
6312 Add new DBUS_RESULT.
6314 * dbus/dbus-message-internal.h:
6315 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
6316 (_dbus_message_set_sender), (dbus_message_write_header),
6317 (dbus_message_new_reply), (decode_header_data),
6318 (_dbus_message_loader_return_buffer), (_dbus_message_test):
6319 * dbus/dbus-message.h:
6320 Add new functions that set the reply serial and sender.
6321 Also marshal and demarshal them correctly and add test.
6323 * dbus/dbus-protocol.h:
6324 Add new DBUS_MESSAGE_TYPE_SENDER.
6327 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
6328 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
6329 (dbus_connection_hookup_with_g_main):
6330 * glib/test-dbus-glib.c: (main):
6331 Rewrite to use GIOChannel and remove the GSource crack.
6333 * test/echo-client.c: (main):
6334 * test/watch.c: (check_messages):
6335 Update for changed APIs
6337 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6339 * dbus/Makefile.am: Add dbus-timeout.[cħ]
6341 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
6342 Create a DBusTimeoutList.
6343 (dbus_connection_set_timeout_functions): Add new function to
6344 set timeout callbacks
6346 * dbus/dbus-connection.h: Add public DBusTimeout API.
6348 * dbus/dbus-message.c: (dbus_message_get_service):
6349 * dbus/dbus-message.h: New function.
6351 * dbus/dbus-server.c: Fix small doc typo.
6353 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
6355 2003-01-19 Anders Carlsson <andersca@codefactory.se>
6357 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
6358 of the string, just as long as specified.
6360 2003-01-19 Havoc Pennington <hp@pobox.com>
6362 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
6365 * dbus/dbus-server.c (dbus_server_set_max_connections)
6366 (dbus_server_get_max_connections, dbus_server_get_n_connections):
6367 keep track of current number of connections, and add API for
6368 setting a max (but haven't implemented enforcing the max yet)
6370 2003-01-18 Havoc Pennington <hp@pobox.com>
6372 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
6373 reading/writing if read_watch != NULL or write_watch != NULL.
6375 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
6376 the message loader code to actually load message->header and
6377 message->body into the newly-created message.
6379 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
6382 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
6383 (dbus_connection_get_max_message_size)
6384 (dbus_connection_set_max_live_messages_size)
6385 (dbus_connection_get_max_live_messages_size): implement some
6386 resource limitation functions
6388 * dbus/dbus-resources.c: new file implementing some of the
6389 resource limits stuff
6391 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
6392 missing docs, add @todo to handle OOM etc.
6394 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
6397 2003-01-18 Havoc Pennington <hp@pobox.com>
6399 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
6400 connection if it hasn't been already.
6402 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
6403 replace with DisconnectFunction.
6405 2003-01-18 Havoc Pennington <hp@pobox.com>
6407 Building --disable-verbose-mode --disable-asserts --disable-tests
6408 cuts the library from 112K to 45K or so
6410 * configure.in: check for varargs macro support,
6411 add --enable-verbose-mode, --enable-asserts.
6413 * dbus/dbus-internals.h (_dbus_assert): support
6415 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
6417 2003-01-18 Havoc Pennington <hp@pobox.com>
6419 * dbus/dbus-test.c: include config.h so that tests actually run
6421 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
6422 so the failure mode when that assumption fails will be plenty
6425 2003-01-18 Havoc Pennington <hp@pobox.com>
6427 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
6429 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
6432 * test/Makefile.am: don't use special variable "TESTS" for echo-*
6433 since we don't want to use those in make check
6435 2003-01-15 Havoc Pennington <hp@redhat.com>
6441 2003-01-15 Havoc Pennington <hp@redhat.com>
6443 * test/Makefile.am: fix so that test source code ends up in the
6444 distribution on make distcheck
6446 2003-01-15 Havoc Pennington <hp@redhat.com>
6452 2003-01-15 Havoc Pennington <hp@redhat.com>
6454 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
6455 fix build when --disable-tests
6457 * Makefile.am (EXTRA_DIST): put HACKING in here
6459 * HACKING: document procedure for making a tarball release.
6461 2003-01-14 Anders Carlsson <andersca@codefactory.se>
6463 * bus/connection.c: (connection_error_handler),
6464 (bus_connection_setup):
6465 * bus/main.c: (main):
6466 Make sure that the DBusConnectionData struct is NULLed
6467 out to prevent a segfault.
6469 * dbus/dbus-errors.c: (dbus_result_to_string):
6470 * dbus/dbus-errors.h:
6471 * dbus/dbus-message.c: (dbus_message_get_fields),
6472 (dbus_message_get_fields_valist), (_dbus_message_test):
6473 * dbus/dbus-message.h:
6474 Make dbus_message_get_fields return a result code so we can
6475 track invalid fields as well as oom.
6477 2003-01-11 Havoc Pennington <hp@pobox.com>
6479 * configure.in: change --enable-test/--enable-ansi action-if-given
6480 to enable_foo=$enableval instead of enable_foo=yes
6482 2003-01-08 Havoc Pennington <hp@pobox.com>
6484 * dbus/dbus-string.c (_dbus_string_align_length): new function
6486 * dbus/dbus-test-main.c: move main() for test app here
6488 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
6489 symbol to run tests, because dbus-test isn't in the main
6492 Code review nitpicks.
6494 * dbus/dbus-message.c (dbus_message_write_header): add newlines
6495 for people with narrow emacs ;-). Assert client_serial was filled
6496 in. Assert message->name != NULL.
6497 (dbus_message_append_fields): have "first_field_type" arg separate
6498 from va list, needed for C++ binding that also uses varargs IIRC
6499 and helps with type safety
6500 (dbus_message_new): add @todo about using DBusString to store
6501 service/name internally
6502 (dbus_message_new): don't leak ->service and ->name on OOM later
6504 (dbus_message_unref): free the service name
6505 (dbus_message_get_fields): same change to varargs
6506 i.e. first_field_type
6507 (_dbus_message_loader_return_buffer): assert that the message data
6508 is aligned (if not it's a bug in our code). Put in verbose griping
6509 about why we set corrupted = TRUE.
6510 (decode_header_data): add FIXME that char* is evil. Was going to
6511 add FIXME about evil locale-specific string.h strncmp, but just
6512 switched to wacky string-as-uint32 optimization. Move check for
6513 "no room for field name" above get_const_data_len() to avoid
6514 assertion failure in get_const_data_len if we have trailing 2
6515 bytes or the like. Check for service and name fields being
6516 provided twice. Don't leak service/name on error. Require field
6517 names to be aligned to 4 bytes.
6519 * dbus/dbus-marshal.c: move byte swap stuff to header
6520 (_dbus_pack_int32): uscore-prefix
6521 (_dbus_unpack_int32): uscore-prefix
6522 (_dbus_unpack_uint32): export
6523 (_dbus_demarshal_string): add @todo complaining about use of
6525 (_dbus_marshal_get_field_end_pos): add @todo about bad error
6526 handling allowing corrupt data to go unchecked
6528 2003-01-08 Havoc Pennington <hp@redhat.com>
6530 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
6531 to the select() as needed for authentication. (should be using
6532 _dbus_poll() not select, but for another day)
6534 * dbus/dbus.h: include dbus/dbus-protocol.h
6536 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6538 * dbus/Makefile.am (dbusinclude_HEADERS): Install
6541 2003-01-08 Anders Carlsson <andersca@codefactory.se>
6543 * dbus/dbus-internals.c: (_dbus_type_to_string):
6544 New function that returns a string describing a type.
6546 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
6547 * dbus/dbus-marshal.h:
6548 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
6549 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
6550 (dbus_message_iter_get_byte_array):
6551 * dbus/dbus-message.h:
6552 Add new convenience functions for appending and getting message fields.
6553 Also add demarshalling routines for byte arrays.
6555 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6557 * dbus/dbus-connection-internal.h:
6558 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
6559 (_dbus_connection_get_next_client_serial),
6560 (dbus_connection_send_message):
6561 * dbus/dbus-internals.h:
6562 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
6563 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
6564 (_dbus_marshal_uint32), (_dbus_demarshal_double),
6565 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
6566 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
6567 (_dbus_verbose_bytes), (_dbus_marshal_test):
6568 * dbus/dbus-marshal.h:
6569 * dbus/dbus-message-internal.h:
6570 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
6571 (dbus_message_write_header), (_dbus_message_lock),
6572 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
6573 (dbus_message_get_name), (dbus_message_append_int32),
6574 (dbus_message_append_uint32), (dbus_message_append_double),
6575 (dbus_message_append_string), (dbus_message_append_byte_array),
6576 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
6577 (dbus_message_iter_unref), (dbus_message_iter_has_next),
6578 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
6579 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
6580 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
6581 (decode_header_data), (_dbus_message_loader_return_buffer),
6582 (message_iter_test), (_dbus_message_test):
6583 * dbus/dbus-message.h:
6584 * dbus/dbus-protocol.h:
6585 * dbus/dbus-test.c: (main):
6587 * glib/test-dbus-glib.c: (message_handler), (main):
6588 * test/echo-client.c: (main):
6589 * test/watch.c: (check_messages):
6590 Make messages sendable and receivable for real.
6592 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6594 * dbus/dbus-marshal.c: (_dbus_marshal_double),
6595 (_dbus_marshal_string), (_dbus_marshal_byte_array):
6596 * dbus/dbus-message.c: (dbus_message_append_int32),
6597 (dbus_message_append_uint32), (dbus_message_append_double),
6598 (dbus_message_append_string), (dbus_message_append_byte_array):
6599 Handle OOM restoration.
6601 2003-01-07 Anders Carlsson <andersca@codefactory.se>
6603 * dbus/dbus-marshal.c: (_dbus_marshal_string),
6604 (_dbus_demarshal_string), (_dbus_marshal_test):
6605 * dbus/dbus-marshal.h:
6606 * dbus/dbus-message.c: (dbus_message_get_name),
6607 Document these functions.
6609 (dbus_message_append_int32), (dbus_message_append_uint32),
6610 (dbus_message_append_double), (dbus_message_append_string),
6611 (dbus_message_append_byte_array):
6612 * dbus/dbus-message.h:
6613 Add functions for adding message fields of different types.
6615 * dbus/dbus-protocol.h:
6616 Add the different types.
6618 2003-01-05 Havoc Pennington <hp@pobox.com>
6620 * bus/connection.c: implement routines for handling connections,
6621 first thing is keeping a list of owned services on each connection
6622 and setting up watches etc.
6624 * bus/services.c: implement a mapping from service names to lists
6627 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
6629 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
6630 to use static mutexes for global data
6632 * dbus/dbus-connection.c (dbus_connection_set_data): add new
6633 collection of functions to set/get application-specific data
6634 on the DBusConnection.
6636 2003-01-04 Havoc Pennington <hp@pobox.com>
6638 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
6639 (_dbus_poll): new function
6641 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
6644 * bus/loop.c: initial code for the daemon main loop
6646 2003-01-04 Havoc Pennington <hp@pobox.com>
6648 * test/watch.c (error_handler): make it safe if the error handler
6649 is called multiple times (if we s/error handler/disconnect
6650 handler/ we should just guarantee it's called only once)
6652 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
6653 error handler on disconnect (it's quite possible we should
6654 just change the error handler to a "disconnect handler," I'm
6655 not sure we have any other meaningful errors)
6657 * configure.in: check for getpwnam_r
6659 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6660 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
6661 mechanism as in SASL spec, using socket credentials
6663 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
6664 (_dbus_send_credentials_unix_socket): new function
6666 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
6668 (_dbus_write): only check errno if <0 returned
6669 (_dbus_write_two): ditto
6671 2003-01-02 Anders Carlsson <andersca@codefactory.se>
6673 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
6674 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
6675 (_dbus_marshal_test):
6676 * dbus/dbus-marshal.h:
6677 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
6678 to _dbus_marshal_utf8_string. Also fix some tests.
6680 2002-12-28 Harri Porten <porten@kde.org>
6682 * configure.in: added check for C++ compiler and a very cheesy
6683 check for the Qt integration
6685 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
6687 * qt/Makefile.am: added
6689 * qt/.cvsignore: added
6691 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
6692 latter, added #ifdef QT_THREAD_SUPPORT guard.
6694 * dbus/Makefile.am: added missing headers for make dist
6696 2002-12-28 Kristian Rietveld <kris@gtk.org>
6698 * dbus/Makefile.am: fixup export-symbols-regex.
6700 2002-12-27 Anders Carlsson <andersca@codefactory.se>
6702 * acinclude.m4: Add this file and put the
6703 PKG_CHECK_MODULE macro in it.
6705 2002-12-27 Anders Carlsson <andersca@codefactory.se>
6707 * dbus/dbus-marshal.c: (_dbus_marshal_string),
6708 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6709 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6710 (_dbus_marshal_test):
6711 Make the demarshalling routines align the pos argument.
6712 Add string marshalling tests and fix the obvious bugs
6715 2002-12-26 Havoc Pennington <hp@pobox.com>
6717 * dbus/dbus-auth.c: fixes fixes fixes
6719 * dbus/dbus-transport-unix.c: wire up support for
6720 encoding/decoding data on the wire
6722 * dbus/dbus-auth.c (_dbus_auth_encode_data)
6723 (_dbus_auth_decode_data): append to target string
6724 instead of nuking it.
6726 2002-12-26 Havoc Pennington <hp@pobox.com>
6728 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
6729 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
6732 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
6733 avoid swap_bytes() overhead (ignoring possible assembly stuff for
6734 now). Main point is because I wanted unpack_uint32 to implement
6736 (_dbus_verbose_bytes): new function
6738 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
6740 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
6741 mechanism to handle a corrupt message stream
6742 (_dbus_message_loader_new): fix preallocation to only prealloc,
6745 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
6746 (_dbus_string_test): enhance tests for copy/move and fix the
6749 * dbus/dbus-transport-unix.c: Hold references in more places to
6750 avoid reentrancy problems
6752 * dbus/dbus-transport.c: ditto
6754 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
6755 leak reference count in no-message case
6757 * test/watch.c (do_mainloop): handle adding/removing watches
6758 during iteration over the watches. Also, ref the connection/server
6759 stored on a watch, so we don't try to mangle a destroyed one.
6761 * dbus/dbus-transport-unix.c (do_authentication): perform
6764 * dbus/dbus-auth.c (get_state): add a state
6765 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
6766 (_dbus_auth_get_unused_bytes): append the unused bytes
6767 to the passed in string, rather than prepend
6769 * dbus/dbus-transport.c (_dbus_transport_init_base): create
6770 the auth conversation DBusAuth
6772 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
6773 (_dbus_transport_new_for_domain_socket): when creating a
6774 transport, pass in whether it's a client-side or server-side
6775 transport so we know which DBusAuth to create
6777 2002-12-03 Havoc Pennington <hp@pobox.com>
6779 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
6780 _after_ finalizing the derived members
6781 (unix_connection_set): unref watch if we fail to add it
6783 * dbus/dbus-connection.c (dbus_connection_unref): delete the
6784 transport first, so that the connection owned by the
6785 transport will be valid as the transport finalizes.
6787 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
6788 if necessary, and remove watches from the connection.
6790 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
6792 2002-12-26 Anders Carlsson <andersca@codefactory.se>
6794 * dbus/dbus-marshal.c: (_dbus_marshal_string),
6795 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6796 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
6797 (_dbus_marshal_test):
6798 * dbus/dbus-marshal.h:
6799 Add string marshal functions and have the demarshal functions
6800 return the new position.
6802 2002-12-25 Havoc Pennington <hp@pobox.com>
6804 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
6805 it is a simple protocol that just maps directly to SASL.
6807 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
6808 initial implementation, not actually used yet.
6810 * dbus/dbus-string.c (_dbus_string_find): new function
6811 (_dbus_string_equal): new function
6812 (_dbus_string_base64_encode): new function
6813 (_dbus_string_base64_decode): new function
6815 2002-12-25 Anders Carlsson <andersca@codefactory.se>
6818 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
6819 (_dbus_marshal_int32), (_dbus_marshal_uint32),
6820 (_dbus_demarshal_double), (_dbus_demarshal_int32),
6821 (_dbus_demarshal_uint32), (_dbus_marshal_test):
6822 * dbus/dbus-marshal.h:
6823 * dbus/dbus-protocol.h:
6824 * dbus/dbus-test.c: (main):
6826 Add un-optimized marshalling/demarshalling routines.
6828 2002-12-25 Harri Porten <porten@kde.org>
6830 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
6832 2002-12-24 Zack Rusin <zack@kde.org>
6834 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
6835 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
6838 2002-12-24 Havoc Pennington <hp@pobox.com>
6840 * glib/dbus-gthread.c: fix include
6842 * glib/dbus-glib.h: rename DBusMessageHandler for now.
6843 I think glib API needs to change, though, as you don't
6844 want to use DBusMessageFunction, you want to use the
6845 DBusMessageHandler object. Probably
6846 dbus_connection_open_with_g_main_loop()
6847 and dbus_connection_setup_g_main_loop() or something like that
6848 (but think of better names...) that just create a connection
6849 that has watch/timeout functions etc. already set up.
6851 * dbus/dbus-connection.c
6852 (dbus_connection_send_message_with_reply): new function just to
6853 show how the message handler helps us deal with replies.
6855 * dbus/dbus-list.c (_dbus_list_remove_last): new function
6857 * dbus/dbus-string.c (_dbus_string_test): free a string that
6860 * dbus/dbus-hash.c: use memory pools for the hash entries
6861 (rebuild_table): be more paranoid about overflow, and
6862 shrink table when we can
6863 (_dbus_hash_test): reduce number of sprintfs and write
6864 valid C89. Add tests for case where we grow and then
6865 shrink the hash table.
6867 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
6869 * dbus/dbus-connection.c (dbus_connection_register_handler)
6870 (dbus_connection_unregister_handler): new functions
6872 * dbus/dbus-message.c (dbus_message_get_name): new
6874 * dbus/dbus-list.c: fix docs typo
6876 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
6877 an object representing a handler for messages.
6879 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6882 * glib/dbus-gthread.c: (dbus_gthread_init):
6883 Don't use the gdbus prefix for public functions.
6885 2002-12-16 Anders Carlsson <andersca@codefactory.se>
6889 Add GLib checks and fixup .pc files
6893 * glib/dbus-gmain.c: (gdbus_connection_prepare),
6894 (gdbus_connection_check), (gdbus_connection_dispatch),
6895 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
6896 (dbus_connection_gsource_new):
6897 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
6898 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
6899 * glib/test-dbus-glib.c: (message_handler), (main):
6902 2002-12-15 Harri Porten <porten@kde.org>
6904 * autogen.sh: check for libtoolize before attempting to use it
6906 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
6909 * .cvsignore: ignore more stamp files
6911 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
6913 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
6914 without make install.
6916 2002-12-15 Havoc Pennington <hp@pobox.com>
6918 * dbus/dbus-threads.c: add thread stubs that a higher library
6919 layer can fill in. e.g. the GLib wrapper might fill them in with
6920 GThread stuff. We still need to use this thread API to
6921 thread-safe-ize the library.
6923 2002-12-12 Havoc Pennington <hp@pobox.com>
6925 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
6926 below new interfaces and include fewer system headers.
6928 * dbus/dbus-sysdeps.c (_dbus_read): new function
6929 (_dbus_write): new function
6930 (_dbus_write_two): new function
6931 (_dbus_connect_unix_socket): new function
6932 (_dbus_listen_unix_socket): new function
6934 * dbus/dbus-message-internal.h: change interfaces to use
6937 2002-12-11 Havoc Pennington <hp@pobox.com>
6939 * dbus/dbus-types.h: add dbus_unichar
6941 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
6943 * dbus/dbus-connection.c (dbus_connection_send_message): return
6946 * dbus/dbus-transport.c: include dbus-watch.h
6948 * dbus/dbus-connection.c: include dbus-message-internal.h
6950 * HACKING: add file with coding guidelines stuff.
6952 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
6953 handling here, for security purposes (as in vsftpd). Not actually
6954 using this class yet.
6956 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
6957 system/libc usage here, as in vsftpd, for ease of auditing (and
6958 should also simplify portability). Haven't actually moved all the
6959 system/libc usage into here yet.
6961 2002-11-25 Havoc Pennington <hp@pobox.com>
6963 * dbus/dbus-internals.c (_dbus_verbose): fix to not
6964 always print the first verbose message.
6966 2002-11-24 Havoc Pennington <hp@pobox.com>
6968 * test/echo-client.c, test/echo-server.c: cheesy test
6971 * configure.in (AC_CHECK_FUNCS): check for writev
6973 * dbus/dbus-message.c (_dbus_message_get_network_data): new
6976 * dbus/dbus-list.c (_dbus_list_foreach): new function
6978 * dbus/dbus-internals.c (_dbus_verbose): new function
6980 * dbus/dbus-server.c, dbus/dbus-server.h: public object
6981 representing a server that listens for connections.
6983 * dbus/.cvsignore: create
6985 * dbus/dbus-errors.h, dbus/dbus-errors.c:
6986 public API for reporting errors
6988 * dbus/dbus-connection.h, dbus/dbus-connection.c:
6989 public object representing a connection that
6990 sends/receives messages. (Same object used for
6991 both client and server.)
6993 * dbus/dbus-transport.h, dbus/dbus-transport.c:
6994 Basic abstraction for different kinds of stream
6995 that we might read/write messages from.
6997 2002-11-23 Havoc Pennington <hp@pobox.com>
6999 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
7002 * dbus/dbus-test.c (main): add list test, and include
7003 dbus-test.h as intended
7005 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
7006 (_dbus_hash_table_remove_int): return value indicates
7007 whether the entry existed to remove
7009 * dbus/dbus-list.c: add linked list utility class,
7012 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
7015 2002-11-23 Havoc Pennington <hp@pobox.com>
7017 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
7018 DBUS_END_DECLS to nothing, that should fix this once and for all
7020 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
7022 * dbus/dbus-message.c, dbus/dbus-hash.c:
7023 add some missing @brief
7025 2002-11-23 Havoc Pennington <hp@pobox.com>
7027 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
7028 to avoid confusing Doxygen
7030 * dbus/dbus-hash.c: @} not }@
7032 * dbus/dbus-message.c (struct DBusMessage): split out
7035 2002-11-23 Havoc Pennington <hp@pobox.com>
7037 * configure.in: pile on more warning flags if using gcc
7039 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
7040 to document static functions
7042 * configure.in: add summary to end of configure so it
7043 looks nice and attractive
7045 * dbus/dbus-hash.c: finish implementation and write unit
7048 * configure.in: add --enable-tests to enable unit tests
7050 * dbus/dbus-test.c: test program to run unit tests
7051 for all files in dbus/*, initially runs a test for
7054 * dbus/dbus-internals.h: file to hold some internal utility stuff
7056 2002-11-22 Havoc Pennington <hp@redhat.com>
7058 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
7059 "ported" away from Tcl
7061 * dbus/dbus-types.h: header for types such as dbus_bool_t
7063 2002-11-22 Havoc Pennington <hp@redhat.com>
7065 * dbus/dbus.h: fixups for doc warnings
7067 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
7069 (QUIET): make it quiet so we can see warnings
7071 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
7073 2002-11-22 Havoc Pennington <hp@redhat.com>
7075 * Makefile.am: include "Doxyfile" target in all-local
7077 * configure.in: generate the Doxyfile
7079 * Doxyfile.in: move Doxyfile here, so we can use
7080 configure to generate a Doxyfile with the right
7083 2002-11-22 Havoc Pennington <hp@redhat.com>
7085 * dbus/dbus-message.c: move inline docs into .c file
7087 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
7088 so all docs are under doc/
7089 (MAN_EXTENSION): generate man pages. Use extension
7090 ".3dbus" which matches ".3qt" on my system,
7091 I guess this is OK, I don't know really.
7092 (FILE_PATTERNS): look for .c files not .h, makes sense
7095 2002-11-22 Havoc Pennington <hp@pobox.com>
7097 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
7098 because any app can be a server, and any app can be a client,
7099 the bus is a special kind of server.
7101 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
7103 * Doxyfile : adding. Still needs Makefile rules to be generated
7104 automatically (just run "doxygen" in the toplevel dir for now to
7107 * dbus/dbus-message.h : Adding sample docs (javadoc since
7108 resembles gtk-doc a little more)
7110 * dbus/dbus.h : Adding sample docs
7112 2002-11-21 Havoc Pennington <hp@redhat.com>
7114 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
7115 so we can allow ourselves to include files directly,
7116 instead of having to use dbus.h
7118 * dbus/dbus.h: fill in
7120 * dbus/dbus-message.h: sketch out a sample header file.
7121 Include griping if you include it directly instead of
7124 * dbus/dbus-macros.h: new file with macros for extern "C",
7125 TRUE/FALSE, NULL, etc.
7127 * doc/file-boilerplate.c: put include guards in here
7129 2002-11-21 Havoc Pennington <hp@redhat.com>
7131 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
7133 * COPYING: include the GPL as well, and license code
7134 under both AFL and GPL.
7136 2002-11-21 Havoc Pennington <hp@redhat.com>
7138 * acconfig.h: get rid of this
7140 * autogen.sh (run_configure): add --no-configure option
7142 * configure.in: remove AC_ARG_PROGRAM to make
7143 autoconf complain less. add AC_PREREQ.
7144 add AC_DEFINE third arg.
7146 2002-11-21 Anders Carlsson <andersca@codefactory.se>
7149 Fix references so we can distcheck.
7151 2002-11-21 Havoc Pennington <hp@redhat.com>
7153 * Initial module creation