1 2005-06-27 Colin Walters <walters@verbum.org>
3 * test/glib/test-dbus-glib.c:
4 * test/glib/test-service-glib.c:
5 * test/glib/test-service-glib.xml:
6 Test hash table signal emitting.
8 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
9 types to their fundamental basis types, since this is what
10 marshallers operate on. Also add an entry for VOID__BOXED.
11 (dbus_g_object_register_marshaller_array): Convert to fundamental.
13 2005-06-26 Havoc Pennington <hp@redhat.com>
15 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
18 2005-06-26 Colin Walters <walters@verbum.org>
20 * glib/dbus-glib.c (dbus_set_g_error): Delete.
21 (dbus_g_error_set): New public function from its ashes; used by
22 both service-side method implementation and GLib bindings
24 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
25 (_dbus_glib_test): Add some tests.
27 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
29 * test/glib/test-service-glib.c (my_object_throw_error): Use
32 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
33 errors thrown by dbus_g_error_set.
35 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
37 * glib/dbus-gparser.c (validate_signature): Ditto.
39 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
40 (dbus_g_proxy_end_call_internal): Ditto.
42 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
43 converts DBUS_ERROR_x to DBUS_GERROR_x.
44 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
46 * doc/TODO: Remove error TODO.
48 * doc/dbus-tutorial.xml: Update with documentation about error
51 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
52 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
53 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
55 2005-06-22 Colin Walters <walters@verbum.org>
57 Patch from Ross Burton <ross@openedhand.com>
59 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
61 2005-06-20 Colin Walters <walters@verbum.org>
63 * configure.in: Add glib/examples.
65 * glib/Makefile.am: Add examples/
67 * glib/examples/.cvsignore
68 * glib/examples/Makefile.am
69 * glib/examples/example-client.c
70 * glib/examples/example-service.c
71 * glib/examples/example-service.xml
72 * glib/examples/example-signal-emitter.c
73 * glib/examples/example-signal-emitter.xml
74 * glib/examples/example-signal-recipient.c:
75 New files; GLib binding examples, ported from
78 2005-06-20 Colin Walters <walters@verbum.org>
81 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
84 * glib/dbus-binding-tool-glib.c:
85 * doc/dbus-tutorial.xml:
86 * test/glib/test-dbus-glib.c: Update for rename.
88 2005-06-20 Colin Walters <walters@verbum.org>
90 Patch suggested by Ross Burton <ross@openedhand.com>
92 * glib/dbus-gobject.c (export_signals): Free signal name.
93 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
94 memory leak. Add a bit of documentation.
95 (dbus_g_method_return_error): Free context, and note we do
98 2005-06-18 Murray Cumming <murrayc@murrayc.com>
101 * glib/dbus-gobject.c:
102 * glib/dbus-gproxy.c:
103 * glib/dbus-gvalue.c: Predeclare structs as
104 typedef struct _Something Something instead of
105 typedef struct Something Something, so we can
106 redeclare the prototypes. Other GNOME libraries
109 2005-06-17 Colin Walters <walters@verbum.org>
111 * tools/dbus-names-model.c (have_names_notify): Fix call
112 to dbus_g_proxy_end_call.
114 2005-06-17 Colin Walters <walters@verbum.org>
116 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
117 spew warnings if we get malformed remote signals.
119 * glib/dbus-gobject.c (propsig_iterate): New function.
120 (lookup_object_info): New function, extracted from
121 lookup_object_and_method.
122 (introspect_properties, introspect_signals): Delete; these
123 are merged into write_interface.
124 (write_interface): Write out signals and properties here;
125 dump the org.gtk.object stuff and use the interface given
126 in the introspection data blob. Also fix up property XML.
127 (lookup_values): New function.
128 (introspect_interfaces): Gather a mapping from interface to a
129 list of its methods, signals, and properties, then write out
131 (lookup_object_and_method): Use lookup_object_info.
132 (struct DBusGSignalClosure): Add interface.
133 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
134 we can just use the constant data.
135 (dbus_g_signal_closure_finalize): Don't free signal name.
136 (signal_emitter_marshaller): Use interface from signal closure.
137 (export_signals): Only export signals mentioned in introspection
139 (dbus_g_connection_register_g_object): Warn if we have no
140 introspection data for an object.
141 (funcsig_equal): Remove unused variable.
142 (dbus_g_object_register_marshaller): Take varargs instead of
144 (dbus_g_object_register_marshaller_array): New function,
145 extracted from old dbus_g_object_register_marshaller.
147 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
148 signals and property data.
149 (write_quoted_string): New function, extracted from generate_glue.
150 (generate_glue): Write signals and properties to introspection
153 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
154 exported_signals and exported_properties.
155 (dbus_g_object_register_marshaller): Update prototype.
156 (dbus_g_object_register_marshaller_array): Prototype.
158 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
160 * test/glib/test-service-glib.c: Add new test signals and method
163 * test/glib/test-service-glib.xml: Add some test signals.
165 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
166 and my-object-marshal.h
167 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
169 (my-object-marshal.c, my-object-marshal.h): Implement.
171 * test/glib/.cvsignore: Update.
173 * doc/TODO: Remove two GLib TODO items fixed by this
176 2005-06-16 Colin Walters <walters@verbum.org>
178 * doc/TODO: Update for GLib bindings.
180 2005-06-16 Colin Walters <walters@verbum.org>
182 * glib/dbus-binding-tool-glib.c:
183 * glib/dbus-gobject.c:
184 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
185 from Ross Burton, for his GLib bindings work.
187 2005-06-16 Colin Walters <walters@verbum.org>
189 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
190 to iterate instead of walking to G_TYPE_INVALID.
192 Patch based on a patch from Ryan Gammon.
194 2005-06-16 Colin Walters <walters@verbum.org>
196 * bus/bus.c (bus_context_new): Set parser to NULL
197 after we unref it (Patch from Chris Boscolo, #2174).
199 2005-06-16 Colin Walters <walters@verbum.org>
201 * python/dbus_bindings.pyx.in: Import size_t,
202 __int64_t, __uint64_t, and __signed.
204 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
205 Define cmsg struct, output it.
206 (_dbus_read_credentials_unix_socket):
209 Patch from Joe Markus Clarke for FreeBSD support.
211 2005-06-16 Colin Walters <walters@verbum.org>
213 * tools/dbus-send.c (append_array): Use strtok.
214 (append_dict): New function.
215 (type_from_name): New function, extracted from main.
216 (main): Handle sending dicts.
218 * tools/dbus-print-message.c (print_iter): Print dict
221 2005-06-16 Colin Walters <walters@verbum.org>
223 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
224 values as the empty string (#2948).
226 2005-06-16 Colin Walters <walters@verbum.org>
229 * mono/doc/Makefile.am:
230 * test/glib/Makefile.am:
232 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
234 2005-06-16 Colin Walters <walters@verbum.org>
236 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
237 header byte order from expected byte order (Patch from Chris Wilson, #3475).
239 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
240 Increment pointer after swapping fixed array. Add assertion
243 2005-06-15 Colin Walters <walters@verbum.org>
245 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
246 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
248 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
250 * NEWS: Update to 0.34
252 2005-06-15 David Zeuthen <davidz@redhat.com>
254 * configure.in (LT_CURRENT): Revert back to 1 as the library
255 hasn't changed and we've certainly not committed to protocol
256 stability yet. All this does is to break ABI. See commit note
257 from hp@redhat.com 2005-05-05 for details.
259 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
261 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
262 (_dbus_connection_run_builtin_filters): New method
263 (dbus_connection_dispatch): Run the builtin filters which in turn
264 runs the peer filter which handles Ping messages.
267 - Ping isn't handled: This patch fixes it
269 - Add a test case for the Ping message: added TODO item
271 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
273 * dbus/dbus-message.c:
274 (dbus_message_has_path): New method
275 (dbus_message_has_interface): New method
276 (dbus_message_has_member): New method
278 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
281 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
282 the keyring directory is private to the user
285 - The convenience functions in dbus-bus.h should perhaps have
286 the signatures that they would have if they were autogenerated
287 stubs. e.g. the acquire service function. We should also evaluate
288 which of these functions to include, in light of the fact that
289 GLib/Qt native stubs will probably also exist.: Punted
291 - add dbus_message_has_path(), maybe has_member/interface:
294 - in dbus-keyring.c, enforce that the keyring dir is not
295 world readable/writable: Fixed in this patch
297 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
299 * dbus/dbus-marshal-validate.h: Added a new validation
300 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
301 out of memory errors when validating signitures
303 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
304 in places where we previously used DBUS_VALID and a FALSE return
305 value to indicate OOM
307 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
308 Use a stack to track the number of elements inside containers. The
309 stack values are then used to validate that dict entries have only two
310 elements within them.
311 (validate_body_helper): check the reason for failure when validating
314 * dbus/dbus-message.c (load_message): use
315 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
316 DBUS_VALID and a FALSE return value to indicate OOM
318 * doc/TODO: remove "- validate dict entry number of fields" as this
321 2005-06-14 David Zeuthen <davidz@redhat.com>
323 * bus/bus.c (process_config_every_time): Drop existing conf-dir
324 watches (if applicable) and add new watches
326 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
327 (main): Setup SIGIO signal handler if using D_NOTIFY
329 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
331 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
332 (merge_included): Also merge conf_dirs list
333 (bus_config_parser_unref): Clear conf_dirs list
334 (include_dir): Add directory to conf_dirs list
335 (bus_config_parser_get_conf_dirs): New function
337 * bus/dir-watch.[ch]: New files
339 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
341 * configure.in: Add checks for D_NOTIFY on Linux
343 2005-06-14 Colin Walters <walters@verbum.org>
345 * glib/dbus-binding-tool-glib.c:
346 * glib/dbus-gobject.c:
347 * glib/dbus-gvalue.c: Fix indentation and brace style.
349 2005-06-14 Ross Burton <ross@openedhand.com>.
351 * glib/dbus-glib.h: Make DBusGMethodInvocation
352 a private structure. Rearrange prototypes a bit.
354 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
355 documentation for first_arg_type.
357 * glib/dbus-gobject.c: Move DBusGMethodInvocation
358 here, add documentation. Move dbus_g_method_return
359 and dbus_g_method_return_error into public API
362 2005-06-14 Colin Walters <walters@verbum.org>
364 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
365 Add missing return statements, noticed by Ross Burton.
367 2005-06-13 Ross Burton <ross@openedhand.com>.
369 * glib/dbus-gobject.c: Handle errors on message
370 demarshalling by sending error message back.
371 * glib/dbus-gvalue.c: Initialize return variables.
373 2005-06-13 Colin Walters <walters@verbum.org>
375 * glib/Makefile.am: Fix thinko in last patch.
377 2005-06-13 Colin Walters <walters@verbum.org>
379 * glib/Makefile.am: Move dbus-gtype-specialized.c
380 and dbus-gtype-specialized.h into a _HEADERS variable,
383 2005-06-12 Colin Walters <walters@verbum.org>
385 Async signals and various bugfixes and testing by
386 Ross Burton <ross@openedhand.com>.
388 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
389 (dbus_gvalue_genmarshal_name_from_type)
390 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
391 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
392 (dbus_g_value_types_init, dbus_gtype_from_signature)
393 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
394 (dbus_gtypes_from_arg_signature): New function prototypes.
395 (dbus_gvalue_demarshal): Take context and error arguments.
396 (dbus_gvalue_demarshal_variant): New function.
397 (dbus_gvalue_demarshal_message): New function.
398 (dbus_gvalue_store): Delete.
400 * glib/dbus-gvalue.c:
402 File has been almost entirely rewritten; now we special-case
403 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
404 hash tables correctly, etc. Full support for recursive values
407 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
408 argument of signal to G_TYPE_POINTER since we now pass a
410 (lookup_g_marshaller): Delete in favor of
411 _dbus_gobject_lookup_marshaller.
412 (marshal_dbus_message_to_g_marshaller): Use
413 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
414 to handle remote signal callbacks.
415 (dbus_g_proxy_new_from_proxy): New function; creates a new
416 DBusGProxy by copying an existing one.
417 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
418 (dbus_g_proxy_get_path): New functions.
419 (dbus_g_proxy_marshal_args_to_message): New function;
420 factored out of existing code.
421 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
422 from a varargs array.
423 (dbus_g_proxy_begin_call_internal): New function.
424 (dbus_g_proxy_end_call_internal): New function.
425 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
426 as arguments; simply invoke dbus_g_proxy_begin_call_internal
427 after collecting args into value array.
428 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
429 invoke dbus_g_proxy_end_call_internal.
430 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
432 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
434 (array_free_all): New function.
435 (dbus_g_proxy_add_signal): Take GTypes.
437 * glib/dbus-gobject.h:
438 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
439 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
442 * glib/dbus-gobject.c: Add a global marshal_table hash which
443 stores mappings from type signatures to marshallers. Change lots
444 of invocations of dbus_gtype_to_dbus_type to
445 dbus_gtype_to_signature.
446 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
447 (introspect_signals): Fix test for query.return_type.
448 (set_object_property): Update invocation of dbus_gvalue_demarshal.
449 (invoke_object_method): Many changes. Handle asynchronous
450 invocations. Convert arguments with
451 dbus_gvalue_demarshal_message. Handle errors. Use
452 DBusSignatureIter instead of strlen on args. Handle all arguments
453 generically. Special-case variants.
454 (dbus_g_method_return, dbus_g_method_return_error): New function.
455 (DBusGSignalClosure): New structure, closes over signal
457 (dbus_g_signal_closure_new): New function.
458 (dbus_g_signal_closure_finalize): New function.
459 (signal_emitter_marshaller): New function; is special marshaller
460 which emits signals on bus.
461 (export_signals): New function; introspects object signals and
463 (dbus_g_object_type_install_info): Take GType instead of
465 (dbus_g_connection_register_g_object): Invoke export_signals.
466 (dbus_g_connection_lookup_g_object): New function.
467 (DBusGFuncSignature) New structure; used for mapping type
468 signatures to marshallers.
469 (funcsig_hash): New function; hashes DBusGFuncSignature.
470 (funcsig_equal): New function; compares DBusGFuncSignature.
471 (_dbus_gobject_lookup_marshaller): New function.
472 (dbus_g_object_register_marshaller): New function; used to
473 register a marshaller at runtime for a particular signature.
475 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
477 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
478 which notes a server method implementation should be
481 * glib/dbus-binding-tool-glib.c
482 (dbus_binding_tool_output_glib_server): Call
483 dbus_g_value_types_init.
484 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
486 (dbus_g_type_get_lookup_function): Turn GType into an invocation
487 of a lookup function.
488 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
489 (write_untyped_out_args): New method; write output arguments.
490 (write_formal_declarations_for_direction): Function for
492 (write_formal_parameters_for_direction): Function for
493 writing implementations.
494 (write_typed_args_for_direction): Function for writing
495 arguments prefixed with GTypes.
496 (write_async_method_client): Write out async version
499 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
500 (dbus_g_type_get_marshal_name): Move mapping from GType
501 to marshal name into here.
502 (dbus_g_type_get_c_name): Move into here.
503 (compute_marshaller): Convert signature to type with
504 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
505 (compute_marshaller_name): Ditto.
506 (compute_marshaller): Handle async signal annotations.
507 (gather_marshallers): Return if we don't have a known
509 (generate_glue): Collect introspection blob here, and
510 write all of the blob at the end. This allows an object
511 with multiple interfaces to work.
512 Mark async methods in introspection blob.
514 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
515 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
516 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
518 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
519 avoids people accidentally using DBUS_TYPE_* which should
520 not be necessary anymore.
521 Do include dbus-gtype-specialized.h, which are utilities
522 for GLib container types.
523 Add various #defines for types such as
524 DBUS_TYPE_G_BOOLEAN_ARRAY.
525 (DBusGValueIterator, DBusGValue): Define, not fully used
527 (dbus_g_value_get_g_type): Type for recursive value.
528 (dbus_g_value_open, dbus_g_value_iterator_get_value)
529 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
530 (dbus_g_value_free): Prototypes.
531 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
532 (dbus_g_proxy_set_interface): Prototype.
533 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
534 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
536 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
538 (DBusGAsyncData, DBusGMethodInvocation): Structures for
539 doing async invocations.
540 (dbus_g_method_return, dbus_g_method_return_error):
542 * doc/dbus-tutorial.xml: Update GLib section.
544 * tools/dbus-viewer.c (load_child_nodes): Update
545 for new invocation type of dbus_g_proxy_end_call.
546 (load_from_service_thread_func): Ditto.
548 * tools/print-introspect.c (main): Ditto.
550 * tools/dbus-names-model.c (have_names_notify)
551 (names_model_reload, names_model_set_connection)
554 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
555 needed since Python bindings use GLib bindings.
557 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
558 Add --prefix argument.
560 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
561 unneeded --ignore-unsupported arg.
563 * test/glib/test-service-glib.c:
564 * test/glib/test-service-glib.xml:
565 * test/glib/test-dbus-glib.c: Add many more tests.
567 2005-06-06 David Zeuthen <davidz@redhat.com>
569 * doc/TODO: Add item about need to remove deprecated functions.
571 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
573 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
574 to repair the ABI which was broken with the last commit.
576 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
578 * dbus/dbus-connection.c, dbus/dbus-connection.h
579 (dbus_connection_disconnect): renamed to dbus_connection_close
580 for API symmetry with dbus_connection_open
581 (_dbus_connection_open_internal):
582 s/dbus_connection_disconnect/dbus_connection_close
584 * dbus/dbus-bus.c (dbus_bus_get):
585 s/dbus_connection_disconnect/dbus_connection_close
587 * bus/connection.c (bus_connections_unref,
588 bus_connections_setup_connection, bus_connections_expire_incomplete):
589 s/dbus_connection_disconnect/dbus_connection_close
591 * bus/dispatch.c (bus_dispatch, kill_client_connection,
592 kill_client_connection_unchecked, check_hello_connection):
593 s/dbus_connection_disconnect/dbus_connection_close
595 * bus/bus.c (new_connection_callback):
596 s/dbus_connection_disconnect/dbus_connection_close
598 * tools/dbus-send.c (main):
599 s/dbus_connection_disconnect/dbus_connection_close
601 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
602 s/dbus_connection_disconnect/dbus_connection_close
604 * test/test-service.c (path_message_func, filter_func):
605 s/dbus_connection_disconnect/dbus_connection_close
607 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
609 2005-05-25 Colin Walters <walters@verbum.org>
611 * dbus/dbus-protocol.h: Move various bus service #defines such
612 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
614 * dbus/dbus-shared.h: Various defines moved here.
615 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
617 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
619 * python/__init__.py: Python bindings deserve a minor version
620 update. Upped to (0, 40, 2)
622 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
624 * python/decorators.py: add explicitly_pass_message decorator
625 for passing in the dbus message as keyword for edge case signal
628 * python/matchrules.py (SignalMatchRule.__repr__): fix output
629 to conform with what dbus expects for match rules
630 (SignalMatchRule.execute): add the dbus message as a keyword
631 if the signal handler has requested it
633 * python/examples/example/signal-recipient.py: added some more
634 examples on how to hook up to signals
636 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
638 * python/decorators.py: import dbus_bindings
640 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
641 SignalMatchNode): new classes that implement wildcard signal
642 callback matching using a tree lookup. Heavily modified from a
643 patch sent by Celso Pinto (fd.o bug #3241)
645 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
646 use new match classes to handle signals.
648 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
650 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
652 2005-05-18 Havoc Pennington <hp@redhat.com>
654 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
655 gettext. Not really worth requiring yet perhaps, but any
656 production quality 1.0 would require it so we should go ahead and
657 get things set up. We do have a couple token calls to
658 bindtextdomain in the code already.
660 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
662 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
663 when using recursive g_main_loops
665 * python/_dbus.py (class Bus): add the ProxyObjectClass
666 alias for ProxyObject to make it easier for the Twisted
667 networking framework to integrate dbus.
669 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
670 alias for ProxyMethod to make it easier for the Twisted
671 networking framework to integrate dbus.
673 2005-05-11 Ross Burton <ross@openedhand.com>
675 * glib/dbus-glib-tool.c: Add --prefix argument.
676 * glib/dbus-binding-tool-glib.h: Add prefix argument.
677 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
679 (generate_glue): Pass prefix argument down.
680 (dbus_binding_tool_output_glib_server): Pass prefix to
683 2005-05-11 Colin Walters <walters@verbum.org>
685 * tools/dbus-send.c (append_array): New function.
686 (append_arg): Broken out from main.
687 (main): Add cheesy hack to send arrays and variants.
689 * tools/dbus-print-message.c (print_iter): Broken out
692 2005-05-11 Colin Walters <walters@verbum.org>
694 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
695 New function, returns signature string for signature iter.
696 * dbus/dbus-signature.h: Prototype it.
697 * dbus/dbus-message.c (dbus_message_iter_get_signature):
698 New function, returns signature string for message iter.
699 (dbus_message_iter_get_array_len): New function, returns
701 (dbus_message_iter_get_fixed_array): Fix assertion; this
702 function should be used when the iter is pointing to the
704 * dbus/dbus-message.h: Prototypes.
705 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
706 New function; returns length of an array.
707 * dbus/dbus-marshal-recursive.h: Prototype it.
709 2005-05-11 Colin Walters <walters@verbum.org>
711 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
714 2005-05-08 Havoc Pennington <hp@redhat.com>
716 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
717 daemon's pid, not the parent's pid, to the file descriptor.
718 Reported by Taj Morton.
720 2005-05-05 Havoc Pennington <hp@redhat.com>
722 * configure.in (LT_*): add notes on how the libtool versioning
723 works to save thinking. Increment soname to indicate protocol
724 breakage (though really the library interface hasn't changed I
727 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
728 verify the GUID received from server matches what we were
729 expecting, if we had an expectation
731 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
732 (_dbus_auth_get_guid_from_server): new function
733 (send_begin): parse the OK args
735 * doc/dbus-specification.xml: add GUID to the auth protocol
737 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
739 * Fix my name in previous changelog ;)
741 * python/proxies.py (ProxyObject.__getattr__): add further patch
742 from Anthony Baxter to throw an AttributeError when python
743 __special__ functions are called instead of marshling them over
744 the bus (Bug#1685 comment 3).
746 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
748 * python/Makefile.am: changed to use pyexecdir for the binding
749 shared libraries (Bug#2494)
751 * python/exceptions.py: bring exceptions over from the bindings
752 so they can be used in applications (Bug#2036)
753 Make all exceptions derive from DBusException
755 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
756 of classes so that print obj doesn't throw an exception (Bug #1685)
758 2005-05-03 Ross Burton <ross@openedhand.com>
760 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
761 Return if we get an error during registration. Set up a
762 weak reference on object to unregister if object is destroyed.
763 (unregister_gobject): New function.
765 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
767 * python/dbus_bindings.pyx.in:
768 - added new type classes for hinting to the marashaler what type
769 to send over the wire
770 - added int16 and uint16 marshalers
771 - Fixed a bug in the type constants that caused int32 to go out
772 as uint16 over the wire
773 * python/dbus.py: split up into different files and renamed _dbus.py
774 * python/__init__.py, python/_util.py, python/decorators.py,
775 python/exceptions.py, python/proxies.py, python/services.py,
776 python/types.py: new files split off from dbus.py
777 * python/Makefile.am: Add new files, remove dbus.py and
778 install all python files to <python module dir>/dbus
779 * python/examples/*: Added #!/usr/bin/env python to the top of
780 every example. Patch provided by Tatavarty Kalyan
782 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
784 * NEWS: Update to 0.33
786 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
788 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
789 method for doing async calls
790 (_pending_call_notification): New C function for handling pendning call
792 (set_notify): New method for setting pending call notification
794 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
795 Async capabilities added to remote method calls
796 (Sender): class removed
797 (RemoteService): class removed
798 (ObjectTree): class removed for now
799 (RemoteObject): Renamed to ProxyObject
800 (RemoteMethod): Renamed to ProxyMethod
801 (method): Decorator added for decorating python methods as dbus methods
802 (signal): Decorator added for decorating python methods as signal emitters
803 (ObjectType): Metaclass added for generating introspection data and the
804 method callback vtable
805 (Interface): Wrapper class added to wrap objects in a dbus interface
806 (Object): Uses ObjectType as its metaclass and exports Introspect
807 of the org.freedesktop.DBus.Introspectable interface
808 (ValidationException, UnknownMethodException): new exceptions
810 * python/examples/*: Modified to fit with the new bindings
812 2005-04-23 Havoc Pennington <hp@redhat.com>
814 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
815 reported by Tony Houghton
817 * test/test-service.c (main): test
818 dbus_connection_get_object_path_data()
820 * dbus/dbus-object-tree.c (find_handler): be sure we always init
822 (_dbus_object_tree_get_user_data_unlocked): new function used by
823 dbus_connection_get_object_path_data()
824 (do_register): add assertion test for get_user_data_unlocked
825 (object_tree_test_iteration): more tests
827 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
828 new function from Dan Reed to let you get the user data from
829 dbus_connection_register_object_path()
831 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
833 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
834 in numerous places that did not account for the NULL terminator
835 (signature_from_seed): changed the manual string copy loop to
836 just use strcpy instead
837 make check should now pass
839 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
841 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
842 so that it allows messages that are not signals to pass in
843 NULL as the interface.
845 2005-04-18 David Zeuthen <davidz@redhat.com>
847 * glib/dbus-gmain.c (io_handler_destroy_source):
848 (timeout_handler_destroy_source, connection_setup_free):
849 Also unref the source to avoid memory leaks.
851 2005-04-13 David Zeuthen <davidz@redhat.com>
853 * bus/config-parser.c (bus_config_parser_new): Bump this to a
854 more reasonable, yet still totally arbitrary, value :-).
856 2005-04-13 David Zeuthen <davidz@redhat.com>
858 * doc/TODO: Added an "important for 1.0" item about selinux
861 2005-04-13 David Zeuthen <davidz@redhat.com>
863 * bus/selinux.c: Add c-file-style to top of file
864 (log_audit_callback): Don't free the data here anymore
865 (bus_selinux_check): Don't take spid and tpid since appending
866 that to auxdata may OOM.
867 (bus_selinux_allows_acquire_service): Handle OOM and signal back
868 to the caller if we are OOM by taking an error object.
869 (bus_selinux_allows_send): -do-
871 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
872 and bus_selinux_allows_send
874 * bus/bus.c (bus_context_check_security_policy): Pass error and
875 pass on OOM thrown by bus_selinux_allows_send()
877 * bus/services.c (bus_registry_acquire_service): Pass error and
878 pass on OOM thrown by bus_selinux_allows_acquire_service()
880 2005-04-13 Havoc Pennington <hp@redhat.com>
882 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
883 message at a time to avoid monopolizing the main loop, bug
884 #2953 from Benjamin Otte
886 2005-04-09 Havoc Pennington <hp@redhat.com>
888 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
889 possible overlap, fix from Daniel Reed
890 (fixup_alignment): fix signedness warnings
891 (_dbus_string_append_unichar): ditto
893 2005-04-09 Havoc Pennington <hp@redhat.com>
895 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
897 * glib/dbus-glib-tool.c (main): fix warning
899 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
901 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
902 add a new function that can be used in simple applications that
903 don't have a main loop and are willing to block
905 2005-04-05 David Zeuthen <davidz@redhat.com>
907 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
910 (io_handler_destroy_source): Remove from list of IO handlers
911 of the ConnectionSetup object
912 (timeout_handler_destroy_source): -do- for timeout handlers
913 (io_handler_source_finalized): Don't remove from list since
914 we now do that in io_handler_destroy_source(). Renamed from
915 io_handler_source_destroyed
916 (timeout_handler_source_destroyed): -do- for timeout handlers
917 (connection_setup_free): It is now safe to iterate over all
918 IO and timeout handlers as the _destroy_source removes them
919 from the list synchronously
921 2005-03-30 Havoc Pennington <hp@redhat.com>
923 * configure.in: change check to gtk 2.4
925 * tools/dbus-viewer.c (name_combo_changed_callback): remove
926 gtk_combo_box_get_active_text() usage to decrement GTK requirement
929 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
933 * HACKING: Fixed realease instructions. configure.in should be updated to
934 the next release by the person who made the last release.
936 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
938 * python/lvalue_cast_post_process.py - removed. Patch has been
939 submitted to Pyrex maintainers that fixes gcc4.0 errors
941 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
943 2005-03-24 Daniel Reed <n@ml.org>
945 * tools/Makefile.am: Make print-introspect and
946 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
948 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
950 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
952 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
953 had in Red Hat packages for a while but for some reason never
955 (_dbus_is_a_number): New checks if a string
956 can be converted to a number and does the conversion if it can
957 (_dbus_user_database_lookup): Add check to see if the given username
958 is a udi. This allows udi's to be used instead of usernames in the
960 (_dbus_user_database_lookup_group): Add check to see if the given groupname
961 is a gdi. This allows gdi's to be used instead of groupnames in the
964 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
966 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
967 code so that it compiles with gcc4.0
969 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
970 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
971 results back to dbus_binding.c
973 2005-03-20 Colin Walters <walters@verbum.org>
975 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
977 * configure.in: Require GTK+ 2.6.
979 2005-03-20 Colin Walters <walters@verbum.org>
981 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
983 2005-03-17 Tom Parker <palfrey@tevp.net>
985 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
986 print DBUS_UID_UNSET; instead print passed username. Also
987 be sure to actually use gid looked up in cache.
989 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
990 for DBUS_GID_UNSET and groupname.
992 2005-03-17 Colin Walters <walters@verbum.org>
994 * bus/print-introspect.c: Move to tools/.
995 * bus/run-with-tmp-session-bus.sh: Ditto.
997 * glib/Makefile.am (dbus-glib-bindings.h): Move
998 generation to tools/Makefile.am.
1000 * test/glib/run-test.sh: Update to handle move
1001 of run-with-tmp-session-bus.sh.
1003 * test/glib/test-service-glib.c: Update to handle
1004 move of dbus-glib-bindings.h.
1006 * tools/print-introspect.c: Moved here
1007 from bus/, and ported to GLib bindings.
1009 * tools/run-with-tmp-session-bus.sh: Moved here
1012 * tools/Makefile.am: Generate dbus-glib-bindings.h
1013 and dbus-bus-introspect.xml here.
1015 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1018 2005-03-17 Colin Walters <walters@verbum.org>
1020 * bus/driver.c (write_args_for_direction): Use
1021 _dbus_string_get_const_data to retrieve string;
1022 _dbus_string_get_const_data_len doesn't actually return
1023 a NULL-terminated substring.
1025 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1026 (main): Change to use org_freedesktop_DBus_request_name
1027 instead of using g_proxy_begin_call/end_call.
1029 2005-03-15 Joe Shaw <joeshaw@novell.com>
1031 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1032 generating the finalizer. Fixes from Ben Maurer.
1034 2005-03-12 Joe Shaw <joeshaw@novell.com>
1036 * mono/BusDriver.cs: Update method names: ListServices
1037 becomes ListNames; GetOwner becomes GetNameOwner.
1039 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1040 onto the eval stack when removing the delegate.
1042 2005-03-12 Joe Shaw <joeshaw@novell.com>
1044 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1045 LT_CURRENT. Set it to the autoconf variable.
1047 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1048 classes that disconnects the signal handler delegate from the
1049 service object. Fixes a big leak of proxy objects on the
1050 client side of things. Patch from Ben Maurer
1051 <bmaurer@ximian.com>
1053 2005-03-12 Colin Walters <walters@verbum.org>
1055 * bus/driver.c (write_args_for_direction): New function,
1056 parses a type signature into arguments and outputs to
1058 (bus_driver_handle_introspect): Use it instead of
1059 hardcoding XML for certain signatures.
1061 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1062 dependency on dbus-daemon.
1064 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1065 argument, pass it to dbus_binding_tool_output_glib_client.
1067 * glib/dbus-binding-tool-glib.c
1068 (generate_client_glue): Protect against multiple inclusion.
1069 (dbus_binding_tool_output_glib_client): Add
1070 G_BEGIN_DECLS/G_END_DECLS.
1072 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1073 Change to just take iface prefix directly.
1074 (write_formal_parameters): Clarify error message.
1075 (check_supported_parameters): New function; checks to see type
1076 signatures of method parameters are supported.
1077 (generate_client_glue): Handle ignore_unsupported flag.
1078 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1081 * glib/Makefile.am (dbus-glib-bindings.h): Pass
1082 --ignore-unsupported by default until glib bindings
1085 2005-03-11 Colin Walters <walters@verbum.org>
1087 * glib/Makefile.am: Generate dbus-glib-bindings.h and
1090 * bus/print-introspect.c: New file; prints introspection
1091 data for a given name and object path.
1093 * bus/run-with-tmp-session-bus.sh: New file, refactored
1094 from test/glib/run-test.sh. Creates a temporary session
1095 bus and runs another program.
1097 * test/glib/run-test.sh: Refactor to invoke
1098 run-with-tmp-session-bus.sh.
1100 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1101 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
1102 macros instead of hardcoding.
1104 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1106 2005-03-11 Joe Shaw <joeshaw@novell.com>
1108 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1109 this unref; it doesn't match up evenly in some codepaths.
1110 (_dbus_connection_block_pending_call): Unref at every exitpoint;
1111 this evenly matches with the ref near the top of this function.
1113 2005-03-09 Joe Shaw <joeshaw@novell.com>
1115 * dbus/dbus-object-tree.c
1116 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1117 and we try to unregister a path that's not registered, still go
1118 through the process of unlocking and don't just return.
1120 2005-03-09 Colin Walters <walters@verbum.org>
1122 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1123 to this are generated for client-side wrappers. Invokes a
1124 D-BUS method and returns reply values.
1126 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
1127 function; writes signature string for argument direction.
1128 (write_args_for_direction): Change to pass input values directly
1129 instead of via address, and fix indentation.
1130 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
1131 make generated wrappers inlineable.
1133 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
1134 note about using dbus_type_is_fixed.
1136 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
1137 dbus/dbus-signature.c as dbus_type_is_fixed.
1139 All callers updated.
1141 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
1142 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
1144 * dbus/dbus-signature.h: Prototype.
1146 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
1149 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
1150 appropriate instead of just freeing it.
1151 (main): Free returned strings using g_free.
1153 * test/glib/Makefile.am (test-service-glib-glue.h)
1154 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
1156 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
1157 simply maps a simple D-BUS type to GType.
1158 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
1160 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
1161 initialize the value with it.
1162 (dbus_gvalue_binding_type_from_type): Unused, delete.
1163 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
1164 various types instead of unmarshalling to value data directly.
1165 Remove can_convert boolean.
1166 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
1167 returning directly instead of using can_convert boolean.
1168 (dbus_gvalue_store): New function; not related to D-BUS per-se.
1169 Stores a GValue in a pointer to a value of its corresponding C
1172 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
1173 add dbus_gvalue_store.
1175 2005-03-08 Joe Shaw <joeshaw@novell.com>
1177 Fix a bunch of lifecycle and memory management problems
1178 in the mono bindings.
1180 * mono/Arguments.cs (Arguments): Implement IDisposable
1182 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
1183 strictly a static class.
1185 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1186 delegates into this file.
1187 (Connection): Implement IDisposable.
1188 (Dispose): Disconnect the connection and set the raw connection
1189 pointer to IntPtr.Zero.
1190 (~Connection): Call Dispose().
1191 (RegisterObjectPath): Added. Manages the registration of object
1192 paths so we can cleanly disconnect them at dispose/finalize time.
1193 (UnregisterObjectPath): Ditto.
1194 (set_RawConnection): Unregister all of the object paths when
1195 changing the underlying DBusConnection. Add them back onto the
1196 new connection, if any.
1198 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1199 more unmanaged resources anymore, so it's not necessary. Move all
1200 the DBusObjectPathVTable stuff out of here.
1201 (Handler): Save references to our delegates so that they don't get
1202 finalized. Call Connection.RegisterObjectPath() instead of
1203 dbus_connection_register_object_path() directly.
1204 (Message_Called): Dispose the message after we're finished with
1207 * mono/Message.cs (Message): Implement IDisposable.
1208 (Dispose): Dispose the Arguments, and set the RawMessage to
1210 (SendWithReplyAndBlock): We own the ref to the reply that comes
1211 back from dbus_connection_send_with_reply_and_block() so add a
1212 comment about that and unref it after we've constructed a managed
1213 MethodReturn class around it. Fixes a big, big leak.
1215 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1217 (BuildSignalHandler): After we've sent the Signal message, dispose
1219 (BuildMethod): Dispose of the method call and reply messages after
1220 we've sent the message and extracted the data we want from the
1223 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1225 (Service_FilterCalled): Dispose of the message after we're
1228 2005-03-08 Joe Shaw <joeshaw@novell.com>
1230 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
1231 After we attach our pending call to the connection, unref
1234 * mono/Connection.cs (set_RawConnection): Disconnect our
1235 filter and match callbacks from the old connection and
1236 reconnect them to the new connection, if any.
1238 * mono/DBusType/Array.cs: "Code" is a static member, so
1239 don't use "this" to refer to it. Fix for stricter checking
1242 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
1243 object path that we pass into unmanaged code.
1245 * mono/DBusType/String.cs (Append): Don't leak the string
1246 that we pass into unmanged code.
1248 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
1249 * NEWS: Update for 0.31
1251 * configure.in: Release 0.31
1252 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
1254 * qt/Makefile.am: fixed build
1256 * dbus/Makefile.am: soname bump for libdbus
1258 * glib/Makefile.am: soname bump for libdbus-glib
1260 2005-03-05 Havoc Pennington <hp@redhat.com>
1262 * dbus/dbus-sysdeps.c:
1263 (pseudorandom_generate_random_bytes_buffer): fix to have no return
1265 (_dbus_generate_random_bytes_buffer): fix return value
1267 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
1268 checks actually work, from Tom Parker <fdo@tevp.net>
1270 2005-03-01 Colin Walters <walters@verbum.org>
1272 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
1273 functions copied from dbus-glib-tool.c.
1274 (main): Convert lots of error code to use them.
1275 Also add some testing for introspection bits.
1277 2005-03-01 Colin Walters <walters@verbum.org>
1279 * doc/TODO: Remove introspection signature TODO.
1281 2005-02-27 Colin Walters <walters@verbum.org>
1283 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
1284 Change return value to const char * instead of int so we can do
1286 (struct PropertyInfo, struct ArgInfo): Store char *.
1287 (property_info_new, arg_info_new): Update parameters, strdup.
1288 (property_info_unref, arg_info_unref): Free.
1290 * glib/dbus-gidl.h: Update prototypes.
1292 * glib/dbus-gparser.c (basic_type_from_string): Delete.
1293 (validate_signature): New function, just validates signature and
1295 (parse_property, parse_arg): Invoke validate_signature. Store
1296 signature instead of just type code.
1298 * glib/dbus-gvalue.c (base_type_from_signature): New utility
1299 function to return a primary type for a signature, dropping
1300 information about types in container types.
1301 (dbus_gvalue_genmarshal_name_from_type)
1302 (dbus_gvalue_binding_type_from_type)
1303 (dbus_gvalue_ctype_from_type): Update to take full signature
1304 instead of type code.
1305 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
1307 * glib/dbus-gvalue.h: Update prototypes for above.
1309 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
1310 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
1311 (introspect_properties, introspect_signals, write_interface):
1312 Update to handle signatures, and remove usage of
1313 _dbus_gutils_type_to_string.
1314 (handle_introspect): Print out type codes instead of e.g. "string"
1315 in hardcoded introspection XML; also use x_AS_STRING constants
1316 instead of hardcoding in string.
1318 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
1319 to string. Remove usage of _dbus_gutils_type_to_string.
1321 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
1323 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
1326 * glib/dbus-binding-tool-glib.c (compute_marshaller)
1327 (compute_marshaller_name, generate_glue): Handle signature change
1329 (write_formal_parameters, write_args_for_direction): Ditto, and
1332 * tools/dbus-tree-view.c (type_to_string): Delete.
1333 (info_set_func_text): Update to print full signatures.
1335 * test/glib/test-service-glib.xml: Change types to new
1336 introspection format.
1338 2005-02-26 Havoc Pennington <hp@redhat.com>
1340 * doc/TODO: remove the "guid" item
1342 * test/glib/test-profile.c (no_bus_thread_func): use open_private
1343 (with_bus_thread_func): use open_private
1345 * dbus/dbus-connection.c (dbus_connection_open_private): new
1346 function that works like the old dbus_connection_open()
1347 (dbus_connection_open): now returns an existing connection if
1350 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
1351 through the GUID to the transport
1353 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
1354 GUID in hex-encoded form.
1356 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1357 pass GUID argument in to the transport
1359 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
1362 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
1364 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
1366 2005-02-25 Havoc Pennington <hp@redhat.com>
1368 * doc/dbus-specification.xml: document the GUID thing
1370 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
1371 globally unique ID for the server, and put a "guid=hexencoded"
1372 field in the address
1374 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
1376 * dbus/dbus-message.c: ditto
1378 * dbus/dbus-dataslot.c: ditto
1380 * dbus/dbus-list.c: ditto
1382 * dbus/dbus-internals.h: wait, just include
1383 dbus-threads-internal.h here
1385 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
1388 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
1390 2005-02-24 Colin Walters <walters@verbum.org>
1392 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
1394 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
1396 * glib/Makefile.am: added dbus-gobject.h to sources list
1397 so distcheck doesn't fail
1399 2005-02-24 Havoc Pennington <hp@redhat.com>
1401 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
1402 you must disconnect before unref, since locking and other things
1403 are screwed up otherwise. Fix assorted other locking stuff.
1405 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
1408 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
1409 into a private header and don't export from the library
1411 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
1413 2005-02-24 Colin Walters <walters@verbum.org>
1415 * dbus/dbus-signature.c: New file; implements various functions
1416 related to type signatures. Includes an interator for parsing,
1417 validation functions.
1418 (dbus_type_is_basic): Moved here from
1419 dbus-marshal-basic.c:_dbus_type_is_basic.
1420 (dbus_type_is_container): Moved here from
1421 dbus-marshal-basic.c:_dbus_type_is_container.
1423 All callers of _dbus_type_is_container and _dbus_type_is_basic
1424 updated, and include dbus-signature.h.
1426 * dbus/dbus-signature.h: New file; prototypes for the above.
1428 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
1431 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
1432 function factored out of _dbus_first_type_in_signature.
1433 (_dbus_first_type_in_signature_c_str): New function; returns first
1434 type code for a type signature character.
1436 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
1437 handle function moves.
1439 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
1441 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
1442 function; skips to next complete type in type signature.
1443 Implemented using previous skip_one_complete_type. Now
1444 skip_one_complete_type just delegates to
1445 _dbus_type_signature_next.
1447 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
1449 (_dbus_type_is_container): Ditto.
1451 * doc/dbus-specification.xml: Update introspection sample to
1452 use real type signatures.
1454 * dbus/dbus-test.h: Prototype signature test.
1456 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
1459 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
1461 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
1463 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
1464 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
1466 2005-02-21 Colin Walters <walters@verbum.org>
1468 * dbus/dbus-test-main.c (main): Take optional specific test
1471 * dbus/dbus-test.c (run_test): New function, runs a test function
1472 with no data directory.
1473 (run_data_test): Like above, but takes data directory.
1474 (dbus_internal_do_not_use_run_tests): Take
1475 specific test argument. Replace lots of cut n' paste code
1476 with run_test and run_data_test.
1478 * dbus/dbus-test.h: Update prototype for
1479 dbus_internal_do_not_use_run_tests.
1481 2005-02-20 Havoc Pennington <hp@redhat.com>
1483 Fix bugs reported by Daniel P. Berrange
1485 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
1486 (protected_change_watch): new function
1487 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
1488 (_dbus_server_add_watch): change to work like the
1489 dbus-connection.c equivalents; like those, probably kind of
1490 busted, but should at least mostly work for now
1491 (dbus_server_disconnect): drop the lock if we were already
1492 disconnected, patch from Daniel P. Berrange
1494 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
1495 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
1498 * doc/TODO: todo about unscrewing this mess
1500 2005-02-19 Colin Walters <walters@verbum.org>
1502 * glib/dbus-binding-tool-glib.c
1503 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
1505 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
1506 as errno.h and sys/stat.h.
1507 (lose): New function, prints error with
1509 (lose_gerror): Similar, but takes GError for message.
1510 (main): Add --output argument to specify output file to write to,
1511 instead of always printing to stdout. In this mode, determine
1512 timestamps on source files to see whether any are newer than the
1513 target file. If not, exit. Also convert a number of error
1514 messages to use lose (since it's shorter), and switch to using
1515 g_io_channel_shutdown.
1517 2005-02-19 Havoc Pennington <hp@redhat.com>
1519 * glib/dbus-gobject.c
1520 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
1522 * glib/dbus-glib.c: fix doxygen warnings
1524 * glib/dbus-gparser.c (parse_annotation): error if an annotation
1525 is found on an <arg>
1527 2005-02-17 Colin Walters <walters@verbum.org>
1529 * glib/dbus-gobject.h: Don't export
1530 _dbus_glib_marshal_dbus_message_to_gvalue_array.
1532 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
1533 (invoke_object_method): Handle it.
1535 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1538 2005-02-17 Colin Walters <walters@verbum.org>
1540 * bus/.cvsignore, doc/.cvsignore
1541 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
1544 2005-02-17 Colin Walters <walters@verbum.org>
1546 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
1547 Rename to DBUS_SERVICE_DBUS.
1548 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
1549 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
1550 Change the value from "org.freedesktop.Local"
1551 to "org.freedesktop.DBus.Local".
1552 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
1553 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
1554 DBUS_INTERFACE_INTROSPECTABLE.
1555 Change the value from "org.freedesktop.Introspectable"
1556 to "org.freedesktop.DBus.Introspectable".
1557 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
1558 DBUS_INTERFACE_PROPERTIES.
1559 Change the value from "org.freedesktop.Properties"
1560 to "org.freedesktop.DBus.Properties".
1561 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
1562 DBUS_INTERFACE_PEER.
1563 Change the value from "org.freedesktop.Peer"
1564 to "org.freedesktop.DBus.Peer".
1565 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
1566 DBUS_INTERFACE_LOCAL.
1567 Change the value from "org.freedesktop.Local"
1568 to "org.freedesktop.DBus.Local".
1570 All other users of those constants have been changed.
1572 * bus/driver.c (bus_driver_handle_introspect): Use constants.
1574 * glib/dbus-gobject.c (handle_introspect): Use constants.
1576 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
1578 2005-02-17 Colin Walters <walters@verbum.org>
1580 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
1581 (parse_node, parse_interface, parse_method, parse_signal)
1582 (parse_property, parse_annotation): Lose if we're currently in an
1584 (parse_annotation): New function.
1585 (parser_start_element, parser_end_element): Handle annotation.
1586 (parse_method, parse_interface): Remove support for c_name attribute,
1587 switch to annotations.
1589 * glib/dbus-gidl.h (interface_info_get_binding_names)
1590 (method_info_get_binding_names)
1591 (interface_info_get_binding_name, method_info_get_binding_name)
1592 (interface_info_set_binding_name, method_info_set_binding_name):
1594 (interface_info_get_annotations, method_info_get_annotations)
1595 (interface_info_get_annotation, method_info_get_annotation)
1596 (interface_info_add_annotation, method_info_add_annotation):
1599 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
1601 (struct MethodInfo): Ditto.
1602 Straightfoward conversion of binding methods into annotation methods
1605 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
1607 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
1609 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
1610 Use new annotation API.
1612 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
1615 * doc/dbus-specification.xml: Discuss introspection annotations,
1616 include list of well-known annotations.
1618 * test/glib/test-service-glib.xml: Make validate against new DTD.
1620 2005-02-17 Colin Walters <walters@verbum.org>
1622 This patch is based on initial work from
1623 Paul Kuliniewicz <kuliniew@purdue.edu>.
1625 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
1626 initialization of GValue from dbus type to here.
1627 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
1628 for the "glib-genmarshal" program from a DBus type.
1629 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
1630 into the C name for it we use in the glib bindings.
1631 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
1632 glib C type (not GValue).
1633 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
1635 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
1636 from dbus-gobject.c.
1638 * glib/dbus-gutils.h: Prototype it.
1640 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
1641 (marshal_dbus_message_to_g_marshaller): Use new shared function
1642 dbus_glib_marshal_dbus_message_to_gvalue_array.
1644 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
1645 Will be changed once we have annotations.
1647 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
1648 GStaticRWLock. Callers updated.
1649 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
1650 (string_table_next): New function for iterating over zero-terminated
1652 (string_table_lookup): New function; retrieves specific entry in
1654 (get_method_data): New function; look up method data in object data chunk.
1655 (object_error_domain_prefix_from_object_info)
1656 (object_error_code_from_object_info): New functions, but not implemented yet.
1657 (method_interface_from_object_info): New function; retrieve interface name.
1658 (method_name_from_object_info): New function; retrieve method name.
1659 (method_arg_info_from_object_info): New function; retrieve argument data.
1660 (arg_iterate): New function; iterates over serialized argument data.
1661 (method_dir_signature_from_object_info): New function; returns a
1662 GString holding type signature for arguments for just one
1663 direction (input or output).
1664 (method_input_signature_from_object_info)
1665 (method_output_signature_from_object_info): New functions.
1666 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
1667 converts dbus message arguments into a GValue array. Used for both
1668 signal handling and method invocation.
1669 (struct DBusGlibWriteIterfaceData): New utility structure.
1670 (write_interface): New function; generate introspection XML for
1672 (introspect_interfaces): New function; gathers all interface->methods,
1673 generates introspection XML for them.
1674 (handle_introspect): Invoke introspect_interfaces.
1675 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
1676 (lookup_object_and_method): New function; examines an incoming message
1677 and attempts to match it up (via interface, method name, and argument
1678 signature) with a known object and method.
1679 (gerror_domaincode_to_dbus_error_name): New function; converts a
1680 GError domain and code into a DBus error name. Needs GError data
1681 added to object introspection to work well.
1682 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
1684 (invoke_object_method): New function to invoke an object method
1685 looked up via lookup_object_and_method. Parses the incoming
1686 message, turns it into a GValue array, then invokes the marshaller
1687 specified in the DBusGMethodInfo. Creates a new message with
1688 either return values or error message as appropriate.
1689 (gobject_message_function): Invoke lookup_object_and_method and
1690 invoke_object_method.
1692 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
1693 (enum DBusBindingOutputMode): New enum for binding output modes.
1694 (pretty_print): Print binding names.
1695 (dbus_binding_tool_error_quark): GError bits.
1696 (version): Fix typo.
1697 (main): Create GIOChannel for output. Parse new --mode argument,
1698 possible values are "pretty-print", "glib-server", "glib-client".
1699 Use mode to invoke appropriate function.
1701 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
1703 * glib/dbus-glib-tool.h: New header, just includes GError bits
1706 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
1707 maps binding style to name.
1708 (struct MethodInfo): Ditto.
1709 (get_hash_keys, get_hash_key): Utility function, returns keys for
1711 (interface_info_new, method_info_new): Initialize bindings.
1712 (interface_info_unref, method_info_unref): Destroy bindings.
1713 (method_info_get_binding_names, method_info_get_binding_name)
1714 (interface_info_get_binding_names, interface_info_get_binding_name):
1715 Functions for retrieving binding names.
1716 (method_info_set_binding_name, interface_info_set_binding_name):
1717 Functions for setting binding names.
1719 * glib/dbus-binding-tool-glib.h: New file, has prototypes
1720 for glib binding generation.
1722 * glib/dbus-binding-tool-glib.c: New file, implements server-side
1723 and client-side glib glue generation.
1725 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
1726 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
1729 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
1730 of using GClosureMarshal directly.
1731 (struct DBusGObjectInfo): Add n_infos member.
1733 * test/glib/test-service-glib.xml: New file; contains introspection data
1734 for MyTestObject used in test-service-glib.c.
1736 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
1737 (my_object_do_nothing, my_object_increment, my_object_throw_error)
1738 (my_object_uppercase, my_object_many_args): New test methods.
1739 (main): Use dbus_g_object_class_install_info to include generated object
1742 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
1743 as well as client-side bindings.
1745 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
1746 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
1747 using both the dbus_gproxy stuff directly as well as the generated bindings.
1749 2005-02-15 Havoc Pennington <hp@redhat.com>
1751 * dbus/dbus-connection.c (dbus_connection_dispatch): always
1752 complete a pending call, don't run filters first.
1754 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
1755 dbus_pending_call_steal_reply
1757 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
1758 _dbus_connection_block_pending_call
1759 (dbus_pending_call_get_reply): change to steal_reply and return a
1762 * dbus/dbus-connection.c
1763 (dbus_connection_send_with_reply_and_block): port to work in terms
1765 (_dbus_connection_block_pending_call): replace block_for_reply
1768 2005-02-14 Havoc Pennington <hp@redhat.com>
1770 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
1771 properly handle looking up group information by name; fix
1774 2005-02-13 Havoc Pennington <hp@redhat.com>
1776 * dbus/dbus-connection.c (dbus_connection_return_message)
1777 (dbus_connection_borrow_message): hold dispatch lock while message
1779 (_dbus_connection_block_for_reply): hold dispatch lock while we
1780 block for the reply, so nobody steals our reply
1781 (dbus_connection_pop_message): hold the dispatch lock while we
1784 2005-02-13 Havoc Pennington <hp@redhat.com>
1786 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
1787 (_dbus_connection_release_dispatch)
1788 (_dbus_connection_acquire_io_path)
1789 (_dbus_connection_release_io_path): make the mutex and condvar
1790 control access to the "acquired" flag. Drop the connection lock
1791 while waiting on the condvar. Hopefully these are baby steps in
1792 roughly the right direction.
1794 2005-02-13 Havoc Pennington <hp@redhat.com>
1796 * dbus/dbus-connection.c: use separate mutexes for the condition
1797 variables; this is some kind of baseline for sanity, but the
1798 condition variables still aren't used correctly afaict
1800 2005-02-13 Havoc Pennington <hp@redhat.com>
1802 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1805 * dbus/dbus-connection.c
1806 (_dbus_connection_detach_pending_call_unlocked): add this
1808 Initial semi-correct pass through to fix thread locking; there are
1809 still some issues with the condition variable paths I'm pretty
1812 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
1815 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
1816 rename to add _unlocked
1817 (struct DBusConnection): move "dispatch_acquired" and
1818 "io_path_acquired" to use only one bit each.
1819 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
1820 (dbus_connection_set_watch_functions): hacky fix to reentrancy
1821 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
1822 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
1823 (_dbus_connection_remove_timeout)
1824 (_dbus_connection_toggle_timeout): drop lock when calling out to
1825 user functions; done in a hacky/bad way.
1826 (_dbus_connection_send_and_unlock): add a missing unlock
1827 (_dbus_connection_block_for_reply): add a missing unlock
1829 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1830 drop lock in a hacky probably unsafe way to call out to user
1833 2005-02-12 Havoc Pennington <hp@redhat.com>
1835 * tools/dbus-tree-view.c (info_set_func_text): display more
1838 * bus/driver.c (bus_driver_handle_list_services): list the bus
1841 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
1843 * glib/dbus-gidl.c (signal_info_get_n_args): new function
1844 (method_info_get_n_args): new function
1846 2005-02-12 Havoc Pennington <hp@redhat.com>
1848 * bus/driver.c (bus_driver_handle_introspect): add introspection
1851 2005-02-12 Havoc Pennington <hp@redhat.com>
1853 * bus/driver.c: put the signature of each bus driver method in the
1854 table of handlers and check it on incoming calls; this isn't
1855 really useful, but going to add introspect support in a minute.
1857 2005-02-11 Joe Shaw <joeshaw@novell.com>
1859 * mono/Connection.cs: The unpredictability of finalizers in mono
1860 prevents us from deterministically disconnecting the filters from
1861 the Service class's finalizer, so move tracking of filters and
1862 matches here. Add API for that.
1864 * mono/Service.cs: Remove the code, add code which calls the
1865 methods now on the Connection class.
1867 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
1869 * python/dbus.py (class Sender): added to support dbus signals better
1870 (Bus::add_signal_receiver): added expand_args parameter which defaults
1871 to True. When expand args is True the signal handler will pass the
1872 message arguments as parameters to the signal handler. If False
1873 revert to previous behavior where the signal handler must get the
1874 argument list from the message. This is to help port applications
1875 like HAL that have a tendancy to send variable length argument lists.
1876 self._match_rule_to_receivers is now a dict of dicts.
1877 (Bus::remove_signal_receiver): pop handler off the dict intead of
1878 removing it from a list
1879 (Bus::_signal_func): change signal handlers so that interface,
1880 signal_name, service, path and message are packed into a Sender
1881 object and that is passed to the handler. If expand_args is True
1882 extract the args list from the message and append it to the parameter
1885 * python/dbus_bindings.pyx.in (class Signature): added to support
1887 (MessageIter::__init__): changed iteration limit to match D-BUS
1888 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
1889 STRUCT and VARIENT type support
1890 (MessageIter::python_value_to_dbus_sig): made recursive to support
1892 (MessageIter::append*): added Signature, dict, tuple
1895 * python/examples/example-client.py: added examples of getting tuples
1898 * python/examples/example-service.py: added examples of sending tuples
1901 * python/examples/example-signal-recipient.py: Fixed to handle new
1902 signal callback format
1904 2005-02-10 Havoc Pennington <hp@redhat.com>
1906 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
1907 (call dbus_g_proxy_add_signal)
1909 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
1911 (_dbus_server_new_for_domain_socket): escape the path
1913 * dbus/dbus-address.c (dbus_address_escape_value): new
1914 (dbus_address_unescape_value): new
1915 (dbus_parse_address): unescape values
1917 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
1919 * doc/dbus-specification.xml: explain how to escape values in
1922 2005-02-10 Havoc Pennington <hp@redhat.com>
1924 * dbus/dbus-message-factory.c (generate_special): modify test to
1925 avoid using a non-basic dict key
1927 * dbus/dbus-marshal-validate-util.c: add test for the below
1929 * doc/dbus-specification.xml: require that dict keys are a basic
1932 * dbus/dbus-marshal-validate.c
1933 (_dbus_validate_signature_with_reason): require that dict key is a
1936 2005-02-10 Havoc Pennington <hp@redhat.com>
1938 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1939 change to be _and_unlock instead of _unlocked
1941 * dbus/dbus-connection.c
1942 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
1943 have no_update so we can find this bug quickly in future
1945 2005-02-10 Havoc Pennington <hp@redhat.com>
1947 * dbus/dbus-message-util.c (verify_test_message): tests for string
1950 * dbus/dbus-message.c (dbus_message_append_args_valist): add
1951 support for arrays of string/signature/path
1953 2005-02-10 Joe Shaw <joeshaw@novell.com>
1955 * dbus/dbus-connection.c
1956 (_dbus_connection_queue_received_message_link,
1957 _dbus_connection_message_sent): Add the path to
1959 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
1960 _dbus_connection_send_preallocated_unlocked(), updated the
1961 dispatch status, and unlocks. Fixes a bug where certain
1962 situations (like a broken pipe) could cause a Disconnect message
1963 to not be sent, tricking the bus into thinking a service was still
1964 there when the process had quit.
1965 (_dbus_connection_send_preallocated): Call
1966 _dbus_connection_send_preallocated_and_unlock().
1967 (_dbus_connection_send_and_unlock): Added. Calls
1968 _dbus_connection_send_preallocated_and_unlock().
1969 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
1970 (dbus_connection_send_with_reply): Update the dispatch status and
1973 * mono/Service.cs (~Service): Added. Removes the filter so that
1974 we don't get unmanaged code calling back into a GCed delegate.
1975 (RemoveFilter); Added.
1977 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
1979 * dbus/dbus-message.c (dbus_message_iter_open_container):
1980 - Removed check for iterator type being an array because
1981 get_arg_type does not work with writer iterators
1982 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
1984 2005-02-07 Havoc Pennington <hp@redhat.com>
1986 * doc/dbus-specification.xml: some more language cleanups; add
1987 stuff about how to deal with invalid protocol and extension
1988 points; add _ to allowed chars in auth commands; add EXTENSION_
1991 2005-02-06 Havoc Pennington <hp@redhat.com>
1993 * s/expected/required/ in a couple places for clarity
1995 2005-02-07 Colin Walters <walters@verbum.org>
1997 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
1998 sender or proposed_recipient.
2000 2005-02-06 Havoc Pennington <hp@redhat.com>
2002 * dbus/dbus-message-factory.c (generate_special): more tests
2004 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2005 array length that exceeds the maximum
2007 2005-02-05 Havoc Pennington <hp@redhat.com>
2009 * dbus/dbus-message-factory.c (generate_special): more test cases,
2012 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2013 reason why a signature was invalid
2015 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2016 skip the length of the string before we look at it in validation
2018 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2021 * dbus/dbus-message.c (_dbus_message_loader_new): default
2022 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2024 2005-02-05 Havoc Pennington <hp@redhat.com>
2026 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2027 if the signature of a variant was empty
2028 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2029 struct with no element type)
2031 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2032 mangled messages to break things
2034 2005-02-04 Havoc Pennington <hp@redhat.com>
2036 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2037 g_quark_try_string() so it actually can return 0
2038 (dbus_g_proxy_connect_signal): ditto
2040 2005-02-04 Havoc Pennington <hp@redhat.com>
2042 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2044 (tristring_from_message): assert cleanly on null path/interface
2045 (should not be possible though I decided later)
2046 (dbus_g_proxy_dispose): move proxy manager unregistration here
2047 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2048 g_return_if_fail() checks
2050 2005-02-04 Havoc Pennington <hp@redhat.com>
2052 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2054 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2055 (with some minor changes)
2057 * doc/dbus-specification.xml: add deprecated attribute to
2058 introspection format
2060 2005-01-31 Havoc Pennington <hp@redhat.com>
2062 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2063 think it's sort of right
2065 2005-01-30 Havoc Pennington <hp@redhat.com>
2067 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2069 2005-01-30 Havoc Pennington <hp@redhat.com>
2071 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2073 * autogen.sh: change to autotools 1.9
2075 * glib/dbus-gproxy.c: completely change how signals work
2076 (dbus_g_proxy_add_signal): new function to specify signature of a
2078 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2079 and g_warning if the incoming message has the wrong signature.
2081 2005-01-30 Havoc Pennington <hp@redhat.com>
2083 * tools/dbus-names-model.c (have_names_notify): fix this
2085 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2086 up the string array handling a bit
2088 2005-01-30 Havoc Pennington <hp@redhat.com>
2090 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2091 (dbus_g_pending_call_cancel): new function
2093 * dbus/dbus-glib.h: move GType decls for connection/message here;
2094 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2095 here, just kind of rationalizing how we handle all that
2097 * tools/dbus-names-model.c: new file for a tree model listing the
2100 * tools/dbus-tree-view.c (model_new): use proper typing on the
2103 2005-01-30 Havoc Pennington <hp@redhat.com>
2105 * glib/dbus-gmain.c: add a custom GSource back that just checks
2106 whether the message queue has anything in it; otherwise, there are
2107 cases where we won't see messages in the queue since there was no
2108 IO visible to the glib main loop
2110 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2111 increase default message timeout to 25 seconds
2113 2005-01-30 Havoc Pennington <hp@redhat.com>
2115 * test/glib/test-profile.c (no_bus_stop_server): remove the
2116 warning about the g_warning that I just fixed
2118 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2119 custom source, seems to be a lot easier to understand and work
2122 2005-01-30 Havoc Pennington <hp@redhat.com>
2124 I think this main loop thing is conceptually broken, but here are
2125 some band aids. I'll maybe rewrite it in a minute.
2127 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
2128 custom GSource, so don't pass it in; confusing
2129 (gsource_server_finalize, gsource_connection_finalize): add
2130 finalize handlers that remove all the watches.
2132 2005-01-30 Havoc Pennington <hp@redhat.com>
2134 * glib/dbus-gobject.c (introspect_properties): fix the XML
2137 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
2138 which effectively detects the use of freed messages
2140 * glib/dbus-gobject.c (handle_introspect): modify and return the
2141 reply message instead of the incoming message
2143 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
2144 gee, maybe it should SEND THE XML instead of just making a string
2145 and freeing it again ;-)
2147 * tools/dbus-print-message.c (print_message): improve printing of
2150 * configure.in: add debug-glib.service to the output
2152 2005-01-30 Havoc Pennington <hp@redhat.com>
2154 dbus-viewer introspected and displayed the bus driver
2156 * dbus/dbus-object-tree.c
2157 (object_tree_test_iteration): add tests for a handler registered on "/"
2159 * dbus/dbus-object-tree.c
2160 (_dbus_decompose_path): fix to handle path "/" properly
2161 (run_decompose_tests): add tests for path decomposition
2163 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
2166 * glib/dbus-gobject.c (handle_introspect): fix quotes
2168 * test/glib/run-test.sh: support launching the bus, then running
2171 * test/glib/test-service-glib.c (main): put in a trivial gobject
2172 subclass and register it on the connection
2174 * bus/driver.c (bus_driver_handle_introspect): implement
2175 introspection of the bus driver service
2177 * dbus/dbus-protocol.h: add #defines for the XML namespace,
2178 identifiers, doctype decl
2180 * bus/driver.c (bus_driver_handle_get_service_owner): handle
2181 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
2182 returning the service unchanged.
2183 (bus_driver_handle_message): remove old check for reply_serial in
2184 method calls, now the message type deals with that
2185 (bus_driver_handle_message): handle NULL interface
2187 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2189 * glib/dbus-gloader-expat.c (description_load_from_string): allow
2192 * tools/dbus-viewer.c: add support for introspecting a service on
2195 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2196 (dbus_g_pending_call_unref): add
2198 2005-01-29 Havoc Pennington <hp@redhat.com>
2200 * tools/dbus-tree-view.c: add support for displaying properties.
2201 (run dbus-viewer with an introspect xml file as arg, then resize
2202 the window so the tree elements show up, not sure what that is)
2204 * glib/dbus-gobject.c (handle_introspect): return
2205 org.freedesktop.Properties and org.freedesktop.Introspectable
2206 interfaces when we are introspected.
2208 * doc/dbus-specification.xml: allow empty interface name when
2211 2005-01-29 Havoc Pennington <hp@redhat.com>
2213 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2214 though it uses glib, it could be extended for any binding in
2217 * glib/dbus-gobject.c (gobject_message_function): change to the
2218 new way properties work
2220 * dbus/dbus-protocol.h: add the new interfaces
2222 * doc/dbus-specification.xml: document the introspection format,
2223 Introspectable interface, and add an org.freedesktop.Properties
2226 * glib/dbus-gparser.c: add support for a <property> element
2228 * glib/dbus-gidl.c: add PropertyInfo
2230 * glib/dbus-gobject.c (handle_introspect): put the outermost
2231 <node> outside the signal and property descriptions.
2232 (introspect_properties): export properties as <property> rather
2233 than as method calls
2235 2005-01-28 Havoc Pennington <hp@redhat.com>
2237 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
2238 related to authentication protocol
2240 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
2242 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
2243 - BUS_ACTIVATION -> BUS_STARTER
2244 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
2245 - class MessageIter (__init__): Added recursion checking
2246 so we throw a nice error instead of just disconnecting from the
2248 (get): Added arg_type parameter for recursion.
2249 Removed the nil type
2250 Added signiture type placeholder (not implemented)
2251 Added struct type placeholder (not implemented)
2252 Added varient type placeholder (not implemented)
2253 Commented out dict type for now
2254 (get_element_type): renamed from get_array_type
2255 (get_*): changed to use the dbus_message_iter_get_basic API
2256 (get_*_array): removed in favor of recursive get_array method
2257 (get_array): new recursive method which calls get to marshal
2258 the elements of the array
2259 (value_to_dbus_sig): New method returns the corrasponding
2260 dbus signiture to a python value
2261 (append): Comment out dict handling for now
2262 Handle lists with the new recursive API
2263 Comment out None handling for now
2264 (append_nil): removed
2265 (append_*): changed to use dbus_message_iter_append_basic API
2266 (append_*_array): removed in favor of recursive append_array
2268 (__str__): Make it easier to print out recursive iterators
2270 - class Message (__str__): moved type inspection to the
2271 MessageIter class' __str__ method
2272 (get_iter): Added an append parameter wich defaults to False
2273 If True use the new API's to create an append iterator
2275 * python/dbus.py: Update to use new bindings API
2276 - TYPE_ACTIVATION -> TYPE_STARTER
2277 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
2278 - class ActivationBus -> class StarterBus
2279 - class RemoteObject (__call__): get an append iterator
2280 - (_dispatch_dbus_method_call): get an append iterator
2281 - class Object (emit_signal): get an append iterator
2283 * python/examples/: Fixed up the examples to work with the new API
2285 2005-01-28 Joe Shaw <joeshaw@novell.com>
2287 * configure.in: Bump version up to 0.30.
2289 * HACKING: Add a release item to bump the version number up after
2292 2005-01-28 Havoc Pennington <hp@redhat.com>
2294 * doc/dbus-specification.xml: update to describe 16-bit types and
2297 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
2300 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
2303 * dbus/dbus-marshal-recursive.c: implement
2305 2005-01-27 Havoc Pennington <hp@redhat.com>
2307 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
2309 * configure.in: find the right type for 16 and 32 bit ints as well
2312 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
2313 the 16-bit types so people don't have to stuff them in 32-bit or
2316 2005-01-27 Havoc Pennington <hp@redhat.com>
2318 * dbus/dbus-message.c: byteswap the message if you init an
2319 iterator to read/write from it
2321 * dbus/dbus-marshal-byteswap.c: new file implementing
2322 _dbus_marshal_byteswap()
2324 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
2326 2005-01-26 Havoc Pennington <hp@redhat.com>
2328 * dbus/dbus-marshal-validate-util.c: break this out (and fix
2329 build, apparently - nobody noticed?)
2331 2005-01-26 Havoc Pennington <hp@redhat.com>
2333 * dbus/dbus-marshal-recursive.h: remove todo comment
2335 2005-01-25 Joe Shaw <joeshaw@novell.com>
2337 * Land the mono binding changes to conform to the new APIs.
2339 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
2340 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
2342 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
2343 type code as a string.
2344 (InitAppending): Rename dbus_message_append_iter_init() to
2345 dbus_message_iter_init_append().
2347 * mono/BusDriver.cs: Rename ServiceEventHandler to
2348 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
2349 Rename ServiceOwnerChanged to NameOwnerChanged.
2351 * mono/Connection.cs: Rename BaseService to UniqueName, and the
2354 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
2356 * mono/Service.cs: Rename Exists to HasOwner, internally rename
2357 dbus_bus_acquire_service() to dbus_bus_request_name().
2359 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
2360 of Type.UnderlyingSystemType to get the correct element type for
2362 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
2363 dbus_message_get_{element|arg}_type() instead of
2364 dbus_message_iter_init_array_iterator().
2365 (Append): Replace dbus_message_iter_append_array() with
2366 dbus_message_iter_open_container() and
2367 dbus_message_iter_close_container().
2369 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
2370 types have been removed.
2372 * mono/DBusType/*.cs: Replace calls of
2373 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
2374 but specify the type in the DllImport extern declaration. Ditto
2375 for dbus_message_iter_append_[type]() ->
2376 dbus_message_iter_append_basic().
2378 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
2379 NameOwnerChangedHandler.
2381 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
2383 * python/dbus_bindings.pyx.in: Rename of methods and bindings
2384 - get_base_service -> get_unique_name
2385 - bus_get_base_service -> bus_get_unique_name
2386 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
2387 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
2388 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
2389 - bus_activate_service -> bus_start_service_by_name
2390 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
2391 - bus_acquire_service -> bus_request_name
2392 - dbus_bus_acquire_service -> dbus_bus_request_name
2393 - bus_service_exists -> bus_name_has_owner
2394 - dbus_bus_service_exists -> dbus_bus_name_has_owner
2396 * python/dbus.py: Rename of methods
2397 - activate_service -> start_service_by_name
2398 - bus_acquire_service -> bus_request_name
2399 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
2400 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
2403 2005-01-24 Joe Shaw <joeshaw@novell.com>
2405 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
2406 signature for the method that can't be found.
2408 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
2409 the message has any arguments, we need to call
2410 _dbus_type_reader_get_current_type(), not
2411 _dbus_type_reader_has_next().
2413 2005-01-24 Havoc Pennington <hp@redhat.com>
2415 * dbus/dbus-message-factory.c: more testing of message validation
2417 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
2420 2005-01-23 Havoc Pennington <hp@redhat.com>
2422 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
2423 get this all working, not many tests in the framework yet though
2425 2005-01-22 Havoc Pennington <hp@redhat.com>
2427 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
2428 tutorial, based on work from David Wheeler.
2430 2005-01-21 Havoc Pennington <hp@redhat.com>
2432 * dbus/dbus-bus.c: add more return_if_fail checks
2434 * dbus/dbus-message.c (load_message): have the "no validation"
2435 mode (have to edit the code to toggle the mode for now though)
2437 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
2438 skips all validation; I want to use this at least for benchmark
2439 baseline, I'm not sure if it should be a publicly-available switch.
2441 2005-01-21 Havoc Pennington <hp@redhat.com>
2443 * glib/dbus-gmain.c: don't put the GLib bindings in the same
2444 toplevel doxygen group as the low-level API stuff
2446 * dbus/dbus.h: note that libdbus is the low-level API
2448 2005-01-20 Havoc Pennington <hp@redhat.com>
2450 * update-dbus-docs.sh: script to update docs on the web site, only
2451 works for me though. neener.
2453 2005-01-20 Havoc Pennington <hp@redhat.com>
2455 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
2456 code can reveal bugs in it
2458 2005-01-20 Havoc Pennington <hp@redhat.com>
2460 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
2461 select() version, patches from Tor Lillqvist
2463 2005-01-20 Havoc Pennington <hp@redhat.com>
2465 * doc/dbus-tutorial.xml: replace > with >
2467 * bus/services.c (bus_registry_acquire_service): validate the name
2468 and return a better error if it's no good.
2470 * doc/dbus-specification.xml: note NO_AUTO_START change
2472 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
2473 from AUTO_START, we're toggling the default
2475 * bus/dispatch.c: adapt the tests to change of auto-start default
2477 2005-01-18 Havoc Pennington <hp@redhat.com>
2479 * rename dbus-daemon-1 to dbus-daemon throughout
2481 2005-01-18 Havoc Pennington <hp@redhat.com>
2483 * Throughout, grand renaming to strip out the use of "service",
2484 just say "name" instead (or "bus name" when ambiguous). Did not
2485 change the internal code of the message bus itself, only the
2486 programmer-facing API and messages.
2488 * doc/dbus-specification.xml: further update the message bus section
2490 * bus/config-parser.c (all_are_equiv): fix bug using freed string
2493 2005-01-17 Havoc Pennington <hp@redhat.com>
2495 * dbus/dbus-types.h: remove 16-bit types since we don't use them
2498 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
2499 "invalid name character" not only non-ASCII
2501 * doc/dbus-specification.xml: further update spec, message bus
2502 parts are still out-of-date but the marshaling etc. stuff is now
2505 2005-01-17 Havoc Pennington <hp@redhat.com>
2507 * doc/dbus-specification.xml: partially update spec
2509 2005-01-17 Havoc Pennington <hp@redhat.com>
2511 * Throughout, align variant bodies according to the contained
2512 type, rather than always to 8. Should save a fair bit of space in
2515 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
2516 fix handling of case where p == end
2518 * doc/TODO: remove the dbus_bool_t item and variant alignment items
2520 2005-01-17 Havoc Pennington <hp@redhat.com>
2522 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
2524 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
2525 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
2526 are marshaling/unmarshaling a boolean.
2528 2005-01-16 Havoc Pennington <hp@redhat.com>
2530 This is about it on what can be disabled/deleted from libdbus
2531 easily, back below 150K anyhow. Deeper cuts are more work than
2532 just turning the code off as I've done here.
2534 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
2535 signed int convenience funcs
2537 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
2540 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
2541 things out of libdbus
2543 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
2545 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
2546 tests-enabled-only, though it should probably be deleted)
2548 * dbus/dbus-message-util.c: same stuff
2550 * dbus/dbus-auth-util.c: same stuff
2552 2005-01-16 Havoc Pennington <hp@redhat.com>
2554 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
2556 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
2557 way for stripping down dbus-userdb.c stuff included in libdbus.
2558 Rename _dbus_parse_uid for consistency.
2560 2005-01-16 Havoc Pennington <hp@redhat.com>
2562 * dbus/dbus-internals.c (_dbus_real_assert): print the function
2563 name the assertion failed in
2565 * dbus/dbus-internals.h (_dbus_return_if_fail)
2566 (_dbus_return_val_if_fail): assert that the name of the function
2567 containing the check doesn't start with '_', since we only want to
2568 use checks on public functions
2570 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
2571 checks to assertions
2573 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
2574 change checks to asserts for private function
2576 * dbus/dbus-message.c (_dbus_message_set_serial): checks
2577 to asserts for private function
2579 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
2580 broken assertion that was breaking make check
2581 (_dbus_type_reader_array_is_empty): remove this rather than fix
2582 it, was only used in assertions
2584 2005-01-16 Havoc Pennington <hp@redhat.com>
2586 * test/unused-code-gc.py: hacky script to find code that's used
2587 only by the bus (not libdbus) or used only by tests or not used at
2588 all. It has some false alarms, but looks like we can clean up a
2589 lot of size from libdbus.
2591 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
2592 dbus/Makefile.am: initially move 10K of binary size out of libdbus
2594 2005-01-16 Havoc Pennington <hp@redhat.com>
2596 * Add and fix docs according to Doxygen warnings throughout
2599 * dbus/dbus-marshal-recursive.c
2600 (_dbus_type_reader_array_is_empty): change this to just call
2601 array_reader_get_array_len() and make it static
2603 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
2605 (dbus_message_iter_init_append): rename from append_iter_init
2607 * dbus/dbus-marshal-recursive.c
2608 (_dbus_type_reader_get_element_type): rename from
2609 _dbus_type_reader_get_array_type
2611 2005-01-15 Havoc Pennington <hp@redhat.com>
2613 * test/glib/test-profile.c (with_bus_server_filter): fix crash
2615 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
2616 when DBUS_DISABLE_ASSERT
2617 (_dbus_marshal_set_basic): be sure we align for the string length
2619 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
2622 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
2623 inline macro version
2624 (_dbus_string_set_byte): provide inline macro version
2626 2005-01-15 Havoc Pennington <hp@redhat.com>
2628 * Land the new message args API and type system.
2630 This patch is huge, but the public API change is not
2631 really large. The set of D-BUS types has changed somewhat,
2632 and the arg "getters" are more geared toward language bindings;
2633 they don't make a copy, etc.
2635 There are also some known issues. See these emails for details
2637 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
2638 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
2640 * dbus/dbus-marshal-*: all the new stuff
2642 * dbus/dbus-message.c: basically rewritten
2644 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
2645 freed blocks to be all non-nul bytes so using freed memory is less
2646 likely to work right
2648 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
2649 DBUS_FAIL_MALLOC=N environment variable, so you can do
2650 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
2651 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
2654 * qt/message.cpp: port to the new message args API
2655 (operator<<): use str.utf8() rather than str.unicode()
2656 (pretty sure this is right from the Qt docs?)
2658 * glib/dbus-gvalue.c: port to the new message args API
2660 * bus/dispatch.c, bus/driver.c: port to the new message args API
2662 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
2663 "locked" flag to TRUE and align_offset to 0; I guess we never
2664 looked at these anyhow, but seems cleaner.
2666 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
2667 move allocation padding macro to this header; use it to implement
2668 (_DBUS_STRING_STATIC): ability to declare a static string.
2670 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
2671 change to return TRUE if the interface is not set.
2673 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
2674 to dbus-marshal-validate.[hc]
2676 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
2679 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
2680 to dbus-marshal-*.[hc]
2682 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
2683 function here from dbus-marshal.c
2685 2005-01-12 Joe Shaw <joeshaw@novell.com>
2687 * NEWS: Update for 0.23.
2689 * configure.in: Release 0.23.
2691 2005-01-12 Joe Shaw <joeshaw@novell.com>
2693 * mono/Makefile.am, mono/example/Makefile.am: Always build the
2694 dbus DLL with --debug. Clean up after the .mdb files this leaves
2697 * mono/doc/Makefile.am: Need to uninstall the docs on "make
2700 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
2701 is an enum, get the enum's underlying type. Another mono
2704 2005-01-11 Joe Shaw <joeshaw@novell.com>
2706 Patch from Sjoerd Simons <sjoerd@luon.net>
2708 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
2709 DESTDIR. It breaks stuff.
2711 2005-01-11 Joe Shaw <joeshaw@novell.com>
2713 Patch from Tambet Ingo <tambet@ximian.com>
2715 * mono/DBusType/Array.cs (Get): Get the underlying element type by
2716 calling type.GetElementType(). The code previously depended on
2717 broken Mono behavior, which was fixed in Mono 1.1.3.
2719 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
2720 Activator.CreateInstance() so that the class's constructor is
2721 called with the right parameters.
2723 2005-01-11 Joe Shaw <joeshaw@novell.com>
2725 Patch from Timo Teräs <ext-timo.teras@nokia.com>
2727 * dbus/dbus-connection.c
2728 (_dbus_connection_queue_received_message_link): Call
2729 _dbus_connection_remove_timeout() instead of the _locked()
2730 variant, since it's always called from
2731 _dbus_connection_handle_watch(), which handles the locking.
2732 Removed the _locked() variant since it's no longer used.
2734 2005-01-03 Havoc Pennington <hp@redhat.com>
2736 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
2739 2004-12-26 Havoc Pennington <hp@redhat.com>
2741 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
2743 2005-01-03 Havoc Pennington <hp@redhat.com>
2745 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
2748 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
2750 2005-01-02 Havoc Pennington <hp@redhat.com>
2752 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
2754 2005-01-01 Havoc Pennington <hp@redhat.com>
2756 * configure.in: add -Wfloat-equal
2758 2005-01-01 Havoc Pennington <hp@redhat.com>
2760 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
2761 for a variety of reasons '==' doesn't do this.
2763 2004-12-31 Havoc Pennington <hp@redhat.com>
2765 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
2766 I keep wishing I had
2768 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2770 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
2772 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2774 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
2775 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
2776 dbus-protocol.h. Because they are defines and not enums they are not
2779 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
2781 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
2782 dbus_bus_activate_service
2784 * python/dbus.py (Bus.activate_service): activate a service on the
2787 2004-12-24 Havoc Pennington <hp@redhat.com>
2789 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
2790 file format has also changed and I haven't adapted to that yet
2792 * Makefile.am: load .gcno files from latest gcc
2794 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
2795 * Patch from Rob Taylor <robtaylor@fastmail.fm>
2797 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
2800 * python/dbus.py (get_unix_user): Added binding to
2801 call dbus_bindings.bus_get_unix_user
2803 * python/extract.py: Modified the proto_pat regex to
2804 handle unsigned long
2806 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2808 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
2809 better POSIX compliance.
2811 2004-12-19 Havoc Pennington <hp@redhat.com>
2813 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
2814 (_dbus_string_insert_8_aligned): new functions
2816 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
2818 2004-12-18 Havoc Pennington <hp@redhat.com>
2820 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
2823 * dbus/dbus-message.c: fix a comment, and add a still-unused
2824 not-implemented function
2826 * dbus/dbus-marshal.h: fix comment
2828 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
2830 2004-12-17 Joe Shaw <joeshaw@novell.com>
2832 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
2833 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
2834 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
2835 Type.UnderlyingSystemType to get the actual system type
2836 underneath. This code previously depended on the broken Mono
2837 behavior, which was fixed in 1.1.3.
2839 2004-11-27 Havoc Pennington <hp@redhat.com>
2841 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
2843 (_dbus_string_get_const_data): inline when asserts are disabled
2845 * dbus/dbus-message.c: record the _dbus_current_generation of
2846 creation so we can complain if dbus_shutdown() is used improperly.
2847 Do this only if checks are enabled.
2849 * dbus/dbus-connection.c: ditto
2851 2004-11-26 Havoc Pennington <hp@redhat.com>
2853 * test/glib/test-profile.c: add with_bus mode to profile echoes
2854 that go through the bus.
2856 * test/glib/run-test.sh: add ability to run test-profile
2858 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
2861 2004-11-26 Havoc Pennington <hp@redhat.com>
2863 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
2864 thing was implemented
2866 2004-11-26 Havoc Pennington <hp@redhat.com>
2868 * test/glib/test-profile.c: tweak a bit, add support for some
2869 made-up minimal malloc overhead with plain sockets, since in
2870 real life some sort of buffers are unavoidable thus we could
2871 count them in the theoretical best case
2873 2004-11-26 Havoc Pennington <hp@redhat.com>
2875 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
2876 where I was trying to cache one too many messages
2878 2004-11-26 Havoc Pennington <hp@redhat.com>
2880 * dbus/dbus-message.c: reimplement message cache as an array which
2881 makes the cache about twice as fast and saves maybe 1.5% overall
2883 2004-11-26 Havoc Pennington <hp@redhat.com>
2885 * dbus/dbus-threads.c (init_global_locks): forgot to put the
2886 message cache lock here
2888 2004-11-26 Havoc Pennington <hp@redhat.com>
2890 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
2891 the "char byte_order" next to each other to save 4 bytes
2892 (dbus_message_new_empty_header): reduce preallocation, since the
2893 message cache should achieve a similar effect
2894 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
2895 message cache that keeps a few DBusMessage around in a pool,
2896 another 8% speedup or so.
2898 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
2900 2004-11-25 Havoc Pennington <hp@redhat.com>
2902 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
2903 to write, without reading or blocking, try it before the poll()
2904 and skip the poll() if nothing remains to write. This is about a
2905 3% speedup in the echo client/server
2907 2004-11-25 Havoc Pennington <hp@redhat.com>
2909 The primary change here is to always write() once before adding
2910 the write watch, which gives us about a 10% performance increase.
2912 * dbus/dbus-transport-unix.c: a number of modifications to cope
2913 with removing messages_pending
2914 (check_write_watch): properly handle
2915 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
2916 messages_pending stuff
2917 (check_read_watch): properly handle WAITING_FOR_MEMORY and
2919 (unix_handle_watch): after writing, see if the write watch can be
2921 (unix_do_iteration): assert that write_watch/read_watch are
2922 non-NULL rather than testing that they aren't, since they
2923 aren't allowed to be NULL. check_write_watch() at the end so
2924 we add the watch if we did not finish writing (e.g. got EAGAIN)
2926 * dbus/dbus-transport-protected.h: remove messages_pending call,
2927 since it resulted in too much inefficient watch adding/removing;
2928 instead we now require that the transport user does an iteration
2929 after queueing outgoing messages, and after trying the first
2930 write() we add a write watch if we got EAGAIN or exceeded our
2931 max bytes to write per iteration setting
2933 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
2936 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
2937 freed and then accessed, valgrind flagged this bug, fix it
2939 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
2940 as the last valid field plus 1, where really it is equal to the
2941 last valid field. Corrects some message corruption issues.
2943 * dbus/dbus-mainloop.c: verbosity changes
2945 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
2946 instead of aborting in one of the test codepaths
2948 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
2949 caused not printing the pid ever again if a verbose was missing
2950 the newline at the end
2951 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
2953 * dbus/dbus-connection.c: verbosity changes;
2954 (dbus_connection_has_messages_to_send): new function
2955 (_dbus_connection_message_sent): no longer call transport->messages_pending
2956 (_dbus_connection_send_preallocated_unlocked): do one iteration to
2957 try to write() immediately, so we can avoid the write watch. This
2958 is the core purpose of this patchset
2959 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
2960 dump the outgoing message queue, so nobody will get confused
2961 trying to send them or thinking stuff is pending to be sent
2963 * bus/test.c: verbosity changes
2965 * bus/driver.c: verbosity/assertion changes
2967 * bus/dispatch.c: a bunch of little tweaks to get it working again
2968 because this patchset changes when/where you need to block.
2970 2004-11-23 Havoc Pennington <hp@redhat.com>
2972 * test/glib/test-profile.c: modify to accept a plain_sockets
2973 argument in which case it will bench plain sockets instead of
2974 libdbus, for comparison purposes.
2976 2004-11-22 Havoc Pennington <hp@redhat.com>
2978 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
2979 threads for more time, so sysprof can get a grip on it.
2981 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
2984 2004-11-13 Havoc Pennington <hp@redhat.com>
2986 * test/glib/test-profile.c: fix this thing up a bit
2988 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
2989 preallocation sizes by a fair bit; not sure if this will be an
2990 overall performance win or not, but it does reduce reallocs.
2992 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
2993 the test hack that forced constant realloc if asserts are
2994 disabled, so we can profile sanely. Sprinkle in some
2995 _DBUS_UNLIKELY() which are probably pointless, but before I
2996 noticed the real performance problem I put them in.
2997 (_dbus_string_validate_utf8): micro-optimize this thing a little
2998 bit, though callgrind says it didn't help; then special-case
2999 ascii, which did help a lot; then be sure we detect nul bytes as
3000 invalid, which is a bugfix.
3001 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3002 superstition; use memset to nul the padding instead of a manual
3004 (_dbus_string_get_length): inline this as a
3005 macro; it showed up in the profile because it's used for loop
3008 2004-11-10 Colin Walters <walters@verbum.org>
3010 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3013 2004-11-09 Colin Walters <walters@verbum.org>
3015 * dbus/dbus-string.c (_dbus_string_get_length): New
3016 function, writes DBusString to C buffer.
3018 * dbus/dbus-string.h: Prototype it.
3020 * dbus/dbus-message.c (dbus_message_type_to_string): New
3021 function, converts message type into C string.
3023 * dbus/dbus-message.h: Prototype it.
3025 * bus/selinux.c (bus_selinux_check): Take source pid,
3026 target pid, and audit data. Pass audit data to
3028 (log_audit_callback): New function, appends extra
3030 (bus_selinux_allows_acquire_service): Also take
3031 service name, add it to audit data.
3032 (bus_selinux_allows_send): Also take message
3033 type, interface, method member, error name,
3034 and destination, and add them to audit data.
3035 (log_cb): Initialize func_audit.
3037 * bus/selinux.h (bus_selinux_allows_acquire_service)
3038 (bus_selinux_allows_send): Update prototypes
3040 * bus/services.c (bus_registry_acquire_service): Pass
3041 service name to bus_selinux_allows_acquire_service.
3043 * bus/bus.c (bus_context_check_security_policy): Pass
3044 additional audit data. Move assignment of dest
3047 2004-11-07 Colin Walters <walters@verbum.org>
3049 * dbus/dbus-transport-unix.c (do_authentication): Always
3050 initialize auth_completed.
3052 2004-11-07 Colin Walters <walters@verbum.org>
3054 * bus/bus.c (load_config): Break into three
3055 separate functions: process_config_first_time_only,
3056 process_config_every_time, and process_config_postinit.
3057 (process_config_every_time): Move call of
3058 bus_registry_set_service_context_table into
3059 process_config_postinit.
3060 (process_config_postinit): New function, does
3061 any processing that needs to happen late
3062 in initialization (and also on reload).
3063 (bus_context_new): Instead of calling load_config,
3064 open config parser here and call process_config_first_time_only
3065 and process_config_every_time directly. Later, after
3066 we have forked but before changing UID,
3067 invoke bus_selinux_full_init, and then call
3068 process_config_postinit.
3069 (bus_context_reload_config): As in bus_context_new,
3070 load parse file inside here, and call process_config_every_time
3071 and process_config_postinit.
3073 * bus/services.h, bus/services.c
3074 (bus_registry_set_service_context_table): Rename
3075 from bus_registry_set_sid_table. Take string hash from config
3076 parser, and convert them here into SIDs.
3078 * bus/config-parser.c (struct BusConfigParser): Have
3079 config parser only store a mapping of service->context
3081 (merge_service_context_hash): New function.
3082 (merge_included): Merge context string hashes instead
3083 of using bus_selinux_id_table_union.
3084 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3085 simply create a new string hash.
3086 (bus_config_parser_unref): Unref it.
3087 (start_selinux_child): Simply insert strings into hash,
3088 don't call bus_selinux_id_table_copy_over.
3090 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3091 (bus_selinux_id_table_copy_over): Delete.
3093 2004-11-03 Colin Walters <walters@verbum.org>
3095 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3098 2004-11-03 Colin Walters <walters@verbum.org>
3100 * bus/test-main.c (test_pre_hook): Fix test logic,
3101 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3103 2004-11-02 Colin Walters <walters@redhat.com>
3105 * bus/selinux.c (bus_selinux_init): Split into two functions,
3106 bus_selinux_pre_init and bus_selinux_post_init.
3107 (bus_selinux_pre_init): Just determine whether SELinux is
3109 (bus_selinux_post_init): Do everything else.
3111 * bus/main.c (main): Call bus_selinux_pre_init before parsing
3112 config file, and bus_selinux_post_init after. This ensures that
3113 we don't lose the policyreload notification thread that
3114 bus_selinux_init created before forking previously.
3116 * bus/test-main.c (test_pre_hook): Update for split.
3118 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
3120 Patch from Johan Fischer <linux@fischaz.com>
3122 * mono/doc/Makefile.am (install-data-local): Added directory
3125 2004-10-29 Colin Walters <walters@redhat.com>
3127 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
3128 parameter for fd to write pid to.
3130 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
3132 * bus/bus.c (bus_context_new): Pass print_pid_fd
3133 to _dbus_become_daemon (bug #1720)
3135 2004-10-29 Colin Walters <walters@redhat.com>
3137 Patch from Ed Catmur <ed@catmur.co.uk>
3139 * mono/doc/Makefile.am (install-data-local): Handle
3142 2004-10-29 Colin Walters <walters@redhat.com>
3144 * bus/.cvsignore, qt/.cvsignore: Update.
3146 2004-10-29 Colin Walters <walters@redhat.com>
3148 Patch from Kristof Vansant <de_lupus@pandora.be>
3150 * configure.in: Detect Slackware.
3151 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
3152 * bus/rc.messagebus.in: New file.
3154 2004-10-29 Colin Walters <walters@redhat.com>
3156 * tools/dbus-monitor.c (filter_func): Return
3157 DBUS_HANDLER_RESULT_HANDLED in filter function
3159 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
3161 2004-10-29 Colin Walters <walters@redhat.com>
3163 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
3165 * bus/services.c (bus_registry_acquire_service):
3166 Correctly retrieve service name from DBusString
3169 2004-10-29 Colin Walters <walters@redhat.com>
3171 * dbus/dbus-glib.h: Update documentation to not
3172 refer to internal APIs.
3174 2004-10-27 Joe Shaw <joeshaw@novell.com>
3176 * mono/Arguments.cs (GetDBusTypeConstructor):
3177 type.UnderlyingSystemType will return "System.Byte" if you do it
3178 on "byte[]", which is not what we want. So check the type.IsArray
3179 property and use System.Array instead.
3181 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
3183 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3184 the DBusUserInfo structure since this is passed into the function.
3185 This would cause a double free when the function that allocated
3186 the structure would try to free it when an error occured.
3188 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3189 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3190 for service activation to avoid 32bit/64bit parallel install issues
3192 2004-10-21 Colin Walters <walters@verbum.org>
3194 * AUTHORS: Fix my email address, the @gnu.org one
3195 has been bouncing for some time. Also add J5.
3197 2004-10-21 Colin Walters <walters@verbum.org>
3199 * dbus/dbus-transport-unix.c (do_authentication): Return
3200 authentication status to callers.
3201 (unix_handle_watch): If we completed authentication this round,
3202 don't do another read. Instead wait until the next iteration,
3203 after we've read any pending data in the auth buffer.
3204 (unix_do_iteration): Ditto.
3205 (unix_handle_watch): Updated for new do_authentication prototype.
3207 2004-10-18 Colin Walters <walters@verbum.org>
3209 * bus/selinux.c (bus_selinux_enabled): Handle
3210 --disable-selinux case.
3212 2004-10-18 Colin Walters <walters@verbum.org>
3214 * bus/selinux.h: Add bus_selinux_enabled.
3216 * bus/selinux.c (bus_selinux_enabled): Implement it.
3218 * bus/config-parser.c (struct include): Add
3219 if_selinux_enabled member.
3220 (start_busconfig_child): Parse if_selinux_enabled
3221 attribute for include.
3222 (bus_config_parser_content): Handle it.
3224 * bus/session.conf.in, bus/system.conf.in: Add
3225 inclusion of context mapping to default config files;
3226 conditional on SELinux being enabled.
3228 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
3230 * test/data/invalid-config-files/badselinux-1.conf,
3231 test/data/invalid-config-files/badselinux-2.conf:
3232 Test files for bad syntax.
3234 2004-10-17 Colin Walters <walters@verbum.org>
3236 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
3237 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
3238 format specifier mismatches.
3240 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
3242 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
3245 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
3246 pointer (bug #1540, Leonardo Boiko).
3248 2004-09-28 Jon Trowbridge <trow@ximian.com>
3250 * mono/BusDriver.cs: Changed BusDriver struct to remove
3251 the ServiceCreated and ServiceDeleted events and replace them
3252 with the new ServiceOwnerChanged event.
3254 * mono/example/BusListener.cs: Added a new example program,
3255 which listens for and reports any ServiceOwnerChanged events
3258 * mono/example/Makefile.am (DESTDIR): Build changes for the
3259 new BusListener.cs example.
3261 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
3263 * bus/signals.c (bus_match_rule_parse): validate the components of
3264 match rules (bug #1439).
3266 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
3268 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
3270 * doc/dbus-specification.xml: document ServiceOwnerChanged
3273 * bus/driver.c, bus/driver.h, bus/services.c: Use
3274 ServiceOwnerChanged signal instead of ServiceCreated and
3277 * bus/dispatch.c: update testcase for the new signal.
3279 2004-09-20 Jon Trowbridge <trow@ximian.com>
3281 Patch from Nat Friedman <nat@novell.com>
3283 * mono/Makefile.am: A number of small build fixes to allow "make
3284 distcheck" to succeed.
3286 * mono/example/Makefile.am: "make distcheck" fixes.
3288 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
3291 * test/Makefile.am: "make distcheck" fixes.
3293 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
3295 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
3297 * doc/busconfig.dtd: update the DTD for the at_console attribute.
3299 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
3300 messages after the first one (bug #1389).
3302 * bus/dispatch.c (check_double_hello_message): add a test case for
3303 the double hello message bug.
3304 (check_existent_service_activation): fix check of spawning error.
3306 2004-09-16 David Zeuthen <david@fubar.dk>
3308 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
3310 2004-09-12 David Zeuthen <david@fubar.dk>
3312 Patch from Kay Sievers <kay.sievers@vrfy.org>
3314 * bus/bus.c (bus_context_new):
3316 * bus/main.c (usage)
3318 Add commandline option --nofork to override configuration file
3321 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3323 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
3324 compilers don't like it (bug #974).
3326 2004-09-04 Harald Fernengel <harry@kdevelop.org>
3328 * qt/connection.*: Applied patch by Jérôme Lodewyck
3329 <lodewyck@clipper.ens.fr> to integrate an existing
3330 connection into the Qt eventloop
3332 2004-08-30 Jon Trowbridge <trow@ximian.com>
3334 * mono/BusDriver.cs: Added. This is a class for interacting with
3335 the org.freedesktop.DBus service.
3337 * mono/Message.cs: Added a mechanism to expose the message that is
3338 currently being dispatched via the static Message.Current
3339 property. Added Message.Sender and Message.Destination
3342 * mono/Handler.cs: Expose the dispatched message via
3343 Message.Current when handling method calls.
3345 * mono/Service.cs: Expose the dispatched message via
3346 Message.Current when handling signal emissions.
3348 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
3349 Connection.BaseService property.
3351 2004-08-28 Havoc Pennington <hp@redhat.com>
3353 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
3355 More fixes from Steve Grubb
3357 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
3358 (_dbus_listen_tcp_socket): fix fd leak
3360 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
3361 EINTR to a bit lower in the code
3363 2004-08-26 Jon Trowbridge <trow@ximian.com>
3365 * bus/driver.c (bus_driver_handle_service_exists): Respond with
3366 TRUE if we are inquiring about the existence of the built-in
3367 org.freedesktop.DBus service.
3369 2004-08-25 John Palmieri <johnp@redhat.com>
3370 * bus/config-parser.c:
3371 (struct PolicyType): Add POLICY_CONSOLE
3372 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
3373 (start_busconfig_child): Sets up console element when
3374 <policy at_console=""> is encountered in a policy file
3375 (append_rule_from_element): Convert console elements to console
3379 (bus_policy_create_client_policy): Add console rules to the client
3380 policy based on if the client is at the console
3381 (bus_policy_append_console_rule): New function for adding a
3382 console rule to a policy
3383 (bus_policy_merge): Handle console rule merging
3385 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
3386 where we check for console user files
3388 * dbus/dbus-sysdeps.c:
3389 (_dbus_file_exists): New function which checks if the given
3391 (_dbus_user_at_console): New function which does the system
3392 specific process of checking if the user is at the console
3394 * dbus/dbus-userdb.c:
3395 (_dbus_is_console_user): New function converts a UID to user name
3396 and then calls the system specific _dbus_user_at_console to
3397 see if the user is at the console and therefor a console user
3399 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
3401 * bus/config-parser.c (set_limit):
3402 * bus/dbus-daemon-1.1.in:
3403 * test/data/valid-config-files/many-rules.conf: set the
3404 max_match_rules_per_connection limt from the config file.
3406 * doc/busconfig.dtd: update the DTD.
3408 * bus/driver.c: remove some unused variables.
3410 2004-08-24 Mikael Hallendal <micke@imendio.com>
3412 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
3413 it's been replaced by dbus_g_bus_get
3415 2004-08-23 Colin Walters <walters@redhat.com>
3417 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3419 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
3421 * bus/selinux.c: Create a thread for policy reload notification.
3422 (bus_selinux_get_policy_root): Implement.
3424 * bus/config-parser.c (start_busconfig_child)
3425 (bus_config_parser_content): Support SELinux-root relative
3428 * configure.in <HAVE_SELINUX>: Add -lpthread.
3430 * bus/test-main.c (test_pre_hook, test_post_hook): New.
3431 (test_post_hook): Move memory checking into here.
3432 (test_pre_hook, test_post_hook): Move SELinux checks in
3433 here, but conditional on a DBUS_TEST_SELINUX environment
3434 variable. Unfortunately we can't run the SELinux checks
3435 as a normal user, since they won't have any permissions
3436 for /selinux. So this will have to be tested manually
3437 for now, until we have virtualization for most of
3440 2004-08-23 Havoc Pennington <hp@redhat.com>
3442 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
3443 drop supplementary groups, suggested by Steve Grubb
3445 2004-08-20 Colin Walters <walters@redhat.com>
3447 * bus/config-parser.c (start_busconfig_child): Remove some unused
3450 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
3453 2004-08-17 Joe Shaw <joeshaw@novell.com>
3455 * configure.in: If --enable-mono is passed in, if we can't find
3458 * mono/Makefile.am: Use /gacutil to install assemblies into the
3461 2004-08-12 Havoc Pennington <hp@redhat.com>
3463 * NEWS: update for 0.22
3465 * configure.in: release 0.22
3467 2004-08-11 Colin Walters <walters@redhat.com>
3469 * tools/dbus-send.c (main, usage): Add --reply-timeout
3472 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
3474 * bus/bus.c (process_config_first_time_only): get rid of an unused
3475 DBusError that was causing a memoy leak (bug #989).
3477 * dbus/dbus-keyring.c, dbus/dbus-message.c:
3478 fix compilation on Solaris/Forte C (bug #974)
3480 * bus/main.c (main): plug two minuscule memleaks.
3482 2004-08-10 Havoc Pennington <hp@redhat.com>
3484 * doc/dbus-tutorial.xml: add some more info on GLib bindings
3486 2004-08-09 Havoc Pennington <hp@redhat.com>
3488 * COPYING: switch to Academic Free License version 2.1 instead of
3489 2.0, to resolve complaints about patent termination clause.
3491 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
3493 * README: added documentation for the --enable-python
3496 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3498 * bus/config-parser.c (bus_config_parser_new): fix an invalid
3499 _unref in the SELinux support.
3501 * doc/busconfig.dtd: update DTD for SELinux support.
3503 * bus/config-loader-libxml.c: fix error handler and parser
3504 initialisation/cleanup. OOM test now works with libxml2 HEAD.
3506 * configure.in: remove the warning about libxml2.
3508 * dbus/dbus-bus.c: silence doxygen warning.
3510 2004-07-31 Colin Walters <walters@redhat.com>
3512 * configure.in: Move #error in SELinux check to its own line.
3514 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3516 * dbus/dbus-internals.h (_DBUS_SET_OOM):
3517 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
3520 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
3521 broken by the change in the _SET_OOM macros.
3523 2004-07-31 Colin Walters <walters@redhat.com>
3525 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
3528 2004-07-31 Colin Walters <walters@redhat.com>
3530 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
3531 to correctly detect DBUS__ACQUIRE_SVC. Also add an
3534 2004-07-24 Havoc Pennington <hp@redhat.com>
3536 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3538 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
3541 * configure.in: add --enable-selinux
3543 * bus/policy.c (bus_policy_merge): add FIXME to a comment
3545 * bus/main.c (main): initialize and shut down selinux
3547 * bus/connection.c: store SELinux ID on each connection, to avoid
3548 repeated getting of the string context and converting it into
3551 * bus/bus.c (bus_context_get_policy): new accessor, though it
3553 (bus_context_check_security_policy): check whether the security
3554 context of sender connection can send to the security context of
3555 recipient connection
3557 * bus/config-parser.c: add parsing for <selinux> and <associate>
3559 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
3560 implement dbus_connection_get_unix_fd()
3562 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
3563 function, used by the selinux stuff
3565 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
3567 * bus/config-loader-libxml.c: complete the implementation of
3568 libxml backend for config file loader. Doesn't work with full OOM
3571 * configure.in: change error when selecting libxml into a warning.
3573 * test/data/invalid-config-files: add two non-well-formed XML
3576 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
3578 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
3579 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
3580 be necessary to read all the buffer. (bug #894)
3582 * bus/activation.c (bus_activation_activate_service): fix a
3583 potential assertion failure (bug #896). Small optimization in the
3584 case of auto-activation messages.
3586 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
3587 add test case for byte-through-vararg bug (#901). patch by Kimmo
3590 2004-07-28 Anders Carlsson <andersca@gnome.org>
3593 * python/dbus_bindings.pyx.in:
3594 Add dbus.init_gthreads (), allow emit_signal to pass
3595 arguments to the signal.
3597 2004-07-24 Havoc Pennington <hp@redhat.com>
3599 * AUTHORS: add some people, not really comprehensively, let me
3600 know if I missed you
3602 2004-07-24 Havoc Pennington <hp@redhat.com>
3604 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
3607 * test/Makefile.am (DIST_SUBDIRS): here also
3609 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3611 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
3612 breaking build on Solaris, reported by Farhad Saberi on the ML.
3614 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
3615 va_arg invocation to account for integer promotion in the case of
3616 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
3618 * bus/services.c (bus_service_remove_owner): fix bug #902, use
3619 _dbus_list_get_first_link, not _dbus_list_get_first.
3621 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
3623 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
3624 handler functions so that the asserts in _dbus_object_subtree_unref
3627 * dbus/dbus-transport-unix.c (do_reading):
3628 _dbus_transport_queue_messages return value is of type
3629 dbus_bool_t, not DBusDispatchStatus.
3631 2004-07-19 David Zeuthen <david@fubar.dk>
3633 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
3636 (check_get_connection_unix_user): Debug says GetProperty; but the
3637 method is called GetConnectionUnixUser
3638 (check_get_connection_unix_process_id): New function
3639 (bus_dispatch_test): Actually call check_get_connection_unix_user();
3640 also call check_get_connection_unix_process_id()
3643 (bus_driver_handle_get_connection_unix_process_id): New function,
3644 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
3648 (handle_server_data_external_mech): Set pid from the credentials
3649 obtained from the socket
3651 * dbus/dbus-connection.c:
3652 (dbus_connection_get_unix_process_id): New function
3654 * dbus/dbus-connection.h:
3655 Add prototype for dbus_connection_get_unix_process_id
3657 * dbus/dbus-transport.c:
3658 (_dbus_transport_get_unix_process_id): New function
3660 * dbus/dbus-transport.h:
3661 Add prototype for _dbus_transport_get_unix_process_id
3663 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
3665 * dbus/dbus-message.c: Message counter fix, patch by Christian
3666 Hammond <chipx86@gnupdate.org>
3668 2004-07-18 Seth Nickell <seth@gnome.org>
3671 * python/dbus_bindings.pyx.in:
3672 * python/tests/test-client.py:
3674 Add dbus.ByteArray and dbus_bindings.ByteArray
3675 types so that byte streams can be passed back.
3677 Give jdahlin the heaps of credit that are so
3680 2004-07-12 Seth Nickell <seth@gnome.org>
3684 Add message argument to the default object_method_handler
3687 * python/dbus_bindings.pyx.in:
3689 Automatically return NIL when passed an empty list
3690 (we can't pass back a list since lists are typed
3691 and we don't have any idea what type the the client
3692 intended the list to be... :-( )
3694 2004-07-10 Seth Nickell <seth@gnome.org>
3696 * python/examples/Makefile.am:
3698 Fix distcheck breakage caused by new examples.
3700 2004-07-10 Seth Nickell <seth@gnome.org>
3704 Add "message" argument to service-side dbus.Object
3705 methods. This will break existing services written
3706 using the python bindings, but will allow extraction
3707 of all the message information (e.g. who its from).
3709 Add improved "object oriented" signal handling/emission.
3711 * python/examples/example-service.py:
3715 * python/examples/example-signal-emitter.py:
3716 * python/examples/example-signal-recipient.py:
3718 Two new examples that show how to emit and receive
3719 signals using the new APIs.
3721 * python/examples/example-signals.py:
3722 * python/examples/gconf-proxy-service.py:
3723 * python/examples/gconf-proxy-service2.py:
3725 Add "message" argument to service methods.
3727 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
3729 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
3730 * dbus/bus.c (dbus_bus_get_unix_user)
3731 * doc/dbus-specification.xml: implement GetConnectionUnixUser
3732 method of org.freedesktop.DBus interface.
3734 * bus/dispatch.c: test case
3736 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
3738 * python/Makefile.am: switched include directory from glib/ to dbus/
3739 since dbus-glib.h moved
3741 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3743 * configure.in: prevent building the gcj stuff and libxml loader
3744 since they are broken.
3746 2004-06-20 Havoc Pennington <hp@redhat.com>
3748 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
3749 codes from the dbus error names
3751 * glib/dbus-glib.h: move to subdir dbus/ since it's included
3752 as dbus/dbus-glib.h and that breakage is now visible due to
3753 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
3755 * glib/dbus-glib.h: s/gproxy/g_proxy/
3757 * dbus/dbus-shared.h: new header to hold stuff shared with
3760 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
3763 * glib/dbus-glib.h (dbus_set_g_error): move to
3764 dbus-glib-lowlevel.h
3766 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
3767 of stuff to enable this
3769 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
3771 * a bunch of other changes with the same basic "separate glib
3772 bindings from dbus.h" theme
3774 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
3776 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
3778 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
3780 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3782 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
3783 the reply value of the ServiceExists message.
3785 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
3787 * python/dbus_bindings.pyx.in: No longer need to parse path
3788 elements and pass them as arrays of strings. The C API now
3789 accepts plain path strings.
3790 (_build_parsed_path): removed
3792 2004-06-07 Havoc Pennington <hp@redhat.com>
3794 * doc/TODO: remove auto-activation item since it's done; sort
3795 items by importance/milestone
3797 2004-06-07 Havoc Pennington <hp@redhat.com>
3799 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
3800 random signature when using REQUIRED_FIELDS (this hack won't work
3803 * dbus/dbus-message.c: change the signature to be a header field,
3804 instead of message->signature special-case string. Incremental
3805 step forward. Then we can fix up code to send the signature in the
3806 message, then fix up code to validate said signature, then fix up
3807 code to not put the typecodes inline, etc.
3808 (load_one_message): don't make up the signature after the fact
3809 (decode_header_data): require signature field for the known
3812 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
3814 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
3816 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
3818 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
3820 * mono/Handler.cs: Updated to follow new path argument for
3821 (un-)registering objects.
3823 * mono/example/Makefile.am:
3825 * configure.in: Bumped required version for mono and use new -pkg
3828 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3830 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
3831 registration functions take the path argument as char* instead of
3834 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
3835 split off the path decompostion part of
3836 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
3839 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
3841 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3843 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
3844 machine approach. A state is implemented as a function that
3845 handles incoming events as specified for that state.
3847 * doc/dbus-specification.xml: Update auth protocol state machine
3848 specification to match implementation. Remove some leftover
3851 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3853 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
3854 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
3857 * Doxyfile.in: remove deprecated options.
3859 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
3860 glib/test-thread.h, glib/test-thread-client.c,
3861 glib/test-thread-server.c, glib/test-profile.c,
3862 glib/test-dbus-glib.c: remove these unused files.
3864 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
3866 * dbus/dbus-object-tree.c
3867 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
3868 non-fallback handlers (bug #684).
3869 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
3870 (find_subtree_recurse): report wether the returned subtree is an
3871 exact match or a "fallback" match higher up in the tree.
3872 (object_tree_test_iteration): update test case.
3874 2004-06-01 Seth Nickell <seth@gnome.org>
3876 * python/dbus_bindings.pyx.in:
3877 * python/tests/test-client.py:
3879 Round off basic type support. Add dicts (yay!), and
3880 remaining array types.
3882 Make MessageIter more general so it works for dicts too.
3884 Mark all loop variables as C integers.
3886 2004-05-31 Havoc Pennington <hp@redhat.com>
3888 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
3891 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
3893 * glib/dbus-glib-tool.c (main): set up to have a --self-test
3894 option that runs the tests, and start filling in some code
3895 including for starters just dumping the interfaces to stdout
3897 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
3899 * test/data/valid-introspection-files/lots-of-types.xml: test of
3900 an example introspection file
3902 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
3905 2004-05-31 Seth Nickell <seth@gnome.org>
3907 * python/dbus_bindings.pyx.in:
3908 * python/tests/test-client.py:
3913 Fix string array memory trashing bug... oops...
3915 2004-05-30 Seth Nickell <seth@gnome.org>
3919 Add a nicer-but-less-flexible alternate API for handling
3920 calls to virtual objects in dbus.ObjectTree.
3922 Screw up the argument order to the dbus.Object constructor
3923 for consistency with dbus.ObjectTree (and to make dbus_methods
3924 optional for future extension)
3926 * python/examples/Makefile.am:
3927 * python/examples/gconf-proxy-service.py:
3928 * python/examples/gconf-proxy-service2.py:
3930 Alternate implementation of gconf-proxy-service using the
3931 nicer dbus.ObjectTree API.
3933 * python/examples/example-service.py:
3934 * python/tests/test-server.py
3936 Reverse the argument order to deal with dbus.Object constructor
3939 2004-05-30 Seth Nickell <seth@gnome.org>
3941 * python/examples/example-client.py:
3942 * python/examples/example-service.py:
3944 Take it back. Lists seem to work but they're broken
3945 in the test suite. Make the base examples use
3948 2004-05-30 Seth Nickell <seth@gnome.org>
3950 * python/dbus_bindings.pyx.in:
3951 * python/tests/test-client.py:
3953 Add some more tests and fix errors that crop up.
3954 Unfortunately, currently it seems like marshalling
3955 and unmarshalling of lists is completely broken :-(
3957 2004-05-30 Seth Nickell <seth@gnome.org>
3959 * python/dbus_bindings.pyx.in:
3961 Add support for ObjectPath type.
3965 Refactor message handling code to a common function.
3967 * python/tests/test-client.py:
3968 * python/tests/test-server.py:
3970 Add tests that check to make sure values of all types
3971 can be echoed from a service w/o mangling.
3973 2004-05-29 Seth Nickell <seth@gnome.org>
3977 Add ObjectTree class which allows implementation
3978 of trees of "virtual" objects. Basically the python
3979 wrapper for "register_fallback".
3981 * python/examples/Makefile.am
3982 * python/examples/gconf-proxy-client.py:
3983 * python/examples/gconf-proxy-service.py:
3985 Implement a simple GConf proxy service that supports
3986 get/set on string and int GConf keys using the ObjectTree.
3988 2004-05-29 Seth Nickell <seth@gnome.org>
3991 * python/examples/example-client.py:
3992 * python/examples/example-service.py:
3993 * python/examples/list-system-services.py:
3995 Add SessionBus, SystemBus and ActivationBus classes
3996 so you don't need to know the special little BUS_TYPE
3999 2004-05-29 Havoc Pennington <hp@redhat.com>
4001 * bus/config-parser.c (process_test_valid_subdir): temporarily
4002 stop testing config parser OOM handling, since expat has issues
4003 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4005 * bus/dbus-daemon-1.1.in: change requested_reply to
4006 send_requested_reply/receive_requested_reply so we can send the
4007 replies, not just receive them.
4009 * bus/config-parser.c: parse the new
4010 send_requested_reply/receive_requested_reply
4012 * bus/policy.c (bus_client_policy_check_can_send): add
4013 requested_reply argument and use it
4015 * bus/bus.c (bus_context_check_security_policy): pass through
4016 requested_reply status to message send check
4018 * bus/system.conf.in: adapt to requested_reply change
4020 2004-05-28 Havoc Pennington <hp@redhat.com>
4022 * test/glib/test-service-glib.c (main): remove unused variable
4024 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4026 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4027 from the enum, no longer in use.
4029 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4032 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4033 whether error_name passed in is a valid error name.
4035 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4037 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4038 OBJECT_PATH and OBJECT_PATH_ARRAY
4040 2004-05-28 Seth Nickell <seth@gnome.org>
4042 * python/examples/Makefile.am:
4044 Forget to add Makefile.am. Do not pass go.
4046 2004-05-28 Michael Meeks <michael@ximian.com>
4048 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4051 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4053 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4054 (_dbus_message_iter_get_basic_type_array): impl.
4055 drastically simplify ~all relevant _get methods to use these.
4056 (_dbus_message_iter_append_basic_array),
4057 (dbus_message_iter_append_basic): impl
4058 drastically simplify ~all relevant _append methods to use these.
4060 * dbus/dbus-message-builder.c (parse_basic_type)
4061 (parse_basic_array, lookup_basic_type): impl.
4062 (_dbus_message_data_load): prune scads of duplicate /
4065 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4066 (_dbus_demarshal_basic_type): implement,
4067 (demarshal_and_validate_len/arg): beef up debug.
4068 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4070 2004-05-27 Seth Nickell <seth@gnome.org>
4073 * python/Makefile.am:
4075 Include the example python apps in the tarball.
4077 * python/examples/list-system-services.py
4079 Add a python new example that fetches the list of services
4080 from the system bus.
4082 2004-05-27 Seth Nickell <seth@gnome.org>
4085 * python/dbus_bindings.pyx.in:
4087 Fix failure to notify that a signal was not handled,
4088 resulted in hung functions.
4090 2004-05-25 Colin Walters <walters@redhat.com>
4092 * tools/dbus-monitor.c (main): Monitor all types of messages.
4094 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
4096 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4097 which unregisters the object path and disposes the handler.
4099 2004-05-23 Kristian Høgsberg <krh@redhat.com>
4101 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4103 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4104 operands to && so we call dbus_message_iter_next () for the last
4107 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4109 * dbus/dbus-object-tree.c
4110 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4111 children even if the requested path isn't registered.
4112 (object_tree_test_iteration): test object_tree_list_registered.
4114 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4117 2004-05-20 Kristian Høgsberg <krh@redhat.com>
4119 * doc/TODO: Remove resolved items.
4121 * bus/expirelist.h (struct BusExpireList): remove unused n_items
4124 * bus/connection.c (bus_connections_expect_reply): Enforce the
4125 per-connection limit on pending replies.
4127 Patch from Jon Trowbridge <trow@ximian.com>:
4129 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
4130 up a watch that triggers a config reload when one end of the pipe
4132 (signal_handler): Instead of doing the config reload in our SIGHUP
4133 handler, just write to the reload pipe and let the associated
4134 watch handle the reload when control returns to the main loop.
4136 * bus/driver.c (bus_driver_handle_reload_config): Added.
4137 Implements a ReloadConfig method for requesting a configuration
4138 file reload via the bus driver.
4140 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
4142 * HACKING: Updated release instructions concerning the wiki page.
4144 2004-05-18 Kristian Høgsberg <krh@redhat.com>
4146 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
4147 filter against auth->allowed_mechs; we only add allowed mechs in
4148 record_mechanisms().
4150 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
4151 ALLOWED_MECHS to auth-script format so we can set the list of
4154 * data/auth/client-out-of-mechanisms.auth-script: New test to
4155 check client disconnects when it is out of mechanisms to try.
4157 * dbus/dbus-auth.c (process_command): Remove check for lines
4158 longer that 1 MB; we only buffer up maximum 16 kB.
4160 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4161 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
4162 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
4163 assume there might be unused bytes.
4165 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
4166 client-out-of-mechs, it is handled in process_reject(). Move check
4167 for max failures to send_rejected(), as it's a server-only thing.
4169 * dbus/dbus-auth.c: Factor out protocol reply code into functions
4170 send_auth(), send_data(), send_rejected(), send_error(),
4171 send_ok(), send_begin() and send_cancel().
4173 2004-05-17 Kristian Høgsberg <krh@redhat.com>
4175 Remove base64 encoding, replace with hex encoding. Original patch
4176 from trow@ximian.com, added error handling.
4178 * dbus/dbus-string.c (_dbus_string_base64_encode)
4179 (_dbus_string_base64_decode): Remove.
4180 (_dbus_string_hex_decode): Add end_return argument so we can
4181 distinguish between OOM and invalid hex encoding.
4182 (_dbus_string_test): Remove base64 tests and add test case for
4185 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4186 Replace base64 with hex.
4188 * test/data/auth/invalid-hex-encoding.auth-script: New test case
4189 for invalid hex encoded data in auth protocol.
4191 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4193 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4196 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4198 * mono/dbus-sharp.dll.config.in: Added for GAC
4199 * mono/dbus-sharp.snk: Added for GAC
4200 * mono/Assembly.cs.in: Added for GAC
4201 * mono/Makefile.am: Changes for GAC installation
4202 * configure.in: Added refs for dbus-sharp.dll.config.in and
4203 Assembly.cs.in. More fixes for mono testing
4204 * mono/example/Makefile.am: Changed var to CSC
4205 * Makefile.am: Changed flag name to DBUS_USE_CSC
4207 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4209 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4210 * mono/doc/*: Added documentation framework
4211 * configure.in: Added monodoc check
4212 * README: Added description of mono configure flags
4214 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
4216 * doc/dbus-specification.xml: Added a "Required" column to the
4217 header fields table and changed the "zero or more" verbage in
4218 the above paragraph to read "The header must contain the required
4219 named header fields and zero or more of the optional named header
4221 * test/data/invalid-messages/*.message: Added the required PATH
4222 named header field to the tests so that they don't fail on
4223 'Missing path field'
4225 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
4227 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4228 the stack by implicitly defining variable and parameter types and
4229 removing the hack of defining C pointers as python objects and later
4232 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
4234 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
4236 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
4238 * mono/DBusType/Dict.cs: Handle empty dicts
4239 * mono/DBusType/Array.cs: Handle empty arrays
4240 * mono/Arguments.cs: Handle empty arguments
4242 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
4244 * dbus-sharp.pc.in: Modified to include include Libs and Requires
4247 2004-04-25 Kristian Høgsberg <krh@redhat.com>
4249 * test/data/valid-messages/standard-*.message: Update message
4250 test scripts to new header field names.
4252 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
4254 * test/break-loader.c (randomly_do_n_things): tracked down buffer
4255 overflow to times_we_did_each_thing array which would chop off the
4256 first character of the failure_dir string. Increased the size of
4257 the array to 7 to reflect the number of random mutation functions
4260 2004-04-21 Kristian Høgsberg <krh@redhat.com>
4262 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
4263 unix_server->watch here, it is unreffed in disconnect.
4264 (_dbus_server_new_for_tcp_socket): convert NULL host to
4265 "localhost" here so we don't append NULL to address.
4267 * dbus/dbus-server.c (_dbus_server_test): Add test case for
4268 various addresses, including tcp with no explicit host.
4270 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4272 * dbus/dbus-message.c (decode_header_data, decode_string_field):
4273 fix incorrect setting of .name_offset in the HeaderField (it was
4274 off by two bytes, positioned right after the name and typecode)
4276 * bus/bus.c (bus_context_new, bus_context_unref): test before
4277 calling dbus_server_free_data_slot and _dbus_user_database_unref
4278 in case of an error.
4280 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
4283 2004-04-19 Kristian Høgsberg <krh@redhat.com>
4285 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
4286 _dbus_poll() instead of select().
4288 2004-04-15 Jon Trowbridge <trow@ximian.com>
4290 * bus/main.c (signal_handler): Reload the configuration files
4292 (main): Set up our SIGHUP handler.
4294 * bus/bus.c (struct BusContext): Store the config file, user and
4295 fork flag in the BusContext.
4296 (process_config_first_time_only): Added. Contains the code
4297 (previously in bus_context_new) for setting up the BusContext from
4298 the BusConfigParser that should only be run the first time the
4299 config files are read.
4300 (process_config_every_time): Added. Contains the code (previously
4301 in bus_context_new) for setting up the BusContext from the
4302 BusConfigParser that should be run every time the config files are
4304 (load_config): Added. Builds a BusConfigParser from the config
4305 files and passes the resulting structure off to
4306 process_config_first_time_only (assuming this is the first time)
4307 and process_config_every_time.
4308 (bus_context_new): All of the config-related code has been moved
4309 to process_config_first_time_only and process_config_every_time.
4310 Now this function just does the non-config-related initializations
4311 and calls load_config.
4312 (bus_context_reload_config): Added.
4314 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
4316 * bus/driver.c (bus_driver_handle_get_service_owner):
4317 implement a GetServiceOwner method.
4318 * doc/dbus-specification.xml: document it.
4319 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
4321 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
4322 implement, using the bus GetServiceOwner method.
4324 * test/glib/test-dbus-glib.c:
4325 use dbus_gproxy_new_for_service_owner so that we can receive the
4328 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
4330 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4331 dbus/dbus-message.c, dbus/dbus-protocol.h
4332 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
4334 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4335 dbus/dbus-message.c, dbus/dbus-protocol.h
4336 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
4338 * dbus/dbus-internals.c (_dbus_header_field_to_string):
4339 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
4340 DBUS_HEADER_FIELD_SENDER resolves to "sender"
4342 * doc/dbus-specification.xml (Header Fields Table):
4343 s/SERVICE/DESTINATION
4344 s/SENDER_SERVICE/SENDER
4347 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
4349 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
4352 2004-04-13 Michael Meeks <michael@ximian.com>
4354 * glib/dbus-gobject.c (handle_introspect): split out
4355 (introspect_properties): this.
4356 (handle_introspect): implement this.
4358 * test/glib/Makefile.am: use the absolute path so the bus
4359 daemon's chdir ("/") doesn't kill us dead.
4361 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
4363 2004-04-12 Jon Trowbridge <trow@ximian.com>
4365 * bus/config-parser.c (struct BusConfigParser): Added
4366 included_files field.
4367 (seen_include): Added. Checks whether or not a file has already
4368 been included by any parent BusConfigParser.
4369 (bus_config_parser_new): Copy the parent's included_files.
4370 (include_file): Track which files have been included, and fail on
4371 circular inclusions.
4372 (process_test_valid_subdir): Changed printf to report if we are
4373 testing valid or invalid conf files.
4374 (all_are_equiv): Changed printf to be a bit clearer about
4375 what we are actually doing.
4376 (bus_config_parser_test): Test invalid configuration files.
4378 2004-04-09 Jon Trowbridge <trow@ximian.com>
4380 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
4381 argument. If non-null, the newly-constructed BusConfigParser will
4382 be initialized with the parent's BusLimits instead of the default
4384 (include_file): When including a config file, pass in
4385 the current parser as the parent and then copy the BusLimits
4386 from the included BusConfigParser pack to the current parser.
4387 (process_test_valid_subdir): Renamed from process_test_subdir.
4388 (process_test_equiv_subdir): Added. Walks through a directory,
4389 descending into each subdirectory and loading the config files
4390 it finds there. If any subdirectory contains two config files
4391 that don't produce identical BusConfigParser structs, fail.
4392 For now, the BusConfigParser's BusPolicies are not compared.
4393 (bus_config_parser_test): Call both process_test_valid_subdir and
4394 process_test_equiv_subdir.
4396 * bus/config-loader-libxml.c (bus_config_load): Take a parent
4397 argument and pass it along to the call to bus_config_parser_new.
4398 Also made a few small changes to allow this code to compile.
4400 * bus/config-loader-expat.c (bus_config_load): Take a parent
4401 argument and pass it along to the call to bus_config_parser_new.
4403 * bus/bus.c (bus_context_new): Load the config file
4404 with a NULL parent argument.
4406 2004-03-29 Michael Meeks <michael@ximian.com>
4408 * glib/dbus-gobject.c (introspect_properties): split
4409 out, fix mangled 'while' flow control.
4410 (introspect_signals): implement.
4411 (handle_introspect): update.
4413 2004-03-29 Michael Meeks <michael@ximian.com>
4415 * glib/dbus-gobject.c (set_object_property): split out /
4416 re-work, use the property type, and not the message type(!)
4417 (get_object_property): ditto.
4419 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
4420 (dbus_gvalue_marshal): make this code re-usable, needed
4421 for signals too, also on both proxy and server side.
4422 Re-write for more efficiency / readability.
4424 2004-03-29 Michael Meeks <michael@ximian.com>
4426 * dbus/dbus-message.c
4427 (dbus_message_new_error_printf): impl.
4429 * dbus/dbus-connection.c
4430 (dbus_connection_unregister_object_path): fix warning.
4432 * configure.in: fix no-mono-installed situation.
4434 2004-03-27 Havoc Pennington <hp@redhat.com>
4436 Patch from Timo Teräs:
4438 * tools/dbus-send.c (main): if --print-reply, assume type is
4439 method call; support boolean type args
4441 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
4442 bunch of memleak and logic bugs
4444 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4446 * mono/Arguments.cs:
4447 * mono/Introspector.cs:
4449 * mono/InterfaceProxy.cs:
4451 * mono/ProxyBuilder.cs:
4453 Added InterfaceProxy class to avoid building proxies for every
4457 * dbus-message.c (dbus_message_append_args_valist)
4458 (dbus_message_iter_get_object_path)
4459 (dbus_message_iter_get_object_path_array)
4460 (dbus_message_iter_append_object_path)
4461 (dbus_message_iter_append_object_path_array):
4462 Added object_path iter functions to handle OBJECT_PATH arguments
4464 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4466 First checkin of mono bindings.
4469 Build stuff for the bindings
4470 * dbus-sharp.pc.in: Added for pkgconfig
4472 2004-03-21 Havoc Pennington <hp@redhat.com>
4474 * test/test-service.c (main): remove debug spew
4476 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4478 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
4481 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
4482 (dbus_message_iter_init_array_iterator)
4483 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
4484 indicate whether the iterator is empty
4486 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
4489 2004-03-19 Havoc Pennington <hp@redhat.com>
4491 * NEWS: 0.21 updates
4493 * configure.in: 0.21
4495 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
4497 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
4498 you don't need pyrex to make dist
4500 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
4503 2004-03-18 Richard Hult <richard@imendio.com>
4505 * dbus/dbus-message.c (dbus_message_get_auto_activation)
4506 (dbus_message_set_auto_activation): Add doxygen docs.
4508 2004-03-16 Richard Hult <richard@imendio.com>
4510 * bus/activation.c: (bus_activation_service_created),
4511 (bus_activation_send_pending_auto_activation_messages),
4512 (bus_activation_activate_service):
4514 * bus/dispatch.c: (bus_dispatch),
4515 (check_nonexistent_service_auto_activation),
4516 (check_service_auto_activated),
4517 (check_segfault_service_auto_activation),
4518 (check_existent_service_auto_activation), (bus_dispatch_test):
4519 * bus/driver.c: (bus_driver_handle_activate_service):
4520 * bus/services.c: (bus_registry_acquire_service):
4521 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
4522 (dbus_message_get_auto_activation):
4523 * dbus/dbus-message.h:
4524 * dbus/dbus-protocol.h: Implement auto-activation.
4526 * doc/dbus-specification.xml: Add auto-activation to the spec.
4528 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
4530 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
4531 fix a bug with CUSTOM types.
4533 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
4534 a unit test for this bug (used to fail).
4536 2004-03-12 Mikael Hallendal <micke@imendio.com>
4539 (babysitter_watch_callback): notify all pending activations waiting for
4540 the same exec that the activation failed.
4541 (bus_activation_activate_service): shortcut the activation if we
4542 already waiting for the same executable to start up.
4544 2004-03-12 Mikael Hallendal <micke@imendio.com>
4547 - Added service file reloading.
4548 Each service files directory is kept in an hash table in
4549 BusActivation and each BusActivationEntry knows what .service-file it
4550 was read from. So when you try to activate a service the bus will
4551 check if it's been updated, removed or if new .service-files has
4553 - Test code at the bottom for the service file reloading.
4554 * bus/test-main.c: (main):
4556 - added service reloading test.
4557 * dbus/dbus-sysdeps.c:
4558 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
4560 2004-03-08 Michael Meeks <michael@ximian.com>
4562 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
4563 bail immediately if disconnected, to avoid busy loop.
4565 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
4566 cleanup cut/paste/inefficiency.
4568 2004-03-01 David Zeuthen <david@fubar.dk>
4570 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
4571 bug where args were used twice. This bug resulted in a segfault
4572 on a Debian/PPC system when starting the messagebus daemon. Include
4573 dbus-sysdeps.h for DBUS_VA_COPY
4575 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
4577 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
4578 appropriate va_copy implementation. From GLib
4580 2004-02-24 Joe Shaw <joe@ximian.com>
4582 * bus/services.c (bus_registry_acquire_service): We need to pass
4583 in the service name to dbus_set_error() to prevent a crash.
4585 2003-12-26 Anders Carlsson <andersca@gnome.org>
4587 * AUTHORS: Reveal my True identity.
4589 2003-12-17 Mikael Hallendal <micke@imendio.com>
4591 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4592 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
4594 2003-12-13 Mikael Hallendal <micke@imendio.com>
4596 * doc/TODO: Added not about better error check of configuration files.
4598 2003-12-02 Richard Hult <richard@imendio.com>
4600 * Update AFL version to 2.0 throughout the source files to reflect
4601 the update that was done a while ago.
4603 2003-12-02 Richard Hult <richard@imendio.com>
4605 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
4606 wrote_dict_key to FALSE on the iter that the dict is appended to,
4607 just like when appending other types. Fixes a bug where a dict
4608 couldn't be put inside a dict.
4609 (dbus_message_iter_append_dict_key): Fix typo in warning message.
4610 (message_iter_test, _dbus_message_test): Add test case for dict
4613 2003-12-01 David Zeuthen <david@fubar.dk>
4615 * python/dbus.py: Add the actual message when calling the reciever
4616 of a signal such that parameters can be inspected. Add the method
4617 remove_signal_receiver
4619 2003-11-26 Mikael Hallendal <micke@imendio.com>
4623 * glib/*.[ch]: Made ref functions return the pointer
4625 2003-11-25 Zack Rusin <zack@kde.org>
4627 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
4629 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
4632 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
4633 the Integrator and to better fit with the server,
4635 2003-11-24 Zack Rusin <zack@kde.org>
4637 * qt/connection.h, qt/connection.cpp: removing initDbus method since
4638 the integrator handles it now
4640 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
4641 since QTimer wasn't really meant to be used the way DBusTimeout is
4643 2003-11-24 Zack Rusin <zack@kde.org>
4645 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
4646 Integrator class which integrates D-BUS with the Qt event loop,
4648 * qt/connection.h, qt/connection.cpp: Move all the code which
4649 was dealing with D-BUS integration to the Integrator class,
4650 and start using Integrator,
4652 2003-11-23 Zack Rusin <zack@kde.org>
4654 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
4657 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
4658 switching namespaces to DBusQt, reworking the class,
4660 * Makefile.cvs: switching dependencies so that it matches KDE
4663 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
4666 2003-11-19 Havoc Pennington <hp@redhat.com>
4670 * configure.in: bump version to 0.20
4672 * configure.in (have_qt): add yet another place to look for qt
4673 (someone hand trolltech a .pc file...)
4675 2003-11-01 Havoc Pennington <hp@redhat.com>
4677 * doc/dbus-specification.xml: add state machine docs on the auth
4678 protocol; just a first draft, I'm sure it's wrong.
4680 2003-10-28 David Zeuthen <david@fubar.dk>
4682 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
4683 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
4685 2003-10-28 Havoc Pennington <hp@redhat.com>
4687 * dbus/dbus-message.c (get_next_field): delete unused function
4689 2003-10-28 Havoc Pennington <hp@redhat.com>
4691 * bus/expirelist.c (do_expiration_with_current_time): detect
4692 failure of the expire_func due to OOM
4694 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
4696 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
4697 NoReply error that's now created by the bus when the service exits
4699 2003-10-28 Havoc Pennington <hp@redhat.com>
4701 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
4702 tests for set_path, set_interface, set_member, etc.
4704 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
4706 * dbus/dbus-message.c (set_string_field): always just delete and
4707 re-append the field; accept NULL for deletion
4708 (re_align_fields_recurse): reimplement
4710 2003-10-26 Havoc Pennington <hp@redhat.com>
4712 * dbus/dbus-connection.c: fix docs to properly describe the
4713 disconnected message
4714 (_dbus_connection_notify_disconnected): remove this function;
4715 we can't synchronously add the disconnected message, we have to
4716 do it after we've queued any remaining real messages
4717 (_dbus_connection_get_dispatch_status_unlocked): queue the
4718 disconnect message only if the transport has finished queueing all
4719 its real messages and is disconnected.
4720 (dbus_connection_disconnect): update the dispatch status here
4722 2003-10-22 Havoc Pennington <hp@redhat.com>
4724 * bus/bus.c (bus_context_check_security_policy): fix up assertion
4726 * bus/connection.c (bus_transaction_send_from_driver): set the
4727 destination to the connection's base service
4729 2003-10-20 Havoc Pennington <hp@redhat.com>
4731 hmm, make check is currently not passing.
4733 * doc/dbus-specification.xml: add requirement that custom type
4734 names follow the same rules as interface names.
4736 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
4737 duplication and allow 'c' to be 'custom'; dict is now 'm' for
4740 * doc/dbus-specification.xml: update type codes to match
4741 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
4742 CUSTOM. Add type OBJECT_PATH to the spec.
4744 2003-10-17 Havoc Pennington <hp@redhat.com>
4746 * bus/driver.c (create_unique_client_name): use "." as separator
4747 in base service names instead of '-'
4749 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
4750 byte at the end of the string
4752 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
4753 optimization macros since string validation seems to be a slow
4756 * doc/dbus-specification.xml: restrict valid
4757 service/interface/member/error names. Add test suite code for the
4760 * dbus/dbus-string.c: limit service/interface/member/error names
4763 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
4764 format arg to verbose spew
4766 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
4767 memory, return instead of g_error
4769 * test/test-service.c (path_message_func): support emitting a
4772 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
4773 activation bus type if DBUS_BUS_ACTIVATION was set; default to
4774 assuming the activation bus was the session bus so that services
4775 started manually will still register.
4776 (init_connections_unlocked): fix so that in OOM situation we get
4777 the same semantics when retrying the function
4779 * test/test-service.c (main): change to use path registration, to
4780 test those codepaths; register with DBUS_BUS_ACTIVATION rather
4781 than DBUS_BUS_SESSION
4783 2003-10-16 Havoc Pennington <hp@redhat.com>
4785 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
4787 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
4788 coverage of the tests
4789 (coverage-report.txt): don't move the .da and .bbg files around
4791 2003-10-16 Havoc Pennington <hp@redhat.com>
4793 * bus/bus.c (struct BusContext): remove struct field I didn't mean
4796 2003-10-16 Havoc Pennington <hp@redhat.com>
4798 * bus/connection.c (bus_pending_reply_expired): either cancel or
4800 (bus_connections_check_reply): use unlink, not remove_link, as we
4801 don't want to free the link; fixes double free mess
4803 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
4804 where no reply was received
4806 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
4809 * bus/signals.c (match_rule_matches): add special cases for the
4810 bus driver, so you can match on sender/destination for it.
4812 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
4813 DBUS_PRINT_BACKTRACE is set
4815 * dbus/dbus-internals.c: add pid to assertion failure messages
4817 * dbus/dbus-connection.c: add message type code to the debug spew
4819 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
4820 sender=foo not service=foo
4822 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
4823 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
4824 DBUS_ACTIVATION_ADDRESS instead
4826 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
4827 DBUS_SYSTEM_BUS_ADDRESS if appropriate
4829 * bus/bus.c (bus_context_new): handle OOM copying bus type into
4832 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
4833 (dbus_message_iter_get_object_path_array): new function (half
4834 finished, disabled for the moment)
4836 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
4837 DBUS_MESSAGE_TYPE_ERROR
4839 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
4840 avoid redirecting stderr to /dev/null
4841 (babysit): close stdin if not doing the "exit_with_session" thing
4843 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
4844 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
4845 stdout/stdin, so things don't get confused
4847 * bus/system.conf.in: fix to allow replies, I modified .conf
4848 instead of .conf.in again.
4850 2003-10-14 David Zeuthen <david@fubar.dk>
4852 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
4853 argtype to arg_type when raising unknown arg type exception.
4854 Changed type list to reflect the changes in dbus-protocol.h so
4855 the bindings actually work.
4857 2003-10-14 Havoc Pennington <hp@redhat.com>
4859 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
4860 to have a bug keeping it from outputting the .da files sometimes
4861 (string_get_string): don't append garbage nul bytes to the string.
4863 2003-10-15 Seth Nickell <seth@gnome.org>
4865 * python/Makefile.am:
4867 Include dbus_h_wrapper.h in the dist tarball.
4869 2003-10-14 Havoc Pennington <hp@redhat.com>
4871 * bus/bus.c (bus_context_check_security_policy): revamp this to
4872 work more sanely with new policy-based requested reply setup
4874 * bus/connection.c (bus_transaction_send_from_driver): set bus
4875 driver messages as no reply
4877 * bus/policy.c (bus_client_policy_check_can_receive): handle a
4878 requested_reply attribute on allow/deny rules
4880 * bus/system.conf: add <allow requested_reply="true"/>
4882 * bus/driver.c (bus_driver_handle_message): fix check for replies
4883 sent to the bus driver, which was backward. How did this ever work
4884 at all though? I think I'm missing something.
4886 * dbus/dbus-message.c (decode_header_data): require error and
4887 method return messages to have a reply serial field to be valid
4888 (_dbus_message_loader_queue_messages): break up this function;
4889 validate that reply serial and plain serial are nonzero;
4890 clean up the OOM/error handling.
4891 (get_uint_field): don't return -1 from this
4892 (dbus_message_create_header): fix signed/unsigned bug
4894 * bus/connection.c (bus_connections_expect_reply): save serial of
4895 the incoming message, not reply serial
4897 2003-10-14 Havoc Pennington <hp@redhat.com>
4899 * bus/connection.c: implement pending reply tracking using
4902 * bus/bus.c (bus_context_check_security_policy): verify that a
4903 reply is pending in order to allow a reply to be sent. Deny
4904 messages of unknown type.
4906 * bus/dbus-daemon-1.1.in: update to mention new resource limits
4908 * bus/bus.c (bus_context_get_max_replies_per_connection): new
4909 (bus_context_get_reply_timeout): new
4911 2003-10-13 Seth Nickell <seth@gnome.org>
4913 * python/Makefile.am:
4915 Pass "make distcheck": remove a couple files from DIST_FILES
4916 that weren't included in the final version.
4918 2003-10-12 Havoc Pennington <hp@pobox.com>
4920 Added test code that 1) starts an actual bus daemon and 2) uses
4921 DBusGProxy; fixed bugs that were revealed by the test. Lots
4922 more testing possible, but this is the basic framework.
4924 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
4925 empty proxy lists from the proxy list hash
4927 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
4928 couple of return_if_fail checks
4930 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
4931 to allocate, so everything is cleared to NULL as it should be.
4933 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
4934 source as data to dbus_connection_set_timeout_functions() as the
4935 timeout functions expected
4937 * test/glib/run-test.sh: add a little script to start up a message
4938 bus and run tests using it
4940 * tools/dbus-launch.1: updates
4942 * tools/dbus-launch.c (main): add --config-file option
4944 * tools/dbus-launch.c (main): remove confusing else if (runprog)
4945 that could never be reached.
4947 * dbus/dbus-message.c (dbus_message_new_method_return)
4948 (dbus_message_new_error, dbus_message_new_signal): set the
4949 no-reply-expected flag on all these. Redundant, but may
4950 as well be consistent.
4952 2003-10-11 Havoc Pennington <hp@pobox.com>
4954 * test/decode-gcov.c (function_solve_graph): make broken block
4955 graph a nonfatal error since it seems to be broken. Need to debug
4958 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
4959 can't just check type > INVALID < LAST anymore
4961 * dbus/dbus-message.c (dbus_message_get_signature): new function
4962 (dbus_message_has_signature): new function
4963 (struct DBusMessage): add signature field (right now it isn't sent
4964 over the wire, just generated on the fly)
4965 (dbus_message_copy): copy the signature, and init strings to
4966 proper length to avoid some reallocs
4967 (dbus_message_iter_init_array_iterator): return void, since it
4969 (dbus_message_iter_init_dict_iterator): return void since it can't fail
4970 (_dbus_message_loader_queue_messages): add silly temporary hack to
4971 fill in message->signature on load
4973 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
4974 characters, so they are relatively human-readable.
4976 2003-10-11 Havoc Pennington <hp@pobox.com>
4978 * dbus/dbus-message.c (_dbus_message_test): add more test
4979 coverage, but #if 0 for now since they uncover a bug
4980 not fixed yet; I think in re_align_field_recurse()
4981 (re_align_field_recurse): add FIXME about broken assertion
4983 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
4985 * bus/connection.c: share a couple code bits with expirelist.c
4987 * bus/expirelist.h, bus/expirelist.c: implement a generic
4988 expire-items-after-N-seconds facility, was going to share between
4989 expiring connections and replies, decided not to use for expiring
4990 connections for now.
4992 * COPYING: include AFL 2.0 (still need to change all the file headers)
4994 2003-10-09 Havoc Pennington <hp@redhat.com>
4996 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
4997 gcc 3.3. Not that we do anything about it yet.
4999 * bus/signals.c (bus_match_rule_parse): impose max length on the
5002 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5004 2003-10-09 Havoc Pennington <hp@redhat.com>
5006 Make matching rules theoretically work (add parser).
5008 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5009 the case where destination is explicitly specified as bus driver
5010 and someone else is eavesdropping.
5012 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5013 definition of eavesdropping and assertion
5015 * tools/dbus-send.c (main): use dbus_message_type_from_string
5017 * bus/signals.c (bus_match_rule_parse): implement
5019 * dbus/dbus-message.c (dbus_message_type_from_string): new
5021 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5023 2003-10-02 Havoc Pennington <hp@pobox.com>
5025 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5026 dbus_gproxy_oneway_call
5028 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5029 (dbus_server_setup_with_g_main): fix to allow calling them more
5030 than once on the same args
5031 (dbus_bus_get_with_g_main): new function
5033 2003-10-02 Havoc Pennington <hp@redhat.com>
5035 * doc/dbus-tutorial.xml: write some stuff
5037 2003-09-29 Havoc Pennington <hp@pobox.com>
5039 * configure.in: split checks for Doxygen from XML docs, check for
5042 * doc/Makefile.am: XML-ify all the docs, and add a blank
5045 2003-09-29 Havoc Pennington <hp@pobox.com>
5047 * Merge dbus-object-names branch. To see the entire patch
5048 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5049 it's huuuuge though.
5050 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5052 2003-09-28 Havoc Pennington <hp@pobox.com>
5054 * HACKING: update to reflect new server
5056 2003-09-26 Seth Nickell <seth@gnome.org>
5059 * python/examples/example-signals.py:
5061 Start implementing some notions of signals. The API
5062 is really terrible, but they sort of work (with the
5063 exception of being able to filter by service, and to
5064 transmit signals *as* a particular service). Need to
5065 figure out how to make messages come from the service
5068 * python/dbus_bindings.pyx.in:
5070 Removed duplicate message_handler callbacks.
5072 2003-09-25 Havoc Pennington <hp@redhat.com>
5074 * bus/session.conf.in: fix my mess
5076 2003-09-25 Havoc Pennington <hp@pobox.com>
5078 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5080 2003-09-25 Seth Nickell <seth@gnome.org>
5082 * python/examples/example-service.py:
5084 Johan notices complete wrong code in example-service, but
5085 completely wrong in a way that works exactly the same (!).
5086 Johan is confused, how could this possibly work? Example
5087 code fails to serve purpose of making things clear.
5090 2003-09-25 Mark McLoughlin <mark@skynet.ie>
5092 * doc/dbus-specification.sgml: don't require header fields
5093 to be 4-byte aligned and specify that fields should be
5094 distinguished from padding by the fact that zero is not
5097 * doc/TODO: remove re-alignment item and add item to doc
5098 the OBJECT_PATH type.
5100 * dbus/dbus-message.c:
5101 (HeaderField): rename the original member to value_offset
5102 and introduce a name_offset member to keep track of where
5103 the field actually begins.
5104 (adjust_field_offsets): remove.
5105 (append_int_field), (append_uint_field),
5106 (append_string_field): don't align the start of the header
5107 field to a 4-byte boundary.
5108 (get_next_field): impl finding the next marhsalled field
5109 after a given field.
5110 (re_align_field_recurse): impl re-aligning a number of
5111 already marshalled fields.
5112 (delete_field): impl deleting a field of any type and
5113 re-aligning any following fields.
5114 (delete_int_or_uint_field), (delete_string_field): remove.
5115 (set_int_field), (set_uint_field): no need to re-check
5116 that we have the correct type for the field.
5117 (set_string_field): ditto and impl re-aligning any
5119 (decode_header_data): update to take into account that
5120 the fields aren't 4-byte aligned any more and the new
5121 way to distinguish padding from header fields. Also,
5122 don't exit when there is too much header padding.
5123 (process_test_subdir): print the directory.
5124 (_dbus_message_test): add test to make sure a following
5125 field is re-aligned correctly after field deletion.
5127 * dbus/dbus-string.[ch]:
5128 (_dbus_string_insert_bytes): rename from insert_byte and
5129 allow the insert of multiple bytes.
5130 (_dbus_string_test): test inserting multiple bytes.
5132 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
5133 warning note to docs about having to re-align any
5134 marshalled values following the string.
5136 * dbus/dbus-message-builder.c:
5137 (append_string_field), (_dbus_message_data_load):
5138 don't align the header field.
5140 * dbus/dbus-auth.c: (process_test_subdir): print the
5143 * test/break-loader.c: (randomly_add_one_byte): upd. for
5146 * test/data/invalid-messages/bad-header-field-alignment.message:
5149 * test/data/valid-messages/unknown-header-field.message: shove
5150 a dict in the unknown field.
5152 2003-09-25 Seth Nickell <seth@gnome.org>
5155 * python/dbus_bindings.pyx.in:
5157 Handle return values.
5159 * python/examples/example-client.py:
5160 * python/examples/example-service.py:
5162 Pass back return values from the service to the client.
5164 2003-09-24 Seth Nickell <seth@gnome.org>
5168 Connect Object methods (when you are sharing an object) up... pass
5169 in a list of methods to be shared. Sharing all the methods just
5170 worked out too weird. You can now create nice Services over the
5173 * python/dbus_bindings.pyx.in:
5175 Keep references to user_data tuples passed into C functions so
5176 Python doesn't garbage collect on us.
5178 Implement MethodReturn and Error subclasses of Message for creating
5179 DBusMessage's of those types.
5181 * python/examples/example-client.py:
5182 * python/examples/example-service.py:
5184 Simple example code showing both how create DBus services and objects,
5185 and how to use them.
5187 2003-09-23 Havoc Pennington <hp@pobox.com>
5189 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5191 2003-09-23 Havoc Pennington <hp@redhat.com>
5193 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5194 (dbus_gproxy_disconnect_signal): implement
5195 (dbus_gproxy_manager_remove_signal_match): implement
5196 (dbus_gproxy_manager_add_signal_match): implement
5197 (dbus_gproxy_oneway_call): implement
5199 2003-09-23 Havoc Pennington <hp@pobox.com>
5201 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5202 subclass. This means dropping the transparent thread safety of the
5203 proxy; you now need a separate proxy per-thread, or your own
5204 locking on the proxy. Probably right anyway.
5205 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5207 2003-09-22 Havoc Pennington <hp@redhat.com>
5209 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5211 2003-09-21 Seth Nickell <seth@gnome.org>
5213 First checkin of the Python bindings.
5215 * python/.cvsignore:
5216 * python/Makefile.am:
5217 * python/dbus_bindings.pyx.in:
5218 * python/dbus_h_wrapper.h:
5220 Pieces for Pyrex to operate on, building a dbus_bindings.so
5221 python module for low-level access to the DBus APIs.
5225 High-level Python module for accessing DBus objects.
5230 Build stuff for the python bindings.
5234 Extra macro needed for finding the Python C header files.
5236 2003-09-21 Havoc Pennington <hp@pobox.com>
5238 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
5239 implementing the proxy manager, didn't get very far.
5241 * dbus/dbus-bus.c (dbus_bus_add_match): new
5242 (dbus_bus_remove_match): new
5244 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
5245 path_name argument; adjust the other not-yet-implemented
5246 gproxy constructors to be what I think they should be.
5248 2003-09-21 Havoc Pennington <hp@pobox.com>
5250 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
5251 by default for message bus connections.
5253 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
5254 exit_on_disconnect flag is set and we process the disconnected
5256 (dbus_connection_set_exit_on_disconnect): new function
5258 2003-09-21 Havoc Pennington <hp@pobox.com>
5260 Get matching rules mostly working in the bus; only actually
5261 parsing the rule text remains. However, the client side of
5262 "signal connections" hasn't been started, this patch is only the
5265 * dbus/dispatch.c: fix for the matching rules changes
5267 * bus/driver.c (bus_driver_handle_remove_match)
5268 (bus_driver_handle_add_match): send an ack reply from these
5271 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
5272 arguments, reported by Seth Nickell
5274 * bus/config-parser.c (append_rule_from_element): support
5275 eavesdrop=true|false attribute on policies so match rules
5276 can be prevented from snooping on the system bus.
5278 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
5279 and "destination" in attribute names; fix some docs bugs;
5280 add eavesdrop=true|false attribute
5282 * bus/driver.c (bus_driver_handle_add_match)
5283 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
5286 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
5287 rid of broadcast service concept, signals are just always broadcast
5289 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
5290 mostly implement matching rules stuff (currently only exposed as signal
5293 2003-09-21 Mark McLoughlin <mark@skynet.ie>
5295 * doc/dbus-specification.sgml: Change the header field name
5296 to be an enum and update the rest of the spec to reference
5297 the fields using the conventinal name.
5299 * dbus/dbus-protocol.h: update to reflect the spec.
5301 * doc/TODO: add item to remove the 4 byte alignment requirement.
5303 * dbus/dbus-message.c: Remove the code to generalise the
5304 header/body length and serial number header fields as named
5305 header fields so we can reference field names using the
5307 (append_int_field), (append_uint_field), (append_string_field):
5308 Append the field name as a byte rather than four chars.
5309 (delete_int_or_uint_field), (delete_string_field): reflect the
5310 fact that the field name and typecode now occupy 4 bytes instead
5312 (decode_string_field), (decode_header_data): update to reflect
5313 protocol changes and move the field specific encoding from
5314 decode_string_field() back into decode_header_data().
5316 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
5317 Add utility to aid debugging.
5319 * dbus/dbus-message-builder.c:
5320 (append_string_field), (_dbus_message_data_load): Update to
5321 reflect protocol changes; Change the FIELD_NAME directive
5322 to HEADER_FIELD and allow it to take the field's conventional
5323 name rather than the actual value.
5325 * test/data/*/*.message: Update to use HEADER_FIELD instead
5326 of FIELD_NAME; Always align the header on an 8 byte boundary
5327 *before* updating the header length.
5329 2003-09-15 Havoc Pennington <hp@pobox.com>
5331 * dbus/dbus-pending-call.c: add the get/set object data
5332 boilerplate as for DBusConnection, etc. Use generic object data
5333 for the notify callback.
5335 * glib/dbus-gparser.c (parse_node): parse child nodes
5337 * tools/dbus-viewer.c: more hacking on the dbus-viewer
5339 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
5340 contain functions shared between the convenience lib and the
5343 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
5344 -export-symbols-regex to the GLib library
5346 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
5347 fix the locking in here, and add a default handler for
5348 Introspect() that just returns sub-nodes.
5350 2003-09-14 Havoc Pennington <hp@pobox.com>
5352 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
5353 rather than gfoo consistent
5355 * glib/dbus-gproxy.h: delete for now, move contents to
5356 dbus-glib.h, because the include files don't work right since we
5357 aren't in the dbus/ subdir.
5359 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
5360 (dbus_gproxy_end_call): finish
5361 (dbus_gproxy_begin_call): finish
5363 * glib/dbus-gmain.c (dbus_set_g_error): new
5365 * glib/dbus-gobject.c (handle_introspect): include information
5366 about child nodes in the introspection
5368 * dbus/dbus-connection.c (dbus_connection_list_registered): new
5369 function to help in implementation of introspection
5371 * dbus/dbus-object-tree.c
5372 (_dbus_object_tree_list_registered_and_unlock): new function
5374 2003-09-12 Havoc Pennington <hp@pobox.com>
5376 * glib/dbus-gidl.h: add common base class for all the foo_info
5379 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
5382 * test/Makefile.am: try test srcdir -ef . in addition to test
5383 srcdir = ., one of them should work (yeah lame)
5385 * glib/Makefile.am: build the "idl" parser stuff as a convenience
5388 * glib/dbus-gparser.h: make description_load routines return
5389 NodeInfo* not Parser*
5391 * Makefile.am (SUBDIRS): build test dir after all library dirs
5393 * configure.in: add GTK+ detection
5395 2003-09-07 Havoc Pennington <hp@pobox.com>
5397 * Make Doxygen contented.
5399 2003-09-07 Havoc Pennington <hp@pobox.com>
5401 * doc/dbus-specification.sgml: more updates
5403 2003-09-06 Havoc Pennington <hp@pobox.com>
5405 * doc/dbus-specification.sgml: partial updates
5407 * bus/dbus-daemon-1.1.in: fix the config file docs for the
5408 zillionth time; hopefully I edited the right file this time.
5410 * bus/config-parser.c (append_rule_from_element): support
5411 send_type, send_path, receive_type, receive_path
5413 * bus/policy.c: add message type and path to the list of things
5414 that can be "firewalled"
5416 2003-09-06 Havoc Pennington <hp@pobox.com>
5418 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
5419 (dbus_connection_register_object_path): make this not handle
5420 messages to paths below the given path
5422 2003-09-03 Havoc Pennington <hp@pobox.com>
5424 * test/glib/Makefile.am: add this with random glib-linked test
5427 * glib/Makefile.am: remove the random test programs from here,
5428 leave only the unit tests
5430 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
5431 uscore/javacaps conversion, and fix
5432 (get_object_property, set_object_property): change to .NET
5433 convention for mapping props to methods, set_FooBar/get_FooBar,
5434 since one language has such a convention we may as well copy it.
5435 Plus real methods in either getFooBar or get_foo_bar style won't
5436 collide with this convention.
5438 2003-09-01 Havoc Pennington <hp@pobox.com>
5440 * glib/dbus-gparser.c: implement
5442 * glib/dbus-gobject.c: start implementing skeletons support
5444 * configure.in: when disabling checks/assert, also define
5445 G_DISABLE_ASSERT and G_DISABLE_CHECKS
5447 2003-09-01 Havoc Pennington <hp@pobox.com>
5449 * glib/Makefile.am: rearrange a bunch of files and get "make
5450 check" framework set up
5452 2003-08-31 Havoc Pennington <hp@pobox.com>
5454 * fix build with --disable-tests
5456 2003-08-30 Havoc Pennington <hp@pobox.com>
5458 * dbus/dbus-connection.c: purge DBusMessageHandler
5460 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
5461 use callbacks everywhere
5463 2003-08-30 Havoc Pennington <hp@pobox.com>
5465 * test/data/valid-config-files/system.d/test.conf: change to
5466 root for the user so warnings don't get printed
5468 * dbus/dbus-message.c: add dbus_message_get_path,
5469 dbus_message_set_path
5471 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
5472 dispatching to a path
5474 * dbus/dbus-string.c (_dbus_string_validate_path): add
5476 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
5477 (_dbus_marshal_object_path): implement
5479 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
5480 to contain the path to the target object
5481 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
5482 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
5484 2003-08-30 Havoc Pennington <hp@pobox.com>
5486 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
5488 2003-08-29 Havoc Pennington <hp@pobox.com>
5490 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
5492 (struct DBusObjectSubtree): shrink this
5493 a lot, since we may have a lot of them
5494 (_dbus_object_tree_free_all_unlocked): implement
5495 (_dbus_object_tree_dispatch_and_unlock): implement
5497 2003-08-29 Havoc Pennington <hp@pobox.com>
5499 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
5501 2003-08-28 Havoc Pennington <hp@pobox.com>
5505 * dbus/dbus-connection.c: port to no ObjectID, create a
5506 DBusObjectTree, rename ObjectTree to ObjectPath in public API
5508 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
5509 everything except UnregisterFunction and MessageFunction
5511 * dbus/dbus-marshal.c: port away from DBusObjectID,
5512 add DBUS_TYPE_OBJECT_PATH
5514 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
5515 dbus/dbus-objectid.[hc]: remove these, we are moving to
5516 path-based object IDs
5518 2003-08-25 Havoc Pennington <hp@pobox.com>
5520 Just noticed that dbus_message_test is hosed, I wonder when I
5521 broke that. I thought make check was passing earlier...
5523 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
5524 container tree, will replace most of dbus-object-registry
5526 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
5529 2003-08-19 Havoc Pennington <hp@pobox.com>
5531 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
5532 (dbus_message_is_error): fix this function
5534 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
5537 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
5538 reflect clarified man page
5539 (bus_client_policy_check_can_send): ditto
5541 * bus/session.conf.in: fixup
5543 * bus/system.conf.in: fixup
5545 2003-08-18 Havoc Pennington <hp@redhat.com>
5547 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
5549 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5550 dumb bug created earlier (wrong order of args to
5551 decode_header_data())
5553 * tools/dbus-send.c: port
5555 * tools/dbus-print-message.c (print_message): port
5557 * test/data/*messages: port all messages over
5559 * dbus/dbus-message-builder.c: support including
5562 * bus/driver.c: port over
5564 * bus/dispatch.c: port over to new stuff
5566 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5567 rename disconnect signal to "Disconnected"
5569 2003-08-17 Havoc Pennington <hp@pobox.com>
5571 This doesn't compile yet, but syncing up so I can hack on it from
5572 work. What are branches for if not broken code? ;-)
5574 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
5575 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
5576 DBUS_HEADER_FIELD_ERROR_NAME
5578 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
5579 for the interface+member pairs
5580 (string_hash): change to use g_str_hash algorithm
5581 (find_direct_function, find_string_function): refactor these to
5584 * dbus/dbus-message.c: port all of this over to support
5585 interface/member fields instead of name field
5587 * dbus/dbus-object-registry.c: port over
5589 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
5590 from _dbus_string_validate_name
5592 * bus/dbus-daemon-1.1: change file format for the
5593 <deny>/<allow> stuff to match new message naming scheme
5595 * bus/policy.c: port over
5597 * bus/config-parser.c: parse new format
5599 2003-08-16 Havoc Pennington <hp@pobox.com>
5601 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
5604 * glib/dbus-gproxy.c: some hacking
5606 2003-08-15 Havoc Pennington <hp@redhat.com>
5608 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
5610 * dbus/dbus-connection.c
5611 (dbus_connection_send_with_reply_and_block): factor out internals;
5612 change to convert any error replies to DBusError instead of
5613 returning them as a message
5615 2003-08-15 Havoc Pennington <hp@pobox.com>
5617 * dbus/dbus-connection.c,
5618 dbus/dbus-pending-call.c: Finish the pending call stuff
5620 2003-08-14 Havoc Pennington <hp@redhat.com>
5622 * dbus/dbus-pending-call.c: start on new object that will replace
5623 DBusMessageHandler and ReplyHandlerData for tracking outstanding
5626 * dbus/dbus-gproxy.c: start on proxy object used to communicate
5627 with remote interfaces
5629 * dbus/dbus-gidl.c: do the boring boilerplate in here
5631 2003-08-12 Havoc Pennington <hp@pobox.com>
5633 * bus/dispatch.c (bus_dispatch): make this return proper
5634 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
5636 * dbus/dbus-errors.c (dbus_set_error): use
5637 _dbus_string_append_printf_valist
5639 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
5640 (_dbus_string_append_printf): new
5642 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
5645 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
5646 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
5647 message is unhandled.
5649 2003-08-11 Havoc Pennington <hp@pobox.com>
5651 * bus/test.c (client_disconnect_handler): change to return
5652 HANDLED (would have been REMOVE_MESSAGE)
5654 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
5655 HANDLED/NOT_YET_HANDLED instead of
5656 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
5659 2003-08-10 Havoc Pennington <hp@pobox.com>
5661 * tools/dbus-send.c (main): add --type argument, for now
5662 supporting only method_call and signal types.
5664 * tools/dbus-print-message.c: print message type
5666 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5667 init connection->objects
5669 * doc/dbus-specification.sgml: fix sgml
5671 * bus/*.c: port over to object-instance API changes
5673 * test/test-service.c: ditto
5675 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
5676 name, we will have to fix up the rest of the code to also handle
5678 (dbus_message_new): generic message-creation call
5679 (set_string_field): allow appending name field
5681 2003-08-06 Havoc Pennington <hp@pobox.com>
5683 * dbus/dbus-object-registry.c: implement signal connection
5686 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
5688 * dbus/dbus-internals.c (_dbus_memdup): new function
5690 2003-08-02 Havoc Pennington <hp@pobox.com>
5692 * dbus/dbus-message.c (dbus_message_get_no_reply)
5693 (dbus_message_set_no_reply): add these and remove
5694 set_is_error/get_is_error
5696 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
5697 remove the ERROR flag, since there's now an ERROR type
5699 2003-08-01 Havoc Pennington <hp@pobox.com>
5701 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
5704 * dbus/dbus-message.c (dbus_message_get_type): new function
5706 * doc/dbus-specification.sgml: add "type" byte to messages
5708 2003-08-01 Havoc Pennington <hp@pobox.com>
5710 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
5711 a message type enum to distinguish kinds of message
5712 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
5713 that need not be replied to
5715 2003-08-01 Havoc Pennington <hp@pobox.com>
5717 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
5718 (unpack_8_octets): fix no-64-bit-int bug
5720 * dbus/dbus-object-registry.c (validate_id): validate the
5721 connection ID bits, not just the instance ID.
5723 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
5724 the connection-global 33 bits of the object ID
5726 * dbus/dbus-object-registry.c (info_from_entry): fill in
5727 object ID in the new way
5729 * dbus/dbus-objectid.h: rather than high/low bits, specifically
5730 define server/client/instance bits.
5732 2003-07-30 Havoc Pennington <hp@pobox.com>
5734 * dbus/dbus-connection.c (dbus_connection_register_object): fix
5737 2003-07-13 Havoc Pennington <hp@pobox.com>
5739 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
5740 fields to DBusObjectVTable and DBusObjectInfo
5742 2003-07-12 Havoc Pennington <hp@pobox.com>
5744 * dbus/dbus-object-registry.c: implement unit test,
5745 fix bugs discovered in process
5747 * dbus/dbus-connection.c: remove handler_table and
5748 register_handler(), add DBusObjectRegistry usage
5750 * dbus/dbus-objectid.c (dbus_object_id_is_null)
5751 (dbus_object_id_set_null): new functions
5753 2003-07-08 Havoc Pennington <hp@pobox.com>
5755 * dbus/dbus-object.c: implement some of this
5757 * dbus/dbus-object-registry.c
5758 (_dbus_object_registry_add_and_unlock): fill in the object_id out
5760 (_dbus_object_registry_new): handle OOM
5762 2003-07-08 Havoc Pennington <hp@pobox.com>
5764 * dbus/dbus-object.h: sketch out an API for registering objects
5765 with a connection, that allows us to use as little as 24 bytes
5766 per object and lets application code represent an object in
5767 any conceivable way.
5769 * dbus/dbus-object-registry.c: implement the hard bits of the
5770 DBusConnection aspect of object API. Not yet wired up.
5772 2003-07-06 Havoc Pennington <hp@pobox.com>
5774 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
5775 (_dbus_marshal_object_id): new
5776 (_dbus_demarshal_object_id): new
5777 (_dbus_marshal_get_arg_end_pos): support object ID type, and
5778 consolidate identical switch cases. Don't conditionalize handling
5779 of DBUS_TYPE_UINT64, need to handle the type always.
5780 (_dbus_marshal_validate_arg): consolidate identical cases, and
5781 handle DBUS_TYPE_OBJECT_ID
5783 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
5785 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
5787 2003-09-28 Havoc Pennington <hp@pobox.com>
5791 2003-09-28 Havoc Pennington <hp@pobox.com>
5793 * doc/Makefile.am (dbus-specification.html): testing a funky hack
5794 to work with Debian db2html
5796 2003-09-28 Havoc Pennington <hp@pobox.com>
5798 * configure.in: 0.13
5800 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
5801 stylesheet-images for benefit of Debian
5803 Change back to using filesystem-linked sockets for the system
5804 bus, so only root can create the default system bus address.
5806 * bus/system.conf.in: change to use
5807 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5809 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
5812 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5813 here, and AC_DEFINE DBUS_SYSTEM_PATH
5815 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5818 * doc/busconfig.dtd:
5821 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5823 * doc/dbus-specification.sgml:
5824 Add activation reply values.
5826 2003-08-05 Havoc Pennington <hp@redhat.com>
5828 * configure.in: 0.12
5830 2003-08-05 Anders Carlsson <andersca@codefactory.se>
5832 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
5833 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
5834 (add_watch), (remove_watch), (create_source):
5835 Refcount fds, fixes some reentrancy issues.
5837 2003-07-30 Havoc Pennington <hp@redhat.com>
5839 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
5840 bus address to be abstract if we have abstract sockets
5844 2003-07-28 Havoc Pennington <hp@redhat.com>
5846 * bus/messagebus.in: fix to avoid processname/servicename
5847 confusion, from Michael Kearey
5848 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
5850 2003-07-23 Havoc Pennington <hp@pobox.com>
5852 * dbus/dbus-message.c (dbus_message_iter_get_named):
5853 fix from Andy Hanton to remove broken "+1"
5855 2003-07-16 Havoc Pennington <hp@pobox.com>
5857 * tools/dbus-launch.c (babysit): close stdout/stderr in the
5858 babysitter process, as suggested by Thomas Leonard, so
5859 an "eval `dbus-launch --exit-with-session`" will actually
5862 2003-07-16 Havoc Pennington <hp@pobox.com>
5864 * configure.in: print out EXPANDED_* variables in the summary at
5865 the end; clean up the code that computes EXPANDED_ variables and
5866 get the ones using exec_prefix right. Should make things work
5867 when you build without --prefix
5869 2003-06-29 Havoc Pennington <hp@pobox.com>
5871 * mono/Test.cs (class Test): fire up a main loop and run it
5873 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
5874 done once, the app has to do it
5876 2003-06-26 Havoc Pennington <hp@pobox.com>
5878 * mono/Connection.cs: set up connection with the glib main loop
5880 2003-07-01 Havoc Pennington <hp@redhat.com>
5882 * doc/dbus-specification.sgml: clarify the format of a type code,
5883 change suggested by Jim Blandy
5885 2003-06-29 Miloslav Trmac <mitr@volny.cz>
5888 * tools/Makefile.am: Don't assume srcdir == builddir.
5890 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
5891 the allocated block.
5892 (_dbus_memory_test): New function.
5893 * dbus/dbus-test.h: Add _dbus_memory_test ().
5894 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
5896 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
5898 (dbus_message_new): Remove obsolete @todo.
5900 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
5901 (_dbus_marshal_set_uint64): Fix comment.
5903 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
5904 hardcode FIELD_REPLY_SERIAL.
5906 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
5907 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
5909 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
5910 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
5912 2003-06-24 Havoc Pennington <hp@pobox.com>
5914 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
5916 2003-06-23 Anders Carlsson <andersca@codefactory.se>
5922 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
5923 * gcj/org/.cvsignore:
5924 * gcj/org/Makefile.am:
5925 * gcj/org/freedesktop/.cvsignore:
5926 * gcj/org/freedesktop/Makefile.am:
5927 * gcj/org/freedesktop/dbus/.cvsignore:
5928 * gcj/org/freedesktop/dbus/Makefile.am:
5929 * gcj/org/freedesktop/dbus/Message.java: (Message),
5931 * gcj/org/freedesktop/dbus/natMessage.cc:
5932 Fix the build system.
5934 2003-06-22 Havoc Pennington <hp@pobox.com>
5936 * mono/Connection.cs: add more bindings
5938 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
5941 2003-06-22 Havoc Pennington <hp@pobox.com>
5943 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
5944 Start wrapping more stuff.
5946 2003-06-22 Havoc Pennington <hp@pobox.com>
5948 * mono/Message.cs: implement Message.Wrap() that ensures we only
5949 have a single C# wrapper per DBusMessage, assuming it works which
5950 it probably doesn't.
5952 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
5953 (dbus_message_free_data_slot): new
5954 (dbus_message_set_data): new
5955 (dbus_message_get_data): new
5957 2003-06-22 Havoc Pennington <hp@pobox.com>
5959 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
5960 (_dbus_data_slot_allocator_alloc): rework these to keep a
5961 reference count on each slot and automatically manage a global
5962 slot ID variable passed in by address
5964 * bus/bus.c: convert to new dataslot API
5966 * dbus/dbus-bus.c: convert to new dataslot API
5968 * dbus/dbus-connection.c: convert to new dataslot API
5970 * dbus/dbus-server.c: convert to new dataslot API
5972 * glib/dbus-gmain.c: ditto
5976 * bus/connection.c: ditto
5978 2003-06-22 Anders Carlsson <andersca@codefactory.se>
5980 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
5981 after the gcj checks so that the correct configuration tags
5982 will be added to libtool.
5984 * dbus-glib-1.pc.in: No need to specify any includes since
5985 dbus-1.pc.in has those.
5987 2003-06-22 Havoc Pennington <hp@pobox.com>
5989 * mono/*, gcj/*, configure.in, Makefile.am:
5990 Check in makefiles and subdirs for mono and gcj bindings.
5991 Neither binding actually exists, just trying to get through
5992 all the build and other boring bits.
5994 2003-06-21 Philip Blundell <philb@gnu.org>
5996 * tools/dbus-monitor.1: Updated.
5998 * tools/dbus-send.1: Likewise.
6000 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6002 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6003 for hangup and error after checking read so we won't discard
6004 pending data if both hangup and read are set.
6006 2003-06-19 Philip Blundell <philb@gnu.org>
6008 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6010 * tools/dbus-send.c: Accept both --system and --session.
6012 * tools/dbus-monitor.c: Same here.
6014 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6016 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6017 from C++ (Patch by Miloslav Trmac).
6019 2003-06-15 Joe Shaw <joe@assbarn.com>
6021 * configure.in: Check for socklen_t.
6023 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6025 * test/test-segfault.c: Add #include <sys/time.h>
6027 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6028 dbus-launch needs it.
6030 2003-06-09 Havoc Pennington <hp@redhat.com>
6032 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6033 SUN_LEN, it breaks abstract socket usage
6035 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6038 2003-06-04 Havoc Pennington <hp@pobox.com>
6040 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6041 using unix:abstract=/foo, and when listening in a tmpdir
6042 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6044 * dbus/dbus-transport.c (_dbus_transport_open): support
6047 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6048 support abstract sockets
6050 * dbus/dbus-transport-unix.c
6051 (_dbus_transport_new_for_domain_socket): support abstract sockets
6053 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6054 toggle as an argument, implement abstract namespace support
6055 (_dbus_listen_unix_socket): ditto
6057 * configure.in: add --enable-abstract-sockets and implement
6058 a configure check for autodetection of the right value.
6060 2003-06-01 Havoc Pennington <hp@pobox.com>
6062 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6063 in /tmp (though on Linux this will end up being useless,
6064 when we add abstract namespace support)
6066 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6069 2003-05-28 Colin Walters <walters@verbum.org>
6071 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6073 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6075 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6077 2003-05-17 Colin Walters <walters@gnu.org>
6079 * tools/dbus-send.c: Don't exit with an error code if --help was
6080 passed. Default to using the session bus instead of the system
6083 * tools/dbus-launch.c: Ditto.
6085 * tools/dbus-monitor.c: Ditto.
6087 * tools/dbus-send.1: Update with new arguments.
6089 * tools/dbus-launch.c: Emit code to export variables. New
6090 arguments -s and -c to specify shell syntax, and a bit of code to
6091 autodetect syntax. Also, allow specifying a program to run.
6093 * tools/dbus-launch.1: Update with new arguments.
6095 * tools/dbus-send.1: Ditto.
6097 * tools/dbus-monitor.1: Ditto.
6099 2003-05-17 Havoc Pennington <hp@pobox.com>
6101 * bus/config-parser.c (merge_included): merge in policies from
6102 child configuration file.
6104 * bus/policy.c (bus_policy_merge): function to merge two policies
6107 2003-05-16 Havoc Pennington <hp@redhat.com>
6109 * dbus/dbus-connection.c: disable verbose lock spew
6111 * tools/dbus-send.c: add --print-reply command line option
6113 * tools/dbus-print-message.h (print_message): new util function
6114 shared by dbus-send and dbus-monitor
6116 * tools/dbus-monitor.c (handler_func): exit on disconnect
6118 * dbus/dbus-transport-unix.c (do_reading): if the transport is
6119 disconnected, don't try to use the read_watch
6121 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6122 so we can find this bug more easily
6124 2003-05-16 Havoc Pennington <hp@redhat.com>
6126 * bus/policy.c (free_rule_list_func): avoid a crash when passed
6127 NULL as DBusHashTable is annoyingly likely to do.
6129 2003-05-16 Colin Walters <walters@verbum.org>
6131 * tools/dbus-monitor.c: Add --session argument and usage()
6134 * tools/dbus-monitor.1: Update with new --session arg.
6136 * bus/Makefile.am (install-data-hook): Create
6137 $(libdir)/dbus-1.0/services so that the session bus is happy.
6139 2003-05-15 Havoc Pennington <hp@redhat.com>
6141 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
6142 on non-x86. ifdef's are evil.
6144 2003-05-15 Havoc Pennington <hp@redhat.com>
6146 * configure.in: 0.11
6150 * bus/Makefile.am (initddir): apparently we are supposed to put
6151 init scripts in /etc/rc.d/init.d not /etc/init.d
6153 * bus/Makefile.am: remove the "you must --enable-tests to make
6154 check" as it broke distcheck
6156 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
6158 2003-05-13 James Willcox <jwillcox@gnome.org>
6161 * bus/activation.c: (bus_activation_service_created),
6162 (bus_activation_activate_service):
6163 * bus/driver.c: (bus_driver_send_service_deleted),
6164 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6165 (bus_driver_send_service_acquired),
6166 (bus_driver_send_welcome_message),
6167 (bus_driver_handle_list_services):
6168 * bus/session.conf.in:
6169 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
6170 (dbus_bus_service_exists), (dbus_bus_activate_service):
6173 Add some convenience API which lets you activate a service, and did a
6174 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
6175 and dbus_message_get_args()
6177 2003-05-11 Havoc Pennington <hp@pobox.com>
6179 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6180 calling _dbus_marshal_validate_arg() for every byte in a byte
6183 * dbus/dbus-message-handler.c: use atomic reference counting to
6184 reduce number of locks slightly; the global lock in here sucks
6186 * dbus/dbus-connection.c
6187 (_dbus_connection_update_dispatch_status_and_unlock): variant of
6188 update_dispatch_status that can be called with lock held; then use
6189 in a couple places to reduce locking/unlocking
6190 (dbus_connection_send): hold the lock over the whole function
6191 instead of acquiring it twice.
6193 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6195 * bus/connection.c (bus_connections_setup_connection): fix access
6196 to already-freed memory.
6198 * dbus/dbus-connection.c: keep a little cache of linked list
6199 nodes, to avoid using the global linked list alloc lock in the
6200 normal send-message case. Instead we just use the connection lock
6201 that we already have to take.
6203 * dbus/dbus-list.c (_dbus_list_find_last): new function
6205 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6206 change to use a struct for the atomic type; fix docs,
6207 they return value before increment, not after increment.
6209 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6210 (_dbus_string_append_8_aligned): new functions to try to
6211 microoptimize this operation.
6212 (reallocate_for_length): break this out of set_length(), to
6213 improve profile info, and also so we can consider inlining the
6216 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6217 strings with some preallocation, cuts down on our calls to realloc
6218 a fair bit. Though if we can get the "move entire string to empty
6219 string" optimization below to kick in here, it would be better.
6221 * dbus/dbus-string.c (_dbus_string_move): just call
6222 _dbus_string_move_len
6223 (_dbus_string_move_len): add a special case for moving
6224 an entire string into an empty string; we can just
6225 swap the string data instead of doing any reallocs.
6226 (_dbus_string_init_preallocated): new function
6228 2003-05-11 Havoc Pennington <hp@pobox.com>
6230 Write a "test-profile" that does echo client-server with threads;
6231 profile reveals lock contention, memcpy/realloc of buffers, and
6232 UTF-8 validation as hot spots. 20% of lock contention eliminated
6233 with dbus_atomic_inc/dec implementation on x86. Much remaining
6234 contention is global mempool locks for GList and DBusList.
6236 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
6239 * dbus/dbus-connection.c (struct DBusConnection): use
6240 dbus_atomic_t for the reference count
6242 * dbus/dbus-message.c (struct DBusMessage): declare
6243 dbus_atomic_t values as volatile
6245 * configure.in: code to detect ability to use atomic integer
6246 operations in assembly, from GLib patch
6248 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
6249 time, tired of it being wrong in threads and forked processes
6251 * glib/test-profile.c: a little program to bounce messages back
6252 and forth between threads and eat CPU
6254 * dbus/dbus-connection.c: add debug spew macros for debugging
6255 thread locks; include config.h at top; fix deadlock in
6256 dbus_connection_flush()
6258 2003-05-08 Havoc Pennington <hp@pobox.com>
6260 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
6261 data from getting written, and there wasn't a good reason to
6264 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
6265 dbus_verbose lines in test coverage
6266 (main): add list of functions sorted by # of untested blocks
6267 to the coverage report
6269 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
6271 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
6273 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
6274 extend test coverage
6276 * test/data/auth/cancel.auth-script: test canceling an
6279 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
6280 aren't used. in CVS history if we end up needing them.
6282 2003-05-04 Havoc Pennington <hp@pobox.com>
6284 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
6287 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
6288 function, which assumed length was in # of strings, not bytes
6290 * dbus/dbus-message.c (_dbus_message_test): add tests for some
6293 * dbus/dbus-connection.c
6294 (_dbus_connection_queue_received_message): disable function for
6295 now, we are only using it in test mode
6297 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
6298 remove a mistaken FIXME
6300 2003-05-04 Havoc Pennington <hp@pobox.com>
6302 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
6303 unlock mutex on successful return, patch from Anders Gustafsson
6305 2003-05-04 Havoc Pennington <hp@pobox.com>
6307 * dbus-glib-1.pc.in (Requires): fix dependencies, from
6310 2003-05-04 Havoc Pennington <hp@pobox.com>
6312 * tools/dbus-launch.c: implement
6314 * bus/main.c (main), bus/bus.c (bus_context_new):
6315 implement --print-pid and --fork
6317 2003-05-03 Havoc Pennington <hp@redhat.com>
6319 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
6320 the address had no value, and add to test suite. Fix and
6321 regression test from Miloslav Trmac
6323 2003-05-03 Havoc Pennington <hp@pobox.com>
6325 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
6326 watch is invalid when handled
6328 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
6329 dbus-launch utility to launch the bus from a shell script. Didn't
6330 actually implement dbus-launch yet, it's just a placeholder still.
6332 2003-05-03 Havoc Pennington <hp@pobox.com>
6334 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
6335 daemon; also documents daemon config file, so replaces
6336 doc/config-file.txt. Corrected some stuff from config-file.txt in
6337 the process of moving it.
6339 2003-05-03 Havoc Pennington <hp@pobox.com>
6341 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
6344 2003-05-03 Colin Walters <walters@verbum.org>
6346 * dbus/dbus-sysdeps.c (fill_user_info): Test against
6347 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
6349 * Makefile.am: Update to use new .pc versioning scheme.
6351 2003-05-02 Havoc Pennington <hp@redhat.com>
6353 * bus/system.conf.in: allow send/receive to/from message bus
6356 2003-04-30 Havoc Pennington <hp@redhat.com>
6358 * configure.in: print a note when building with unit tests and
6361 2003-04-30 Havoc Pennington <hp@redhat.com>
6363 * Makefile.am: add a check-local that complains if you didn't
6364 configure with --enable-tests
6366 2003-04-29 Havoc Pennington <hp@redhat.com>
6368 * glib/dbus-gmain.c: docs cleanups
6370 * dbus/dbus-types.h: add docs on int64 types
6372 * dbus/dbus-memory.c: fix docs to avoid putting private API in
6373 public API docs section
6375 2003-04-29 Havoc Pennington <hp@redhat.com>
6377 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
6378 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
6379 parallel install API version, not with the D-BUS package version.
6381 * HACKING: move some of README over here
6383 * README: updates, and document API/ABI policy
6385 * configure.in: reindentation
6387 2003-04-29 Havoc Pennington <hp@redhat.com>
6389 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
6390 to use this library" to be sure people have the right
6393 2003-04-28 Havoc Pennington <hp@redhat.com>
6395 * configure.in: add --enable-docs which by default is auto yes if
6396 doxygen and db2html found, no otherwise; but can be forced on/off
6398 * doc/Makefile.am: conditionalize whether to build docs on
6401 2003-04-28 Havoc Pennington <hp@redhat.com>
6403 * configure.in: 0.10
6407 * bus/system.conf.in: add <includedir>system.d</includedir>
6409 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
6410 username was provided but not uid
6412 * bus/config-parser.c (struct BusConfigParser): keep track of
6413 whether the parser is toplevel or was included; change some
6414 of the error handling if it's included.
6416 2003-04-27 Havoc Pennington <hp@pobox.com>
6420 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6421 report correct status if we finish processing authentication
6422 inside this function.
6424 * bus/activation.c (try_send_activation_failure): use
6425 bus_transaction_send_error_reply
6427 * bus/connection.c (bus_connection_get_groups): return an error
6428 explaining the problem
6430 * bus/bus.c (bus_context_check_security_policy): implement
6431 restriction here that inactive connections can only send the
6432 hello message. Also, allow bus driver to send anything to
6435 * bus/connection.c (bus_connection_complete): create the
6436 BusClientPolicy here instead of on-demand.
6437 (bus_connection_get_policy): don't return an error
6439 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
6440 sender field in message being replied to
6442 * bus/bus.c (bus_context_check_security_policy): fix silly typo
6443 causing it to return FALSE always
6445 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
6446 we checked sender rather than destination
6448 2003-04-25 Havoc Pennington <hp@redhat.com>
6450 test suite is slightly hosed at the moment, will fix soon
6452 * bus/connection.c (bus_connections_expire_incomplete): fix to
6453 properly disable the timeout when required
6454 (bus_connection_set_name): check whether we can remove incomplete
6455 connections timeout after we complete each connection.
6457 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
6458 probably still broken.
6460 * bus/services.c (bus_registry_acquire_service): implement max
6461 number of services owned, and honor allow/deny rules on which
6462 services a connection can own.
6464 * bus/connection.c (bus_connection_get_policy): report errors here
6466 * bus/activation.c: implement limit on number of pending
6469 2003-04-25 Havoc Pennington <hp@redhat.com>
6471 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
6472 where we used >= 0 instead of != DBUS_UID_UNSET.
6474 2003-04-25 Havoc Pennington <hp@redhat.com>
6476 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
6477 were toggled without add/remove, fix from Anders Gustafsson
6479 2003-04-24 Havoc Pennington <hp@redhat.com>
6481 * test/data/valid-config-files/basic.conf: add <limit> tags to
6484 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
6485 <limit> tag in configuration file.
6487 2003-04-24 Havoc Pennington <hp@redhat.com>
6489 * bus/dispatch.c: somehow missed some name_is
6491 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
6492 (_dbus_timeout_set_interval): new
6494 * bus/connection.c (bus_connections_setup_connection): record time
6495 when each connection is first set up, and expire them after the
6496 auth timeout passes.
6498 2003-04-24 Havoc Pennington <hp@redhat.com>
6500 * dbus/dbus-message.c (dbus_message_name_is): rename
6501 (dbus_message_service_is): rename
6502 (dbus_message_sender_is): rename
6503 (dbus_message_get_service): rename
6505 2003-04-24 Havoc Pennington <hp@redhat.com>
6507 * configure.in: add --enable-checks
6509 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
6511 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
6512 to use thread locks.
6513 (_dbus_connection_handler_destroyed_locked): move some private
6514 functions into proper docs group
6516 * dbus/dbus-internals.h: add _dbus_return_if_fail,
6517 _dbus_return_val_if_fail
6519 Throughout: use dbus_return_if_fail
6521 2003-04-23 James Willcox <jwillcox@gnome.org>
6524 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
6525 (dbus_connection_setup_with_g_main),
6526 (dbus_server_setup_with_g_main):
6527 * glib/test-dbus-glib.c: (main):
6528 * glib/test-thread-client.c: (main):
6529 * glib/test-thread-server.c: (new_connection_callback), (main):
6530 * tools/dbus-monitor.c: (main):
6532 Added a GMainContext argument to dbus_connection_setup_with_g_main()
6533 and dbus_server_setup_with_g_main().
6535 2003-04-20 Havoc Pennington <hp@pobox.com>
6537 * doc/dbus-specification.sgml: document the restrictions on
6538 message and service names
6540 2003-04-22 Havoc Pennington <hp@redhat.com>
6542 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
6543 support, and do some code cleanups to share more code and
6544 speed up array marshal/demarshal.
6546 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
6548 * configure.in: generate dbus-arch-deps.h
6550 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
6553 2003-04-22 Havoc Pennington <hp@redhat.com>
6555 * test/data/valid-messages/opposite-endian.message: fix test
6556 to use proper type for rply field
6558 * test/data/invalid-messages: add tests for below validation
6560 * dbus/dbus-message.c (decode_header_data): validate field types,
6561 and validate that named fields are valid names
6562 (decode_name_field): consider messages in the
6563 org.freedesktop.Local. namespace to be invalid.
6565 * dbus/dbus-string.c (_dbus_string_validate_name): new
6567 2003-04-19 Havoc Pennington <hp@pobox.com>
6569 * bus/driver.c (bus_driver_handle_hello): check limits and
6570 return an error if they are exceeded.
6572 * bus/connection.c: maintain separate lists of active and inactive
6573 connections, and a count of each. Maintain count of completed
6574 connections per user. Implement code to check connection limits.
6576 * dbus/dbus-list.c (_dbus_list_unlink): export
6578 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
6579 number of bytes in the message queue for a connection
6581 2003-04-18 Havoc Pennington <hp@pobox.com>
6583 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
6585 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
6588 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
6589 on realloc be sure to update the pointer in the keyring
6591 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
6592 offset to avoid writing to unallocated memory
6594 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
6595 try the next mechanism, so we properly handle OOM
6597 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
6599 (_dbus_keyring_new): fix OOM bug
6600 (_dbus_keyring_new_homedir): always set error; impose a maximum
6601 number of keys we'll load from the file, mostly to speed up the
6602 test suite and make its OOM checks more useful, but also for
6605 * dbus/dbus-auth.c (process_error_server): reject authentication
6606 if we get an error from the client
6607 (process_cancel): on cancel, send REJECTED, per the spec
6608 (process_error_client): send CANCEL if we get an error from the
6611 2003-04-18 Havoc Pennington <hp@pobox.com>
6613 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
6616 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
6619 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
6620 about DBUS_TEST_HOMEDIR once
6622 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
6625 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
6626 config file so we test the right thing
6628 Throughout: assorted docs improvements
6630 2003-04-18 Havoc Pennington <hp@pobox.com>
6632 * glib/dbus-gmain.c: adapt to watch changes
6634 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
6636 * dbus/dbus-server.h: remove dbus_server_handle_watch
6638 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
6640 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
6641 like DBusTimeout, so we don't need dbus_connection_handle_watch
6644 2003-04-17 Havoc Pennington <hp@redhat.com>
6646 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
6647 database usage so it all goes via the DBusUserDatabase cache.
6649 2003-04-17 Havoc Pennington <hp@redhat.com>
6651 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
6652 there was an OOM watch we skipped, we always return TRUE so we
6653 iterate again to have a look at it again. Fixes test suite hang.
6654 Code rearrangement also lets us lose some memset and only iterate
6655 over callbacks once.
6657 * bus/driver.c (bus_driver_handle_message): sense of test for
6660 2003-04-16 Havoc Pennington <hp@pobox.com>
6662 * doc/dbus-specification.sgml: make spec say serials are unsigned
6664 * dbus/dbus-message.h: change message serials to unsigned
6666 * dbus/dbus-connection.c: adapt to message serials being unsigned
6668 2003-04-15 Havoc Pennington <hp@pobox.com>
6670 * bus/bus.c: create and keep around a shared DBusUserDatabase
6673 * bus/connection.c (bus_connection_get_groups): don't cache
6674 groups for user in the connection object, since user database
6675 object now does that.
6677 2003-04-16 Havoc Pennington <hp@redhat.com>
6679 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
6680 list of size counters
6681 (_dbus_message_loader_putback_message_link): put back a popped link
6683 * dbus/dbus-connection.c
6684 (dbus_connection_set_max_live_messages_size): rename
6686 (dbus_connection_get_outgoing_size): get size of outgoing
6688 (_dbus_connection_set_connection_counter): remove this cruft
6690 2003-04-14 Havoc Pennington <hp@redhat.com>
6692 * dbus/dbus-userdb.c: user database abstraction, mostly to get
6693 caching, but at some point we might want to be able to use a
6696 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
6697 SHA1 conf file to test the sha1 auth mechanism, since the regular
6698 test always uses EXTERNAL when available.
6701 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
6702 add conf file that requires use of sha1 auth
6704 2003-04-13 Havoc Pennington <hp@pobox.com>
6706 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
6707 from Philip Blundell to send messages and monitor them.
6709 2003-04-13 Havoc Pennington <hp@pobox.com>
6711 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
6714 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
6717 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6718 fix to only recover unused bytes if we're already authenticated
6719 (_dbus_transport_get_is_authenticated): fix to still mark us
6720 authenticated if there are unused bytes.
6722 * bus/dispatch.c: implement security policy checking
6724 * bus/connection.c (bus_transaction_send_from_driver): new
6726 * bus/bus.c (bus_context_check_security_policy): new
6728 * bus/dispatch.c (send_service_nonexistent_error): delete this,
6729 now we just set the DBusError and it gets converted to an error
6732 * bus/connection.c (allow_user_function): enable code using actual
6733 data from the config file
6735 * bus/policy.c (list_allows_user): handle wildcard rules for
6736 user/group connection perms
6738 2003-04-13 Havoc Pennington <hp@pobox.com>
6740 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
6742 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
6744 * bus/policy.c (bus_policy_append_mandatory_rule)
6745 (bus_policy_append_default_rule, bus_policy_append_user_rule)
6746 (bus_policy_append_group_rule): new functions
6748 2003-04-12 Havoc Pennington <hp@pobox.com>
6750 * bus/config-parser.c (bus_config_parser_new): fix a memleak
6752 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
6753 the pid/gid/uid, just for paranoia.
6755 * test/break-loader.c (randomly_do_n_things): find a byte
6756 containing a type code, and randomly change it to a different
6759 2003-04-12 Havoc Pennington <hp@pobox.com>
6761 * bus/policy.h: change BusPolicy to be the thing from the config
6762 file, and rename old BusPolicy to BusClientPolicy
6764 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
6765 match change in how policy works
6767 * dbus/dbus-internals.h: mark assert_not_reached as
6768 __attribute((noreturn))__
6770 2003-04-11 Havoc Pennington <hp@redhat.com>
6772 * doc/dbus-specification.sgml: fix a spot with the wrong name for
6773 the broadcast service. Use boolean return for ServiceExists.
6775 2003-04-11 Havoc Pennington <hp@redhat.com>
6777 * configure.in: add another directory to look for qt in.
6779 2003-04-11 Havoc Pennington <hp@redhat.com>
6781 * AUTHORS: add Colin Walters
6783 2003-04-11 Havoc Pennington <hp@redhat.com>
6789 2003-04-11 Havoc Pennington <hp@redhat.com>
6791 * bus/messagebus.in: remove pid file when stopping the
6792 message bus, since the bus won't have privileges to remove it
6795 2003-04-11 Havoc Pennington <hp@redhat.com>
6797 * bus/bus.c (bus_context_new): move credentials change after
6800 2003-04-11 Havoc Pennington <hp@pobox.com>
6802 * test/decode-gcov.c: add "below average functions" to the
6803 coverage report, and change how some of the code works.
6805 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
6806 not in the coverage stats.
6808 * test/test-service.c (main): use _dbus_verbose not fprintf in a
6809 couple places so running the test suite doesn't result in megaspam.
6811 2003-04-11 Havoc Pennington <hp@pobox.com>
6813 * bus/dispatch.c (check_existent_service_activation): accept a no
6814 memory error in a place we didn't before
6816 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
6817 in case the first one failed," since the test suite is less
6820 2003-04-10 Havoc Pennington <hp@pobox.com>
6822 * bus/dispatch.c (check_segfault_service_activation): add test
6823 for launching an executable that just crashes.
6825 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
6826 don't leave a million cores. We'll see how portable this is.
6828 2003-04-10 Havoc Pennington <hp@pobox.com>
6830 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
6831 the possible parent failures before we fork, so that we don't
6832 fail to create a babysitter after creating the child.
6834 * bus/activation.c (bus_activation_activate_service): kill child
6835 if we don't successfully complete the activation.
6837 2003-04-10 Havoc Pennington <hp@redhat.com>
6839 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
6840 the connection if it's disconnected
6842 * bus/activation.c (bus_activation_service_created): use new
6843 transaction features to roll back removal of pending activation if
6844 we don't successfully create the service after all. Don't remove
6845 pending activation if the function fails.
6847 * dbus/dbus-list.c (_dbus_list_insert_before_link)
6848 (_dbus_list_insert_after_link): new code to facilitate
6851 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
6852 new functionality, so we can preallocate the ability to insert
6855 * bus/connection.c (bus_transaction_add_cancel_hook): new function
6856 allowing us to put custom hooks in a transaction to be used for
6857 cancelling said transaction
6859 * doc/dbus-specification.sgml: add some discussion of secondary
6860 service owners, and disallow zero-length service names
6862 * bus/services.c (bus_registry_acquire_service): new function,
6863 splits out part of bus_driver_handle_acquire_service() and fixes
6864 a bug where we didn't remove the service doing the acquiring
6865 from the secondary queue if we failed to remove the current owner
6866 from the front of the queue.
6868 2003-04-10 Alexander Larsson <alexl@redhat.com>
6870 * doc/dbus-specification.sgml:
6871 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
6873 2003-04-10 Alexander Larsson <alexl@redhat.com>
6878 Added files to cvsignore
6880 * dbus/dbus-message.h:
6881 * dbus/dbus-message.c: (dbus_message_iter_get_named):
6882 Make get_named() take two out argument and return a boolean.
6883 (dbus_message_iter_get_args_valist):
6884 Update usage of get_named().
6885 (dbus_message_iter_append_byte):
6887 (dbus_message_iter_append_named)
6889 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
6892 2003-04-10 Alexander Larsson <alexl@redhat.com>
6894 * dbus/dbus-marshal.[ch]:
6895 Add array_type_pos argument to _dbus_marshal_validate_arg.
6896 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
6898 * dbus/dbus-message.[ch]:
6899 Multi-dimensional arrays have full type specification in the
6900 outermost array. Iter code re-arranged to handle this.
6901 Added some more iter tests.
6903 * doc/dbus-specification.sgml:
6906 Update new array encoding description.
6907 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
6909 * test/data/invalid-messages/array-with-mixed-types.message:
6910 * test/data/valid-messages/array-of-array-of-uint32.message:
6911 Change to the new array format.
6913 * test/data/invalid-messages/too-short-dict.message:
6916 * test/data/valid-messages/recursive-types.message:
6917 Fix up and extend test.
6919 2003-04-10 Havoc Pennington <hp@pobox.com>
6921 * bus/dispatch.c: lots of fixes
6923 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
6924 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
6925 that was crack, broke the test service.
6927 * dbus/dbus-transport.c (_dbus_transport_open): fix error
6928 handling to avoid piling up errors if we get a failure on the
6931 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
6932 pid in assertion failures.
6934 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
6935 to some fixed size of file descriptor array. Don't return TRUE
6936 anytime a timeout exists, that led to lots of busy loop silliness
6939 2003-04-09 Havoc Pennington <hp@redhat.com>
6941 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
6942 I'd checked this in earlier but hadn't.
6944 2003-04-09 Havoc Pennington <hp@redhat.com>
6946 * bus/dispatch.c (bus_dispatch_test): get a bit further through
6947 the activation test (man this is getting old!)
6949 2003-04-09 Havoc Pennington <hp@redhat.com>
6951 * test/test-utils.c: use dispatch status function to fix this up
6953 * bus/connection.c (connection_watch_callback): don't dispatch
6955 (connection_timeout_callback): don't dispatch from here
6956 (bus_connections_setup_connection): set the dispatch status function
6957 (bus_connection_disconnected): unset it
6959 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
6960 used to add a connection to be dispatched
6961 (_dbus_loop_iterate): do the dispatching at the end of each
6964 * dbus/dbus-connection.c
6965 (dbus_connection_set_dispatch_status_function): new function
6966 allowing us to fix up main loop usage
6967 (_dbus_connection_last_unref): free all the various function
6969 (dbus_connection_dispatch): call the DispatchStatusFunction
6970 whenever this function returns
6971 (dbus_connection_handle_watch): call DispatchStatusFunction
6972 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
6973 (reply_handler_timeout): call DispatchStatusFunction
6974 (dbus_connection_flush): call DispatchStatusFunction
6976 2003-04-09 Havoc Pennington <hp@redhat.com>
6978 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
6981 * bus/dispatch.c (check_service_activated): fix bug in test
6983 * dbus/dbus-mainloop.c (check_timeout): fix this up
6985 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
6986 verbose output so we can sort out output from different processes,
6987 e.g. in the activation case.
6989 2003-04-08 Colin Walters <walters@gnu.org>
6991 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
6993 (bus_context_new): Set it.
6994 (bus_context_unref): Use it to delete the pid file.
6996 2003-04-08 Havoc Pennington <hp@redhat.com>
6998 * test/data/invalid-messages/array-with-mixed-types.message:
6999 regression test that fails for the moment
7001 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7002 tests for convenience
7004 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7005 array of nil, it broke things.
7007 * test/data/invalid-messages/array-of-nil.message: regression test
7009 * test/data/valid-messages/array-of-array-of-uint32.message:
7010 happened to write this so added it to suite
7012 2003-04-08 Havoc Pennington <hp@redhat.com>
7014 * bus/driver.c (bus_driver_handle_acquire_service): init
7015 retval/reply before checking name
7017 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7018 recursion depth argument
7020 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7021 in the public struct for future extension
7023 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7026 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7029 * doc/dbus-specification.sgml: fix typo
7031 2003-04-08 Alexander Larsson <alexl@redhat.com>
7033 Implemented recursive types, named types and new-style iters
7036 * glib/test-thread-client.c: (thread_func):
7037 * glib/test-thread-server.c: (handle_test_message):
7038 * test/test-service.c: (handle_echo):
7047 * dbus/dbus-internals.c: (_dbus_type_to_string):
7048 Update for new types.
7050 * dbus/dbus-marshal.[ch]:
7051 Implement recursive types and the new marshalling format.
7052 Remove hardcoded dict marshalling.
7053 Marshal named types.
7055 * dbus/dbus-message-builder.c:
7057 Remove references to old types
7059 * dbus/dbus-message.[ch]:
7060 New non-refcounted iter API that supports recursive iters.
7061 Use iters for appending, including support for recursive
7063 Add byte and named type support.
7064 Update everything to new marshalling formats.
7065 Add tests for new API.
7067 * dbus/dbus-protocol.h:
7068 Remove old array types.
7069 Add types: BYTE, ARRAY, DICT, NAMED
7071 * dbus/dbus-string.c:
7072 * dbus/dbus-sysdeps.c:
7073 Make parse_double locale safe.
7075 * dbus/dbus-test-main.c:
7081 * doc/dbus-specification.sgml:
7084 * test/data/incomplete-messages/missing-body.message:
7085 * test/data/invalid-messages/bad-boolean.message:
7086 * test/data/invalid-messages/bad-boolean-array.message:
7087 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7088 * test/data/invalid-messages/boolean-has-no-value.message-raw:
7089 * test/data/invalid-messages/too-short-dict.message:
7090 * test/data/valid-messages/dict-simple.message:
7091 * test/data/valid-messages/dict.message:
7092 * test/data/valid-messages/emptiness.message:
7093 * test/data/valid-messages/lots-of-arguments.message:
7094 * test/data/valid-messages/no-padding.message:
7095 * test/data/valid-messages/recursive-types.message:
7096 Add missing NAME fields
7097 Fix up dicts & arrays
7099 * test/data/invalid-messages/dict-with-nil-value.message:
7100 Removed, this is not invalid anymore.
7102 * test/data/valid-messages/recursive-types.message:
7103 Add new test for deeply recursive types.
7105 2003-04-07 Havoc Pennington <hp@pobox.com>
7107 * bus/driver.c (bus_driver_handle_acquire_service): return an
7108 error if you try to acquire a service that starts with ':'
7110 2003-04-07 Havoc Pennington <hp@redhat.com>
7112 * doc/dbus-specification.sgml: require that base service names
7113 start with ':' and that the base service is created/deleted
7114 as first and last things a connection does on the bus
7116 * bus/dispatch.c (check_existent_service_activation): lots more
7117 work on the activation test; it doesn't fully pass yet...
7119 * test/test-service.c (main): fix so we don't memleak the
7120 connection to the message bus
7121 (filter_func): accept a message asking us to exit
7123 2003-04-06 Havoc Pennington <hp@pobox.com>
7125 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
7128 * configure.in: fixes to Qt detection from Colin Walters
7130 * doc/Makefile.am: Only remove generated docbook dirs if they
7131 exist, from Colin Walters
7133 * dbus/dbus-bus.c: change how we set well-known connections to
7134 NULL, so that it works if a single connection is stored in
7135 two well-known array slots.
7137 * test/Makefile.am: remove a lot of stuff that isn't immediately
7138 useful, it's in CVS history if we want it.
7140 * test/test-service.c: use dbus-mainloop instead of that
7143 2003-04-06 Havoc Pennington <hp@pobox.com>
7145 * dbus/Makefile.am: split lists of sources into stuff that goes in
7146 the library, util functions that go in the lib and are also used
7147 elsewhere, and util functions that are used in tests/daemon but
7148 don't go in the lib.
7150 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
7151 here so it can be used in test binaries also
7153 2003-04-06 Havoc Pennington <hp@pobox.com>
7155 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
7156 here in the parent process, so we can return an error if it
7157 fails. Also, move some of the code into the child so the parent
7158 is less hosed if we fail midway through.
7160 * bus/bus.c (bus_context_new): move pidfile detection further up
7161 in the function, before we start overwriting sockets and such.
7163 * bus/messagebus.in: adjust this a bit, not sure if it will work.
7165 * configure.in: add --with-system-pid-file and --with-system-socket
7167 2003-04-06 Colin Walters <walters@verbum.org>
7169 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
7171 * bus/system.conf.in: Declare a pidfile.
7173 * bus/bus.c (bus_context_new): Test for an existing pid file, and
7174 create one (if appropriate).
7176 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
7177 (struct BusConfigParser) [pidfile]: New.
7178 (element_type_to_name, merge_included, start_busconfig_child)
7179 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7180 (bus_config_parser_unref): Free it.
7181 (bus_config_parser_get_pidfile): New function.
7183 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7185 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7187 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7189 * dbus/dbus-sysdeps.h: Prototype it.
7191 2003-04-06 Havoc Pennington <hp@pobox.com>
7193 * bus/bus.c (bus_context_new): print the address in here, rather
7194 than in main(), because we need to do it before forking the daemon
7196 * bus/dispatch.c (send_service_nonexistent_error): set the sender
7197 on the service nonexistent error
7199 * bus/driver.c (bus_driver_handle_acquire_service): set the
7200 sender on the AcquireService reply
7202 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7203 server also listen on a UNIX socket so services can connect to it.
7205 2003-04-06 Havoc Pennington <hp@pobox.com>
7207 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7208 so it detects deadlocks and also we actually init threads when
7211 2003-04-06 Havoc Pennington <hp@pobox.com>
7213 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7214 save the domain socket name, and unlink it when we disconnect the
7215 server. Means that at least when we exit normally, we won't leave
7216 a bunch of junk in /tmp
7218 * dbus/dbus-transport-unix.c
7219 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7220 memory management). (I was making a real change here but then
7223 2003-04-06 Havoc Pennington <hp@pobox.com>
7225 * bus/bus.c (bus_context_new): fix wrong handling of
7226 server_data_slot_unref() in the error case.
7228 * dbus/dbus-internals.h (_dbus_assert): change so it passes
7229 "(condition) != 0" to _dbus_real_assert so that
7230 "_dbus_assert (pointer)" doesn't cause a warning
7232 * bus/main.c (main): accept --print-address option to print out
7233 the message bus address
7235 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
7237 * dbus/dbus-transport.c (_dbus_transport_open): special error for
7238 "tmpdir" option to unix: address on client side
7240 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
7243 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
7244 we can use to create sockets in the test suite.
7246 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
7247 cleanly. To be used for testing.
7249 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
7251 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
7253 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7254 handle trying to call this when there's no servers active
7256 2003-04-05 Havoc Pennington <hp@pobox.com>
7262 2003-04-05 Havoc Pennington <hp@pobox.com>
7264 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
7265 crash on startup. Need to get "try starting the daemon"
7266 in the test suite I guess. ;-)
7268 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
7269 tracked the number of open connections; it's better done in
7270 application-specific code as you want it to span all servers etc.
7272 2003-04-05 Havoc Pennington <hp@pobox.com>
7274 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
7275 patch from Colin Walters
7277 2003-04-05 Havoc Pennington <hp@pobox.com>
7279 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
7280 reality; in fact multiple mechanisms are allowed.
7282 * dbus/dbus-internals.c (_dbus_real_assert)
7283 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
7284 _dbus_assert_not_reached() into functions, so that they don't show
7285 up in basic block counts for test coverage, and don't use up as
7286 much disk space. Does mean slower execution speed though, so
7287 assumes --disable-asserts is the normal production case.
7289 2003-04-05 Havoc Pennington <hp@pobox.com>
7291 * test/Makefile.am (dist-hook): also dist *.in files
7297 2003-04-05 Havoc Pennington <hp@pobox.com>
7299 * dbus/dbus-string.c: docs warning
7301 * dbus/dbus-spawn.c: missing docs
7303 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
7305 2003-04-05 Havoc Pennington <hp@pobox.com>
7307 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
7310 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
7311 to -1 once we've reaped the babysitter
7312 (_dbus_babysitter_handle_watch): do as much work as we can, not
7315 * bus/activation.c: add code using DBusBabysitter so that we
7316 handle it when a service fails to start up properly.
7317 (bus_activation_service_created): don't remove the activation
7318 entries as we go, just let them get removed when we free the pending
7319 activation. Unref reply messages after sending them.
7321 2003-04-05 Havoc Pennington <hp@pobox.com>
7323 * test/decode-gcov.c (main): print per-directory stats in the report
7325 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
7327 2003-04-05 Havoc Pennington <hp@pobox.com>
7329 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
7331 * test/decode-gcov.c: hack up a little program to suck data
7332 out of gcov files. Yes this is sort of silly.
7334 * configure.in: define something in config.h and do an
7335 AM_CONDITIONAL when gcov is enabled
7337 2003-04-04 Havoc Pennington <hp@redhat.com>
7339 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
7340 return a "babysitter" object that is used to monitor the status of
7341 the spawned process and reap it when required.
7343 * test/test-segfault.c, test/test-exit.c,
7344 test/test-sleep-forever.c: binaries that do various lame things,
7345 used in the test suite.
7347 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
7349 2003-04-03 Havoc Pennington <hp@pobox.com>
7351 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
7352 in preparation for modifying it, dbus-sysdeps is getting
7355 2003-04-03 Havoc Pennington <hp@redhat.com>
7357 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
7360 * bus/*.[hc]: adapt to mainloop change
7362 2003-04-03 Havoc Pennington <hp@redhat.com>
7364 * bus/activation.c (load_directory): fix up memleaks
7365 (bus_activation_entry_free): free the entry
7367 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
7368 we get one from the message bus; fix memleaks.
7370 * dbus/dbus-message.c (dbus_set_error_from_message): new function
7372 2003-04-03 Havoc Pennington <hp@pobox.com>
7374 * bus/config-parser.c (bus_config_parser_unref): free
7375 list of mechanisms, bug discovered by test suite enhancements
7376 (putting system.conf and session.conf into suite)
7378 * test/Makefile.am, test/test-service.c: add placeholder for a
7379 test service that we'll activate as part of test suite. Doesn't
7382 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
7383 setting NULL value, and use system malloc not dbus_malloc()
7384 when we have unavoidable memleakage.
7386 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
7387 didn't work, and support DBUS_BUS_ACTIVATION.
7389 * bus/activation.c (child_setup): pass our well-known bus type to
7392 * bus/config-parser.c: support <type> to specify well-known type
7394 * doc/dbus-specification.sgml: document the env variables to
7395 locate well-known buses and find service activator
7397 2003-04-02 Havoc Pennington <hp@redhat.com>
7399 * test/Makefile.am (all-local): add a rule to copy tests to
7400 builddir, so we can have generated tests. Use this to remove the
7401 silly hack for testing system.conf and session.conf. Will use this
7402 shortly to generate .service files pointing to test binaries.
7404 2003-04-02 Havoc Pennington <hp@redhat.com>
7406 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
7407 current alloc and needed new length, not max of the doubled
7408 allocation and needed new length. Also, when building tests,
7409 don't do the double-allocation stuff, just realloc every time.
7411 2003-04-02 Havoc Pennington <hp@redhat.com>
7413 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
7415 (_dbus_string_get_dirname): new
7416 (_dbus_sysdeps_test): new
7417 (_dbus_directory_open): include dirnames in error messages
7419 * bus/config-parser.c: interpret <include> and <includedir> and
7420 <servicedir> relative to config file location if the given
7421 filename is not absolute.
7423 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
7425 2003-04-02 Havoc Pennington <hp@redhat.com>
7427 * bus/connection.c (bus_transaction_send_error_reply): set sender
7428 service for the error, and unref the reply on success
7430 * bus/activation.c: convert to use BusTransaction so OOM can be
7432 (bus_activation_service_created): set sender of the message
7434 2003-04-01 Havoc Pennington <hp@redhat.com>
7436 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
7437 <includedir> (at least mostly)
7439 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
7440 first, then the user ID
7442 2003-04-01 Havoc Pennington <hp@pobox.com>
7444 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
7447 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
7449 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
7451 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
7452 socket 0777, and unlink any existing socket.
7454 * bus/bus.c (bus_context_new): change our UID/GID and fork if
7455 the configuration file so specifies; set up auth mechanism
7458 * bus/config-parser.c (bus_config_parser_content): add support
7459 for <fork> option and fill in code for <auth>
7461 * bus/system.conf.in: add <fork/> to default configuration,
7462 and limit auth mechanisms to EXTERNAL
7464 * doc/config-file.txt (Elements): add <fork>
7466 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
7467 (_dbus_change_identity): new function
7469 2003-03-31 Havoc Pennington <hp@redhat.com>
7471 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
7472 (_dbus_listen_unix_socket): fix off-by-one error in null
7473 termination spotted by Nalin
7475 2003-03-31 Havoc Pennington <hp@redhat.com>
7477 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
7478 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
7479 having a real home directory available.
7481 2003-03-31 Havoc Pennington <hp@redhat.com>
7483 * bus/Makefile.am (install-data-hook): create /var/run/dbus
7485 * bus/messagebus.in: add init script for Red Hat /etc/init.d
7487 * configure.in: add support for specifying a style of init script
7490 2003-03-31 Havoc Pennington <hp@redhat.com>
7492 Fix some annoying DBusString API and fix all affected code.
7494 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
7496 (_dbus_string_get_data): change to return string instead of using
7498 (_dbus_string_get_const_data): ditto
7499 (_dbus_string_get_data_len): ditto
7500 (_dbus_string_get_const_data_len): ditto
7502 2003-03-31 Havoc Pennington <hp@redhat.com>
7504 * bus/main.c (main): fix up the command line arguments to be nicer
7506 2003-03-31 Havoc Pennington <hp@redhat.com>
7508 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
7509 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
7510 final location that lands in the config file
7512 * bus/config-loader-expat.c (bus_config_load): fix type of
7515 * doc/TODO: remove TODO item for dbus_bus_get()
7517 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
7519 2003-03-31 Havoc Pennington <hp@pobox.com>
7521 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
7522 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
7523 argument since they are always client side
7525 * dbus/dbus-server.c (dbus_server_get_address): new function
7527 * bus/main.c (main): take the configuration file as an argument.
7529 * test/data/valid-config-files/debug-allow-all.conf: new file to
7530 use with dispatch.c tests for example
7532 * bus/test-main.c (main): require test data dir
7534 * bus/bus.c (bus_context_new): change this to take a
7535 configuration file name as argument
7537 * doc/config-file.txt (Elements): add <servicedir>
7539 * bus/system.conf, bus/session.conf: new files
7541 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
7542 well-known socket if none set
7544 * configure.in: create system.conf and session.conf
7546 2003-03-30 Havoc Pennington <hp@pobox.com>
7548 * bus/config-parser.c: hacking
7550 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
7551 to shut down, since it could cause weirdness with the DBusList
7554 * dbus/dbus-list.c (_dbus_list_test): add tests for the
7555 link-oriented stack routines
7556 (alloc_link): free the mempool if the first alloc from it fails
7558 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
7560 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
7562 (_dbus_string_skip_white): new
7564 * doc/config-file.txt (Elements): add <includedir>
7566 2003-03-28 Havoc Pennington <hp@pobox.com>
7568 * dbus/dbus-string.c (_dbus_string_copy_data_len)
7569 (_dbus_string_copy_data): new functions
7571 2003-03-28 Anders Carlsson <andersca@codefactory.se>
7573 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
7577 * dbus/dbus-memory.c:
7580 2003-03-28 Havoc Pennington <hp@pobox.com>
7582 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
7583 I think it may have just been superstition. Not sure.
7585 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
7586 failures that were not being handled.
7588 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
7590 * dbus/dbus-memory.c: add ability to set number of mallocs in a
7591 row that will fail on out-of-memory.
7593 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
7594 function for testing out-of-memory handling.
7596 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
7597 allocation functions, they do map exactly to the expat ones.
7599 2003-03-27 Havoc Pennington <hp@redhat.com>
7601 * bus/config-loader-libxml.c (bus_config_load): add another error
7604 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7607 Add note about automatic service activation.
7609 * doc/dbus-specification.sgml:
7610 Rename the specification and clarify a few things.
7612 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7615 * dbus/dbus-address.c:
7617 * dbus/dbus-marshal.c:
7618 * dbus/dbus-server-debug-pipe.c:
7619 * dbus/dbus-transport-unix.c:
7620 Fix documentation warnings.
7622 2003-03-26 Havoc Pennington <hp@pobox.com>
7624 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
7625 after every test so it's quick and easy to see which leaked, and
7626 so we test multiple dbus_shutdown() calls
7628 * configure.in: change configure.in XML stuff to also support
7631 * config-loader-libxml.c: some hacking
7633 * config-loader-expat.c: some hacking
7635 * config-parser.c: some hacking, plus tests
7637 2003-03-25 Havoc Pennington <hp@redhat.com>
7639 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
7641 * configure.in: add --with-xml option to specify XML library,
7642 right now only libxml is supported.
7644 * bus/config-loader-libxml.c, config-parser.c: sync some minor
7645 nonworking code between home and work, still just stubs
7647 2003-03-24 Havoc Pennington <hp@redhat.com>
7649 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
7652 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
7653 NULL argument for "message" if the error is a well-known one,
7654 fill in a generic message in this case.
7656 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
7659 * bus/test.c (bus_test_flush_bus): add
7661 * bus/policy.c (bus_policy_test): test code stub
7663 2003-03-24 Havoc Pennington <hp@pobox.com>
7665 * bus/connection.c (bus_connections_setup_connection): set up
7666 the "can this user connect" function, but it always returns
7667 TRUE until we have a config file parser so we can have a config
7668 file that allows connections.
7670 2003-03-23 Havoc Pennington <hp@pobox.com>
7672 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
7673 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
7674 the mutex, so we can check for proper memory management
7677 * dbus/dbus-dataslot.c: remove the mutex from
7678 DBusDataSlotAllocator and lock it manually when using it,
7679 to simplify fitting it into the global slots framework.
7681 * dbus/dbus-threads.c (init_static_locks): rework how we're
7682 handling global locks so they are easily shut down.
7684 * bus/policy.c (bus_policy_append_rule): fix
7686 * bus/test-main.c (main): check for memleaks
7688 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
7689 test suite check for memleaks
7691 * dbus/dbus-memory.c: add support in test mode for tracking
7692 number of outstanding blocks
7694 2003-03-23 Havoc Pennington <hp@pobox.com>
7696 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
7699 * dbus/dbus-hash.h: add ULONG hash keys
7701 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
7702 (_dbus_get_group_id): new function
7704 2003-03-20 Havoc Pennington <hp@redhat.com>
7706 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
7708 (dbus_connection_get_unix_user): new function
7710 2003-03-20 Havoc Pennington <hp@pobox.com>
7712 * bus/connection.c (bus_connection_send_oom_error): assert that
7713 message has a sender
7714 (connection_execute_transaction): ditto
7715 (bus_connection_preallocate_oom_error): fix to set the sender, and
7716 set recipient to the destination service, not the bus driver
7718 * bus/policy.c: hacking
7720 * dbus/dbus-message.c (dbus_message_service_is): new function
7721 (dbus_message_sender_is): new
7723 2003-03-19 Havoc Pennington <hp@redhat.com>
7725 * bus/policy.c: start sketching code for policy restrictions on
7726 what connections can do.
7728 2003-03-18 Havoc Pennington <hp@redhat.com>
7730 * doc/TODO: some notes on high-level todo items. Little nitpick
7731 stuff is all in @todo, so no need to add it here.
7733 * doc/config-file.txt: some notes on how config file might look
7735 2003-03-18 Anders Carlsson <andersca@codefactory.se>
7741 2003-03-17 Havoc Pennington <hp@redhat.com>
7743 * dbus/dbus-internals.h: add gcc attributes so that
7744 our printf-style functions warn on bad arguments to
7747 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
7750 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7753 2003-03-17 Havoc Pennington <hp@redhat.com>
7755 * bus/test-main.c (main): make it print something as it runs
7756 so make check doesn't look stuck
7758 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
7759 from CVS, now obsolete
7761 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7763 * bus/dispatch.c: (bus_dispatch):
7764 Refetch the service name since it may have been reallocated
7765 when dbus_message_set_sender was called.
7767 * dbus/dbus-sysdeps.c: (_dbus_accept):
7768 Add address and address length variables and use them to stop
7769 valgrind from complaining.
7771 2003-03-17 Havoc Pennington <hp@pobox.com>
7773 All tests pass, no memleaks, no valgrind complaints.
7775 * bus/test.c: refcount handler_slot
7777 * bus/connection.c (bus_connections_new): refcount
7778 connection_data_slot
7780 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
7781 bytes so that auth scripts pass.
7783 * bus/dispatch.c: init message_handler_slot so it gets allocated
7786 * bus/dispatch.c (message_handler_slot_ref): fix memleak
7788 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
7789 dealloc server_pipe_hash when no longer used for benefit of
7792 * dbus/dbus-auth.c (process_command): memleak fix
7794 * bus/dispatch.c (check_hello_message): memleak fix
7796 2003-03-16 Havoc Pennington <hp@pobox.com>
7798 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
7800 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7802 * bus/activation.c (bus_activation_activate_service): Append
7803 the pending activation entry to the list of pending activations.
7805 2003-03-16 Havoc Pennington <hp@pobox.com>
7807 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
7810 * dbus/dbus-address.c (create_entry): fix OOM handling when
7811 failing to alloc entry->method
7813 2003-03-16 Havoc Pennington <hp@pobox.com>
7815 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
7818 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7819 add some missing dbus_set_result
7821 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
7822 alloc the DBusMessageHandler
7824 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
7825 the transport here, since we call this from the finalizer; it
7826 resulted in a double-finalize.
7828 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
7829 where we tried to use transport->connection that was NULL,
7830 happened when transport was disconnected early on due to OOM
7832 * bus/*.c: adapt to handle OOM for watches/timeouts
7834 * dbus/dbus-transport-unix.c: port to handle OOM during
7837 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
7838 reference to unused bytes instead of a copy
7840 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
7843 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
7846 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
7849 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7851 * doc/dbus-specification.sgml:
7852 Document reply message for ActivateService.
7854 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7856 * bus/activation.c: (bus_pending_activation_entry_free),
7857 (bus_pending_activation_free), (bus_activation_new),
7858 (bus_activation_unref), (bus_activation_service_created),
7859 (bus_activation_activate_service):
7861 * bus/bus.c: (bus_context_new):
7862 * bus/desktop-file.c: (new_section):
7863 * bus/driver.c: (bus_driver_send_service_deleted),
7864 (bus_driver_handle_activate_service):
7865 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
7867 * dbus/dbus-connection.c:
7868 (dbus_connection_send_with_reply_and_block):
7869 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7870 * dbus/dbus-protocol.h:
7871 Make activation work better. Now pending activations will be queued
7872 and the daemon won't try to activate services that are already registered.
7874 2003-03-16 Havoc Pennington <hp@pobox.com>
7876 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
7879 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
7880 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
7882 2003-03-16 Havoc Pennington <hp@pobox.com>
7884 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
7885 this. always run the test suite before commit...
7887 * bus/*: adapt to DBusConnection API changes
7889 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
7890 requires renaming stuff to avoid dbus_connection_dispatch name
7893 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
7896 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7897 separate from _dbus_message_loader_return_buffer()
7899 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
7900 this, because it's now always broken to use; the number of
7901 messages in queue vs. the number still buffered by the message
7902 loader is undefined/meaningless. Should use
7903 dbus_connection_get_dispatch_state().
7904 (dbus_connection_dispatch): rename from
7905 dbus_connection_dispatch_message
7907 2003-03-16 Havoc Pennington <hp@pobox.com>
7909 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
7912 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7914 * dbus/dbus-connection.c:
7915 (dbus_connection_send_with_reply_and_block):
7916 Decrease connection->n_incoming when removing an entry
7918 * dbus/dbus-dict.c: (dbus_dict_entry_free),
7919 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7920 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7921 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
7922 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
7923 (dbus_dict_get_byte_array):
7924 Handle NULL arrays and strings. Also add support for byte arrays.
7926 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
7927 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
7928 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7929 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7930 (_dbus_demarshal_dict), (demarshal_and_validate_len),
7931 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
7932 * dbus/dbus-marshal.h:
7933 Add support for marshalling and demarshalling empty arrays and strings.
7935 * dbus/dbus-message.c: (dbus_message_append_args_valist),
7936 (dbus_message_append_string_array),
7937 (dbus_message_iter_get_boolean),
7938 (dbus_message_iter_get_boolean_array),
7939 (dbus_message_iter_get_int32_array),
7940 (dbus_message_iter_get_uint32_array),
7941 (dbus_message_iter_get_double_array),
7942 (dbus_message_iter_get_byte_array),
7943 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
7944 (check_message_handling):
7945 Add support for getting empty arrays and dicts.
7947 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
7948 Don't do any validation at all for now, that's better than just checking
7951 * test/data/valid-messages/emptiness.message:
7952 New test message with lots of empty arrays.
7954 2003-03-16 Havoc Pennington <hp@pobox.com>
7956 * dbus/dbus-connection.c
7957 (_dbus_connection_queue_received_message_link): new function that
7958 can't fail due to OOM
7960 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
7961 new function pops a message together with a list link
7964 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
7965 message queuing functions to avoid needing to alloc memory
7967 2003-03-16 Havoc Pennington <hp@pobox.com>
7969 Oops - test code was only testing failure of around 30 of the
7970 mallocs in the test path, but it turns out there are 500+
7971 mallocs. I believe this was due to misguided linking setup such
7972 that there was one copy of dbus_malloc etc. in the daemon and one
7973 in the shared lib, and only daemon mallocs were tested. In any
7974 case, the test case now tests all 500+ mallocs, and doesn't pass
7975 yet, though there are lots of fixes in this patch.
7977 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
7978 this so that it doesn't need to allocate memory, since it
7979 has no way of indicating failure due to OOM (and would be
7980 annoying if it did).
7982 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
7984 * bus/Makefile.am: rearrange to create two self-contained
7985 libraries, to avoid having libraries with overlapping symbols.
7986 that was resulting in weirdness, e.g. I'm pretty sure there
7987 were two copies of global static variables.
7989 * dbus/dbus-internals.c: move the malloc debug stuff to
7992 * dbus/dbus-list.c (free_link): free list mempool if it becomes
7995 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
7997 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8000 * bus/dispatch.c (bus_dispatch_add_connection): free
8001 message_handler_slot when no longer using it, so
8002 memory leak checkers are happy for the test suite.
8004 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8006 * bus/bus.c (new_connection_callback): disconnect in here if
8007 bus_connections_setup_connection fails.
8009 * bus/connection.c (bus_connections_unref): fix to free the
8011 (bus_connections_setup_connection): if this fails, don't
8012 disconnect the connection, just be sure there are no side
8015 * dbus/dbus-string.c (undo_alignment): unbreak this
8017 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8019 (_dbus_auth_new): fix the order in which we free strings
8022 * bus/connection.c (bus_connection_disconnected): fix to
8023 not send ServiceDeleted multiple times in case of memory
8026 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8027 get the base service name
8028 (dbus_bus_register_client): don't return base service name,
8029 instead store it on the DBusConnection and have an accessor
8031 (dbus_bus_register_client): rename dbus_bus_register()
8033 * bus/dispatch.c (check_hello_message): verify that other
8034 connections on the bus also got the correct results, not
8035 just the one sending hello
8037 2003-03-15 Havoc Pennington <hp@pobox.com>
8039 Make it pass the Hello handling test including all OOM codepaths.
8040 Now to do other messages...
8042 * bus/services.c (bus_service_remove_owner): fix crash when
8043 removing owner from an empty list of owners
8044 (bus_registry_ensure): don't leave service in the list of
8045 a connection's owned services if we fail to put the service
8048 * bus/connection.c (bus_connection_preallocate_oom_error): set
8049 error flag on the OOM error.
8051 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8052 handle _dbus_transport_set_connection failure
8054 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8055 to create watches up front and simply enable/disable them as
8057 (unix_connection_set): this can now fail on OOM
8059 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8060 of enabling/disabling a watch or timeout.
8062 * bus/loop.c (bus_loop_iterate): don't touch disabled
8065 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8067 2003-03-15 Havoc Pennington <hp@pobox.com>
8069 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8070 write useful test code, after all that futzing around ;-)
8072 Test does not yet pass because we can't handle OOM in
8073 _dbus_transport_messages_pending (basically,
8074 dbus_connection_preallocate_send() does not prealloc the write
8075 watch). To fix this, I think we need to add new stuff to
8076 set_watch_functions, namely a SetEnabled function so we can alloc
8077 the watch earlier, then enable it later.
8079 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8080 dbus-memory.c to the convenience lib
8082 * bus/test.c: rename some static functions to keep them clearly
8083 distinct from stuff in connection.c. Handle client disconnection.
8085 2003-03-14 Havoc Pennington <hp@pobox.com>
8087 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8088 transport, tests more of the real codepath. Set up clients
8089 with bus_setup_debug_client.
8091 * bus/test.c (bus_setup_debug_client): function to set up debug
8092 "clients" on the main loop
8094 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8097 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8100 * dbus/dbus-server-debug.c: support a debug server based on pipes
8102 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8103 (_dbus_close): new function
8105 * configure.in: check for socketpair
8107 2003-03-14 Havoc Pennington <hp@redhat.com>
8109 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8112 * dbus/dbus-transport-debug.c: rework this a good bit to be
8113 less complicated. hopefully still works.
8115 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8118 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8121 * dbus/dbus-message.c (dbus_message_copy): rename from
8122 dbus_message_new_from_message, fix it up to copy
8123 all the message fields, add test case
8125 * bus/dispatch.c (bus_dispatch_test): add some more test code,
8126 not quite passing yet
8128 2003-03-14 Havoc Pennington <hp@pobox.com>
8130 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
8131 until no work remains" in test code. (the large diff here
8132 is just code movement, no actual changes)
8134 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
8135 1, no point waiting around for test code.
8136 (_dbus_server_debug_accept_transport): unref the timeout
8137 after adding it (right?)
8139 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
8141 2003-03-13 Havoc Pennington <hp@redhat.com>
8143 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
8146 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
8149 * dbus/dbus-connection.h: Make AddWatchFunction and
8150 AddTimeoutFunction return a bool so they can fail on out-of-memory
8152 * bus/bus.c (bus_context_new): set up timeout handlers
8154 * bus/connection.c (bus_connections_setup_connection): set up
8157 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
8160 * bus/bus.c (bus_context_new): adapt to changes
8162 * bus/connection.c: adapt to changes
8164 * test/watch.c: adapt to DBusWatch changes
8166 * bus/dispatch.c (bus_dispatch_test): started adding this but
8169 2003-03-14 Anders Carlsson <andersca@codefactory.se>
8171 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
8173 2003-03-13 Havoc Pennington <hp@pobox.com>
8175 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
8176 set up a test framework as for the library
8178 2003-03-12 Havoc Pennington <hp@pobox.com>
8180 Throughout: purge global variables, introduce BusActivation,
8181 BusConnections, BusRegistry, etc. objects instead.
8183 * bus/bus.h, bus/bus.c: introduce BusContext as a global
8186 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8187 going to redo this a bit differently I think
8189 2003-03-12 Havoc Pennington <hp@redhat.com>
8191 Mega-patch that gets the message bus daemon initially handling
8192 out-of-memory. Work still needed. Also lots of random
8193 moving stuff to DBusError instead of ResultCode.
8195 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8197 * dbus/dbus-connection.c
8198 (dbus_connection_send_with_reply_and_block): use DBusError
8200 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8203 * dbus/dbus-connection.c (dbus_connection_send): drop the result
8204 code here, as the only failure possible is OOM.
8206 * bus/connection.c (bus_connection_disconnect):
8207 rename bus_connection_disconnected as it's a notification only
8209 * bus/driver.c (bus_driver_handle_acquire_service): don't free
8210 "name" on get_args failure, should be done by get_args;
8211 don't disconnect client for bad args, just return an error.
8212 (bus_driver_handle_service_exists): ditto
8214 * bus/services.c (bus_services_list): NULL-terminate returned array
8216 * bus/driver.c (bus_driver_send_service_lost)
8217 (bus_driver_send_service_acquired): send messages from driver to a
8218 specific client to the client's unique name, not to the broadcast
8221 * dbus/dbus-message.c (decode_header_data): reject messages that
8222 contain no name field
8223 (_dbus_message_get_client_serial): rename to
8224 dbus_message_get_serial and make public
8225 (_dbus_message_set_serial): rename from set_client_serial
8226 (_dbus_message_set_reply_serial): make public
8227 (_dbus_message_get_reply_serial): make public
8229 * bus/connection.c (bus_connection_foreach): allow stopping
8230 iteration by returning FALSE from foreach function.
8232 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
8233 (dbus_connection_free_preallocated_send)
8234 (dbus_connection_preallocate_send): new API for sending a message
8235 without possibility of malloc failure.
8236 (dbus_connection_send_message): rename to just
8237 dbus_connection_send (and same for whole function family)
8239 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
8241 * dbus/dbus-sysdeps.c (_dbus_exit): new function
8243 * bus/activation.c: handle/return errors
8245 * dbus/dbus-errors.h: add more DBUS_ERROR #define
8247 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
8248 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
8249 (_dbus_result_from_errno): move to this file
8251 2003-03-10 Anders Carlsson <andersca@codefactory.se>
8253 * dbus/dbus-marshal.c:
8254 (_dbus_marshal_set_string):
8255 Take a length argument so we can marshal the correct string
8258 (_dbus_marshal_dict), (_dbus_demarshal_dict),
8259 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
8260 (_dbus_marshal_test):
8261 * dbus/dbus-marshal.h:
8262 Add support for marshalling and demarshalling dicts.
8264 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8265 Add support for TYPE DICT.
8267 * dbus/dbus-message.c: (set_string_field):
8268 Adjust header padding.
8270 (dbus_message_append_args_valist), (dbus_message_append_dict),
8271 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
8272 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
8273 (check_message_handling), (check_have_valid_message):
8274 * dbus/dbus-message.h:
8275 Add functions for setting and getting dicts.
8277 * dbus/dbus-protocol.h:
8283 * doc/dbus-specification.sgml:
8284 Add information about how dicts are marshalled.
8286 * test/data/invalid-messages/dict-with-nil-value.message:
8287 * test/data/invalid-messages/too-short-dict.message:
8288 * test/data/valid-messages/dict-simple.message:
8289 * test/data/valid-messages/dict.message:
8290 Add sample messages containing dicts.
8292 2003-03-08 Anders Carlsson <andersca@codefactory.se>
8294 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
8296 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8299 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8300 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
8301 (dbus_dict_set_int32), (dbus_dict_set_uint32),
8302 (dbus_dict_set_double), (dbus_dict_set_string),
8303 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8304 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8305 (dbus_dict_set_string_array), (_dbus_dict_test):
8307 Fix according to comments from Havoc.
8309 2003-03-06 Michael Meeks <michael@server.home>
8311 * configure.in: if we don't have kde-config, disable have_qt.
8313 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8318 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8319 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
8320 (dbus_dict_remove), (dbus_dict_get_value_type),
8321 (dbus_dict_get_keys), (dbus_dict_put_boolean),
8322 (dbus_dict_put_int32), (dbus_dict_put_uint32),
8323 (dbus_dict_put_double), (dbus_dict_put_string),
8324 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
8325 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
8326 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
8327 (dbus_dict_get_int32), (dbus_dict_get_uint32),
8328 (dbus_dict_get_double), (dbus_dict_get_string),
8329 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
8330 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
8331 (dbus_dict_get_string_array), (_dbus_dict_test):
8333 Add DBusDict implementation
8335 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
8339 2003-03-04 Havoc Pennington <hp@pobox.com>
8341 * test/data/auth/*: adapt to changes
8343 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
8344 USERID_BASE64 and change USERNAME_BASE64 to put in username not
8347 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
8348 more stuff from being in a context name, to make the protocol
8349 simpler to deal with
8351 * dbus/dbus-errors.c (dbus_error_has_name): new function
8352 (dbus_error_is_set): new function
8354 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
8355 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
8357 * dbus/dbus-connection.c (dbus_connection_flush): also read
8358 messages during a flush operation
8360 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
8362 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8364 * configure.in: Check for gethostbyname on Solaris.
8366 * dbus/dbus-transport.c: (_dbus_transport_open):
8367 Remove duplicate "tcp" entry.
8369 * doc/dbus-specification.sgml:
8370 Clarify some things.
8372 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8374 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
8375 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
8376 (_dbus_keyring_test):
8377 * dbus/dbus-md5.c: (_dbus_md5_compute):
8378 * dbus/dbus-sha.c: (_dbus_sha_compute):
8381 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8383 * README: Add some things.
8385 2003-03-04 Anders Carlsson <andersca@codefactory.se>
8387 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
8388 after case DBUS_TYPE_BOOELAN.
8390 2003-03-02 Havoc Pennington <hp@pobox.com>
8392 * test/break-loader.c (randomly_set_extreme_ints): add test that
8393 sets really huge and small integers
8395 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
8396 that length of boolean array fits in the string, and that
8397 string has room for boolean value in single-bool case.
8399 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
8400 optional value to "ALIGN" command which is what to fill the
8403 * test/data/valid-messages/no-padding.message: add regression
8404 test for the message padding problem
8406 2003-03-02 Havoc Pennington <hp@pobox.com>
8408 * dbus/dbus-message.c (decode_header_data): fix to always init
8409 message_padding, from Benjamin Dauvergne
8411 2003-03-02 Havoc Pennington <hp@pobox.com>
8417 2003-03-01 Joe Shaw <joe@assbarn.com>
8419 * configure.in: Check for "struct cmsgcred" and try to access its
8420 members for BSD-like unices.
8422 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
8423 _dbus_read_credentials_unix_socket().
8424 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
8425 read() for reading the credential byte off the unix socket. Use
8426 struct cmsgcred on systems that support it.
8428 2003-02-27 Alexander Larsson <alexl@redhat.com>
8432 Make gthreads-2.0 dependency optional. Don't build thread test if
8435 2003-02-27 Havoc Pennington <hp@pobox.com>
8437 * dbus/dbus-connection.c
8438 (dbus_connection_send_message_with_reply_and_block): fix doh!
8439 doh! doh! bug that resulted in never removing a reply from the
8440 queue, no wonder we called get_reply_serial so much ;-)
8442 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
8443 and client serial instead of demarshaling them every time
8445 2003-02-27 Havoc Pennington <hp@pobox.com>
8447 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
8448 more inlined, using dbus-string-private.h, speeds things up
8451 * dbus/dbus-string.c (_dbus_string_free): apply align offset
8452 when freeing the string
8453 (_dbus_string_steal_data): fix for align offset
8454 (undo_alignment): new function
8456 2003-02-26 Havoc Pennington <hp@redhat.com>
8458 All kinds of audit fixes from Owen, plus initial attempt to
8459 handle unaligned memory returned from malloc.
8461 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
8462 leave room for align_offset and nul byte
8463 (fixup_alignment): function to track an align_offset and
8464 ensure real->str is aligned
8465 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
8466 to allow a nul byte plus align offset
8467 (_dbus_string_lock): fix overflow issue
8468 (_dbus_string_init_const_len): add assertions on sanity of len,
8469 assign allocated to be ALLOCATION_PADDING larger than len
8470 (set_length): fixup the overflow handling
8471 (_dbus_string_get_data_len): fix overflow in assertion
8472 (open_gap): detect overflow in size of gap to be opened
8473 (_dbus_string_lengthen): add overflow check
8474 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
8475 (_dbus_string_append): add overflow check
8476 (_dbus_string_append_unichar): overflow
8477 (_dbus_string_delete): fix overflow in assertion
8478 (_dbus_string_copy_len): overflow in assertion
8479 (_dbus_string_replace_len): overflows in assertions
8480 (_dbus_string_find): change to implement in terms of
8481 _dbus_string_find_to
8482 (_dbus_string_find_to): assorted fixage
8483 (_dbus_string_equal_c_str): assert c_str != NULL,
8484 fix logic so the function works
8485 (_dbus_string_ends_with_c_str): fix overflow thingy
8486 (_dbus_string_base64_encode): overflow fix
8487 (_dbus_string_validate_ascii): overflow
8488 (_dbus_string_validate_nul): overflow
8490 2003-02-26 Havoc Pennington <hp@redhat.com>
8492 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
8494 2003-02-26 Alexander Larsson <alexl@redhat.com>
8497 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
8499 * dbus/dbus-connection.c:
8500 * dbus/dbus-connection.h:
8501 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
8502 Add dbus_connection_set_wakeup_main_function and use it when queueing
8503 incoming and outgoing messages.
8506 * dbus/dbus-dataslot.c:
8507 Threadsafe usage of DBusDataSlotAllocator
8509 * dbus/dbus-message.c: (dbus_message_get_args_iter):
8512 * dbus/dbus-server-unix.c:
8515 * glib/dbus-gmain.c:
8516 Implement the new wakeup functions for glib.
8519 * glib/test-thread-client.c:
8520 * glib/test-thread-server.c:
8521 * glib/test-thread.h:
8522 Initial cut at some thread test code. Not really done yet.
8524 2003-02-26 Havoc Pennington <hp@pobox.com>
8526 * dbus/dbus-connection.c
8527 (dbus_connection_send_message_with_reply_and_block): fix crash
8528 where we ref'd the outgoing message instead of the returned reply
8530 * dbus/dbus-transport-unix.c (do_authentication): check read watch
8531 at the end of this function, so if we didn't need to read for
8532 authentication, we reinstall it for receiving messages
8534 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
8535 a NULL sender for peer-to-peer case
8537 * dbus/dbus-transport-unix.c (check_read_watch): handle
8538 !authenticated case correctly
8540 * glib/dbus-gmain.c: add support for DBusServer
8542 * dbus/dbus-server.c: add data slot support
8544 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
8545 return values and handle errors
8547 * dbus/dbus-dataslot.c: factor out the data slot stuff from
8550 * Doxyfile.in (INPUT): add glib subdir
8552 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
8553 setup_with_g_main instead of hookup_with_g_main; write docs
8555 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8557 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
8558 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8559 * dbus/dbus-message.c: (dbus_message_append_boolean),
8560 (dbus_message_append_boolean_array),
8561 (dbus_message_get_args_valist), (_dbus_message_test):
8562 * dbus/dbus-message.h:
8563 * doc/dbus-specification.sgml:
8564 Various fixes as pointed out by Havoc.
8566 * test/data/invalid-messages/bad-boolean-array.message:
8567 * test/data/invalid-messages/bad-boolean.message:
8568 Add invalid boolean value test cases.
8570 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8572 * dbus/dbus-internals.c: (_dbus_type_to_string):
8573 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
8574 (_dbus_marshal_validate_arg):
8575 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8576 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8577 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
8578 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
8579 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
8580 (dbus_message_iter_get_double),
8581 (dbus_message_iter_get_boolean_array), (message_iter_test):
8582 * dbus/dbus-message.h:
8583 * dbus/dbus-protocol.h:
8584 * doc/dbus-specification.sgml:
8585 * test/data/valid-messages/lots-of-arguments.message:
8586 Add support for boolean and boolean array types.
8588 2003-02-23 Havoc Pennington <hp@pobox.com>
8590 * dbus/dbus-keyring.c: finish most of this implementation and
8593 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
8594 these barf if the error isn't cleared to NULL
8596 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
8597 (_dbus_create_directory): new function
8599 * dbus/dbus-errors.c (dbus_set_error): fix warning
8601 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
8602 (_dbus_string_hex_decode): new function
8603 (test_hex_roundtrip): test code
8605 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
8607 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
8609 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
8610 the save-to-temp/rename trick to atomically write the new file
8611 (_dbus_string_parse_uint): new function
8613 2003-02-22 Havoc Pennington <hp@pobox.com>
8615 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
8617 2003-02-22 Havoc Pennington <hp@pobox.com>
8619 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
8620 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
8622 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
8624 * dbus/test/data/sha-1: add US government test suite for SHA-1
8626 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8628 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
8629 Make string arrays NULL-terminated.
8631 * dbus/dbus-memory.c: (dbus_free_string_array):
8632 * dbus/dbus-memory.h:
8633 New function for freeing NULL-terminated string arrays.
8635 * dbus/dbus-message-builder.c: (append_quoted_string),
8636 (_dbus_message_data_load):
8637 Add support for array types.
8639 * dbus/dbus-message.c: (check_message_handling):
8640 Add more types as test cases.
8642 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
8643 (_dbus_string_parse_double):
8644 Add the start offset to the end offset.
8646 * test/data/valid-messages/lots-of-arguments.message:
8647 New test message with lots of arguments.
8649 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8651 * dbus/dbus-message.c: (dbus_message_append_nil),
8652 (dbus_message_append_int32), (dbus_message_append_uint32),
8653 (dbus_message_append_double), (dbus_message_append_string),
8654 (dbus_message_append_int32_array),
8655 (dbus_message_append_uint32_array),
8656 (dbus_message_append_double_array),
8657 (dbus_message_append_byte_array),
8658 (dbus_message_append_string_array):
8659 Fix all out-of-memory handling in these functions.
8661 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8663 * dbus/dbus-message.c: (dbus_message_append_nil):
8666 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8668 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8669 (dbus_message_append_nil), (dbus_message_append_int32_array),
8670 (dbus_message_append_uint32_array),
8671 (dbus_message_append_double_array),
8672 (dbus_message_append_byte_array),
8673 (dbus_message_append_string_array), (dbus_message_get_args_valist),
8674 (dbus_message_iter_get_int32_array),
8675 (dbus_message_iter_get_uint32_array),
8676 (dbus_message_iter_get_double_array),
8677 (dbus_message_iter_get_byte_array),
8678 (dbus_message_iter_get_string_array):
8680 * dbus/dbus-message.h:
8681 Add functions for appending and getting arrays.
8683 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8685 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
8686 element size at least 8 bytes, fixes mempool tests on
8689 2003-02-20 Alexander Larsson <alexl@redhat.com>
8691 * dbus/dbus-transport-unix.c (unix_do_iteration):
8692 Unlock the connection mutex during a blocking select call.
8693 Add todo about how we need a way to wake up the select.
8695 * dbus/dbus-connection-internal.h:
8696 * dbus/dbus-connection.c:
8697 Add _dbus_connection_lock and _dbus_connection_unlock.
8699 2003-02-19 Havoc Pennington <hp@pobox.com>
8701 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
8702 Doxyfile.in, not Doxyfile
8704 * dbus/dbus-keyring.c: do some hacking on this
8706 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
8708 * dbus/dbus-errors.c (dbus_set_error_const): do not call
8710 (dbus_set_error): remove dbus_error_init, check for message ==
8711 NULL *before* we sprintf into it, and add @todo about including
8712 system headers in this file
8714 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
8716 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
8718 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
8719 get various bits of user information based on either username
8721 (_dbus_homedir_from_username): new function
8723 2003-02-19 Anders Carlsson <andersca@codefactory.se>
8726 Add check for nonposix getpwnam_r
8728 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
8729 Align the pool element size to a sizeof (void *) boundary.
8731 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
8732 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
8733 General Solaris fixes.
8735 * test/data/valid-messages/simplest-manual.message:
8736 Explicitly state that we want little-endian packing.
8738 2003-02-19 Mikael Hallendal <micke@codefactory.se>
8740 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8742 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
8743 Added to create a transport connecting using a tcp/ip socket.
8745 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
8746 to a tcp socket at given host and port.
8747 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
8750 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8752 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
8753 Added to create a server listening on a TCP/IP socket.
8755 2003-02-19 Havoc Pennington <hp@pobox.com>
8757 Throughout: mop up all the Doxygen warnings and undocumented
8760 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
8761 to search any paths.
8763 * dbus/dbus-threads.c: move global mutex initializers to
8764 dbus-internals.h, multiple prototypes was confusing doxygen
8765 besides being kind of ugly
8767 * Doxyfile (PREDEFINED): have Doxygen define
8768 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
8769 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
8770 (do not abuse the feature! it's for stuff like the autogenerated
8771 macros in dbus-md5.c, not just for things you don't feel like
8774 2003-02-18 Havoc Pennington <hp@pobox.com>
8776 * dbus/dbus-string.c (_dbus_string_zero): new function
8778 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
8779 wrap it in some dbus-friendly API
8781 * dbus/dbus-types.h: add 16-bit types
8783 2003-02-18 Joe Shaw <joe@assbarn.com>
8785 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
8786 credentials from our currently running process.
8787 (get_word): Fix a buglet where we were copying the entire length
8788 instead of relative to our position.
8790 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
8791 keys on the stack... it's 640k of data.
8793 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
8794 read the credentials byte off the socket, even if we don't have
8796 (_dbus_poll): Implement poll() using select() for systems which
8799 * glib/test-dbus-glib.c (main): Print out an error if no
8800 parameters are given.
8802 * test/data/auth/fallback.auth-script: Added. Tests that a client
8803 can fallback to a secondary auth mechanism if the first fails.
8805 2003-02-18 Havoc Pennington <hp@pobox.com>
8809 2003-02-17 Havoc Pennington <hp@pobox.com>
8811 * doc/dbus-specification.sgml: lots of cosmetic
8812 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
8813 env variable to DBUS_BUS_ADDRESS, s/client/application/,
8814 s/server/bus/ (except in authentication section). Add a section
8815 "Message Bus Message Routing"
8817 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
8823 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8825 * doc/dbus-specification.sgml:
8826 Specification updates.
8828 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8830 * bus/activation.c: (bus_activation_init), (child_setup),
8831 (bus_activation_activate_service):
8833 * bus/main.c: (main):
8834 Set DBUS_ADDRESS environment variable.
8836 * dbus/dbus-errors.c: (dbus_set_error):
8837 Don't use va_copy since that's a C99 feature.
8839 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
8840 (_dbus_spawn_async):
8841 * dbus/dbus-sysdeps.h:
8842 Add child_setup_func to _dbus_spawn_async.
8844 * doc/dbus-specification.sgml:
8845 Update specification.
8847 * test/spawn-test.c: (setup_func), (main):
8850 2003-02-17 Alexander Larsson <alexl@redhat.com>
8852 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
8855 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8859 * doc/dbus-test-plan.sgml:
8860 Add test plan document.
8865 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8867 * dbus/dbus-message.c: (decode_header_data),
8868 (_dbus_message_loader_return_buffer):
8869 Set the header padding amount when loading a message.
8871 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8873 * bus/dispatch.c: (send_one_message):
8874 Only send broadcast messages to registered connections.
8876 * dbus/dbus-message.c: (dbus_message_name_is):
8877 * dbus/dbus-message.h:
8878 New convenience function.
8880 * dbus/dbus-transport-debug.c: (do_reading):
8881 Only dispatch one message per run.
8884 * test/bus-test.c: (new_connection_callback), (die),
8885 (test_hello_client1_handler), (test_hello_client2_handler),
8886 (test_hello_replies), (main):
8888 * test/bus-test-loop.[ch]:
8891 2003-02-16 Havoc Pennington <hp@pobox.com>
8893 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8894 backward conditional
8896 2003-02-16 Alexander Larsson <alexl@redhat.com>
8898 * dbus/dbus-connection.c:
8899 Implement sent_message_with_reply. (with_reply_and block is still
8901 Made dispatch_message not lose message if OOM.
8903 * dbus/dbus-errors.h:
8904 Add NoReply error (for reply timeouts).
8906 2003-02-16 Alexander Larsson <alexl@redhat.com>
8908 * dbus/dbus-hash.c (_dbus_hash_table_unref):
8909 Actually free keys and values when destroying hashtable.
8911 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8913 * dbus/dbus-auth.c: (client_try_next_mechanism):
8916 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
8917 Return TRUE if there's no thread implementation around.
8919 * glib/dbus-gmain.c: (free_source),
8920 (dbus_connection_hookup_with_g_main):
8921 Make sure to remove the GSource when the connection is finalized.
8923 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8925 * bus/dispatch.c: (bus_dispatch_message_handler):
8926 * dbus/dbus-errors.h:
8927 Return an error if someone tries to send a message to a service
8930 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8932 * bus/activation.c: (load_directory), (bus_activation_init),
8933 (bus_activation_activate_service):
8936 (bus_driver_handle_activate_service), (bus_driver_handle_message):
8937 More work on the activation handling.
8939 * dbus/dbus-errors.h:
8940 Add some error messages
8942 * dbus/dbus-message.c: (dbus_message_new_error_reply):
8943 * dbus/dbus-message.h:
8944 New function that creates an error message.
8946 * dbus/dbus-protocol.h:
8947 Add ACTIVATE_SERVER message.
8949 * dbus/dbus-server-unix.c: (unix_handle_watch),
8950 (_dbus_server_new_for_domain_socket):
8951 Call _dbus_fd_set_close_on_exec.
8953 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
8954 (_dbus_spawn_async), (_dbus_disable_sigpipe),
8955 (_dbus_fd_set_close_on_exec):
8956 * dbus/dbus-sysdeps.h:
8957 Add _dbus_fd_set_close_on exec function. Also add function that checks
8958 that all open fds are set to close-on-exec and warns otherwise.
8960 * dbus/dbus-transport-unix.c:
8961 (_dbus_transport_new_for_domain_socket):
8962 Call _dbus_fd_set_close_on_exec.
8964 2003-02-16 Havoc Pennington <hp@pobox.com>
8966 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
8967 allow people to avoid setting SIGPIPE to SIG_IGN
8968 (_dbus_connection_new_for_transport): disable SIGPIPE unless
8969 we've been asked not to
8971 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8973 * dbus/dbus-list.c: (_dbus_list_append_link),
8974 (_dbus_list_prepend_link):
8975 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
8979 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8982 * bus/activation.c: (bus_activation_entry_free),
8983 (add_desktop_file_entry), (load_directory), (bus_activation_init):
8985 * bus/main.c: (main):
8986 Add simple activation support, doesn't work yet though.
8988 2003-02-15 Zack Rusin <zack@kde.org>
8990 * qt/dbus-qthread.cpp: small casting fix
8992 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8994 * dbus/dbus-errors.c: (dbus_set_error):
8995 * dbus/dbus-errors.h:
8996 Add a few errors and make dbus_set_error void.
8998 * dbus/dbus-sysdeps.c:
8999 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9000 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9001 * dbus/dbus-sysdeps.h:
9002 Add _dbus_spawn_async.
9004 * test/spawn-test.c: (main):
9005 Test for _dbus_spawn_async.
9007 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9009 * dbus/dbus-internals.h:
9010 Fix build without tests.
9012 * dbus/dbus-list.c: (alloc_link):
9013 Fix a segfault when a malloc fails.
9015 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9016 (dbus_malloc0), (dbus_realloc):
9017 Add support for malloc debugging.
9019 2003-02-15 Alexander Larsson <alexl@redhat.com>
9021 * dbus/dbus-threads.c:
9022 * dbus/dbus-threads.h:
9023 Add condvars. Remove static mutext from API.
9024 Implement static mutexes by initializing them from threads_init.
9026 * glib/dbus-gthread.c:
9027 * qt/dbus-qthread.cpp:
9028 Update with the thread api changes.
9033 Turn StaticMutex into normal mutex + init function.
9034 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9035 _dbus_list_append_link, _dbus_list_prepend_link
9038 * dbus/dbus-sysdeps.c:
9039 * dbus/dbus-sysdeps.h:
9040 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9041 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9043 * dbus/dbus-protocol.h:
9044 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9046 * dbus/dbus-message.c:
9047 Make ref/unref atomic.
9050 * dbus/dbus-connection-internal.h:
9051 * dbus/dbus-connection.c:
9052 * dbus/dbus-connection.h:
9054 Change _peek to _borrow,_return & _steal_borrowed.
9055 Change disconnect callback to event.
9056 Make dbus_connection_dispatch_messages reentrant.
9058 * dbus/dbus-transport.c:
9059 Don't ref the connection on calls to the transport
9062 * dbus/dbus-message-handler.c:
9065 * glib/dbus-gmain.c:
9066 Don't use peek_message anymore
9069 * test/debug-thread.c:
9070 * test/debug-thread.h:
9071 Simple thread implementation that asserts() on deadlocks in
9072 single-threaded code.
9075 (main) Call debug_threads_init.
9078 Use disconnect message instead of disconnect callback.
9082 Don't call dbus_connection_set_disconnect_function. Instead export
9083 bus_connection_disconnect.
9086 Call bus_connection_disconnect when we get a disconnected message.
9088 2003-02-15 Havoc Pennington <hp@pobox.com>
9090 * dbus/dbus-message.c (dbus_message_new): fool around with the
9093 2003-02-14 Havoc Pennington <hp@pobox.com>
9095 * dbus/dbus-mempool.c: fail if the debug functions so indicate
9097 * dbus/dbus-memory.c: fail if the debug functions indicate we
9100 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9101 (_dbus_decrement_fail_alloc_counter): debug functions to
9102 simulate memory allocation failures
9104 2003-02-14 Havoc Pennington <hp@pobox.com>
9106 * dbus/dbus-errors.h (struct DBusError): add a word of padding
9109 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9111 * bus/driver.c: (bus_driver_handle_hello):
9113 * bus/services.c: (bus_service_lookup):
9114 Reorder message sending so we get a more sane order.
9116 * test/bus-test.c: (message_handler):
9119 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9121 * bus/driver.c: (bus_driver_send_service_deleted),
9122 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9123 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9124 (bus_driver_send_welcome_message),
9125 (bus_driver_handle_list_services),
9126 (bus_driver_handle_acquire_service),
9127 (bus_driver_handle_service_exists):
9128 * dbus/dbus-bus.c: (dbus_bus_register_client),
9129 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9130 * dbus/dbus-errors.c: (dbus_result_to_string):
9131 * dbus/dbus-errors.h:
9132 * dbus/dbus-message.c: (dbus_message_append_args),
9133 (dbus_message_append_args_valist), (dbus_message_get_args),
9134 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
9135 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
9136 (dbus_message_iter_get_byte_array),
9137 (dbus_message_iter_get_string_array), (message_iter_test),
9138 (check_message_handling), (_dbus_message_test):
9139 * dbus/dbus-message.h:
9140 * test/bus-test.c: (main):
9141 Change fields to arguments in messages, so that they won't be
9142 confused with header fields.
9144 * glib/test-dbus-glib.c: (main):
9145 Remove append_fields from hello message.
9147 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9149 * dbus/dbus-errors.c:
9150 * dbus/dbus-message.c:
9151 * dbus/dbus-string.c:
9152 Documentation fixes.
9154 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9156 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
9158 Implement support for timeouts in dbus-glib.
9160 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9162 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9163 * dbus/dbus-message.c: (process_test_subdir):
9164 * test/break-loader.c: (find_breaks_based_on):
9165 Plug some memory leaks.
9167 2003-02-13 Richard Hult <rhult@codefactory.se>
9169 * bus/main.c: Fix build.
9171 * dbus/dbus-errors.h:
9172 * dbus/dbus-errors.c: Fix copyright for Anders.
9174 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9179 * bus/connection.c: (bus_connection_foreach):
9182 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9183 (unescape_string), (new_section), (parse_section_start),
9184 (parse_key_value), (report_error), (bus_desktop_file_load),
9185 (bus_desktop_file_get_string):
9186 * bus/desktop-file.h:
9187 Use DBusError for error reporting.
9189 * bus/dispatch.c: (send_one_message),
9190 (bus_dispatch_message_handler):
9191 * bus/driver.c: (bus_driver_send_service_deleted),
9192 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9193 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9194 (bus_driver_send_welcome_message),
9195 (bus_driver_handle_list_services),
9196 (bus_driver_handle_acquire_service),
9197 (bus_driver_handle_service_exists):
9198 * bus/loop.c: (bus_loop_run):
9200 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9202 * bus/utils.c: (bus_wait_for_memory):
9204 New files with general utility functions.
9206 * dbus/dbus-internals.h:
9207 Remove _DBUS_HANDLE_OOM.
9209 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9211 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9212 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9213 * dbus/dbus-errors.h:
9214 Add DBusError structure.
9216 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9218 * test/data/valid-messages/standard-acquire-service.message:
9219 * test/data/valid-messages/standard-hello.message:
9220 * test/data/valid-messages/standard-list-services.message:
9221 * test/data/valid-messages/standard-service-exists.message:
9222 Add some standard messages.
9224 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9226 * bus/driver.c: (bus_driver_send_welcome_message),
9227 (bus_driver_handle_list_services),
9228 (bus_driver_handle_acquire_service),
9229 (bus_driver_handle_service_exists), (bus_driver_handle_message):
9230 Update for API changes in libdbus.
9232 * dbus/dbus-message.c: (dbus_message_new_reply):
9233 * dbus/dbus-message.h:
9234 Remove the name argument. The spec states that replies shouldn't
9237 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9239 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
9240 (report_error), (bus_desktop_file_load), (lookup_section),
9241 (lookup_line), (bus_desktop_file_get_raw),
9242 (bus_desktop_file_get_string):
9243 * bus/desktop-file.h:
9244 Some fixes, and new functions for getting a key value from a section.
9246 2003-02-13 Havoc Pennington <hp@pobox.com>
9248 * test/data/auth/fail-after-n-attempts.auth-script: new test
9250 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
9253 2003-02-13 Havoc Pennington <hp@pobox.com>
9255 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
9256 dbus_credentials_match were backward
9258 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
9259 NO_CREDENTIALS and ROOT_CREDENTIALS
9261 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
9262 into here. Never process more commands after we've reached an
9263 end state; store further data as unused bytes.
9265 * test/data/auth/*: add more auth tests
9267 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
9268 command to match exact string and EXPECT_UNUSED to match unused
9271 * test/Makefile.am (dist-hook): fix to dist all the test stuff
9273 2003-02-12 Havoc Pennington <hp@pobox.com>
9275 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
9276 \r off of popped lines
9278 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
9281 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
9284 2003-02-12 Havoc Pennington <hp@pobox.com>
9286 * dbus/Makefile.am: remove break-loader from the build, since it
9289 * configure.in: add --enable-gcov to turn on coverage profiling
9290 flags and disable optimization
9292 2003-02-10 Havoc Pennington <hp@pobox.com>
9294 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
9295 initial cut at test framework for DBusAuth from laptop.
9296 Doesn't quite work yet but it compiles and I need to get
9297 it off the 266mhz laptop. ;-)
9299 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
9300 fix a memleak in error case
9302 2003-02-12 Anders Carlsson <andersca@codefactory.se>
9305 * bus/desktop-file.c:
9306 * bus/desktop-file.h:
9307 Add a desktop file parser.
9309 2003-02-11 Zack Rusin <zack@kde.org>
9311 * qt/message.[h|cpp]: sample implementation
9312 of the KDE wrapper for DBusMessage
9314 2003-02-09 Zack Rusin <zack@kde.org>
9316 * test/bus-test.c: make_it_compile
9317 * doc/dbus-specification.sgml: minimal semantic fix
9319 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9325 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9328 * dbus/dbus-break-loader.c:
9330 * test/break-loader.c:
9331 Move dbus-break-loader to test/ and rename it to break-loader.
9333 2003-02-02 Havoc Pennington <hp@pobox.com>
9335 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
9336 for code to manage cookies in your home directory
9338 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
9340 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
9341 to authenticate, then disconnect the client.
9343 2003-02-03 Alexander Larsson <alexl@redhat.com>
9345 * dbus/dbus-message.c (dbus_message_append_fields):
9348 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9350 * doc/dbus-specification.sgml:
9351 Update address format section.
9353 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9356 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
9357 (message_handler), (new_connection_callback), (loop_quit),
9361 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9363 * bus/driver.c: (bus_driver_handle_service_exists):
9364 Simplify the code a bit.
9366 * dbus/dbus-bus.c: (dbus_bus_service_exists):
9369 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9372 Add libdbus-daemon.la and link to it.
9374 2003-02-01 James Willcox <jwillcox@gnome.org>
9376 * bus/driver.c: (bus_driver_handle_own_service):
9377 Actually include the service reply code in the message.
9379 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9381 * bus/driver.c: (bus_driver_handle_service_exists):
9382 Don't unref the incoming message.
9384 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9386 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
9388 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9390 * dbus/dbus-server.c: (dbus_server_listen):
9391 * dbus/dbus-transport.c: (_dbus_transport_open):
9392 ifdef out the calls to the debug transport and server.
9394 2003-02-02 Alexander Larsson <alexl@redhat.com>
9396 * dbus/dbus-watch.c (dbus_watch_get_flags):
9397 Add note in the docs that ERROR or HANGUP won't be returned
9398 and are assumed always on.
9400 * glib/dbus-gmain.c (add_watch):
9401 Always add IO_ERR | IO_HUP
9403 * dbus/dbus-message.h:
9404 Add semicolon after dbus_message_iter_get_string_array().
9405 Makes qt code build again
9407 2003-02-01 Anders Carlsson <andersca@codefactory.se>
9409 * bus/driver.c: (create_unique_client_name),
9410 (bus_driver_handle_hello):
9411 Don't take a name, just use a numeric id to identify
9415 * dbus/dbus-bus.c: (dbus_bus_register_client),
9416 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9418 Add new convenience functions for communicating with the bus.
9420 * dbus/dbus-message.h:
9422 * dbus/dbus-protocol.h:
9425 2003-02-01 Alexander Larsson <alexl@redhat.com>
9427 * dbus/dbus-message.c (dbus_message_append_fields):
9428 Add some more doc comments.
9430 2003-02-01 Havoc Pennington <hp@pobox.com>
9432 * dbus/dbus-break-loader.c (randomly_modify_length): change
9433 a 4-byte value in the message as if it were a length
9435 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
9436 execute bit on saved files
9438 2003-02-01 Havoc Pennington <hp@pobox.com>
9440 * dbus/dbus-break-loader.c (main): new program to find messages
9441 that break the loader.
9443 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
9444 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
9446 * dbus/dbus-string.c (_dbus_string_set_byte): new
9448 2003-01-31 Havoc Pennington <hp@pobox.com>
9450 * dbus/dbus-message.c: refactor the test code to be more general,
9451 in preparation for writing a "randomly permute test cases to
9452 try to break the loader" program.
9454 2003-01-31 Havoc Pennington <hp@pobox.com>
9456 * doc/dbus-specification.sgml: work on the specification
9458 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
9459 the protocol version of the message.
9461 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
9462 no longer specifies that.
9463 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
9466 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
9467 "break" for DBUS_TYPE_NIL, remove @todo
9469 2003-01-31 Havoc Pennington <hp@pobox.com>
9471 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
9472 just set_is_error/get_is_error as this is a commonly-used
9473 function, and write docs.
9475 2003-01-31 Anders Carlsson <andersca@codefactory.se>
9477 * dbus/dbus-address.c: (dbus_address_entry_free):
9478 Free key and value lists.
9480 * dbus/dbus-internals.c: (_dbus_type_to_string):
9481 Add the types we didn't have.
9483 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9484 (_dbus_marshal_validate_arg):
9487 * dbus/dbus-message.c: (dbus_message_set_sender):
9488 Remove todo about being able to set sender to NULL.
9490 (dbus_message_set_is_error_reply),
9491 (dbus_message_get_is_error_reply):
9492 * dbus/dbus-message.h:
9495 * dbus/dbus-protocol.h:
9496 Add error reply flag.
9498 * test/data/valid-messages/opposite-endian.message:
9499 Add NIL type to test.
9501 2003-01-31 Havoc Pennington <hp@pobox.com>
9503 * doc/dbus-specification.sgml: fully specify the header. Add
9504 flags and major protocol version, and change header/body len to
9507 * dbus/dbus-message-builder.c (append_saved_length): append length
9510 * dbus/dbus-message.c (dbus_message_create_header): change header
9511 length and body length to unsigned. Add the new fields from the
9513 (_dbus_message_loader_return_buffer): unsigned header/body len
9515 2003-01-30 Havoc Pennington <hp@pobox.com>
9517 * dbus/dbus-auth.c: rework to use only REJECTED, no
9520 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
9521 use REJECTED, suggested by Mark McLoughlin
9523 2003-01-30 Havoc Pennington <hp@pobox.com>
9525 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
9526 a better way to report errors here. e.g. "unix address lacks
9527 path" or something. also "no such file" when the path doesn't
9530 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
9532 (dbus_parse_address): add @todo about documenting address format,
9533 and allowing , and ; to be escaped
9535 2003-01-30 Anders Carlsson <andersca@codefactory.se>
9538 Add dbus-address.[ch]
9540 * dbus/dbus-address.c: (dbus_address_entry_free),
9541 (dbus_address_entries_free), (create_entry),
9542 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
9543 (dbus_parse_address), (_dbus_address_test):
9544 * dbus/dbus-address.h:
9545 New files for dealing with address parsing.
9547 * dbus/dbus-connection.c:
9548 Document timeout functions.
9550 * dbus/dbus-message.c:
9551 Document dbus_message_new_from_message.
9553 * dbus/dbus-server-debug.c:
9556 * dbus/dbus-server.c: (dbus_server_listen):
9557 Parse address and use correct server implementation.
9559 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
9560 * dbus/dbus-string.h:
9561 New function with test.
9563 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
9567 * dbus/dbus-transport-debug.c:
9570 * dbus/dbus-transport.c: (_dbus_transport_open):
9571 Parse address and use correct transport implementation.
9573 2003-01-30 Havoc Pennington <hp@pobox.com>
9575 * dbus/dbus-message.c: use message->byte_order instead of
9576 DBUS_COMPILER_BYTE_ORDER throughout.
9577 (dbus_message_create_header): pad header to align the
9578 start of the body of the message to 8-byte boundary
9580 * dbus/dbus-marshal.h: make all the demarshalers take const
9581 DBusString arguments.
9583 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
9584 validate message args here, so we don't have to do slow validation
9585 later, and so we catch bad messages as they are incoming. Also add
9586 better checks on header_len and body_len. Also fill in
9589 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
9590 implemented properly)
9591 (_dbus_string_validate_nul): new function to check all-nul
9593 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
9594 get_arg_end_pos and remove all validation
9595 (_dbus_marshal_validate_arg): actually do validation here.
9597 2003-01-29 Havoc Pennington <hp@pobox.com>
9599 * dbus/dbus-message.c (check_message_handling): fix assertion
9600 failure on set_client_serial
9602 2003-01-28 Havoc Pennington <hp@pobox.com>
9604 * dbus/dbus-server-debug.c: Add doc section comments
9606 * dbus/dbus-transport-debug.c: add doc section comments
9608 2003-01-28 Havoc Pennington <hp@redhat.com>
9610 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
9611 the reverse order from how I had it
9612 (_dbus_string_base64_encode): reverse encoding order. I was
9613 basically byteswapping everything during encoding.
9615 2003-01-28 Anders Carlsson <andersca@codefactory.se>
9617 * dbus/dbus-connection-internal.h:
9618 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
9619 (_dbus_connection_remove_timeout):
9620 Add functions for adding and removing timeouts.
9622 * dbus/dbus-message.c: (dbus_message_new_from_message):
9623 Add new function that takes a message and creates an exact
9624 copy of it, but with the refcount set to 1.
9625 (check_message_handling):
9628 * dbus/dbus-server-protected.h:
9629 * dbus/dbus-server.c: (_dbus_server_init_base),
9630 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
9631 (dbus_server_set_timeout_functions):
9632 (_dbus_server_remove_timeout):
9633 New functions so that a server can add and remove timeouts.
9635 (dbus_server_listen):
9636 Add commented out call to dbus_server_debug_new.
9638 * dbus/dbus-timeout.c: (_dbus_timeout_new):
9639 Actually set the handler, doh.
9641 * dbus/dbus-transport.c: (_dbus_transport_open):
9642 Add commented out call to dbus_transport_debug_client_new.
9645 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
9647 2003-01-28 Havoc Pennington <hp@pobox.com>
9649 * dbus/dbus-message.c (check_message_handling): function to check
9650 on the loaded message, iterates over it etc.
9652 2003-01-28 Havoc Pennington <hp@pobox.com>
9654 * test/Makefile.am (dist-hook): fix make distdir
9656 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
9658 2003-01-27 Havoc Pennington <hp@pobox.com>
9660 * dbus/dbus-mempool.c (time_for_size): replace printf with
9663 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
9664 empty lines; fix the SAVE_LENGTH stuff to be
9665 START_LENGTH/END_LENGTH so it actually works; couple other
9668 * test/Makefile.am (dist-hook): add dist-hook for .message files
9670 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
9671 can be constant or locked.
9672 (_dbus_string_free): allow freeing a const string as
9675 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
9677 * dbus/dbus-test-main.c (main): take an argument which is the
9678 directory containing test data
9680 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
9681 argument to this and load all the messages in test/data/
9682 checking that they can be loaded or not loaded as appropriate.
9684 2003-01-27 Anders Carlsson <andersca@codefactory.se>
9686 * bus/dispatch.c: (bus_dispatch_message_handler):
9687 Dispatch messages sent to services.
9689 * bus/driver.c: (bus_driver_send_service_deleted),
9690 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9691 (bus_driver_send_service_acquired):
9692 Add helper functions for sending service related messages.
9694 (bus_driver_send_welcome_message):
9695 Send HELLO_REPLY instead of WELCOME.
9697 (bus_driver_handle_list_services):
9698 Send LIST_SERVICES_REPLY instead of SERVICES.
9700 (bus_driver_handle_own_service),
9701 (bus_driver_handle_service_exists):
9702 New message handlers.
9704 (bus_driver_handle_message):
9705 Invoke new message handlers.
9707 (bus_driver_remove_connection):
9708 Don't remove any services here since that's done automatically
9709 by bus_service_remove_owner now.
9712 New function signatures.
9714 * bus/services.c: (bus_service_add_owner):
9715 Send ServiceAcquired message if we're the only primary owner.
9717 (bus_service_remove_owner):
9718 Send ServiceAcquired/ServiceLost messages.
9720 (bus_service_set_prohibit_replacement),
9721 (bus_service_get_prohibit_replacement):
9722 Functions for setting prohibit replacement.
9724 (bus_service_has_owner):
9725 New function that checks if a connection is in the owner queue of
9729 Add new function signatures.
9731 * dbus/dbus-list.c: (_dbus_list_test):
9732 Add tests for _dbus_list_remove_last and traversing the list backwards.
9735 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
9736 go any further, so return NULL then.
9738 * dbus/dbus-protocol.h:
9739 Add new messages, service flags and service replies.
9741 2003-01-26 Havoc Pennington <hp@pobox.com>
9743 * dbus/dbus-message-builder.c: implement, completely untested.
9745 * test/data/*: add data to be used in testing.
9746 ".message" files are our simple loadable text format.
9747 ".message-raw" will be binary dumps of messages.
9749 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
9751 2003-01-26 Havoc Pennington <hp@pobox.com>
9753 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
9755 * dbus/dbus-errors.c (dbus_result_to_string): add
9758 * dbus/dbus-message-builder.c: new file, will contain code to load
9759 up messages from files. Not implemented yet.
9761 2003-01-26 Havoc Pennington <hp@pobox.com>
9763 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
9764 the sender by setting to NULL
9766 2003-01-26 Havoc Pennington <hp@pobox.com>
9768 The unit tests pass, but otherwise untested. If it breaks, the
9769 tests should have been better. ;-)
9771 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
9774 * dbus/dbus-message.c: redo everything so we maintain
9775 message->header as the only copy of the various fields.
9776 This avoids the possibility of out-of-memory in some cases,
9777 for example dbus_message_lock() can't run out of memory anymore,
9778 and avoids extra copying. Figured I may as well go ahead and do
9779 this since it was busted for dbus_message_lock to not return
9780 failure on OOM, and dbus_message_write_header was totally
9781 unchecked for OOM. Also fixed some random other bugs.
9783 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
9784 that strings are nul-terminated. Also, end_pos can be equal
9785 to string length just not greater than, I think.
9786 (_dbus_marshal_set_int32): new function
9787 (_dbus_marshal_set_uint32): new function
9788 (_dbus_marshal_set_string): new function
9790 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
9791 a warning, init timeout_list to NULL
9792 (dbus_connection_send_message): don't use uninitialized variable
9795 * dbus/dbus-string.c (_dbus_string_replace_len): new function
9797 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9799 * bus/driver.c: (bus_driver_handle_hello),
9800 (bus_driver_send_welcome_message):
9803 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9805 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
9806 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9807 (dbus_connection_unref):
9808 * dbus/dbus-marshal.c: (_dbus_marshal_test):
9809 * dbus/dbus-message.c: (dbus_message_unref),
9812 (dbus_message_get_fields):
9813 Remove debugging printout.
9815 (_dbus_message_loader_return_buffer):
9816 Don't store the header string.
9818 (_dbus_message_test):
9821 2003-01-26 Richard Hult <rhult@codefactory.se>
9823 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
9824 the file descriptor list, since it can change under us.
9826 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9828 * glib/dbus-gmain.c: (dbus_connection_prepare),
9829 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
9830 (remove_watch), (dbus_connection_hookup_with_g_main):
9831 Rewrite the glib handling to use its own GSource instead of a
9832 GIOChannel so we can catch messages put in the queue while waiting
9835 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9838 * bus/connection.c: (connection_disconnect_handler),
9839 (connection_watch_callback), (bus_connection_setup):
9840 * bus/dispatch.c: (send_one_message),
9841 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
9842 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
9844 * bus/driver.c: (bus_driver_send_service_deleted),
9845 (bus_driver_send_service_created), (bus_driver_handle_hello),
9846 (bus_driver_send_welcome_message),
9847 (bus_driver_handle_list_services), (bus_driver_remove_connection),
9848 (bus_driver_handle_message):
9850 Refactor code, put the message dispatching in its own file. Use
9851 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
9854 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9856 * dbus/dbus-internals.h:
9857 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
9859 * dbus/dbus-message.c: (dbus_message_get_sender):
9860 * dbus/dbus-message.h:
9861 Implement dbus_message_get_sender.
9863 * dbus/dbus-protocol.h:
9864 Add message and service defines.
9866 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9868 * dbus/dbus-connection.c: (dbus_connection_send_message):
9869 * dbus/dbus-message-internal.h:
9870 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
9871 (dbus_message_write_header):
9872 Remove _dbus_messag_unlock and don't set the client serial on a
9873 message if one already exists.
9875 2003-01-24 Havoc Pennington <hp@pobox.com>
9877 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
9880 * bus/driver.c (bus_driver_handle_list_services): fix a leak
9883 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9885 * dbus/dbus-list.c: (alloc_link), (free_link):
9886 Use a memory pool for the links.
9888 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9890 * bus/connection.c: (bus_connection_foreach):
9892 Add new bus_connection_foreach function.
9894 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
9895 Add function that broadcasts a message to all clients.
9897 (bus_driver_send_service_created), (bus_driver_handle_hello),
9898 (bus_driver_send_welcome_message),
9899 (bus_driver_handle_list_services), (bus_driver_message_handler):
9900 Implement functions that take care of listing services, and notifying
9901 clients when new services are created.
9903 * bus/services.c: (bus_services_list):
9905 Add new function that returns an array of strings with the currently
9906 registered services.
9909 * glib/dbus-gmain.c:
9910 Update copyright year.
9912 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9914 * dbus/dbus-connection.c: (dbus_connection_send_message):
9915 Unlock the message in case it was sent earlier.
9917 (dbus_connection_send_message_with_reply_and_block):
9918 Remove the reply message from the list.
9920 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9921 Set array_len and new_pos correctly.
9923 (_dbus_marshal_test):
9924 Remove debug output.
9926 * dbus/dbus-message-internal.h:
9927 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
9928 New function that returns the reply serial.
9930 (_dbus_message_unlock):
9931 New function that unlocks a message and resets its header.
9933 (dbus_message_append_string_array),
9934 (dbus_message_get_fields_valist),
9935 (dbus_message_iter_get_field_type),
9936 (dbus_message_iter_get_string_array),
9937 (dbus_message_get_fields),
9938 (dbus_message_append_fields_valist):
9939 Handle string arrays.
9941 (dbus_message_set_sender):
9942 Make this function public since the bus daemon needs it.
9944 (decode_header_data):
9945 Set the reply serial to -1 initially.
9947 * dbus/dbus-message.h:
9948 Add dbus_message_set_sender.
9950 2003-01-24 Havoc Pennington <hp@pobox.com>
9952 * doc/dbus-specification.sgml: add some stuff
9954 2003-01-22 Havoc Pennington <hp@pobox.com>
9956 * doc/dbus-specification.sgml: Start to document the protocol.
9958 2003-01-22 Havoc Pennington <hp@pobox.com>
9960 * dbus/dbus-connection.c
9961 (dbus_connection_send_message_with_reply_and_block): add some @todo
9963 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
9965 2003-01-21 Havoc Pennington <hp@pobox.com>
9967 (patch untested because can't compile)
9969 * bus/driver.c (create_unique_client_name): make this function
9970 never recycle client names. Also, caller should initialize
9973 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
9975 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9977 * dbus/dbus-marshal.c: (_dbus_marshal_double),
9978 (_dbus_marshal_int32), (_dbus_marshal_uint32),
9979 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
9980 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
9981 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9982 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9983 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
9984 * dbus/dbus-marshal.h:
9985 * dbus/dbus-protocol.h:
9986 Add support for marshalling and demarshalling integer, double
9989 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9994 * bus/connection.c: (connection_disconnect_handler):
9995 Remove the connection from the bus driver's list.
9997 (connection_watch_callback): Dispatch messages.
9999 (free_connection_data): Free connection name.
10001 (bus_connection_setup): Add connection to the bus driver's list.
10002 (bus_connection_remove_owned_service):
10003 (bus_connection_set_name), (bus_connection_get_name):
10004 Add functions for setting and getting the connection's name.
10006 * bus/connection.h:
10007 Add function headers.
10009 * bus/driver.c: (create_unique_client_name),
10010 (bus_driver_handle_hello_message),
10011 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10012 (bus_driver_add_connection), (bus_driver_remove_connection):
10015 * bus/services.c: (bus_service_free):
10017 New file that handles communication and registreation with the bus
10020 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10022 * dbus/dbus-connection.c: (dbus_connection_send_message):
10023 Add a new client_serial parameter.
10025 (dbus_connection_send_message_with_reply):
10026 Remove a @todo since we've implemented the blocking function.
10028 (dbus_connection_send_message_with_reply_and_block):
10029 New function that sends a message and waits for a reply and
10030 then returns the reply.
10032 * dbus/dbus-connection.h:
10035 * dbus/dbus-errors.c: (dbus_result_to_string):
10036 * dbus/dbus-errors.h:
10037 Add new DBUS_RESULT.
10039 * dbus/dbus-message-internal.h:
10040 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10041 (_dbus_message_set_sender), (dbus_message_write_header),
10042 (dbus_message_new_reply), (decode_header_data),
10043 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10044 * dbus/dbus-message.h:
10045 Add new functions that set the reply serial and sender.
10046 Also marshal and demarshal them correctly and add test.
10048 * dbus/dbus-protocol.h:
10049 Add new DBUS_MESSAGE_TYPE_SENDER.
10051 * glib/dbus-glib.h:
10052 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10053 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10054 (dbus_connection_hookup_with_g_main):
10055 * glib/test-dbus-glib.c: (main):
10056 Rewrite to use GIOChannel and remove the GSource crack.
10058 * test/echo-client.c: (main):
10059 * test/watch.c: (check_messages):
10060 Update for changed APIs
10062 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10064 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10066 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10067 Create a DBusTimeoutList.
10068 (dbus_connection_set_timeout_functions): Add new function to
10069 set timeout callbacks
10071 * dbus/dbus-connection.h: Add public DBusTimeout API.
10073 * dbus/dbus-message.c: (dbus_message_get_service):
10074 * dbus/dbus-message.h: New function.
10076 * dbus/dbus-server.c: Fix small doc typo.
10078 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10080 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10082 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10083 of the string, just as long as specified.
10085 2003-01-19 Havoc Pennington <hp@pobox.com>
10087 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10090 * dbus/dbus-server.c (dbus_server_set_max_connections)
10091 (dbus_server_get_max_connections, dbus_server_get_n_connections):
10092 keep track of current number of connections, and add API for
10093 setting a max (but haven't implemented enforcing the max yet)
10095 2003-01-18 Havoc Pennington <hp@pobox.com>
10097 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10098 reading/writing if read_watch != NULL or write_watch != NULL.
10100 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10101 the message loader code to actually load message->header and
10102 message->body into the newly-created message.
10104 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10107 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10108 (dbus_connection_get_max_message_size)
10109 (dbus_connection_set_max_live_messages_size)
10110 (dbus_connection_get_max_live_messages_size): implement some
10111 resource limitation functions
10113 * dbus/dbus-resources.c: new file implementing some of the
10114 resource limits stuff
10116 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10117 missing docs, add @todo to handle OOM etc.
10119 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10122 2003-01-18 Havoc Pennington <hp@pobox.com>
10124 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10125 connection if it hasn't been already.
10127 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
10128 replace with DisconnectFunction.
10130 2003-01-18 Havoc Pennington <hp@pobox.com>
10132 Building --disable-verbose-mode --disable-asserts --disable-tests
10133 cuts the library from 112K to 45K or so
10135 * configure.in: check for varargs macro support,
10136 add --enable-verbose-mode, --enable-asserts.
10138 * dbus/dbus-internals.h (_dbus_assert): support
10139 DBUS_DISABLE_ASSERT
10140 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
10142 2003-01-18 Havoc Pennington <hp@pobox.com>
10144 * dbus/dbus-test.c: include config.h so that tests actually run
10146 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
10147 so the failure mode when that assumption fails will be plenty
10150 2003-01-18 Havoc Pennington <hp@pobox.com>
10152 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
10154 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
10157 * test/Makefile.am: don't use special variable "TESTS" for echo-*
10158 since we don't want to use those in make check
10160 2003-01-15 Havoc Pennington <hp@redhat.com>
10166 2003-01-15 Havoc Pennington <hp@redhat.com>
10168 * test/Makefile.am: fix so that test source code ends up in the
10169 distribution on make distcheck
10171 2003-01-15 Havoc Pennington <hp@redhat.com>
10177 2003-01-15 Havoc Pennington <hp@redhat.com>
10179 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10180 fix build when --disable-tests
10182 * Makefile.am (EXTRA_DIST): put HACKING in here
10184 * HACKING: document procedure for making a tarball release.
10186 2003-01-14 Anders Carlsson <andersca@codefactory.se>
10188 * bus/connection.c: (connection_error_handler),
10189 (bus_connection_setup):
10190 * bus/main.c: (main):
10191 Make sure that the DBusConnectionData struct is NULLed
10192 out to prevent a segfault.
10194 * dbus/dbus-errors.c: (dbus_result_to_string):
10195 * dbus/dbus-errors.h:
10196 * dbus/dbus-message.c: (dbus_message_get_fields),
10197 (dbus_message_get_fields_valist), (_dbus_message_test):
10198 * dbus/dbus-message.h:
10199 Make dbus_message_get_fields return a result code so we can
10200 track invalid fields as well as oom.
10202 2003-01-11 Havoc Pennington <hp@pobox.com>
10204 * configure.in: change --enable-test/--enable-ansi action-if-given
10205 to enable_foo=$enableval instead of enable_foo=yes
10207 2003-01-08 Havoc Pennington <hp@pobox.com>
10209 * dbus/dbus-string.c (_dbus_string_align_length): new function
10211 * dbus/dbus-test-main.c: move main() for test app here
10213 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10214 symbol to run tests, because dbus-test isn't in the main
10217 Code review nitpicks.
10219 * dbus/dbus-message.c (dbus_message_write_header): add newlines
10220 for people with narrow emacs ;-). Assert client_serial was filled
10221 in. Assert message->name != NULL.
10222 (dbus_message_append_fields): have "first_field_type" arg separate
10223 from va list, needed for C++ binding that also uses varargs IIRC
10224 and helps with type safety
10225 (dbus_message_new): add @todo about using DBusString to store
10226 service/name internally
10227 (dbus_message_new): don't leak ->service and ->name on OOM later
10229 (dbus_message_unref): free the service name
10230 (dbus_message_get_fields): same change to varargs
10231 i.e. first_field_type
10232 (_dbus_message_loader_return_buffer): assert that the message data
10233 is aligned (if not it's a bug in our code). Put in verbose griping
10234 about why we set corrupted = TRUE.
10235 (decode_header_data): add FIXME that char* is evil. Was going to
10236 add FIXME about evil locale-specific string.h strncmp, but just
10237 switched to wacky string-as-uint32 optimization. Move check for
10238 "no room for field name" above get_const_data_len() to avoid
10239 assertion failure in get_const_data_len if we have trailing 2
10240 bytes or the like. Check for service and name fields being
10241 provided twice. Don't leak service/name on error. Require field
10242 names to be aligned to 4 bytes.
10244 * dbus/dbus-marshal.c: move byte swap stuff to header
10245 (_dbus_pack_int32): uscore-prefix
10246 (_dbus_unpack_int32): uscore-prefix
10247 (_dbus_unpack_uint32): export
10248 (_dbus_demarshal_string): add @todo complaining about use of
10250 (_dbus_marshal_get_field_end_pos): add @todo about bad error
10251 handling allowing corrupt data to go unchecked
10253 2003-01-08 Havoc Pennington <hp@redhat.com>
10255 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
10256 to the select() as needed for authentication. (should be using
10257 _dbus_poll() not select, but for another day)
10259 * dbus/dbus.h: include dbus/dbus-protocol.h
10261 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10263 * dbus/Makefile.am (dbusinclude_HEADERS): Install
10266 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10268 * dbus/dbus-internals.c: (_dbus_type_to_string):
10269 New function that returns a string describing a type.
10271 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
10272 * dbus/dbus-marshal.h:
10273 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
10274 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
10275 (dbus_message_iter_get_byte_array):
10276 * dbus/dbus-message.h:
10277 Add new convenience functions for appending and getting message fields.
10278 Also add demarshalling routines for byte arrays.
10280 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10282 * dbus/dbus-connection-internal.h:
10283 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10284 (_dbus_connection_get_next_client_serial),
10285 (dbus_connection_send_message):
10286 * dbus/dbus-internals.h:
10287 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
10288 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
10289 (_dbus_marshal_uint32), (_dbus_demarshal_double),
10290 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
10291 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
10292 (_dbus_verbose_bytes), (_dbus_marshal_test):
10293 * dbus/dbus-marshal.h:
10294 * dbus/dbus-message-internal.h:
10295 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
10296 (dbus_message_write_header), (_dbus_message_lock),
10297 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
10298 (dbus_message_get_name), (dbus_message_append_int32),
10299 (dbus_message_append_uint32), (dbus_message_append_double),
10300 (dbus_message_append_string), (dbus_message_append_byte_array),
10301 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
10302 (dbus_message_iter_unref), (dbus_message_iter_has_next),
10303 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
10304 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
10305 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
10306 (decode_header_data), (_dbus_message_loader_return_buffer),
10307 (message_iter_test), (_dbus_message_test):
10308 * dbus/dbus-message.h:
10309 * dbus/dbus-protocol.h:
10310 * dbus/dbus-test.c: (main):
10311 * dbus/dbus-test.h:
10312 * glib/test-dbus-glib.c: (message_handler), (main):
10313 * test/echo-client.c: (main):
10314 * test/watch.c: (check_messages):
10315 Make messages sendable and receivable for real.
10317 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10319 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10320 (_dbus_marshal_string), (_dbus_marshal_byte_array):
10321 * dbus/dbus-message.c: (dbus_message_append_int32),
10322 (dbus_message_append_uint32), (dbus_message_append_double),
10323 (dbus_message_append_string), (dbus_message_append_byte_array):
10324 Handle OOM restoration.
10326 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10328 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10329 (_dbus_demarshal_string), (_dbus_marshal_test):
10330 * dbus/dbus-marshal.h:
10331 * dbus/dbus-message.c: (dbus_message_get_name),
10332 Document these functions.
10334 (dbus_message_append_int32), (dbus_message_append_uint32),
10335 (dbus_message_append_double), (dbus_message_append_string),
10336 (dbus_message_append_byte_array):
10337 * dbus/dbus-message.h:
10338 Add functions for adding message fields of different types.
10340 * dbus/dbus-protocol.h:
10341 Add the different types.
10343 2003-01-05 Havoc Pennington <hp@pobox.com>
10345 * bus/connection.c: implement routines for handling connections,
10346 first thing is keeping a list of owned services on each connection
10347 and setting up watches etc.
10349 * bus/services.c: implement a mapping from service names to lists
10352 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
10354 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
10355 to use static mutexes for global data
10357 * dbus/dbus-connection.c (dbus_connection_set_data): add new
10358 collection of functions to set/get application-specific data
10359 on the DBusConnection.
10361 2003-01-04 Havoc Pennington <hp@pobox.com>
10363 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
10364 (_dbus_poll): new function
10366 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
10369 * bus/loop.c: initial code for the daemon main loop
10371 2003-01-04 Havoc Pennington <hp@pobox.com>
10373 * test/watch.c (error_handler): make it safe if the error handler
10374 is called multiple times (if we s/error handler/disconnect
10375 handler/ we should just guarantee it's called only once)
10377 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
10378 error handler on disconnect (it's quite possible we should
10379 just change the error handler to a "disconnect handler," I'm
10380 not sure we have any other meaningful errors)
10382 * configure.in: check for getpwnam_r
10384 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
10385 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
10386 mechanism as in SASL spec, using socket credentials
10388 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
10389 (_dbus_send_credentials_unix_socket): new function
10391 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
10393 (_dbus_write): only check errno if <0 returned
10394 (_dbus_write_two): ditto
10396 2003-01-02 Anders Carlsson <andersca@codefactory.se>
10398 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
10399 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
10400 (_dbus_marshal_test):
10401 * dbus/dbus-marshal.h:
10402 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
10403 to _dbus_marshal_utf8_string. Also fix some tests.
10405 2002-12-28 Harri Porten <porten@kde.org>
10407 * configure.in: added check for C++ compiler and a very cheesy
10408 check for the Qt integration
10410 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
10412 * qt/Makefile.am: added
10414 * qt/.cvsignore: added
10416 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
10417 latter, added #ifdef QT_THREAD_SUPPORT guard.
10419 * dbus/Makefile.am: added missing headers for make dist
10421 2002-12-28 Kristian Rietveld <kris@gtk.org>
10423 * dbus/Makefile.am: fixup export-symbols-regex.
10425 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10427 * acinclude.m4: Add this file and put the
10428 PKG_CHECK_MODULE macro in it.
10430 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10432 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10433 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10434 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10435 (_dbus_marshal_test):
10436 Make the demarshalling routines align the pos argument.
10437 Add string marshalling tests and fix the obvious bugs
10440 2002-12-26 Havoc Pennington <hp@pobox.com>
10442 * dbus/dbus-auth.c: fixes fixes fixes
10444 * dbus/dbus-transport-unix.c: wire up support for
10445 encoding/decoding data on the wire
10447 * dbus/dbus-auth.c (_dbus_auth_encode_data)
10448 (_dbus_auth_decode_data): append to target string
10449 instead of nuking it.
10451 2002-12-26 Havoc Pennington <hp@pobox.com>
10453 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
10454 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
10457 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
10458 avoid swap_bytes() overhead (ignoring possible assembly stuff for
10459 now). Main point is because I wanted unpack_uint32 to implement
10460 _dbus_verbose_bytes
10461 (_dbus_verbose_bytes): new function
10463 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
10465 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
10466 mechanism to handle a corrupt message stream
10467 (_dbus_message_loader_new): fix preallocation to only prealloc,
10470 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
10471 (_dbus_string_test): enhance tests for copy/move and fix the
10474 * dbus/dbus-transport-unix.c: Hold references in more places to
10475 avoid reentrancy problems
10477 * dbus/dbus-transport.c: ditto
10479 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
10480 leak reference count in no-message case
10482 * test/watch.c (do_mainloop): handle adding/removing watches
10483 during iteration over the watches. Also, ref the connection/server
10484 stored on a watch, so we don't try to mangle a destroyed one.
10486 * dbus/dbus-transport-unix.c (do_authentication): perform
10489 * dbus/dbus-auth.c (get_state): add a state
10490 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
10491 (_dbus_auth_get_unused_bytes): append the unused bytes
10492 to the passed in string, rather than prepend
10494 * dbus/dbus-transport.c (_dbus_transport_init_base): create
10495 the auth conversation DBusAuth
10497 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
10498 (_dbus_transport_new_for_domain_socket): when creating a
10499 transport, pass in whether it's a client-side or server-side
10500 transport so we know which DBusAuth to create
10502 2002-12-03 Havoc Pennington <hp@pobox.com>
10504 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
10505 _after_ finalizing the derived members
10506 (unix_connection_set): unref watch if we fail to add it
10508 * dbus/dbus-connection.c (dbus_connection_unref): delete the
10509 transport first, so that the connection owned by the
10510 transport will be valid as the transport finalizes.
10512 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
10513 if necessary, and remove watches from the connection.
10515 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
10517 2002-12-26 Anders Carlsson <andersca@codefactory.se>
10519 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10520 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10521 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10522 (_dbus_marshal_test):
10523 * dbus/dbus-marshal.h:
10524 Add string marshal functions and have the demarshal functions
10525 return the new position.
10527 2002-12-25 Havoc Pennington <hp@pobox.com>
10529 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
10530 it is a simple protocol that just maps directly to SASL.
10532 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
10533 initial implementation, not actually used yet.
10535 * dbus/dbus-string.c (_dbus_string_find): new function
10536 (_dbus_string_equal): new function
10537 (_dbus_string_base64_encode): new function
10538 (_dbus_string_base64_decode): new function
10540 2002-12-25 Anders Carlsson <andersca@codefactory.se>
10542 * dbus/Makefile.am:
10543 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
10544 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10545 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10546 (_dbus_demarshal_uint32), (_dbus_marshal_test):
10547 * dbus/dbus-marshal.h:
10548 * dbus/dbus-protocol.h:
10549 * dbus/dbus-test.c: (main):
10550 * dbus/dbus-test.h:
10551 Add un-optimized marshalling/demarshalling routines.
10553 2002-12-25 Harri Porten <porten@kde.org>
10555 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
10557 2002-12-24 Zack Rusin <zack@kde.org>
10559 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
10560 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
10563 2002-12-24 Havoc Pennington <hp@pobox.com>
10565 * glib/dbus-gthread.c: fix include
10567 * glib/dbus-glib.h: rename DBusMessageHandler for now.
10568 I think glib API needs to change, though, as you don't
10569 want to use DBusMessageFunction, you want to use the
10570 DBusMessageHandler object. Probably
10571 dbus_connection_open_with_g_main_loop()
10572 and dbus_connection_setup_g_main_loop() or something like that
10573 (but think of better names...) that just create a connection
10574 that has watch/timeout functions etc. already set up.
10576 * dbus/dbus-connection.c
10577 (dbus_connection_send_message_with_reply): new function just to
10578 show how the message handler helps us deal with replies.
10580 * dbus/dbus-list.c (_dbus_list_remove_last): new function
10582 * dbus/dbus-string.c (_dbus_string_test): free a string that
10585 * dbus/dbus-hash.c: use memory pools for the hash entries
10586 (rebuild_table): be more paranoid about overflow, and
10587 shrink table when we can
10588 (_dbus_hash_test): reduce number of sprintfs and write
10589 valid C89. Add tests for case where we grow and then
10590 shrink the hash table.
10592 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
10594 * dbus/dbus-connection.c (dbus_connection_register_handler)
10595 (dbus_connection_unregister_handler): new functions
10597 * dbus/dbus-message.c (dbus_message_get_name): new
10599 * dbus/dbus-list.c: fix docs typo
10601 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
10602 an object representing a handler for messages.
10604 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10606 * glib/dbus-glib.h:
10607 * glib/dbus-gthread.c: (dbus_gthread_init):
10608 Don't use the gdbus prefix for public functions.
10610 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10614 Add GLib checks and fixup .pc files
10616 * glib/Makefile.am:
10617 * glib/dbus-glib.h:
10618 * glib/dbus-gmain.c: (gdbus_connection_prepare),
10619 (gdbus_connection_check), (gdbus_connection_dispatch),
10620 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
10621 (dbus_connection_gsource_new):
10622 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
10623 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
10624 * glib/test-dbus-glib.c: (message_handler), (main):
10627 2002-12-15 Harri Porten <porten@kde.org>
10629 * autogen.sh: check for libtoolize before attempting to use it
10631 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
10634 * .cvsignore: ignore more stamp files
10636 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
10638 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
10639 without make install.
10641 2002-12-15 Havoc Pennington <hp@pobox.com>
10643 * dbus/dbus-threads.c: add thread stubs that a higher library
10644 layer can fill in. e.g. the GLib wrapper might fill them in with
10645 GThread stuff. We still need to use this thread API to
10646 thread-safe-ize the library.
10648 2002-12-12 Havoc Pennington <hp@pobox.com>
10650 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
10651 below new interfaces and include fewer system headers.
10653 * dbus/dbus-sysdeps.c (_dbus_read): new function
10654 (_dbus_write): new function
10655 (_dbus_write_two): new function
10656 (_dbus_connect_unix_socket): new function
10657 (_dbus_listen_unix_socket): new function
10659 * dbus/dbus-message-internal.h: change interfaces to use
10662 2002-12-11 Havoc Pennington <hp@pobox.com>
10664 * dbus/dbus-types.h: add dbus_unichar
10666 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
10668 * dbus/dbus-connection.c (dbus_connection_send_message): return
10671 * dbus/dbus-transport.c: include dbus-watch.h
10673 * dbus/dbus-connection.c: include dbus-message-internal.h
10675 * HACKING: add file with coding guidelines stuff.
10677 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
10678 handling here, for security purposes (as in vsftpd). Not actually
10679 using this class yet.
10681 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
10682 system/libc usage here, as in vsftpd, for ease of auditing (and
10683 should also simplify portability). Haven't actually moved all the
10684 system/libc usage into here yet.
10686 2002-11-25 Havoc Pennington <hp@pobox.com>
10688 * dbus/dbus-internals.c (_dbus_verbose): fix to not
10689 always print the first verbose message.
10691 2002-11-24 Havoc Pennington <hp@pobox.com>
10693 * test/echo-client.c, test/echo-server.c: cheesy test
10696 * configure.in (AC_CHECK_FUNCS): check for writev
10698 * dbus/dbus-message.c (_dbus_message_get_network_data): new
10701 * dbus/dbus-list.c (_dbus_list_foreach): new function
10703 * dbus/dbus-internals.c (_dbus_verbose): new function
10705 * dbus/dbus-server.c, dbus/dbus-server.h: public object
10706 representing a server that listens for connections.
10708 * dbus/.cvsignore: create
10710 * dbus/dbus-errors.h, dbus/dbus-errors.c:
10711 public API for reporting errors
10713 * dbus/dbus-connection.h, dbus/dbus-connection.c:
10714 public object representing a connection that
10715 sends/receives messages. (Same object used for
10716 both client and server.)
10718 * dbus/dbus-transport.h, dbus/dbus-transport.c:
10719 Basic abstraction for different kinds of stream
10720 that we might read/write messages from.
10722 2002-11-23 Havoc Pennington <hp@pobox.com>
10724 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
10727 * dbus/dbus-test.c (main): add list test, and include
10728 dbus-test.h as intended
10730 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
10731 (_dbus_hash_table_remove_int): return value indicates
10732 whether the entry existed to remove
10734 * dbus/dbus-list.c: add linked list utility class,
10735 with docs and tests
10737 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
10740 2002-11-23 Havoc Pennington <hp@pobox.com>
10742 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
10743 DBUS_END_DECLS to nothing, that should fix this once and for all
10745 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
10747 * dbus/dbus-message.c, dbus/dbus-hash.c:
10748 add some missing @brief
10750 2002-11-23 Havoc Pennington <hp@pobox.com>
10752 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
10753 to avoid confusing Doxygen
10755 * dbus/dbus-hash.c: @} not }@
10757 * dbus/dbus-message.c (struct DBusMessage): split out
10760 2002-11-23 Havoc Pennington <hp@pobox.com>
10762 * configure.in: pile on more warning flags if using gcc
10764 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
10765 to document static functions
10767 * configure.in: add summary to end of configure so it
10768 looks nice and attractive
10770 * dbus/dbus-hash.c: finish implementation and write unit
10773 * configure.in: add --enable-tests to enable unit tests
10775 * dbus/dbus-test.c: test program to run unit tests
10776 for all files in dbus/*, initially runs a test for
10779 * dbus/dbus-internals.h: file to hold some internal utility stuff
10781 2002-11-22 Havoc Pennington <hp@redhat.com>
10783 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
10784 "ported" away from Tcl
10786 * dbus/dbus-types.h: header for types such as dbus_bool_t
10788 2002-11-22 Havoc Pennington <hp@redhat.com>
10790 * dbus/dbus.h: fixups for doc warnings
10792 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
10794 (QUIET): make it quiet so we can see warnings
10796 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
10798 2002-11-22 Havoc Pennington <hp@redhat.com>
10800 * Makefile.am: include "Doxyfile" target in all-local
10802 * configure.in: generate the Doxyfile
10804 * Doxyfile.in: move Doxyfile here, so we can use
10805 configure to generate a Doxyfile with the right
10806 version number etc.
10808 2002-11-22 Havoc Pennington <hp@redhat.com>
10810 * dbus/dbus-message.c: move inline docs into .c file
10812 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
10813 so all docs are under doc/
10814 (MAN_EXTENSION): generate man pages. Use extension
10815 ".3dbus" which matches ".3qt" on my system,
10816 I guess this is OK, I don't know really.
10817 (FILE_PATTERNS): look for .c files not .h, makes sense
10818 for plain C I think
10820 2002-11-22 Havoc Pennington <hp@pobox.com>
10822 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
10823 because any app can be a server, and any app can be a client,
10824 the bus is a special kind of server.
10826 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
10828 * Doxyfile : adding. Still needs Makefile rules to be generated
10829 automatically (just run "doxygen" in the toplevel dir for now to
10832 * dbus/dbus-message.h : Adding sample docs (javadoc since
10833 resembles gtk-doc a little more)
10835 * dbus/dbus.h : Adding sample docs
10837 2002-11-21 Havoc Pennington <hp@redhat.com>
10839 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
10840 so we can allow ourselves to include files directly,
10841 instead of having to use dbus.h
10843 * dbus/dbus.h: fill in
10845 * dbus/dbus-message.h: sketch out a sample header file.
10846 Include griping if you include it directly instead of
10849 * dbus/dbus-macros.h: new file with macros for extern "C",
10850 TRUE/FALSE, NULL, etc.
10852 * doc/file-boilerplate.c: put include guards in here
10854 2002-11-21 Havoc Pennington <hp@redhat.com>
10856 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
10858 * COPYING: include the GPL as well, and license code
10859 under both AFL and GPL.
10861 2002-11-21 Havoc Pennington <hp@redhat.com>
10863 * acconfig.h: get rid of this
10865 * autogen.sh (run_configure): add --no-configure option
10867 * configure.in: remove AC_ARG_PROGRAM to make
10868 autoconf complain less. add AC_PREREQ.
10869 add AC_DEFINE third arg.
10871 2002-11-21 Anders Carlsson <andersca@codefactory.se>
10874 Fix references so we can distcheck.
10876 2002-11-21 Havoc Pennington <hp@redhat.com>
10878 * Initial module creation