1 2005-06-29 Colin Walters <walters@verbum.org>
3 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
4 DBUS_TYPE_G_OBJECT_PATH.
6 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
7 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
8 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
9 (dbus_g_object_path_get_g_type): New function.
10 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
11 to DBUS_TYPE_G_OBJECT_PATH by default.
12 (demarshal_proxy): Remove unused name variable.
13 (demarshal_object_path, marshal_object_path): New functions.
14 (demarshal_proxy_array, marshal_proxy_array): Delete.
16 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
17 DBUS_TYPE_G_OBJECT_PATH to char *.
18 (dbus_g_type_get_lookup_function): Map builtin
19 DBUS_TYPE_G_OBJECT_PATH.
21 * test/glib/test-dbus-glib.c
22 * test/glib/test-service-glib.c (my_object_objpath):
23 Adapt tests to new object path marshalling.
25 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
27 * configure.in: force check for Python >= 2.4
29 2005-06-29 Colin Walters <walters@verbum.org>
31 Patch from Ross Burton <ross@openedhand.com>
33 * glib/dbus-gobject.c (invoke_object_method): Unset object
34 value in all cases, not only in async case.
36 2005-06-29 Colin Walters <walters@verbum.org>
38 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
39 name_call for keeping track of any outgoing GetNameOwner call.
40 Also add for_owner and associated.
41 (struct _DBusGProxyManager): Add owner_names, which is hash table
42 that maps a base name to a list of names it owns (that we're
43 interested in). Add pending_nameowner_calls which is a list of
44 all outstanding GetNameOwner; avoids us having to iterate over
45 every proxy. Add unassociated_proxies which keeps track of name
46 proxies with no associated name owner.
47 (dbus_g_proxy_manager_unref): Destroy owner_names.
48 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
50 (find_name_in_info, name_owner_foreach)
51 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
52 (dbus_g_proxy_manager_monitor_name_owner)
53 (dbus_g_proxy_manager_unmonitor_name_owner)
54 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
55 New functions; they manipulate the owner_names mapping.
56 (got_name_owner_cb): New function.
57 (get_name_owner): New function, extracted from
58 dbus_g_proxy_new_for_name_owner.
59 (dbus_g_proxy_manager_register): For now we need to keep track of
60 all NameOwnerChanged. Also if the proxy is for a name, if we
61 don't already know the name owner, queue a new GetNameOwner
62 request and add it to our list of unassociated proxies. Otherwise
64 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
65 cancel any pending GetNameOwner call, etc.
66 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
67 the owner_names mapping to look up the current names for the
68 signal source, and dispatch to any proxies for that name.
69 (dbus_g_proxy_new): Initialize new members.
70 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
71 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
72 (dbus_g_pending_call_end_valist): New function, extracted from
73 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
74 but want to use the GLib infrastructure. Also note how many
75 arguments in reply were over.
76 (dbus_g_pending_call_end): New function, just call
77 dbus_g_pending_call_end_valist.
78 (dbus_g_proxy_end_call_internal): Just call
79 dbus_g_pending_call_end_valist.
81 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
82 of builtin marshaller for STRING_STRING_STRING.
84 * test/glib/test-dbus-glib.c:
85 * test/glib/test-service-glib.c:
86 * test/glib/test-service-glib.xml:
87 Extend tests to cover name proxies, destruction of owner proxies,
90 * glib/examples/example-signal-recipient.c
91 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
93 * tools/dbus-send.c (main): Print D-BUS error name in addition
96 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
98 * python/dbus_bindings.pyx.in (cunregister_function_handler,
99 cmessage_function_handler): Patch from
100 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
101 by using the Py_GILState_Ensure/Release to synchronize with the
104 2005-06-28 Ray Strode <rstrode@redhat.com>
106 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
107 babysitter helper process on last unref, bug #2813.
109 2005-06-27 Colin Walters <walters@verbum.org>
111 * test/glib/test-dbus-glib.c:
112 * test/glib/test-service-glib.c:
113 * test/glib/test-service-glib.xml:
114 Test hash table signal emitting.
116 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
117 types to their fundamental basis types, since this is what
118 marshallers operate on. Also add an entry for VOID__BOXED.
119 (dbus_g_object_register_marshaller_array): Convert to fundamental.
121 2005-06-26 Havoc Pennington <hp@redhat.com>
123 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
126 2005-06-26 Colin Walters <walters@verbum.org>
128 * glib/dbus-glib.c (dbus_set_g_error): Delete.
129 (dbus_g_error_set): New public function from its ashes; used by
130 both service-side method implementation and GLib bindings
132 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
133 (_dbus_glib_test): Add some tests.
135 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
137 * test/glib/test-service-glib.c (my_object_throw_error): Use
140 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
141 errors thrown by dbus_g_error_set.
143 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
145 * glib/dbus-gparser.c (validate_signature): Ditto.
147 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
148 (dbus_g_proxy_end_call_internal): Ditto.
150 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
151 converts DBUS_ERROR_x to DBUS_GERROR_x.
152 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
154 * doc/TODO: Remove error TODO.
156 * doc/dbus-tutorial.xml: Update with documentation about error
159 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
160 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
161 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
163 2005-06-22 Colin Walters <walters@verbum.org>
165 Patch from Ross Burton <ross@openedhand.com>
167 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
169 2005-06-20 Colin Walters <walters@verbum.org>
171 * configure.in: Add glib/examples.
173 * glib/Makefile.am: Add examples/
175 * glib/examples/.cvsignore
176 * glib/examples/Makefile.am
177 * glib/examples/example-client.c
178 * glib/examples/example-service.c
179 * glib/examples/example-service.xml
180 * glib/examples/example-signal-emitter.c
181 * glib/examples/example-signal-emitter.xml
182 * glib/examples/example-signal-recipient.c:
183 New files; GLib binding examples, ported from
186 2005-06-20 Colin Walters <walters@verbum.org>
189 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
192 * glib/dbus-binding-tool-glib.c:
193 * doc/dbus-tutorial.xml:
194 * test/glib/test-dbus-glib.c: Update for rename.
196 2005-06-20 Colin Walters <walters@verbum.org>
198 Patch suggested by Ross Burton <ross@openedhand.com>
200 * glib/dbus-gobject.c (export_signals): Free signal name.
201 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
202 memory leak. Add a bit of documentation.
203 (dbus_g_method_return_error): Free context, and note we do
206 2005-06-18 Murray Cumming <murrayc@murrayc.com>
209 * glib/dbus-gobject.c:
210 * glib/dbus-gproxy.c:
211 * glib/dbus-gvalue.c: Predeclare structs as
212 typedef struct _Something Something instead of
213 typedef struct Something Something, so we can
214 redeclare the prototypes. Other GNOME libraries
217 2005-06-17 Colin Walters <walters@verbum.org>
219 * tools/dbus-names-model.c (have_names_notify): Fix call
220 to dbus_g_proxy_end_call.
222 2005-06-17 Colin Walters <walters@verbum.org>
224 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
225 spew warnings if we get malformed remote signals.
227 * glib/dbus-gobject.c (propsig_iterate): New function.
228 (lookup_object_info): New function, extracted from
229 lookup_object_and_method.
230 (introspect_properties, introspect_signals): Delete; these
231 are merged into write_interface.
232 (write_interface): Write out signals and properties here;
233 dump the org.gtk.object stuff and use the interface given
234 in the introspection data blob. Also fix up property XML.
235 (lookup_values): New function.
236 (introspect_interfaces): Gather a mapping from interface to a
237 list of its methods, signals, and properties, then write out
239 (lookup_object_and_method): Use lookup_object_info.
240 (struct DBusGSignalClosure): Add interface.
241 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
242 we can just use the constant data.
243 (dbus_g_signal_closure_finalize): Don't free signal name.
244 (signal_emitter_marshaller): Use interface from signal closure.
245 (export_signals): Only export signals mentioned in introspection
247 (dbus_g_connection_register_g_object): Warn if we have no
248 introspection data for an object.
249 (funcsig_equal): Remove unused variable.
250 (dbus_g_object_register_marshaller): Take varargs instead of
252 (dbus_g_object_register_marshaller_array): New function,
253 extracted from old dbus_g_object_register_marshaller.
255 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
256 signals and property data.
257 (write_quoted_string): New function, extracted from generate_glue.
258 (generate_glue): Write signals and properties to introspection
261 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
262 exported_signals and exported_properties.
263 (dbus_g_object_register_marshaller): Update prototype.
264 (dbus_g_object_register_marshaller_array): Prototype.
266 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
268 * test/glib/test-service-glib.c: Add new test signals and method
271 * test/glib/test-service-glib.xml: Add some test signals.
273 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
274 and my-object-marshal.h
275 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
277 (my-object-marshal.c, my-object-marshal.h): Implement.
279 * test/glib/.cvsignore: Update.
281 * doc/TODO: Remove two GLib TODO items fixed by this
284 2005-06-16 Colin Walters <walters@verbum.org>
286 * doc/TODO: Update for GLib bindings.
288 2005-06-16 Colin Walters <walters@verbum.org>
290 * glib/dbus-binding-tool-glib.c:
291 * glib/dbus-gobject.c:
292 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
293 from Ross Burton, for his GLib bindings work.
295 2005-06-16 Colin Walters <walters@verbum.org>
297 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
298 to iterate instead of walking to G_TYPE_INVALID.
300 Patch based on a patch from Ryan Gammon.
302 2005-06-16 Colin Walters <walters@verbum.org>
304 * bus/bus.c (bus_context_new): Set parser to NULL
305 after we unref it (Patch from Chris Boscolo, #2174).
307 2005-06-16 Colin Walters <walters@verbum.org>
309 * python/dbus_bindings.pyx.in: Import size_t,
310 __int64_t, __uint64_t, and __signed.
312 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
313 Define cmsg struct, output it.
314 (_dbus_read_credentials_unix_socket):
317 Patch from Joe Markus Clarke for FreeBSD support.
319 2005-06-16 Colin Walters <walters@verbum.org>
321 * tools/dbus-send.c (append_array): Use strtok.
322 (append_dict): New function.
323 (type_from_name): New function, extracted from main.
324 (main): Handle sending dicts.
326 * tools/dbus-print-message.c (print_iter): Print dict
329 2005-06-16 Colin Walters <walters@verbum.org>
331 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
332 values as the empty string (#2948).
334 2005-06-16 Colin Walters <walters@verbum.org>
337 * mono/doc/Makefile.am:
338 * test/glib/Makefile.am:
340 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
342 2005-06-16 Colin Walters <walters@verbum.org>
344 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
345 header byte order from expected byte order (Patch from Chris Wilson, #3475).
347 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
348 Increment pointer after swapping fixed array. Add assertion
351 2005-06-15 Colin Walters <walters@verbum.org>
353 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
354 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
356 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
358 * NEWS: Update to 0.34
360 2005-06-15 David Zeuthen <davidz@redhat.com>
362 * configure.in (LT_CURRENT): Revert back to 1 as the library
363 hasn't changed and we've certainly not committed to protocol
364 stability yet. All this does is to break ABI. See commit note
365 from hp@redhat.com 2005-05-05 for details.
367 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
369 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
370 (_dbus_connection_run_builtin_filters): New method
371 (dbus_connection_dispatch): Run the builtin filters which in turn
372 runs the peer filter which handles Ping messages.
375 - Ping isn't handled: This patch fixes it
377 - Add a test case for the Ping message: added TODO item
379 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
381 * dbus/dbus-message.c:
382 (dbus_message_has_path): New method
383 (dbus_message_has_interface): New method
384 (dbus_message_has_member): New method
386 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
389 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
390 the keyring directory is private to the user
393 - The convenience functions in dbus-bus.h should perhaps have
394 the signatures that they would have if they were autogenerated
395 stubs. e.g. the acquire service function. We should also evaluate
396 which of these functions to include, in light of the fact that
397 GLib/Qt native stubs will probably also exist.: Punted
399 - add dbus_message_has_path(), maybe has_member/interface:
402 - in dbus-keyring.c, enforce that the keyring dir is not
403 world readable/writable: Fixed in this patch
405 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
407 * dbus/dbus-marshal-validate.h: Added a new validation
408 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
409 out of memory errors when validating signitures
411 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
412 in places where we previously used DBUS_VALID and a FALSE return
413 value to indicate OOM
415 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
416 Use a stack to track the number of elements inside containers. The
417 stack values are then used to validate that dict entries have only two
418 elements within them.
419 (validate_body_helper): check the reason for failure when validating
422 * dbus/dbus-message.c (load_message): use
423 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
424 DBUS_VALID and a FALSE return value to indicate OOM
426 * doc/TODO: remove "- validate dict entry number of fields" as this
429 2005-06-14 David Zeuthen <davidz@redhat.com>
431 * bus/bus.c (process_config_every_time): Drop existing conf-dir
432 watches (if applicable) and add new watches
434 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
435 (main): Setup SIGIO signal handler if using D_NOTIFY
437 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
439 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
440 (merge_included): Also merge conf_dirs list
441 (bus_config_parser_unref): Clear conf_dirs list
442 (include_dir): Add directory to conf_dirs list
443 (bus_config_parser_get_conf_dirs): New function
445 * bus/dir-watch.[ch]: New files
447 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
449 * configure.in: Add checks for D_NOTIFY on Linux
451 2005-06-14 Colin Walters <walters@verbum.org>
453 * glib/dbus-binding-tool-glib.c:
454 * glib/dbus-gobject.c:
455 * glib/dbus-gvalue.c: Fix indentation and brace style.
457 2005-06-14 Ross Burton <ross@openedhand.com>.
459 * glib/dbus-glib.h: Make DBusGMethodInvocation
460 a private structure. Rearrange prototypes a bit.
462 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
463 documentation for first_arg_type.
465 * glib/dbus-gobject.c: Move DBusGMethodInvocation
466 here, add documentation. Move dbus_g_method_return
467 and dbus_g_method_return_error into public API
470 2005-06-14 Colin Walters <walters@verbum.org>
472 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
473 Add missing return statements, noticed by Ross Burton.
475 2005-06-13 Ross Burton <ross@openedhand.com>.
477 * glib/dbus-gobject.c: Handle errors on message
478 demarshalling by sending error message back.
479 * glib/dbus-gvalue.c: Initialize return variables.
481 2005-06-13 Colin Walters <walters@verbum.org>
483 * glib/Makefile.am: Fix thinko in last patch.
485 2005-06-13 Colin Walters <walters@verbum.org>
487 * glib/Makefile.am: Move dbus-gtype-specialized.c
488 and dbus-gtype-specialized.h into a _HEADERS variable,
491 2005-06-12 Colin Walters <walters@verbum.org>
493 Async signals and various bugfixes and testing by
494 Ross Burton <ross@openedhand.com>.
496 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
497 (dbus_gvalue_genmarshal_name_from_type)
498 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
499 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
500 (dbus_g_value_types_init, dbus_gtype_from_signature)
501 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
502 (dbus_gtypes_from_arg_signature): New function prototypes.
503 (dbus_gvalue_demarshal): Take context and error arguments.
504 (dbus_gvalue_demarshal_variant): New function.
505 (dbus_gvalue_demarshal_message): New function.
506 (dbus_gvalue_store): Delete.
508 * glib/dbus-gvalue.c:
510 File has been almost entirely rewritten; now we special-case
511 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
512 hash tables correctly, etc. Full support for recursive values
515 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
516 argument of signal to G_TYPE_POINTER since we now pass a
518 (lookup_g_marshaller): Delete in favor of
519 _dbus_gobject_lookup_marshaller.
520 (marshal_dbus_message_to_g_marshaller): Use
521 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
522 to handle remote signal callbacks.
523 (dbus_g_proxy_new_from_proxy): New function; creates a new
524 DBusGProxy by copying an existing one.
525 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
526 (dbus_g_proxy_get_path): New functions.
527 (dbus_g_proxy_marshal_args_to_message): New function;
528 factored out of existing code.
529 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
530 from a varargs array.
531 (dbus_g_proxy_begin_call_internal): New function.
532 (dbus_g_proxy_end_call_internal): New function.
533 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
534 as arguments; simply invoke dbus_g_proxy_begin_call_internal
535 after collecting args into value array.
536 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
537 invoke dbus_g_proxy_end_call_internal.
538 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
540 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
542 (array_free_all): New function.
543 (dbus_g_proxy_add_signal): Take GTypes.
545 * glib/dbus-gobject.h:
546 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
547 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
550 * glib/dbus-gobject.c: Add a global marshal_table hash which
551 stores mappings from type signatures to marshallers. Change lots
552 of invocations of dbus_gtype_to_dbus_type to
553 dbus_gtype_to_signature.
554 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
555 (introspect_signals): Fix test for query.return_type.
556 (set_object_property): Update invocation of dbus_gvalue_demarshal.
557 (invoke_object_method): Many changes. Handle asynchronous
558 invocations. Convert arguments with
559 dbus_gvalue_demarshal_message. Handle errors. Use
560 DBusSignatureIter instead of strlen on args. Handle all arguments
561 generically. Special-case variants.
562 (dbus_g_method_return, dbus_g_method_return_error): New function.
563 (DBusGSignalClosure): New structure, closes over signal
565 (dbus_g_signal_closure_new): New function.
566 (dbus_g_signal_closure_finalize): New function.
567 (signal_emitter_marshaller): New function; is special marshaller
568 which emits signals on bus.
569 (export_signals): New function; introspects object signals and
571 (dbus_g_object_type_install_info): Take GType instead of
573 (dbus_g_connection_register_g_object): Invoke export_signals.
574 (dbus_g_connection_lookup_g_object): New function.
575 (DBusGFuncSignature) New structure; used for mapping type
576 signatures to marshallers.
577 (funcsig_hash): New function; hashes DBusGFuncSignature.
578 (funcsig_equal): New function; compares DBusGFuncSignature.
579 (_dbus_gobject_lookup_marshaller): New function.
580 (dbus_g_object_register_marshaller): New function; used to
581 register a marshaller at runtime for a particular signature.
583 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
585 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
586 which notes a server method implementation should be
589 * glib/dbus-binding-tool-glib.c
590 (dbus_binding_tool_output_glib_server): Call
591 dbus_g_value_types_init.
592 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
594 (dbus_g_type_get_lookup_function): Turn GType into an invocation
595 of a lookup function.
596 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
597 (write_untyped_out_args): New method; write output arguments.
598 (write_formal_declarations_for_direction): Function for
600 (write_formal_parameters_for_direction): Function for
601 writing implementations.
602 (write_typed_args_for_direction): Function for writing
603 arguments prefixed with GTypes.
604 (write_async_method_client): Write out async version
607 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
608 (dbus_g_type_get_marshal_name): Move mapping from GType
609 to marshal name into here.
610 (dbus_g_type_get_c_name): Move into here.
611 (compute_marshaller): Convert signature to type with
612 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
613 (compute_marshaller_name): Ditto.
614 (compute_marshaller): Handle async signal annotations.
615 (gather_marshallers): Return if we don't have a known
617 (generate_glue): Collect introspection blob here, and
618 write all of the blob at the end. This allows an object
619 with multiple interfaces to work.
620 Mark async methods in introspection blob.
622 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
623 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
624 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
626 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
627 avoids people accidentally using DBUS_TYPE_* which should
628 not be necessary anymore.
629 Do include dbus-gtype-specialized.h, which are utilities
630 for GLib container types.
631 Add various #defines for types such as
632 DBUS_TYPE_G_BOOLEAN_ARRAY.
633 (DBusGValueIterator, DBusGValue): Define, not fully used
635 (dbus_g_value_get_g_type): Type for recursive value.
636 (dbus_g_value_open, dbus_g_value_iterator_get_value)
637 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
638 (dbus_g_value_free): Prototypes.
639 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
640 (dbus_g_proxy_set_interface): Prototype.
641 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
642 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
644 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
646 (DBusGAsyncData, DBusGMethodInvocation): Structures for
647 doing async invocations.
648 (dbus_g_method_return, dbus_g_method_return_error):
650 * doc/dbus-tutorial.xml: Update GLib section.
652 * tools/dbus-viewer.c (load_child_nodes): Update
653 for new invocation type of dbus_g_proxy_end_call.
654 (load_from_service_thread_func): Ditto.
656 * tools/print-introspect.c (main): Ditto.
658 * tools/dbus-names-model.c (have_names_notify)
659 (names_model_reload, names_model_set_connection)
662 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
663 needed since Python bindings use GLib bindings.
665 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
666 Add --prefix argument.
668 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
669 unneeded --ignore-unsupported arg.
671 * test/glib/test-service-glib.c:
672 * test/glib/test-service-glib.xml:
673 * test/glib/test-dbus-glib.c: Add many more tests.
675 2005-06-06 David Zeuthen <davidz@redhat.com>
677 * doc/TODO: Add item about need to remove deprecated functions.
679 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
681 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
682 to repair the ABI which was broken with the last commit.
684 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
686 * dbus/dbus-connection.c, dbus/dbus-connection.h
687 (dbus_connection_disconnect): renamed to dbus_connection_close
688 for API symmetry with dbus_connection_open
689 (_dbus_connection_open_internal):
690 s/dbus_connection_disconnect/dbus_connection_close
692 * dbus/dbus-bus.c (dbus_bus_get):
693 s/dbus_connection_disconnect/dbus_connection_close
695 * bus/connection.c (bus_connections_unref,
696 bus_connections_setup_connection, bus_connections_expire_incomplete):
697 s/dbus_connection_disconnect/dbus_connection_close
699 * bus/dispatch.c (bus_dispatch, kill_client_connection,
700 kill_client_connection_unchecked, check_hello_connection):
701 s/dbus_connection_disconnect/dbus_connection_close
703 * bus/bus.c (new_connection_callback):
704 s/dbus_connection_disconnect/dbus_connection_close
706 * tools/dbus-send.c (main):
707 s/dbus_connection_disconnect/dbus_connection_close
709 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
710 s/dbus_connection_disconnect/dbus_connection_close
712 * test/test-service.c (path_message_func, filter_func):
713 s/dbus_connection_disconnect/dbus_connection_close
715 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
717 2005-05-25 Colin Walters <walters@verbum.org>
719 * dbus/dbus-protocol.h: Move various bus service #defines such
720 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
722 * dbus/dbus-shared.h: Various defines moved here.
723 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
725 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
727 * python/__init__.py: Python bindings deserve a minor version
728 update. Upped to (0, 40, 2)
730 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
732 * python/decorators.py: add explicitly_pass_message decorator
733 for passing in the dbus message as keyword for edge case signal
736 * python/matchrules.py (SignalMatchRule.__repr__): fix output
737 to conform with what dbus expects for match rules
738 (SignalMatchRule.execute): add the dbus message as a keyword
739 if the signal handler has requested it
741 * python/examples/example/signal-recipient.py: added some more
742 examples on how to hook up to signals
744 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
746 * python/decorators.py: import dbus_bindings
748 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
749 SignalMatchNode): new classes that implement wildcard signal
750 callback matching using a tree lookup. Heavily modified from a
751 patch sent by Celso Pinto (fd.o bug #3241)
753 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
754 use new match classes to handle signals.
756 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
758 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
760 2005-05-18 Havoc Pennington <hp@redhat.com>
762 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
763 gettext. Not really worth requiring yet perhaps, but any
764 production quality 1.0 would require it so we should go ahead and
765 get things set up. We do have a couple token calls to
766 bindtextdomain in the code already.
768 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
770 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
771 when using recursive g_main_loops
773 * python/_dbus.py (class Bus): add the ProxyObjectClass
774 alias for ProxyObject to make it easier for the Twisted
775 networking framework to integrate dbus.
777 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
778 alias for ProxyMethod to make it easier for the Twisted
779 networking framework to integrate dbus.
781 2005-05-11 Ross Burton <ross@openedhand.com>
783 * glib/dbus-glib-tool.c: Add --prefix argument.
784 * glib/dbus-binding-tool-glib.h: Add prefix argument.
785 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
787 (generate_glue): Pass prefix argument down.
788 (dbus_binding_tool_output_glib_server): Pass prefix to
791 2005-05-11 Colin Walters <walters@verbum.org>
793 * tools/dbus-send.c (append_array): New function.
794 (append_arg): Broken out from main.
795 (main): Add cheesy hack to send arrays and variants.
797 * tools/dbus-print-message.c (print_iter): Broken out
800 2005-05-11 Colin Walters <walters@verbum.org>
802 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
803 New function, returns signature string for signature iter.
804 * dbus/dbus-signature.h: Prototype it.
805 * dbus/dbus-message.c (dbus_message_iter_get_signature):
806 New function, returns signature string for message iter.
807 (dbus_message_iter_get_array_len): New function, returns
809 (dbus_message_iter_get_fixed_array): Fix assertion; this
810 function should be used when the iter is pointing to the
812 * dbus/dbus-message.h: Prototypes.
813 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
814 New function; returns length of an array.
815 * dbus/dbus-marshal-recursive.h: Prototype it.
817 2005-05-11 Colin Walters <walters@verbum.org>
819 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
822 2005-05-08 Havoc Pennington <hp@redhat.com>
824 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
825 daemon's pid, not the parent's pid, to the file descriptor.
826 Reported by Taj Morton.
828 2005-05-05 Havoc Pennington <hp@redhat.com>
830 * configure.in (LT_*): add notes on how the libtool versioning
831 works to save thinking. Increment soname to indicate protocol
832 breakage (though really the library interface hasn't changed I
835 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
836 verify the GUID received from server matches what we were
837 expecting, if we had an expectation
839 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
840 (_dbus_auth_get_guid_from_server): new function
841 (send_begin): parse the OK args
843 * doc/dbus-specification.xml: add GUID to the auth protocol
845 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
847 * Fix my name in previous changelog ;)
849 * python/proxies.py (ProxyObject.__getattr__): add further patch
850 from Anthony Baxter to throw an AttributeError when python
851 __special__ functions are called instead of marshling them over
852 the bus (Bug#1685 comment 3).
854 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
856 * python/Makefile.am: changed to use pyexecdir for the binding
857 shared libraries (Bug#2494)
859 * python/exceptions.py: bring exceptions over from the bindings
860 so they can be used in applications (Bug#2036)
861 Make all exceptions derive from DBusException
863 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
864 of classes so that print obj doesn't throw an exception (Bug #1685)
866 2005-05-03 Ross Burton <ross@openedhand.com>
868 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
869 Return if we get an error during registration. Set up a
870 weak reference on object to unregister if object is destroyed.
871 (unregister_gobject): New function.
873 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
875 * python/dbus_bindings.pyx.in:
876 - added new type classes for hinting to the marashaler what type
877 to send over the wire
878 - added int16 and uint16 marshalers
879 - Fixed a bug in the type constants that caused int32 to go out
880 as uint16 over the wire
881 * python/dbus.py: split up into different files and renamed _dbus.py
882 * python/__init__.py, python/_util.py, python/decorators.py,
883 python/exceptions.py, python/proxies.py, python/services.py,
884 python/types.py: new files split off from dbus.py
885 * python/Makefile.am: Add new files, remove dbus.py and
886 install all python files to <python module dir>/dbus
887 * python/examples/*: Added #!/usr/bin/env python to the top of
888 every example. Patch provided by Tatavarty Kalyan
890 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
892 * NEWS: Update to 0.33
894 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
896 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
897 method for doing async calls
898 (_pending_call_notification): New C function for handling pendning call
900 (set_notify): New method for setting pending call notification
902 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
903 Async capabilities added to remote method calls
904 (Sender): class removed
905 (RemoteService): class removed
906 (ObjectTree): class removed for now
907 (RemoteObject): Renamed to ProxyObject
908 (RemoteMethod): Renamed to ProxyMethod
909 (method): Decorator added for decorating python methods as dbus methods
910 (signal): Decorator added for decorating python methods as signal emitters
911 (ObjectType): Metaclass added for generating introspection data and the
912 method callback vtable
913 (Interface): Wrapper class added to wrap objects in a dbus interface
914 (Object): Uses ObjectType as its metaclass and exports Introspect
915 of the org.freedesktop.DBus.Introspectable interface
916 (ValidationException, UnknownMethodException): new exceptions
918 * python/examples/*: Modified to fit with the new bindings
920 2005-04-23 Havoc Pennington <hp@redhat.com>
922 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
923 reported by Tony Houghton
925 * test/test-service.c (main): test
926 dbus_connection_get_object_path_data()
928 * dbus/dbus-object-tree.c (find_handler): be sure we always init
930 (_dbus_object_tree_get_user_data_unlocked): new function used by
931 dbus_connection_get_object_path_data()
932 (do_register): add assertion test for get_user_data_unlocked
933 (object_tree_test_iteration): more tests
935 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
936 new function from Dan Reed to let you get the user data from
937 dbus_connection_register_object_path()
939 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
941 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
942 in numerous places that did not account for the NULL terminator
943 (signature_from_seed): changed the manual string copy loop to
944 just use strcpy instead
945 make check should now pass
947 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
949 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
950 so that it allows messages that are not signals to pass in
951 NULL as the interface.
953 2005-04-18 David Zeuthen <davidz@redhat.com>
955 * glib/dbus-gmain.c (io_handler_destroy_source):
956 (timeout_handler_destroy_source, connection_setup_free):
957 Also unref the source to avoid memory leaks.
959 2005-04-13 David Zeuthen <davidz@redhat.com>
961 * bus/config-parser.c (bus_config_parser_new): Bump this to a
962 more reasonable, yet still totally arbitrary, value :-).
964 2005-04-13 David Zeuthen <davidz@redhat.com>
966 * doc/TODO: Added an "important for 1.0" item about selinux
969 2005-04-13 David Zeuthen <davidz@redhat.com>
971 * bus/selinux.c: Add c-file-style to top of file
972 (log_audit_callback): Don't free the data here anymore
973 (bus_selinux_check): Don't take spid and tpid since appending
974 that to auxdata may OOM.
975 (bus_selinux_allows_acquire_service): Handle OOM and signal back
976 to the caller if we are OOM by taking an error object.
977 (bus_selinux_allows_send): -do-
979 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
980 and bus_selinux_allows_send
982 * bus/bus.c (bus_context_check_security_policy): Pass error and
983 pass on OOM thrown by bus_selinux_allows_send()
985 * bus/services.c (bus_registry_acquire_service): Pass error and
986 pass on OOM thrown by bus_selinux_allows_acquire_service()
988 2005-04-13 Havoc Pennington <hp@redhat.com>
990 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
991 message at a time to avoid monopolizing the main loop, bug
992 #2953 from Benjamin Otte
994 2005-04-09 Havoc Pennington <hp@redhat.com>
996 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
997 possible overlap, fix from Daniel Reed
998 (fixup_alignment): fix signedness warnings
999 (_dbus_string_append_unichar): ditto
1001 2005-04-09 Havoc Pennington <hp@redhat.com>
1003 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1005 * glib/dbus-glib-tool.c (main): fix warning
1007 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1009 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1010 add a new function that can be used in simple applications that
1011 don't have a main loop and are willing to block
1013 2005-04-05 David Zeuthen <davidz@redhat.com>
1015 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1017 * glib/dbus-gmain.c:
1018 (io_handler_destroy_source): Remove from list of IO handlers
1019 of the ConnectionSetup object
1020 (timeout_handler_destroy_source): -do- for timeout handlers
1021 (io_handler_source_finalized): Don't remove from list since
1022 we now do that in io_handler_destroy_source(). Renamed from
1023 io_handler_source_destroyed
1024 (timeout_handler_source_destroyed): -do- for timeout handlers
1025 (connection_setup_free): It is now safe to iterate over all
1026 IO and timeout handlers as the _destroy_source removes them
1027 from the list synchronously
1029 2005-03-30 Havoc Pennington <hp@redhat.com>
1031 * configure.in: change check to gtk 2.4
1033 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1034 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1037 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1041 * HACKING: Fixed realease instructions. configure.in should be updated to
1042 the next release by the person who made the last release.
1044 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1046 * python/lvalue_cast_post_process.py - removed. Patch has been
1047 submitted to Pyrex maintainers that fixes gcc4.0 errors
1049 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1051 2005-03-24 Daniel Reed <n@ml.org>
1053 * tools/Makefile.am: Make print-introspect and
1054 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1056 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1058 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1060 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1061 had in Red Hat packages for a while but for some reason never
1063 (_dbus_is_a_number): New checks if a string
1064 can be converted to a number and does the conversion if it can
1065 (_dbus_user_database_lookup): Add check to see if the given username
1066 is a udi. This allows udi's to be used instead of usernames in the
1068 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1069 is a gdi. This allows gdi's to be used instead of groupnames in the
1072 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1074 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1075 code so that it compiles with gcc4.0
1077 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1078 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1079 results back to dbus_binding.c
1081 2005-03-20 Colin Walters <walters@verbum.org>
1083 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1085 * configure.in: Require GTK+ 2.6.
1087 2005-03-20 Colin Walters <walters@verbum.org>
1089 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1091 2005-03-17 Tom Parker <palfrey@tevp.net>
1093 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1094 print DBUS_UID_UNSET; instead print passed username. Also
1095 be sure to actually use gid looked up in cache.
1097 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1098 for DBUS_GID_UNSET and groupname.
1100 2005-03-17 Colin Walters <walters@verbum.org>
1102 * bus/print-introspect.c: Move to tools/.
1103 * bus/run-with-tmp-session-bus.sh: Ditto.
1105 * glib/Makefile.am (dbus-glib-bindings.h): Move
1106 generation to tools/Makefile.am.
1108 * test/glib/run-test.sh: Update to handle move
1109 of run-with-tmp-session-bus.sh.
1111 * test/glib/test-service-glib.c: Update to handle
1112 move of dbus-glib-bindings.h.
1114 * tools/print-introspect.c: Moved here
1115 from bus/, and ported to GLib bindings.
1117 * tools/run-with-tmp-session-bus.sh: Moved here
1120 * tools/Makefile.am: Generate dbus-glib-bindings.h
1121 and dbus-bus-introspect.xml here.
1123 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1126 2005-03-17 Colin Walters <walters@verbum.org>
1128 * bus/driver.c (write_args_for_direction): Use
1129 _dbus_string_get_const_data to retrieve string;
1130 _dbus_string_get_const_data_len doesn't actually return
1131 a NULL-terminated substring.
1133 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1134 (main): Change to use org_freedesktop_DBus_request_name
1135 instead of using g_proxy_begin_call/end_call.
1137 2005-03-15 Joe Shaw <joeshaw@novell.com>
1139 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1140 generating the finalizer. Fixes from Ben Maurer.
1142 2005-03-12 Joe Shaw <joeshaw@novell.com>
1144 * mono/BusDriver.cs: Update method names: ListServices
1145 becomes ListNames; GetOwner becomes GetNameOwner.
1147 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1148 onto the eval stack when removing the delegate.
1150 2005-03-12 Joe Shaw <joeshaw@novell.com>
1152 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1153 LT_CURRENT. Set it to the autoconf variable.
1155 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1156 classes that disconnects the signal handler delegate from the
1157 service object. Fixes a big leak of proxy objects on the
1158 client side of things. Patch from Ben Maurer
1159 <bmaurer@ximian.com>
1161 2005-03-12 Colin Walters <walters@verbum.org>
1163 * bus/driver.c (write_args_for_direction): New function,
1164 parses a type signature into arguments and outputs to
1166 (bus_driver_handle_introspect): Use it instead of
1167 hardcoding XML for certain signatures.
1169 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1170 dependency on dbus-daemon.
1172 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1173 argument, pass it to dbus_binding_tool_output_glib_client.
1175 * glib/dbus-binding-tool-glib.c
1176 (generate_client_glue): Protect against multiple inclusion.
1177 (dbus_binding_tool_output_glib_client): Add
1178 G_BEGIN_DECLS/G_END_DECLS.
1180 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1181 Change to just take iface prefix directly.
1182 (write_formal_parameters): Clarify error message.
1183 (check_supported_parameters): New function; checks to see type
1184 signatures of method parameters are supported.
1185 (generate_client_glue): Handle ignore_unsupported flag.
1186 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1189 * glib/Makefile.am (dbus-glib-bindings.h): Pass
1190 --ignore-unsupported by default until glib bindings
1193 2005-03-11 Colin Walters <walters@verbum.org>
1195 * glib/Makefile.am: Generate dbus-glib-bindings.h and
1198 * bus/print-introspect.c: New file; prints introspection
1199 data for a given name and object path.
1201 * bus/run-with-tmp-session-bus.sh: New file, refactored
1202 from test/glib/run-test.sh. Creates a temporary session
1203 bus and runs another program.
1205 * test/glib/run-test.sh: Refactor to invoke
1206 run-with-tmp-session-bus.sh.
1208 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1209 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
1210 macros instead of hardcoding.
1212 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1214 2005-03-11 Joe Shaw <joeshaw@novell.com>
1216 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1217 this unref; it doesn't match up evenly in some codepaths.
1218 (_dbus_connection_block_pending_call): Unref at every exitpoint;
1219 this evenly matches with the ref near the top of this function.
1221 2005-03-09 Joe Shaw <joeshaw@novell.com>
1223 * dbus/dbus-object-tree.c
1224 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1225 and we try to unregister a path that's not registered, still go
1226 through the process of unlocking and don't just return.
1228 2005-03-09 Colin Walters <walters@verbum.org>
1230 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1231 to this are generated for client-side wrappers. Invokes a
1232 D-BUS method and returns reply values.
1234 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
1235 function; writes signature string for argument direction.
1236 (write_args_for_direction): Change to pass input values directly
1237 instead of via address, and fix indentation.
1238 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
1239 make generated wrappers inlineable.
1241 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
1242 note about using dbus_type_is_fixed.
1244 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
1245 dbus/dbus-signature.c as dbus_type_is_fixed.
1247 All callers updated.
1249 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
1250 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
1252 * dbus/dbus-signature.h: Prototype.
1254 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
1257 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
1258 appropriate instead of just freeing it.
1259 (main): Free returned strings using g_free.
1261 * test/glib/Makefile.am (test-service-glib-glue.h)
1262 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
1264 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
1265 simply maps a simple D-BUS type to GType.
1266 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
1268 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
1269 initialize the value with it.
1270 (dbus_gvalue_binding_type_from_type): Unused, delete.
1271 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
1272 various types instead of unmarshalling to value data directly.
1273 Remove can_convert boolean.
1274 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
1275 returning directly instead of using can_convert boolean.
1276 (dbus_gvalue_store): New function; not related to D-BUS per-se.
1277 Stores a GValue in a pointer to a value of its corresponding C
1280 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
1281 add dbus_gvalue_store.
1283 2005-03-08 Joe Shaw <joeshaw@novell.com>
1285 Fix a bunch of lifecycle and memory management problems
1286 in the mono bindings.
1288 * mono/Arguments.cs (Arguments): Implement IDisposable
1290 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
1291 strictly a static class.
1293 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1294 delegates into this file.
1295 (Connection): Implement IDisposable.
1296 (Dispose): Disconnect the connection and set the raw connection
1297 pointer to IntPtr.Zero.
1298 (~Connection): Call Dispose().
1299 (RegisterObjectPath): Added. Manages the registration of object
1300 paths so we can cleanly disconnect them at dispose/finalize time.
1301 (UnregisterObjectPath): Ditto.
1302 (set_RawConnection): Unregister all of the object paths when
1303 changing the underlying DBusConnection. Add them back onto the
1304 new connection, if any.
1306 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1307 more unmanaged resources anymore, so it's not necessary. Move all
1308 the DBusObjectPathVTable stuff out of here.
1309 (Handler): Save references to our delegates so that they don't get
1310 finalized. Call Connection.RegisterObjectPath() instead of
1311 dbus_connection_register_object_path() directly.
1312 (Message_Called): Dispose the message after we're finished with
1315 * mono/Message.cs (Message): Implement IDisposable.
1316 (Dispose): Dispose the Arguments, and set the RawMessage to
1318 (SendWithReplyAndBlock): We own the ref to the reply that comes
1319 back from dbus_connection_send_with_reply_and_block() so add a
1320 comment about that and unref it after we've constructed a managed
1321 MethodReturn class around it. Fixes a big, big leak.
1323 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1325 (BuildSignalHandler): After we've sent the Signal message, dispose
1327 (BuildMethod): Dispose of the method call and reply messages after
1328 we've sent the message and extracted the data we want from the
1331 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1333 (Service_FilterCalled): Dispose of the message after we're
1336 2005-03-08 Joe Shaw <joeshaw@novell.com>
1338 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
1339 After we attach our pending call to the connection, unref
1342 * mono/Connection.cs (set_RawConnection): Disconnect our
1343 filter and match callbacks from the old connection and
1344 reconnect them to the new connection, if any.
1346 * mono/DBusType/Array.cs: "Code" is a static member, so
1347 don't use "this" to refer to it. Fix for stricter checking
1350 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
1351 object path that we pass into unmanaged code.
1353 * mono/DBusType/String.cs (Append): Don't leak the string
1354 that we pass into unmanged code.
1356 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
1357 * NEWS: Update for 0.31
1359 * configure.in: Release 0.31
1360 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
1362 * qt/Makefile.am: fixed build
1364 * dbus/Makefile.am: soname bump for libdbus
1366 * glib/Makefile.am: soname bump for libdbus-glib
1368 2005-03-05 Havoc Pennington <hp@redhat.com>
1370 * dbus/dbus-sysdeps.c:
1371 (pseudorandom_generate_random_bytes_buffer): fix to have no return
1373 (_dbus_generate_random_bytes_buffer): fix return value
1375 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
1376 checks actually work, from Tom Parker <fdo@tevp.net>
1378 2005-03-01 Colin Walters <walters@verbum.org>
1380 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
1381 functions copied from dbus-glib-tool.c.
1382 (main): Convert lots of error code to use them.
1383 Also add some testing for introspection bits.
1385 2005-03-01 Colin Walters <walters@verbum.org>
1387 * doc/TODO: Remove introspection signature TODO.
1389 2005-02-27 Colin Walters <walters@verbum.org>
1391 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
1392 Change return value to const char * instead of int so we can do
1394 (struct PropertyInfo, struct ArgInfo): Store char *.
1395 (property_info_new, arg_info_new): Update parameters, strdup.
1396 (property_info_unref, arg_info_unref): Free.
1398 * glib/dbus-gidl.h: Update prototypes.
1400 * glib/dbus-gparser.c (basic_type_from_string): Delete.
1401 (validate_signature): New function, just validates signature and
1403 (parse_property, parse_arg): Invoke validate_signature. Store
1404 signature instead of just type code.
1406 * glib/dbus-gvalue.c (base_type_from_signature): New utility
1407 function to return a primary type for a signature, dropping
1408 information about types in container types.
1409 (dbus_gvalue_genmarshal_name_from_type)
1410 (dbus_gvalue_binding_type_from_type)
1411 (dbus_gvalue_ctype_from_type): Update to take full signature
1412 instead of type code.
1413 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
1415 * glib/dbus-gvalue.h: Update prototypes for above.
1417 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
1418 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
1419 (introspect_properties, introspect_signals, write_interface):
1420 Update to handle signatures, and remove usage of
1421 _dbus_gutils_type_to_string.
1422 (handle_introspect): Print out type codes instead of e.g. "string"
1423 in hardcoded introspection XML; also use x_AS_STRING constants
1424 instead of hardcoding in string.
1426 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
1427 to string. Remove usage of _dbus_gutils_type_to_string.
1429 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
1431 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
1434 * glib/dbus-binding-tool-glib.c (compute_marshaller)
1435 (compute_marshaller_name, generate_glue): Handle signature change
1437 (write_formal_parameters, write_args_for_direction): Ditto, and
1440 * tools/dbus-tree-view.c (type_to_string): Delete.
1441 (info_set_func_text): Update to print full signatures.
1443 * test/glib/test-service-glib.xml: Change types to new
1444 introspection format.
1446 2005-02-26 Havoc Pennington <hp@redhat.com>
1448 * doc/TODO: remove the "guid" item
1450 * test/glib/test-profile.c (no_bus_thread_func): use open_private
1451 (with_bus_thread_func): use open_private
1453 * dbus/dbus-connection.c (dbus_connection_open_private): new
1454 function that works like the old dbus_connection_open()
1455 (dbus_connection_open): now returns an existing connection if
1458 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
1459 through the GUID to the transport
1461 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
1462 GUID in hex-encoded form.
1464 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1465 pass GUID argument in to the transport
1467 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
1470 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
1472 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
1474 2005-02-25 Havoc Pennington <hp@redhat.com>
1476 * doc/dbus-specification.xml: document the GUID thing
1478 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
1479 globally unique ID for the server, and put a "guid=hexencoded"
1480 field in the address
1482 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
1484 * dbus/dbus-message.c: ditto
1486 * dbus/dbus-dataslot.c: ditto
1488 * dbus/dbus-list.c: ditto
1490 * dbus/dbus-internals.h: wait, just include
1491 dbus-threads-internal.h here
1493 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
1496 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
1498 2005-02-24 Colin Walters <walters@verbum.org>
1500 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
1502 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
1504 * glib/Makefile.am: added dbus-gobject.h to sources list
1505 so distcheck doesn't fail
1507 2005-02-24 Havoc Pennington <hp@redhat.com>
1509 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
1510 you must disconnect before unref, since locking and other things
1511 are screwed up otherwise. Fix assorted other locking stuff.
1513 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
1516 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
1517 into a private header and don't export from the library
1519 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
1521 2005-02-24 Colin Walters <walters@verbum.org>
1523 * dbus/dbus-signature.c: New file; implements various functions
1524 related to type signatures. Includes an interator for parsing,
1525 validation functions.
1526 (dbus_type_is_basic): Moved here from
1527 dbus-marshal-basic.c:_dbus_type_is_basic.
1528 (dbus_type_is_container): Moved here from
1529 dbus-marshal-basic.c:_dbus_type_is_container.
1531 All callers of _dbus_type_is_container and _dbus_type_is_basic
1532 updated, and include dbus-signature.h.
1534 * dbus/dbus-signature.h: New file; prototypes for the above.
1536 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
1539 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
1540 function factored out of _dbus_first_type_in_signature.
1541 (_dbus_first_type_in_signature_c_str): New function; returns first
1542 type code for a type signature character.
1544 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
1545 handle function moves.
1547 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
1549 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
1550 function; skips to next complete type in type signature.
1551 Implemented using previous skip_one_complete_type. Now
1552 skip_one_complete_type just delegates to
1553 _dbus_type_signature_next.
1555 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
1557 (_dbus_type_is_container): Ditto.
1559 * doc/dbus-specification.xml: Update introspection sample to
1560 use real type signatures.
1562 * dbus/dbus-test.h: Prototype signature test.
1564 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
1567 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
1569 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
1571 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
1572 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
1574 2005-02-21 Colin Walters <walters@verbum.org>
1576 * dbus/dbus-test-main.c (main): Take optional specific test
1579 * dbus/dbus-test.c (run_test): New function, runs a test function
1580 with no data directory.
1581 (run_data_test): Like above, but takes data directory.
1582 (dbus_internal_do_not_use_run_tests): Take
1583 specific test argument. Replace lots of cut n' paste code
1584 with run_test and run_data_test.
1586 * dbus/dbus-test.h: Update prototype for
1587 dbus_internal_do_not_use_run_tests.
1589 2005-02-20 Havoc Pennington <hp@redhat.com>
1591 Fix bugs reported by Daniel P. Berrange
1593 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
1594 (protected_change_watch): new function
1595 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
1596 (_dbus_server_add_watch): change to work like the
1597 dbus-connection.c equivalents; like those, probably kind of
1598 busted, but should at least mostly work for now
1599 (dbus_server_disconnect): drop the lock if we were already
1600 disconnected, patch from Daniel P. Berrange
1602 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
1603 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
1606 * doc/TODO: todo about unscrewing this mess
1608 2005-02-19 Colin Walters <walters@verbum.org>
1610 * glib/dbus-binding-tool-glib.c
1611 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
1613 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
1614 as errno.h and sys/stat.h.
1615 (lose): New function, prints error with
1617 (lose_gerror): Similar, but takes GError for message.
1618 (main): Add --output argument to specify output file to write to,
1619 instead of always printing to stdout. In this mode, determine
1620 timestamps on source files to see whether any are newer than the
1621 target file. If not, exit. Also convert a number of error
1622 messages to use lose (since it's shorter), and switch to using
1623 g_io_channel_shutdown.
1625 2005-02-19 Havoc Pennington <hp@redhat.com>
1627 * glib/dbus-gobject.c
1628 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
1630 * glib/dbus-glib.c: fix doxygen warnings
1632 * glib/dbus-gparser.c (parse_annotation): error if an annotation
1633 is found on an <arg>
1635 2005-02-17 Colin Walters <walters@verbum.org>
1637 * glib/dbus-gobject.h: Don't export
1638 _dbus_glib_marshal_dbus_message_to_gvalue_array.
1640 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
1641 (invoke_object_method): Handle it.
1643 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1646 2005-02-17 Colin Walters <walters@verbum.org>
1648 * bus/.cvsignore, doc/.cvsignore
1649 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
1652 2005-02-17 Colin Walters <walters@verbum.org>
1654 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
1655 Rename to DBUS_SERVICE_DBUS.
1656 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
1657 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
1658 Change the value from "org.freedesktop.Local"
1659 to "org.freedesktop.DBus.Local".
1660 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
1661 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
1662 DBUS_INTERFACE_INTROSPECTABLE.
1663 Change the value from "org.freedesktop.Introspectable"
1664 to "org.freedesktop.DBus.Introspectable".
1665 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
1666 DBUS_INTERFACE_PROPERTIES.
1667 Change the value from "org.freedesktop.Properties"
1668 to "org.freedesktop.DBus.Properties".
1669 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
1670 DBUS_INTERFACE_PEER.
1671 Change the value from "org.freedesktop.Peer"
1672 to "org.freedesktop.DBus.Peer".
1673 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
1674 DBUS_INTERFACE_LOCAL.
1675 Change the value from "org.freedesktop.Local"
1676 to "org.freedesktop.DBus.Local".
1678 All other users of those constants have been changed.
1680 * bus/driver.c (bus_driver_handle_introspect): Use constants.
1682 * glib/dbus-gobject.c (handle_introspect): Use constants.
1684 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
1686 2005-02-17 Colin Walters <walters@verbum.org>
1688 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
1689 (parse_node, parse_interface, parse_method, parse_signal)
1690 (parse_property, parse_annotation): Lose if we're currently in an
1692 (parse_annotation): New function.
1693 (parser_start_element, parser_end_element): Handle annotation.
1694 (parse_method, parse_interface): Remove support for c_name attribute,
1695 switch to annotations.
1697 * glib/dbus-gidl.h (interface_info_get_binding_names)
1698 (method_info_get_binding_names)
1699 (interface_info_get_binding_name, method_info_get_binding_name)
1700 (interface_info_set_binding_name, method_info_set_binding_name):
1702 (interface_info_get_annotations, method_info_get_annotations)
1703 (interface_info_get_annotation, method_info_get_annotation)
1704 (interface_info_add_annotation, method_info_add_annotation):
1707 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
1709 (struct MethodInfo): Ditto.
1710 Straightfoward conversion of binding methods into annotation methods
1713 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
1715 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
1717 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
1718 Use new annotation API.
1720 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
1723 * doc/dbus-specification.xml: Discuss introspection annotations,
1724 include list of well-known annotations.
1726 * test/glib/test-service-glib.xml: Make validate against new DTD.
1728 2005-02-17 Colin Walters <walters@verbum.org>
1730 This patch is based on initial work from
1731 Paul Kuliniewicz <kuliniew@purdue.edu>.
1733 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
1734 initialization of GValue from dbus type to here.
1735 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
1736 for the "glib-genmarshal" program from a DBus type.
1737 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
1738 into the C name for it we use in the glib bindings.
1739 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
1740 glib C type (not GValue).
1741 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
1743 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
1744 from dbus-gobject.c.
1746 * glib/dbus-gutils.h: Prototype it.
1748 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
1749 (marshal_dbus_message_to_g_marshaller): Use new shared function
1750 dbus_glib_marshal_dbus_message_to_gvalue_array.
1752 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
1753 Will be changed once we have annotations.
1755 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
1756 GStaticRWLock. Callers updated.
1757 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
1758 (string_table_next): New function for iterating over zero-terminated
1760 (string_table_lookup): New function; retrieves specific entry in
1762 (get_method_data): New function; look up method data in object data chunk.
1763 (object_error_domain_prefix_from_object_info)
1764 (object_error_code_from_object_info): New functions, but not implemented yet.
1765 (method_interface_from_object_info): New function; retrieve interface name.
1766 (method_name_from_object_info): New function; retrieve method name.
1767 (method_arg_info_from_object_info): New function; retrieve argument data.
1768 (arg_iterate): New function; iterates over serialized argument data.
1769 (method_dir_signature_from_object_info): New function; returns a
1770 GString holding type signature for arguments for just one
1771 direction (input or output).
1772 (method_input_signature_from_object_info)
1773 (method_output_signature_from_object_info): New functions.
1774 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
1775 converts dbus message arguments into a GValue array. Used for both
1776 signal handling and method invocation.
1777 (struct DBusGlibWriteIterfaceData): New utility structure.
1778 (write_interface): New function; generate introspection XML for
1780 (introspect_interfaces): New function; gathers all interface->methods,
1781 generates introspection XML for them.
1782 (handle_introspect): Invoke introspect_interfaces.
1783 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
1784 (lookup_object_and_method): New function; examines an incoming message
1785 and attempts to match it up (via interface, method name, and argument
1786 signature) with a known object and method.
1787 (gerror_domaincode_to_dbus_error_name): New function; converts a
1788 GError domain and code into a DBus error name. Needs GError data
1789 added to object introspection to work well.
1790 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
1792 (invoke_object_method): New function to invoke an object method
1793 looked up via lookup_object_and_method. Parses the incoming
1794 message, turns it into a GValue array, then invokes the marshaller
1795 specified in the DBusGMethodInfo. Creates a new message with
1796 either return values or error message as appropriate.
1797 (gobject_message_function): Invoke lookup_object_and_method and
1798 invoke_object_method.
1800 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
1801 (enum DBusBindingOutputMode): New enum for binding output modes.
1802 (pretty_print): Print binding names.
1803 (dbus_binding_tool_error_quark): GError bits.
1804 (version): Fix typo.
1805 (main): Create GIOChannel for output. Parse new --mode argument,
1806 possible values are "pretty-print", "glib-server", "glib-client".
1807 Use mode to invoke appropriate function.
1809 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
1811 * glib/dbus-glib-tool.h: New header, just includes GError bits
1814 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
1815 maps binding style to name.
1816 (struct MethodInfo): Ditto.
1817 (get_hash_keys, get_hash_key): Utility function, returns keys for
1819 (interface_info_new, method_info_new): Initialize bindings.
1820 (interface_info_unref, method_info_unref): Destroy bindings.
1821 (method_info_get_binding_names, method_info_get_binding_name)
1822 (interface_info_get_binding_names, interface_info_get_binding_name):
1823 Functions for retrieving binding names.
1824 (method_info_set_binding_name, interface_info_set_binding_name):
1825 Functions for setting binding names.
1827 * glib/dbus-binding-tool-glib.h: New file, has prototypes
1828 for glib binding generation.
1830 * glib/dbus-binding-tool-glib.c: New file, implements server-side
1831 and client-side glib glue generation.
1833 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
1834 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
1837 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
1838 of using GClosureMarshal directly.
1839 (struct DBusGObjectInfo): Add n_infos member.
1841 * test/glib/test-service-glib.xml: New file; contains introspection data
1842 for MyTestObject used in test-service-glib.c.
1844 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
1845 (my_object_do_nothing, my_object_increment, my_object_throw_error)
1846 (my_object_uppercase, my_object_many_args): New test methods.
1847 (main): Use dbus_g_object_class_install_info to include generated object
1850 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
1851 as well as client-side bindings.
1853 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
1854 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
1855 using both the dbus_gproxy stuff directly as well as the generated bindings.
1857 2005-02-15 Havoc Pennington <hp@redhat.com>
1859 * dbus/dbus-connection.c (dbus_connection_dispatch): always
1860 complete a pending call, don't run filters first.
1862 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
1863 dbus_pending_call_steal_reply
1865 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
1866 _dbus_connection_block_pending_call
1867 (dbus_pending_call_get_reply): change to steal_reply and return a
1870 * dbus/dbus-connection.c
1871 (dbus_connection_send_with_reply_and_block): port to work in terms
1873 (_dbus_connection_block_pending_call): replace block_for_reply
1876 2005-02-14 Havoc Pennington <hp@redhat.com>
1878 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
1879 properly handle looking up group information by name; fix
1882 2005-02-13 Havoc Pennington <hp@redhat.com>
1884 * dbus/dbus-connection.c (dbus_connection_return_message)
1885 (dbus_connection_borrow_message): hold dispatch lock while message
1887 (_dbus_connection_block_for_reply): hold dispatch lock while we
1888 block for the reply, so nobody steals our reply
1889 (dbus_connection_pop_message): hold the dispatch lock while we
1892 2005-02-13 Havoc Pennington <hp@redhat.com>
1894 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
1895 (_dbus_connection_release_dispatch)
1896 (_dbus_connection_acquire_io_path)
1897 (_dbus_connection_release_io_path): make the mutex and condvar
1898 control access to the "acquired" flag. Drop the connection lock
1899 while waiting on the condvar. Hopefully these are baby steps in
1900 roughly the right direction.
1902 2005-02-13 Havoc Pennington <hp@redhat.com>
1904 * dbus/dbus-connection.c: use separate mutexes for the condition
1905 variables; this is some kind of baseline for sanity, but the
1906 condition variables still aren't used correctly afaict
1908 2005-02-13 Havoc Pennington <hp@redhat.com>
1910 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1913 * dbus/dbus-connection.c
1914 (_dbus_connection_detach_pending_call_unlocked): add this
1916 Initial semi-correct pass through to fix thread locking; there are
1917 still some issues with the condition variable paths I'm pretty
1920 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
1923 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
1924 rename to add _unlocked
1925 (struct DBusConnection): move "dispatch_acquired" and
1926 "io_path_acquired" to use only one bit each.
1927 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
1928 (dbus_connection_set_watch_functions): hacky fix to reentrancy
1929 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
1930 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
1931 (_dbus_connection_remove_timeout)
1932 (_dbus_connection_toggle_timeout): drop lock when calling out to
1933 user functions; done in a hacky/bad way.
1934 (_dbus_connection_send_and_unlock): add a missing unlock
1935 (_dbus_connection_block_for_reply): add a missing unlock
1937 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1938 drop lock in a hacky probably unsafe way to call out to user
1941 2005-02-12 Havoc Pennington <hp@redhat.com>
1943 * tools/dbus-tree-view.c (info_set_func_text): display more
1946 * bus/driver.c (bus_driver_handle_list_services): list the bus
1949 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
1951 * glib/dbus-gidl.c (signal_info_get_n_args): new function
1952 (method_info_get_n_args): new function
1954 2005-02-12 Havoc Pennington <hp@redhat.com>
1956 * bus/driver.c (bus_driver_handle_introspect): add introspection
1959 2005-02-12 Havoc Pennington <hp@redhat.com>
1961 * bus/driver.c: put the signature of each bus driver method in the
1962 table of handlers and check it on incoming calls; this isn't
1963 really useful, but going to add introspect support in a minute.
1965 2005-02-11 Joe Shaw <joeshaw@novell.com>
1967 * mono/Connection.cs: The unpredictability of finalizers in mono
1968 prevents us from deterministically disconnecting the filters from
1969 the Service class's finalizer, so move tracking of filters and
1970 matches here. Add API for that.
1972 * mono/Service.cs: Remove the code, add code which calls the
1973 methods now on the Connection class.
1975 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
1977 * python/dbus.py (class Sender): added to support dbus signals better
1978 (Bus::add_signal_receiver): added expand_args parameter which defaults
1979 to True. When expand args is True the signal handler will pass the
1980 message arguments as parameters to the signal handler. If False
1981 revert to previous behavior where the signal handler must get the
1982 argument list from the message. This is to help port applications
1983 like HAL that have a tendancy to send variable length argument lists.
1984 self._match_rule_to_receivers is now a dict of dicts.
1985 (Bus::remove_signal_receiver): pop handler off the dict intead of
1986 removing it from a list
1987 (Bus::_signal_func): change signal handlers so that interface,
1988 signal_name, service, path and message are packed into a Sender
1989 object and that is passed to the handler. If expand_args is True
1990 extract the args list from the message and append it to the parameter
1993 * python/dbus_bindings.pyx.in (class Signature): added to support
1995 (MessageIter::__init__): changed iteration limit to match D-BUS
1996 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
1997 STRUCT and VARIENT type support
1998 (MessageIter::python_value_to_dbus_sig): made recursive to support
2000 (MessageIter::append*): added Signature, dict, tuple
2003 * python/examples/example-client.py: added examples of getting tuples
2006 * python/examples/example-service.py: added examples of sending tuples
2009 * python/examples/example-signal-recipient.py: Fixed to handle new
2010 signal callback format
2012 2005-02-10 Havoc Pennington <hp@redhat.com>
2014 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2015 (call dbus_g_proxy_add_signal)
2017 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2019 (_dbus_server_new_for_domain_socket): escape the path
2021 * dbus/dbus-address.c (dbus_address_escape_value): new
2022 (dbus_address_unescape_value): new
2023 (dbus_parse_address): unescape values
2025 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2027 * doc/dbus-specification.xml: explain how to escape values in
2030 2005-02-10 Havoc Pennington <hp@redhat.com>
2032 * dbus/dbus-message-factory.c (generate_special): modify test to
2033 avoid using a non-basic dict key
2035 * dbus/dbus-marshal-validate-util.c: add test for the below
2037 * doc/dbus-specification.xml: require that dict keys are a basic
2040 * dbus/dbus-marshal-validate.c
2041 (_dbus_validate_signature_with_reason): require that dict key is a
2044 2005-02-10 Havoc Pennington <hp@redhat.com>
2046 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2047 change to be _and_unlock instead of _unlocked
2049 * dbus/dbus-connection.c
2050 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2051 have no_update so we can find this bug quickly in future
2053 2005-02-10 Havoc Pennington <hp@redhat.com>
2055 * dbus/dbus-message-util.c (verify_test_message): tests for string
2058 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2059 support for arrays of string/signature/path
2061 2005-02-10 Joe Shaw <joeshaw@novell.com>
2063 * dbus/dbus-connection.c
2064 (_dbus_connection_queue_received_message_link,
2065 _dbus_connection_message_sent): Add the path to
2067 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2068 _dbus_connection_send_preallocated_unlocked(), updated the
2069 dispatch status, and unlocks. Fixes a bug where certain
2070 situations (like a broken pipe) could cause a Disconnect message
2071 to not be sent, tricking the bus into thinking a service was still
2072 there when the process had quit.
2073 (_dbus_connection_send_preallocated): Call
2074 _dbus_connection_send_preallocated_and_unlock().
2075 (_dbus_connection_send_and_unlock): Added. Calls
2076 _dbus_connection_send_preallocated_and_unlock().
2077 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2078 (dbus_connection_send_with_reply): Update the dispatch status and
2081 * mono/Service.cs (~Service): Added. Removes the filter so that
2082 we don't get unmanaged code calling back into a GCed delegate.
2083 (RemoveFilter); Added.
2085 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2087 * dbus/dbus-message.c (dbus_message_iter_open_container):
2088 - Removed check for iterator type being an array because
2089 get_arg_type does not work with writer iterators
2090 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2092 2005-02-07 Havoc Pennington <hp@redhat.com>
2094 * doc/dbus-specification.xml: some more language cleanups; add
2095 stuff about how to deal with invalid protocol and extension
2096 points; add _ to allowed chars in auth commands; add EXTENSION_
2099 2005-02-06 Havoc Pennington <hp@redhat.com>
2101 * s/expected/required/ in a couple places for clarity
2103 2005-02-07 Colin Walters <walters@verbum.org>
2105 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2106 sender or proposed_recipient.
2108 2005-02-06 Havoc Pennington <hp@redhat.com>
2110 * dbus/dbus-message-factory.c (generate_special): more tests
2112 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2113 array length that exceeds the maximum
2115 2005-02-05 Havoc Pennington <hp@redhat.com>
2117 * dbus/dbus-message-factory.c (generate_special): more test cases,
2120 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2121 reason why a signature was invalid
2123 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2124 skip the length of the string before we look at it in validation
2126 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2129 * dbus/dbus-message.c (_dbus_message_loader_new): default
2130 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2132 2005-02-05 Havoc Pennington <hp@redhat.com>
2134 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2135 if the signature of a variant was empty
2136 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2137 struct with no element type)
2139 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2140 mangled messages to break things
2142 2005-02-04 Havoc Pennington <hp@redhat.com>
2144 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2145 g_quark_try_string() so it actually can return 0
2146 (dbus_g_proxy_connect_signal): ditto
2148 2005-02-04 Havoc Pennington <hp@redhat.com>
2150 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2152 (tristring_from_message): assert cleanly on null path/interface
2153 (should not be possible though I decided later)
2154 (dbus_g_proxy_dispose): move proxy manager unregistration here
2155 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2156 g_return_if_fail() checks
2158 2005-02-04 Havoc Pennington <hp@redhat.com>
2160 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2162 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2163 (with some minor changes)
2165 * doc/dbus-specification.xml: add deprecated attribute to
2166 introspection format
2168 2005-01-31 Havoc Pennington <hp@redhat.com>
2170 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2171 think it's sort of right
2173 2005-01-30 Havoc Pennington <hp@redhat.com>
2175 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2177 2005-01-30 Havoc Pennington <hp@redhat.com>
2179 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2181 * autogen.sh: change to autotools 1.9
2183 * glib/dbus-gproxy.c: completely change how signals work
2184 (dbus_g_proxy_add_signal): new function to specify signature of a
2186 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2187 and g_warning if the incoming message has the wrong signature.
2189 2005-01-30 Havoc Pennington <hp@redhat.com>
2191 * tools/dbus-names-model.c (have_names_notify): fix this
2193 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2194 up the string array handling a bit
2196 2005-01-30 Havoc Pennington <hp@redhat.com>
2198 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2199 (dbus_g_pending_call_cancel): new function
2201 * dbus/dbus-glib.h: move GType decls for connection/message here;
2202 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2203 here, just kind of rationalizing how we handle all that
2205 * tools/dbus-names-model.c: new file for a tree model listing the
2208 * tools/dbus-tree-view.c (model_new): use proper typing on the
2211 2005-01-30 Havoc Pennington <hp@redhat.com>
2213 * glib/dbus-gmain.c: add a custom GSource back that just checks
2214 whether the message queue has anything in it; otherwise, there are
2215 cases where we won't see messages in the queue since there was no
2216 IO visible to the glib main loop
2218 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2219 increase default message timeout to 25 seconds
2221 2005-01-30 Havoc Pennington <hp@redhat.com>
2223 * test/glib/test-profile.c (no_bus_stop_server): remove the
2224 warning about the g_warning that I just fixed
2226 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2227 custom source, seems to be a lot easier to understand and work
2230 2005-01-30 Havoc Pennington <hp@redhat.com>
2232 I think this main loop thing is conceptually broken, but here are
2233 some band aids. I'll maybe rewrite it in a minute.
2235 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
2236 custom GSource, so don't pass it in; confusing
2237 (gsource_server_finalize, gsource_connection_finalize): add
2238 finalize handlers that remove all the watches.
2240 2005-01-30 Havoc Pennington <hp@redhat.com>
2242 * glib/dbus-gobject.c (introspect_properties): fix the XML
2245 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
2246 which effectively detects the use of freed messages
2248 * glib/dbus-gobject.c (handle_introspect): modify and return the
2249 reply message instead of the incoming message
2251 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
2252 gee, maybe it should SEND THE XML instead of just making a string
2253 and freeing it again ;-)
2255 * tools/dbus-print-message.c (print_message): improve printing of
2258 * configure.in: add debug-glib.service to the output
2260 2005-01-30 Havoc Pennington <hp@redhat.com>
2262 dbus-viewer introspected and displayed the bus driver
2264 * dbus/dbus-object-tree.c
2265 (object_tree_test_iteration): add tests for a handler registered on "/"
2267 * dbus/dbus-object-tree.c
2268 (_dbus_decompose_path): fix to handle path "/" properly
2269 (run_decompose_tests): add tests for path decomposition
2271 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
2274 * glib/dbus-gobject.c (handle_introspect): fix quotes
2276 * test/glib/run-test.sh: support launching the bus, then running
2279 * test/glib/test-service-glib.c (main): put in a trivial gobject
2280 subclass and register it on the connection
2282 * bus/driver.c (bus_driver_handle_introspect): implement
2283 introspection of the bus driver service
2285 * dbus/dbus-protocol.h: add #defines for the XML namespace,
2286 identifiers, doctype decl
2288 * bus/driver.c (bus_driver_handle_get_service_owner): handle
2289 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
2290 returning the service unchanged.
2291 (bus_driver_handle_message): remove old check for reply_serial in
2292 method calls, now the message type deals with that
2293 (bus_driver_handle_message): handle NULL interface
2295 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2297 * glib/dbus-gloader-expat.c (description_load_from_string): allow
2300 * tools/dbus-viewer.c: add support for introspecting a service on
2303 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2304 (dbus_g_pending_call_unref): add
2306 2005-01-29 Havoc Pennington <hp@redhat.com>
2308 * tools/dbus-tree-view.c: add support for displaying properties.
2309 (run dbus-viewer with an introspect xml file as arg, then resize
2310 the window so the tree elements show up, not sure what that is)
2312 * glib/dbus-gobject.c (handle_introspect): return
2313 org.freedesktop.Properties and org.freedesktop.Introspectable
2314 interfaces when we are introspected.
2316 * doc/dbus-specification.xml: allow empty interface name when
2319 2005-01-29 Havoc Pennington <hp@redhat.com>
2321 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2322 though it uses glib, it could be extended for any binding in
2325 * glib/dbus-gobject.c (gobject_message_function): change to the
2326 new way properties work
2328 * dbus/dbus-protocol.h: add the new interfaces
2330 * doc/dbus-specification.xml: document the introspection format,
2331 Introspectable interface, and add an org.freedesktop.Properties
2334 * glib/dbus-gparser.c: add support for a <property> element
2336 * glib/dbus-gidl.c: add PropertyInfo
2338 * glib/dbus-gobject.c (handle_introspect): put the outermost
2339 <node> outside the signal and property descriptions.
2340 (introspect_properties): export properties as <property> rather
2341 than as method calls
2343 2005-01-28 Havoc Pennington <hp@redhat.com>
2345 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
2346 related to authentication protocol
2348 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
2350 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
2351 - BUS_ACTIVATION -> BUS_STARTER
2352 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
2353 - class MessageIter (__init__): Added recursion checking
2354 so we throw a nice error instead of just disconnecting from the
2356 (get): Added arg_type parameter for recursion.
2357 Removed the nil type
2358 Added signiture type placeholder (not implemented)
2359 Added struct type placeholder (not implemented)
2360 Added varient type placeholder (not implemented)
2361 Commented out dict type for now
2362 (get_element_type): renamed from get_array_type
2363 (get_*): changed to use the dbus_message_iter_get_basic API
2364 (get_*_array): removed in favor of recursive get_array method
2365 (get_array): new recursive method which calls get to marshal
2366 the elements of the array
2367 (value_to_dbus_sig): New method returns the corrasponding
2368 dbus signiture to a python value
2369 (append): Comment out dict handling for now
2370 Handle lists with the new recursive API
2371 Comment out None handling for now
2372 (append_nil): removed
2373 (append_*): changed to use dbus_message_iter_append_basic API
2374 (append_*_array): removed in favor of recursive append_array
2376 (__str__): Make it easier to print out recursive iterators
2378 - class Message (__str__): moved type inspection to the
2379 MessageIter class' __str__ method
2380 (get_iter): Added an append parameter wich defaults to False
2381 If True use the new API's to create an append iterator
2383 * python/dbus.py: Update to use new bindings API
2384 - TYPE_ACTIVATION -> TYPE_STARTER
2385 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
2386 - class ActivationBus -> class StarterBus
2387 - class RemoteObject (__call__): get an append iterator
2388 - (_dispatch_dbus_method_call): get an append iterator
2389 - class Object (emit_signal): get an append iterator
2391 * python/examples/: Fixed up the examples to work with the new API
2393 2005-01-28 Joe Shaw <joeshaw@novell.com>
2395 * configure.in: Bump version up to 0.30.
2397 * HACKING: Add a release item to bump the version number up after
2400 2005-01-28 Havoc Pennington <hp@redhat.com>
2402 * doc/dbus-specification.xml: update to describe 16-bit types and
2405 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
2408 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
2411 * dbus/dbus-marshal-recursive.c: implement
2413 2005-01-27 Havoc Pennington <hp@redhat.com>
2415 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
2417 * configure.in: find the right type for 16 and 32 bit ints as well
2420 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
2421 the 16-bit types so people don't have to stuff them in 32-bit or
2424 2005-01-27 Havoc Pennington <hp@redhat.com>
2426 * dbus/dbus-message.c: byteswap the message if you init an
2427 iterator to read/write from it
2429 * dbus/dbus-marshal-byteswap.c: new file implementing
2430 _dbus_marshal_byteswap()
2432 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
2434 2005-01-26 Havoc Pennington <hp@redhat.com>
2436 * dbus/dbus-marshal-validate-util.c: break this out (and fix
2437 build, apparently - nobody noticed?)
2439 2005-01-26 Havoc Pennington <hp@redhat.com>
2441 * dbus/dbus-marshal-recursive.h: remove todo comment
2443 2005-01-25 Joe Shaw <joeshaw@novell.com>
2445 * Land the mono binding changes to conform to the new APIs.
2447 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
2448 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
2450 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
2451 type code as a string.
2452 (InitAppending): Rename dbus_message_append_iter_init() to
2453 dbus_message_iter_init_append().
2455 * mono/BusDriver.cs: Rename ServiceEventHandler to
2456 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
2457 Rename ServiceOwnerChanged to NameOwnerChanged.
2459 * mono/Connection.cs: Rename BaseService to UniqueName, and the
2462 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
2464 * mono/Service.cs: Rename Exists to HasOwner, internally rename
2465 dbus_bus_acquire_service() to dbus_bus_request_name().
2467 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
2468 of Type.UnderlyingSystemType to get the correct element type for
2470 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
2471 dbus_message_get_{element|arg}_type() instead of
2472 dbus_message_iter_init_array_iterator().
2473 (Append): Replace dbus_message_iter_append_array() with
2474 dbus_message_iter_open_container() and
2475 dbus_message_iter_close_container().
2477 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
2478 types have been removed.
2480 * mono/DBusType/*.cs: Replace calls of
2481 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
2482 but specify the type in the DllImport extern declaration. Ditto
2483 for dbus_message_iter_append_[type]() ->
2484 dbus_message_iter_append_basic().
2486 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
2487 NameOwnerChangedHandler.
2489 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
2491 * python/dbus_bindings.pyx.in: Rename of methods and bindings
2492 - get_base_service -> get_unique_name
2493 - bus_get_base_service -> bus_get_unique_name
2494 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
2495 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
2496 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
2497 - bus_activate_service -> bus_start_service_by_name
2498 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
2499 - bus_acquire_service -> bus_request_name
2500 - dbus_bus_acquire_service -> dbus_bus_request_name
2501 - bus_service_exists -> bus_name_has_owner
2502 - dbus_bus_service_exists -> dbus_bus_name_has_owner
2504 * python/dbus.py: Rename of methods
2505 - activate_service -> start_service_by_name
2506 - bus_acquire_service -> bus_request_name
2507 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
2508 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
2511 2005-01-24 Joe Shaw <joeshaw@novell.com>
2513 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
2514 signature for the method that can't be found.
2516 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
2517 the message has any arguments, we need to call
2518 _dbus_type_reader_get_current_type(), not
2519 _dbus_type_reader_has_next().
2521 2005-01-24 Havoc Pennington <hp@redhat.com>
2523 * dbus/dbus-message-factory.c: more testing of message validation
2525 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
2528 2005-01-23 Havoc Pennington <hp@redhat.com>
2530 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
2531 get this all working, not many tests in the framework yet though
2533 2005-01-22 Havoc Pennington <hp@redhat.com>
2535 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
2536 tutorial, based on work from David Wheeler.
2538 2005-01-21 Havoc Pennington <hp@redhat.com>
2540 * dbus/dbus-bus.c: add more return_if_fail checks
2542 * dbus/dbus-message.c (load_message): have the "no validation"
2543 mode (have to edit the code to toggle the mode for now though)
2545 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
2546 skips all validation; I want to use this at least for benchmark
2547 baseline, I'm not sure if it should be a publicly-available switch.
2549 2005-01-21 Havoc Pennington <hp@redhat.com>
2551 * glib/dbus-gmain.c: don't put the GLib bindings in the same
2552 toplevel doxygen group as the low-level API stuff
2554 * dbus/dbus.h: note that libdbus is the low-level API
2556 2005-01-20 Havoc Pennington <hp@redhat.com>
2558 * update-dbus-docs.sh: script to update docs on the web site, only
2559 works for me though. neener.
2561 2005-01-20 Havoc Pennington <hp@redhat.com>
2563 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
2564 code can reveal bugs in it
2566 2005-01-20 Havoc Pennington <hp@redhat.com>
2568 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
2569 select() version, patches from Tor Lillqvist
2571 2005-01-20 Havoc Pennington <hp@redhat.com>
2573 * doc/dbus-tutorial.xml: replace > with >
2575 * bus/services.c (bus_registry_acquire_service): validate the name
2576 and return a better error if it's no good.
2578 * doc/dbus-specification.xml: note NO_AUTO_START change
2580 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
2581 from AUTO_START, we're toggling the default
2583 * bus/dispatch.c: adapt the tests to change of auto-start default
2585 2005-01-18 Havoc Pennington <hp@redhat.com>
2587 * rename dbus-daemon-1 to dbus-daemon throughout
2589 2005-01-18 Havoc Pennington <hp@redhat.com>
2591 * Throughout, grand renaming to strip out the use of "service",
2592 just say "name" instead (or "bus name" when ambiguous). Did not
2593 change the internal code of the message bus itself, only the
2594 programmer-facing API and messages.
2596 * doc/dbus-specification.xml: further update the message bus section
2598 * bus/config-parser.c (all_are_equiv): fix bug using freed string
2601 2005-01-17 Havoc Pennington <hp@redhat.com>
2603 * dbus/dbus-types.h: remove 16-bit types since we don't use them
2606 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
2607 "invalid name character" not only non-ASCII
2609 * doc/dbus-specification.xml: further update spec, message bus
2610 parts are still out-of-date but the marshaling etc. stuff is now
2613 2005-01-17 Havoc Pennington <hp@redhat.com>
2615 * doc/dbus-specification.xml: partially update spec
2617 2005-01-17 Havoc Pennington <hp@redhat.com>
2619 * Throughout, align variant bodies according to the contained
2620 type, rather than always to 8. Should save a fair bit of space in
2623 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
2624 fix handling of case where p == end
2626 * doc/TODO: remove the dbus_bool_t item and variant alignment items
2628 2005-01-17 Havoc Pennington <hp@redhat.com>
2630 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
2632 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
2633 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
2634 are marshaling/unmarshaling a boolean.
2636 2005-01-16 Havoc Pennington <hp@redhat.com>
2638 This is about it on what can be disabled/deleted from libdbus
2639 easily, back below 150K anyhow. Deeper cuts are more work than
2640 just turning the code off as I've done here.
2642 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
2643 signed int convenience funcs
2645 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
2648 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
2649 things out of libdbus
2651 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
2653 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
2654 tests-enabled-only, though it should probably be deleted)
2656 * dbus/dbus-message-util.c: same stuff
2658 * dbus/dbus-auth-util.c: same stuff
2660 2005-01-16 Havoc Pennington <hp@redhat.com>
2662 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
2664 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
2665 way for stripping down dbus-userdb.c stuff included in libdbus.
2666 Rename _dbus_parse_uid for consistency.
2668 2005-01-16 Havoc Pennington <hp@redhat.com>
2670 * dbus/dbus-internals.c (_dbus_real_assert): print the function
2671 name the assertion failed in
2673 * dbus/dbus-internals.h (_dbus_return_if_fail)
2674 (_dbus_return_val_if_fail): assert that the name of the function
2675 containing the check doesn't start with '_', since we only want to
2676 use checks on public functions
2678 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
2679 checks to assertions
2681 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
2682 change checks to asserts for private function
2684 * dbus/dbus-message.c (_dbus_message_set_serial): checks
2685 to asserts for private function
2687 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
2688 broken assertion that was breaking make check
2689 (_dbus_type_reader_array_is_empty): remove this rather than fix
2690 it, was only used in assertions
2692 2005-01-16 Havoc Pennington <hp@redhat.com>
2694 * test/unused-code-gc.py: hacky script to find code that's used
2695 only by the bus (not libdbus) or used only by tests or not used at
2696 all. It has some false alarms, but looks like we can clean up a
2697 lot of size from libdbus.
2699 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
2700 dbus/Makefile.am: initially move 10K of binary size out of libdbus
2702 2005-01-16 Havoc Pennington <hp@redhat.com>
2704 * Add and fix docs according to Doxygen warnings throughout
2707 * dbus/dbus-marshal-recursive.c
2708 (_dbus_type_reader_array_is_empty): change this to just call
2709 array_reader_get_array_len() and make it static
2711 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
2713 (dbus_message_iter_init_append): rename from append_iter_init
2715 * dbus/dbus-marshal-recursive.c
2716 (_dbus_type_reader_get_element_type): rename from
2717 _dbus_type_reader_get_array_type
2719 2005-01-15 Havoc Pennington <hp@redhat.com>
2721 * test/glib/test-profile.c (with_bus_server_filter): fix crash
2723 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
2724 when DBUS_DISABLE_ASSERT
2725 (_dbus_marshal_set_basic): be sure we align for the string length
2727 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
2730 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
2731 inline macro version
2732 (_dbus_string_set_byte): provide inline macro version
2734 2005-01-15 Havoc Pennington <hp@redhat.com>
2736 * Land the new message args API and type system.
2738 This patch is huge, but the public API change is not
2739 really large. The set of D-BUS types has changed somewhat,
2740 and the arg "getters" are more geared toward language bindings;
2741 they don't make a copy, etc.
2743 There are also some known issues. See these emails for details
2745 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
2746 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
2748 * dbus/dbus-marshal-*: all the new stuff
2750 * dbus/dbus-message.c: basically rewritten
2752 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
2753 freed blocks to be all non-nul bytes so using freed memory is less
2754 likely to work right
2756 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
2757 DBUS_FAIL_MALLOC=N environment variable, so you can do
2758 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
2759 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
2762 * qt/message.cpp: port to the new message args API
2763 (operator<<): use str.utf8() rather than str.unicode()
2764 (pretty sure this is right from the Qt docs?)
2766 * glib/dbus-gvalue.c: port to the new message args API
2768 * bus/dispatch.c, bus/driver.c: port to the new message args API
2770 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
2771 "locked" flag to TRUE and align_offset to 0; I guess we never
2772 looked at these anyhow, but seems cleaner.
2774 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
2775 move allocation padding macro to this header; use it to implement
2776 (_DBUS_STRING_STATIC): ability to declare a static string.
2778 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
2779 change to return TRUE if the interface is not set.
2781 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
2782 to dbus-marshal-validate.[hc]
2784 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
2787 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
2788 to dbus-marshal-*.[hc]
2790 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
2791 function here from dbus-marshal.c
2793 2005-01-12 Joe Shaw <joeshaw@novell.com>
2795 * NEWS: Update for 0.23.
2797 * configure.in: Release 0.23.
2799 2005-01-12 Joe Shaw <joeshaw@novell.com>
2801 * mono/Makefile.am, mono/example/Makefile.am: Always build the
2802 dbus DLL with --debug. Clean up after the .mdb files this leaves
2805 * mono/doc/Makefile.am: Need to uninstall the docs on "make
2808 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
2809 is an enum, get the enum's underlying type. Another mono
2812 2005-01-11 Joe Shaw <joeshaw@novell.com>
2814 Patch from Sjoerd Simons <sjoerd@luon.net>
2816 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
2817 DESTDIR. It breaks stuff.
2819 2005-01-11 Joe Shaw <joeshaw@novell.com>
2821 Patch from Tambet Ingo <tambet@ximian.com>
2823 * mono/DBusType/Array.cs (Get): Get the underlying element type by
2824 calling type.GetElementType(). The code previously depended on
2825 broken Mono behavior, which was fixed in Mono 1.1.3.
2827 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
2828 Activator.CreateInstance() so that the class's constructor is
2829 called with the right parameters.
2831 2005-01-11 Joe Shaw <joeshaw@novell.com>
2833 Patch from Timo Teräs <ext-timo.teras@nokia.com>
2835 * dbus/dbus-connection.c
2836 (_dbus_connection_queue_received_message_link): Call
2837 _dbus_connection_remove_timeout() instead of the _locked()
2838 variant, since it's always called from
2839 _dbus_connection_handle_watch(), which handles the locking.
2840 Removed the _locked() variant since it's no longer used.
2842 2005-01-03 Havoc Pennington <hp@redhat.com>
2844 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
2847 2004-12-26 Havoc Pennington <hp@redhat.com>
2849 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
2851 2005-01-03 Havoc Pennington <hp@redhat.com>
2853 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
2856 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
2858 2005-01-02 Havoc Pennington <hp@redhat.com>
2860 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
2862 2005-01-01 Havoc Pennington <hp@redhat.com>
2864 * configure.in: add -Wfloat-equal
2866 2005-01-01 Havoc Pennington <hp@redhat.com>
2868 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
2869 for a variety of reasons '==' doesn't do this.
2871 2004-12-31 Havoc Pennington <hp@redhat.com>
2873 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
2874 I keep wishing I had
2876 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2878 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
2880 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2882 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
2883 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
2884 dbus-protocol.h. Because they are defines and not enums they are not
2887 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
2889 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
2890 dbus_bus_activate_service
2892 * python/dbus.py (Bus.activate_service): activate a service on the
2895 2004-12-24 Havoc Pennington <hp@redhat.com>
2897 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
2898 file format has also changed and I haven't adapted to that yet
2900 * Makefile.am: load .gcno files from latest gcc
2902 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
2903 * Patch from Rob Taylor <robtaylor@fastmail.fm>
2905 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
2908 * python/dbus.py (get_unix_user): Added binding to
2909 call dbus_bindings.bus_get_unix_user
2911 * python/extract.py: Modified the proto_pat regex to
2912 handle unsigned long
2914 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2916 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
2917 better POSIX compliance.
2919 2004-12-19 Havoc Pennington <hp@redhat.com>
2921 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
2922 (_dbus_string_insert_8_aligned): new functions
2924 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
2926 2004-12-18 Havoc Pennington <hp@redhat.com>
2928 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
2931 * dbus/dbus-message.c: fix a comment, and add a still-unused
2932 not-implemented function
2934 * dbus/dbus-marshal.h: fix comment
2936 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
2938 2004-12-17 Joe Shaw <joeshaw@novell.com>
2940 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
2941 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
2942 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
2943 Type.UnderlyingSystemType to get the actual system type
2944 underneath. This code previously depended on the broken Mono
2945 behavior, which was fixed in 1.1.3.
2947 2004-11-27 Havoc Pennington <hp@redhat.com>
2949 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
2951 (_dbus_string_get_const_data): inline when asserts are disabled
2953 * dbus/dbus-message.c: record the _dbus_current_generation of
2954 creation so we can complain if dbus_shutdown() is used improperly.
2955 Do this only if checks are enabled.
2957 * dbus/dbus-connection.c: ditto
2959 2004-11-26 Havoc Pennington <hp@redhat.com>
2961 * test/glib/test-profile.c: add with_bus mode to profile echoes
2962 that go through the bus.
2964 * test/glib/run-test.sh: add ability to run test-profile
2966 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
2969 2004-11-26 Havoc Pennington <hp@redhat.com>
2971 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
2972 thing was implemented
2974 2004-11-26 Havoc Pennington <hp@redhat.com>
2976 * test/glib/test-profile.c: tweak a bit, add support for some
2977 made-up minimal malloc overhead with plain sockets, since in
2978 real life some sort of buffers are unavoidable thus we could
2979 count them in the theoretical best case
2981 2004-11-26 Havoc Pennington <hp@redhat.com>
2983 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
2984 where I was trying to cache one too many messages
2986 2004-11-26 Havoc Pennington <hp@redhat.com>
2988 * dbus/dbus-message.c: reimplement message cache as an array which
2989 makes the cache about twice as fast and saves maybe 1.5% overall
2991 2004-11-26 Havoc Pennington <hp@redhat.com>
2993 * dbus/dbus-threads.c (init_global_locks): forgot to put the
2994 message cache lock here
2996 2004-11-26 Havoc Pennington <hp@redhat.com>
2998 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
2999 the "char byte_order" next to each other to save 4 bytes
3000 (dbus_message_new_empty_header): reduce preallocation, since the
3001 message cache should achieve a similar effect
3002 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3003 message cache that keeps a few DBusMessage around in a pool,
3004 another 8% speedup or so.
3006 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3008 2004-11-25 Havoc Pennington <hp@redhat.com>
3010 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3011 to write, without reading or blocking, try it before the poll()
3012 and skip the poll() if nothing remains to write. This is about a
3013 3% speedup in the echo client/server
3015 2004-11-25 Havoc Pennington <hp@redhat.com>
3017 The primary change here is to always write() once before adding
3018 the write watch, which gives us about a 10% performance increase.
3020 * dbus/dbus-transport-unix.c: a number of modifications to cope
3021 with removing messages_pending
3022 (check_write_watch): properly handle
3023 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3024 messages_pending stuff
3025 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3027 (unix_handle_watch): after writing, see if the write watch can be
3029 (unix_do_iteration): assert that write_watch/read_watch are
3030 non-NULL rather than testing that they aren't, since they
3031 aren't allowed to be NULL. check_write_watch() at the end so
3032 we add the watch if we did not finish writing (e.g. got EAGAIN)
3034 * dbus/dbus-transport-protected.h: remove messages_pending call,
3035 since it resulted in too much inefficient watch adding/removing;
3036 instead we now require that the transport user does an iteration
3037 after queueing outgoing messages, and after trying the first
3038 write() we add a write watch if we got EAGAIN or exceeded our
3039 max bytes to write per iteration setting
3041 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3044 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3045 freed and then accessed, valgrind flagged this bug, fix it
3047 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3048 as the last valid field plus 1, where really it is equal to the
3049 last valid field. Corrects some message corruption issues.
3051 * dbus/dbus-mainloop.c: verbosity changes
3053 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3054 instead of aborting in one of the test codepaths
3056 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3057 caused not printing the pid ever again if a verbose was missing
3058 the newline at the end
3059 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3061 * dbus/dbus-connection.c: verbosity changes;
3062 (dbus_connection_has_messages_to_send): new function
3063 (_dbus_connection_message_sent): no longer call transport->messages_pending
3064 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3065 try to write() immediately, so we can avoid the write watch. This
3066 is the core purpose of this patchset
3067 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3068 dump the outgoing message queue, so nobody will get confused
3069 trying to send them or thinking stuff is pending to be sent
3071 * bus/test.c: verbosity changes
3073 * bus/driver.c: verbosity/assertion changes
3075 * bus/dispatch.c: a bunch of little tweaks to get it working again
3076 because this patchset changes when/where you need to block.
3078 2004-11-23 Havoc Pennington <hp@redhat.com>
3080 * test/glib/test-profile.c: modify to accept a plain_sockets
3081 argument in which case it will bench plain sockets instead of
3082 libdbus, for comparison purposes.
3084 2004-11-22 Havoc Pennington <hp@redhat.com>
3086 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3087 threads for more time, so sysprof can get a grip on it.
3089 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3092 2004-11-13 Havoc Pennington <hp@redhat.com>
3094 * test/glib/test-profile.c: fix this thing up a bit
3096 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3097 preallocation sizes by a fair bit; not sure if this will be an
3098 overall performance win or not, but it does reduce reallocs.
3100 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3101 the test hack that forced constant realloc if asserts are
3102 disabled, so we can profile sanely. Sprinkle in some
3103 _DBUS_UNLIKELY() which are probably pointless, but before I
3104 noticed the real performance problem I put them in.
3105 (_dbus_string_validate_utf8): micro-optimize this thing a little
3106 bit, though callgrind says it didn't help; then special-case
3107 ascii, which did help a lot; then be sure we detect nul bytes as
3108 invalid, which is a bugfix.
3109 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3110 superstition; use memset to nul the padding instead of a manual
3112 (_dbus_string_get_length): inline this as a
3113 macro; it showed up in the profile because it's used for loop
3116 2004-11-10 Colin Walters <walters@verbum.org>
3118 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3121 2004-11-09 Colin Walters <walters@verbum.org>
3123 * dbus/dbus-string.c (_dbus_string_get_length): New
3124 function, writes DBusString to C buffer.
3126 * dbus/dbus-string.h: Prototype it.
3128 * dbus/dbus-message.c (dbus_message_type_to_string): New
3129 function, converts message type into C string.
3131 * dbus/dbus-message.h: Prototype it.
3133 * bus/selinux.c (bus_selinux_check): Take source pid,
3134 target pid, and audit data. Pass audit data to
3136 (log_audit_callback): New function, appends extra
3138 (bus_selinux_allows_acquire_service): Also take
3139 service name, add it to audit data.
3140 (bus_selinux_allows_send): Also take message
3141 type, interface, method member, error name,
3142 and destination, and add them to audit data.
3143 (log_cb): Initialize func_audit.
3145 * bus/selinux.h (bus_selinux_allows_acquire_service)
3146 (bus_selinux_allows_send): Update prototypes
3148 * bus/services.c (bus_registry_acquire_service): Pass
3149 service name to bus_selinux_allows_acquire_service.
3151 * bus/bus.c (bus_context_check_security_policy): Pass
3152 additional audit data. Move assignment of dest
3155 2004-11-07 Colin Walters <walters@verbum.org>
3157 * dbus/dbus-transport-unix.c (do_authentication): Always
3158 initialize auth_completed.
3160 2004-11-07 Colin Walters <walters@verbum.org>
3162 * bus/bus.c (load_config): Break into three
3163 separate functions: process_config_first_time_only,
3164 process_config_every_time, and process_config_postinit.
3165 (process_config_every_time): Move call of
3166 bus_registry_set_service_context_table into
3167 process_config_postinit.
3168 (process_config_postinit): New function, does
3169 any processing that needs to happen late
3170 in initialization (and also on reload).
3171 (bus_context_new): Instead of calling load_config,
3172 open config parser here and call process_config_first_time_only
3173 and process_config_every_time directly. Later, after
3174 we have forked but before changing UID,
3175 invoke bus_selinux_full_init, and then call
3176 process_config_postinit.
3177 (bus_context_reload_config): As in bus_context_new,
3178 load parse file inside here, and call process_config_every_time
3179 and process_config_postinit.
3181 * bus/services.h, bus/services.c
3182 (bus_registry_set_service_context_table): Rename
3183 from bus_registry_set_sid_table. Take string hash from config
3184 parser, and convert them here into SIDs.
3186 * bus/config-parser.c (struct BusConfigParser): Have
3187 config parser only store a mapping of service->context
3189 (merge_service_context_hash): New function.
3190 (merge_included): Merge context string hashes instead
3191 of using bus_selinux_id_table_union.
3192 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3193 simply create a new string hash.
3194 (bus_config_parser_unref): Unref it.
3195 (start_selinux_child): Simply insert strings into hash,
3196 don't call bus_selinux_id_table_copy_over.
3198 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3199 (bus_selinux_id_table_copy_over): Delete.
3201 2004-11-03 Colin Walters <walters@verbum.org>
3203 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3206 2004-11-03 Colin Walters <walters@verbum.org>
3208 * bus/test-main.c (test_pre_hook): Fix test logic,
3209 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3211 2004-11-02 Colin Walters <walters@redhat.com>
3213 * bus/selinux.c (bus_selinux_init): Split into two functions,
3214 bus_selinux_pre_init and bus_selinux_post_init.
3215 (bus_selinux_pre_init): Just determine whether SELinux is
3217 (bus_selinux_post_init): Do everything else.
3219 * bus/main.c (main): Call bus_selinux_pre_init before parsing
3220 config file, and bus_selinux_post_init after. This ensures that
3221 we don't lose the policyreload notification thread that
3222 bus_selinux_init created before forking previously.
3224 * bus/test-main.c (test_pre_hook): Update for split.
3226 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
3228 Patch from Johan Fischer <linux@fischaz.com>
3230 * mono/doc/Makefile.am (install-data-local): Added directory
3233 2004-10-29 Colin Walters <walters@redhat.com>
3235 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
3236 parameter for fd to write pid to.
3238 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
3240 * bus/bus.c (bus_context_new): Pass print_pid_fd
3241 to _dbus_become_daemon (bug #1720)
3243 2004-10-29 Colin Walters <walters@redhat.com>
3245 Patch from Ed Catmur <ed@catmur.co.uk>
3247 * mono/doc/Makefile.am (install-data-local): Handle
3250 2004-10-29 Colin Walters <walters@redhat.com>
3252 * bus/.cvsignore, qt/.cvsignore: Update.
3254 2004-10-29 Colin Walters <walters@redhat.com>
3256 Patch from Kristof Vansant <de_lupus@pandora.be>
3258 * configure.in: Detect Slackware.
3259 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
3260 * bus/rc.messagebus.in: New file.
3262 2004-10-29 Colin Walters <walters@redhat.com>
3264 * tools/dbus-monitor.c (filter_func): Return
3265 DBUS_HANDLER_RESULT_HANDLED in filter function
3267 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
3269 2004-10-29 Colin Walters <walters@redhat.com>
3271 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
3273 * bus/services.c (bus_registry_acquire_service):
3274 Correctly retrieve service name from DBusString
3277 2004-10-29 Colin Walters <walters@redhat.com>
3279 * dbus/dbus-glib.h: Update documentation to not
3280 refer to internal APIs.
3282 2004-10-27 Joe Shaw <joeshaw@novell.com>
3284 * mono/Arguments.cs (GetDBusTypeConstructor):
3285 type.UnderlyingSystemType will return "System.Byte" if you do it
3286 on "byte[]", which is not what we want. So check the type.IsArray
3287 property and use System.Array instead.
3289 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
3291 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3292 the DBusUserInfo structure since this is passed into the function.
3293 This would cause a double free when the function that allocated
3294 the structure would try to free it when an error occured.
3296 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3297 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3298 for service activation to avoid 32bit/64bit parallel install issues
3300 2004-10-21 Colin Walters <walters@verbum.org>
3302 * AUTHORS: Fix my email address, the @gnu.org one
3303 has been bouncing for some time. Also add J5.
3305 2004-10-21 Colin Walters <walters@verbum.org>
3307 * dbus/dbus-transport-unix.c (do_authentication): Return
3308 authentication status to callers.
3309 (unix_handle_watch): If we completed authentication this round,
3310 don't do another read. Instead wait until the next iteration,
3311 after we've read any pending data in the auth buffer.
3312 (unix_do_iteration): Ditto.
3313 (unix_handle_watch): Updated for new do_authentication prototype.
3315 2004-10-18 Colin Walters <walters@verbum.org>
3317 * bus/selinux.c (bus_selinux_enabled): Handle
3318 --disable-selinux case.
3320 2004-10-18 Colin Walters <walters@verbum.org>
3322 * bus/selinux.h: Add bus_selinux_enabled.
3324 * bus/selinux.c (bus_selinux_enabled): Implement it.
3326 * bus/config-parser.c (struct include): Add
3327 if_selinux_enabled member.
3328 (start_busconfig_child): Parse if_selinux_enabled
3329 attribute for include.
3330 (bus_config_parser_content): Handle it.
3332 * bus/session.conf.in, bus/system.conf.in: Add
3333 inclusion of context mapping to default config files;
3334 conditional on SELinux being enabled.
3336 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
3338 * test/data/invalid-config-files/badselinux-1.conf,
3339 test/data/invalid-config-files/badselinux-2.conf:
3340 Test files for bad syntax.
3342 2004-10-17 Colin Walters <walters@verbum.org>
3344 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
3345 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
3346 format specifier mismatches.
3348 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
3350 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
3353 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
3354 pointer (bug #1540, Leonardo Boiko).
3356 2004-09-28 Jon Trowbridge <trow@ximian.com>
3358 * mono/BusDriver.cs: Changed BusDriver struct to remove
3359 the ServiceCreated and ServiceDeleted events and replace them
3360 with the new ServiceOwnerChanged event.
3362 * mono/example/BusListener.cs: Added a new example program,
3363 which listens for and reports any ServiceOwnerChanged events
3366 * mono/example/Makefile.am (DESTDIR): Build changes for the
3367 new BusListener.cs example.
3369 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
3371 * bus/signals.c (bus_match_rule_parse): validate the components of
3372 match rules (bug #1439).
3374 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
3376 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
3378 * doc/dbus-specification.xml: document ServiceOwnerChanged
3381 * bus/driver.c, bus/driver.h, bus/services.c: Use
3382 ServiceOwnerChanged signal instead of ServiceCreated and
3385 * bus/dispatch.c: update testcase for the new signal.
3387 2004-09-20 Jon Trowbridge <trow@ximian.com>
3389 Patch from Nat Friedman <nat@novell.com>
3391 * mono/Makefile.am: A number of small build fixes to allow "make
3392 distcheck" to succeed.
3394 * mono/example/Makefile.am: "make distcheck" fixes.
3396 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
3399 * test/Makefile.am: "make distcheck" fixes.
3401 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
3403 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
3405 * doc/busconfig.dtd: update the DTD for the at_console attribute.
3407 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
3408 messages after the first one (bug #1389).
3410 * bus/dispatch.c (check_double_hello_message): add a test case for
3411 the double hello message bug.
3412 (check_existent_service_activation): fix check of spawning error.
3414 2004-09-16 David Zeuthen <david@fubar.dk>
3416 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
3418 2004-09-12 David Zeuthen <david@fubar.dk>
3420 Patch from Kay Sievers <kay.sievers@vrfy.org>
3422 * bus/bus.c (bus_context_new):
3424 * bus/main.c (usage)
3426 Add commandline option --nofork to override configuration file
3429 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3431 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
3432 compilers don't like it (bug #974).
3434 2004-09-04 Harald Fernengel <harry@kdevelop.org>
3436 * qt/connection.*: Applied patch by Jérôme Lodewyck
3437 <lodewyck@clipper.ens.fr> to integrate an existing
3438 connection into the Qt eventloop
3440 2004-08-30 Jon Trowbridge <trow@ximian.com>
3442 * mono/BusDriver.cs: Added. This is a class for interacting with
3443 the org.freedesktop.DBus service.
3445 * mono/Message.cs: Added a mechanism to expose the message that is
3446 currently being dispatched via the static Message.Current
3447 property. Added Message.Sender and Message.Destination
3450 * mono/Handler.cs: Expose the dispatched message via
3451 Message.Current when handling method calls.
3453 * mono/Service.cs: Expose the dispatched message via
3454 Message.Current when handling signal emissions.
3456 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
3457 Connection.BaseService property.
3459 2004-08-28 Havoc Pennington <hp@redhat.com>
3461 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
3463 More fixes from Steve Grubb
3465 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
3466 (_dbus_listen_tcp_socket): fix fd leak
3468 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
3469 EINTR to a bit lower in the code
3471 2004-08-26 Jon Trowbridge <trow@ximian.com>
3473 * bus/driver.c (bus_driver_handle_service_exists): Respond with
3474 TRUE if we are inquiring about the existence of the built-in
3475 org.freedesktop.DBus service.
3477 2004-08-25 John Palmieri <johnp@redhat.com>
3478 * bus/config-parser.c:
3479 (struct PolicyType): Add POLICY_CONSOLE
3480 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
3481 (start_busconfig_child): Sets up console element when
3482 <policy at_console=""> is encountered in a policy file
3483 (append_rule_from_element): Convert console elements to console
3487 (bus_policy_create_client_policy): Add console rules to the client
3488 policy based on if the client is at the console
3489 (bus_policy_append_console_rule): New function for adding a
3490 console rule to a policy
3491 (bus_policy_merge): Handle console rule merging
3493 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
3494 where we check for console user files
3496 * dbus/dbus-sysdeps.c:
3497 (_dbus_file_exists): New function which checks if the given
3499 (_dbus_user_at_console): New function which does the system
3500 specific process of checking if the user is at the console
3502 * dbus/dbus-userdb.c:
3503 (_dbus_is_console_user): New function converts a UID to user name
3504 and then calls the system specific _dbus_user_at_console to
3505 see if the user is at the console and therefor a console user
3507 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
3509 * bus/config-parser.c (set_limit):
3510 * bus/dbus-daemon-1.1.in:
3511 * test/data/valid-config-files/many-rules.conf: set the
3512 max_match_rules_per_connection limt from the config file.
3514 * doc/busconfig.dtd: update the DTD.
3516 * bus/driver.c: remove some unused variables.
3518 2004-08-24 Mikael Hallendal <micke@imendio.com>
3520 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
3521 it's been replaced by dbus_g_bus_get
3523 2004-08-23 Colin Walters <walters@redhat.com>
3525 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3527 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
3529 * bus/selinux.c: Create a thread for policy reload notification.
3530 (bus_selinux_get_policy_root): Implement.
3532 * bus/config-parser.c (start_busconfig_child)
3533 (bus_config_parser_content): Support SELinux-root relative
3536 * configure.in <HAVE_SELINUX>: Add -lpthread.
3538 * bus/test-main.c (test_pre_hook, test_post_hook): New.
3539 (test_post_hook): Move memory checking into here.
3540 (test_pre_hook, test_post_hook): Move SELinux checks in
3541 here, but conditional on a DBUS_TEST_SELINUX environment
3542 variable. Unfortunately we can't run the SELinux checks
3543 as a normal user, since they won't have any permissions
3544 for /selinux. So this will have to be tested manually
3545 for now, until we have virtualization for most of
3548 2004-08-23 Havoc Pennington <hp@redhat.com>
3550 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
3551 drop supplementary groups, suggested by Steve Grubb
3553 2004-08-20 Colin Walters <walters@redhat.com>
3555 * bus/config-parser.c (start_busconfig_child): Remove some unused
3558 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
3561 2004-08-17 Joe Shaw <joeshaw@novell.com>
3563 * configure.in: If --enable-mono is passed in, if we can't find
3566 * mono/Makefile.am: Use /gacutil to install assemblies into the
3569 2004-08-12 Havoc Pennington <hp@redhat.com>
3571 * NEWS: update for 0.22
3573 * configure.in: release 0.22
3575 2004-08-11 Colin Walters <walters@redhat.com>
3577 * tools/dbus-send.c (main, usage): Add --reply-timeout
3580 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
3582 * bus/bus.c (process_config_first_time_only): get rid of an unused
3583 DBusError that was causing a memoy leak (bug #989).
3585 * dbus/dbus-keyring.c, dbus/dbus-message.c:
3586 fix compilation on Solaris/Forte C (bug #974)
3588 * bus/main.c (main): plug two minuscule memleaks.
3590 2004-08-10 Havoc Pennington <hp@redhat.com>
3592 * doc/dbus-tutorial.xml: add some more info on GLib bindings
3594 2004-08-09 Havoc Pennington <hp@redhat.com>
3596 * COPYING: switch to Academic Free License version 2.1 instead of
3597 2.0, to resolve complaints about patent termination clause.
3599 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
3601 * README: added documentation for the --enable-python
3604 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3606 * bus/config-parser.c (bus_config_parser_new): fix an invalid
3607 _unref in the SELinux support.
3609 * doc/busconfig.dtd: update DTD for SELinux support.
3611 * bus/config-loader-libxml.c: fix error handler and parser
3612 initialisation/cleanup. OOM test now works with libxml2 HEAD.
3614 * configure.in: remove the warning about libxml2.
3616 * dbus/dbus-bus.c: silence doxygen warning.
3618 2004-07-31 Colin Walters <walters@redhat.com>
3620 * configure.in: Move #error in SELinux check to its own line.
3622 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3624 * dbus/dbus-internals.h (_DBUS_SET_OOM):
3625 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
3628 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
3629 broken by the change in the _SET_OOM macros.
3631 2004-07-31 Colin Walters <walters@redhat.com>
3633 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
3636 2004-07-31 Colin Walters <walters@redhat.com>
3638 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
3639 to correctly detect DBUS__ACQUIRE_SVC. Also add an
3642 2004-07-24 Havoc Pennington <hp@redhat.com>
3644 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3646 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
3649 * configure.in: add --enable-selinux
3651 * bus/policy.c (bus_policy_merge): add FIXME to a comment
3653 * bus/main.c (main): initialize and shut down selinux
3655 * bus/connection.c: store SELinux ID on each connection, to avoid
3656 repeated getting of the string context and converting it into
3659 * bus/bus.c (bus_context_get_policy): new accessor, though it
3661 (bus_context_check_security_policy): check whether the security
3662 context of sender connection can send to the security context of
3663 recipient connection
3665 * bus/config-parser.c: add parsing for <selinux> and <associate>
3667 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
3668 implement dbus_connection_get_unix_fd()
3670 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
3671 function, used by the selinux stuff
3673 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
3675 * bus/config-loader-libxml.c: complete the implementation of
3676 libxml backend for config file loader. Doesn't work with full OOM
3679 * configure.in: change error when selecting libxml into a warning.
3681 * test/data/invalid-config-files: add two non-well-formed XML
3684 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
3686 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
3687 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
3688 be necessary to read all the buffer. (bug #894)
3690 * bus/activation.c (bus_activation_activate_service): fix a
3691 potential assertion failure (bug #896). Small optimization in the
3692 case of auto-activation messages.
3694 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
3695 add test case for byte-through-vararg bug (#901). patch by Kimmo
3698 2004-07-28 Anders Carlsson <andersca@gnome.org>
3701 * python/dbus_bindings.pyx.in:
3702 Add dbus.init_gthreads (), allow emit_signal to pass
3703 arguments to the signal.
3705 2004-07-24 Havoc Pennington <hp@redhat.com>
3707 * AUTHORS: add some people, not really comprehensively, let me
3708 know if I missed you
3710 2004-07-24 Havoc Pennington <hp@redhat.com>
3712 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
3715 * test/Makefile.am (DIST_SUBDIRS): here also
3717 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3719 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
3720 breaking build on Solaris, reported by Farhad Saberi on the ML.
3722 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
3723 va_arg invocation to account for integer promotion in the case of
3724 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
3726 * bus/services.c (bus_service_remove_owner): fix bug #902, use
3727 _dbus_list_get_first_link, not _dbus_list_get_first.
3729 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
3731 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
3732 handler functions so that the asserts in _dbus_object_subtree_unref
3735 * dbus/dbus-transport-unix.c (do_reading):
3736 _dbus_transport_queue_messages return value is of type
3737 dbus_bool_t, not DBusDispatchStatus.
3739 2004-07-19 David Zeuthen <david@fubar.dk>
3741 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
3744 (check_get_connection_unix_user): Debug says GetProperty; but the
3745 method is called GetConnectionUnixUser
3746 (check_get_connection_unix_process_id): New function
3747 (bus_dispatch_test): Actually call check_get_connection_unix_user();
3748 also call check_get_connection_unix_process_id()
3751 (bus_driver_handle_get_connection_unix_process_id): New function,
3752 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
3756 (handle_server_data_external_mech): Set pid from the credentials
3757 obtained from the socket
3759 * dbus/dbus-connection.c:
3760 (dbus_connection_get_unix_process_id): New function
3762 * dbus/dbus-connection.h:
3763 Add prototype for dbus_connection_get_unix_process_id
3765 * dbus/dbus-transport.c:
3766 (_dbus_transport_get_unix_process_id): New function
3768 * dbus/dbus-transport.h:
3769 Add prototype for _dbus_transport_get_unix_process_id
3771 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
3773 * dbus/dbus-message.c: Message counter fix, patch by Christian
3774 Hammond <chipx86@gnupdate.org>
3776 2004-07-18 Seth Nickell <seth@gnome.org>
3779 * python/dbus_bindings.pyx.in:
3780 * python/tests/test-client.py:
3782 Add dbus.ByteArray and dbus_bindings.ByteArray
3783 types so that byte streams can be passed back.
3785 Give jdahlin the heaps of credit that are so
3788 2004-07-12 Seth Nickell <seth@gnome.org>
3792 Add message argument to the default object_method_handler
3795 * python/dbus_bindings.pyx.in:
3797 Automatically return NIL when passed an empty list
3798 (we can't pass back a list since lists are typed
3799 and we don't have any idea what type the the client
3800 intended the list to be... :-( )
3802 2004-07-10 Seth Nickell <seth@gnome.org>
3804 * python/examples/Makefile.am:
3806 Fix distcheck breakage caused by new examples.
3808 2004-07-10 Seth Nickell <seth@gnome.org>
3812 Add "message" argument to service-side dbus.Object
3813 methods. This will break existing services written
3814 using the python bindings, but will allow extraction
3815 of all the message information (e.g. who its from).
3817 Add improved "object oriented" signal handling/emission.
3819 * python/examples/example-service.py:
3823 * python/examples/example-signal-emitter.py:
3824 * python/examples/example-signal-recipient.py:
3826 Two new examples that show how to emit and receive
3827 signals using the new APIs.
3829 * python/examples/example-signals.py:
3830 * python/examples/gconf-proxy-service.py:
3831 * python/examples/gconf-proxy-service2.py:
3833 Add "message" argument to service methods.
3835 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
3837 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
3838 * dbus/bus.c (dbus_bus_get_unix_user)
3839 * doc/dbus-specification.xml: implement GetConnectionUnixUser
3840 method of org.freedesktop.DBus interface.
3842 * bus/dispatch.c: test case
3844 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
3846 * python/Makefile.am: switched include directory from glib/ to dbus/
3847 since dbus-glib.h moved
3849 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3851 * configure.in: prevent building the gcj stuff and libxml loader
3852 since they are broken.
3854 2004-06-20 Havoc Pennington <hp@redhat.com>
3856 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
3857 codes from the dbus error names
3859 * glib/dbus-glib.h: move to subdir dbus/ since it's included
3860 as dbus/dbus-glib.h and that breakage is now visible due to
3861 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
3863 * glib/dbus-glib.h: s/gproxy/g_proxy/
3865 * dbus/dbus-shared.h: new header to hold stuff shared with
3868 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
3871 * glib/dbus-glib.h (dbus_set_g_error): move to
3872 dbus-glib-lowlevel.h
3874 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
3875 of stuff to enable this
3877 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
3879 * a bunch of other changes with the same basic "separate glib
3880 bindings from dbus.h" theme
3882 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
3884 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
3886 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
3888 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3890 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
3891 the reply value of the ServiceExists message.
3893 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
3895 * python/dbus_bindings.pyx.in: No longer need to parse path
3896 elements and pass them as arrays of strings. The C API now
3897 accepts plain path strings.
3898 (_build_parsed_path): removed
3900 2004-06-07 Havoc Pennington <hp@redhat.com>
3902 * doc/TODO: remove auto-activation item since it's done; sort
3903 items by importance/milestone
3905 2004-06-07 Havoc Pennington <hp@redhat.com>
3907 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
3908 random signature when using REQUIRED_FIELDS (this hack won't work
3911 * dbus/dbus-message.c: change the signature to be a header field,
3912 instead of message->signature special-case string. Incremental
3913 step forward. Then we can fix up code to send the signature in the
3914 message, then fix up code to validate said signature, then fix up
3915 code to not put the typecodes inline, etc.
3916 (load_one_message): don't make up the signature after the fact
3917 (decode_header_data): require signature field for the known
3920 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
3922 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
3924 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
3926 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
3928 * mono/Handler.cs: Updated to follow new path argument for
3929 (un-)registering objects.
3931 * mono/example/Makefile.am:
3933 * configure.in: Bumped required version for mono and use new -pkg
3936 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3938 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
3939 registration functions take the path argument as char* instead of
3942 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
3943 split off the path decompostion part of
3944 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
3947 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
3949 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3951 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
3952 machine approach. A state is implemented as a function that
3953 handles incoming events as specified for that state.
3955 * doc/dbus-specification.xml: Update auth protocol state machine
3956 specification to match implementation. Remove some leftover
3959 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3961 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
3962 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
3965 * Doxyfile.in: remove deprecated options.
3967 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
3968 glib/test-thread.h, glib/test-thread-client.c,
3969 glib/test-thread-server.c, glib/test-profile.c,
3970 glib/test-dbus-glib.c: remove these unused files.
3972 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
3974 * dbus/dbus-object-tree.c
3975 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
3976 non-fallback handlers (bug #684).
3977 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
3978 (find_subtree_recurse): report wether the returned subtree is an
3979 exact match or a "fallback" match higher up in the tree.
3980 (object_tree_test_iteration): update test case.
3982 2004-06-01 Seth Nickell <seth@gnome.org>
3984 * python/dbus_bindings.pyx.in:
3985 * python/tests/test-client.py:
3987 Round off basic type support. Add dicts (yay!), and
3988 remaining array types.
3990 Make MessageIter more general so it works for dicts too.
3992 Mark all loop variables as C integers.
3994 2004-05-31 Havoc Pennington <hp@redhat.com>
3996 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
3999 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4001 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4002 option that runs the tests, and start filling in some code
4003 including for starters just dumping the interfaces to stdout
4005 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4007 * test/data/valid-introspection-files/lots-of-types.xml: test of
4008 an example introspection file
4010 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4013 2004-05-31 Seth Nickell <seth@gnome.org>
4015 * python/dbus_bindings.pyx.in:
4016 * python/tests/test-client.py:
4021 Fix string array memory trashing bug... oops...
4023 2004-05-30 Seth Nickell <seth@gnome.org>
4027 Add a nicer-but-less-flexible alternate API for handling
4028 calls to virtual objects in dbus.ObjectTree.
4030 Screw up the argument order to the dbus.Object constructor
4031 for consistency with dbus.ObjectTree (and to make dbus_methods
4032 optional for future extension)
4034 * python/examples/Makefile.am:
4035 * python/examples/gconf-proxy-service.py:
4036 * python/examples/gconf-proxy-service2.py:
4038 Alternate implementation of gconf-proxy-service using the
4039 nicer dbus.ObjectTree API.
4041 * python/examples/example-service.py:
4042 * python/tests/test-server.py
4044 Reverse the argument order to deal with dbus.Object constructor
4047 2004-05-30 Seth Nickell <seth@gnome.org>
4049 * python/examples/example-client.py:
4050 * python/examples/example-service.py:
4052 Take it back. Lists seem to work but they're broken
4053 in the test suite. Make the base examples use
4056 2004-05-30 Seth Nickell <seth@gnome.org>
4058 * python/dbus_bindings.pyx.in:
4059 * python/tests/test-client.py:
4061 Add some more tests and fix errors that crop up.
4062 Unfortunately, currently it seems like marshalling
4063 and unmarshalling of lists is completely broken :-(
4065 2004-05-30 Seth Nickell <seth@gnome.org>
4067 * python/dbus_bindings.pyx.in:
4069 Add support for ObjectPath type.
4073 Refactor message handling code to a common function.
4075 * python/tests/test-client.py:
4076 * python/tests/test-server.py:
4078 Add tests that check to make sure values of all types
4079 can be echoed from a service w/o mangling.
4081 2004-05-29 Seth Nickell <seth@gnome.org>
4085 Add ObjectTree class which allows implementation
4086 of trees of "virtual" objects. Basically the python
4087 wrapper for "register_fallback".
4089 * python/examples/Makefile.am
4090 * python/examples/gconf-proxy-client.py:
4091 * python/examples/gconf-proxy-service.py:
4093 Implement a simple GConf proxy service that supports
4094 get/set on string and int GConf keys using the ObjectTree.
4096 2004-05-29 Seth Nickell <seth@gnome.org>
4099 * python/examples/example-client.py:
4100 * python/examples/example-service.py:
4101 * python/examples/list-system-services.py:
4103 Add SessionBus, SystemBus and ActivationBus classes
4104 so you don't need to know the special little BUS_TYPE
4107 2004-05-29 Havoc Pennington <hp@redhat.com>
4109 * bus/config-parser.c (process_test_valid_subdir): temporarily
4110 stop testing config parser OOM handling, since expat has issues
4111 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4113 * bus/dbus-daemon-1.1.in: change requested_reply to
4114 send_requested_reply/receive_requested_reply so we can send the
4115 replies, not just receive them.
4117 * bus/config-parser.c: parse the new
4118 send_requested_reply/receive_requested_reply
4120 * bus/policy.c (bus_client_policy_check_can_send): add
4121 requested_reply argument and use it
4123 * bus/bus.c (bus_context_check_security_policy): pass through
4124 requested_reply status to message send check
4126 * bus/system.conf.in: adapt to requested_reply change
4128 2004-05-28 Havoc Pennington <hp@redhat.com>
4130 * test/glib/test-service-glib.c (main): remove unused variable
4132 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4134 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4135 from the enum, no longer in use.
4137 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4140 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4141 whether error_name passed in is a valid error name.
4143 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4145 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4146 OBJECT_PATH and OBJECT_PATH_ARRAY
4148 2004-05-28 Seth Nickell <seth@gnome.org>
4150 * python/examples/Makefile.am:
4152 Forget to add Makefile.am. Do not pass go.
4154 2004-05-28 Michael Meeks <michael@ximian.com>
4156 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4159 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4161 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4162 (_dbus_message_iter_get_basic_type_array): impl.
4163 drastically simplify ~all relevant _get methods to use these.
4164 (_dbus_message_iter_append_basic_array),
4165 (dbus_message_iter_append_basic): impl
4166 drastically simplify ~all relevant _append methods to use these.
4168 * dbus/dbus-message-builder.c (parse_basic_type)
4169 (parse_basic_array, lookup_basic_type): impl.
4170 (_dbus_message_data_load): prune scads of duplicate /
4173 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4174 (_dbus_demarshal_basic_type): implement,
4175 (demarshal_and_validate_len/arg): beef up debug.
4176 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4178 2004-05-27 Seth Nickell <seth@gnome.org>
4181 * python/Makefile.am:
4183 Include the example python apps in the tarball.
4185 * python/examples/list-system-services.py
4187 Add a python new example that fetches the list of services
4188 from the system bus.
4190 2004-05-27 Seth Nickell <seth@gnome.org>
4193 * python/dbus_bindings.pyx.in:
4195 Fix failure to notify that a signal was not handled,
4196 resulted in hung functions.
4198 2004-05-25 Colin Walters <walters@redhat.com>
4200 * tools/dbus-monitor.c (main): Monitor all types of messages.
4202 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
4204 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4205 which unregisters the object path and disposes the handler.
4207 2004-05-23 Kristian Høgsberg <krh@redhat.com>
4209 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4211 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4212 operands to && so we call dbus_message_iter_next () for the last
4215 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4217 * dbus/dbus-object-tree.c
4218 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4219 children even if the requested path isn't registered.
4220 (object_tree_test_iteration): test object_tree_list_registered.
4222 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4225 2004-05-20 Kristian Høgsberg <krh@redhat.com>
4227 * doc/TODO: Remove resolved items.
4229 * bus/expirelist.h (struct BusExpireList): remove unused n_items
4232 * bus/connection.c (bus_connections_expect_reply): Enforce the
4233 per-connection limit on pending replies.
4235 Patch from Jon Trowbridge <trow@ximian.com>:
4237 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
4238 up a watch that triggers a config reload when one end of the pipe
4240 (signal_handler): Instead of doing the config reload in our SIGHUP
4241 handler, just write to the reload pipe and let the associated
4242 watch handle the reload when control returns to the main loop.
4244 * bus/driver.c (bus_driver_handle_reload_config): Added.
4245 Implements a ReloadConfig method for requesting a configuration
4246 file reload via the bus driver.
4248 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
4250 * HACKING: Updated release instructions concerning the wiki page.
4252 2004-05-18 Kristian Høgsberg <krh@redhat.com>
4254 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
4255 filter against auth->allowed_mechs; we only add allowed mechs in
4256 record_mechanisms().
4258 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
4259 ALLOWED_MECHS to auth-script format so we can set the list of
4262 * data/auth/client-out-of-mechanisms.auth-script: New test to
4263 check client disconnects when it is out of mechanisms to try.
4265 * dbus/dbus-auth.c (process_command): Remove check for lines
4266 longer that 1 MB; we only buffer up maximum 16 kB.
4268 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4269 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
4270 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
4271 assume there might be unused bytes.
4273 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
4274 client-out-of-mechs, it is handled in process_reject(). Move check
4275 for max failures to send_rejected(), as it's a server-only thing.
4277 * dbus/dbus-auth.c: Factor out protocol reply code into functions
4278 send_auth(), send_data(), send_rejected(), send_error(),
4279 send_ok(), send_begin() and send_cancel().
4281 2004-05-17 Kristian Høgsberg <krh@redhat.com>
4283 Remove base64 encoding, replace with hex encoding. Original patch
4284 from trow@ximian.com, added error handling.
4286 * dbus/dbus-string.c (_dbus_string_base64_encode)
4287 (_dbus_string_base64_decode): Remove.
4288 (_dbus_string_hex_decode): Add end_return argument so we can
4289 distinguish between OOM and invalid hex encoding.
4290 (_dbus_string_test): Remove base64 tests and add test case for
4293 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4294 Replace base64 with hex.
4296 * test/data/auth/invalid-hex-encoding.auth-script: New test case
4297 for invalid hex encoded data in auth protocol.
4299 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4301 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4304 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4306 * mono/dbus-sharp.dll.config.in: Added for GAC
4307 * mono/dbus-sharp.snk: Added for GAC
4308 * mono/Assembly.cs.in: Added for GAC
4309 * mono/Makefile.am: Changes for GAC installation
4310 * configure.in: Added refs for dbus-sharp.dll.config.in and
4311 Assembly.cs.in. More fixes for mono testing
4312 * mono/example/Makefile.am: Changed var to CSC
4313 * Makefile.am: Changed flag name to DBUS_USE_CSC
4315 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4317 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4318 * mono/doc/*: Added documentation framework
4319 * configure.in: Added monodoc check
4320 * README: Added description of mono configure flags
4322 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
4324 * doc/dbus-specification.xml: Added a "Required" column to the
4325 header fields table and changed the "zero or more" verbage in
4326 the above paragraph to read "The header must contain the required
4327 named header fields and zero or more of the optional named header
4329 * test/data/invalid-messages/*.message: Added the required PATH
4330 named header field to the tests so that they don't fail on
4331 'Missing path field'
4333 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
4335 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4336 the stack by implicitly defining variable and parameter types and
4337 removing the hack of defining C pointers as python objects and later
4340 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
4342 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
4344 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
4346 * mono/DBusType/Dict.cs: Handle empty dicts
4347 * mono/DBusType/Array.cs: Handle empty arrays
4348 * mono/Arguments.cs: Handle empty arguments
4350 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
4352 * dbus-sharp.pc.in: Modified to include include Libs and Requires
4355 2004-04-25 Kristian Høgsberg <krh@redhat.com>
4357 * test/data/valid-messages/standard-*.message: Update message
4358 test scripts to new header field names.
4360 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
4362 * test/break-loader.c (randomly_do_n_things): tracked down buffer
4363 overflow to times_we_did_each_thing array which would chop off the
4364 first character of the failure_dir string. Increased the size of
4365 the array to 7 to reflect the number of random mutation functions
4368 2004-04-21 Kristian Høgsberg <krh@redhat.com>
4370 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
4371 unix_server->watch here, it is unreffed in disconnect.
4372 (_dbus_server_new_for_tcp_socket): convert NULL host to
4373 "localhost" here so we don't append NULL to address.
4375 * dbus/dbus-server.c (_dbus_server_test): Add test case for
4376 various addresses, including tcp with no explicit host.
4378 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4380 * dbus/dbus-message.c (decode_header_data, decode_string_field):
4381 fix incorrect setting of .name_offset in the HeaderField (it was
4382 off by two bytes, positioned right after the name and typecode)
4384 * bus/bus.c (bus_context_new, bus_context_unref): test before
4385 calling dbus_server_free_data_slot and _dbus_user_database_unref
4386 in case of an error.
4388 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
4391 2004-04-19 Kristian Høgsberg <krh@redhat.com>
4393 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
4394 _dbus_poll() instead of select().
4396 2004-04-15 Jon Trowbridge <trow@ximian.com>
4398 * bus/main.c (signal_handler): Reload the configuration files
4400 (main): Set up our SIGHUP handler.
4402 * bus/bus.c (struct BusContext): Store the config file, user and
4403 fork flag in the BusContext.
4404 (process_config_first_time_only): Added. Contains the code
4405 (previously in bus_context_new) for setting up the BusContext from
4406 the BusConfigParser that should only be run the first time the
4407 config files are read.
4408 (process_config_every_time): Added. Contains the code (previously
4409 in bus_context_new) for setting up the BusContext from the
4410 BusConfigParser that should be run every time the config files are
4412 (load_config): Added. Builds a BusConfigParser from the config
4413 files and passes the resulting structure off to
4414 process_config_first_time_only (assuming this is the first time)
4415 and process_config_every_time.
4416 (bus_context_new): All of the config-related code has been moved
4417 to process_config_first_time_only and process_config_every_time.
4418 Now this function just does the non-config-related initializations
4419 and calls load_config.
4420 (bus_context_reload_config): Added.
4422 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
4424 * bus/driver.c (bus_driver_handle_get_service_owner):
4425 implement a GetServiceOwner method.
4426 * doc/dbus-specification.xml: document it.
4427 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
4429 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
4430 implement, using the bus GetServiceOwner method.
4432 * test/glib/test-dbus-glib.c:
4433 use dbus_gproxy_new_for_service_owner so that we can receive the
4436 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
4438 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4439 dbus/dbus-message.c, dbus/dbus-protocol.h
4440 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
4442 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4443 dbus/dbus-message.c, dbus/dbus-protocol.h
4444 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
4446 * dbus/dbus-internals.c (_dbus_header_field_to_string):
4447 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
4448 DBUS_HEADER_FIELD_SENDER resolves to "sender"
4450 * doc/dbus-specification.xml (Header Fields Table):
4451 s/SERVICE/DESTINATION
4452 s/SENDER_SERVICE/SENDER
4455 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
4457 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
4460 2004-04-13 Michael Meeks <michael@ximian.com>
4462 * glib/dbus-gobject.c (handle_introspect): split out
4463 (introspect_properties): this.
4464 (handle_introspect): implement this.
4466 * test/glib/Makefile.am: use the absolute path so the bus
4467 daemon's chdir ("/") doesn't kill us dead.
4469 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
4471 2004-04-12 Jon Trowbridge <trow@ximian.com>
4473 * bus/config-parser.c (struct BusConfigParser): Added
4474 included_files field.
4475 (seen_include): Added. Checks whether or not a file has already
4476 been included by any parent BusConfigParser.
4477 (bus_config_parser_new): Copy the parent's included_files.
4478 (include_file): Track which files have been included, and fail on
4479 circular inclusions.
4480 (process_test_valid_subdir): Changed printf to report if we are
4481 testing valid or invalid conf files.
4482 (all_are_equiv): Changed printf to be a bit clearer about
4483 what we are actually doing.
4484 (bus_config_parser_test): Test invalid configuration files.
4486 2004-04-09 Jon Trowbridge <trow@ximian.com>
4488 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
4489 argument. If non-null, the newly-constructed BusConfigParser will
4490 be initialized with the parent's BusLimits instead of the default
4492 (include_file): When including a config file, pass in
4493 the current parser as the parent and then copy the BusLimits
4494 from the included BusConfigParser pack to the current parser.
4495 (process_test_valid_subdir): Renamed from process_test_subdir.
4496 (process_test_equiv_subdir): Added. Walks through a directory,
4497 descending into each subdirectory and loading the config files
4498 it finds there. If any subdirectory contains two config files
4499 that don't produce identical BusConfigParser structs, fail.
4500 For now, the BusConfigParser's BusPolicies are not compared.
4501 (bus_config_parser_test): Call both process_test_valid_subdir and
4502 process_test_equiv_subdir.
4504 * bus/config-loader-libxml.c (bus_config_load): Take a parent
4505 argument and pass it along to the call to bus_config_parser_new.
4506 Also made a few small changes to allow this code to compile.
4508 * bus/config-loader-expat.c (bus_config_load): Take a parent
4509 argument and pass it along to the call to bus_config_parser_new.
4511 * bus/bus.c (bus_context_new): Load the config file
4512 with a NULL parent argument.
4514 2004-03-29 Michael Meeks <michael@ximian.com>
4516 * glib/dbus-gobject.c (introspect_properties): split
4517 out, fix mangled 'while' flow control.
4518 (introspect_signals): implement.
4519 (handle_introspect): update.
4521 2004-03-29 Michael Meeks <michael@ximian.com>
4523 * glib/dbus-gobject.c (set_object_property): split out /
4524 re-work, use the property type, and not the message type(!)
4525 (get_object_property): ditto.
4527 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
4528 (dbus_gvalue_marshal): make this code re-usable, needed
4529 for signals too, also on both proxy and server side.
4530 Re-write for more efficiency / readability.
4532 2004-03-29 Michael Meeks <michael@ximian.com>
4534 * dbus/dbus-message.c
4535 (dbus_message_new_error_printf): impl.
4537 * dbus/dbus-connection.c
4538 (dbus_connection_unregister_object_path): fix warning.
4540 * configure.in: fix no-mono-installed situation.
4542 2004-03-27 Havoc Pennington <hp@redhat.com>
4544 Patch from Timo Teräs:
4546 * tools/dbus-send.c (main): if --print-reply, assume type is
4547 method call; support boolean type args
4549 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
4550 bunch of memleak and logic bugs
4552 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4554 * mono/Arguments.cs:
4555 * mono/Introspector.cs:
4557 * mono/InterfaceProxy.cs:
4559 * mono/ProxyBuilder.cs:
4561 Added InterfaceProxy class to avoid building proxies for every
4565 * dbus-message.c (dbus_message_append_args_valist)
4566 (dbus_message_iter_get_object_path)
4567 (dbus_message_iter_get_object_path_array)
4568 (dbus_message_iter_append_object_path)
4569 (dbus_message_iter_append_object_path_array):
4570 Added object_path iter functions to handle OBJECT_PATH arguments
4572 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4574 First checkin of mono bindings.
4577 Build stuff for the bindings
4578 * dbus-sharp.pc.in: Added for pkgconfig
4580 2004-03-21 Havoc Pennington <hp@redhat.com>
4582 * test/test-service.c (main): remove debug spew
4584 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4586 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
4589 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
4590 (dbus_message_iter_init_array_iterator)
4591 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
4592 indicate whether the iterator is empty
4594 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
4597 2004-03-19 Havoc Pennington <hp@redhat.com>
4599 * NEWS: 0.21 updates
4601 * configure.in: 0.21
4603 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
4605 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
4606 you don't need pyrex to make dist
4608 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
4611 2004-03-18 Richard Hult <richard@imendio.com>
4613 * dbus/dbus-message.c (dbus_message_get_auto_activation)
4614 (dbus_message_set_auto_activation): Add doxygen docs.
4616 2004-03-16 Richard Hult <richard@imendio.com>
4618 * bus/activation.c: (bus_activation_service_created),
4619 (bus_activation_send_pending_auto_activation_messages),
4620 (bus_activation_activate_service):
4622 * bus/dispatch.c: (bus_dispatch),
4623 (check_nonexistent_service_auto_activation),
4624 (check_service_auto_activated),
4625 (check_segfault_service_auto_activation),
4626 (check_existent_service_auto_activation), (bus_dispatch_test):
4627 * bus/driver.c: (bus_driver_handle_activate_service):
4628 * bus/services.c: (bus_registry_acquire_service):
4629 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
4630 (dbus_message_get_auto_activation):
4631 * dbus/dbus-message.h:
4632 * dbus/dbus-protocol.h: Implement auto-activation.
4634 * doc/dbus-specification.xml: Add auto-activation to the spec.
4636 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
4638 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
4639 fix a bug with CUSTOM types.
4641 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
4642 a unit test for this bug (used to fail).
4644 2004-03-12 Mikael Hallendal <micke@imendio.com>
4647 (babysitter_watch_callback): notify all pending activations waiting for
4648 the same exec that the activation failed.
4649 (bus_activation_activate_service): shortcut the activation if we
4650 already waiting for the same executable to start up.
4652 2004-03-12 Mikael Hallendal <micke@imendio.com>
4655 - Added service file reloading.
4656 Each service files directory is kept in an hash table in
4657 BusActivation and each BusActivationEntry knows what .service-file it
4658 was read from. So when you try to activate a service the bus will
4659 check if it's been updated, removed or if new .service-files has
4661 - Test code at the bottom for the service file reloading.
4662 * bus/test-main.c: (main):
4664 - added service reloading test.
4665 * dbus/dbus-sysdeps.c:
4666 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
4668 2004-03-08 Michael Meeks <michael@ximian.com>
4670 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
4671 bail immediately if disconnected, to avoid busy loop.
4673 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
4674 cleanup cut/paste/inefficiency.
4676 2004-03-01 David Zeuthen <david@fubar.dk>
4678 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
4679 bug where args were used twice. This bug resulted in a segfault
4680 on a Debian/PPC system when starting the messagebus daemon. Include
4681 dbus-sysdeps.h for DBUS_VA_COPY
4683 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
4685 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
4686 appropriate va_copy implementation. From GLib
4688 2004-02-24 Joe Shaw <joe@ximian.com>
4690 * bus/services.c (bus_registry_acquire_service): We need to pass
4691 in the service name to dbus_set_error() to prevent a crash.
4693 2003-12-26 Anders Carlsson <andersca@gnome.org>
4695 * AUTHORS: Reveal my True identity.
4697 2003-12-17 Mikael Hallendal <micke@imendio.com>
4699 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4700 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
4702 2003-12-13 Mikael Hallendal <micke@imendio.com>
4704 * doc/TODO: Added not about better error check of configuration files.
4706 2003-12-02 Richard Hult <richard@imendio.com>
4708 * Update AFL version to 2.0 throughout the source files to reflect
4709 the update that was done a while ago.
4711 2003-12-02 Richard Hult <richard@imendio.com>
4713 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
4714 wrote_dict_key to FALSE on the iter that the dict is appended to,
4715 just like when appending other types. Fixes a bug where a dict
4716 couldn't be put inside a dict.
4717 (dbus_message_iter_append_dict_key): Fix typo in warning message.
4718 (message_iter_test, _dbus_message_test): Add test case for dict
4721 2003-12-01 David Zeuthen <david@fubar.dk>
4723 * python/dbus.py: Add the actual message when calling the reciever
4724 of a signal such that parameters can be inspected. Add the method
4725 remove_signal_receiver
4727 2003-11-26 Mikael Hallendal <micke@imendio.com>
4731 * glib/*.[ch]: Made ref functions return the pointer
4733 2003-11-25 Zack Rusin <zack@kde.org>
4735 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
4737 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
4740 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
4741 the Integrator and to better fit with the server,
4743 2003-11-24 Zack Rusin <zack@kde.org>
4745 * qt/connection.h, qt/connection.cpp: removing initDbus method since
4746 the integrator handles it now
4748 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
4749 since QTimer wasn't really meant to be used the way DBusTimeout is
4751 2003-11-24 Zack Rusin <zack@kde.org>
4753 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
4754 Integrator class which integrates D-BUS with the Qt event loop,
4756 * qt/connection.h, qt/connection.cpp: Move all the code which
4757 was dealing with D-BUS integration to the Integrator class,
4758 and start using Integrator,
4760 2003-11-23 Zack Rusin <zack@kde.org>
4762 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
4765 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
4766 switching namespaces to DBusQt, reworking the class,
4768 * Makefile.cvs: switching dependencies so that it matches KDE
4771 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
4774 2003-11-19 Havoc Pennington <hp@redhat.com>
4778 * configure.in: bump version to 0.20
4780 * configure.in (have_qt): add yet another place to look for qt
4781 (someone hand trolltech a .pc file...)
4783 2003-11-01 Havoc Pennington <hp@redhat.com>
4785 * doc/dbus-specification.xml: add state machine docs on the auth
4786 protocol; just a first draft, I'm sure it's wrong.
4788 2003-10-28 David Zeuthen <david@fubar.dk>
4790 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
4791 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
4793 2003-10-28 Havoc Pennington <hp@redhat.com>
4795 * dbus/dbus-message.c (get_next_field): delete unused function
4797 2003-10-28 Havoc Pennington <hp@redhat.com>
4799 * bus/expirelist.c (do_expiration_with_current_time): detect
4800 failure of the expire_func due to OOM
4802 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
4804 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
4805 NoReply error that's now created by the bus when the service exits
4807 2003-10-28 Havoc Pennington <hp@redhat.com>
4809 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
4810 tests for set_path, set_interface, set_member, etc.
4812 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
4814 * dbus/dbus-message.c (set_string_field): always just delete and
4815 re-append the field; accept NULL for deletion
4816 (re_align_fields_recurse): reimplement
4818 2003-10-26 Havoc Pennington <hp@redhat.com>
4820 * dbus/dbus-connection.c: fix docs to properly describe the
4821 disconnected message
4822 (_dbus_connection_notify_disconnected): remove this function;
4823 we can't synchronously add the disconnected message, we have to
4824 do it after we've queued any remaining real messages
4825 (_dbus_connection_get_dispatch_status_unlocked): queue the
4826 disconnect message only if the transport has finished queueing all
4827 its real messages and is disconnected.
4828 (dbus_connection_disconnect): update the dispatch status here
4830 2003-10-22 Havoc Pennington <hp@redhat.com>
4832 * bus/bus.c (bus_context_check_security_policy): fix up assertion
4834 * bus/connection.c (bus_transaction_send_from_driver): set the
4835 destination to the connection's base service
4837 2003-10-20 Havoc Pennington <hp@redhat.com>
4839 hmm, make check is currently not passing.
4841 * doc/dbus-specification.xml: add requirement that custom type
4842 names follow the same rules as interface names.
4844 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
4845 duplication and allow 'c' to be 'custom'; dict is now 'm' for
4848 * doc/dbus-specification.xml: update type codes to match
4849 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
4850 CUSTOM. Add type OBJECT_PATH to the spec.
4852 2003-10-17 Havoc Pennington <hp@redhat.com>
4854 * bus/driver.c (create_unique_client_name): use "." as separator
4855 in base service names instead of '-'
4857 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
4858 byte at the end of the string
4860 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
4861 optimization macros since string validation seems to be a slow
4864 * doc/dbus-specification.xml: restrict valid
4865 service/interface/member/error names. Add test suite code for the
4868 * dbus/dbus-string.c: limit service/interface/member/error names
4871 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
4872 format arg to verbose spew
4874 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
4875 memory, return instead of g_error
4877 * test/test-service.c (path_message_func): support emitting a
4880 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
4881 activation bus type if DBUS_BUS_ACTIVATION was set; default to
4882 assuming the activation bus was the session bus so that services
4883 started manually will still register.
4884 (init_connections_unlocked): fix so that in OOM situation we get
4885 the same semantics when retrying the function
4887 * test/test-service.c (main): change to use path registration, to
4888 test those codepaths; register with DBUS_BUS_ACTIVATION rather
4889 than DBUS_BUS_SESSION
4891 2003-10-16 Havoc Pennington <hp@redhat.com>
4893 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
4895 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
4896 coverage of the tests
4897 (coverage-report.txt): don't move the .da and .bbg files around
4899 2003-10-16 Havoc Pennington <hp@redhat.com>
4901 * bus/bus.c (struct BusContext): remove struct field I didn't mean
4904 2003-10-16 Havoc Pennington <hp@redhat.com>
4906 * bus/connection.c (bus_pending_reply_expired): either cancel or
4908 (bus_connections_check_reply): use unlink, not remove_link, as we
4909 don't want to free the link; fixes double free mess
4911 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
4912 where no reply was received
4914 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
4917 * bus/signals.c (match_rule_matches): add special cases for the
4918 bus driver, so you can match on sender/destination for it.
4920 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
4921 DBUS_PRINT_BACKTRACE is set
4923 * dbus/dbus-internals.c: add pid to assertion failure messages
4925 * dbus/dbus-connection.c: add message type code to the debug spew
4927 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
4928 sender=foo not service=foo
4930 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
4931 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
4932 DBUS_ACTIVATION_ADDRESS instead
4934 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
4935 DBUS_SYSTEM_BUS_ADDRESS if appropriate
4937 * bus/bus.c (bus_context_new): handle OOM copying bus type into
4940 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
4941 (dbus_message_iter_get_object_path_array): new function (half
4942 finished, disabled for the moment)
4944 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
4945 DBUS_MESSAGE_TYPE_ERROR
4947 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
4948 avoid redirecting stderr to /dev/null
4949 (babysit): close stdin if not doing the "exit_with_session" thing
4951 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
4952 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
4953 stdout/stdin, so things don't get confused
4955 * bus/system.conf.in: fix to allow replies, I modified .conf
4956 instead of .conf.in again.
4958 2003-10-14 David Zeuthen <david@fubar.dk>
4960 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
4961 argtype to arg_type when raising unknown arg type exception.
4962 Changed type list to reflect the changes in dbus-protocol.h so
4963 the bindings actually work.
4965 2003-10-14 Havoc Pennington <hp@redhat.com>
4967 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
4968 to have a bug keeping it from outputting the .da files sometimes
4969 (string_get_string): don't append garbage nul bytes to the string.
4971 2003-10-15 Seth Nickell <seth@gnome.org>
4973 * python/Makefile.am:
4975 Include dbus_h_wrapper.h in the dist tarball.
4977 2003-10-14 Havoc Pennington <hp@redhat.com>
4979 * bus/bus.c (bus_context_check_security_policy): revamp this to
4980 work more sanely with new policy-based requested reply setup
4982 * bus/connection.c (bus_transaction_send_from_driver): set bus
4983 driver messages as no reply
4985 * bus/policy.c (bus_client_policy_check_can_receive): handle a
4986 requested_reply attribute on allow/deny rules
4988 * bus/system.conf: add <allow requested_reply="true"/>
4990 * bus/driver.c (bus_driver_handle_message): fix check for replies
4991 sent to the bus driver, which was backward. How did this ever work
4992 at all though? I think I'm missing something.
4994 * dbus/dbus-message.c (decode_header_data): require error and
4995 method return messages to have a reply serial field to be valid
4996 (_dbus_message_loader_queue_messages): break up this function;
4997 validate that reply serial and plain serial are nonzero;
4998 clean up the OOM/error handling.
4999 (get_uint_field): don't return -1 from this
5000 (dbus_message_create_header): fix signed/unsigned bug
5002 * bus/connection.c (bus_connections_expect_reply): save serial of
5003 the incoming message, not reply serial
5005 2003-10-14 Havoc Pennington <hp@redhat.com>
5007 * bus/connection.c: implement pending reply tracking using
5010 * bus/bus.c (bus_context_check_security_policy): verify that a
5011 reply is pending in order to allow a reply to be sent. Deny
5012 messages of unknown type.
5014 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5016 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5017 (bus_context_get_reply_timeout): new
5019 2003-10-13 Seth Nickell <seth@gnome.org>
5021 * python/Makefile.am:
5023 Pass "make distcheck": remove a couple files from DIST_FILES
5024 that weren't included in the final version.
5026 2003-10-12 Havoc Pennington <hp@pobox.com>
5028 Added test code that 1) starts an actual bus daemon and 2) uses
5029 DBusGProxy; fixed bugs that were revealed by the test. Lots
5030 more testing possible, but this is the basic framework.
5032 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5033 empty proxy lists from the proxy list hash
5035 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5036 couple of return_if_fail checks
5038 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5039 to allocate, so everything is cleared to NULL as it should be.
5041 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5042 source as data to dbus_connection_set_timeout_functions() as the
5043 timeout functions expected
5045 * test/glib/run-test.sh: add a little script to start up a message
5046 bus and run tests using it
5048 * tools/dbus-launch.1: updates
5050 * tools/dbus-launch.c (main): add --config-file option
5052 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5053 that could never be reached.
5055 * dbus/dbus-message.c (dbus_message_new_method_return)
5056 (dbus_message_new_error, dbus_message_new_signal): set the
5057 no-reply-expected flag on all these. Redundant, but may
5058 as well be consistent.
5060 2003-10-11 Havoc Pennington <hp@pobox.com>
5062 * test/decode-gcov.c (function_solve_graph): make broken block
5063 graph a nonfatal error since it seems to be broken. Need to debug
5066 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5067 can't just check type > INVALID < LAST anymore
5069 * dbus/dbus-message.c (dbus_message_get_signature): new function
5070 (dbus_message_has_signature): new function
5071 (struct DBusMessage): add signature field (right now it isn't sent
5072 over the wire, just generated on the fly)
5073 (dbus_message_copy): copy the signature, and init strings to
5074 proper length to avoid some reallocs
5075 (dbus_message_iter_init_array_iterator): return void, since it
5077 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5078 (_dbus_message_loader_queue_messages): add silly temporary hack to
5079 fill in message->signature on load
5081 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5082 characters, so they are relatively human-readable.
5084 2003-10-11 Havoc Pennington <hp@pobox.com>
5086 * dbus/dbus-message.c (_dbus_message_test): add more test
5087 coverage, but #if 0 for now since they uncover a bug
5088 not fixed yet; I think in re_align_field_recurse()
5089 (re_align_field_recurse): add FIXME about broken assertion
5091 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5093 * bus/connection.c: share a couple code bits with expirelist.c
5095 * bus/expirelist.h, bus/expirelist.c: implement a generic
5096 expire-items-after-N-seconds facility, was going to share between
5097 expiring connections and replies, decided not to use for expiring
5098 connections for now.
5100 * COPYING: include AFL 2.0 (still need to change all the file headers)
5102 2003-10-09 Havoc Pennington <hp@redhat.com>
5104 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5105 gcc 3.3. Not that we do anything about it yet.
5107 * bus/signals.c (bus_match_rule_parse): impose max length on the
5110 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5112 2003-10-09 Havoc Pennington <hp@redhat.com>
5114 Make matching rules theoretically work (add parser).
5116 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5117 the case where destination is explicitly specified as bus driver
5118 and someone else is eavesdropping.
5120 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5121 definition of eavesdropping and assertion
5123 * tools/dbus-send.c (main): use dbus_message_type_from_string
5125 * bus/signals.c (bus_match_rule_parse): implement
5127 * dbus/dbus-message.c (dbus_message_type_from_string): new
5129 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5131 2003-10-02 Havoc Pennington <hp@pobox.com>
5133 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5134 dbus_gproxy_oneway_call
5136 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5137 (dbus_server_setup_with_g_main): fix to allow calling them more
5138 than once on the same args
5139 (dbus_bus_get_with_g_main): new function
5141 2003-10-02 Havoc Pennington <hp@redhat.com>
5143 * doc/dbus-tutorial.xml: write some stuff
5145 2003-09-29 Havoc Pennington <hp@pobox.com>
5147 * configure.in: split checks for Doxygen from XML docs, check for
5150 * doc/Makefile.am: XML-ify all the docs, and add a blank
5153 2003-09-29 Havoc Pennington <hp@pobox.com>
5155 * Merge dbus-object-names branch. To see the entire patch
5156 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5157 it's huuuuge though.
5158 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5160 2003-09-28 Havoc Pennington <hp@pobox.com>
5162 * HACKING: update to reflect new server
5164 2003-09-26 Seth Nickell <seth@gnome.org>
5167 * python/examples/example-signals.py:
5169 Start implementing some notions of signals. The API
5170 is really terrible, but they sort of work (with the
5171 exception of being able to filter by service, and to
5172 transmit signals *as* a particular service). Need to
5173 figure out how to make messages come from the service
5176 * python/dbus_bindings.pyx.in:
5178 Removed duplicate message_handler callbacks.
5180 2003-09-25 Havoc Pennington <hp@redhat.com>
5182 * bus/session.conf.in: fix my mess
5184 2003-09-25 Havoc Pennington <hp@pobox.com>
5186 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5188 2003-09-25 Seth Nickell <seth@gnome.org>
5190 * python/examples/example-service.py:
5192 Johan notices complete wrong code in example-service, but
5193 completely wrong in a way that works exactly the same (!).
5194 Johan is confused, how could this possibly work? Example
5195 code fails to serve purpose of making things clear.
5198 2003-09-25 Mark McLoughlin <mark@skynet.ie>
5200 * doc/dbus-specification.sgml: don't require header fields
5201 to be 4-byte aligned and specify that fields should be
5202 distinguished from padding by the fact that zero is not
5205 * doc/TODO: remove re-alignment item and add item to doc
5206 the OBJECT_PATH type.
5208 * dbus/dbus-message.c:
5209 (HeaderField): rename the original member to value_offset
5210 and introduce a name_offset member to keep track of where
5211 the field actually begins.
5212 (adjust_field_offsets): remove.
5213 (append_int_field), (append_uint_field),
5214 (append_string_field): don't align the start of the header
5215 field to a 4-byte boundary.
5216 (get_next_field): impl finding the next marhsalled field
5217 after a given field.
5218 (re_align_field_recurse): impl re-aligning a number of
5219 already marshalled fields.
5220 (delete_field): impl deleting a field of any type and
5221 re-aligning any following fields.
5222 (delete_int_or_uint_field), (delete_string_field): remove.
5223 (set_int_field), (set_uint_field): no need to re-check
5224 that we have the correct type for the field.
5225 (set_string_field): ditto and impl re-aligning any
5227 (decode_header_data): update to take into account that
5228 the fields aren't 4-byte aligned any more and the new
5229 way to distinguish padding from header fields. Also,
5230 don't exit when there is too much header padding.
5231 (process_test_subdir): print the directory.
5232 (_dbus_message_test): add test to make sure a following
5233 field is re-aligned correctly after field deletion.
5235 * dbus/dbus-string.[ch]:
5236 (_dbus_string_insert_bytes): rename from insert_byte and
5237 allow the insert of multiple bytes.
5238 (_dbus_string_test): test inserting multiple bytes.
5240 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
5241 warning note to docs about having to re-align any
5242 marshalled values following the string.
5244 * dbus/dbus-message-builder.c:
5245 (append_string_field), (_dbus_message_data_load):
5246 don't align the header field.
5248 * dbus/dbus-auth.c: (process_test_subdir): print the
5251 * test/break-loader.c: (randomly_add_one_byte): upd. for
5254 * test/data/invalid-messages/bad-header-field-alignment.message:
5257 * test/data/valid-messages/unknown-header-field.message: shove
5258 a dict in the unknown field.
5260 2003-09-25 Seth Nickell <seth@gnome.org>
5263 * python/dbus_bindings.pyx.in:
5265 Handle return values.
5267 * python/examples/example-client.py:
5268 * python/examples/example-service.py:
5270 Pass back return values from the service to the client.
5272 2003-09-24 Seth Nickell <seth@gnome.org>
5276 Connect Object methods (when you are sharing an object) up... pass
5277 in a list of methods to be shared. Sharing all the methods just
5278 worked out too weird. You can now create nice Services over the
5281 * python/dbus_bindings.pyx.in:
5283 Keep references to user_data tuples passed into C functions so
5284 Python doesn't garbage collect on us.
5286 Implement MethodReturn and Error subclasses of Message for creating
5287 DBusMessage's of those types.
5289 * python/examples/example-client.py:
5290 * python/examples/example-service.py:
5292 Simple example code showing both how create DBus services and objects,
5293 and how to use them.
5295 2003-09-23 Havoc Pennington <hp@pobox.com>
5297 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5299 2003-09-23 Havoc Pennington <hp@redhat.com>
5301 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5302 (dbus_gproxy_disconnect_signal): implement
5303 (dbus_gproxy_manager_remove_signal_match): implement
5304 (dbus_gproxy_manager_add_signal_match): implement
5305 (dbus_gproxy_oneway_call): implement
5307 2003-09-23 Havoc Pennington <hp@pobox.com>
5309 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5310 subclass. This means dropping the transparent thread safety of the
5311 proxy; you now need a separate proxy per-thread, or your own
5312 locking on the proxy. Probably right anyway.
5313 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5315 2003-09-22 Havoc Pennington <hp@redhat.com>
5317 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5319 2003-09-21 Seth Nickell <seth@gnome.org>
5321 First checkin of the Python bindings.
5323 * python/.cvsignore:
5324 * python/Makefile.am:
5325 * python/dbus_bindings.pyx.in:
5326 * python/dbus_h_wrapper.h:
5328 Pieces for Pyrex to operate on, building a dbus_bindings.so
5329 python module for low-level access to the DBus APIs.
5333 High-level Python module for accessing DBus objects.
5338 Build stuff for the python bindings.
5342 Extra macro needed for finding the Python C header files.
5344 2003-09-21 Havoc Pennington <hp@pobox.com>
5346 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
5347 implementing the proxy manager, didn't get very far.
5349 * dbus/dbus-bus.c (dbus_bus_add_match): new
5350 (dbus_bus_remove_match): new
5352 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
5353 path_name argument; adjust the other not-yet-implemented
5354 gproxy constructors to be what I think they should be.
5356 2003-09-21 Havoc Pennington <hp@pobox.com>
5358 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
5359 by default for message bus connections.
5361 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
5362 exit_on_disconnect flag is set and we process the disconnected
5364 (dbus_connection_set_exit_on_disconnect): new function
5366 2003-09-21 Havoc Pennington <hp@pobox.com>
5368 Get matching rules mostly working in the bus; only actually
5369 parsing the rule text remains. However, the client side of
5370 "signal connections" hasn't been started, this patch is only the
5373 * dbus/dispatch.c: fix for the matching rules changes
5375 * bus/driver.c (bus_driver_handle_remove_match)
5376 (bus_driver_handle_add_match): send an ack reply from these
5379 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
5380 arguments, reported by Seth Nickell
5382 * bus/config-parser.c (append_rule_from_element): support
5383 eavesdrop=true|false attribute on policies so match rules
5384 can be prevented from snooping on the system bus.
5386 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
5387 and "destination" in attribute names; fix some docs bugs;
5388 add eavesdrop=true|false attribute
5390 * bus/driver.c (bus_driver_handle_add_match)
5391 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
5394 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
5395 rid of broadcast service concept, signals are just always broadcast
5397 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
5398 mostly implement matching rules stuff (currently only exposed as signal
5401 2003-09-21 Mark McLoughlin <mark@skynet.ie>
5403 * doc/dbus-specification.sgml: Change the header field name
5404 to be an enum and update the rest of the spec to reference
5405 the fields using the conventinal name.
5407 * dbus/dbus-protocol.h: update to reflect the spec.
5409 * doc/TODO: add item to remove the 4 byte alignment requirement.
5411 * dbus/dbus-message.c: Remove the code to generalise the
5412 header/body length and serial number header fields as named
5413 header fields so we can reference field names using the
5415 (append_int_field), (append_uint_field), (append_string_field):
5416 Append the field name as a byte rather than four chars.
5417 (delete_int_or_uint_field), (delete_string_field): reflect the
5418 fact that the field name and typecode now occupy 4 bytes instead
5420 (decode_string_field), (decode_header_data): update to reflect
5421 protocol changes and move the field specific encoding from
5422 decode_string_field() back into decode_header_data().
5424 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
5425 Add utility to aid debugging.
5427 * dbus/dbus-message-builder.c:
5428 (append_string_field), (_dbus_message_data_load): Update to
5429 reflect protocol changes; Change the FIELD_NAME directive
5430 to HEADER_FIELD and allow it to take the field's conventional
5431 name rather than the actual value.
5433 * test/data/*/*.message: Update to use HEADER_FIELD instead
5434 of FIELD_NAME; Always align the header on an 8 byte boundary
5435 *before* updating the header length.
5437 2003-09-15 Havoc Pennington <hp@pobox.com>
5439 * dbus/dbus-pending-call.c: add the get/set object data
5440 boilerplate as for DBusConnection, etc. Use generic object data
5441 for the notify callback.
5443 * glib/dbus-gparser.c (parse_node): parse child nodes
5445 * tools/dbus-viewer.c: more hacking on the dbus-viewer
5447 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
5448 contain functions shared between the convenience lib and the
5451 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
5452 -export-symbols-regex to the GLib library
5454 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
5455 fix the locking in here, and add a default handler for
5456 Introspect() that just returns sub-nodes.
5458 2003-09-14 Havoc Pennington <hp@pobox.com>
5460 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
5461 rather than gfoo consistent
5463 * glib/dbus-gproxy.h: delete for now, move contents to
5464 dbus-glib.h, because the include files don't work right since we
5465 aren't in the dbus/ subdir.
5467 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
5468 (dbus_gproxy_end_call): finish
5469 (dbus_gproxy_begin_call): finish
5471 * glib/dbus-gmain.c (dbus_set_g_error): new
5473 * glib/dbus-gobject.c (handle_introspect): include information
5474 about child nodes in the introspection
5476 * dbus/dbus-connection.c (dbus_connection_list_registered): new
5477 function to help in implementation of introspection
5479 * dbus/dbus-object-tree.c
5480 (_dbus_object_tree_list_registered_and_unlock): new function
5482 2003-09-12 Havoc Pennington <hp@pobox.com>
5484 * glib/dbus-gidl.h: add common base class for all the foo_info
5487 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
5490 * test/Makefile.am: try test srcdir -ef . in addition to test
5491 srcdir = ., one of them should work (yeah lame)
5493 * glib/Makefile.am: build the "idl" parser stuff as a convenience
5496 * glib/dbus-gparser.h: make description_load routines return
5497 NodeInfo* not Parser*
5499 * Makefile.am (SUBDIRS): build test dir after all library dirs
5501 * configure.in: add GTK+ detection
5503 2003-09-07 Havoc Pennington <hp@pobox.com>
5505 * Make Doxygen contented.
5507 2003-09-07 Havoc Pennington <hp@pobox.com>
5509 * doc/dbus-specification.sgml: more updates
5511 2003-09-06 Havoc Pennington <hp@pobox.com>
5513 * doc/dbus-specification.sgml: partial updates
5515 * bus/dbus-daemon-1.1.in: fix the config file docs for the
5516 zillionth time; hopefully I edited the right file this time.
5518 * bus/config-parser.c (append_rule_from_element): support
5519 send_type, send_path, receive_type, receive_path
5521 * bus/policy.c: add message type and path to the list of things
5522 that can be "firewalled"
5524 2003-09-06 Havoc Pennington <hp@pobox.com>
5526 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
5527 (dbus_connection_register_object_path): make this not handle
5528 messages to paths below the given path
5530 2003-09-03 Havoc Pennington <hp@pobox.com>
5532 * test/glib/Makefile.am: add this with random glib-linked test
5535 * glib/Makefile.am: remove the random test programs from here,
5536 leave only the unit tests
5538 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
5539 uscore/javacaps conversion, and fix
5540 (get_object_property, set_object_property): change to .NET
5541 convention for mapping props to methods, set_FooBar/get_FooBar,
5542 since one language has such a convention we may as well copy it.
5543 Plus real methods in either getFooBar or get_foo_bar style won't
5544 collide with this convention.
5546 2003-09-01 Havoc Pennington <hp@pobox.com>
5548 * glib/dbus-gparser.c: implement
5550 * glib/dbus-gobject.c: start implementing skeletons support
5552 * configure.in: when disabling checks/assert, also define
5553 G_DISABLE_ASSERT and G_DISABLE_CHECKS
5555 2003-09-01 Havoc Pennington <hp@pobox.com>
5557 * glib/Makefile.am: rearrange a bunch of files and get "make
5558 check" framework set up
5560 2003-08-31 Havoc Pennington <hp@pobox.com>
5562 * fix build with --disable-tests
5564 2003-08-30 Havoc Pennington <hp@pobox.com>
5566 * dbus/dbus-connection.c: purge DBusMessageHandler
5568 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
5569 use callbacks everywhere
5571 2003-08-30 Havoc Pennington <hp@pobox.com>
5573 * test/data/valid-config-files/system.d/test.conf: change to
5574 root for the user so warnings don't get printed
5576 * dbus/dbus-message.c: add dbus_message_get_path,
5577 dbus_message_set_path
5579 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
5580 dispatching to a path
5582 * dbus/dbus-string.c (_dbus_string_validate_path): add
5584 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
5585 (_dbus_marshal_object_path): implement
5587 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
5588 to contain the path to the target object
5589 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
5590 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
5592 2003-08-30 Havoc Pennington <hp@pobox.com>
5594 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
5596 2003-08-29 Havoc Pennington <hp@pobox.com>
5598 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
5600 (struct DBusObjectSubtree): shrink this
5601 a lot, since we may have a lot of them
5602 (_dbus_object_tree_free_all_unlocked): implement
5603 (_dbus_object_tree_dispatch_and_unlock): implement
5605 2003-08-29 Havoc Pennington <hp@pobox.com>
5607 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
5609 2003-08-28 Havoc Pennington <hp@pobox.com>
5613 * dbus/dbus-connection.c: port to no ObjectID, create a
5614 DBusObjectTree, rename ObjectTree to ObjectPath in public API
5616 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
5617 everything except UnregisterFunction and MessageFunction
5619 * dbus/dbus-marshal.c: port away from DBusObjectID,
5620 add DBUS_TYPE_OBJECT_PATH
5622 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
5623 dbus/dbus-objectid.[hc]: remove these, we are moving to
5624 path-based object IDs
5626 2003-08-25 Havoc Pennington <hp@pobox.com>
5628 Just noticed that dbus_message_test is hosed, I wonder when I
5629 broke that. I thought make check was passing earlier...
5631 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
5632 container tree, will replace most of dbus-object-registry
5634 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
5637 2003-08-19 Havoc Pennington <hp@pobox.com>
5639 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
5640 (dbus_message_is_error): fix this function
5642 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
5645 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
5646 reflect clarified man page
5647 (bus_client_policy_check_can_send): ditto
5649 * bus/session.conf.in: fixup
5651 * bus/system.conf.in: fixup
5653 2003-08-18 Havoc Pennington <hp@redhat.com>
5655 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
5657 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5658 dumb bug created earlier (wrong order of args to
5659 decode_header_data())
5661 * tools/dbus-send.c: port
5663 * tools/dbus-print-message.c (print_message): port
5665 * test/data/*messages: port all messages over
5667 * dbus/dbus-message-builder.c: support including
5670 * bus/driver.c: port over
5672 * bus/dispatch.c: port over to new stuff
5674 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5675 rename disconnect signal to "Disconnected"
5677 2003-08-17 Havoc Pennington <hp@pobox.com>
5679 This doesn't compile yet, but syncing up so I can hack on it from
5680 work. What are branches for if not broken code? ;-)
5682 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
5683 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
5684 DBUS_HEADER_FIELD_ERROR_NAME
5686 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
5687 for the interface+member pairs
5688 (string_hash): change to use g_str_hash algorithm
5689 (find_direct_function, find_string_function): refactor these to
5692 * dbus/dbus-message.c: port all of this over to support
5693 interface/member fields instead of name field
5695 * dbus/dbus-object-registry.c: port over
5697 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
5698 from _dbus_string_validate_name
5700 * bus/dbus-daemon-1.1: change file format for the
5701 <deny>/<allow> stuff to match new message naming scheme
5703 * bus/policy.c: port over
5705 * bus/config-parser.c: parse new format
5707 2003-08-16 Havoc Pennington <hp@pobox.com>
5709 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
5712 * glib/dbus-gproxy.c: some hacking
5714 2003-08-15 Havoc Pennington <hp@redhat.com>
5716 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
5718 * dbus/dbus-connection.c
5719 (dbus_connection_send_with_reply_and_block): factor out internals;
5720 change to convert any error replies to DBusError instead of
5721 returning them as a message
5723 2003-08-15 Havoc Pennington <hp@pobox.com>
5725 * dbus/dbus-connection.c,
5726 dbus/dbus-pending-call.c: Finish the pending call stuff
5728 2003-08-14 Havoc Pennington <hp@redhat.com>
5730 * dbus/dbus-pending-call.c: start on new object that will replace
5731 DBusMessageHandler and ReplyHandlerData for tracking outstanding
5734 * dbus/dbus-gproxy.c: start on proxy object used to communicate
5735 with remote interfaces
5737 * dbus/dbus-gidl.c: do the boring boilerplate in here
5739 2003-08-12 Havoc Pennington <hp@pobox.com>
5741 * bus/dispatch.c (bus_dispatch): make this return proper
5742 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
5744 * dbus/dbus-errors.c (dbus_set_error): use
5745 _dbus_string_append_printf_valist
5747 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
5748 (_dbus_string_append_printf): new
5750 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
5753 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
5754 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
5755 message is unhandled.
5757 2003-08-11 Havoc Pennington <hp@pobox.com>
5759 * bus/test.c (client_disconnect_handler): change to return
5760 HANDLED (would have been REMOVE_MESSAGE)
5762 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
5763 HANDLED/NOT_YET_HANDLED instead of
5764 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
5767 2003-08-10 Havoc Pennington <hp@pobox.com>
5769 * tools/dbus-send.c (main): add --type argument, for now
5770 supporting only method_call and signal types.
5772 * tools/dbus-print-message.c: print message type
5774 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5775 init connection->objects
5777 * doc/dbus-specification.sgml: fix sgml
5779 * bus/*.c: port over to object-instance API changes
5781 * test/test-service.c: ditto
5783 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
5784 name, we will have to fix up the rest of the code to also handle
5786 (dbus_message_new): generic message-creation call
5787 (set_string_field): allow appending name field
5789 2003-08-06 Havoc Pennington <hp@pobox.com>
5791 * dbus/dbus-object-registry.c: implement signal connection
5794 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
5796 * dbus/dbus-internals.c (_dbus_memdup): new function
5798 2003-08-02 Havoc Pennington <hp@pobox.com>
5800 * dbus/dbus-message.c (dbus_message_get_no_reply)
5801 (dbus_message_set_no_reply): add these and remove
5802 set_is_error/get_is_error
5804 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
5805 remove the ERROR flag, since there's now an ERROR type
5807 2003-08-01 Havoc Pennington <hp@pobox.com>
5809 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
5812 * dbus/dbus-message.c (dbus_message_get_type): new function
5814 * doc/dbus-specification.sgml: add "type" byte to messages
5816 2003-08-01 Havoc Pennington <hp@pobox.com>
5818 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
5819 a message type enum to distinguish kinds of message
5820 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
5821 that need not be replied to
5823 2003-08-01 Havoc Pennington <hp@pobox.com>
5825 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
5826 (unpack_8_octets): fix no-64-bit-int bug
5828 * dbus/dbus-object-registry.c (validate_id): validate the
5829 connection ID bits, not just the instance ID.
5831 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
5832 the connection-global 33 bits of the object ID
5834 * dbus/dbus-object-registry.c (info_from_entry): fill in
5835 object ID in the new way
5837 * dbus/dbus-objectid.h: rather than high/low bits, specifically
5838 define server/client/instance bits.
5840 2003-07-30 Havoc Pennington <hp@pobox.com>
5842 * dbus/dbus-connection.c (dbus_connection_register_object): fix
5845 2003-07-13 Havoc Pennington <hp@pobox.com>
5847 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
5848 fields to DBusObjectVTable and DBusObjectInfo
5850 2003-07-12 Havoc Pennington <hp@pobox.com>
5852 * dbus/dbus-object-registry.c: implement unit test,
5853 fix bugs discovered in process
5855 * dbus/dbus-connection.c: remove handler_table and
5856 register_handler(), add DBusObjectRegistry usage
5858 * dbus/dbus-objectid.c (dbus_object_id_is_null)
5859 (dbus_object_id_set_null): new functions
5861 2003-07-08 Havoc Pennington <hp@pobox.com>
5863 * dbus/dbus-object.c: implement some of this
5865 * dbus/dbus-object-registry.c
5866 (_dbus_object_registry_add_and_unlock): fill in the object_id out
5868 (_dbus_object_registry_new): handle OOM
5870 2003-07-08 Havoc Pennington <hp@pobox.com>
5872 * dbus/dbus-object.h: sketch out an API for registering objects
5873 with a connection, that allows us to use as little as 24 bytes
5874 per object and lets application code represent an object in
5875 any conceivable way.
5877 * dbus/dbus-object-registry.c: implement the hard bits of the
5878 DBusConnection aspect of object API. Not yet wired up.
5880 2003-07-06 Havoc Pennington <hp@pobox.com>
5882 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
5883 (_dbus_marshal_object_id): new
5884 (_dbus_demarshal_object_id): new
5885 (_dbus_marshal_get_arg_end_pos): support object ID type, and
5886 consolidate identical switch cases. Don't conditionalize handling
5887 of DBUS_TYPE_UINT64, need to handle the type always.
5888 (_dbus_marshal_validate_arg): consolidate identical cases, and
5889 handle DBUS_TYPE_OBJECT_ID
5891 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
5893 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
5895 2003-09-28 Havoc Pennington <hp@pobox.com>
5899 2003-09-28 Havoc Pennington <hp@pobox.com>
5901 * doc/Makefile.am (dbus-specification.html): testing a funky hack
5902 to work with Debian db2html
5904 2003-09-28 Havoc Pennington <hp@pobox.com>
5906 * configure.in: 0.13
5908 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
5909 stylesheet-images for benefit of Debian
5911 Change back to using filesystem-linked sockets for the system
5912 bus, so only root can create the default system bus address.
5914 * bus/system.conf.in: change to use
5915 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5917 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
5920 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5921 here, and AC_DEFINE DBUS_SYSTEM_PATH
5923 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5926 * doc/busconfig.dtd:
5929 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5931 * doc/dbus-specification.sgml:
5932 Add activation reply values.
5934 2003-08-05 Havoc Pennington <hp@redhat.com>
5936 * configure.in: 0.12
5938 2003-08-05 Anders Carlsson <andersca@codefactory.se>
5940 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
5941 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
5942 (add_watch), (remove_watch), (create_source):
5943 Refcount fds, fixes some reentrancy issues.
5945 2003-07-30 Havoc Pennington <hp@redhat.com>
5947 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
5948 bus address to be abstract if we have abstract sockets
5952 2003-07-28 Havoc Pennington <hp@redhat.com>
5954 * bus/messagebus.in: fix to avoid processname/servicename
5955 confusion, from Michael Kearey
5956 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
5958 2003-07-23 Havoc Pennington <hp@pobox.com>
5960 * dbus/dbus-message.c (dbus_message_iter_get_named):
5961 fix from Andy Hanton to remove broken "+1"
5963 2003-07-16 Havoc Pennington <hp@pobox.com>
5965 * tools/dbus-launch.c (babysit): close stdout/stderr in the
5966 babysitter process, as suggested by Thomas Leonard, so
5967 an "eval `dbus-launch --exit-with-session`" will actually
5970 2003-07-16 Havoc Pennington <hp@pobox.com>
5972 * configure.in: print out EXPANDED_* variables in the summary at
5973 the end; clean up the code that computes EXPANDED_ variables and
5974 get the ones using exec_prefix right. Should make things work
5975 when you build without --prefix
5977 2003-06-29 Havoc Pennington <hp@pobox.com>
5979 * mono/Test.cs (class Test): fire up a main loop and run it
5981 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
5982 done once, the app has to do it
5984 2003-06-26 Havoc Pennington <hp@pobox.com>
5986 * mono/Connection.cs: set up connection with the glib main loop
5988 2003-07-01 Havoc Pennington <hp@redhat.com>
5990 * doc/dbus-specification.sgml: clarify the format of a type code,
5991 change suggested by Jim Blandy
5993 2003-06-29 Miloslav Trmac <mitr@volny.cz>
5996 * tools/Makefile.am: Don't assume srcdir == builddir.
5998 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
5999 the allocated block.
6000 (_dbus_memory_test): New function.
6001 * dbus/dbus-test.h: Add _dbus_memory_test ().
6002 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6004 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6006 (dbus_message_new): Remove obsolete @todo.
6008 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6009 (_dbus_marshal_set_uint64): Fix comment.
6011 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6012 hardcode FIELD_REPLY_SERIAL.
6014 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6015 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6017 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6018 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6020 2003-06-24 Havoc Pennington <hp@pobox.com>
6022 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6024 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6030 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6031 * gcj/org/.cvsignore:
6032 * gcj/org/Makefile.am:
6033 * gcj/org/freedesktop/.cvsignore:
6034 * gcj/org/freedesktop/Makefile.am:
6035 * gcj/org/freedesktop/dbus/.cvsignore:
6036 * gcj/org/freedesktop/dbus/Makefile.am:
6037 * gcj/org/freedesktop/dbus/Message.java: (Message),
6039 * gcj/org/freedesktop/dbus/natMessage.cc:
6040 Fix the build system.
6042 2003-06-22 Havoc Pennington <hp@pobox.com>
6044 * mono/Connection.cs: add more bindings
6046 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6049 2003-06-22 Havoc Pennington <hp@pobox.com>
6051 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6052 Start wrapping more stuff.
6054 2003-06-22 Havoc Pennington <hp@pobox.com>
6056 * mono/Message.cs: implement Message.Wrap() that ensures we only
6057 have a single C# wrapper per DBusMessage, assuming it works which
6058 it probably doesn't.
6060 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6061 (dbus_message_free_data_slot): new
6062 (dbus_message_set_data): new
6063 (dbus_message_get_data): new
6065 2003-06-22 Havoc Pennington <hp@pobox.com>
6067 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6068 (_dbus_data_slot_allocator_alloc): rework these to keep a
6069 reference count on each slot and automatically manage a global
6070 slot ID variable passed in by address
6072 * bus/bus.c: convert to new dataslot API
6074 * dbus/dbus-bus.c: convert to new dataslot API
6076 * dbus/dbus-connection.c: convert to new dataslot API
6078 * dbus/dbus-server.c: convert to new dataslot API
6080 * glib/dbus-gmain.c: ditto
6084 * bus/connection.c: ditto
6086 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6088 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6089 after the gcj checks so that the correct configuration tags
6090 will be added to libtool.
6092 * dbus-glib-1.pc.in: No need to specify any includes since
6093 dbus-1.pc.in has those.
6095 2003-06-22 Havoc Pennington <hp@pobox.com>
6097 * mono/*, gcj/*, configure.in, Makefile.am:
6098 Check in makefiles and subdirs for mono and gcj bindings.
6099 Neither binding actually exists, just trying to get through
6100 all the build and other boring bits.
6102 2003-06-21 Philip Blundell <philb@gnu.org>
6104 * tools/dbus-monitor.1: Updated.
6106 * tools/dbus-send.1: Likewise.
6108 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6110 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6111 for hangup and error after checking read so we won't discard
6112 pending data if both hangup and read are set.
6114 2003-06-19 Philip Blundell <philb@gnu.org>
6116 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6118 * tools/dbus-send.c: Accept both --system and --session.
6120 * tools/dbus-monitor.c: Same here.
6122 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6124 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6125 from C++ (Patch by Miloslav Trmac).
6127 2003-06-15 Joe Shaw <joe@assbarn.com>
6129 * configure.in: Check for socklen_t.
6131 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6133 * test/test-segfault.c: Add #include <sys/time.h>
6135 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6136 dbus-launch needs it.
6138 2003-06-09 Havoc Pennington <hp@redhat.com>
6140 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6141 SUN_LEN, it breaks abstract socket usage
6143 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6146 2003-06-04 Havoc Pennington <hp@pobox.com>
6148 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6149 using unix:abstract=/foo, and when listening in a tmpdir
6150 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6152 * dbus/dbus-transport.c (_dbus_transport_open): support
6155 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6156 support abstract sockets
6158 * dbus/dbus-transport-unix.c
6159 (_dbus_transport_new_for_domain_socket): support abstract sockets
6161 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6162 toggle as an argument, implement abstract namespace support
6163 (_dbus_listen_unix_socket): ditto
6165 * configure.in: add --enable-abstract-sockets and implement
6166 a configure check for autodetection of the right value.
6168 2003-06-01 Havoc Pennington <hp@pobox.com>
6170 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6171 in /tmp (though on Linux this will end up being useless,
6172 when we add abstract namespace support)
6174 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6177 2003-05-28 Colin Walters <walters@verbum.org>
6179 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6181 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6183 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6185 2003-05-17 Colin Walters <walters@gnu.org>
6187 * tools/dbus-send.c: Don't exit with an error code if --help was
6188 passed. Default to using the session bus instead of the system
6191 * tools/dbus-launch.c: Ditto.
6193 * tools/dbus-monitor.c: Ditto.
6195 * tools/dbus-send.1: Update with new arguments.
6197 * tools/dbus-launch.c: Emit code to export variables. New
6198 arguments -s and -c to specify shell syntax, and a bit of code to
6199 autodetect syntax. Also, allow specifying a program to run.
6201 * tools/dbus-launch.1: Update with new arguments.
6203 * tools/dbus-send.1: Ditto.
6205 * tools/dbus-monitor.1: Ditto.
6207 2003-05-17 Havoc Pennington <hp@pobox.com>
6209 * bus/config-parser.c (merge_included): merge in policies from
6210 child configuration file.
6212 * bus/policy.c (bus_policy_merge): function to merge two policies
6215 2003-05-16 Havoc Pennington <hp@redhat.com>
6217 * dbus/dbus-connection.c: disable verbose lock spew
6219 * tools/dbus-send.c: add --print-reply command line option
6221 * tools/dbus-print-message.h (print_message): new util function
6222 shared by dbus-send and dbus-monitor
6224 * tools/dbus-monitor.c (handler_func): exit on disconnect
6226 * dbus/dbus-transport-unix.c (do_reading): if the transport is
6227 disconnected, don't try to use the read_watch
6229 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6230 so we can find this bug more easily
6232 2003-05-16 Havoc Pennington <hp@redhat.com>
6234 * bus/policy.c (free_rule_list_func): avoid a crash when passed
6235 NULL as DBusHashTable is annoyingly likely to do.
6237 2003-05-16 Colin Walters <walters@verbum.org>
6239 * tools/dbus-monitor.c: Add --session argument and usage()
6242 * tools/dbus-monitor.1: Update with new --session arg.
6244 * bus/Makefile.am (install-data-hook): Create
6245 $(libdir)/dbus-1.0/services so that the session bus is happy.
6247 2003-05-15 Havoc Pennington <hp@redhat.com>
6249 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
6250 on non-x86. ifdef's are evil.
6252 2003-05-15 Havoc Pennington <hp@redhat.com>
6254 * configure.in: 0.11
6258 * bus/Makefile.am (initddir): apparently we are supposed to put
6259 init scripts in /etc/rc.d/init.d not /etc/init.d
6261 * bus/Makefile.am: remove the "you must --enable-tests to make
6262 check" as it broke distcheck
6264 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
6266 2003-05-13 James Willcox <jwillcox@gnome.org>
6269 * bus/activation.c: (bus_activation_service_created),
6270 (bus_activation_activate_service):
6271 * bus/driver.c: (bus_driver_send_service_deleted),
6272 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6273 (bus_driver_send_service_acquired),
6274 (bus_driver_send_welcome_message),
6275 (bus_driver_handle_list_services):
6276 * bus/session.conf.in:
6277 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
6278 (dbus_bus_service_exists), (dbus_bus_activate_service):
6281 Add some convenience API which lets you activate a service, and did a
6282 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
6283 and dbus_message_get_args()
6285 2003-05-11 Havoc Pennington <hp@pobox.com>
6287 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6288 calling _dbus_marshal_validate_arg() for every byte in a byte
6291 * dbus/dbus-message-handler.c: use atomic reference counting to
6292 reduce number of locks slightly; the global lock in here sucks
6294 * dbus/dbus-connection.c
6295 (_dbus_connection_update_dispatch_status_and_unlock): variant of
6296 update_dispatch_status that can be called with lock held; then use
6297 in a couple places to reduce locking/unlocking
6298 (dbus_connection_send): hold the lock over the whole function
6299 instead of acquiring it twice.
6301 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6303 * bus/connection.c (bus_connections_setup_connection): fix access
6304 to already-freed memory.
6306 * dbus/dbus-connection.c: keep a little cache of linked list
6307 nodes, to avoid using the global linked list alloc lock in the
6308 normal send-message case. Instead we just use the connection lock
6309 that we already have to take.
6311 * dbus/dbus-list.c (_dbus_list_find_last): new function
6313 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6314 change to use a struct for the atomic type; fix docs,
6315 they return value before increment, not after increment.
6317 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6318 (_dbus_string_append_8_aligned): new functions to try to
6319 microoptimize this operation.
6320 (reallocate_for_length): break this out of set_length(), to
6321 improve profile info, and also so we can consider inlining the
6324 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6325 strings with some preallocation, cuts down on our calls to realloc
6326 a fair bit. Though if we can get the "move entire string to empty
6327 string" optimization below to kick in here, it would be better.
6329 * dbus/dbus-string.c (_dbus_string_move): just call
6330 _dbus_string_move_len
6331 (_dbus_string_move_len): add a special case for moving
6332 an entire string into an empty string; we can just
6333 swap the string data instead of doing any reallocs.
6334 (_dbus_string_init_preallocated): new function
6336 2003-05-11 Havoc Pennington <hp@pobox.com>
6338 Write a "test-profile" that does echo client-server with threads;
6339 profile reveals lock contention, memcpy/realloc of buffers, and
6340 UTF-8 validation as hot spots. 20% of lock contention eliminated
6341 with dbus_atomic_inc/dec implementation on x86. Much remaining
6342 contention is global mempool locks for GList and DBusList.
6344 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
6347 * dbus/dbus-connection.c (struct DBusConnection): use
6348 dbus_atomic_t for the reference count
6350 * dbus/dbus-message.c (struct DBusMessage): declare
6351 dbus_atomic_t values as volatile
6353 * configure.in: code to detect ability to use atomic integer
6354 operations in assembly, from GLib patch
6356 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
6357 time, tired of it being wrong in threads and forked processes
6359 * glib/test-profile.c: a little program to bounce messages back
6360 and forth between threads and eat CPU
6362 * dbus/dbus-connection.c: add debug spew macros for debugging
6363 thread locks; include config.h at top; fix deadlock in
6364 dbus_connection_flush()
6366 2003-05-08 Havoc Pennington <hp@pobox.com>
6368 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
6369 data from getting written, and there wasn't a good reason to
6372 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
6373 dbus_verbose lines in test coverage
6374 (main): add list of functions sorted by # of untested blocks
6375 to the coverage report
6377 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
6379 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
6381 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
6382 extend test coverage
6384 * test/data/auth/cancel.auth-script: test canceling an
6387 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
6388 aren't used. in CVS history if we end up needing them.
6390 2003-05-04 Havoc Pennington <hp@pobox.com>
6392 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
6395 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
6396 function, which assumed length was in # of strings, not bytes
6398 * dbus/dbus-message.c (_dbus_message_test): add tests for some
6401 * dbus/dbus-connection.c
6402 (_dbus_connection_queue_received_message): disable function for
6403 now, we are only using it in test mode
6405 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
6406 remove a mistaken FIXME
6408 2003-05-04 Havoc Pennington <hp@pobox.com>
6410 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
6411 unlock mutex on successful return, patch from Anders Gustafsson
6413 2003-05-04 Havoc Pennington <hp@pobox.com>
6415 * dbus-glib-1.pc.in (Requires): fix dependencies, from
6418 2003-05-04 Havoc Pennington <hp@pobox.com>
6420 * tools/dbus-launch.c: implement
6422 * bus/main.c (main), bus/bus.c (bus_context_new):
6423 implement --print-pid and --fork
6425 2003-05-03 Havoc Pennington <hp@redhat.com>
6427 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
6428 the address had no value, and add to test suite. Fix and
6429 regression test from Miloslav Trmac
6431 2003-05-03 Havoc Pennington <hp@pobox.com>
6433 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
6434 watch is invalid when handled
6436 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
6437 dbus-launch utility to launch the bus from a shell script. Didn't
6438 actually implement dbus-launch yet, it's just a placeholder still.
6440 2003-05-03 Havoc Pennington <hp@pobox.com>
6442 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
6443 daemon; also documents daemon config file, so replaces
6444 doc/config-file.txt. Corrected some stuff from config-file.txt in
6445 the process of moving it.
6447 2003-05-03 Havoc Pennington <hp@pobox.com>
6449 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
6452 2003-05-03 Colin Walters <walters@verbum.org>
6454 * dbus/dbus-sysdeps.c (fill_user_info): Test against
6455 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
6457 * Makefile.am: Update to use new .pc versioning scheme.
6459 2003-05-02 Havoc Pennington <hp@redhat.com>
6461 * bus/system.conf.in: allow send/receive to/from message bus
6464 2003-04-30 Havoc Pennington <hp@redhat.com>
6466 * configure.in: print a note when building with unit tests and
6469 2003-04-30 Havoc Pennington <hp@redhat.com>
6471 * Makefile.am: add a check-local that complains if you didn't
6472 configure with --enable-tests
6474 2003-04-29 Havoc Pennington <hp@redhat.com>
6476 * glib/dbus-gmain.c: docs cleanups
6478 * dbus/dbus-types.h: add docs on int64 types
6480 * dbus/dbus-memory.c: fix docs to avoid putting private API in
6481 public API docs section
6483 2003-04-29 Havoc Pennington <hp@redhat.com>
6485 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
6486 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
6487 parallel install API version, not with the D-BUS package version.
6489 * HACKING: move some of README over here
6491 * README: updates, and document API/ABI policy
6493 * configure.in: reindentation
6495 2003-04-29 Havoc Pennington <hp@redhat.com>
6497 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
6498 to use this library" to be sure people have the right
6501 2003-04-28 Havoc Pennington <hp@redhat.com>
6503 * configure.in: add --enable-docs which by default is auto yes if
6504 doxygen and db2html found, no otherwise; but can be forced on/off
6506 * doc/Makefile.am: conditionalize whether to build docs on
6509 2003-04-28 Havoc Pennington <hp@redhat.com>
6511 * configure.in: 0.10
6515 * bus/system.conf.in: add <includedir>system.d</includedir>
6517 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
6518 username was provided but not uid
6520 * bus/config-parser.c (struct BusConfigParser): keep track of
6521 whether the parser is toplevel or was included; change some
6522 of the error handling if it's included.
6524 2003-04-27 Havoc Pennington <hp@pobox.com>
6528 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6529 report correct status if we finish processing authentication
6530 inside this function.
6532 * bus/activation.c (try_send_activation_failure): use
6533 bus_transaction_send_error_reply
6535 * bus/connection.c (bus_connection_get_groups): return an error
6536 explaining the problem
6538 * bus/bus.c (bus_context_check_security_policy): implement
6539 restriction here that inactive connections can only send the
6540 hello message. Also, allow bus driver to send anything to
6543 * bus/connection.c (bus_connection_complete): create the
6544 BusClientPolicy here instead of on-demand.
6545 (bus_connection_get_policy): don't return an error
6547 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
6548 sender field in message being replied to
6550 * bus/bus.c (bus_context_check_security_policy): fix silly typo
6551 causing it to return FALSE always
6553 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
6554 we checked sender rather than destination
6556 2003-04-25 Havoc Pennington <hp@redhat.com>
6558 test suite is slightly hosed at the moment, will fix soon
6560 * bus/connection.c (bus_connections_expire_incomplete): fix to
6561 properly disable the timeout when required
6562 (bus_connection_set_name): check whether we can remove incomplete
6563 connections timeout after we complete each connection.
6565 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
6566 probably still broken.
6568 * bus/services.c (bus_registry_acquire_service): implement max
6569 number of services owned, and honor allow/deny rules on which
6570 services a connection can own.
6572 * bus/connection.c (bus_connection_get_policy): report errors here
6574 * bus/activation.c: implement limit on number of pending
6577 2003-04-25 Havoc Pennington <hp@redhat.com>
6579 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
6580 where we used >= 0 instead of != DBUS_UID_UNSET.
6582 2003-04-25 Havoc Pennington <hp@redhat.com>
6584 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
6585 were toggled without add/remove, fix from Anders Gustafsson
6587 2003-04-24 Havoc Pennington <hp@redhat.com>
6589 * test/data/valid-config-files/basic.conf: add <limit> tags to
6592 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
6593 <limit> tag in configuration file.
6595 2003-04-24 Havoc Pennington <hp@redhat.com>
6597 * bus/dispatch.c: somehow missed some name_is
6599 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
6600 (_dbus_timeout_set_interval): new
6602 * bus/connection.c (bus_connections_setup_connection): record time
6603 when each connection is first set up, and expire them after the
6604 auth timeout passes.
6606 2003-04-24 Havoc Pennington <hp@redhat.com>
6608 * dbus/dbus-message.c (dbus_message_name_is): rename
6609 (dbus_message_service_is): rename
6610 (dbus_message_sender_is): rename
6611 (dbus_message_get_service): rename
6613 2003-04-24 Havoc Pennington <hp@redhat.com>
6615 * configure.in: add --enable-checks
6617 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
6619 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
6620 to use thread locks.
6621 (_dbus_connection_handler_destroyed_locked): move some private
6622 functions into proper docs group
6624 * dbus/dbus-internals.h: add _dbus_return_if_fail,
6625 _dbus_return_val_if_fail
6627 Throughout: use dbus_return_if_fail
6629 2003-04-23 James Willcox <jwillcox@gnome.org>
6632 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
6633 (dbus_connection_setup_with_g_main),
6634 (dbus_server_setup_with_g_main):
6635 * glib/test-dbus-glib.c: (main):
6636 * glib/test-thread-client.c: (main):
6637 * glib/test-thread-server.c: (new_connection_callback), (main):
6638 * tools/dbus-monitor.c: (main):
6640 Added a GMainContext argument to dbus_connection_setup_with_g_main()
6641 and dbus_server_setup_with_g_main().
6643 2003-04-20 Havoc Pennington <hp@pobox.com>
6645 * doc/dbus-specification.sgml: document the restrictions on
6646 message and service names
6648 2003-04-22 Havoc Pennington <hp@redhat.com>
6650 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
6651 support, and do some code cleanups to share more code and
6652 speed up array marshal/demarshal.
6654 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
6656 * configure.in: generate dbus-arch-deps.h
6658 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
6661 2003-04-22 Havoc Pennington <hp@redhat.com>
6663 * test/data/valid-messages/opposite-endian.message: fix test
6664 to use proper type for rply field
6666 * test/data/invalid-messages: add tests for below validation
6668 * dbus/dbus-message.c (decode_header_data): validate field types,
6669 and validate that named fields are valid names
6670 (decode_name_field): consider messages in the
6671 org.freedesktop.Local. namespace to be invalid.
6673 * dbus/dbus-string.c (_dbus_string_validate_name): new
6675 2003-04-19 Havoc Pennington <hp@pobox.com>
6677 * bus/driver.c (bus_driver_handle_hello): check limits and
6678 return an error if they are exceeded.
6680 * bus/connection.c: maintain separate lists of active and inactive
6681 connections, and a count of each. Maintain count of completed
6682 connections per user. Implement code to check connection limits.
6684 * dbus/dbus-list.c (_dbus_list_unlink): export
6686 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
6687 number of bytes in the message queue for a connection
6689 2003-04-18 Havoc Pennington <hp@pobox.com>
6691 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
6693 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
6696 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
6697 on realloc be sure to update the pointer in the keyring
6699 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
6700 offset to avoid writing to unallocated memory
6702 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
6703 try the next mechanism, so we properly handle OOM
6705 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
6707 (_dbus_keyring_new): fix OOM bug
6708 (_dbus_keyring_new_homedir): always set error; impose a maximum
6709 number of keys we'll load from the file, mostly to speed up the
6710 test suite and make its OOM checks more useful, but also for
6713 * dbus/dbus-auth.c (process_error_server): reject authentication
6714 if we get an error from the client
6715 (process_cancel): on cancel, send REJECTED, per the spec
6716 (process_error_client): send CANCEL if we get an error from the
6719 2003-04-18 Havoc Pennington <hp@pobox.com>
6721 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
6724 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
6727 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
6728 about DBUS_TEST_HOMEDIR once
6730 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
6733 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
6734 config file so we test the right thing
6736 Throughout: assorted docs improvements
6738 2003-04-18 Havoc Pennington <hp@pobox.com>
6740 * glib/dbus-gmain.c: adapt to watch changes
6742 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
6744 * dbus/dbus-server.h: remove dbus_server_handle_watch
6746 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
6748 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
6749 like DBusTimeout, so we don't need dbus_connection_handle_watch
6752 2003-04-17 Havoc Pennington <hp@redhat.com>
6754 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
6755 database usage so it all goes via the DBusUserDatabase cache.
6757 2003-04-17 Havoc Pennington <hp@redhat.com>
6759 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
6760 there was an OOM watch we skipped, we always return TRUE so we
6761 iterate again to have a look at it again. Fixes test suite hang.
6762 Code rearrangement also lets us lose some memset and only iterate
6763 over callbacks once.
6765 * bus/driver.c (bus_driver_handle_message): sense of test for
6768 2003-04-16 Havoc Pennington <hp@pobox.com>
6770 * doc/dbus-specification.sgml: make spec say serials are unsigned
6772 * dbus/dbus-message.h: change message serials to unsigned
6774 * dbus/dbus-connection.c: adapt to message serials being unsigned
6776 2003-04-15 Havoc Pennington <hp@pobox.com>
6778 * bus/bus.c: create and keep around a shared DBusUserDatabase
6781 * bus/connection.c (bus_connection_get_groups): don't cache
6782 groups for user in the connection object, since user database
6783 object now does that.
6785 2003-04-16 Havoc Pennington <hp@redhat.com>
6787 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
6788 list of size counters
6789 (_dbus_message_loader_putback_message_link): put back a popped link
6791 * dbus/dbus-connection.c
6792 (dbus_connection_set_max_live_messages_size): rename
6794 (dbus_connection_get_outgoing_size): get size of outgoing
6796 (_dbus_connection_set_connection_counter): remove this cruft
6798 2003-04-14 Havoc Pennington <hp@redhat.com>
6800 * dbus/dbus-userdb.c: user database abstraction, mostly to get
6801 caching, but at some point we might want to be able to use a
6804 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
6805 SHA1 conf file to test the sha1 auth mechanism, since the regular
6806 test always uses EXTERNAL when available.
6809 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
6810 add conf file that requires use of sha1 auth
6812 2003-04-13 Havoc Pennington <hp@pobox.com>
6814 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
6815 from Philip Blundell to send messages and monitor them.
6817 2003-04-13 Havoc Pennington <hp@pobox.com>
6819 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
6822 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
6825 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6826 fix to only recover unused bytes if we're already authenticated
6827 (_dbus_transport_get_is_authenticated): fix to still mark us
6828 authenticated if there are unused bytes.
6830 * bus/dispatch.c: implement security policy checking
6832 * bus/connection.c (bus_transaction_send_from_driver): new
6834 * bus/bus.c (bus_context_check_security_policy): new
6836 * bus/dispatch.c (send_service_nonexistent_error): delete this,
6837 now we just set the DBusError and it gets converted to an error
6840 * bus/connection.c (allow_user_function): enable code using actual
6841 data from the config file
6843 * bus/policy.c (list_allows_user): handle wildcard rules for
6844 user/group connection perms
6846 2003-04-13 Havoc Pennington <hp@pobox.com>
6848 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
6850 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
6852 * bus/policy.c (bus_policy_append_mandatory_rule)
6853 (bus_policy_append_default_rule, bus_policy_append_user_rule)
6854 (bus_policy_append_group_rule): new functions
6856 2003-04-12 Havoc Pennington <hp@pobox.com>
6858 * bus/config-parser.c (bus_config_parser_new): fix a memleak
6860 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
6861 the pid/gid/uid, just for paranoia.
6863 * test/break-loader.c (randomly_do_n_things): find a byte
6864 containing a type code, and randomly change it to a different
6867 2003-04-12 Havoc Pennington <hp@pobox.com>
6869 * bus/policy.h: change BusPolicy to be the thing from the config
6870 file, and rename old BusPolicy to BusClientPolicy
6872 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
6873 match change in how policy works
6875 * dbus/dbus-internals.h: mark assert_not_reached as
6876 __attribute((noreturn))__
6878 2003-04-11 Havoc Pennington <hp@redhat.com>
6880 * doc/dbus-specification.sgml: fix a spot with the wrong name for
6881 the broadcast service. Use boolean return for ServiceExists.
6883 2003-04-11 Havoc Pennington <hp@redhat.com>
6885 * configure.in: add another directory to look for qt in.
6887 2003-04-11 Havoc Pennington <hp@redhat.com>
6889 * AUTHORS: add Colin Walters
6891 2003-04-11 Havoc Pennington <hp@redhat.com>
6897 2003-04-11 Havoc Pennington <hp@redhat.com>
6899 * bus/messagebus.in: remove pid file when stopping the
6900 message bus, since the bus won't have privileges to remove it
6903 2003-04-11 Havoc Pennington <hp@redhat.com>
6905 * bus/bus.c (bus_context_new): move credentials change after
6908 2003-04-11 Havoc Pennington <hp@pobox.com>
6910 * test/decode-gcov.c: add "below average functions" to the
6911 coverage report, and change how some of the code works.
6913 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
6914 not in the coverage stats.
6916 * test/test-service.c (main): use _dbus_verbose not fprintf in a
6917 couple places so running the test suite doesn't result in megaspam.
6919 2003-04-11 Havoc Pennington <hp@pobox.com>
6921 * bus/dispatch.c (check_existent_service_activation): accept a no
6922 memory error in a place we didn't before
6924 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
6925 in case the first one failed," since the test suite is less
6928 2003-04-10 Havoc Pennington <hp@pobox.com>
6930 * bus/dispatch.c (check_segfault_service_activation): add test
6931 for launching an executable that just crashes.
6933 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
6934 don't leave a million cores. We'll see how portable this is.
6936 2003-04-10 Havoc Pennington <hp@pobox.com>
6938 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
6939 the possible parent failures before we fork, so that we don't
6940 fail to create a babysitter after creating the child.
6942 * bus/activation.c (bus_activation_activate_service): kill child
6943 if we don't successfully complete the activation.
6945 2003-04-10 Havoc Pennington <hp@redhat.com>
6947 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
6948 the connection if it's disconnected
6950 * bus/activation.c (bus_activation_service_created): use new
6951 transaction features to roll back removal of pending activation if
6952 we don't successfully create the service after all. Don't remove
6953 pending activation if the function fails.
6955 * dbus/dbus-list.c (_dbus_list_insert_before_link)
6956 (_dbus_list_insert_after_link): new code to facilitate
6959 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
6960 new functionality, so we can preallocate the ability to insert
6963 * bus/connection.c (bus_transaction_add_cancel_hook): new function
6964 allowing us to put custom hooks in a transaction to be used for
6965 cancelling said transaction
6967 * doc/dbus-specification.sgml: add some discussion of secondary
6968 service owners, and disallow zero-length service names
6970 * bus/services.c (bus_registry_acquire_service): new function,
6971 splits out part of bus_driver_handle_acquire_service() and fixes
6972 a bug where we didn't remove the service doing the acquiring
6973 from the secondary queue if we failed to remove the current owner
6974 from the front of the queue.
6976 2003-04-10 Alexander Larsson <alexl@redhat.com>
6978 * doc/dbus-specification.sgml:
6979 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
6981 2003-04-10 Alexander Larsson <alexl@redhat.com>
6986 Added files to cvsignore
6988 * dbus/dbus-message.h:
6989 * dbus/dbus-message.c: (dbus_message_iter_get_named):
6990 Make get_named() take two out argument and return a boolean.
6991 (dbus_message_iter_get_args_valist):
6992 Update usage of get_named().
6993 (dbus_message_iter_append_byte):
6995 (dbus_message_iter_append_named)
6997 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7000 2003-04-10 Alexander Larsson <alexl@redhat.com>
7002 * dbus/dbus-marshal.[ch]:
7003 Add array_type_pos argument to _dbus_marshal_validate_arg.
7004 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7006 * dbus/dbus-message.[ch]:
7007 Multi-dimensional arrays have full type specification in the
7008 outermost array. Iter code re-arranged to handle this.
7009 Added some more iter tests.
7011 * doc/dbus-specification.sgml:
7014 Update new array encoding description.
7015 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7017 * test/data/invalid-messages/array-with-mixed-types.message:
7018 * test/data/valid-messages/array-of-array-of-uint32.message:
7019 Change to the new array format.
7021 * test/data/invalid-messages/too-short-dict.message:
7024 * test/data/valid-messages/recursive-types.message:
7025 Fix up and extend test.
7027 2003-04-10 Havoc Pennington <hp@pobox.com>
7029 * bus/dispatch.c: lots of fixes
7031 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7032 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7033 that was crack, broke the test service.
7035 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7036 handling to avoid piling up errors if we get a failure on the
7039 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7040 pid in assertion failures.
7042 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7043 to some fixed size of file descriptor array. Don't return TRUE
7044 anytime a timeout exists, that led to lots of busy loop silliness
7047 2003-04-09 Havoc Pennington <hp@redhat.com>
7049 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7050 I'd checked this in earlier but hadn't.
7052 2003-04-09 Havoc Pennington <hp@redhat.com>
7054 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7055 the activation test (man this is getting old!)
7057 2003-04-09 Havoc Pennington <hp@redhat.com>
7059 * test/test-utils.c: use dispatch status function to fix this up
7061 * bus/connection.c (connection_watch_callback): don't dispatch
7063 (connection_timeout_callback): don't dispatch from here
7064 (bus_connections_setup_connection): set the dispatch status function
7065 (bus_connection_disconnected): unset it
7067 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7068 used to add a connection to be dispatched
7069 (_dbus_loop_iterate): do the dispatching at the end of each
7072 * dbus/dbus-connection.c
7073 (dbus_connection_set_dispatch_status_function): new function
7074 allowing us to fix up main loop usage
7075 (_dbus_connection_last_unref): free all the various function
7077 (dbus_connection_dispatch): call the DispatchStatusFunction
7078 whenever this function returns
7079 (dbus_connection_handle_watch): call DispatchStatusFunction
7080 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7081 (reply_handler_timeout): call DispatchStatusFunction
7082 (dbus_connection_flush): call DispatchStatusFunction
7084 2003-04-09 Havoc Pennington <hp@redhat.com>
7086 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7089 * bus/dispatch.c (check_service_activated): fix bug in test
7091 * dbus/dbus-mainloop.c (check_timeout): fix this up
7093 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7094 verbose output so we can sort out output from different processes,
7095 e.g. in the activation case.
7097 2003-04-08 Colin Walters <walters@gnu.org>
7099 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7101 (bus_context_new): Set it.
7102 (bus_context_unref): Use it to delete the pid file.
7104 2003-04-08 Havoc Pennington <hp@redhat.com>
7106 * test/data/invalid-messages/array-with-mixed-types.message:
7107 regression test that fails for the moment
7109 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7110 tests for convenience
7112 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7113 array of nil, it broke things.
7115 * test/data/invalid-messages/array-of-nil.message: regression test
7117 * test/data/valid-messages/array-of-array-of-uint32.message:
7118 happened to write this so added it to suite
7120 2003-04-08 Havoc Pennington <hp@redhat.com>
7122 * bus/driver.c (bus_driver_handle_acquire_service): init
7123 retval/reply before checking name
7125 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7126 recursion depth argument
7128 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7129 in the public struct for future extension
7131 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7134 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7137 * doc/dbus-specification.sgml: fix typo
7139 2003-04-08 Alexander Larsson <alexl@redhat.com>
7141 Implemented recursive types, named types and new-style iters
7144 * glib/test-thread-client.c: (thread_func):
7145 * glib/test-thread-server.c: (handle_test_message):
7146 * test/test-service.c: (handle_echo):
7155 * dbus/dbus-internals.c: (_dbus_type_to_string):
7156 Update for new types.
7158 * dbus/dbus-marshal.[ch]:
7159 Implement recursive types and the new marshalling format.
7160 Remove hardcoded dict marshalling.
7161 Marshal named types.
7163 * dbus/dbus-message-builder.c:
7165 Remove references to old types
7167 * dbus/dbus-message.[ch]:
7168 New non-refcounted iter API that supports recursive iters.
7169 Use iters for appending, including support for recursive
7171 Add byte and named type support.
7172 Update everything to new marshalling formats.
7173 Add tests for new API.
7175 * dbus/dbus-protocol.h:
7176 Remove old array types.
7177 Add types: BYTE, ARRAY, DICT, NAMED
7179 * dbus/dbus-string.c:
7180 * dbus/dbus-sysdeps.c:
7181 Make parse_double locale safe.
7183 * dbus/dbus-test-main.c:
7189 * doc/dbus-specification.sgml:
7192 * test/data/incomplete-messages/missing-body.message:
7193 * test/data/invalid-messages/bad-boolean.message:
7194 * test/data/invalid-messages/bad-boolean-array.message:
7195 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7196 * test/data/invalid-messages/boolean-has-no-value.message-raw:
7197 * test/data/invalid-messages/too-short-dict.message:
7198 * test/data/valid-messages/dict-simple.message:
7199 * test/data/valid-messages/dict.message:
7200 * test/data/valid-messages/emptiness.message:
7201 * test/data/valid-messages/lots-of-arguments.message:
7202 * test/data/valid-messages/no-padding.message:
7203 * test/data/valid-messages/recursive-types.message:
7204 Add missing NAME fields
7205 Fix up dicts & arrays
7207 * test/data/invalid-messages/dict-with-nil-value.message:
7208 Removed, this is not invalid anymore.
7210 * test/data/valid-messages/recursive-types.message:
7211 Add new test for deeply recursive types.
7213 2003-04-07 Havoc Pennington <hp@pobox.com>
7215 * bus/driver.c (bus_driver_handle_acquire_service): return an
7216 error if you try to acquire a service that starts with ':'
7218 2003-04-07 Havoc Pennington <hp@redhat.com>
7220 * doc/dbus-specification.sgml: require that base service names
7221 start with ':' and that the base service is created/deleted
7222 as first and last things a connection does on the bus
7224 * bus/dispatch.c (check_existent_service_activation): lots more
7225 work on the activation test; it doesn't fully pass yet...
7227 * test/test-service.c (main): fix so we don't memleak the
7228 connection to the message bus
7229 (filter_func): accept a message asking us to exit
7231 2003-04-06 Havoc Pennington <hp@pobox.com>
7233 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
7236 * configure.in: fixes to Qt detection from Colin Walters
7238 * doc/Makefile.am: Only remove generated docbook dirs if they
7239 exist, from Colin Walters
7241 * dbus/dbus-bus.c: change how we set well-known connections to
7242 NULL, so that it works if a single connection is stored in
7243 two well-known array slots.
7245 * test/Makefile.am: remove a lot of stuff that isn't immediately
7246 useful, it's in CVS history if we want it.
7248 * test/test-service.c: use dbus-mainloop instead of that
7251 2003-04-06 Havoc Pennington <hp@pobox.com>
7253 * dbus/Makefile.am: split lists of sources into stuff that goes in
7254 the library, util functions that go in the lib and are also used
7255 elsewhere, and util functions that are used in tests/daemon but
7256 don't go in the lib.
7258 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
7259 here so it can be used in test binaries also
7261 2003-04-06 Havoc Pennington <hp@pobox.com>
7263 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
7264 here in the parent process, so we can return an error if it
7265 fails. Also, move some of the code into the child so the parent
7266 is less hosed if we fail midway through.
7268 * bus/bus.c (bus_context_new): move pidfile detection further up
7269 in the function, before we start overwriting sockets and such.
7271 * bus/messagebus.in: adjust this a bit, not sure if it will work.
7273 * configure.in: add --with-system-pid-file and --with-system-socket
7275 2003-04-06 Colin Walters <walters@verbum.org>
7277 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
7279 * bus/system.conf.in: Declare a pidfile.
7281 * bus/bus.c (bus_context_new): Test for an existing pid file, and
7282 create one (if appropriate).
7284 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
7285 (struct BusConfigParser) [pidfile]: New.
7286 (element_type_to_name, merge_included, start_busconfig_child)
7287 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7288 (bus_config_parser_unref): Free it.
7289 (bus_config_parser_get_pidfile): New function.
7291 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7293 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7295 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7297 * dbus/dbus-sysdeps.h: Prototype it.
7299 2003-04-06 Havoc Pennington <hp@pobox.com>
7301 * bus/bus.c (bus_context_new): print the address in here, rather
7302 than in main(), because we need to do it before forking the daemon
7304 * bus/dispatch.c (send_service_nonexistent_error): set the sender
7305 on the service nonexistent error
7307 * bus/driver.c (bus_driver_handle_acquire_service): set the
7308 sender on the AcquireService reply
7310 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7311 server also listen on a UNIX socket so services can connect to it.
7313 2003-04-06 Havoc Pennington <hp@pobox.com>
7315 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7316 so it detects deadlocks and also we actually init threads when
7319 2003-04-06 Havoc Pennington <hp@pobox.com>
7321 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7322 save the domain socket name, and unlink it when we disconnect the
7323 server. Means that at least when we exit normally, we won't leave
7324 a bunch of junk in /tmp
7326 * dbus/dbus-transport-unix.c
7327 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7328 memory management). (I was making a real change here but then
7331 2003-04-06 Havoc Pennington <hp@pobox.com>
7333 * bus/bus.c (bus_context_new): fix wrong handling of
7334 server_data_slot_unref() in the error case.
7336 * dbus/dbus-internals.h (_dbus_assert): change so it passes
7337 "(condition) != 0" to _dbus_real_assert so that
7338 "_dbus_assert (pointer)" doesn't cause a warning
7340 * bus/main.c (main): accept --print-address option to print out
7341 the message bus address
7343 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
7345 * dbus/dbus-transport.c (_dbus_transport_open): special error for
7346 "tmpdir" option to unix: address on client side
7348 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
7351 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
7352 we can use to create sockets in the test suite.
7354 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
7355 cleanly. To be used for testing.
7357 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
7359 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
7361 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7362 handle trying to call this when there's no servers active
7364 2003-04-05 Havoc Pennington <hp@pobox.com>
7370 2003-04-05 Havoc Pennington <hp@pobox.com>
7372 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
7373 crash on startup. Need to get "try starting the daemon"
7374 in the test suite I guess. ;-)
7376 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
7377 tracked the number of open connections; it's better done in
7378 application-specific code as you want it to span all servers etc.
7380 2003-04-05 Havoc Pennington <hp@pobox.com>
7382 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
7383 patch from Colin Walters
7385 2003-04-05 Havoc Pennington <hp@pobox.com>
7387 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
7388 reality; in fact multiple mechanisms are allowed.
7390 * dbus/dbus-internals.c (_dbus_real_assert)
7391 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
7392 _dbus_assert_not_reached() into functions, so that they don't show
7393 up in basic block counts for test coverage, and don't use up as
7394 much disk space. Does mean slower execution speed though, so
7395 assumes --disable-asserts is the normal production case.
7397 2003-04-05 Havoc Pennington <hp@pobox.com>
7399 * test/Makefile.am (dist-hook): also dist *.in files
7405 2003-04-05 Havoc Pennington <hp@pobox.com>
7407 * dbus/dbus-string.c: docs warning
7409 * dbus/dbus-spawn.c: missing docs
7411 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
7413 2003-04-05 Havoc Pennington <hp@pobox.com>
7415 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
7418 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
7419 to -1 once we've reaped the babysitter
7420 (_dbus_babysitter_handle_watch): do as much work as we can, not
7423 * bus/activation.c: add code using DBusBabysitter so that we
7424 handle it when a service fails to start up properly.
7425 (bus_activation_service_created): don't remove the activation
7426 entries as we go, just let them get removed when we free the pending
7427 activation. Unref reply messages after sending them.
7429 2003-04-05 Havoc Pennington <hp@pobox.com>
7431 * test/decode-gcov.c (main): print per-directory stats in the report
7433 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
7435 2003-04-05 Havoc Pennington <hp@pobox.com>
7437 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
7439 * test/decode-gcov.c: hack up a little program to suck data
7440 out of gcov files. Yes this is sort of silly.
7442 * configure.in: define something in config.h and do an
7443 AM_CONDITIONAL when gcov is enabled
7445 2003-04-04 Havoc Pennington <hp@redhat.com>
7447 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
7448 return a "babysitter" object that is used to monitor the status of
7449 the spawned process and reap it when required.
7451 * test/test-segfault.c, test/test-exit.c,
7452 test/test-sleep-forever.c: binaries that do various lame things,
7453 used in the test suite.
7455 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
7457 2003-04-03 Havoc Pennington <hp@pobox.com>
7459 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
7460 in preparation for modifying it, dbus-sysdeps is getting
7463 2003-04-03 Havoc Pennington <hp@redhat.com>
7465 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
7468 * bus/*.[hc]: adapt to mainloop change
7470 2003-04-03 Havoc Pennington <hp@redhat.com>
7472 * bus/activation.c (load_directory): fix up memleaks
7473 (bus_activation_entry_free): free the entry
7475 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
7476 we get one from the message bus; fix memleaks.
7478 * dbus/dbus-message.c (dbus_set_error_from_message): new function
7480 2003-04-03 Havoc Pennington <hp@pobox.com>
7482 * bus/config-parser.c (bus_config_parser_unref): free
7483 list of mechanisms, bug discovered by test suite enhancements
7484 (putting system.conf and session.conf into suite)
7486 * test/Makefile.am, test/test-service.c: add placeholder for a
7487 test service that we'll activate as part of test suite. Doesn't
7490 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
7491 setting NULL value, and use system malloc not dbus_malloc()
7492 when we have unavoidable memleakage.
7494 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
7495 didn't work, and support DBUS_BUS_ACTIVATION.
7497 * bus/activation.c (child_setup): pass our well-known bus type to
7500 * bus/config-parser.c: support <type> to specify well-known type
7502 * doc/dbus-specification.sgml: document the env variables to
7503 locate well-known buses and find service activator
7505 2003-04-02 Havoc Pennington <hp@redhat.com>
7507 * test/Makefile.am (all-local): add a rule to copy tests to
7508 builddir, so we can have generated tests. Use this to remove the
7509 silly hack for testing system.conf and session.conf. Will use this
7510 shortly to generate .service files pointing to test binaries.
7512 2003-04-02 Havoc Pennington <hp@redhat.com>
7514 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
7515 current alloc and needed new length, not max of the doubled
7516 allocation and needed new length. Also, when building tests,
7517 don't do the double-allocation stuff, just realloc every time.
7519 2003-04-02 Havoc Pennington <hp@redhat.com>
7521 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
7523 (_dbus_string_get_dirname): new
7524 (_dbus_sysdeps_test): new
7525 (_dbus_directory_open): include dirnames in error messages
7527 * bus/config-parser.c: interpret <include> and <includedir> and
7528 <servicedir> relative to config file location if the given
7529 filename is not absolute.
7531 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
7533 2003-04-02 Havoc Pennington <hp@redhat.com>
7535 * bus/connection.c (bus_transaction_send_error_reply): set sender
7536 service for the error, and unref the reply on success
7538 * bus/activation.c: convert to use BusTransaction so OOM can be
7540 (bus_activation_service_created): set sender of the message
7542 2003-04-01 Havoc Pennington <hp@redhat.com>
7544 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
7545 <includedir> (at least mostly)
7547 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
7548 first, then the user ID
7550 2003-04-01 Havoc Pennington <hp@pobox.com>
7552 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
7555 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
7557 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
7559 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
7560 socket 0777, and unlink any existing socket.
7562 * bus/bus.c (bus_context_new): change our UID/GID and fork if
7563 the configuration file so specifies; set up auth mechanism
7566 * bus/config-parser.c (bus_config_parser_content): add support
7567 for <fork> option and fill in code for <auth>
7569 * bus/system.conf.in: add <fork/> to default configuration,
7570 and limit auth mechanisms to EXTERNAL
7572 * doc/config-file.txt (Elements): add <fork>
7574 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
7575 (_dbus_change_identity): new function
7577 2003-03-31 Havoc Pennington <hp@redhat.com>
7579 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
7580 (_dbus_listen_unix_socket): fix off-by-one error in null
7581 termination spotted by Nalin
7583 2003-03-31 Havoc Pennington <hp@redhat.com>
7585 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
7586 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
7587 having a real home directory available.
7589 2003-03-31 Havoc Pennington <hp@redhat.com>
7591 * bus/Makefile.am (install-data-hook): create /var/run/dbus
7593 * bus/messagebus.in: add init script for Red Hat /etc/init.d
7595 * configure.in: add support for specifying a style of init script
7598 2003-03-31 Havoc Pennington <hp@redhat.com>
7600 Fix some annoying DBusString API and fix all affected code.
7602 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
7604 (_dbus_string_get_data): change to return string instead of using
7606 (_dbus_string_get_const_data): ditto
7607 (_dbus_string_get_data_len): ditto
7608 (_dbus_string_get_const_data_len): ditto
7610 2003-03-31 Havoc Pennington <hp@redhat.com>
7612 * bus/main.c (main): fix up the command line arguments to be nicer
7614 2003-03-31 Havoc Pennington <hp@redhat.com>
7616 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
7617 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
7618 final location that lands in the config file
7620 * bus/config-loader-expat.c (bus_config_load): fix type of
7623 * doc/TODO: remove TODO item for dbus_bus_get()
7625 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
7627 2003-03-31 Havoc Pennington <hp@pobox.com>
7629 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
7630 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
7631 argument since they are always client side
7633 * dbus/dbus-server.c (dbus_server_get_address): new function
7635 * bus/main.c (main): take the configuration file as an argument.
7637 * test/data/valid-config-files/debug-allow-all.conf: new file to
7638 use with dispatch.c tests for example
7640 * bus/test-main.c (main): require test data dir
7642 * bus/bus.c (bus_context_new): change this to take a
7643 configuration file name as argument
7645 * doc/config-file.txt (Elements): add <servicedir>
7647 * bus/system.conf, bus/session.conf: new files
7649 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
7650 well-known socket if none set
7652 * configure.in: create system.conf and session.conf
7654 2003-03-30 Havoc Pennington <hp@pobox.com>
7656 * bus/config-parser.c: hacking
7658 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
7659 to shut down, since it could cause weirdness with the DBusList
7662 * dbus/dbus-list.c (_dbus_list_test): add tests for the
7663 link-oriented stack routines
7664 (alloc_link): free the mempool if the first alloc from it fails
7666 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
7668 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
7670 (_dbus_string_skip_white): new
7672 * doc/config-file.txt (Elements): add <includedir>
7674 2003-03-28 Havoc Pennington <hp@pobox.com>
7676 * dbus/dbus-string.c (_dbus_string_copy_data_len)
7677 (_dbus_string_copy_data): new functions
7679 2003-03-28 Anders Carlsson <andersca@codefactory.se>
7681 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
7685 * dbus/dbus-memory.c:
7688 2003-03-28 Havoc Pennington <hp@pobox.com>
7690 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
7691 I think it may have just been superstition. Not sure.
7693 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
7694 failures that were not being handled.
7696 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
7698 * dbus/dbus-memory.c: add ability to set number of mallocs in a
7699 row that will fail on out-of-memory.
7701 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
7702 function for testing out-of-memory handling.
7704 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
7705 allocation functions, they do map exactly to the expat ones.
7707 2003-03-27 Havoc Pennington <hp@redhat.com>
7709 * bus/config-loader-libxml.c (bus_config_load): add another error
7712 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7715 Add note about automatic service activation.
7717 * doc/dbus-specification.sgml:
7718 Rename the specification and clarify a few things.
7720 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7723 * dbus/dbus-address.c:
7725 * dbus/dbus-marshal.c:
7726 * dbus/dbus-server-debug-pipe.c:
7727 * dbus/dbus-transport-unix.c:
7728 Fix documentation warnings.
7730 2003-03-26 Havoc Pennington <hp@pobox.com>
7732 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
7733 after every test so it's quick and easy to see which leaked, and
7734 so we test multiple dbus_shutdown() calls
7736 * configure.in: change configure.in XML stuff to also support
7739 * config-loader-libxml.c: some hacking
7741 * config-loader-expat.c: some hacking
7743 * config-parser.c: some hacking, plus tests
7745 2003-03-25 Havoc Pennington <hp@redhat.com>
7747 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
7749 * configure.in: add --with-xml option to specify XML library,
7750 right now only libxml is supported.
7752 * bus/config-loader-libxml.c, config-parser.c: sync some minor
7753 nonworking code between home and work, still just stubs
7755 2003-03-24 Havoc Pennington <hp@redhat.com>
7757 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
7760 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
7761 NULL argument for "message" if the error is a well-known one,
7762 fill in a generic message in this case.
7764 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
7767 * bus/test.c (bus_test_flush_bus): add
7769 * bus/policy.c (bus_policy_test): test code stub
7771 2003-03-24 Havoc Pennington <hp@pobox.com>
7773 * bus/connection.c (bus_connections_setup_connection): set up
7774 the "can this user connect" function, but it always returns
7775 TRUE until we have a config file parser so we can have a config
7776 file that allows connections.
7778 2003-03-23 Havoc Pennington <hp@pobox.com>
7780 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
7781 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
7782 the mutex, so we can check for proper memory management
7785 * dbus/dbus-dataslot.c: remove the mutex from
7786 DBusDataSlotAllocator and lock it manually when using it,
7787 to simplify fitting it into the global slots framework.
7789 * dbus/dbus-threads.c (init_static_locks): rework how we're
7790 handling global locks so they are easily shut down.
7792 * bus/policy.c (bus_policy_append_rule): fix
7794 * bus/test-main.c (main): check for memleaks
7796 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
7797 test suite check for memleaks
7799 * dbus/dbus-memory.c: add support in test mode for tracking
7800 number of outstanding blocks
7802 2003-03-23 Havoc Pennington <hp@pobox.com>
7804 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
7807 * dbus/dbus-hash.h: add ULONG hash keys
7809 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
7810 (_dbus_get_group_id): new function
7812 2003-03-20 Havoc Pennington <hp@redhat.com>
7814 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
7816 (dbus_connection_get_unix_user): new function
7818 2003-03-20 Havoc Pennington <hp@pobox.com>
7820 * bus/connection.c (bus_connection_send_oom_error): assert that
7821 message has a sender
7822 (connection_execute_transaction): ditto
7823 (bus_connection_preallocate_oom_error): fix to set the sender, and
7824 set recipient to the destination service, not the bus driver
7826 * bus/policy.c: hacking
7828 * dbus/dbus-message.c (dbus_message_service_is): new function
7829 (dbus_message_sender_is): new
7831 2003-03-19 Havoc Pennington <hp@redhat.com>
7833 * bus/policy.c: start sketching code for policy restrictions on
7834 what connections can do.
7836 2003-03-18 Havoc Pennington <hp@redhat.com>
7838 * doc/TODO: some notes on high-level todo items. Little nitpick
7839 stuff is all in @todo, so no need to add it here.
7841 * doc/config-file.txt: some notes on how config file might look
7843 2003-03-18 Anders Carlsson <andersca@codefactory.se>
7849 2003-03-17 Havoc Pennington <hp@redhat.com>
7851 * dbus/dbus-internals.h: add gcc attributes so that
7852 our printf-style functions warn on bad arguments to
7855 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
7858 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7861 2003-03-17 Havoc Pennington <hp@redhat.com>
7863 * bus/test-main.c (main): make it print something as it runs
7864 so make check doesn't look stuck
7866 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
7867 from CVS, now obsolete
7869 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7871 * bus/dispatch.c: (bus_dispatch):
7872 Refetch the service name since it may have been reallocated
7873 when dbus_message_set_sender was called.
7875 * dbus/dbus-sysdeps.c: (_dbus_accept):
7876 Add address and address length variables and use them to stop
7877 valgrind from complaining.
7879 2003-03-17 Havoc Pennington <hp@pobox.com>
7881 All tests pass, no memleaks, no valgrind complaints.
7883 * bus/test.c: refcount handler_slot
7885 * bus/connection.c (bus_connections_new): refcount
7886 connection_data_slot
7888 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
7889 bytes so that auth scripts pass.
7891 * bus/dispatch.c: init message_handler_slot so it gets allocated
7894 * bus/dispatch.c (message_handler_slot_ref): fix memleak
7896 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
7897 dealloc server_pipe_hash when no longer used for benefit of
7900 * dbus/dbus-auth.c (process_command): memleak fix
7902 * bus/dispatch.c (check_hello_message): memleak fix
7904 2003-03-16 Havoc Pennington <hp@pobox.com>
7906 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
7908 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7910 * bus/activation.c (bus_activation_activate_service): Append
7911 the pending activation entry to the list of pending activations.
7913 2003-03-16 Havoc Pennington <hp@pobox.com>
7915 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
7918 * dbus/dbus-address.c (create_entry): fix OOM handling when
7919 failing to alloc entry->method
7921 2003-03-16 Havoc Pennington <hp@pobox.com>
7923 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
7926 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7927 add some missing dbus_set_result
7929 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
7930 alloc the DBusMessageHandler
7932 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
7933 the transport here, since we call this from the finalizer; it
7934 resulted in a double-finalize.
7936 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
7937 where we tried to use transport->connection that was NULL,
7938 happened when transport was disconnected early on due to OOM
7940 * bus/*.c: adapt to handle OOM for watches/timeouts
7942 * dbus/dbus-transport-unix.c: port to handle OOM during
7945 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
7946 reference to unused bytes instead of a copy
7948 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
7951 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
7954 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
7957 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7959 * doc/dbus-specification.sgml:
7960 Document reply message for ActivateService.
7962 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7964 * bus/activation.c: (bus_pending_activation_entry_free),
7965 (bus_pending_activation_free), (bus_activation_new),
7966 (bus_activation_unref), (bus_activation_service_created),
7967 (bus_activation_activate_service):
7969 * bus/bus.c: (bus_context_new):
7970 * bus/desktop-file.c: (new_section):
7971 * bus/driver.c: (bus_driver_send_service_deleted),
7972 (bus_driver_handle_activate_service):
7973 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
7975 * dbus/dbus-connection.c:
7976 (dbus_connection_send_with_reply_and_block):
7977 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7978 * dbus/dbus-protocol.h:
7979 Make activation work better. Now pending activations will be queued
7980 and the daemon won't try to activate services that are already registered.
7982 2003-03-16 Havoc Pennington <hp@pobox.com>
7984 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
7987 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
7988 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
7990 2003-03-16 Havoc Pennington <hp@pobox.com>
7992 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
7993 this. always run the test suite before commit...
7995 * bus/*: adapt to DBusConnection API changes
7997 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
7998 requires renaming stuff to avoid dbus_connection_dispatch name
8001 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8004 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8005 separate from _dbus_message_loader_return_buffer()
8007 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8008 this, because it's now always broken to use; the number of
8009 messages in queue vs. the number still buffered by the message
8010 loader is undefined/meaningless. Should use
8011 dbus_connection_get_dispatch_state().
8012 (dbus_connection_dispatch): rename from
8013 dbus_connection_dispatch_message
8015 2003-03-16 Havoc Pennington <hp@pobox.com>
8017 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8020 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8022 * dbus/dbus-connection.c:
8023 (dbus_connection_send_with_reply_and_block):
8024 Decrease connection->n_incoming when removing an entry
8026 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8027 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8028 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8029 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8030 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8031 (dbus_dict_get_byte_array):
8032 Handle NULL arrays and strings. Also add support for byte arrays.
8034 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8035 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8036 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8037 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8038 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8039 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8040 * dbus/dbus-marshal.h:
8041 Add support for marshalling and demarshalling empty arrays and strings.
8043 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8044 (dbus_message_append_string_array),
8045 (dbus_message_iter_get_boolean),
8046 (dbus_message_iter_get_boolean_array),
8047 (dbus_message_iter_get_int32_array),
8048 (dbus_message_iter_get_uint32_array),
8049 (dbus_message_iter_get_double_array),
8050 (dbus_message_iter_get_byte_array),
8051 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8052 (check_message_handling):
8053 Add support for getting empty arrays and dicts.
8055 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8056 Don't do any validation at all for now, that's better than just checking
8059 * test/data/valid-messages/emptiness.message:
8060 New test message with lots of empty arrays.
8062 2003-03-16 Havoc Pennington <hp@pobox.com>
8064 * dbus/dbus-connection.c
8065 (_dbus_connection_queue_received_message_link): new function that
8066 can't fail due to OOM
8068 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8069 new function pops a message together with a list link
8072 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8073 message queuing functions to avoid needing to alloc memory
8075 2003-03-16 Havoc Pennington <hp@pobox.com>
8077 Oops - test code was only testing failure of around 30 of the
8078 mallocs in the test path, but it turns out there are 500+
8079 mallocs. I believe this was due to misguided linking setup such
8080 that there was one copy of dbus_malloc etc. in the daemon and one
8081 in the shared lib, and only daemon mallocs were tested. In any
8082 case, the test case now tests all 500+ mallocs, and doesn't pass
8083 yet, though there are lots of fixes in this patch.
8085 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8086 this so that it doesn't need to allocate memory, since it
8087 has no way of indicating failure due to OOM (and would be
8088 annoying if it did).
8090 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8092 * bus/Makefile.am: rearrange to create two self-contained
8093 libraries, to avoid having libraries with overlapping symbols.
8094 that was resulting in weirdness, e.g. I'm pretty sure there
8095 were two copies of global static variables.
8097 * dbus/dbus-internals.c: move the malloc debug stuff to
8100 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8103 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8105 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8108 * bus/dispatch.c (bus_dispatch_add_connection): free
8109 message_handler_slot when no longer using it, so
8110 memory leak checkers are happy for the test suite.
8112 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8114 * bus/bus.c (new_connection_callback): disconnect in here if
8115 bus_connections_setup_connection fails.
8117 * bus/connection.c (bus_connections_unref): fix to free the
8119 (bus_connections_setup_connection): if this fails, don't
8120 disconnect the connection, just be sure there are no side
8123 * dbus/dbus-string.c (undo_alignment): unbreak this
8125 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8127 (_dbus_auth_new): fix the order in which we free strings
8130 * bus/connection.c (bus_connection_disconnected): fix to
8131 not send ServiceDeleted multiple times in case of memory
8134 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8135 get the base service name
8136 (dbus_bus_register_client): don't return base service name,
8137 instead store it on the DBusConnection and have an accessor
8139 (dbus_bus_register_client): rename dbus_bus_register()
8141 * bus/dispatch.c (check_hello_message): verify that other
8142 connections on the bus also got the correct results, not
8143 just the one sending hello
8145 2003-03-15 Havoc Pennington <hp@pobox.com>
8147 Make it pass the Hello handling test including all OOM codepaths.
8148 Now to do other messages...
8150 * bus/services.c (bus_service_remove_owner): fix crash when
8151 removing owner from an empty list of owners
8152 (bus_registry_ensure): don't leave service in the list of
8153 a connection's owned services if we fail to put the service
8156 * bus/connection.c (bus_connection_preallocate_oom_error): set
8157 error flag on the OOM error.
8159 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8160 handle _dbus_transport_set_connection failure
8162 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8163 to create watches up front and simply enable/disable them as
8165 (unix_connection_set): this can now fail on OOM
8167 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8168 of enabling/disabling a watch or timeout.
8170 * bus/loop.c (bus_loop_iterate): don't touch disabled
8173 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8175 2003-03-15 Havoc Pennington <hp@pobox.com>
8177 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8178 write useful test code, after all that futzing around ;-)
8180 Test does not yet pass because we can't handle OOM in
8181 _dbus_transport_messages_pending (basically,
8182 dbus_connection_preallocate_send() does not prealloc the write
8183 watch). To fix this, I think we need to add new stuff to
8184 set_watch_functions, namely a SetEnabled function so we can alloc
8185 the watch earlier, then enable it later.
8187 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8188 dbus-memory.c to the convenience lib
8190 * bus/test.c: rename some static functions to keep them clearly
8191 distinct from stuff in connection.c. Handle client disconnection.
8193 2003-03-14 Havoc Pennington <hp@pobox.com>
8195 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8196 transport, tests more of the real codepath. Set up clients
8197 with bus_setup_debug_client.
8199 * bus/test.c (bus_setup_debug_client): function to set up debug
8200 "clients" on the main loop
8202 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8205 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8208 * dbus/dbus-server-debug.c: support a debug server based on pipes
8210 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8211 (_dbus_close): new function
8213 * configure.in: check for socketpair
8215 2003-03-14 Havoc Pennington <hp@redhat.com>
8217 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8220 * dbus/dbus-transport-debug.c: rework this a good bit to be
8221 less complicated. hopefully still works.
8223 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8226 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8229 * dbus/dbus-message.c (dbus_message_copy): rename from
8230 dbus_message_new_from_message, fix it up to copy
8231 all the message fields, add test case
8233 * bus/dispatch.c (bus_dispatch_test): add some more test code,
8234 not quite passing yet
8236 2003-03-14 Havoc Pennington <hp@pobox.com>
8238 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
8239 until no work remains" in test code. (the large diff here
8240 is just code movement, no actual changes)
8242 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
8243 1, no point waiting around for test code.
8244 (_dbus_server_debug_accept_transport): unref the timeout
8245 after adding it (right?)
8247 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
8249 2003-03-13 Havoc Pennington <hp@redhat.com>
8251 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
8254 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
8257 * dbus/dbus-connection.h: Make AddWatchFunction and
8258 AddTimeoutFunction return a bool so they can fail on out-of-memory
8260 * bus/bus.c (bus_context_new): set up timeout handlers
8262 * bus/connection.c (bus_connections_setup_connection): set up
8265 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
8268 * bus/bus.c (bus_context_new): adapt to changes
8270 * bus/connection.c: adapt to changes
8272 * test/watch.c: adapt to DBusWatch changes
8274 * bus/dispatch.c (bus_dispatch_test): started adding this but
8277 2003-03-14 Anders Carlsson <andersca@codefactory.se>
8279 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
8281 2003-03-13 Havoc Pennington <hp@pobox.com>
8283 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
8284 set up a test framework as for the library
8286 2003-03-12 Havoc Pennington <hp@pobox.com>
8288 Throughout: purge global variables, introduce BusActivation,
8289 BusConnections, BusRegistry, etc. objects instead.
8291 * bus/bus.h, bus/bus.c: introduce BusContext as a global
8294 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8295 going to redo this a bit differently I think
8297 2003-03-12 Havoc Pennington <hp@redhat.com>
8299 Mega-patch that gets the message bus daemon initially handling
8300 out-of-memory. Work still needed. Also lots of random
8301 moving stuff to DBusError instead of ResultCode.
8303 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8305 * dbus/dbus-connection.c
8306 (dbus_connection_send_with_reply_and_block): use DBusError
8308 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8311 * dbus/dbus-connection.c (dbus_connection_send): drop the result
8312 code here, as the only failure possible is OOM.
8314 * bus/connection.c (bus_connection_disconnect):
8315 rename bus_connection_disconnected as it's a notification only
8317 * bus/driver.c (bus_driver_handle_acquire_service): don't free
8318 "name" on get_args failure, should be done by get_args;
8319 don't disconnect client for bad args, just return an error.
8320 (bus_driver_handle_service_exists): ditto
8322 * bus/services.c (bus_services_list): NULL-terminate returned array
8324 * bus/driver.c (bus_driver_send_service_lost)
8325 (bus_driver_send_service_acquired): send messages from driver to a
8326 specific client to the client's unique name, not to the broadcast
8329 * dbus/dbus-message.c (decode_header_data): reject messages that
8330 contain no name field
8331 (_dbus_message_get_client_serial): rename to
8332 dbus_message_get_serial and make public
8333 (_dbus_message_set_serial): rename from set_client_serial
8334 (_dbus_message_set_reply_serial): make public
8335 (_dbus_message_get_reply_serial): make public
8337 * bus/connection.c (bus_connection_foreach): allow stopping
8338 iteration by returning FALSE from foreach function.
8340 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
8341 (dbus_connection_free_preallocated_send)
8342 (dbus_connection_preallocate_send): new API for sending a message
8343 without possibility of malloc failure.
8344 (dbus_connection_send_message): rename to just
8345 dbus_connection_send (and same for whole function family)
8347 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
8349 * dbus/dbus-sysdeps.c (_dbus_exit): new function
8351 * bus/activation.c: handle/return errors
8353 * dbus/dbus-errors.h: add more DBUS_ERROR #define
8355 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
8356 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
8357 (_dbus_result_from_errno): move to this file
8359 2003-03-10 Anders Carlsson <andersca@codefactory.se>
8361 * dbus/dbus-marshal.c:
8362 (_dbus_marshal_set_string):
8363 Take a length argument so we can marshal the correct string
8366 (_dbus_marshal_dict), (_dbus_demarshal_dict),
8367 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
8368 (_dbus_marshal_test):
8369 * dbus/dbus-marshal.h:
8370 Add support for marshalling and demarshalling dicts.
8372 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8373 Add support for TYPE DICT.
8375 * dbus/dbus-message.c: (set_string_field):
8376 Adjust header padding.
8378 (dbus_message_append_args_valist), (dbus_message_append_dict),
8379 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
8380 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
8381 (check_message_handling), (check_have_valid_message):
8382 * dbus/dbus-message.h:
8383 Add functions for setting and getting dicts.
8385 * dbus/dbus-protocol.h:
8391 * doc/dbus-specification.sgml:
8392 Add information about how dicts are marshalled.
8394 * test/data/invalid-messages/dict-with-nil-value.message:
8395 * test/data/invalid-messages/too-short-dict.message:
8396 * test/data/valid-messages/dict-simple.message:
8397 * test/data/valid-messages/dict.message:
8398 Add sample messages containing dicts.
8400 2003-03-08 Anders Carlsson <andersca@codefactory.se>
8402 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
8404 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8407 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8408 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
8409 (dbus_dict_set_int32), (dbus_dict_set_uint32),
8410 (dbus_dict_set_double), (dbus_dict_set_string),
8411 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8412 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8413 (dbus_dict_set_string_array), (_dbus_dict_test):
8415 Fix according to comments from Havoc.
8417 2003-03-06 Michael Meeks <michael@server.home>
8419 * configure.in: if we don't have kde-config, disable have_qt.
8421 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8426 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8427 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
8428 (dbus_dict_remove), (dbus_dict_get_value_type),
8429 (dbus_dict_get_keys), (dbus_dict_put_boolean),
8430 (dbus_dict_put_int32), (dbus_dict_put_uint32),
8431 (dbus_dict_put_double), (dbus_dict_put_string),
8432 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
8433 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
8434 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
8435 (dbus_dict_get_int32), (dbus_dict_get_uint32),
8436 (dbus_dict_get_double), (dbus_dict_get_string),
8437 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
8438 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
8439 (dbus_dict_get_string_array), (_dbus_dict_test):
8441 Add DBusDict implementation
8443 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
8447 2003-03-04 Havoc Pennington <hp@pobox.com>
8449 * test/data/auth/*: adapt to changes
8451 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
8452 USERID_BASE64 and change USERNAME_BASE64 to put in username not
8455 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
8456 more stuff from being in a context name, to make the protocol
8457 simpler to deal with
8459 * dbus/dbus-errors.c (dbus_error_has_name): new function
8460 (dbus_error_is_set): new function
8462 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
8463 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
8465 * dbus/dbus-connection.c (dbus_connection_flush): also read
8466 messages during a flush operation
8468 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
8470 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8472 * configure.in: Check for gethostbyname on Solaris.
8474 * dbus/dbus-transport.c: (_dbus_transport_open):
8475 Remove duplicate "tcp" entry.
8477 * doc/dbus-specification.sgml:
8478 Clarify some things.
8480 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8482 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
8483 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
8484 (_dbus_keyring_test):
8485 * dbus/dbus-md5.c: (_dbus_md5_compute):
8486 * dbus/dbus-sha.c: (_dbus_sha_compute):
8489 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8491 * README: Add some things.
8493 2003-03-04 Anders Carlsson <andersca@codefactory.se>
8495 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
8496 after case DBUS_TYPE_BOOELAN.
8498 2003-03-02 Havoc Pennington <hp@pobox.com>
8500 * test/break-loader.c (randomly_set_extreme_ints): add test that
8501 sets really huge and small integers
8503 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
8504 that length of boolean array fits in the string, and that
8505 string has room for boolean value in single-bool case.
8507 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
8508 optional value to "ALIGN" command which is what to fill the
8511 * test/data/valid-messages/no-padding.message: add regression
8512 test for the message padding problem
8514 2003-03-02 Havoc Pennington <hp@pobox.com>
8516 * dbus/dbus-message.c (decode_header_data): fix to always init
8517 message_padding, from Benjamin Dauvergne
8519 2003-03-02 Havoc Pennington <hp@pobox.com>
8525 2003-03-01 Joe Shaw <joe@assbarn.com>
8527 * configure.in: Check for "struct cmsgcred" and try to access its
8528 members for BSD-like unices.
8530 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
8531 _dbus_read_credentials_unix_socket().
8532 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
8533 read() for reading the credential byte off the unix socket. Use
8534 struct cmsgcred on systems that support it.
8536 2003-02-27 Alexander Larsson <alexl@redhat.com>
8540 Make gthreads-2.0 dependency optional. Don't build thread test if
8543 2003-02-27 Havoc Pennington <hp@pobox.com>
8545 * dbus/dbus-connection.c
8546 (dbus_connection_send_message_with_reply_and_block): fix doh!
8547 doh! doh! bug that resulted in never removing a reply from the
8548 queue, no wonder we called get_reply_serial so much ;-)
8550 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
8551 and client serial instead of demarshaling them every time
8553 2003-02-27 Havoc Pennington <hp@pobox.com>
8555 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
8556 more inlined, using dbus-string-private.h, speeds things up
8559 * dbus/dbus-string.c (_dbus_string_free): apply align offset
8560 when freeing the string
8561 (_dbus_string_steal_data): fix for align offset
8562 (undo_alignment): new function
8564 2003-02-26 Havoc Pennington <hp@redhat.com>
8566 All kinds of audit fixes from Owen, plus initial attempt to
8567 handle unaligned memory returned from malloc.
8569 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
8570 leave room for align_offset and nul byte
8571 (fixup_alignment): function to track an align_offset and
8572 ensure real->str is aligned
8573 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
8574 to allow a nul byte plus align offset
8575 (_dbus_string_lock): fix overflow issue
8576 (_dbus_string_init_const_len): add assertions on sanity of len,
8577 assign allocated to be ALLOCATION_PADDING larger than len
8578 (set_length): fixup the overflow handling
8579 (_dbus_string_get_data_len): fix overflow in assertion
8580 (open_gap): detect overflow in size of gap to be opened
8581 (_dbus_string_lengthen): add overflow check
8582 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
8583 (_dbus_string_append): add overflow check
8584 (_dbus_string_append_unichar): overflow
8585 (_dbus_string_delete): fix overflow in assertion
8586 (_dbus_string_copy_len): overflow in assertion
8587 (_dbus_string_replace_len): overflows in assertions
8588 (_dbus_string_find): change to implement in terms of
8589 _dbus_string_find_to
8590 (_dbus_string_find_to): assorted fixage
8591 (_dbus_string_equal_c_str): assert c_str != NULL,
8592 fix logic so the function works
8593 (_dbus_string_ends_with_c_str): fix overflow thingy
8594 (_dbus_string_base64_encode): overflow fix
8595 (_dbus_string_validate_ascii): overflow
8596 (_dbus_string_validate_nul): overflow
8598 2003-02-26 Havoc Pennington <hp@redhat.com>
8600 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
8602 2003-02-26 Alexander Larsson <alexl@redhat.com>
8605 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
8607 * dbus/dbus-connection.c:
8608 * dbus/dbus-connection.h:
8609 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
8610 Add dbus_connection_set_wakeup_main_function and use it when queueing
8611 incoming and outgoing messages.
8614 * dbus/dbus-dataslot.c:
8615 Threadsafe usage of DBusDataSlotAllocator
8617 * dbus/dbus-message.c: (dbus_message_get_args_iter):
8620 * dbus/dbus-server-unix.c:
8623 * glib/dbus-gmain.c:
8624 Implement the new wakeup functions for glib.
8627 * glib/test-thread-client.c:
8628 * glib/test-thread-server.c:
8629 * glib/test-thread.h:
8630 Initial cut at some thread test code. Not really done yet.
8632 2003-02-26 Havoc Pennington <hp@pobox.com>
8634 * dbus/dbus-connection.c
8635 (dbus_connection_send_message_with_reply_and_block): fix crash
8636 where we ref'd the outgoing message instead of the returned reply
8638 * dbus/dbus-transport-unix.c (do_authentication): check read watch
8639 at the end of this function, so if we didn't need to read for
8640 authentication, we reinstall it for receiving messages
8642 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
8643 a NULL sender for peer-to-peer case
8645 * dbus/dbus-transport-unix.c (check_read_watch): handle
8646 !authenticated case correctly
8648 * glib/dbus-gmain.c: add support for DBusServer
8650 * dbus/dbus-server.c: add data slot support
8652 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
8653 return values and handle errors
8655 * dbus/dbus-dataslot.c: factor out the data slot stuff from
8658 * Doxyfile.in (INPUT): add glib subdir
8660 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
8661 setup_with_g_main instead of hookup_with_g_main; write docs
8663 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8665 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
8666 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8667 * dbus/dbus-message.c: (dbus_message_append_boolean),
8668 (dbus_message_append_boolean_array),
8669 (dbus_message_get_args_valist), (_dbus_message_test):
8670 * dbus/dbus-message.h:
8671 * doc/dbus-specification.sgml:
8672 Various fixes as pointed out by Havoc.
8674 * test/data/invalid-messages/bad-boolean-array.message:
8675 * test/data/invalid-messages/bad-boolean.message:
8676 Add invalid boolean value test cases.
8678 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8680 * dbus/dbus-internals.c: (_dbus_type_to_string):
8681 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
8682 (_dbus_marshal_validate_arg):
8683 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8684 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8685 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
8686 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
8687 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
8688 (dbus_message_iter_get_double),
8689 (dbus_message_iter_get_boolean_array), (message_iter_test):
8690 * dbus/dbus-message.h:
8691 * dbus/dbus-protocol.h:
8692 * doc/dbus-specification.sgml:
8693 * test/data/valid-messages/lots-of-arguments.message:
8694 Add support for boolean and boolean array types.
8696 2003-02-23 Havoc Pennington <hp@pobox.com>
8698 * dbus/dbus-keyring.c: finish most of this implementation and
8701 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
8702 these barf if the error isn't cleared to NULL
8704 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
8705 (_dbus_create_directory): new function
8707 * dbus/dbus-errors.c (dbus_set_error): fix warning
8709 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
8710 (_dbus_string_hex_decode): new function
8711 (test_hex_roundtrip): test code
8713 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
8715 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
8717 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
8718 the save-to-temp/rename trick to atomically write the new file
8719 (_dbus_string_parse_uint): new function
8721 2003-02-22 Havoc Pennington <hp@pobox.com>
8723 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
8725 2003-02-22 Havoc Pennington <hp@pobox.com>
8727 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
8728 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
8730 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
8732 * dbus/test/data/sha-1: add US government test suite for SHA-1
8734 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8736 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
8737 Make string arrays NULL-terminated.
8739 * dbus/dbus-memory.c: (dbus_free_string_array):
8740 * dbus/dbus-memory.h:
8741 New function for freeing NULL-terminated string arrays.
8743 * dbus/dbus-message-builder.c: (append_quoted_string),
8744 (_dbus_message_data_load):
8745 Add support for array types.
8747 * dbus/dbus-message.c: (check_message_handling):
8748 Add more types as test cases.
8750 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
8751 (_dbus_string_parse_double):
8752 Add the start offset to the end offset.
8754 * test/data/valid-messages/lots-of-arguments.message:
8755 New test message with lots of arguments.
8757 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8759 * dbus/dbus-message.c: (dbus_message_append_nil),
8760 (dbus_message_append_int32), (dbus_message_append_uint32),
8761 (dbus_message_append_double), (dbus_message_append_string),
8762 (dbus_message_append_int32_array),
8763 (dbus_message_append_uint32_array),
8764 (dbus_message_append_double_array),
8765 (dbus_message_append_byte_array),
8766 (dbus_message_append_string_array):
8767 Fix all out-of-memory handling in these functions.
8769 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8771 * dbus/dbus-message.c: (dbus_message_append_nil):
8774 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8776 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8777 (dbus_message_append_nil), (dbus_message_append_int32_array),
8778 (dbus_message_append_uint32_array),
8779 (dbus_message_append_double_array),
8780 (dbus_message_append_byte_array),
8781 (dbus_message_append_string_array), (dbus_message_get_args_valist),
8782 (dbus_message_iter_get_int32_array),
8783 (dbus_message_iter_get_uint32_array),
8784 (dbus_message_iter_get_double_array),
8785 (dbus_message_iter_get_byte_array),
8786 (dbus_message_iter_get_string_array):
8788 * dbus/dbus-message.h:
8789 Add functions for appending and getting arrays.
8791 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8793 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
8794 element size at least 8 bytes, fixes mempool tests on
8797 2003-02-20 Alexander Larsson <alexl@redhat.com>
8799 * dbus/dbus-transport-unix.c (unix_do_iteration):
8800 Unlock the connection mutex during a blocking select call.
8801 Add todo about how we need a way to wake up the select.
8803 * dbus/dbus-connection-internal.h:
8804 * dbus/dbus-connection.c:
8805 Add _dbus_connection_lock and _dbus_connection_unlock.
8807 2003-02-19 Havoc Pennington <hp@pobox.com>
8809 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
8810 Doxyfile.in, not Doxyfile
8812 * dbus/dbus-keyring.c: do some hacking on this
8814 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
8816 * dbus/dbus-errors.c (dbus_set_error_const): do not call
8818 (dbus_set_error): remove dbus_error_init, check for message ==
8819 NULL *before* we sprintf into it, and add @todo about including
8820 system headers in this file
8822 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
8824 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
8826 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
8827 get various bits of user information based on either username
8829 (_dbus_homedir_from_username): new function
8831 2003-02-19 Anders Carlsson <andersca@codefactory.se>
8834 Add check for nonposix getpwnam_r
8836 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
8837 Align the pool element size to a sizeof (void *) boundary.
8839 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
8840 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
8841 General Solaris fixes.
8843 * test/data/valid-messages/simplest-manual.message:
8844 Explicitly state that we want little-endian packing.
8846 2003-02-19 Mikael Hallendal <micke@codefactory.se>
8848 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8850 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
8851 Added to create a transport connecting using a tcp/ip socket.
8853 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
8854 to a tcp socket at given host and port.
8855 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
8858 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8860 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
8861 Added to create a server listening on a TCP/IP socket.
8863 2003-02-19 Havoc Pennington <hp@pobox.com>
8865 Throughout: mop up all the Doxygen warnings and undocumented
8868 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
8869 to search any paths.
8871 * dbus/dbus-threads.c: move global mutex initializers to
8872 dbus-internals.h, multiple prototypes was confusing doxygen
8873 besides being kind of ugly
8875 * Doxyfile (PREDEFINED): have Doxygen define
8876 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
8877 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
8878 (do not abuse the feature! it's for stuff like the autogenerated
8879 macros in dbus-md5.c, not just for things you don't feel like
8882 2003-02-18 Havoc Pennington <hp@pobox.com>
8884 * dbus/dbus-string.c (_dbus_string_zero): new function
8886 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
8887 wrap it in some dbus-friendly API
8889 * dbus/dbus-types.h: add 16-bit types
8891 2003-02-18 Joe Shaw <joe@assbarn.com>
8893 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
8894 credentials from our currently running process.
8895 (get_word): Fix a buglet where we were copying the entire length
8896 instead of relative to our position.
8898 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
8899 keys on the stack... it's 640k of data.
8901 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
8902 read the credentials byte off the socket, even if we don't have
8904 (_dbus_poll): Implement poll() using select() for systems which
8907 * glib/test-dbus-glib.c (main): Print out an error if no
8908 parameters are given.
8910 * test/data/auth/fallback.auth-script: Added. Tests that a client
8911 can fallback to a secondary auth mechanism if the first fails.
8913 2003-02-18 Havoc Pennington <hp@pobox.com>
8917 2003-02-17 Havoc Pennington <hp@pobox.com>
8919 * doc/dbus-specification.sgml: lots of cosmetic
8920 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
8921 env variable to DBUS_BUS_ADDRESS, s/client/application/,
8922 s/server/bus/ (except in authentication section). Add a section
8923 "Message Bus Message Routing"
8925 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
8931 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8933 * doc/dbus-specification.sgml:
8934 Specification updates.
8936 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8938 * bus/activation.c: (bus_activation_init), (child_setup),
8939 (bus_activation_activate_service):
8941 * bus/main.c: (main):
8942 Set DBUS_ADDRESS environment variable.
8944 * dbus/dbus-errors.c: (dbus_set_error):
8945 Don't use va_copy since that's a C99 feature.
8947 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
8948 (_dbus_spawn_async):
8949 * dbus/dbus-sysdeps.h:
8950 Add child_setup_func to _dbus_spawn_async.
8952 * doc/dbus-specification.sgml:
8953 Update specification.
8955 * test/spawn-test.c: (setup_func), (main):
8958 2003-02-17 Alexander Larsson <alexl@redhat.com>
8960 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
8963 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8967 * doc/dbus-test-plan.sgml:
8968 Add test plan document.
8973 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8975 * dbus/dbus-message.c: (decode_header_data),
8976 (_dbus_message_loader_return_buffer):
8977 Set the header padding amount when loading a message.
8979 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8981 * bus/dispatch.c: (send_one_message):
8982 Only send broadcast messages to registered connections.
8984 * dbus/dbus-message.c: (dbus_message_name_is):
8985 * dbus/dbus-message.h:
8986 New convenience function.
8988 * dbus/dbus-transport-debug.c: (do_reading):
8989 Only dispatch one message per run.
8992 * test/bus-test.c: (new_connection_callback), (die),
8993 (test_hello_client1_handler), (test_hello_client2_handler),
8994 (test_hello_replies), (main):
8996 * test/bus-test-loop.[ch]:
8999 2003-02-16 Havoc Pennington <hp@pobox.com>
9001 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9002 backward conditional
9004 2003-02-16 Alexander Larsson <alexl@redhat.com>
9006 * dbus/dbus-connection.c:
9007 Implement sent_message_with_reply. (with_reply_and block is still
9009 Made dispatch_message not lose message if OOM.
9011 * dbus/dbus-errors.h:
9012 Add NoReply error (for reply timeouts).
9014 2003-02-16 Alexander Larsson <alexl@redhat.com>
9016 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9017 Actually free keys and values when destroying hashtable.
9019 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9021 * dbus/dbus-auth.c: (client_try_next_mechanism):
9024 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9025 Return TRUE if there's no thread implementation around.
9027 * glib/dbus-gmain.c: (free_source),
9028 (dbus_connection_hookup_with_g_main):
9029 Make sure to remove the GSource when the connection is finalized.
9031 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9033 * bus/dispatch.c: (bus_dispatch_message_handler):
9034 * dbus/dbus-errors.h:
9035 Return an error if someone tries to send a message to a service
9038 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9040 * bus/activation.c: (load_directory), (bus_activation_init),
9041 (bus_activation_activate_service):
9044 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9045 More work on the activation handling.
9047 * dbus/dbus-errors.h:
9048 Add some error messages
9050 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9051 * dbus/dbus-message.h:
9052 New function that creates an error message.
9054 * dbus/dbus-protocol.h:
9055 Add ACTIVATE_SERVER message.
9057 * dbus/dbus-server-unix.c: (unix_handle_watch),
9058 (_dbus_server_new_for_domain_socket):
9059 Call _dbus_fd_set_close_on_exec.
9061 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9062 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9063 (_dbus_fd_set_close_on_exec):
9064 * dbus/dbus-sysdeps.h:
9065 Add _dbus_fd_set_close_on exec function. Also add function that checks
9066 that all open fds are set to close-on-exec and warns otherwise.
9068 * dbus/dbus-transport-unix.c:
9069 (_dbus_transport_new_for_domain_socket):
9070 Call _dbus_fd_set_close_on_exec.
9072 2003-02-16 Havoc Pennington <hp@pobox.com>
9074 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9075 allow people to avoid setting SIGPIPE to SIG_IGN
9076 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9077 we've been asked not to
9079 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9081 * dbus/dbus-list.c: (_dbus_list_append_link),
9082 (_dbus_list_prepend_link):
9083 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9087 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9090 * bus/activation.c: (bus_activation_entry_free),
9091 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9093 * bus/main.c: (main):
9094 Add simple activation support, doesn't work yet though.
9096 2003-02-15 Zack Rusin <zack@kde.org>
9098 * qt/dbus-qthread.cpp: small casting fix
9100 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9102 * dbus/dbus-errors.c: (dbus_set_error):
9103 * dbus/dbus-errors.h:
9104 Add a few errors and make dbus_set_error void.
9106 * dbus/dbus-sysdeps.c:
9107 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9108 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9109 * dbus/dbus-sysdeps.h:
9110 Add _dbus_spawn_async.
9112 * test/spawn-test.c: (main):
9113 Test for _dbus_spawn_async.
9115 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9117 * dbus/dbus-internals.h:
9118 Fix build without tests.
9120 * dbus/dbus-list.c: (alloc_link):
9121 Fix a segfault when a malloc fails.
9123 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9124 (dbus_malloc0), (dbus_realloc):
9125 Add support for malloc debugging.
9127 2003-02-15 Alexander Larsson <alexl@redhat.com>
9129 * dbus/dbus-threads.c:
9130 * dbus/dbus-threads.h:
9131 Add condvars. Remove static mutext from API.
9132 Implement static mutexes by initializing them from threads_init.
9134 * glib/dbus-gthread.c:
9135 * qt/dbus-qthread.cpp:
9136 Update with the thread api changes.
9141 Turn StaticMutex into normal mutex + init function.
9142 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9143 _dbus_list_append_link, _dbus_list_prepend_link
9146 * dbus/dbus-sysdeps.c:
9147 * dbus/dbus-sysdeps.h:
9148 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9149 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9151 * dbus/dbus-protocol.h:
9152 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9154 * dbus/dbus-message.c:
9155 Make ref/unref atomic.
9158 * dbus/dbus-connection-internal.h:
9159 * dbus/dbus-connection.c:
9160 * dbus/dbus-connection.h:
9162 Change _peek to _borrow,_return & _steal_borrowed.
9163 Change disconnect callback to event.
9164 Make dbus_connection_dispatch_messages reentrant.
9166 * dbus/dbus-transport.c:
9167 Don't ref the connection on calls to the transport
9170 * dbus/dbus-message-handler.c:
9173 * glib/dbus-gmain.c:
9174 Don't use peek_message anymore
9177 * test/debug-thread.c:
9178 * test/debug-thread.h:
9179 Simple thread implementation that asserts() on deadlocks in
9180 single-threaded code.
9183 (main) Call debug_threads_init.
9186 Use disconnect message instead of disconnect callback.
9190 Don't call dbus_connection_set_disconnect_function. Instead export
9191 bus_connection_disconnect.
9194 Call bus_connection_disconnect when we get a disconnected message.
9196 2003-02-15 Havoc Pennington <hp@pobox.com>
9198 * dbus/dbus-message.c (dbus_message_new): fool around with the
9201 2003-02-14 Havoc Pennington <hp@pobox.com>
9203 * dbus/dbus-mempool.c: fail if the debug functions so indicate
9205 * dbus/dbus-memory.c: fail if the debug functions indicate we
9208 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9209 (_dbus_decrement_fail_alloc_counter): debug functions to
9210 simulate memory allocation failures
9212 2003-02-14 Havoc Pennington <hp@pobox.com>
9214 * dbus/dbus-errors.h (struct DBusError): add a word of padding
9217 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9219 * bus/driver.c: (bus_driver_handle_hello):
9221 * bus/services.c: (bus_service_lookup):
9222 Reorder message sending so we get a more sane order.
9224 * test/bus-test.c: (message_handler):
9227 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9229 * bus/driver.c: (bus_driver_send_service_deleted),
9230 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9231 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9232 (bus_driver_send_welcome_message),
9233 (bus_driver_handle_list_services),
9234 (bus_driver_handle_acquire_service),
9235 (bus_driver_handle_service_exists):
9236 * dbus/dbus-bus.c: (dbus_bus_register_client),
9237 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9238 * dbus/dbus-errors.c: (dbus_result_to_string):
9239 * dbus/dbus-errors.h:
9240 * dbus/dbus-message.c: (dbus_message_append_args),
9241 (dbus_message_append_args_valist), (dbus_message_get_args),
9242 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
9243 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
9244 (dbus_message_iter_get_byte_array),
9245 (dbus_message_iter_get_string_array), (message_iter_test),
9246 (check_message_handling), (_dbus_message_test):
9247 * dbus/dbus-message.h:
9248 * test/bus-test.c: (main):
9249 Change fields to arguments in messages, so that they won't be
9250 confused with header fields.
9252 * glib/test-dbus-glib.c: (main):
9253 Remove append_fields from hello message.
9255 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9257 * dbus/dbus-errors.c:
9258 * dbus/dbus-message.c:
9259 * dbus/dbus-string.c:
9260 Documentation fixes.
9262 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9264 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
9266 Implement support for timeouts in dbus-glib.
9268 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9270 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9271 * dbus/dbus-message.c: (process_test_subdir):
9272 * test/break-loader.c: (find_breaks_based_on):
9273 Plug some memory leaks.
9275 2003-02-13 Richard Hult <rhult@codefactory.se>
9277 * bus/main.c: Fix build.
9279 * dbus/dbus-errors.h:
9280 * dbus/dbus-errors.c: Fix copyright for Anders.
9282 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9287 * bus/connection.c: (bus_connection_foreach):
9290 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9291 (unescape_string), (new_section), (parse_section_start),
9292 (parse_key_value), (report_error), (bus_desktop_file_load),
9293 (bus_desktop_file_get_string):
9294 * bus/desktop-file.h:
9295 Use DBusError for error reporting.
9297 * bus/dispatch.c: (send_one_message),
9298 (bus_dispatch_message_handler):
9299 * bus/driver.c: (bus_driver_send_service_deleted),
9300 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9301 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9302 (bus_driver_send_welcome_message),
9303 (bus_driver_handle_list_services),
9304 (bus_driver_handle_acquire_service),
9305 (bus_driver_handle_service_exists):
9306 * bus/loop.c: (bus_loop_run):
9308 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9310 * bus/utils.c: (bus_wait_for_memory):
9312 New files with general utility functions.
9314 * dbus/dbus-internals.h:
9315 Remove _DBUS_HANDLE_OOM.
9317 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9319 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9320 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9321 * dbus/dbus-errors.h:
9322 Add DBusError structure.
9324 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9326 * test/data/valid-messages/standard-acquire-service.message:
9327 * test/data/valid-messages/standard-hello.message:
9328 * test/data/valid-messages/standard-list-services.message:
9329 * test/data/valid-messages/standard-service-exists.message:
9330 Add some standard messages.
9332 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9334 * bus/driver.c: (bus_driver_send_welcome_message),
9335 (bus_driver_handle_list_services),
9336 (bus_driver_handle_acquire_service),
9337 (bus_driver_handle_service_exists), (bus_driver_handle_message):
9338 Update for API changes in libdbus.
9340 * dbus/dbus-message.c: (dbus_message_new_reply):
9341 * dbus/dbus-message.h:
9342 Remove the name argument. The spec states that replies shouldn't
9345 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9347 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
9348 (report_error), (bus_desktop_file_load), (lookup_section),
9349 (lookup_line), (bus_desktop_file_get_raw),
9350 (bus_desktop_file_get_string):
9351 * bus/desktop-file.h:
9352 Some fixes, and new functions for getting a key value from a section.
9354 2003-02-13 Havoc Pennington <hp@pobox.com>
9356 * test/data/auth/fail-after-n-attempts.auth-script: new test
9358 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
9361 2003-02-13 Havoc Pennington <hp@pobox.com>
9363 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
9364 dbus_credentials_match were backward
9366 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
9367 NO_CREDENTIALS and ROOT_CREDENTIALS
9369 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
9370 into here. Never process more commands after we've reached an
9371 end state; store further data as unused bytes.
9373 * test/data/auth/*: add more auth tests
9375 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
9376 command to match exact string and EXPECT_UNUSED to match unused
9379 * test/Makefile.am (dist-hook): fix to dist all the test stuff
9381 2003-02-12 Havoc Pennington <hp@pobox.com>
9383 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
9384 \r off of popped lines
9386 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
9389 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
9392 2003-02-12 Havoc Pennington <hp@pobox.com>
9394 * dbus/Makefile.am: remove break-loader from the build, since it
9397 * configure.in: add --enable-gcov to turn on coverage profiling
9398 flags and disable optimization
9400 2003-02-10 Havoc Pennington <hp@pobox.com>
9402 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
9403 initial cut at test framework for DBusAuth from laptop.
9404 Doesn't quite work yet but it compiles and I need to get
9405 it off the 266mhz laptop. ;-)
9407 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
9408 fix a memleak in error case
9410 2003-02-12 Anders Carlsson <andersca@codefactory.se>
9413 * bus/desktop-file.c:
9414 * bus/desktop-file.h:
9415 Add a desktop file parser.
9417 2003-02-11 Zack Rusin <zack@kde.org>
9419 * qt/message.[h|cpp]: sample implementation
9420 of the KDE wrapper for DBusMessage
9422 2003-02-09 Zack Rusin <zack@kde.org>
9424 * test/bus-test.c: make_it_compile
9425 * doc/dbus-specification.sgml: minimal semantic fix
9427 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9433 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9436 * dbus/dbus-break-loader.c:
9438 * test/break-loader.c:
9439 Move dbus-break-loader to test/ and rename it to break-loader.
9441 2003-02-02 Havoc Pennington <hp@pobox.com>
9443 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
9444 for code to manage cookies in your home directory
9446 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
9448 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
9449 to authenticate, then disconnect the client.
9451 2003-02-03 Alexander Larsson <alexl@redhat.com>
9453 * dbus/dbus-message.c (dbus_message_append_fields):
9456 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9458 * doc/dbus-specification.sgml:
9459 Update address format section.
9461 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9464 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
9465 (message_handler), (new_connection_callback), (loop_quit),
9469 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9471 * bus/driver.c: (bus_driver_handle_service_exists):
9472 Simplify the code a bit.
9474 * dbus/dbus-bus.c: (dbus_bus_service_exists):
9477 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9480 Add libdbus-daemon.la and link to it.
9482 2003-02-01 James Willcox <jwillcox@gnome.org>
9484 * bus/driver.c: (bus_driver_handle_own_service):
9485 Actually include the service reply code in the message.
9487 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9489 * bus/driver.c: (bus_driver_handle_service_exists):
9490 Don't unref the incoming message.
9492 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9494 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
9496 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9498 * dbus/dbus-server.c: (dbus_server_listen):
9499 * dbus/dbus-transport.c: (_dbus_transport_open):
9500 ifdef out the calls to the debug transport and server.
9502 2003-02-02 Alexander Larsson <alexl@redhat.com>
9504 * dbus/dbus-watch.c (dbus_watch_get_flags):
9505 Add note in the docs that ERROR or HANGUP won't be returned
9506 and are assumed always on.
9508 * glib/dbus-gmain.c (add_watch):
9509 Always add IO_ERR | IO_HUP
9511 * dbus/dbus-message.h:
9512 Add semicolon after dbus_message_iter_get_string_array().
9513 Makes qt code build again
9515 2003-02-01 Anders Carlsson <andersca@codefactory.se>
9517 * bus/driver.c: (create_unique_client_name),
9518 (bus_driver_handle_hello):
9519 Don't take a name, just use a numeric id to identify
9523 * dbus/dbus-bus.c: (dbus_bus_register_client),
9524 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9526 Add new convenience functions for communicating with the bus.
9528 * dbus/dbus-message.h:
9530 * dbus/dbus-protocol.h:
9533 2003-02-01 Alexander Larsson <alexl@redhat.com>
9535 * dbus/dbus-message.c (dbus_message_append_fields):
9536 Add some more doc comments.
9538 2003-02-01 Havoc Pennington <hp@pobox.com>
9540 * dbus/dbus-break-loader.c (randomly_modify_length): change
9541 a 4-byte value in the message as if it were a length
9543 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
9544 execute bit on saved files
9546 2003-02-01 Havoc Pennington <hp@pobox.com>
9548 * dbus/dbus-break-loader.c (main): new program to find messages
9549 that break the loader.
9551 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
9552 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
9554 * dbus/dbus-string.c (_dbus_string_set_byte): new
9556 2003-01-31 Havoc Pennington <hp@pobox.com>
9558 * dbus/dbus-message.c: refactor the test code to be more general,
9559 in preparation for writing a "randomly permute test cases to
9560 try to break the loader" program.
9562 2003-01-31 Havoc Pennington <hp@pobox.com>
9564 * doc/dbus-specification.sgml: work on the specification
9566 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
9567 the protocol version of the message.
9569 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
9570 no longer specifies that.
9571 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
9574 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
9575 "break" for DBUS_TYPE_NIL, remove @todo
9577 2003-01-31 Havoc Pennington <hp@pobox.com>
9579 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
9580 just set_is_error/get_is_error as this is a commonly-used
9581 function, and write docs.
9583 2003-01-31 Anders Carlsson <andersca@codefactory.se>
9585 * dbus/dbus-address.c: (dbus_address_entry_free):
9586 Free key and value lists.
9588 * dbus/dbus-internals.c: (_dbus_type_to_string):
9589 Add the types we didn't have.
9591 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9592 (_dbus_marshal_validate_arg):
9595 * dbus/dbus-message.c: (dbus_message_set_sender):
9596 Remove todo about being able to set sender to NULL.
9598 (dbus_message_set_is_error_reply),
9599 (dbus_message_get_is_error_reply):
9600 * dbus/dbus-message.h:
9603 * dbus/dbus-protocol.h:
9604 Add error reply flag.
9606 * test/data/valid-messages/opposite-endian.message:
9607 Add NIL type to test.
9609 2003-01-31 Havoc Pennington <hp@pobox.com>
9611 * doc/dbus-specification.sgml: fully specify the header. Add
9612 flags and major protocol version, and change header/body len to
9615 * dbus/dbus-message-builder.c (append_saved_length): append length
9618 * dbus/dbus-message.c (dbus_message_create_header): change header
9619 length and body length to unsigned. Add the new fields from the
9621 (_dbus_message_loader_return_buffer): unsigned header/body len
9623 2003-01-30 Havoc Pennington <hp@pobox.com>
9625 * dbus/dbus-auth.c: rework to use only REJECTED, no
9628 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
9629 use REJECTED, suggested by Mark McLoughlin
9631 2003-01-30 Havoc Pennington <hp@pobox.com>
9633 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
9634 a better way to report errors here. e.g. "unix address lacks
9635 path" or something. also "no such file" when the path doesn't
9638 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
9640 (dbus_parse_address): add @todo about documenting address format,
9641 and allowing , and ; to be escaped
9643 2003-01-30 Anders Carlsson <andersca@codefactory.se>
9646 Add dbus-address.[ch]
9648 * dbus/dbus-address.c: (dbus_address_entry_free),
9649 (dbus_address_entries_free), (create_entry),
9650 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
9651 (dbus_parse_address), (_dbus_address_test):
9652 * dbus/dbus-address.h:
9653 New files for dealing with address parsing.
9655 * dbus/dbus-connection.c:
9656 Document timeout functions.
9658 * dbus/dbus-message.c:
9659 Document dbus_message_new_from_message.
9661 * dbus/dbus-server-debug.c:
9664 * dbus/dbus-server.c: (dbus_server_listen):
9665 Parse address and use correct server implementation.
9667 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
9668 * dbus/dbus-string.h:
9669 New function with test.
9671 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
9675 * dbus/dbus-transport-debug.c:
9678 * dbus/dbus-transport.c: (_dbus_transport_open):
9679 Parse address and use correct transport implementation.
9681 2003-01-30 Havoc Pennington <hp@pobox.com>
9683 * dbus/dbus-message.c: use message->byte_order instead of
9684 DBUS_COMPILER_BYTE_ORDER throughout.
9685 (dbus_message_create_header): pad header to align the
9686 start of the body of the message to 8-byte boundary
9688 * dbus/dbus-marshal.h: make all the demarshalers take const
9689 DBusString arguments.
9691 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
9692 validate message args here, so we don't have to do slow validation
9693 later, and so we catch bad messages as they are incoming. Also add
9694 better checks on header_len and body_len. Also fill in
9697 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
9698 implemented properly)
9699 (_dbus_string_validate_nul): new function to check all-nul
9701 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
9702 get_arg_end_pos and remove all validation
9703 (_dbus_marshal_validate_arg): actually do validation here.
9705 2003-01-29 Havoc Pennington <hp@pobox.com>
9707 * dbus/dbus-message.c (check_message_handling): fix assertion
9708 failure on set_client_serial
9710 2003-01-28 Havoc Pennington <hp@pobox.com>
9712 * dbus/dbus-server-debug.c: Add doc section comments
9714 * dbus/dbus-transport-debug.c: add doc section comments
9716 2003-01-28 Havoc Pennington <hp@redhat.com>
9718 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
9719 the reverse order from how I had it
9720 (_dbus_string_base64_encode): reverse encoding order. I was
9721 basically byteswapping everything during encoding.
9723 2003-01-28 Anders Carlsson <andersca@codefactory.se>
9725 * dbus/dbus-connection-internal.h:
9726 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
9727 (_dbus_connection_remove_timeout):
9728 Add functions for adding and removing timeouts.
9730 * dbus/dbus-message.c: (dbus_message_new_from_message):
9731 Add new function that takes a message and creates an exact
9732 copy of it, but with the refcount set to 1.
9733 (check_message_handling):
9736 * dbus/dbus-server-protected.h:
9737 * dbus/dbus-server.c: (_dbus_server_init_base),
9738 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
9739 (dbus_server_set_timeout_functions):
9740 (_dbus_server_remove_timeout):
9741 New functions so that a server can add and remove timeouts.
9743 (dbus_server_listen):
9744 Add commented out call to dbus_server_debug_new.
9746 * dbus/dbus-timeout.c: (_dbus_timeout_new):
9747 Actually set the handler, doh.
9749 * dbus/dbus-transport.c: (_dbus_transport_open):
9750 Add commented out call to dbus_transport_debug_client_new.
9753 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
9755 2003-01-28 Havoc Pennington <hp@pobox.com>
9757 * dbus/dbus-message.c (check_message_handling): function to check
9758 on the loaded message, iterates over it etc.
9760 2003-01-28 Havoc Pennington <hp@pobox.com>
9762 * test/Makefile.am (dist-hook): fix make distdir
9764 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
9766 2003-01-27 Havoc Pennington <hp@pobox.com>
9768 * dbus/dbus-mempool.c (time_for_size): replace printf with
9771 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
9772 empty lines; fix the SAVE_LENGTH stuff to be
9773 START_LENGTH/END_LENGTH so it actually works; couple other
9776 * test/Makefile.am (dist-hook): add dist-hook for .message files
9778 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
9779 can be constant or locked.
9780 (_dbus_string_free): allow freeing a const string as
9783 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
9785 * dbus/dbus-test-main.c (main): take an argument which is the
9786 directory containing test data
9788 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
9789 argument to this and load all the messages in test/data/
9790 checking that they can be loaded or not loaded as appropriate.
9792 2003-01-27 Anders Carlsson <andersca@codefactory.se>
9794 * bus/dispatch.c: (bus_dispatch_message_handler):
9795 Dispatch messages sent to services.
9797 * bus/driver.c: (bus_driver_send_service_deleted),
9798 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9799 (bus_driver_send_service_acquired):
9800 Add helper functions for sending service related messages.
9802 (bus_driver_send_welcome_message):
9803 Send HELLO_REPLY instead of WELCOME.
9805 (bus_driver_handle_list_services):
9806 Send LIST_SERVICES_REPLY instead of SERVICES.
9808 (bus_driver_handle_own_service),
9809 (bus_driver_handle_service_exists):
9810 New message handlers.
9812 (bus_driver_handle_message):
9813 Invoke new message handlers.
9815 (bus_driver_remove_connection):
9816 Don't remove any services here since that's done automatically
9817 by bus_service_remove_owner now.
9820 New function signatures.
9822 * bus/services.c: (bus_service_add_owner):
9823 Send ServiceAcquired message if we're the only primary owner.
9825 (bus_service_remove_owner):
9826 Send ServiceAcquired/ServiceLost messages.
9828 (bus_service_set_prohibit_replacement),
9829 (bus_service_get_prohibit_replacement):
9830 Functions for setting prohibit replacement.
9832 (bus_service_has_owner):
9833 New function that checks if a connection is in the owner queue of
9837 Add new function signatures.
9839 * dbus/dbus-list.c: (_dbus_list_test):
9840 Add tests for _dbus_list_remove_last and traversing the list backwards.
9843 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
9844 go any further, so return NULL then.
9846 * dbus/dbus-protocol.h:
9847 Add new messages, service flags and service replies.
9849 2003-01-26 Havoc Pennington <hp@pobox.com>
9851 * dbus/dbus-message-builder.c: implement, completely untested.
9853 * test/data/*: add data to be used in testing.
9854 ".message" files are our simple loadable text format.
9855 ".message-raw" will be binary dumps of messages.
9857 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
9859 2003-01-26 Havoc Pennington <hp@pobox.com>
9861 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
9863 * dbus/dbus-errors.c (dbus_result_to_string): add
9866 * dbus/dbus-message-builder.c: new file, will contain code to load
9867 up messages from files. Not implemented yet.
9869 2003-01-26 Havoc Pennington <hp@pobox.com>
9871 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
9872 the sender by setting to NULL
9874 2003-01-26 Havoc Pennington <hp@pobox.com>
9876 The unit tests pass, but otherwise untested. If it breaks, the
9877 tests should have been better. ;-)
9879 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
9882 * dbus/dbus-message.c: redo everything so we maintain
9883 message->header as the only copy of the various fields.
9884 This avoids the possibility of out-of-memory in some cases,
9885 for example dbus_message_lock() can't run out of memory anymore,
9886 and avoids extra copying. Figured I may as well go ahead and do
9887 this since it was busted for dbus_message_lock to not return
9888 failure on OOM, and dbus_message_write_header was totally
9889 unchecked for OOM. Also fixed some random other bugs.
9891 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
9892 that strings are nul-terminated. Also, end_pos can be equal
9893 to string length just not greater than, I think.
9894 (_dbus_marshal_set_int32): new function
9895 (_dbus_marshal_set_uint32): new function
9896 (_dbus_marshal_set_string): new function
9898 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
9899 a warning, init timeout_list to NULL
9900 (dbus_connection_send_message): don't use uninitialized variable
9903 * dbus/dbus-string.c (_dbus_string_replace_len): new function
9905 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9907 * bus/driver.c: (bus_driver_handle_hello),
9908 (bus_driver_send_welcome_message):
9911 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9913 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
9914 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9915 (dbus_connection_unref):
9916 * dbus/dbus-marshal.c: (_dbus_marshal_test):
9917 * dbus/dbus-message.c: (dbus_message_unref),
9920 (dbus_message_get_fields):
9921 Remove debugging printout.
9923 (_dbus_message_loader_return_buffer):
9924 Don't store the header string.
9926 (_dbus_message_test):
9929 2003-01-26 Richard Hult <rhult@codefactory.se>
9931 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
9932 the file descriptor list, since it can change under us.
9934 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9936 * glib/dbus-gmain.c: (dbus_connection_prepare),
9937 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
9938 (remove_watch), (dbus_connection_hookup_with_g_main):
9939 Rewrite the glib handling to use its own GSource instead of a
9940 GIOChannel so we can catch messages put in the queue while waiting
9943 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9946 * bus/connection.c: (connection_disconnect_handler),
9947 (connection_watch_callback), (bus_connection_setup):
9948 * bus/dispatch.c: (send_one_message),
9949 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
9950 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
9952 * bus/driver.c: (bus_driver_send_service_deleted),
9953 (bus_driver_send_service_created), (bus_driver_handle_hello),
9954 (bus_driver_send_welcome_message),
9955 (bus_driver_handle_list_services), (bus_driver_remove_connection),
9956 (bus_driver_handle_message):
9958 Refactor code, put the message dispatching in its own file. Use
9959 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
9962 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9964 * dbus/dbus-internals.h:
9965 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
9967 * dbus/dbus-message.c: (dbus_message_get_sender):
9968 * dbus/dbus-message.h:
9969 Implement dbus_message_get_sender.
9971 * dbus/dbus-protocol.h:
9972 Add message and service defines.
9974 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9976 * dbus/dbus-connection.c: (dbus_connection_send_message):
9977 * dbus/dbus-message-internal.h:
9978 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
9979 (dbus_message_write_header):
9980 Remove _dbus_messag_unlock and don't set the client serial on a
9981 message if one already exists.
9983 2003-01-24 Havoc Pennington <hp@pobox.com>
9985 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
9988 * bus/driver.c (bus_driver_handle_list_services): fix a leak
9991 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9993 * dbus/dbus-list.c: (alloc_link), (free_link):
9994 Use a memory pool for the links.
9996 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9998 * bus/connection.c: (bus_connection_foreach):
10000 Add new bus_connection_foreach function.
10002 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10003 Add function that broadcasts a message to all clients.
10005 (bus_driver_send_service_created), (bus_driver_handle_hello),
10006 (bus_driver_send_welcome_message),
10007 (bus_driver_handle_list_services), (bus_driver_message_handler):
10008 Implement functions that take care of listing services, and notifying
10009 clients when new services are created.
10011 * bus/services.c: (bus_services_list):
10013 Add new function that returns an array of strings with the currently
10014 registered services.
10016 * glib/dbus-glib.h:
10017 * glib/dbus-gmain.c:
10018 Update copyright year.
10020 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10022 * dbus/dbus-connection.c: (dbus_connection_send_message):
10023 Unlock the message in case it was sent earlier.
10025 (dbus_connection_send_message_with_reply_and_block):
10026 Remove the reply message from the list.
10028 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10029 Set array_len and new_pos correctly.
10031 (_dbus_marshal_test):
10032 Remove debug output.
10034 * dbus/dbus-message-internal.h:
10035 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10036 New function that returns the reply serial.
10038 (_dbus_message_unlock):
10039 New function that unlocks a message and resets its header.
10041 (dbus_message_append_string_array),
10042 (dbus_message_get_fields_valist),
10043 (dbus_message_iter_get_field_type),
10044 (dbus_message_iter_get_string_array),
10045 (dbus_message_get_fields),
10046 (dbus_message_append_fields_valist):
10047 Handle string arrays.
10049 (dbus_message_set_sender):
10050 Make this function public since the bus daemon needs it.
10052 (decode_header_data):
10053 Set the reply serial to -1 initially.
10055 * dbus/dbus-message.h:
10056 Add dbus_message_set_sender.
10058 2003-01-24 Havoc Pennington <hp@pobox.com>
10060 * doc/dbus-specification.sgml: add some stuff
10062 2003-01-22 Havoc Pennington <hp@pobox.com>
10064 * doc/dbus-specification.sgml: Start to document the protocol.
10066 2003-01-22 Havoc Pennington <hp@pobox.com>
10068 * dbus/dbus-connection.c
10069 (dbus_connection_send_message_with_reply_and_block): add some @todo
10071 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10073 2003-01-21 Havoc Pennington <hp@pobox.com>
10075 (patch untested because can't compile)
10077 * bus/driver.c (create_unique_client_name): make this function
10078 never recycle client names. Also, caller should initialize
10081 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10083 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10085 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10086 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10087 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10088 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10089 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10090 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10091 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10092 * dbus/dbus-marshal.h:
10093 * dbus/dbus-protocol.h:
10094 Add support for marshalling and demarshalling integer, double
10097 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10102 * bus/connection.c: (connection_disconnect_handler):
10103 Remove the connection from the bus driver's list.
10105 (connection_watch_callback): Dispatch messages.
10107 (free_connection_data): Free connection name.
10109 (bus_connection_setup): Add connection to the bus driver's list.
10110 (bus_connection_remove_owned_service):
10111 (bus_connection_set_name), (bus_connection_get_name):
10112 Add functions for setting and getting the connection's name.
10114 * bus/connection.h:
10115 Add function headers.
10117 * bus/driver.c: (create_unique_client_name),
10118 (bus_driver_handle_hello_message),
10119 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10120 (bus_driver_add_connection), (bus_driver_remove_connection):
10123 * bus/services.c: (bus_service_free):
10125 New file that handles communication and registreation with the bus
10128 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10130 * dbus/dbus-connection.c: (dbus_connection_send_message):
10131 Add a new client_serial parameter.
10133 (dbus_connection_send_message_with_reply):
10134 Remove a @todo since we've implemented the blocking function.
10136 (dbus_connection_send_message_with_reply_and_block):
10137 New function that sends a message and waits for a reply and
10138 then returns the reply.
10140 * dbus/dbus-connection.h:
10143 * dbus/dbus-errors.c: (dbus_result_to_string):
10144 * dbus/dbus-errors.h:
10145 Add new DBUS_RESULT.
10147 * dbus/dbus-message-internal.h:
10148 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10149 (_dbus_message_set_sender), (dbus_message_write_header),
10150 (dbus_message_new_reply), (decode_header_data),
10151 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10152 * dbus/dbus-message.h:
10153 Add new functions that set the reply serial and sender.
10154 Also marshal and demarshal them correctly and add test.
10156 * dbus/dbus-protocol.h:
10157 Add new DBUS_MESSAGE_TYPE_SENDER.
10159 * glib/dbus-glib.h:
10160 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10161 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10162 (dbus_connection_hookup_with_g_main):
10163 * glib/test-dbus-glib.c: (main):
10164 Rewrite to use GIOChannel and remove the GSource crack.
10166 * test/echo-client.c: (main):
10167 * test/watch.c: (check_messages):
10168 Update for changed APIs
10170 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10172 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10174 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10175 Create a DBusTimeoutList.
10176 (dbus_connection_set_timeout_functions): Add new function to
10177 set timeout callbacks
10179 * dbus/dbus-connection.h: Add public DBusTimeout API.
10181 * dbus/dbus-message.c: (dbus_message_get_service):
10182 * dbus/dbus-message.h: New function.
10184 * dbus/dbus-server.c: Fix small doc typo.
10186 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10188 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10190 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10191 of the string, just as long as specified.
10193 2003-01-19 Havoc Pennington <hp@pobox.com>
10195 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10198 * dbus/dbus-server.c (dbus_server_set_max_connections)
10199 (dbus_server_get_max_connections, dbus_server_get_n_connections):
10200 keep track of current number of connections, and add API for
10201 setting a max (but haven't implemented enforcing the max yet)
10203 2003-01-18 Havoc Pennington <hp@pobox.com>
10205 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10206 reading/writing if read_watch != NULL or write_watch != NULL.
10208 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10209 the message loader code to actually load message->header and
10210 message->body into the newly-created message.
10212 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10215 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10216 (dbus_connection_get_max_message_size)
10217 (dbus_connection_set_max_live_messages_size)
10218 (dbus_connection_get_max_live_messages_size): implement some
10219 resource limitation functions
10221 * dbus/dbus-resources.c: new file implementing some of the
10222 resource limits stuff
10224 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10225 missing docs, add @todo to handle OOM etc.
10227 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10230 2003-01-18 Havoc Pennington <hp@pobox.com>
10232 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10233 connection if it hasn't been already.
10235 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
10236 replace with DisconnectFunction.
10238 2003-01-18 Havoc Pennington <hp@pobox.com>
10240 Building --disable-verbose-mode --disable-asserts --disable-tests
10241 cuts the library from 112K to 45K or so
10243 * configure.in: check for varargs macro support,
10244 add --enable-verbose-mode, --enable-asserts.
10246 * dbus/dbus-internals.h (_dbus_assert): support
10247 DBUS_DISABLE_ASSERT
10248 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
10250 2003-01-18 Havoc Pennington <hp@pobox.com>
10252 * dbus/dbus-test.c: include config.h so that tests actually run
10254 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
10255 so the failure mode when that assumption fails will be plenty
10258 2003-01-18 Havoc Pennington <hp@pobox.com>
10260 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
10262 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
10265 * test/Makefile.am: don't use special variable "TESTS" for echo-*
10266 since we don't want to use those in make check
10268 2003-01-15 Havoc Pennington <hp@redhat.com>
10274 2003-01-15 Havoc Pennington <hp@redhat.com>
10276 * test/Makefile.am: fix so that test source code ends up in the
10277 distribution on make distcheck
10279 2003-01-15 Havoc Pennington <hp@redhat.com>
10285 2003-01-15 Havoc Pennington <hp@redhat.com>
10287 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10288 fix build when --disable-tests
10290 * Makefile.am (EXTRA_DIST): put HACKING in here
10292 * HACKING: document procedure for making a tarball release.
10294 2003-01-14 Anders Carlsson <andersca@codefactory.se>
10296 * bus/connection.c: (connection_error_handler),
10297 (bus_connection_setup):
10298 * bus/main.c: (main):
10299 Make sure that the DBusConnectionData struct is NULLed
10300 out to prevent a segfault.
10302 * dbus/dbus-errors.c: (dbus_result_to_string):
10303 * dbus/dbus-errors.h:
10304 * dbus/dbus-message.c: (dbus_message_get_fields),
10305 (dbus_message_get_fields_valist), (_dbus_message_test):
10306 * dbus/dbus-message.h:
10307 Make dbus_message_get_fields return a result code so we can
10308 track invalid fields as well as oom.
10310 2003-01-11 Havoc Pennington <hp@pobox.com>
10312 * configure.in: change --enable-test/--enable-ansi action-if-given
10313 to enable_foo=$enableval instead of enable_foo=yes
10315 2003-01-08 Havoc Pennington <hp@pobox.com>
10317 * dbus/dbus-string.c (_dbus_string_align_length): new function
10319 * dbus/dbus-test-main.c: move main() for test app here
10321 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10322 symbol to run tests, because dbus-test isn't in the main
10325 Code review nitpicks.
10327 * dbus/dbus-message.c (dbus_message_write_header): add newlines
10328 for people with narrow emacs ;-). Assert client_serial was filled
10329 in. Assert message->name != NULL.
10330 (dbus_message_append_fields): have "first_field_type" arg separate
10331 from va list, needed for C++ binding that also uses varargs IIRC
10332 and helps with type safety
10333 (dbus_message_new): add @todo about using DBusString to store
10334 service/name internally
10335 (dbus_message_new): don't leak ->service and ->name on OOM later
10337 (dbus_message_unref): free the service name
10338 (dbus_message_get_fields): same change to varargs
10339 i.e. first_field_type
10340 (_dbus_message_loader_return_buffer): assert that the message data
10341 is aligned (if not it's a bug in our code). Put in verbose griping
10342 about why we set corrupted = TRUE.
10343 (decode_header_data): add FIXME that char* is evil. Was going to
10344 add FIXME about evil locale-specific string.h strncmp, but just
10345 switched to wacky string-as-uint32 optimization. Move check for
10346 "no room for field name" above get_const_data_len() to avoid
10347 assertion failure in get_const_data_len if we have trailing 2
10348 bytes or the like. Check for service and name fields being
10349 provided twice. Don't leak service/name on error. Require field
10350 names to be aligned to 4 bytes.
10352 * dbus/dbus-marshal.c: move byte swap stuff to header
10353 (_dbus_pack_int32): uscore-prefix
10354 (_dbus_unpack_int32): uscore-prefix
10355 (_dbus_unpack_uint32): export
10356 (_dbus_demarshal_string): add @todo complaining about use of
10358 (_dbus_marshal_get_field_end_pos): add @todo about bad error
10359 handling allowing corrupt data to go unchecked
10361 2003-01-08 Havoc Pennington <hp@redhat.com>
10363 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
10364 to the select() as needed for authentication. (should be using
10365 _dbus_poll() not select, but for another day)
10367 * dbus/dbus.h: include dbus/dbus-protocol.h
10369 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10371 * dbus/Makefile.am (dbusinclude_HEADERS): Install
10374 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10376 * dbus/dbus-internals.c: (_dbus_type_to_string):
10377 New function that returns a string describing a type.
10379 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
10380 * dbus/dbus-marshal.h:
10381 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
10382 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
10383 (dbus_message_iter_get_byte_array):
10384 * dbus/dbus-message.h:
10385 Add new convenience functions for appending and getting message fields.
10386 Also add demarshalling routines for byte arrays.
10388 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10390 * dbus/dbus-connection-internal.h:
10391 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10392 (_dbus_connection_get_next_client_serial),
10393 (dbus_connection_send_message):
10394 * dbus/dbus-internals.h:
10395 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
10396 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
10397 (_dbus_marshal_uint32), (_dbus_demarshal_double),
10398 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
10399 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
10400 (_dbus_verbose_bytes), (_dbus_marshal_test):
10401 * dbus/dbus-marshal.h:
10402 * dbus/dbus-message-internal.h:
10403 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
10404 (dbus_message_write_header), (_dbus_message_lock),
10405 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
10406 (dbus_message_get_name), (dbus_message_append_int32),
10407 (dbus_message_append_uint32), (dbus_message_append_double),
10408 (dbus_message_append_string), (dbus_message_append_byte_array),
10409 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
10410 (dbus_message_iter_unref), (dbus_message_iter_has_next),
10411 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
10412 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
10413 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
10414 (decode_header_data), (_dbus_message_loader_return_buffer),
10415 (message_iter_test), (_dbus_message_test):
10416 * dbus/dbus-message.h:
10417 * dbus/dbus-protocol.h:
10418 * dbus/dbus-test.c: (main):
10419 * dbus/dbus-test.h:
10420 * glib/test-dbus-glib.c: (message_handler), (main):
10421 * test/echo-client.c: (main):
10422 * test/watch.c: (check_messages):
10423 Make messages sendable and receivable for real.
10425 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10427 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10428 (_dbus_marshal_string), (_dbus_marshal_byte_array):
10429 * dbus/dbus-message.c: (dbus_message_append_int32),
10430 (dbus_message_append_uint32), (dbus_message_append_double),
10431 (dbus_message_append_string), (dbus_message_append_byte_array):
10432 Handle OOM restoration.
10434 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10436 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10437 (_dbus_demarshal_string), (_dbus_marshal_test):
10438 * dbus/dbus-marshal.h:
10439 * dbus/dbus-message.c: (dbus_message_get_name),
10440 Document these functions.
10442 (dbus_message_append_int32), (dbus_message_append_uint32),
10443 (dbus_message_append_double), (dbus_message_append_string),
10444 (dbus_message_append_byte_array):
10445 * dbus/dbus-message.h:
10446 Add functions for adding message fields of different types.
10448 * dbus/dbus-protocol.h:
10449 Add the different types.
10451 2003-01-05 Havoc Pennington <hp@pobox.com>
10453 * bus/connection.c: implement routines for handling connections,
10454 first thing is keeping a list of owned services on each connection
10455 and setting up watches etc.
10457 * bus/services.c: implement a mapping from service names to lists
10460 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
10462 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
10463 to use static mutexes for global data
10465 * dbus/dbus-connection.c (dbus_connection_set_data): add new
10466 collection of functions to set/get application-specific data
10467 on the DBusConnection.
10469 2003-01-04 Havoc Pennington <hp@pobox.com>
10471 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
10472 (_dbus_poll): new function
10474 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
10477 * bus/loop.c: initial code for the daemon main loop
10479 2003-01-04 Havoc Pennington <hp@pobox.com>
10481 * test/watch.c (error_handler): make it safe if the error handler
10482 is called multiple times (if we s/error handler/disconnect
10483 handler/ we should just guarantee it's called only once)
10485 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
10486 error handler on disconnect (it's quite possible we should
10487 just change the error handler to a "disconnect handler," I'm
10488 not sure we have any other meaningful errors)
10490 * configure.in: check for getpwnam_r
10492 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
10493 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
10494 mechanism as in SASL spec, using socket credentials
10496 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
10497 (_dbus_send_credentials_unix_socket): new function
10499 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
10501 (_dbus_write): only check errno if <0 returned
10502 (_dbus_write_two): ditto
10504 2003-01-02 Anders Carlsson <andersca@codefactory.se>
10506 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
10507 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
10508 (_dbus_marshal_test):
10509 * dbus/dbus-marshal.h:
10510 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
10511 to _dbus_marshal_utf8_string. Also fix some tests.
10513 2002-12-28 Harri Porten <porten@kde.org>
10515 * configure.in: added check for C++ compiler and a very cheesy
10516 check for the Qt integration
10518 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
10520 * qt/Makefile.am: added
10522 * qt/.cvsignore: added
10524 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
10525 latter, added #ifdef QT_THREAD_SUPPORT guard.
10527 * dbus/Makefile.am: added missing headers for make dist
10529 2002-12-28 Kristian Rietveld <kris@gtk.org>
10531 * dbus/Makefile.am: fixup export-symbols-regex.
10533 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10535 * acinclude.m4: Add this file and put the
10536 PKG_CHECK_MODULE macro in it.
10538 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10540 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10541 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10542 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10543 (_dbus_marshal_test):
10544 Make the demarshalling routines align the pos argument.
10545 Add string marshalling tests and fix the obvious bugs
10548 2002-12-26 Havoc Pennington <hp@pobox.com>
10550 * dbus/dbus-auth.c: fixes fixes fixes
10552 * dbus/dbus-transport-unix.c: wire up support for
10553 encoding/decoding data on the wire
10555 * dbus/dbus-auth.c (_dbus_auth_encode_data)
10556 (_dbus_auth_decode_data): append to target string
10557 instead of nuking it.
10559 2002-12-26 Havoc Pennington <hp@pobox.com>
10561 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
10562 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
10565 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
10566 avoid swap_bytes() overhead (ignoring possible assembly stuff for
10567 now). Main point is because I wanted unpack_uint32 to implement
10568 _dbus_verbose_bytes
10569 (_dbus_verbose_bytes): new function
10571 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
10573 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
10574 mechanism to handle a corrupt message stream
10575 (_dbus_message_loader_new): fix preallocation to only prealloc,
10578 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
10579 (_dbus_string_test): enhance tests for copy/move and fix the
10582 * dbus/dbus-transport-unix.c: Hold references in more places to
10583 avoid reentrancy problems
10585 * dbus/dbus-transport.c: ditto
10587 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
10588 leak reference count in no-message case
10590 * test/watch.c (do_mainloop): handle adding/removing watches
10591 during iteration over the watches. Also, ref the connection/server
10592 stored on a watch, so we don't try to mangle a destroyed one.
10594 * dbus/dbus-transport-unix.c (do_authentication): perform
10597 * dbus/dbus-auth.c (get_state): add a state
10598 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
10599 (_dbus_auth_get_unused_bytes): append the unused bytes
10600 to the passed in string, rather than prepend
10602 * dbus/dbus-transport.c (_dbus_transport_init_base): create
10603 the auth conversation DBusAuth
10605 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
10606 (_dbus_transport_new_for_domain_socket): when creating a
10607 transport, pass in whether it's a client-side or server-side
10608 transport so we know which DBusAuth to create
10610 2002-12-03 Havoc Pennington <hp@pobox.com>
10612 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
10613 _after_ finalizing the derived members
10614 (unix_connection_set): unref watch if we fail to add it
10616 * dbus/dbus-connection.c (dbus_connection_unref): delete the
10617 transport first, so that the connection owned by the
10618 transport will be valid as the transport finalizes.
10620 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
10621 if necessary, and remove watches from the connection.
10623 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
10625 2002-12-26 Anders Carlsson <andersca@codefactory.se>
10627 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10628 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10629 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10630 (_dbus_marshal_test):
10631 * dbus/dbus-marshal.h:
10632 Add string marshal functions and have the demarshal functions
10633 return the new position.
10635 2002-12-25 Havoc Pennington <hp@pobox.com>
10637 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
10638 it is a simple protocol that just maps directly to SASL.
10640 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
10641 initial implementation, not actually used yet.
10643 * dbus/dbus-string.c (_dbus_string_find): new function
10644 (_dbus_string_equal): new function
10645 (_dbus_string_base64_encode): new function
10646 (_dbus_string_base64_decode): new function
10648 2002-12-25 Anders Carlsson <andersca@codefactory.se>
10650 * dbus/Makefile.am:
10651 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
10652 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10653 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10654 (_dbus_demarshal_uint32), (_dbus_marshal_test):
10655 * dbus/dbus-marshal.h:
10656 * dbus/dbus-protocol.h:
10657 * dbus/dbus-test.c: (main):
10658 * dbus/dbus-test.h:
10659 Add un-optimized marshalling/demarshalling routines.
10661 2002-12-25 Harri Porten <porten@kde.org>
10663 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
10665 2002-12-24 Zack Rusin <zack@kde.org>
10667 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
10668 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
10671 2002-12-24 Havoc Pennington <hp@pobox.com>
10673 * glib/dbus-gthread.c: fix include
10675 * glib/dbus-glib.h: rename DBusMessageHandler for now.
10676 I think glib API needs to change, though, as you don't
10677 want to use DBusMessageFunction, you want to use the
10678 DBusMessageHandler object. Probably
10679 dbus_connection_open_with_g_main_loop()
10680 and dbus_connection_setup_g_main_loop() or something like that
10681 (but think of better names...) that just create a connection
10682 that has watch/timeout functions etc. already set up.
10684 * dbus/dbus-connection.c
10685 (dbus_connection_send_message_with_reply): new function just to
10686 show how the message handler helps us deal with replies.
10688 * dbus/dbus-list.c (_dbus_list_remove_last): new function
10690 * dbus/dbus-string.c (_dbus_string_test): free a string that
10693 * dbus/dbus-hash.c: use memory pools for the hash entries
10694 (rebuild_table): be more paranoid about overflow, and
10695 shrink table when we can
10696 (_dbus_hash_test): reduce number of sprintfs and write
10697 valid C89. Add tests for case where we grow and then
10698 shrink the hash table.
10700 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
10702 * dbus/dbus-connection.c (dbus_connection_register_handler)
10703 (dbus_connection_unregister_handler): new functions
10705 * dbus/dbus-message.c (dbus_message_get_name): new
10707 * dbus/dbus-list.c: fix docs typo
10709 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
10710 an object representing a handler for messages.
10712 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10714 * glib/dbus-glib.h:
10715 * glib/dbus-gthread.c: (dbus_gthread_init):
10716 Don't use the gdbus prefix for public functions.
10718 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10722 Add GLib checks and fixup .pc files
10724 * glib/Makefile.am:
10725 * glib/dbus-glib.h:
10726 * glib/dbus-gmain.c: (gdbus_connection_prepare),
10727 (gdbus_connection_check), (gdbus_connection_dispatch),
10728 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
10729 (dbus_connection_gsource_new):
10730 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
10731 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
10732 * glib/test-dbus-glib.c: (message_handler), (main):
10735 2002-12-15 Harri Porten <porten@kde.org>
10737 * autogen.sh: check for libtoolize before attempting to use it
10739 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
10742 * .cvsignore: ignore more stamp files
10744 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
10746 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
10747 without make install.
10749 2002-12-15 Havoc Pennington <hp@pobox.com>
10751 * dbus/dbus-threads.c: add thread stubs that a higher library
10752 layer can fill in. e.g. the GLib wrapper might fill them in with
10753 GThread stuff. We still need to use this thread API to
10754 thread-safe-ize the library.
10756 2002-12-12 Havoc Pennington <hp@pobox.com>
10758 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
10759 below new interfaces and include fewer system headers.
10761 * dbus/dbus-sysdeps.c (_dbus_read): new function
10762 (_dbus_write): new function
10763 (_dbus_write_two): new function
10764 (_dbus_connect_unix_socket): new function
10765 (_dbus_listen_unix_socket): new function
10767 * dbus/dbus-message-internal.h: change interfaces to use
10770 2002-12-11 Havoc Pennington <hp@pobox.com>
10772 * dbus/dbus-types.h: add dbus_unichar
10774 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
10776 * dbus/dbus-connection.c (dbus_connection_send_message): return
10779 * dbus/dbus-transport.c: include dbus-watch.h
10781 * dbus/dbus-connection.c: include dbus-message-internal.h
10783 * HACKING: add file with coding guidelines stuff.
10785 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
10786 handling here, for security purposes (as in vsftpd). Not actually
10787 using this class yet.
10789 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
10790 system/libc usage here, as in vsftpd, for ease of auditing (and
10791 should also simplify portability). Haven't actually moved all the
10792 system/libc usage into here yet.
10794 2002-11-25 Havoc Pennington <hp@pobox.com>
10796 * dbus/dbus-internals.c (_dbus_verbose): fix to not
10797 always print the first verbose message.
10799 2002-11-24 Havoc Pennington <hp@pobox.com>
10801 * test/echo-client.c, test/echo-server.c: cheesy test
10804 * configure.in (AC_CHECK_FUNCS): check for writev
10806 * dbus/dbus-message.c (_dbus_message_get_network_data): new
10809 * dbus/dbus-list.c (_dbus_list_foreach): new function
10811 * dbus/dbus-internals.c (_dbus_verbose): new function
10813 * dbus/dbus-server.c, dbus/dbus-server.h: public object
10814 representing a server that listens for connections.
10816 * dbus/.cvsignore: create
10818 * dbus/dbus-errors.h, dbus/dbus-errors.c:
10819 public API for reporting errors
10821 * dbus/dbus-connection.h, dbus/dbus-connection.c:
10822 public object representing a connection that
10823 sends/receives messages. (Same object used for
10824 both client and server.)
10826 * dbus/dbus-transport.h, dbus/dbus-transport.c:
10827 Basic abstraction for different kinds of stream
10828 that we might read/write messages from.
10830 2002-11-23 Havoc Pennington <hp@pobox.com>
10832 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
10835 * dbus/dbus-test.c (main): add list test, and include
10836 dbus-test.h as intended
10838 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
10839 (_dbus_hash_table_remove_int): return value indicates
10840 whether the entry existed to remove
10842 * dbus/dbus-list.c: add linked list utility class,
10843 with docs and tests
10845 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
10848 2002-11-23 Havoc Pennington <hp@pobox.com>
10850 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
10851 DBUS_END_DECLS to nothing, that should fix this once and for all
10853 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
10855 * dbus/dbus-message.c, dbus/dbus-hash.c:
10856 add some missing @brief
10858 2002-11-23 Havoc Pennington <hp@pobox.com>
10860 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
10861 to avoid confusing Doxygen
10863 * dbus/dbus-hash.c: @} not }@
10865 * dbus/dbus-message.c (struct DBusMessage): split out
10868 2002-11-23 Havoc Pennington <hp@pobox.com>
10870 * configure.in: pile on more warning flags if using gcc
10872 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
10873 to document static functions
10875 * configure.in: add summary to end of configure so it
10876 looks nice and attractive
10878 * dbus/dbus-hash.c: finish implementation and write unit
10881 * configure.in: add --enable-tests to enable unit tests
10883 * dbus/dbus-test.c: test program to run unit tests
10884 for all files in dbus/*, initially runs a test for
10887 * dbus/dbus-internals.h: file to hold some internal utility stuff
10889 2002-11-22 Havoc Pennington <hp@redhat.com>
10891 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
10892 "ported" away from Tcl
10894 * dbus/dbus-types.h: header for types such as dbus_bool_t
10896 2002-11-22 Havoc Pennington <hp@redhat.com>
10898 * dbus/dbus.h: fixups for doc warnings
10900 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
10902 (QUIET): make it quiet so we can see warnings
10904 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
10906 2002-11-22 Havoc Pennington <hp@redhat.com>
10908 * Makefile.am: include "Doxyfile" target in all-local
10910 * configure.in: generate the Doxyfile
10912 * Doxyfile.in: move Doxyfile here, so we can use
10913 configure to generate a Doxyfile with the right
10914 version number etc.
10916 2002-11-22 Havoc Pennington <hp@redhat.com>
10918 * dbus/dbus-message.c: move inline docs into .c file
10920 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
10921 so all docs are under doc/
10922 (MAN_EXTENSION): generate man pages. Use extension
10923 ".3dbus" which matches ".3qt" on my system,
10924 I guess this is OK, I don't know really.
10925 (FILE_PATTERNS): look for .c files not .h, makes sense
10926 for plain C I think
10928 2002-11-22 Havoc Pennington <hp@pobox.com>
10930 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
10931 because any app can be a server, and any app can be a client,
10932 the bus is a special kind of server.
10934 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
10936 * Doxyfile : adding. Still needs Makefile rules to be generated
10937 automatically (just run "doxygen" in the toplevel dir for now to
10940 * dbus/dbus-message.h : Adding sample docs (javadoc since
10941 resembles gtk-doc a little more)
10943 * dbus/dbus.h : Adding sample docs
10945 2002-11-21 Havoc Pennington <hp@redhat.com>
10947 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
10948 so we can allow ourselves to include files directly,
10949 instead of having to use dbus.h
10951 * dbus/dbus.h: fill in
10953 * dbus/dbus-message.h: sketch out a sample header file.
10954 Include griping if you include it directly instead of
10957 * dbus/dbus-macros.h: new file with macros for extern "C",
10958 TRUE/FALSE, NULL, etc.
10960 * doc/file-boilerplate.c: put include guards in here
10962 2002-11-21 Havoc Pennington <hp@redhat.com>
10964 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
10966 * COPYING: include the GPL as well, and license code
10967 under both AFL and GPL.
10969 2002-11-21 Havoc Pennington <hp@redhat.com>
10971 * acconfig.h: get rid of this
10973 * autogen.sh (run_configure): add --no-configure option
10975 * configure.in: remove AC_ARG_PROGRAM to make
10976 autoconf complain less. add AC_PREREQ.
10977 add AC_DEFINE third arg.
10979 2002-11-21 Anders Carlsson <andersca@codefactory.se>
10982 Fix references so we can distcheck.
10984 2002-11-21 Havoc Pennington <hp@redhat.com>
10986 * Initial module creation