1 2005-08-01 Colin Walters <walters@verbum.org>
3 Patch from Joe Markus Clarke:
5 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
8 2005-08-01 Colin Walters <walters@verbum.org>
10 Patch from Joe Markus Clarke:
12 * tools/dbus-send.c (main):
14 Don't use C99 style initializers (bug #3933).
16 2005-08-01 Colin Walters <walters@verbum.org>
18 Patch from Joe Markus Clarke:
20 * glib/dbus-gvalue.c (dbus_g_value_types_init):
21 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
22 * glib/dbus-gobject.c (write_interface):
24 Don't use C99 style initializers (bug #3933).
26 2005-07-31 Havoc Pennington <hp@redhat.com>
28 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
29 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
31 2005-07-30 Havoc Pennington <hp@redhat.com>
33 * fix a bunch of Doxygen warnings and mistakes
35 2005-07-30 Havoc Pennington <hp@redhat.com>
37 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
38 DBUS_BUILD_TESTS since it's now used in production code
40 2005-07-29 Havoc Pennington <hp@redhat.com>
42 * test/glib/test-profile.c (write_junk): initialize the junk
43 buffer so valgrind doesn't have a breakdown
45 2005-07-29 Havoc Pennington <hp@redhat.com>
47 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
48 (match_rule_matches): remove unused arg
49 (test_matching): add tests for match_rule_matches()
51 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
52 do arg0='foo' arg5='bar' in the match rules
53 (match_rule_matches): don't match if the arg0='foo' doesn't match.
55 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
57 2005-07-29 Ross Burton <ross@openedhand.com>
59 * dbus/dbus-connection.c:
60 Don't create a DBusCondVar which is never used.
62 2005-07-27 Ross Burton <ross@openedhand.com>
64 * dbus/dbus-message.c:
65 Reduce the size of the maximum cached message to 10K.
67 2005-07-25 Ross Burton <ross@openedhand.com>
70 Remove matches when all proxies are unregistered.
72 2005-07-24 Colin Walters <walters@verbum.org>
74 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
75 typedata; recursive arrays won't have it.
77 * test/glib/test-dbus-glib.c:
78 * test/glib/test-service-glib.c:
79 * test/glib/test-service-glib.xml: Add recursive arrays tests.
81 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
83 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
84 proxies.py, service.py: Cleanup of code after running it through the
85 pyflakes code checker mostly dealing with undefined names.
86 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
88 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
90 * NEWS: Update to 0.35.2
92 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
94 * python/_dbus.py: Remove import of the dbus.services
95 module as it no longer exists (patch from Dimitur Kirov)
97 * python/service.py (Object::__init__): Fixed typo
98 s/name/bus_name (patch from Dimitur Kirov)
100 * python/examples/example-signal-emitter.py: import dbus.glib
101 to get the main loop and use glib mainloop instead of gtk so
102 X doesn't have to be running.
104 * python/examples/example-signal-recipient.py: import dbus.glib
105 to get the main loop and use glib mainloop instead of gtk so
106 X doesn't have to be running. Import the decorators module
109 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
110 didn't pick up on but are needed to build
112 * configure.in: upped version to 0.35.2
114 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
115 added Colin Walters' SELinux API rename patch from head
116 s/unix sercurity context/selinux security context/
118 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
120 * python/Makefile.am: dbus_binding.pxd.in should be included
121 in EXTRA_DIST not dbus_binding.pxd
122 fix up $(srcdir) hopefully for the last time
124 * NEWS: Update to 0.35.1
126 2005-07-16 Colin Walters <walters@verbum.org>
128 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
129 from bus_driver_handle_get_connection_unix_security_context. Update for
131 (message_handlers): Update for renames.
133 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
134 _dbus_string_init failure correctly.
135 (bus_selinux_append_context): Convert SID to context. Append it
137 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
140 * bus/selinux.h: Update prototype.
142 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
143 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
145 2005-07-15 Colin Walters <walters@verbum.org>
147 * doc/TODO: Add note about convenience wrappers.
149 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
151 * NEWS: Update to 0.35
153 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
155 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
156 so distcheck doesn't fail
158 * glib/examples/Makefile.am: Add example-service.xml and
159 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
161 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
162 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
164 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
165 compiler looks in the right places during distcheck
167 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
169 * glib/example/Makefile.am: Fix a typo which cause make distcheck
172 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
174 * python/examples/example-service.py,
175 python/examples/example-signal-emitter.py: Fixed up examples
178 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
180 * python/__init__.py: Upped to version (0,42,0) because of
183 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
185 * ChangeLog: fix date in last entry
187 * configure.in, bus/system.conf.in: add the ability to configure
188 the system bus user at compiletime with the --with-dbus-user flag
189 (patch from Kristof Vansant)
191 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
193 * bus/dispatch.c, test/test-service.c: Add testcase
194 for sending messages to oneself (TODO item).
196 * python/service.py (class Object): Swap ordering of bus_name
197 and object_path parameters to better support inheritance.
199 * doc/dbus-tutorial.xml: change Python docs to reflect change
200 in parameter ordering and fix the inheritance section.
202 * doc/TODO: remove sending message to oneself TODO item
204 2005-07-15 Ross Burton <ross@openedhand.com>
206 * glib/dbus-gproxy.c:
207 Fix a leak when calling methods via the proxy.
209 2005-07-15 Colin Walters <walters@verbum.org>
211 * bus/selinux.c (bus_selinux_append_context): Wrap in
214 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
216 * python/_dbus.py (Bus::remove_signal_receiver):
217 don't add a callback to the match if none has been passed in
219 * python/matchrules.py (SignalMatchTree::remove): if the rule
220 being matched does not have a callback treat it as a wildcard
223 * doc/dbus-tutorial.xml: Add Python tutorial
225 2005-07-14 Colin Walters <walters@verbum.org>
228 (bus_driver_handle_get_connection_unix_security_context): New function.
229 (message_handlers): Add.
231 * bus/selinux.c (bus_selinux_append_context): New function; appends
232 security context to message.
234 * bus/selinux.h: Prototype.
236 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
238 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
240 * bus/activation.c: clean up all tabs to be 8 spaces
241 (bus_activation_activate_service): make sure we clean up
244 * bus/dispatch.c: clean up all tabs to be 8 spaces
245 (check_shell_fail_service_auto_start): New function
246 tests to make sure we get fail properly when trying to auto start a service
247 with a faulty command line
248 (check_shell_service_success_auto_start): New function tests to make sure
249 auto started services get the arguments on the command line
251 * test/test-shell-service.c: Added service for testing auto-starting with
252 command line arguments
254 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
255 test/data/valid-service-files/debug-shell-echo-success.service.in:
256 Added service files for testing auto-starting with command line arguments
258 * */.cvsignore: added a bunch of generated files to various .cvsignore files
260 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
262 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
264 * dbus/Makefile.am: added new files to build.
266 * bus/activation.c (bus_activation_activate_service): support
267 activation commands with parameters.
269 * test/shell-test.c: added test program for the shell parsing
272 2005-07-13 David Zeuthen <davidz@redhat.com>
274 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
275 64 bit signed and unsigned parameters
277 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
279 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
281 * python/service.py (class Name): renamed BusName to make it clearer
282 what the object is for (a name on the bus)
284 * python/examples/example-service.py,
285 python/examples/example-signal-emitter.py: change the Name object to
288 2005-07-12 Colin Walters <walters@verbum.org>
290 Patch from Jim Gettys <Jim.Gettys@hp.com>.
292 * tools/dbus-launch.c: Include sys/select.h.
294 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
295 * python/dbus_bindings.pyx.in: removed
297 * python/dbus_bindings.pyx: Added.
298 - Fixed some memleaks (patch from
299 Sean Meiners <sean.meiners@linspireinc.com>)
300 - Broke out the #include "dbus_h_wrapper.h" and put it in its
301 own pxd file (Pyrex definition)
302 - Broke out glib dependancies into its own pyx module
304 * python/dbus_bindings.pdx: Added.
305 - Defines C class Connection for exporting to other modules
307 * python/dbus_glib_bindings.pyx: Added.
308 - New module to handle lowlevel dbus-glib mainloop integration
310 * python/glib.py: Added.
311 - Registers the glib mainloop when you import this module
313 * python/services.py: Removed (renamed to service.py)
315 * python/service.py: Added.
316 - (class Server): renamed Name
318 * python/__init__.py: Bump ro version (0,41,0)
319 -don't import the decorators or service module
320 by default. These now reside in the dbus.service namespace
322 * python/_dbus.py (Bus::__init__): Add code run the main loop
323 setup function on creation
325 * python/examples/example-service.py,
326 python/examples/example-signal-emitter.py: update examples
328 * python/examples/gconf-proxy-service.py,
329 python/examples/gconf-proxy-service2.py: TODO fix these up
332 - Added a Python Bindings 1.0 section
333 - added "Add match on args or match on details to match rules"
336 2005-07-12 Colin Walters <walters@verbum.org>
338 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
339 (statemachine-glue.h):
340 * glib/examples/Makefile.am (example-service-glue.h)
341 (example-signal-emitter-glue.h):
342 * glib/Makefile.am (dbus-glib-error-switch.h):
343 Add libtool --mode=execute so we use the built library instead
344 of any installed one.
346 2005-07-11 Colin Walters <walters@verbum.org>
348 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
349 (dbus_g_value_types_init): Remove assertion.
350 (dbus_g_value_get_g_type, dbus_g_value_open)
351 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
352 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
353 functions related to DBusGValue. Now we marshal/demarshal
354 structures as GValueArray.
355 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
357 (signature_iter_to_g_type_array): Don't call
358 signature_iter_to_g_type_struct.
359 (signature_iter_to_g_type_struct): Delete.
360 (dbus_gvalue_to_signature): Delete.
361 (dbus_gvalue_to_signature): New function with same name as other
362 one; we can convert structures to signatures.
363 (demarshal_valuearray): New function.
364 (get_type_demarshaller): Use it.
365 (demarshal_recurse): Delete.
366 (marshal_proxy): New function.
367 (marshal_map): Warn if we can't determine signature from type.
368 (marshal_collection_ptrarray): Ditto.
369 (marshal_collection_array): Ditto.
370 (get_type_marshaller): Use marshal_valuearray.
371 (marshal_recurse): Delete.
372 (_dbus_gvalue_test): Add some tests.
374 * dbus/dbus-glib.h (struct _DBusGValueIterator):
375 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
376 (dbus_g_value_open, dbus_g_value_iterator_get_value)
377 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
378 (dbus_g_value_free): Remove prototypes.
380 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
383 * glib/examples/example-service.c:
384 * glib/examples/example-client.c: Implement GetTuple.
386 * test/glib/test-dbus-glib.c:
387 * test/glib/test-service-glib.c:
388 * test/glib/test-service-glib.xml: Add structure tests.
390 2005-07-10 Colin Walters <walters@verbum.org>
392 * doc/TODO: Knock off some GLib items with this patch.
394 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
395 (_dbus_gvalue_signals_error): New functions.
397 * glib/dbus-gvalue-utils.h: Prototype them.
399 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
400 and change to not output const/retval flags for input args. All
402 (invoke_object_method): Refactor to handle return values. Add
403 some more comments in various places. Remove debug g_print.
405 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
407 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
409 (compute_gsignature): New function; refactored from code from
410 compute_marshaller and compute_marshaller_name. Enhance to
411 handle return values and async ops more cleanly. Update for
412 async ops returning NONE instead of BOOLEAN.
413 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
414 and output appropriate string.
415 (generate_glue): Handle return value annotation. Also don't dump
416 constness flag for input arguments.
418 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
419 files shared between installed library and utilities.
420 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
421 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
422 binding tool can access gtype utility functions.
424 * test/glib/test-service-glib.c:
425 * test/glib/test-service-glib.xml:
426 * test/glib/test-dbus-glib.c: Add some tests for return values.
428 2005-07-09 Colin Walters <walters@verbum.org>
430 * glib/dbus-gparser.c (parse_annotation): Add annotations to
431 argument if available, not method.
433 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
434 (invoke_object_method): First, remove some redundant
435 GValues (object_value, error_value) in favor of working on
436 array directly. Second, rework constness to be less buggy.
437 Now we iterate directly over the argument metadata instead
438 of parallel iterating over output signature and metadata.
440 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
442 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
443 annotation on input args.
445 2005-07-09 Colin Walters <walters@verbum.org>
447 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
450 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
453 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
454 (method_dir_signature_from_object_info): Handle arg_iterate change.
455 (write_interface): Ditto.
456 (lookup_object_info): Don't barf if format_version is > 0.
457 (invoke_object_method): Handle arg constness.
459 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
460 (arg_info_new): Create.
461 (arg_info_unref): Destroy.
462 (arg_info_get_annotations, arg_info_get_annotation)
463 (arg_info_add_annotation): New functions.
465 * glib/dbus-gidl.h: Prototype them.
467 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
468 args, disallow them in properties.
469 (parse_annotation): Handle arg annotations.
471 * test/glib/test-service-glib.xml:
472 * test/glib/test-service-glib.c: Update to make some methods
475 2005-07-08 Colin Walters <walters@verbum.org>
477 * test/glib/test-service-glib.xml:
478 * test/glib/test-service-glib.c:
479 * test/glib/test-dbus-glib.c: Test a{sv}.
481 * glib/examples/statemachine/statemachine.c:
482 * glib/examples/statemachine/statemachine-server.c:
483 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
484 add progress bar, etc.
486 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
487 needed anymore due to generic array/map marshalling.
488 (dbus_g_value_types_init): Don't register basic arrays or the
490 (dbus_gtype_from_signature_iter): Don't try to recurse into
492 (dbus_gtype_to_signature): Check collection/map before type
494 (demarshal_garray_basic): Renamed to demarshal_collection_array.
495 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
496 generic map creation/append functions instead of hash table
498 (get_type_demarshaller): Handle maps.
499 (demarshal_collection): Dispatch on collection type to either
500 demarshal_collection_ptrarray or demarshal_collection_array.
501 (get_type_marshaller): Handle maps.
502 (marshal_collection): Dispatch collection type to either
503 marshal_collection_ptrarray or marshal_collection_array.
504 (_dbus_gvalue_test): New test.
506 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
507 (hash_free_from_gtype): Use it to free GValues.
508 (hashtable_append): New function.
509 (ptrarray_append): Fix prototype.
510 (slist_append): Ditto.
511 (_dbus_gvalue_utils_test): Extend tests.
513 * glib/dbus-gtype-specialized.c
514 (dbus_g_type_specialized_init_append): Renamed from
515 dbus_g_type_specialized_collection_init_append. Remove const from
516 value, since we steal it.
517 (dbus_g_type_specialized_map_append): New function.
519 * glib/dbus-gtype-specialized.h: Update prototypes.
520 Add DBusGTypeSpecializedMapAppendFunc.
522 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
525 * glib/dbus-gtest.h: Prototype it.
527 2005-07-08 Ross Burton <ross@openedhand.com>
530 Add DBysGAsyncData for the async bindings.
532 * glib/dbus-binding-tool-glib.c:
533 Re-enable the async bindings.
535 * test/glib/test-dbus-glib.c:
536 Add a test for the generated async bindings.
538 2005-07-08 Colin Walters <walters@verbum.org>
540 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
543 2005-07-08 Colin Walters <walters@verbum.org>
545 * tools/Makefile.am: Kill of print-introspect in favor of using
546 dbus-send --print-reply=literal.
548 * test/glib/test-service-glib.xml:
549 * test/glib/test-service-glib.c (my_object_get_objs): New test
552 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
553 (main): Test GetObjs.
555 * glib/examples/statemachine/Makefile.am:
556 * glib/examples/statemachine/sm-marshal.list:
557 * glib/examples/statemachine/statemachine-client.c:
558 * glib/examples/statemachine/statemachine-server.c:
559 * glib/examples/statemachine/statemachine-server.xml:
560 * glib/examples/statemachine/statemachine.c:
561 * glib/examples/statemachine/statemachine.h:
562 * glib/examples/statemachine/statemachine.xml:
566 * glib/examples/example-service.c (main): Move invocation
567 of dbus_g_object_type_install_info earlier, to emphasize it
568 should only be done once.
570 * glib/examples/example-signal-emitter.c (main): Ditto.
572 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
574 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
575 (dbus_gvalue_marshal): Update prototypes.
577 * glib/dbus-gvalue.c: Update all marshalling functions to take
578 const GValue instead of GValue.
579 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
581 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
583 (dbus_gtype_to_signature): Handle generic collecitons and maps.
584 Return a newly-allocated string.
585 (demarshal_proxy, demarshal_object_path, demarshal_object)
586 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
587 we get the wrong types from message.
588 (get_type_demarshaller): New function, extracted from
589 dbus_gvalue_demarshal.
590 (demarshal_collection): New function, demarshals generic
592 (dbus_gvalue_demarshal): Just invoke result of
593 get_type_demarshaller. Throw error if we don't have one.
594 (marshal_garray_basic): Abort on OOM.
595 (get_type_marshaller): New function, extracted from
597 (collection_marshal_iterator, marshal_collection): New functions;
598 implements generic marshalling for an iteratable specialized
600 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
602 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
604 (ptrarray_value_from_gvalue): Ditto.
605 (ptrarray_append, ptrarray_free): New functions.
606 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
607 (slist_append, slist_end_append, slist_free): New functions.
608 (dbus_g_type_specialized_builtins_init): Add append fuctions
609 for GPtrArray and GSList. Register GSList.
610 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
612 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
614 (dbus_g_type_specialized_collection_init_append)
615 (dbus_g_type_specialized_collection_append)
616 (dbus_g_type_specialized_collection_end_append): Prototype.
617 (DBusGTypeSpecializedCollectionVtable): Add append_func and
620 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
621 (dbus_g_type_specialized_collection_append)
622 (dbus_g_type_specialized_collection_end_append): New functions.
623 (dbus_g_type_map_value_iterate): Take const GValue.
624 (dbus_g_type_collection_value_iterate): Ditto.
626 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
627 _dbus_gvalue_utils_test.
629 * glib/dbus-gtest.h: Prototype it.
631 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
632 using uninitialized owner_list.
633 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
635 (dbus_g_proxy_end_call_internal): Update to use error set
636 from dbus_gvalue_demarshal instead of setting it here.
637 (dbus_g_proxy_begin_call): Move return_if_fail here.
639 * glib/dbus-gobject.c (write_interface): Update for
640 dbus_gtype_to_signature returning new string.
642 * configure.in: Add glib/examples/statemachine.
644 2005-07-08 Joe Shaw <joeshaw@novell.com>
646 * configure.in: Add a configure option, --with-console-auth-dir
648 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
649 new setting. Patch from Kay Sievers.
651 2005-07-06 Colin Walters <walters@verbum.org>
653 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
654 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
655 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
656 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
657 Delete in favor of dbus_g_proxy_begin_call and
658 dbus_g_proxy_cancel_call.
659 (DBusGProxyCall, DBusGProxyCallNotify): New.
660 (dbus_g_proxy_begin_call): Change prototype to take callback, user
661 data, and destroy function. This replaces
662 dbus_g_pending_call_set_notify.
663 (dbus_g_proxy_cancel_call): Prototype.
664 (DBusGAsyncData): Delete, shouldn't be needed anymore.
666 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
668 (struct _DBusGProxyManager): Add bus_proxy member, which is an
669 internal proxy for calls to the bus. Remove
670 pending_nameowner_calls, now the internal proxy keeps track.
671 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
672 pending_nameowner_calls.
673 (got_name_owner_cb): Update prototype, and use
674 dbus_g_proxy_end_call.
675 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
676 (dbus_g_proxy_manager_register): Delete directly libdbus code in
677 favor of using internal proxy.
678 (dbus_g_proxy_manager_unregister): Update to use
679 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
680 (dbus_g_proxy_init): Initialize pending calls map.
681 (dbus_g_proxy_constructor): New.
682 (dbus_g_proxy_class_init): Add get/set property functions,
683 constructor, and add NAME, PATH, and INTERFACE properties.
684 (cancel_pending_call): New function.
685 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
687 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
688 (GPendingNotifyClosure): New structure.
689 (d_pending_call_notify, d_pending_call_free): Moved here from
691 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
693 (manager_begin_bus_call): New internal function for talking to
695 (dbus_g_proxy_new): Construct object using GObjet properties.
696 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
697 Create closure of same, and insert call into map of pending calls.
698 (dbus_g_proxy_end_call_internal): Take call id instead of pending
699 call. Look up pending call in current set. Remove it when we've
701 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
702 (dbus_g_proxy_begin_call): Change API to take callback, user data,
703 and destroy function directly.
704 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
705 (dbus_g_proxy_call): Invoke with NULL callback.
706 (dbus_g_proxy_cancel_call): New function, replaces
707 dbus_g_pending_call_cancel.
709 * glib/dbus-gparser.c (validate_signature): Fix call to
712 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
713 New quark for attaching metadata to GType.
715 (lookup_object_info): Look up using quark.
716 (dbus_g_object_type_install_info): Check that a type is classed,
717 not that it's an object. Also just install type data using quark
718 instead of using global hash.
720 * glib/dbus-glib.c (dbus_g_pending_call_ref)
721 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
722 (GPendingNotifyClosure): Delete.
723 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
724 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
726 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
727 client method generation until we can fix it...
729 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
730 (load_from_service_thread_func): Ditto.
732 * tools/dbus-names-model.c (struct NamesModel): Hold
734 (have_names_notify): Update prototype, use
735 dbus_g_proxy_cancel_call.
736 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
738 * tools/dbus-monitor.c (filter_func): Update for print_message
741 * test/glib/test-dbus-glib.c: Add more tests for async
742 invocations. Update many begin_call/end_call pairs to just use
745 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
746 allows us to dump print-introspect.c.
748 * tools/dbus-print-message.h (print_message): Add literal argument
749 to print_message which is intended to allow printing arguments without
750 metadata like "string=".
752 * tools/dbus-print-message.c (print_iter): Add literal argument.
753 (print_message): Allow printing string messages literally.
755 2005-07-05 Colin Walters <walters@verbum.org>
757 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
758 Remove value refcount leak, original patch from Jorn Baayen
759 <jorn@openedhand.com>. Also remove useless extra value in favor
760 of prepending to value array directly.
762 2005-07-02 Colin Walters <walters@verbum.org>
764 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
766 2005-07-01 Colin Walters <walters@verbum.org>
768 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
770 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
771 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
772 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
773 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
775 2005-06-30 Colin Walters <walters@verbum.org>
777 * test/glib/test-dbus-glib.c:
778 * test/glib/test-service-glib.c:
779 * test/glib/test-service-glib.xml: Update tests for new error
780 setting bits, also add async tests (patch from Ross Burton).
782 * test/glib/Makefile.am (test_service_glib_LDADD): Add
783 DBUS_GLIB_THREADS_LIBS.
785 * glib/dbus-gproxy.c (get_name_owner)
786 (dbus_g_pending_call_end_valist): Ditto.
788 * glib/dbus-gobject.c (error_metadata): New mapping from GError
789 domain (GQuark) to DBusGErrorInfo.
790 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
791 quark in error_metadata. Take message interface as default
792 error message interface.
793 (gerror_to_dbus_error_message): Pass message interface.
794 (dbus_set_g_error): Resurrected.
795 (dbus_g_error_info_free): New function.
796 (dbus_g_object_type_install_info): Use g_type_class_ref instead
797 of _peek to actually create the object class if it hasn't been
799 (dbus_g_error_domain_register): New function.
801 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
803 * glib/dbus-gparser.c (validate_signature): Ditto.
805 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
806 (dbus_g_error_domain_register): Prototype.
808 * glib/dbus-glib.c (dbus_g_error_set): Delete.
811 2005-06-29 Colin Walters <walters@verbum.org>
813 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
814 DBUS_TYPE_G_OBJECT_PATH.
816 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
817 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
818 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
819 (dbus_g_object_path_get_g_type): New function.
820 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
821 to DBUS_TYPE_G_OBJECT_PATH by default.
822 (demarshal_proxy): Remove unused name variable.
823 (demarshal_object_path, marshal_object_path): New functions.
824 (demarshal_proxy_array, marshal_proxy_array): Delete.
826 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
827 DBUS_TYPE_G_OBJECT_PATH to char *.
828 (dbus_g_type_get_lookup_function): Map builtin
829 DBUS_TYPE_G_OBJECT_PATH.
831 * test/glib/test-dbus-glib.c
832 * test/glib/test-service-glib.c (my_object_objpath):
833 Adapt tests to new object path marshalling.
835 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
837 * configure.in: force check for Python >= 2.4
839 2005-06-29 Colin Walters <walters@verbum.org>
841 Patch from Ross Burton <ross@openedhand.com>
843 * glib/dbus-gobject.c (invoke_object_method): Unset object
844 value in all cases, not only in async case.
846 2005-06-29 Colin Walters <walters@verbum.org>
848 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
849 name_call for keeping track of any outgoing GetNameOwner call.
850 Also add for_owner and associated.
851 (struct _DBusGProxyManager): Add owner_names, which is hash table
852 that maps a base name to a list of names it owns (that we're
853 interested in). Add pending_nameowner_calls which is a list of
854 all outstanding GetNameOwner; avoids us having to iterate over
855 every proxy. Add unassociated_proxies which keeps track of name
856 proxies with no associated name owner.
857 (dbus_g_proxy_manager_unref): Destroy owner_names.
858 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
860 (find_name_in_info, name_owner_foreach)
861 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
862 (dbus_g_proxy_manager_monitor_name_owner)
863 (dbus_g_proxy_manager_unmonitor_name_owner)
864 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
865 New functions; they manipulate the owner_names mapping.
866 (got_name_owner_cb): New function.
867 (get_name_owner): New function, extracted from
868 dbus_g_proxy_new_for_name_owner.
869 (dbus_g_proxy_manager_register): For now we need to keep track of
870 all NameOwnerChanged. Also if the proxy is for a name, if we
871 don't already know the name owner, queue a new GetNameOwner
872 request and add it to our list of unassociated proxies. Otherwise
874 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
875 cancel any pending GetNameOwner call, etc.
876 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
877 the owner_names mapping to look up the current names for the
878 signal source, and dispatch to any proxies for that name.
879 (dbus_g_proxy_new): Initialize new members.
880 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
881 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
882 (dbus_g_pending_call_end_valist): New function, extracted from
883 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
884 but want to use the GLib infrastructure. Also note how many
885 arguments in reply were over.
886 (dbus_g_pending_call_end): New function, just call
887 dbus_g_pending_call_end_valist.
888 (dbus_g_proxy_end_call_internal): Just call
889 dbus_g_pending_call_end_valist.
891 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
892 of builtin marshaller for STRING_STRING_STRING.
894 * test/glib/test-dbus-glib.c:
895 * test/glib/test-service-glib.c:
896 * test/glib/test-service-glib.xml:
897 Extend tests to cover name proxies, destruction of owner proxies,
900 * glib/examples/example-signal-recipient.c
901 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
903 * tools/dbus-send.c (main): Print D-BUS error name in addition
906 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
908 * python/dbus_bindings.pyx.in (cunregister_function_handler,
909 cmessage_function_handler): Patch from
910 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
911 by using the Py_GILState_Ensure/Release to synchronize with the
914 2005-06-28 Ray Strode <rstrode@redhat.com>
916 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
917 babysitter helper process on last unref, bug #2813.
919 2005-06-27 Colin Walters <walters@verbum.org>
921 * test/glib/test-dbus-glib.c:
922 * test/glib/test-service-glib.c:
923 * test/glib/test-service-glib.xml:
924 Test hash table signal emitting.
926 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
927 types to their fundamental basis types, since this is what
928 marshallers operate on. Also add an entry for VOID__BOXED.
929 (dbus_g_object_register_marshaller_array): Convert to fundamental.
931 2005-06-26 Havoc Pennington <hp@redhat.com>
933 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
936 2005-06-26 Colin Walters <walters@verbum.org>
938 * glib/dbus-glib.c (dbus_set_g_error): Delete.
939 (dbus_g_error_set): New public function from its ashes; used by
940 both service-side method implementation and GLib bindings
942 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
943 (_dbus_glib_test): Add some tests.
945 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
947 * test/glib/test-service-glib.c (my_object_throw_error): Use
950 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
951 errors thrown by dbus_g_error_set.
953 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
955 * glib/dbus-gparser.c (validate_signature): Ditto.
957 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
958 (dbus_g_proxy_end_call_internal): Ditto.
960 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
961 converts DBUS_ERROR_x to DBUS_GERROR_x.
962 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
964 * doc/TODO: Remove error TODO.
966 * doc/dbus-tutorial.xml: Update with documentation about error
969 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
970 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
971 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
973 2005-06-22 Colin Walters <walters@verbum.org>
975 Patch from Ross Burton <ross@openedhand.com>
977 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
979 2005-06-20 Colin Walters <walters@verbum.org>
981 * configure.in: Add glib/examples.
983 * glib/Makefile.am: Add examples/
985 * glib/examples/.cvsignore
986 * glib/examples/Makefile.am
987 * glib/examples/example-client.c
988 * glib/examples/example-service.c
989 * glib/examples/example-service.xml
990 * glib/examples/example-signal-emitter.c
991 * glib/examples/example-signal-emitter.xml
992 * glib/examples/example-signal-recipient.c:
993 New files; GLib binding examples, ported from
996 2005-06-20 Colin Walters <walters@verbum.org>
999 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1002 * glib/dbus-binding-tool-glib.c:
1003 * doc/dbus-tutorial.xml:
1004 * test/glib/test-dbus-glib.c: Update for rename.
1006 2005-06-20 Colin Walters <walters@verbum.org>
1008 Patch suggested by Ross Burton <ross@openedhand.com>
1010 * glib/dbus-gobject.c (export_signals): Free signal name.
1011 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1012 memory leak. Add a bit of documentation.
1013 (dbus_g_method_return_error): Free context, and note we do
1016 2005-06-18 Murray Cumming <murrayc@murrayc.com>
1019 * glib/dbus-gobject.c:
1020 * glib/dbus-gproxy.c:
1021 * glib/dbus-gvalue.c: Predeclare structs as
1022 typedef struct _Something Something instead of
1023 typedef struct Something Something, so we can
1024 redeclare the prototypes. Other GNOME libraries
1027 2005-06-17 Colin Walters <walters@verbum.org>
1029 * tools/dbus-names-model.c (have_names_notify): Fix call
1030 to dbus_g_proxy_end_call.
1032 2005-06-17 Colin Walters <walters@verbum.org>
1034 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1035 spew warnings if we get malformed remote signals.
1037 * glib/dbus-gobject.c (propsig_iterate): New function.
1038 (lookup_object_info): New function, extracted from
1039 lookup_object_and_method.
1040 (introspect_properties, introspect_signals): Delete; these
1041 are merged into write_interface.
1042 (write_interface): Write out signals and properties here;
1043 dump the org.gtk.object stuff and use the interface given
1044 in the introspection data blob. Also fix up property XML.
1045 (lookup_values): New function.
1046 (introspect_interfaces): Gather a mapping from interface to a
1047 list of its methods, signals, and properties, then write out
1049 (lookup_object_and_method): Use lookup_object_info.
1050 (struct DBusGSignalClosure): Add interface.
1051 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1052 we can just use the constant data.
1053 (dbus_g_signal_closure_finalize): Don't free signal name.
1054 (signal_emitter_marshaller): Use interface from signal closure.
1055 (export_signals): Only export signals mentioned in introspection
1057 (dbus_g_connection_register_g_object): Warn if we have no
1058 introspection data for an object.
1059 (funcsig_equal): Remove unused variable.
1060 (dbus_g_object_register_marshaller): Take varargs instead of
1062 (dbus_g_object_register_marshaller_array): New function,
1063 extracted from old dbus_g_object_register_marshaller.
1065 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1066 signals and property data.
1067 (write_quoted_string): New function, extracted from generate_glue.
1068 (generate_glue): Write signals and properties to introspection
1071 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1072 exported_signals and exported_properties.
1073 (dbus_g_object_register_marshaller): Update prototype.
1074 (dbus_g_object_register_marshaller_array): Prototype.
1076 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1078 * test/glib/test-service-glib.c: Add new test signals and method
1081 * test/glib/test-service-glib.xml: Add some test signals.
1083 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1084 and my-object-marshal.h
1085 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1086 my-object-marshal.c.
1087 (my-object-marshal.c, my-object-marshal.h): Implement.
1089 * test/glib/.cvsignore: Update.
1091 * doc/TODO: Remove two GLib TODO items fixed by this
1094 2005-06-16 Colin Walters <walters@verbum.org>
1096 * doc/TODO: Update for GLib bindings.
1098 2005-06-16 Colin Walters <walters@verbum.org>
1100 * glib/dbus-binding-tool-glib.c:
1101 * glib/dbus-gobject.c:
1102 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1103 from Ross Burton, for his GLib bindings work.
1105 2005-06-16 Colin Walters <walters@verbum.org>
1107 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1108 to iterate instead of walking to G_TYPE_INVALID.
1110 Patch based on a patch from Ryan Gammon.
1112 2005-06-16 Colin Walters <walters@verbum.org>
1114 * bus/bus.c (bus_context_new): Set parser to NULL
1115 after we unref it (Patch from Chris Boscolo, #2174).
1117 2005-06-16 Colin Walters <walters@verbum.org>
1119 * python/dbus_bindings.pyx.in: Import size_t,
1120 __int64_t, __uint64_t, and __signed.
1122 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1123 Define cmsg struct, output it.
1124 (_dbus_read_credentials_unix_socket):
1127 Patch from Joe Markus Clarke for FreeBSD support.
1129 2005-06-16 Colin Walters <walters@verbum.org>
1131 * tools/dbus-send.c (append_array): Use strtok.
1132 (append_dict): New function.
1133 (type_from_name): New function, extracted from main.
1134 (main): Handle sending dicts.
1136 * tools/dbus-print-message.c (print_iter): Print dict
1139 2005-06-16 Colin Walters <walters@verbum.org>
1141 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1142 values as the empty string (#2948).
1144 2005-06-16 Colin Walters <walters@verbum.org>
1147 * mono/doc/Makefile.am:
1148 * test/glib/Makefile.am:
1150 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1152 2005-06-16 Colin Walters <walters@verbum.org>
1154 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1155 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1157 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1158 Increment pointer after swapping fixed array. Add assertion
1161 2005-06-15 Colin Walters <walters@verbum.org>
1163 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1164 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1166 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1168 * NEWS: Update to 0.34
1170 2005-06-15 David Zeuthen <davidz@redhat.com>
1172 * configure.in (LT_CURRENT): Revert back to 1 as the library
1173 hasn't changed and we've certainly not committed to protocol
1174 stability yet. All this does is to break ABI. See commit note
1175 from hp@redhat.com 2005-05-05 for details.
1177 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1179 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1180 (_dbus_connection_run_builtin_filters): New method
1181 (dbus_connection_dispatch): Run the builtin filters which in turn
1182 runs the peer filter which handles Ping messages.
1185 - Ping isn't handled: This patch fixes it
1187 - Add a test case for the Ping message: added TODO item
1189 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1191 * dbus/dbus-message.c:
1192 (dbus_message_has_path): New method
1193 (dbus_message_has_interface): New method
1194 (dbus_message_has_member): New method
1196 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1199 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1200 the keyring directory is private to the user
1203 - The convenience functions in dbus-bus.h should perhaps have
1204 the signatures that they would have if they were autogenerated
1205 stubs. e.g. the acquire service function. We should also evaluate
1206 which of these functions to include, in light of the fact that
1207 GLib/Qt native stubs will probably also exist.: Punted
1209 - add dbus_message_has_path(), maybe has_member/interface:
1212 - in dbus-keyring.c, enforce that the keyring dir is not
1213 world readable/writable: Fixed in this patch
1215 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1217 * dbus/dbus-marshal-validate.h: Added a new validation
1218 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1219 out of memory errors when validating signitures
1221 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1222 in places where we previously used DBUS_VALID and a FALSE return
1223 value to indicate OOM
1225 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1226 Use a stack to track the number of elements inside containers. The
1227 stack values are then used to validate that dict entries have only two
1228 elements within them.
1229 (validate_body_helper): check the reason for failure when validating
1232 * dbus/dbus-message.c (load_message): use
1233 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1234 DBUS_VALID and a FALSE return value to indicate OOM
1236 * doc/TODO: remove "- validate dict entry number of fields" as this
1239 2005-06-14 David Zeuthen <davidz@redhat.com>
1241 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1242 watches (if applicable) and add new watches
1244 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1245 (main): Setup SIGIO signal handler if using D_NOTIFY
1247 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1249 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1250 (merge_included): Also merge conf_dirs list
1251 (bus_config_parser_unref): Clear conf_dirs list
1252 (include_dir): Add directory to conf_dirs list
1253 (bus_config_parser_get_conf_dirs): New function
1255 * bus/dir-watch.[ch]: New files
1257 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1259 * configure.in: Add checks for D_NOTIFY on Linux
1261 2005-06-14 Colin Walters <walters@verbum.org>
1263 * glib/dbus-binding-tool-glib.c:
1264 * glib/dbus-gobject.c:
1265 * glib/dbus-gvalue.c: Fix indentation and brace style.
1267 2005-06-14 Ross Burton <ross@openedhand.com>.
1269 * glib/dbus-glib.h: Make DBusGMethodInvocation
1270 a private structure. Rearrange prototypes a bit.
1272 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1273 documentation for first_arg_type.
1275 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1276 here, add documentation. Move dbus_g_method_return
1277 and dbus_g_method_return_error into public API
1280 2005-06-14 Colin Walters <walters@verbum.org>
1282 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1283 Add missing return statements, noticed by Ross Burton.
1285 2005-06-13 Ross Burton <ross@openedhand.com>.
1287 * glib/dbus-gobject.c: Handle errors on message
1288 demarshalling by sending error message back.
1289 * glib/dbus-gvalue.c: Initialize return variables.
1291 2005-06-13 Colin Walters <walters@verbum.org>
1293 * glib/Makefile.am: Fix thinko in last patch.
1295 2005-06-13 Colin Walters <walters@verbum.org>
1297 * glib/Makefile.am: Move dbus-gtype-specialized.c
1298 and dbus-gtype-specialized.h into a _HEADERS variable,
1301 2005-06-12 Colin Walters <walters@verbum.org>
1303 Async signals and various bugfixes and testing by
1304 Ross Burton <ross@openedhand.com>.
1306 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1307 (dbus_gvalue_genmarshal_name_from_type)
1308 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1309 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1310 (dbus_g_value_types_init, dbus_gtype_from_signature)
1311 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1312 (dbus_gtypes_from_arg_signature): New function prototypes.
1313 (dbus_gvalue_demarshal): Take context and error arguments.
1314 (dbus_gvalue_demarshal_variant): New function.
1315 (dbus_gvalue_demarshal_message): New function.
1316 (dbus_gvalue_store): Delete.
1318 * glib/dbus-gvalue.c:
1320 File has been almost entirely rewritten; now we special-case
1321 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1322 hash tables correctly, etc. Full support for recursive values
1323 is not yet complete.
1325 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1326 argument of signal to G_TYPE_POINTER since we now pass a
1328 (lookup_g_marshaller): Delete in favor of
1329 _dbus_gobject_lookup_marshaller.
1330 (marshal_dbus_message_to_g_marshaller): Use
1331 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1332 to handle remote signal callbacks.
1333 (dbus_g_proxy_new_from_proxy): New function; creates a new
1334 DBusGProxy by copying an existing one.
1335 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1336 (dbus_g_proxy_get_path): New functions.
1337 (dbus_g_proxy_marshal_args_to_message): New function;
1338 factored out of existing code.
1339 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1340 from a varargs array.
1341 (dbus_g_proxy_begin_call_internal): New function.
1342 (dbus_g_proxy_end_call_internal): New function.
1343 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1344 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1345 after collecting args into value array.
1346 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1347 invoke dbus_g_proxy_end_call_internal.
1348 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1350 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1352 (array_free_all): New function.
1353 (dbus_g_proxy_add_signal): Take GTypes.
1355 * glib/dbus-gobject.h:
1356 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1357 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1360 * glib/dbus-gobject.c: Add a global marshal_table hash which
1361 stores mappings from type signatures to marshallers. Change lots
1362 of invocations of dbus_gtype_to_dbus_type to
1363 dbus_gtype_to_signature.
1364 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1365 (introspect_signals): Fix test for query.return_type.
1366 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1367 (invoke_object_method): Many changes. Handle asynchronous
1368 invocations. Convert arguments with
1369 dbus_gvalue_demarshal_message. Handle errors. Use
1370 DBusSignatureIter instead of strlen on args. Handle all arguments
1371 generically. Special-case variants.
1372 (dbus_g_method_return, dbus_g_method_return_error): New function.
1373 (DBusGSignalClosure): New structure, closes over signal
1375 (dbus_g_signal_closure_new): New function.
1376 (dbus_g_signal_closure_finalize): New function.
1377 (signal_emitter_marshaller): New function; is special marshaller
1378 which emits signals on bus.
1379 (export_signals): New function; introspects object signals and
1381 (dbus_g_object_type_install_info): Take GType instead of
1383 (dbus_g_connection_register_g_object): Invoke export_signals.
1384 (dbus_g_connection_lookup_g_object): New function.
1385 (DBusGFuncSignature) New structure; used for mapping type
1386 signatures to marshallers.
1387 (funcsig_hash): New function; hashes DBusGFuncSignature.
1388 (funcsig_equal): New function; compares DBusGFuncSignature.
1389 (_dbus_gobject_lookup_marshaller): New function.
1390 (dbus_g_object_register_marshaller): New function; used to
1391 register a marshaller at runtime for a particular signature.
1393 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1395 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1396 which notes a server method implementation should be
1399 * glib/dbus-binding-tool-glib.c
1400 (dbus_binding_tool_output_glib_server): Call
1401 dbus_g_value_types_init.
1402 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
1404 (dbus_g_type_get_lookup_function): Turn GType into an invocation
1405 of a lookup function.
1406 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1407 (write_untyped_out_args): New method; write output arguments.
1408 (write_formal_declarations_for_direction): Function for
1410 (write_formal_parameters_for_direction): Function for
1411 writing implementations.
1412 (write_typed_args_for_direction): Function for writing
1413 arguments prefixed with GTypes.
1414 (write_async_method_client): Write out async version
1417 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1418 (dbus_g_type_get_marshal_name): Move mapping from GType
1419 to marshal name into here.
1420 (dbus_g_type_get_c_name): Move into here.
1421 (compute_marshaller): Convert signature to type with
1422 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1423 (compute_marshaller_name): Ditto.
1424 (compute_marshaller): Handle async signal annotations.
1425 (gather_marshallers): Return if we don't have a known
1427 (generate_glue): Collect introspection blob here, and
1428 write all of the blob at the end. This allows an object
1429 with multiple interfaces to work.
1430 Mark async methods in introspection blob.
1432 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1433 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1434 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1436 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1437 avoids people accidentally using DBUS_TYPE_* which should
1438 not be necessary anymore.
1439 Do include dbus-gtype-specialized.h, which are utilities
1440 for GLib container types.
1441 Add various #defines for types such as
1442 DBUS_TYPE_G_BOOLEAN_ARRAY.
1443 (DBusGValueIterator, DBusGValue): Define, not fully used
1445 (dbus_g_value_get_g_type): Type for recursive value.
1446 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1447 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1448 (dbus_g_value_free): Prototypes.
1449 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1450 (dbus_g_proxy_set_interface): Prototype.
1451 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1452 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1454 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1456 (DBusGAsyncData, DBusGMethodInvocation): Structures for
1457 doing async invocations.
1458 (dbus_g_method_return, dbus_g_method_return_error):
1460 * doc/dbus-tutorial.xml: Update GLib section.
1462 * tools/dbus-viewer.c (load_child_nodes): Update
1463 for new invocation type of dbus_g_proxy_end_call.
1464 (load_from_service_thread_func): Ditto.
1466 * tools/print-introspect.c (main): Ditto.
1468 * tools/dbus-names-model.c (have_names_notify)
1469 (names_model_reload, names_model_set_connection)
1472 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1473 needed since Python bindings use GLib bindings.
1475 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1476 Add --prefix argument.
1478 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
1479 unneeded --ignore-unsupported arg.
1481 * test/glib/test-service-glib.c:
1482 * test/glib/test-service-glib.xml:
1483 * test/glib/test-dbus-glib.c: Add many more tests.
1485 2005-06-06 David Zeuthen <davidz@redhat.com>
1487 * doc/TODO: Add item about need to remove deprecated functions.
1489 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1491 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1492 to repair the ABI which was broken with the last commit.
1494 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
1496 * dbus/dbus-connection.c, dbus/dbus-connection.h
1497 (dbus_connection_disconnect): renamed to dbus_connection_close
1498 for API symmetry with dbus_connection_open
1499 (_dbus_connection_open_internal):
1500 s/dbus_connection_disconnect/dbus_connection_close
1502 * dbus/dbus-bus.c (dbus_bus_get):
1503 s/dbus_connection_disconnect/dbus_connection_close
1505 * bus/connection.c (bus_connections_unref,
1506 bus_connections_setup_connection, bus_connections_expire_incomplete):
1507 s/dbus_connection_disconnect/dbus_connection_close
1509 * bus/dispatch.c (bus_dispatch, kill_client_connection,
1510 kill_client_connection_unchecked, check_hello_connection):
1511 s/dbus_connection_disconnect/dbus_connection_close
1513 * bus/bus.c (new_connection_callback):
1514 s/dbus_connection_disconnect/dbus_connection_close
1516 * tools/dbus-send.c (main):
1517 s/dbus_connection_disconnect/dbus_connection_close
1519 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1520 s/dbus_connection_disconnect/dbus_connection_close
1522 * test/test-service.c (path_message_func, filter_func):
1523 s/dbus_connection_disconnect/dbus_connection_close
1525 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
1527 2005-05-25 Colin Walters <walters@verbum.org>
1529 * dbus/dbus-protocol.h: Move various bus service #defines such
1530 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1532 * dbus/dbus-shared.h: Various defines moved here.
1533 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1535 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
1537 * python/__init__.py: Python bindings deserve a minor version
1538 update. Upped to (0, 40, 2)
1540 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
1542 * python/decorators.py: add explicitly_pass_message decorator
1543 for passing in the dbus message as keyword for edge case signal
1546 * python/matchrules.py (SignalMatchRule.__repr__): fix output
1547 to conform with what dbus expects for match rules
1548 (SignalMatchRule.execute): add the dbus message as a keyword
1549 if the signal handler has requested it
1551 * python/examples/example/signal-recipient.py: added some more
1552 examples on how to hook up to signals
1554 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
1556 * python/decorators.py: import dbus_bindings
1558 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
1559 SignalMatchNode): new classes that implement wildcard signal
1560 callback matching using a tree lookup. Heavily modified from a
1561 patch sent by Celso Pinto (fd.o bug #3241)
1563 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1564 use new match classes to handle signals.
1566 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
1568 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1570 2005-05-18 Havoc Pennington <hp@redhat.com>
1572 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1573 gettext. Not really worth requiring yet perhaps, but any
1574 production quality 1.0 would require it so we should go ahead and
1575 get things set up. We do have a couple token calls to
1576 bindtextdomain in the code already.
1578 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
1580 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1581 when using recursive g_main_loops
1583 * python/_dbus.py (class Bus): add the ProxyObjectClass
1584 alias for ProxyObject to make it easier for the Twisted
1585 networking framework to integrate dbus.
1587 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1588 alias for ProxyMethod to make it easier for the Twisted
1589 networking framework to integrate dbus.
1591 2005-05-11 Ross Burton <ross@openedhand.com>
1593 * glib/dbus-glib-tool.c: Add --prefix argument.
1594 * glib/dbus-binding-tool-glib.h: Add prefix argument.
1595 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1596 Add prefix argument.
1597 (generate_glue): Pass prefix argument down.
1598 (dbus_binding_tool_output_glib_server): Pass prefix to
1601 2005-05-11 Colin Walters <walters@verbum.org>
1603 * tools/dbus-send.c (append_array): New function.
1604 (append_arg): Broken out from main.
1605 (main): Add cheesy hack to send arrays and variants.
1607 * tools/dbus-print-message.c (print_iter): Broken out
1610 2005-05-11 Colin Walters <walters@verbum.org>
1612 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1613 New function, returns signature string for signature iter.
1614 * dbus/dbus-signature.h: Prototype it.
1615 * dbus/dbus-message.c (dbus_message_iter_get_signature):
1616 New function, returns signature string for message iter.
1617 (dbus_message_iter_get_array_len): New function, returns
1619 (dbus_message_iter_get_fixed_array): Fix assertion; this
1620 function should be used when the iter is pointing to the
1621 contents of an array
1622 * dbus/dbus-message.h: Prototypes.
1623 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1624 New function; returns length of an array.
1625 * dbus/dbus-marshal-recursive.h: Prototype it.
1627 2005-05-11 Colin Walters <walters@verbum.org>
1629 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1632 2005-05-08 Havoc Pennington <hp@redhat.com>
1634 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1635 daemon's pid, not the parent's pid, to the file descriptor.
1636 Reported by Taj Morton.
1638 2005-05-05 Havoc Pennington <hp@redhat.com>
1640 * configure.in (LT_*): add notes on how the libtool versioning
1641 works to save thinking. Increment soname to indicate protocol
1642 breakage (though really the library interface hasn't changed I
1645 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1646 verify the GUID received from server matches what we were
1647 expecting, if we had an expectation
1649 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1650 (_dbus_auth_get_guid_from_server): new function
1651 (send_begin): parse the OK args
1653 * doc/dbus-specification.xml: add GUID to the auth protocol
1655 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
1657 * Fix my name in previous changelog ;)
1659 * python/proxies.py (ProxyObject.__getattr__): add further patch
1660 from Anthony Baxter to throw an AttributeError when python
1661 __special__ functions are called instead of marshling them over
1662 the bus (Bug#1685 comment 3).
1664 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
1666 * python/Makefile.am: changed to use pyexecdir for the binding
1667 shared libraries (Bug#2494)
1669 * python/exceptions.py: bring exceptions over from the bindings
1670 so they can be used in applications (Bug#2036)
1671 Make all exceptions derive from DBusException
1673 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1674 of classes so that print obj doesn't throw an exception (Bug #1685)
1676 2005-05-03 Ross Burton <ross@openedhand.com>
1678 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1679 Return if we get an error during registration. Set up a
1680 weak reference on object to unregister if object is destroyed.
1681 (unregister_gobject): New function.
1683 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
1685 * python/dbus_bindings.pyx.in:
1686 - added new type classes for hinting to the marashaler what type
1687 to send over the wire
1688 - added int16 and uint16 marshalers
1689 - Fixed a bug in the type constants that caused int32 to go out
1690 as uint16 over the wire
1691 * python/dbus.py: split up into different files and renamed _dbus.py
1692 * python/__init__.py, python/_util.py, python/decorators.py,
1693 python/exceptions.py, python/proxies.py, python/services.py,
1694 python/types.py: new files split off from dbus.py
1695 * python/Makefile.am: Add new files, remove dbus.py and
1696 install all python files to <python module dir>/dbus
1697 * python/examples/*: Added #!/usr/bin/env python to the top of
1698 every example. Patch provided by Tatavarty Kalyan
1700 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1702 * NEWS: Update to 0.33
1704 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1706 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1707 method for doing async calls
1708 (_pending_call_notification): New C function for handling pendning call
1710 (set_notify): New method for setting pending call notification
1712 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1713 Async capabilities added to remote method calls
1714 (Sender): class removed
1715 (RemoteService): class removed
1716 (ObjectTree): class removed for now
1717 (RemoteObject): Renamed to ProxyObject
1718 (RemoteMethod): Renamed to ProxyMethod
1719 (method): Decorator added for decorating python methods as dbus methods
1720 (signal): Decorator added for decorating python methods as signal emitters
1721 (ObjectType): Metaclass added for generating introspection data and the
1722 method callback vtable
1723 (Interface): Wrapper class added to wrap objects in a dbus interface
1724 (Object): Uses ObjectType as its metaclass and exports Introspect
1725 of the org.freedesktop.DBus.Introspectable interface
1726 (ValidationException, UnknownMethodException): new exceptions
1728 * python/examples/*: Modified to fit with the new bindings
1730 2005-04-23 Havoc Pennington <hp@redhat.com>
1732 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1733 reported by Tony Houghton
1735 * test/test-service.c (main): test
1736 dbus_connection_get_object_path_data()
1738 * dbus/dbus-object-tree.c (find_handler): be sure we always init
1740 (_dbus_object_tree_get_user_data_unlocked): new function used by
1741 dbus_connection_get_object_path_data()
1742 (do_register): add assertion test for get_user_data_unlocked
1743 (object_tree_test_iteration): more tests
1745 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1746 new function from Dan Reed to let you get the user data from
1747 dbus_connection_register_object_path()
1749 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
1751 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1752 in numerous places that did not account for the NULL terminator
1753 (signature_from_seed): changed the manual string copy loop to
1754 just use strcpy instead
1755 make check should now pass
1757 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
1759 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1760 so that it allows messages that are not signals to pass in
1761 NULL as the interface.
1763 2005-04-18 David Zeuthen <davidz@redhat.com>
1765 * glib/dbus-gmain.c (io_handler_destroy_source):
1766 (timeout_handler_destroy_source, connection_setup_free):
1767 Also unref the source to avoid memory leaks.
1769 2005-04-13 David Zeuthen <davidz@redhat.com>
1771 * bus/config-parser.c (bus_config_parser_new): Bump this to a
1772 more reasonable, yet still totally arbitrary, value :-).
1774 2005-04-13 David Zeuthen <davidz@redhat.com>
1776 * doc/TODO: Added an "important for 1.0" item about selinux
1779 2005-04-13 David Zeuthen <davidz@redhat.com>
1781 * bus/selinux.c: Add c-file-style to top of file
1782 (log_audit_callback): Don't free the data here anymore
1783 (bus_selinux_check): Don't take spid and tpid since appending
1784 that to auxdata may OOM.
1785 (bus_selinux_allows_acquire_service): Handle OOM and signal back
1786 to the caller if we are OOM by taking an error object.
1787 (bus_selinux_allows_send): -do-
1789 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1790 and bus_selinux_allows_send
1792 * bus/bus.c (bus_context_check_security_policy): Pass error and
1793 pass on OOM thrown by bus_selinux_allows_send()
1795 * bus/services.c (bus_registry_acquire_service): Pass error and
1796 pass on OOM thrown by bus_selinux_allows_acquire_service()
1798 2005-04-13 Havoc Pennington <hp@redhat.com>
1800 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1801 message at a time to avoid monopolizing the main loop, bug
1802 #2953 from Benjamin Otte
1804 2005-04-09 Havoc Pennington <hp@redhat.com>
1806 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1807 possible overlap, fix from Daniel Reed
1808 (fixup_alignment): fix signedness warnings
1809 (_dbus_string_append_unichar): ditto
1811 2005-04-09 Havoc Pennington <hp@redhat.com>
1813 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1815 * glib/dbus-glib-tool.c (main): fix warning
1817 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1819 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1820 add a new function that can be used in simple applications that
1821 don't have a main loop and are willing to block
1823 2005-04-05 David Zeuthen <davidz@redhat.com>
1825 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1827 * glib/dbus-gmain.c:
1828 (io_handler_destroy_source): Remove from list of IO handlers
1829 of the ConnectionSetup object
1830 (timeout_handler_destroy_source): -do- for timeout handlers
1831 (io_handler_source_finalized): Don't remove from list since
1832 we now do that in io_handler_destroy_source(). Renamed from
1833 io_handler_source_destroyed
1834 (timeout_handler_source_destroyed): -do- for timeout handlers
1835 (connection_setup_free): It is now safe to iterate over all
1836 IO and timeout handlers as the _destroy_source removes them
1837 from the list synchronously
1839 2005-03-30 Havoc Pennington <hp@redhat.com>
1841 * configure.in: change check to gtk 2.4
1843 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1844 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1847 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1851 * HACKING: Fixed realease instructions. configure.in should be updated to
1852 the next release by the person who made the last release.
1854 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1856 * python/lvalue_cast_post_process.py - removed. Patch has been
1857 submitted to Pyrex maintainers that fixes gcc4.0 errors
1859 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1861 2005-03-24 Daniel Reed <n@ml.org>
1863 * tools/Makefile.am: Make print-introspect and
1864 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1866 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1868 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1870 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1871 had in Red Hat packages for a while but for some reason never
1873 (_dbus_is_a_number): New checks if a string
1874 can be converted to a number and does the conversion if it can
1875 (_dbus_user_database_lookup): Add check to see if the given username
1876 is a udi. This allows udi's to be used instead of usernames in the
1878 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1879 is a gdi. This allows gdi's to be used instead of groupnames in the
1882 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1884 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1885 code so that it compiles with gcc4.0
1887 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1888 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1889 results back to dbus_binding.c
1891 2005-03-20 Colin Walters <walters@verbum.org>
1893 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1895 * configure.in: Require GTK+ 2.6.
1897 2005-03-20 Colin Walters <walters@verbum.org>
1899 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1901 2005-03-17 Tom Parker <palfrey@tevp.net>
1903 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1904 print DBUS_UID_UNSET; instead print passed username. Also
1905 be sure to actually use gid looked up in cache.
1907 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1908 for DBUS_GID_UNSET and groupname.
1910 2005-03-17 Colin Walters <walters@verbum.org>
1912 * bus/print-introspect.c: Move to tools/.
1913 * bus/run-with-tmp-session-bus.sh: Ditto.
1915 * glib/Makefile.am (dbus-glib-bindings.h): Move
1916 generation to tools/Makefile.am.
1918 * test/glib/run-test.sh: Update to handle move
1919 of run-with-tmp-session-bus.sh.
1921 * test/glib/test-service-glib.c: Update to handle
1922 move of dbus-glib-bindings.h.
1924 * tools/print-introspect.c: Moved here
1925 from bus/, and ported to GLib bindings.
1927 * tools/run-with-tmp-session-bus.sh: Moved here
1930 * tools/Makefile.am: Generate dbus-glib-bindings.h
1931 and dbus-bus-introspect.xml here.
1933 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1936 2005-03-17 Colin Walters <walters@verbum.org>
1938 * bus/driver.c (write_args_for_direction): Use
1939 _dbus_string_get_const_data to retrieve string;
1940 _dbus_string_get_const_data_len doesn't actually return
1941 a NULL-terminated substring.
1943 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1944 (main): Change to use org_freedesktop_DBus_request_name
1945 instead of using g_proxy_begin_call/end_call.
1947 2005-03-15 Joe Shaw <joeshaw@novell.com>
1949 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1950 generating the finalizer. Fixes from Ben Maurer.
1952 2005-03-12 Joe Shaw <joeshaw@novell.com>
1954 * mono/BusDriver.cs: Update method names: ListServices
1955 becomes ListNames; GetOwner becomes GetNameOwner.
1957 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1958 onto the eval stack when removing the delegate.
1960 2005-03-12 Joe Shaw <joeshaw@novell.com>
1962 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1963 LT_CURRENT. Set it to the autoconf variable.
1965 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1966 classes that disconnects the signal handler delegate from the
1967 service object. Fixes a big leak of proxy objects on the
1968 client side of things. Patch from Ben Maurer
1969 <bmaurer@ximian.com>
1971 2005-03-12 Colin Walters <walters@verbum.org>
1973 * bus/driver.c (write_args_for_direction): New function,
1974 parses a type signature into arguments and outputs to
1976 (bus_driver_handle_introspect): Use it instead of
1977 hardcoding XML for certain signatures.
1979 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1980 dependency on dbus-daemon.
1982 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1983 argument, pass it to dbus_binding_tool_output_glib_client.
1985 * glib/dbus-binding-tool-glib.c
1986 (generate_client_glue): Protect against multiple inclusion.
1987 (dbus_binding_tool_output_glib_client): Add
1988 G_BEGIN_DECLS/G_END_DECLS.
1990 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1991 Change to just take iface prefix directly.
1992 (write_formal_parameters): Clarify error message.
1993 (check_supported_parameters): New function; checks to see type
1994 signatures of method parameters are supported.
1995 (generate_client_glue): Handle ignore_unsupported flag.
1996 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1999 * glib/Makefile.am (dbus-glib-bindings.h): Pass
2000 --ignore-unsupported by default until glib bindings
2003 2005-03-11 Colin Walters <walters@verbum.org>
2005 * glib/Makefile.am: Generate dbus-glib-bindings.h and
2008 * bus/print-introspect.c: New file; prints introspection
2009 data for a given name and object path.
2011 * bus/run-with-tmp-session-bus.sh: New file, refactored
2012 from test/glib/run-test.sh. Creates a temporary session
2013 bus and runs another program.
2015 * test/glib/run-test.sh: Refactor to invoke
2016 run-with-tmp-session-bus.sh.
2018 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2019 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
2020 macros instead of hardcoding.
2022 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2024 2005-03-11 Joe Shaw <joeshaw@novell.com>
2026 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2027 this unref; it doesn't match up evenly in some codepaths.
2028 (_dbus_connection_block_pending_call): Unref at every exitpoint;
2029 this evenly matches with the ref near the top of this function.
2031 2005-03-09 Joe Shaw <joeshaw@novell.com>
2033 * dbus/dbus-object-tree.c
2034 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2035 and we try to unregister a path that's not registered, still go
2036 through the process of unlocking and don't just return.
2038 2005-03-09 Colin Walters <walters@verbum.org>
2040 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2041 to this are generated for client-side wrappers. Invokes a
2042 D-BUS method and returns reply values.
2044 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2045 function; writes signature string for argument direction.
2046 (write_args_for_direction): Change to pass input values directly
2047 instead of via address, and fix indentation.
2048 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2049 make generated wrappers inlineable.
2051 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2052 note about using dbus_type_is_fixed.
2054 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2055 dbus/dbus-signature.c as dbus_type_is_fixed.
2057 All callers updated.
2059 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2060 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2062 * dbus/dbus-signature.h: Prototype.
2064 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2067 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2068 appropriate instead of just freeing it.
2069 (main): Free returned strings using g_free.
2071 * test/glib/Makefile.am (test-service-glib-glue.h)
2072 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2074 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2075 simply maps a simple D-BUS type to GType.
2076 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2078 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2079 initialize the value with it.
2080 (dbus_gvalue_binding_type_from_type): Unused, delete.
2081 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2082 various types instead of unmarshalling to value data directly.
2083 Remove can_convert boolean.
2084 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2085 returning directly instead of using can_convert boolean.
2086 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2087 Stores a GValue in a pointer to a value of its corresponding C
2090 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2091 add dbus_gvalue_store.
2093 2005-03-08 Joe Shaw <joeshaw@novell.com>
2095 Fix a bunch of lifecycle and memory management problems
2096 in the mono bindings.
2098 * mono/Arguments.cs (Arguments): Implement IDisposable
2100 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2101 strictly a static class.
2103 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2104 delegates into this file.
2105 (Connection): Implement IDisposable.
2106 (Dispose): Disconnect the connection and set the raw connection
2107 pointer to IntPtr.Zero.
2108 (~Connection): Call Dispose().
2109 (RegisterObjectPath): Added. Manages the registration of object
2110 paths so we can cleanly disconnect them at dispose/finalize time.
2111 (UnregisterObjectPath): Ditto.
2112 (set_RawConnection): Unregister all of the object paths when
2113 changing the underlying DBusConnection. Add them back onto the
2114 new connection, if any.
2116 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2117 more unmanaged resources anymore, so it's not necessary. Move all
2118 the DBusObjectPathVTable stuff out of here.
2119 (Handler): Save references to our delegates so that they don't get
2120 finalized. Call Connection.RegisterObjectPath() instead of
2121 dbus_connection_register_object_path() directly.
2122 (Message_Called): Dispose the message after we're finished with
2125 * mono/Message.cs (Message): Implement IDisposable.
2126 (Dispose): Dispose the Arguments, and set the RawMessage to
2128 (SendWithReplyAndBlock): We own the ref to the reply that comes
2129 back from dbus_connection_send_with_reply_and_block() so add a
2130 comment about that and unref it after we've constructed a managed
2131 MethodReturn class around it. Fixes a big, big leak.
2133 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2135 (BuildSignalHandler): After we've sent the Signal message, dispose
2137 (BuildMethod): Dispose of the method call and reply messages after
2138 we've sent the message and extracted the data we want from the
2141 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2143 (Service_FilterCalled): Dispose of the message after we're
2146 2005-03-08 Joe Shaw <joeshaw@novell.com>
2148 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2149 After we attach our pending call to the connection, unref
2152 * mono/Connection.cs (set_RawConnection): Disconnect our
2153 filter and match callbacks from the old connection and
2154 reconnect them to the new connection, if any.
2156 * mono/DBusType/Array.cs: "Code" is a static member, so
2157 don't use "this" to refer to it. Fix for stricter checking
2160 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2161 object path that we pass into unmanaged code.
2163 * mono/DBusType/String.cs (Append): Don't leak the string
2164 that we pass into unmanged code.
2166 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2167 * NEWS: Update for 0.31
2169 * configure.in: Release 0.31
2170 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2172 * qt/Makefile.am: fixed build
2174 * dbus/Makefile.am: soname bump for libdbus
2176 * glib/Makefile.am: soname bump for libdbus-glib
2178 2005-03-05 Havoc Pennington <hp@redhat.com>
2180 * dbus/dbus-sysdeps.c:
2181 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2183 (_dbus_generate_random_bytes_buffer): fix return value
2185 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2186 checks actually work, from Tom Parker <fdo@tevp.net>
2188 2005-03-01 Colin Walters <walters@verbum.org>
2190 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2191 functions copied from dbus-glib-tool.c.
2192 (main): Convert lots of error code to use them.
2193 Also add some testing for introspection bits.
2195 2005-03-01 Colin Walters <walters@verbum.org>
2197 * doc/TODO: Remove introspection signature TODO.
2199 2005-02-27 Colin Walters <walters@verbum.org>
2201 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2202 Change return value to const char * instead of int so we can do
2204 (struct PropertyInfo, struct ArgInfo): Store char *.
2205 (property_info_new, arg_info_new): Update parameters, strdup.
2206 (property_info_unref, arg_info_unref): Free.
2208 * glib/dbus-gidl.h: Update prototypes.
2210 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2211 (validate_signature): New function, just validates signature and
2213 (parse_property, parse_arg): Invoke validate_signature. Store
2214 signature instead of just type code.
2216 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2217 function to return a primary type for a signature, dropping
2218 information about types in container types.
2219 (dbus_gvalue_genmarshal_name_from_type)
2220 (dbus_gvalue_binding_type_from_type)
2221 (dbus_gvalue_ctype_from_type): Update to take full signature
2222 instead of type code.
2223 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2225 * glib/dbus-gvalue.h: Update prototypes for above.
2227 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2228 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2229 (introspect_properties, introspect_signals, write_interface):
2230 Update to handle signatures, and remove usage of
2231 _dbus_gutils_type_to_string.
2232 (handle_introspect): Print out type codes instead of e.g. "string"
2233 in hardcoded introspection XML; also use x_AS_STRING constants
2234 instead of hardcoding in string.
2236 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2237 to string. Remove usage of _dbus_gutils_type_to_string.
2239 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2241 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2244 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2245 (compute_marshaller_name, generate_glue): Handle signature change
2247 (write_formal_parameters, write_args_for_direction): Ditto, and
2250 * tools/dbus-tree-view.c (type_to_string): Delete.
2251 (info_set_func_text): Update to print full signatures.
2253 * test/glib/test-service-glib.xml: Change types to new
2254 introspection format.
2256 2005-02-26 Havoc Pennington <hp@redhat.com>
2258 * doc/TODO: remove the "guid" item
2260 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2261 (with_bus_thread_func): use open_private
2263 * dbus/dbus-connection.c (dbus_connection_open_private): new
2264 function that works like the old dbus_connection_open()
2265 (dbus_connection_open): now returns an existing connection if
2268 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2269 through the GUID to the transport
2271 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2272 GUID in hex-encoded form.
2274 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2275 pass GUID argument in to the transport
2277 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2280 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2282 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2284 2005-02-25 Havoc Pennington <hp@redhat.com>
2286 * doc/dbus-specification.xml: document the GUID thing
2288 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2289 globally unique ID for the server, and put a "guid=hexencoded"
2290 field in the address
2292 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2294 * dbus/dbus-message.c: ditto
2296 * dbus/dbus-dataslot.c: ditto
2298 * dbus/dbus-list.c: ditto
2300 * dbus/dbus-internals.h: wait, just include
2301 dbus-threads-internal.h here
2303 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2306 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2308 2005-02-24 Colin Walters <walters@verbum.org>
2310 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2312 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2314 * glib/Makefile.am: added dbus-gobject.h to sources list
2315 so distcheck doesn't fail
2317 2005-02-24 Havoc Pennington <hp@redhat.com>
2319 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2320 you must disconnect before unref, since locking and other things
2321 are screwed up otherwise. Fix assorted other locking stuff.
2323 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2326 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2327 into a private header and don't export from the library
2329 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2331 2005-02-24 Colin Walters <walters@verbum.org>
2333 * dbus/dbus-signature.c: New file; implements various functions
2334 related to type signatures. Includes an interator for parsing,
2335 validation functions.
2336 (dbus_type_is_basic): Moved here from
2337 dbus-marshal-basic.c:_dbus_type_is_basic.
2338 (dbus_type_is_container): Moved here from
2339 dbus-marshal-basic.c:_dbus_type_is_container.
2341 All callers of _dbus_type_is_container and _dbus_type_is_basic
2342 updated, and include dbus-signature.h.
2344 * dbus/dbus-signature.h: New file; prototypes for the above.
2346 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2349 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2350 function factored out of _dbus_first_type_in_signature.
2351 (_dbus_first_type_in_signature_c_str): New function; returns first
2352 type code for a type signature character.
2354 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2355 handle function moves.
2357 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2359 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2360 function; skips to next complete type in type signature.
2361 Implemented using previous skip_one_complete_type. Now
2362 skip_one_complete_type just delegates to
2363 _dbus_type_signature_next.
2365 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2367 (_dbus_type_is_container): Ditto.
2369 * doc/dbus-specification.xml: Update introspection sample to
2370 use real type signatures.
2372 * dbus/dbus-test.h: Prototype signature test.
2374 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2377 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2379 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2381 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2382 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2384 2005-02-21 Colin Walters <walters@verbum.org>
2386 * dbus/dbus-test-main.c (main): Take optional specific test
2389 * dbus/dbus-test.c (run_test): New function, runs a test function
2390 with no data directory.
2391 (run_data_test): Like above, but takes data directory.
2392 (dbus_internal_do_not_use_run_tests): Take
2393 specific test argument. Replace lots of cut n' paste code
2394 with run_test and run_data_test.
2396 * dbus/dbus-test.h: Update prototype for
2397 dbus_internal_do_not_use_run_tests.
2399 2005-02-20 Havoc Pennington <hp@redhat.com>
2401 Fix bugs reported by Daniel P. Berrange
2403 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2404 (protected_change_watch): new function
2405 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2406 (_dbus_server_add_watch): change to work like the
2407 dbus-connection.c equivalents; like those, probably kind of
2408 busted, but should at least mostly work for now
2409 (dbus_server_disconnect): drop the lock if we were already
2410 disconnected, patch from Daniel P. Berrange
2412 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
2413 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2416 * doc/TODO: todo about unscrewing this mess
2418 2005-02-19 Colin Walters <walters@verbum.org>
2420 * glib/dbus-binding-tool-glib.c
2421 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2423 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2424 as errno.h and sys/stat.h.
2425 (lose): New function, prints error with
2427 (lose_gerror): Similar, but takes GError for message.
2428 (main): Add --output argument to specify output file to write to,
2429 instead of always printing to stdout. In this mode, determine
2430 timestamps on source files to see whether any are newer than the
2431 target file. If not, exit. Also convert a number of error
2432 messages to use lose (since it's shorter), and switch to using
2433 g_io_channel_shutdown.
2435 2005-02-19 Havoc Pennington <hp@redhat.com>
2437 * glib/dbus-gobject.c
2438 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2440 * glib/dbus-glib.c: fix doxygen warnings
2442 * glib/dbus-gparser.c (parse_annotation): error if an annotation
2443 is found on an <arg>
2445 2005-02-17 Colin Walters <walters@verbum.org>
2447 * glib/dbus-gobject.h: Don't export
2448 _dbus_glib_marshal_dbus_message_to_gvalue_array.
2450 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2451 (invoke_object_method): Handle it.
2453 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2456 2005-02-17 Colin Walters <walters@verbum.org>
2458 * bus/.cvsignore, doc/.cvsignore
2459 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2462 2005-02-17 Colin Walters <walters@verbum.org>
2464 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2465 Rename to DBUS_SERVICE_DBUS.
2466 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2467 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2468 Change the value from "org.freedesktop.Local"
2469 to "org.freedesktop.DBus.Local".
2470 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2471 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2472 DBUS_INTERFACE_INTROSPECTABLE.
2473 Change the value from "org.freedesktop.Introspectable"
2474 to "org.freedesktop.DBus.Introspectable".
2475 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2476 DBUS_INTERFACE_PROPERTIES.
2477 Change the value from "org.freedesktop.Properties"
2478 to "org.freedesktop.DBus.Properties".
2479 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2480 DBUS_INTERFACE_PEER.
2481 Change the value from "org.freedesktop.Peer"
2482 to "org.freedesktop.DBus.Peer".
2483 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
2484 DBUS_INTERFACE_LOCAL.
2485 Change the value from "org.freedesktop.Local"
2486 to "org.freedesktop.DBus.Local".
2488 All other users of those constants have been changed.
2490 * bus/driver.c (bus_driver_handle_introspect): Use constants.
2492 * glib/dbus-gobject.c (handle_introspect): Use constants.
2494 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2496 2005-02-17 Colin Walters <walters@verbum.org>
2498 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2499 (parse_node, parse_interface, parse_method, parse_signal)
2500 (parse_property, parse_annotation): Lose if we're currently in an
2502 (parse_annotation): New function.
2503 (parser_start_element, parser_end_element): Handle annotation.
2504 (parse_method, parse_interface): Remove support for c_name attribute,
2505 switch to annotations.
2507 * glib/dbus-gidl.h (interface_info_get_binding_names)
2508 (method_info_get_binding_names)
2509 (interface_info_get_binding_name, method_info_get_binding_name)
2510 (interface_info_set_binding_name, method_info_set_binding_name):
2512 (interface_info_get_annotations, method_info_get_annotations)
2513 (interface_info_get_annotation, method_info_get_annotation)
2514 (interface_info_add_annotation, method_info_add_annotation):
2517 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2519 (struct MethodInfo): Ditto.
2520 Straightfoward conversion of binding methods into annotation methods
2523 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2525 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2527 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2528 Use new annotation API.
2530 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
2533 * doc/dbus-specification.xml: Discuss introspection annotations,
2534 include list of well-known annotations.
2536 * test/glib/test-service-glib.xml: Make validate against new DTD.
2538 2005-02-17 Colin Walters <walters@verbum.org>
2540 This patch is based on initial work from
2541 Paul Kuliniewicz <kuliniew@purdue.edu>.
2543 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2544 initialization of GValue from dbus type to here.
2545 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2546 for the "glib-genmarshal" program from a DBus type.
2547 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2548 into the C name for it we use in the glib bindings.
2549 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2550 glib C type (not GValue).
2551 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2553 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2554 from dbus-gobject.c.
2556 * glib/dbus-gutils.h: Prototype it.
2558 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2559 (marshal_dbus_message_to_g_marshaller): Use new shared function
2560 dbus_glib_marshal_dbus_message_to_gvalue_array.
2562 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2563 Will be changed once we have annotations.
2565 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2566 GStaticRWLock. Callers updated.
2567 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
2568 (string_table_next): New function for iterating over zero-terminated
2570 (string_table_lookup): New function; retrieves specific entry in
2572 (get_method_data): New function; look up method data in object data chunk.
2573 (object_error_domain_prefix_from_object_info)
2574 (object_error_code_from_object_info): New functions, but not implemented yet.
2575 (method_interface_from_object_info): New function; retrieve interface name.
2576 (method_name_from_object_info): New function; retrieve method name.
2577 (method_arg_info_from_object_info): New function; retrieve argument data.
2578 (arg_iterate): New function; iterates over serialized argument data.
2579 (method_dir_signature_from_object_info): New function; returns a
2580 GString holding type signature for arguments for just one
2581 direction (input or output).
2582 (method_input_signature_from_object_info)
2583 (method_output_signature_from_object_info): New functions.
2584 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2585 converts dbus message arguments into a GValue array. Used for both
2586 signal handling and method invocation.
2587 (struct DBusGlibWriteIterfaceData): New utility structure.
2588 (write_interface): New function; generate introspection XML for
2590 (introspect_interfaces): New function; gathers all interface->methods,
2591 generates introspection XML for them.
2592 (handle_introspect): Invoke introspect_interfaces.
2593 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2594 (lookup_object_and_method): New function; examines an incoming message
2595 and attempts to match it up (via interface, method name, and argument
2596 signature) with a known object and method.
2597 (gerror_domaincode_to_dbus_error_name): New function; converts a
2598 GError domain and code into a DBus error name. Needs GError data
2599 added to object introspection to work well.
2600 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2602 (invoke_object_method): New function to invoke an object method
2603 looked up via lookup_object_and_method. Parses the incoming
2604 message, turns it into a GValue array, then invokes the marshaller
2605 specified in the DBusGMethodInfo. Creates a new message with
2606 either return values or error message as appropriate.
2607 (gobject_message_function): Invoke lookup_object_and_method and
2608 invoke_object_method.
2610 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2611 (enum DBusBindingOutputMode): New enum for binding output modes.
2612 (pretty_print): Print binding names.
2613 (dbus_binding_tool_error_quark): GError bits.
2614 (version): Fix typo.
2615 (main): Create GIOChannel for output. Parse new --mode argument,
2616 possible values are "pretty-print", "glib-server", "glib-client".
2617 Use mode to invoke appropriate function.
2619 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2621 * glib/dbus-glib-tool.h: New header, just includes GError bits
2624 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2625 maps binding style to name.
2626 (struct MethodInfo): Ditto.
2627 (get_hash_keys, get_hash_key): Utility function, returns keys for
2629 (interface_info_new, method_info_new): Initialize bindings.
2630 (interface_info_unref, method_info_unref): Destroy bindings.
2631 (method_info_get_binding_names, method_info_get_binding_name)
2632 (interface_info_get_binding_names, interface_info_get_binding_name):
2633 Functions for retrieving binding names.
2634 (method_info_set_binding_name, interface_info_set_binding_name):
2635 Functions for setting binding names.
2637 * glib/dbus-binding-tool-glib.h: New file, has prototypes
2638 for glib binding generation.
2640 * glib/dbus-binding-tool-glib.c: New file, implements server-side
2641 and client-side glib glue generation.
2643 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2644 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2647 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2648 of using GClosureMarshal directly.
2649 (struct DBusGObjectInfo): Add n_infos member.
2651 * test/glib/test-service-glib.xml: New file; contains introspection data
2652 for MyTestObject used in test-service-glib.c.
2654 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2655 (my_object_do_nothing, my_object_increment, my_object_throw_error)
2656 (my_object_uppercase, my_object_many_args): New test methods.
2657 (main): Use dbus_g_object_class_install_info to include generated object
2660 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2661 as well as client-side bindings.
2663 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2664 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2665 using both the dbus_gproxy stuff directly as well as the generated bindings.
2667 2005-02-15 Havoc Pennington <hp@redhat.com>
2669 * dbus/dbus-connection.c (dbus_connection_dispatch): always
2670 complete a pending call, don't run filters first.
2672 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2673 dbus_pending_call_steal_reply
2675 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2676 _dbus_connection_block_pending_call
2677 (dbus_pending_call_get_reply): change to steal_reply and return a
2680 * dbus/dbus-connection.c
2681 (dbus_connection_send_with_reply_and_block): port to work in terms
2683 (_dbus_connection_block_pending_call): replace block_for_reply
2686 2005-02-14 Havoc Pennington <hp@redhat.com>
2688 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2689 properly handle looking up group information by name; fix
2692 2005-02-13 Havoc Pennington <hp@redhat.com>
2694 * dbus/dbus-connection.c (dbus_connection_return_message)
2695 (dbus_connection_borrow_message): hold dispatch lock while message
2697 (_dbus_connection_block_for_reply): hold dispatch lock while we
2698 block for the reply, so nobody steals our reply
2699 (dbus_connection_pop_message): hold the dispatch lock while we
2702 2005-02-13 Havoc Pennington <hp@redhat.com>
2704 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2705 (_dbus_connection_release_dispatch)
2706 (_dbus_connection_acquire_io_path)
2707 (_dbus_connection_release_io_path): make the mutex and condvar
2708 control access to the "acquired" flag. Drop the connection lock
2709 while waiting on the condvar. Hopefully these are baby steps in
2710 roughly the right direction.
2712 2005-02-13 Havoc Pennington <hp@redhat.com>
2714 * dbus/dbus-connection.c: use separate mutexes for the condition
2715 variables; this is some kind of baseline for sanity, but the
2716 condition variables still aren't used correctly afaict
2718 2005-02-13 Havoc Pennington <hp@redhat.com>
2720 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2723 * dbus/dbus-connection.c
2724 (_dbus_connection_detach_pending_call_unlocked): add this
2726 Initial semi-correct pass through to fix thread locking; there are
2727 still some issues with the condition variable paths I'm pretty
2730 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2733 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2734 rename to add _unlocked
2735 (struct DBusConnection): move "dispatch_acquired" and
2736 "io_path_acquired" to use only one bit each.
2737 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2738 (dbus_connection_set_watch_functions): hacky fix to reentrancy
2739 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
2740 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
2741 (_dbus_connection_remove_timeout)
2742 (_dbus_connection_toggle_timeout): drop lock when calling out to
2743 user functions; done in a hacky/bad way.
2744 (_dbus_connection_send_and_unlock): add a missing unlock
2745 (_dbus_connection_block_for_reply): add a missing unlock
2747 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2748 drop lock in a hacky probably unsafe way to call out to user
2751 2005-02-12 Havoc Pennington <hp@redhat.com>
2753 * tools/dbus-tree-view.c (info_set_func_text): display more
2756 * bus/driver.c (bus_driver_handle_list_services): list the bus
2759 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2761 * glib/dbus-gidl.c (signal_info_get_n_args): new function
2762 (method_info_get_n_args): new function
2764 2005-02-12 Havoc Pennington <hp@redhat.com>
2766 * bus/driver.c (bus_driver_handle_introspect): add introspection
2769 2005-02-12 Havoc Pennington <hp@redhat.com>
2771 * bus/driver.c: put the signature of each bus driver method in the
2772 table of handlers and check it on incoming calls; this isn't
2773 really useful, but going to add introspect support in a minute.
2775 2005-02-11 Joe Shaw <joeshaw@novell.com>
2777 * mono/Connection.cs: The unpredictability of finalizers in mono
2778 prevents us from deterministically disconnecting the filters from
2779 the Service class's finalizer, so move tracking of filters and
2780 matches here. Add API for that.
2782 * mono/Service.cs: Remove the code, add code which calls the
2783 methods now on the Connection class.
2785 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
2787 * python/dbus.py (class Sender): added to support dbus signals better
2788 (Bus::add_signal_receiver): added expand_args parameter which defaults
2789 to True. When expand args is True the signal handler will pass the
2790 message arguments as parameters to the signal handler. If False
2791 revert to previous behavior where the signal handler must get the
2792 argument list from the message. This is to help port applications
2793 like HAL that have a tendancy to send variable length argument lists.
2794 self._match_rule_to_receivers is now a dict of dicts.
2795 (Bus::remove_signal_receiver): pop handler off the dict intead of
2796 removing it from a list
2797 (Bus::_signal_func): change signal handlers so that interface,
2798 signal_name, service, path and message are packed into a Sender
2799 object and that is passed to the handler. If expand_args is True
2800 extract the args list from the message and append it to the parameter
2803 * python/dbus_bindings.pyx.in (class Signature): added to support
2805 (MessageIter::__init__): changed iteration limit to match D-BUS
2806 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
2807 STRUCT and VARIENT type support
2808 (MessageIter::python_value_to_dbus_sig): made recursive to support
2810 (MessageIter::append*): added Signature, dict, tuple
2813 * python/examples/example-client.py: added examples of getting tuples
2816 * python/examples/example-service.py: added examples of sending tuples
2819 * python/examples/example-signal-recipient.py: Fixed to handle new
2820 signal callback format
2822 2005-02-10 Havoc Pennington <hp@redhat.com>
2824 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2825 (call dbus_g_proxy_add_signal)
2827 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2829 (_dbus_server_new_for_domain_socket): escape the path
2831 * dbus/dbus-address.c (dbus_address_escape_value): new
2832 (dbus_address_unescape_value): new
2833 (dbus_parse_address): unescape values
2835 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2837 * doc/dbus-specification.xml: explain how to escape values in
2840 2005-02-10 Havoc Pennington <hp@redhat.com>
2842 * dbus/dbus-message-factory.c (generate_special): modify test to
2843 avoid using a non-basic dict key
2845 * dbus/dbus-marshal-validate-util.c: add test for the below
2847 * doc/dbus-specification.xml: require that dict keys are a basic
2850 * dbus/dbus-marshal-validate.c
2851 (_dbus_validate_signature_with_reason): require that dict key is a
2854 2005-02-10 Havoc Pennington <hp@redhat.com>
2856 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2857 change to be _and_unlock instead of _unlocked
2859 * dbus/dbus-connection.c
2860 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2861 have no_update so we can find this bug quickly in future
2863 2005-02-10 Havoc Pennington <hp@redhat.com>
2865 * dbus/dbus-message-util.c (verify_test_message): tests for string
2868 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2869 support for arrays of string/signature/path
2871 2005-02-10 Joe Shaw <joeshaw@novell.com>
2873 * dbus/dbus-connection.c
2874 (_dbus_connection_queue_received_message_link,
2875 _dbus_connection_message_sent): Add the path to
2877 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2878 _dbus_connection_send_preallocated_unlocked(), updated the
2879 dispatch status, and unlocks. Fixes a bug where certain
2880 situations (like a broken pipe) could cause a Disconnect message
2881 to not be sent, tricking the bus into thinking a service was still
2882 there when the process had quit.
2883 (_dbus_connection_send_preallocated): Call
2884 _dbus_connection_send_preallocated_and_unlock().
2885 (_dbus_connection_send_and_unlock): Added. Calls
2886 _dbus_connection_send_preallocated_and_unlock().
2887 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2888 (dbus_connection_send_with_reply): Update the dispatch status and
2891 * mono/Service.cs (~Service): Added. Removes the filter so that
2892 we don't get unmanaged code calling back into a GCed delegate.
2893 (RemoveFilter); Added.
2895 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2897 * dbus/dbus-message.c (dbus_message_iter_open_container):
2898 - Removed check for iterator type being an array because
2899 get_arg_type does not work with writer iterators
2900 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2902 2005-02-07 Havoc Pennington <hp@redhat.com>
2904 * doc/dbus-specification.xml: some more language cleanups; add
2905 stuff about how to deal with invalid protocol and extension
2906 points; add _ to allowed chars in auth commands; add EXTENSION_
2909 2005-02-06 Havoc Pennington <hp@redhat.com>
2911 * s/expected/required/ in a couple places for clarity
2913 2005-02-07 Colin Walters <walters@verbum.org>
2915 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2916 sender or proposed_recipient.
2918 2005-02-06 Havoc Pennington <hp@redhat.com>
2920 * dbus/dbus-message-factory.c (generate_special): more tests
2922 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2923 array length that exceeds the maximum
2925 2005-02-05 Havoc Pennington <hp@redhat.com>
2927 * dbus/dbus-message-factory.c (generate_special): more test cases,
2930 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2931 reason why a signature was invalid
2933 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2934 skip the length of the string before we look at it in validation
2936 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2939 * dbus/dbus-message.c (_dbus_message_loader_new): default
2940 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2942 2005-02-05 Havoc Pennington <hp@redhat.com>
2944 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2945 if the signature of a variant was empty
2946 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2947 struct with no element type)
2949 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2950 mangled messages to break things
2952 2005-02-04 Havoc Pennington <hp@redhat.com>
2954 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2955 g_quark_try_string() so it actually can return 0
2956 (dbus_g_proxy_connect_signal): ditto
2958 2005-02-04 Havoc Pennington <hp@redhat.com>
2960 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2962 (tristring_from_message): assert cleanly on null path/interface
2963 (should not be possible though I decided later)
2964 (dbus_g_proxy_dispose): move proxy manager unregistration here
2965 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2966 g_return_if_fail() checks
2968 2005-02-04 Havoc Pennington <hp@redhat.com>
2970 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2972 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2973 (with some minor changes)
2975 * doc/dbus-specification.xml: add deprecated attribute to
2976 introspection format
2978 2005-01-31 Havoc Pennington <hp@redhat.com>
2980 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2981 think it's sort of right
2983 2005-01-30 Havoc Pennington <hp@redhat.com>
2985 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2987 2005-01-30 Havoc Pennington <hp@redhat.com>
2989 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2991 * autogen.sh: change to autotools 1.9
2993 * glib/dbus-gproxy.c: completely change how signals work
2994 (dbus_g_proxy_add_signal): new function to specify signature of a
2996 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2997 and g_warning if the incoming message has the wrong signature.
2999 2005-01-30 Havoc Pennington <hp@redhat.com>
3001 * tools/dbus-names-model.c (have_names_notify): fix this
3003 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3004 up the string array handling a bit
3006 2005-01-30 Havoc Pennington <hp@redhat.com>
3008 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3009 (dbus_g_pending_call_cancel): new function
3011 * dbus/dbus-glib.h: move GType decls for connection/message here;
3012 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3013 here, just kind of rationalizing how we handle all that
3015 * tools/dbus-names-model.c: new file for a tree model listing the
3018 * tools/dbus-tree-view.c (model_new): use proper typing on the
3021 2005-01-30 Havoc Pennington <hp@redhat.com>
3023 * glib/dbus-gmain.c: add a custom GSource back that just checks
3024 whether the message queue has anything in it; otherwise, there are
3025 cases where we won't see messages in the queue since there was no
3026 IO visible to the glib main loop
3028 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3029 increase default message timeout to 25 seconds
3031 2005-01-30 Havoc Pennington <hp@redhat.com>
3033 * test/glib/test-profile.c (no_bus_stop_server): remove the
3034 warning about the g_warning that I just fixed
3036 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3037 custom source, seems to be a lot easier to understand and work
3040 2005-01-30 Havoc Pennington <hp@redhat.com>
3042 I think this main loop thing is conceptually broken, but here are
3043 some band aids. I'll maybe rewrite it in a minute.
3045 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3046 custom GSource, so don't pass it in; confusing
3047 (gsource_server_finalize, gsource_connection_finalize): add
3048 finalize handlers that remove all the watches.
3050 2005-01-30 Havoc Pennington <hp@redhat.com>
3052 * glib/dbus-gobject.c (introspect_properties): fix the XML
3055 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3056 which effectively detects the use of freed messages
3058 * glib/dbus-gobject.c (handle_introspect): modify and return the
3059 reply message instead of the incoming message
3061 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3062 gee, maybe it should SEND THE XML instead of just making a string
3063 and freeing it again ;-)
3065 * tools/dbus-print-message.c (print_message): improve printing of
3068 * configure.in: add debug-glib.service to the output
3070 2005-01-30 Havoc Pennington <hp@redhat.com>
3072 dbus-viewer introspected and displayed the bus driver
3074 * dbus/dbus-object-tree.c
3075 (object_tree_test_iteration): add tests for a handler registered on "/"
3077 * dbus/dbus-object-tree.c
3078 (_dbus_decompose_path): fix to handle path "/" properly
3079 (run_decompose_tests): add tests for path decomposition
3081 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3084 * glib/dbus-gobject.c (handle_introspect): fix quotes
3086 * test/glib/run-test.sh: support launching the bus, then running
3089 * test/glib/test-service-glib.c (main): put in a trivial gobject
3090 subclass and register it on the connection
3092 * bus/driver.c (bus_driver_handle_introspect): implement
3093 introspection of the bus driver service
3095 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3096 identifiers, doctype decl
3098 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3099 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3100 returning the service unchanged.
3101 (bus_driver_handle_message): remove old check for reply_serial in
3102 method calls, now the message type deals with that
3103 (bus_driver_handle_message): handle NULL interface
3105 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3107 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3110 * tools/dbus-viewer.c: add support for introspecting a service on
3113 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3114 (dbus_g_pending_call_unref): add
3116 2005-01-29 Havoc Pennington <hp@redhat.com>
3118 * tools/dbus-tree-view.c: add support for displaying properties.
3119 (run dbus-viewer with an introspect xml file as arg, then resize
3120 the window so the tree elements show up, not sure what that is)
3122 * glib/dbus-gobject.c (handle_introspect): return
3123 org.freedesktop.Properties and org.freedesktop.Introspectable
3124 interfaces when we are introspected.
3126 * doc/dbus-specification.xml: allow empty interface name when
3129 2005-01-29 Havoc Pennington <hp@redhat.com>
3131 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3132 though it uses glib, it could be extended for any binding in
3135 * glib/dbus-gobject.c (gobject_message_function): change to the
3136 new way properties work
3138 * dbus/dbus-protocol.h: add the new interfaces
3140 * doc/dbus-specification.xml: document the introspection format,
3141 Introspectable interface, and add an org.freedesktop.Properties
3144 * glib/dbus-gparser.c: add support for a <property> element
3146 * glib/dbus-gidl.c: add PropertyInfo
3148 * glib/dbus-gobject.c (handle_introspect): put the outermost
3149 <node> outside the signal and property descriptions.
3150 (introspect_properties): export properties as <property> rather
3151 than as method calls
3153 2005-01-28 Havoc Pennington <hp@redhat.com>
3155 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3156 related to authentication protocol
3158 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3160 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3161 - BUS_ACTIVATION -> BUS_STARTER
3162 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3163 - class MessageIter (__init__): Added recursion checking
3164 so we throw a nice error instead of just disconnecting from the
3166 (get): Added arg_type parameter for recursion.
3167 Removed the nil type
3168 Added signiture type placeholder (not implemented)
3169 Added struct type placeholder (not implemented)
3170 Added varient type placeholder (not implemented)
3171 Commented out dict type for now
3172 (get_element_type): renamed from get_array_type
3173 (get_*): changed to use the dbus_message_iter_get_basic API
3174 (get_*_array): removed in favor of recursive get_array method
3175 (get_array): new recursive method which calls get to marshal
3176 the elements of the array
3177 (value_to_dbus_sig): New method returns the corrasponding
3178 dbus signiture to a python value
3179 (append): Comment out dict handling for now
3180 Handle lists with the new recursive API
3181 Comment out None handling for now
3182 (append_nil): removed
3183 (append_*): changed to use dbus_message_iter_append_basic API
3184 (append_*_array): removed in favor of recursive append_array
3186 (__str__): Make it easier to print out recursive iterators
3188 - class Message (__str__): moved type inspection to the
3189 MessageIter class' __str__ method
3190 (get_iter): Added an append parameter wich defaults to False
3191 If True use the new API's to create an append iterator
3193 * python/dbus.py: Update to use new bindings API
3194 - TYPE_ACTIVATION -> TYPE_STARTER
3195 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3196 - class ActivationBus -> class StarterBus
3197 - class RemoteObject (__call__): get an append iterator
3198 - (_dispatch_dbus_method_call): get an append iterator
3199 - class Object (emit_signal): get an append iterator
3201 * python/examples/: Fixed up the examples to work with the new API
3203 2005-01-28 Joe Shaw <joeshaw@novell.com>
3205 * configure.in: Bump version up to 0.30.
3207 * HACKING: Add a release item to bump the version number up after
3210 2005-01-28 Havoc Pennington <hp@redhat.com>
3212 * doc/dbus-specification.xml: update to describe 16-bit types and
3215 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3218 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3221 * dbus/dbus-marshal-recursive.c: implement
3223 2005-01-27 Havoc Pennington <hp@redhat.com>
3225 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3227 * configure.in: find the right type for 16 and 32 bit ints as well
3230 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3231 the 16-bit types so people don't have to stuff them in 32-bit or
3234 2005-01-27 Havoc Pennington <hp@redhat.com>
3236 * dbus/dbus-message.c: byteswap the message if you init an
3237 iterator to read/write from it
3239 * dbus/dbus-marshal-byteswap.c: new file implementing
3240 _dbus_marshal_byteswap()
3242 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3244 2005-01-26 Havoc Pennington <hp@redhat.com>
3246 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3247 build, apparently - nobody noticed?)
3249 2005-01-26 Havoc Pennington <hp@redhat.com>
3251 * dbus/dbus-marshal-recursive.h: remove todo comment
3253 2005-01-25 Joe Shaw <joeshaw@novell.com>
3255 * Land the mono binding changes to conform to the new APIs.
3257 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3258 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3260 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3261 type code as a string.
3262 (InitAppending): Rename dbus_message_append_iter_init() to
3263 dbus_message_iter_init_append().
3265 * mono/BusDriver.cs: Rename ServiceEventHandler to
3266 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3267 Rename ServiceOwnerChanged to NameOwnerChanged.
3269 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3272 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3274 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3275 dbus_bus_acquire_service() to dbus_bus_request_name().
3277 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3278 of Type.UnderlyingSystemType to get the correct element type for
3280 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3281 dbus_message_get_{element|arg}_type() instead of
3282 dbus_message_iter_init_array_iterator().
3283 (Append): Replace dbus_message_iter_append_array() with
3284 dbus_message_iter_open_container() and
3285 dbus_message_iter_close_container().
3287 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3288 types have been removed.
3290 * mono/DBusType/*.cs: Replace calls of
3291 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3292 but specify the type in the DllImport extern declaration. Ditto
3293 for dbus_message_iter_append_[type]() ->
3294 dbus_message_iter_append_basic().
3296 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3297 NameOwnerChangedHandler.
3299 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3301 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3302 - get_base_service -> get_unique_name
3303 - bus_get_base_service -> bus_get_unique_name
3304 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3305 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3306 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3307 - bus_activate_service -> bus_start_service_by_name
3308 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3309 - bus_acquire_service -> bus_request_name
3310 - dbus_bus_acquire_service -> dbus_bus_request_name
3311 - bus_service_exists -> bus_name_has_owner
3312 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3314 * python/dbus.py: Rename of methods
3315 - activate_service -> start_service_by_name
3316 - bus_acquire_service -> bus_request_name
3317 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3318 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3321 2005-01-24 Joe Shaw <joeshaw@novell.com>
3323 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3324 signature for the method that can't be found.
3326 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3327 the message has any arguments, we need to call
3328 _dbus_type_reader_get_current_type(), not
3329 _dbus_type_reader_has_next().
3331 2005-01-24 Havoc Pennington <hp@redhat.com>
3333 * dbus/dbus-message-factory.c: more testing of message validation
3335 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3338 2005-01-23 Havoc Pennington <hp@redhat.com>
3340 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3341 get this all working, not many tests in the framework yet though
3343 2005-01-22 Havoc Pennington <hp@redhat.com>
3345 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3346 tutorial, based on work from David Wheeler.
3348 2005-01-21 Havoc Pennington <hp@redhat.com>
3350 * dbus/dbus-bus.c: add more return_if_fail checks
3352 * dbus/dbus-message.c (load_message): have the "no validation"
3353 mode (have to edit the code to toggle the mode for now though)
3355 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3356 skips all validation; I want to use this at least for benchmark
3357 baseline, I'm not sure if it should be a publicly-available switch.
3359 2005-01-21 Havoc Pennington <hp@redhat.com>
3361 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3362 toplevel doxygen group as the low-level API stuff
3364 * dbus/dbus.h: note that libdbus is the low-level API
3366 2005-01-20 Havoc Pennington <hp@redhat.com>
3368 * update-dbus-docs.sh: script to update docs on the web site, only
3369 works for me though. neener.
3371 2005-01-20 Havoc Pennington <hp@redhat.com>
3373 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3374 code can reveal bugs in it
3376 2005-01-20 Havoc Pennington <hp@redhat.com>
3378 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3379 select() version, patches from Tor Lillqvist
3381 2005-01-20 Havoc Pennington <hp@redhat.com>
3383 * doc/dbus-tutorial.xml: replace > with >
3385 * bus/services.c (bus_registry_acquire_service): validate the name
3386 and return a better error if it's no good.
3388 * doc/dbus-specification.xml: note NO_AUTO_START change
3390 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3391 from AUTO_START, we're toggling the default
3393 * bus/dispatch.c: adapt the tests to change of auto-start default
3395 2005-01-18 Havoc Pennington <hp@redhat.com>
3397 * rename dbus-daemon-1 to dbus-daemon throughout
3399 2005-01-18 Havoc Pennington <hp@redhat.com>
3401 * Throughout, grand renaming to strip out the use of "service",
3402 just say "name" instead (or "bus name" when ambiguous). Did not
3403 change the internal code of the message bus itself, only the
3404 programmer-facing API and messages.
3406 * doc/dbus-specification.xml: further update the message bus section
3408 * bus/config-parser.c (all_are_equiv): fix bug using freed string
3411 2005-01-17 Havoc Pennington <hp@redhat.com>
3413 * dbus/dbus-types.h: remove 16-bit types since we don't use them
3416 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3417 "invalid name character" not only non-ASCII
3419 * doc/dbus-specification.xml: further update spec, message bus
3420 parts are still out-of-date but the marshaling etc. stuff is now
3423 2005-01-17 Havoc Pennington <hp@redhat.com>
3425 * doc/dbus-specification.xml: partially update spec
3427 2005-01-17 Havoc Pennington <hp@redhat.com>
3429 * Throughout, align variant bodies according to the contained
3430 type, rather than always to 8. Should save a fair bit of space in
3433 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3434 fix handling of case where p == end
3436 * doc/TODO: remove the dbus_bool_t item and variant alignment items
3438 2005-01-17 Havoc Pennington <hp@redhat.com>
3440 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3442 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3443 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
3444 are marshaling/unmarshaling a boolean.
3446 2005-01-16 Havoc Pennington <hp@redhat.com>
3448 This is about it on what can be disabled/deleted from libdbus
3449 easily, back below 150K anyhow. Deeper cuts are more work than
3450 just turning the code off as I've done here.
3452 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3453 signed int convenience funcs
3455 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3458 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3459 things out of libdbus
3461 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3463 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3464 tests-enabled-only, though it should probably be deleted)
3466 * dbus/dbus-message-util.c: same stuff
3468 * dbus/dbus-auth-util.c: same stuff
3470 2005-01-16 Havoc Pennington <hp@redhat.com>
3472 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3474 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3475 way for stripping down dbus-userdb.c stuff included in libdbus.
3476 Rename _dbus_parse_uid for consistency.
3478 2005-01-16 Havoc Pennington <hp@redhat.com>
3480 * dbus/dbus-internals.c (_dbus_real_assert): print the function
3481 name the assertion failed in
3483 * dbus/dbus-internals.h (_dbus_return_if_fail)
3484 (_dbus_return_val_if_fail): assert that the name of the function
3485 containing the check doesn't start with '_', since we only want to
3486 use checks on public functions
3488 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3489 checks to assertions
3491 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3492 change checks to asserts for private function
3494 * dbus/dbus-message.c (_dbus_message_set_serial): checks
3495 to asserts for private function
3497 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3498 broken assertion that was breaking make check
3499 (_dbus_type_reader_array_is_empty): remove this rather than fix
3500 it, was only used in assertions
3502 2005-01-16 Havoc Pennington <hp@redhat.com>
3504 * test/unused-code-gc.py: hacky script to find code that's used
3505 only by the bus (not libdbus) or used only by tests or not used at
3506 all. It has some false alarms, but looks like we can clean up a
3507 lot of size from libdbus.
3509 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3510 dbus/Makefile.am: initially move 10K of binary size out of libdbus
3512 2005-01-16 Havoc Pennington <hp@redhat.com>
3514 * Add and fix docs according to Doxygen warnings throughout
3517 * dbus/dbus-marshal-recursive.c
3518 (_dbus_type_reader_array_is_empty): change this to just call
3519 array_reader_get_array_len() and make it static
3521 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3523 (dbus_message_iter_init_append): rename from append_iter_init
3525 * dbus/dbus-marshal-recursive.c
3526 (_dbus_type_reader_get_element_type): rename from
3527 _dbus_type_reader_get_array_type
3529 2005-01-15 Havoc Pennington <hp@redhat.com>
3531 * test/glib/test-profile.c (with_bus_server_filter): fix crash
3533 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3534 when DBUS_DISABLE_ASSERT
3535 (_dbus_marshal_set_basic): be sure we align for the string length
3537 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3540 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3541 inline macro version
3542 (_dbus_string_set_byte): provide inline macro version
3544 2005-01-15 Havoc Pennington <hp@redhat.com>
3546 * Land the new message args API and type system.
3548 This patch is huge, but the public API change is not
3549 really large. The set of D-BUS types has changed somewhat,
3550 and the arg "getters" are more geared toward language bindings;
3551 they don't make a copy, etc.
3553 There are also some known issues. See these emails for details
3555 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3556 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3558 * dbus/dbus-marshal-*: all the new stuff
3560 * dbus/dbus-message.c: basically rewritten
3562 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3563 freed blocks to be all non-nul bytes so using freed memory is less
3564 likely to work right
3566 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3567 DBUS_FAIL_MALLOC=N environment variable, so you can do
3568 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3569 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3572 * qt/message.cpp: port to the new message args API
3573 (operator<<): use str.utf8() rather than str.unicode()
3574 (pretty sure this is right from the Qt docs?)
3576 * glib/dbus-gvalue.c: port to the new message args API
3578 * bus/dispatch.c, bus/driver.c: port to the new message args API
3580 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3581 "locked" flag to TRUE and align_offset to 0; I guess we never
3582 looked at these anyhow, but seems cleaner.
3584 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3585 move allocation padding macro to this header; use it to implement
3586 (_DBUS_STRING_STATIC): ability to declare a static string.
3588 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3589 change to return TRUE if the interface is not set.
3591 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3592 to dbus-marshal-validate.[hc]
3594 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3597 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3598 to dbus-marshal-*.[hc]
3600 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3601 function here from dbus-marshal.c
3603 2005-01-12 Joe Shaw <joeshaw@novell.com>
3605 * NEWS: Update for 0.23.
3607 * configure.in: Release 0.23.
3609 2005-01-12 Joe Shaw <joeshaw@novell.com>
3611 * mono/Makefile.am, mono/example/Makefile.am: Always build the
3612 dbus DLL with --debug. Clean up after the .mdb files this leaves
3615 * mono/doc/Makefile.am: Need to uninstall the docs on "make
3618 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3619 is an enum, get the enum's underlying type. Another mono
3622 2005-01-11 Joe Shaw <joeshaw@novell.com>
3624 Patch from Sjoerd Simons <sjoerd@luon.net>
3626 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3627 DESTDIR. It breaks stuff.
3629 2005-01-11 Joe Shaw <joeshaw@novell.com>
3631 Patch from Tambet Ingo <tambet@ximian.com>
3633 * mono/DBusType/Array.cs (Get): Get the underlying element type by
3634 calling type.GetElementType(). The code previously depended on
3635 broken Mono behavior, which was fixed in Mono 1.1.3.
3637 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3638 Activator.CreateInstance() so that the class's constructor is
3639 called with the right parameters.
3641 2005-01-11 Joe Shaw <joeshaw@novell.com>
3643 Patch from Timo Teräs <ext-timo.teras@nokia.com>
3645 * dbus/dbus-connection.c
3646 (_dbus_connection_queue_received_message_link): Call
3647 _dbus_connection_remove_timeout() instead of the _locked()
3648 variant, since it's always called from
3649 _dbus_connection_handle_watch(), which handles the locking.
3650 Removed the _locked() variant since it's no longer used.
3652 2005-01-03 Havoc Pennington <hp@redhat.com>
3654 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3657 2004-12-26 Havoc Pennington <hp@redhat.com>
3659 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3661 2005-01-03 Havoc Pennington <hp@redhat.com>
3663 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3666 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3668 2005-01-02 Havoc Pennington <hp@redhat.com>
3670 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3672 2005-01-01 Havoc Pennington <hp@redhat.com>
3674 * configure.in: add -Wfloat-equal
3676 2005-01-01 Havoc Pennington <hp@redhat.com>
3678 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
3679 for a variety of reasons '==' doesn't do this.
3681 2004-12-31 Havoc Pennington <hp@redhat.com>
3683 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3684 I keep wishing I had
3686 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3688 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3690 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3692 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3693 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3694 dbus-protocol.h. Because they are defines and not enums they are not
3697 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
3699 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3700 dbus_bus_activate_service
3702 * python/dbus.py (Bus.activate_service): activate a service on the
3705 2004-12-24 Havoc Pennington <hp@redhat.com>
3707 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3708 file format has also changed and I haven't adapted to that yet
3710 * Makefile.am: load .gcno files from latest gcc
3712 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
3713 * Patch from Rob Taylor <robtaylor@fastmail.fm>
3715 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3718 * python/dbus.py (get_unix_user): Added binding to
3719 call dbus_bindings.bus_get_unix_user
3721 * python/extract.py: Modified the proto_pat regex to
3722 handle unsigned long
3724 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3726 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3727 better POSIX compliance.
3729 2004-12-19 Havoc Pennington <hp@redhat.com>
3731 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
3732 (_dbus_string_insert_8_aligned): new functions
3734 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3736 2004-12-18 Havoc Pennington <hp@redhat.com>
3738 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3741 * dbus/dbus-message.c: fix a comment, and add a still-unused
3742 not-implemented function
3744 * dbus/dbus-marshal.h: fix comment
3746 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3748 2004-12-17 Joe Shaw <joeshaw@novell.com>
3750 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3751 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3752 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3753 Type.UnderlyingSystemType to get the actual system type
3754 underneath. This code previously depended on the broken Mono
3755 behavior, which was fixed in 1.1.3.
3757 2004-11-27 Havoc Pennington <hp@redhat.com>
3759 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3761 (_dbus_string_get_const_data): inline when asserts are disabled
3763 * dbus/dbus-message.c: record the _dbus_current_generation of
3764 creation so we can complain if dbus_shutdown() is used improperly.
3765 Do this only if checks are enabled.
3767 * dbus/dbus-connection.c: ditto
3769 2004-11-26 Havoc Pennington <hp@redhat.com>
3771 * test/glib/test-profile.c: add with_bus mode to profile echoes
3772 that go through the bus.
3774 * test/glib/run-test.sh: add ability to run test-profile
3776 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3779 2004-11-26 Havoc Pennington <hp@redhat.com>
3781 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3782 thing was implemented
3784 2004-11-26 Havoc Pennington <hp@redhat.com>
3786 * test/glib/test-profile.c: tweak a bit, add support for some
3787 made-up minimal malloc overhead with plain sockets, since in
3788 real life some sort of buffers are unavoidable thus we could
3789 count them in the theoretical best case
3791 2004-11-26 Havoc Pennington <hp@redhat.com>
3793 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3794 where I was trying to cache one too many messages
3796 2004-11-26 Havoc Pennington <hp@redhat.com>
3798 * dbus/dbus-message.c: reimplement message cache as an array which
3799 makes the cache about twice as fast and saves maybe 1.5% overall
3801 2004-11-26 Havoc Pennington <hp@redhat.com>
3803 * dbus/dbus-threads.c (init_global_locks): forgot to put the
3804 message cache lock here
3806 2004-11-26 Havoc Pennington <hp@redhat.com>
3808 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3809 the "char byte_order" next to each other to save 4 bytes
3810 (dbus_message_new_empty_header): reduce preallocation, since the
3811 message cache should achieve a similar effect
3812 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3813 message cache that keeps a few DBusMessage around in a pool,
3814 another 8% speedup or so.
3816 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3818 2004-11-25 Havoc Pennington <hp@redhat.com>
3820 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3821 to write, without reading or blocking, try it before the poll()
3822 and skip the poll() if nothing remains to write. This is about a
3823 3% speedup in the echo client/server
3825 2004-11-25 Havoc Pennington <hp@redhat.com>
3827 The primary change here is to always write() once before adding
3828 the write watch, which gives us about a 10% performance increase.
3830 * dbus/dbus-transport-unix.c: a number of modifications to cope
3831 with removing messages_pending
3832 (check_write_watch): properly handle
3833 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3834 messages_pending stuff
3835 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3837 (unix_handle_watch): after writing, see if the write watch can be
3839 (unix_do_iteration): assert that write_watch/read_watch are
3840 non-NULL rather than testing that they aren't, since they
3841 aren't allowed to be NULL. check_write_watch() at the end so
3842 we add the watch if we did not finish writing (e.g. got EAGAIN)
3844 * dbus/dbus-transport-protected.h: remove messages_pending call,
3845 since it resulted in too much inefficient watch adding/removing;
3846 instead we now require that the transport user does an iteration
3847 after queueing outgoing messages, and after trying the first
3848 write() we add a write watch if we got EAGAIN or exceeded our
3849 max bytes to write per iteration setting
3851 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3854 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3855 freed and then accessed, valgrind flagged this bug, fix it
3857 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3858 as the last valid field plus 1, where really it is equal to the
3859 last valid field. Corrects some message corruption issues.
3861 * dbus/dbus-mainloop.c: verbosity changes
3863 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3864 instead of aborting in one of the test codepaths
3866 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3867 caused not printing the pid ever again if a verbose was missing
3868 the newline at the end
3869 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3871 * dbus/dbus-connection.c: verbosity changes;
3872 (dbus_connection_has_messages_to_send): new function
3873 (_dbus_connection_message_sent): no longer call transport->messages_pending
3874 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3875 try to write() immediately, so we can avoid the write watch. This
3876 is the core purpose of this patchset
3877 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3878 dump the outgoing message queue, so nobody will get confused
3879 trying to send them or thinking stuff is pending to be sent
3881 * bus/test.c: verbosity changes
3883 * bus/driver.c: verbosity/assertion changes
3885 * bus/dispatch.c: a bunch of little tweaks to get it working again
3886 because this patchset changes when/where you need to block.
3888 2004-11-23 Havoc Pennington <hp@redhat.com>
3890 * test/glib/test-profile.c: modify to accept a plain_sockets
3891 argument in which case it will bench plain sockets instead of
3892 libdbus, for comparison purposes.
3894 2004-11-22 Havoc Pennington <hp@redhat.com>
3896 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3897 threads for more time, so sysprof can get a grip on it.
3899 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3902 2004-11-13 Havoc Pennington <hp@redhat.com>
3904 * test/glib/test-profile.c: fix this thing up a bit
3906 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3907 preallocation sizes by a fair bit; not sure if this will be an
3908 overall performance win or not, but it does reduce reallocs.
3910 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3911 the test hack that forced constant realloc if asserts are
3912 disabled, so we can profile sanely. Sprinkle in some
3913 _DBUS_UNLIKELY() which are probably pointless, but before I
3914 noticed the real performance problem I put them in.
3915 (_dbus_string_validate_utf8): micro-optimize this thing a little
3916 bit, though callgrind says it didn't help; then special-case
3917 ascii, which did help a lot; then be sure we detect nul bytes as
3918 invalid, which is a bugfix.
3919 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3920 superstition; use memset to nul the padding instead of a manual
3922 (_dbus_string_get_length): inline this as a
3923 macro; it showed up in the profile because it's used for loop
3926 2004-11-10 Colin Walters <walters@verbum.org>
3928 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3931 2004-11-09 Colin Walters <walters@verbum.org>
3933 * dbus/dbus-string.c (_dbus_string_get_length): New
3934 function, writes DBusString to C buffer.
3936 * dbus/dbus-string.h: Prototype it.
3938 * dbus/dbus-message.c (dbus_message_type_to_string): New
3939 function, converts message type into C string.
3941 * dbus/dbus-message.h: Prototype it.
3943 * bus/selinux.c (bus_selinux_check): Take source pid,
3944 target pid, and audit data. Pass audit data to
3946 (log_audit_callback): New function, appends extra
3948 (bus_selinux_allows_acquire_service): Also take
3949 service name, add it to audit data.
3950 (bus_selinux_allows_send): Also take message
3951 type, interface, method member, error name,
3952 and destination, and add them to audit data.
3953 (log_cb): Initialize func_audit.
3955 * bus/selinux.h (bus_selinux_allows_acquire_service)
3956 (bus_selinux_allows_send): Update prototypes
3958 * bus/services.c (bus_registry_acquire_service): Pass
3959 service name to bus_selinux_allows_acquire_service.
3961 * bus/bus.c (bus_context_check_security_policy): Pass
3962 additional audit data. Move assignment of dest
3965 2004-11-07 Colin Walters <walters@verbum.org>
3967 * dbus/dbus-transport-unix.c (do_authentication): Always
3968 initialize auth_completed.
3970 2004-11-07 Colin Walters <walters@verbum.org>
3972 * bus/bus.c (load_config): Break into three
3973 separate functions: process_config_first_time_only,
3974 process_config_every_time, and process_config_postinit.
3975 (process_config_every_time): Move call of
3976 bus_registry_set_service_context_table into
3977 process_config_postinit.
3978 (process_config_postinit): New function, does
3979 any processing that needs to happen late
3980 in initialization (and also on reload).
3981 (bus_context_new): Instead of calling load_config,
3982 open config parser here and call process_config_first_time_only
3983 and process_config_every_time directly. Later, after
3984 we have forked but before changing UID,
3985 invoke bus_selinux_full_init, and then call
3986 process_config_postinit.
3987 (bus_context_reload_config): As in bus_context_new,
3988 load parse file inside here, and call process_config_every_time
3989 and process_config_postinit.
3991 * bus/services.h, bus/services.c
3992 (bus_registry_set_service_context_table): Rename
3993 from bus_registry_set_sid_table. Take string hash from config
3994 parser, and convert them here into SIDs.
3996 * bus/config-parser.c (struct BusConfigParser): Have
3997 config parser only store a mapping of service->context
3999 (merge_service_context_hash): New function.
4000 (merge_included): Merge context string hashes instead
4001 of using bus_selinux_id_table_union.
4002 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4003 simply create a new string hash.
4004 (bus_config_parser_unref): Unref it.
4005 (start_selinux_child): Simply insert strings into hash,
4006 don't call bus_selinux_id_table_copy_over.
4008 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4009 (bus_selinux_id_table_copy_over): Delete.
4011 2004-11-03 Colin Walters <walters@verbum.org>
4013 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4016 2004-11-03 Colin Walters <walters@verbum.org>
4018 * bus/test-main.c (test_pre_hook): Fix test logic,
4019 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4021 2004-11-02 Colin Walters <walters@redhat.com>
4023 * bus/selinux.c (bus_selinux_init): Split into two functions,
4024 bus_selinux_pre_init and bus_selinux_post_init.
4025 (bus_selinux_pre_init): Just determine whether SELinux is
4027 (bus_selinux_post_init): Do everything else.
4029 * bus/main.c (main): Call bus_selinux_pre_init before parsing
4030 config file, and bus_selinux_post_init after. This ensures that
4031 we don't lose the policyreload notification thread that
4032 bus_selinux_init created before forking previously.
4034 * bus/test-main.c (test_pre_hook): Update for split.
4036 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
4038 Patch from Johan Fischer <linux@fischaz.com>
4040 * mono/doc/Makefile.am (install-data-local): Added directory
4043 2004-10-29 Colin Walters <walters@redhat.com>
4045 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4046 parameter for fd to write pid to.
4048 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4050 * bus/bus.c (bus_context_new): Pass print_pid_fd
4051 to _dbus_become_daemon (bug #1720)
4053 2004-10-29 Colin Walters <walters@redhat.com>
4055 Patch from Ed Catmur <ed@catmur.co.uk>
4057 * mono/doc/Makefile.am (install-data-local): Handle
4060 2004-10-29 Colin Walters <walters@redhat.com>
4062 * bus/.cvsignore, qt/.cvsignore: Update.
4064 2004-10-29 Colin Walters <walters@redhat.com>
4066 Patch from Kristof Vansant <de_lupus@pandora.be>
4068 * configure.in: Detect Slackware.
4069 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4070 * bus/rc.messagebus.in: New file.
4072 2004-10-29 Colin Walters <walters@redhat.com>
4074 * tools/dbus-monitor.c (filter_func): Return
4075 DBUS_HANDLER_RESULT_HANDLED in filter function
4077 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4079 2004-10-29 Colin Walters <walters@redhat.com>
4081 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4083 * bus/services.c (bus_registry_acquire_service):
4084 Correctly retrieve service name from DBusString
4087 2004-10-29 Colin Walters <walters@redhat.com>
4089 * dbus/dbus-glib.h: Update documentation to not
4090 refer to internal APIs.
4092 2004-10-27 Joe Shaw <joeshaw@novell.com>
4094 * mono/Arguments.cs (GetDBusTypeConstructor):
4095 type.UnderlyingSystemType will return "System.Byte" if you do it
4096 on "byte[]", which is not what we want. So check the type.IsArray
4097 property and use System.Array instead.
4099 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4101 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4102 the DBusUserInfo structure since this is passed into the function.
4103 This would cause a double free when the function that allocated
4104 the structure would try to free it when an error occured.
4106 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4107 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4108 for service activation to avoid 32bit/64bit parallel install issues
4110 2004-10-21 Colin Walters <walters@verbum.org>
4112 * AUTHORS: Fix my email address, the @gnu.org one
4113 has been bouncing for some time. Also add J5.
4115 2004-10-21 Colin Walters <walters@verbum.org>
4117 * dbus/dbus-transport-unix.c (do_authentication): Return
4118 authentication status to callers.
4119 (unix_handle_watch): If we completed authentication this round,
4120 don't do another read. Instead wait until the next iteration,
4121 after we've read any pending data in the auth buffer.
4122 (unix_do_iteration): Ditto.
4123 (unix_handle_watch): Updated for new do_authentication prototype.
4125 2004-10-18 Colin Walters <walters@verbum.org>
4127 * bus/selinux.c (bus_selinux_enabled): Handle
4128 --disable-selinux case.
4130 2004-10-18 Colin Walters <walters@verbum.org>
4132 * bus/selinux.h: Add bus_selinux_enabled.
4134 * bus/selinux.c (bus_selinux_enabled): Implement it.
4136 * bus/config-parser.c (struct include): Add
4137 if_selinux_enabled member.
4138 (start_busconfig_child): Parse if_selinux_enabled
4139 attribute for include.
4140 (bus_config_parser_content): Handle it.
4142 * bus/session.conf.in, bus/system.conf.in: Add
4143 inclusion of context mapping to default config files;
4144 conditional on SELinux being enabled.
4146 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4148 * test/data/invalid-config-files/badselinux-1.conf,
4149 test/data/invalid-config-files/badselinux-2.conf:
4150 Test files for bad syntax.
4152 2004-10-17 Colin Walters <walters@verbum.org>
4154 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4155 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4156 format specifier mismatches.
4158 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4160 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4163 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4164 pointer (bug #1540, Leonardo Boiko).
4166 2004-09-28 Jon Trowbridge <trow@ximian.com>
4168 * mono/BusDriver.cs: Changed BusDriver struct to remove
4169 the ServiceCreated and ServiceDeleted events and replace them
4170 with the new ServiceOwnerChanged event.
4172 * mono/example/BusListener.cs: Added a new example program,
4173 which listens for and reports any ServiceOwnerChanged events
4176 * mono/example/Makefile.am (DESTDIR): Build changes for the
4177 new BusListener.cs example.
4179 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4181 * bus/signals.c (bus_match_rule_parse): validate the components of
4182 match rules (bug #1439).
4184 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4186 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4188 * doc/dbus-specification.xml: document ServiceOwnerChanged
4191 * bus/driver.c, bus/driver.h, bus/services.c: Use
4192 ServiceOwnerChanged signal instead of ServiceCreated and
4195 * bus/dispatch.c: update testcase for the new signal.
4197 2004-09-20 Jon Trowbridge <trow@ximian.com>
4199 Patch from Nat Friedman <nat@novell.com>
4201 * mono/Makefile.am: A number of small build fixes to allow "make
4202 distcheck" to succeed.
4204 * mono/example/Makefile.am: "make distcheck" fixes.
4206 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4209 * test/Makefile.am: "make distcheck" fixes.
4211 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4213 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4215 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4217 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4218 messages after the first one (bug #1389).
4220 * bus/dispatch.c (check_double_hello_message): add a test case for
4221 the double hello message bug.
4222 (check_existent_service_activation): fix check of spawning error.
4224 2004-09-16 David Zeuthen <david@fubar.dk>
4226 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4228 2004-09-12 David Zeuthen <david@fubar.dk>
4230 Patch from Kay Sievers <kay.sievers@vrfy.org>
4232 * bus/bus.c (bus_context_new):
4234 * bus/main.c (usage)
4236 Add commandline option --nofork to override configuration file
4239 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4241 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4242 compilers don't like it (bug #974).
4244 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4246 * qt/connection.*: Applied patch by Jérôme Lodewyck
4247 <lodewyck@clipper.ens.fr> to integrate an existing
4248 connection into the Qt eventloop
4250 2004-08-30 Jon Trowbridge <trow@ximian.com>
4252 * mono/BusDriver.cs: Added. This is a class for interacting with
4253 the org.freedesktop.DBus service.
4255 * mono/Message.cs: Added a mechanism to expose the message that is
4256 currently being dispatched via the static Message.Current
4257 property. Added Message.Sender and Message.Destination
4260 * mono/Handler.cs: Expose the dispatched message via
4261 Message.Current when handling method calls.
4263 * mono/Service.cs: Expose the dispatched message via
4264 Message.Current when handling signal emissions.
4266 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4267 Connection.BaseService property.
4269 2004-08-28 Havoc Pennington <hp@redhat.com>
4271 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4273 More fixes from Steve Grubb
4275 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4276 (_dbus_listen_tcp_socket): fix fd leak
4278 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4279 EINTR to a bit lower in the code
4281 2004-08-26 Jon Trowbridge <trow@ximian.com>
4283 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4284 TRUE if we are inquiring about the existence of the built-in
4285 org.freedesktop.DBus service.
4287 2004-08-25 John Palmieri <johnp@redhat.com>
4288 * bus/config-parser.c:
4289 (struct PolicyType): Add POLICY_CONSOLE
4290 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4291 (start_busconfig_child): Sets up console element when
4292 <policy at_console=""> is encountered in a policy file
4293 (append_rule_from_element): Convert console elements to console
4297 (bus_policy_create_client_policy): Add console rules to the client
4298 policy based on if the client is at the console
4299 (bus_policy_append_console_rule): New function for adding a
4300 console rule to a policy
4301 (bus_policy_merge): Handle console rule merging
4303 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4304 where we check for console user files
4306 * dbus/dbus-sysdeps.c:
4307 (_dbus_file_exists): New function which checks if the given
4309 (_dbus_user_at_console): New function which does the system
4310 specific process of checking if the user is at the console
4312 * dbus/dbus-userdb.c:
4313 (_dbus_is_console_user): New function converts a UID to user name
4314 and then calls the system specific _dbus_user_at_console to
4315 see if the user is at the console and therefor a console user
4317 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4319 * bus/config-parser.c (set_limit):
4320 * bus/dbus-daemon-1.1.in:
4321 * test/data/valid-config-files/many-rules.conf: set the
4322 max_match_rules_per_connection limt from the config file.
4324 * doc/busconfig.dtd: update the DTD.
4326 * bus/driver.c: remove some unused variables.
4328 2004-08-24 Mikael Hallendal <micke@imendio.com>
4330 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4331 it's been replaced by dbus_g_bus_get
4333 2004-08-23 Colin Walters <walters@redhat.com>
4335 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4337 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4339 * bus/selinux.c: Create a thread for policy reload notification.
4340 (bus_selinux_get_policy_root): Implement.
4342 * bus/config-parser.c (start_busconfig_child)
4343 (bus_config_parser_content): Support SELinux-root relative
4346 * configure.in <HAVE_SELINUX>: Add -lpthread.
4348 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4349 (test_post_hook): Move memory checking into here.
4350 (test_pre_hook, test_post_hook): Move SELinux checks in
4351 here, but conditional on a DBUS_TEST_SELINUX environment
4352 variable. Unfortunately we can't run the SELinux checks
4353 as a normal user, since they won't have any permissions
4354 for /selinux. So this will have to be tested manually
4355 for now, until we have virtualization for most of
4358 2004-08-23 Havoc Pennington <hp@redhat.com>
4360 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4361 drop supplementary groups, suggested by Steve Grubb
4363 2004-08-20 Colin Walters <walters@redhat.com>
4365 * bus/config-parser.c (start_busconfig_child): Remove some unused
4368 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4371 2004-08-17 Joe Shaw <joeshaw@novell.com>
4373 * configure.in: If --enable-mono is passed in, if we can't find
4376 * mono/Makefile.am: Use /gacutil to install assemblies into the
4379 2004-08-12 Havoc Pennington <hp@redhat.com>
4381 * NEWS: update for 0.22
4383 * configure.in: release 0.22
4385 2004-08-11 Colin Walters <walters@redhat.com>
4387 * tools/dbus-send.c (main, usage): Add --reply-timeout
4390 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
4392 * bus/bus.c (process_config_first_time_only): get rid of an unused
4393 DBusError that was causing a memoy leak (bug #989).
4395 * dbus/dbus-keyring.c, dbus/dbus-message.c:
4396 fix compilation on Solaris/Forte C (bug #974)
4398 * bus/main.c (main): plug two minuscule memleaks.
4400 2004-08-10 Havoc Pennington <hp@redhat.com>
4402 * doc/dbus-tutorial.xml: add some more info on GLib bindings
4404 2004-08-09 Havoc Pennington <hp@redhat.com>
4406 * COPYING: switch to Academic Free License version 2.1 instead of
4407 2.0, to resolve complaints about patent termination clause.
4409 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
4411 * README: added documentation for the --enable-python
4414 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4416 * bus/config-parser.c (bus_config_parser_new): fix an invalid
4417 _unref in the SELinux support.
4419 * doc/busconfig.dtd: update DTD for SELinux support.
4421 * bus/config-loader-libxml.c: fix error handler and parser
4422 initialisation/cleanup. OOM test now works with libxml2 HEAD.
4424 * configure.in: remove the warning about libxml2.
4426 * dbus/dbus-bus.c: silence doxygen warning.
4428 2004-07-31 Colin Walters <walters@redhat.com>
4430 * configure.in: Move #error in SELinux check to its own line.
4432 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4434 * dbus/dbus-internals.h (_DBUS_SET_OOM):
4435 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4438 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4439 broken by the change in the _SET_OOM macros.
4441 2004-07-31 Colin Walters <walters@redhat.com>
4443 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4446 2004-07-31 Colin Walters <walters@redhat.com>
4448 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4449 to correctly detect DBUS__ACQUIRE_SVC. Also add an
4452 2004-07-24 Havoc Pennington <hp@redhat.com>
4454 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4456 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4459 * configure.in: add --enable-selinux
4461 * bus/policy.c (bus_policy_merge): add FIXME to a comment
4463 * bus/main.c (main): initialize and shut down selinux
4465 * bus/connection.c: store SELinux ID on each connection, to avoid
4466 repeated getting of the string context and converting it into
4469 * bus/bus.c (bus_context_get_policy): new accessor, though it
4471 (bus_context_check_security_policy): check whether the security
4472 context of sender connection can send to the security context of
4473 recipient connection
4475 * bus/config-parser.c: add parsing for <selinux> and <associate>
4477 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4478 implement dbus_connection_get_unix_fd()
4480 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4481 function, used by the selinux stuff
4483 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
4485 * bus/config-loader-libxml.c: complete the implementation of
4486 libxml backend for config file loader. Doesn't work with full OOM
4489 * configure.in: change error when selecting libxml into a warning.
4491 * test/data/invalid-config-files: add two non-well-formed XML
4494 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4496 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4497 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4498 be necessary to read all the buffer. (bug #894)
4500 * bus/activation.c (bus_activation_activate_service): fix a
4501 potential assertion failure (bug #896). Small optimization in the
4502 case of auto-activation messages.
4504 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4505 add test case for byte-through-vararg bug (#901). patch by Kimmo
4508 2004-07-28 Anders Carlsson <andersca@gnome.org>
4511 * python/dbus_bindings.pyx.in:
4512 Add dbus.init_gthreads (), allow emit_signal to pass
4513 arguments to the signal.
4515 2004-07-24 Havoc Pennington <hp@redhat.com>
4517 * AUTHORS: add some people, not really comprehensively, let me
4518 know if I missed you
4520 2004-07-24 Havoc Pennington <hp@redhat.com>
4522 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4525 * test/Makefile.am (DIST_SUBDIRS): here also
4527 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4529 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4530 breaking build on Solaris, reported by Farhad Saberi on the ML.
4532 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4533 va_arg invocation to account for integer promotion in the case of
4534 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4536 * bus/services.c (bus_service_remove_owner): fix bug #902, use
4537 _dbus_list_get_first_link, not _dbus_list_get_first.
4539 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4541 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4542 handler functions so that the asserts in _dbus_object_subtree_unref
4545 * dbus/dbus-transport-unix.c (do_reading):
4546 _dbus_transport_queue_messages return value is of type
4547 dbus_bool_t, not DBusDispatchStatus.
4549 2004-07-19 David Zeuthen <david@fubar.dk>
4551 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4554 (check_get_connection_unix_user): Debug says GetProperty; but the
4555 method is called GetConnectionUnixUser
4556 (check_get_connection_unix_process_id): New function
4557 (bus_dispatch_test): Actually call check_get_connection_unix_user();
4558 also call check_get_connection_unix_process_id()
4561 (bus_driver_handle_get_connection_unix_process_id): New function,
4562 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4566 (handle_server_data_external_mech): Set pid from the credentials
4567 obtained from the socket
4569 * dbus/dbus-connection.c:
4570 (dbus_connection_get_unix_process_id): New function
4572 * dbus/dbus-connection.h:
4573 Add prototype for dbus_connection_get_unix_process_id
4575 * dbus/dbus-transport.c:
4576 (_dbus_transport_get_unix_process_id): New function
4578 * dbus/dbus-transport.h:
4579 Add prototype for _dbus_transport_get_unix_process_id
4581 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
4583 * dbus/dbus-message.c: Message counter fix, patch by Christian
4584 Hammond <chipx86@gnupdate.org>
4586 2004-07-18 Seth Nickell <seth@gnome.org>
4589 * python/dbus_bindings.pyx.in:
4590 * python/tests/test-client.py:
4592 Add dbus.ByteArray and dbus_bindings.ByteArray
4593 types so that byte streams can be passed back.
4595 Give jdahlin the heaps of credit that are so
4598 2004-07-12 Seth Nickell <seth@gnome.org>
4602 Add message argument to the default object_method_handler
4605 * python/dbus_bindings.pyx.in:
4607 Automatically return NIL when passed an empty list
4608 (we can't pass back a list since lists are typed
4609 and we don't have any idea what type the the client
4610 intended the list to be... :-( )
4612 2004-07-10 Seth Nickell <seth@gnome.org>
4614 * python/examples/Makefile.am:
4616 Fix distcheck breakage caused by new examples.
4618 2004-07-10 Seth Nickell <seth@gnome.org>
4622 Add "message" argument to service-side dbus.Object
4623 methods. This will break existing services written
4624 using the python bindings, but will allow extraction
4625 of all the message information (e.g. who its from).
4627 Add improved "object oriented" signal handling/emission.
4629 * python/examples/example-service.py:
4633 * python/examples/example-signal-emitter.py:
4634 * python/examples/example-signal-recipient.py:
4636 Two new examples that show how to emit and receive
4637 signals using the new APIs.
4639 * python/examples/example-signals.py:
4640 * python/examples/gconf-proxy-service.py:
4641 * python/examples/gconf-proxy-service2.py:
4643 Add "message" argument to service methods.
4645 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
4647 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4648 * dbus/bus.c (dbus_bus_get_unix_user)
4649 * doc/dbus-specification.xml: implement GetConnectionUnixUser
4650 method of org.freedesktop.DBus interface.
4652 * bus/dispatch.c: test case
4654 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
4656 * python/Makefile.am: switched include directory from glib/ to dbus/
4657 since dbus-glib.h moved
4659 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4661 * configure.in: prevent building the gcj stuff and libxml loader
4662 since they are broken.
4664 2004-06-20 Havoc Pennington <hp@redhat.com>
4666 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
4667 codes from the dbus error names
4669 * glib/dbus-glib.h: move to subdir dbus/ since it's included
4670 as dbus/dbus-glib.h and that breakage is now visible due to
4671 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4673 * glib/dbus-glib.h: s/gproxy/g_proxy/
4675 * dbus/dbus-shared.h: new header to hold stuff shared with
4678 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4681 * glib/dbus-glib.h (dbus_set_g_error): move to
4682 dbus-glib-lowlevel.h
4684 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4685 of stuff to enable this
4687 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4689 * a bunch of other changes with the same basic "separate glib
4690 bindings from dbus.h" theme
4692 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
4694 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4696 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4698 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4700 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4701 the reply value of the ServiceExists message.
4703 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
4705 * python/dbus_bindings.pyx.in: No longer need to parse path
4706 elements and pass them as arrays of strings. The C API now
4707 accepts plain path strings.
4708 (_build_parsed_path): removed
4710 2004-06-07 Havoc Pennington <hp@redhat.com>
4712 * doc/TODO: remove auto-activation item since it's done; sort
4713 items by importance/milestone
4715 2004-06-07 Havoc Pennington <hp@redhat.com>
4717 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4718 random signature when using REQUIRED_FIELDS (this hack won't work
4721 * dbus/dbus-message.c: change the signature to be a header field,
4722 instead of message->signature special-case string. Incremental
4723 step forward. Then we can fix up code to send the signature in the
4724 message, then fix up code to validate said signature, then fix up
4725 code to not put the typecodes inline, etc.
4726 (load_one_message): don't make up the signature after the fact
4727 (decode_header_data): require signature field for the known
4730 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4732 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4734 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
4736 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4738 * mono/Handler.cs: Updated to follow new path argument for
4739 (un-)registering objects.
4741 * mono/example/Makefile.am:
4743 * configure.in: Bumped required version for mono and use new -pkg
4746 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
4748 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4749 registration functions take the path argument as char* instead of
4752 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4753 split off the path decompostion part of
4754 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4757 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4759 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4761 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4762 machine approach. A state is implemented as a function that
4763 handles incoming events as specified for that state.
4765 * doc/dbus-specification.xml: Update auth protocol state machine
4766 specification to match implementation. Remove some leftover
4769 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4771 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4772 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4775 * Doxyfile.in: remove deprecated options.
4777 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4778 glib/test-thread.h, glib/test-thread-client.c,
4779 glib/test-thread-server.c, glib/test-profile.c,
4780 glib/test-dbus-glib.c: remove these unused files.
4782 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
4784 * dbus/dbus-object-tree.c
4785 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4786 non-fallback handlers (bug #684).
4787 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4788 (find_subtree_recurse): report wether the returned subtree is an
4789 exact match or a "fallback" match higher up in the tree.
4790 (object_tree_test_iteration): update test case.
4792 2004-06-01 Seth Nickell <seth@gnome.org>
4794 * python/dbus_bindings.pyx.in:
4795 * python/tests/test-client.py:
4797 Round off basic type support. Add dicts (yay!), and
4798 remaining array types.
4800 Make MessageIter more general so it works for dicts too.
4802 Mark all loop variables as C integers.
4804 2004-05-31 Havoc Pennington <hp@redhat.com>
4806 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4809 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4811 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4812 option that runs the tests, and start filling in some code
4813 including for starters just dumping the interfaces to stdout
4815 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4817 * test/data/valid-introspection-files/lots-of-types.xml: test of
4818 an example introspection file
4820 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4823 2004-05-31 Seth Nickell <seth@gnome.org>
4825 * python/dbus_bindings.pyx.in:
4826 * python/tests/test-client.py:
4831 Fix string array memory trashing bug... oops...
4833 2004-05-30 Seth Nickell <seth@gnome.org>
4837 Add a nicer-but-less-flexible alternate API for handling
4838 calls to virtual objects in dbus.ObjectTree.
4840 Screw up the argument order to the dbus.Object constructor
4841 for consistency with dbus.ObjectTree (and to make dbus_methods
4842 optional for future extension)
4844 * python/examples/Makefile.am:
4845 * python/examples/gconf-proxy-service.py:
4846 * python/examples/gconf-proxy-service2.py:
4848 Alternate implementation of gconf-proxy-service using the
4849 nicer dbus.ObjectTree API.
4851 * python/examples/example-service.py:
4852 * python/tests/test-server.py
4854 Reverse the argument order to deal with dbus.Object constructor
4857 2004-05-30 Seth Nickell <seth@gnome.org>
4859 * python/examples/example-client.py:
4860 * python/examples/example-service.py:
4862 Take it back. Lists seem to work but they're broken
4863 in the test suite. Make the base examples use
4866 2004-05-30 Seth Nickell <seth@gnome.org>
4868 * python/dbus_bindings.pyx.in:
4869 * python/tests/test-client.py:
4871 Add some more tests and fix errors that crop up.
4872 Unfortunately, currently it seems like marshalling
4873 and unmarshalling of lists is completely broken :-(
4875 2004-05-30 Seth Nickell <seth@gnome.org>
4877 * python/dbus_bindings.pyx.in:
4879 Add support for ObjectPath type.
4883 Refactor message handling code to a common function.
4885 * python/tests/test-client.py:
4886 * python/tests/test-server.py:
4888 Add tests that check to make sure values of all types
4889 can be echoed from a service w/o mangling.
4891 2004-05-29 Seth Nickell <seth@gnome.org>
4895 Add ObjectTree class which allows implementation
4896 of trees of "virtual" objects. Basically the python
4897 wrapper for "register_fallback".
4899 * python/examples/Makefile.am
4900 * python/examples/gconf-proxy-client.py:
4901 * python/examples/gconf-proxy-service.py:
4903 Implement a simple GConf proxy service that supports
4904 get/set on string and int GConf keys using the ObjectTree.
4906 2004-05-29 Seth Nickell <seth@gnome.org>
4909 * python/examples/example-client.py:
4910 * python/examples/example-service.py:
4911 * python/examples/list-system-services.py:
4913 Add SessionBus, SystemBus and ActivationBus classes
4914 so you don't need to know the special little BUS_TYPE
4917 2004-05-29 Havoc Pennington <hp@redhat.com>
4919 * bus/config-parser.c (process_test_valid_subdir): temporarily
4920 stop testing config parser OOM handling, since expat has issues
4921 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4923 * bus/dbus-daemon-1.1.in: change requested_reply to
4924 send_requested_reply/receive_requested_reply so we can send the
4925 replies, not just receive them.
4927 * bus/config-parser.c: parse the new
4928 send_requested_reply/receive_requested_reply
4930 * bus/policy.c (bus_client_policy_check_can_send): add
4931 requested_reply argument and use it
4933 * bus/bus.c (bus_context_check_security_policy): pass through
4934 requested_reply status to message send check
4936 * bus/system.conf.in: adapt to requested_reply change
4938 2004-05-28 Havoc Pennington <hp@redhat.com>
4940 * test/glib/test-service-glib.c (main): remove unused variable
4942 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4944 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4945 from the enum, no longer in use.
4947 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4950 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4951 whether error_name passed in is a valid error name.
4953 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4955 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4956 OBJECT_PATH and OBJECT_PATH_ARRAY
4958 2004-05-28 Seth Nickell <seth@gnome.org>
4960 * python/examples/Makefile.am:
4962 Forget to add Makefile.am. Do not pass go.
4964 2004-05-28 Michael Meeks <michael@ximian.com>
4966 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4969 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4971 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4972 (_dbus_message_iter_get_basic_type_array): impl.
4973 drastically simplify ~all relevant _get methods to use these.
4974 (_dbus_message_iter_append_basic_array),
4975 (dbus_message_iter_append_basic): impl
4976 drastically simplify ~all relevant _append methods to use these.
4978 * dbus/dbus-message-builder.c (parse_basic_type)
4979 (parse_basic_array, lookup_basic_type): impl.
4980 (_dbus_message_data_load): prune scads of duplicate /
4983 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4984 (_dbus_demarshal_basic_type): implement,
4985 (demarshal_and_validate_len/arg): beef up debug.
4986 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4988 2004-05-27 Seth Nickell <seth@gnome.org>
4991 * python/Makefile.am:
4993 Include the example python apps in the tarball.
4995 * python/examples/list-system-services.py
4997 Add a python new example that fetches the list of services
4998 from the system bus.
5000 2004-05-27 Seth Nickell <seth@gnome.org>
5003 * python/dbus_bindings.pyx.in:
5005 Fix failure to notify that a signal was not handled,
5006 resulted in hung functions.
5008 2004-05-25 Colin Walters <walters@redhat.com>
5010 * tools/dbus-monitor.c (main): Monitor all types of messages.
5012 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
5014 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5015 which unregisters the object path and disposes the handler.
5017 2004-05-23 Kristian Høgsberg <krh@redhat.com>
5019 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5021 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5022 operands to && so we call dbus_message_iter_next () for the last
5025 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5027 * dbus/dbus-object-tree.c
5028 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5029 children even if the requested path isn't registered.
5030 (object_tree_test_iteration): test object_tree_list_registered.
5032 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5035 2004-05-20 Kristian Høgsberg <krh@redhat.com>
5037 * doc/TODO: Remove resolved items.
5039 * bus/expirelist.h (struct BusExpireList): remove unused n_items
5042 * bus/connection.c (bus_connections_expect_reply): Enforce the
5043 per-connection limit on pending replies.
5045 Patch from Jon Trowbridge <trow@ximian.com>:
5047 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5048 up a watch that triggers a config reload when one end of the pipe
5050 (signal_handler): Instead of doing the config reload in our SIGHUP
5051 handler, just write to the reload pipe and let the associated
5052 watch handle the reload when control returns to the main loop.
5054 * bus/driver.c (bus_driver_handle_reload_config): Added.
5055 Implements a ReloadConfig method for requesting a configuration
5056 file reload via the bus driver.
5058 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5060 * HACKING: Updated release instructions concerning the wiki page.
5062 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5064 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5065 filter against auth->allowed_mechs; we only add allowed mechs in
5066 record_mechanisms().
5068 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5069 ALLOWED_MECHS to auth-script format so we can set the list of
5072 * data/auth/client-out-of-mechanisms.auth-script: New test to
5073 check client disconnects when it is out of mechanisms to try.
5075 * dbus/dbus-auth.c (process_command): Remove check for lines
5076 longer that 1 MB; we only buffer up maximum 16 kB.
5078 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5079 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5080 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5081 assume there might be unused bytes.
5083 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5084 client-out-of-mechs, it is handled in process_reject(). Move check
5085 for max failures to send_rejected(), as it's a server-only thing.
5087 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5088 send_auth(), send_data(), send_rejected(), send_error(),
5089 send_ok(), send_begin() and send_cancel().
5091 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5093 Remove base64 encoding, replace with hex encoding. Original patch
5094 from trow@ximian.com, added error handling.
5096 * dbus/dbus-string.c (_dbus_string_base64_encode)
5097 (_dbus_string_base64_decode): Remove.
5098 (_dbus_string_hex_decode): Add end_return argument so we can
5099 distinguish between OOM and invalid hex encoding.
5100 (_dbus_string_test): Remove base64 tests and add test case for
5103 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5104 Replace base64 with hex.
5106 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5107 for invalid hex encoded data in auth protocol.
5109 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5111 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5114 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5116 * mono/dbus-sharp.dll.config.in: Added for GAC
5117 * mono/dbus-sharp.snk: Added for GAC
5118 * mono/Assembly.cs.in: Added for GAC
5119 * mono/Makefile.am: Changes for GAC installation
5120 * configure.in: Added refs for dbus-sharp.dll.config.in and
5121 Assembly.cs.in. More fixes for mono testing
5122 * mono/example/Makefile.am: Changed var to CSC
5123 * Makefile.am: Changed flag name to DBUS_USE_CSC
5125 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5127 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5128 * mono/doc/*: Added documentation framework
5129 * configure.in: Added monodoc check
5130 * README: Added description of mono configure flags
5132 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5134 * doc/dbus-specification.xml: Added a "Required" column to the
5135 header fields table and changed the "zero or more" verbage in
5136 the above paragraph to read "The header must contain the required
5137 named header fields and zero or more of the optional named header
5139 * test/data/invalid-messages/*.message: Added the required PATH
5140 named header field to the tests so that they don't fail on
5141 'Missing path field'
5143 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
5145 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5146 the stack by implicitly defining variable and parameter types and
5147 removing the hack of defining C pointers as python objects and later
5150 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5152 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5154 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5156 * mono/DBusType/Dict.cs: Handle empty dicts
5157 * mono/DBusType/Array.cs: Handle empty arrays
5158 * mono/Arguments.cs: Handle empty arguments
5160 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5162 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5165 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5167 * test/data/valid-messages/standard-*.message: Update message
5168 test scripts to new header field names.
5170 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5172 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5173 overflow to times_we_did_each_thing array which would chop off the
5174 first character of the failure_dir string. Increased the size of
5175 the array to 7 to reflect the number of random mutation functions
5178 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5180 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5181 unix_server->watch here, it is unreffed in disconnect.
5182 (_dbus_server_new_for_tcp_socket): convert NULL host to
5183 "localhost" here so we don't append NULL to address.
5185 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5186 various addresses, including tcp with no explicit host.
5188 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5190 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5191 fix incorrect setting of .name_offset in the HeaderField (it was
5192 off by two bytes, positioned right after the name and typecode)
5194 * bus/bus.c (bus_context_new, bus_context_unref): test before
5195 calling dbus_server_free_data_slot and _dbus_user_database_unref
5196 in case of an error.
5198 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5201 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5203 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5204 _dbus_poll() instead of select().
5206 2004-04-15 Jon Trowbridge <trow@ximian.com>
5208 * bus/main.c (signal_handler): Reload the configuration files
5210 (main): Set up our SIGHUP handler.
5212 * bus/bus.c (struct BusContext): Store the config file, user and
5213 fork flag in the BusContext.
5214 (process_config_first_time_only): Added. Contains the code
5215 (previously in bus_context_new) for setting up the BusContext from
5216 the BusConfigParser that should only be run the first time the
5217 config files are read.
5218 (process_config_every_time): Added. Contains the code (previously
5219 in bus_context_new) for setting up the BusContext from the
5220 BusConfigParser that should be run every time the config files are
5222 (load_config): Added. Builds a BusConfigParser from the config
5223 files and passes the resulting structure off to
5224 process_config_first_time_only (assuming this is the first time)
5225 and process_config_every_time.
5226 (bus_context_new): All of the config-related code has been moved
5227 to process_config_first_time_only and process_config_every_time.
5228 Now this function just does the non-config-related initializations
5229 and calls load_config.
5230 (bus_context_reload_config): Added.
5232 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5234 * bus/driver.c (bus_driver_handle_get_service_owner):
5235 implement a GetServiceOwner method.
5236 * doc/dbus-specification.xml: document it.
5237 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5239 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5240 implement, using the bus GetServiceOwner method.
5242 * test/glib/test-dbus-glib.c:
5243 use dbus_gproxy_new_for_service_owner so that we can receive the
5246 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5248 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5249 dbus/dbus-message.c, dbus/dbus-protocol.h
5250 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5252 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5253 dbus/dbus-message.c, dbus/dbus-protocol.h
5254 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5256 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5257 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5258 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5260 * doc/dbus-specification.xml (Header Fields Table):
5261 s/SERVICE/DESTINATION
5262 s/SENDER_SERVICE/SENDER
5265 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5267 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5270 2004-04-13 Michael Meeks <michael@ximian.com>
5272 * glib/dbus-gobject.c (handle_introspect): split out
5273 (introspect_properties): this.
5274 (handle_introspect): implement this.
5276 * test/glib/Makefile.am: use the absolute path so the bus
5277 daemon's chdir ("/") doesn't kill us dead.
5279 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5281 2004-04-12 Jon Trowbridge <trow@ximian.com>
5283 * bus/config-parser.c (struct BusConfigParser): Added
5284 included_files field.
5285 (seen_include): Added. Checks whether or not a file has already
5286 been included by any parent BusConfigParser.
5287 (bus_config_parser_new): Copy the parent's included_files.
5288 (include_file): Track which files have been included, and fail on
5289 circular inclusions.
5290 (process_test_valid_subdir): Changed printf to report if we are
5291 testing valid or invalid conf files.
5292 (all_are_equiv): Changed printf to be a bit clearer about
5293 what we are actually doing.
5294 (bus_config_parser_test): Test invalid configuration files.
5296 2004-04-09 Jon Trowbridge <trow@ximian.com>
5298 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5299 argument. If non-null, the newly-constructed BusConfigParser will
5300 be initialized with the parent's BusLimits instead of the default
5302 (include_file): When including a config file, pass in
5303 the current parser as the parent and then copy the BusLimits
5304 from the included BusConfigParser pack to the current parser.
5305 (process_test_valid_subdir): Renamed from process_test_subdir.
5306 (process_test_equiv_subdir): Added. Walks through a directory,
5307 descending into each subdirectory and loading the config files
5308 it finds there. If any subdirectory contains two config files
5309 that don't produce identical BusConfigParser structs, fail.
5310 For now, the BusConfigParser's BusPolicies are not compared.
5311 (bus_config_parser_test): Call both process_test_valid_subdir and
5312 process_test_equiv_subdir.
5314 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5315 argument and pass it along to the call to bus_config_parser_new.
5316 Also made a few small changes to allow this code to compile.
5318 * bus/config-loader-expat.c (bus_config_load): Take a parent
5319 argument and pass it along to the call to bus_config_parser_new.
5321 * bus/bus.c (bus_context_new): Load the config file
5322 with a NULL parent argument.
5324 2004-03-29 Michael Meeks <michael@ximian.com>
5326 * glib/dbus-gobject.c (introspect_properties): split
5327 out, fix mangled 'while' flow control.
5328 (introspect_signals): implement.
5329 (handle_introspect): update.
5331 2004-03-29 Michael Meeks <michael@ximian.com>
5333 * glib/dbus-gobject.c (set_object_property): split out /
5334 re-work, use the property type, and not the message type(!)
5335 (get_object_property): ditto.
5337 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5338 (dbus_gvalue_marshal): make this code re-usable, needed
5339 for signals too, also on both proxy and server side.
5340 Re-write for more efficiency / readability.
5342 2004-03-29 Michael Meeks <michael@ximian.com>
5344 * dbus/dbus-message.c
5345 (dbus_message_new_error_printf): impl.
5347 * dbus/dbus-connection.c
5348 (dbus_connection_unregister_object_path): fix warning.
5350 * configure.in: fix no-mono-installed situation.
5352 2004-03-27 Havoc Pennington <hp@redhat.com>
5354 Patch from Timo Teräs:
5356 * tools/dbus-send.c (main): if --print-reply, assume type is
5357 method call; support boolean type args
5359 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5360 bunch of memleak and logic bugs
5362 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5364 * mono/Arguments.cs:
5365 * mono/Introspector.cs:
5367 * mono/InterfaceProxy.cs:
5369 * mono/ProxyBuilder.cs:
5371 Added InterfaceProxy class to avoid building proxies for every
5375 * dbus-message.c (dbus_message_append_args_valist)
5376 (dbus_message_iter_get_object_path)
5377 (dbus_message_iter_get_object_path_array)
5378 (dbus_message_iter_append_object_path)
5379 (dbus_message_iter_append_object_path_array):
5380 Added object_path iter functions to handle OBJECT_PATH arguments
5382 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5384 First checkin of mono bindings.
5387 Build stuff for the bindings
5388 * dbus-sharp.pc.in: Added for pkgconfig
5390 2004-03-21 Havoc Pennington <hp@redhat.com>
5392 * test/test-service.c (main): remove debug spew
5394 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5396 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5399 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5400 (dbus_message_iter_init_array_iterator)
5401 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5402 indicate whether the iterator is empty
5404 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5407 2004-03-19 Havoc Pennington <hp@redhat.com>
5409 * NEWS: 0.21 updates
5411 * configure.in: 0.21
5413 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5415 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5416 you don't need pyrex to make dist
5418 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5421 2004-03-18 Richard Hult <richard@imendio.com>
5423 * dbus/dbus-message.c (dbus_message_get_auto_activation)
5424 (dbus_message_set_auto_activation): Add doxygen docs.
5426 2004-03-16 Richard Hult <richard@imendio.com>
5428 * bus/activation.c: (bus_activation_service_created),
5429 (bus_activation_send_pending_auto_activation_messages),
5430 (bus_activation_activate_service):
5432 * bus/dispatch.c: (bus_dispatch),
5433 (check_nonexistent_service_auto_activation),
5434 (check_service_auto_activated),
5435 (check_segfault_service_auto_activation),
5436 (check_existent_service_auto_activation), (bus_dispatch_test):
5437 * bus/driver.c: (bus_driver_handle_activate_service):
5438 * bus/services.c: (bus_registry_acquire_service):
5439 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5440 (dbus_message_get_auto_activation):
5441 * dbus/dbus-message.h:
5442 * dbus/dbus-protocol.h: Implement auto-activation.
5444 * doc/dbus-specification.xml: Add auto-activation to the spec.
5446 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
5448 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5449 fix a bug with CUSTOM types.
5451 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5452 a unit test for this bug (used to fail).
5454 2004-03-12 Mikael Hallendal <micke@imendio.com>
5457 (babysitter_watch_callback): notify all pending activations waiting for
5458 the same exec that the activation failed.
5459 (bus_activation_activate_service): shortcut the activation if we
5460 already waiting for the same executable to start up.
5462 2004-03-12 Mikael Hallendal <micke@imendio.com>
5465 - Added service file reloading.
5466 Each service files directory is kept in an hash table in
5467 BusActivation and each BusActivationEntry knows what .service-file it
5468 was read from. So when you try to activate a service the bus will
5469 check if it's been updated, removed or if new .service-files has
5471 - Test code at the bottom for the service file reloading.
5472 * bus/test-main.c: (main):
5474 - added service reloading test.
5475 * dbus/dbus-sysdeps.c:
5476 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5478 2004-03-08 Michael Meeks <michael@ximian.com>
5480 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
5481 bail immediately if disconnected, to avoid busy loop.
5483 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5484 cleanup cut/paste/inefficiency.
5486 2004-03-01 David Zeuthen <david@fubar.dk>
5488 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5489 bug where args were used twice. This bug resulted in a segfault
5490 on a Debian/PPC system when starting the messagebus daemon. Include
5491 dbus-sysdeps.h for DBUS_VA_COPY
5493 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5495 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5496 appropriate va_copy implementation. From GLib
5498 2004-02-24 Joe Shaw <joe@ximian.com>
5500 * bus/services.c (bus_registry_acquire_service): We need to pass
5501 in the service name to dbus_set_error() to prevent a crash.
5503 2003-12-26 Anders Carlsson <andersca@gnome.org>
5505 * AUTHORS: Reveal my True identity.
5507 2003-12-17 Mikael Hallendal <micke@imendio.com>
5509 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5510 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5512 2003-12-13 Mikael Hallendal <micke@imendio.com>
5514 * doc/TODO: Added not about better error check of configuration files.
5516 2003-12-02 Richard Hult <richard@imendio.com>
5518 * Update AFL version to 2.0 throughout the source files to reflect
5519 the update that was done a while ago.
5521 2003-12-02 Richard Hult <richard@imendio.com>
5523 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5524 wrote_dict_key to FALSE on the iter that the dict is appended to,
5525 just like when appending other types. Fixes a bug where a dict
5526 couldn't be put inside a dict.
5527 (dbus_message_iter_append_dict_key): Fix typo in warning message.
5528 (message_iter_test, _dbus_message_test): Add test case for dict
5531 2003-12-01 David Zeuthen <david@fubar.dk>
5533 * python/dbus.py: Add the actual message when calling the reciever
5534 of a signal such that parameters can be inspected. Add the method
5535 remove_signal_receiver
5537 2003-11-26 Mikael Hallendal <micke@imendio.com>
5541 * glib/*.[ch]: Made ref functions return the pointer
5543 2003-11-25 Zack Rusin <zack@kde.org>
5545 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5547 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
5550 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
5551 the Integrator and to better fit with the server,
5553 2003-11-24 Zack Rusin <zack@kde.org>
5555 * qt/connection.h, qt/connection.cpp: removing initDbus method since
5556 the integrator handles it now
5558 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5559 since QTimer wasn't really meant to be used the way DBusTimeout is
5561 2003-11-24 Zack Rusin <zack@kde.org>
5563 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
5564 Integrator class which integrates D-BUS with the Qt event loop,
5566 * qt/connection.h, qt/connection.cpp: Move all the code which
5567 was dealing with D-BUS integration to the Integrator class,
5568 and start using Integrator,
5570 2003-11-23 Zack Rusin <zack@kde.org>
5572 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
5575 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5576 switching namespaces to DBusQt, reworking the class,
5578 * Makefile.cvs: switching dependencies so that it matches KDE
5581 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
5584 2003-11-19 Havoc Pennington <hp@redhat.com>
5588 * configure.in: bump version to 0.20
5590 * configure.in (have_qt): add yet another place to look for qt
5591 (someone hand trolltech a .pc file...)
5593 2003-11-01 Havoc Pennington <hp@redhat.com>
5595 * doc/dbus-specification.xml: add state machine docs on the auth
5596 protocol; just a first draft, I'm sure it's wrong.
5598 2003-10-28 David Zeuthen <david@fubar.dk>
5600 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5601 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5603 2003-10-28 Havoc Pennington <hp@redhat.com>
5605 * dbus/dbus-message.c (get_next_field): delete unused function
5607 2003-10-28 Havoc Pennington <hp@redhat.com>
5609 * bus/expirelist.c (do_expiration_with_current_time): detect
5610 failure of the expire_func due to OOM
5612 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5614 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5615 NoReply error that's now created by the bus when the service exits
5617 2003-10-28 Havoc Pennington <hp@redhat.com>
5619 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5620 tests for set_path, set_interface, set_member, etc.
5622 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5624 * dbus/dbus-message.c (set_string_field): always just delete and
5625 re-append the field; accept NULL for deletion
5626 (re_align_fields_recurse): reimplement
5628 2003-10-26 Havoc Pennington <hp@redhat.com>
5630 * dbus/dbus-connection.c: fix docs to properly describe the
5631 disconnected message
5632 (_dbus_connection_notify_disconnected): remove this function;
5633 we can't synchronously add the disconnected message, we have to
5634 do it after we've queued any remaining real messages
5635 (_dbus_connection_get_dispatch_status_unlocked): queue the
5636 disconnect message only if the transport has finished queueing all
5637 its real messages and is disconnected.
5638 (dbus_connection_disconnect): update the dispatch status here
5640 2003-10-22 Havoc Pennington <hp@redhat.com>
5642 * bus/bus.c (bus_context_check_security_policy): fix up assertion
5644 * bus/connection.c (bus_transaction_send_from_driver): set the
5645 destination to the connection's base service
5647 2003-10-20 Havoc Pennington <hp@redhat.com>
5649 hmm, make check is currently not passing.
5651 * doc/dbus-specification.xml: add requirement that custom type
5652 names follow the same rules as interface names.
5654 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5655 duplication and allow 'c' to be 'custom'; dict is now 'm' for
5658 * doc/dbus-specification.xml: update type codes to match
5659 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5660 CUSTOM. Add type OBJECT_PATH to the spec.
5662 2003-10-17 Havoc Pennington <hp@redhat.com>
5664 * bus/driver.c (create_unique_client_name): use "." as separator
5665 in base service names instead of '-'
5667 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5668 byte at the end of the string
5670 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5671 optimization macros since string validation seems to be a slow
5674 * doc/dbus-specification.xml: restrict valid
5675 service/interface/member/error names. Add test suite code for the
5678 * dbus/dbus-string.c: limit service/interface/member/error names
5681 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5682 format arg to verbose spew
5684 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5685 memory, return instead of g_error
5687 * test/test-service.c (path_message_func): support emitting a
5690 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5691 activation bus type if DBUS_BUS_ACTIVATION was set; default to
5692 assuming the activation bus was the session bus so that services
5693 started manually will still register.
5694 (init_connections_unlocked): fix so that in OOM situation we get
5695 the same semantics when retrying the function
5697 * test/test-service.c (main): change to use path registration, to
5698 test those codepaths; register with DBUS_BUS_ACTIVATION rather
5699 than DBUS_BUS_SESSION
5701 2003-10-16 Havoc Pennington <hp@redhat.com>
5703 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5705 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5706 coverage of the tests
5707 (coverage-report.txt): don't move the .da and .bbg files around
5709 2003-10-16 Havoc Pennington <hp@redhat.com>
5711 * bus/bus.c (struct BusContext): remove struct field I didn't mean
5714 2003-10-16 Havoc Pennington <hp@redhat.com>
5716 * bus/connection.c (bus_pending_reply_expired): either cancel or
5718 (bus_connections_check_reply): use unlink, not remove_link, as we
5719 don't want to free the link; fixes double free mess
5721 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5722 where no reply was received
5724 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5727 * bus/signals.c (match_rule_matches): add special cases for the
5728 bus driver, so you can match on sender/destination for it.
5730 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5731 DBUS_PRINT_BACKTRACE is set
5733 * dbus/dbus-internals.c: add pid to assertion failure messages
5735 * dbus/dbus-connection.c: add message type code to the debug spew
5737 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5738 sender=foo not service=foo
5740 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5741 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
5742 DBUS_ACTIVATION_ADDRESS instead
5744 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5745 DBUS_SYSTEM_BUS_ADDRESS if appropriate
5747 * bus/bus.c (bus_context_new): handle OOM copying bus type into
5750 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5751 (dbus_message_iter_get_object_path_array): new function (half
5752 finished, disabled for the moment)
5754 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5755 DBUS_MESSAGE_TYPE_ERROR
5757 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5758 avoid redirecting stderr to /dev/null
5759 (babysit): close stdin if not doing the "exit_with_session" thing
5761 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5762 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5763 stdout/stdin, so things don't get confused
5765 * bus/system.conf.in: fix to allow replies, I modified .conf
5766 instead of .conf.in again.
5768 2003-10-14 David Zeuthen <david@fubar.dk>
5770 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5771 argtype to arg_type when raising unknown arg type exception.
5772 Changed type list to reflect the changes in dbus-protocol.h so
5773 the bindings actually work.
5775 2003-10-14 Havoc Pennington <hp@redhat.com>
5777 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5778 to have a bug keeping it from outputting the .da files sometimes
5779 (string_get_string): don't append garbage nul bytes to the string.
5781 2003-10-15 Seth Nickell <seth@gnome.org>
5783 * python/Makefile.am:
5785 Include dbus_h_wrapper.h in the dist tarball.
5787 2003-10-14 Havoc Pennington <hp@redhat.com>
5789 * bus/bus.c (bus_context_check_security_policy): revamp this to
5790 work more sanely with new policy-based requested reply setup
5792 * bus/connection.c (bus_transaction_send_from_driver): set bus
5793 driver messages as no reply
5795 * bus/policy.c (bus_client_policy_check_can_receive): handle a
5796 requested_reply attribute on allow/deny rules
5798 * bus/system.conf: add <allow requested_reply="true"/>
5800 * bus/driver.c (bus_driver_handle_message): fix check for replies
5801 sent to the bus driver, which was backward. How did this ever work
5802 at all though? I think I'm missing something.
5804 * dbus/dbus-message.c (decode_header_data): require error and
5805 method return messages to have a reply serial field to be valid
5806 (_dbus_message_loader_queue_messages): break up this function;
5807 validate that reply serial and plain serial are nonzero;
5808 clean up the OOM/error handling.
5809 (get_uint_field): don't return -1 from this
5810 (dbus_message_create_header): fix signed/unsigned bug
5812 * bus/connection.c (bus_connections_expect_reply): save serial of
5813 the incoming message, not reply serial
5815 2003-10-14 Havoc Pennington <hp@redhat.com>
5817 * bus/connection.c: implement pending reply tracking using
5820 * bus/bus.c (bus_context_check_security_policy): verify that a
5821 reply is pending in order to allow a reply to be sent. Deny
5822 messages of unknown type.
5824 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5826 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5827 (bus_context_get_reply_timeout): new
5829 2003-10-13 Seth Nickell <seth@gnome.org>
5831 * python/Makefile.am:
5833 Pass "make distcheck": remove a couple files from DIST_FILES
5834 that weren't included in the final version.
5836 2003-10-12 Havoc Pennington <hp@pobox.com>
5838 Added test code that 1) starts an actual bus daemon and 2) uses
5839 DBusGProxy; fixed bugs that were revealed by the test. Lots
5840 more testing possible, but this is the basic framework.
5842 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5843 empty proxy lists from the proxy list hash
5845 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5846 couple of return_if_fail checks
5848 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5849 to allocate, so everything is cleared to NULL as it should be.
5851 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5852 source as data to dbus_connection_set_timeout_functions() as the
5853 timeout functions expected
5855 * test/glib/run-test.sh: add a little script to start up a message
5856 bus and run tests using it
5858 * tools/dbus-launch.1: updates
5860 * tools/dbus-launch.c (main): add --config-file option
5862 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5863 that could never be reached.
5865 * dbus/dbus-message.c (dbus_message_new_method_return)
5866 (dbus_message_new_error, dbus_message_new_signal): set the
5867 no-reply-expected flag on all these. Redundant, but may
5868 as well be consistent.
5870 2003-10-11 Havoc Pennington <hp@pobox.com>
5872 * test/decode-gcov.c (function_solve_graph): make broken block
5873 graph a nonfatal error since it seems to be broken. Need to debug
5876 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5877 can't just check type > INVALID < LAST anymore
5879 * dbus/dbus-message.c (dbus_message_get_signature): new function
5880 (dbus_message_has_signature): new function
5881 (struct DBusMessage): add signature field (right now it isn't sent
5882 over the wire, just generated on the fly)
5883 (dbus_message_copy): copy the signature, and init strings to
5884 proper length to avoid some reallocs
5885 (dbus_message_iter_init_array_iterator): return void, since it
5887 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5888 (_dbus_message_loader_queue_messages): add silly temporary hack to
5889 fill in message->signature on load
5891 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5892 characters, so they are relatively human-readable.
5894 2003-10-11 Havoc Pennington <hp@pobox.com>
5896 * dbus/dbus-message.c (_dbus_message_test): add more test
5897 coverage, but #if 0 for now since they uncover a bug
5898 not fixed yet; I think in re_align_field_recurse()
5899 (re_align_field_recurse): add FIXME about broken assertion
5901 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5903 * bus/connection.c: share a couple code bits with expirelist.c
5905 * bus/expirelist.h, bus/expirelist.c: implement a generic
5906 expire-items-after-N-seconds facility, was going to share between
5907 expiring connections and replies, decided not to use for expiring
5908 connections for now.
5910 * COPYING: include AFL 2.0 (still need to change all the file headers)
5912 2003-10-09 Havoc Pennington <hp@redhat.com>
5914 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5915 gcc 3.3. Not that we do anything about it yet.
5917 * bus/signals.c (bus_match_rule_parse): impose max length on the
5920 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5922 2003-10-09 Havoc Pennington <hp@redhat.com>
5924 Make matching rules theoretically work (add parser).
5926 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5927 the case where destination is explicitly specified as bus driver
5928 and someone else is eavesdropping.
5930 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5931 definition of eavesdropping and assertion
5933 * tools/dbus-send.c (main): use dbus_message_type_from_string
5935 * bus/signals.c (bus_match_rule_parse): implement
5937 * dbus/dbus-message.c (dbus_message_type_from_string): new
5939 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5941 2003-10-02 Havoc Pennington <hp@pobox.com>
5943 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5944 dbus_gproxy_oneway_call
5946 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5947 (dbus_server_setup_with_g_main): fix to allow calling them more
5948 than once on the same args
5949 (dbus_bus_get_with_g_main): new function
5951 2003-10-02 Havoc Pennington <hp@redhat.com>
5953 * doc/dbus-tutorial.xml: write some stuff
5955 2003-09-29 Havoc Pennington <hp@pobox.com>
5957 * configure.in: split checks for Doxygen from XML docs, check for
5960 * doc/Makefile.am: XML-ify all the docs, and add a blank
5963 2003-09-29 Havoc Pennington <hp@pobox.com>
5965 * Merge dbus-object-names branch. To see the entire patch
5966 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5967 it's huuuuge though.
5968 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5970 2003-09-28 Havoc Pennington <hp@pobox.com>
5972 * HACKING: update to reflect new server
5974 2003-09-26 Seth Nickell <seth@gnome.org>
5977 * python/examples/example-signals.py:
5979 Start implementing some notions of signals. The API
5980 is really terrible, but they sort of work (with the
5981 exception of being able to filter by service, and to
5982 transmit signals *as* a particular service). Need to
5983 figure out how to make messages come from the service
5986 * python/dbus_bindings.pyx.in:
5988 Removed duplicate message_handler callbacks.
5990 2003-09-25 Havoc Pennington <hp@redhat.com>
5992 * bus/session.conf.in: fix my mess
5994 2003-09-25 Havoc Pennington <hp@pobox.com>
5996 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5998 2003-09-25 Seth Nickell <seth@gnome.org>
6000 * python/examples/example-service.py:
6002 Johan notices complete wrong code in example-service, but
6003 completely wrong in a way that works exactly the same (!).
6004 Johan is confused, how could this possibly work? Example
6005 code fails to serve purpose of making things clear.
6008 2003-09-25 Mark McLoughlin <mark@skynet.ie>
6010 * doc/dbus-specification.sgml: don't require header fields
6011 to be 4-byte aligned and specify that fields should be
6012 distinguished from padding by the fact that zero is not
6015 * doc/TODO: remove re-alignment item and add item to doc
6016 the OBJECT_PATH type.
6018 * dbus/dbus-message.c:
6019 (HeaderField): rename the original member to value_offset
6020 and introduce a name_offset member to keep track of where
6021 the field actually begins.
6022 (adjust_field_offsets): remove.
6023 (append_int_field), (append_uint_field),
6024 (append_string_field): don't align the start of the header
6025 field to a 4-byte boundary.
6026 (get_next_field): impl finding the next marhsalled field
6027 after a given field.
6028 (re_align_field_recurse): impl re-aligning a number of
6029 already marshalled fields.
6030 (delete_field): impl deleting a field of any type and
6031 re-aligning any following fields.
6032 (delete_int_or_uint_field), (delete_string_field): remove.
6033 (set_int_field), (set_uint_field): no need to re-check
6034 that we have the correct type for the field.
6035 (set_string_field): ditto and impl re-aligning any
6037 (decode_header_data): update to take into account that
6038 the fields aren't 4-byte aligned any more and the new
6039 way to distinguish padding from header fields. Also,
6040 don't exit when there is too much header padding.
6041 (process_test_subdir): print the directory.
6042 (_dbus_message_test): add test to make sure a following
6043 field is re-aligned correctly after field deletion.
6045 * dbus/dbus-string.[ch]:
6046 (_dbus_string_insert_bytes): rename from insert_byte and
6047 allow the insert of multiple bytes.
6048 (_dbus_string_test): test inserting multiple bytes.
6050 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6051 warning note to docs about having to re-align any
6052 marshalled values following the string.
6054 * dbus/dbus-message-builder.c:
6055 (append_string_field), (_dbus_message_data_load):
6056 don't align the header field.
6058 * dbus/dbus-auth.c: (process_test_subdir): print the
6061 * test/break-loader.c: (randomly_add_one_byte): upd. for
6064 * test/data/invalid-messages/bad-header-field-alignment.message:
6067 * test/data/valid-messages/unknown-header-field.message: shove
6068 a dict in the unknown field.
6070 2003-09-25 Seth Nickell <seth@gnome.org>
6073 * python/dbus_bindings.pyx.in:
6075 Handle return values.
6077 * python/examples/example-client.py:
6078 * python/examples/example-service.py:
6080 Pass back return values from the service to the client.
6082 2003-09-24 Seth Nickell <seth@gnome.org>
6086 Connect Object methods (when you are sharing an object) up... pass
6087 in a list of methods to be shared. Sharing all the methods just
6088 worked out too weird. You can now create nice Services over the
6091 * python/dbus_bindings.pyx.in:
6093 Keep references to user_data tuples passed into C functions so
6094 Python doesn't garbage collect on us.
6096 Implement MethodReturn and Error subclasses of Message for creating
6097 DBusMessage's of those types.
6099 * python/examples/example-client.py:
6100 * python/examples/example-service.py:
6102 Simple example code showing both how create DBus services and objects,
6103 and how to use them.
6105 2003-09-23 Havoc Pennington <hp@pobox.com>
6107 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6109 2003-09-23 Havoc Pennington <hp@redhat.com>
6111 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6112 (dbus_gproxy_disconnect_signal): implement
6113 (dbus_gproxy_manager_remove_signal_match): implement
6114 (dbus_gproxy_manager_add_signal_match): implement
6115 (dbus_gproxy_oneway_call): implement
6117 2003-09-23 Havoc Pennington <hp@pobox.com>
6119 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6120 subclass. This means dropping the transparent thread safety of the
6121 proxy; you now need a separate proxy per-thread, or your own
6122 locking on the proxy. Probably right anyway.
6123 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6125 2003-09-22 Havoc Pennington <hp@redhat.com>
6127 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6129 2003-09-21 Seth Nickell <seth@gnome.org>
6131 First checkin of the Python bindings.
6133 * python/.cvsignore:
6134 * python/Makefile.am:
6135 * python/dbus_bindings.pyx.in:
6136 * python/dbus_h_wrapper.h:
6138 Pieces for Pyrex to operate on, building a dbus_bindings.so
6139 python module for low-level access to the DBus APIs.
6143 High-level Python module for accessing DBus objects.
6148 Build stuff for the python bindings.
6152 Extra macro needed for finding the Python C header files.
6154 2003-09-21 Havoc Pennington <hp@pobox.com>
6156 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6157 implementing the proxy manager, didn't get very far.
6159 * dbus/dbus-bus.c (dbus_bus_add_match): new
6160 (dbus_bus_remove_match): new
6162 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6163 path_name argument; adjust the other not-yet-implemented
6164 gproxy constructors to be what I think they should be.
6166 2003-09-21 Havoc Pennington <hp@pobox.com>
6168 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6169 by default for message bus connections.
6171 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6172 exit_on_disconnect flag is set and we process the disconnected
6174 (dbus_connection_set_exit_on_disconnect): new function
6176 2003-09-21 Havoc Pennington <hp@pobox.com>
6178 Get matching rules mostly working in the bus; only actually
6179 parsing the rule text remains. However, the client side of
6180 "signal connections" hasn't been started, this patch is only the
6183 * dbus/dispatch.c: fix for the matching rules changes
6185 * bus/driver.c (bus_driver_handle_remove_match)
6186 (bus_driver_handle_add_match): send an ack reply from these
6189 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6190 arguments, reported by Seth Nickell
6192 * bus/config-parser.c (append_rule_from_element): support
6193 eavesdrop=true|false attribute on policies so match rules
6194 can be prevented from snooping on the system bus.
6196 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6197 and "destination" in attribute names; fix some docs bugs;
6198 add eavesdrop=true|false attribute
6200 * bus/driver.c (bus_driver_handle_add_match)
6201 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6204 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6205 rid of broadcast service concept, signals are just always broadcast
6207 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6208 mostly implement matching rules stuff (currently only exposed as signal
6211 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6213 * doc/dbus-specification.sgml: Change the header field name
6214 to be an enum and update the rest of the spec to reference
6215 the fields using the conventinal name.
6217 * dbus/dbus-protocol.h: update to reflect the spec.
6219 * doc/TODO: add item to remove the 4 byte alignment requirement.
6221 * dbus/dbus-message.c: Remove the code to generalise the
6222 header/body length and serial number header fields as named
6223 header fields so we can reference field names using the
6225 (append_int_field), (append_uint_field), (append_string_field):
6226 Append the field name as a byte rather than four chars.
6227 (delete_int_or_uint_field), (delete_string_field): reflect the
6228 fact that the field name and typecode now occupy 4 bytes instead
6230 (decode_string_field), (decode_header_data): update to reflect
6231 protocol changes and move the field specific encoding from
6232 decode_string_field() back into decode_header_data().
6234 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6235 Add utility to aid debugging.
6237 * dbus/dbus-message-builder.c:
6238 (append_string_field), (_dbus_message_data_load): Update to
6239 reflect protocol changes; Change the FIELD_NAME directive
6240 to HEADER_FIELD and allow it to take the field's conventional
6241 name rather than the actual value.
6243 * test/data/*/*.message: Update to use HEADER_FIELD instead
6244 of FIELD_NAME; Always align the header on an 8 byte boundary
6245 *before* updating the header length.
6247 2003-09-15 Havoc Pennington <hp@pobox.com>
6249 * dbus/dbus-pending-call.c: add the get/set object data
6250 boilerplate as for DBusConnection, etc. Use generic object data
6251 for the notify callback.
6253 * glib/dbus-gparser.c (parse_node): parse child nodes
6255 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6257 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6258 contain functions shared between the convenience lib and the
6261 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6262 -export-symbols-regex to the GLib library
6264 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6265 fix the locking in here, and add a default handler for
6266 Introspect() that just returns sub-nodes.
6268 2003-09-14 Havoc Pennington <hp@pobox.com>
6270 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6271 rather than gfoo consistent
6273 * glib/dbus-gproxy.h: delete for now, move contents to
6274 dbus-glib.h, because the include files don't work right since we
6275 aren't in the dbus/ subdir.
6277 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6278 (dbus_gproxy_end_call): finish
6279 (dbus_gproxy_begin_call): finish
6281 * glib/dbus-gmain.c (dbus_set_g_error): new
6283 * glib/dbus-gobject.c (handle_introspect): include information
6284 about child nodes in the introspection
6286 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6287 function to help in implementation of introspection
6289 * dbus/dbus-object-tree.c
6290 (_dbus_object_tree_list_registered_and_unlock): new function
6292 2003-09-12 Havoc Pennington <hp@pobox.com>
6294 * glib/dbus-gidl.h: add common base class for all the foo_info
6297 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6300 * test/Makefile.am: try test srcdir -ef . in addition to test
6301 srcdir = ., one of them should work (yeah lame)
6303 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6306 * glib/dbus-gparser.h: make description_load routines return
6307 NodeInfo* not Parser*
6309 * Makefile.am (SUBDIRS): build test dir after all library dirs
6311 * configure.in: add GTK+ detection
6313 2003-09-07 Havoc Pennington <hp@pobox.com>
6315 * Make Doxygen contented.
6317 2003-09-07 Havoc Pennington <hp@pobox.com>
6319 * doc/dbus-specification.sgml: more updates
6321 2003-09-06 Havoc Pennington <hp@pobox.com>
6323 * doc/dbus-specification.sgml: partial updates
6325 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6326 zillionth time; hopefully I edited the right file this time.
6328 * bus/config-parser.c (append_rule_from_element): support
6329 send_type, send_path, receive_type, receive_path
6331 * bus/policy.c: add message type and path to the list of things
6332 that can be "firewalled"
6334 2003-09-06 Havoc Pennington <hp@pobox.com>
6336 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6337 (dbus_connection_register_object_path): make this not handle
6338 messages to paths below the given path
6340 2003-09-03 Havoc Pennington <hp@pobox.com>
6342 * test/glib/Makefile.am: add this with random glib-linked test
6345 * glib/Makefile.am: remove the random test programs from here,
6346 leave only the unit tests
6348 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6349 uscore/javacaps conversion, and fix
6350 (get_object_property, set_object_property): change to .NET
6351 convention for mapping props to methods, set_FooBar/get_FooBar,
6352 since one language has such a convention we may as well copy it.
6353 Plus real methods in either getFooBar or get_foo_bar style won't
6354 collide with this convention.
6356 2003-09-01 Havoc Pennington <hp@pobox.com>
6358 * glib/dbus-gparser.c: implement
6360 * glib/dbus-gobject.c: start implementing skeletons support
6362 * configure.in: when disabling checks/assert, also define
6363 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6365 2003-09-01 Havoc Pennington <hp@pobox.com>
6367 * glib/Makefile.am: rearrange a bunch of files and get "make
6368 check" framework set up
6370 2003-08-31 Havoc Pennington <hp@pobox.com>
6372 * fix build with --disable-tests
6374 2003-08-30 Havoc Pennington <hp@pobox.com>
6376 * dbus/dbus-connection.c: purge DBusMessageHandler
6378 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6379 use callbacks everywhere
6381 2003-08-30 Havoc Pennington <hp@pobox.com>
6383 * test/data/valid-config-files/system.d/test.conf: change to
6384 root for the user so warnings don't get printed
6386 * dbus/dbus-message.c: add dbus_message_get_path,
6387 dbus_message_set_path
6389 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6390 dispatching to a path
6392 * dbus/dbus-string.c (_dbus_string_validate_path): add
6394 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6395 (_dbus_marshal_object_path): implement
6397 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
6398 to contain the path to the target object
6399 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6400 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6402 2003-08-30 Havoc Pennington <hp@pobox.com>
6404 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6406 2003-08-29 Havoc Pennington <hp@pobox.com>
6408 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6410 (struct DBusObjectSubtree): shrink this
6411 a lot, since we may have a lot of them
6412 (_dbus_object_tree_free_all_unlocked): implement
6413 (_dbus_object_tree_dispatch_and_unlock): implement
6415 2003-08-29 Havoc Pennington <hp@pobox.com>
6417 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6419 2003-08-28 Havoc Pennington <hp@pobox.com>
6423 * dbus/dbus-connection.c: port to no ObjectID, create a
6424 DBusObjectTree, rename ObjectTree to ObjectPath in public API
6426 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
6427 everything except UnregisterFunction and MessageFunction
6429 * dbus/dbus-marshal.c: port away from DBusObjectID,
6430 add DBUS_TYPE_OBJECT_PATH
6432 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
6433 dbus/dbus-objectid.[hc]: remove these, we are moving to
6434 path-based object IDs
6436 2003-08-25 Havoc Pennington <hp@pobox.com>
6438 Just noticed that dbus_message_test is hosed, I wonder when I
6439 broke that. I thought make check was passing earlier...
6441 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
6442 container tree, will replace most of dbus-object-registry
6444 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6447 2003-08-19 Havoc Pennington <hp@pobox.com>
6449 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6450 (dbus_message_is_error): fix this function
6452 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6455 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6456 reflect clarified man page
6457 (bus_client_policy_check_can_send): ditto
6459 * bus/session.conf.in: fixup
6461 * bus/system.conf.in: fixup
6463 2003-08-18 Havoc Pennington <hp@redhat.com>
6465 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6467 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6468 dumb bug created earlier (wrong order of args to
6469 decode_header_data())
6471 * tools/dbus-send.c: port
6473 * tools/dbus-print-message.c (print_message): port
6475 * test/data/*messages: port all messages over
6477 * dbus/dbus-message-builder.c: support including
6480 * bus/driver.c: port over
6482 * bus/dispatch.c: port over to new stuff
6484 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6485 rename disconnect signal to "Disconnected"
6487 2003-08-17 Havoc Pennington <hp@pobox.com>
6489 This doesn't compile yet, but syncing up so I can hack on it from
6490 work. What are branches for if not broken code? ;-)
6492 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6493 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6494 DBUS_HEADER_FIELD_ERROR_NAME
6496 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6497 for the interface+member pairs
6498 (string_hash): change to use g_str_hash algorithm
6499 (find_direct_function, find_string_function): refactor these to
6502 * dbus/dbus-message.c: port all of this over to support
6503 interface/member fields instead of name field
6505 * dbus/dbus-object-registry.c: port over
6507 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6508 from _dbus_string_validate_name
6510 * bus/dbus-daemon-1.1: change file format for the
6511 <deny>/<allow> stuff to match new message naming scheme
6513 * bus/policy.c: port over
6515 * bus/config-parser.c: parse new format
6517 2003-08-16 Havoc Pennington <hp@pobox.com>
6519 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6522 * glib/dbus-gproxy.c: some hacking
6524 2003-08-15 Havoc Pennington <hp@redhat.com>
6526 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6528 * dbus/dbus-connection.c
6529 (dbus_connection_send_with_reply_and_block): factor out internals;
6530 change to convert any error replies to DBusError instead of
6531 returning them as a message
6533 2003-08-15 Havoc Pennington <hp@pobox.com>
6535 * dbus/dbus-connection.c,
6536 dbus/dbus-pending-call.c: Finish the pending call stuff
6538 2003-08-14 Havoc Pennington <hp@redhat.com>
6540 * dbus/dbus-pending-call.c: start on new object that will replace
6541 DBusMessageHandler and ReplyHandlerData for tracking outstanding
6544 * dbus/dbus-gproxy.c: start on proxy object used to communicate
6545 with remote interfaces
6547 * dbus/dbus-gidl.c: do the boring boilerplate in here
6549 2003-08-12 Havoc Pennington <hp@pobox.com>
6551 * bus/dispatch.c (bus_dispatch): make this return proper
6552 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6554 * dbus/dbus-errors.c (dbus_set_error): use
6555 _dbus_string_append_printf_valist
6557 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6558 (_dbus_string_append_printf): new
6560 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6563 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6564 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6565 message is unhandled.
6567 2003-08-11 Havoc Pennington <hp@pobox.com>
6569 * bus/test.c (client_disconnect_handler): change to return
6570 HANDLED (would have been REMOVE_MESSAGE)
6572 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6573 HANDLED/NOT_YET_HANDLED instead of
6574 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
6577 2003-08-10 Havoc Pennington <hp@pobox.com>
6579 * tools/dbus-send.c (main): add --type argument, for now
6580 supporting only method_call and signal types.
6582 * tools/dbus-print-message.c: print message type
6584 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6585 init connection->objects
6587 * doc/dbus-specification.sgml: fix sgml
6589 * bus/*.c: port over to object-instance API changes
6591 * test/test-service.c: ditto
6593 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6594 name, we will have to fix up the rest of the code to also handle
6596 (dbus_message_new): generic message-creation call
6597 (set_string_field): allow appending name field
6599 2003-08-06 Havoc Pennington <hp@pobox.com>
6601 * dbus/dbus-object-registry.c: implement signal connection
6604 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6606 * dbus/dbus-internals.c (_dbus_memdup): new function
6608 2003-08-02 Havoc Pennington <hp@pobox.com>
6610 * dbus/dbus-message.c (dbus_message_get_no_reply)
6611 (dbus_message_set_no_reply): add these and remove
6612 set_is_error/get_is_error
6614 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
6615 remove the ERROR flag, since there's now an ERROR type
6617 2003-08-01 Havoc Pennington <hp@pobox.com>
6619 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6622 * dbus/dbus-message.c (dbus_message_get_type): new function
6624 * doc/dbus-specification.sgml: add "type" byte to messages
6626 2003-08-01 Havoc Pennington <hp@pobox.com>
6628 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6629 a message type enum to distinguish kinds of message
6630 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
6631 that need not be replied to
6633 2003-08-01 Havoc Pennington <hp@pobox.com>
6635 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6636 (unpack_8_octets): fix no-64-bit-int bug
6638 * dbus/dbus-object-registry.c (validate_id): validate the
6639 connection ID bits, not just the instance ID.
6641 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6642 the connection-global 33 bits of the object ID
6644 * dbus/dbus-object-registry.c (info_from_entry): fill in
6645 object ID in the new way
6647 * dbus/dbus-objectid.h: rather than high/low bits, specifically
6648 define server/client/instance bits.
6650 2003-07-30 Havoc Pennington <hp@pobox.com>
6652 * dbus/dbus-connection.c (dbus_connection_register_object): fix
6655 2003-07-13 Havoc Pennington <hp@pobox.com>
6657 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6658 fields to DBusObjectVTable and DBusObjectInfo
6660 2003-07-12 Havoc Pennington <hp@pobox.com>
6662 * dbus/dbus-object-registry.c: implement unit test,
6663 fix bugs discovered in process
6665 * dbus/dbus-connection.c: remove handler_table and
6666 register_handler(), add DBusObjectRegistry usage
6668 * dbus/dbus-objectid.c (dbus_object_id_is_null)
6669 (dbus_object_id_set_null): new functions
6671 2003-07-08 Havoc Pennington <hp@pobox.com>
6673 * dbus/dbus-object.c: implement some of this
6675 * dbus/dbus-object-registry.c
6676 (_dbus_object_registry_add_and_unlock): fill in the object_id out
6678 (_dbus_object_registry_new): handle OOM
6680 2003-07-08 Havoc Pennington <hp@pobox.com>
6682 * dbus/dbus-object.h: sketch out an API for registering objects
6683 with a connection, that allows us to use as little as 24 bytes
6684 per object and lets application code represent an object in
6685 any conceivable way.
6687 * dbus/dbus-object-registry.c: implement the hard bits of the
6688 DBusConnection aspect of object API. Not yet wired up.
6690 2003-07-06 Havoc Pennington <hp@pobox.com>
6692 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6693 (_dbus_marshal_object_id): new
6694 (_dbus_demarshal_object_id): new
6695 (_dbus_marshal_get_arg_end_pos): support object ID type, and
6696 consolidate identical switch cases. Don't conditionalize handling
6697 of DBUS_TYPE_UINT64, need to handle the type always.
6698 (_dbus_marshal_validate_arg): consolidate identical cases, and
6699 handle DBUS_TYPE_OBJECT_ID
6701 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6703 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6705 2003-09-28 Havoc Pennington <hp@pobox.com>
6709 2003-09-28 Havoc Pennington <hp@pobox.com>
6711 * doc/Makefile.am (dbus-specification.html): testing a funky hack
6712 to work with Debian db2html
6714 2003-09-28 Havoc Pennington <hp@pobox.com>
6716 * configure.in: 0.13
6718 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6719 stylesheet-images for benefit of Debian
6721 Change back to using filesystem-linked sockets for the system
6722 bus, so only root can create the default system bus address.
6724 * bus/system.conf.in: change to use
6725 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6727 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6730 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6731 here, and AC_DEFINE DBUS_SYSTEM_PATH
6733 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6736 * doc/busconfig.dtd:
6739 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6741 * doc/dbus-specification.sgml:
6742 Add activation reply values.
6744 2003-08-05 Havoc Pennington <hp@redhat.com>
6746 * configure.in: 0.12
6748 2003-08-05 Anders Carlsson <andersca@codefactory.se>
6750 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6751 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6752 (add_watch), (remove_watch), (create_source):
6753 Refcount fds, fixes some reentrancy issues.
6755 2003-07-30 Havoc Pennington <hp@redhat.com>
6757 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6758 bus address to be abstract if we have abstract sockets
6762 2003-07-28 Havoc Pennington <hp@redhat.com>
6764 * bus/messagebus.in: fix to avoid processname/servicename
6765 confusion, from Michael Kearey
6766 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6768 2003-07-23 Havoc Pennington <hp@pobox.com>
6770 * dbus/dbus-message.c (dbus_message_iter_get_named):
6771 fix from Andy Hanton to remove broken "+1"
6773 2003-07-16 Havoc Pennington <hp@pobox.com>
6775 * tools/dbus-launch.c (babysit): close stdout/stderr in the
6776 babysitter process, as suggested by Thomas Leonard, so
6777 an "eval `dbus-launch --exit-with-session`" will actually
6780 2003-07-16 Havoc Pennington <hp@pobox.com>
6782 * configure.in: print out EXPANDED_* variables in the summary at
6783 the end; clean up the code that computes EXPANDED_ variables and
6784 get the ones using exec_prefix right. Should make things work
6785 when you build without --prefix
6787 2003-06-29 Havoc Pennington <hp@pobox.com>
6789 * mono/Test.cs (class Test): fire up a main loop and run it
6791 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6792 done once, the app has to do it
6794 2003-06-26 Havoc Pennington <hp@pobox.com>
6796 * mono/Connection.cs: set up connection with the glib main loop
6798 2003-07-01 Havoc Pennington <hp@redhat.com>
6800 * doc/dbus-specification.sgml: clarify the format of a type code,
6801 change suggested by Jim Blandy
6803 2003-06-29 Miloslav Trmac <mitr@volny.cz>
6806 * tools/Makefile.am: Don't assume srcdir == builddir.
6808 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6809 the allocated block.
6810 (_dbus_memory_test): New function.
6811 * dbus/dbus-test.h: Add _dbus_memory_test ().
6812 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6814 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6816 (dbus_message_new): Remove obsolete @todo.
6818 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6819 (_dbus_marshal_set_uint64): Fix comment.
6821 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6822 hardcode FIELD_REPLY_SERIAL.
6824 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6825 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6827 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6828 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6830 2003-06-24 Havoc Pennington <hp@pobox.com>
6832 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6834 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6840 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6841 * gcj/org/.cvsignore:
6842 * gcj/org/Makefile.am:
6843 * gcj/org/freedesktop/.cvsignore:
6844 * gcj/org/freedesktop/Makefile.am:
6845 * gcj/org/freedesktop/dbus/.cvsignore:
6846 * gcj/org/freedesktop/dbus/Makefile.am:
6847 * gcj/org/freedesktop/dbus/Message.java: (Message),
6849 * gcj/org/freedesktop/dbus/natMessage.cc:
6850 Fix the build system.
6852 2003-06-22 Havoc Pennington <hp@pobox.com>
6854 * mono/Connection.cs: add more bindings
6856 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6859 2003-06-22 Havoc Pennington <hp@pobox.com>
6861 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6862 Start wrapping more stuff.
6864 2003-06-22 Havoc Pennington <hp@pobox.com>
6866 * mono/Message.cs: implement Message.Wrap() that ensures we only
6867 have a single C# wrapper per DBusMessage, assuming it works which
6868 it probably doesn't.
6870 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6871 (dbus_message_free_data_slot): new
6872 (dbus_message_set_data): new
6873 (dbus_message_get_data): new
6875 2003-06-22 Havoc Pennington <hp@pobox.com>
6877 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6878 (_dbus_data_slot_allocator_alloc): rework these to keep a
6879 reference count on each slot and automatically manage a global
6880 slot ID variable passed in by address
6882 * bus/bus.c: convert to new dataslot API
6884 * dbus/dbus-bus.c: convert to new dataslot API
6886 * dbus/dbus-connection.c: convert to new dataslot API
6888 * dbus/dbus-server.c: convert to new dataslot API
6890 * glib/dbus-gmain.c: ditto
6894 * bus/connection.c: ditto
6896 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6898 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6899 after the gcj checks so that the correct configuration tags
6900 will be added to libtool.
6902 * dbus-glib-1.pc.in: No need to specify any includes since
6903 dbus-1.pc.in has those.
6905 2003-06-22 Havoc Pennington <hp@pobox.com>
6907 * mono/*, gcj/*, configure.in, Makefile.am:
6908 Check in makefiles and subdirs for mono and gcj bindings.
6909 Neither binding actually exists, just trying to get through
6910 all the build and other boring bits.
6912 2003-06-21 Philip Blundell <philb@gnu.org>
6914 * tools/dbus-monitor.1: Updated.
6916 * tools/dbus-send.1: Likewise.
6918 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6920 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6921 for hangup and error after checking read so we won't discard
6922 pending data if both hangup and read are set.
6924 2003-06-19 Philip Blundell <philb@gnu.org>
6926 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6928 * tools/dbus-send.c: Accept both --system and --session.
6930 * tools/dbus-monitor.c: Same here.
6932 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6934 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6935 from C++ (Patch by Miloslav Trmac).
6937 2003-06-15 Joe Shaw <joe@assbarn.com>
6939 * configure.in: Check for socklen_t.
6941 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6943 * test/test-segfault.c: Add #include <sys/time.h>
6945 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6946 dbus-launch needs it.
6948 2003-06-09 Havoc Pennington <hp@redhat.com>
6950 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6951 SUN_LEN, it breaks abstract socket usage
6953 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6956 2003-06-04 Havoc Pennington <hp@pobox.com>
6958 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6959 using unix:abstract=/foo, and when listening in a tmpdir
6960 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6962 * dbus/dbus-transport.c (_dbus_transport_open): support
6965 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6966 support abstract sockets
6968 * dbus/dbus-transport-unix.c
6969 (_dbus_transport_new_for_domain_socket): support abstract sockets
6971 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6972 toggle as an argument, implement abstract namespace support
6973 (_dbus_listen_unix_socket): ditto
6975 * configure.in: add --enable-abstract-sockets and implement
6976 a configure check for autodetection of the right value.
6978 2003-06-01 Havoc Pennington <hp@pobox.com>
6980 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6981 in /tmp (though on Linux this will end up being useless,
6982 when we add abstract namespace support)
6984 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6987 2003-05-28 Colin Walters <walters@verbum.org>
6989 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6991 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6993 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6995 2003-05-17 Colin Walters <walters@gnu.org>
6997 * tools/dbus-send.c: Don't exit with an error code if --help was
6998 passed. Default to using the session bus instead of the system
7001 * tools/dbus-launch.c: Ditto.
7003 * tools/dbus-monitor.c: Ditto.
7005 * tools/dbus-send.1: Update with new arguments.
7007 * tools/dbus-launch.c: Emit code to export variables. New
7008 arguments -s and -c to specify shell syntax, and a bit of code to
7009 autodetect syntax. Also, allow specifying a program to run.
7011 * tools/dbus-launch.1: Update with new arguments.
7013 * tools/dbus-send.1: Ditto.
7015 * tools/dbus-monitor.1: Ditto.
7017 2003-05-17 Havoc Pennington <hp@pobox.com>
7019 * bus/config-parser.c (merge_included): merge in policies from
7020 child configuration file.
7022 * bus/policy.c (bus_policy_merge): function to merge two policies
7025 2003-05-16 Havoc Pennington <hp@redhat.com>
7027 * dbus/dbus-connection.c: disable verbose lock spew
7029 * tools/dbus-send.c: add --print-reply command line option
7031 * tools/dbus-print-message.h (print_message): new util function
7032 shared by dbus-send and dbus-monitor
7034 * tools/dbus-monitor.c (handler_func): exit on disconnect
7036 * dbus/dbus-transport-unix.c (do_reading): if the transport is
7037 disconnected, don't try to use the read_watch
7039 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7040 so we can find this bug more easily
7042 2003-05-16 Havoc Pennington <hp@redhat.com>
7044 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7045 NULL as DBusHashTable is annoyingly likely to do.
7047 2003-05-16 Colin Walters <walters@verbum.org>
7049 * tools/dbus-monitor.c: Add --session argument and usage()
7052 * tools/dbus-monitor.1: Update with new --session arg.
7054 * bus/Makefile.am (install-data-hook): Create
7055 $(libdir)/dbus-1.0/services so that the session bus is happy.
7057 2003-05-15 Havoc Pennington <hp@redhat.com>
7059 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7060 on non-x86. ifdef's are evil.
7062 2003-05-15 Havoc Pennington <hp@redhat.com>
7064 * configure.in: 0.11
7068 * bus/Makefile.am (initddir): apparently we are supposed to put
7069 init scripts in /etc/rc.d/init.d not /etc/init.d
7071 * bus/Makefile.am: remove the "you must --enable-tests to make
7072 check" as it broke distcheck
7074 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7076 2003-05-13 James Willcox <jwillcox@gnome.org>
7079 * bus/activation.c: (bus_activation_service_created),
7080 (bus_activation_activate_service):
7081 * bus/driver.c: (bus_driver_send_service_deleted),
7082 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7083 (bus_driver_send_service_acquired),
7084 (bus_driver_send_welcome_message),
7085 (bus_driver_handle_list_services):
7086 * bus/session.conf.in:
7087 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7088 (dbus_bus_service_exists), (dbus_bus_activate_service):
7091 Add some convenience API which lets you activate a service, and did a
7092 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7093 and dbus_message_get_args()
7095 2003-05-11 Havoc Pennington <hp@pobox.com>
7097 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7098 calling _dbus_marshal_validate_arg() for every byte in a byte
7101 * dbus/dbus-message-handler.c: use atomic reference counting to
7102 reduce number of locks slightly; the global lock in here sucks
7104 * dbus/dbus-connection.c
7105 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7106 update_dispatch_status that can be called with lock held; then use
7107 in a couple places to reduce locking/unlocking
7108 (dbus_connection_send): hold the lock over the whole function
7109 instead of acquiring it twice.
7111 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7113 * bus/connection.c (bus_connections_setup_connection): fix access
7114 to already-freed memory.
7116 * dbus/dbus-connection.c: keep a little cache of linked list
7117 nodes, to avoid using the global linked list alloc lock in the
7118 normal send-message case. Instead we just use the connection lock
7119 that we already have to take.
7121 * dbus/dbus-list.c (_dbus_list_find_last): new function
7123 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7124 change to use a struct for the atomic type; fix docs,
7125 they return value before increment, not after increment.
7127 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7128 (_dbus_string_append_8_aligned): new functions to try to
7129 microoptimize this operation.
7130 (reallocate_for_length): break this out of set_length(), to
7131 improve profile info, and also so we can consider inlining the
7134 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7135 strings with some preallocation, cuts down on our calls to realloc
7136 a fair bit. Though if we can get the "move entire string to empty
7137 string" optimization below to kick in here, it would be better.
7139 * dbus/dbus-string.c (_dbus_string_move): just call
7140 _dbus_string_move_len
7141 (_dbus_string_move_len): add a special case for moving
7142 an entire string into an empty string; we can just
7143 swap the string data instead of doing any reallocs.
7144 (_dbus_string_init_preallocated): new function
7146 2003-05-11 Havoc Pennington <hp@pobox.com>
7148 Write a "test-profile" that does echo client-server with threads;
7149 profile reveals lock contention, memcpy/realloc of buffers, and
7150 UTF-8 validation as hot spots. 20% of lock contention eliminated
7151 with dbus_atomic_inc/dec implementation on x86. Much remaining
7152 contention is global mempool locks for GList and DBusList.
7154 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7157 * dbus/dbus-connection.c (struct DBusConnection): use
7158 dbus_atomic_t for the reference count
7160 * dbus/dbus-message.c (struct DBusMessage): declare
7161 dbus_atomic_t values as volatile
7163 * configure.in: code to detect ability to use atomic integer
7164 operations in assembly, from GLib patch
7166 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7167 time, tired of it being wrong in threads and forked processes
7169 * glib/test-profile.c: a little program to bounce messages back
7170 and forth between threads and eat CPU
7172 * dbus/dbus-connection.c: add debug spew macros for debugging
7173 thread locks; include config.h at top; fix deadlock in
7174 dbus_connection_flush()
7176 2003-05-08 Havoc Pennington <hp@pobox.com>
7178 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7179 data from getting written, and there wasn't a good reason to
7182 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7183 dbus_verbose lines in test coverage
7184 (main): add list of functions sorted by # of untested blocks
7185 to the coverage report
7187 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7189 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7191 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7192 extend test coverage
7194 * test/data/auth/cancel.auth-script: test canceling an
7197 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7198 aren't used. in CVS history if we end up needing them.
7200 2003-05-04 Havoc Pennington <hp@pobox.com>
7202 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7205 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7206 function, which assumed length was in # of strings, not bytes
7208 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7211 * dbus/dbus-connection.c
7212 (_dbus_connection_queue_received_message): disable function for
7213 now, we are only using it in test mode
7215 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7216 remove a mistaken FIXME
7218 2003-05-04 Havoc Pennington <hp@pobox.com>
7220 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7221 unlock mutex on successful return, patch from Anders Gustafsson
7223 2003-05-04 Havoc Pennington <hp@pobox.com>
7225 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7228 2003-05-04 Havoc Pennington <hp@pobox.com>
7230 * tools/dbus-launch.c: implement
7232 * bus/main.c (main), bus/bus.c (bus_context_new):
7233 implement --print-pid and --fork
7235 2003-05-03 Havoc Pennington <hp@redhat.com>
7237 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7238 the address had no value, and add to test suite. Fix and
7239 regression test from Miloslav Trmac
7241 2003-05-03 Havoc Pennington <hp@pobox.com>
7243 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7244 watch is invalid when handled
7246 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7247 dbus-launch utility to launch the bus from a shell script. Didn't
7248 actually implement dbus-launch yet, it's just a placeholder still.
7250 2003-05-03 Havoc Pennington <hp@pobox.com>
7252 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7253 daemon; also documents daemon config file, so replaces
7254 doc/config-file.txt. Corrected some stuff from config-file.txt in
7255 the process of moving it.
7257 2003-05-03 Havoc Pennington <hp@pobox.com>
7259 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7262 2003-05-03 Colin Walters <walters@verbum.org>
7264 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7265 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7267 * Makefile.am: Update to use new .pc versioning scheme.
7269 2003-05-02 Havoc Pennington <hp@redhat.com>
7271 * bus/system.conf.in: allow send/receive to/from message bus
7274 2003-04-30 Havoc Pennington <hp@redhat.com>
7276 * configure.in: print a note when building with unit tests and
7279 2003-04-30 Havoc Pennington <hp@redhat.com>
7281 * Makefile.am: add a check-local that complains if you didn't
7282 configure with --enable-tests
7284 2003-04-29 Havoc Pennington <hp@redhat.com>
7286 * glib/dbus-gmain.c: docs cleanups
7288 * dbus/dbus-types.h: add docs on int64 types
7290 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7291 public API docs section
7293 2003-04-29 Havoc Pennington <hp@redhat.com>
7295 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7296 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7297 parallel install API version, not with the D-BUS package version.
7299 * HACKING: move some of README over here
7301 * README: updates, and document API/ABI policy
7303 * configure.in: reindentation
7305 2003-04-29 Havoc Pennington <hp@redhat.com>
7307 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7308 to use this library" to be sure people have the right
7311 2003-04-28 Havoc Pennington <hp@redhat.com>
7313 * configure.in: add --enable-docs which by default is auto yes if
7314 doxygen and db2html found, no otherwise; but can be forced on/off
7316 * doc/Makefile.am: conditionalize whether to build docs on
7319 2003-04-28 Havoc Pennington <hp@redhat.com>
7321 * configure.in: 0.10
7325 * bus/system.conf.in: add <includedir>system.d</includedir>
7327 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7328 username was provided but not uid
7330 * bus/config-parser.c (struct BusConfigParser): keep track of
7331 whether the parser is toplevel or was included; change some
7332 of the error handling if it's included.
7334 2003-04-27 Havoc Pennington <hp@pobox.com>
7338 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7339 report correct status if we finish processing authentication
7340 inside this function.
7342 * bus/activation.c (try_send_activation_failure): use
7343 bus_transaction_send_error_reply
7345 * bus/connection.c (bus_connection_get_groups): return an error
7346 explaining the problem
7348 * bus/bus.c (bus_context_check_security_policy): implement
7349 restriction here that inactive connections can only send the
7350 hello message. Also, allow bus driver to send anything to
7353 * bus/connection.c (bus_connection_complete): create the
7354 BusClientPolicy here instead of on-demand.
7355 (bus_connection_get_policy): don't return an error
7357 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7358 sender field in message being replied to
7360 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7361 causing it to return FALSE always
7363 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7364 we checked sender rather than destination
7366 2003-04-25 Havoc Pennington <hp@redhat.com>
7368 test suite is slightly hosed at the moment, will fix soon
7370 * bus/connection.c (bus_connections_expire_incomplete): fix to
7371 properly disable the timeout when required
7372 (bus_connection_set_name): check whether we can remove incomplete
7373 connections timeout after we complete each connection.
7375 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7376 probably still broken.
7378 * bus/services.c (bus_registry_acquire_service): implement max
7379 number of services owned, and honor allow/deny rules on which
7380 services a connection can own.
7382 * bus/connection.c (bus_connection_get_policy): report errors here
7384 * bus/activation.c: implement limit on number of pending
7387 2003-04-25 Havoc Pennington <hp@redhat.com>
7389 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7390 where we used >= 0 instead of != DBUS_UID_UNSET.
7392 2003-04-25 Havoc Pennington <hp@redhat.com>
7394 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7395 were toggled without add/remove, fix from Anders Gustafsson
7397 2003-04-24 Havoc Pennington <hp@redhat.com>
7399 * test/data/valid-config-files/basic.conf: add <limit> tags to
7402 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7403 <limit> tag in configuration file.
7405 2003-04-24 Havoc Pennington <hp@redhat.com>
7407 * bus/dispatch.c: somehow missed some name_is
7409 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7410 (_dbus_timeout_set_interval): new
7412 * bus/connection.c (bus_connections_setup_connection): record time
7413 when each connection is first set up, and expire them after the
7414 auth timeout passes.
7416 2003-04-24 Havoc Pennington <hp@redhat.com>
7418 * dbus/dbus-message.c (dbus_message_name_is): rename
7419 (dbus_message_service_is): rename
7420 (dbus_message_sender_is): rename
7421 (dbus_message_get_service): rename
7423 2003-04-24 Havoc Pennington <hp@redhat.com>
7425 * configure.in: add --enable-checks
7427 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7429 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7430 to use thread locks.
7431 (_dbus_connection_handler_destroyed_locked): move some private
7432 functions into proper docs group
7434 * dbus/dbus-internals.h: add _dbus_return_if_fail,
7435 _dbus_return_val_if_fail
7437 Throughout: use dbus_return_if_fail
7439 2003-04-23 James Willcox <jwillcox@gnome.org>
7442 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7443 (dbus_connection_setup_with_g_main),
7444 (dbus_server_setup_with_g_main):
7445 * glib/test-dbus-glib.c: (main):
7446 * glib/test-thread-client.c: (main):
7447 * glib/test-thread-server.c: (new_connection_callback), (main):
7448 * tools/dbus-monitor.c: (main):
7450 Added a GMainContext argument to dbus_connection_setup_with_g_main()
7451 and dbus_server_setup_with_g_main().
7453 2003-04-20 Havoc Pennington <hp@pobox.com>
7455 * doc/dbus-specification.sgml: document the restrictions on
7456 message and service names
7458 2003-04-22 Havoc Pennington <hp@redhat.com>
7460 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7461 support, and do some code cleanups to share more code and
7462 speed up array marshal/demarshal.
7464 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7466 * configure.in: generate dbus-arch-deps.h
7468 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7471 2003-04-22 Havoc Pennington <hp@redhat.com>
7473 * test/data/valid-messages/opposite-endian.message: fix test
7474 to use proper type for rply field
7476 * test/data/invalid-messages: add tests for below validation
7478 * dbus/dbus-message.c (decode_header_data): validate field types,
7479 and validate that named fields are valid names
7480 (decode_name_field): consider messages in the
7481 org.freedesktop.Local. namespace to be invalid.
7483 * dbus/dbus-string.c (_dbus_string_validate_name): new
7485 2003-04-19 Havoc Pennington <hp@pobox.com>
7487 * bus/driver.c (bus_driver_handle_hello): check limits and
7488 return an error if they are exceeded.
7490 * bus/connection.c: maintain separate lists of active and inactive
7491 connections, and a count of each. Maintain count of completed
7492 connections per user. Implement code to check connection limits.
7494 * dbus/dbus-list.c (_dbus_list_unlink): export
7496 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7497 number of bytes in the message queue for a connection
7499 2003-04-18 Havoc Pennington <hp@pobox.com>
7501 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7503 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7506 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7507 on realloc be sure to update the pointer in the keyring
7509 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7510 offset to avoid writing to unallocated memory
7512 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7513 try the next mechanism, so we properly handle OOM
7515 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7517 (_dbus_keyring_new): fix OOM bug
7518 (_dbus_keyring_new_homedir): always set error; impose a maximum
7519 number of keys we'll load from the file, mostly to speed up the
7520 test suite and make its OOM checks more useful, but also for
7523 * dbus/dbus-auth.c (process_error_server): reject authentication
7524 if we get an error from the client
7525 (process_cancel): on cancel, send REJECTED, per the spec
7526 (process_error_client): send CANCEL if we get an error from the
7529 2003-04-18 Havoc Pennington <hp@pobox.com>
7531 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7534 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7537 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7538 about DBUS_TEST_HOMEDIR once
7540 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7543 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7544 config file so we test the right thing
7546 Throughout: assorted docs improvements
7548 2003-04-18 Havoc Pennington <hp@pobox.com>
7550 * glib/dbus-gmain.c: adapt to watch changes
7552 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7554 * dbus/dbus-server.h: remove dbus_server_handle_watch
7556 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7558 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7559 like DBusTimeout, so we don't need dbus_connection_handle_watch
7562 2003-04-17 Havoc Pennington <hp@redhat.com>
7564 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7565 database usage so it all goes via the DBusUserDatabase cache.
7567 2003-04-17 Havoc Pennington <hp@redhat.com>
7569 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7570 there was an OOM watch we skipped, we always return TRUE so we
7571 iterate again to have a look at it again. Fixes test suite hang.
7572 Code rearrangement also lets us lose some memset and only iterate
7573 over callbacks once.
7575 * bus/driver.c (bus_driver_handle_message): sense of test for
7578 2003-04-16 Havoc Pennington <hp@pobox.com>
7580 * doc/dbus-specification.sgml: make spec say serials are unsigned
7582 * dbus/dbus-message.h: change message serials to unsigned
7584 * dbus/dbus-connection.c: adapt to message serials being unsigned
7586 2003-04-15 Havoc Pennington <hp@pobox.com>
7588 * bus/bus.c: create and keep around a shared DBusUserDatabase
7591 * bus/connection.c (bus_connection_get_groups): don't cache
7592 groups for user in the connection object, since user database
7593 object now does that.
7595 2003-04-16 Havoc Pennington <hp@redhat.com>
7597 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7598 list of size counters
7599 (_dbus_message_loader_putback_message_link): put back a popped link
7601 * dbus/dbus-connection.c
7602 (dbus_connection_set_max_live_messages_size): rename
7604 (dbus_connection_get_outgoing_size): get size of outgoing
7606 (_dbus_connection_set_connection_counter): remove this cruft
7608 2003-04-14 Havoc Pennington <hp@redhat.com>
7610 * dbus/dbus-userdb.c: user database abstraction, mostly to get
7611 caching, but at some point we might want to be able to use a
7614 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7615 SHA1 conf file to test the sha1 auth mechanism, since the regular
7616 test always uses EXTERNAL when available.
7619 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7620 add conf file that requires use of sha1 auth
7622 2003-04-13 Havoc Pennington <hp@pobox.com>
7624 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7625 from Philip Blundell to send messages and monitor them.
7627 2003-04-13 Havoc Pennington <hp@pobox.com>
7629 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7632 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7635 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7636 fix to only recover unused bytes if we're already authenticated
7637 (_dbus_transport_get_is_authenticated): fix to still mark us
7638 authenticated if there are unused bytes.
7640 * bus/dispatch.c: implement security policy checking
7642 * bus/connection.c (bus_transaction_send_from_driver): new
7644 * bus/bus.c (bus_context_check_security_policy): new
7646 * bus/dispatch.c (send_service_nonexistent_error): delete this,
7647 now we just set the DBusError and it gets converted to an error
7650 * bus/connection.c (allow_user_function): enable code using actual
7651 data from the config file
7653 * bus/policy.c (list_allows_user): handle wildcard rules for
7654 user/group connection perms
7656 2003-04-13 Havoc Pennington <hp@pobox.com>
7658 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7660 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7662 * bus/policy.c (bus_policy_append_mandatory_rule)
7663 (bus_policy_append_default_rule, bus_policy_append_user_rule)
7664 (bus_policy_append_group_rule): new functions
7666 2003-04-12 Havoc Pennington <hp@pobox.com>
7668 * bus/config-parser.c (bus_config_parser_new): fix a memleak
7670 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7671 the pid/gid/uid, just for paranoia.
7673 * test/break-loader.c (randomly_do_n_things): find a byte
7674 containing a type code, and randomly change it to a different
7677 2003-04-12 Havoc Pennington <hp@pobox.com>
7679 * bus/policy.h: change BusPolicy to be the thing from the config
7680 file, and rename old BusPolicy to BusClientPolicy
7682 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7683 match change in how policy works
7685 * dbus/dbus-internals.h: mark assert_not_reached as
7686 __attribute((noreturn))__
7688 2003-04-11 Havoc Pennington <hp@redhat.com>
7690 * doc/dbus-specification.sgml: fix a spot with the wrong name for
7691 the broadcast service. Use boolean return for ServiceExists.
7693 2003-04-11 Havoc Pennington <hp@redhat.com>
7695 * configure.in: add another directory to look for qt in.
7697 2003-04-11 Havoc Pennington <hp@redhat.com>
7699 * AUTHORS: add Colin Walters
7701 2003-04-11 Havoc Pennington <hp@redhat.com>
7707 2003-04-11 Havoc Pennington <hp@redhat.com>
7709 * bus/messagebus.in: remove pid file when stopping the
7710 message bus, since the bus won't have privileges to remove it
7713 2003-04-11 Havoc Pennington <hp@redhat.com>
7715 * bus/bus.c (bus_context_new): move credentials change after
7718 2003-04-11 Havoc Pennington <hp@pobox.com>
7720 * test/decode-gcov.c: add "below average functions" to the
7721 coverage report, and change how some of the code works.
7723 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7724 not in the coverage stats.
7726 * test/test-service.c (main): use _dbus_verbose not fprintf in a
7727 couple places so running the test suite doesn't result in megaspam.
7729 2003-04-11 Havoc Pennington <hp@pobox.com>
7731 * bus/dispatch.c (check_existent_service_activation): accept a no
7732 memory error in a place we didn't before
7734 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7735 in case the first one failed," since the test suite is less
7738 2003-04-10 Havoc Pennington <hp@pobox.com>
7740 * bus/dispatch.c (check_segfault_service_activation): add test
7741 for launching an executable that just crashes.
7743 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7744 don't leave a million cores. We'll see how portable this is.
7746 2003-04-10 Havoc Pennington <hp@pobox.com>
7748 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7749 the possible parent failures before we fork, so that we don't
7750 fail to create a babysitter after creating the child.
7752 * bus/activation.c (bus_activation_activate_service): kill child
7753 if we don't successfully complete the activation.
7755 2003-04-10 Havoc Pennington <hp@redhat.com>
7757 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7758 the connection if it's disconnected
7760 * bus/activation.c (bus_activation_service_created): use new
7761 transaction features to roll back removal of pending activation if
7762 we don't successfully create the service after all. Don't remove
7763 pending activation if the function fails.
7765 * dbus/dbus-list.c (_dbus_list_insert_before_link)
7766 (_dbus_list_insert_after_link): new code to facilitate
7769 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7770 new functionality, so we can preallocate the ability to insert
7773 * bus/connection.c (bus_transaction_add_cancel_hook): new function
7774 allowing us to put custom hooks in a transaction to be used for
7775 cancelling said transaction
7777 * doc/dbus-specification.sgml: add some discussion of secondary
7778 service owners, and disallow zero-length service names
7780 * bus/services.c (bus_registry_acquire_service): new function,
7781 splits out part of bus_driver_handle_acquire_service() and fixes
7782 a bug where we didn't remove the service doing the acquiring
7783 from the secondary queue if we failed to remove the current owner
7784 from the front of the queue.
7786 2003-04-10 Alexander Larsson <alexl@redhat.com>
7788 * doc/dbus-specification.sgml:
7789 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7791 2003-04-10 Alexander Larsson <alexl@redhat.com>
7796 Added files to cvsignore
7798 * dbus/dbus-message.h:
7799 * dbus/dbus-message.c: (dbus_message_iter_get_named):
7800 Make get_named() take two out argument and return a boolean.
7801 (dbus_message_iter_get_args_valist):
7802 Update usage of get_named().
7803 (dbus_message_iter_append_byte):
7805 (dbus_message_iter_append_named)
7807 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7810 2003-04-10 Alexander Larsson <alexl@redhat.com>
7812 * dbus/dbus-marshal.[ch]:
7813 Add array_type_pos argument to _dbus_marshal_validate_arg.
7814 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7816 * dbus/dbus-message.[ch]:
7817 Multi-dimensional arrays have full type specification in the
7818 outermost array. Iter code re-arranged to handle this.
7819 Added some more iter tests.
7821 * doc/dbus-specification.sgml:
7824 Update new array encoding description.
7825 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7827 * test/data/invalid-messages/array-with-mixed-types.message:
7828 * test/data/valid-messages/array-of-array-of-uint32.message:
7829 Change to the new array format.
7831 * test/data/invalid-messages/too-short-dict.message:
7834 * test/data/valid-messages/recursive-types.message:
7835 Fix up and extend test.
7837 2003-04-10 Havoc Pennington <hp@pobox.com>
7839 * bus/dispatch.c: lots of fixes
7841 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7842 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7843 that was crack, broke the test service.
7845 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7846 handling to avoid piling up errors if we get a failure on the
7849 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7850 pid in assertion failures.
7852 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7853 to some fixed size of file descriptor array. Don't return TRUE
7854 anytime a timeout exists, that led to lots of busy loop silliness
7857 2003-04-09 Havoc Pennington <hp@redhat.com>
7859 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7860 I'd checked this in earlier but hadn't.
7862 2003-04-09 Havoc Pennington <hp@redhat.com>
7864 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7865 the activation test (man this is getting old!)
7867 2003-04-09 Havoc Pennington <hp@redhat.com>
7869 * test/test-utils.c: use dispatch status function to fix this up
7871 * bus/connection.c (connection_watch_callback): don't dispatch
7873 (connection_timeout_callback): don't dispatch from here
7874 (bus_connections_setup_connection): set the dispatch status function
7875 (bus_connection_disconnected): unset it
7877 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7878 used to add a connection to be dispatched
7879 (_dbus_loop_iterate): do the dispatching at the end of each
7882 * dbus/dbus-connection.c
7883 (dbus_connection_set_dispatch_status_function): new function
7884 allowing us to fix up main loop usage
7885 (_dbus_connection_last_unref): free all the various function
7887 (dbus_connection_dispatch): call the DispatchStatusFunction
7888 whenever this function returns
7889 (dbus_connection_handle_watch): call DispatchStatusFunction
7890 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7891 (reply_handler_timeout): call DispatchStatusFunction
7892 (dbus_connection_flush): call DispatchStatusFunction
7894 2003-04-09 Havoc Pennington <hp@redhat.com>
7896 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7899 * bus/dispatch.c (check_service_activated): fix bug in test
7901 * dbus/dbus-mainloop.c (check_timeout): fix this up
7903 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7904 verbose output so we can sort out output from different processes,
7905 e.g. in the activation case.
7907 2003-04-08 Colin Walters <walters@gnu.org>
7909 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7911 (bus_context_new): Set it.
7912 (bus_context_unref): Use it to delete the pid file.
7914 2003-04-08 Havoc Pennington <hp@redhat.com>
7916 * test/data/invalid-messages/array-with-mixed-types.message:
7917 regression test that fails for the moment
7919 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7920 tests for convenience
7922 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7923 array of nil, it broke things.
7925 * test/data/invalid-messages/array-of-nil.message: regression test
7927 * test/data/valid-messages/array-of-array-of-uint32.message:
7928 happened to write this so added it to suite
7930 2003-04-08 Havoc Pennington <hp@redhat.com>
7932 * bus/driver.c (bus_driver_handle_acquire_service): init
7933 retval/reply before checking name
7935 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7936 recursion depth argument
7938 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7939 in the public struct for future extension
7941 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7944 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7947 * doc/dbus-specification.sgml: fix typo
7949 2003-04-08 Alexander Larsson <alexl@redhat.com>
7951 Implemented recursive types, named types and new-style iters
7954 * glib/test-thread-client.c: (thread_func):
7955 * glib/test-thread-server.c: (handle_test_message):
7956 * test/test-service.c: (handle_echo):
7965 * dbus/dbus-internals.c: (_dbus_type_to_string):
7966 Update for new types.
7968 * dbus/dbus-marshal.[ch]:
7969 Implement recursive types and the new marshalling format.
7970 Remove hardcoded dict marshalling.
7971 Marshal named types.
7973 * dbus/dbus-message-builder.c:
7975 Remove references to old types
7977 * dbus/dbus-message.[ch]:
7978 New non-refcounted iter API that supports recursive iters.
7979 Use iters for appending, including support for recursive
7981 Add byte and named type support.
7982 Update everything to new marshalling formats.
7983 Add tests for new API.
7985 * dbus/dbus-protocol.h:
7986 Remove old array types.
7987 Add types: BYTE, ARRAY, DICT, NAMED
7989 * dbus/dbus-string.c:
7990 * dbus/dbus-sysdeps.c:
7991 Make parse_double locale safe.
7993 * dbus/dbus-test-main.c:
7999 * doc/dbus-specification.sgml:
8002 * test/data/incomplete-messages/missing-body.message:
8003 * test/data/invalid-messages/bad-boolean.message:
8004 * test/data/invalid-messages/bad-boolean-array.message:
8005 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8006 * test/data/invalid-messages/boolean-has-no-value.message-raw:
8007 * test/data/invalid-messages/too-short-dict.message:
8008 * test/data/valid-messages/dict-simple.message:
8009 * test/data/valid-messages/dict.message:
8010 * test/data/valid-messages/emptiness.message:
8011 * test/data/valid-messages/lots-of-arguments.message:
8012 * test/data/valid-messages/no-padding.message:
8013 * test/data/valid-messages/recursive-types.message:
8014 Add missing NAME fields
8015 Fix up dicts & arrays
8017 * test/data/invalid-messages/dict-with-nil-value.message:
8018 Removed, this is not invalid anymore.
8020 * test/data/valid-messages/recursive-types.message:
8021 Add new test for deeply recursive types.
8023 2003-04-07 Havoc Pennington <hp@pobox.com>
8025 * bus/driver.c (bus_driver_handle_acquire_service): return an
8026 error if you try to acquire a service that starts with ':'
8028 2003-04-07 Havoc Pennington <hp@redhat.com>
8030 * doc/dbus-specification.sgml: require that base service names
8031 start with ':' and that the base service is created/deleted
8032 as first and last things a connection does on the bus
8034 * bus/dispatch.c (check_existent_service_activation): lots more
8035 work on the activation test; it doesn't fully pass yet...
8037 * test/test-service.c (main): fix so we don't memleak the
8038 connection to the message bus
8039 (filter_func): accept a message asking us to exit
8041 2003-04-06 Havoc Pennington <hp@pobox.com>
8043 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8046 * configure.in: fixes to Qt detection from Colin Walters
8048 * doc/Makefile.am: Only remove generated docbook dirs if they
8049 exist, from Colin Walters
8051 * dbus/dbus-bus.c: change how we set well-known connections to
8052 NULL, so that it works if a single connection is stored in
8053 two well-known array slots.
8055 * test/Makefile.am: remove a lot of stuff that isn't immediately
8056 useful, it's in CVS history if we want it.
8058 * test/test-service.c: use dbus-mainloop instead of that
8061 2003-04-06 Havoc Pennington <hp@pobox.com>
8063 * dbus/Makefile.am: split lists of sources into stuff that goes in
8064 the library, util functions that go in the lib and are also used
8065 elsewhere, and util functions that are used in tests/daemon but
8066 don't go in the lib.
8068 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8069 here so it can be used in test binaries also
8071 2003-04-06 Havoc Pennington <hp@pobox.com>
8073 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8074 here in the parent process, so we can return an error if it
8075 fails. Also, move some of the code into the child so the parent
8076 is less hosed if we fail midway through.
8078 * bus/bus.c (bus_context_new): move pidfile detection further up
8079 in the function, before we start overwriting sockets and such.
8081 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8083 * configure.in: add --with-system-pid-file and --with-system-socket
8085 2003-04-06 Colin Walters <walters@verbum.org>
8087 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8089 * bus/system.conf.in: Declare a pidfile.
8091 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8092 create one (if appropriate).
8094 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8095 (struct BusConfigParser) [pidfile]: New.
8096 (element_type_to_name, merge_included, start_busconfig_child)
8097 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8098 (bus_config_parser_unref): Free it.
8099 (bus_config_parser_get_pidfile): New function.
8101 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8103 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8105 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8107 * dbus/dbus-sysdeps.h: Prototype it.
8109 2003-04-06 Havoc Pennington <hp@pobox.com>
8111 * bus/bus.c (bus_context_new): print the address in here, rather
8112 than in main(), because we need to do it before forking the daemon
8114 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8115 on the service nonexistent error
8117 * bus/driver.c (bus_driver_handle_acquire_service): set the
8118 sender on the AcquireService reply
8120 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8121 server also listen on a UNIX socket so services can connect to it.
8123 2003-04-06 Havoc Pennington <hp@pobox.com>
8125 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8126 so it detects deadlocks and also we actually init threads when
8129 2003-04-06 Havoc Pennington <hp@pobox.com>
8131 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8132 save the domain socket name, and unlink it when we disconnect the
8133 server. Means that at least when we exit normally, we won't leave
8134 a bunch of junk in /tmp
8136 * dbus/dbus-transport-unix.c
8137 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8138 memory management). (I was making a real change here but then
8141 2003-04-06 Havoc Pennington <hp@pobox.com>
8143 * bus/bus.c (bus_context_new): fix wrong handling of
8144 server_data_slot_unref() in the error case.
8146 * dbus/dbus-internals.h (_dbus_assert): change so it passes
8147 "(condition) != 0" to _dbus_real_assert so that
8148 "_dbus_assert (pointer)" doesn't cause a warning
8150 * bus/main.c (main): accept --print-address option to print out
8151 the message bus address
8153 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8155 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8156 "tmpdir" option to unix: address on client side
8158 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8161 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8162 we can use to create sockets in the test suite.
8164 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8165 cleanly. To be used for testing.
8167 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8169 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8171 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8172 handle trying to call this when there's no servers active
8174 2003-04-05 Havoc Pennington <hp@pobox.com>
8180 2003-04-05 Havoc Pennington <hp@pobox.com>
8182 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8183 crash on startup. Need to get "try starting the daemon"
8184 in the test suite I guess. ;-)
8186 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8187 tracked the number of open connections; it's better done in
8188 application-specific code as you want it to span all servers etc.
8190 2003-04-05 Havoc Pennington <hp@pobox.com>
8192 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8193 patch from Colin Walters
8195 2003-04-05 Havoc Pennington <hp@pobox.com>
8197 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8198 reality; in fact multiple mechanisms are allowed.
8200 * dbus/dbus-internals.c (_dbus_real_assert)
8201 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8202 _dbus_assert_not_reached() into functions, so that they don't show
8203 up in basic block counts for test coverage, and don't use up as
8204 much disk space. Does mean slower execution speed though, so
8205 assumes --disable-asserts is the normal production case.
8207 2003-04-05 Havoc Pennington <hp@pobox.com>
8209 * test/Makefile.am (dist-hook): also dist *.in files
8215 2003-04-05 Havoc Pennington <hp@pobox.com>
8217 * dbus/dbus-string.c: docs warning
8219 * dbus/dbus-spawn.c: missing docs
8221 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8223 2003-04-05 Havoc Pennington <hp@pobox.com>
8225 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8228 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8229 to -1 once we've reaped the babysitter
8230 (_dbus_babysitter_handle_watch): do as much work as we can, not
8233 * bus/activation.c: add code using DBusBabysitter so that we
8234 handle it when a service fails to start up properly.
8235 (bus_activation_service_created): don't remove the activation
8236 entries as we go, just let them get removed when we free the pending
8237 activation. Unref reply messages after sending them.
8239 2003-04-05 Havoc Pennington <hp@pobox.com>
8241 * test/decode-gcov.c (main): print per-directory stats in the report
8243 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8245 2003-04-05 Havoc Pennington <hp@pobox.com>
8247 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8249 * test/decode-gcov.c: hack up a little program to suck data
8250 out of gcov files. Yes this is sort of silly.
8252 * configure.in: define something in config.h and do an
8253 AM_CONDITIONAL when gcov is enabled
8255 2003-04-04 Havoc Pennington <hp@redhat.com>
8257 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8258 return a "babysitter" object that is used to monitor the status of
8259 the spawned process and reap it when required.
8261 * test/test-segfault.c, test/test-exit.c,
8262 test/test-sleep-forever.c: binaries that do various lame things,
8263 used in the test suite.
8265 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8267 2003-04-03 Havoc Pennington <hp@pobox.com>
8269 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8270 in preparation for modifying it, dbus-sysdeps is getting
8273 2003-04-03 Havoc Pennington <hp@redhat.com>
8275 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8278 * bus/*.[hc]: adapt to mainloop change
8280 2003-04-03 Havoc Pennington <hp@redhat.com>
8282 * bus/activation.c (load_directory): fix up memleaks
8283 (bus_activation_entry_free): free the entry
8285 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8286 we get one from the message bus; fix memleaks.
8288 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8290 2003-04-03 Havoc Pennington <hp@pobox.com>
8292 * bus/config-parser.c (bus_config_parser_unref): free
8293 list of mechanisms, bug discovered by test suite enhancements
8294 (putting system.conf and session.conf into suite)
8296 * test/Makefile.am, test/test-service.c: add placeholder for a
8297 test service that we'll activate as part of test suite. Doesn't
8300 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8301 setting NULL value, and use system malloc not dbus_malloc()
8302 when we have unavoidable memleakage.
8304 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8305 didn't work, and support DBUS_BUS_ACTIVATION.
8307 * bus/activation.c (child_setup): pass our well-known bus type to
8310 * bus/config-parser.c: support <type> to specify well-known type
8312 * doc/dbus-specification.sgml: document the env variables to
8313 locate well-known buses and find service activator
8315 2003-04-02 Havoc Pennington <hp@redhat.com>
8317 * test/Makefile.am (all-local): add a rule to copy tests to
8318 builddir, so we can have generated tests. Use this to remove the
8319 silly hack for testing system.conf and session.conf. Will use this
8320 shortly to generate .service files pointing to test binaries.
8322 2003-04-02 Havoc Pennington <hp@redhat.com>
8324 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8325 current alloc and needed new length, not max of the doubled
8326 allocation and needed new length. Also, when building tests,
8327 don't do the double-allocation stuff, just realloc every time.
8329 2003-04-02 Havoc Pennington <hp@redhat.com>
8331 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8333 (_dbus_string_get_dirname): new
8334 (_dbus_sysdeps_test): new
8335 (_dbus_directory_open): include dirnames in error messages
8337 * bus/config-parser.c: interpret <include> and <includedir> and
8338 <servicedir> relative to config file location if the given
8339 filename is not absolute.
8341 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8343 2003-04-02 Havoc Pennington <hp@redhat.com>
8345 * bus/connection.c (bus_transaction_send_error_reply): set sender
8346 service for the error, and unref the reply on success
8348 * bus/activation.c: convert to use BusTransaction so OOM can be
8350 (bus_activation_service_created): set sender of the message
8352 2003-04-01 Havoc Pennington <hp@redhat.com>
8354 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8355 <includedir> (at least mostly)
8357 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8358 first, then the user ID
8360 2003-04-01 Havoc Pennington <hp@pobox.com>
8362 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8365 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8367 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8369 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8370 socket 0777, and unlink any existing socket.
8372 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8373 the configuration file so specifies; set up auth mechanism
8376 * bus/config-parser.c (bus_config_parser_content): add support
8377 for <fork> option and fill in code for <auth>
8379 * bus/system.conf.in: add <fork/> to default configuration,
8380 and limit auth mechanisms to EXTERNAL
8382 * doc/config-file.txt (Elements): add <fork>
8384 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8385 (_dbus_change_identity): new function
8387 2003-03-31 Havoc Pennington <hp@redhat.com>
8389 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8390 (_dbus_listen_unix_socket): fix off-by-one error in null
8391 termination spotted by Nalin
8393 2003-03-31 Havoc Pennington <hp@redhat.com>
8395 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8396 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8397 having a real home directory available.
8399 2003-03-31 Havoc Pennington <hp@redhat.com>
8401 * bus/Makefile.am (install-data-hook): create /var/run/dbus
8403 * bus/messagebus.in: add init script for Red Hat /etc/init.d
8405 * configure.in: add support for specifying a style of init script
8408 2003-03-31 Havoc Pennington <hp@redhat.com>
8410 Fix some annoying DBusString API and fix all affected code.
8412 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8414 (_dbus_string_get_data): change to return string instead of using
8416 (_dbus_string_get_const_data): ditto
8417 (_dbus_string_get_data_len): ditto
8418 (_dbus_string_get_const_data_len): ditto
8420 2003-03-31 Havoc Pennington <hp@redhat.com>
8422 * bus/main.c (main): fix up the command line arguments to be nicer
8424 2003-03-31 Havoc Pennington <hp@redhat.com>
8426 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8427 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8428 final location that lands in the config file
8430 * bus/config-loader-expat.c (bus_config_load): fix type of
8433 * doc/TODO: remove TODO item for dbus_bus_get()
8435 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8437 2003-03-31 Havoc Pennington <hp@pobox.com>
8439 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8440 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8441 argument since they are always client side
8443 * dbus/dbus-server.c (dbus_server_get_address): new function
8445 * bus/main.c (main): take the configuration file as an argument.
8447 * test/data/valid-config-files/debug-allow-all.conf: new file to
8448 use with dispatch.c tests for example
8450 * bus/test-main.c (main): require test data dir
8452 * bus/bus.c (bus_context_new): change this to take a
8453 configuration file name as argument
8455 * doc/config-file.txt (Elements): add <servicedir>
8457 * bus/system.conf, bus/session.conf: new files
8459 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8460 well-known socket if none set
8462 * configure.in: create system.conf and session.conf
8464 2003-03-30 Havoc Pennington <hp@pobox.com>
8466 * bus/config-parser.c: hacking
8468 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8469 to shut down, since it could cause weirdness with the DBusList
8472 * dbus/dbus-list.c (_dbus_list_test): add tests for the
8473 link-oriented stack routines
8474 (alloc_link): free the mempool if the first alloc from it fails
8476 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8478 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8480 (_dbus_string_skip_white): new
8482 * doc/config-file.txt (Elements): add <includedir>
8484 2003-03-28 Havoc Pennington <hp@pobox.com>
8486 * dbus/dbus-string.c (_dbus_string_copy_data_len)
8487 (_dbus_string_copy_data): new functions
8489 2003-03-28 Anders Carlsson <andersca@codefactory.se>
8491 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8495 * dbus/dbus-memory.c:
8498 2003-03-28 Havoc Pennington <hp@pobox.com>
8500 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8501 I think it may have just been superstition. Not sure.
8503 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8504 failures that were not being handled.
8506 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8508 * dbus/dbus-memory.c: add ability to set number of mallocs in a
8509 row that will fail on out-of-memory.
8511 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8512 function for testing out-of-memory handling.
8514 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8515 allocation functions, they do map exactly to the expat ones.
8517 2003-03-27 Havoc Pennington <hp@redhat.com>
8519 * bus/config-loader-libxml.c (bus_config_load): add another error
8522 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8525 Add note about automatic service activation.
8527 * doc/dbus-specification.sgml:
8528 Rename the specification and clarify a few things.
8530 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8533 * dbus/dbus-address.c:
8535 * dbus/dbus-marshal.c:
8536 * dbus/dbus-server-debug-pipe.c:
8537 * dbus/dbus-transport-unix.c:
8538 Fix documentation warnings.
8540 2003-03-26 Havoc Pennington <hp@pobox.com>
8542 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8543 after every test so it's quick and easy to see which leaked, and
8544 so we test multiple dbus_shutdown() calls
8546 * configure.in: change configure.in XML stuff to also support
8549 * config-loader-libxml.c: some hacking
8551 * config-loader-expat.c: some hacking
8553 * config-parser.c: some hacking, plus tests
8555 2003-03-25 Havoc Pennington <hp@redhat.com>
8557 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8559 * configure.in: add --with-xml option to specify XML library,
8560 right now only libxml is supported.
8562 * bus/config-loader-libxml.c, config-parser.c: sync some minor
8563 nonworking code between home and work, still just stubs
8565 2003-03-24 Havoc Pennington <hp@redhat.com>
8567 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8570 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8571 NULL argument for "message" if the error is a well-known one,
8572 fill in a generic message in this case.
8574 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8577 * bus/test.c (bus_test_flush_bus): add
8579 * bus/policy.c (bus_policy_test): test code stub
8581 2003-03-24 Havoc Pennington <hp@pobox.com>
8583 * bus/connection.c (bus_connections_setup_connection): set up
8584 the "can this user connect" function, but it always returns
8585 TRUE until we have a config file parser so we can have a config
8586 file that allows connections.
8588 2003-03-23 Havoc Pennington <hp@pobox.com>
8590 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8591 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8592 the mutex, so we can check for proper memory management
8595 * dbus/dbus-dataslot.c: remove the mutex from
8596 DBusDataSlotAllocator and lock it manually when using it,
8597 to simplify fitting it into the global slots framework.
8599 * dbus/dbus-threads.c (init_static_locks): rework how we're
8600 handling global locks so they are easily shut down.
8602 * bus/policy.c (bus_policy_append_rule): fix
8604 * bus/test-main.c (main): check for memleaks
8606 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8607 test suite check for memleaks
8609 * dbus/dbus-memory.c: add support in test mode for tracking
8610 number of outstanding blocks
8612 2003-03-23 Havoc Pennington <hp@pobox.com>
8614 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8617 * dbus/dbus-hash.h: add ULONG hash keys
8619 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8620 (_dbus_get_group_id): new function
8622 2003-03-20 Havoc Pennington <hp@redhat.com>
8624 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8626 (dbus_connection_get_unix_user): new function
8628 2003-03-20 Havoc Pennington <hp@pobox.com>
8630 * bus/connection.c (bus_connection_send_oom_error): assert that
8631 message has a sender
8632 (connection_execute_transaction): ditto
8633 (bus_connection_preallocate_oom_error): fix to set the sender, and
8634 set recipient to the destination service, not the bus driver
8636 * bus/policy.c: hacking
8638 * dbus/dbus-message.c (dbus_message_service_is): new function
8639 (dbus_message_sender_is): new
8641 2003-03-19 Havoc Pennington <hp@redhat.com>
8643 * bus/policy.c: start sketching code for policy restrictions on
8644 what connections can do.
8646 2003-03-18 Havoc Pennington <hp@redhat.com>
8648 * doc/TODO: some notes on high-level todo items. Little nitpick
8649 stuff is all in @todo, so no need to add it here.
8651 * doc/config-file.txt: some notes on how config file might look
8653 2003-03-18 Anders Carlsson <andersca@codefactory.se>
8659 2003-03-17 Havoc Pennington <hp@redhat.com>
8661 * dbus/dbus-internals.h: add gcc attributes so that
8662 our printf-style functions warn on bad arguments to
8665 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8668 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8671 2003-03-17 Havoc Pennington <hp@redhat.com>
8673 * bus/test-main.c (main): make it print something as it runs
8674 so make check doesn't look stuck
8676 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8677 from CVS, now obsolete
8679 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8681 * bus/dispatch.c: (bus_dispatch):
8682 Refetch the service name since it may have been reallocated
8683 when dbus_message_set_sender was called.
8685 * dbus/dbus-sysdeps.c: (_dbus_accept):
8686 Add address and address length variables and use them to stop
8687 valgrind from complaining.
8689 2003-03-17 Havoc Pennington <hp@pobox.com>
8691 All tests pass, no memleaks, no valgrind complaints.
8693 * bus/test.c: refcount handler_slot
8695 * bus/connection.c (bus_connections_new): refcount
8696 connection_data_slot
8698 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8699 bytes so that auth scripts pass.
8701 * bus/dispatch.c: init message_handler_slot so it gets allocated
8704 * bus/dispatch.c (message_handler_slot_ref): fix memleak
8706 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8707 dealloc server_pipe_hash when no longer used for benefit of
8710 * dbus/dbus-auth.c (process_command): memleak fix
8712 * bus/dispatch.c (check_hello_message): memleak fix
8714 2003-03-16 Havoc Pennington <hp@pobox.com>
8716 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8718 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8720 * bus/activation.c (bus_activation_activate_service): Append
8721 the pending activation entry to the list of pending activations.
8723 2003-03-16 Havoc Pennington <hp@pobox.com>
8725 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8728 * dbus/dbus-address.c (create_entry): fix OOM handling when
8729 failing to alloc entry->method
8731 2003-03-16 Havoc Pennington <hp@pobox.com>
8733 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8736 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8737 add some missing dbus_set_result
8739 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8740 alloc the DBusMessageHandler
8742 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8743 the transport here, since we call this from the finalizer; it
8744 resulted in a double-finalize.
8746 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8747 where we tried to use transport->connection that was NULL,
8748 happened when transport was disconnected early on due to OOM
8750 * bus/*.c: adapt to handle OOM for watches/timeouts
8752 * dbus/dbus-transport-unix.c: port to handle OOM during
8755 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8756 reference to unused bytes instead of a copy
8758 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8761 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8764 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8767 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8769 * doc/dbus-specification.sgml:
8770 Document reply message for ActivateService.
8772 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8774 * bus/activation.c: (bus_pending_activation_entry_free),
8775 (bus_pending_activation_free), (bus_activation_new),
8776 (bus_activation_unref), (bus_activation_service_created),
8777 (bus_activation_activate_service):
8779 * bus/bus.c: (bus_context_new):
8780 * bus/desktop-file.c: (new_section):
8781 * bus/driver.c: (bus_driver_send_service_deleted),
8782 (bus_driver_handle_activate_service):
8783 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8785 * dbus/dbus-connection.c:
8786 (dbus_connection_send_with_reply_and_block):
8787 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8788 * dbus/dbus-protocol.h:
8789 Make activation work better. Now pending activations will be queued
8790 and the daemon won't try to activate services that are already registered.
8792 2003-03-16 Havoc Pennington <hp@pobox.com>
8794 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8797 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8798 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8800 2003-03-16 Havoc Pennington <hp@pobox.com>
8802 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8803 this. always run the test suite before commit...
8805 * bus/*: adapt to DBusConnection API changes
8807 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8808 requires renaming stuff to avoid dbus_connection_dispatch name
8811 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8814 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8815 separate from _dbus_message_loader_return_buffer()
8817 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8818 this, because it's now always broken to use; the number of
8819 messages in queue vs. the number still buffered by the message
8820 loader is undefined/meaningless. Should use
8821 dbus_connection_get_dispatch_state().
8822 (dbus_connection_dispatch): rename from
8823 dbus_connection_dispatch_message
8825 2003-03-16 Havoc Pennington <hp@pobox.com>
8827 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8830 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8832 * dbus/dbus-connection.c:
8833 (dbus_connection_send_with_reply_and_block):
8834 Decrease connection->n_incoming when removing an entry
8836 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8837 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8838 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8839 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8840 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8841 (dbus_dict_get_byte_array):
8842 Handle NULL arrays and strings. Also add support for byte arrays.
8844 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8845 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8846 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8847 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8848 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8849 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8850 * dbus/dbus-marshal.h:
8851 Add support for marshalling and demarshalling empty arrays and strings.
8853 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8854 (dbus_message_append_string_array),
8855 (dbus_message_iter_get_boolean),
8856 (dbus_message_iter_get_boolean_array),
8857 (dbus_message_iter_get_int32_array),
8858 (dbus_message_iter_get_uint32_array),
8859 (dbus_message_iter_get_double_array),
8860 (dbus_message_iter_get_byte_array),
8861 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8862 (check_message_handling):
8863 Add support for getting empty arrays and dicts.
8865 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8866 Don't do any validation at all for now, that's better than just checking
8869 * test/data/valid-messages/emptiness.message:
8870 New test message with lots of empty arrays.
8872 2003-03-16 Havoc Pennington <hp@pobox.com>
8874 * dbus/dbus-connection.c
8875 (_dbus_connection_queue_received_message_link): new function that
8876 can't fail due to OOM
8878 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8879 new function pops a message together with a list link
8882 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8883 message queuing functions to avoid needing to alloc memory
8885 2003-03-16 Havoc Pennington <hp@pobox.com>
8887 Oops - test code was only testing failure of around 30 of the
8888 mallocs in the test path, but it turns out there are 500+
8889 mallocs. I believe this was due to misguided linking setup such
8890 that there was one copy of dbus_malloc etc. in the daemon and one
8891 in the shared lib, and only daemon mallocs were tested. In any
8892 case, the test case now tests all 500+ mallocs, and doesn't pass
8893 yet, though there are lots of fixes in this patch.
8895 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8896 this so that it doesn't need to allocate memory, since it
8897 has no way of indicating failure due to OOM (and would be
8898 annoying if it did).
8900 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8902 * bus/Makefile.am: rearrange to create two self-contained
8903 libraries, to avoid having libraries with overlapping symbols.
8904 that was resulting in weirdness, e.g. I'm pretty sure there
8905 were two copies of global static variables.
8907 * dbus/dbus-internals.c: move the malloc debug stuff to
8910 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8913 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8915 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8918 * bus/dispatch.c (bus_dispatch_add_connection): free
8919 message_handler_slot when no longer using it, so
8920 memory leak checkers are happy for the test suite.
8922 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8924 * bus/bus.c (new_connection_callback): disconnect in here if
8925 bus_connections_setup_connection fails.
8927 * bus/connection.c (bus_connections_unref): fix to free the
8929 (bus_connections_setup_connection): if this fails, don't
8930 disconnect the connection, just be sure there are no side
8933 * dbus/dbus-string.c (undo_alignment): unbreak this
8935 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8937 (_dbus_auth_new): fix the order in which we free strings
8940 * bus/connection.c (bus_connection_disconnected): fix to
8941 not send ServiceDeleted multiple times in case of memory
8944 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8945 get the base service name
8946 (dbus_bus_register_client): don't return base service name,
8947 instead store it on the DBusConnection and have an accessor
8949 (dbus_bus_register_client): rename dbus_bus_register()
8951 * bus/dispatch.c (check_hello_message): verify that other
8952 connections on the bus also got the correct results, not
8953 just the one sending hello
8955 2003-03-15 Havoc Pennington <hp@pobox.com>
8957 Make it pass the Hello handling test including all OOM codepaths.
8958 Now to do other messages...
8960 * bus/services.c (bus_service_remove_owner): fix crash when
8961 removing owner from an empty list of owners
8962 (bus_registry_ensure): don't leave service in the list of
8963 a connection's owned services if we fail to put the service
8966 * bus/connection.c (bus_connection_preallocate_oom_error): set
8967 error flag on the OOM error.
8969 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8970 handle _dbus_transport_set_connection failure
8972 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8973 to create watches up front and simply enable/disable them as
8975 (unix_connection_set): this can now fail on OOM
8977 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8978 of enabling/disabling a watch or timeout.
8980 * bus/loop.c (bus_loop_iterate): don't touch disabled
8983 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8985 2003-03-15 Havoc Pennington <hp@pobox.com>
8987 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8988 write useful test code, after all that futzing around ;-)
8990 Test does not yet pass because we can't handle OOM in
8991 _dbus_transport_messages_pending (basically,
8992 dbus_connection_preallocate_send() does not prealloc the write
8993 watch). To fix this, I think we need to add new stuff to
8994 set_watch_functions, namely a SetEnabled function so we can alloc
8995 the watch earlier, then enable it later.
8997 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8998 dbus-memory.c to the convenience lib
9000 * bus/test.c: rename some static functions to keep them clearly
9001 distinct from stuff in connection.c. Handle client disconnection.
9003 2003-03-14 Havoc Pennington <hp@pobox.com>
9005 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9006 transport, tests more of the real codepath. Set up clients
9007 with bus_setup_debug_client.
9009 * bus/test.c (bus_setup_debug_client): function to set up debug
9010 "clients" on the main loop
9012 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9015 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9018 * dbus/dbus-server-debug.c: support a debug server based on pipes
9020 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9021 (_dbus_close): new function
9023 * configure.in: check for socketpair
9025 2003-03-14 Havoc Pennington <hp@redhat.com>
9027 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9030 * dbus/dbus-transport-debug.c: rework this a good bit to be
9031 less complicated. hopefully still works.
9033 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9036 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9039 * dbus/dbus-message.c (dbus_message_copy): rename from
9040 dbus_message_new_from_message, fix it up to copy
9041 all the message fields, add test case
9043 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9044 not quite passing yet
9046 2003-03-14 Havoc Pennington <hp@pobox.com>
9048 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9049 until no work remains" in test code. (the large diff here
9050 is just code movement, no actual changes)
9052 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9053 1, no point waiting around for test code.
9054 (_dbus_server_debug_accept_transport): unref the timeout
9055 after adding it (right?)
9057 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9059 2003-03-13 Havoc Pennington <hp@redhat.com>
9061 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9064 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9067 * dbus/dbus-connection.h: Make AddWatchFunction and
9068 AddTimeoutFunction return a bool so they can fail on out-of-memory
9070 * bus/bus.c (bus_context_new): set up timeout handlers
9072 * bus/connection.c (bus_connections_setup_connection): set up
9075 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9078 * bus/bus.c (bus_context_new): adapt to changes
9080 * bus/connection.c: adapt to changes
9082 * test/watch.c: adapt to DBusWatch changes
9084 * bus/dispatch.c (bus_dispatch_test): started adding this but
9087 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9089 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9091 2003-03-13 Havoc Pennington <hp@pobox.com>
9093 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9094 set up a test framework as for the library
9096 2003-03-12 Havoc Pennington <hp@pobox.com>
9098 Throughout: purge global variables, introduce BusActivation,
9099 BusConnections, BusRegistry, etc. objects instead.
9101 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9104 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9105 going to redo this a bit differently I think
9107 2003-03-12 Havoc Pennington <hp@redhat.com>
9109 Mega-patch that gets the message bus daemon initially handling
9110 out-of-memory. Work still needed. Also lots of random
9111 moving stuff to DBusError instead of ResultCode.
9113 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9115 * dbus/dbus-connection.c
9116 (dbus_connection_send_with_reply_and_block): use DBusError
9118 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9121 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9122 code here, as the only failure possible is OOM.
9124 * bus/connection.c (bus_connection_disconnect):
9125 rename bus_connection_disconnected as it's a notification only
9127 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9128 "name" on get_args failure, should be done by get_args;
9129 don't disconnect client for bad args, just return an error.
9130 (bus_driver_handle_service_exists): ditto
9132 * bus/services.c (bus_services_list): NULL-terminate returned array
9134 * bus/driver.c (bus_driver_send_service_lost)
9135 (bus_driver_send_service_acquired): send messages from driver to a
9136 specific client to the client's unique name, not to the broadcast
9139 * dbus/dbus-message.c (decode_header_data): reject messages that
9140 contain no name field
9141 (_dbus_message_get_client_serial): rename to
9142 dbus_message_get_serial and make public
9143 (_dbus_message_set_serial): rename from set_client_serial
9144 (_dbus_message_set_reply_serial): make public
9145 (_dbus_message_get_reply_serial): make public
9147 * bus/connection.c (bus_connection_foreach): allow stopping
9148 iteration by returning FALSE from foreach function.
9150 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9151 (dbus_connection_free_preallocated_send)
9152 (dbus_connection_preallocate_send): new API for sending a message
9153 without possibility of malloc failure.
9154 (dbus_connection_send_message): rename to just
9155 dbus_connection_send (and same for whole function family)
9157 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9159 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9161 * bus/activation.c: handle/return errors
9163 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9165 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9166 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9167 (_dbus_result_from_errno): move to this file
9169 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9171 * dbus/dbus-marshal.c:
9172 (_dbus_marshal_set_string):
9173 Take a length argument so we can marshal the correct string
9176 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9177 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9178 (_dbus_marshal_test):
9179 * dbus/dbus-marshal.h:
9180 Add support for marshalling and demarshalling dicts.
9182 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9183 Add support for TYPE DICT.
9185 * dbus/dbus-message.c: (set_string_field):
9186 Adjust header padding.
9188 (dbus_message_append_args_valist), (dbus_message_append_dict),
9189 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9190 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9191 (check_message_handling), (check_have_valid_message):
9192 * dbus/dbus-message.h:
9193 Add functions for setting and getting dicts.
9195 * dbus/dbus-protocol.h:
9201 * doc/dbus-specification.sgml:
9202 Add information about how dicts are marshalled.
9204 * test/data/invalid-messages/dict-with-nil-value.message:
9205 * test/data/invalid-messages/too-short-dict.message:
9206 * test/data/valid-messages/dict-simple.message:
9207 * test/data/valid-messages/dict.message:
9208 Add sample messages containing dicts.
9210 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9212 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9214 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9217 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9218 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9219 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9220 (dbus_dict_set_double), (dbus_dict_set_string),
9221 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9222 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9223 (dbus_dict_set_string_array), (_dbus_dict_test):
9225 Fix according to comments from Havoc.
9227 2003-03-06 Michael Meeks <michael@server.home>
9229 * configure.in: if we don't have kde-config, disable have_qt.
9231 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9236 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9237 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9238 (dbus_dict_remove), (dbus_dict_get_value_type),
9239 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9240 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9241 (dbus_dict_put_double), (dbus_dict_put_string),
9242 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9243 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9244 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9245 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9246 (dbus_dict_get_double), (dbus_dict_get_string),
9247 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9248 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9249 (dbus_dict_get_string_array), (_dbus_dict_test):
9251 Add DBusDict implementation
9253 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9257 2003-03-04 Havoc Pennington <hp@pobox.com>
9259 * test/data/auth/*: adapt to changes
9261 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9262 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9265 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9266 more stuff from being in a context name, to make the protocol
9267 simpler to deal with
9269 * dbus/dbus-errors.c (dbus_error_has_name): new function
9270 (dbus_error_is_set): new function
9272 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9273 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9275 * dbus/dbus-connection.c (dbus_connection_flush): also read
9276 messages during a flush operation
9278 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9280 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9282 * configure.in: Check for gethostbyname on Solaris.
9284 * dbus/dbus-transport.c: (_dbus_transport_open):
9285 Remove duplicate "tcp" entry.
9287 * doc/dbus-specification.sgml:
9288 Clarify some things.
9290 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9292 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9293 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9294 (_dbus_keyring_test):
9295 * dbus/dbus-md5.c: (_dbus_md5_compute):
9296 * dbus/dbus-sha.c: (_dbus_sha_compute):
9299 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9301 * README: Add some things.
9303 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9305 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9306 after case DBUS_TYPE_BOOELAN.
9308 2003-03-02 Havoc Pennington <hp@pobox.com>
9310 * test/break-loader.c (randomly_set_extreme_ints): add test that
9311 sets really huge and small integers
9313 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9314 that length of boolean array fits in the string, and that
9315 string has room for boolean value in single-bool case.
9317 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9318 optional value to "ALIGN" command which is what to fill the
9321 * test/data/valid-messages/no-padding.message: add regression
9322 test for the message padding problem
9324 2003-03-02 Havoc Pennington <hp@pobox.com>
9326 * dbus/dbus-message.c (decode_header_data): fix to always init
9327 message_padding, from Benjamin Dauvergne
9329 2003-03-02 Havoc Pennington <hp@pobox.com>
9335 2003-03-01 Joe Shaw <joe@assbarn.com>
9337 * configure.in: Check for "struct cmsgcred" and try to access its
9338 members for BSD-like unices.
9340 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9341 _dbus_read_credentials_unix_socket().
9342 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9343 read() for reading the credential byte off the unix socket. Use
9344 struct cmsgcred on systems that support it.
9346 2003-02-27 Alexander Larsson <alexl@redhat.com>
9350 Make gthreads-2.0 dependency optional. Don't build thread test if
9353 2003-02-27 Havoc Pennington <hp@pobox.com>
9355 * dbus/dbus-connection.c
9356 (dbus_connection_send_message_with_reply_and_block): fix doh!
9357 doh! doh! bug that resulted in never removing a reply from the
9358 queue, no wonder we called get_reply_serial so much ;-)
9360 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9361 and client serial instead of demarshaling them every time
9363 2003-02-27 Havoc Pennington <hp@pobox.com>
9365 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9366 more inlined, using dbus-string-private.h, speeds things up
9369 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9370 when freeing the string
9371 (_dbus_string_steal_data): fix for align offset
9372 (undo_alignment): new function
9374 2003-02-26 Havoc Pennington <hp@redhat.com>
9376 All kinds of audit fixes from Owen, plus initial attempt to
9377 handle unaligned memory returned from malloc.
9379 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9380 leave room for align_offset and nul byte
9381 (fixup_alignment): function to track an align_offset and
9382 ensure real->str is aligned
9383 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9384 to allow a nul byte plus align offset
9385 (_dbus_string_lock): fix overflow issue
9386 (_dbus_string_init_const_len): add assertions on sanity of len,
9387 assign allocated to be ALLOCATION_PADDING larger than len
9388 (set_length): fixup the overflow handling
9389 (_dbus_string_get_data_len): fix overflow in assertion
9390 (open_gap): detect overflow in size of gap to be opened
9391 (_dbus_string_lengthen): add overflow check
9392 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9393 (_dbus_string_append): add overflow check
9394 (_dbus_string_append_unichar): overflow
9395 (_dbus_string_delete): fix overflow in assertion
9396 (_dbus_string_copy_len): overflow in assertion
9397 (_dbus_string_replace_len): overflows in assertions
9398 (_dbus_string_find): change to implement in terms of
9399 _dbus_string_find_to
9400 (_dbus_string_find_to): assorted fixage
9401 (_dbus_string_equal_c_str): assert c_str != NULL,
9402 fix logic so the function works
9403 (_dbus_string_ends_with_c_str): fix overflow thingy
9404 (_dbus_string_base64_encode): overflow fix
9405 (_dbus_string_validate_ascii): overflow
9406 (_dbus_string_validate_nul): overflow
9408 2003-02-26 Havoc Pennington <hp@redhat.com>
9410 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9412 2003-02-26 Alexander Larsson <alexl@redhat.com>
9415 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9417 * dbus/dbus-connection.c:
9418 * dbus/dbus-connection.h:
9419 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9420 Add dbus_connection_set_wakeup_main_function and use it when queueing
9421 incoming and outgoing messages.
9424 * dbus/dbus-dataslot.c:
9425 Threadsafe usage of DBusDataSlotAllocator
9427 * dbus/dbus-message.c: (dbus_message_get_args_iter):
9430 * dbus/dbus-server-unix.c:
9433 * glib/dbus-gmain.c:
9434 Implement the new wakeup functions for glib.
9437 * glib/test-thread-client.c:
9438 * glib/test-thread-server.c:
9439 * glib/test-thread.h:
9440 Initial cut at some thread test code. Not really done yet.
9442 2003-02-26 Havoc Pennington <hp@pobox.com>
9444 * dbus/dbus-connection.c
9445 (dbus_connection_send_message_with_reply_and_block): fix crash
9446 where we ref'd the outgoing message instead of the returned reply
9448 * dbus/dbus-transport-unix.c (do_authentication): check read watch
9449 at the end of this function, so if we didn't need to read for
9450 authentication, we reinstall it for receiving messages
9452 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9453 a NULL sender for peer-to-peer case
9455 * dbus/dbus-transport-unix.c (check_read_watch): handle
9456 !authenticated case correctly
9458 * glib/dbus-gmain.c: add support for DBusServer
9460 * dbus/dbus-server.c: add data slot support
9462 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9463 return values and handle errors
9465 * dbus/dbus-dataslot.c: factor out the data slot stuff from
9468 * Doxyfile.in (INPUT): add glib subdir
9470 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9471 setup_with_g_main instead of hookup_with_g_main; write docs
9473 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9475 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9476 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9477 * dbus/dbus-message.c: (dbus_message_append_boolean),
9478 (dbus_message_append_boolean_array),
9479 (dbus_message_get_args_valist), (_dbus_message_test):
9480 * dbus/dbus-message.h:
9481 * doc/dbus-specification.sgml:
9482 Various fixes as pointed out by Havoc.
9484 * test/data/invalid-messages/bad-boolean-array.message:
9485 * test/data/invalid-messages/bad-boolean.message:
9486 Add invalid boolean value test cases.
9488 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9490 * dbus/dbus-internals.c: (_dbus_type_to_string):
9491 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9492 (_dbus_marshal_validate_arg):
9493 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9494 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9495 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9496 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9497 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9498 (dbus_message_iter_get_double),
9499 (dbus_message_iter_get_boolean_array), (message_iter_test):
9500 * dbus/dbus-message.h:
9501 * dbus/dbus-protocol.h:
9502 * doc/dbus-specification.sgml:
9503 * test/data/valid-messages/lots-of-arguments.message:
9504 Add support for boolean and boolean array types.
9506 2003-02-23 Havoc Pennington <hp@pobox.com>
9508 * dbus/dbus-keyring.c: finish most of this implementation and
9511 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9512 these barf if the error isn't cleared to NULL
9514 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9515 (_dbus_create_directory): new function
9517 * dbus/dbus-errors.c (dbus_set_error): fix warning
9519 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9520 (_dbus_string_hex_decode): new function
9521 (test_hex_roundtrip): test code
9523 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9525 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9527 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9528 the save-to-temp/rename trick to atomically write the new file
9529 (_dbus_string_parse_uint): new function
9531 2003-02-22 Havoc Pennington <hp@pobox.com>
9533 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9535 2003-02-22 Havoc Pennington <hp@pobox.com>
9537 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9538 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9540 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9542 * dbus/test/data/sha-1: add US government test suite for SHA-1
9544 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9546 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9547 Make string arrays NULL-terminated.
9549 * dbus/dbus-memory.c: (dbus_free_string_array):
9550 * dbus/dbus-memory.h:
9551 New function for freeing NULL-terminated string arrays.
9553 * dbus/dbus-message-builder.c: (append_quoted_string),
9554 (_dbus_message_data_load):
9555 Add support for array types.
9557 * dbus/dbus-message.c: (check_message_handling):
9558 Add more types as test cases.
9560 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9561 (_dbus_string_parse_double):
9562 Add the start offset to the end offset.
9564 * test/data/valid-messages/lots-of-arguments.message:
9565 New test message with lots of arguments.
9567 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9569 * dbus/dbus-message.c: (dbus_message_append_nil),
9570 (dbus_message_append_int32), (dbus_message_append_uint32),
9571 (dbus_message_append_double), (dbus_message_append_string),
9572 (dbus_message_append_int32_array),
9573 (dbus_message_append_uint32_array),
9574 (dbus_message_append_double_array),
9575 (dbus_message_append_byte_array),
9576 (dbus_message_append_string_array):
9577 Fix all out-of-memory handling in these functions.
9579 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9581 * dbus/dbus-message.c: (dbus_message_append_nil):
9584 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9586 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9587 (dbus_message_append_nil), (dbus_message_append_int32_array),
9588 (dbus_message_append_uint32_array),
9589 (dbus_message_append_double_array),
9590 (dbus_message_append_byte_array),
9591 (dbus_message_append_string_array), (dbus_message_get_args_valist),
9592 (dbus_message_iter_get_int32_array),
9593 (dbus_message_iter_get_uint32_array),
9594 (dbus_message_iter_get_double_array),
9595 (dbus_message_iter_get_byte_array),
9596 (dbus_message_iter_get_string_array):
9598 * dbus/dbus-message.h:
9599 Add functions for appending and getting arrays.
9601 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9603 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9604 element size at least 8 bytes, fixes mempool tests on
9607 2003-02-20 Alexander Larsson <alexl@redhat.com>
9609 * dbus/dbus-transport-unix.c (unix_do_iteration):
9610 Unlock the connection mutex during a blocking select call.
9611 Add todo about how we need a way to wake up the select.
9613 * dbus/dbus-connection-internal.h:
9614 * dbus/dbus-connection.c:
9615 Add _dbus_connection_lock and _dbus_connection_unlock.
9617 2003-02-19 Havoc Pennington <hp@pobox.com>
9619 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9620 Doxyfile.in, not Doxyfile
9622 * dbus/dbus-keyring.c: do some hacking on this
9624 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9626 * dbus/dbus-errors.c (dbus_set_error_const): do not call
9628 (dbus_set_error): remove dbus_error_init, check for message ==
9629 NULL *before* we sprintf into it, and add @todo about including
9630 system headers in this file
9632 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9634 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9636 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9637 get various bits of user information based on either username
9639 (_dbus_homedir_from_username): new function
9641 2003-02-19 Anders Carlsson <andersca@codefactory.se>
9644 Add check for nonposix getpwnam_r
9646 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9647 Align the pool element size to a sizeof (void *) boundary.
9649 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9650 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9651 General Solaris fixes.
9653 * test/data/valid-messages/simplest-manual.message:
9654 Explicitly state that we want little-endian packing.
9656 2003-02-19 Mikael Hallendal <micke@codefactory.se>
9658 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9660 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9661 Added to create a transport connecting using a tcp/ip socket.
9663 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9664 to a tcp socket at given host and port.
9665 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9668 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9670 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9671 Added to create a server listening on a TCP/IP socket.
9673 2003-02-19 Havoc Pennington <hp@pobox.com>
9675 Throughout: mop up all the Doxygen warnings and undocumented
9678 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9679 to search any paths.
9681 * dbus/dbus-threads.c: move global mutex initializers to
9682 dbus-internals.h, multiple prototypes was confusing doxygen
9683 besides being kind of ugly
9685 * Doxyfile (PREDEFINED): have Doxygen define
9686 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9687 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9688 (do not abuse the feature! it's for stuff like the autogenerated
9689 macros in dbus-md5.c, not just for things you don't feel like
9692 2003-02-18 Havoc Pennington <hp@pobox.com>
9694 * dbus/dbus-string.c (_dbus_string_zero): new function
9696 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9697 wrap it in some dbus-friendly API
9699 * dbus/dbus-types.h: add 16-bit types
9701 2003-02-18 Joe Shaw <joe@assbarn.com>
9703 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9704 credentials from our currently running process.
9705 (get_word): Fix a buglet where we were copying the entire length
9706 instead of relative to our position.
9708 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9709 keys on the stack... it's 640k of data.
9711 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9712 read the credentials byte off the socket, even if we don't have
9714 (_dbus_poll): Implement poll() using select() for systems which
9717 * glib/test-dbus-glib.c (main): Print out an error if no
9718 parameters are given.
9720 * test/data/auth/fallback.auth-script: Added. Tests that a client
9721 can fallback to a secondary auth mechanism if the first fails.
9723 2003-02-18 Havoc Pennington <hp@pobox.com>
9727 2003-02-17 Havoc Pennington <hp@pobox.com>
9729 * doc/dbus-specification.sgml: lots of cosmetic
9730 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9731 env variable to DBUS_BUS_ADDRESS, s/client/application/,
9732 s/server/bus/ (except in authentication section). Add a section
9733 "Message Bus Message Routing"
9735 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
9741 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9743 * doc/dbus-specification.sgml:
9744 Specification updates.
9746 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9748 * bus/activation.c: (bus_activation_init), (child_setup),
9749 (bus_activation_activate_service):
9751 * bus/main.c: (main):
9752 Set DBUS_ADDRESS environment variable.
9754 * dbus/dbus-errors.c: (dbus_set_error):
9755 Don't use va_copy since that's a C99 feature.
9757 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9758 (_dbus_spawn_async):
9759 * dbus/dbus-sysdeps.h:
9760 Add child_setup_func to _dbus_spawn_async.
9762 * doc/dbus-specification.sgml:
9763 Update specification.
9765 * test/spawn-test.c: (setup_func), (main):
9768 2003-02-17 Alexander Larsson <alexl@redhat.com>
9770 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9773 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9777 * doc/dbus-test-plan.sgml:
9778 Add test plan document.
9783 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9785 * dbus/dbus-message.c: (decode_header_data),
9786 (_dbus_message_loader_return_buffer):
9787 Set the header padding amount when loading a message.
9789 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9791 * bus/dispatch.c: (send_one_message):
9792 Only send broadcast messages to registered connections.
9794 * dbus/dbus-message.c: (dbus_message_name_is):
9795 * dbus/dbus-message.h:
9796 New convenience function.
9798 * dbus/dbus-transport-debug.c: (do_reading):
9799 Only dispatch one message per run.
9802 * test/bus-test.c: (new_connection_callback), (die),
9803 (test_hello_client1_handler), (test_hello_client2_handler),
9804 (test_hello_replies), (main):
9806 * test/bus-test-loop.[ch]:
9809 2003-02-16 Havoc Pennington <hp@pobox.com>
9811 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9812 backward conditional
9814 2003-02-16 Alexander Larsson <alexl@redhat.com>
9816 * dbus/dbus-connection.c:
9817 Implement sent_message_with_reply. (with_reply_and block is still
9819 Made dispatch_message not lose message if OOM.
9821 * dbus/dbus-errors.h:
9822 Add NoReply error (for reply timeouts).
9824 2003-02-16 Alexander Larsson <alexl@redhat.com>
9826 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9827 Actually free keys and values when destroying hashtable.
9829 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9831 * dbus/dbus-auth.c: (client_try_next_mechanism):
9834 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9835 Return TRUE if there's no thread implementation around.
9837 * glib/dbus-gmain.c: (free_source),
9838 (dbus_connection_hookup_with_g_main):
9839 Make sure to remove the GSource when the connection is finalized.
9841 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9843 * bus/dispatch.c: (bus_dispatch_message_handler):
9844 * dbus/dbus-errors.h:
9845 Return an error if someone tries to send a message to a service
9848 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9850 * bus/activation.c: (load_directory), (bus_activation_init),
9851 (bus_activation_activate_service):
9854 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9855 More work on the activation handling.
9857 * dbus/dbus-errors.h:
9858 Add some error messages
9860 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9861 * dbus/dbus-message.h:
9862 New function that creates an error message.
9864 * dbus/dbus-protocol.h:
9865 Add ACTIVATE_SERVER message.
9867 * dbus/dbus-server-unix.c: (unix_handle_watch),
9868 (_dbus_server_new_for_domain_socket):
9869 Call _dbus_fd_set_close_on_exec.
9871 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9872 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9873 (_dbus_fd_set_close_on_exec):
9874 * dbus/dbus-sysdeps.h:
9875 Add _dbus_fd_set_close_on exec function. Also add function that checks
9876 that all open fds are set to close-on-exec and warns otherwise.
9878 * dbus/dbus-transport-unix.c:
9879 (_dbus_transport_new_for_domain_socket):
9880 Call _dbus_fd_set_close_on_exec.
9882 2003-02-16 Havoc Pennington <hp@pobox.com>
9884 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9885 allow people to avoid setting SIGPIPE to SIG_IGN
9886 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9887 we've been asked not to
9889 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9891 * dbus/dbus-list.c: (_dbus_list_append_link),
9892 (_dbus_list_prepend_link):
9893 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9897 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9900 * bus/activation.c: (bus_activation_entry_free),
9901 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9903 * bus/main.c: (main):
9904 Add simple activation support, doesn't work yet though.
9906 2003-02-15 Zack Rusin <zack@kde.org>
9908 * qt/dbus-qthread.cpp: small casting fix
9910 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9912 * dbus/dbus-errors.c: (dbus_set_error):
9913 * dbus/dbus-errors.h:
9914 Add a few errors and make dbus_set_error void.
9916 * dbus/dbus-sysdeps.c:
9917 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9918 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9919 * dbus/dbus-sysdeps.h:
9920 Add _dbus_spawn_async.
9922 * test/spawn-test.c: (main):
9923 Test for _dbus_spawn_async.
9925 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9927 * dbus/dbus-internals.h:
9928 Fix build without tests.
9930 * dbus/dbus-list.c: (alloc_link):
9931 Fix a segfault when a malloc fails.
9933 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9934 (dbus_malloc0), (dbus_realloc):
9935 Add support for malloc debugging.
9937 2003-02-15 Alexander Larsson <alexl@redhat.com>
9939 * dbus/dbus-threads.c:
9940 * dbus/dbus-threads.h:
9941 Add condvars. Remove static mutext from API.
9942 Implement static mutexes by initializing them from threads_init.
9944 * glib/dbus-gthread.c:
9945 * qt/dbus-qthread.cpp:
9946 Update with the thread api changes.
9951 Turn StaticMutex into normal mutex + init function.
9952 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9953 _dbus_list_append_link, _dbus_list_prepend_link
9956 * dbus/dbus-sysdeps.c:
9957 * dbus/dbus-sysdeps.h:
9958 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9959 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9961 * dbus/dbus-protocol.h:
9962 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9964 * dbus/dbus-message.c:
9965 Make ref/unref atomic.
9968 * dbus/dbus-connection-internal.h:
9969 * dbus/dbus-connection.c:
9970 * dbus/dbus-connection.h:
9972 Change _peek to _borrow,_return & _steal_borrowed.
9973 Change disconnect callback to event.
9974 Make dbus_connection_dispatch_messages reentrant.
9976 * dbus/dbus-transport.c:
9977 Don't ref the connection on calls to the transport
9980 * dbus/dbus-message-handler.c:
9983 * glib/dbus-gmain.c:
9984 Don't use peek_message anymore
9987 * test/debug-thread.c:
9988 * test/debug-thread.h:
9989 Simple thread implementation that asserts() on deadlocks in
9990 single-threaded code.
9993 (main) Call debug_threads_init.
9996 Use disconnect message instead of disconnect callback.
10000 Don't call dbus_connection_set_disconnect_function. Instead export
10001 bus_connection_disconnect.
10004 Call bus_connection_disconnect when we get a disconnected message.
10006 2003-02-15 Havoc Pennington <hp@pobox.com>
10008 * dbus/dbus-message.c (dbus_message_new): fool around with the
10011 2003-02-14 Havoc Pennington <hp@pobox.com>
10013 * dbus/dbus-mempool.c: fail if the debug functions so indicate
10015 * dbus/dbus-memory.c: fail if the debug functions indicate we
10018 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10019 (_dbus_decrement_fail_alloc_counter): debug functions to
10020 simulate memory allocation failures
10022 2003-02-14 Havoc Pennington <hp@pobox.com>
10024 * dbus/dbus-errors.h (struct DBusError): add a word of padding
10027 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10029 * bus/driver.c: (bus_driver_handle_hello):
10031 * bus/services.c: (bus_service_lookup):
10032 Reorder message sending so we get a more sane order.
10034 * test/bus-test.c: (message_handler):
10037 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10039 * bus/driver.c: (bus_driver_send_service_deleted),
10040 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10041 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10042 (bus_driver_send_welcome_message),
10043 (bus_driver_handle_list_services),
10044 (bus_driver_handle_acquire_service),
10045 (bus_driver_handle_service_exists):
10046 * dbus/dbus-bus.c: (dbus_bus_register_client),
10047 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10048 * dbus/dbus-errors.c: (dbus_result_to_string):
10049 * dbus/dbus-errors.h:
10050 * dbus/dbus-message.c: (dbus_message_append_args),
10051 (dbus_message_append_args_valist), (dbus_message_get_args),
10052 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10053 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10054 (dbus_message_iter_get_byte_array),
10055 (dbus_message_iter_get_string_array), (message_iter_test),
10056 (check_message_handling), (_dbus_message_test):
10057 * dbus/dbus-message.h:
10058 * test/bus-test.c: (main):
10059 Change fields to arguments in messages, so that they won't be
10060 confused with header fields.
10062 * glib/test-dbus-glib.c: (main):
10063 Remove append_fields from hello message.
10065 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10067 * dbus/dbus-errors.c:
10068 * dbus/dbus-message.c:
10069 * dbus/dbus-string.c:
10070 Documentation fixes.
10072 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10074 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10076 Implement support for timeouts in dbus-glib.
10078 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10080 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10081 * dbus/dbus-message.c: (process_test_subdir):
10082 * test/break-loader.c: (find_breaks_based_on):
10083 Plug some memory leaks.
10085 2003-02-13 Richard Hult <rhult@codefactory.se>
10087 * bus/main.c: Fix build.
10089 * dbus/dbus-errors.h:
10090 * dbus/dbus-errors.c: Fix copyright for Anders.
10092 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10097 * bus/connection.c: (bus_connection_foreach):
10100 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10101 (unescape_string), (new_section), (parse_section_start),
10102 (parse_key_value), (report_error), (bus_desktop_file_load),
10103 (bus_desktop_file_get_string):
10104 * bus/desktop-file.h:
10105 Use DBusError for error reporting.
10107 * bus/dispatch.c: (send_one_message),
10108 (bus_dispatch_message_handler):
10109 * bus/driver.c: (bus_driver_send_service_deleted),
10110 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10111 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10112 (bus_driver_send_welcome_message),
10113 (bus_driver_handle_list_services),
10114 (bus_driver_handle_acquire_service),
10115 (bus_driver_handle_service_exists):
10116 * bus/loop.c: (bus_loop_run):
10118 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10120 * bus/utils.c: (bus_wait_for_memory):
10122 New files with general utility functions.
10124 * dbus/dbus-internals.h:
10125 Remove _DBUS_HANDLE_OOM.
10127 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10129 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10130 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10131 * dbus/dbus-errors.h:
10132 Add DBusError structure.
10134 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10136 * test/data/valid-messages/standard-acquire-service.message:
10137 * test/data/valid-messages/standard-hello.message:
10138 * test/data/valid-messages/standard-list-services.message:
10139 * test/data/valid-messages/standard-service-exists.message:
10140 Add some standard messages.
10142 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10144 * bus/driver.c: (bus_driver_send_welcome_message),
10145 (bus_driver_handle_list_services),
10146 (bus_driver_handle_acquire_service),
10147 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10148 Update for API changes in libdbus.
10150 * dbus/dbus-message.c: (dbus_message_new_reply):
10151 * dbus/dbus-message.h:
10152 Remove the name argument. The spec states that replies shouldn't
10155 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10157 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10158 (report_error), (bus_desktop_file_load), (lookup_section),
10159 (lookup_line), (bus_desktop_file_get_raw),
10160 (bus_desktop_file_get_string):
10161 * bus/desktop-file.h:
10162 Some fixes, and new functions for getting a key value from a section.
10164 2003-02-13 Havoc Pennington <hp@pobox.com>
10166 * test/data/auth/fail-after-n-attempts.auth-script: new test
10168 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10171 2003-02-13 Havoc Pennington <hp@pobox.com>
10173 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10174 dbus_credentials_match were backward
10176 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10177 NO_CREDENTIALS and ROOT_CREDENTIALS
10179 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10180 into here. Never process more commands after we've reached an
10181 end state; store further data as unused bytes.
10183 * test/data/auth/*: add more auth tests
10185 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10186 command to match exact string and EXPECT_UNUSED to match unused
10189 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10191 2003-02-12 Havoc Pennington <hp@pobox.com>
10193 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10194 \r off of popped lines
10196 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10199 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10202 2003-02-12 Havoc Pennington <hp@pobox.com>
10204 * dbus/Makefile.am: remove break-loader from the build, since it
10207 * configure.in: add --enable-gcov to turn on coverage profiling
10208 flags and disable optimization
10210 2003-02-10 Havoc Pennington <hp@pobox.com>
10212 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10213 initial cut at test framework for DBusAuth from laptop.
10214 Doesn't quite work yet but it compiles and I need to get
10215 it off the 266mhz laptop. ;-)
10217 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10218 fix a memleak in error case
10220 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10223 * bus/desktop-file.c:
10224 * bus/desktop-file.h:
10225 Add a desktop file parser.
10227 2003-02-11 Zack Rusin <zack@kde.org>
10229 * qt/message.[h|cpp]: sample implementation
10230 of the KDE wrapper for DBusMessage
10232 2003-02-09 Zack Rusin <zack@kde.org>
10234 * test/bus-test.c: make_it_compile
10235 * doc/dbus-specification.sgml: minimal semantic fix
10237 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10243 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10245 * dbus/Makefile.am:
10246 * dbus/dbus-break-loader.c:
10247 * test/Makefile.am:
10248 * test/break-loader.c:
10249 Move dbus-break-loader to test/ and rename it to break-loader.
10251 2003-02-02 Havoc Pennington <hp@pobox.com>
10253 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10254 for code to manage cookies in your home directory
10256 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10258 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10259 to authenticate, then disconnect the client.
10261 2003-02-03 Alexander Larsson <alexl@redhat.com>
10263 * dbus/dbus-message.c (dbus_message_append_fields):
10266 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10268 * doc/dbus-specification.sgml:
10269 Update address format section.
10271 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10273 * test/Makefile.am:
10274 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10275 (message_handler), (new_connection_callback), (loop_quit),
10276 (loop_run), (main):
10279 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10281 * bus/driver.c: (bus_driver_handle_service_exists):
10282 Simplify the code a bit.
10284 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10287 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10290 Add libdbus-daemon.la and link to it.
10292 2003-02-01 James Willcox <jwillcox@gnome.org>
10294 * bus/driver.c: (bus_driver_handle_own_service):
10295 Actually include the service reply code in the message.
10297 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10299 * bus/driver.c: (bus_driver_handle_service_exists):
10300 Don't unref the incoming message.
10302 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10304 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10306 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10308 * dbus/dbus-server.c: (dbus_server_listen):
10309 * dbus/dbus-transport.c: (_dbus_transport_open):
10310 ifdef out the calls to the debug transport and server.
10312 2003-02-02 Alexander Larsson <alexl@redhat.com>
10314 * dbus/dbus-watch.c (dbus_watch_get_flags):
10315 Add note in the docs that ERROR or HANGUP won't be returned
10316 and are assumed always on.
10318 * glib/dbus-gmain.c (add_watch):
10319 Always add IO_ERR | IO_HUP
10321 * dbus/dbus-message.h:
10322 Add semicolon after dbus_message_iter_get_string_array().
10323 Makes qt code build again
10325 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10327 * bus/driver.c: (create_unique_client_name),
10328 (bus_driver_handle_hello):
10329 Don't take a name, just use a numeric id to identify
10332 * dbus/Makefile.am:
10333 * dbus/dbus-bus.c: (dbus_bus_register_client),
10334 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10336 Add new convenience functions for communicating with the bus.
10338 * dbus/dbus-message.h:
10340 * dbus/dbus-protocol.h:
10343 2003-02-01 Alexander Larsson <alexl@redhat.com>
10345 * dbus/dbus-message.c (dbus_message_append_fields):
10346 Add some more doc comments.
10348 2003-02-01 Havoc Pennington <hp@pobox.com>
10350 * dbus/dbus-break-loader.c (randomly_modify_length): change
10351 a 4-byte value in the message as if it were a length
10353 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10354 execute bit on saved files
10356 2003-02-01 Havoc Pennington <hp@pobox.com>
10358 * dbus/dbus-break-loader.c (main): new program to find messages
10359 that break the loader.
10361 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10362 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10364 * dbus/dbus-string.c (_dbus_string_set_byte): new
10366 2003-01-31 Havoc Pennington <hp@pobox.com>
10368 * dbus/dbus-message.c: refactor the test code to be more general,
10369 in preparation for writing a "randomly permute test cases to
10370 try to break the loader" program.
10372 2003-01-31 Havoc Pennington <hp@pobox.com>
10374 * doc/dbus-specification.sgml: work on the specification
10376 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10377 the protocol version of the message.
10379 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10380 no longer specifies that.
10381 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10384 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10385 "break" for DBUS_TYPE_NIL, remove @todo
10387 2003-01-31 Havoc Pennington <hp@pobox.com>
10389 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10390 just set_is_error/get_is_error as this is a commonly-used
10391 function, and write docs.
10393 2003-01-31 Anders Carlsson <andersca@codefactory.se>
10395 * dbus/dbus-address.c: (dbus_address_entry_free):
10396 Free key and value lists.
10398 * dbus/dbus-internals.c: (_dbus_type_to_string):
10399 Add the types we didn't have.
10401 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10402 (_dbus_marshal_validate_arg):
10405 * dbus/dbus-message.c: (dbus_message_set_sender):
10406 Remove todo about being able to set sender to NULL.
10408 (dbus_message_set_is_error_reply),
10409 (dbus_message_get_is_error_reply):
10410 * dbus/dbus-message.h:
10413 * dbus/dbus-protocol.h:
10414 Add error reply flag.
10416 * test/data/valid-messages/opposite-endian.message:
10417 Add NIL type to test.
10419 2003-01-31 Havoc Pennington <hp@pobox.com>
10421 * doc/dbus-specification.sgml: fully specify the header. Add
10422 flags and major protocol version, and change header/body len to
10425 * dbus/dbus-message-builder.c (append_saved_length): append length
10428 * dbus/dbus-message.c (dbus_message_create_header): change header
10429 length and body length to unsigned. Add the new fields from the
10431 (_dbus_message_loader_return_buffer): unsigned header/body len
10433 2003-01-30 Havoc Pennington <hp@pobox.com>
10435 * dbus/dbus-auth.c: rework to use only REJECTED, no
10438 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10439 use REJECTED, suggested by Mark McLoughlin
10441 2003-01-30 Havoc Pennington <hp@pobox.com>
10443 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10444 a better way to report errors here. e.g. "unix address lacks
10445 path" or something. also "no such file" when the path doesn't
10448 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10450 (dbus_parse_address): add @todo about documenting address format,
10451 and allowing , and ; to be escaped
10453 2003-01-30 Anders Carlsson <andersca@codefactory.se>
10455 * dbus/Makefile.am:
10456 Add dbus-address.[ch]
10458 * dbus/dbus-address.c: (dbus_address_entry_free),
10459 (dbus_address_entries_free), (create_entry),
10460 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10461 (dbus_parse_address), (_dbus_address_test):
10462 * dbus/dbus-address.h:
10463 New files for dealing with address parsing.
10465 * dbus/dbus-connection.c:
10466 Document timeout functions.
10468 * dbus/dbus-message.c:
10469 Document dbus_message_new_from_message.
10471 * dbus/dbus-server-debug.c:
10474 * dbus/dbus-server.c: (dbus_server_listen):
10475 Parse address and use correct server implementation.
10477 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10478 * dbus/dbus-string.h:
10479 New function with test.
10481 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10482 * dbus/dbus-test.h:
10485 * dbus/dbus-transport-debug.c:
10488 * dbus/dbus-transport.c: (_dbus_transport_open):
10489 Parse address and use correct transport implementation.
10491 2003-01-30 Havoc Pennington <hp@pobox.com>
10493 * dbus/dbus-message.c: use message->byte_order instead of
10494 DBUS_COMPILER_BYTE_ORDER throughout.
10495 (dbus_message_create_header): pad header to align the
10496 start of the body of the message to 8-byte boundary
10498 * dbus/dbus-marshal.h: make all the demarshalers take const
10499 DBusString arguments.
10501 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10502 validate message args here, so we don't have to do slow validation
10503 later, and so we catch bad messages as they are incoming. Also add
10504 better checks on header_len and body_len. Also fill in
10505 message->byte_order
10507 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10508 implemented properly)
10509 (_dbus_string_validate_nul): new function to check all-nul
10511 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10512 get_arg_end_pos and remove all validation
10513 (_dbus_marshal_validate_arg): actually do validation here.
10515 2003-01-29 Havoc Pennington <hp@pobox.com>
10517 * dbus/dbus-message.c (check_message_handling): fix assertion
10518 failure on set_client_serial
10520 2003-01-28 Havoc Pennington <hp@pobox.com>
10522 * dbus/dbus-server-debug.c: Add doc section comments
10524 * dbus/dbus-transport-debug.c: add doc section comments
10526 2003-01-28 Havoc Pennington <hp@redhat.com>
10528 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10529 the reverse order from how I had it
10530 (_dbus_string_base64_encode): reverse encoding order. I was
10531 basically byteswapping everything during encoding.
10533 2003-01-28 Anders Carlsson <andersca@codefactory.se>
10535 * dbus/dbus-connection-internal.h:
10536 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10537 (_dbus_connection_remove_timeout):
10538 Add functions for adding and removing timeouts.
10540 * dbus/dbus-message.c: (dbus_message_new_from_message):
10541 Add new function that takes a message and creates an exact
10542 copy of it, but with the refcount set to 1.
10543 (check_message_handling):
10546 * dbus/dbus-server-protected.h:
10547 * dbus/dbus-server.c: (_dbus_server_init_base),
10548 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10549 (dbus_server_set_timeout_functions):
10550 (_dbus_server_remove_timeout):
10551 New functions so that a server can add and remove timeouts.
10553 (dbus_server_listen):
10554 Add commented out call to dbus_server_debug_new.
10556 * dbus/dbus-timeout.c: (_dbus_timeout_new):
10557 Actually set the handler, doh.
10559 * dbus/dbus-transport.c: (_dbus_transport_open):
10560 Add commented out call to dbus_transport_debug_client_new.
10562 * dbus/Makefile.am:
10563 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10565 2003-01-28 Havoc Pennington <hp@pobox.com>
10567 * dbus/dbus-message.c (check_message_handling): function to check
10568 on the loaded message, iterates over it etc.
10570 2003-01-28 Havoc Pennington <hp@pobox.com>
10572 * test/Makefile.am (dist-hook): fix make distdir
10574 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10576 2003-01-27 Havoc Pennington <hp@pobox.com>
10578 * dbus/dbus-mempool.c (time_for_size): replace printf with
10581 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10582 empty lines; fix the SAVE_LENGTH stuff to be
10583 START_LENGTH/END_LENGTH so it actually works; couple other
10586 * test/Makefile.am (dist-hook): add dist-hook for .message files
10588 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10589 can be constant or locked.
10590 (_dbus_string_free): allow freeing a const string as
10591 documented/intended
10593 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10595 * dbus/dbus-test-main.c (main): take an argument which is the
10596 directory containing test data
10598 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10599 argument to this and load all the messages in test/data/
10600 checking that they can be loaded or not loaded as appropriate.
10602 2003-01-27 Anders Carlsson <andersca@codefactory.se>
10604 * bus/dispatch.c: (bus_dispatch_message_handler):
10605 Dispatch messages sent to services.
10607 * bus/driver.c: (bus_driver_send_service_deleted),
10608 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10609 (bus_driver_send_service_acquired):
10610 Add helper functions for sending service related messages.
10612 (bus_driver_send_welcome_message):
10613 Send HELLO_REPLY instead of WELCOME.
10615 (bus_driver_handle_list_services):
10616 Send LIST_SERVICES_REPLY instead of SERVICES.
10618 (bus_driver_handle_own_service),
10619 (bus_driver_handle_service_exists):
10620 New message handlers.
10622 (bus_driver_handle_message):
10623 Invoke new message handlers.
10625 (bus_driver_remove_connection):
10626 Don't remove any services here since that's done automatically
10627 by bus_service_remove_owner now.
10630 New function signatures.
10632 * bus/services.c: (bus_service_add_owner):
10633 Send ServiceAcquired message if we're the only primary owner.
10635 (bus_service_remove_owner):
10636 Send ServiceAcquired/ServiceLost messages.
10638 (bus_service_set_prohibit_replacement),
10639 (bus_service_get_prohibit_replacement):
10640 Functions for setting prohibit replacement.
10642 (bus_service_has_owner):
10643 New function that checks if a connection is in the owner queue of
10647 Add new function signatures.
10649 * dbus/dbus-list.c: (_dbus_list_test):
10650 Add tests for _dbus_list_remove_last and traversing the list backwards.
10652 * dbus/dbus-list.h:
10653 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10654 go any further, so return NULL then.
10656 * dbus/dbus-protocol.h:
10657 Add new messages, service flags and service replies.
10659 2003-01-26 Havoc Pennington <hp@pobox.com>
10661 * dbus/dbus-message-builder.c: implement, completely untested.
10663 * test/data/*: add data to be used in testing.
10664 ".message" files are our simple loadable text format.
10665 ".message-raw" will be binary dumps of messages.
10667 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10669 2003-01-26 Havoc Pennington <hp@pobox.com>
10671 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10673 * dbus/dbus-errors.c (dbus_result_to_string): add
10676 * dbus/dbus-message-builder.c: new file, will contain code to load
10677 up messages from files. Not implemented yet.
10679 2003-01-26 Havoc Pennington <hp@pobox.com>
10681 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10682 the sender by setting to NULL
10684 2003-01-26 Havoc Pennington <hp@pobox.com>
10686 The unit tests pass, but otherwise untested. If it breaks, the
10687 tests should have been better. ;-)
10689 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10692 * dbus/dbus-message.c: redo everything so we maintain
10693 message->header as the only copy of the various fields.
10694 This avoids the possibility of out-of-memory in some cases,
10695 for example dbus_message_lock() can't run out of memory anymore,
10696 and avoids extra copying. Figured I may as well go ahead and do
10697 this since it was busted for dbus_message_lock to not return
10698 failure on OOM, and dbus_message_write_header was totally
10699 unchecked for OOM. Also fixed some random other bugs.
10701 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10702 that strings are nul-terminated. Also, end_pos can be equal
10703 to string length just not greater than, I think.
10704 (_dbus_marshal_set_int32): new function
10705 (_dbus_marshal_set_uint32): new function
10706 (_dbus_marshal_set_string): new function
10708 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10709 a warning, init timeout_list to NULL
10710 (dbus_connection_send_message): don't use uninitialized variable
10713 * dbus/dbus-string.c (_dbus_string_replace_len): new function
10715 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10717 * bus/driver.c: (bus_driver_handle_hello),
10718 (bus_driver_send_welcome_message):
10721 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10723 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10724 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10725 (dbus_connection_unref):
10726 * dbus/dbus-marshal.c: (_dbus_marshal_test):
10727 * dbus/dbus-message.c: (dbus_message_unref),
10730 (dbus_message_get_fields):
10731 Remove debugging printout.
10733 (_dbus_message_loader_return_buffer):
10734 Don't store the header string.
10736 (_dbus_message_test):
10739 2003-01-26 Richard Hult <rhult@codefactory.se>
10741 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10742 the file descriptor list, since it can change under us.
10744 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10746 * glib/dbus-gmain.c: (dbus_connection_prepare),
10747 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10748 (remove_watch), (dbus_connection_hookup_with_g_main):
10749 Rewrite the glib handling to use its own GSource instead of a
10750 GIOChannel so we can catch messages put in the queue while waiting
10753 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10756 * bus/connection.c: (connection_disconnect_handler),
10757 (connection_watch_callback), (bus_connection_setup):
10758 * bus/dispatch.c: (send_one_message),
10759 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10760 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10762 * bus/driver.c: (bus_driver_send_service_deleted),
10763 (bus_driver_send_service_created), (bus_driver_handle_hello),
10764 (bus_driver_send_welcome_message),
10765 (bus_driver_handle_list_services), (bus_driver_remove_connection),
10766 (bus_driver_handle_message):
10768 Refactor code, put the message dispatching in its own file. Use
10769 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10772 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10774 * dbus/dbus-internals.h:
10775 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10777 * dbus/dbus-message.c: (dbus_message_get_sender):
10778 * dbus/dbus-message.h:
10779 Implement dbus_message_get_sender.
10781 * dbus/dbus-protocol.h:
10782 Add message and service defines.
10784 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10786 * dbus/dbus-connection.c: (dbus_connection_send_message):
10787 * dbus/dbus-message-internal.h:
10788 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10789 (dbus_message_write_header):
10790 Remove _dbus_messag_unlock and don't set the client serial on a
10791 message if one already exists.
10793 2003-01-24 Havoc Pennington <hp@pobox.com>
10795 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10798 * bus/driver.c (bus_driver_handle_list_services): fix a leak
10801 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10803 * dbus/dbus-list.c: (alloc_link), (free_link):
10804 Use a memory pool for the links.
10806 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10808 * bus/connection.c: (bus_connection_foreach):
10809 * bus/connection.h:
10810 Add new bus_connection_foreach function.
10812 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10813 Add function that broadcasts a message to all clients.
10815 (bus_driver_send_service_created), (bus_driver_handle_hello),
10816 (bus_driver_send_welcome_message),
10817 (bus_driver_handle_list_services), (bus_driver_message_handler):
10818 Implement functions that take care of listing services, and notifying
10819 clients when new services are created.
10821 * bus/services.c: (bus_services_list):
10823 Add new function that returns an array of strings with the currently
10824 registered services.
10826 * glib/dbus-glib.h:
10827 * glib/dbus-gmain.c:
10828 Update copyright year.
10830 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10832 * dbus/dbus-connection.c: (dbus_connection_send_message):
10833 Unlock the message in case it was sent earlier.
10835 (dbus_connection_send_message_with_reply_and_block):
10836 Remove the reply message from the list.
10838 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10839 Set array_len and new_pos correctly.
10841 (_dbus_marshal_test):
10842 Remove debug output.
10844 * dbus/dbus-message-internal.h:
10845 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10846 New function that returns the reply serial.
10848 (_dbus_message_unlock):
10849 New function that unlocks a message and resets its header.
10851 (dbus_message_append_string_array),
10852 (dbus_message_get_fields_valist),
10853 (dbus_message_iter_get_field_type),
10854 (dbus_message_iter_get_string_array),
10855 (dbus_message_get_fields),
10856 (dbus_message_append_fields_valist):
10857 Handle string arrays.
10859 (dbus_message_set_sender):
10860 Make this function public since the bus daemon needs it.
10862 (decode_header_data):
10863 Set the reply serial to -1 initially.
10865 * dbus/dbus-message.h:
10866 Add dbus_message_set_sender.
10868 2003-01-24 Havoc Pennington <hp@pobox.com>
10870 * doc/dbus-specification.sgml: add some stuff
10872 2003-01-22 Havoc Pennington <hp@pobox.com>
10874 * doc/dbus-specification.sgml: Start to document the protocol.
10876 2003-01-22 Havoc Pennington <hp@pobox.com>
10878 * dbus/dbus-connection.c
10879 (dbus_connection_send_message_with_reply_and_block): add some @todo
10881 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10883 2003-01-21 Havoc Pennington <hp@pobox.com>
10885 (patch untested because can't compile)
10887 * bus/driver.c (create_unique_client_name): make this function
10888 never recycle client names. Also, caller should initialize
10891 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10893 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10895 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10896 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10897 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10898 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10899 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10900 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10901 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10902 * dbus/dbus-marshal.h:
10903 * dbus/dbus-protocol.h:
10904 Add support for marshalling and demarshalling integer, double
10907 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10912 * bus/connection.c: (connection_disconnect_handler):
10913 Remove the connection from the bus driver's list.
10915 (connection_watch_callback): Dispatch messages.
10917 (free_connection_data): Free connection name.
10919 (bus_connection_setup): Add connection to the bus driver's list.
10920 (bus_connection_remove_owned_service):
10921 (bus_connection_set_name), (bus_connection_get_name):
10922 Add functions for setting and getting the connection's name.
10924 * bus/connection.h:
10925 Add function headers.
10927 * bus/driver.c: (create_unique_client_name),
10928 (bus_driver_handle_hello_message),
10929 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10930 (bus_driver_add_connection), (bus_driver_remove_connection):
10933 * bus/services.c: (bus_service_free):
10935 New file that handles communication and registreation with the bus
10938 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10940 * dbus/dbus-connection.c: (dbus_connection_send_message):
10941 Add a new client_serial parameter.
10943 (dbus_connection_send_message_with_reply):
10944 Remove a @todo since we've implemented the blocking function.
10946 (dbus_connection_send_message_with_reply_and_block):
10947 New function that sends a message and waits for a reply and
10948 then returns the reply.
10950 * dbus/dbus-connection.h:
10953 * dbus/dbus-errors.c: (dbus_result_to_string):
10954 * dbus/dbus-errors.h:
10955 Add new DBUS_RESULT.
10957 * dbus/dbus-message-internal.h:
10958 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10959 (_dbus_message_set_sender), (dbus_message_write_header),
10960 (dbus_message_new_reply), (decode_header_data),
10961 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10962 * dbus/dbus-message.h:
10963 Add new functions that set the reply serial and sender.
10964 Also marshal and demarshal them correctly and add test.
10966 * dbus/dbus-protocol.h:
10967 Add new DBUS_MESSAGE_TYPE_SENDER.
10969 * glib/dbus-glib.h:
10970 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10971 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10972 (dbus_connection_hookup_with_g_main):
10973 * glib/test-dbus-glib.c: (main):
10974 Rewrite to use GIOChannel and remove the GSource crack.
10976 * test/echo-client.c: (main):
10977 * test/watch.c: (check_messages):
10978 Update for changed APIs
10980 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10982 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10984 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10985 Create a DBusTimeoutList.
10986 (dbus_connection_set_timeout_functions): Add new function to
10987 set timeout callbacks
10989 * dbus/dbus-connection.h: Add public DBusTimeout API.
10991 * dbus/dbus-message.c: (dbus_message_get_service):
10992 * dbus/dbus-message.h: New function.
10994 * dbus/dbus-server.c: Fix small doc typo.
10996 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10998 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11000 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11001 of the string, just as long as specified.
11003 2003-01-19 Havoc Pennington <hp@pobox.com>
11005 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11008 * dbus/dbus-server.c (dbus_server_set_max_connections)
11009 (dbus_server_get_max_connections, dbus_server_get_n_connections):
11010 keep track of current number of connections, and add API for
11011 setting a max (but haven't implemented enforcing the max yet)
11013 2003-01-18 Havoc Pennington <hp@pobox.com>
11015 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11016 reading/writing if read_watch != NULL or write_watch != NULL.
11018 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11019 the message loader code to actually load message->header and
11020 message->body into the newly-created message.
11022 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11025 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11026 (dbus_connection_get_max_message_size)
11027 (dbus_connection_set_max_live_messages_size)
11028 (dbus_connection_get_max_live_messages_size): implement some
11029 resource limitation functions
11031 * dbus/dbus-resources.c: new file implementing some of the
11032 resource limits stuff
11034 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11035 missing docs, add @todo to handle OOM etc.
11037 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11040 2003-01-18 Havoc Pennington <hp@pobox.com>
11042 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11043 connection if it hasn't been already.
11045 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11046 replace with DisconnectFunction.
11048 2003-01-18 Havoc Pennington <hp@pobox.com>
11050 Building --disable-verbose-mode --disable-asserts --disable-tests
11051 cuts the library from 112K to 45K or so
11053 * configure.in: check for varargs macro support,
11054 add --enable-verbose-mode, --enable-asserts.
11056 * dbus/dbus-internals.h (_dbus_assert): support
11057 DBUS_DISABLE_ASSERT
11058 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11060 2003-01-18 Havoc Pennington <hp@pobox.com>
11062 * dbus/dbus-test.c: include config.h so that tests actually run
11064 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11065 so the failure mode when that assumption fails will be plenty
11068 2003-01-18 Havoc Pennington <hp@pobox.com>
11070 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11072 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11075 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11076 since we don't want to use those in make check
11078 2003-01-15 Havoc Pennington <hp@redhat.com>
11084 2003-01-15 Havoc Pennington <hp@redhat.com>
11086 * test/Makefile.am: fix so that test source code ends up in the
11087 distribution on make distcheck
11089 2003-01-15 Havoc Pennington <hp@redhat.com>
11095 2003-01-15 Havoc Pennington <hp@redhat.com>
11097 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11098 fix build when --disable-tests
11100 * Makefile.am (EXTRA_DIST): put HACKING in here
11102 * HACKING: document procedure for making a tarball release.
11104 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11106 * bus/connection.c: (connection_error_handler),
11107 (bus_connection_setup):
11108 * bus/main.c: (main):
11109 Make sure that the DBusConnectionData struct is NULLed
11110 out to prevent a segfault.
11112 * dbus/dbus-errors.c: (dbus_result_to_string):
11113 * dbus/dbus-errors.h:
11114 * dbus/dbus-message.c: (dbus_message_get_fields),
11115 (dbus_message_get_fields_valist), (_dbus_message_test):
11116 * dbus/dbus-message.h:
11117 Make dbus_message_get_fields return a result code so we can
11118 track invalid fields as well as oom.
11120 2003-01-11 Havoc Pennington <hp@pobox.com>
11122 * configure.in: change --enable-test/--enable-ansi action-if-given
11123 to enable_foo=$enableval instead of enable_foo=yes
11125 2003-01-08 Havoc Pennington <hp@pobox.com>
11127 * dbus/dbus-string.c (_dbus_string_align_length): new function
11129 * dbus/dbus-test-main.c: move main() for test app here
11131 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11132 symbol to run tests, because dbus-test isn't in the main
11135 Code review nitpicks.
11137 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11138 for people with narrow emacs ;-). Assert client_serial was filled
11139 in. Assert message->name != NULL.
11140 (dbus_message_append_fields): have "first_field_type" arg separate
11141 from va list, needed for C++ binding that also uses varargs IIRC
11142 and helps with type safety
11143 (dbus_message_new): add @todo about using DBusString to store
11144 service/name internally
11145 (dbus_message_new): don't leak ->service and ->name on OOM later
11147 (dbus_message_unref): free the service name
11148 (dbus_message_get_fields): same change to varargs
11149 i.e. first_field_type
11150 (_dbus_message_loader_return_buffer): assert that the message data
11151 is aligned (if not it's a bug in our code). Put in verbose griping
11152 about why we set corrupted = TRUE.
11153 (decode_header_data): add FIXME that char* is evil. Was going to
11154 add FIXME about evil locale-specific string.h strncmp, but just
11155 switched to wacky string-as-uint32 optimization. Move check for
11156 "no room for field name" above get_const_data_len() to avoid
11157 assertion failure in get_const_data_len if we have trailing 2
11158 bytes or the like. Check for service and name fields being
11159 provided twice. Don't leak service/name on error. Require field
11160 names to be aligned to 4 bytes.
11162 * dbus/dbus-marshal.c: move byte swap stuff to header
11163 (_dbus_pack_int32): uscore-prefix
11164 (_dbus_unpack_int32): uscore-prefix
11165 (_dbus_unpack_uint32): export
11166 (_dbus_demarshal_string): add @todo complaining about use of
11168 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11169 handling allowing corrupt data to go unchecked
11171 2003-01-08 Havoc Pennington <hp@redhat.com>
11173 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11174 to the select() as needed for authentication. (should be using
11175 _dbus_poll() not select, but for another day)
11177 * dbus/dbus.h: include dbus/dbus-protocol.h
11179 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11181 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11184 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11186 * dbus/dbus-internals.c: (_dbus_type_to_string):
11187 New function that returns a string describing a type.
11189 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11190 * dbus/dbus-marshal.h:
11191 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11192 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11193 (dbus_message_iter_get_byte_array):
11194 * dbus/dbus-message.h:
11195 Add new convenience functions for appending and getting message fields.
11196 Also add demarshalling routines for byte arrays.
11198 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11200 * dbus/dbus-connection-internal.h:
11201 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11202 (_dbus_connection_get_next_client_serial),
11203 (dbus_connection_send_message):
11204 * dbus/dbus-internals.h:
11205 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11206 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11207 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11208 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11209 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11210 (_dbus_verbose_bytes), (_dbus_marshal_test):
11211 * dbus/dbus-marshal.h:
11212 * dbus/dbus-message-internal.h:
11213 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11214 (dbus_message_write_header), (_dbus_message_lock),
11215 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11216 (dbus_message_get_name), (dbus_message_append_int32),
11217 (dbus_message_append_uint32), (dbus_message_append_double),
11218 (dbus_message_append_string), (dbus_message_append_byte_array),
11219 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11220 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11221 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11222 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11223 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11224 (decode_header_data), (_dbus_message_loader_return_buffer),
11225 (message_iter_test), (_dbus_message_test):
11226 * dbus/dbus-message.h:
11227 * dbus/dbus-protocol.h:
11228 * dbus/dbus-test.c: (main):
11229 * dbus/dbus-test.h:
11230 * glib/test-dbus-glib.c: (message_handler), (main):
11231 * test/echo-client.c: (main):
11232 * test/watch.c: (check_messages):
11233 Make messages sendable and receivable for real.
11235 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11237 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11238 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11239 * dbus/dbus-message.c: (dbus_message_append_int32),
11240 (dbus_message_append_uint32), (dbus_message_append_double),
11241 (dbus_message_append_string), (dbus_message_append_byte_array):
11242 Handle OOM restoration.
11244 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11246 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11247 (_dbus_demarshal_string), (_dbus_marshal_test):
11248 * dbus/dbus-marshal.h:
11249 * dbus/dbus-message.c: (dbus_message_get_name),
11250 Document these functions.
11252 (dbus_message_append_int32), (dbus_message_append_uint32),
11253 (dbus_message_append_double), (dbus_message_append_string),
11254 (dbus_message_append_byte_array):
11255 * dbus/dbus-message.h:
11256 Add functions for adding message fields of different types.
11258 * dbus/dbus-protocol.h:
11259 Add the different types.
11261 2003-01-05 Havoc Pennington <hp@pobox.com>
11263 * bus/connection.c: implement routines for handling connections,
11264 first thing is keeping a list of owned services on each connection
11265 and setting up watches etc.
11267 * bus/services.c: implement a mapping from service names to lists
11270 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11272 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11273 to use static mutexes for global data
11275 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11276 collection of functions to set/get application-specific data
11277 on the DBusConnection.
11279 2003-01-04 Havoc Pennington <hp@pobox.com>
11281 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11282 (_dbus_poll): new function
11284 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11287 * bus/loop.c: initial code for the daemon main loop
11289 2003-01-04 Havoc Pennington <hp@pobox.com>
11291 * test/watch.c (error_handler): make it safe if the error handler
11292 is called multiple times (if we s/error handler/disconnect
11293 handler/ we should just guarantee it's called only once)
11295 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11296 error handler on disconnect (it's quite possible we should
11297 just change the error handler to a "disconnect handler," I'm
11298 not sure we have any other meaningful errors)
11300 * configure.in: check for getpwnam_r
11302 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11303 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11304 mechanism as in SASL spec, using socket credentials
11306 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11307 (_dbus_send_credentials_unix_socket): new function
11309 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11311 (_dbus_write): only check errno if <0 returned
11312 (_dbus_write_two): ditto
11314 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11316 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11317 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11318 (_dbus_marshal_test):
11319 * dbus/dbus-marshal.h:
11320 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11321 to _dbus_marshal_utf8_string. Also fix some tests.
11323 2002-12-28 Harri Porten <porten@kde.org>
11325 * configure.in: added check for C++ compiler and a very cheesy
11326 check for the Qt integration
11328 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11330 * qt/Makefile.am: added
11332 * qt/.cvsignore: added
11334 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11335 latter, added #ifdef QT_THREAD_SUPPORT guard.
11337 * dbus/Makefile.am: added missing headers for make dist
11339 2002-12-28 Kristian Rietveld <kris@gtk.org>
11341 * dbus/Makefile.am: fixup export-symbols-regex.
11343 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11345 * acinclude.m4: Add this file and put the
11346 PKG_CHECK_MODULE macro in it.
11348 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11350 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11351 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11352 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11353 (_dbus_marshal_test):
11354 Make the demarshalling routines align the pos argument.
11355 Add string marshalling tests and fix the obvious bugs
11358 2002-12-26 Havoc Pennington <hp@pobox.com>
11360 * dbus/dbus-auth.c: fixes fixes fixes
11362 * dbus/dbus-transport-unix.c: wire up support for
11363 encoding/decoding data on the wire
11365 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11366 (_dbus_auth_decode_data): append to target string
11367 instead of nuking it.
11369 2002-12-26 Havoc Pennington <hp@pobox.com>
11371 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11372 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11375 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11376 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11377 now). Main point is because I wanted unpack_uint32 to implement
11378 _dbus_verbose_bytes
11379 (_dbus_verbose_bytes): new function
11381 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11383 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11384 mechanism to handle a corrupt message stream
11385 (_dbus_message_loader_new): fix preallocation to only prealloc,
11388 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11389 (_dbus_string_test): enhance tests for copy/move and fix the
11392 * dbus/dbus-transport-unix.c: Hold references in more places to
11393 avoid reentrancy problems
11395 * dbus/dbus-transport.c: ditto
11397 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11398 leak reference count in no-message case
11400 * test/watch.c (do_mainloop): handle adding/removing watches
11401 during iteration over the watches. Also, ref the connection/server
11402 stored on a watch, so we don't try to mangle a destroyed one.
11404 * dbus/dbus-transport-unix.c (do_authentication): perform
11407 * dbus/dbus-auth.c (get_state): add a state
11408 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11409 (_dbus_auth_get_unused_bytes): append the unused bytes
11410 to the passed in string, rather than prepend
11412 * dbus/dbus-transport.c (_dbus_transport_init_base): create
11413 the auth conversation DBusAuth
11415 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11416 (_dbus_transport_new_for_domain_socket): when creating a
11417 transport, pass in whether it's a client-side or server-side
11418 transport so we know which DBusAuth to create
11420 2002-12-03 Havoc Pennington <hp@pobox.com>
11422 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11423 _after_ finalizing the derived members
11424 (unix_connection_set): unref watch if we fail to add it
11426 * dbus/dbus-connection.c (dbus_connection_unref): delete the
11427 transport first, so that the connection owned by the
11428 transport will be valid as the transport finalizes.
11430 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11431 if necessary, and remove watches from the connection.
11433 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11435 2002-12-26 Anders Carlsson <andersca@codefactory.se>
11437 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11438 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11439 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11440 (_dbus_marshal_test):
11441 * dbus/dbus-marshal.h:
11442 Add string marshal functions and have the demarshal functions
11443 return the new position.
11445 2002-12-25 Havoc Pennington <hp@pobox.com>
11447 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11448 it is a simple protocol that just maps directly to SASL.
11450 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11451 initial implementation, not actually used yet.
11453 * dbus/dbus-string.c (_dbus_string_find): new function
11454 (_dbus_string_equal): new function
11455 (_dbus_string_base64_encode): new function
11456 (_dbus_string_base64_decode): new function
11458 2002-12-25 Anders Carlsson <andersca@codefactory.se>
11460 * dbus/Makefile.am:
11461 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11462 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11463 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11464 (_dbus_demarshal_uint32), (_dbus_marshal_test):
11465 * dbus/dbus-marshal.h:
11466 * dbus/dbus-protocol.h:
11467 * dbus/dbus-test.c: (main):
11468 * dbus/dbus-test.h:
11469 Add un-optimized marshalling/demarshalling routines.
11471 2002-12-25 Harri Porten <porten@kde.org>
11473 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11475 2002-12-24 Zack Rusin <zack@kde.org>
11477 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11478 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11481 2002-12-24 Havoc Pennington <hp@pobox.com>
11483 * glib/dbus-gthread.c: fix include
11485 * glib/dbus-glib.h: rename DBusMessageHandler for now.
11486 I think glib API needs to change, though, as you don't
11487 want to use DBusMessageFunction, you want to use the
11488 DBusMessageHandler object. Probably
11489 dbus_connection_open_with_g_main_loop()
11490 and dbus_connection_setup_g_main_loop() or something like that
11491 (but think of better names...) that just create a connection
11492 that has watch/timeout functions etc. already set up.
11494 * dbus/dbus-connection.c
11495 (dbus_connection_send_message_with_reply): new function just to
11496 show how the message handler helps us deal with replies.
11498 * dbus/dbus-list.c (_dbus_list_remove_last): new function
11500 * dbus/dbus-string.c (_dbus_string_test): free a string that
11503 * dbus/dbus-hash.c: use memory pools for the hash entries
11504 (rebuild_table): be more paranoid about overflow, and
11505 shrink table when we can
11506 (_dbus_hash_test): reduce number of sprintfs and write
11507 valid C89. Add tests for case where we grow and then
11508 shrink the hash table.
11510 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11512 * dbus/dbus-connection.c (dbus_connection_register_handler)
11513 (dbus_connection_unregister_handler): new functions
11515 * dbus/dbus-message.c (dbus_message_get_name): new
11517 * dbus/dbus-list.c: fix docs typo
11519 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11520 an object representing a handler for messages.
11522 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11524 * glib/dbus-glib.h:
11525 * glib/dbus-gthread.c: (dbus_gthread_init):
11526 Don't use the gdbus prefix for public functions.
11528 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11532 Add GLib checks and fixup .pc files
11534 * glib/Makefile.am:
11535 * glib/dbus-glib.h:
11536 * glib/dbus-gmain.c: (gdbus_connection_prepare),
11537 (gdbus_connection_check), (gdbus_connection_dispatch),
11538 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11539 (dbus_connection_gsource_new):
11540 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11541 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11542 * glib/test-dbus-glib.c: (message_handler), (main):
11545 2002-12-15 Harri Porten <porten@kde.org>
11547 * autogen.sh: check for libtoolize before attempting to use it
11549 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11552 * .cvsignore: ignore more stamp files
11554 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11556 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11557 without make install.
11559 2002-12-15 Havoc Pennington <hp@pobox.com>
11561 * dbus/dbus-threads.c: add thread stubs that a higher library
11562 layer can fill in. e.g. the GLib wrapper might fill them in with
11563 GThread stuff. We still need to use this thread API to
11564 thread-safe-ize the library.
11566 2002-12-12 Havoc Pennington <hp@pobox.com>
11568 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11569 below new interfaces and include fewer system headers.
11571 * dbus/dbus-sysdeps.c (_dbus_read): new function
11572 (_dbus_write): new function
11573 (_dbus_write_two): new function
11574 (_dbus_connect_unix_socket): new function
11575 (_dbus_listen_unix_socket): new function
11577 * dbus/dbus-message-internal.h: change interfaces to use
11580 2002-12-11 Havoc Pennington <hp@pobox.com>
11582 * dbus/dbus-types.h: add dbus_unichar
11584 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11586 * dbus/dbus-connection.c (dbus_connection_send_message): return
11589 * dbus/dbus-transport.c: include dbus-watch.h
11591 * dbus/dbus-connection.c: include dbus-message-internal.h
11593 * HACKING: add file with coding guidelines stuff.
11595 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11596 handling here, for security purposes (as in vsftpd). Not actually
11597 using this class yet.
11599 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11600 system/libc usage here, as in vsftpd, for ease of auditing (and
11601 should also simplify portability). Haven't actually moved all the
11602 system/libc usage into here yet.
11604 2002-11-25 Havoc Pennington <hp@pobox.com>
11606 * dbus/dbus-internals.c (_dbus_verbose): fix to not
11607 always print the first verbose message.
11609 2002-11-24 Havoc Pennington <hp@pobox.com>
11611 * test/echo-client.c, test/echo-server.c: cheesy test
11614 * configure.in (AC_CHECK_FUNCS): check for writev
11616 * dbus/dbus-message.c (_dbus_message_get_network_data): new
11619 * dbus/dbus-list.c (_dbus_list_foreach): new function
11621 * dbus/dbus-internals.c (_dbus_verbose): new function
11623 * dbus/dbus-server.c, dbus/dbus-server.h: public object
11624 representing a server that listens for connections.
11626 * dbus/.cvsignore: create
11628 * dbus/dbus-errors.h, dbus/dbus-errors.c:
11629 public API for reporting errors
11631 * dbus/dbus-connection.h, dbus/dbus-connection.c:
11632 public object representing a connection that
11633 sends/receives messages. (Same object used for
11634 both client and server.)
11636 * dbus/dbus-transport.h, dbus/dbus-transport.c:
11637 Basic abstraction for different kinds of stream
11638 that we might read/write messages from.
11640 2002-11-23 Havoc Pennington <hp@pobox.com>
11642 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11645 * dbus/dbus-test.c (main): add list test, and include
11646 dbus-test.h as intended
11648 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11649 (_dbus_hash_table_remove_int): return value indicates
11650 whether the entry existed to remove
11652 * dbus/dbus-list.c: add linked list utility class,
11653 with docs and tests
11655 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11658 2002-11-23 Havoc Pennington <hp@pobox.com>
11660 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11661 DBUS_END_DECLS to nothing, that should fix this once and for all
11663 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11665 * dbus/dbus-message.c, dbus/dbus-hash.c:
11666 add some missing @brief
11668 2002-11-23 Havoc Pennington <hp@pobox.com>
11670 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11671 to avoid confusing Doxygen
11673 * dbus/dbus-hash.c: @} not }@
11675 * dbus/dbus-message.c (struct DBusMessage): split out
11678 2002-11-23 Havoc Pennington <hp@pobox.com>
11680 * configure.in: pile on more warning flags if using gcc
11682 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11683 to document static functions
11685 * configure.in: add summary to end of configure so it
11686 looks nice and attractive
11688 * dbus/dbus-hash.c: finish implementation and write unit
11691 * configure.in: add --enable-tests to enable unit tests
11693 * dbus/dbus-test.c: test program to run unit tests
11694 for all files in dbus/*, initially runs a test for
11697 * dbus/dbus-internals.h: file to hold some internal utility stuff
11699 2002-11-22 Havoc Pennington <hp@redhat.com>
11701 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11702 "ported" away from Tcl
11704 * dbus/dbus-types.h: header for types such as dbus_bool_t
11706 2002-11-22 Havoc Pennington <hp@redhat.com>
11708 * dbus/dbus.h: fixups for doc warnings
11710 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11712 (QUIET): make it quiet so we can see warnings
11714 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11716 2002-11-22 Havoc Pennington <hp@redhat.com>
11718 * Makefile.am: include "Doxyfile" target in all-local
11720 * configure.in: generate the Doxyfile
11722 * Doxyfile.in: move Doxyfile here, so we can use
11723 configure to generate a Doxyfile with the right
11724 version number etc.
11726 2002-11-22 Havoc Pennington <hp@redhat.com>
11728 * dbus/dbus-message.c: move inline docs into .c file
11730 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11731 so all docs are under doc/
11732 (MAN_EXTENSION): generate man pages. Use extension
11733 ".3dbus" which matches ".3qt" on my system,
11734 I guess this is OK, I don't know really.
11735 (FILE_PATTERNS): look for .c files not .h, makes sense
11736 for plain C I think
11738 2002-11-22 Havoc Pennington <hp@pobox.com>
11740 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11741 because any app can be a server, and any app can be a client,
11742 the bus is a special kind of server.
11744 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
11746 * Doxyfile : adding. Still needs Makefile rules to be generated
11747 automatically (just run "doxygen" in the toplevel dir for now to
11750 * dbus/dbus-message.h : Adding sample docs (javadoc since
11751 resembles gtk-doc a little more)
11753 * dbus/dbus.h : Adding sample docs
11755 2002-11-21 Havoc Pennington <hp@redhat.com>
11757 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11758 so we can allow ourselves to include files directly,
11759 instead of having to use dbus.h
11761 * dbus/dbus.h: fill in
11763 * dbus/dbus-message.h: sketch out a sample header file.
11764 Include griping if you include it directly instead of
11767 * dbus/dbus-macros.h: new file with macros for extern "C",
11768 TRUE/FALSE, NULL, etc.
11770 * doc/file-boilerplate.c: put include guards in here
11772 2002-11-21 Havoc Pennington <hp@redhat.com>
11774 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11776 * COPYING: include the GPL as well, and license code
11777 under both AFL and GPL.
11779 2002-11-21 Havoc Pennington <hp@redhat.com>
11781 * acconfig.h: get rid of this
11783 * autogen.sh (run_configure): add --no-configure option
11785 * configure.in: remove AC_ARG_PROGRAM to make
11786 autoconf complain less. add AC_PREREQ.
11787 add AC_DEFINE third arg.
11789 2002-11-21 Anders Carlsson <andersca@codefactory.se>
11792 Fix references so we can distcheck.
11794 2002-11-21 Havoc Pennington <hp@redhat.com>
11796 * Initial module creation