1 2005-07-31 Havoc Pennington <hp@redhat.com>
3 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
4 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
6 2005-07-30 Havoc Pennington <hp@redhat.com>
8 * fix a bunch of Doxygen warnings and mistakes
10 2005-07-30 Havoc Pennington <hp@redhat.com>
12 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
13 DBUS_BUILD_TESTS since it's now used in production code
15 2005-07-29 Havoc Pennington <hp@redhat.com>
17 * test/glib/test-profile.c (write_junk): initialize the junk
18 buffer so valgrind doesn't have a breakdown
20 2005-07-29 Havoc Pennington <hp@redhat.com>
22 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
23 (match_rule_matches): remove unused arg
24 (test_matching): add tests for match_rule_matches()
26 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
27 do arg0='foo' arg5='bar' in the match rules
28 (match_rule_matches): don't match if the arg0='foo' doesn't match.
30 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
32 2005-07-29 Ross Burton <ross@openedhand.com>
34 * dbus/dbus-connection.c:
35 Don't create a DBusCondVar which is never used.
37 2005-07-27 Ross Burton <ross@openedhand.com>
39 * dbus/dbus-message.c:
40 Reduce the size of the maximum cached message to 10K.
42 2005-07-25 Ross Burton <ross@openedhand.com>
45 Remove matches when all proxies are unregistered.
47 2005-07-24 Colin Walters <walters@verbum.org>
49 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
50 typedata; recursive arrays won't have it.
52 * test/glib/test-dbus-glib.c:
53 * test/glib/test-service-glib.c:
54 * test/glib/test-service-glib.xml: Add recursive arrays tests.
56 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
58 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
59 proxies.py, service.py: Cleanup of code after running it through the
60 pyflakes code checker mostly dealing with undefined names.
61 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
63 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
65 * NEWS: Update to 0.35.2
67 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
69 * python/_dbus.py: Remove import of the dbus.services
70 module as it no longer exists (patch from Dimitur Kirov)
72 * python/service.py (Object::__init__): Fixed typo
73 s/name/bus_name (patch from Dimitur Kirov)
75 * python/examples/example-signal-emitter.py: import dbus.glib
76 to get the main loop and use glib mainloop instead of gtk so
77 X doesn't have to be running.
79 * python/examples/example-signal-recipient.py: import dbus.glib
80 to get the main loop and use glib mainloop instead of gtk so
81 X doesn't have to be running. Import the decorators module
84 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
85 didn't pick up on but are needed to build
87 * configure.in: upped version to 0.35.2
89 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
90 added Colin Walters' SELinux API rename patch from head
91 s/unix sercurity context/selinux security context/
93 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
95 * python/Makefile.am: dbus_binding.pxd.in should be included
96 in EXTRA_DIST not dbus_binding.pxd
97 fix up $(srcdir) hopefully for the last time
99 * NEWS: Update to 0.35.1
101 2005-07-16 Colin Walters <walters@verbum.org>
103 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
104 from bus_driver_handle_get_connection_unix_security_context. Update for
106 (message_handlers): Update for renames.
108 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
109 _dbus_string_init failure correctly.
110 (bus_selinux_append_context): Convert SID to context. Append it
112 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
115 * bus/selinux.h: Update prototype.
117 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
118 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
120 2005-07-15 Colin Walters <walters@verbum.org>
122 * doc/TODO: Add note about convenience wrappers.
124 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
126 * NEWS: Update to 0.35
128 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
130 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
131 so distcheck doesn't fail
133 * glib/examples/Makefile.am: Add example-service.xml and
134 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
136 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
137 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
139 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
140 compiler looks in the right places during distcheck
142 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
144 * glib/example/Makefile.am: Fix a typo which cause make distcheck
147 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
149 * python/examples/example-service.py,
150 python/examples/example-signal-emitter.py: Fixed up examples
153 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
155 * python/__init__.py: Upped to version (0,42,0) because of
158 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
160 * ChangeLog: fix date in last entry
162 * configure.in, bus/system.conf.in: add the ability to configure
163 the system bus user at compiletime with the --with-dbus-user flag
164 (patch from Kristof Vansant)
166 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
168 * bus/dispatch.c, test/test-service.c: Add testcase
169 for sending messages to oneself (TODO item).
171 * python/service.py (class Object): Swap ordering of bus_name
172 and object_path parameters to better support inheritance.
174 * doc/dbus-tutorial.xml: change Python docs to reflect change
175 in parameter ordering and fix the inheritance section.
177 * doc/TODO: remove sending message to oneself TODO item
179 2005-07-15 Ross Burton <ross@openedhand.com>
181 * glib/dbus-gproxy.c:
182 Fix a leak when calling methods via the proxy.
184 2005-07-15 Colin Walters <walters@verbum.org>
186 * bus/selinux.c (bus_selinux_append_context): Wrap in
189 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
191 * python/_dbus.py (Bus::remove_signal_receiver):
192 don't add a callback to the match if none has been passed in
194 * python/matchrules.py (SignalMatchTree::remove): if the rule
195 being matched does not have a callback treat it as a wildcard
198 * doc/dbus-tutorial.xml: Add Python tutorial
200 2005-07-14 Colin Walters <walters@verbum.org>
203 (bus_driver_handle_get_connection_unix_security_context): New function.
204 (message_handlers): Add.
206 * bus/selinux.c (bus_selinux_append_context): New function; appends
207 security context to message.
209 * bus/selinux.h: Prototype.
211 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
213 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
215 * bus/activation.c: clean up all tabs to be 8 spaces
216 (bus_activation_activate_service): make sure we clean up
219 * bus/dispatch.c: clean up all tabs to be 8 spaces
220 (check_shell_fail_service_auto_start): New function
221 tests to make sure we get fail properly when trying to auto start a service
222 with a faulty command line
223 (check_shell_service_success_auto_start): New function tests to make sure
224 auto started services get the arguments on the command line
226 * test/test-shell-service.c: Added service for testing auto-starting with
227 command line arguments
229 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
230 test/data/valid-service-files/debug-shell-echo-success.service.in:
231 Added service files for testing auto-starting with command line arguments
233 * */.cvsignore: added a bunch of generated files to various .cvsignore files
235 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
237 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
239 * dbus/Makefile.am: added new files to build.
241 * bus/activation.c (bus_activation_activate_service): support
242 activation commands with parameters.
244 * test/shell-test.c: added test program for the shell parsing
247 2005-07-13 David Zeuthen <davidz@redhat.com>
249 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
250 64 bit signed and unsigned parameters
252 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
254 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
256 * python/service.py (class Name): renamed BusName to make it clearer
257 what the object is for (a name on the bus)
259 * python/examples/example-service.py,
260 python/examples/example-signal-emitter.py: change the Name object to
263 2005-07-12 Colin Walters <walters@verbum.org>
265 Patch from Jim Gettys <Jim.Gettys@hp.com>.
267 * tools/dbus-launch.c: Include sys/select.h.
269 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
270 * python/dbus_bindings.pyx.in: removed
272 * python/dbus_bindings.pyx: Added.
273 - Fixed some memleaks (patch from
274 Sean Meiners <sean.meiners@linspireinc.com>)
275 - Broke out the #include "dbus_h_wrapper.h" and put it in its
276 own pxd file (Pyrex definition)
277 - Broke out glib dependancies into its own pyx module
279 * python/dbus_bindings.pdx: Added.
280 - Defines C class Connection for exporting to other modules
282 * python/dbus_glib_bindings.pyx: Added.
283 - New module to handle lowlevel dbus-glib mainloop integration
285 * python/glib.py: Added.
286 - Registers the glib mainloop when you import this module
288 * python/services.py: Removed (renamed to service.py)
290 * python/service.py: Added.
291 - (class Server): renamed Name
293 * python/__init__.py: Bump ro version (0,41,0)
294 -don't import the decorators or service module
295 by default. These now reside in the dbus.service namespace
297 * python/_dbus.py (Bus::__init__): Add code run the main loop
298 setup function on creation
300 * python/examples/example-service.py,
301 python/examples/example-signal-emitter.py: update examples
303 * python/examples/gconf-proxy-service.py,
304 python/examples/gconf-proxy-service2.py: TODO fix these up
307 - Added a Python Bindings 1.0 section
308 - added "Add match on args or match on details to match rules"
311 2005-07-12 Colin Walters <walters@verbum.org>
313 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
314 (statemachine-glue.h):
315 * glib/examples/Makefile.am (example-service-glue.h)
316 (example-signal-emitter-glue.h):
317 * glib/Makefile.am (dbus-glib-error-switch.h):
318 Add libtool --mode=execute so we use the built library instead
319 of any installed one.
321 2005-07-11 Colin Walters <walters@verbum.org>
323 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
324 (dbus_g_value_types_init): Remove assertion.
325 (dbus_g_value_get_g_type, dbus_g_value_open)
326 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
327 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
328 functions related to DBusGValue. Now we marshal/demarshal
329 structures as GValueArray.
330 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
332 (signature_iter_to_g_type_array): Don't call
333 signature_iter_to_g_type_struct.
334 (signature_iter_to_g_type_struct): Delete.
335 (dbus_gvalue_to_signature): Delete.
336 (dbus_gvalue_to_signature): New function with same name as other
337 one; we can convert structures to signatures.
338 (demarshal_valuearray): New function.
339 (get_type_demarshaller): Use it.
340 (demarshal_recurse): Delete.
341 (marshal_proxy): New function.
342 (marshal_map): Warn if we can't determine signature from type.
343 (marshal_collection_ptrarray): Ditto.
344 (marshal_collection_array): Ditto.
345 (get_type_marshaller): Use marshal_valuearray.
346 (marshal_recurse): Delete.
347 (_dbus_gvalue_test): Add some tests.
349 * dbus/dbus-glib.h (struct _DBusGValueIterator):
350 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
351 (dbus_g_value_open, dbus_g_value_iterator_get_value)
352 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
353 (dbus_g_value_free): Remove prototypes.
355 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
358 * glib/examples/example-service.c:
359 * glib/examples/example-client.c: Implement GetTuple.
361 * test/glib/test-dbus-glib.c:
362 * test/glib/test-service-glib.c:
363 * test/glib/test-service-glib.xml: Add structure tests.
365 2005-07-10 Colin Walters <walters@verbum.org>
367 * doc/TODO: Knock off some GLib items with this patch.
369 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
370 (_dbus_gvalue_signals_error): New functions.
372 * glib/dbus-gvalue-utils.h: Prototype them.
374 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
375 and change to not output const/retval flags for input args. All
377 (invoke_object_method): Refactor to handle return values. Add
378 some more comments in various places. Remove debug g_print.
380 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
382 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
384 (compute_gsignature): New function; refactored from code from
385 compute_marshaller and compute_marshaller_name. Enhance to
386 handle return values and async ops more cleanly. Update for
387 async ops returning NONE instead of BOOLEAN.
388 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
389 and output appropriate string.
390 (generate_glue): Handle return value annotation. Also don't dump
391 constness flag for input arguments.
393 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
394 files shared between installed library and utilities.
395 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
396 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
397 binding tool can access gtype utility functions.
399 * test/glib/test-service-glib.c:
400 * test/glib/test-service-glib.xml:
401 * test/glib/test-dbus-glib.c: Add some tests for return values.
403 2005-07-09 Colin Walters <walters@verbum.org>
405 * glib/dbus-gparser.c (parse_annotation): Add annotations to
406 argument if available, not method.
408 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
409 (invoke_object_method): First, remove some redundant
410 GValues (object_value, error_value) in favor of working on
411 array directly. Second, rework constness to be less buggy.
412 Now we iterate directly over the argument metadata instead
413 of parallel iterating over output signature and metadata.
415 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
417 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
418 annotation on input args.
420 2005-07-09 Colin Walters <walters@verbum.org>
422 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
425 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
428 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
429 (method_dir_signature_from_object_info): Handle arg_iterate change.
430 (write_interface): Ditto.
431 (lookup_object_info): Don't barf if format_version is > 0.
432 (invoke_object_method): Handle arg constness.
434 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
435 (arg_info_new): Create.
436 (arg_info_unref): Destroy.
437 (arg_info_get_annotations, arg_info_get_annotation)
438 (arg_info_add_annotation): New functions.
440 * glib/dbus-gidl.h: Prototype them.
442 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
443 args, disallow them in properties.
444 (parse_annotation): Handle arg annotations.
446 * test/glib/test-service-glib.xml:
447 * test/glib/test-service-glib.c: Update to make some methods
450 2005-07-08 Colin Walters <walters@verbum.org>
452 * test/glib/test-service-glib.xml:
453 * test/glib/test-service-glib.c:
454 * test/glib/test-dbus-glib.c: Test a{sv}.
456 * glib/examples/statemachine/statemachine.c:
457 * glib/examples/statemachine/statemachine-server.c:
458 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
459 add progress bar, etc.
461 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
462 needed anymore due to generic array/map marshalling.
463 (dbus_g_value_types_init): Don't register basic arrays or the
465 (dbus_gtype_from_signature_iter): Don't try to recurse into
467 (dbus_gtype_to_signature): Check collection/map before type
469 (demarshal_garray_basic): Renamed to demarshal_collection_array.
470 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
471 generic map creation/append functions instead of hash table
473 (get_type_demarshaller): Handle maps.
474 (demarshal_collection): Dispatch on collection type to either
475 demarshal_collection_ptrarray or demarshal_collection_array.
476 (get_type_marshaller): Handle maps.
477 (marshal_collection): Dispatch collection type to either
478 marshal_collection_ptrarray or marshal_collection_array.
479 (_dbus_gvalue_test): New test.
481 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
482 (hash_free_from_gtype): Use it to free GValues.
483 (hashtable_append): New function.
484 (ptrarray_append): Fix prototype.
485 (slist_append): Ditto.
486 (_dbus_gvalue_utils_test): Extend tests.
488 * glib/dbus-gtype-specialized.c
489 (dbus_g_type_specialized_init_append): Renamed from
490 dbus_g_type_specialized_collection_init_append. Remove const from
491 value, since we steal it.
492 (dbus_g_type_specialized_map_append): New function.
494 * glib/dbus-gtype-specialized.h: Update prototypes.
495 Add DBusGTypeSpecializedMapAppendFunc.
497 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
500 * glib/dbus-gtest.h: Prototype it.
502 2005-07-08 Ross Burton <ross@openedhand.com>
505 Add DBysGAsyncData for the async bindings.
507 * glib/dbus-binding-tool-glib.c:
508 Re-enable the async bindings.
510 * test/glib/test-dbus-glib.c:
511 Add a test for the generated async bindings.
513 2005-07-08 Colin Walters <walters@verbum.org>
515 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
518 2005-07-08 Colin Walters <walters@verbum.org>
520 * tools/Makefile.am: Kill of print-introspect in favor of using
521 dbus-send --print-reply=literal.
523 * test/glib/test-service-glib.xml:
524 * test/glib/test-service-glib.c (my_object_get_objs): New test
527 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
528 (main): Test GetObjs.
530 * glib/examples/statemachine/Makefile.am:
531 * glib/examples/statemachine/sm-marshal.list:
532 * glib/examples/statemachine/statemachine-client.c:
533 * glib/examples/statemachine/statemachine-server.c:
534 * glib/examples/statemachine/statemachine-server.xml:
535 * glib/examples/statemachine/statemachine.c:
536 * glib/examples/statemachine/statemachine.h:
537 * glib/examples/statemachine/statemachine.xml:
541 * glib/examples/example-service.c (main): Move invocation
542 of dbus_g_object_type_install_info earlier, to emphasize it
543 should only be done once.
545 * glib/examples/example-signal-emitter.c (main): Ditto.
547 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
549 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
550 (dbus_gvalue_marshal): Update prototypes.
552 * glib/dbus-gvalue.c: Update all marshalling functions to take
553 const GValue instead of GValue.
554 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
556 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
558 (dbus_gtype_to_signature): Handle generic collecitons and maps.
559 Return a newly-allocated string.
560 (demarshal_proxy, demarshal_object_path, demarshal_object)
561 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
562 we get the wrong types from message.
563 (get_type_demarshaller): New function, extracted from
564 dbus_gvalue_demarshal.
565 (demarshal_collection): New function, demarshals generic
567 (dbus_gvalue_demarshal): Just invoke result of
568 get_type_demarshaller. Throw error if we don't have one.
569 (marshal_garray_basic): Abort on OOM.
570 (get_type_marshaller): New function, extracted from
572 (collection_marshal_iterator, marshal_collection): New functions;
573 implements generic marshalling for an iteratable specialized
575 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
577 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
579 (ptrarray_value_from_gvalue): Ditto.
580 (ptrarray_append, ptrarray_free): New functions.
581 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
582 (slist_append, slist_end_append, slist_free): New functions.
583 (dbus_g_type_specialized_builtins_init): Add append fuctions
584 for GPtrArray and GSList. Register GSList.
585 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
587 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
589 (dbus_g_type_specialized_collection_init_append)
590 (dbus_g_type_specialized_collection_append)
591 (dbus_g_type_specialized_collection_end_append): Prototype.
592 (DBusGTypeSpecializedCollectionVtable): Add append_func and
595 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
596 (dbus_g_type_specialized_collection_append)
597 (dbus_g_type_specialized_collection_end_append): New functions.
598 (dbus_g_type_map_value_iterate): Take const GValue.
599 (dbus_g_type_collection_value_iterate): Ditto.
601 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
602 _dbus_gvalue_utils_test.
604 * glib/dbus-gtest.h: Prototype it.
606 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
607 using uninitialized owner_list.
608 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
610 (dbus_g_proxy_end_call_internal): Update to use error set
611 from dbus_gvalue_demarshal instead of setting it here.
612 (dbus_g_proxy_begin_call): Move return_if_fail here.
614 * glib/dbus-gobject.c (write_interface): Update for
615 dbus_gtype_to_signature returning new string.
617 * configure.in: Add glib/examples/statemachine.
619 2005-07-08 Joe Shaw <joeshaw@novell.com>
621 * configure.in: Add a configure option, --with-console-auth-dir
623 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
624 new setting. Patch from Kay Sievers.
626 2005-07-06 Colin Walters <walters@verbum.org>
628 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
629 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
630 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
631 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
632 Delete in favor of dbus_g_proxy_begin_call and
633 dbus_g_proxy_cancel_call.
634 (DBusGProxyCall, DBusGProxyCallNotify): New.
635 (dbus_g_proxy_begin_call): Change prototype to take callback, user
636 data, and destroy function. This replaces
637 dbus_g_pending_call_set_notify.
638 (dbus_g_proxy_cancel_call): Prototype.
639 (DBusGAsyncData): Delete, shouldn't be needed anymore.
641 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
643 (struct _DBusGProxyManager): Add bus_proxy member, which is an
644 internal proxy for calls to the bus. Remove
645 pending_nameowner_calls, now the internal proxy keeps track.
646 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
647 pending_nameowner_calls.
648 (got_name_owner_cb): Update prototype, and use
649 dbus_g_proxy_end_call.
650 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
651 (dbus_g_proxy_manager_register): Delete directly libdbus code in
652 favor of using internal proxy.
653 (dbus_g_proxy_manager_unregister): Update to use
654 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
655 (dbus_g_proxy_init): Initialize pending calls map.
656 (dbus_g_proxy_constructor): New.
657 (dbus_g_proxy_class_init): Add get/set property functions,
658 constructor, and add NAME, PATH, and INTERFACE properties.
659 (cancel_pending_call): New function.
660 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
662 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
663 (GPendingNotifyClosure): New structure.
664 (d_pending_call_notify, d_pending_call_free): Moved here from
666 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
668 (manager_begin_bus_call): New internal function for talking to
670 (dbus_g_proxy_new): Construct object using GObjet properties.
671 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
672 Create closure of same, and insert call into map of pending calls.
673 (dbus_g_proxy_end_call_internal): Take call id instead of pending
674 call. Look up pending call in current set. Remove it when we've
676 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
677 (dbus_g_proxy_begin_call): Change API to take callback, user data,
678 and destroy function directly.
679 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
680 (dbus_g_proxy_call): Invoke with NULL callback.
681 (dbus_g_proxy_cancel_call): New function, replaces
682 dbus_g_pending_call_cancel.
684 * glib/dbus-gparser.c (validate_signature): Fix call to
687 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
688 New quark for attaching metadata to GType.
690 (lookup_object_info): Look up using quark.
691 (dbus_g_object_type_install_info): Check that a type is classed,
692 not that it's an object. Also just install type data using quark
693 instead of using global hash.
695 * glib/dbus-glib.c (dbus_g_pending_call_ref)
696 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
697 (GPendingNotifyClosure): Delete.
698 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
699 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
701 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
702 client method generation until we can fix it...
704 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
705 (load_from_service_thread_func): Ditto.
707 * tools/dbus-names-model.c (struct NamesModel): Hold
709 (have_names_notify): Update prototype, use
710 dbus_g_proxy_cancel_call.
711 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
713 * tools/dbus-monitor.c (filter_func): Update for print_message
716 * test/glib/test-dbus-glib.c: Add more tests for async
717 invocations. Update many begin_call/end_call pairs to just use
720 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
721 allows us to dump print-introspect.c.
723 * tools/dbus-print-message.h (print_message): Add literal argument
724 to print_message which is intended to allow printing arguments without
725 metadata like "string=".
727 * tools/dbus-print-message.c (print_iter): Add literal argument.
728 (print_message): Allow printing string messages literally.
730 2005-07-05 Colin Walters <walters@verbum.org>
732 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
733 Remove value refcount leak, original patch from Jorn Baayen
734 <jorn@openedhand.com>. Also remove useless extra value in favor
735 of prepending to value array directly.
737 2005-07-02 Colin Walters <walters@verbum.org>
739 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
741 2005-07-01 Colin Walters <walters@verbum.org>
743 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
745 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
746 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
747 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
748 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
750 2005-06-30 Colin Walters <walters@verbum.org>
752 * test/glib/test-dbus-glib.c:
753 * test/glib/test-service-glib.c:
754 * test/glib/test-service-glib.xml: Update tests for new error
755 setting bits, also add async tests (patch from Ross Burton).
757 * test/glib/Makefile.am (test_service_glib_LDADD): Add
758 DBUS_GLIB_THREADS_LIBS.
760 * glib/dbus-gproxy.c (get_name_owner)
761 (dbus_g_pending_call_end_valist): Ditto.
763 * glib/dbus-gobject.c (error_metadata): New mapping from GError
764 domain (GQuark) to DBusGErrorInfo.
765 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
766 quark in error_metadata. Take message interface as default
767 error message interface.
768 (gerror_to_dbus_error_message): Pass message interface.
769 (dbus_set_g_error): Resurrected.
770 (dbus_g_error_info_free): New function.
771 (dbus_g_object_type_install_info): Use g_type_class_ref instead
772 of _peek to actually create the object class if it hasn't been
774 (dbus_g_error_domain_register): New function.
776 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
778 * glib/dbus-gparser.c (validate_signature): Ditto.
780 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
781 (dbus_g_error_domain_register): Prototype.
783 * glib/dbus-glib.c (dbus_g_error_set): Delete.
786 2005-06-29 Colin Walters <walters@verbum.org>
788 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
789 DBUS_TYPE_G_OBJECT_PATH.
791 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
792 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
793 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
794 (dbus_g_object_path_get_g_type): New function.
795 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
796 to DBUS_TYPE_G_OBJECT_PATH by default.
797 (demarshal_proxy): Remove unused name variable.
798 (demarshal_object_path, marshal_object_path): New functions.
799 (demarshal_proxy_array, marshal_proxy_array): Delete.
801 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
802 DBUS_TYPE_G_OBJECT_PATH to char *.
803 (dbus_g_type_get_lookup_function): Map builtin
804 DBUS_TYPE_G_OBJECT_PATH.
806 * test/glib/test-dbus-glib.c
807 * test/glib/test-service-glib.c (my_object_objpath):
808 Adapt tests to new object path marshalling.
810 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
812 * configure.in: force check for Python >= 2.4
814 2005-06-29 Colin Walters <walters@verbum.org>
816 Patch from Ross Burton <ross@openedhand.com>
818 * glib/dbus-gobject.c (invoke_object_method): Unset object
819 value in all cases, not only in async case.
821 2005-06-29 Colin Walters <walters@verbum.org>
823 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
824 name_call for keeping track of any outgoing GetNameOwner call.
825 Also add for_owner and associated.
826 (struct _DBusGProxyManager): Add owner_names, which is hash table
827 that maps a base name to a list of names it owns (that we're
828 interested in). Add pending_nameowner_calls which is a list of
829 all outstanding GetNameOwner; avoids us having to iterate over
830 every proxy. Add unassociated_proxies which keeps track of name
831 proxies with no associated name owner.
832 (dbus_g_proxy_manager_unref): Destroy owner_names.
833 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
835 (find_name_in_info, name_owner_foreach)
836 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
837 (dbus_g_proxy_manager_monitor_name_owner)
838 (dbus_g_proxy_manager_unmonitor_name_owner)
839 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
840 New functions; they manipulate the owner_names mapping.
841 (got_name_owner_cb): New function.
842 (get_name_owner): New function, extracted from
843 dbus_g_proxy_new_for_name_owner.
844 (dbus_g_proxy_manager_register): For now we need to keep track of
845 all NameOwnerChanged. Also if the proxy is for a name, if we
846 don't already know the name owner, queue a new GetNameOwner
847 request and add it to our list of unassociated proxies. Otherwise
849 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
850 cancel any pending GetNameOwner call, etc.
851 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
852 the owner_names mapping to look up the current names for the
853 signal source, and dispatch to any proxies for that name.
854 (dbus_g_proxy_new): Initialize new members.
855 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
856 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
857 (dbus_g_pending_call_end_valist): New function, extracted from
858 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
859 but want to use the GLib infrastructure. Also note how many
860 arguments in reply were over.
861 (dbus_g_pending_call_end): New function, just call
862 dbus_g_pending_call_end_valist.
863 (dbus_g_proxy_end_call_internal): Just call
864 dbus_g_pending_call_end_valist.
866 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
867 of builtin marshaller for STRING_STRING_STRING.
869 * test/glib/test-dbus-glib.c:
870 * test/glib/test-service-glib.c:
871 * test/glib/test-service-glib.xml:
872 Extend tests to cover name proxies, destruction of owner proxies,
875 * glib/examples/example-signal-recipient.c
876 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
878 * tools/dbus-send.c (main): Print D-BUS error name in addition
881 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
883 * python/dbus_bindings.pyx.in (cunregister_function_handler,
884 cmessage_function_handler): Patch from
885 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
886 by using the Py_GILState_Ensure/Release to synchronize with the
889 2005-06-28 Ray Strode <rstrode@redhat.com>
891 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
892 babysitter helper process on last unref, bug #2813.
894 2005-06-27 Colin Walters <walters@verbum.org>
896 * test/glib/test-dbus-glib.c:
897 * test/glib/test-service-glib.c:
898 * test/glib/test-service-glib.xml:
899 Test hash table signal emitting.
901 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
902 types to their fundamental basis types, since this is what
903 marshallers operate on. Also add an entry for VOID__BOXED.
904 (dbus_g_object_register_marshaller_array): Convert to fundamental.
906 2005-06-26 Havoc Pennington <hp@redhat.com>
908 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
911 2005-06-26 Colin Walters <walters@verbum.org>
913 * glib/dbus-glib.c (dbus_set_g_error): Delete.
914 (dbus_g_error_set): New public function from its ashes; used by
915 both service-side method implementation and GLib bindings
917 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
918 (_dbus_glib_test): Add some tests.
920 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
922 * test/glib/test-service-glib.c (my_object_throw_error): Use
925 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
926 errors thrown by dbus_g_error_set.
928 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
930 * glib/dbus-gparser.c (validate_signature): Ditto.
932 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
933 (dbus_g_proxy_end_call_internal): Ditto.
935 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
936 converts DBUS_ERROR_x to DBUS_GERROR_x.
937 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
939 * doc/TODO: Remove error TODO.
941 * doc/dbus-tutorial.xml: Update with documentation about error
944 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
945 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
946 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
948 2005-06-22 Colin Walters <walters@verbum.org>
950 Patch from Ross Burton <ross@openedhand.com>
952 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
954 2005-06-20 Colin Walters <walters@verbum.org>
956 * configure.in: Add glib/examples.
958 * glib/Makefile.am: Add examples/
960 * glib/examples/.cvsignore
961 * glib/examples/Makefile.am
962 * glib/examples/example-client.c
963 * glib/examples/example-service.c
964 * glib/examples/example-service.xml
965 * glib/examples/example-signal-emitter.c
966 * glib/examples/example-signal-emitter.xml
967 * glib/examples/example-signal-recipient.c:
968 New files; GLib binding examples, ported from
971 2005-06-20 Colin Walters <walters@verbum.org>
974 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
977 * glib/dbus-binding-tool-glib.c:
978 * doc/dbus-tutorial.xml:
979 * test/glib/test-dbus-glib.c: Update for rename.
981 2005-06-20 Colin Walters <walters@verbum.org>
983 Patch suggested by Ross Burton <ross@openedhand.com>
985 * glib/dbus-gobject.c (export_signals): Free signal name.
986 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
987 memory leak. Add a bit of documentation.
988 (dbus_g_method_return_error): Free context, and note we do
991 2005-06-18 Murray Cumming <murrayc@murrayc.com>
994 * glib/dbus-gobject.c:
995 * glib/dbus-gproxy.c:
996 * glib/dbus-gvalue.c: Predeclare structs as
997 typedef struct _Something Something instead of
998 typedef struct Something Something, so we can
999 redeclare the prototypes. Other GNOME libraries
1002 2005-06-17 Colin Walters <walters@verbum.org>
1004 * tools/dbus-names-model.c (have_names_notify): Fix call
1005 to dbus_g_proxy_end_call.
1007 2005-06-17 Colin Walters <walters@verbum.org>
1009 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1010 spew warnings if we get malformed remote signals.
1012 * glib/dbus-gobject.c (propsig_iterate): New function.
1013 (lookup_object_info): New function, extracted from
1014 lookup_object_and_method.
1015 (introspect_properties, introspect_signals): Delete; these
1016 are merged into write_interface.
1017 (write_interface): Write out signals and properties here;
1018 dump the org.gtk.object stuff and use the interface given
1019 in the introspection data blob. Also fix up property XML.
1020 (lookup_values): New function.
1021 (introspect_interfaces): Gather a mapping from interface to a
1022 list of its methods, signals, and properties, then write out
1024 (lookup_object_and_method): Use lookup_object_info.
1025 (struct DBusGSignalClosure): Add interface.
1026 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1027 we can just use the constant data.
1028 (dbus_g_signal_closure_finalize): Don't free signal name.
1029 (signal_emitter_marshaller): Use interface from signal closure.
1030 (export_signals): Only export signals mentioned in introspection
1032 (dbus_g_connection_register_g_object): Warn if we have no
1033 introspection data for an object.
1034 (funcsig_equal): Remove unused variable.
1035 (dbus_g_object_register_marshaller): Take varargs instead of
1037 (dbus_g_object_register_marshaller_array): New function,
1038 extracted from old dbus_g_object_register_marshaller.
1040 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1041 signals and property data.
1042 (write_quoted_string): New function, extracted from generate_glue.
1043 (generate_glue): Write signals and properties to introspection
1046 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1047 exported_signals and exported_properties.
1048 (dbus_g_object_register_marshaller): Update prototype.
1049 (dbus_g_object_register_marshaller_array): Prototype.
1051 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1053 * test/glib/test-service-glib.c: Add new test signals and method
1056 * test/glib/test-service-glib.xml: Add some test signals.
1058 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1059 and my-object-marshal.h
1060 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1061 my-object-marshal.c.
1062 (my-object-marshal.c, my-object-marshal.h): Implement.
1064 * test/glib/.cvsignore: Update.
1066 * doc/TODO: Remove two GLib TODO items fixed by this
1069 2005-06-16 Colin Walters <walters@verbum.org>
1071 * doc/TODO: Update for GLib bindings.
1073 2005-06-16 Colin Walters <walters@verbum.org>
1075 * glib/dbus-binding-tool-glib.c:
1076 * glib/dbus-gobject.c:
1077 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1078 from Ross Burton, for his GLib bindings work.
1080 2005-06-16 Colin Walters <walters@verbum.org>
1082 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1083 to iterate instead of walking to G_TYPE_INVALID.
1085 Patch based on a patch from Ryan Gammon.
1087 2005-06-16 Colin Walters <walters@verbum.org>
1089 * bus/bus.c (bus_context_new): Set parser to NULL
1090 after we unref it (Patch from Chris Boscolo, #2174).
1092 2005-06-16 Colin Walters <walters@verbum.org>
1094 * python/dbus_bindings.pyx.in: Import size_t,
1095 __int64_t, __uint64_t, and __signed.
1097 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1098 Define cmsg struct, output it.
1099 (_dbus_read_credentials_unix_socket):
1102 Patch from Joe Markus Clarke for FreeBSD support.
1104 2005-06-16 Colin Walters <walters@verbum.org>
1106 * tools/dbus-send.c (append_array): Use strtok.
1107 (append_dict): New function.
1108 (type_from_name): New function, extracted from main.
1109 (main): Handle sending dicts.
1111 * tools/dbus-print-message.c (print_iter): Print dict
1114 2005-06-16 Colin Walters <walters@verbum.org>
1116 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1117 values as the empty string (#2948).
1119 2005-06-16 Colin Walters <walters@verbum.org>
1122 * mono/doc/Makefile.am:
1123 * test/glib/Makefile.am:
1125 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1127 2005-06-16 Colin Walters <walters@verbum.org>
1129 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1130 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1132 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1133 Increment pointer after swapping fixed array. Add assertion
1136 2005-06-15 Colin Walters <walters@verbum.org>
1138 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1139 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1141 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1143 * NEWS: Update to 0.34
1145 2005-06-15 David Zeuthen <davidz@redhat.com>
1147 * configure.in (LT_CURRENT): Revert back to 1 as the library
1148 hasn't changed and we've certainly not committed to protocol
1149 stability yet. All this does is to break ABI. See commit note
1150 from hp@redhat.com 2005-05-05 for details.
1152 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1154 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1155 (_dbus_connection_run_builtin_filters): New method
1156 (dbus_connection_dispatch): Run the builtin filters which in turn
1157 runs the peer filter which handles Ping messages.
1160 - Ping isn't handled: This patch fixes it
1162 - Add a test case for the Ping message: added TODO item
1164 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1166 * dbus/dbus-message.c:
1167 (dbus_message_has_path): New method
1168 (dbus_message_has_interface): New method
1169 (dbus_message_has_member): New method
1171 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1174 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1175 the keyring directory is private to the user
1178 - The convenience functions in dbus-bus.h should perhaps have
1179 the signatures that they would have if they were autogenerated
1180 stubs. e.g. the acquire service function. We should also evaluate
1181 which of these functions to include, in light of the fact that
1182 GLib/Qt native stubs will probably also exist.: Punted
1184 - add dbus_message_has_path(), maybe has_member/interface:
1187 - in dbus-keyring.c, enforce that the keyring dir is not
1188 world readable/writable: Fixed in this patch
1190 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1192 * dbus/dbus-marshal-validate.h: Added a new validation
1193 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1194 out of memory errors when validating signitures
1196 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1197 in places where we previously used DBUS_VALID and a FALSE return
1198 value to indicate OOM
1200 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1201 Use a stack to track the number of elements inside containers. The
1202 stack values are then used to validate that dict entries have only two
1203 elements within them.
1204 (validate_body_helper): check the reason for failure when validating
1207 * dbus/dbus-message.c (load_message): use
1208 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1209 DBUS_VALID and a FALSE return value to indicate OOM
1211 * doc/TODO: remove "- validate dict entry number of fields" as this
1214 2005-06-14 David Zeuthen <davidz@redhat.com>
1216 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1217 watches (if applicable) and add new watches
1219 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1220 (main): Setup SIGIO signal handler if using D_NOTIFY
1222 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1224 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1225 (merge_included): Also merge conf_dirs list
1226 (bus_config_parser_unref): Clear conf_dirs list
1227 (include_dir): Add directory to conf_dirs list
1228 (bus_config_parser_get_conf_dirs): New function
1230 * bus/dir-watch.[ch]: New files
1232 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1234 * configure.in: Add checks for D_NOTIFY on Linux
1236 2005-06-14 Colin Walters <walters@verbum.org>
1238 * glib/dbus-binding-tool-glib.c:
1239 * glib/dbus-gobject.c:
1240 * glib/dbus-gvalue.c: Fix indentation and brace style.
1242 2005-06-14 Ross Burton <ross@openedhand.com>.
1244 * glib/dbus-glib.h: Make DBusGMethodInvocation
1245 a private structure. Rearrange prototypes a bit.
1247 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1248 documentation for first_arg_type.
1250 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1251 here, add documentation. Move dbus_g_method_return
1252 and dbus_g_method_return_error into public API
1255 2005-06-14 Colin Walters <walters@verbum.org>
1257 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1258 Add missing return statements, noticed by Ross Burton.
1260 2005-06-13 Ross Burton <ross@openedhand.com>.
1262 * glib/dbus-gobject.c: Handle errors on message
1263 demarshalling by sending error message back.
1264 * glib/dbus-gvalue.c: Initialize return variables.
1266 2005-06-13 Colin Walters <walters@verbum.org>
1268 * glib/Makefile.am: Fix thinko in last patch.
1270 2005-06-13 Colin Walters <walters@verbum.org>
1272 * glib/Makefile.am: Move dbus-gtype-specialized.c
1273 and dbus-gtype-specialized.h into a _HEADERS variable,
1276 2005-06-12 Colin Walters <walters@verbum.org>
1278 Async signals and various bugfixes and testing by
1279 Ross Burton <ross@openedhand.com>.
1281 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1282 (dbus_gvalue_genmarshal_name_from_type)
1283 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1284 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1285 (dbus_g_value_types_init, dbus_gtype_from_signature)
1286 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1287 (dbus_gtypes_from_arg_signature): New function prototypes.
1288 (dbus_gvalue_demarshal): Take context and error arguments.
1289 (dbus_gvalue_demarshal_variant): New function.
1290 (dbus_gvalue_demarshal_message): New function.
1291 (dbus_gvalue_store): Delete.
1293 * glib/dbus-gvalue.c:
1295 File has been almost entirely rewritten; now we special-case
1296 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1297 hash tables correctly, etc. Full support for recursive values
1298 is not yet complete.
1300 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1301 argument of signal to G_TYPE_POINTER since we now pass a
1303 (lookup_g_marshaller): Delete in favor of
1304 _dbus_gobject_lookup_marshaller.
1305 (marshal_dbus_message_to_g_marshaller): Use
1306 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1307 to handle remote signal callbacks.
1308 (dbus_g_proxy_new_from_proxy): New function; creates a new
1309 DBusGProxy by copying an existing one.
1310 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1311 (dbus_g_proxy_get_path): New functions.
1312 (dbus_g_proxy_marshal_args_to_message): New function;
1313 factored out of existing code.
1314 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1315 from a varargs array.
1316 (dbus_g_proxy_begin_call_internal): New function.
1317 (dbus_g_proxy_end_call_internal): New function.
1318 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1319 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1320 after collecting args into value array.
1321 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1322 invoke dbus_g_proxy_end_call_internal.
1323 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1325 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1327 (array_free_all): New function.
1328 (dbus_g_proxy_add_signal): Take GTypes.
1330 * glib/dbus-gobject.h:
1331 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1332 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1335 * glib/dbus-gobject.c: Add a global marshal_table hash which
1336 stores mappings from type signatures to marshallers. Change lots
1337 of invocations of dbus_gtype_to_dbus_type to
1338 dbus_gtype_to_signature.
1339 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1340 (introspect_signals): Fix test for query.return_type.
1341 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1342 (invoke_object_method): Many changes. Handle asynchronous
1343 invocations. Convert arguments with
1344 dbus_gvalue_demarshal_message. Handle errors. Use
1345 DBusSignatureIter instead of strlen on args. Handle all arguments
1346 generically. Special-case variants.
1347 (dbus_g_method_return, dbus_g_method_return_error): New function.
1348 (DBusGSignalClosure): New structure, closes over signal
1350 (dbus_g_signal_closure_new): New function.
1351 (dbus_g_signal_closure_finalize): New function.
1352 (signal_emitter_marshaller): New function; is special marshaller
1353 which emits signals on bus.
1354 (export_signals): New function; introspects object signals and
1356 (dbus_g_object_type_install_info): Take GType instead of
1358 (dbus_g_connection_register_g_object): Invoke export_signals.
1359 (dbus_g_connection_lookup_g_object): New function.
1360 (DBusGFuncSignature) New structure; used for mapping type
1361 signatures to marshallers.
1362 (funcsig_hash): New function; hashes DBusGFuncSignature.
1363 (funcsig_equal): New function; compares DBusGFuncSignature.
1364 (_dbus_gobject_lookup_marshaller): New function.
1365 (dbus_g_object_register_marshaller): New function; used to
1366 register a marshaller at runtime for a particular signature.
1368 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1370 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1371 which notes a server method implementation should be
1374 * glib/dbus-binding-tool-glib.c
1375 (dbus_binding_tool_output_glib_server): Call
1376 dbus_g_value_types_init.
1377 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
1379 (dbus_g_type_get_lookup_function): Turn GType into an invocation
1380 of a lookup function.
1381 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1382 (write_untyped_out_args): New method; write output arguments.
1383 (write_formal_declarations_for_direction): Function for
1385 (write_formal_parameters_for_direction): Function for
1386 writing implementations.
1387 (write_typed_args_for_direction): Function for writing
1388 arguments prefixed with GTypes.
1389 (write_async_method_client): Write out async version
1392 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1393 (dbus_g_type_get_marshal_name): Move mapping from GType
1394 to marshal name into here.
1395 (dbus_g_type_get_c_name): Move into here.
1396 (compute_marshaller): Convert signature to type with
1397 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1398 (compute_marshaller_name): Ditto.
1399 (compute_marshaller): Handle async signal annotations.
1400 (gather_marshallers): Return if we don't have a known
1402 (generate_glue): Collect introspection blob here, and
1403 write all of the blob at the end. This allows an object
1404 with multiple interfaces to work.
1405 Mark async methods in introspection blob.
1407 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1408 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1409 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1411 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1412 avoids people accidentally using DBUS_TYPE_* which should
1413 not be necessary anymore.
1414 Do include dbus-gtype-specialized.h, which are utilities
1415 for GLib container types.
1416 Add various #defines for types such as
1417 DBUS_TYPE_G_BOOLEAN_ARRAY.
1418 (DBusGValueIterator, DBusGValue): Define, not fully used
1420 (dbus_g_value_get_g_type): Type for recursive value.
1421 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1422 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1423 (dbus_g_value_free): Prototypes.
1424 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1425 (dbus_g_proxy_set_interface): Prototype.
1426 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1427 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1429 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1431 (DBusGAsyncData, DBusGMethodInvocation): Structures for
1432 doing async invocations.
1433 (dbus_g_method_return, dbus_g_method_return_error):
1435 * doc/dbus-tutorial.xml: Update GLib section.
1437 * tools/dbus-viewer.c (load_child_nodes): Update
1438 for new invocation type of dbus_g_proxy_end_call.
1439 (load_from_service_thread_func): Ditto.
1441 * tools/print-introspect.c (main): Ditto.
1443 * tools/dbus-names-model.c (have_names_notify)
1444 (names_model_reload, names_model_set_connection)
1447 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1448 needed since Python bindings use GLib bindings.
1450 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1451 Add --prefix argument.
1453 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
1454 unneeded --ignore-unsupported arg.
1456 * test/glib/test-service-glib.c:
1457 * test/glib/test-service-glib.xml:
1458 * test/glib/test-dbus-glib.c: Add many more tests.
1460 2005-06-06 David Zeuthen <davidz@redhat.com>
1462 * doc/TODO: Add item about need to remove deprecated functions.
1464 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1466 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1467 to repair the ABI which was broken with the last commit.
1469 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
1471 * dbus/dbus-connection.c, dbus/dbus-connection.h
1472 (dbus_connection_disconnect): renamed to dbus_connection_close
1473 for API symmetry with dbus_connection_open
1474 (_dbus_connection_open_internal):
1475 s/dbus_connection_disconnect/dbus_connection_close
1477 * dbus/dbus-bus.c (dbus_bus_get):
1478 s/dbus_connection_disconnect/dbus_connection_close
1480 * bus/connection.c (bus_connections_unref,
1481 bus_connections_setup_connection, bus_connections_expire_incomplete):
1482 s/dbus_connection_disconnect/dbus_connection_close
1484 * bus/dispatch.c (bus_dispatch, kill_client_connection,
1485 kill_client_connection_unchecked, check_hello_connection):
1486 s/dbus_connection_disconnect/dbus_connection_close
1488 * bus/bus.c (new_connection_callback):
1489 s/dbus_connection_disconnect/dbus_connection_close
1491 * tools/dbus-send.c (main):
1492 s/dbus_connection_disconnect/dbus_connection_close
1494 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1495 s/dbus_connection_disconnect/dbus_connection_close
1497 * test/test-service.c (path_message_func, filter_func):
1498 s/dbus_connection_disconnect/dbus_connection_close
1500 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
1502 2005-05-25 Colin Walters <walters@verbum.org>
1504 * dbus/dbus-protocol.h: Move various bus service #defines such
1505 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1507 * dbus/dbus-shared.h: Various defines moved here.
1508 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1510 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
1512 * python/__init__.py: Python bindings deserve a minor version
1513 update. Upped to (0, 40, 2)
1515 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
1517 * python/decorators.py: add explicitly_pass_message decorator
1518 for passing in the dbus message as keyword for edge case signal
1521 * python/matchrules.py (SignalMatchRule.__repr__): fix output
1522 to conform with what dbus expects for match rules
1523 (SignalMatchRule.execute): add the dbus message as a keyword
1524 if the signal handler has requested it
1526 * python/examples/example/signal-recipient.py: added some more
1527 examples on how to hook up to signals
1529 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
1531 * python/decorators.py: import dbus_bindings
1533 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
1534 SignalMatchNode): new classes that implement wildcard signal
1535 callback matching using a tree lookup. Heavily modified from a
1536 patch sent by Celso Pinto (fd.o bug #3241)
1538 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1539 use new match classes to handle signals.
1541 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
1543 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1545 2005-05-18 Havoc Pennington <hp@redhat.com>
1547 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1548 gettext. Not really worth requiring yet perhaps, but any
1549 production quality 1.0 would require it so we should go ahead and
1550 get things set up. We do have a couple token calls to
1551 bindtextdomain in the code already.
1553 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
1555 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1556 when using recursive g_main_loops
1558 * python/_dbus.py (class Bus): add the ProxyObjectClass
1559 alias for ProxyObject to make it easier for the Twisted
1560 networking framework to integrate dbus.
1562 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1563 alias for ProxyMethod to make it easier for the Twisted
1564 networking framework to integrate dbus.
1566 2005-05-11 Ross Burton <ross@openedhand.com>
1568 * glib/dbus-glib-tool.c: Add --prefix argument.
1569 * glib/dbus-binding-tool-glib.h: Add prefix argument.
1570 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1571 Add prefix argument.
1572 (generate_glue): Pass prefix argument down.
1573 (dbus_binding_tool_output_glib_server): Pass prefix to
1576 2005-05-11 Colin Walters <walters@verbum.org>
1578 * tools/dbus-send.c (append_array): New function.
1579 (append_arg): Broken out from main.
1580 (main): Add cheesy hack to send arrays and variants.
1582 * tools/dbus-print-message.c (print_iter): Broken out
1585 2005-05-11 Colin Walters <walters@verbum.org>
1587 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1588 New function, returns signature string for signature iter.
1589 * dbus/dbus-signature.h: Prototype it.
1590 * dbus/dbus-message.c (dbus_message_iter_get_signature):
1591 New function, returns signature string for message iter.
1592 (dbus_message_iter_get_array_len): New function, returns
1594 (dbus_message_iter_get_fixed_array): Fix assertion; this
1595 function should be used when the iter is pointing to the
1596 contents of an array
1597 * dbus/dbus-message.h: Prototypes.
1598 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1599 New function; returns length of an array.
1600 * dbus/dbus-marshal-recursive.h: Prototype it.
1602 2005-05-11 Colin Walters <walters@verbum.org>
1604 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1607 2005-05-08 Havoc Pennington <hp@redhat.com>
1609 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1610 daemon's pid, not the parent's pid, to the file descriptor.
1611 Reported by Taj Morton.
1613 2005-05-05 Havoc Pennington <hp@redhat.com>
1615 * configure.in (LT_*): add notes on how the libtool versioning
1616 works to save thinking. Increment soname to indicate protocol
1617 breakage (though really the library interface hasn't changed I
1620 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1621 verify the GUID received from server matches what we were
1622 expecting, if we had an expectation
1624 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1625 (_dbus_auth_get_guid_from_server): new function
1626 (send_begin): parse the OK args
1628 * doc/dbus-specification.xml: add GUID to the auth protocol
1630 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
1632 * Fix my name in previous changelog ;)
1634 * python/proxies.py (ProxyObject.__getattr__): add further patch
1635 from Anthony Baxter to throw an AttributeError when python
1636 __special__ functions are called instead of marshling them over
1637 the bus (Bug#1685 comment 3).
1639 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
1641 * python/Makefile.am: changed to use pyexecdir for the binding
1642 shared libraries (Bug#2494)
1644 * python/exceptions.py: bring exceptions over from the bindings
1645 so they can be used in applications (Bug#2036)
1646 Make all exceptions derive from DBusException
1648 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1649 of classes so that print obj doesn't throw an exception (Bug #1685)
1651 2005-05-03 Ross Burton <ross@openedhand.com>
1653 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1654 Return if we get an error during registration. Set up a
1655 weak reference on object to unregister if object is destroyed.
1656 (unregister_gobject): New function.
1658 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
1660 * python/dbus_bindings.pyx.in:
1661 - added new type classes for hinting to the marashaler what type
1662 to send over the wire
1663 - added int16 and uint16 marshalers
1664 - Fixed a bug in the type constants that caused int32 to go out
1665 as uint16 over the wire
1666 * python/dbus.py: split up into different files and renamed _dbus.py
1667 * python/__init__.py, python/_util.py, python/decorators.py,
1668 python/exceptions.py, python/proxies.py, python/services.py,
1669 python/types.py: new files split off from dbus.py
1670 * python/Makefile.am: Add new files, remove dbus.py and
1671 install all python files to <python module dir>/dbus
1672 * python/examples/*: Added #!/usr/bin/env python to the top of
1673 every example. Patch provided by Tatavarty Kalyan
1675 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1677 * NEWS: Update to 0.33
1679 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1681 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1682 method for doing async calls
1683 (_pending_call_notification): New C function for handling pendning call
1685 (set_notify): New method for setting pending call notification
1687 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1688 Async capabilities added to remote method calls
1689 (Sender): class removed
1690 (RemoteService): class removed
1691 (ObjectTree): class removed for now
1692 (RemoteObject): Renamed to ProxyObject
1693 (RemoteMethod): Renamed to ProxyMethod
1694 (method): Decorator added for decorating python methods as dbus methods
1695 (signal): Decorator added for decorating python methods as signal emitters
1696 (ObjectType): Metaclass added for generating introspection data and the
1697 method callback vtable
1698 (Interface): Wrapper class added to wrap objects in a dbus interface
1699 (Object): Uses ObjectType as its metaclass and exports Introspect
1700 of the org.freedesktop.DBus.Introspectable interface
1701 (ValidationException, UnknownMethodException): new exceptions
1703 * python/examples/*: Modified to fit with the new bindings
1705 2005-04-23 Havoc Pennington <hp@redhat.com>
1707 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1708 reported by Tony Houghton
1710 * test/test-service.c (main): test
1711 dbus_connection_get_object_path_data()
1713 * dbus/dbus-object-tree.c (find_handler): be sure we always init
1715 (_dbus_object_tree_get_user_data_unlocked): new function used by
1716 dbus_connection_get_object_path_data()
1717 (do_register): add assertion test for get_user_data_unlocked
1718 (object_tree_test_iteration): more tests
1720 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1721 new function from Dan Reed to let you get the user data from
1722 dbus_connection_register_object_path()
1724 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
1726 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1727 in numerous places that did not account for the NULL terminator
1728 (signature_from_seed): changed the manual string copy loop to
1729 just use strcpy instead
1730 make check should now pass
1732 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
1734 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1735 so that it allows messages that are not signals to pass in
1736 NULL as the interface.
1738 2005-04-18 David Zeuthen <davidz@redhat.com>
1740 * glib/dbus-gmain.c (io_handler_destroy_source):
1741 (timeout_handler_destroy_source, connection_setup_free):
1742 Also unref the source to avoid memory leaks.
1744 2005-04-13 David Zeuthen <davidz@redhat.com>
1746 * bus/config-parser.c (bus_config_parser_new): Bump this to a
1747 more reasonable, yet still totally arbitrary, value :-).
1749 2005-04-13 David Zeuthen <davidz@redhat.com>
1751 * doc/TODO: Added an "important for 1.0" item about selinux
1754 2005-04-13 David Zeuthen <davidz@redhat.com>
1756 * bus/selinux.c: Add c-file-style to top of file
1757 (log_audit_callback): Don't free the data here anymore
1758 (bus_selinux_check): Don't take spid and tpid since appending
1759 that to auxdata may OOM.
1760 (bus_selinux_allows_acquire_service): Handle OOM and signal back
1761 to the caller if we are OOM by taking an error object.
1762 (bus_selinux_allows_send): -do-
1764 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1765 and bus_selinux_allows_send
1767 * bus/bus.c (bus_context_check_security_policy): Pass error and
1768 pass on OOM thrown by bus_selinux_allows_send()
1770 * bus/services.c (bus_registry_acquire_service): Pass error and
1771 pass on OOM thrown by bus_selinux_allows_acquire_service()
1773 2005-04-13 Havoc Pennington <hp@redhat.com>
1775 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1776 message at a time to avoid monopolizing the main loop, bug
1777 #2953 from Benjamin Otte
1779 2005-04-09 Havoc Pennington <hp@redhat.com>
1781 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1782 possible overlap, fix from Daniel Reed
1783 (fixup_alignment): fix signedness warnings
1784 (_dbus_string_append_unichar): ditto
1786 2005-04-09 Havoc Pennington <hp@redhat.com>
1788 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1790 * glib/dbus-glib-tool.c (main): fix warning
1792 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1794 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1795 add a new function that can be used in simple applications that
1796 don't have a main loop and are willing to block
1798 2005-04-05 David Zeuthen <davidz@redhat.com>
1800 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1802 * glib/dbus-gmain.c:
1803 (io_handler_destroy_source): Remove from list of IO handlers
1804 of the ConnectionSetup object
1805 (timeout_handler_destroy_source): -do- for timeout handlers
1806 (io_handler_source_finalized): Don't remove from list since
1807 we now do that in io_handler_destroy_source(). Renamed from
1808 io_handler_source_destroyed
1809 (timeout_handler_source_destroyed): -do- for timeout handlers
1810 (connection_setup_free): It is now safe to iterate over all
1811 IO and timeout handlers as the _destroy_source removes them
1812 from the list synchronously
1814 2005-03-30 Havoc Pennington <hp@redhat.com>
1816 * configure.in: change check to gtk 2.4
1818 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1819 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1822 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1826 * HACKING: Fixed realease instructions. configure.in should be updated to
1827 the next release by the person who made the last release.
1829 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1831 * python/lvalue_cast_post_process.py - removed. Patch has been
1832 submitted to Pyrex maintainers that fixes gcc4.0 errors
1834 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1836 2005-03-24 Daniel Reed <n@ml.org>
1838 * tools/Makefile.am: Make print-introspect and
1839 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1841 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1843 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1845 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1846 had in Red Hat packages for a while but for some reason never
1848 (_dbus_is_a_number): New checks if a string
1849 can be converted to a number and does the conversion if it can
1850 (_dbus_user_database_lookup): Add check to see if the given username
1851 is a udi. This allows udi's to be used instead of usernames in the
1853 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1854 is a gdi. This allows gdi's to be used instead of groupnames in the
1857 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1859 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1860 code so that it compiles with gcc4.0
1862 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1863 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1864 results back to dbus_binding.c
1866 2005-03-20 Colin Walters <walters@verbum.org>
1868 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1870 * configure.in: Require GTK+ 2.6.
1872 2005-03-20 Colin Walters <walters@verbum.org>
1874 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1876 2005-03-17 Tom Parker <palfrey@tevp.net>
1878 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1879 print DBUS_UID_UNSET; instead print passed username. Also
1880 be sure to actually use gid looked up in cache.
1882 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1883 for DBUS_GID_UNSET and groupname.
1885 2005-03-17 Colin Walters <walters@verbum.org>
1887 * bus/print-introspect.c: Move to tools/.
1888 * bus/run-with-tmp-session-bus.sh: Ditto.
1890 * glib/Makefile.am (dbus-glib-bindings.h): Move
1891 generation to tools/Makefile.am.
1893 * test/glib/run-test.sh: Update to handle move
1894 of run-with-tmp-session-bus.sh.
1896 * test/glib/test-service-glib.c: Update to handle
1897 move of dbus-glib-bindings.h.
1899 * tools/print-introspect.c: Moved here
1900 from bus/, and ported to GLib bindings.
1902 * tools/run-with-tmp-session-bus.sh: Moved here
1905 * tools/Makefile.am: Generate dbus-glib-bindings.h
1906 and dbus-bus-introspect.xml here.
1908 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1911 2005-03-17 Colin Walters <walters@verbum.org>
1913 * bus/driver.c (write_args_for_direction): Use
1914 _dbus_string_get_const_data to retrieve string;
1915 _dbus_string_get_const_data_len doesn't actually return
1916 a NULL-terminated substring.
1918 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1919 (main): Change to use org_freedesktop_DBus_request_name
1920 instead of using g_proxy_begin_call/end_call.
1922 2005-03-15 Joe Shaw <joeshaw@novell.com>
1924 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1925 generating the finalizer. Fixes from Ben Maurer.
1927 2005-03-12 Joe Shaw <joeshaw@novell.com>
1929 * mono/BusDriver.cs: Update method names: ListServices
1930 becomes ListNames; GetOwner becomes GetNameOwner.
1932 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1933 onto the eval stack when removing the delegate.
1935 2005-03-12 Joe Shaw <joeshaw@novell.com>
1937 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1938 LT_CURRENT. Set it to the autoconf variable.
1940 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1941 classes that disconnects the signal handler delegate from the
1942 service object. Fixes a big leak of proxy objects on the
1943 client side of things. Patch from Ben Maurer
1944 <bmaurer@ximian.com>
1946 2005-03-12 Colin Walters <walters@verbum.org>
1948 * bus/driver.c (write_args_for_direction): New function,
1949 parses a type signature into arguments and outputs to
1951 (bus_driver_handle_introspect): Use it instead of
1952 hardcoding XML for certain signatures.
1954 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1955 dependency on dbus-daemon.
1957 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1958 argument, pass it to dbus_binding_tool_output_glib_client.
1960 * glib/dbus-binding-tool-glib.c
1961 (generate_client_glue): Protect against multiple inclusion.
1962 (dbus_binding_tool_output_glib_client): Add
1963 G_BEGIN_DECLS/G_END_DECLS.
1965 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1966 Change to just take iface prefix directly.
1967 (write_formal_parameters): Clarify error message.
1968 (check_supported_parameters): New function; checks to see type
1969 signatures of method parameters are supported.
1970 (generate_client_glue): Handle ignore_unsupported flag.
1971 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1974 * glib/Makefile.am (dbus-glib-bindings.h): Pass
1975 --ignore-unsupported by default until glib bindings
1978 2005-03-11 Colin Walters <walters@verbum.org>
1980 * glib/Makefile.am: Generate dbus-glib-bindings.h and
1983 * bus/print-introspect.c: New file; prints introspection
1984 data for a given name and object path.
1986 * bus/run-with-tmp-session-bus.sh: New file, refactored
1987 from test/glib/run-test.sh. Creates a temporary session
1988 bus and runs another program.
1990 * test/glib/run-test.sh: Refactor to invoke
1991 run-with-tmp-session-bus.sh.
1993 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1994 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
1995 macros instead of hardcoding.
1997 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1999 2005-03-11 Joe Shaw <joeshaw@novell.com>
2001 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2002 this unref; it doesn't match up evenly in some codepaths.
2003 (_dbus_connection_block_pending_call): Unref at every exitpoint;
2004 this evenly matches with the ref near the top of this function.
2006 2005-03-09 Joe Shaw <joeshaw@novell.com>
2008 * dbus/dbus-object-tree.c
2009 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2010 and we try to unregister a path that's not registered, still go
2011 through the process of unlocking and don't just return.
2013 2005-03-09 Colin Walters <walters@verbum.org>
2015 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2016 to this are generated for client-side wrappers. Invokes a
2017 D-BUS method and returns reply values.
2019 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2020 function; writes signature string for argument direction.
2021 (write_args_for_direction): Change to pass input values directly
2022 instead of via address, and fix indentation.
2023 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2024 make generated wrappers inlineable.
2026 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2027 note about using dbus_type_is_fixed.
2029 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2030 dbus/dbus-signature.c as dbus_type_is_fixed.
2032 All callers updated.
2034 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2035 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2037 * dbus/dbus-signature.h: Prototype.
2039 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2042 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2043 appropriate instead of just freeing it.
2044 (main): Free returned strings using g_free.
2046 * test/glib/Makefile.am (test-service-glib-glue.h)
2047 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2049 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2050 simply maps a simple D-BUS type to GType.
2051 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2053 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2054 initialize the value with it.
2055 (dbus_gvalue_binding_type_from_type): Unused, delete.
2056 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2057 various types instead of unmarshalling to value data directly.
2058 Remove can_convert boolean.
2059 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2060 returning directly instead of using can_convert boolean.
2061 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2062 Stores a GValue in a pointer to a value of its corresponding C
2065 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2066 add dbus_gvalue_store.
2068 2005-03-08 Joe Shaw <joeshaw@novell.com>
2070 Fix a bunch of lifecycle and memory management problems
2071 in the mono bindings.
2073 * mono/Arguments.cs (Arguments): Implement IDisposable
2075 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2076 strictly a static class.
2078 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2079 delegates into this file.
2080 (Connection): Implement IDisposable.
2081 (Dispose): Disconnect the connection and set the raw connection
2082 pointer to IntPtr.Zero.
2083 (~Connection): Call Dispose().
2084 (RegisterObjectPath): Added. Manages the registration of object
2085 paths so we can cleanly disconnect them at dispose/finalize time.
2086 (UnregisterObjectPath): Ditto.
2087 (set_RawConnection): Unregister all of the object paths when
2088 changing the underlying DBusConnection. Add them back onto the
2089 new connection, if any.
2091 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2092 more unmanaged resources anymore, so it's not necessary. Move all
2093 the DBusObjectPathVTable stuff out of here.
2094 (Handler): Save references to our delegates so that they don't get
2095 finalized. Call Connection.RegisterObjectPath() instead of
2096 dbus_connection_register_object_path() directly.
2097 (Message_Called): Dispose the message after we're finished with
2100 * mono/Message.cs (Message): Implement IDisposable.
2101 (Dispose): Dispose the Arguments, and set the RawMessage to
2103 (SendWithReplyAndBlock): We own the ref to the reply that comes
2104 back from dbus_connection_send_with_reply_and_block() so add a
2105 comment about that and unref it after we've constructed a managed
2106 MethodReturn class around it. Fixes a big, big leak.
2108 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2110 (BuildSignalHandler): After we've sent the Signal message, dispose
2112 (BuildMethod): Dispose of the method call and reply messages after
2113 we've sent the message and extracted the data we want from the
2116 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2118 (Service_FilterCalled): Dispose of the message after we're
2121 2005-03-08 Joe Shaw <joeshaw@novell.com>
2123 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2124 After we attach our pending call to the connection, unref
2127 * mono/Connection.cs (set_RawConnection): Disconnect our
2128 filter and match callbacks from the old connection and
2129 reconnect them to the new connection, if any.
2131 * mono/DBusType/Array.cs: "Code" is a static member, so
2132 don't use "this" to refer to it. Fix for stricter checking
2135 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2136 object path that we pass into unmanaged code.
2138 * mono/DBusType/String.cs (Append): Don't leak the string
2139 that we pass into unmanged code.
2141 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2142 * NEWS: Update for 0.31
2144 * configure.in: Release 0.31
2145 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2147 * qt/Makefile.am: fixed build
2149 * dbus/Makefile.am: soname bump for libdbus
2151 * glib/Makefile.am: soname bump for libdbus-glib
2153 2005-03-05 Havoc Pennington <hp@redhat.com>
2155 * dbus/dbus-sysdeps.c:
2156 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2158 (_dbus_generate_random_bytes_buffer): fix return value
2160 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2161 checks actually work, from Tom Parker <fdo@tevp.net>
2163 2005-03-01 Colin Walters <walters@verbum.org>
2165 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2166 functions copied from dbus-glib-tool.c.
2167 (main): Convert lots of error code to use them.
2168 Also add some testing for introspection bits.
2170 2005-03-01 Colin Walters <walters@verbum.org>
2172 * doc/TODO: Remove introspection signature TODO.
2174 2005-02-27 Colin Walters <walters@verbum.org>
2176 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2177 Change return value to const char * instead of int so we can do
2179 (struct PropertyInfo, struct ArgInfo): Store char *.
2180 (property_info_new, arg_info_new): Update parameters, strdup.
2181 (property_info_unref, arg_info_unref): Free.
2183 * glib/dbus-gidl.h: Update prototypes.
2185 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2186 (validate_signature): New function, just validates signature and
2188 (parse_property, parse_arg): Invoke validate_signature. Store
2189 signature instead of just type code.
2191 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2192 function to return a primary type for a signature, dropping
2193 information about types in container types.
2194 (dbus_gvalue_genmarshal_name_from_type)
2195 (dbus_gvalue_binding_type_from_type)
2196 (dbus_gvalue_ctype_from_type): Update to take full signature
2197 instead of type code.
2198 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2200 * glib/dbus-gvalue.h: Update prototypes for above.
2202 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2203 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2204 (introspect_properties, introspect_signals, write_interface):
2205 Update to handle signatures, and remove usage of
2206 _dbus_gutils_type_to_string.
2207 (handle_introspect): Print out type codes instead of e.g. "string"
2208 in hardcoded introspection XML; also use x_AS_STRING constants
2209 instead of hardcoding in string.
2211 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2212 to string. Remove usage of _dbus_gutils_type_to_string.
2214 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2216 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2219 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2220 (compute_marshaller_name, generate_glue): Handle signature change
2222 (write_formal_parameters, write_args_for_direction): Ditto, and
2225 * tools/dbus-tree-view.c (type_to_string): Delete.
2226 (info_set_func_text): Update to print full signatures.
2228 * test/glib/test-service-glib.xml: Change types to new
2229 introspection format.
2231 2005-02-26 Havoc Pennington <hp@redhat.com>
2233 * doc/TODO: remove the "guid" item
2235 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2236 (with_bus_thread_func): use open_private
2238 * dbus/dbus-connection.c (dbus_connection_open_private): new
2239 function that works like the old dbus_connection_open()
2240 (dbus_connection_open): now returns an existing connection if
2243 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2244 through the GUID to the transport
2246 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2247 GUID in hex-encoded form.
2249 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2250 pass GUID argument in to the transport
2252 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2255 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2257 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2259 2005-02-25 Havoc Pennington <hp@redhat.com>
2261 * doc/dbus-specification.xml: document the GUID thing
2263 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2264 globally unique ID for the server, and put a "guid=hexencoded"
2265 field in the address
2267 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2269 * dbus/dbus-message.c: ditto
2271 * dbus/dbus-dataslot.c: ditto
2273 * dbus/dbus-list.c: ditto
2275 * dbus/dbus-internals.h: wait, just include
2276 dbus-threads-internal.h here
2278 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2281 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2283 2005-02-24 Colin Walters <walters@verbum.org>
2285 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2287 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2289 * glib/Makefile.am: added dbus-gobject.h to sources list
2290 so distcheck doesn't fail
2292 2005-02-24 Havoc Pennington <hp@redhat.com>
2294 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2295 you must disconnect before unref, since locking and other things
2296 are screwed up otherwise. Fix assorted other locking stuff.
2298 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2301 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2302 into a private header and don't export from the library
2304 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2306 2005-02-24 Colin Walters <walters@verbum.org>
2308 * dbus/dbus-signature.c: New file; implements various functions
2309 related to type signatures. Includes an interator for parsing,
2310 validation functions.
2311 (dbus_type_is_basic): Moved here from
2312 dbus-marshal-basic.c:_dbus_type_is_basic.
2313 (dbus_type_is_container): Moved here from
2314 dbus-marshal-basic.c:_dbus_type_is_container.
2316 All callers of _dbus_type_is_container and _dbus_type_is_basic
2317 updated, and include dbus-signature.h.
2319 * dbus/dbus-signature.h: New file; prototypes for the above.
2321 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2324 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2325 function factored out of _dbus_first_type_in_signature.
2326 (_dbus_first_type_in_signature_c_str): New function; returns first
2327 type code for a type signature character.
2329 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2330 handle function moves.
2332 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2334 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2335 function; skips to next complete type in type signature.
2336 Implemented using previous skip_one_complete_type. Now
2337 skip_one_complete_type just delegates to
2338 _dbus_type_signature_next.
2340 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2342 (_dbus_type_is_container): Ditto.
2344 * doc/dbus-specification.xml: Update introspection sample to
2345 use real type signatures.
2347 * dbus/dbus-test.h: Prototype signature test.
2349 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2352 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2354 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2356 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2357 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2359 2005-02-21 Colin Walters <walters@verbum.org>
2361 * dbus/dbus-test-main.c (main): Take optional specific test
2364 * dbus/dbus-test.c (run_test): New function, runs a test function
2365 with no data directory.
2366 (run_data_test): Like above, but takes data directory.
2367 (dbus_internal_do_not_use_run_tests): Take
2368 specific test argument. Replace lots of cut n' paste code
2369 with run_test and run_data_test.
2371 * dbus/dbus-test.h: Update prototype for
2372 dbus_internal_do_not_use_run_tests.
2374 2005-02-20 Havoc Pennington <hp@redhat.com>
2376 Fix bugs reported by Daniel P. Berrange
2378 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2379 (protected_change_watch): new function
2380 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2381 (_dbus_server_add_watch): change to work like the
2382 dbus-connection.c equivalents; like those, probably kind of
2383 busted, but should at least mostly work for now
2384 (dbus_server_disconnect): drop the lock if we were already
2385 disconnected, patch from Daniel P. Berrange
2387 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
2388 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2391 * doc/TODO: todo about unscrewing this mess
2393 2005-02-19 Colin Walters <walters@verbum.org>
2395 * glib/dbus-binding-tool-glib.c
2396 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2398 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2399 as errno.h and sys/stat.h.
2400 (lose): New function, prints error with
2402 (lose_gerror): Similar, but takes GError for message.
2403 (main): Add --output argument to specify output file to write to,
2404 instead of always printing to stdout. In this mode, determine
2405 timestamps on source files to see whether any are newer than the
2406 target file. If not, exit. Also convert a number of error
2407 messages to use lose (since it's shorter), and switch to using
2408 g_io_channel_shutdown.
2410 2005-02-19 Havoc Pennington <hp@redhat.com>
2412 * glib/dbus-gobject.c
2413 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2415 * glib/dbus-glib.c: fix doxygen warnings
2417 * glib/dbus-gparser.c (parse_annotation): error if an annotation
2418 is found on an <arg>
2420 2005-02-17 Colin Walters <walters@verbum.org>
2422 * glib/dbus-gobject.h: Don't export
2423 _dbus_glib_marshal_dbus_message_to_gvalue_array.
2425 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2426 (invoke_object_method): Handle it.
2428 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2431 2005-02-17 Colin Walters <walters@verbum.org>
2433 * bus/.cvsignore, doc/.cvsignore
2434 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2437 2005-02-17 Colin Walters <walters@verbum.org>
2439 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2440 Rename to DBUS_SERVICE_DBUS.
2441 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2442 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2443 Change the value from "org.freedesktop.Local"
2444 to "org.freedesktop.DBus.Local".
2445 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2446 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2447 DBUS_INTERFACE_INTROSPECTABLE.
2448 Change the value from "org.freedesktop.Introspectable"
2449 to "org.freedesktop.DBus.Introspectable".
2450 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2451 DBUS_INTERFACE_PROPERTIES.
2452 Change the value from "org.freedesktop.Properties"
2453 to "org.freedesktop.DBus.Properties".
2454 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2455 DBUS_INTERFACE_PEER.
2456 Change the value from "org.freedesktop.Peer"
2457 to "org.freedesktop.DBus.Peer".
2458 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
2459 DBUS_INTERFACE_LOCAL.
2460 Change the value from "org.freedesktop.Local"
2461 to "org.freedesktop.DBus.Local".
2463 All other users of those constants have been changed.
2465 * bus/driver.c (bus_driver_handle_introspect): Use constants.
2467 * glib/dbus-gobject.c (handle_introspect): Use constants.
2469 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2471 2005-02-17 Colin Walters <walters@verbum.org>
2473 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2474 (parse_node, parse_interface, parse_method, parse_signal)
2475 (parse_property, parse_annotation): Lose if we're currently in an
2477 (parse_annotation): New function.
2478 (parser_start_element, parser_end_element): Handle annotation.
2479 (parse_method, parse_interface): Remove support for c_name attribute,
2480 switch to annotations.
2482 * glib/dbus-gidl.h (interface_info_get_binding_names)
2483 (method_info_get_binding_names)
2484 (interface_info_get_binding_name, method_info_get_binding_name)
2485 (interface_info_set_binding_name, method_info_set_binding_name):
2487 (interface_info_get_annotations, method_info_get_annotations)
2488 (interface_info_get_annotation, method_info_get_annotation)
2489 (interface_info_add_annotation, method_info_add_annotation):
2492 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2494 (struct MethodInfo): Ditto.
2495 Straightfoward conversion of binding methods into annotation methods
2498 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2500 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2502 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2503 Use new annotation API.
2505 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
2508 * doc/dbus-specification.xml: Discuss introspection annotations,
2509 include list of well-known annotations.
2511 * test/glib/test-service-glib.xml: Make validate against new DTD.
2513 2005-02-17 Colin Walters <walters@verbum.org>
2515 This patch is based on initial work from
2516 Paul Kuliniewicz <kuliniew@purdue.edu>.
2518 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2519 initialization of GValue from dbus type to here.
2520 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2521 for the "glib-genmarshal" program from a DBus type.
2522 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2523 into the C name for it we use in the glib bindings.
2524 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2525 glib C type (not GValue).
2526 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2528 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2529 from dbus-gobject.c.
2531 * glib/dbus-gutils.h: Prototype it.
2533 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2534 (marshal_dbus_message_to_g_marshaller): Use new shared function
2535 dbus_glib_marshal_dbus_message_to_gvalue_array.
2537 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2538 Will be changed once we have annotations.
2540 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2541 GStaticRWLock. Callers updated.
2542 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
2543 (string_table_next): New function for iterating over zero-terminated
2545 (string_table_lookup): New function; retrieves specific entry in
2547 (get_method_data): New function; look up method data in object data chunk.
2548 (object_error_domain_prefix_from_object_info)
2549 (object_error_code_from_object_info): New functions, but not implemented yet.
2550 (method_interface_from_object_info): New function; retrieve interface name.
2551 (method_name_from_object_info): New function; retrieve method name.
2552 (method_arg_info_from_object_info): New function; retrieve argument data.
2553 (arg_iterate): New function; iterates over serialized argument data.
2554 (method_dir_signature_from_object_info): New function; returns a
2555 GString holding type signature for arguments for just one
2556 direction (input or output).
2557 (method_input_signature_from_object_info)
2558 (method_output_signature_from_object_info): New functions.
2559 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2560 converts dbus message arguments into a GValue array. Used for both
2561 signal handling and method invocation.
2562 (struct DBusGlibWriteIterfaceData): New utility structure.
2563 (write_interface): New function; generate introspection XML for
2565 (introspect_interfaces): New function; gathers all interface->methods,
2566 generates introspection XML for them.
2567 (handle_introspect): Invoke introspect_interfaces.
2568 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2569 (lookup_object_and_method): New function; examines an incoming message
2570 and attempts to match it up (via interface, method name, and argument
2571 signature) with a known object and method.
2572 (gerror_domaincode_to_dbus_error_name): New function; converts a
2573 GError domain and code into a DBus error name. Needs GError data
2574 added to object introspection to work well.
2575 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2577 (invoke_object_method): New function to invoke an object method
2578 looked up via lookup_object_and_method. Parses the incoming
2579 message, turns it into a GValue array, then invokes the marshaller
2580 specified in the DBusGMethodInfo. Creates a new message with
2581 either return values or error message as appropriate.
2582 (gobject_message_function): Invoke lookup_object_and_method and
2583 invoke_object_method.
2585 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2586 (enum DBusBindingOutputMode): New enum for binding output modes.
2587 (pretty_print): Print binding names.
2588 (dbus_binding_tool_error_quark): GError bits.
2589 (version): Fix typo.
2590 (main): Create GIOChannel for output. Parse new --mode argument,
2591 possible values are "pretty-print", "glib-server", "glib-client".
2592 Use mode to invoke appropriate function.
2594 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2596 * glib/dbus-glib-tool.h: New header, just includes GError bits
2599 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2600 maps binding style to name.
2601 (struct MethodInfo): Ditto.
2602 (get_hash_keys, get_hash_key): Utility function, returns keys for
2604 (interface_info_new, method_info_new): Initialize bindings.
2605 (interface_info_unref, method_info_unref): Destroy bindings.
2606 (method_info_get_binding_names, method_info_get_binding_name)
2607 (interface_info_get_binding_names, interface_info_get_binding_name):
2608 Functions for retrieving binding names.
2609 (method_info_set_binding_name, interface_info_set_binding_name):
2610 Functions for setting binding names.
2612 * glib/dbus-binding-tool-glib.h: New file, has prototypes
2613 for glib binding generation.
2615 * glib/dbus-binding-tool-glib.c: New file, implements server-side
2616 and client-side glib glue generation.
2618 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2619 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2622 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2623 of using GClosureMarshal directly.
2624 (struct DBusGObjectInfo): Add n_infos member.
2626 * test/glib/test-service-glib.xml: New file; contains introspection data
2627 for MyTestObject used in test-service-glib.c.
2629 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2630 (my_object_do_nothing, my_object_increment, my_object_throw_error)
2631 (my_object_uppercase, my_object_many_args): New test methods.
2632 (main): Use dbus_g_object_class_install_info to include generated object
2635 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2636 as well as client-side bindings.
2638 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2639 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2640 using both the dbus_gproxy stuff directly as well as the generated bindings.
2642 2005-02-15 Havoc Pennington <hp@redhat.com>
2644 * dbus/dbus-connection.c (dbus_connection_dispatch): always
2645 complete a pending call, don't run filters first.
2647 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2648 dbus_pending_call_steal_reply
2650 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2651 _dbus_connection_block_pending_call
2652 (dbus_pending_call_get_reply): change to steal_reply and return a
2655 * dbus/dbus-connection.c
2656 (dbus_connection_send_with_reply_and_block): port to work in terms
2658 (_dbus_connection_block_pending_call): replace block_for_reply
2661 2005-02-14 Havoc Pennington <hp@redhat.com>
2663 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2664 properly handle looking up group information by name; fix
2667 2005-02-13 Havoc Pennington <hp@redhat.com>
2669 * dbus/dbus-connection.c (dbus_connection_return_message)
2670 (dbus_connection_borrow_message): hold dispatch lock while message
2672 (_dbus_connection_block_for_reply): hold dispatch lock while we
2673 block for the reply, so nobody steals our reply
2674 (dbus_connection_pop_message): hold the dispatch lock while we
2677 2005-02-13 Havoc Pennington <hp@redhat.com>
2679 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2680 (_dbus_connection_release_dispatch)
2681 (_dbus_connection_acquire_io_path)
2682 (_dbus_connection_release_io_path): make the mutex and condvar
2683 control access to the "acquired" flag. Drop the connection lock
2684 while waiting on the condvar. Hopefully these are baby steps in
2685 roughly the right direction.
2687 2005-02-13 Havoc Pennington <hp@redhat.com>
2689 * dbus/dbus-connection.c: use separate mutexes for the condition
2690 variables; this is some kind of baseline for sanity, but the
2691 condition variables still aren't used correctly afaict
2693 2005-02-13 Havoc Pennington <hp@redhat.com>
2695 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2698 * dbus/dbus-connection.c
2699 (_dbus_connection_detach_pending_call_unlocked): add this
2701 Initial semi-correct pass through to fix thread locking; there are
2702 still some issues with the condition variable paths I'm pretty
2705 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2708 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2709 rename to add _unlocked
2710 (struct DBusConnection): move "dispatch_acquired" and
2711 "io_path_acquired" to use only one bit each.
2712 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2713 (dbus_connection_set_watch_functions): hacky fix to reentrancy
2714 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
2715 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
2716 (_dbus_connection_remove_timeout)
2717 (_dbus_connection_toggle_timeout): drop lock when calling out to
2718 user functions; done in a hacky/bad way.
2719 (_dbus_connection_send_and_unlock): add a missing unlock
2720 (_dbus_connection_block_for_reply): add a missing unlock
2722 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2723 drop lock in a hacky probably unsafe way to call out to user
2726 2005-02-12 Havoc Pennington <hp@redhat.com>
2728 * tools/dbus-tree-view.c (info_set_func_text): display more
2731 * bus/driver.c (bus_driver_handle_list_services): list the bus
2734 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2736 * glib/dbus-gidl.c (signal_info_get_n_args): new function
2737 (method_info_get_n_args): new function
2739 2005-02-12 Havoc Pennington <hp@redhat.com>
2741 * bus/driver.c (bus_driver_handle_introspect): add introspection
2744 2005-02-12 Havoc Pennington <hp@redhat.com>
2746 * bus/driver.c: put the signature of each bus driver method in the
2747 table of handlers and check it on incoming calls; this isn't
2748 really useful, but going to add introspect support in a minute.
2750 2005-02-11 Joe Shaw <joeshaw@novell.com>
2752 * mono/Connection.cs: The unpredictability of finalizers in mono
2753 prevents us from deterministically disconnecting the filters from
2754 the Service class's finalizer, so move tracking of filters and
2755 matches here. Add API for that.
2757 * mono/Service.cs: Remove the code, add code which calls the
2758 methods now on the Connection class.
2760 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
2762 * python/dbus.py (class Sender): added to support dbus signals better
2763 (Bus::add_signal_receiver): added expand_args parameter which defaults
2764 to True. When expand args is True the signal handler will pass the
2765 message arguments as parameters to the signal handler. If False
2766 revert to previous behavior where the signal handler must get the
2767 argument list from the message. This is to help port applications
2768 like HAL that have a tendancy to send variable length argument lists.
2769 self._match_rule_to_receivers is now a dict of dicts.
2770 (Bus::remove_signal_receiver): pop handler off the dict intead of
2771 removing it from a list
2772 (Bus::_signal_func): change signal handlers so that interface,
2773 signal_name, service, path and message are packed into a Sender
2774 object and that is passed to the handler. If expand_args is True
2775 extract the args list from the message and append it to the parameter
2778 * python/dbus_bindings.pyx.in (class Signature): added to support
2780 (MessageIter::__init__): changed iteration limit to match D-BUS
2781 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
2782 STRUCT and VARIENT type support
2783 (MessageIter::python_value_to_dbus_sig): made recursive to support
2785 (MessageIter::append*): added Signature, dict, tuple
2788 * python/examples/example-client.py: added examples of getting tuples
2791 * python/examples/example-service.py: added examples of sending tuples
2794 * python/examples/example-signal-recipient.py: Fixed to handle new
2795 signal callback format
2797 2005-02-10 Havoc Pennington <hp@redhat.com>
2799 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2800 (call dbus_g_proxy_add_signal)
2802 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2804 (_dbus_server_new_for_domain_socket): escape the path
2806 * dbus/dbus-address.c (dbus_address_escape_value): new
2807 (dbus_address_unescape_value): new
2808 (dbus_parse_address): unescape values
2810 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2812 * doc/dbus-specification.xml: explain how to escape values in
2815 2005-02-10 Havoc Pennington <hp@redhat.com>
2817 * dbus/dbus-message-factory.c (generate_special): modify test to
2818 avoid using a non-basic dict key
2820 * dbus/dbus-marshal-validate-util.c: add test for the below
2822 * doc/dbus-specification.xml: require that dict keys are a basic
2825 * dbus/dbus-marshal-validate.c
2826 (_dbus_validate_signature_with_reason): require that dict key is a
2829 2005-02-10 Havoc Pennington <hp@redhat.com>
2831 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2832 change to be _and_unlock instead of _unlocked
2834 * dbus/dbus-connection.c
2835 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2836 have no_update so we can find this bug quickly in future
2838 2005-02-10 Havoc Pennington <hp@redhat.com>
2840 * dbus/dbus-message-util.c (verify_test_message): tests for string
2843 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2844 support for arrays of string/signature/path
2846 2005-02-10 Joe Shaw <joeshaw@novell.com>
2848 * dbus/dbus-connection.c
2849 (_dbus_connection_queue_received_message_link,
2850 _dbus_connection_message_sent): Add the path to
2852 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2853 _dbus_connection_send_preallocated_unlocked(), updated the
2854 dispatch status, and unlocks. Fixes a bug where certain
2855 situations (like a broken pipe) could cause a Disconnect message
2856 to not be sent, tricking the bus into thinking a service was still
2857 there when the process had quit.
2858 (_dbus_connection_send_preallocated): Call
2859 _dbus_connection_send_preallocated_and_unlock().
2860 (_dbus_connection_send_and_unlock): Added. Calls
2861 _dbus_connection_send_preallocated_and_unlock().
2862 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2863 (dbus_connection_send_with_reply): Update the dispatch status and
2866 * mono/Service.cs (~Service): Added. Removes the filter so that
2867 we don't get unmanaged code calling back into a GCed delegate.
2868 (RemoveFilter); Added.
2870 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2872 * dbus/dbus-message.c (dbus_message_iter_open_container):
2873 - Removed check for iterator type being an array because
2874 get_arg_type does not work with writer iterators
2875 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2877 2005-02-07 Havoc Pennington <hp@redhat.com>
2879 * doc/dbus-specification.xml: some more language cleanups; add
2880 stuff about how to deal with invalid protocol and extension
2881 points; add _ to allowed chars in auth commands; add EXTENSION_
2884 2005-02-06 Havoc Pennington <hp@redhat.com>
2886 * s/expected/required/ in a couple places for clarity
2888 2005-02-07 Colin Walters <walters@verbum.org>
2890 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2891 sender or proposed_recipient.
2893 2005-02-06 Havoc Pennington <hp@redhat.com>
2895 * dbus/dbus-message-factory.c (generate_special): more tests
2897 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2898 array length that exceeds the maximum
2900 2005-02-05 Havoc Pennington <hp@redhat.com>
2902 * dbus/dbus-message-factory.c (generate_special): more test cases,
2905 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2906 reason why a signature was invalid
2908 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2909 skip the length of the string before we look at it in validation
2911 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2914 * dbus/dbus-message.c (_dbus_message_loader_new): default
2915 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2917 2005-02-05 Havoc Pennington <hp@redhat.com>
2919 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2920 if the signature of a variant was empty
2921 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2922 struct with no element type)
2924 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2925 mangled messages to break things
2927 2005-02-04 Havoc Pennington <hp@redhat.com>
2929 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2930 g_quark_try_string() so it actually can return 0
2931 (dbus_g_proxy_connect_signal): ditto
2933 2005-02-04 Havoc Pennington <hp@redhat.com>
2935 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2937 (tristring_from_message): assert cleanly on null path/interface
2938 (should not be possible though I decided later)
2939 (dbus_g_proxy_dispose): move proxy manager unregistration here
2940 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2941 g_return_if_fail() checks
2943 2005-02-04 Havoc Pennington <hp@redhat.com>
2945 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2947 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2948 (with some minor changes)
2950 * doc/dbus-specification.xml: add deprecated attribute to
2951 introspection format
2953 2005-01-31 Havoc Pennington <hp@redhat.com>
2955 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2956 think it's sort of right
2958 2005-01-30 Havoc Pennington <hp@redhat.com>
2960 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2962 2005-01-30 Havoc Pennington <hp@redhat.com>
2964 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2966 * autogen.sh: change to autotools 1.9
2968 * glib/dbus-gproxy.c: completely change how signals work
2969 (dbus_g_proxy_add_signal): new function to specify signature of a
2971 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2972 and g_warning if the incoming message has the wrong signature.
2974 2005-01-30 Havoc Pennington <hp@redhat.com>
2976 * tools/dbus-names-model.c (have_names_notify): fix this
2978 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2979 up the string array handling a bit
2981 2005-01-30 Havoc Pennington <hp@redhat.com>
2983 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2984 (dbus_g_pending_call_cancel): new function
2986 * dbus/dbus-glib.h: move GType decls for connection/message here;
2987 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2988 here, just kind of rationalizing how we handle all that
2990 * tools/dbus-names-model.c: new file for a tree model listing the
2993 * tools/dbus-tree-view.c (model_new): use proper typing on the
2996 2005-01-30 Havoc Pennington <hp@redhat.com>
2998 * glib/dbus-gmain.c: add a custom GSource back that just checks
2999 whether the message queue has anything in it; otherwise, there are
3000 cases where we won't see messages in the queue since there was no
3001 IO visible to the glib main loop
3003 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3004 increase default message timeout to 25 seconds
3006 2005-01-30 Havoc Pennington <hp@redhat.com>
3008 * test/glib/test-profile.c (no_bus_stop_server): remove the
3009 warning about the g_warning that I just fixed
3011 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3012 custom source, seems to be a lot easier to understand and work
3015 2005-01-30 Havoc Pennington <hp@redhat.com>
3017 I think this main loop thing is conceptually broken, but here are
3018 some band aids. I'll maybe rewrite it in a minute.
3020 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3021 custom GSource, so don't pass it in; confusing
3022 (gsource_server_finalize, gsource_connection_finalize): add
3023 finalize handlers that remove all the watches.
3025 2005-01-30 Havoc Pennington <hp@redhat.com>
3027 * glib/dbus-gobject.c (introspect_properties): fix the XML
3030 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3031 which effectively detects the use of freed messages
3033 * glib/dbus-gobject.c (handle_introspect): modify and return the
3034 reply message instead of the incoming message
3036 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3037 gee, maybe it should SEND THE XML instead of just making a string
3038 and freeing it again ;-)
3040 * tools/dbus-print-message.c (print_message): improve printing of
3043 * configure.in: add debug-glib.service to the output
3045 2005-01-30 Havoc Pennington <hp@redhat.com>
3047 dbus-viewer introspected and displayed the bus driver
3049 * dbus/dbus-object-tree.c
3050 (object_tree_test_iteration): add tests for a handler registered on "/"
3052 * dbus/dbus-object-tree.c
3053 (_dbus_decompose_path): fix to handle path "/" properly
3054 (run_decompose_tests): add tests for path decomposition
3056 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3059 * glib/dbus-gobject.c (handle_introspect): fix quotes
3061 * test/glib/run-test.sh: support launching the bus, then running
3064 * test/glib/test-service-glib.c (main): put in a trivial gobject
3065 subclass and register it on the connection
3067 * bus/driver.c (bus_driver_handle_introspect): implement
3068 introspection of the bus driver service
3070 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3071 identifiers, doctype decl
3073 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3074 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3075 returning the service unchanged.
3076 (bus_driver_handle_message): remove old check for reply_serial in
3077 method calls, now the message type deals with that
3078 (bus_driver_handle_message): handle NULL interface
3080 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3082 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3085 * tools/dbus-viewer.c: add support for introspecting a service on
3088 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3089 (dbus_g_pending_call_unref): add
3091 2005-01-29 Havoc Pennington <hp@redhat.com>
3093 * tools/dbus-tree-view.c: add support for displaying properties.
3094 (run dbus-viewer with an introspect xml file as arg, then resize
3095 the window so the tree elements show up, not sure what that is)
3097 * glib/dbus-gobject.c (handle_introspect): return
3098 org.freedesktop.Properties and org.freedesktop.Introspectable
3099 interfaces when we are introspected.
3101 * doc/dbus-specification.xml: allow empty interface name when
3104 2005-01-29 Havoc Pennington <hp@redhat.com>
3106 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3107 though it uses glib, it could be extended for any binding in
3110 * glib/dbus-gobject.c (gobject_message_function): change to the
3111 new way properties work
3113 * dbus/dbus-protocol.h: add the new interfaces
3115 * doc/dbus-specification.xml: document the introspection format,
3116 Introspectable interface, and add an org.freedesktop.Properties
3119 * glib/dbus-gparser.c: add support for a <property> element
3121 * glib/dbus-gidl.c: add PropertyInfo
3123 * glib/dbus-gobject.c (handle_introspect): put the outermost
3124 <node> outside the signal and property descriptions.
3125 (introspect_properties): export properties as <property> rather
3126 than as method calls
3128 2005-01-28 Havoc Pennington <hp@redhat.com>
3130 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3131 related to authentication protocol
3133 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3135 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3136 - BUS_ACTIVATION -> BUS_STARTER
3137 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3138 - class MessageIter (__init__): Added recursion checking
3139 so we throw a nice error instead of just disconnecting from the
3141 (get): Added arg_type parameter for recursion.
3142 Removed the nil type
3143 Added signiture type placeholder (not implemented)
3144 Added struct type placeholder (not implemented)
3145 Added varient type placeholder (not implemented)
3146 Commented out dict type for now
3147 (get_element_type): renamed from get_array_type
3148 (get_*): changed to use the dbus_message_iter_get_basic API
3149 (get_*_array): removed in favor of recursive get_array method
3150 (get_array): new recursive method which calls get to marshal
3151 the elements of the array
3152 (value_to_dbus_sig): New method returns the corrasponding
3153 dbus signiture to a python value
3154 (append): Comment out dict handling for now
3155 Handle lists with the new recursive API
3156 Comment out None handling for now
3157 (append_nil): removed
3158 (append_*): changed to use dbus_message_iter_append_basic API
3159 (append_*_array): removed in favor of recursive append_array
3161 (__str__): Make it easier to print out recursive iterators
3163 - class Message (__str__): moved type inspection to the
3164 MessageIter class' __str__ method
3165 (get_iter): Added an append parameter wich defaults to False
3166 If True use the new API's to create an append iterator
3168 * python/dbus.py: Update to use new bindings API
3169 - TYPE_ACTIVATION -> TYPE_STARTER
3170 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3171 - class ActivationBus -> class StarterBus
3172 - class RemoteObject (__call__): get an append iterator
3173 - (_dispatch_dbus_method_call): get an append iterator
3174 - class Object (emit_signal): get an append iterator
3176 * python/examples/: Fixed up the examples to work with the new API
3178 2005-01-28 Joe Shaw <joeshaw@novell.com>
3180 * configure.in: Bump version up to 0.30.
3182 * HACKING: Add a release item to bump the version number up after
3185 2005-01-28 Havoc Pennington <hp@redhat.com>
3187 * doc/dbus-specification.xml: update to describe 16-bit types and
3190 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3193 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3196 * dbus/dbus-marshal-recursive.c: implement
3198 2005-01-27 Havoc Pennington <hp@redhat.com>
3200 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3202 * configure.in: find the right type for 16 and 32 bit ints as well
3205 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3206 the 16-bit types so people don't have to stuff them in 32-bit or
3209 2005-01-27 Havoc Pennington <hp@redhat.com>
3211 * dbus/dbus-message.c: byteswap the message if you init an
3212 iterator to read/write from it
3214 * dbus/dbus-marshal-byteswap.c: new file implementing
3215 _dbus_marshal_byteswap()
3217 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3219 2005-01-26 Havoc Pennington <hp@redhat.com>
3221 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3222 build, apparently - nobody noticed?)
3224 2005-01-26 Havoc Pennington <hp@redhat.com>
3226 * dbus/dbus-marshal-recursive.h: remove todo comment
3228 2005-01-25 Joe Shaw <joeshaw@novell.com>
3230 * Land the mono binding changes to conform to the new APIs.
3232 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3233 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3235 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3236 type code as a string.
3237 (InitAppending): Rename dbus_message_append_iter_init() to
3238 dbus_message_iter_init_append().
3240 * mono/BusDriver.cs: Rename ServiceEventHandler to
3241 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3242 Rename ServiceOwnerChanged to NameOwnerChanged.
3244 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3247 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3249 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3250 dbus_bus_acquire_service() to dbus_bus_request_name().
3252 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3253 of Type.UnderlyingSystemType to get the correct element type for
3255 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3256 dbus_message_get_{element|arg}_type() instead of
3257 dbus_message_iter_init_array_iterator().
3258 (Append): Replace dbus_message_iter_append_array() with
3259 dbus_message_iter_open_container() and
3260 dbus_message_iter_close_container().
3262 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3263 types have been removed.
3265 * mono/DBusType/*.cs: Replace calls of
3266 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3267 but specify the type in the DllImport extern declaration. Ditto
3268 for dbus_message_iter_append_[type]() ->
3269 dbus_message_iter_append_basic().
3271 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3272 NameOwnerChangedHandler.
3274 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3276 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3277 - get_base_service -> get_unique_name
3278 - bus_get_base_service -> bus_get_unique_name
3279 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3280 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3281 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3282 - bus_activate_service -> bus_start_service_by_name
3283 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3284 - bus_acquire_service -> bus_request_name
3285 - dbus_bus_acquire_service -> dbus_bus_request_name
3286 - bus_service_exists -> bus_name_has_owner
3287 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3289 * python/dbus.py: Rename of methods
3290 - activate_service -> start_service_by_name
3291 - bus_acquire_service -> bus_request_name
3292 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3293 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3296 2005-01-24 Joe Shaw <joeshaw@novell.com>
3298 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3299 signature for the method that can't be found.
3301 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3302 the message has any arguments, we need to call
3303 _dbus_type_reader_get_current_type(), not
3304 _dbus_type_reader_has_next().
3306 2005-01-24 Havoc Pennington <hp@redhat.com>
3308 * dbus/dbus-message-factory.c: more testing of message validation
3310 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3313 2005-01-23 Havoc Pennington <hp@redhat.com>
3315 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3316 get this all working, not many tests in the framework yet though
3318 2005-01-22 Havoc Pennington <hp@redhat.com>
3320 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3321 tutorial, based on work from David Wheeler.
3323 2005-01-21 Havoc Pennington <hp@redhat.com>
3325 * dbus/dbus-bus.c: add more return_if_fail checks
3327 * dbus/dbus-message.c (load_message): have the "no validation"
3328 mode (have to edit the code to toggle the mode for now though)
3330 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3331 skips all validation; I want to use this at least for benchmark
3332 baseline, I'm not sure if it should be a publicly-available switch.
3334 2005-01-21 Havoc Pennington <hp@redhat.com>
3336 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3337 toplevel doxygen group as the low-level API stuff
3339 * dbus/dbus.h: note that libdbus is the low-level API
3341 2005-01-20 Havoc Pennington <hp@redhat.com>
3343 * update-dbus-docs.sh: script to update docs on the web site, only
3344 works for me though. neener.
3346 2005-01-20 Havoc Pennington <hp@redhat.com>
3348 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3349 code can reveal bugs in it
3351 2005-01-20 Havoc Pennington <hp@redhat.com>
3353 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3354 select() version, patches from Tor Lillqvist
3356 2005-01-20 Havoc Pennington <hp@redhat.com>
3358 * doc/dbus-tutorial.xml: replace > with >
3360 * bus/services.c (bus_registry_acquire_service): validate the name
3361 and return a better error if it's no good.
3363 * doc/dbus-specification.xml: note NO_AUTO_START change
3365 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3366 from AUTO_START, we're toggling the default
3368 * bus/dispatch.c: adapt the tests to change of auto-start default
3370 2005-01-18 Havoc Pennington <hp@redhat.com>
3372 * rename dbus-daemon-1 to dbus-daemon throughout
3374 2005-01-18 Havoc Pennington <hp@redhat.com>
3376 * Throughout, grand renaming to strip out the use of "service",
3377 just say "name" instead (or "bus name" when ambiguous). Did not
3378 change the internal code of the message bus itself, only the
3379 programmer-facing API and messages.
3381 * doc/dbus-specification.xml: further update the message bus section
3383 * bus/config-parser.c (all_are_equiv): fix bug using freed string
3386 2005-01-17 Havoc Pennington <hp@redhat.com>
3388 * dbus/dbus-types.h: remove 16-bit types since we don't use them
3391 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3392 "invalid name character" not only non-ASCII
3394 * doc/dbus-specification.xml: further update spec, message bus
3395 parts are still out-of-date but the marshaling etc. stuff is now
3398 2005-01-17 Havoc Pennington <hp@redhat.com>
3400 * doc/dbus-specification.xml: partially update spec
3402 2005-01-17 Havoc Pennington <hp@redhat.com>
3404 * Throughout, align variant bodies according to the contained
3405 type, rather than always to 8. Should save a fair bit of space in
3408 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3409 fix handling of case where p == end
3411 * doc/TODO: remove the dbus_bool_t item and variant alignment items
3413 2005-01-17 Havoc Pennington <hp@redhat.com>
3415 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3417 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3418 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
3419 are marshaling/unmarshaling a boolean.
3421 2005-01-16 Havoc Pennington <hp@redhat.com>
3423 This is about it on what can be disabled/deleted from libdbus
3424 easily, back below 150K anyhow. Deeper cuts are more work than
3425 just turning the code off as I've done here.
3427 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3428 signed int convenience funcs
3430 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3433 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3434 things out of libdbus
3436 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3438 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3439 tests-enabled-only, though it should probably be deleted)
3441 * dbus/dbus-message-util.c: same stuff
3443 * dbus/dbus-auth-util.c: same stuff
3445 2005-01-16 Havoc Pennington <hp@redhat.com>
3447 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3449 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3450 way for stripping down dbus-userdb.c stuff included in libdbus.
3451 Rename _dbus_parse_uid for consistency.
3453 2005-01-16 Havoc Pennington <hp@redhat.com>
3455 * dbus/dbus-internals.c (_dbus_real_assert): print the function
3456 name the assertion failed in
3458 * dbus/dbus-internals.h (_dbus_return_if_fail)
3459 (_dbus_return_val_if_fail): assert that the name of the function
3460 containing the check doesn't start with '_', since we only want to
3461 use checks on public functions
3463 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3464 checks to assertions
3466 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3467 change checks to asserts for private function
3469 * dbus/dbus-message.c (_dbus_message_set_serial): checks
3470 to asserts for private function
3472 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3473 broken assertion that was breaking make check
3474 (_dbus_type_reader_array_is_empty): remove this rather than fix
3475 it, was only used in assertions
3477 2005-01-16 Havoc Pennington <hp@redhat.com>
3479 * test/unused-code-gc.py: hacky script to find code that's used
3480 only by the bus (not libdbus) or used only by tests or not used at
3481 all. It has some false alarms, but looks like we can clean up a
3482 lot of size from libdbus.
3484 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3485 dbus/Makefile.am: initially move 10K of binary size out of libdbus
3487 2005-01-16 Havoc Pennington <hp@redhat.com>
3489 * Add and fix docs according to Doxygen warnings throughout
3492 * dbus/dbus-marshal-recursive.c
3493 (_dbus_type_reader_array_is_empty): change this to just call
3494 array_reader_get_array_len() and make it static
3496 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3498 (dbus_message_iter_init_append): rename from append_iter_init
3500 * dbus/dbus-marshal-recursive.c
3501 (_dbus_type_reader_get_element_type): rename from
3502 _dbus_type_reader_get_array_type
3504 2005-01-15 Havoc Pennington <hp@redhat.com>
3506 * test/glib/test-profile.c (with_bus_server_filter): fix crash
3508 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3509 when DBUS_DISABLE_ASSERT
3510 (_dbus_marshal_set_basic): be sure we align for the string length
3512 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3515 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3516 inline macro version
3517 (_dbus_string_set_byte): provide inline macro version
3519 2005-01-15 Havoc Pennington <hp@redhat.com>
3521 * Land the new message args API and type system.
3523 This patch is huge, but the public API change is not
3524 really large. The set of D-BUS types has changed somewhat,
3525 and the arg "getters" are more geared toward language bindings;
3526 they don't make a copy, etc.
3528 There are also some known issues. See these emails for details
3530 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3531 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3533 * dbus/dbus-marshal-*: all the new stuff
3535 * dbus/dbus-message.c: basically rewritten
3537 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3538 freed blocks to be all non-nul bytes so using freed memory is less
3539 likely to work right
3541 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3542 DBUS_FAIL_MALLOC=N environment variable, so you can do
3543 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3544 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3547 * qt/message.cpp: port to the new message args API
3548 (operator<<): use str.utf8() rather than str.unicode()
3549 (pretty sure this is right from the Qt docs?)
3551 * glib/dbus-gvalue.c: port to the new message args API
3553 * bus/dispatch.c, bus/driver.c: port to the new message args API
3555 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3556 "locked" flag to TRUE and align_offset to 0; I guess we never
3557 looked at these anyhow, but seems cleaner.
3559 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3560 move allocation padding macro to this header; use it to implement
3561 (_DBUS_STRING_STATIC): ability to declare a static string.
3563 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3564 change to return TRUE if the interface is not set.
3566 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3567 to dbus-marshal-validate.[hc]
3569 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3572 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3573 to dbus-marshal-*.[hc]
3575 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3576 function here from dbus-marshal.c
3578 2005-01-12 Joe Shaw <joeshaw@novell.com>
3580 * NEWS: Update for 0.23.
3582 * configure.in: Release 0.23.
3584 2005-01-12 Joe Shaw <joeshaw@novell.com>
3586 * mono/Makefile.am, mono/example/Makefile.am: Always build the
3587 dbus DLL with --debug. Clean up after the .mdb files this leaves
3590 * mono/doc/Makefile.am: Need to uninstall the docs on "make
3593 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3594 is an enum, get the enum's underlying type. Another mono
3597 2005-01-11 Joe Shaw <joeshaw@novell.com>
3599 Patch from Sjoerd Simons <sjoerd@luon.net>
3601 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3602 DESTDIR. It breaks stuff.
3604 2005-01-11 Joe Shaw <joeshaw@novell.com>
3606 Patch from Tambet Ingo <tambet@ximian.com>
3608 * mono/DBusType/Array.cs (Get): Get the underlying element type by
3609 calling type.GetElementType(). The code previously depended on
3610 broken Mono behavior, which was fixed in Mono 1.1.3.
3612 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3613 Activator.CreateInstance() so that the class's constructor is
3614 called with the right parameters.
3616 2005-01-11 Joe Shaw <joeshaw@novell.com>
3618 Patch from Timo Teräs <ext-timo.teras@nokia.com>
3620 * dbus/dbus-connection.c
3621 (_dbus_connection_queue_received_message_link): Call
3622 _dbus_connection_remove_timeout() instead of the _locked()
3623 variant, since it's always called from
3624 _dbus_connection_handle_watch(), which handles the locking.
3625 Removed the _locked() variant since it's no longer used.
3627 2005-01-03 Havoc Pennington <hp@redhat.com>
3629 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3632 2004-12-26 Havoc Pennington <hp@redhat.com>
3634 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3636 2005-01-03 Havoc Pennington <hp@redhat.com>
3638 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3641 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3643 2005-01-02 Havoc Pennington <hp@redhat.com>
3645 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3647 2005-01-01 Havoc Pennington <hp@redhat.com>
3649 * configure.in: add -Wfloat-equal
3651 2005-01-01 Havoc Pennington <hp@redhat.com>
3653 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
3654 for a variety of reasons '==' doesn't do this.
3656 2004-12-31 Havoc Pennington <hp@redhat.com>
3658 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3659 I keep wishing I had
3661 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3663 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3665 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3667 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3668 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3669 dbus-protocol.h. Because they are defines and not enums they are not
3672 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
3674 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3675 dbus_bus_activate_service
3677 * python/dbus.py (Bus.activate_service): activate a service on the
3680 2004-12-24 Havoc Pennington <hp@redhat.com>
3682 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3683 file format has also changed and I haven't adapted to that yet
3685 * Makefile.am: load .gcno files from latest gcc
3687 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
3688 * Patch from Rob Taylor <robtaylor@fastmail.fm>
3690 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3693 * python/dbus.py (get_unix_user): Added binding to
3694 call dbus_bindings.bus_get_unix_user
3696 * python/extract.py: Modified the proto_pat regex to
3697 handle unsigned long
3699 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3701 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3702 better POSIX compliance.
3704 2004-12-19 Havoc Pennington <hp@redhat.com>
3706 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
3707 (_dbus_string_insert_8_aligned): new functions
3709 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3711 2004-12-18 Havoc Pennington <hp@redhat.com>
3713 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3716 * dbus/dbus-message.c: fix a comment, and add a still-unused
3717 not-implemented function
3719 * dbus/dbus-marshal.h: fix comment
3721 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3723 2004-12-17 Joe Shaw <joeshaw@novell.com>
3725 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3726 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3727 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3728 Type.UnderlyingSystemType to get the actual system type
3729 underneath. This code previously depended on the broken Mono
3730 behavior, which was fixed in 1.1.3.
3732 2004-11-27 Havoc Pennington <hp@redhat.com>
3734 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3736 (_dbus_string_get_const_data): inline when asserts are disabled
3738 * dbus/dbus-message.c: record the _dbus_current_generation of
3739 creation so we can complain if dbus_shutdown() is used improperly.
3740 Do this only if checks are enabled.
3742 * dbus/dbus-connection.c: ditto
3744 2004-11-26 Havoc Pennington <hp@redhat.com>
3746 * test/glib/test-profile.c: add with_bus mode to profile echoes
3747 that go through the bus.
3749 * test/glib/run-test.sh: add ability to run test-profile
3751 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3754 2004-11-26 Havoc Pennington <hp@redhat.com>
3756 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3757 thing was implemented
3759 2004-11-26 Havoc Pennington <hp@redhat.com>
3761 * test/glib/test-profile.c: tweak a bit, add support for some
3762 made-up minimal malloc overhead with plain sockets, since in
3763 real life some sort of buffers are unavoidable thus we could
3764 count them in the theoretical best case
3766 2004-11-26 Havoc Pennington <hp@redhat.com>
3768 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3769 where I was trying to cache one too many messages
3771 2004-11-26 Havoc Pennington <hp@redhat.com>
3773 * dbus/dbus-message.c: reimplement message cache as an array which
3774 makes the cache about twice as fast and saves maybe 1.5% overall
3776 2004-11-26 Havoc Pennington <hp@redhat.com>
3778 * dbus/dbus-threads.c (init_global_locks): forgot to put the
3779 message cache lock here
3781 2004-11-26 Havoc Pennington <hp@redhat.com>
3783 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3784 the "char byte_order" next to each other to save 4 bytes
3785 (dbus_message_new_empty_header): reduce preallocation, since the
3786 message cache should achieve a similar effect
3787 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3788 message cache that keeps a few DBusMessage around in a pool,
3789 another 8% speedup or so.
3791 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3793 2004-11-25 Havoc Pennington <hp@redhat.com>
3795 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3796 to write, without reading or blocking, try it before the poll()
3797 and skip the poll() if nothing remains to write. This is about a
3798 3% speedup in the echo client/server
3800 2004-11-25 Havoc Pennington <hp@redhat.com>
3802 The primary change here is to always write() once before adding
3803 the write watch, which gives us about a 10% performance increase.
3805 * dbus/dbus-transport-unix.c: a number of modifications to cope
3806 with removing messages_pending
3807 (check_write_watch): properly handle
3808 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3809 messages_pending stuff
3810 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3812 (unix_handle_watch): after writing, see if the write watch can be
3814 (unix_do_iteration): assert that write_watch/read_watch are
3815 non-NULL rather than testing that they aren't, since they
3816 aren't allowed to be NULL. check_write_watch() at the end so
3817 we add the watch if we did not finish writing (e.g. got EAGAIN)
3819 * dbus/dbus-transport-protected.h: remove messages_pending call,
3820 since it resulted in too much inefficient watch adding/removing;
3821 instead we now require that the transport user does an iteration
3822 after queueing outgoing messages, and after trying the first
3823 write() we add a write watch if we got EAGAIN or exceeded our
3824 max bytes to write per iteration setting
3826 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3829 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3830 freed and then accessed, valgrind flagged this bug, fix it
3832 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3833 as the last valid field plus 1, where really it is equal to the
3834 last valid field. Corrects some message corruption issues.
3836 * dbus/dbus-mainloop.c: verbosity changes
3838 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3839 instead of aborting in one of the test codepaths
3841 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3842 caused not printing the pid ever again if a verbose was missing
3843 the newline at the end
3844 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3846 * dbus/dbus-connection.c: verbosity changes;
3847 (dbus_connection_has_messages_to_send): new function
3848 (_dbus_connection_message_sent): no longer call transport->messages_pending
3849 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3850 try to write() immediately, so we can avoid the write watch. This
3851 is the core purpose of this patchset
3852 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3853 dump the outgoing message queue, so nobody will get confused
3854 trying to send them or thinking stuff is pending to be sent
3856 * bus/test.c: verbosity changes
3858 * bus/driver.c: verbosity/assertion changes
3860 * bus/dispatch.c: a bunch of little tweaks to get it working again
3861 because this patchset changes when/where you need to block.
3863 2004-11-23 Havoc Pennington <hp@redhat.com>
3865 * test/glib/test-profile.c: modify to accept a plain_sockets
3866 argument in which case it will bench plain sockets instead of
3867 libdbus, for comparison purposes.
3869 2004-11-22 Havoc Pennington <hp@redhat.com>
3871 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3872 threads for more time, so sysprof can get a grip on it.
3874 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3877 2004-11-13 Havoc Pennington <hp@redhat.com>
3879 * test/glib/test-profile.c: fix this thing up a bit
3881 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3882 preallocation sizes by a fair bit; not sure if this will be an
3883 overall performance win or not, but it does reduce reallocs.
3885 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3886 the test hack that forced constant realloc if asserts are
3887 disabled, so we can profile sanely. Sprinkle in some
3888 _DBUS_UNLIKELY() which are probably pointless, but before I
3889 noticed the real performance problem I put them in.
3890 (_dbus_string_validate_utf8): micro-optimize this thing a little
3891 bit, though callgrind says it didn't help; then special-case
3892 ascii, which did help a lot; then be sure we detect nul bytes as
3893 invalid, which is a bugfix.
3894 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3895 superstition; use memset to nul the padding instead of a manual
3897 (_dbus_string_get_length): inline this as a
3898 macro; it showed up in the profile because it's used for loop
3901 2004-11-10 Colin Walters <walters@verbum.org>
3903 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3906 2004-11-09 Colin Walters <walters@verbum.org>
3908 * dbus/dbus-string.c (_dbus_string_get_length): New
3909 function, writes DBusString to C buffer.
3911 * dbus/dbus-string.h: Prototype it.
3913 * dbus/dbus-message.c (dbus_message_type_to_string): New
3914 function, converts message type into C string.
3916 * dbus/dbus-message.h: Prototype it.
3918 * bus/selinux.c (bus_selinux_check): Take source pid,
3919 target pid, and audit data. Pass audit data to
3921 (log_audit_callback): New function, appends extra
3923 (bus_selinux_allows_acquire_service): Also take
3924 service name, add it to audit data.
3925 (bus_selinux_allows_send): Also take message
3926 type, interface, method member, error name,
3927 and destination, and add them to audit data.
3928 (log_cb): Initialize func_audit.
3930 * bus/selinux.h (bus_selinux_allows_acquire_service)
3931 (bus_selinux_allows_send): Update prototypes
3933 * bus/services.c (bus_registry_acquire_service): Pass
3934 service name to bus_selinux_allows_acquire_service.
3936 * bus/bus.c (bus_context_check_security_policy): Pass
3937 additional audit data. Move assignment of dest
3940 2004-11-07 Colin Walters <walters@verbum.org>
3942 * dbus/dbus-transport-unix.c (do_authentication): Always
3943 initialize auth_completed.
3945 2004-11-07 Colin Walters <walters@verbum.org>
3947 * bus/bus.c (load_config): Break into three
3948 separate functions: process_config_first_time_only,
3949 process_config_every_time, and process_config_postinit.
3950 (process_config_every_time): Move call of
3951 bus_registry_set_service_context_table into
3952 process_config_postinit.
3953 (process_config_postinit): New function, does
3954 any processing that needs to happen late
3955 in initialization (and also on reload).
3956 (bus_context_new): Instead of calling load_config,
3957 open config parser here and call process_config_first_time_only
3958 and process_config_every_time directly. Later, after
3959 we have forked but before changing UID,
3960 invoke bus_selinux_full_init, and then call
3961 process_config_postinit.
3962 (bus_context_reload_config): As in bus_context_new,
3963 load parse file inside here, and call process_config_every_time
3964 and process_config_postinit.
3966 * bus/services.h, bus/services.c
3967 (bus_registry_set_service_context_table): Rename
3968 from bus_registry_set_sid_table. Take string hash from config
3969 parser, and convert them here into SIDs.
3971 * bus/config-parser.c (struct BusConfigParser): Have
3972 config parser only store a mapping of service->context
3974 (merge_service_context_hash): New function.
3975 (merge_included): Merge context string hashes instead
3976 of using bus_selinux_id_table_union.
3977 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3978 simply create a new string hash.
3979 (bus_config_parser_unref): Unref it.
3980 (start_selinux_child): Simply insert strings into hash,
3981 don't call bus_selinux_id_table_copy_over.
3983 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3984 (bus_selinux_id_table_copy_over): Delete.
3986 2004-11-03 Colin Walters <walters@verbum.org>
3988 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3991 2004-11-03 Colin Walters <walters@verbum.org>
3993 * bus/test-main.c (test_pre_hook): Fix test logic,
3994 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3996 2004-11-02 Colin Walters <walters@redhat.com>
3998 * bus/selinux.c (bus_selinux_init): Split into two functions,
3999 bus_selinux_pre_init and bus_selinux_post_init.
4000 (bus_selinux_pre_init): Just determine whether SELinux is
4002 (bus_selinux_post_init): Do everything else.
4004 * bus/main.c (main): Call bus_selinux_pre_init before parsing
4005 config file, and bus_selinux_post_init after. This ensures that
4006 we don't lose the policyreload notification thread that
4007 bus_selinux_init created before forking previously.
4009 * bus/test-main.c (test_pre_hook): Update for split.
4011 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
4013 Patch from Johan Fischer <linux@fischaz.com>
4015 * mono/doc/Makefile.am (install-data-local): Added directory
4018 2004-10-29 Colin Walters <walters@redhat.com>
4020 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4021 parameter for fd to write pid to.
4023 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4025 * bus/bus.c (bus_context_new): Pass print_pid_fd
4026 to _dbus_become_daemon (bug #1720)
4028 2004-10-29 Colin Walters <walters@redhat.com>
4030 Patch from Ed Catmur <ed@catmur.co.uk>
4032 * mono/doc/Makefile.am (install-data-local): Handle
4035 2004-10-29 Colin Walters <walters@redhat.com>
4037 * bus/.cvsignore, qt/.cvsignore: Update.
4039 2004-10-29 Colin Walters <walters@redhat.com>
4041 Patch from Kristof Vansant <de_lupus@pandora.be>
4043 * configure.in: Detect Slackware.
4044 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4045 * bus/rc.messagebus.in: New file.
4047 2004-10-29 Colin Walters <walters@redhat.com>
4049 * tools/dbus-monitor.c (filter_func): Return
4050 DBUS_HANDLER_RESULT_HANDLED in filter function
4052 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4054 2004-10-29 Colin Walters <walters@redhat.com>
4056 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4058 * bus/services.c (bus_registry_acquire_service):
4059 Correctly retrieve service name from DBusString
4062 2004-10-29 Colin Walters <walters@redhat.com>
4064 * dbus/dbus-glib.h: Update documentation to not
4065 refer to internal APIs.
4067 2004-10-27 Joe Shaw <joeshaw@novell.com>
4069 * mono/Arguments.cs (GetDBusTypeConstructor):
4070 type.UnderlyingSystemType will return "System.Byte" if you do it
4071 on "byte[]", which is not what we want. So check the type.IsArray
4072 property and use System.Array instead.
4074 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4076 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4077 the DBusUserInfo structure since this is passed into the function.
4078 This would cause a double free when the function that allocated
4079 the structure would try to free it when an error occured.
4081 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4082 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4083 for service activation to avoid 32bit/64bit parallel install issues
4085 2004-10-21 Colin Walters <walters@verbum.org>
4087 * AUTHORS: Fix my email address, the @gnu.org one
4088 has been bouncing for some time. Also add J5.
4090 2004-10-21 Colin Walters <walters@verbum.org>
4092 * dbus/dbus-transport-unix.c (do_authentication): Return
4093 authentication status to callers.
4094 (unix_handle_watch): If we completed authentication this round,
4095 don't do another read. Instead wait until the next iteration,
4096 after we've read any pending data in the auth buffer.
4097 (unix_do_iteration): Ditto.
4098 (unix_handle_watch): Updated for new do_authentication prototype.
4100 2004-10-18 Colin Walters <walters@verbum.org>
4102 * bus/selinux.c (bus_selinux_enabled): Handle
4103 --disable-selinux case.
4105 2004-10-18 Colin Walters <walters@verbum.org>
4107 * bus/selinux.h: Add bus_selinux_enabled.
4109 * bus/selinux.c (bus_selinux_enabled): Implement it.
4111 * bus/config-parser.c (struct include): Add
4112 if_selinux_enabled member.
4113 (start_busconfig_child): Parse if_selinux_enabled
4114 attribute for include.
4115 (bus_config_parser_content): Handle it.
4117 * bus/session.conf.in, bus/system.conf.in: Add
4118 inclusion of context mapping to default config files;
4119 conditional on SELinux being enabled.
4121 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4123 * test/data/invalid-config-files/badselinux-1.conf,
4124 test/data/invalid-config-files/badselinux-2.conf:
4125 Test files for bad syntax.
4127 2004-10-17 Colin Walters <walters@verbum.org>
4129 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4130 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4131 format specifier mismatches.
4133 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4135 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4138 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4139 pointer (bug #1540, Leonardo Boiko).
4141 2004-09-28 Jon Trowbridge <trow@ximian.com>
4143 * mono/BusDriver.cs: Changed BusDriver struct to remove
4144 the ServiceCreated and ServiceDeleted events and replace them
4145 with the new ServiceOwnerChanged event.
4147 * mono/example/BusListener.cs: Added a new example program,
4148 which listens for and reports any ServiceOwnerChanged events
4151 * mono/example/Makefile.am (DESTDIR): Build changes for the
4152 new BusListener.cs example.
4154 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4156 * bus/signals.c (bus_match_rule_parse): validate the components of
4157 match rules (bug #1439).
4159 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4161 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4163 * doc/dbus-specification.xml: document ServiceOwnerChanged
4166 * bus/driver.c, bus/driver.h, bus/services.c: Use
4167 ServiceOwnerChanged signal instead of ServiceCreated and
4170 * bus/dispatch.c: update testcase for the new signal.
4172 2004-09-20 Jon Trowbridge <trow@ximian.com>
4174 Patch from Nat Friedman <nat@novell.com>
4176 * mono/Makefile.am: A number of small build fixes to allow "make
4177 distcheck" to succeed.
4179 * mono/example/Makefile.am: "make distcheck" fixes.
4181 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4184 * test/Makefile.am: "make distcheck" fixes.
4186 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4188 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4190 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4192 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4193 messages after the first one (bug #1389).
4195 * bus/dispatch.c (check_double_hello_message): add a test case for
4196 the double hello message bug.
4197 (check_existent_service_activation): fix check of spawning error.
4199 2004-09-16 David Zeuthen <david@fubar.dk>
4201 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4203 2004-09-12 David Zeuthen <david@fubar.dk>
4205 Patch from Kay Sievers <kay.sievers@vrfy.org>
4207 * bus/bus.c (bus_context_new):
4209 * bus/main.c (usage)
4211 Add commandline option --nofork to override configuration file
4214 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4216 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4217 compilers don't like it (bug #974).
4219 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4221 * qt/connection.*: Applied patch by Jérôme Lodewyck
4222 <lodewyck@clipper.ens.fr> to integrate an existing
4223 connection into the Qt eventloop
4225 2004-08-30 Jon Trowbridge <trow@ximian.com>
4227 * mono/BusDriver.cs: Added. This is a class for interacting with
4228 the org.freedesktop.DBus service.
4230 * mono/Message.cs: Added a mechanism to expose the message that is
4231 currently being dispatched via the static Message.Current
4232 property. Added Message.Sender and Message.Destination
4235 * mono/Handler.cs: Expose the dispatched message via
4236 Message.Current when handling method calls.
4238 * mono/Service.cs: Expose the dispatched message via
4239 Message.Current when handling signal emissions.
4241 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4242 Connection.BaseService property.
4244 2004-08-28 Havoc Pennington <hp@redhat.com>
4246 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4248 More fixes from Steve Grubb
4250 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4251 (_dbus_listen_tcp_socket): fix fd leak
4253 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4254 EINTR to a bit lower in the code
4256 2004-08-26 Jon Trowbridge <trow@ximian.com>
4258 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4259 TRUE if we are inquiring about the existence of the built-in
4260 org.freedesktop.DBus service.
4262 2004-08-25 John Palmieri <johnp@redhat.com>
4263 * bus/config-parser.c:
4264 (struct PolicyType): Add POLICY_CONSOLE
4265 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4266 (start_busconfig_child): Sets up console element when
4267 <policy at_console=""> is encountered in a policy file
4268 (append_rule_from_element): Convert console elements to console
4272 (bus_policy_create_client_policy): Add console rules to the client
4273 policy based on if the client is at the console
4274 (bus_policy_append_console_rule): New function for adding a
4275 console rule to a policy
4276 (bus_policy_merge): Handle console rule merging
4278 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4279 where we check for console user files
4281 * dbus/dbus-sysdeps.c:
4282 (_dbus_file_exists): New function which checks if the given
4284 (_dbus_user_at_console): New function which does the system
4285 specific process of checking if the user is at the console
4287 * dbus/dbus-userdb.c:
4288 (_dbus_is_console_user): New function converts a UID to user name
4289 and then calls the system specific _dbus_user_at_console to
4290 see if the user is at the console and therefor a console user
4292 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4294 * bus/config-parser.c (set_limit):
4295 * bus/dbus-daemon-1.1.in:
4296 * test/data/valid-config-files/many-rules.conf: set the
4297 max_match_rules_per_connection limt from the config file.
4299 * doc/busconfig.dtd: update the DTD.
4301 * bus/driver.c: remove some unused variables.
4303 2004-08-24 Mikael Hallendal <micke@imendio.com>
4305 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4306 it's been replaced by dbus_g_bus_get
4308 2004-08-23 Colin Walters <walters@redhat.com>
4310 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4312 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4314 * bus/selinux.c: Create a thread for policy reload notification.
4315 (bus_selinux_get_policy_root): Implement.
4317 * bus/config-parser.c (start_busconfig_child)
4318 (bus_config_parser_content): Support SELinux-root relative
4321 * configure.in <HAVE_SELINUX>: Add -lpthread.
4323 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4324 (test_post_hook): Move memory checking into here.
4325 (test_pre_hook, test_post_hook): Move SELinux checks in
4326 here, but conditional on a DBUS_TEST_SELINUX environment
4327 variable. Unfortunately we can't run the SELinux checks
4328 as a normal user, since they won't have any permissions
4329 for /selinux. So this will have to be tested manually
4330 for now, until we have virtualization for most of
4333 2004-08-23 Havoc Pennington <hp@redhat.com>
4335 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4336 drop supplementary groups, suggested by Steve Grubb
4338 2004-08-20 Colin Walters <walters@redhat.com>
4340 * bus/config-parser.c (start_busconfig_child): Remove some unused
4343 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4346 2004-08-17 Joe Shaw <joeshaw@novell.com>
4348 * configure.in: If --enable-mono is passed in, if we can't find
4351 * mono/Makefile.am: Use /gacutil to install assemblies into the
4354 2004-08-12 Havoc Pennington <hp@redhat.com>
4356 * NEWS: update for 0.22
4358 * configure.in: release 0.22
4360 2004-08-11 Colin Walters <walters@redhat.com>
4362 * tools/dbus-send.c (main, usage): Add --reply-timeout
4365 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
4367 * bus/bus.c (process_config_first_time_only): get rid of an unused
4368 DBusError that was causing a memoy leak (bug #989).
4370 * dbus/dbus-keyring.c, dbus/dbus-message.c:
4371 fix compilation on Solaris/Forte C (bug #974)
4373 * bus/main.c (main): plug two minuscule memleaks.
4375 2004-08-10 Havoc Pennington <hp@redhat.com>
4377 * doc/dbus-tutorial.xml: add some more info on GLib bindings
4379 2004-08-09 Havoc Pennington <hp@redhat.com>
4381 * COPYING: switch to Academic Free License version 2.1 instead of
4382 2.0, to resolve complaints about patent termination clause.
4384 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
4386 * README: added documentation for the --enable-python
4389 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4391 * bus/config-parser.c (bus_config_parser_new): fix an invalid
4392 _unref in the SELinux support.
4394 * doc/busconfig.dtd: update DTD for SELinux support.
4396 * bus/config-loader-libxml.c: fix error handler and parser
4397 initialisation/cleanup. OOM test now works with libxml2 HEAD.
4399 * configure.in: remove the warning about libxml2.
4401 * dbus/dbus-bus.c: silence doxygen warning.
4403 2004-07-31 Colin Walters <walters@redhat.com>
4405 * configure.in: Move #error in SELinux check to its own line.
4407 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4409 * dbus/dbus-internals.h (_DBUS_SET_OOM):
4410 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4413 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4414 broken by the change in the _SET_OOM macros.
4416 2004-07-31 Colin Walters <walters@redhat.com>
4418 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4421 2004-07-31 Colin Walters <walters@redhat.com>
4423 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4424 to correctly detect DBUS__ACQUIRE_SVC. Also add an
4427 2004-07-24 Havoc Pennington <hp@redhat.com>
4429 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4431 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4434 * configure.in: add --enable-selinux
4436 * bus/policy.c (bus_policy_merge): add FIXME to a comment
4438 * bus/main.c (main): initialize and shut down selinux
4440 * bus/connection.c: store SELinux ID on each connection, to avoid
4441 repeated getting of the string context and converting it into
4444 * bus/bus.c (bus_context_get_policy): new accessor, though it
4446 (bus_context_check_security_policy): check whether the security
4447 context of sender connection can send to the security context of
4448 recipient connection
4450 * bus/config-parser.c: add parsing for <selinux> and <associate>
4452 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4453 implement dbus_connection_get_unix_fd()
4455 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4456 function, used by the selinux stuff
4458 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
4460 * bus/config-loader-libxml.c: complete the implementation of
4461 libxml backend for config file loader. Doesn't work with full OOM
4464 * configure.in: change error when selecting libxml into a warning.
4466 * test/data/invalid-config-files: add two non-well-formed XML
4469 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4471 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4472 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4473 be necessary to read all the buffer. (bug #894)
4475 * bus/activation.c (bus_activation_activate_service): fix a
4476 potential assertion failure (bug #896). Small optimization in the
4477 case of auto-activation messages.
4479 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4480 add test case for byte-through-vararg bug (#901). patch by Kimmo
4483 2004-07-28 Anders Carlsson <andersca@gnome.org>
4486 * python/dbus_bindings.pyx.in:
4487 Add dbus.init_gthreads (), allow emit_signal to pass
4488 arguments to the signal.
4490 2004-07-24 Havoc Pennington <hp@redhat.com>
4492 * AUTHORS: add some people, not really comprehensively, let me
4493 know if I missed you
4495 2004-07-24 Havoc Pennington <hp@redhat.com>
4497 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4500 * test/Makefile.am (DIST_SUBDIRS): here also
4502 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4504 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4505 breaking build on Solaris, reported by Farhad Saberi on the ML.
4507 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4508 va_arg invocation to account for integer promotion in the case of
4509 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4511 * bus/services.c (bus_service_remove_owner): fix bug #902, use
4512 _dbus_list_get_first_link, not _dbus_list_get_first.
4514 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4516 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4517 handler functions so that the asserts in _dbus_object_subtree_unref
4520 * dbus/dbus-transport-unix.c (do_reading):
4521 _dbus_transport_queue_messages return value is of type
4522 dbus_bool_t, not DBusDispatchStatus.
4524 2004-07-19 David Zeuthen <david@fubar.dk>
4526 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4529 (check_get_connection_unix_user): Debug says GetProperty; but the
4530 method is called GetConnectionUnixUser
4531 (check_get_connection_unix_process_id): New function
4532 (bus_dispatch_test): Actually call check_get_connection_unix_user();
4533 also call check_get_connection_unix_process_id()
4536 (bus_driver_handle_get_connection_unix_process_id): New function,
4537 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4541 (handle_server_data_external_mech): Set pid from the credentials
4542 obtained from the socket
4544 * dbus/dbus-connection.c:
4545 (dbus_connection_get_unix_process_id): New function
4547 * dbus/dbus-connection.h:
4548 Add prototype for dbus_connection_get_unix_process_id
4550 * dbus/dbus-transport.c:
4551 (_dbus_transport_get_unix_process_id): New function
4553 * dbus/dbus-transport.h:
4554 Add prototype for _dbus_transport_get_unix_process_id
4556 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
4558 * dbus/dbus-message.c: Message counter fix, patch by Christian
4559 Hammond <chipx86@gnupdate.org>
4561 2004-07-18 Seth Nickell <seth@gnome.org>
4564 * python/dbus_bindings.pyx.in:
4565 * python/tests/test-client.py:
4567 Add dbus.ByteArray and dbus_bindings.ByteArray
4568 types so that byte streams can be passed back.
4570 Give jdahlin the heaps of credit that are so
4573 2004-07-12 Seth Nickell <seth@gnome.org>
4577 Add message argument to the default object_method_handler
4580 * python/dbus_bindings.pyx.in:
4582 Automatically return NIL when passed an empty list
4583 (we can't pass back a list since lists are typed
4584 and we don't have any idea what type the the client
4585 intended the list to be... :-( )
4587 2004-07-10 Seth Nickell <seth@gnome.org>
4589 * python/examples/Makefile.am:
4591 Fix distcheck breakage caused by new examples.
4593 2004-07-10 Seth Nickell <seth@gnome.org>
4597 Add "message" argument to service-side dbus.Object
4598 methods. This will break existing services written
4599 using the python bindings, but will allow extraction
4600 of all the message information (e.g. who its from).
4602 Add improved "object oriented" signal handling/emission.
4604 * python/examples/example-service.py:
4608 * python/examples/example-signal-emitter.py:
4609 * python/examples/example-signal-recipient.py:
4611 Two new examples that show how to emit and receive
4612 signals using the new APIs.
4614 * python/examples/example-signals.py:
4615 * python/examples/gconf-proxy-service.py:
4616 * python/examples/gconf-proxy-service2.py:
4618 Add "message" argument to service methods.
4620 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
4622 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4623 * dbus/bus.c (dbus_bus_get_unix_user)
4624 * doc/dbus-specification.xml: implement GetConnectionUnixUser
4625 method of org.freedesktop.DBus interface.
4627 * bus/dispatch.c: test case
4629 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
4631 * python/Makefile.am: switched include directory from glib/ to dbus/
4632 since dbus-glib.h moved
4634 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4636 * configure.in: prevent building the gcj stuff and libxml loader
4637 since they are broken.
4639 2004-06-20 Havoc Pennington <hp@redhat.com>
4641 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
4642 codes from the dbus error names
4644 * glib/dbus-glib.h: move to subdir dbus/ since it's included
4645 as dbus/dbus-glib.h and that breakage is now visible due to
4646 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4648 * glib/dbus-glib.h: s/gproxy/g_proxy/
4650 * dbus/dbus-shared.h: new header to hold stuff shared with
4653 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4656 * glib/dbus-glib.h (dbus_set_g_error): move to
4657 dbus-glib-lowlevel.h
4659 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4660 of stuff to enable this
4662 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4664 * a bunch of other changes with the same basic "separate glib
4665 bindings from dbus.h" theme
4667 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
4669 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4671 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4673 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4675 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4676 the reply value of the ServiceExists message.
4678 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
4680 * python/dbus_bindings.pyx.in: No longer need to parse path
4681 elements and pass them as arrays of strings. The C API now
4682 accepts plain path strings.
4683 (_build_parsed_path): removed
4685 2004-06-07 Havoc Pennington <hp@redhat.com>
4687 * doc/TODO: remove auto-activation item since it's done; sort
4688 items by importance/milestone
4690 2004-06-07 Havoc Pennington <hp@redhat.com>
4692 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4693 random signature when using REQUIRED_FIELDS (this hack won't work
4696 * dbus/dbus-message.c: change the signature to be a header field,
4697 instead of message->signature special-case string. Incremental
4698 step forward. Then we can fix up code to send the signature in the
4699 message, then fix up code to validate said signature, then fix up
4700 code to not put the typecodes inline, etc.
4701 (load_one_message): don't make up the signature after the fact
4702 (decode_header_data): require signature field for the known
4705 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4707 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4709 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
4711 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4713 * mono/Handler.cs: Updated to follow new path argument for
4714 (un-)registering objects.
4716 * mono/example/Makefile.am:
4718 * configure.in: Bumped required version for mono and use new -pkg
4721 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
4723 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4724 registration functions take the path argument as char* instead of
4727 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4728 split off the path decompostion part of
4729 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4732 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4734 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4736 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4737 machine approach. A state is implemented as a function that
4738 handles incoming events as specified for that state.
4740 * doc/dbus-specification.xml: Update auth protocol state machine
4741 specification to match implementation. Remove some leftover
4744 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4746 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4747 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4750 * Doxyfile.in: remove deprecated options.
4752 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4753 glib/test-thread.h, glib/test-thread-client.c,
4754 glib/test-thread-server.c, glib/test-profile.c,
4755 glib/test-dbus-glib.c: remove these unused files.
4757 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
4759 * dbus/dbus-object-tree.c
4760 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4761 non-fallback handlers (bug #684).
4762 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4763 (find_subtree_recurse): report wether the returned subtree is an
4764 exact match or a "fallback" match higher up in the tree.
4765 (object_tree_test_iteration): update test case.
4767 2004-06-01 Seth Nickell <seth@gnome.org>
4769 * python/dbus_bindings.pyx.in:
4770 * python/tests/test-client.py:
4772 Round off basic type support. Add dicts (yay!), and
4773 remaining array types.
4775 Make MessageIter more general so it works for dicts too.
4777 Mark all loop variables as C integers.
4779 2004-05-31 Havoc Pennington <hp@redhat.com>
4781 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4784 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4786 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4787 option that runs the tests, and start filling in some code
4788 including for starters just dumping the interfaces to stdout
4790 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4792 * test/data/valid-introspection-files/lots-of-types.xml: test of
4793 an example introspection file
4795 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4798 2004-05-31 Seth Nickell <seth@gnome.org>
4800 * python/dbus_bindings.pyx.in:
4801 * python/tests/test-client.py:
4806 Fix string array memory trashing bug... oops...
4808 2004-05-30 Seth Nickell <seth@gnome.org>
4812 Add a nicer-but-less-flexible alternate API for handling
4813 calls to virtual objects in dbus.ObjectTree.
4815 Screw up the argument order to the dbus.Object constructor
4816 for consistency with dbus.ObjectTree (and to make dbus_methods
4817 optional for future extension)
4819 * python/examples/Makefile.am:
4820 * python/examples/gconf-proxy-service.py:
4821 * python/examples/gconf-proxy-service2.py:
4823 Alternate implementation of gconf-proxy-service using the
4824 nicer dbus.ObjectTree API.
4826 * python/examples/example-service.py:
4827 * python/tests/test-server.py
4829 Reverse the argument order to deal with dbus.Object constructor
4832 2004-05-30 Seth Nickell <seth@gnome.org>
4834 * python/examples/example-client.py:
4835 * python/examples/example-service.py:
4837 Take it back. Lists seem to work but they're broken
4838 in the test suite. Make the base examples use
4841 2004-05-30 Seth Nickell <seth@gnome.org>
4843 * python/dbus_bindings.pyx.in:
4844 * python/tests/test-client.py:
4846 Add some more tests and fix errors that crop up.
4847 Unfortunately, currently it seems like marshalling
4848 and unmarshalling of lists is completely broken :-(
4850 2004-05-30 Seth Nickell <seth@gnome.org>
4852 * python/dbus_bindings.pyx.in:
4854 Add support for ObjectPath type.
4858 Refactor message handling code to a common function.
4860 * python/tests/test-client.py:
4861 * python/tests/test-server.py:
4863 Add tests that check to make sure values of all types
4864 can be echoed from a service w/o mangling.
4866 2004-05-29 Seth Nickell <seth@gnome.org>
4870 Add ObjectTree class which allows implementation
4871 of trees of "virtual" objects. Basically the python
4872 wrapper for "register_fallback".
4874 * python/examples/Makefile.am
4875 * python/examples/gconf-proxy-client.py:
4876 * python/examples/gconf-proxy-service.py:
4878 Implement a simple GConf proxy service that supports
4879 get/set on string and int GConf keys using the ObjectTree.
4881 2004-05-29 Seth Nickell <seth@gnome.org>
4884 * python/examples/example-client.py:
4885 * python/examples/example-service.py:
4886 * python/examples/list-system-services.py:
4888 Add SessionBus, SystemBus and ActivationBus classes
4889 so you don't need to know the special little BUS_TYPE
4892 2004-05-29 Havoc Pennington <hp@redhat.com>
4894 * bus/config-parser.c (process_test_valid_subdir): temporarily
4895 stop testing config parser OOM handling, since expat has issues
4896 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4898 * bus/dbus-daemon-1.1.in: change requested_reply to
4899 send_requested_reply/receive_requested_reply so we can send the
4900 replies, not just receive them.
4902 * bus/config-parser.c: parse the new
4903 send_requested_reply/receive_requested_reply
4905 * bus/policy.c (bus_client_policy_check_can_send): add
4906 requested_reply argument and use it
4908 * bus/bus.c (bus_context_check_security_policy): pass through
4909 requested_reply status to message send check
4911 * bus/system.conf.in: adapt to requested_reply change
4913 2004-05-28 Havoc Pennington <hp@redhat.com>
4915 * test/glib/test-service-glib.c (main): remove unused variable
4917 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4919 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4920 from the enum, no longer in use.
4922 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4925 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4926 whether error_name passed in is a valid error name.
4928 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4930 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4931 OBJECT_PATH and OBJECT_PATH_ARRAY
4933 2004-05-28 Seth Nickell <seth@gnome.org>
4935 * python/examples/Makefile.am:
4937 Forget to add Makefile.am. Do not pass go.
4939 2004-05-28 Michael Meeks <michael@ximian.com>
4941 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4944 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4946 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4947 (_dbus_message_iter_get_basic_type_array): impl.
4948 drastically simplify ~all relevant _get methods to use these.
4949 (_dbus_message_iter_append_basic_array),
4950 (dbus_message_iter_append_basic): impl
4951 drastically simplify ~all relevant _append methods to use these.
4953 * dbus/dbus-message-builder.c (parse_basic_type)
4954 (parse_basic_array, lookup_basic_type): impl.
4955 (_dbus_message_data_load): prune scads of duplicate /
4958 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4959 (_dbus_demarshal_basic_type): implement,
4960 (demarshal_and_validate_len/arg): beef up debug.
4961 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4963 2004-05-27 Seth Nickell <seth@gnome.org>
4966 * python/Makefile.am:
4968 Include the example python apps in the tarball.
4970 * python/examples/list-system-services.py
4972 Add a python new example that fetches the list of services
4973 from the system bus.
4975 2004-05-27 Seth Nickell <seth@gnome.org>
4978 * python/dbus_bindings.pyx.in:
4980 Fix failure to notify that a signal was not handled,
4981 resulted in hung functions.
4983 2004-05-25 Colin Walters <walters@redhat.com>
4985 * tools/dbus-monitor.c (main): Monitor all types of messages.
4987 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
4989 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4990 which unregisters the object path and disposes the handler.
4992 2004-05-23 Kristian Høgsberg <krh@redhat.com>
4994 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4996 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4997 operands to && so we call dbus_message_iter_next () for the last
5000 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5002 * dbus/dbus-object-tree.c
5003 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5004 children even if the requested path isn't registered.
5005 (object_tree_test_iteration): test object_tree_list_registered.
5007 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5010 2004-05-20 Kristian Høgsberg <krh@redhat.com>
5012 * doc/TODO: Remove resolved items.
5014 * bus/expirelist.h (struct BusExpireList): remove unused n_items
5017 * bus/connection.c (bus_connections_expect_reply): Enforce the
5018 per-connection limit on pending replies.
5020 Patch from Jon Trowbridge <trow@ximian.com>:
5022 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5023 up a watch that triggers a config reload when one end of the pipe
5025 (signal_handler): Instead of doing the config reload in our SIGHUP
5026 handler, just write to the reload pipe and let the associated
5027 watch handle the reload when control returns to the main loop.
5029 * bus/driver.c (bus_driver_handle_reload_config): Added.
5030 Implements a ReloadConfig method for requesting a configuration
5031 file reload via the bus driver.
5033 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5035 * HACKING: Updated release instructions concerning the wiki page.
5037 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5039 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5040 filter against auth->allowed_mechs; we only add allowed mechs in
5041 record_mechanisms().
5043 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5044 ALLOWED_MECHS to auth-script format so we can set the list of
5047 * data/auth/client-out-of-mechanisms.auth-script: New test to
5048 check client disconnects when it is out of mechanisms to try.
5050 * dbus/dbus-auth.c (process_command): Remove check for lines
5051 longer that 1 MB; we only buffer up maximum 16 kB.
5053 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5054 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5055 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5056 assume there might be unused bytes.
5058 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5059 client-out-of-mechs, it is handled in process_reject(). Move check
5060 for max failures to send_rejected(), as it's a server-only thing.
5062 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5063 send_auth(), send_data(), send_rejected(), send_error(),
5064 send_ok(), send_begin() and send_cancel().
5066 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5068 Remove base64 encoding, replace with hex encoding. Original patch
5069 from trow@ximian.com, added error handling.
5071 * dbus/dbus-string.c (_dbus_string_base64_encode)
5072 (_dbus_string_base64_decode): Remove.
5073 (_dbus_string_hex_decode): Add end_return argument so we can
5074 distinguish between OOM and invalid hex encoding.
5075 (_dbus_string_test): Remove base64 tests and add test case for
5078 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5079 Replace base64 with hex.
5081 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5082 for invalid hex encoded data in auth protocol.
5084 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5086 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5089 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5091 * mono/dbus-sharp.dll.config.in: Added for GAC
5092 * mono/dbus-sharp.snk: Added for GAC
5093 * mono/Assembly.cs.in: Added for GAC
5094 * mono/Makefile.am: Changes for GAC installation
5095 * configure.in: Added refs for dbus-sharp.dll.config.in and
5096 Assembly.cs.in. More fixes for mono testing
5097 * mono/example/Makefile.am: Changed var to CSC
5098 * Makefile.am: Changed flag name to DBUS_USE_CSC
5100 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5102 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5103 * mono/doc/*: Added documentation framework
5104 * configure.in: Added monodoc check
5105 * README: Added description of mono configure flags
5107 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5109 * doc/dbus-specification.xml: Added a "Required" column to the
5110 header fields table and changed the "zero or more" verbage in
5111 the above paragraph to read "The header must contain the required
5112 named header fields and zero or more of the optional named header
5114 * test/data/invalid-messages/*.message: Added the required PATH
5115 named header field to the tests so that they don't fail on
5116 'Missing path field'
5118 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
5120 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5121 the stack by implicitly defining variable and parameter types and
5122 removing the hack of defining C pointers as python objects and later
5125 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5127 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5129 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5131 * mono/DBusType/Dict.cs: Handle empty dicts
5132 * mono/DBusType/Array.cs: Handle empty arrays
5133 * mono/Arguments.cs: Handle empty arguments
5135 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5137 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5140 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5142 * test/data/valid-messages/standard-*.message: Update message
5143 test scripts to new header field names.
5145 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5147 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5148 overflow to times_we_did_each_thing array which would chop off the
5149 first character of the failure_dir string. Increased the size of
5150 the array to 7 to reflect the number of random mutation functions
5153 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5155 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5156 unix_server->watch here, it is unreffed in disconnect.
5157 (_dbus_server_new_for_tcp_socket): convert NULL host to
5158 "localhost" here so we don't append NULL to address.
5160 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5161 various addresses, including tcp with no explicit host.
5163 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5165 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5166 fix incorrect setting of .name_offset in the HeaderField (it was
5167 off by two bytes, positioned right after the name and typecode)
5169 * bus/bus.c (bus_context_new, bus_context_unref): test before
5170 calling dbus_server_free_data_slot and _dbus_user_database_unref
5171 in case of an error.
5173 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5176 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5178 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5179 _dbus_poll() instead of select().
5181 2004-04-15 Jon Trowbridge <trow@ximian.com>
5183 * bus/main.c (signal_handler): Reload the configuration files
5185 (main): Set up our SIGHUP handler.
5187 * bus/bus.c (struct BusContext): Store the config file, user and
5188 fork flag in the BusContext.
5189 (process_config_first_time_only): Added. Contains the code
5190 (previously in bus_context_new) for setting up the BusContext from
5191 the BusConfigParser that should only be run the first time the
5192 config files are read.
5193 (process_config_every_time): Added. Contains the code (previously
5194 in bus_context_new) for setting up the BusContext from the
5195 BusConfigParser that should be run every time the config files are
5197 (load_config): Added. Builds a BusConfigParser from the config
5198 files and passes the resulting structure off to
5199 process_config_first_time_only (assuming this is the first time)
5200 and process_config_every_time.
5201 (bus_context_new): All of the config-related code has been moved
5202 to process_config_first_time_only and process_config_every_time.
5203 Now this function just does the non-config-related initializations
5204 and calls load_config.
5205 (bus_context_reload_config): Added.
5207 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5209 * bus/driver.c (bus_driver_handle_get_service_owner):
5210 implement a GetServiceOwner method.
5211 * doc/dbus-specification.xml: document it.
5212 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5214 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5215 implement, using the bus GetServiceOwner method.
5217 * test/glib/test-dbus-glib.c:
5218 use dbus_gproxy_new_for_service_owner so that we can receive the
5221 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5223 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5224 dbus/dbus-message.c, dbus/dbus-protocol.h
5225 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5227 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5228 dbus/dbus-message.c, dbus/dbus-protocol.h
5229 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5231 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5232 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5233 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5235 * doc/dbus-specification.xml (Header Fields Table):
5236 s/SERVICE/DESTINATION
5237 s/SENDER_SERVICE/SENDER
5240 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5242 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5245 2004-04-13 Michael Meeks <michael@ximian.com>
5247 * glib/dbus-gobject.c (handle_introspect): split out
5248 (introspect_properties): this.
5249 (handle_introspect): implement this.
5251 * test/glib/Makefile.am: use the absolute path so the bus
5252 daemon's chdir ("/") doesn't kill us dead.
5254 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5256 2004-04-12 Jon Trowbridge <trow@ximian.com>
5258 * bus/config-parser.c (struct BusConfigParser): Added
5259 included_files field.
5260 (seen_include): Added. Checks whether or not a file has already
5261 been included by any parent BusConfigParser.
5262 (bus_config_parser_new): Copy the parent's included_files.
5263 (include_file): Track which files have been included, and fail on
5264 circular inclusions.
5265 (process_test_valid_subdir): Changed printf to report if we are
5266 testing valid or invalid conf files.
5267 (all_are_equiv): Changed printf to be a bit clearer about
5268 what we are actually doing.
5269 (bus_config_parser_test): Test invalid configuration files.
5271 2004-04-09 Jon Trowbridge <trow@ximian.com>
5273 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5274 argument. If non-null, the newly-constructed BusConfigParser will
5275 be initialized with the parent's BusLimits instead of the default
5277 (include_file): When including a config file, pass in
5278 the current parser as the parent and then copy the BusLimits
5279 from the included BusConfigParser pack to the current parser.
5280 (process_test_valid_subdir): Renamed from process_test_subdir.
5281 (process_test_equiv_subdir): Added. Walks through a directory,
5282 descending into each subdirectory and loading the config files
5283 it finds there. If any subdirectory contains two config files
5284 that don't produce identical BusConfigParser structs, fail.
5285 For now, the BusConfigParser's BusPolicies are not compared.
5286 (bus_config_parser_test): Call both process_test_valid_subdir and
5287 process_test_equiv_subdir.
5289 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5290 argument and pass it along to the call to bus_config_parser_new.
5291 Also made a few small changes to allow this code to compile.
5293 * bus/config-loader-expat.c (bus_config_load): Take a parent
5294 argument and pass it along to the call to bus_config_parser_new.
5296 * bus/bus.c (bus_context_new): Load the config file
5297 with a NULL parent argument.
5299 2004-03-29 Michael Meeks <michael@ximian.com>
5301 * glib/dbus-gobject.c (introspect_properties): split
5302 out, fix mangled 'while' flow control.
5303 (introspect_signals): implement.
5304 (handle_introspect): update.
5306 2004-03-29 Michael Meeks <michael@ximian.com>
5308 * glib/dbus-gobject.c (set_object_property): split out /
5309 re-work, use the property type, and not the message type(!)
5310 (get_object_property): ditto.
5312 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5313 (dbus_gvalue_marshal): make this code re-usable, needed
5314 for signals too, also on both proxy and server side.
5315 Re-write for more efficiency / readability.
5317 2004-03-29 Michael Meeks <michael@ximian.com>
5319 * dbus/dbus-message.c
5320 (dbus_message_new_error_printf): impl.
5322 * dbus/dbus-connection.c
5323 (dbus_connection_unregister_object_path): fix warning.
5325 * configure.in: fix no-mono-installed situation.
5327 2004-03-27 Havoc Pennington <hp@redhat.com>
5329 Patch from Timo Teräs:
5331 * tools/dbus-send.c (main): if --print-reply, assume type is
5332 method call; support boolean type args
5334 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5335 bunch of memleak and logic bugs
5337 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5339 * mono/Arguments.cs:
5340 * mono/Introspector.cs:
5342 * mono/InterfaceProxy.cs:
5344 * mono/ProxyBuilder.cs:
5346 Added InterfaceProxy class to avoid building proxies for every
5350 * dbus-message.c (dbus_message_append_args_valist)
5351 (dbus_message_iter_get_object_path)
5352 (dbus_message_iter_get_object_path_array)
5353 (dbus_message_iter_append_object_path)
5354 (dbus_message_iter_append_object_path_array):
5355 Added object_path iter functions to handle OBJECT_PATH arguments
5357 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5359 First checkin of mono bindings.
5362 Build stuff for the bindings
5363 * dbus-sharp.pc.in: Added for pkgconfig
5365 2004-03-21 Havoc Pennington <hp@redhat.com>
5367 * test/test-service.c (main): remove debug spew
5369 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5371 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5374 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5375 (dbus_message_iter_init_array_iterator)
5376 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5377 indicate whether the iterator is empty
5379 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5382 2004-03-19 Havoc Pennington <hp@redhat.com>
5384 * NEWS: 0.21 updates
5386 * configure.in: 0.21
5388 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5390 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5391 you don't need pyrex to make dist
5393 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5396 2004-03-18 Richard Hult <richard@imendio.com>
5398 * dbus/dbus-message.c (dbus_message_get_auto_activation)
5399 (dbus_message_set_auto_activation): Add doxygen docs.
5401 2004-03-16 Richard Hult <richard@imendio.com>
5403 * bus/activation.c: (bus_activation_service_created),
5404 (bus_activation_send_pending_auto_activation_messages),
5405 (bus_activation_activate_service):
5407 * bus/dispatch.c: (bus_dispatch),
5408 (check_nonexistent_service_auto_activation),
5409 (check_service_auto_activated),
5410 (check_segfault_service_auto_activation),
5411 (check_existent_service_auto_activation), (bus_dispatch_test):
5412 * bus/driver.c: (bus_driver_handle_activate_service):
5413 * bus/services.c: (bus_registry_acquire_service):
5414 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5415 (dbus_message_get_auto_activation):
5416 * dbus/dbus-message.h:
5417 * dbus/dbus-protocol.h: Implement auto-activation.
5419 * doc/dbus-specification.xml: Add auto-activation to the spec.
5421 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
5423 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5424 fix a bug with CUSTOM types.
5426 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5427 a unit test for this bug (used to fail).
5429 2004-03-12 Mikael Hallendal <micke@imendio.com>
5432 (babysitter_watch_callback): notify all pending activations waiting for
5433 the same exec that the activation failed.
5434 (bus_activation_activate_service): shortcut the activation if we
5435 already waiting for the same executable to start up.
5437 2004-03-12 Mikael Hallendal <micke@imendio.com>
5440 - Added service file reloading.
5441 Each service files directory is kept in an hash table in
5442 BusActivation and each BusActivationEntry knows what .service-file it
5443 was read from. So when you try to activate a service the bus will
5444 check if it's been updated, removed or if new .service-files has
5446 - Test code at the bottom for the service file reloading.
5447 * bus/test-main.c: (main):
5449 - added service reloading test.
5450 * dbus/dbus-sysdeps.c:
5451 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5453 2004-03-08 Michael Meeks <michael@ximian.com>
5455 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
5456 bail immediately if disconnected, to avoid busy loop.
5458 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5459 cleanup cut/paste/inefficiency.
5461 2004-03-01 David Zeuthen <david@fubar.dk>
5463 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5464 bug where args were used twice. This bug resulted in a segfault
5465 on a Debian/PPC system when starting the messagebus daemon. Include
5466 dbus-sysdeps.h for DBUS_VA_COPY
5468 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5470 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5471 appropriate va_copy implementation. From GLib
5473 2004-02-24 Joe Shaw <joe@ximian.com>
5475 * bus/services.c (bus_registry_acquire_service): We need to pass
5476 in the service name to dbus_set_error() to prevent a crash.
5478 2003-12-26 Anders Carlsson <andersca@gnome.org>
5480 * AUTHORS: Reveal my True identity.
5482 2003-12-17 Mikael Hallendal <micke@imendio.com>
5484 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5485 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5487 2003-12-13 Mikael Hallendal <micke@imendio.com>
5489 * doc/TODO: Added not about better error check of configuration files.
5491 2003-12-02 Richard Hult <richard@imendio.com>
5493 * Update AFL version to 2.0 throughout the source files to reflect
5494 the update that was done a while ago.
5496 2003-12-02 Richard Hult <richard@imendio.com>
5498 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5499 wrote_dict_key to FALSE on the iter that the dict is appended to,
5500 just like when appending other types. Fixes a bug where a dict
5501 couldn't be put inside a dict.
5502 (dbus_message_iter_append_dict_key): Fix typo in warning message.
5503 (message_iter_test, _dbus_message_test): Add test case for dict
5506 2003-12-01 David Zeuthen <david@fubar.dk>
5508 * python/dbus.py: Add the actual message when calling the reciever
5509 of a signal such that parameters can be inspected. Add the method
5510 remove_signal_receiver
5512 2003-11-26 Mikael Hallendal <micke@imendio.com>
5516 * glib/*.[ch]: Made ref functions return the pointer
5518 2003-11-25 Zack Rusin <zack@kde.org>
5520 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5522 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
5525 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
5526 the Integrator and to better fit with the server,
5528 2003-11-24 Zack Rusin <zack@kde.org>
5530 * qt/connection.h, qt/connection.cpp: removing initDbus method since
5531 the integrator handles it now
5533 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5534 since QTimer wasn't really meant to be used the way DBusTimeout is
5536 2003-11-24 Zack Rusin <zack@kde.org>
5538 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
5539 Integrator class which integrates D-BUS with the Qt event loop,
5541 * qt/connection.h, qt/connection.cpp: Move all the code which
5542 was dealing with D-BUS integration to the Integrator class,
5543 and start using Integrator,
5545 2003-11-23 Zack Rusin <zack@kde.org>
5547 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
5550 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5551 switching namespaces to DBusQt, reworking the class,
5553 * Makefile.cvs: switching dependencies so that it matches KDE
5556 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
5559 2003-11-19 Havoc Pennington <hp@redhat.com>
5563 * configure.in: bump version to 0.20
5565 * configure.in (have_qt): add yet another place to look for qt
5566 (someone hand trolltech a .pc file...)
5568 2003-11-01 Havoc Pennington <hp@redhat.com>
5570 * doc/dbus-specification.xml: add state machine docs on the auth
5571 protocol; just a first draft, I'm sure it's wrong.
5573 2003-10-28 David Zeuthen <david@fubar.dk>
5575 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5576 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5578 2003-10-28 Havoc Pennington <hp@redhat.com>
5580 * dbus/dbus-message.c (get_next_field): delete unused function
5582 2003-10-28 Havoc Pennington <hp@redhat.com>
5584 * bus/expirelist.c (do_expiration_with_current_time): detect
5585 failure of the expire_func due to OOM
5587 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5589 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5590 NoReply error that's now created by the bus when the service exits
5592 2003-10-28 Havoc Pennington <hp@redhat.com>
5594 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5595 tests for set_path, set_interface, set_member, etc.
5597 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5599 * dbus/dbus-message.c (set_string_field): always just delete and
5600 re-append the field; accept NULL for deletion
5601 (re_align_fields_recurse): reimplement
5603 2003-10-26 Havoc Pennington <hp@redhat.com>
5605 * dbus/dbus-connection.c: fix docs to properly describe the
5606 disconnected message
5607 (_dbus_connection_notify_disconnected): remove this function;
5608 we can't synchronously add the disconnected message, we have to
5609 do it after we've queued any remaining real messages
5610 (_dbus_connection_get_dispatch_status_unlocked): queue the
5611 disconnect message only if the transport has finished queueing all
5612 its real messages and is disconnected.
5613 (dbus_connection_disconnect): update the dispatch status here
5615 2003-10-22 Havoc Pennington <hp@redhat.com>
5617 * bus/bus.c (bus_context_check_security_policy): fix up assertion
5619 * bus/connection.c (bus_transaction_send_from_driver): set the
5620 destination to the connection's base service
5622 2003-10-20 Havoc Pennington <hp@redhat.com>
5624 hmm, make check is currently not passing.
5626 * doc/dbus-specification.xml: add requirement that custom type
5627 names follow the same rules as interface names.
5629 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5630 duplication and allow 'c' to be 'custom'; dict is now 'm' for
5633 * doc/dbus-specification.xml: update type codes to match
5634 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5635 CUSTOM. Add type OBJECT_PATH to the spec.
5637 2003-10-17 Havoc Pennington <hp@redhat.com>
5639 * bus/driver.c (create_unique_client_name): use "." as separator
5640 in base service names instead of '-'
5642 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5643 byte at the end of the string
5645 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5646 optimization macros since string validation seems to be a slow
5649 * doc/dbus-specification.xml: restrict valid
5650 service/interface/member/error names. Add test suite code for the
5653 * dbus/dbus-string.c: limit service/interface/member/error names
5656 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5657 format arg to verbose spew
5659 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5660 memory, return instead of g_error
5662 * test/test-service.c (path_message_func): support emitting a
5665 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5666 activation bus type if DBUS_BUS_ACTIVATION was set; default to
5667 assuming the activation bus was the session bus so that services
5668 started manually will still register.
5669 (init_connections_unlocked): fix so that in OOM situation we get
5670 the same semantics when retrying the function
5672 * test/test-service.c (main): change to use path registration, to
5673 test those codepaths; register with DBUS_BUS_ACTIVATION rather
5674 than DBUS_BUS_SESSION
5676 2003-10-16 Havoc Pennington <hp@redhat.com>
5678 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5680 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5681 coverage of the tests
5682 (coverage-report.txt): don't move the .da and .bbg files around
5684 2003-10-16 Havoc Pennington <hp@redhat.com>
5686 * bus/bus.c (struct BusContext): remove struct field I didn't mean
5689 2003-10-16 Havoc Pennington <hp@redhat.com>
5691 * bus/connection.c (bus_pending_reply_expired): either cancel or
5693 (bus_connections_check_reply): use unlink, not remove_link, as we
5694 don't want to free the link; fixes double free mess
5696 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5697 where no reply was received
5699 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5702 * bus/signals.c (match_rule_matches): add special cases for the
5703 bus driver, so you can match on sender/destination for it.
5705 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5706 DBUS_PRINT_BACKTRACE is set
5708 * dbus/dbus-internals.c: add pid to assertion failure messages
5710 * dbus/dbus-connection.c: add message type code to the debug spew
5712 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5713 sender=foo not service=foo
5715 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5716 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
5717 DBUS_ACTIVATION_ADDRESS instead
5719 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5720 DBUS_SYSTEM_BUS_ADDRESS if appropriate
5722 * bus/bus.c (bus_context_new): handle OOM copying bus type into
5725 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5726 (dbus_message_iter_get_object_path_array): new function (half
5727 finished, disabled for the moment)
5729 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5730 DBUS_MESSAGE_TYPE_ERROR
5732 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5733 avoid redirecting stderr to /dev/null
5734 (babysit): close stdin if not doing the "exit_with_session" thing
5736 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5737 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5738 stdout/stdin, so things don't get confused
5740 * bus/system.conf.in: fix to allow replies, I modified .conf
5741 instead of .conf.in again.
5743 2003-10-14 David Zeuthen <david@fubar.dk>
5745 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5746 argtype to arg_type when raising unknown arg type exception.
5747 Changed type list to reflect the changes in dbus-protocol.h so
5748 the bindings actually work.
5750 2003-10-14 Havoc Pennington <hp@redhat.com>
5752 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5753 to have a bug keeping it from outputting the .da files sometimes
5754 (string_get_string): don't append garbage nul bytes to the string.
5756 2003-10-15 Seth Nickell <seth@gnome.org>
5758 * python/Makefile.am:
5760 Include dbus_h_wrapper.h in the dist tarball.
5762 2003-10-14 Havoc Pennington <hp@redhat.com>
5764 * bus/bus.c (bus_context_check_security_policy): revamp this to
5765 work more sanely with new policy-based requested reply setup
5767 * bus/connection.c (bus_transaction_send_from_driver): set bus
5768 driver messages as no reply
5770 * bus/policy.c (bus_client_policy_check_can_receive): handle a
5771 requested_reply attribute on allow/deny rules
5773 * bus/system.conf: add <allow requested_reply="true"/>
5775 * bus/driver.c (bus_driver_handle_message): fix check for replies
5776 sent to the bus driver, which was backward. How did this ever work
5777 at all though? I think I'm missing something.
5779 * dbus/dbus-message.c (decode_header_data): require error and
5780 method return messages to have a reply serial field to be valid
5781 (_dbus_message_loader_queue_messages): break up this function;
5782 validate that reply serial and plain serial are nonzero;
5783 clean up the OOM/error handling.
5784 (get_uint_field): don't return -1 from this
5785 (dbus_message_create_header): fix signed/unsigned bug
5787 * bus/connection.c (bus_connections_expect_reply): save serial of
5788 the incoming message, not reply serial
5790 2003-10-14 Havoc Pennington <hp@redhat.com>
5792 * bus/connection.c: implement pending reply tracking using
5795 * bus/bus.c (bus_context_check_security_policy): verify that a
5796 reply is pending in order to allow a reply to be sent. Deny
5797 messages of unknown type.
5799 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5801 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5802 (bus_context_get_reply_timeout): new
5804 2003-10-13 Seth Nickell <seth@gnome.org>
5806 * python/Makefile.am:
5808 Pass "make distcheck": remove a couple files from DIST_FILES
5809 that weren't included in the final version.
5811 2003-10-12 Havoc Pennington <hp@pobox.com>
5813 Added test code that 1) starts an actual bus daemon and 2) uses
5814 DBusGProxy; fixed bugs that were revealed by the test. Lots
5815 more testing possible, but this is the basic framework.
5817 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5818 empty proxy lists from the proxy list hash
5820 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5821 couple of return_if_fail checks
5823 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5824 to allocate, so everything is cleared to NULL as it should be.
5826 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5827 source as data to dbus_connection_set_timeout_functions() as the
5828 timeout functions expected
5830 * test/glib/run-test.sh: add a little script to start up a message
5831 bus and run tests using it
5833 * tools/dbus-launch.1: updates
5835 * tools/dbus-launch.c (main): add --config-file option
5837 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5838 that could never be reached.
5840 * dbus/dbus-message.c (dbus_message_new_method_return)
5841 (dbus_message_new_error, dbus_message_new_signal): set the
5842 no-reply-expected flag on all these. Redundant, but may
5843 as well be consistent.
5845 2003-10-11 Havoc Pennington <hp@pobox.com>
5847 * test/decode-gcov.c (function_solve_graph): make broken block
5848 graph a nonfatal error since it seems to be broken. Need to debug
5851 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5852 can't just check type > INVALID < LAST anymore
5854 * dbus/dbus-message.c (dbus_message_get_signature): new function
5855 (dbus_message_has_signature): new function
5856 (struct DBusMessage): add signature field (right now it isn't sent
5857 over the wire, just generated on the fly)
5858 (dbus_message_copy): copy the signature, and init strings to
5859 proper length to avoid some reallocs
5860 (dbus_message_iter_init_array_iterator): return void, since it
5862 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5863 (_dbus_message_loader_queue_messages): add silly temporary hack to
5864 fill in message->signature on load
5866 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5867 characters, so they are relatively human-readable.
5869 2003-10-11 Havoc Pennington <hp@pobox.com>
5871 * dbus/dbus-message.c (_dbus_message_test): add more test
5872 coverage, but #if 0 for now since they uncover a bug
5873 not fixed yet; I think in re_align_field_recurse()
5874 (re_align_field_recurse): add FIXME about broken assertion
5876 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5878 * bus/connection.c: share a couple code bits with expirelist.c
5880 * bus/expirelist.h, bus/expirelist.c: implement a generic
5881 expire-items-after-N-seconds facility, was going to share between
5882 expiring connections and replies, decided not to use for expiring
5883 connections for now.
5885 * COPYING: include AFL 2.0 (still need to change all the file headers)
5887 2003-10-09 Havoc Pennington <hp@redhat.com>
5889 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5890 gcc 3.3. Not that we do anything about it yet.
5892 * bus/signals.c (bus_match_rule_parse): impose max length on the
5895 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5897 2003-10-09 Havoc Pennington <hp@redhat.com>
5899 Make matching rules theoretically work (add parser).
5901 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5902 the case where destination is explicitly specified as bus driver
5903 and someone else is eavesdropping.
5905 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5906 definition of eavesdropping and assertion
5908 * tools/dbus-send.c (main): use dbus_message_type_from_string
5910 * bus/signals.c (bus_match_rule_parse): implement
5912 * dbus/dbus-message.c (dbus_message_type_from_string): new
5914 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5916 2003-10-02 Havoc Pennington <hp@pobox.com>
5918 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5919 dbus_gproxy_oneway_call
5921 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5922 (dbus_server_setup_with_g_main): fix to allow calling them more
5923 than once on the same args
5924 (dbus_bus_get_with_g_main): new function
5926 2003-10-02 Havoc Pennington <hp@redhat.com>
5928 * doc/dbus-tutorial.xml: write some stuff
5930 2003-09-29 Havoc Pennington <hp@pobox.com>
5932 * configure.in: split checks for Doxygen from XML docs, check for
5935 * doc/Makefile.am: XML-ify all the docs, and add a blank
5938 2003-09-29 Havoc Pennington <hp@pobox.com>
5940 * Merge dbus-object-names branch. To see the entire patch
5941 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5942 it's huuuuge though.
5943 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5945 2003-09-28 Havoc Pennington <hp@pobox.com>
5947 * HACKING: update to reflect new server
5949 2003-09-26 Seth Nickell <seth@gnome.org>
5952 * python/examples/example-signals.py:
5954 Start implementing some notions of signals. The API
5955 is really terrible, but they sort of work (with the
5956 exception of being able to filter by service, and to
5957 transmit signals *as* a particular service). Need to
5958 figure out how to make messages come from the service
5961 * python/dbus_bindings.pyx.in:
5963 Removed duplicate message_handler callbacks.
5965 2003-09-25 Havoc Pennington <hp@redhat.com>
5967 * bus/session.conf.in: fix my mess
5969 2003-09-25 Havoc Pennington <hp@pobox.com>
5971 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5973 2003-09-25 Seth Nickell <seth@gnome.org>
5975 * python/examples/example-service.py:
5977 Johan notices complete wrong code in example-service, but
5978 completely wrong in a way that works exactly the same (!).
5979 Johan is confused, how could this possibly work? Example
5980 code fails to serve purpose of making things clear.
5983 2003-09-25 Mark McLoughlin <mark@skynet.ie>
5985 * doc/dbus-specification.sgml: don't require header fields
5986 to be 4-byte aligned and specify that fields should be
5987 distinguished from padding by the fact that zero is not
5990 * doc/TODO: remove re-alignment item and add item to doc
5991 the OBJECT_PATH type.
5993 * dbus/dbus-message.c:
5994 (HeaderField): rename the original member to value_offset
5995 and introduce a name_offset member to keep track of where
5996 the field actually begins.
5997 (adjust_field_offsets): remove.
5998 (append_int_field), (append_uint_field),
5999 (append_string_field): don't align the start of the header
6000 field to a 4-byte boundary.
6001 (get_next_field): impl finding the next marhsalled field
6002 after a given field.
6003 (re_align_field_recurse): impl re-aligning a number of
6004 already marshalled fields.
6005 (delete_field): impl deleting a field of any type and
6006 re-aligning any following fields.
6007 (delete_int_or_uint_field), (delete_string_field): remove.
6008 (set_int_field), (set_uint_field): no need to re-check
6009 that we have the correct type for the field.
6010 (set_string_field): ditto and impl re-aligning any
6012 (decode_header_data): update to take into account that
6013 the fields aren't 4-byte aligned any more and the new
6014 way to distinguish padding from header fields. Also,
6015 don't exit when there is too much header padding.
6016 (process_test_subdir): print the directory.
6017 (_dbus_message_test): add test to make sure a following
6018 field is re-aligned correctly after field deletion.
6020 * dbus/dbus-string.[ch]:
6021 (_dbus_string_insert_bytes): rename from insert_byte and
6022 allow the insert of multiple bytes.
6023 (_dbus_string_test): test inserting multiple bytes.
6025 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6026 warning note to docs about having to re-align any
6027 marshalled values following the string.
6029 * dbus/dbus-message-builder.c:
6030 (append_string_field), (_dbus_message_data_load):
6031 don't align the header field.
6033 * dbus/dbus-auth.c: (process_test_subdir): print the
6036 * test/break-loader.c: (randomly_add_one_byte): upd. for
6039 * test/data/invalid-messages/bad-header-field-alignment.message:
6042 * test/data/valid-messages/unknown-header-field.message: shove
6043 a dict in the unknown field.
6045 2003-09-25 Seth Nickell <seth@gnome.org>
6048 * python/dbus_bindings.pyx.in:
6050 Handle return values.
6052 * python/examples/example-client.py:
6053 * python/examples/example-service.py:
6055 Pass back return values from the service to the client.
6057 2003-09-24 Seth Nickell <seth@gnome.org>
6061 Connect Object methods (when you are sharing an object) up... pass
6062 in a list of methods to be shared. Sharing all the methods just
6063 worked out too weird. You can now create nice Services over the
6066 * python/dbus_bindings.pyx.in:
6068 Keep references to user_data tuples passed into C functions so
6069 Python doesn't garbage collect on us.
6071 Implement MethodReturn and Error subclasses of Message for creating
6072 DBusMessage's of those types.
6074 * python/examples/example-client.py:
6075 * python/examples/example-service.py:
6077 Simple example code showing both how create DBus services and objects,
6078 and how to use them.
6080 2003-09-23 Havoc Pennington <hp@pobox.com>
6082 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6084 2003-09-23 Havoc Pennington <hp@redhat.com>
6086 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6087 (dbus_gproxy_disconnect_signal): implement
6088 (dbus_gproxy_manager_remove_signal_match): implement
6089 (dbus_gproxy_manager_add_signal_match): implement
6090 (dbus_gproxy_oneway_call): implement
6092 2003-09-23 Havoc Pennington <hp@pobox.com>
6094 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6095 subclass. This means dropping the transparent thread safety of the
6096 proxy; you now need a separate proxy per-thread, or your own
6097 locking on the proxy. Probably right anyway.
6098 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6100 2003-09-22 Havoc Pennington <hp@redhat.com>
6102 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6104 2003-09-21 Seth Nickell <seth@gnome.org>
6106 First checkin of the Python bindings.
6108 * python/.cvsignore:
6109 * python/Makefile.am:
6110 * python/dbus_bindings.pyx.in:
6111 * python/dbus_h_wrapper.h:
6113 Pieces for Pyrex to operate on, building a dbus_bindings.so
6114 python module for low-level access to the DBus APIs.
6118 High-level Python module for accessing DBus objects.
6123 Build stuff for the python bindings.
6127 Extra macro needed for finding the Python C header files.
6129 2003-09-21 Havoc Pennington <hp@pobox.com>
6131 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6132 implementing the proxy manager, didn't get very far.
6134 * dbus/dbus-bus.c (dbus_bus_add_match): new
6135 (dbus_bus_remove_match): new
6137 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6138 path_name argument; adjust the other not-yet-implemented
6139 gproxy constructors to be what I think they should be.
6141 2003-09-21 Havoc Pennington <hp@pobox.com>
6143 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6144 by default for message bus connections.
6146 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6147 exit_on_disconnect flag is set and we process the disconnected
6149 (dbus_connection_set_exit_on_disconnect): new function
6151 2003-09-21 Havoc Pennington <hp@pobox.com>
6153 Get matching rules mostly working in the bus; only actually
6154 parsing the rule text remains. However, the client side of
6155 "signal connections" hasn't been started, this patch is only the
6158 * dbus/dispatch.c: fix for the matching rules changes
6160 * bus/driver.c (bus_driver_handle_remove_match)
6161 (bus_driver_handle_add_match): send an ack reply from these
6164 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6165 arguments, reported by Seth Nickell
6167 * bus/config-parser.c (append_rule_from_element): support
6168 eavesdrop=true|false attribute on policies so match rules
6169 can be prevented from snooping on the system bus.
6171 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6172 and "destination" in attribute names; fix some docs bugs;
6173 add eavesdrop=true|false attribute
6175 * bus/driver.c (bus_driver_handle_add_match)
6176 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6179 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6180 rid of broadcast service concept, signals are just always broadcast
6182 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6183 mostly implement matching rules stuff (currently only exposed as signal
6186 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6188 * doc/dbus-specification.sgml: Change the header field name
6189 to be an enum and update the rest of the spec to reference
6190 the fields using the conventinal name.
6192 * dbus/dbus-protocol.h: update to reflect the spec.
6194 * doc/TODO: add item to remove the 4 byte alignment requirement.
6196 * dbus/dbus-message.c: Remove the code to generalise the
6197 header/body length and serial number header fields as named
6198 header fields so we can reference field names using the
6200 (append_int_field), (append_uint_field), (append_string_field):
6201 Append the field name as a byte rather than four chars.
6202 (delete_int_or_uint_field), (delete_string_field): reflect the
6203 fact that the field name and typecode now occupy 4 bytes instead
6205 (decode_string_field), (decode_header_data): update to reflect
6206 protocol changes and move the field specific encoding from
6207 decode_string_field() back into decode_header_data().
6209 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6210 Add utility to aid debugging.
6212 * dbus/dbus-message-builder.c:
6213 (append_string_field), (_dbus_message_data_load): Update to
6214 reflect protocol changes; Change the FIELD_NAME directive
6215 to HEADER_FIELD and allow it to take the field's conventional
6216 name rather than the actual value.
6218 * test/data/*/*.message: Update to use HEADER_FIELD instead
6219 of FIELD_NAME; Always align the header on an 8 byte boundary
6220 *before* updating the header length.
6222 2003-09-15 Havoc Pennington <hp@pobox.com>
6224 * dbus/dbus-pending-call.c: add the get/set object data
6225 boilerplate as for DBusConnection, etc. Use generic object data
6226 for the notify callback.
6228 * glib/dbus-gparser.c (parse_node): parse child nodes
6230 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6232 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6233 contain functions shared between the convenience lib and the
6236 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6237 -export-symbols-regex to the GLib library
6239 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6240 fix the locking in here, and add a default handler for
6241 Introspect() that just returns sub-nodes.
6243 2003-09-14 Havoc Pennington <hp@pobox.com>
6245 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6246 rather than gfoo consistent
6248 * glib/dbus-gproxy.h: delete for now, move contents to
6249 dbus-glib.h, because the include files don't work right since we
6250 aren't in the dbus/ subdir.
6252 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6253 (dbus_gproxy_end_call): finish
6254 (dbus_gproxy_begin_call): finish
6256 * glib/dbus-gmain.c (dbus_set_g_error): new
6258 * glib/dbus-gobject.c (handle_introspect): include information
6259 about child nodes in the introspection
6261 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6262 function to help in implementation of introspection
6264 * dbus/dbus-object-tree.c
6265 (_dbus_object_tree_list_registered_and_unlock): new function
6267 2003-09-12 Havoc Pennington <hp@pobox.com>
6269 * glib/dbus-gidl.h: add common base class for all the foo_info
6272 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6275 * test/Makefile.am: try test srcdir -ef . in addition to test
6276 srcdir = ., one of them should work (yeah lame)
6278 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6281 * glib/dbus-gparser.h: make description_load routines return
6282 NodeInfo* not Parser*
6284 * Makefile.am (SUBDIRS): build test dir after all library dirs
6286 * configure.in: add GTK+ detection
6288 2003-09-07 Havoc Pennington <hp@pobox.com>
6290 * Make Doxygen contented.
6292 2003-09-07 Havoc Pennington <hp@pobox.com>
6294 * doc/dbus-specification.sgml: more updates
6296 2003-09-06 Havoc Pennington <hp@pobox.com>
6298 * doc/dbus-specification.sgml: partial updates
6300 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6301 zillionth time; hopefully I edited the right file this time.
6303 * bus/config-parser.c (append_rule_from_element): support
6304 send_type, send_path, receive_type, receive_path
6306 * bus/policy.c: add message type and path to the list of things
6307 that can be "firewalled"
6309 2003-09-06 Havoc Pennington <hp@pobox.com>
6311 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6312 (dbus_connection_register_object_path): make this not handle
6313 messages to paths below the given path
6315 2003-09-03 Havoc Pennington <hp@pobox.com>
6317 * test/glib/Makefile.am: add this with random glib-linked test
6320 * glib/Makefile.am: remove the random test programs from here,
6321 leave only the unit tests
6323 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6324 uscore/javacaps conversion, and fix
6325 (get_object_property, set_object_property): change to .NET
6326 convention for mapping props to methods, set_FooBar/get_FooBar,
6327 since one language has such a convention we may as well copy it.
6328 Plus real methods in either getFooBar or get_foo_bar style won't
6329 collide with this convention.
6331 2003-09-01 Havoc Pennington <hp@pobox.com>
6333 * glib/dbus-gparser.c: implement
6335 * glib/dbus-gobject.c: start implementing skeletons support
6337 * configure.in: when disabling checks/assert, also define
6338 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6340 2003-09-01 Havoc Pennington <hp@pobox.com>
6342 * glib/Makefile.am: rearrange a bunch of files and get "make
6343 check" framework set up
6345 2003-08-31 Havoc Pennington <hp@pobox.com>
6347 * fix build with --disable-tests
6349 2003-08-30 Havoc Pennington <hp@pobox.com>
6351 * dbus/dbus-connection.c: purge DBusMessageHandler
6353 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6354 use callbacks everywhere
6356 2003-08-30 Havoc Pennington <hp@pobox.com>
6358 * test/data/valid-config-files/system.d/test.conf: change to
6359 root for the user so warnings don't get printed
6361 * dbus/dbus-message.c: add dbus_message_get_path,
6362 dbus_message_set_path
6364 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6365 dispatching to a path
6367 * dbus/dbus-string.c (_dbus_string_validate_path): add
6369 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6370 (_dbus_marshal_object_path): implement
6372 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
6373 to contain the path to the target object
6374 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6375 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6377 2003-08-30 Havoc Pennington <hp@pobox.com>
6379 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6381 2003-08-29 Havoc Pennington <hp@pobox.com>
6383 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6385 (struct DBusObjectSubtree): shrink this
6386 a lot, since we may have a lot of them
6387 (_dbus_object_tree_free_all_unlocked): implement
6388 (_dbus_object_tree_dispatch_and_unlock): implement
6390 2003-08-29 Havoc Pennington <hp@pobox.com>
6392 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6394 2003-08-28 Havoc Pennington <hp@pobox.com>
6398 * dbus/dbus-connection.c: port to no ObjectID, create a
6399 DBusObjectTree, rename ObjectTree to ObjectPath in public API
6401 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
6402 everything except UnregisterFunction and MessageFunction
6404 * dbus/dbus-marshal.c: port away from DBusObjectID,
6405 add DBUS_TYPE_OBJECT_PATH
6407 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
6408 dbus/dbus-objectid.[hc]: remove these, we are moving to
6409 path-based object IDs
6411 2003-08-25 Havoc Pennington <hp@pobox.com>
6413 Just noticed that dbus_message_test is hosed, I wonder when I
6414 broke that. I thought make check was passing earlier...
6416 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
6417 container tree, will replace most of dbus-object-registry
6419 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6422 2003-08-19 Havoc Pennington <hp@pobox.com>
6424 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6425 (dbus_message_is_error): fix this function
6427 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6430 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6431 reflect clarified man page
6432 (bus_client_policy_check_can_send): ditto
6434 * bus/session.conf.in: fixup
6436 * bus/system.conf.in: fixup
6438 2003-08-18 Havoc Pennington <hp@redhat.com>
6440 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6442 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6443 dumb bug created earlier (wrong order of args to
6444 decode_header_data())
6446 * tools/dbus-send.c: port
6448 * tools/dbus-print-message.c (print_message): port
6450 * test/data/*messages: port all messages over
6452 * dbus/dbus-message-builder.c: support including
6455 * bus/driver.c: port over
6457 * bus/dispatch.c: port over to new stuff
6459 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6460 rename disconnect signal to "Disconnected"
6462 2003-08-17 Havoc Pennington <hp@pobox.com>
6464 This doesn't compile yet, but syncing up so I can hack on it from
6465 work. What are branches for if not broken code? ;-)
6467 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6468 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6469 DBUS_HEADER_FIELD_ERROR_NAME
6471 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6472 for the interface+member pairs
6473 (string_hash): change to use g_str_hash algorithm
6474 (find_direct_function, find_string_function): refactor these to
6477 * dbus/dbus-message.c: port all of this over to support
6478 interface/member fields instead of name field
6480 * dbus/dbus-object-registry.c: port over
6482 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6483 from _dbus_string_validate_name
6485 * bus/dbus-daemon-1.1: change file format for the
6486 <deny>/<allow> stuff to match new message naming scheme
6488 * bus/policy.c: port over
6490 * bus/config-parser.c: parse new format
6492 2003-08-16 Havoc Pennington <hp@pobox.com>
6494 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6497 * glib/dbus-gproxy.c: some hacking
6499 2003-08-15 Havoc Pennington <hp@redhat.com>
6501 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6503 * dbus/dbus-connection.c
6504 (dbus_connection_send_with_reply_and_block): factor out internals;
6505 change to convert any error replies to DBusError instead of
6506 returning them as a message
6508 2003-08-15 Havoc Pennington <hp@pobox.com>
6510 * dbus/dbus-connection.c,
6511 dbus/dbus-pending-call.c: Finish the pending call stuff
6513 2003-08-14 Havoc Pennington <hp@redhat.com>
6515 * dbus/dbus-pending-call.c: start on new object that will replace
6516 DBusMessageHandler and ReplyHandlerData for tracking outstanding
6519 * dbus/dbus-gproxy.c: start on proxy object used to communicate
6520 with remote interfaces
6522 * dbus/dbus-gidl.c: do the boring boilerplate in here
6524 2003-08-12 Havoc Pennington <hp@pobox.com>
6526 * bus/dispatch.c (bus_dispatch): make this return proper
6527 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6529 * dbus/dbus-errors.c (dbus_set_error): use
6530 _dbus_string_append_printf_valist
6532 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6533 (_dbus_string_append_printf): new
6535 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6538 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6539 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6540 message is unhandled.
6542 2003-08-11 Havoc Pennington <hp@pobox.com>
6544 * bus/test.c (client_disconnect_handler): change to return
6545 HANDLED (would have been REMOVE_MESSAGE)
6547 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6548 HANDLED/NOT_YET_HANDLED instead of
6549 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
6552 2003-08-10 Havoc Pennington <hp@pobox.com>
6554 * tools/dbus-send.c (main): add --type argument, for now
6555 supporting only method_call and signal types.
6557 * tools/dbus-print-message.c: print message type
6559 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6560 init connection->objects
6562 * doc/dbus-specification.sgml: fix sgml
6564 * bus/*.c: port over to object-instance API changes
6566 * test/test-service.c: ditto
6568 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6569 name, we will have to fix up the rest of the code to also handle
6571 (dbus_message_new): generic message-creation call
6572 (set_string_field): allow appending name field
6574 2003-08-06 Havoc Pennington <hp@pobox.com>
6576 * dbus/dbus-object-registry.c: implement signal connection
6579 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6581 * dbus/dbus-internals.c (_dbus_memdup): new function
6583 2003-08-02 Havoc Pennington <hp@pobox.com>
6585 * dbus/dbus-message.c (dbus_message_get_no_reply)
6586 (dbus_message_set_no_reply): add these and remove
6587 set_is_error/get_is_error
6589 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
6590 remove the ERROR flag, since there's now an ERROR type
6592 2003-08-01 Havoc Pennington <hp@pobox.com>
6594 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6597 * dbus/dbus-message.c (dbus_message_get_type): new function
6599 * doc/dbus-specification.sgml: add "type" byte to messages
6601 2003-08-01 Havoc Pennington <hp@pobox.com>
6603 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6604 a message type enum to distinguish kinds of message
6605 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
6606 that need not be replied to
6608 2003-08-01 Havoc Pennington <hp@pobox.com>
6610 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6611 (unpack_8_octets): fix no-64-bit-int bug
6613 * dbus/dbus-object-registry.c (validate_id): validate the
6614 connection ID bits, not just the instance ID.
6616 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6617 the connection-global 33 bits of the object ID
6619 * dbus/dbus-object-registry.c (info_from_entry): fill in
6620 object ID in the new way
6622 * dbus/dbus-objectid.h: rather than high/low bits, specifically
6623 define server/client/instance bits.
6625 2003-07-30 Havoc Pennington <hp@pobox.com>
6627 * dbus/dbus-connection.c (dbus_connection_register_object): fix
6630 2003-07-13 Havoc Pennington <hp@pobox.com>
6632 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6633 fields to DBusObjectVTable and DBusObjectInfo
6635 2003-07-12 Havoc Pennington <hp@pobox.com>
6637 * dbus/dbus-object-registry.c: implement unit test,
6638 fix bugs discovered in process
6640 * dbus/dbus-connection.c: remove handler_table and
6641 register_handler(), add DBusObjectRegistry usage
6643 * dbus/dbus-objectid.c (dbus_object_id_is_null)
6644 (dbus_object_id_set_null): new functions
6646 2003-07-08 Havoc Pennington <hp@pobox.com>
6648 * dbus/dbus-object.c: implement some of this
6650 * dbus/dbus-object-registry.c
6651 (_dbus_object_registry_add_and_unlock): fill in the object_id out
6653 (_dbus_object_registry_new): handle OOM
6655 2003-07-08 Havoc Pennington <hp@pobox.com>
6657 * dbus/dbus-object.h: sketch out an API for registering objects
6658 with a connection, that allows us to use as little as 24 bytes
6659 per object and lets application code represent an object in
6660 any conceivable way.
6662 * dbus/dbus-object-registry.c: implement the hard bits of the
6663 DBusConnection aspect of object API. Not yet wired up.
6665 2003-07-06 Havoc Pennington <hp@pobox.com>
6667 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6668 (_dbus_marshal_object_id): new
6669 (_dbus_demarshal_object_id): new
6670 (_dbus_marshal_get_arg_end_pos): support object ID type, and
6671 consolidate identical switch cases. Don't conditionalize handling
6672 of DBUS_TYPE_UINT64, need to handle the type always.
6673 (_dbus_marshal_validate_arg): consolidate identical cases, and
6674 handle DBUS_TYPE_OBJECT_ID
6676 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6678 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6680 2003-09-28 Havoc Pennington <hp@pobox.com>
6684 2003-09-28 Havoc Pennington <hp@pobox.com>
6686 * doc/Makefile.am (dbus-specification.html): testing a funky hack
6687 to work with Debian db2html
6689 2003-09-28 Havoc Pennington <hp@pobox.com>
6691 * configure.in: 0.13
6693 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6694 stylesheet-images for benefit of Debian
6696 Change back to using filesystem-linked sockets for the system
6697 bus, so only root can create the default system bus address.
6699 * bus/system.conf.in: change to use
6700 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6702 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6705 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6706 here, and AC_DEFINE DBUS_SYSTEM_PATH
6708 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6711 * doc/busconfig.dtd:
6714 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6716 * doc/dbus-specification.sgml:
6717 Add activation reply values.
6719 2003-08-05 Havoc Pennington <hp@redhat.com>
6721 * configure.in: 0.12
6723 2003-08-05 Anders Carlsson <andersca@codefactory.se>
6725 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6726 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6727 (add_watch), (remove_watch), (create_source):
6728 Refcount fds, fixes some reentrancy issues.
6730 2003-07-30 Havoc Pennington <hp@redhat.com>
6732 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6733 bus address to be abstract if we have abstract sockets
6737 2003-07-28 Havoc Pennington <hp@redhat.com>
6739 * bus/messagebus.in: fix to avoid processname/servicename
6740 confusion, from Michael Kearey
6741 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6743 2003-07-23 Havoc Pennington <hp@pobox.com>
6745 * dbus/dbus-message.c (dbus_message_iter_get_named):
6746 fix from Andy Hanton to remove broken "+1"
6748 2003-07-16 Havoc Pennington <hp@pobox.com>
6750 * tools/dbus-launch.c (babysit): close stdout/stderr in the
6751 babysitter process, as suggested by Thomas Leonard, so
6752 an "eval `dbus-launch --exit-with-session`" will actually
6755 2003-07-16 Havoc Pennington <hp@pobox.com>
6757 * configure.in: print out EXPANDED_* variables in the summary at
6758 the end; clean up the code that computes EXPANDED_ variables and
6759 get the ones using exec_prefix right. Should make things work
6760 when you build without --prefix
6762 2003-06-29 Havoc Pennington <hp@pobox.com>
6764 * mono/Test.cs (class Test): fire up a main loop and run it
6766 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6767 done once, the app has to do it
6769 2003-06-26 Havoc Pennington <hp@pobox.com>
6771 * mono/Connection.cs: set up connection with the glib main loop
6773 2003-07-01 Havoc Pennington <hp@redhat.com>
6775 * doc/dbus-specification.sgml: clarify the format of a type code,
6776 change suggested by Jim Blandy
6778 2003-06-29 Miloslav Trmac <mitr@volny.cz>
6781 * tools/Makefile.am: Don't assume srcdir == builddir.
6783 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6784 the allocated block.
6785 (_dbus_memory_test): New function.
6786 * dbus/dbus-test.h: Add _dbus_memory_test ().
6787 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6789 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6791 (dbus_message_new): Remove obsolete @todo.
6793 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6794 (_dbus_marshal_set_uint64): Fix comment.
6796 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6797 hardcode FIELD_REPLY_SERIAL.
6799 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6800 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6802 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6803 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6805 2003-06-24 Havoc Pennington <hp@pobox.com>
6807 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6809 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6815 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6816 * gcj/org/.cvsignore:
6817 * gcj/org/Makefile.am:
6818 * gcj/org/freedesktop/.cvsignore:
6819 * gcj/org/freedesktop/Makefile.am:
6820 * gcj/org/freedesktop/dbus/.cvsignore:
6821 * gcj/org/freedesktop/dbus/Makefile.am:
6822 * gcj/org/freedesktop/dbus/Message.java: (Message),
6824 * gcj/org/freedesktop/dbus/natMessage.cc:
6825 Fix the build system.
6827 2003-06-22 Havoc Pennington <hp@pobox.com>
6829 * mono/Connection.cs: add more bindings
6831 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6834 2003-06-22 Havoc Pennington <hp@pobox.com>
6836 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6837 Start wrapping more stuff.
6839 2003-06-22 Havoc Pennington <hp@pobox.com>
6841 * mono/Message.cs: implement Message.Wrap() that ensures we only
6842 have a single C# wrapper per DBusMessage, assuming it works which
6843 it probably doesn't.
6845 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6846 (dbus_message_free_data_slot): new
6847 (dbus_message_set_data): new
6848 (dbus_message_get_data): new
6850 2003-06-22 Havoc Pennington <hp@pobox.com>
6852 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6853 (_dbus_data_slot_allocator_alloc): rework these to keep a
6854 reference count on each slot and automatically manage a global
6855 slot ID variable passed in by address
6857 * bus/bus.c: convert to new dataslot API
6859 * dbus/dbus-bus.c: convert to new dataslot API
6861 * dbus/dbus-connection.c: convert to new dataslot API
6863 * dbus/dbus-server.c: convert to new dataslot API
6865 * glib/dbus-gmain.c: ditto
6869 * bus/connection.c: ditto
6871 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6873 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6874 after the gcj checks so that the correct configuration tags
6875 will be added to libtool.
6877 * dbus-glib-1.pc.in: No need to specify any includes since
6878 dbus-1.pc.in has those.
6880 2003-06-22 Havoc Pennington <hp@pobox.com>
6882 * mono/*, gcj/*, configure.in, Makefile.am:
6883 Check in makefiles and subdirs for mono and gcj bindings.
6884 Neither binding actually exists, just trying to get through
6885 all the build and other boring bits.
6887 2003-06-21 Philip Blundell <philb@gnu.org>
6889 * tools/dbus-monitor.1: Updated.
6891 * tools/dbus-send.1: Likewise.
6893 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6895 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6896 for hangup and error after checking read so we won't discard
6897 pending data if both hangup and read are set.
6899 2003-06-19 Philip Blundell <philb@gnu.org>
6901 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6903 * tools/dbus-send.c: Accept both --system and --session.
6905 * tools/dbus-monitor.c: Same here.
6907 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6909 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6910 from C++ (Patch by Miloslav Trmac).
6912 2003-06-15 Joe Shaw <joe@assbarn.com>
6914 * configure.in: Check for socklen_t.
6916 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6918 * test/test-segfault.c: Add #include <sys/time.h>
6920 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6921 dbus-launch needs it.
6923 2003-06-09 Havoc Pennington <hp@redhat.com>
6925 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6926 SUN_LEN, it breaks abstract socket usage
6928 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6931 2003-06-04 Havoc Pennington <hp@pobox.com>
6933 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6934 using unix:abstract=/foo, and when listening in a tmpdir
6935 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6937 * dbus/dbus-transport.c (_dbus_transport_open): support
6940 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6941 support abstract sockets
6943 * dbus/dbus-transport-unix.c
6944 (_dbus_transport_new_for_domain_socket): support abstract sockets
6946 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6947 toggle as an argument, implement abstract namespace support
6948 (_dbus_listen_unix_socket): ditto
6950 * configure.in: add --enable-abstract-sockets and implement
6951 a configure check for autodetection of the right value.
6953 2003-06-01 Havoc Pennington <hp@pobox.com>
6955 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6956 in /tmp (though on Linux this will end up being useless,
6957 when we add abstract namespace support)
6959 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6962 2003-05-28 Colin Walters <walters@verbum.org>
6964 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6966 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6968 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6970 2003-05-17 Colin Walters <walters@gnu.org>
6972 * tools/dbus-send.c: Don't exit with an error code if --help was
6973 passed. Default to using the session bus instead of the system
6976 * tools/dbus-launch.c: Ditto.
6978 * tools/dbus-monitor.c: Ditto.
6980 * tools/dbus-send.1: Update with new arguments.
6982 * tools/dbus-launch.c: Emit code to export variables. New
6983 arguments -s and -c to specify shell syntax, and a bit of code to
6984 autodetect syntax. Also, allow specifying a program to run.
6986 * tools/dbus-launch.1: Update with new arguments.
6988 * tools/dbus-send.1: Ditto.
6990 * tools/dbus-monitor.1: Ditto.
6992 2003-05-17 Havoc Pennington <hp@pobox.com>
6994 * bus/config-parser.c (merge_included): merge in policies from
6995 child configuration file.
6997 * bus/policy.c (bus_policy_merge): function to merge two policies
7000 2003-05-16 Havoc Pennington <hp@redhat.com>
7002 * dbus/dbus-connection.c: disable verbose lock spew
7004 * tools/dbus-send.c: add --print-reply command line option
7006 * tools/dbus-print-message.h (print_message): new util function
7007 shared by dbus-send and dbus-monitor
7009 * tools/dbus-monitor.c (handler_func): exit on disconnect
7011 * dbus/dbus-transport-unix.c (do_reading): if the transport is
7012 disconnected, don't try to use the read_watch
7014 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7015 so we can find this bug more easily
7017 2003-05-16 Havoc Pennington <hp@redhat.com>
7019 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7020 NULL as DBusHashTable is annoyingly likely to do.
7022 2003-05-16 Colin Walters <walters@verbum.org>
7024 * tools/dbus-monitor.c: Add --session argument and usage()
7027 * tools/dbus-monitor.1: Update with new --session arg.
7029 * bus/Makefile.am (install-data-hook): Create
7030 $(libdir)/dbus-1.0/services so that the session bus is happy.
7032 2003-05-15 Havoc Pennington <hp@redhat.com>
7034 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7035 on non-x86. ifdef's are evil.
7037 2003-05-15 Havoc Pennington <hp@redhat.com>
7039 * configure.in: 0.11
7043 * bus/Makefile.am (initddir): apparently we are supposed to put
7044 init scripts in /etc/rc.d/init.d not /etc/init.d
7046 * bus/Makefile.am: remove the "you must --enable-tests to make
7047 check" as it broke distcheck
7049 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7051 2003-05-13 James Willcox <jwillcox@gnome.org>
7054 * bus/activation.c: (bus_activation_service_created),
7055 (bus_activation_activate_service):
7056 * bus/driver.c: (bus_driver_send_service_deleted),
7057 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7058 (bus_driver_send_service_acquired),
7059 (bus_driver_send_welcome_message),
7060 (bus_driver_handle_list_services):
7061 * bus/session.conf.in:
7062 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7063 (dbus_bus_service_exists), (dbus_bus_activate_service):
7066 Add some convenience API which lets you activate a service, and did a
7067 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7068 and dbus_message_get_args()
7070 2003-05-11 Havoc Pennington <hp@pobox.com>
7072 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7073 calling _dbus_marshal_validate_arg() for every byte in a byte
7076 * dbus/dbus-message-handler.c: use atomic reference counting to
7077 reduce number of locks slightly; the global lock in here sucks
7079 * dbus/dbus-connection.c
7080 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7081 update_dispatch_status that can be called with lock held; then use
7082 in a couple places to reduce locking/unlocking
7083 (dbus_connection_send): hold the lock over the whole function
7084 instead of acquiring it twice.
7086 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7088 * bus/connection.c (bus_connections_setup_connection): fix access
7089 to already-freed memory.
7091 * dbus/dbus-connection.c: keep a little cache of linked list
7092 nodes, to avoid using the global linked list alloc lock in the
7093 normal send-message case. Instead we just use the connection lock
7094 that we already have to take.
7096 * dbus/dbus-list.c (_dbus_list_find_last): new function
7098 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7099 change to use a struct for the atomic type; fix docs,
7100 they return value before increment, not after increment.
7102 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7103 (_dbus_string_append_8_aligned): new functions to try to
7104 microoptimize this operation.
7105 (reallocate_for_length): break this out of set_length(), to
7106 improve profile info, and also so we can consider inlining the
7109 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7110 strings with some preallocation, cuts down on our calls to realloc
7111 a fair bit. Though if we can get the "move entire string to empty
7112 string" optimization below to kick in here, it would be better.
7114 * dbus/dbus-string.c (_dbus_string_move): just call
7115 _dbus_string_move_len
7116 (_dbus_string_move_len): add a special case for moving
7117 an entire string into an empty string; we can just
7118 swap the string data instead of doing any reallocs.
7119 (_dbus_string_init_preallocated): new function
7121 2003-05-11 Havoc Pennington <hp@pobox.com>
7123 Write a "test-profile" that does echo client-server with threads;
7124 profile reveals lock contention, memcpy/realloc of buffers, and
7125 UTF-8 validation as hot spots. 20% of lock contention eliminated
7126 with dbus_atomic_inc/dec implementation on x86. Much remaining
7127 contention is global mempool locks for GList and DBusList.
7129 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7132 * dbus/dbus-connection.c (struct DBusConnection): use
7133 dbus_atomic_t for the reference count
7135 * dbus/dbus-message.c (struct DBusMessage): declare
7136 dbus_atomic_t values as volatile
7138 * configure.in: code to detect ability to use atomic integer
7139 operations in assembly, from GLib patch
7141 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7142 time, tired of it being wrong in threads and forked processes
7144 * glib/test-profile.c: a little program to bounce messages back
7145 and forth between threads and eat CPU
7147 * dbus/dbus-connection.c: add debug spew macros for debugging
7148 thread locks; include config.h at top; fix deadlock in
7149 dbus_connection_flush()
7151 2003-05-08 Havoc Pennington <hp@pobox.com>
7153 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7154 data from getting written, and there wasn't a good reason to
7157 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7158 dbus_verbose lines in test coverage
7159 (main): add list of functions sorted by # of untested blocks
7160 to the coverage report
7162 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7164 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7166 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7167 extend test coverage
7169 * test/data/auth/cancel.auth-script: test canceling an
7172 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7173 aren't used. in CVS history if we end up needing them.
7175 2003-05-04 Havoc Pennington <hp@pobox.com>
7177 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7180 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7181 function, which assumed length was in # of strings, not bytes
7183 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7186 * dbus/dbus-connection.c
7187 (_dbus_connection_queue_received_message): disable function for
7188 now, we are only using it in test mode
7190 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7191 remove a mistaken FIXME
7193 2003-05-04 Havoc Pennington <hp@pobox.com>
7195 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7196 unlock mutex on successful return, patch from Anders Gustafsson
7198 2003-05-04 Havoc Pennington <hp@pobox.com>
7200 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7203 2003-05-04 Havoc Pennington <hp@pobox.com>
7205 * tools/dbus-launch.c: implement
7207 * bus/main.c (main), bus/bus.c (bus_context_new):
7208 implement --print-pid and --fork
7210 2003-05-03 Havoc Pennington <hp@redhat.com>
7212 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7213 the address had no value, and add to test suite. Fix and
7214 regression test from Miloslav Trmac
7216 2003-05-03 Havoc Pennington <hp@pobox.com>
7218 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7219 watch is invalid when handled
7221 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7222 dbus-launch utility to launch the bus from a shell script. Didn't
7223 actually implement dbus-launch yet, it's just a placeholder still.
7225 2003-05-03 Havoc Pennington <hp@pobox.com>
7227 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7228 daemon; also documents daemon config file, so replaces
7229 doc/config-file.txt. Corrected some stuff from config-file.txt in
7230 the process of moving it.
7232 2003-05-03 Havoc Pennington <hp@pobox.com>
7234 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7237 2003-05-03 Colin Walters <walters@verbum.org>
7239 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7240 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7242 * Makefile.am: Update to use new .pc versioning scheme.
7244 2003-05-02 Havoc Pennington <hp@redhat.com>
7246 * bus/system.conf.in: allow send/receive to/from message bus
7249 2003-04-30 Havoc Pennington <hp@redhat.com>
7251 * configure.in: print a note when building with unit tests and
7254 2003-04-30 Havoc Pennington <hp@redhat.com>
7256 * Makefile.am: add a check-local that complains if you didn't
7257 configure with --enable-tests
7259 2003-04-29 Havoc Pennington <hp@redhat.com>
7261 * glib/dbus-gmain.c: docs cleanups
7263 * dbus/dbus-types.h: add docs on int64 types
7265 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7266 public API docs section
7268 2003-04-29 Havoc Pennington <hp@redhat.com>
7270 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7271 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7272 parallel install API version, not with the D-BUS package version.
7274 * HACKING: move some of README over here
7276 * README: updates, and document API/ABI policy
7278 * configure.in: reindentation
7280 2003-04-29 Havoc Pennington <hp@redhat.com>
7282 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7283 to use this library" to be sure people have the right
7286 2003-04-28 Havoc Pennington <hp@redhat.com>
7288 * configure.in: add --enable-docs which by default is auto yes if
7289 doxygen and db2html found, no otherwise; but can be forced on/off
7291 * doc/Makefile.am: conditionalize whether to build docs on
7294 2003-04-28 Havoc Pennington <hp@redhat.com>
7296 * configure.in: 0.10
7300 * bus/system.conf.in: add <includedir>system.d</includedir>
7302 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7303 username was provided but not uid
7305 * bus/config-parser.c (struct BusConfigParser): keep track of
7306 whether the parser is toplevel or was included; change some
7307 of the error handling if it's included.
7309 2003-04-27 Havoc Pennington <hp@pobox.com>
7313 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7314 report correct status if we finish processing authentication
7315 inside this function.
7317 * bus/activation.c (try_send_activation_failure): use
7318 bus_transaction_send_error_reply
7320 * bus/connection.c (bus_connection_get_groups): return an error
7321 explaining the problem
7323 * bus/bus.c (bus_context_check_security_policy): implement
7324 restriction here that inactive connections can only send the
7325 hello message. Also, allow bus driver to send anything to
7328 * bus/connection.c (bus_connection_complete): create the
7329 BusClientPolicy here instead of on-demand.
7330 (bus_connection_get_policy): don't return an error
7332 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7333 sender field in message being replied to
7335 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7336 causing it to return FALSE always
7338 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7339 we checked sender rather than destination
7341 2003-04-25 Havoc Pennington <hp@redhat.com>
7343 test suite is slightly hosed at the moment, will fix soon
7345 * bus/connection.c (bus_connections_expire_incomplete): fix to
7346 properly disable the timeout when required
7347 (bus_connection_set_name): check whether we can remove incomplete
7348 connections timeout after we complete each connection.
7350 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7351 probably still broken.
7353 * bus/services.c (bus_registry_acquire_service): implement max
7354 number of services owned, and honor allow/deny rules on which
7355 services a connection can own.
7357 * bus/connection.c (bus_connection_get_policy): report errors here
7359 * bus/activation.c: implement limit on number of pending
7362 2003-04-25 Havoc Pennington <hp@redhat.com>
7364 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7365 where we used >= 0 instead of != DBUS_UID_UNSET.
7367 2003-04-25 Havoc Pennington <hp@redhat.com>
7369 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7370 were toggled without add/remove, fix from Anders Gustafsson
7372 2003-04-24 Havoc Pennington <hp@redhat.com>
7374 * test/data/valid-config-files/basic.conf: add <limit> tags to
7377 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7378 <limit> tag in configuration file.
7380 2003-04-24 Havoc Pennington <hp@redhat.com>
7382 * bus/dispatch.c: somehow missed some name_is
7384 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7385 (_dbus_timeout_set_interval): new
7387 * bus/connection.c (bus_connections_setup_connection): record time
7388 when each connection is first set up, and expire them after the
7389 auth timeout passes.
7391 2003-04-24 Havoc Pennington <hp@redhat.com>
7393 * dbus/dbus-message.c (dbus_message_name_is): rename
7394 (dbus_message_service_is): rename
7395 (dbus_message_sender_is): rename
7396 (dbus_message_get_service): rename
7398 2003-04-24 Havoc Pennington <hp@redhat.com>
7400 * configure.in: add --enable-checks
7402 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7404 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7405 to use thread locks.
7406 (_dbus_connection_handler_destroyed_locked): move some private
7407 functions into proper docs group
7409 * dbus/dbus-internals.h: add _dbus_return_if_fail,
7410 _dbus_return_val_if_fail
7412 Throughout: use dbus_return_if_fail
7414 2003-04-23 James Willcox <jwillcox@gnome.org>
7417 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7418 (dbus_connection_setup_with_g_main),
7419 (dbus_server_setup_with_g_main):
7420 * glib/test-dbus-glib.c: (main):
7421 * glib/test-thread-client.c: (main):
7422 * glib/test-thread-server.c: (new_connection_callback), (main):
7423 * tools/dbus-monitor.c: (main):
7425 Added a GMainContext argument to dbus_connection_setup_with_g_main()
7426 and dbus_server_setup_with_g_main().
7428 2003-04-20 Havoc Pennington <hp@pobox.com>
7430 * doc/dbus-specification.sgml: document the restrictions on
7431 message and service names
7433 2003-04-22 Havoc Pennington <hp@redhat.com>
7435 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7436 support, and do some code cleanups to share more code and
7437 speed up array marshal/demarshal.
7439 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7441 * configure.in: generate dbus-arch-deps.h
7443 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7446 2003-04-22 Havoc Pennington <hp@redhat.com>
7448 * test/data/valid-messages/opposite-endian.message: fix test
7449 to use proper type for rply field
7451 * test/data/invalid-messages: add tests for below validation
7453 * dbus/dbus-message.c (decode_header_data): validate field types,
7454 and validate that named fields are valid names
7455 (decode_name_field): consider messages in the
7456 org.freedesktop.Local. namespace to be invalid.
7458 * dbus/dbus-string.c (_dbus_string_validate_name): new
7460 2003-04-19 Havoc Pennington <hp@pobox.com>
7462 * bus/driver.c (bus_driver_handle_hello): check limits and
7463 return an error if they are exceeded.
7465 * bus/connection.c: maintain separate lists of active and inactive
7466 connections, and a count of each. Maintain count of completed
7467 connections per user. Implement code to check connection limits.
7469 * dbus/dbus-list.c (_dbus_list_unlink): export
7471 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7472 number of bytes in the message queue for a connection
7474 2003-04-18 Havoc Pennington <hp@pobox.com>
7476 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7478 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7481 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7482 on realloc be sure to update the pointer in the keyring
7484 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7485 offset to avoid writing to unallocated memory
7487 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7488 try the next mechanism, so we properly handle OOM
7490 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7492 (_dbus_keyring_new): fix OOM bug
7493 (_dbus_keyring_new_homedir): always set error; impose a maximum
7494 number of keys we'll load from the file, mostly to speed up the
7495 test suite and make its OOM checks more useful, but also for
7498 * dbus/dbus-auth.c (process_error_server): reject authentication
7499 if we get an error from the client
7500 (process_cancel): on cancel, send REJECTED, per the spec
7501 (process_error_client): send CANCEL if we get an error from the
7504 2003-04-18 Havoc Pennington <hp@pobox.com>
7506 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7509 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7512 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7513 about DBUS_TEST_HOMEDIR once
7515 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7518 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7519 config file so we test the right thing
7521 Throughout: assorted docs improvements
7523 2003-04-18 Havoc Pennington <hp@pobox.com>
7525 * glib/dbus-gmain.c: adapt to watch changes
7527 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7529 * dbus/dbus-server.h: remove dbus_server_handle_watch
7531 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7533 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7534 like DBusTimeout, so we don't need dbus_connection_handle_watch
7537 2003-04-17 Havoc Pennington <hp@redhat.com>
7539 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7540 database usage so it all goes via the DBusUserDatabase cache.
7542 2003-04-17 Havoc Pennington <hp@redhat.com>
7544 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7545 there was an OOM watch we skipped, we always return TRUE so we
7546 iterate again to have a look at it again. Fixes test suite hang.
7547 Code rearrangement also lets us lose some memset and only iterate
7548 over callbacks once.
7550 * bus/driver.c (bus_driver_handle_message): sense of test for
7553 2003-04-16 Havoc Pennington <hp@pobox.com>
7555 * doc/dbus-specification.sgml: make spec say serials are unsigned
7557 * dbus/dbus-message.h: change message serials to unsigned
7559 * dbus/dbus-connection.c: adapt to message serials being unsigned
7561 2003-04-15 Havoc Pennington <hp@pobox.com>
7563 * bus/bus.c: create and keep around a shared DBusUserDatabase
7566 * bus/connection.c (bus_connection_get_groups): don't cache
7567 groups for user in the connection object, since user database
7568 object now does that.
7570 2003-04-16 Havoc Pennington <hp@redhat.com>
7572 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7573 list of size counters
7574 (_dbus_message_loader_putback_message_link): put back a popped link
7576 * dbus/dbus-connection.c
7577 (dbus_connection_set_max_live_messages_size): rename
7579 (dbus_connection_get_outgoing_size): get size of outgoing
7581 (_dbus_connection_set_connection_counter): remove this cruft
7583 2003-04-14 Havoc Pennington <hp@redhat.com>
7585 * dbus/dbus-userdb.c: user database abstraction, mostly to get
7586 caching, but at some point we might want to be able to use a
7589 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7590 SHA1 conf file to test the sha1 auth mechanism, since the regular
7591 test always uses EXTERNAL when available.
7594 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7595 add conf file that requires use of sha1 auth
7597 2003-04-13 Havoc Pennington <hp@pobox.com>
7599 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7600 from Philip Blundell to send messages and monitor them.
7602 2003-04-13 Havoc Pennington <hp@pobox.com>
7604 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7607 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7610 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7611 fix to only recover unused bytes if we're already authenticated
7612 (_dbus_transport_get_is_authenticated): fix to still mark us
7613 authenticated if there are unused bytes.
7615 * bus/dispatch.c: implement security policy checking
7617 * bus/connection.c (bus_transaction_send_from_driver): new
7619 * bus/bus.c (bus_context_check_security_policy): new
7621 * bus/dispatch.c (send_service_nonexistent_error): delete this,
7622 now we just set the DBusError and it gets converted to an error
7625 * bus/connection.c (allow_user_function): enable code using actual
7626 data from the config file
7628 * bus/policy.c (list_allows_user): handle wildcard rules for
7629 user/group connection perms
7631 2003-04-13 Havoc Pennington <hp@pobox.com>
7633 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7635 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7637 * bus/policy.c (bus_policy_append_mandatory_rule)
7638 (bus_policy_append_default_rule, bus_policy_append_user_rule)
7639 (bus_policy_append_group_rule): new functions
7641 2003-04-12 Havoc Pennington <hp@pobox.com>
7643 * bus/config-parser.c (bus_config_parser_new): fix a memleak
7645 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7646 the pid/gid/uid, just for paranoia.
7648 * test/break-loader.c (randomly_do_n_things): find a byte
7649 containing a type code, and randomly change it to a different
7652 2003-04-12 Havoc Pennington <hp@pobox.com>
7654 * bus/policy.h: change BusPolicy to be the thing from the config
7655 file, and rename old BusPolicy to BusClientPolicy
7657 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7658 match change in how policy works
7660 * dbus/dbus-internals.h: mark assert_not_reached as
7661 __attribute((noreturn))__
7663 2003-04-11 Havoc Pennington <hp@redhat.com>
7665 * doc/dbus-specification.sgml: fix a spot with the wrong name for
7666 the broadcast service. Use boolean return for ServiceExists.
7668 2003-04-11 Havoc Pennington <hp@redhat.com>
7670 * configure.in: add another directory to look for qt in.
7672 2003-04-11 Havoc Pennington <hp@redhat.com>
7674 * AUTHORS: add Colin Walters
7676 2003-04-11 Havoc Pennington <hp@redhat.com>
7682 2003-04-11 Havoc Pennington <hp@redhat.com>
7684 * bus/messagebus.in: remove pid file when stopping the
7685 message bus, since the bus won't have privileges to remove it
7688 2003-04-11 Havoc Pennington <hp@redhat.com>
7690 * bus/bus.c (bus_context_new): move credentials change after
7693 2003-04-11 Havoc Pennington <hp@pobox.com>
7695 * test/decode-gcov.c: add "below average functions" to the
7696 coverage report, and change how some of the code works.
7698 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7699 not in the coverage stats.
7701 * test/test-service.c (main): use _dbus_verbose not fprintf in a
7702 couple places so running the test suite doesn't result in megaspam.
7704 2003-04-11 Havoc Pennington <hp@pobox.com>
7706 * bus/dispatch.c (check_existent_service_activation): accept a no
7707 memory error in a place we didn't before
7709 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7710 in case the first one failed," since the test suite is less
7713 2003-04-10 Havoc Pennington <hp@pobox.com>
7715 * bus/dispatch.c (check_segfault_service_activation): add test
7716 for launching an executable that just crashes.
7718 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7719 don't leave a million cores. We'll see how portable this is.
7721 2003-04-10 Havoc Pennington <hp@pobox.com>
7723 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7724 the possible parent failures before we fork, so that we don't
7725 fail to create a babysitter after creating the child.
7727 * bus/activation.c (bus_activation_activate_service): kill child
7728 if we don't successfully complete the activation.
7730 2003-04-10 Havoc Pennington <hp@redhat.com>
7732 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7733 the connection if it's disconnected
7735 * bus/activation.c (bus_activation_service_created): use new
7736 transaction features to roll back removal of pending activation if
7737 we don't successfully create the service after all. Don't remove
7738 pending activation if the function fails.
7740 * dbus/dbus-list.c (_dbus_list_insert_before_link)
7741 (_dbus_list_insert_after_link): new code to facilitate
7744 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7745 new functionality, so we can preallocate the ability to insert
7748 * bus/connection.c (bus_transaction_add_cancel_hook): new function
7749 allowing us to put custom hooks in a transaction to be used for
7750 cancelling said transaction
7752 * doc/dbus-specification.sgml: add some discussion of secondary
7753 service owners, and disallow zero-length service names
7755 * bus/services.c (bus_registry_acquire_service): new function,
7756 splits out part of bus_driver_handle_acquire_service() and fixes
7757 a bug where we didn't remove the service doing the acquiring
7758 from the secondary queue if we failed to remove the current owner
7759 from the front of the queue.
7761 2003-04-10 Alexander Larsson <alexl@redhat.com>
7763 * doc/dbus-specification.sgml:
7764 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7766 2003-04-10 Alexander Larsson <alexl@redhat.com>
7771 Added files to cvsignore
7773 * dbus/dbus-message.h:
7774 * dbus/dbus-message.c: (dbus_message_iter_get_named):
7775 Make get_named() take two out argument and return a boolean.
7776 (dbus_message_iter_get_args_valist):
7777 Update usage of get_named().
7778 (dbus_message_iter_append_byte):
7780 (dbus_message_iter_append_named)
7782 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7785 2003-04-10 Alexander Larsson <alexl@redhat.com>
7787 * dbus/dbus-marshal.[ch]:
7788 Add array_type_pos argument to _dbus_marshal_validate_arg.
7789 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7791 * dbus/dbus-message.[ch]:
7792 Multi-dimensional arrays have full type specification in the
7793 outermost array. Iter code re-arranged to handle this.
7794 Added some more iter tests.
7796 * doc/dbus-specification.sgml:
7799 Update new array encoding description.
7800 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7802 * test/data/invalid-messages/array-with-mixed-types.message:
7803 * test/data/valid-messages/array-of-array-of-uint32.message:
7804 Change to the new array format.
7806 * test/data/invalid-messages/too-short-dict.message:
7809 * test/data/valid-messages/recursive-types.message:
7810 Fix up and extend test.
7812 2003-04-10 Havoc Pennington <hp@pobox.com>
7814 * bus/dispatch.c: lots of fixes
7816 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7817 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7818 that was crack, broke the test service.
7820 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7821 handling to avoid piling up errors if we get a failure on the
7824 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7825 pid in assertion failures.
7827 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7828 to some fixed size of file descriptor array. Don't return TRUE
7829 anytime a timeout exists, that led to lots of busy loop silliness
7832 2003-04-09 Havoc Pennington <hp@redhat.com>
7834 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7835 I'd checked this in earlier but hadn't.
7837 2003-04-09 Havoc Pennington <hp@redhat.com>
7839 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7840 the activation test (man this is getting old!)
7842 2003-04-09 Havoc Pennington <hp@redhat.com>
7844 * test/test-utils.c: use dispatch status function to fix this up
7846 * bus/connection.c (connection_watch_callback): don't dispatch
7848 (connection_timeout_callback): don't dispatch from here
7849 (bus_connections_setup_connection): set the dispatch status function
7850 (bus_connection_disconnected): unset it
7852 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7853 used to add a connection to be dispatched
7854 (_dbus_loop_iterate): do the dispatching at the end of each
7857 * dbus/dbus-connection.c
7858 (dbus_connection_set_dispatch_status_function): new function
7859 allowing us to fix up main loop usage
7860 (_dbus_connection_last_unref): free all the various function
7862 (dbus_connection_dispatch): call the DispatchStatusFunction
7863 whenever this function returns
7864 (dbus_connection_handle_watch): call DispatchStatusFunction
7865 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7866 (reply_handler_timeout): call DispatchStatusFunction
7867 (dbus_connection_flush): call DispatchStatusFunction
7869 2003-04-09 Havoc Pennington <hp@redhat.com>
7871 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7874 * bus/dispatch.c (check_service_activated): fix bug in test
7876 * dbus/dbus-mainloop.c (check_timeout): fix this up
7878 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7879 verbose output so we can sort out output from different processes,
7880 e.g. in the activation case.
7882 2003-04-08 Colin Walters <walters@gnu.org>
7884 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7886 (bus_context_new): Set it.
7887 (bus_context_unref): Use it to delete the pid file.
7889 2003-04-08 Havoc Pennington <hp@redhat.com>
7891 * test/data/invalid-messages/array-with-mixed-types.message:
7892 regression test that fails for the moment
7894 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7895 tests for convenience
7897 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7898 array of nil, it broke things.
7900 * test/data/invalid-messages/array-of-nil.message: regression test
7902 * test/data/valid-messages/array-of-array-of-uint32.message:
7903 happened to write this so added it to suite
7905 2003-04-08 Havoc Pennington <hp@redhat.com>
7907 * bus/driver.c (bus_driver_handle_acquire_service): init
7908 retval/reply before checking name
7910 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7911 recursion depth argument
7913 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7914 in the public struct for future extension
7916 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7919 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7922 * doc/dbus-specification.sgml: fix typo
7924 2003-04-08 Alexander Larsson <alexl@redhat.com>
7926 Implemented recursive types, named types and new-style iters
7929 * glib/test-thread-client.c: (thread_func):
7930 * glib/test-thread-server.c: (handle_test_message):
7931 * test/test-service.c: (handle_echo):
7940 * dbus/dbus-internals.c: (_dbus_type_to_string):
7941 Update for new types.
7943 * dbus/dbus-marshal.[ch]:
7944 Implement recursive types and the new marshalling format.
7945 Remove hardcoded dict marshalling.
7946 Marshal named types.
7948 * dbus/dbus-message-builder.c:
7950 Remove references to old types
7952 * dbus/dbus-message.[ch]:
7953 New non-refcounted iter API that supports recursive iters.
7954 Use iters for appending, including support for recursive
7956 Add byte and named type support.
7957 Update everything to new marshalling formats.
7958 Add tests for new API.
7960 * dbus/dbus-protocol.h:
7961 Remove old array types.
7962 Add types: BYTE, ARRAY, DICT, NAMED
7964 * dbus/dbus-string.c:
7965 * dbus/dbus-sysdeps.c:
7966 Make parse_double locale safe.
7968 * dbus/dbus-test-main.c:
7974 * doc/dbus-specification.sgml:
7977 * test/data/incomplete-messages/missing-body.message:
7978 * test/data/invalid-messages/bad-boolean.message:
7979 * test/data/invalid-messages/bad-boolean-array.message:
7980 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7981 * test/data/invalid-messages/boolean-has-no-value.message-raw:
7982 * test/data/invalid-messages/too-short-dict.message:
7983 * test/data/valid-messages/dict-simple.message:
7984 * test/data/valid-messages/dict.message:
7985 * test/data/valid-messages/emptiness.message:
7986 * test/data/valid-messages/lots-of-arguments.message:
7987 * test/data/valid-messages/no-padding.message:
7988 * test/data/valid-messages/recursive-types.message:
7989 Add missing NAME fields
7990 Fix up dicts & arrays
7992 * test/data/invalid-messages/dict-with-nil-value.message:
7993 Removed, this is not invalid anymore.
7995 * test/data/valid-messages/recursive-types.message:
7996 Add new test for deeply recursive types.
7998 2003-04-07 Havoc Pennington <hp@pobox.com>
8000 * bus/driver.c (bus_driver_handle_acquire_service): return an
8001 error if you try to acquire a service that starts with ':'
8003 2003-04-07 Havoc Pennington <hp@redhat.com>
8005 * doc/dbus-specification.sgml: require that base service names
8006 start with ':' and that the base service is created/deleted
8007 as first and last things a connection does on the bus
8009 * bus/dispatch.c (check_existent_service_activation): lots more
8010 work on the activation test; it doesn't fully pass yet...
8012 * test/test-service.c (main): fix so we don't memleak the
8013 connection to the message bus
8014 (filter_func): accept a message asking us to exit
8016 2003-04-06 Havoc Pennington <hp@pobox.com>
8018 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8021 * configure.in: fixes to Qt detection from Colin Walters
8023 * doc/Makefile.am: Only remove generated docbook dirs if they
8024 exist, from Colin Walters
8026 * dbus/dbus-bus.c: change how we set well-known connections to
8027 NULL, so that it works if a single connection is stored in
8028 two well-known array slots.
8030 * test/Makefile.am: remove a lot of stuff that isn't immediately
8031 useful, it's in CVS history if we want it.
8033 * test/test-service.c: use dbus-mainloop instead of that
8036 2003-04-06 Havoc Pennington <hp@pobox.com>
8038 * dbus/Makefile.am: split lists of sources into stuff that goes in
8039 the library, util functions that go in the lib and are also used
8040 elsewhere, and util functions that are used in tests/daemon but
8041 don't go in the lib.
8043 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8044 here so it can be used in test binaries also
8046 2003-04-06 Havoc Pennington <hp@pobox.com>
8048 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8049 here in the parent process, so we can return an error if it
8050 fails. Also, move some of the code into the child so the parent
8051 is less hosed if we fail midway through.
8053 * bus/bus.c (bus_context_new): move pidfile detection further up
8054 in the function, before we start overwriting sockets and such.
8056 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8058 * configure.in: add --with-system-pid-file and --with-system-socket
8060 2003-04-06 Colin Walters <walters@verbum.org>
8062 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8064 * bus/system.conf.in: Declare a pidfile.
8066 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8067 create one (if appropriate).
8069 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8070 (struct BusConfigParser) [pidfile]: New.
8071 (element_type_to_name, merge_included, start_busconfig_child)
8072 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8073 (bus_config_parser_unref): Free it.
8074 (bus_config_parser_get_pidfile): New function.
8076 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8078 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8080 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8082 * dbus/dbus-sysdeps.h: Prototype it.
8084 2003-04-06 Havoc Pennington <hp@pobox.com>
8086 * bus/bus.c (bus_context_new): print the address in here, rather
8087 than in main(), because we need to do it before forking the daemon
8089 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8090 on the service nonexistent error
8092 * bus/driver.c (bus_driver_handle_acquire_service): set the
8093 sender on the AcquireService reply
8095 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8096 server also listen on a UNIX socket so services can connect to it.
8098 2003-04-06 Havoc Pennington <hp@pobox.com>
8100 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8101 so it detects deadlocks and also we actually init threads when
8104 2003-04-06 Havoc Pennington <hp@pobox.com>
8106 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8107 save the domain socket name, and unlink it when we disconnect the
8108 server. Means that at least when we exit normally, we won't leave
8109 a bunch of junk in /tmp
8111 * dbus/dbus-transport-unix.c
8112 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8113 memory management). (I was making a real change here but then
8116 2003-04-06 Havoc Pennington <hp@pobox.com>
8118 * bus/bus.c (bus_context_new): fix wrong handling of
8119 server_data_slot_unref() in the error case.
8121 * dbus/dbus-internals.h (_dbus_assert): change so it passes
8122 "(condition) != 0" to _dbus_real_assert so that
8123 "_dbus_assert (pointer)" doesn't cause a warning
8125 * bus/main.c (main): accept --print-address option to print out
8126 the message bus address
8128 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8130 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8131 "tmpdir" option to unix: address on client side
8133 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8136 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8137 we can use to create sockets in the test suite.
8139 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8140 cleanly. To be used for testing.
8142 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8144 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8146 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8147 handle trying to call this when there's no servers active
8149 2003-04-05 Havoc Pennington <hp@pobox.com>
8155 2003-04-05 Havoc Pennington <hp@pobox.com>
8157 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8158 crash on startup. Need to get "try starting the daemon"
8159 in the test suite I guess. ;-)
8161 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8162 tracked the number of open connections; it's better done in
8163 application-specific code as you want it to span all servers etc.
8165 2003-04-05 Havoc Pennington <hp@pobox.com>
8167 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8168 patch from Colin Walters
8170 2003-04-05 Havoc Pennington <hp@pobox.com>
8172 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8173 reality; in fact multiple mechanisms are allowed.
8175 * dbus/dbus-internals.c (_dbus_real_assert)
8176 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8177 _dbus_assert_not_reached() into functions, so that they don't show
8178 up in basic block counts for test coverage, and don't use up as
8179 much disk space. Does mean slower execution speed though, so
8180 assumes --disable-asserts is the normal production case.
8182 2003-04-05 Havoc Pennington <hp@pobox.com>
8184 * test/Makefile.am (dist-hook): also dist *.in files
8190 2003-04-05 Havoc Pennington <hp@pobox.com>
8192 * dbus/dbus-string.c: docs warning
8194 * dbus/dbus-spawn.c: missing docs
8196 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8198 2003-04-05 Havoc Pennington <hp@pobox.com>
8200 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8203 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8204 to -1 once we've reaped the babysitter
8205 (_dbus_babysitter_handle_watch): do as much work as we can, not
8208 * bus/activation.c: add code using DBusBabysitter so that we
8209 handle it when a service fails to start up properly.
8210 (bus_activation_service_created): don't remove the activation
8211 entries as we go, just let them get removed when we free the pending
8212 activation. Unref reply messages after sending them.
8214 2003-04-05 Havoc Pennington <hp@pobox.com>
8216 * test/decode-gcov.c (main): print per-directory stats in the report
8218 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8220 2003-04-05 Havoc Pennington <hp@pobox.com>
8222 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8224 * test/decode-gcov.c: hack up a little program to suck data
8225 out of gcov files. Yes this is sort of silly.
8227 * configure.in: define something in config.h and do an
8228 AM_CONDITIONAL when gcov is enabled
8230 2003-04-04 Havoc Pennington <hp@redhat.com>
8232 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8233 return a "babysitter" object that is used to monitor the status of
8234 the spawned process and reap it when required.
8236 * test/test-segfault.c, test/test-exit.c,
8237 test/test-sleep-forever.c: binaries that do various lame things,
8238 used in the test suite.
8240 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8242 2003-04-03 Havoc Pennington <hp@pobox.com>
8244 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8245 in preparation for modifying it, dbus-sysdeps is getting
8248 2003-04-03 Havoc Pennington <hp@redhat.com>
8250 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8253 * bus/*.[hc]: adapt to mainloop change
8255 2003-04-03 Havoc Pennington <hp@redhat.com>
8257 * bus/activation.c (load_directory): fix up memleaks
8258 (bus_activation_entry_free): free the entry
8260 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8261 we get one from the message bus; fix memleaks.
8263 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8265 2003-04-03 Havoc Pennington <hp@pobox.com>
8267 * bus/config-parser.c (bus_config_parser_unref): free
8268 list of mechanisms, bug discovered by test suite enhancements
8269 (putting system.conf and session.conf into suite)
8271 * test/Makefile.am, test/test-service.c: add placeholder for a
8272 test service that we'll activate as part of test suite. Doesn't
8275 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8276 setting NULL value, and use system malloc not dbus_malloc()
8277 when we have unavoidable memleakage.
8279 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8280 didn't work, and support DBUS_BUS_ACTIVATION.
8282 * bus/activation.c (child_setup): pass our well-known bus type to
8285 * bus/config-parser.c: support <type> to specify well-known type
8287 * doc/dbus-specification.sgml: document the env variables to
8288 locate well-known buses and find service activator
8290 2003-04-02 Havoc Pennington <hp@redhat.com>
8292 * test/Makefile.am (all-local): add a rule to copy tests to
8293 builddir, so we can have generated tests. Use this to remove the
8294 silly hack for testing system.conf and session.conf. Will use this
8295 shortly to generate .service files pointing to test binaries.
8297 2003-04-02 Havoc Pennington <hp@redhat.com>
8299 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8300 current alloc and needed new length, not max of the doubled
8301 allocation and needed new length. Also, when building tests,
8302 don't do the double-allocation stuff, just realloc every time.
8304 2003-04-02 Havoc Pennington <hp@redhat.com>
8306 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8308 (_dbus_string_get_dirname): new
8309 (_dbus_sysdeps_test): new
8310 (_dbus_directory_open): include dirnames in error messages
8312 * bus/config-parser.c: interpret <include> and <includedir> and
8313 <servicedir> relative to config file location if the given
8314 filename is not absolute.
8316 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8318 2003-04-02 Havoc Pennington <hp@redhat.com>
8320 * bus/connection.c (bus_transaction_send_error_reply): set sender
8321 service for the error, and unref the reply on success
8323 * bus/activation.c: convert to use BusTransaction so OOM can be
8325 (bus_activation_service_created): set sender of the message
8327 2003-04-01 Havoc Pennington <hp@redhat.com>
8329 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8330 <includedir> (at least mostly)
8332 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8333 first, then the user ID
8335 2003-04-01 Havoc Pennington <hp@pobox.com>
8337 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8340 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8342 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8344 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8345 socket 0777, and unlink any existing socket.
8347 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8348 the configuration file so specifies; set up auth mechanism
8351 * bus/config-parser.c (bus_config_parser_content): add support
8352 for <fork> option and fill in code for <auth>
8354 * bus/system.conf.in: add <fork/> to default configuration,
8355 and limit auth mechanisms to EXTERNAL
8357 * doc/config-file.txt (Elements): add <fork>
8359 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8360 (_dbus_change_identity): new function
8362 2003-03-31 Havoc Pennington <hp@redhat.com>
8364 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8365 (_dbus_listen_unix_socket): fix off-by-one error in null
8366 termination spotted by Nalin
8368 2003-03-31 Havoc Pennington <hp@redhat.com>
8370 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8371 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8372 having a real home directory available.
8374 2003-03-31 Havoc Pennington <hp@redhat.com>
8376 * bus/Makefile.am (install-data-hook): create /var/run/dbus
8378 * bus/messagebus.in: add init script for Red Hat /etc/init.d
8380 * configure.in: add support for specifying a style of init script
8383 2003-03-31 Havoc Pennington <hp@redhat.com>
8385 Fix some annoying DBusString API and fix all affected code.
8387 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8389 (_dbus_string_get_data): change to return string instead of using
8391 (_dbus_string_get_const_data): ditto
8392 (_dbus_string_get_data_len): ditto
8393 (_dbus_string_get_const_data_len): ditto
8395 2003-03-31 Havoc Pennington <hp@redhat.com>
8397 * bus/main.c (main): fix up the command line arguments to be nicer
8399 2003-03-31 Havoc Pennington <hp@redhat.com>
8401 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8402 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8403 final location that lands in the config file
8405 * bus/config-loader-expat.c (bus_config_load): fix type of
8408 * doc/TODO: remove TODO item for dbus_bus_get()
8410 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8412 2003-03-31 Havoc Pennington <hp@pobox.com>
8414 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8415 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8416 argument since they are always client side
8418 * dbus/dbus-server.c (dbus_server_get_address): new function
8420 * bus/main.c (main): take the configuration file as an argument.
8422 * test/data/valid-config-files/debug-allow-all.conf: new file to
8423 use with dispatch.c tests for example
8425 * bus/test-main.c (main): require test data dir
8427 * bus/bus.c (bus_context_new): change this to take a
8428 configuration file name as argument
8430 * doc/config-file.txt (Elements): add <servicedir>
8432 * bus/system.conf, bus/session.conf: new files
8434 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8435 well-known socket if none set
8437 * configure.in: create system.conf and session.conf
8439 2003-03-30 Havoc Pennington <hp@pobox.com>
8441 * bus/config-parser.c: hacking
8443 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8444 to shut down, since it could cause weirdness with the DBusList
8447 * dbus/dbus-list.c (_dbus_list_test): add tests for the
8448 link-oriented stack routines
8449 (alloc_link): free the mempool if the first alloc from it fails
8451 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8453 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8455 (_dbus_string_skip_white): new
8457 * doc/config-file.txt (Elements): add <includedir>
8459 2003-03-28 Havoc Pennington <hp@pobox.com>
8461 * dbus/dbus-string.c (_dbus_string_copy_data_len)
8462 (_dbus_string_copy_data): new functions
8464 2003-03-28 Anders Carlsson <andersca@codefactory.se>
8466 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8470 * dbus/dbus-memory.c:
8473 2003-03-28 Havoc Pennington <hp@pobox.com>
8475 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8476 I think it may have just been superstition. Not sure.
8478 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8479 failures that were not being handled.
8481 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8483 * dbus/dbus-memory.c: add ability to set number of mallocs in a
8484 row that will fail on out-of-memory.
8486 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8487 function for testing out-of-memory handling.
8489 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8490 allocation functions, they do map exactly to the expat ones.
8492 2003-03-27 Havoc Pennington <hp@redhat.com>
8494 * bus/config-loader-libxml.c (bus_config_load): add another error
8497 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8500 Add note about automatic service activation.
8502 * doc/dbus-specification.sgml:
8503 Rename the specification and clarify a few things.
8505 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8508 * dbus/dbus-address.c:
8510 * dbus/dbus-marshal.c:
8511 * dbus/dbus-server-debug-pipe.c:
8512 * dbus/dbus-transport-unix.c:
8513 Fix documentation warnings.
8515 2003-03-26 Havoc Pennington <hp@pobox.com>
8517 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8518 after every test so it's quick and easy to see which leaked, and
8519 so we test multiple dbus_shutdown() calls
8521 * configure.in: change configure.in XML stuff to also support
8524 * config-loader-libxml.c: some hacking
8526 * config-loader-expat.c: some hacking
8528 * config-parser.c: some hacking, plus tests
8530 2003-03-25 Havoc Pennington <hp@redhat.com>
8532 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8534 * configure.in: add --with-xml option to specify XML library,
8535 right now only libxml is supported.
8537 * bus/config-loader-libxml.c, config-parser.c: sync some minor
8538 nonworking code between home and work, still just stubs
8540 2003-03-24 Havoc Pennington <hp@redhat.com>
8542 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8545 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8546 NULL argument for "message" if the error is a well-known one,
8547 fill in a generic message in this case.
8549 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8552 * bus/test.c (bus_test_flush_bus): add
8554 * bus/policy.c (bus_policy_test): test code stub
8556 2003-03-24 Havoc Pennington <hp@pobox.com>
8558 * bus/connection.c (bus_connections_setup_connection): set up
8559 the "can this user connect" function, but it always returns
8560 TRUE until we have a config file parser so we can have a config
8561 file that allows connections.
8563 2003-03-23 Havoc Pennington <hp@pobox.com>
8565 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8566 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8567 the mutex, so we can check for proper memory management
8570 * dbus/dbus-dataslot.c: remove the mutex from
8571 DBusDataSlotAllocator and lock it manually when using it,
8572 to simplify fitting it into the global slots framework.
8574 * dbus/dbus-threads.c (init_static_locks): rework how we're
8575 handling global locks so they are easily shut down.
8577 * bus/policy.c (bus_policy_append_rule): fix
8579 * bus/test-main.c (main): check for memleaks
8581 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8582 test suite check for memleaks
8584 * dbus/dbus-memory.c: add support in test mode for tracking
8585 number of outstanding blocks
8587 2003-03-23 Havoc Pennington <hp@pobox.com>
8589 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8592 * dbus/dbus-hash.h: add ULONG hash keys
8594 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8595 (_dbus_get_group_id): new function
8597 2003-03-20 Havoc Pennington <hp@redhat.com>
8599 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8601 (dbus_connection_get_unix_user): new function
8603 2003-03-20 Havoc Pennington <hp@pobox.com>
8605 * bus/connection.c (bus_connection_send_oom_error): assert that
8606 message has a sender
8607 (connection_execute_transaction): ditto
8608 (bus_connection_preallocate_oom_error): fix to set the sender, and
8609 set recipient to the destination service, not the bus driver
8611 * bus/policy.c: hacking
8613 * dbus/dbus-message.c (dbus_message_service_is): new function
8614 (dbus_message_sender_is): new
8616 2003-03-19 Havoc Pennington <hp@redhat.com>
8618 * bus/policy.c: start sketching code for policy restrictions on
8619 what connections can do.
8621 2003-03-18 Havoc Pennington <hp@redhat.com>
8623 * doc/TODO: some notes on high-level todo items. Little nitpick
8624 stuff is all in @todo, so no need to add it here.
8626 * doc/config-file.txt: some notes on how config file might look
8628 2003-03-18 Anders Carlsson <andersca@codefactory.se>
8634 2003-03-17 Havoc Pennington <hp@redhat.com>
8636 * dbus/dbus-internals.h: add gcc attributes so that
8637 our printf-style functions warn on bad arguments to
8640 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8643 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8646 2003-03-17 Havoc Pennington <hp@redhat.com>
8648 * bus/test-main.c (main): make it print something as it runs
8649 so make check doesn't look stuck
8651 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8652 from CVS, now obsolete
8654 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8656 * bus/dispatch.c: (bus_dispatch):
8657 Refetch the service name since it may have been reallocated
8658 when dbus_message_set_sender was called.
8660 * dbus/dbus-sysdeps.c: (_dbus_accept):
8661 Add address and address length variables and use them to stop
8662 valgrind from complaining.
8664 2003-03-17 Havoc Pennington <hp@pobox.com>
8666 All tests pass, no memleaks, no valgrind complaints.
8668 * bus/test.c: refcount handler_slot
8670 * bus/connection.c (bus_connections_new): refcount
8671 connection_data_slot
8673 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8674 bytes so that auth scripts pass.
8676 * bus/dispatch.c: init message_handler_slot so it gets allocated
8679 * bus/dispatch.c (message_handler_slot_ref): fix memleak
8681 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8682 dealloc server_pipe_hash when no longer used for benefit of
8685 * dbus/dbus-auth.c (process_command): memleak fix
8687 * bus/dispatch.c (check_hello_message): memleak fix
8689 2003-03-16 Havoc Pennington <hp@pobox.com>
8691 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8693 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8695 * bus/activation.c (bus_activation_activate_service): Append
8696 the pending activation entry to the list of pending activations.
8698 2003-03-16 Havoc Pennington <hp@pobox.com>
8700 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8703 * dbus/dbus-address.c (create_entry): fix OOM handling when
8704 failing to alloc entry->method
8706 2003-03-16 Havoc Pennington <hp@pobox.com>
8708 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8711 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8712 add some missing dbus_set_result
8714 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8715 alloc the DBusMessageHandler
8717 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8718 the transport here, since we call this from the finalizer; it
8719 resulted in a double-finalize.
8721 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8722 where we tried to use transport->connection that was NULL,
8723 happened when transport was disconnected early on due to OOM
8725 * bus/*.c: adapt to handle OOM for watches/timeouts
8727 * dbus/dbus-transport-unix.c: port to handle OOM during
8730 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8731 reference to unused bytes instead of a copy
8733 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8736 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8739 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8742 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8744 * doc/dbus-specification.sgml:
8745 Document reply message for ActivateService.
8747 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8749 * bus/activation.c: (bus_pending_activation_entry_free),
8750 (bus_pending_activation_free), (bus_activation_new),
8751 (bus_activation_unref), (bus_activation_service_created),
8752 (bus_activation_activate_service):
8754 * bus/bus.c: (bus_context_new):
8755 * bus/desktop-file.c: (new_section):
8756 * bus/driver.c: (bus_driver_send_service_deleted),
8757 (bus_driver_handle_activate_service):
8758 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8760 * dbus/dbus-connection.c:
8761 (dbus_connection_send_with_reply_and_block):
8762 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8763 * dbus/dbus-protocol.h:
8764 Make activation work better. Now pending activations will be queued
8765 and the daemon won't try to activate services that are already registered.
8767 2003-03-16 Havoc Pennington <hp@pobox.com>
8769 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8772 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8773 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8775 2003-03-16 Havoc Pennington <hp@pobox.com>
8777 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8778 this. always run the test suite before commit...
8780 * bus/*: adapt to DBusConnection API changes
8782 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8783 requires renaming stuff to avoid dbus_connection_dispatch name
8786 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8789 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8790 separate from _dbus_message_loader_return_buffer()
8792 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8793 this, because it's now always broken to use; the number of
8794 messages in queue vs. the number still buffered by the message
8795 loader is undefined/meaningless. Should use
8796 dbus_connection_get_dispatch_state().
8797 (dbus_connection_dispatch): rename from
8798 dbus_connection_dispatch_message
8800 2003-03-16 Havoc Pennington <hp@pobox.com>
8802 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8805 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8807 * dbus/dbus-connection.c:
8808 (dbus_connection_send_with_reply_and_block):
8809 Decrease connection->n_incoming when removing an entry
8811 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8812 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8813 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8814 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8815 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8816 (dbus_dict_get_byte_array):
8817 Handle NULL arrays and strings. Also add support for byte arrays.
8819 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8820 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8821 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8822 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8823 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8824 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8825 * dbus/dbus-marshal.h:
8826 Add support for marshalling and demarshalling empty arrays and strings.
8828 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8829 (dbus_message_append_string_array),
8830 (dbus_message_iter_get_boolean),
8831 (dbus_message_iter_get_boolean_array),
8832 (dbus_message_iter_get_int32_array),
8833 (dbus_message_iter_get_uint32_array),
8834 (dbus_message_iter_get_double_array),
8835 (dbus_message_iter_get_byte_array),
8836 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8837 (check_message_handling):
8838 Add support for getting empty arrays and dicts.
8840 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8841 Don't do any validation at all for now, that's better than just checking
8844 * test/data/valid-messages/emptiness.message:
8845 New test message with lots of empty arrays.
8847 2003-03-16 Havoc Pennington <hp@pobox.com>
8849 * dbus/dbus-connection.c
8850 (_dbus_connection_queue_received_message_link): new function that
8851 can't fail due to OOM
8853 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8854 new function pops a message together with a list link
8857 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8858 message queuing functions to avoid needing to alloc memory
8860 2003-03-16 Havoc Pennington <hp@pobox.com>
8862 Oops - test code was only testing failure of around 30 of the
8863 mallocs in the test path, but it turns out there are 500+
8864 mallocs. I believe this was due to misguided linking setup such
8865 that there was one copy of dbus_malloc etc. in the daemon and one
8866 in the shared lib, and only daemon mallocs were tested. In any
8867 case, the test case now tests all 500+ mallocs, and doesn't pass
8868 yet, though there are lots of fixes in this patch.
8870 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8871 this so that it doesn't need to allocate memory, since it
8872 has no way of indicating failure due to OOM (and would be
8873 annoying if it did).
8875 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8877 * bus/Makefile.am: rearrange to create two self-contained
8878 libraries, to avoid having libraries with overlapping symbols.
8879 that was resulting in weirdness, e.g. I'm pretty sure there
8880 were two copies of global static variables.
8882 * dbus/dbus-internals.c: move the malloc debug stuff to
8885 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8888 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8890 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8893 * bus/dispatch.c (bus_dispatch_add_connection): free
8894 message_handler_slot when no longer using it, so
8895 memory leak checkers are happy for the test suite.
8897 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8899 * bus/bus.c (new_connection_callback): disconnect in here if
8900 bus_connections_setup_connection fails.
8902 * bus/connection.c (bus_connections_unref): fix to free the
8904 (bus_connections_setup_connection): if this fails, don't
8905 disconnect the connection, just be sure there are no side
8908 * dbus/dbus-string.c (undo_alignment): unbreak this
8910 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8912 (_dbus_auth_new): fix the order in which we free strings
8915 * bus/connection.c (bus_connection_disconnected): fix to
8916 not send ServiceDeleted multiple times in case of memory
8919 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8920 get the base service name
8921 (dbus_bus_register_client): don't return base service name,
8922 instead store it on the DBusConnection and have an accessor
8924 (dbus_bus_register_client): rename dbus_bus_register()
8926 * bus/dispatch.c (check_hello_message): verify that other
8927 connections on the bus also got the correct results, not
8928 just the one sending hello
8930 2003-03-15 Havoc Pennington <hp@pobox.com>
8932 Make it pass the Hello handling test including all OOM codepaths.
8933 Now to do other messages...
8935 * bus/services.c (bus_service_remove_owner): fix crash when
8936 removing owner from an empty list of owners
8937 (bus_registry_ensure): don't leave service in the list of
8938 a connection's owned services if we fail to put the service
8941 * bus/connection.c (bus_connection_preallocate_oom_error): set
8942 error flag on the OOM error.
8944 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8945 handle _dbus_transport_set_connection failure
8947 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8948 to create watches up front and simply enable/disable them as
8950 (unix_connection_set): this can now fail on OOM
8952 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8953 of enabling/disabling a watch or timeout.
8955 * bus/loop.c (bus_loop_iterate): don't touch disabled
8958 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8960 2003-03-15 Havoc Pennington <hp@pobox.com>
8962 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8963 write useful test code, after all that futzing around ;-)
8965 Test does not yet pass because we can't handle OOM in
8966 _dbus_transport_messages_pending (basically,
8967 dbus_connection_preallocate_send() does not prealloc the write
8968 watch). To fix this, I think we need to add new stuff to
8969 set_watch_functions, namely a SetEnabled function so we can alloc
8970 the watch earlier, then enable it later.
8972 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8973 dbus-memory.c to the convenience lib
8975 * bus/test.c: rename some static functions to keep them clearly
8976 distinct from stuff in connection.c. Handle client disconnection.
8978 2003-03-14 Havoc Pennington <hp@pobox.com>
8980 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8981 transport, tests more of the real codepath. Set up clients
8982 with bus_setup_debug_client.
8984 * bus/test.c (bus_setup_debug_client): function to set up debug
8985 "clients" on the main loop
8987 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8990 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8993 * dbus/dbus-server-debug.c: support a debug server based on pipes
8995 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8996 (_dbus_close): new function
8998 * configure.in: check for socketpair
9000 2003-03-14 Havoc Pennington <hp@redhat.com>
9002 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9005 * dbus/dbus-transport-debug.c: rework this a good bit to be
9006 less complicated. hopefully still works.
9008 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9011 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9014 * dbus/dbus-message.c (dbus_message_copy): rename from
9015 dbus_message_new_from_message, fix it up to copy
9016 all the message fields, add test case
9018 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9019 not quite passing yet
9021 2003-03-14 Havoc Pennington <hp@pobox.com>
9023 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9024 until no work remains" in test code. (the large diff here
9025 is just code movement, no actual changes)
9027 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9028 1, no point waiting around for test code.
9029 (_dbus_server_debug_accept_transport): unref the timeout
9030 after adding it (right?)
9032 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9034 2003-03-13 Havoc Pennington <hp@redhat.com>
9036 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9039 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9042 * dbus/dbus-connection.h: Make AddWatchFunction and
9043 AddTimeoutFunction return a bool so they can fail on out-of-memory
9045 * bus/bus.c (bus_context_new): set up timeout handlers
9047 * bus/connection.c (bus_connections_setup_connection): set up
9050 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9053 * bus/bus.c (bus_context_new): adapt to changes
9055 * bus/connection.c: adapt to changes
9057 * test/watch.c: adapt to DBusWatch changes
9059 * bus/dispatch.c (bus_dispatch_test): started adding this but
9062 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9064 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9066 2003-03-13 Havoc Pennington <hp@pobox.com>
9068 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9069 set up a test framework as for the library
9071 2003-03-12 Havoc Pennington <hp@pobox.com>
9073 Throughout: purge global variables, introduce BusActivation,
9074 BusConnections, BusRegistry, etc. objects instead.
9076 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9079 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9080 going to redo this a bit differently I think
9082 2003-03-12 Havoc Pennington <hp@redhat.com>
9084 Mega-patch that gets the message bus daemon initially handling
9085 out-of-memory. Work still needed. Also lots of random
9086 moving stuff to DBusError instead of ResultCode.
9088 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9090 * dbus/dbus-connection.c
9091 (dbus_connection_send_with_reply_and_block): use DBusError
9093 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9096 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9097 code here, as the only failure possible is OOM.
9099 * bus/connection.c (bus_connection_disconnect):
9100 rename bus_connection_disconnected as it's a notification only
9102 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9103 "name" on get_args failure, should be done by get_args;
9104 don't disconnect client for bad args, just return an error.
9105 (bus_driver_handle_service_exists): ditto
9107 * bus/services.c (bus_services_list): NULL-terminate returned array
9109 * bus/driver.c (bus_driver_send_service_lost)
9110 (bus_driver_send_service_acquired): send messages from driver to a
9111 specific client to the client's unique name, not to the broadcast
9114 * dbus/dbus-message.c (decode_header_data): reject messages that
9115 contain no name field
9116 (_dbus_message_get_client_serial): rename to
9117 dbus_message_get_serial and make public
9118 (_dbus_message_set_serial): rename from set_client_serial
9119 (_dbus_message_set_reply_serial): make public
9120 (_dbus_message_get_reply_serial): make public
9122 * bus/connection.c (bus_connection_foreach): allow stopping
9123 iteration by returning FALSE from foreach function.
9125 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9126 (dbus_connection_free_preallocated_send)
9127 (dbus_connection_preallocate_send): new API for sending a message
9128 without possibility of malloc failure.
9129 (dbus_connection_send_message): rename to just
9130 dbus_connection_send (and same for whole function family)
9132 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9134 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9136 * bus/activation.c: handle/return errors
9138 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9140 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9141 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9142 (_dbus_result_from_errno): move to this file
9144 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9146 * dbus/dbus-marshal.c:
9147 (_dbus_marshal_set_string):
9148 Take a length argument so we can marshal the correct string
9151 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9152 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9153 (_dbus_marshal_test):
9154 * dbus/dbus-marshal.h:
9155 Add support for marshalling and demarshalling dicts.
9157 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9158 Add support for TYPE DICT.
9160 * dbus/dbus-message.c: (set_string_field):
9161 Adjust header padding.
9163 (dbus_message_append_args_valist), (dbus_message_append_dict),
9164 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9165 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9166 (check_message_handling), (check_have_valid_message):
9167 * dbus/dbus-message.h:
9168 Add functions for setting and getting dicts.
9170 * dbus/dbus-protocol.h:
9176 * doc/dbus-specification.sgml:
9177 Add information about how dicts are marshalled.
9179 * test/data/invalid-messages/dict-with-nil-value.message:
9180 * test/data/invalid-messages/too-short-dict.message:
9181 * test/data/valid-messages/dict-simple.message:
9182 * test/data/valid-messages/dict.message:
9183 Add sample messages containing dicts.
9185 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9187 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9189 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9192 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9193 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9194 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9195 (dbus_dict_set_double), (dbus_dict_set_string),
9196 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9197 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9198 (dbus_dict_set_string_array), (_dbus_dict_test):
9200 Fix according to comments from Havoc.
9202 2003-03-06 Michael Meeks <michael@server.home>
9204 * configure.in: if we don't have kde-config, disable have_qt.
9206 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9211 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9212 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9213 (dbus_dict_remove), (dbus_dict_get_value_type),
9214 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9215 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9216 (dbus_dict_put_double), (dbus_dict_put_string),
9217 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9218 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9219 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9220 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9221 (dbus_dict_get_double), (dbus_dict_get_string),
9222 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9223 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9224 (dbus_dict_get_string_array), (_dbus_dict_test):
9226 Add DBusDict implementation
9228 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9232 2003-03-04 Havoc Pennington <hp@pobox.com>
9234 * test/data/auth/*: adapt to changes
9236 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9237 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9240 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9241 more stuff from being in a context name, to make the protocol
9242 simpler to deal with
9244 * dbus/dbus-errors.c (dbus_error_has_name): new function
9245 (dbus_error_is_set): new function
9247 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9248 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9250 * dbus/dbus-connection.c (dbus_connection_flush): also read
9251 messages during a flush operation
9253 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9255 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9257 * configure.in: Check for gethostbyname on Solaris.
9259 * dbus/dbus-transport.c: (_dbus_transport_open):
9260 Remove duplicate "tcp" entry.
9262 * doc/dbus-specification.sgml:
9263 Clarify some things.
9265 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9267 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9268 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9269 (_dbus_keyring_test):
9270 * dbus/dbus-md5.c: (_dbus_md5_compute):
9271 * dbus/dbus-sha.c: (_dbus_sha_compute):
9274 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9276 * README: Add some things.
9278 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9280 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9281 after case DBUS_TYPE_BOOELAN.
9283 2003-03-02 Havoc Pennington <hp@pobox.com>
9285 * test/break-loader.c (randomly_set_extreme_ints): add test that
9286 sets really huge and small integers
9288 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9289 that length of boolean array fits in the string, and that
9290 string has room for boolean value in single-bool case.
9292 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9293 optional value to "ALIGN" command which is what to fill the
9296 * test/data/valid-messages/no-padding.message: add regression
9297 test for the message padding problem
9299 2003-03-02 Havoc Pennington <hp@pobox.com>
9301 * dbus/dbus-message.c (decode_header_data): fix to always init
9302 message_padding, from Benjamin Dauvergne
9304 2003-03-02 Havoc Pennington <hp@pobox.com>
9310 2003-03-01 Joe Shaw <joe@assbarn.com>
9312 * configure.in: Check for "struct cmsgcred" and try to access its
9313 members for BSD-like unices.
9315 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9316 _dbus_read_credentials_unix_socket().
9317 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9318 read() for reading the credential byte off the unix socket. Use
9319 struct cmsgcred on systems that support it.
9321 2003-02-27 Alexander Larsson <alexl@redhat.com>
9325 Make gthreads-2.0 dependency optional. Don't build thread test if
9328 2003-02-27 Havoc Pennington <hp@pobox.com>
9330 * dbus/dbus-connection.c
9331 (dbus_connection_send_message_with_reply_and_block): fix doh!
9332 doh! doh! bug that resulted in never removing a reply from the
9333 queue, no wonder we called get_reply_serial so much ;-)
9335 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9336 and client serial instead of demarshaling them every time
9338 2003-02-27 Havoc Pennington <hp@pobox.com>
9340 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9341 more inlined, using dbus-string-private.h, speeds things up
9344 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9345 when freeing the string
9346 (_dbus_string_steal_data): fix for align offset
9347 (undo_alignment): new function
9349 2003-02-26 Havoc Pennington <hp@redhat.com>
9351 All kinds of audit fixes from Owen, plus initial attempt to
9352 handle unaligned memory returned from malloc.
9354 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9355 leave room for align_offset and nul byte
9356 (fixup_alignment): function to track an align_offset and
9357 ensure real->str is aligned
9358 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9359 to allow a nul byte plus align offset
9360 (_dbus_string_lock): fix overflow issue
9361 (_dbus_string_init_const_len): add assertions on sanity of len,
9362 assign allocated to be ALLOCATION_PADDING larger than len
9363 (set_length): fixup the overflow handling
9364 (_dbus_string_get_data_len): fix overflow in assertion
9365 (open_gap): detect overflow in size of gap to be opened
9366 (_dbus_string_lengthen): add overflow check
9367 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9368 (_dbus_string_append): add overflow check
9369 (_dbus_string_append_unichar): overflow
9370 (_dbus_string_delete): fix overflow in assertion
9371 (_dbus_string_copy_len): overflow in assertion
9372 (_dbus_string_replace_len): overflows in assertions
9373 (_dbus_string_find): change to implement in terms of
9374 _dbus_string_find_to
9375 (_dbus_string_find_to): assorted fixage
9376 (_dbus_string_equal_c_str): assert c_str != NULL,
9377 fix logic so the function works
9378 (_dbus_string_ends_with_c_str): fix overflow thingy
9379 (_dbus_string_base64_encode): overflow fix
9380 (_dbus_string_validate_ascii): overflow
9381 (_dbus_string_validate_nul): overflow
9383 2003-02-26 Havoc Pennington <hp@redhat.com>
9385 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9387 2003-02-26 Alexander Larsson <alexl@redhat.com>
9390 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9392 * dbus/dbus-connection.c:
9393 * dbus/dbus-connection.h:
9394 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9395 Add dbus_connection_set_wakeup_main_function and use it when queueing
9396 incoming and outgoing messages.
9399 * dbus/dbus-dataslot.c:
9400 Threadsafe usage of DBusDataSlotAllocator
9402 * dbus/dbus-message.c: (dbus_message_get_args_iter):
9405 * dbus/dbus-server-unix.c:
9408 * glib/dbus-gmain.c:
9409 Implement the new wakeup functions for glib.
9412 * glib/test-thread-client.c:
9413 * glib/test-thread-server.c:
9414 * glib/test-thread.h:
9415 Initial cut at some thread test code. Not really done yet.
9417 2003-02-26 Havoc Pennington <hp@pobox.com>
9419 * dbus/dbus-connection.c
9420 (dbus_connection_send_message_with_reply_and_block): fix crash
9421 where we ref'd the outgoing message instead of the returned reply
9423 * dbus/dbus-transport-unix.c (do_authentication): check read watch
9424 at the end of this function, so if we didn't need to read for
9425 authentication, we reinstall it for receiving messages
9427 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9428 a NULL sender for peer-to-peer case
9430 * dbus/dbus-transport-unix.c (check_read_watch): handle
9431 !authenticated case correctly
9433 * glib/dbus-gmain.c: add support for DBusServer
9435 * dbus/dbus-server.c: add data slot support
9437 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9438 return values and handle errors
9440 * dbus/dbus-dataslot.c: factor out the data slot stuff from
9443 * Doxyfile.in (INPUT): add glib subdir
9445 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9446 setup_with_g_main instead of hookup_with_g_main; write docs
9448 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9450 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9451 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9452 * dbus/dbus-message.c: (dbus_message_append_boolean),
9453 (dbus_message_append_boolean_array),
9454 (dbus_message_get_args_valist), (_dbus_message_test):
9455 * dbus/dbus-message.h:
9456 * doc/dbus-specification.sgml:
9457 Various fixes as pointed out by Havoc.
9459 * test/data/invalid-messages/bad-boolean-array.message:
9460 * test/data/invalid-messages/bad-boolean.message:
9461 Add invalid boolean value test cases.
9463 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9465 * dbus/dbus-internals.c: (_dbus_type_to_string):
9466 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9467 (_dbus_marshal_validate_arg):
9468 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9469 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9470 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9471 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9472 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9473 (dbus_message_iter_get_double),
9474 (dbus_message_iter_get_boolean_array), (message_iter_test):
9475 * dbus/dbus-message.h:
9476 * dbus/dbus-protocol.h:
9477 * doc/dbus-specification.sgml:
9478 * test/data/valid-messages/lots-of-arguments.message:
9479 Add support for boolean and boolean array types.
9481 2003-02-23 Havoc Pennington <hp@pobox.com>
9483 * dbus/dbus-keyring.c: finish most of this implementation and
9486 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9487 these barf if the error isn't cleared to NULL
9489 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9490 (_dbus_create_directory): new function
9492 * dbus/dbus-errors.c (dbus_set_error): fix warning
9494 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9495 (_dbus_string_hex_decode): new function
9496 (test_hex_roundtrip): test code
9498 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9500 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9502 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9503 the save-to-temp/rename trick to atomically write the new file
9504 (_dbus_string_parse_uint): new function
9506 2003-02-22 Havoc Pennington <hp@pobox.com>
9508 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9510 2003-02-22 Havoc Pennington <hp@pobox.com>
9512 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9513 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9515 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9517 * dbus/test/data/sha-1: add US government test suite for SHA-1
9519 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9521 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9522 Make string arrays NULL-terminated.
9524 * dbus/dbus-memory.c: (dbus_free_string_array):
9525 * dbus/dbus-memory.h:
9526 New function for freeing NULL-terminated string arrays.
9528 * dbus/dbus-message-builder.c: (append_quoted_string),
9529 (_dbus_message_data_load):
9530 Add support for array types.
9532 * dbus/dbus-message.c: (check_message_handling):
9533 Add more types as test cases.
9535 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9536 (_dbus_string_parse_double):
9537 Add the start offset to the end offset.
9539 * test/data/valid-messages/lots-of-arguments.message:
9540 New test message with lots of arguments.
9542 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9544 * dbus/dbus-message.c: (dbus_message_append_nil),
9545 (dbus_message_append_int32), (dbus_message_append_uint32),
9546 (dbus_message_append_double), (dbus_message_append_string),
9547 (dbus_message_append_int32_array),
9548 (dbus_message_append_uint32_array),
9549 (dbus_message_append_double_array),
9550 (dbus_message_append_byte_array),
9551 (dbus_message_append_string_array):
9552 Fix all out-of-memory handling in these functions.
9554 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9556 * dbus/dbus-message.c: (dbus_message_append_nil):
9559 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9561 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9562 (dbus_message_append_nil), (dbus_message_append_int32_array),
9563 (dbus_message_append_uint32_array),
9564 (dbus_message_append_double_array),
9565 (dbus_message_append_byte_array),
9566 (dbus_message_append_string_array), (dbus_message_get_args_valist),
9567 (dbus_message_iter_get_int32_array),
9568 (dbus_message_iter_get_uint32_array),
9569 (dbus_message_iter_get_double_array),
9570 (dbus_message_iter_get_byte_array),
9571 (dbus_message_iter_get_string_array):
9573 * dbus/dbus-message.h:
9574 Add functions for appending and getting arrays.
9576 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9578 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9579 element size at least 8 bytes, fixes mempool tests on
9582 2003-02-20 Alexander Larsson <alexl@redhat.com>
9584 * dbus/dbus-transport-unix.c (unix_do_iteration):
9585 Unlock the connection mutex during a blocking select call.
9586 Add todo about how we need a way to wake up the select.
9588 * dbus/dbus-connection-internal.h:
9589 * dbus/dbus-connection.c:
9590 Add _dbus_connection_lock and _dbus_connection_unlock.
9592 2003-02-19 Havoc Pennington <hp@pobox.com>
9594 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9595 Doxyfile.in, not Doxyfile
9597 * dbus/dbus-keyring.c: do some hacking on this
9599 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9601 * dbus/dbus-errors.c (dbus_set_error_const): do not call
9603 (dbus_set_error): remove dbus_error_init, check for message ==
9604 NULL *before* we sprintf into it, and add @todo about including
9605 system headers in this file
9607 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9609 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9611 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9612 get various bits of user information based on either username
9614 (_dbus_homedir_from_username): new function
9616 2003-02-19 Anders Carlsson <andersca@codefactory.se>
9619 Add check for nonposix getpwnam_r
9621 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9622 Align the pool element size to a sizeof (void *) boundary.
9624 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9625 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9626 General Solaris fixes.
9628 * test/data/valid-messages/simplest-manual.message:
9629 Explicitly state that we want little-endian packing.
9631 2003-02-19 Mikael Hallendal <micke@codefactory.se>
9633 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9635 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9636 Added to create a transport connecting using a tcp/ip socket.
9638 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9639 to a tcp socket at given host and port.
9640 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9643 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9645 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9646 Added to create a server listening on a TCP/IP socket.
9648 2003-02-19 Havoc Pennington <hp@pobox.com>
9650 Throughout: mop up all the Doxygen warnings and undocumented
9653 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9654 to search any paths.
9656 * dbus/dbus-threads.c: move global mutex initializers to
9657 dbus-internals.h, multiple prototypes was confusing doxygen
9658 besides being kind of ugly
9660 * Doxyfile (PREDEFINED): have Doxygen define
9661 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9662 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9663 (do not abuse the feature! it's for stuff like the autogenerated
9664 macros in dbus-md5.c, not just for things you don't feel like
9667 2003-02-18 Havoc Pennington <hp@pobox.com>
9669 * dbus/dbus-string.c (_dbus_string_zero): new function
9671 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9672 wrap it in some dbus-friendly API
9674 * dbus/dbus-types.h: add 16-bit types
9676 2003-02-18 Joe Shaw <joe@assbarn.com>
9678 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9679 credentials from our currently running process.
9680 (get_word): Fix a buglet where we were copying the entire length
9681 instead of relative to our position.
9683 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9684 keys on the stack... it's 640k of data.
9686 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9687 read the credentials byte off the socket, even if we don't have
9689 (_dbus_poll): Implement poll() using select() for systems which
9692 * glib/test-dbus-glib.c (main): Print out an error if no
9693 parameters are given.
9695 * test/data/auth/fallback.auth-script: Added. Tests that a client
9696 can fallback to a secondary auth mechanism if the first fails.
9698 2003-02-18 Havoc Pennington <hp@pobox.com>
9702 2003-02-17 Havoc Pennington <hp@pobox.com>
9704 * doc/dbus-specification.sgml: lots of cosmetic
9705 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9706 env variable to DBUS_BUS_ADDRESS, s/client/application/,
9707 s/server/bus/ (except in authentication section). Add a section
9708 "Message Bus Message Routing"
9710 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
9716 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9718 * doc/dbus-specification.sgml:
9719 Specification updates.
9721 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9723 * bus/activation.c: (bus_activation_init), (child_setup),
9724 (bus_activation_activate_service):
9726 * bus/main.c: (main):
9727 Set DBUS_ADDRESS environment variable.
9729 * dbus/dbus-errors.c: (dbus_set_error):
9730 Don't use va_copy since that's a C99 feature.
9732 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9733 (_dbus_spawn_async):
9734 * dbus/dbus-sysdeps.h:
9735 Add child_setup_func to _dbus_spawn_async.
9737 * doc/dbus-specification.sgml:
9738 Update specification.
9740 * test/spawn-test.c: (setup_func), (main):
9743 2003-02-17 Alexander Larsson <alexl@redhat.com>
9745 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9748 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9752 * doc/dbus-test-plan.sgml:
9753 Add test plan document.
9758 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9760 * dbus/dbus-message.c: (decode_header_data),
9761 (_dbus_message_loader_return_buffer):
9762 Set the header padding amount when loading a message.
9764 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9766 * bus/dispatch.c: (send_one_message):
9767 Only send broadcast messages to registered connections.
9769 * dbus/dbus-message.c: (dbus_message_name_is):
9770 * dbus/dbus-message.h:
9771 New convenience function.
9773 * dbus/dbus-transport-debug.c: (do_reading):
9774 Only dispatch one message per run.
9777 * test/bus-test.c: (new_connection_callback), (die),
9778 (test_hello_client1_handler), (test_hello_client2_handler),
9779 (test_hello_replies), (main):
9781 * test/bus-test-loop.[ch]:
9784 2003-02-16 Havoc Pennington <hp@pobox.com>
9786 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9787 backward conditional
9789 2003-02-16 Alexander Larsson <alexl@redhat.com>
9791 * dbus/dbus-connection.c:
9792 Implement sent_message_with_reply. (with_reply_and block is still
9794 Made dispatch_message not lose message if OOM.
9796 * dbus/dbus-errors.h:
9797 Add NoReply error (for reply timeouts).
9799 2003-02-16 Alexander Larsson <alexl@redhat.com>
9801 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9802 Actually free keys and values when destroying hashtable.
9804 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9806 * dbus/dbus-auth.c: (client_try_next_mechanism):
9809 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9810 Return TRUE if there's no thread implementation around.
9812 * glib/dbus-gmain.c: (free_source),
9813 (dbus_connection_hookup_with_g_main):
9814 Make sure to remove the GSource when the connection is finalized.
9816 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9818 * bus/dispatch.c: (bus_dispatch_message_handler):
9819 * dbus/dbus-errors.h:
9820 Return an error if someone tries to send a message to a service
9823 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9825 * bus/activation.c: (load_directory), (bus_activation_init),
9826 (bus_activation_activate_service):
9829 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9830 More work on the activation handling.
9832 * dbus/dbus-errors.h:
9833 Add some error messages
9835 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9836 * dbus/dbus-message.h:
9837 New function that creates an error message.
9839 * dbus/dbus-protocol.h:
9840 Add ACTIVATE_SERVER message.
9842 * dbus/dbus-server-unix.c: (unix_handle_watch),
9843 (_dbus_server_new_for_domain_socket):
9844 Call _dbus_fd_set_close_on_exec.
9846 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9847 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9848 (_dbus_fd_set_close_on_exec):
9849 * dbus/dbus-sysdeps.h:
9850 Add _dbus_fd_set_close_on exec function. Also add function that checks
9851 that all open fds are set to close-on-exec and warns otherwise.
9853 * dbus/dbus-transport-unix.c:
9854 (_dbus_transport_new_for_domain_socket):
9855 Call _dbus_fd_set_close_on_exec.
9857 2003-02-16 Havoc Pennington <hp@pobox.com>
9859 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9860 allow people to avoid setting SIGPIPE to SIG_IGN
9861 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9862 we've been asked not to
9864 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9866 * dbus/dbus-list.c: (_dbus_list_append_link),
9867 (_dbus_list_prepend_link):
9868 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9872 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9875 * bus/activation.c: (bus_activation_entry_free),
9876 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9878 * bus/main.c: (main):
9879 Add simple activation support, doesn't work yet though.
9881 2003-02-15 Zack Rusin <zack@kde.org>
9883 * qt/dbus-qthread.cpp: small casting fix
9885 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9887 * dbus/dbus-errors.c: (dbus_set_error):
9888 * dbus/dbus-errors.h:
9889 Add a few errors and make dbus_set_error void.
9891 * dbus/dbus-sysdeps.c:
9892 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9893 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9894 * dbus/dbus-sysdeps.h:
9895 Add _dbus_spawn_async.
9897 * test/spawn-test.c: (main):
9898 Test for _dbus_spawn_async.
9900 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9902 * dbus/dbus-internals.h:
9903 Fix build without tests.
9905 * dbus/dbus-list.c: (alloc_link):
9906 Fix a segfault when a malloc fails.
9908 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9909 (dbus_malloc0), (dbus_realloc):
9910 Add support for malloc debugging.
9912 2003-02-15 Alexander Larsson <alexl@redhat.com>
9914 * dbus/dbus-threads.c:
9915 * dbus/dbus-threads.h:
9916 Add condvars. Remove static mutext from API.
9917 Implement static mutexes by initializing them from threads_init.
9919 * glib/dbus-gthread.c:
9920 * qt/dbus-qthread.cpp:
9921 Update with the thread api changes.
9926 Turn StaticMutex into normal mutex + init function.
9927 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9928 _dbus_list_append_link, _dbus_list_prepend_link
9931 * dbus/dbus-sysdeps.c:
9932 * dbus/dbus-sysdeps.h:
9933 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9934 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9936 * dbus/dbus-protocol.h:
9937 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9939 * dbus/dbus-message.c:
9940 Make ref/unref atomic.
9943 * dbus/dbus-connection-internal.h:
9944 * dbus/dbus-connection.c:
9945 * dbus/dbus-connection.h:
9947 Change _peek to _borrow,_return & _steal_borrowed.
9948 Change disconnect callback to event.
9949 Make dbus_connection_dispatch_messages reentrant.
9951 * dbus/dbus-transport.c:
9952 Don't ref the connection on calls to the transport
9955 * dbus/dbus-message-handler.c:
9958 * glib/dbus-gmain.c:
9959 Don't use peek_message anymore
9962 * test/debug-thread.c:
9963 * test/debug-thread.h:
9964 Simple thread implementation that asserts() on deadlocks in
9965 single-threaded code.
9968 (main) Call debug_threads_init.
9971 Use disconnect message instead of disconnect callback.
9975 Don't call dbus_connection_set_disconnect_function. Instead export
9976 bus_connection_disconnect.
9979 Call bus_connection_disconnect when we get a disconnected message.
9981 2003-02-15 Havoc Pennington <hp@pobox.com>
9983 * dbus/dbus-message.c (dbus_message_new): fool around with the
9986 2003-02-14 Havoc Pennington <hp@pobox.com>
9988 * dbus/dbus-mempool.c: fail if the debug functions so indicate
9990 * dbus/dbus-memory.c: fail if the debug functions indicate we
9993 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9994 (_dbus_decrement_fail_alloc_counter): debug functions to
9995 simulate memory allocation failures
9997 2003-02-14 Havoc Pennington <hp@pobox.com>
9999 * dbus/dbus-errors.h (struct DBusError): add a word of padding
10002 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10004 * bus/driver.c: (bus_driver_handle_hello):
10006 * bus/services.c: (bus_service_lookup):
10007 Reorder message sending so we get a more sane order.
10009 * test/bus-test.c: (message_handler):
10012 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10014 * bus/driver.c: (bus_driver_send_service_deleted),
10015 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10016 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10017 (bus_driver_send_welcome_message),
10018 (bus_driver_handle_list_services),
10019 (bus_driver_handle_acquire_service),
10020 (bus_driver_handle_service_exists):
10021 * dbus/dbus-bus.c: (dbus_bus_register_client),
10022 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10023 * dbus/dbus-errors.c: (dbus_result_to_string):
10024 * dbus/dbus-errors.h:
10025 * dbus/dbus-message.c: (dbus_message_append_args),
10026 (dbus_message_append_args_valist), (dbus_message_get_args),
10027 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10028 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10029 (dbus_message_iter_get_byte_array),
10030 (dbus_message_iter_get_string_array), (message_iter_test),
10031 (check_message_handling), (_dbus_message_test):
10032 * dbus/dbus-message.h:
10033 * test/bus-test.c: (main):
10034 Change fields to arguments in messages, so that they won't be
10035 confused with header fields.
10037 * glib/test-dbus-glib.c: (main):
10038 Remove append_fields from hello message.
10040 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10042 * dbus/dbus-errors.c:
10043 * dbus/dbus-message.c:
10044 * dbus/dbus-string.c:
10045 Documentation fixes.
10047 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10049 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10051 Implement support for timeouts in dbus-glib.
10053 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10055 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10056 * dbus/dbus-message.c: (process_test_subdir):
10057 * test/break-loader.c: (find_breaks_based_on):
10058 Plug some memory leaks.
10060 2003-02-13 Richard Hult <rhult@codefactory.se>
10062 * bus/main.c: Fix build.
10064 * dbus/dbus-errors.h:
10065 * dbus/dbus-errors.c: Fix copyright for Anders.
10067 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10072 * bus/connection.c: (bus_connection_foreach):
10075 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10076 (unescape_string), (new_section), (parse_section_start),
10077 (parse_key_value), (report_error), (bus_desktop_file_load),
10078 (bus_desktop_file_get_string):
10079 * bus/desktop-file.h:
10080 Use DBusError for error reporting.
10082 * bus/dispatch.c: (send_one_message),
10083 (bus_dispatch_message_handler):
10084 * bus/driver.c: (bus_driver_send_service_deleted),
10085 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10086 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10087 (bus_driver_send_welcome_message),
10088 (bus_driver_handle_list_services),
10089 (bus_driver_handle_acquire_service),
10090 (bus_driver_handle_service_exists):
10091 * bus/loop.c: (bus_loop_run):
10093 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10095 * bus/utils.c: (bus_wait_for_memory):
10097 New files with general utility functions.
10099 * dbus/dbus-internals.h:
10100 Remove _DBUS_HANDLE_OOM.
10102 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10104 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10105 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10106 * dbus/dbus-errors.h:
10107 Add DBusError structure.
10109 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10111 * test/data/valid-messages/standard-acquire-service.message:
10112 * test/data/valid-messages/standard-hello.message:
10113 * test/data/valid-messages/standard-list-services.message:
10114 * test/data/valid-messages/standard-service-exists.message:
10115 Add some standard messages.
10117 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10119 * bus/driver.c: (bus_driver_send_welcome_message),
10120 (bus_driver_handle_list_services),
10121 (bus_driver_handle_acquire_service),
10122 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10123 Update for API changes in libdbus.
10125 * dbus/dbus-message.c: (dbus_message_new_reply):
10126 * dbus/dbus-message.h:
10127 Remove the name argument. The spec states that replies shouldn't
10130 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10132 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10133 (report_error), (bus_desktop_file_load), (lookup_section),
10134 (lookup_line), (bus_desktop_file_get_raw),
10135 (bus_desktop_file_get_string):
10136 * bus/desktop-file.h:
10137 Some fixes, and new functions for getting a key value from a section.
10139 2003-02-13 Havoc Pennington <hp@pobox.com>
10141 * test/data/auth/fail-after-n-attempts.auth-script: new test
10143 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10146 2003-02-13 Havoc Pennington <hp@pobox.com>
10148 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10149 dbus_credentials_match were backward
10151 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10152 NO_CREDENTIALS and ROOT_CREDENTIALS
10154 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10155 into here. Never process more commands after we've reached an
10156 end state; store further data as unused bytes.
10158 * test/data/auth/*: add more auth tests
10160 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10161 command to match exact string and EXPECT_UNUSED to match unused
10164 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10166 2003-02-12 Havoc Pennington <hp@pobox.com>
10168 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10169 \r off of popped lines
10171 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10174 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10177 2003-02-12 Havoc Pennington <hp@pobox.com>
10179 * dbus/Makefile.am: remove break-loader from the build, since it
10182 * configure.in: add --enable-gcov to turn on coverage profiling
10183 flags and disable optimization
10185 2003-02-10 Havoc Pennington <hp@pobox.com>
10187 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10188 initial cut at test framework for DBusAuth from laptop.
10189 Doesn't quite work yet but it compiles and I need to get
10190 it off the 266mhz laptop. ;-)
10192 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10193 fix a memleak in error case
10195 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10198 * bus/desktop-file.c:
10199 * bus/desktop-file.h:
10200 Add a desktop file parser.
10202 2003-02-11 Zack Rusin <zack@kde.org>
10204 * qt/message.[h|cpp]: sample implementation
10205 of the KDE wrapper for DBusMessage
10207 2003-02-09 Zack Rusin <zack@kde.org>
10209 * test/bus-test.c: make_it_compile
10210 * doc/dbus-specification.sgml: minimal semantic fix
10212 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10218 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10220 * dbus/Makefile.am:
10221 * dbus/dbus-break-loader.c:
10222 * test/Makefile.am:
10223 * test/break-loader.c:
10224 Move dbus-break-loader to test/ and rename it to break-loader.
10226 2003-02-02 Havoc Pennington <hp@pobox.com>
10228 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10229 for code to manage cookies in your home directory
10231 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10233 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10234 to authenticate, then disconnect the client.
10236 2003-02-03 Alexander Larsson <alexl@redhat.com>
10238 * dbus/dbus-message.c (dbus_message_append_fields):
10241 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10243 * doc/dbus-specification.sgml:
10244 Update address format section.
10246 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10248 * test/Makefile.am:
10249 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10250 (message_handler), (new_connection_callback), (loop_quit),
10251 (loop_run), (main):
10254 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10256 * bus/driver.c: (bus_driver_handle_service_exists):
10257 Simplify the code a bit.
10259 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10262 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10265 Add libdbus-daemon.la and link to it.
10267 2003-02-01 James Willcox <jwillcox@gnome.org>
10269 * bus/driver.c: (bus_driver_handle_own_service):
10270 Actually include the service reply code in the message.
10272 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10274 * bus/driver.c: (bus_driver_handle_service_exists):
10275 Don't unref the incoming message.
10277 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10279 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10281 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10283 * dbus/dbus-server.c: (dbus_server_listen):
10284 * dbus/dbus-transport.c: (_dbus_transport_open):
10285 ifdef out the calls to the debug transport and server.
10287 2003-02-02 Alexander Larsson <alexl@redhat.com>
10289 * dbus/dbus-watch.c (dbus_watch_get_flags):
10290 Add note in the docs that ERROR or HANGUP won't be returned
10291 and are assumed always on.
10293 * glib/dbus-gmain.c (add_watch):
10294 Always add IO_ERR | IO_HUP
10296 * dbus/dbus-message.h:
10297 Add semicolon after dbus_message_iter_get_string_array().
10298 Makes qt code build again
10300 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10302 * bus/driver.c: (create_unique_client_name),
10303 (bus_driver_handle_hello):
10304 Don't take a name, just use a numeric id to identify
10307 * dbus/Makefile.am:
10308 * dbus/dbus-bus.c: (dbus_bus_register_client),
10309 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10311 Add new convenience functions for communicating with the bus.
10313 * dbus/dbus-message.h:
10315 * dbus/dbus-protocol.h:
10318 2003-02-01 Alexander Larsson <alexl@redhat.com>
10320 * dbus/dbus-message.c (dbus_message_append_fields):
10321 Add some more doc comments.
10323 2003-02-01 Havoc Pennington <hp@pobox.com>
10325 * dbus/dbus-break-loader.c (randomly_modify_length): change
10326 a 4-byte value in the message as if it were a length
10328 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10329 execute bit on saved files
10331 2003-02-01 Havoc Pennington <hp@pobox.com>
10333 * dbus/dbus-break-loader.c (main): new program to find messages
10334 that break the loader.
10336 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10337 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10339 * dbus/dbus-string.c (_dbus_string_set_byte): new
10341 2003-01-31 Havoc Pennington <hp@pobox.com>
10343 * dbus/dbus-message.c: refactor the test code to be more general,
10344 in preparation for writing a "randomly permute test cases to
10345 try to break the loader" program.
10347 2003-01-31 Havoc Pennington <hp@pobox.com>
10349 * doc/dbus-specification.sgml: work on the specification
10351 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10352 the protocol version of the message.
10354 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10355 no longer specifies that.
10356 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10359 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10360 "break" for DBUS_TYPE_NIL, remove @todo
10362 2003-01-31 Havoc Pennington <hp@pobox.com>
10364 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10365 just set_is_error/get_is_error as this is a commonly-used
10366 function, and write docs.
10368 2003-01-31 Anders Carlsson <andersca@codefactory.se>
10370 * dbus/dbus-address.c: (dbus_address_entry_free):
10371 Free key and value lists.
10373 * dbus/dbus-internals.c: (_dbus_type_to_string):
10374 Add the types we didn't have.
10376 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10377 (_dbus_marshal_validate_arg):
10380 * dbus/dbus-message.c: (dbus_message_set_sender):
10381 Remove todo about being able to set sender to NULL.
10383 (dbus_message_set_is_error_reply),
10384 (dbus_message_get_is_error_reply):
10385 * dbus/dbus-message.h:
10388 * dbus/dbus-protocol.h:
10389 Add error reply flag.
10391 * test/data/valid-messages/opposite-endian.message:
10392 Add NIL type to test.
10394 2003-01-31 Havoc Pennington <hp@pobox.com>
10396 * doc/dbus-specification.sgml: fully specify the header. Add
10397 flags and major protocol version, and change header/body len to
10400 * dbus/dbus-message-builder.c (append_saved_length): append length
10403 * dbus/dbus-message.c (dbus_message_create_header): change header
10404 length and body length to unsigned. Add the new fields from the
10406 (_dbus_message_loader_return_buffer): unsigned header/body len
10408 2003-01-30 Havoc Pennington <hp@pobox.com>
10410 * dbus/dbus-auth.c: rework to use only REJECTED, no
10413 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10414 use REJECTED, suggested by Mark McLoughlin
10416 2003-01-30 Havoc Pennington <hp@pobox.com>
10418 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10419 a better way to report errors here. e.g. "unix address lacks
10420 path" or something. also "no such file" when the path doesn't
10423 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10425 (dbus_parse_address): add @todo about documenting address format,
10426 and allowing , and ; to be escaped
10428 2003-01-30 Anders Carlsson <andersca@codefactory.se>
10430 * dbus/Makefile.am:
10431 Add dbus-address.[ch]
10433 * dbus/dbus-address.c: (dbus_address_entry_free),
10434 (dbus_address_entries_free), (create_entry),
10435 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10436 (dbus_parse_address), (_dbus_address_test):
10437 * dbus/dbus-address.h:
10438 New files for dealing with address parsing.
10440 * dbus/dbus-connection.c:
10441 Document timeout functions.
10443 * dbus/dbus-message.c:
10444 Document dbus_message_new_from_message.
10446 * dbus/dbus-server-debug.c:
10449 * dbus/dbus-server.c: (dbus_server_listen):
10450 Parse address and use correct server implementation.
10452 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10453 * dbus/dbus-string.h:
10454 New function with test.
10456 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10457 * dbus/dbus-test.h:
10460 * dbus/dbus-transport-debug.c:
10463 * dbus/dbus-transport.c: (_dbus_transport_open):
10464 Parse address and use correct transport implementation.
10466 2003-01-30 Havoc Pennington <hp@pobox.com>
10468 * dbus/dbus-message.c: use message->byte_order instead of
10469 DBUS_COMPILER_BYTE_ORDER throughout.
10470 (dbus_message_create_header): pad header to align the
10471 start of the body of the message to 8-byte boundary
10473 * dbus/dbus-marshal.h: make all the demarshalers take const
10474 DBusString arguments.
10476 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10477 validate message args here, so we don't have to do slow validation
10478 later, and so we catch bad messages as they are incoming. Also add
10479 better checks on header_len and body_len. Also fill in
10480 message->byte_order
10482 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10483 implemented properly)
10484 (_dbus_string_validate_nul): new function to check all-nul
10486 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10487 get_arg_end_pos and remove all validation
10488 (_dbus_marshal_validate_arg): actually do validation here.
10490 2003-01-29 Havoc Pennington <hp@pobox.com>
10492 * dbus/dbus-message.c (check_message_handling): fix assertion
10493 failure on set_client_serial
10495 2003-01-28 Havoc Pennington <hp@pobox.com>
10497 * dbus/dbus-server-debug.c: Add doc section comments
10499 * dbus/dbus-transport-debug.c: add doc section comments
10501 2003-01-28 Havoc Pennington <hp@redhat.com>
10503 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10504 the reverse order from how I had it
10505 (_dbus_string_base64_encode): reverse encoding order. I was
10506 basically byteswapping everything during encoding.
10508 2003-01-28 Anders Carlsson <andersca@codefactory.se>
10510 * dbus/dbus-connection-internal.h:
10511 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10512 (_dbus_connection_remove_timeout):
10513 Add functions for adding and removing timeouts.
10515 * dbus/dbus-message.c: (dbus_message_new_from_message):
10516 Add new function that takes a message and creates an exact
10517 copy of it, but with the refcount set to 1.
10518 (check_message_handling):
10521 * dbus/dbus-server-protected.h:
10522 * dbus/dbus-server.c: (_dbus_server_init_base),
10523 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10524 (dbus_server_set_timeout_functions):
10525 (_dbus_server_remove_timeout):
10526 New functions so that a server can add and remove timeouts.
10528 (dbus_server_listen):
10529 Add commented out call to dbus_server_debug_new.
10531 * dbus/dbus-timeout.c: (_dbus_timeout_new):
10532 Actually set the handler, doh.
10534 * dbus/dbus-transport.c: (_dbus_transport_open):
10535 Add commented out call to dbus_transport_debug_client_new.
10537 * dbus/Makefile.am:
10538 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10540 2003-01-28 Havoc Pennington <hp@pobox.com>
10542 * dbus/dbus-message.c (check_message_handling): function to check
10543 on the loaded message, iterates over it etc.
10545 2003-01-28 Havoc Pennington <hp@pobox.com>
10547 * test/Makefile.am (dist-hook): fix make distdir
10549 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10551 2003-01-27 Havoc Pennington <hp@pobox.com>
10553 * dbus/dbus-mempool.c (time_for_size): replace printf with
10556 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10557 empty lines; fix the SAVE_LENGTH stuff to be
10558 START_LENGTH/END_LENGTH so it actually works; couple other
10561 * test/Makefile.am (dist-hook): add dist-hook for .message files
10563 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10564 can be constant or locked.
10565 (_dbus_string_free): allow freeing a const string as
10566 documented/intended
10568 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10570 * dbus/dbus-test-main.c (main): take an argument which is the
10571 directory containing test data
10573 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10574 argument to this and load all the messages in test/data/
10575 checking that they can be loaded or not loaded as appropriate.
10577 2003-01-27 Anders Carlsson <andersca@codefactory.se>
10579 * bus/dispatch.c: (bus_dispatch_message_handler):
10580 Dispatch messages sent to services.
10582 * bus/driver.c: (bus_driver_send_service_deleted),
10583 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10584 (bus_driver_send_service_acquired):
10585 Add helper functions for sending service related messages.
10587 (bus_driver_send_welcome_message):
10588 Send HELLO_REPLY instead of WELCOME.
10590 (bus_driver_handle_list_services):
10591 Send LIST_SERVICES_REPLY instead of SERVICES.
10593 (bus_driver_handle_own_service),
10594 (bus_driver_handle_service_exists):
10595 New message handlers.
10597 (bus_driver_handle_message):
10598 Invoke new message handlers.
10600 (bus_driver_remove_connection):
10601 Don't remove any services here since that's done automatically
10602 by bus_service_remove_owner now.
10605 New function signatures.
10607 * bus/services.c: (bus_service_add_owner):
10608 Send ServiceAcquired message if we're the only primary owner.
10610 (bus_service_remove_owner):
10611 Send ServiceAcquired/ServiceLost messages.
10613 (bus_service_set_prohibit_replacement),
10614 (bus_service_get_prohibit_replacement):
10615 Functions for setting prohibit replacement.
10617 (bus_service_has_owner):
10618 New function that checks if a connection is in the owner queue of
10622 Add new function signatures.
10624 * dbus/dbus-list.c: (_dbus_list_test):
10625 Add tests for _dbus_list_remove_last and traversing the list backwards.
10627 * dbus/dbus-list.h:
10628 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10629 go any further, so return NULL then.
10631 * dbus/dbus-protocol.h:
10632 Add new messages, service flags and service replies.
10634 2003-01-26 Havoc Pennington <hp@pobox.com>
10636 * dbus/dbus-message-builder.c: implement, completely untested.
10638 * test/data/*: add data to be used in testing.
10639 ".message" files are our simple loadable text format.
10640 ".message-raw" will be binary dumps of messages.
10642 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10644 2003-01-26 Havoc Pennington <hp@pobox.com>
10646 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10648 * dbus/dbus-errors.c (dbus_result_to_string): add
10651 * dbus/dbus-message-builder.c: new file, will contain code to load
10652 up messages from files. Not implemented yet.
10654 2003-01-26 Havoc Pennington <hp@pobox.com>
10656 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10657 the sender by setting to NULL
10659 2003-01-26 Havoc Pennington <hp@pobox.com>
10661 The unit tests pass, but otherwise untested. If it breaks, the
10662 tests should have been better. ;-)
10664 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10667 * dbus/dbus-message.c: redo everything so we maintain
10668 message->header as the only copy of the various fields.
10669 This avoids the possibility of out-of-memory in some cases,
10670 for example dbus_message_lock() can't run out of memory anymore,
10671 and avoids extra copying. Figured I may as well go ahead and do
10672 this since it was busted for dbus_message_lock to not return
10673 failure on OOM, and dbus_message_write_header was totally
10674 unchecked for OOM. Also fixed some random other bugs.
10676 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10677 that strings are nul-terminated. Also, end_pos can be equal
10678 to string length just not greater than, I think.
10679 (_dbus_marshal_set_int32): new function
10680 (_dbus_marshal_set_uint32): new function
10681 (_dbus_marshal_set_string): new function
10683 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10684 a warning, init timeout_list to NULL
10685 (dbus_connection_send_message): don't use uninitialized variable
10688 * dbus/dbus-string.c (_dbus_string_replace_len): new function
10690 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10692 * bus/driver.c: (bus_driver_handle_hello),
10693 (bus_driver_send_welcome_message):
10696 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10698 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10699 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10700 (dbus_connection_unref):
10701 * dbus/dbus-marshal.c: (_dbus_marshal_test):
10702 * dbus/dbus-message.c: (dbus_message_unref),
10705 (dbus_message_get_fields):
10706 Remove debugging printout.
10708 (_dbus_message_loader_return_buffer):
10709 Don't store the header string.
10711 (_dbus_message_test):
10714 2003-01-26 Richard Hult <rhult@codefactory.se>
10716 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10717 the file descriptor list, since it can change under us.
10719 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10721 * glib/dbus-gmain.c: (dbus_connection_prepare),
10722 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10723 (remove_watch), (dbus_connection_hookup_with_g_main):
10724 Rewrite the glib handling to use its own GSource instead of a
10725 GIOChannel so we can catch messages put in the queue while waiting
10728 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10731 * bus/connection.c: (connection_disconnect_handler),
10732 (connection_watch_callback), (bus_connection_setup):
10733 * bus/dispatch.c: (send_one_message),
10734 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10735 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10737 * bus/driver.c: (bus_driver_send_service_deleted),
10738 (bus_driver_send_service_created), (bus_driver_handle_hello),
10739 (bus_driver_send_welcome_message),
10740 (bus_driver_handle_list_services), (bus_driver_remove_connection),
10741 (bus_driver_handle_message):
10743 Refactor code, put the message dispatching in its own file. Use
10744 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10747 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10749 * dbus/dbus-internals.h:
10750 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10752 * dbus/dbus-message.c: (dbus_message_get_sender):
10753 * dbus/dbus-message.h:
10754 Implement dbus_message_get_sender.
10756 * dbus/dbus-protocol.h:
10757 Add message and service defines.
10759 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10761 * dbus/dbus-connection.c: (dbus_connection_send_message):
10762 * dbus/dbus-message-internal.h:
10763 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10764 (dbus_message_write_header):
10765 Remove _dbus_messag_unlock and don't set the client serial on a
10766 message if one already exists.
10768 2003-01-24 Havoc Pennington <hp@pobox.com>
10770 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10773 * bus/driver.c (bus_driver_handle_list_services): fix a leak
10776 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10778 * dbus/dbus-list.c: (alloc_link), (free_link):
10779 Use a memory pool for the links.
10781 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10783 * bus/connection.c: (bus_connection_foreach):
10784 * bus/connection.h:
10785 Add new bus_connection_foreach function.
10787 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10788 Add function that broadcasts a message to all clients.
10790 (bus_driver_send_service_created), (bus_driver_handle_hello),
10791 (bus_driver_send_welcome_message),
10792 (bus_driver_handle_list_services), (bus_driver_message_handler):
10793 Implement functions that take care of listing services, and notifying
10794 clients when new services are created.
10796 * bus/services.c: (bus_services_list):
10798 Add new function that returns an array of strings with the currently
10799 registered services.
10801 * glib/dbus-glib.h:
10802 * glib/dbus-gmain.c:
10803 Update copyright year.
10805 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10807 * dbus/dbus-connection.c: (dbus_connection_send_message):
10808 Unlock the message in case it was sent earlier.
10810 (dbus_connection_send_message_with_reply_and_block):
10811 Remove the reply message from the list.
10813 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10814 Set array_len and new_pos correctly.
10816 (_dbus_marshal_test):
10817 Remove debug output.
10819 * dbus/dbus-message-internal.h:
10820 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10821 New function that returns the reply serial.
10823 (_dbus_message_unlock):
10824 New function that unlocks a message and resets its header.
10826 (dbus_message_append_string_array),
10827 (dbus_message_get_fields_valist),
10828 (dbus_message_iter_get_field_type),
10829 (dbus_message_iter_get_string_array),
10830 (dbus_message_get_fields),
10831 (dbus_message_append_fields_valist):
10832 Handle string arrays.
10834 (dbus_message_set_sender):
10835 Make this function public since the bus daemon needs it.
10837 (decode_header_data):
10838 Set the reply serial to -1 initially.
10840 * dbus/dbus-message.h:
10841 Add dbus_message_set_sender.
10843 2003-01-24 Havoc Pennington <hp@pobox.com>
10845 * doc/dbus-specification.sgml: add some stuff
10847 2003-01-22 Havoc Pennington <hp@pobox.com>
10849 * doc/dbus-specification.sgml: Start to document the protocol.
10851 2003-01-22 Havoc Pennington <hp@pobox.com>
10853 * dbus/dbus-connection.c
10854 (dbus_connection_send_message_with_reply_and_block): add some @todo
10856 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10858 2003-01-21 Havoc Pennington <hp@pobox.com>
10860 (patch untested because can't compile)
10862 * bus/driver.c (create_unique_client_name): make this function
10863 never recycle client names. Also, caller should initialize
10866 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10868 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10870 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10871 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10872 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10873 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10874 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10875 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10876 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10877 * dbus/dbus-marshal.h:
10878 * dbus/dbus-protocol.h:
10879 Add support for marshalling and demarshalling integer, double
10882 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10887 * bus/connection.c: (connection_disconnect_handler):
10888 Remove the connection from the bus driver's list.
10890 (connection_watch_callback): Dispatch messages.
10892 (free_connection_data): Free connection name.
10894 (bus_connection_setup): Add connection to the bus driver's list.
10895 (bus_connection_remove_owned_service):
10896 (bus_connection_set_name), (bus_connection_get_name):
10897 Add functions for setting and getting the connection's name.
10899 * bus/connection.h:
10900 Add function headers.
10902 * bus/driver.c: (create_unique_client_name),
10903 (bus_driver_handle_hello_message),
10904 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10905 (bus_driver_add_connection), (bus_driver_remove_connection):
10908 * bus/services.c: (bus_service_free):
10910 New file that handles communication and registreation with the bus
10913 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10915 * dbus/dbus-connection.c: (dbus_connection_send_message):
10916 Add a new client_serial parameter.
10918 (dbus_connection_send_message_with_reply):
10919 Remove a @todo since we've implemented the blocking function.
10921 (dbus_connection_send_message_with_reply_and_block):
10922 New function that sends a message and waits for a reply and
10923 then returns the reply.
10925 * dbus/dbus-connection.h:
10928 * dbus/dbus-errors.c: (dbus_result_to_string):
10929 * dbus/dbus-errors.h:
10930 Add new DBUS_RESULT.
10932 * dbus/dbus-message-internal.h:
10933 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10934 (_dbus_message_set_sender), (dbus_message_write_header),
10935 (dbus_message_new_reply), (decode_header_data),
10936 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10937 * dbus/dbus-message.h:
10938 Add new functions that set the reply serial and sender.
10939 Also marshal and demarshal them correctly and add test.
10941 * dbus/dbus-protocol.h:
10942 Add new DBUS_MESSAGE_TYPE_SENDER.
10944 * glib/dbus-glib.h:
10945 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10946 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10947 (dbus_connection_hookup_with_g_main):
10948 * glib/test-dbus-glib.c: (main):
10949 Rewrite to use GIOChannel and remove the GSource crack.
10951 * test/echo-client.c: (main):
10952 * test/watch.c: (check_messages):
10953 Update for changed APIs
10955 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10957 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10959 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10960 Create a DBusTimeoutList.
10961 (dbus_connection_set_timeout_functions): Add new function to
10962 set timeout callbacks
10964 * dbus/dbus-connection.h: Add public DBusTimeout API.
10966 * dbus/dbus-message.c: (dbus_message_get_service):
10967 * dbus/dbus-message.h: New function.
10969 * dbus/dbus-server.c: Fix small doc typo.
10971 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10973 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10975 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10976 of the string, just as long as specified.
10978 2003-01-19 Havoc Pennington <hp@pobox.com>
10980 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10983 * dbus/dbus-server.c (dbus_server_set_max_connections)
10984 (dbus_server_get_max_connections, dbus_server_get_n_connections):
10985 keep track of current number of connections, and add API for
10986 setting a max (but haven't implemented enforcing the max yet)
10988 2003-01-18 Havoc Pennington <hp@pobox.com>
10990 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10991 reading/writing if read_watch != NULL or write_watch != NULL.
10993 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10994 the message loader code to actually load message->header and
10995 message->body into the newly-created message.
10997 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11000 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11001 (dbus_connection_get_max_message_size)
11002 (dbus_connection_set_max_live_messages_size)
11003 (dbus_connection_get_max_live_messages_size): implement some
11004 resource limitation functions
11006 * dbus/dbus-resources.c: new file implementing some of the
11007 resource limits stuff
11009 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11010 missing docs, add @todo to handle OOM etc.
11012 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11015 2003-01-18 Havoc Pennington <hp@pobox.com>
11017 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11018 connection if it hasn't been already.
11020 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11021 replace with DisconnectFunction.
11023 2003-01-18 Havoc Pennington <hp@pobox.com>
11025 Building --disable-verbose-mode --disable-asserts --disable-tests
11026 cuts the library from 112K to 45K or so
11028 * configure.in: check for varargs macro support,
11029 add --enable-verbose-mode, --enable-asserts.
11031 * dbus/dbus-internals.h (_dbus_assert): support
11032 DBUS_DISABLE_ASSERT
11033 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11035 2003-01-18 Havoc Pennington <hp@pobox.com>
11037 * dbus/dbus-test.c: include config.h so that tests actually run
11039 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11040 so the failure mode when that assumption fails will be plenty
11043 2003-01-18 Havoc Pennington <hp@pobox.com>
11045 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11047 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11050 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11051 since we don't want to use those in make check
11053 2003-01-15 Havoc Pennington <hp@redhat.com>
11059 2003-01-15 Havoc Pennington <hp@redhat.com>
11061 * test/Makefile.am: fix so that test source code ends up in the
11062 distribution on make distcheck
11064 2003-01-15 Havoc Pennington <hp@redhat.com>
11070 2003-01-15 Havoc Pennington <hp@redhat.com>
11072 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11073 fix build when --disable-tests
11075 * Makefile.am (EXTRA_DIST): put HACKING in here
11077 * HACKING: document procedure for making a tarball release.
11079 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11081 * bus/connection.c: (connection_error_handler),
11082 (bus_connection_setup):
11083 * bus/main.c: (main):
11084 Make sure that the DBusConnectionData struct is NULLed
11085 out to prevent a segfault.
11087 * dbus/dbus-errors.c: (dbus_result_to_string):
11088 * dbus/dbus-errors.h:
11089 * dbus/dbus-message.c: (dbus_message_get_fields),
11090 (dbus_message_get_fields_valist), (_dbus_message_test):
11091 * dbus/dbus-message.h:
11092 Make dbus_message_get_fields return a result code so we can
11093 track invalid fields as well as oom.
11095 2003-01-11 Havoc Pennington <hp@pobox.com>
11097 * configure.in: change --enable-test/--enable-ansi action-if-given
11098 to enable_foo=$enableval instead of enable_foo=yes
11100 2003-01-08 Havoc Pennington <hp@pobox.com>
11102 * dbus/dbus-string.c (_dbus_string_align_length): new function
11104 * dbus/dbus-test-main.c: move main() for test app here
11106 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11107 symbol to run tests, because dbus-test isn't in the main
11110 Code review nitpicks.
11112 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11113 for people with narrow emacs ;-). Assert client_serial was filled
11114 in. Assert message->name != NULL.
11115 (dbus_message_append_fields): have "first_field_type" arg separate
11116 from va list, needed for C++ binding that also uses varargs IIRC
11117 and helps with type safety
11118 (dbus_message_new): add @todo about using DBusString to store
11119 service/name internally
11120 (dbus_message_new): don't leak ->service and ->name on OOM later
11122 (dbus_message_unref): free the service name
11123 (dbus_message_get_fields): same change to varargs
11124 i.e. first_field_type
11125 (_dbus_message_loader_return_buffer): assert that the message data
11126 is aligned (if not it's a bug in our code). Put in verbose griping
11127 about why we set corrupted = TRUE.
11128 (decode_header_data): add FIXME that char* is evil. Was going to
11129 add FIXME about evil locale-specific string.h strncmp, but just
11130 switched to wacky string-as-uint32 optimization. Move check for
11131 "no room for field name" above get_const_data_len() to avoid
11132 assertion failure in get_const_data_len if we have trailing 2
11133 bytes or the like. Check for service and name fields being
11134 provided twice. Don't leak service/name on error. Require field
11135 names to be aligned to 4 bytes.
11137 * dbus/dbus-marshal.c: move byte swap stuff to header
11138 (_dbus_pack_int32): uscore-prefix
11139 (_dbus_unpack_int32): uscore-prefix
11140 (_dbus_unpack_uint32): export
11141 (_dbus_demarshal_string): add @todo complaining about use of
11143 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11144 handling allowing corrupt data to go unchecked
11146 2003-01-08 Havoc Pennington <hp@redhat.com>
11148 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11149 to the select() as needed for authentication. (should be using
11150 _dbus_poll() not select, but for another day)
11152 * dbus/dbus.h: include dbus/dbus-protocol.h
11154 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11156 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11159 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11161 * dbus/dbus-internals.c: (_dbus_type_to_string):
11162 New function that returns a string describing a type.
11164 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11165 * dbus/dbus-marshal.h:
11166 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11167 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11168 (dbus_message_iter_get_byte_array):
11169 * dbus/dbus-message.h:
11170 Add new convenience functions for appending and getting message fields.
11171 Also add demarshalling routines for byte arrays.
11173 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11175 * dbus/dbus-connection-internal.h:
11176 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11177 (_dbus_connection_get_next_client_serial),
11178 (dbus_connection_send_message):
11179 * dbus/dbus-internals.h:
11180 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11181 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11182 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11183 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11184 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11185 (_dbus_verbose_bytes), (_dbus_marshal_test):
11186 * dbus/dbus-marshal.h:
11187 * dbus/dbus-message-internal.h:
11188 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11189 (dbus_message_write_header), (_dbus_message_lock),
11190 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11191 (dbus_message_get_name), (dbus_message_append_int32),
11192 (dbus_message_append_uint32), (dbus_message_append_double),
11193 (dbus_message_append_string), (dbus_message_append_byte_array),
11194 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11195 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11196 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11197 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11198 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11199 (decode_header_data), (_dbus_message_loader_return_buffer),
11200 (message_iter_test), (_dbus_message_test):
11201 * dbus/dbus-message.h:
11202 * dbus/dbus-protocol.h:
11203 * dbus/dbus-test.c: (main):
11204 * dbus/dbus-test.h:
11205 * glib/test-dbus-glib.c: (message_handler), (main):
11206 * test/echo-client.c: (main):
11207 * test/watch.c: (check_messages):
11208 Make messages sendable and receivable for real.
11210 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11212 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11213 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11214 * dbus/dbus-message.c: (dbus_message_append_int32),
11215 (dbus_message_append_uint32), (dbus_message_append_double),
11216 (dbus_message_append_string), (dbus_message_append_byte_array):
11217 Handle OOM restoration.
11219 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11221 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11222 (_dbus_demarshal_string), (_dbus_marshal_test):
11223 * dbus/dbus-marshal.h:
11224 * dbus/dbus-message.c: (dbus_message_get_name),
11225 Document these functions.
11227 (dbus_message_append_int32), (dbus_message_append_uint32),
11228 (dbus_message_append_double), (dbus_message_append_string),
11229 (dbus_message_append_byte_array):
11230 * dbus/dbus-message.h:
11231 Add functions for adding message fields of different types.
11233 * dbus/dbus-protocol.h:
11234 Add the different types.
11236 2003-01-05 Havoc Pennington <hp@pobox.com>
11238 * bus/connection.c: implement routines for handling connections,
11239 first thing is keeping a list of owned services on each connection
11240 and setting up watches etc.
11242 * bus/services.c: implement a mapping from service names to lists
11245 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11247 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11248 to use static mutexes for global data
11250 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11251 collection of functions to set/get application-specific data
11252 on the DBusConnection.
11254 2003-01-04 Havoc Pennington <hp@pobox.com>
11256 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11257 (_dbus_poll): new function
11259 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11262 * bus/loop.c: initial code for the daemon main loop
11264 2003-01-04 Havoc Pennington <hp@pobox.com>
11266 * test/watch.c (error_handler): make it safe if the error handler
11267 is called multiple times (if we s/error handler/disconnect
11268 handler/ we should just guarantee it's called only once)
11270 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11271 error handler on disconnect (it's quite possible we should
11272 just change the error handler to a "disconnect handler," I'm
11273 not sure we have any other meaningful errors)
11275 * configure.in: check for getpwnam_r
11277 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11278 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11279 mechanism as in SASL spec, using socket credentials
11281 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11282 (_dbus_send_credentials_unix_socket): new function
11284 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11286 (_dbus_write): only check errno if <0 returned
11287 (_dbus_write_two): ditto
11289 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11291 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11292 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11293 (_dbus_marshal_test):
11294 * dbus/dbus-marshal.h:
11295 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11296 to _dbus_marshal_utf8_string. Also fix some tests.
11298 2002-12-28 Harri Porten <porten@kde.org>
11300 * configure.in: added check for C++ compiler and a very cheesy
11301 check for the Qt integration
11303 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11305 * qt/Makefile.am: added
11307 * qt/.cvsignore: added
11309 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11310 latter, added #ifdef QT_THREAD_SUPPORT guard.
11312 * dbus/Makefile.am: added missing headers for make dist
11314 2002-12-28 Kristian Rietveld <kris@gtk.org>
11316 * dbus/Makefile.am: fixup export-symbols-regex.
11318 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11320 * acinclude.m4: Add this file and put the
11321 PKG_CHECK_MODULE macro in it.
11323 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11325 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11326 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11327 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11328 (_dbus_marshal_test):
11329 Make the demarshalling routines align the pos argument.
11330 Add string marshalling tests and fix the obvious bugs
11333 2002-12-26 Havoc Pennington <hp@pobox.com>
11335 * dbus/dbus-auth.c: fixes fixes fixes
11337 * dbus/dbus-transport-unix.c: wire up support for
11338 encoding/decoding data on the wire
11340 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11341 (_dbus_auth_decode_data): append to target string
11342 instead of nuking it.
11344 2002-12-26 Havoc Pennington <hp@pobox.com>
11346 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11347 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11350 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11351 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11352 now). Main point is because I wanted unpack_uint32 to implement
11353 _dbus_verbose_bytes
11354 (_dbus_verbose_bytes): new function
11356 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11358 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11359 mechanism to handle a corrupt message stream
11360 (_dbus_message_loader_new): fix preallocation to only prealloc,
11363 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11364 (_dbus_string_test): enhance tests for copy/move and fix the
11367 * dbus/dbus-transport-unix.c: Hold references in more places to
11368 avoid reentrancy problems
11370 * dbus/dbus-transport.c: ditto
11372 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11373 leak reference count in no-message case
11375 * test/watch.c (do_mainloop): handle adding/removing watches
11376 during iteration over the watches. Also, ref the connection/server
11377 stored on a watch, so we don't try to mangle a destroyed one.
11379 * dbus/dbus-transport-unix.c (do_authentication): perform
11382 * dbus/dbus-auth.c (get_state): add a state
11383 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11384 (_dbus_auth_get_unused_bytes): append the unused bytes
11385 to the passed in string, rather than prepend
11387 * dbus/dbus-transport.c (_dbus_transport_init_base): create
11388 the auth conversation DBusAuth
11390 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11391 (_dbus_transport_new_for_domain_socket): when creating a
11392 transport, pass in whether it's a client-side or server-side
11393 transport so we know which DBusAuth to create
11395 2002-12-03 Havoc Pennington <hp@pobox.com>
11397 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11398 _after_ finalizing the derived members
11399 (unix_connection_set): unref watch if we fail to add it
11401 * dbus/dbus-connection.c (dbus_connection_unref): delete the
11402 transport first, so that the connection owned by the
11403 transport will be valid as the transport finalizes.
11405 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11406 if necessary, and remove watches from the connection.
11408 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11410 2002-12-26 Anders Carlsson <andersca@codefactory.se>
11412 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11413 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11414 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11415 (_dbus_marshal_test):
11416 * dbus/dbus-marshal.h:
11417 Add string marshal functions and have the demarshal functions
11418 return the new position.
11420 2002-12-25 Havoc Pennington <hp@pobox.com>
11422 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11423 it is a simple protocol that just maps directly to SASL.
11425 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11426 initial implementation, not actually used yet.
11428 * dbus/dbus-string.c (_dbus_string_find): new function
11429 (_dbus_string_equal): new function
11430 (_dbus_string_base64_encode): new function
11431 (_dbus_string_base64_decode): new function
11433 2002-12-25 Anders Carlsson <andersca@codefactory.se>
11435 * dbus/Makefile.am:
11436 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11437 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11438 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11439 (_dbus_demarshal_uint32), (_dbus_marshal_test):
11440 * dbus/dbus-marshal.h:
11441 * dbus/dbus-protocol.h:
11442 * dbus/dbus-test.c: (main):
11443 * dbus/dbus-test.h:
11444 Add un-optimized marshalling/demarshalling routines.
11446 2002-12-25 Harri Porten <porten@kde.org>
11448 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11450 2002-12-24 Zack Rusin <zack@kde.org>
11452 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11453 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11456 2002-12-24 Havoc Pennington <hp@pobox.com>
11458 * glib/dbus-gthread.c: fix include
11460 * glib/dbus-glib.h: rename DBusMessageHandler for now.
11461 I think glib API needs to change, though, as you don't
11462 want to use DBusMessageFunction, you want to use the
11463 DBusMessageHandler object. Probably
11464 dbus_connection_open_with_g_main_loop()
11465 and dbus_connection_setup_g_main_loop() or something like that
11466 (but think of better names...) that just create a connection
11467 that has watch/timeout functions etc. already set up.
11469 * dbus/dbus-connection.c
11470 (dbus_connection_send_message_with_reply): new function just to
11471 show how the message handler helps us deal with replies.
11473 * dbus/dbus-list.c (_dbus_list_remove_last): new function
11475 * dbus/dbus-string.c (_dbus_string_test): free a string that
11478 * dbus/dbus-hash.c: use memory pools for the hash entries
11479 (rebuild_table): be more paranoid about overflow, and
11480 shrink table when we can
11481 (_dbus_hash_test): reduce number of sprintfs and write
11482 valid C89. Add tests for case where we grow and then
11483 shrink the hash table.
11485 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11487 * dbus/dbus-connection.c (dbus_connection_register_handler)
11488 (dbus_connection_unregister_handler): new functions
11490 * dbus/dbus-message.c (dbus_message_get_name): new
11492 * dbus/dbus-list.c: fix docs typo
11494 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11495 an object representing a handler for messages.
11497 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11499 * glib/dbus-glib.h:
11500 * glib/dbus-gthread.c: (dbus_gthread_init):
11501 Don't use the gdbus prefix for public functions.
11503 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11507 Add GLib checks and fixup .pc files
11509 * glib/Makefile.am:
11510 * glib/dbus-glib.h:
11511 * glib/dbus-gmain.c: (gdbus_connection_prepare),
11512 (gdbus_connection_check), (gdbus_connection_dispatch),
11513 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11514 (dbus_connection_gsource_new):
11515 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11516 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11517 * glib/test-dbus-glib.c: (message_handler), (main):
11520 2002-12-15 Harri Porten <porten@kde.org>
11522 * autogen.sh: check for libtoolize before attempting to use it
11524 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11527 * .cvsignore: ignore more stamp files
11529 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11531 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11532 without make install.
11534 2002-12-15 Havoc Pennington <hp@pobox.com>
11536 * dbus/dbus-threads.c: add thread stubs that a higher library
11537 layer can fill in. e.g. the GLib wrapper might fill them in with
11538 GThread stuff. We still need to use this thread API to
11539 thread-safe-ize the library.
11541 2002-12-12 Havoc Pennington <hp@pobox.com>
11543 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11544 below new interfaces and include fewer system headers.
11546 * dbus/dbus-sysdeps.c (_dbus_read): new function
11547 (_dbus_write): new function
11548 (_dbus_write_two): new function
11549 (_dbus_connect_unix_socket): new function
11550 (_dbus_listen_unix_socket): new function
11552 * dbus/dbus-message-internal.h: change interfaces to use
11555 2002-12-11 Havoc Pennington <hp@pobox.com>
11557 * dbus/dbus-types.h: add dbus_unichar
11559 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11561 * dbus/dbus-connection.c (dbus_connection_send_message): return
11564 * dbus/dbus-transport.c: include dbus-watch.h
11566 * dbus/dbus-connection.c: include dbus-message-internal.h
11568 * HACKING: add file with coding guidelines stuff.
11570 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11571 handling here, for security purposes (as in vsftpd). Not actually
11572 using this class yet.
11574 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11575 system/libc usage here, as in vsftpd, for ease of auditing (and
11576 should also simplify portability). Haven't actually moved all the
11577 system/libc usage into here yet.
11579 2002-11-25 Havoc Pennington <hp@pobox.com>
11581 * dbus/dbus-internals.c (_dbus_verbose): fix to not
11582 always print the first verbose message.
11584 2002-11-24 Havoc Pennington <hp@pobox.com>
11586 * test/echo-client.c, test/echo-server.c: cheesy test
11589 * configure.in (AC_CHECK_FUNCS): check for writev
11591 * dbus/dbus-message.c (_dbus_message_get_network_data): new
11594 * dbus/dbus-list.c (_dbus_list_foreach): new function
11596 * dbus/dbus-internals.c (_dbus_verbose): new function
11598 * dbus/dbus-server.c, dbus/dbus-server.h: public object
11599 representing a server that listens for connections.
11601 * dbus/.cvsignore: create
11603 * dbus/dbus-errors.h, dbus/dbus-errors.c:
11604 public API for reporting errors
11606 * dbus/dbus-connection.h, dbus/dbus-connection.c:
11607 public object representing a connection that
11608 sends/receives messages. (Same object used for
11609 both client and server.)
11611 * dbus/dbus-transport.h, dbus/dbus-transport.c:
11612 Basic abstraction for different kinds of stream
11613 that we might read/write messages from.
11615 2002-11-23 Havoc Pennington <hp@pobox.com>
11617 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11620 * dbus/dbus-test.c (main): add list test, and include
11621 dbus-test.h as intended
11623 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11624 (_dbus_hash_table_remove_int): return value indicates
11625 whether the entry existed to remove
11627 * dbus/dbus-list.c: add linked list utility class,
11628 with docs and tests
11630 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11633 2002-11-23 Havoc Pennington <hp@pobox.com>
11635 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11636 DBUS_END_DECLS to nothing, that should fix this once and for all
11638 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11640 * dbus/dbus-message.c, dbus/dbus-hash.c:
11641 add some missing @brief
11643 2002-11-23 Havoc Pennington <hp@pobox.com>
11645 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11646 to avoid confusing Doxygen
11648 * dbus/dbus-hash.c: @} not }@
11650 * dbus/dbus-message.c (struct DBusMessage): split out
11653 2002-11-23 Havoc Pennington <hp@pobox.com>
11655 * configure.in: pile on more warning flags if using gcc
11657 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11658 to document static functions
11660 * configure.in: add summary to end of configure so it
11661 looks nice and attractive
11663 * dbus/dbus-hash.c: finish implementation and write unit
11666 * configure.in: add --enable-tests to enable unit tests
11668 * dbus/dbus-test.c: test program to run unit tests
11669 for all files in dbus/*, initially runs a test for
11672 * dbus/dbus-internals.h: file to hold some internal utility stuff
11674 2002-11-22 Havoc Pennington <hp@redhat.com>
11676 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11677 "ported" away from Tcl
11679 * dbus/dbus-types.h: header for types such as dbus_bool_t
11681 2002-11-22 Havoc Pennington <hp@redhat.com>
11683 * dbus/dbus.h: fixups for doc warnings
11685 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11687 (QUIET): make it quiet so we can see warnings
11689 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11691 2002-11-22 Havoc Pennington <hp@redhat.com>
11693 * Makefile.am: include "Doxyfile" target in all-local
11695 * configure.in: generate the Doxyfile
11697 * Doxyfile.in: move Doxyfile here, so we can use
11698 configure to generate a Doxyfile with the right
11699 version number etc.
11701 2002-11-22 Havoc Pennington <hp@redhat.com>
11703 * dbus/dbus-message.c: move inline docs into .c file
11705 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11706 so all docs are under doc/
11707 (MAN_EXTENSION): generate man pages. Use extension
11708 ".3dbus" which matches ".3qt" on my system,
11709 I guess this is OK, I don't know really.
11710 (FILE_PATTERNS): look for .c files not .h, makes sense
11711 for plain C I think
11713 2002-11-22 Havoc Pennington <hp@pobox.com>
11715 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11716 because any app can be a server, and any app can be a client,
11717 the bus is a special kind of server.
11719 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
11721 * Doxyfile : adding. Still needs Makefile rules to be generated
11722 automatically (just run "doxygen" in the toplevel dir for now to
11725 * dbus/dbus-message.h : Adding sample docs (javadoc since
11726 resembles gtk-doc a little more)
11728 * dbus/dbus.h : Adding sample docs
11730 2002-11-21 Havoc Pennington <hp@redhat.com>
11732 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11733 so we can allow ourselves to include files directly,
11734 instead of having to use dbus.h
11736 * dbus/dbus.h: fill in
11738 * dbus/dbus-message.h: sketch out a sample header file.
11739 Include griping if you include it directly instead of
11742 * dbus/dbus-macros.h: new file with macros for extern "C",
11743 TRUE/FALSE, NULL, etc.
11745 * doc/file-boilerplate.c: put include guards in here
11747 2002-11-21 Havoc Pennington <hp@redhat.com>
11749 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11751 * COPYING: include the GPL as well, and license code
11752 under both AFL and GPL.
11754 2002-11-21 Havoc Pennington <hp@redhat.com>
11756 * acconfig.h: get rid of this
11758 * autogen.sh (run_configure): add --no-configure option
11760 * configure.in: remove AC_ARG_PROGRAM to make
11761 autoconf complain less. add AC_PREREQ.
11762 add AC_DEFINE third arg.
11764 2002-11-21 Anders Carlsson <andersca@codefactory.se>
11767 Fix references so we can distcheck.
11769 2002-11-21 Havoc Pennington <hp@redhat.com>
11771 * Initial module creation