1 2005-08-09 Havoc Pennington <hp@redhat.com>
3 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
4 warning if the reply serial is set to 0
6 2005-08-04 Colin Walters <walters@verbum.org>
8 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
9 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
10 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
11 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
12 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
13 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
14 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
15 * glib/dbus-gvalue.h (dbus_g_value_types_init)
16 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
17 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
19 Prefix name with _ to ensure they're not exported. All callers
22 * glib/dbus-gvalue.c (typecode_to_gtype)
23 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
24 (signature_iter_to_g_type_dict)
25 (signature_iter_to_g_type_array)
26 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
27 (dbus_gtypes_from_arg_signature):
28 Move to dbus-gsignature.c.
30 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
31 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
32 (dbus_binding_tool_output_glib_client): Ditto.
34 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
37 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
40 2005-08-03 Colin Walters <walters@verbum.org>
42 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
43 catch any incompatible changes accidentally made.
45 2005-08-03 Havoc Pennington <hp@redhat.com>
47 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
48 typo, from Julien Puydt
50 * bus/connection.c (bus_connection_disconnected): we were always
51 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
53 2005-08-01 Colin Walters <walters@verbum.org>
55 Patch from Joe Markus Clarke:
57 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
60 2005-08-01 Colin Walters <walters@verbum.org>
62 Patch from Joe Markus Clarke:
64 * tools/dbus-send.c (main):
66 Don't use C99 style initializers (bug #3933).
68 2005-08-01 Colin Walters <walters@verbum.org>
70 Patch from Joe Markus Clarke:
72 * glib/dbus-gvalue.c (dbus_g_value_types_init):
73 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
74 * glib/dbus-gobject.c (write_interface):
76 Don't use C99 style initializers (bug #3933).
78 2005-07-31 Havoc Pennington <hp@redhat.com>
80 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
81 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
83 2005-07-30 Havoc Pennington <hp@redhat.com>
85 * fix a bunch of Doxygen warnings and mistakes
87 2005-07-30 Havoc Pennington <hp@redhat.com>
89 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
90 DBUS_BUILD_TESTS since it's now used in production code
92 2005-07-29 Havoc Pennington <hp@redhat.com>
94 * test/glib/test-profile.c (write_junk): initialize the junk
95 buffer so valgrind doesn't have a breakdown
97 2005-07-29 Havoc Pennington <hp@redhat.com>
99 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
100 (match_rule_matches): remove unused arg
101 (test_matching): add tests for match_rule_matches()
103 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
104 do arg0='foo' arg5='bar' in the match rules
105 (match_rule_matches): don't match if the arg0='foo' doesn't match.
107 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
109 2005-07-29 Ross Burton <ross@openedhand.com>
111 * dbus/dbus-connection.c:
112 Don't create a DBusCondVar which is never used.
114 2005-07-27 Ross Burton <ross@openedhand.com>
116 * dbus/dbus-message.c:
117 Reduce the size of the maximum cached message to 10K.
119 2005-07-25 Ross Burton <ross@openedhand.com>
121 * glib/dbus-gproxy.c:
122 Remove matches when all proxies are unregistered.
124 2005-07-24 Colin Walters <walters@verbum.org>
126 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
127 typedata; recursive arrays won't have it.
129 * test/glib/test-dbus-glib.c:
130 * test/glib/test-service-glib.c:
131 * test/glib/test-service-glib.xml: Add recursive arrays tests.
133 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
135 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
136 proxies.py, service.py: Cleanup of code after running it through the
137 pyflakes code checker mostly dealing with undefined names.
138 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
140 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
142 * NEWS: Update to 0.35.2
144 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
146 * python/_dbus.py: Remove import of the dbus.services
147 module as it no longer exists (patch from Dimitur Kirov)
149 * python/service.py (Object::__init__): Fixed typo
150 s/name/bus_name (patch from Dimitur Kirov)
152 * python/examples/example-signal-emitter.py: import dbus.glib
153 to get the main loop and use glib mainloop instead of gtk so
154 X doesn't have to be running.
156 * python/examples/example-signal-recipient.py: import dbus.glib
157 to get the main loop and use glib mainloop instead of gtk so
158 X doesn't have to be running. Import the decorators module
161 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
162 didn't pick up on but are needed to build
164 * configure.in: upped version to 0.35.2
166 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
167 added Colin Walters' SELinux API rename patch from head
168 s/unix sercurity context/selinux security context/
170 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
172 * python/Makefile.am: dbus_binding.pxd.in should be included
173 in EXTRA_DIST not dbus_binding.pxd
174 fix up $(srcdir) hopefully for the last time
176 * NEWS: Update to 0.35.1
178 2005-07-16 Colin Walters <walters@verbum.org>
180 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
181 from bus_driver_handle_get_connection_unix_security_context. Update for
183 (message_handlers): Update for renames.
185 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
186 _dbus_string_init failure correctly.
187 (bus_selinux_append_context): Convert SID to context. Append it
189 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
192 * bus/selinux.h: Update prototype.
194 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
195 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
197 2005-07-15 Colin Walters <walters@verbum.org>
199 * doc/TODO: Add note about convenience wrappers.
201 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
203 * NEWS: Update to 0.35
205 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
207 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
208 so distcheck doesn't fail
210 * glib/examples/Makefile.am: Add example-service.xml and
211 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
213 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
214 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
216 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
217 compiler looks in the right places during distcheck
219 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
221 * glib/example/Makefile.am: Fix a typo which cause make distcheck
224 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
226 * python/examples/example-service.py,
227 python/examples/example-signal-emitter.py: Fixed up examples
230 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
232 * python/__init__.py: Upped to version (0,42,0) because of
235 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
237 * ChangeLog: fix date in last entry
239 * configure.in, bus/system.conf.in: add the ability to configure
240 the system bus user at compiletime with the --with-dbus-user flag
241 (patch from Kristof Vansant)
243 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
245 * bus/dispatch.c, test/test-service.c: Add testcase
246 for sending messages to oneself (TODO item).
248 * python/service.py (class Object): Swap ordering of bus_name
249 and object_path parameters to better support inheritance.
251 * doc/dbus-tutorial.xml: change Python docs to reflect change
252 in parameter ordering and fix the inheritance section.
254 * doc/TODO: remove sending message to oneself TODO item
256 2005-07-15 Ross Burton <ross@openedhand.com>
258 * glib/dbus-gproxy.c:
259 Fix a leak when calling methods via the proxy.
261 2005-07-15 Colin Walters <walters@verbum.org>
263 * bus/selinux.c (bus_selinux_append_context): Wrap in
266 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
268 * python/_dbus.py (Bus::remove_signal_receiver):
269 don't add a callback to the match if none has been passed in
271 * python/matchrules.py (SignalMatchTree::remove): if the rule
272 being matched does not have a callback treat it as a wildcard
275 * doc/dbus-tutorial.xml: Add Python tutorial
277 2005-07-14 Colin Walters <walters@verbum.org>
280 (bus_driver_handle_get_connection_unix_security_context): New function.
281 (message_handlers): Add.
283 * bus/selinux.c (bus_selinux_append_context): New function; appends
284 security context to message.
286 * bus/selinux.h: Prototype.
288 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
290 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
292 * bus/activation.c: clean up all tabs to be 8 spaces
293 (bus_activation_activate_service): make sure we clean up
296 * bus/dispatch.c: clean up all tabs to be 8 spaces
297 (check_shell_fail_service_auto_start): New function
298 tests to make sure we get fail properly when trying to auto start a service
299 with a faulty command line
300 (check_shell_service_success_auto_start): New function tests to make sure
301 auto started services get the arguments on the command line
303 * test/test-shell-service.c: Added service for testing auto-starting with
304 command line arguments
306 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
307 test/data/valid-service-files/debug-shell-echo-success.service.in:
308 Added service files for testing auto-starting with command line arguments
310 * */.cvsignore: added a bunch of generated files to various .cvsignore files
312 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
314 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
316 * dbus/Makefile.am: added new files to build.
318 * bus/activation.c (bus_activation_activate_service): support
319 activation commands with parameters.
321 * test/shell-test.c: added test program for the shell parsing
324 2005-07-13 David Zeuthen <davidz@redhat.com>
326 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
327 64 bit signed and unsigned parameters
329 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
331 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
333 * python/service.py (class Name): renamed BusName to make it clearer
334 what the object is for (a name on the bus)
336 * python/examples/example-service.py,
337 python/examples/example-signal-emitter.py: change the Name object to
340 2005-07-12 Colin Walters <walters@verbum.org>
342 Patch from Jim Gettys <Jim.Gettys@hp.com>.
344 * tools/dbus-launch.c: Include sys/select.h.
346 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
347 * python/dbus_bindings.pyx.in: removed
349 * python/dbus_bindings.pyx: Added.
350 - Fixed some memleaks (patch from
351 Sean Meiners <sean.meiners@linspireinc.com>)
352 - Broke out the #include "dbus_h_wrapper.h" and put it in its
353 own pxd file (Pyrex definition)
354 - Broke out glib dependancies into its own pyx module
356 * python/dbus_bindings.pdx: Added.
357 - Defines C class Connection for exporting to other modules
359 * python/dbus_glib_bindings.pyx: Added.
360 - New module to handle lowlevel dbus-glib mainloop integration
362 * python/glib.py: Added.
363 - Registers the glib mainloop when you import this module
365 * python/services.py: Removed (renamed to service.py)
367 * python/service.py: Added.
368 - (class Server): renamed Name
370 * python/__init__.py: Bump ro version (0,41,0)
371 -don't import the decorators or service module
372 by default. These now reside in the dbus.service namespace
374 * python/_dbus.py (Bus::__init__): Add code run the main loop
375 setup function on creation
377 * python/examples/example-service.py,
378 python/examples/example-signal-emitter.py: update examples
380 * python/examples/gconf-proxy-service.py,
381 python/examples/gconf-proxy-service2.py: TODO fix these up
384 - Added a Python Bindings 1.0 section
385 - added "Add match on args or match on details to match rules"
388 2005-07-12 Colin Walters <walters@verbum.org>
390 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
391 (statemachine-glue.h):
392 * glib/examples/Makefile.am (example-service-glue.h)
393 (example-signal-emitter-glue.h):
394 * glib/Makefile.am (dbus-glib-error-switch.h):
395 Add libtool --mode=execute so we use the built library instead
396 of any installed one.
398 2005-07-11 Colin Walters <walters@verbum.org>
400 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
401 (dbus_g_value_types_init): Remove assertion.
402 (dbus_g_value_get_g_type, dbus_g_value_open)
403 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
404 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
405 functions related to DBusGValue. Now we marshal/demarshal
406 structures as GValueArray.
407 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
409 (signature_iter_to_g_type_array): Don't call
410 signature_iter_to_g_type_struct.
411 (signature_iter_to_g_type_struct): Delete.
412 (dbus_gvalue_to_signature): Delete.
413 (dbus_gvalue_to_signature): New function with same name as other
414 one; we can convert structures to signatures.
415 (demarshal_valuearray): New function.
416 (get_type_demarshaller): Use it.
417 (demarshal_recurse): Delete.
418 (marshal_proxy): New function.
419 (marshal_map): Warn if we can't determine signature from type.
420 (marshal_collection_ptrarray): Ditto.
421 (marshal_collection_array): Ditto.
422 (get_type_marshaller): Use marshal_valuearray.
423 (marshal_recurse): Delete.
424 (_dbus_gvalue_test): Add some tests.
426 * dbus/dbus-glib.h (struct _DBusGValueIterator):
427 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
428 (dbus_g_value_open, dbus_g_value_iterator_get_value)
429 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
430 (dbus_g_value_free): Remove prototypes.
432 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
435 * glib/examples/example-service.c:
436 * glib/examples/example-client.c: Implement GetTuple.
438 * test/glib/test-dbus-glib.c:
439 * test/glib/test-service-glib.c:
440 * test/glib/test-service-glib.xml: Add structure tests.
442 2005-07-10 Colin Walters <walters@verbum.org>
444 * doc/TODO: Knock off some GLib items with this patch.
446 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
447 (_dbus_gvalue_signals_error): New functions.
449 * glib/dbus-gvalue-utils.h: Prototype them.
451 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
452 and change to not output const/retval flags for input args. All
454 (invoke_object_method): Refactor to handle return values. Add
455 some more comments in various places. Remove debug g_print.
457 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
459 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
461 (compute_gsignature): New function; refactored from code from
462 compute_marshaller and compute_marshaller_name. Enhance to
463 handle return values and async ops more cleanly. Update for
464 async ops returning NONE instead of BOOLEAN.
465 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
466 and output appropriate string.
467 (generate_glue): Handle return value annotation. Also don't dump
468 constness flag for input arguments.
470 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
471 files shared between installed library and utilities.
472 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
473 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
474 binding tool can access gtype utility functions.
476 * test/glib/test-service-glib.c:
477 * test/glib/test-service-glib.xml:
478 * test/glib/test-dbus-glib.c: Add some tests for return values.
480 2005-07-09 Colin Walters <walters@verbum.org>
482 * glib/dbus-gparser.c (parse_annotation): Add annotations to
483 argument if available, not method.
485 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
486 (invoke_object_method): First, remove some redundant
487 GValues (object_value, error_value) in favor of working on
488 array directly. Second, rework constness to be less buggy.
489 Now we iterate directly over the argument metadata instead
490 of parallel iterating over output signature and metadata.
492 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
494 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
495 annotation on input args.
497 2005-07-09 Colin Walters <walters@verbum.org>
499 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
502 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
505 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
506 (method_dir_signature_from_object_info): Handle arg_iterate change.
507 (write_interface): Ditto.
508 (lookup_object_info): Don't barf if format_version is > 0.
509 (invoke_object_method): Handle arg constness.
511 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
512 (arg_info_new): Create.
513 (arg_info_unref): Destroy.
514 (arg_info_get_annotations, arg_info_get_annotation)
515 (arg_info_add_annotation): New functions.
517 * glib/dbus-gidl.h: Prototype them.
519 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
520 args, disallow them in properties.
521 (parse_annotation): Handle arg annotations.
523 * test/glib/test-service-glib.xml:
524 * test/glib/test-service-glib.c: Update to make some methods
527 2005-07-08 Colin Walters <walters@verbum.org>
529 * test/glib/test-service-glib.xml:
530 * test/glib/test-service-glib.c:
531 * test/glib/test-dbus-glib.c: Test a{sv}.
533 * glib/examples/statemachine/statemachine.c:
534 * glib/examples/statemachine/statemachine-server.c:
535 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
536 add progress bar, etc.
538 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
539 needed anymore due to generic array/map marshalling.
540 (dbus_g_value_types_init): Don't register basic arrays or the
542 (dbus_gtype_from_signature_iter): Don't try to recurse into
544 (dbus_gtype_to_signature): Check collection/map before type
546 (demarshal_garray_basic): Renamed to demarshal_collection_array.
547 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
548 generic map creation/append functions instead of hash table
550 (get_type_demarshaller): Handle maps.
551 (demarshal_collection): Dispatch on collection type to either
552 demarshal_collection_ptrarray or demarshal_collection_array.
553 (get_type_marshaller): Handle maps.
554 (marshal_collection): Dispatch collection type to either
555 marshal_collection_ptrarray or marshal_collection_array.
556 (_dbus_gvalue_test): New test.
558 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
559 (hash_free_from_gtype): Use it to free GValues.
560 (hashtable_append): New function.
561 (ptrarray_append): Fix prototype.
562 (slist_append): Ditto.
563 (_dbus_gvalue_utils_test): Extend tests.
565 * glib/dbus-gtype-specialized.c
566 (dbus_g_type_specialized_init_append): Renamed from
567 dbus_g_type_specialized_collection_init_append. Remove const from
568 value, since we steal it.
569 (dbus_g_type_specialized_map_append): New function.
571 * glib/dbus-gtype-specialized.h: Update prototypes.
572 Add DBusGTypeSpecializedMapAppendFunc.
574 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
577 * glib/dbus-gtest.h: Prototype it.
579 2005-07-08 Ross Burton <ross@openedhand.com>
582 Add DBysGAsyncData for the async bindings.
584 * glib/dbus-binding-tool-glib.c:
585 Re-enable the async bindings.
587 * test/glib/test-dbus-glib.c:
588 Add a test for the generated async bindings.
590 2005-07-08 Colin Walters <walters@verbum.org>
592 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
595 2005-07-08 Colin Walters <walters@verbum.org>
597 * tools/Makefile.am: Kill of print-introspect in favor of using
598 dbus-send --print-reply=literal.
600 * test/glib/test-service-glib.xml:
601 * test/glib/test-service-glib.c (my_object_get_objs): New test
604 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
605 (main): Test GetObjs.
607 * glib/examples/statemachine/Makefile.am:
608 * glib/examples/statemachine/sm-marshal.list:
609 * glib/examples/statemachine/statemachine-client.c:
610 * glib/examples/statemachine/statemachine-server.c:
611 * glib/examples/statemachine/statemachine-server.xml:
612 * glib/examples/statemachine/statemachine.c:
613 * glib/examples/statemachine/statemachine.h:
614 * glib/examples/statemachine/statemachine.xml:
618 * glib/examples/example-service.c (main): Move invocation
619 of dbus_g_object_type_install_info earlier, to emphasize it
620 should only be done once.
622 * glib/examples/example-signal-emitter.c (main): Ditto.
624 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
626 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
627 (dbus_gvalue_marshal): Update prototypes.
629 * glib/dbus-gvalue.c: Update all marshalling functions to take
630 const GValue instead of GValue.
631 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
633 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
635 (dbus_gtype_to_signature): Handle generic collecitons and maps.
636 Return a newly-allocated string.
637 (demarshal_proxy, demarshal_object_path, demarshal_object)
638 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
639 we get the wrong types from message.
640 (get_type_demarshaller): New function, extracted from
641 dbus_gvalue_demarshal.
642 (demarshal_collection): New function, demarshals generic
644 (dbus_gvalue_demarshal): Just invoke result of
645 get_type_demarshaller. Throw error if we don't have one.
646 (marshal_garray_basic): Abort on OOM.
647 (get_type_marshaller): New function, extracted from
649 (collection_marshal_iterator, marshal_collection): New functions;
650 implements generic marshalling for an iteratable specialized
652 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
654 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
656 (ptrarray_value_from_gvalue): Ditto.
657 (ptrarray_append, ptrarray_free): New functions.
658 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
659 (slist_append, slist_end_append, slist_free): New functions.
660 (dbus_g_type_specialized_builtins_init): Add append fuctions
661 for GPtrArray and GSList. Register GSList.
662 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
664 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
666 (dbus_g_type_specialized_collection_init_append)
667 (dbus_g_type_specialized_collection_append)
668 (dbus_g_type_specialized_collection_end_append): Prototype.
669 (DBusGTypeSpecializedCollectionVtable): Add append_func and
672 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
673 (dbus_g_type_specialized_collection_append)
674 (dbus_g_type_specialized_collection_end_append): New functions.
675 (dbus_g_type_map_value_iterate): Take const GValue.
676 (dbus_g_type_collection_value_iterate): Ditto.
678 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
679 _dbus_gvalue_utils_test.
681 * glib/dbus-gtest.h: Prototype it.
683 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
684 using uninitialized owner_list.
685 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
687 (dbus_g_proxy_end_call_internal): Update to use error set
688 from dbus_gvalue_demarshal instead of setting it here.
689 (dbus_g_proxy_begin_call): Move return_if_fail here.
691 * glib/dbus-gobject.c (write_interface): Update for
692 dbus_gtype_to_signature returning new string.
694 * configure.in: Add glib/examples/statemachine.
696 2005-07-08 Joe Shaw <joeshaw@novell.com>
698 * configure.in: Add a configure option, --with-console-auth-dir
700 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
701 new setting. Patch from Kay Sievers.
703 2005-07-06 Colin Walters <walters@verbum.org>
705 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
706 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
707 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
708 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
709 Delete in favor of dbus_g_proxy_begin_call and
710 dbus_g_proxy_cancel_call.
711 (DBusGProxyCall, DBusGProxyCallNotify): New.
712 (dbus_g_proxy_begin_call): Change prototype to take callback, user
713 data, and destroy function. This replaces
714 dbus_g_pending_call_set_notify.
715 (dbus_g_proxy_cancel_call): Prototype.
716 (DBusGAsyncData): Delete, shouldn't be needed anymore.
718 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
720 (struct _DBusGProxyManager): Add bus_proxy member, which is an
721 internal proxy for calls to the bus. Remove
722 pending_nameowner_calls, now the internal proxy keeps track.
723 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
724 pending_nameowner_calls.
725 (got_name_owner_cb): Update prototype, and use
726 dbus_g_proxy_end_call.
727 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
728 (dbus_g_proxy_manager_register): Delete directly libdbus code in
729 favor of using internal proxy.
730 (dbus_g_proxy_manager_unregister): Update to use
731 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
732 (dbus_g_proxy_init): Initialize pending calls map.
733 (dbus_g_proxy_constructor): New.
734 (dbus_g_proxy_class_init): Add get/set property functions,
735 constructor, and add NAME, PATH, and INTERFACE properties.
736 (cancel_pending_call): New function.
737 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
739 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
740 (GPendingNotifyClosure): New structure.
741 (d_pending_call_notify, d_pending_call_free): Moved here from
743 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
745 (manager_begin_bus_call): New internal function for talking to
747 (dbus_g_proxy_new): Construct object using GObjet properties.
748 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
749 Create closure of same, and insert call into map of pending calls.
750 (dbus_g_proxy_end_call_internal): Take call id instead of pending
751 call. Look up pending call in current set. Remove it when we've
753 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
754 (dbus_g_proxy_begin_call): Change API to take callback, user data,
755 and destroy function directly.
756 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
757 (dbus_g_proxy_call): Invoke with NULL callback.
758 (dbus_g_proxy_cancel_call): New function, replaces
759 dbus_g_pending_call_cancel.
761 * glib/dbus-gparser.c (validate_signature): Fix call to
764 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
765 New quark for attaching metadata to GType.
767 (lookup_object_info): Look up using quark.
768 (dbus_g_object_type_install_info): Check that a type is classed,
769 not that it's an object. Also just install type data using quark
770 instead of using global hash.
772 * glib/dbus-glib.c (dbus_g_pending_call_ref)
773 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
774 (GPendingNotifyClosure): Delete.
775 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
776 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
778 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
779 client method generation until we can fix it...
781 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
782 (load_from_service_thread_func): Ditto.
784 * tools/dbus-names-model.c (struct NamesModel): Hold
786 (have_names_notify): Update prototype, use
787 dbus_g_proxy_cancel_call.
788 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
790 * tools/dbus-monitor.c (filter_func): Update for print_message
793 * test/glib/test-dbus-glib.c: Add more tests for async
794 invocations. Update many begin_call/end_call pairs to just use
797 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
798 allows us to dump print-introspect.c.
800 * tools/dbus-print-message.h (print_message): Add literal argument
801 to print_message which is intended to allow printing arguments without
802 metadata like "string=".
804 * tools/dbus-print-message.c (print_iter): Add literal argument.
805 (print_message): Allow printing string messages literally.
807 2005-07-05 Colin Walters <walters@verbum.org>
809 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
810 Remove value refcount leak, original patch from Jorn Baayen
811 <jorn@openedhand.com>. Also remove useless extra value in favor
812 of prepending to value array directly.
814 2005-07-02 Colin Walters <walters@verbum.org>
816 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
818 2005-07-01 Colin Walters <walters@verbum.org>
820 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
822 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
823 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
824 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
825 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
827 2005-06-30 Colin Walters <walters@verbum.org>
829 * test/glib/test-dbus-glib.c:
830 * test/glib/test-service-glib.c:
831 * test/glib/test-service-glib.xml: Update tests for new error
832 setting bits, also add async tests (patch from Ross Burton).
834 * test/glib/Makefile.am (test_service_glib_LDADD): Add
835 DBUS_GLIB_THREADS_LIBS.
837 * glib/dbus-gproxy.c (get_name_owner)
838 (dbus_g_pending_call_end_valist): Ditto.
840 * glib/dbus-gobject.c (error_metadata): New mapping from GError
841 domain (GQuark) to DBusGErrorInfo.
842 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
843 quark in error_metadata. Take message interface as default
844 error message interface.
845 (gerror_to_dbus_error_message): Pass message interface.
846 (dbus_set_g_error): Resurrected.
847 (dbus_g_error_info_free): New function.
848 (dbus_g_object_type_install_info): Use g_type_class_ref instead
849 of _peek to actually create the object class if it hasn't been
851 (dbus_g_error_domain_register): New function.
853 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
855 * glib/dbus-gparser.c (validate_signature): Ditto.
857 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
858 (dbus_g_error_domain_register): Prototype.
860 * glib/dbus-glib.c (dbus_g_error_set): Delete.
863 2005-06-29 Colin Walters <walters@verbum.org>
865 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
866 DBUS_TYPE_G_OBJECT_PATH.
868 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
869 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
870 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
871 (dbus_g_object_path_get_g_type): New function.
872 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
873 to DBUS_TYPE_G_OBJECT_PATH by default.
874 (demarshal_proxy): Remove unused name variable.
875 (demarshal_object_path, marshal_object_path): New functions.
876 (demarshal_proxy_array, marshal_proxy_array): Delete.
878 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
879 DBUS_TYPE_G_OBJECT_PATH to char *.
880 (dbus_g_type_get_lookup_function): Map builtin
881 DBUS_TYPE_G_OBJECT_PATH.
883 * test/glib/test-dbus-glib.c
884 * test/glib/test-service-glib.c (my_object_objpath):
885 Adapt tests to new object path marshalling.
887 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
889 * configure.in: force check for Python >= 2.4
891 2005-06-29 Colin Walters <walters@verbum.org>
893 Patch from Ross Burton <ross@openedhand.com>
895 * glib/dbus-gobject.c (invoke_object_method): Unset object
896 value in all cases, not only in async case.
898 2005-06-29 Colin Walters <walters@verbum.org>
900 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
901 name_call for keeping track of any outgoing GetNameOwner call.
902 Also add for_owner and associated.
903 (struct _DBusGProxyManager): Add owner_names, which is hash table
904 that maps a base name to a list of names it owns (that we're
905 interested in). Add pending_nameowner_calls which is a list of
906 all outstanding GetNameOwner; avoids us having to iterate over
907 every proxy. Add unassociated_proxies which keeps track of name
908 proxies with no associated name owner.
909 (dbus_g_proxy_manager_unref): Destroy owner_names.
910 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
912 (find_name_in_info, name_owner_foreach)
913 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
914 (dbus_g_proxy_manager_monitor_name_owner)
915 (dbus_g_proxy_manager_unmonitor_name_owner)
916 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
917 New functions; they manipulate the owner_names mapping.
918 (got_name_owner_cb): New function.
919 (get_name_owner): New function, extracted from
920 dbus_g_proxy_new_for_name_owner.
921 (dbus_g_proxy_manager_register): For now we need to keep track of
922 all NameOwnerChanged. Also if the proxy is for a name, if we
923 don't already know the name owner, queue a new GetNameOwner
924 request and add it to our list of unassociated proxies. Otherwise
926 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
927 cancel any pending GetNameOwner call, etc.
928 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
929 the owner_names mapping to look up the current names for the
930 signal source, and dispatch to any proxies for that name.
931 (dbus_g_proxy_new): Initialize new members.
932 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
933 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
934 (dbus_g_pending_call_end_valist): New function, extracted from
935 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
936 but want to use the GLib infrastructure. Also note how many
937 arguments in reply were over.
938 (dbus_g_pending_call_end): New function, just call
939 dbus_g_pending_call_end_valist.
940 (dbus_g_proxy_end_call_internal): Just call
941 dbus_g_pending_call_end_valist.
943 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
944 of builtin marshaller for STRING_STRING_STRING.
946 * test/glib/test-dbus-glib.c:
947 * test/glib/test-service-glib.c:
948 * test/glib/test-service-glib.xml:
949 Extend tests to cover name proxies, destruction of owner proxies,
952 * glib/examples/example-signal-recipient.c
953 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
955 * tools/dbus-send.c (main): Print D-BUS error name in addition
958 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
960 * python/dbus_bindings.pyx.in (cunregister_function_handler,
961 cmessage_function_handler): Patch from
962 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
963 by using the Py_GILState_Ensure/Release to synchronize with the
966 2005-06-28 Ray Strode <rstrode@redhat.com>
968 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
969 babysitter helper process on last unref, bug #2813.
971 2005-06-27 Colin Walters <walters@verbum.org>
973 * test/glib/test-dbus-glib.c:
974 * test/glib/test-service-glib.c:
975 * test/glib/test-service-glib.xml:
976 Test hash table signal emitting.
978 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
979 types to their fundamental basis types, since this is what
980 marshallers operate on. Also add an entry for VOID__BOXED.
981 (dbus_g_object_register_marshaller_array): Convert to fundamental.
983 2005-06-26 Havoc Pennington <hp@redhat.com>
985 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
988 2005-06-26 Colin Walters <walters@verbum.org>
990 * glib/dbus-glib.c (dbus_set_g_error): Delete.
991 (dbus_g_error_set): New public function from its ashes; used by
992 both service-side method implementation and GLib bindings
994 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
995 (_dbus_glib_test): Add some tests.
997 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
999 * test/glib/test-service-glib.c (my_object_throw_error): Use
1002 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1003 errors thrown by dbus_g_error_set.
1005 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1007 * glib/dbus-gparser.c (validate_signature): Ditto.
1009 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
1010 (dbus_g_proxy_end_call_internal): Ditto.
1012 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1013 converts DBUS_ERROR_x to DBUS_GERROR_x.
1014 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1016 * doc/TODO: Remove error TODO.
1018 * doc/dbus-tutorial.xml: Update with documentation about error
1021 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1022 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1023 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
1025 2005-06-22 Colin Walters <walters@verbum.org>
1027 Patch from Ross Burton <ross@openedhand.com>
1029 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1031 2005-06-20 Colin Walters <walters@verbum.org>
1033 * configure.in: Add glib/examples.
1035 * glib/Makefile.am: Add examples/
1037 * glib/examples/.cvsignore
1038 * glib/examples/Makefile.am
1039 * glib/examples/example-client.c
1040 * glib/examples/example-service.c
1041 * glib/examples/example-service.xml
1042 * glib/examples/example-signal-emitter.c
1043 * glib/examples/example-signal-emitter.xml
1044 * glib/examples/example-signal-recipient.c:
1045 New files; GLib binding examples, ported from
1048 2005-06-20 Colin Walters <walters@verbum.org>
1051 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1054 * glib/dbus-binding-tool-glib.c:
1055 * doc/dbus-tutorial.xml:
1056 * test/glib/test-dbus-glib.c: Update for rename.
1058 2005-06-20 Colin Walters <walters@verbum.org>
1060 Patch suggested by Ross Burton <ross@openedhand.com>
1062 * glib/dbus-gobject.c (export_signals): Free signal name.
1063 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1064 memory leak. Add a bit of documentation.
1065 (dbus_g_method_return_error): Free context, and note we do
1068 2005-06-18 Murray Cumming <murrayc@murrayc.com>
1071 * glib/dbus-gobject.c:
1072 * glib/dbus-gproxy.c:
1073 * glib/dbus-gvalue.c: Predeclare structs as
1074 typedef struct _Something Something instead of
1075 typedef struct Something Something, so we can
1076 redeclare the prototypes. Other GNOME libraries
1079 2005-06-17 Colin Walters <walters@verbum.org>
1081 * tools/dbus-names-model.c (have_names_notify): Fix call
1082 to dbus_g_proxy_end_call.
1084 2005-06-17 Colin Walters <walters@verbum.org>
1086 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1087 spew warnings if we get malformed remote signals.
1089 * glib/dbus-gobject.c (propsig_iterate): New function.
1090 (lookup_object_info): New function, extracted from
1091 lookup_object_and_method.
1092 (introspect_properties, introspect_signals): Delete; these
1093 are merged into write_interface.
1094 (write_interface): Write out signals and properties here;
1095 dump the org.gtk.object stuff and use the interface given
1096 in the introspection data blob. Also fix up property XML.
1097 (lookup_values): New function.
1098 (introspect_interfaces): Gather a mapping from interface to a
1099 list of its methods, signals, and properties, then write out
1101 (lookup_object_and_method): Use lookup_object_info.
1102 (struct DBusGSignalClosure): Add interface.
1103 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1104 we can just use the constant data.
1105 (dbus_g_signal_closure_finalize): Don't free signal name.
1106 (signal_emitter_marshaller): Use interface from signal closure.
1107 (export_signals): Only export signals mentioned in introspection
1109 (dbus_g_connection_register_g_object): Warn if we have no
1110 introspection data for an object.
1111 (funcsig_equal): Remove unused variable.
1112 (dbus_g_object_register_marshaller): Take varargs instead of
1114 (dbus_g_object_register_marshaller_array): New function,
1115 extracted from old dbus_g_object_register_marshaller.
1117 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1118 signals and property data.
1119 (write_quoted_string): New function, extracted from generate_glue.
1120 (generate_glue): Write signals and properties to introspection
1123 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1124 exported_signals and exported_properties.
1125 (dbus_g_object_register_marshaller): Update prototype.
1126 (dbus_g_object_register_marshaller_array): Prototype.
1128 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1130 * test/glib/test-service-glib.c: Add new test signals and method
1133 * test/glib/test-service-glib.xml: Add some test signals.
1135 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1136 and my-object-marshal.h
1137 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1138 my-object-marshal.c.
1139 (my-object-marshal.c, my-object-marshal.h): Implement.
1141 * test/glib/.cvsignore: Update.
1143 * doc/TODO: Remove two GLib TODO items fixed by this
1146 2005-06-16 Colin Walters <walters@verbum.org>
1148 * doc/TODO: Update for GLib bindings.
1150 2005-06-16 Colin Walters <walters@verbum.org>
1152 * glib/dbus-binding-tool-glib.c:
1153 * glib/dbus-gobject.c:
1154 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1155 from Ross Burton, for his GLib bindings work.
1157 2005-06-16 Colin Walters <walters@verbum.org>
1159 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1160 to iterate instead of walking to G_TYPE_INVALID.
1162 Patch based on a patch from Ryan Gammon.
1164 2005-06-16 Colin Walters <walters@verbum.org>
1166 * bus/bus.c (bus_context_new): Set parser to NULL
1167 after we unref it (Patch from Chris Boscolo, #2174).
1169 2005-06-16 Colin Walters <walters@verbum.org>
1171 * python/dbus_bindings.pyx.in: Import size_t,
1172 __int64_t, __uint64_t, and __signed.
1174 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1175 Define cmsg struct, output it.
1176 (_dbus_read_credentials_unix_socket):
1179 Patch from Joe Markus Clarke for FreeBSD support.
1181 2005-06-16 Colin Walters <walters@verbum.org>
1183 * tools/dbus-send.c (append_array): Use strtok.
1184 (append_dict): New function.
1185 (type_from_name): New function, extracted from main.
1186 (main): Handle sending dicts.
1188 * tools/dbus-print-message.c (print_iter): Print dict
1191 2005-06-16 Colin Walters <walters@verbum.org>
1193 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1194 values as the empty string (#2948).
1196 2005-06-16 Colin Walters <walters@verbum.org>
1199 * mono/doc/Makefile.am:
1200 * test/glib/Makefile.am:
1202 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1204 2005-06-16 Colin Walters <walters@verbum.org>
1206 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1207 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1209 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1210 Increment pointer after swapping fixed array. Add assertion
1213 2005-06-15 Colin Walters <walters@verbum.org>
1215 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1216 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1218 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1220 * NEWS: Update to 0.34
1222 2005-06-15 David Zeuthen <davidz@redhat.com>
1224 * configure.in (LT_CURRENT): Revert back to 1 as the library
1225 hasn't changed and we've certainly not committed to protocol
1226 stability yet. All this does is to break ABI. See commit note
1227 from hp@redhat.com 2005-05-05 for details.
1229 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1231 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1232 (_dbus_connection_run_builtin_filters): New method
1233 (dbus_connection_dispatch): Run the builtin filters which in turn
1234 runs the peer filter which handles Ping messages.
1237 - Ping isn't handled: This patch fixes it
1239 - Add a test case for the Ping message: added TODO item
1241 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1243 * dbus/dbus-message.c:
1244 (dbus_message_has_path): New method
1245 (dbus_message_has_interface): New method
1246 (dbus_message_has_member): New method
1248 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1251 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1252 the keyring directory is private to the user
1255 - The convenience functions in dbus-bus.h should perhaps have
1256 the signatures that they would have if they were autogenerated
1257 stubs. e.g. the acquire service function. We should also evaluate
1258 which of these functions to include, in light of the fact that
1259 GLib/Qt native stubs will probably also exist.: Punted
1261 - add dbus_message_has_path(), maybe has_member/interface:
1264 - in dbus-keyring.c, enforce that the keyring dir is not
1265 world readable/writable: Fixed in this patch
1267 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1269 * dbus/dbus-marshal-validate.h: Added a new validation
1270 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1271 out of memory errors when validating signitures
1273 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1274 in places where we previously used DBUS_VALID and a FALSE return
1275 value to indicate OOM
1277 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1278 Use a stack to track the number of elements inside containers. The
1279 stack values are then used to validate that dict entries have only two
1280 elements within them.
1281 (validate_body_helper): check the reason for failure when validating
1284 * dbus/dbus-message.c (load_message): use
1285 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1286 DBUS_VALID and a FALSE return value to indicate OOM
1288 * doc/TODO: remove "- validate dict entry number of fields" as this
1291 2005-06-14 David Zeuthen <davidz@redhat.com>
1293 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1294 watches (if applicable) and add new watches
1296 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1297 (main): Setup SIGIO signal handler if using D_NOTIFY
1299 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1301 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1302 (merge_included): Also merge conf_dirs list
1303 (bus_config_parser_unref): Clear conf_dirs list
1304 (include_dir): Add directory to conf_dirs list
1305 (bus_config_parser_get_conf_dirs): New function
1307 * bus/dir-watch.[ch]: New files
1309 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1311 * configure.in: Add checks for D_NOTIFY on Linux
1313 2005-06-14 Colin Walters <walters@verbum.org>
1315 * glib/dbus-binding-tool-glib.c:
1316 * glib/dbus-gobject.c:
1317 * glib/dbus-gvalue.c: Fix indentation and brace style.
1319 2005-06-14 Ross Burton <ross@openedhand.com>.
1321 * glib/dbus-glib.h: Make DBusGMethodInvocation
1322 a private structure. Rearrange prototypes a bit.
1324 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1325 documentation for first_arg_type.
1327 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1328 here, add documentation. Move dbus_g_method_return
1329 and dbus_g_method_return_error into public API
1332 2005-06-14 Colin Walters <walters@verbum.org>
1334 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1335 Add missing return statements, noticed by Ross Burton.
1337 2005-06-13 Ross Burton <ross@openedhand.com>.
1339 * glib/dbus-gobject.c: Handle errors on message
1340 demarshalling by sending error message back.
1341 * glib/dbus-gvalue.c: Initialize return variables.
1343 2005-06-13 Colin Walters <walters@verbum.org>
1345 * glib/Makefile.am: Fix thinko in last patch.
1347 2005-06-13 Colin Walters <walters@verbum.org>
1349 * glib/Makefile.am: Move dbus-gtype-specialized.c
1350 and dbus-gtype-specialized.h into a _HEADERS variable,
1353 2005-06-12 Colin Walters <walters@verbum.org>
1355 Async signals and various bugfixes and testing by
1356 Ross Burton <ross@openedhand.com>.
1358 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1359 (dbus_gvalue_genmarshal_name_from_type)
1360 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1361 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1362 (dbus_g_value_types_init, dbus_gtype_from_signature)
1363 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1364 (dbus_gtypes_from_arg_signature): New function prototypes.
1365 (dbus_gvalue_demarshal): Take context and error arguments.
1366 (dbus_gvalue_demarshal_variant): New function.
1367 (dbus_gvalue_demarshal_message): New function.
1368 (dbus_gvalue_store): Delete.
1370 * glib/dbus-gvalue.c:
1372 File has been almost entirely rewritten; now we special-case
1373 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1374 hash tables correctly, etc. Full support for recursive values
1375 is not yet complete.
1377 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1378 argument of signal to G_TYPE_POINTER since we now pass a
1380 (lookup_g_marshaller): Delete in favor of
1381 _dbus_gobject_lookup_marshaller.
1382 (marshal_dbus_message_to_g_marshaller): Use
1383 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1384 to handle remote signal callbacks.
1385 (dbus_g_proxy_new_from_proxy): New function; creates a new
1386 DBusGProxy by copying an existing one.
1387 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1388 (dbus_g_proxy_get_path): New functions.
1389 (dbus_g_proxy_marshal_args_to_message): New function;
1390 factored out of existing code.
1391 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1392 from a varargs array.
1393 (dbus_g_proxy_begin_call_internal): New function.
1394 (dbus_g_proxy_end_call_internal): New function.
1395 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1396 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1397 after collecting args into value array.
1398 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1399 invoke dbus_g_proxy_end_call_internal.
1400 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1402 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1404 (array_free_all): New function.
1405 (dbus_g_proxy_add_signal): Take GTypes.
1407 * glib/dbus-gobject.h:
1408 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1409 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1412 * glib/dbus-gobject.c: Add a global marshal_table hash which
1413 stores mappings from type signatures to marshallers. Change lots
1414 of invocations of dbus_gtype_to_dbus_type to
1415 dbus_gtype_to_signature.
1416 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1417 (introspect_signals): Fix test for query.return_type.
1418 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1419 (invoke_object_method): Many changes. Handle asynchronous
1420 invocations. Convert arguments with
1421 dbus_gvalue_demarshal_message. Handle errors. Use
1422 DBusSignatureIter instead of strlen on args. Handle all arguments
1423 generically. Special-case variants.
1424 (dbus_g_method_return, dbus_g_method_return_error): New function.
1425 (DBusGSignalClosure): New structure, closes over signal
1427 (dbus_g_signal_closure_new): New function.
1428 (dbus_g_signal_closure_finalize): New function.
1429 (signal_emitter_marshaller): New function; is special marshaller
1430 which emits signals on bus.
1431 (export_signals): New function; introspects object signals and
1433 (dbus_g_object_type_install_info): Take GType instead of
1435 (dbus_g_connection_register_g_object): Invoke export_signals.
1436 (dbus_g_connection_lookup_g_object): New function.
1437 (DBusGFuncSignature) New structure; used for mapping type
1438 signatures to marshallers.
1439 (funcsig_hash): New function; hashes DBusGFuncSignature.
1440 (funcsig_equal): New function; compares DBusGFuncSignature.
1441 (_dbus_gobject_lookup_marshaller): New function.
1442 (dbus_g_object_register_marshaller): New function; used to
1443 register a marshaller at runtime for a particular signature.
1445 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1447 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1448 which notes a server method implementation should be
1451 * glib/dbus-binding-tool-glib.c
1452 (dbus_binding_tool_output_glib_server): Call
1453 dbus_g_value_types_init.
1454 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
1456 (dbus_g_type_get_lookup_function): Turn GType into an invocation
1457 of a lookup function.
1458 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1459 (write_untyped_out_args): New method; write output arguments.
1460 (write_formal_declarations_for_direction): Function for
1462 (write_formal_parameters_for_direction): Function for
1463 writing implementations.
1464 (write_typed_args_for_direction): Function for writing
1465 arguments prefixed with GTypes.
1466 (write_async_method_client): Write out async version
1469 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1470 (dbus_g_type_get_marshal_name): Move mapping from GType
1471 to marshal name into here.
1472 (dbus_g_type_get_c_name): Move into here.
1473 (compute_marshaller): Convert signature to type with
1474 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1475 (compute_marshaller_name): Ditto.
1476 (compute_marshaller): Handle async signal annotations.
1477 (gather_marshallers): Return if we don't have a known
1479 (generate_glue): Collect introspection blob here, and
1480 write all of the blob at the end. This allows an object
1481 with multiple interfaces to work.
1482 Mark async methods in introspection blob.
1484 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1485 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1486 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1488 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1489 avoids people accidentally using DBUS_TYPE_* which should
1490 not be necessary anymore.
1491 Do include dbus-gtype-specialized.h, which are utilities
1492 for GLib container types.
1493 Add various #defines for types such as
1494 DBUS_TYPE_G_BOOLEAN_ARRAY.
1495 (DBusGValueIterator, DBusGValue): Define, not fully used
1497 (dbus_g_value_get_g_type): Type for recursive value.
1498 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1499 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1500 (dbus_g_value_free): Prototypes.
1501 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1502 (dbus_g_proxy_set_interface): Prototype.
1503 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1504 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1506 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1508 (DBusGAsyncData, DBusGMethodInvocation): Structures for
1509 doing async invocations.
1510 (dbus_g_method_return, dbus_g_method_return_error):
1512 * doc/dbus-tutorial.xml: Update GLib section.
1514 * tools/dbus-viewer.c (load_child_nodes): Update
1515 for new invocation type of dbus_g_proxy_end_call.
1516 (load_from_service_thread_func): Ditto.
1518 * tools/print-introspect.c (main): Ditto.
1520 * tools/dbus-names-model.c (have_names_notify)
1521 (names_model_reload, names_model_set_connection)
1524 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1525 needed since Python bindings use GLib bindings.
1527 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1528 Add --prefix argument.
1530 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
1531 unneeded --ignore-unsupported arg.
1533 * test/glib/test-service-glib.c:
1534 * test/glib/test-service-glib.xml:
1535 * test/glib/test-dbus-glib.c: Add many more tests.
1537 2005-06-06 David Zeuthen <davidz@redhat.com>
1539 * doc/TODO: Add item about need to remove deprecated functions.
1541 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1543 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1544 to repair the ABI which was broken with the last commit.
1546 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
1548 * dbus/dbus-connection.c, dbus/dbus-connection.h
1549 (dbus_connection_disconnect): renamed to dbus_connection_close
1550 for API symmetry with dbus_connection_open
1551 (_dbus_connection_open_internal):
1552 s/dbus_connection_disconnect/dbus_connection_close
1554 * dbus/dbus-bus.c (dbus_bus_get):
1555 s/dbus_connection_disconnect/dbus_connection_close
1557 * bus/connection.c (bus_connections_unref,
1558 bus_connections_setup_connection, bus_connections_expire_incomplete):
1559 s/dbus_connection_disconnect/dbus_connection_close
1561 * bus/dispatch.c (bus_dispatch, kill_client_connection,
1562 kill_client_connection_unchecked, check_hello_connection):
1563 s/dbus_connection_disconnect/dbus_connection_close
1565 * bus/bus.c (new_connection_callback):
1566 s/dbus_connection_disconnect/dbus_connection_close
1568 * tools/dbus-send.c (main):
1569 s/dbus_connection_disconnect/dbus_connection_close
1571 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1572 s/dbus_connection_disconnect/dbus_connection_close
1574 * test/test-service.c (path_message_func, filter_func):
1575 s/dbus_connection_disconnect/dbus_connection_close
1577 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
1579 2005-05-25 Colin Walters <walters@verbum.org>
1581 * dbus/dbus-protocol.h: Move various bus service #defines such
1582 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1584 * dbus/dbus-shared.h: Various defines moved here.
1585 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1587 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
1589 * python/__init__.py: Python bindings deserve a minor version
1590 update. Upped to (0, 40, 2)
1592 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
1594 * python/decorators.py: add explicitly_pass_message decorator
1595 for passing in the dbus message as keyword for edge case signal
1598 * python/matchrules.py (SignalMatchRule.__repr__): fix output
1599 to conform with what dbus expects for match rules
1600 (SignalMatchRule.execute): add the dbus message as a keyword
1601 if the signal handler has requested it
1603 * python/examples/example/signal-recipient.py: added some more
1604 examples on how to hook up to signals
1606 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
1608 * python/decorators.py: import dbus_bindings
1610 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
1611 SignalMatchNode): new classes that implement wildcard signal
1612 callback matching using a tree lookup. Heavily modified from a
1613 patch sent by Celso Pinto (fd.o bug #3241)
1615 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1616 use new match classes to handle signals.
1618 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
1620 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1622 2005-05-18 Havoc Pennington <hp@redhat.com>
1624 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1625 gettext. Not really worth requiring yet perhaps, but any
1626 production quality 1.0 would require it so we should go ahead and
1627 get things set up. We do have a couple token calls to
1628 bindtextdomain in the code already.
1630 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
1632 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1633 when using recursive g_main_loops
1635 * python/_dbus.py (class Bus): add the ProxyObjectClass
1636 alias for ProxyObject to make it easier for the Twisted
1637 networking framework to integrate dbus.
1639 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1640 alias for ProxyMethod to make it easier for the Twisted
1641 networking framework to integrate dbus.
1643 2005-05-11 Ross Burton <ross@openedhand.com>
1645 * glib/dbus-glib-tool.c: Add --prefix argument.
1646 * glib/dbus-binding-tool-glib.h: Add prefix argument.
1647 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1648 Add prefix argument.
1649 (generate_glue): Pass prefix argument down.
1650 (dbus_binding_tool_output_glib_server): Pass prefix to
1653 2005-05-11 Colin Walters <walters@verbum.org>
1655 * tools/dbus-send.c (append_array): New function.
1656 (append_arg): Broken out from main.
1657 (main): Add cheesy hack to send arrays and variants.
1659 * tools/dbus-print-message.c (print_iter): Broken out
1662 2005-05-11 Colin Walters <walters@verbum.org>
1664 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1665 New function, returns signature string for signature iter.
1666 * dbus/dbus-signature.h: Prototype it.
1667 * dbus/dbus-message.c (dbus_message_iter_get_signature):
1668 New function, returns signature string for message iter.
1669 (dbus_message_iter_get_array_len): New function, returns
1671 (dbus_message_iter_get_fixed_array): Fix assertion; this
1672 function should be used when the iter is pointing to the
1673 contents of an array
1674 * dbus/dbus-message.h: Prototypes.
1675 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1676 New function; returns length of an array.
1677 * dbus/dbus-marshal-recursive.h: Prototype it.
1679 2005-05-11 Colin Walters <walters@verbum.org>
1681 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1684 2005-05-08 Havoc Pennington <hp@redhat.com>
1686 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1687 daemon's pid, not the parent's pid, to the file descriptor.
1688 Reported by Taj Morton.
1690 2005-05-05 Havoc Pennington <hp@redhat.com>
1692 * configure.in (LT_*): add notes on how the libtool versioning
1693 works to save thinking. Increment soname to indicate protocol
1694 breakage (though really the library interface hasn't changed I
1697 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1698 verify the GUID received from server matches what we were
1699 expecting, if we had an expectation
1701 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1702 (_dbus_auth_get_guid_from_server): new function
1703 (send_begin): parse the OK args
1705 * doc/dbus-specification.xml: add GUID to the auth protocol
1707 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
1709 * Fix my name in previous changelog ;)
1711 * python/proxies.py (ProxyObject.__getattr__): add further patch
1712 from Anthony Baxter to throw an AttributeError when python
1713 __special__ functions are called instead of marshling them over
1714 the bus (Bug#1685 comment 3).
1716 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
1718 * python/Makefile.am: changed to use pyexecdir for the binding
1719 shared libraries (Bug#2494)
1721 * python/exceptions.py: bring exceptions over from the bindings
1722 so they can be used in applications (Bug#2036)
1723 Make all exceptions derive from DBusException
1725 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1726 of classes so that print obj doesn't throw an exception (Bug #1685)
1728 2005-05-03 Ross Burton <ross@openedhand.com>
1730 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1731 Return if we get an error during registration. Set up a
1732 weak reference on object to unregister if object is destroyed.
1733 (unregister_gobject): New function.
1735 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
1737 * python/dbus_bindings.pyx.in:
1738 - added new type classes for hinting to the marashaler what type
1739 to send over the wire
1740 - added int16 and uint16 marshalers
1741 - Fixed a bug in the type constants that caused int32 to go out
1742 as uint16 over the wire
1743 * python/dbus.py: split up into different files and renamed _dbus.py
1744 * python/__init__.py, python/_util.py, python/decorators.py,
1745 python/exceptions.py, python/proxies.py, python/services.py,
1746 python/types.py: new files split off from dbus.py
1747 * python/Makefile.am: Add new files, remove dbus.py and
1748 install all python files to <python module dir>/dbus
1749 * python/examples/*: Added #!/usr/bin/env python to the top of
1750 every example. Patch provided by Tatavarty Kalyan
1752 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1754 * NEWS: Update to 0.33
1756 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1758 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1759 method for doing async calls
1760 (_pending_call_notification): New C function for handling pendning call
1762 (set_notify): New method for setting pending call notification
1764 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1765 Async capabilities added to remote method calls
1766 (Sender): class removed
1767 (RemoteService): class removed
1768 (ObjectTree): class removed for now
1769 (RemoteObject): Renamed to ProxyObject
1770 (RemoteMethod): Renamed to ProxyMethod
1771 (method): Decorator added for decorating python methods as dbus methods
1772 (signal): Decorator added for decorating python methods as signal emitters
1773 (ObjectType): Metaclass added for generating introspection data and the
1774 method callback vtable
1775 (Interface): Wrapper class added to wrap objects in a dbus interface
1776 (Object): Uses ObjectType as its metaclass and exports Introspect
1777 of the org.freedesktop.DBus.Introspectable interface
1778 (ValidationException, UnknownMethodException): new exceptions
1780 * python/examples/*: Modified to fit with the new bindings
1782 2005-04-23 Havoc Pennington <hp@redhat.com>
1784 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1785 reported by Tony Houghton
1787 * test/test-service.c (main): test
1788 dbus_connection_get_object_path_data()
1790 * dbus/dbus-object-tree.c (find_handler): be sure we always init
1792 (_dbus_object_tree_get_user_data_unlocked): new function used by
1793 dbus_connection_get_object_path_data()
1794 (do_register): add assertion test for get_user_data_unlocked
1795 (object_tree_test_iteration): more tests
1797 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1798 new function from Dan Reed to let you get the user data from
1799 dbus_connection_register_object_path()
1801 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
1803 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1804 in numerous places that did not account for the NULL terminator
1805 (signature_from_seed): changed the manual string copy loop to
1806 just use strcpy instead
1807 make check should now pass
1809 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
1811 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1812 so that it allows messages that are not signals to pass in
1813 NULL as the interface.
1815 2005-04-18 David Zeuthen <davidz@redhat.com>
1817 * glib/dbus-gmain.c (io_handler_destroy_source):
1818 (timeout_handler_destroy_source, connection_setup_free):
1819 Also unref the source to avoid memory leaks.
1821 2005-04-13 David Zeuthen <davidz@redhat.com>
1823 * bus/config-parser.c (bus_config_parser_new): Bump this to a
1824 more reasonable, yet still totally arbitrary, value :-).
1826 2005-04-13 David Zeuthen <davidz@redhat.com>
1828 * doc/TODO: Added an "important for 1.0" item about selinux
1831 2005-04-13 David Zeuthen <davidz@redhat.com>
1833 * bus/selinux.c: Add c-file-style to top of file
1834 (log_audit_callback): Don't free the data here anymore
1835 (bus_selinux_check): Don't take spid and tpid since appending
1836 that to auxdata may OOM.
1837 (bus_selinux_allows_acquire_service): Handle OOM and signal back
1838 to the caller if we are OOM by taking an error object.
1839 (bus_selinux_allows_send): -do-
1841 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1842 and bus_selinux_allows_send
1844 * bus/bus.c (bus_context_check_security_policy): Pass error and
1845 pass on OOM thrown by bus_selinux_allows_send()
1847 * bus/services.c (bus_registry_acquire_service): Pass error and
1848 pass on OOM thrown by bus_selinux_allows_acquire_service()
1850 2005-04-13 Havoc Pennington <hp@redhat.com>
1852 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1853 message at a time to avoid monopolizing the main loop, bug
1854 #2953 from Benjamin Otte
1856 2005-04-09 Havoc Pennington <hp@redhat.com>
1858 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1859 possible overlap, fix from Daniel Reed
1860 (fixup_alignment): fix signedness warnings
1861 (_dbus_string_append_unichar): ditto
1863 2005-04-09 Havoc Pennington <hp@redhat.com>
1865 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1867 * glib/dbus-glib-tool.c (main): fix warning
1869 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1871 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1872 add a new function that can be used in simple applications that
1873 don't have a main loop and are willing to block
1875 2005-04-05 David Zeuthen <davidz@redhat.com>
1877 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1879 * glib/dbus-gmain.c:
1880 (io_handler_destroy_source): Remove from list of IO handlers
1881 of the ConnectionSetup object
1882 (timeout_handler_destroy_source): -do- for timeout handlers
1883 (io_handler_source_finalized): Don't remove from list since
1884 we now do that in io_handler_destroy_source(). Renamed from
1885 io_handler_source_destroyed
1886 (timeout_handler_source_destroyed): -do- for timeout handlers
1887 (connection_setup_free): It is now safe to iterate over all
1888 IO and timeout handlers as the _destroy_source removes them
1889 from the list synchronously
1891 2005-03-30 Havoc Pennington <hp@redhat.com>
1893 * configure.in: change check to gtk 2.4
1895 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1896 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1899 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1903 * HACKING: Fixed realease instructions. configure.in should be updated to
1904 the next release by the person who made the last release.
1906 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1908 * python/lvalue_cast_post_process.py - removed. Patch has been
1909 submitted to Pyrex maintainers that fixes gcc4.0 errors
1911 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1913 2005-03-24 Daniel Reed <n@ml.org>
1915 * tools/Makefile.am: Make print-introspect and
1916 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1918 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1920 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1922 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1923 had in Red Hat packages for a while but for some reason never
1925 (_dbus_is_a_number): New checks if a string
1926 can be converted to a number and does the conversion if it can
1927 (_dbus_user_database_lookup): Add check to see if the given username
1928 is a udi. This allows udi's to be used instead of usernames in the
1930 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1931 is a gdi. This allows gdi's to be used instead of groupnames in the
1934 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1936 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1937 code so that it compiles with gcc4.0
1939 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1940 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1941 results back to dbus_binding.c
1943 2005-03-20 Colin Walters <walters@verbum.org>
1945 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1947 * configure.in: Require GTK+ 2.6.
1949 2005-03-20 Colin Walters <walters@verbum.org>
1951 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1953 2005-03-17 Tom Parker <palfrey@tevp.net>
1955 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1956 print DBUS_UID_UNSET; instead print passed username. Also
1957 be sure to actually use gid looked up in cache.
1959 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1960 for DBUS_GID_UNSET and groupname.
1962 2005-03-17 Colin Walters <walters@verbum.org>
1964 * bus/print-introspect.c: Move to tools/.
1965 * bus/run-with-tmp-session-bus.sh: Ditto.
1967 * glib/Makefile.am (dbus-glib-bindings.h): Move
1968 generation to tools/Makefile.am.
1970 * test/glib/run-test.sh: Update to handle move
1971 of run-with-tmp-session-bus.sh.
1973 * test/glib/test-service-glib.c: Update to handle
1974 move of dbus-glib-bindings.h.
1976 * tools/print-introspect.c: Moved here
1977 from bus/, and ported to GLib bindings.
1979 * tools/run-with-tmp-session-bus.sh: Moved here
1982 * tools/Makefile.am: Generate dbus-glib-bindings.h
1983 and dbus-bus-introspect.xml here.
1985 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1988 2005-03-17 Colin Walters <walters@verbum.org>
1990 * bus/driver.c (write_args_for_direction): Use
1991 _dbus_string_get_const_data to retrieve string;
1992 _dbus_string_get_const_data_len doesn't actually return
1993 a NULL-terminated substring.
1995 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1996 (main): Change to use org_freedesktop_DBus_request_name
1997 instead of using g_proxy_begin_call/end_call.
1999 2005-03-15 Joe Shaw <joeshaw@novell.com>
2001 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2002 generating the finalizer. Fixes from Ben Maurer.
2004 2005-03-12 Joe Shaw <joeshaw@novell.com>
2006 * mono/BusDriver.cs: Update method names: ListServices
2007 becomes ListNames; GetOwner becomes GetNameOwner.
2009 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2010 onto the eval stack when removing the delegate.
2012 2005-03-12 Joe Shaw <joeshaw@novell.com>
2014 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2015 LT_CURRENT. Set it to the autoconf variable.
2017 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2018 classes that disconnects the signal handler delegate from the
2019 service object. Fixes a big leak of proxy objects on the
2020 client side of things. Patch from Ben Maurer
2021 <bmaurer@ximian.com>
2023 2005-03-12 Colin Walters <walters@verbum.org>
2025 * bus/driver.c (write_args_for_direction): New function,
2026 parses a type signature into arguments and outputs to
2028 (bus_driver_handle_introspect): Use it instead of
2029 hardcoding XML for certain signatures.
2031 * bus/Makefile.am (dbus-bus-introspect.xml): Add
2032 dependency on dbus-daemon.
2034 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2035 argument, pass it to dbus_binding_tool_output_glib_client.
2037 * glib/dbus-binding-tool-glib.c
2038 (generate_client_glue): Protect against multiple inclusion.
2039 (dbus_binding_tool_output_glib_client): Add
2040 G_BEGIN_DECLS/G_END_DECLS.
2042 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2043 Change to just take iface prefix directly.
2044 (write_formal_parameters): Clarify error message.
2045 (check_supported_parameters): New function; checks to see type
2046 signatures of method parameters are supported.
2047 (generate_client_glue): Handle ignore_unsupported flag.
2048 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2051 * glib/Makefile.am (dbus-glib-bindings.h): Pass
2052 --ignore-unsupported by default until glib bindings
2055 2005-03-11 Colin Walters <walters@verbum.org>
2057 * glib/Makefile.am: Generate dbus-glib-bindings.h and
2060 * bus/print-introspect.c: New file; prints introspection
2061 data for a given name and object path.
2063 * bus/run-with-tmp-session-bus.sh: New file, refactored
2064 from test/glib/run-test.sh. Creates a temporary session
2065 bus and runs another program.
2067 * test/glib/run-test.sh: Refactor to invoke
2068 run-with-tmp-session-bus.sh.
2070 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2071 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
2072 macros instead of hardcoding.
2074 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2076 2005-03-11 Joe Shaw <joeshaw@novell.com>
2078 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2079 this unref; it doesn't match up evenly in some codepaths.
2080 (_dbus_connection_block_pending_call): Unref at every exitpoint;
2081 this evenly matches with the ref near the top of this function.
2083 2005-03-09 Joe Shaw <joeshaw@novell.com>
2085 * dbus/dbus-object-tree.c
2086 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2087 and we try to unregister a path that's not registered, still go
2088 through the process of unlocking and don't just return.
2090 2005-03-09 Colin Walters <walters@verbum.org>
2092 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2093 to this are generated for client-side wrappers. Invokes a
2094 D-BUS method and returns reply values.
2096 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2097 function; writes signature string for argument direction.
2098 (write_args_for_direction): Change to pass input values directly
2099 instead of via address, and fix indentation.
2100 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2101 make generated wrappers inlineable.
2103 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2104 note about using dbus_type_is_fixed.
2106 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2107 dbus/dbus-signature.c as dbus_type_is_fixed.
2109 All callers updated.
2111 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2112 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2114 * dbus/dbus-signature.h: Prototype.
2116 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2119 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2120 appropriate instead of just freeing it.
2121 (main): Free returned strings using g_free.
2123 * test/glib/Makefile.am (test-service-glib-glue.h)
2124 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2126 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2127 simply maps a simple D-BUS type to GType.
2128 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2130 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2131 initialize the value with it.
2132 (dbus_gvalue_binding_type_from_type): Unused, delete.
2133 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2134 various types instead of unmarshalling to value data directly.
2135 Remove can_convert boolean.
2136 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2137 returning directly instead of using can_convert boolean.
2138 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2139 Stores a GValue in a pointer to a value of its corresponding C
2142 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2143 add dbus_gvalue_store.
2145 2005-03-08 Joe Shaw <joeshaw@novell.com>
2147 Fix a bunch of lifecycle and memory management problems
2148 in the mono bindings.
2150 * mono/Arguments.cs (Arguments): Implement IDisposable
2152 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2153 strictly a static class.
2155 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2156 delegates into this file.
2157 (Connection): Implement IDisposable.
2158 (Dispose): Disconnect the connection and set the raw connection
2159 pointer to IntPtr.Zero.
2160 (~Connection): Call Dispose().
2161 (RegisterObjectPath): Added. Manages the registration of object
2162 paths so we can cleanly disconnect them at dispose/finalize time.
2163 (UnregisterObjectPath): Ditto.
2164 (set_RawConnection): Unregister all of the object paths when
2165 changing the underlying DBusConnection. Add them back onto the
2166 new connection, if any.
2168 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2169 more unmanaged resources anymore, so it's not necessary. Move all
2170 the DBusObjectPathVTable stuff out of here.
2171 (Handler): Save references to our delegates so that they don't get
2172 finalized. Call Connection.RegisterObjectPath() instead of
2173 dbus_connection_register_object_path() directly.
2174 (Message_Called): Dispose the message after we're finished with
2177 * mono/Message.cs (Message): Implement IDisposable.
2178 (Dispose): Dispose the Arguments, and set the RawMessage to
2180 (SendWithReplyAndBlock): We own the ref to the reply that comes
2181 back from dbus_connection_send_with_reply_and_block() so add a
2182 comment about that and unref it after we've constructed a managed
2183 MethodReturn class around it. Fixes a big, big leak.
2185 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2187 (BuildSignalHandler): After we've sent the Signal message, dispose
2189 (BuildMethod): Dispose of the method call and reply messages after
2190 we've sent the message and extracted the data we want from the
2193 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2195 (Service_FilterCalled): Dispose of the message after we're
2198 2005-03-08 Joe Shaw <joeshaw@novell.com>
2200 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2201 After we attach our pending call to the connection, unref
2204 * mono/Connection.cs (set_RawConnection): Disconnect our
2205 filter and match callbacks from the old connection and
2206 reconnect them to the new connection, if any.
2208 * mono/DBusType/Array.cs: "Code" is a static member, so
2209 don't use "this" to refer to it. Fix for stricter checking
2212 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2213 object path that we pass into unmanaged code.
2215 * mono/DBusType/String.cs (Append): Don't leak the string
2216 that we pass into unmanged code.
2218 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2219 * NEWS: Update for 0.31
2221 * configure.in: Release 0.31
2222 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2224 * qt/Makefile.am: fixed build
2226 * dbus/Makefile.am: soname bump for libdbus
2228 * glib/Makefile.am: soname bump for libdbus-glib
2230 2005-03-05 Havoc Pennington <hp@redhat.com>
2232 * dbus/dbus-sysdeps.c:
2233 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2235 (_dbus_generate_random_bytes_buffer): fix return value
2237 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2238 checks actually work, from Tom Parker <fdo@tevp.net>
2240 2005-03-01 Colin Walters <walters@verbum.org>
2242 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2243 functions copied from dbus-glib-tool.c.
2244 (main): Convert lots of error code to use them.
2245 Also add some testing for introspection bits.
2247 2005-03-01 Colin Walters <walters@verbum.org>
2249 * doc/TODO: Remove introspection signature TODO.
2251 2005-02-27 Colin Walters <walters@verbum.org>
2253 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2254 Change return value to const char * instead of int so we can do
2256 (struct PropertyInfo, struct ArgInfo): Store char *.
2257 (property_info_new, arg_info_new): Update parameters, strdup.
2258 (property_info_unref, arg_info_unref): Free.
2260 * glib/dbus-gidl.h: Update prototypes.
2262 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2263 (validate_signature): New function, just validates signature and
2265 (parse_property, parse_arg): Invoke validate_signature. Store
2266 signature instead of just type code.
2268 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2269 function to return a primary type for a signature, dropping
2270 information about types in container types.
2271 (dbus_gvalue_genmarshal_name_from_type)
2272 (dbus_gvalue_binding_type_from_type)
2273 (dbus_gvalue_ctype_from_type): Update to take full signature
2274 instead of type code.
2275 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2277 * glib/dbus-gvalue.h: Update prototypes for above.
2279 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2280 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2281 (introspect_properties, introspect_signals, write_interface):
2282 Update to handle signatures, and remove usage of
2283 _dbus_gutils_type_to_string.
2284 (handle_introspect): Print out type codes instead of e.g. "string"
2285 in hardcoded introspection XML; also use x_AS_STRING constants
2286 instead of hardcoding in string.
2288 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2289 to string. Remove usage of _dbus_gutils_type_to_string.
2291 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2293 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2296 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2297 (compute_marshaller_name, generate_glue): Handle signature change
2299 (write_formal_parameters, write_args_for_direction): Ditto, and
2302 * tools/dbus-tree-view.c (type_to_string): Delete.
2303 (info_set_func_text): Update to print full signatures.
2305 * test/glib/test-service-glib.xml: Change types to new
2306 introspection format.
2308 2005-02-26 Havoc Pennington <hp@redhat.com>
2310 * doc/TODO: remove the "guid" item
2312 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2313 (with_bus_thread_func): use open_private
2315 * dbus/dbus-connection.c (dbus_connection_open_private): new
2316 function that works like the old dbus_connection_open()
2317 (dbus_connection_open): now returns an existing connection if
2320 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2321 through the GUID to the transport
2323 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2324 GUID in hex-encoded form.
2326 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2327 pass GUID argument in to the transport
2329 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2332 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2334 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2336 2005-02-25 Havoc Pennington <hp@redhat.com>
2338 * doc/dbus-specification.xml: document the GUID thing
2340 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2341 globally unique ID for the server, and put a "guid=hexencoded"
2342 field in the address
2344 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2346 * dbus/dbus-message.c: ditto
2348 * dbus/dbus-dataslot.c: ditto
2350 * dbus/dbus-list.c: ditto
2352 * dbus/dbus-internals.h: wait, just include
2353 dbus-threads-internal.h here
2355 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2358 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2360 2005-02-24 Colin Walters <walters@verbum.org>
2362 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2364 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2366 * glib/Makefile.am: added dbus-gobject.h to sources list
2367 so distcheck doesn't fail
2369 2005-02-24 Havoc Pennington <hp@redhat.com>
2371 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2372 you must disconnect before unref, since locking and other things
2373 are screwed up otherwise. Fix assorted other locking stuff.
2375 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2378 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2379 into a private header and don't export from the library
2381 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2383 2005-02-24 Colin Walters <walters@verbum.org>
2385 * dbus/dbus-signature.c: New file; implements various functions
2386 related to type signatures. Includes an interator for parsing,
2387 validation functions.
2388 (dbus_type_is_basic): Moved here from
2389 dbus-marshal-basic.c:_dbus_type_is_basic.
2390 (dbus_type_is_container): Moved here from
2391 dbus-marshal-basic.c:_dbus_type_is_container.
2393 All callers of _dbus_type_is_container and _dbus_type_is_basic
2394 updated, and include dbus-signature.h.
2396 * dbus/dbus-signature.h: New file; prototypes for the above.
2398 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2401 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2402 function factored out of _dbus_first_type_in_signature.
2403 (_dbus_first_type_in_signature_c_str): New function; returns first
2404 type code for a type signature character.
2406 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2407 handle function moves.
2409 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2411 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2412 function; skips to next complete type in type signature.
2413 Implemented using previous skip_one_complete_type. Now
2414 skip_one_complete_type just delegates to
2415 _dbus_type_signature_next.
2417 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2419 (_dbus_type_is_container): Ditto.
2421 * doc/dbus-specification.xml: Update introspection sample to
2422 use real type signatures.
2424 * dbus/dbus-test.h: Prototype signature test.
2426 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2429 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2431 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2433 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2434 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2436 2005-02-21 Colin Walters <walters@verbum.org>
2438 * dbus/dbus-test-main.c (main): Take optional specific test
2441 * dbus/dbus-test.c (run_test): New function, runs a test function
2442 with no data directory.
2443 (run_data_test): Like above, but takes data directory.
2444 (dbus_internal_do_not_use_run_tests): Take
2445 specific test argument. Replace lots of cut n' paste code
2446 with run_test and run_data_test.
2448 * dbus/dbus-test.h: Update prototype for
2449 dbus_internal_do_not_use_run_tests.
2451 2005-02-20 Havoc Pennington <hp@redhat.com>
2453 Fix bugs reported by Daniel P. Berrange
2455 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2456 (protected_change_watch): new function
2457 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2458 (_dbus_server_add_watch): change to work like the
2459 dbus-connection.c equivalents; like those, probably kind of
2460 busted, but should at least mostly work for now
2461 (dbus_server_disconnect): drop the lock if we were already
2462 disconnected, patch from Daniel P. Berrange
2464 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
2465 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2468 * doc/TODO: todo about unscrewing this mess
2470 2005-02-19 Colin Walters <walters@verbum.org>
2472 * glib/dbus-binding-tool-glib.c
2473 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2475 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2476 as errno.h and sys/stat.h.
2477 (lose): New function, prints error with
2479 (lose_gerror): Similar, but takes GError for message.
2480 (main): Add --output argument to specify output file to write to,
2481 instead of always printing to stdout. In this mode, determine
2482 timestamps on source files to see whether any are newer than the
2483 target file. If not, exit. Also convert a number of error
2484 messages to use lose (since it's shorter), and switch to using
2485 g_io_channel_shutdown.
2487 2005-02-19 Havoc Pennington <hp@redhat.com>
2489 * glib/dbus-gobject.c
2490 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2492 * glib/dbus-glib.c: fix doxygen warnings
2494 * glib/dbus-gparser.c (parse_annotation): error if an annotation
2495 is found on an <arg>
2497 2005-02-17 Colin Walters <walters@verbum.org>
2499 * glib/dbus-gobject.h: Don't export
2500 _dbus_glib_marshal_dbus_message_to_gvalue_array.
2502 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2503 (invoke_object_method): Handle it.
2505 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2508 2005-02-17 Colin Walters <walters@verbum.org>
2510 * bus/.cvsignore, doc/.cvsignore
2511 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2514 2005-02-17 Colin Walters <walters@verbum.org>
2516 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2517 Rename to DBUS_SERVICE_DBUS.
2518 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2519 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2520 Change the value from "org.freedesktop.Local"
2521 to "org.freedesktop.DBus.Local".
2522 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2523 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2524 DBUS_INTERFACE_INTROSPECTABLE.
2525 Change the value from "org.freedesktop.Introspectable"
2526 to "org.freedesktop.DBus.Introspectable".
2527 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2528 DBUS_INTERFACE_PROPERTIES.
2529 Change the value from "org.freedesktop.Properties"
2530 to "org.freedesktop.DBus.Properties".
2531 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2532 DBUS_INTERFACE_PEER.
2533 Change the value from "org.freedesktop.Peer"
2534 to "org.freedesktop.DBus.Peer".
2535 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
2536 DBUS_INTERFACE_LOCAL.
2537 Change the value from "org.freedesktop.Local"
2538 to "org.freedesktop.DBus.Local".
2540 All other users of those constants have been changed.
2542 * bus/driver.c (bus_driver_handle_introspect): Use constants.
2544 * glib/dbus-gobject.c (handle_introspect): Use constants.
2546 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2548 2005-02-17 Colin Walters <walters@verbum.org>
2550 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2551 (parse_node, parse_interface, parse_method, parse_signal)
2552 (parse_property, parse_annotation): Lose if we're currently in an
2554 (parse_annotation): New function.
2555 (parser_start_element, parser_end_element): Handle annotation.
2556 (parse_method, parse_interface): Remove support for c_name attribute,
2557 switch to annotations.
2559 * glib/dbus-gidl.h (interface_info_get_binding_names)
2560 (method_info_get_binding_names)
2561 (interface_info_get_binding_name, method_info_get_binding_name)
2562 (interface_info_set_binding_name, method_info_set_binding_name):
2564 (interface_info_get_annotations, method_info_get_annotations)
2565 (interface_info_get_annotation, method_info_get_annotation)
2566 (interface_info_add_annotation, method_info_add_annotation):
2569 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2571 (struct MethodInfo): Ditto.
2572 Straightfoward conversion of binding methods into annotation methods
2575 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2577 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2579 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2580 Use new annotation API.
2582 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
2585 * doc/dbus-specification.xml: Discuss introspection annotations,
2586 include list of well-known annotations.
2588 * test/glib/test-service-glib.xml: Make validate against new DTD.
2590 2005-02-17 Colin Walters <walters@verbum.org>
2592 This patch is based on initial work from
2593 Paul Kuliniewicz <kuliniew@purdue.edu>.
2595 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2596 initialization of GValue from dbus type to here.
2597 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2598 for the "glib-genmarshal" program from a DBus type.
2599 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2600 into the C name for it we use in the glib bindings.
2601 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2602 glib C type (not GValue).
2603 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2605 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2606 from dbus-gobject.c.
2608 * glib/dbus-gutils.h: Prototype it.
2610 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2611 (marshal_dbus_message_to_g_marshaller): Use new shared function
2612 dbus_glib_marshal_dbus_message_to_gvalue_array.
2614 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2615 Will be changed once we have annotations.
2617 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2618 GStaticRWLock. Callers updated.
2619 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
2620 (string_table_next): New function for iterating over zero-terminated
2622 (string_table_lookup): New function; retrieves specific entry in
2624 (get_method_data): New function; look up method data in object data chunk.
2625 (object_error_domain_prefix_from_object_info)
2626 (object_error_code_from_object_info): New functions, but not implemented yet.
2627 (method_interface_from_object_info): New function; retrieve interface name.
2628 (method_name_from_object_info): New function; retrieve method name.
2629 (method_arg_info_from_object_info): New function; retrieve argument data.
2630 (arg_iterate): New function; iterates over serialized argument data.
2631 (method_dir_signature_from_object_info): New function; returns a
2632 GString holding type signature for arguments for just one
2633 direction (input or output).
2634 (method_input_signature_from_object_info)
2635 (method_output_signature_from_object_info): New functions.
2636 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2637 converts dbus message arguments into a GValue array. Used for both
2638 signal handling and method invocation.
2639 (struct DBusGlibWriteIterfaceData): New utility structure.
2640 (write_interface): New function; generate introspection XML for
2642 (introspect_interfaces): New function; gathers all interface->methods,
2643 generates introspection XML for them.
2644 (handle_introspect): Invoke introspect_interfaces.
2645 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2646 (lookup_object_and_method): New function; examines an incoming message
2647 and attempts to match it up (via interface, method name, and argument
2648 signature) with a known object and method.
2649 (gerror_domaincode_to_dbus_error_name): New function; converts a
2650 GError domain and code into a DBus error name. Needs GError data
2651 added to object introspection to work well.
2652 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2654 (invoke_object_method): New function to invoke an object method
2655 looked up via lookup_object_and_method. Parses the incoming
2656 message, turns it into a GValue array, then invokes the marshaller
2657 specified in the DBusGMethodInfo. Creates a new message with
2658 either return values or error message as appropriate.
2659 (gobject_message_function): Invoke lookup_object_and_method and
2660 invoke_object_method.
2662 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2663 (enum DBusBindingOutputMode): New enum for binding output modes.
2664 (pretty_print): Print binding names.
2665 (dbus_binding_tool_error_quark): GError bits.
2666 (version): Fix typo.
2667 (main): Create GIOChannel for output. Parse new --mode argument,
2668 possible values are "pretty-print", "glib-server", "glib-client".
2669 Use mode to invoke appropriate function.
2671 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2673 * glib/dbus-glib-tool.h: New header, just includes GError bits
2676 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2677 maps binding style to name.
2678 (struct MethodInfo): Ditto.
2679 (get_hash_keys, get_hash_key): Utility function, returns keys for
2681 (interface_info_new, method_info_new): Initialize bindings.
2682 (interface_info_unref, method_info_unref): Destroy bindings.
2683 (method_info_get_binding_names, method_info_get_binding_name)
2684 (interface_info_get_binding_names, interface_info_get_binding_name):
2685 Functions for retrieving binding names.
2686 (method_info_set_binding_name, interface_info_set_binding_name):
2687 Functions for setting binding names.
2689 * glib/dbus-binding-tool-glib.h: New file, has prototypes
2690 for glib binding generation.
2692 * glib/dbus-binding-tool-glib.c: New file, implements server-side
2693 and client-side glib glue generation.
2695 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2696 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2699 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2700 of using GClosureMarshal directly.
2701 (struct DBusGObjectInfo): Add n_infos member.
2703 * test/glib/test-service-glib.xml: New file; contains introspection data
2704 for MyTestObject used in test-service-glib.c.
2706 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2707 (my_object_do_nothing, my_object_increment, my_object_throw_error)
2708 (my_object_uppercase, my_object_many_args): New test methods.
2709 (main): Use dbus_g_object_class_install_info to include generated object
2712 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2713 as well as client-side bindings.
2715 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2716 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2717 using both the dbus_gproxy stuff directly as well as the generated bindings.
2719 2005-02-15 Havoc Pennington <hp@redhat.com>
2721 * dbus/dbus-connection.c (dbus_connection_dispatch): always
2722 complete a pending call, don't run filters first.
2724 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2725 dbus_pending_call_steal_reply
2727 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2728 _dbus_connection_block_pending_call
2729 (dbus_pending_call_get_reply): change to steal_reply and return a
2732 * dbus/dbus-connection.c
2733 (dbus_connection_send_with_reply_and_block): port to work in terms
2735 (_dbus_connection_block_pending_call): replace block_for_reply
2738 2005-02-14 Havoc Pennington <hp@redhat.com>
2740 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2741 properly handle looking up group information by name; fix
2744 2005-02-13 Havoc Pennington <hp@redhat.com>
2746 * dbus/dbus-connection.c (dbus_connection_return_message)
2747 (dbus_connection_borrow_message): hold dispatch lock while message
2749 (_dbus_connection_block_for_reply): hold dispatch lock while we
2750 block for the reply, so nobody steals our reply
2751 (dbus_connection_pop_message): hold the dispatch lock while we
2754 2005-02-13 Havoc Pennington <hp@redhat.com>
2756 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2757 (_dbus_connection_release_dispatch)
2758 (_dbus_connection_acquire_io_path)
2759 (_dbus_connection_release_io_path): make the mutex and condvar
2760 control access to the "acquired" flag. Drop the connection lock
2761 while waiting on the condvar. Hopefully these are baby steps in
2762 roughly the right direction.
2764 2005-02-13 Havoc Pennington <hp@redhat.com>
2766 * dbus/dbus-connection.c: use separate mutexes for the condition
2767 variables; this is some kind of baseline for sanity, but the
2768 condition variables still aren't used correctly afaict
2770 2005-02-13 Havoc Pennington <hp@redhat.com>
2772 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2775 * dbus/dbus-connection.c
2776 (_dbus_connection_detach_pending_call_unlocked): add this
2778 Initial semi-correct pass through to fix thread locking; there are
2779 still some issues with the condition variable paths I'm pretty
2782 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2785 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2786 rename to add _unlocked
2787 (struct DBusConnection): move "dispatch_acquired" and
2788 "io_path_acquired" to use only one bit each.
2789 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2790 (dbus_connection_set_watch_functions): hacky fix to reentrancy
2791 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
2792 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
2793 (_dbus_connection_remove_timeout)
2794 (_dbus_connection_toggle_timeout): drop lock when calling out to
2795 user functions; done in a hacky/bad way.
2796 (_dbus_connection_send_and_unlock): add a missing unlock
2797 (_dbus_connection_block_for_reply): add a missing unlock
2799 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2800 drop lock in a hacky probably unsafe way to call out to user
2803 2005-02-12 Havoc Pennington <hp@redhat.com>
2805 * tools/dbus-tree-view.c (info_set_func_text): display more
2808 * bus/driver.c (bus_driver_handle_list_services): list the bus
2811 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2813 * glib/dbus-gidl.c (signal_info_get_n_args): new function
2814 (method_info_get_n_args): new function
2816 2005-02-12 Havoc Pennington <hp@redhat.com>
2818 * bus/driver.c (bus_driver_handle_introspect): add introspection
2821 2005-02-12 Havoc Pennington <hp@redhat.com>
2823 * bus/driver.c: put the signature of each bus driver method in the
2824 table of handlers and check it on incoming calls; this isn't
2825 really useful, but going to add introspect support in a minute.
2827 2005-02-11 Joe Shaw <joeshaw@novell.com>
2829 * mono/Connection.cs: The unpredictability of finalizers in mono
2830 prevents us from deterministically disconnecting the filters from
2831 the Service class's finalizer, so move tracking of filters and
2832 matches here. Add API for that.
2834 * mono/Service.cs: Remove the code, add code which calls the
2835 methods now on the Connection class.
2837 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
2839 * python/dbus.py (class Sender): added to support dbus signals better
2840 (Bus::add_signal_receiver): added expand_args parameter which defaults
2841 to True. When expand args is True the signal handler will pass the
2842 message arguments as parameters to the signal handler. If False
2843 revert to previous behavior where the signal handler must get the
2844 argument list from the message. This is to help port applications
2845 like HAL that have a tendancy to send variable length argument lists.
2846 self._match_rule_to_receivers is now a dict of dicts.
2847 (Bus::remove_signal_receiver): pop handler off the dict intead of
2848 removing it from a list
2849 (Bus::_signal_func): change signal handlers so that interface,
2850 signal_name, service, path and message are packed into a Sender
2851 object and that is passed to the handler. If expand_args is True
2852 extract the args list from the message and append it to the parameter
2855 * python/dbus_bindings.pyx.in (class Signature): added to support
2857 (MessageIter::__init__): changed iteration limit to match D-BUS
2858 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
2859 STRUCT and VARIENT type support
2860 (MessageIter::python_value_to_dbus_sig): made recursive to support
2862 (MessageIter::append*): added Signature, dict, tuple
2865 * python/examples/example-client.py: added examples of getting tuples
2868 * python/examples/example-service.py: added examples of sending tuples
2871 * python/examples/example-signal-recipient.py: Fixed to handle new
2872 signal callback format
2874 2005-02-10 Havoc Pennington <hp@redhat.com>
2876 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2877 (call dbus_g_proxy_add_signal)
2879 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2881 (_dbus_server_new_for_domain_socket): escape the path
2883 * dbus/dbus-address.c (dbus_address_escape_value): new
2884 (dbus_address_unescape_value): new
2885 (dbus_parse_address): unescape values
2887 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2889 * doc/dbus-specification.xml: explain how to escape values in
2892 2005-02-10 Havoc Pennington <hp@redhat.com>
2894 * dbus/dbus-message-factory.c (generate_special): modify test to
2895 avoid using a non-basic dict key
2897 * dbus/dbus-marshal-validate-util.c: add test for the below
2899 * doc/dbus-specification.xml: require that dict keys are a basic
2902 * dbus/dbus-marshal-validate.c
2903 (_dbus_validate_signature_with_reason): require that dict key is a
2906 2005-02-10 Havoc Pennington <hp@redhat.com>
2908 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2909 change to be _and_unlock instead of _unlocked
2911 * dbus/dbus-connection.c
2912 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2913 have no_update so we can find this bug quickly in future
2915 2005-02-10 Havoc Pennington <hp@redhat.com>
2917 * dbus/dbus-message-util.c (verify_test_message): tests for string
2920 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2921 support for arrays of string/signature/path
2923 2005-02-10 Joe Shaw <joeshaw@novell.com>
2925 * dbus/dbus-connection.c
2926 (_dbus_connection_queue_received_message_link,
2927 _dbus_connection_message_sent): Add the path to
2929 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2930 _dbus_connection_send_preallocated_unlocked(), updated the
2931 dispatch status, and unlocks. Fixes a bug where certain
2932 situations (like a broken pipe) could cause a Disconnect message
2933 to not be sent, tricking the bus into thinking a service was still
2934 there when the process had quit.
2935 (_dbus_connection_send_preallocated): Call
2936 _dbus_connection_send_preallocated_and_unlock().
2937 (_dbus_connection_send_and_unlock): Added. Calls
2938 _dbus_connection_send_preallocated_and_unlock().
2939 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2940 (dbus_connection_send_with_reply): Update the dispatch status and
2943 * mono/Service.cs (~Service): Added. Removes the filter so that
2944 we don't get unmanaged code calling back into a GCed delegate.
2945 (RemoveFilter); Added.
2947 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2949 * dbus/dbus-message.c (dbus_message_iter_open_container):
2950 - Removed check for iterator type being an array because
2951 get_arg_type does not work with writer iterators
2952 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2954 2005-02-07 Havoc Pennington <hp@redhat.com>
2956 * doc/dbus-specification.xml: some more language cleanups; add
2957 stuff about how to deal with invalid protocol and extension
2958 points; add _ to allowed chars in auth commands; add EXTENSION_
2961 2005-02-06 Havoc Pennington <hp@redhat.com>
2963 * s/expected/required/ in a couple places for clarity
2965 2005-02-07 Colin Walters <walters@verbum.org>
2967 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2968 sender or proposed_recipient.
2970 2005-02-06 Havoc Pennington <hp@redhat.com>
2972 * dbus/dbus-message-factory.c (generate_special): more tests
2974 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2975 array length that exceeds the maximum
2977 2005-02-05 Havoc Pennington <hp@redhat.com>
2979 * dbus/dbus-message-factory.c (generate_special): more test cases,
2982 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2983 reason why a signature was invalid
2985 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2986 skip the length of the string before we look at it in validation
2988 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2991 * dbus/dbus-message.c (_dbus_message_loader_new): default
2992 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2994 2005-02-05 Havoc Pennington <hp@redhat.com>
2996 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2997 if the signature of a variant was empty
2998 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2999 struct with no element type)
3001 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3002 mangled messages to break things
3004 2005-02-04 Havoc Pennington <hp@redhat.com>
3006 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3007 g_quark_try_string() so it actually can return 0
3008 (dbus_g_proxy_connect_signal): ditto
3010 2005-02-04 Havoc Pennington <hp@redhat.com>
3012 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3014 (tristring_from_message): assert cleanly on null path/interface
3015 (should not be possible though I decided later)
3016 (dbus_g_proxy_dispose): move proxy manager unregistration here
3017 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3018 g_return_if_fail() checks
3020 2005-02-04 Havoc Pennington <hp@redhat.com>
3022 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3024 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3025 (with some minor changes)
3027 * doc/dbus-specification.xml: add deprecated attribute to
3028 introspection format
3030 2005-01-31 Havoc Pennington <hp@redhat.com>
3032 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3033 think it's sort of right
3035 2005-01-30 Havoc Pennington <hp@redhat.com>
3037 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3039 2005-01-30 Havoc Pennington <hp@redhat.com>
3041 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3043 * autogen.sh: change to autotools 1.9
3045 * glib/dbus-gproxy.c: completely change how signals work
3046 (dbus_g_proxy_add_signal): new function to specify signature of a
3048 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3049 and g_warning if the incoming message has the wrong signature.
3051 2005-01-30 Havoc Pennington <hp@redhat.com>
3053 * tools/dbus-names-model.c (have_names_notify): fix this
3055 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3056 up the string array handling a bit
3058 2005-01-30 Havoc Pennington <hp@redhat.com>
3060 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3061 (dbus_g_pending_call_cancel): new function
3063 * dbus/dbus-glib.h: move GType decls for connection/message here;
3064 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3065 here, just kind of rationalizing how we handle all that
3067 * tools/dbus-names-model.c: new file for a tree model listing the
3070 * tools/dbus-tree-view.c (model_new): use proper typing on the
3073 2005-01-30 Havoc Pennington <hp@redhat.com>
3075 * glib/dbus-gmain.c: add a custom GSource back that just checks
3076 whether the message queue has anything in it; otherwise, there are
3077 cases where we won't see messages in the queue since there was no
3078 IO visible to the glib main loop
3080 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3081 increase default message timeout to 25 seconds
3083 2005-01-30 Havoc Pennington <hp@redhat.com>
3085 * test/glib/test-profile.c (no_bus_stop_server): remove the
3086 warning about the g_warning that I just fixed
3088 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3089 custom source, seems to be a lot easier to understand and work
3092 2005-01-30 Havoc Pennington <hp@redhat.com>
3094 I think this main loop thing is conceptually broken, but here are
3095 some band aids. I'll maybe rewrite it in a minute.
3097 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3098 custom GSource, so don't pass it in; confusing
3099 (gsource_server_finalize, gsource_connection_finalize): add
3100 finalize handlers that remove all the watches.
3102 2005-01-30 Havoc Pennington <hp@redhat.com>
3104 * glib/dbus-gobject.c (introspect_properties): fix the XML
3107 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3108 which effectively detects the use of freed messages
3110 * glib/dbus-gobject.c (handle_introspect): modify and return the
3111 reply message instead of the incoming message
3113 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3114 gee, maybe it should SEND THE XML instead of just making a string
3115 and freeing it again ;-)
3117 * tools/dbus-print-message.c (print_message): improve printing of
3120 * configure.in: add debug-glib.service to the output
3122 2005-01-30 Havoc Pennington <hp@redhat.com>
3124 dbus-viewer introspected and displayed the bus driver
3126 * dbus/dbus-object-tree.c
3127 (object_tree_test_iteration): add tests for a handler registered on "/"
3129 * dbus/dbus-object-tree.c
3130 (_dbus_decompose_path): fix to handle path "/" properly
3131 (run_decompose_tests): add tests for path decomposition
3133 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3136 * glib/dbus-gobject.c (handle_introspect): fix quotes
3138 * test/glib/run-test.sh: support launching the bus, then running
3141 * test/glib/test-service-glib.c (main): put in a trivial gobject
3142 subclass and register it on the connection
3144 * bus/driver.c (bus_driver_handle_introspect): implement
3145 introspection of the bus driver service
3147 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3148 identifiers, doctype decl
3150 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3151 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3152 returning the service unchanged.
3153 (bus_driver_handle_message): remove old check for reply_serial in
3154 method calls, now the message type deals with that
3155 (bus_driver_handle_message): handle NULL interface
3157 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3159 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3162 * tools/dbus-viewer.c: add support for introspecting a service on
3165 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3166 (dbus_g_pending_call_unref): add
3168 2005-01-29 Havoc Pennington <hp@redhat.com>
3170 * tools/dbus-tree-view.c: add support for displaying properties.
3171 (run dbus-viewer with an introspect xml file as arg, then resize
3172 the window so the tree elements show up, not sure what that is)
3174 * glib/dbus-gobject.c (handle_introspect): return
3175 org.freedesktop.Properties and org.freedesktop.Introspectable
3176 interfaces when we are introspected.
3178 * doc/dbus-specification.xml: allow empty interface name when
3181 2005-01-29 Havoc Pennington <hp@redhat.com>
3183 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3184 though it uses glib, it could be extended for any binding in
3187 * glib/dbus-gobject.c (gobject_message_function): change to the
3188 new way properties work
3190 * dbus/dbus-protocol.h: add the new interfaces
3192 * doc/dbus-specification.xml: document the introspection format,
3193 Introspectable interface, and add an org.freedesktop.Properties
3196 * glib/dbus-gparser.c: add support for a <property> element
3198 * glib/dbus-gidl.c: add PropertyInfo
3200 * glib/dbus-gobject.c (handle_introspect): put the outermost
3201 <node> outside the signal and property descriptions.
3202 (introspect_properties): export properties as <property> rather
3203 than as method calls
3205 2005-01-28 Havoc Pennington <hp@redhat.com>
3207 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3208 related to authentication protocol
3210 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3212 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3213 - BUS_ACTIVATION -> BUS_STARTER
3214 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3215 - class MessageIter (__init__): Added recursion checking
3216 so we throw a nice error instead of just disconnecting from the
3218 (get): Added arg_type parameter for recursion.
3219 Removed the nil type
3220 Added signiture type placeholder (not implemented)
3221 Added struct type placeholder (not implemented)
3222 Added varient type placeholder (not implemented)
3223 Commented out dict type for now
3224 (get_element_type): renamed from get_array_type
3225 (get_*): changed to use the dbus_message_iter_get_basic API
3226 (get_*_array): removed in favor of recursive get_array method
3227 (get_array): new recursive method which calls get to marshal
3228 the elements of the array
3229 (value_to_dbus_sig): New method returns the corrasponding
3230 dbus signiture to a python value
3231 (append): Comment out dict handling for now
3232 Handle lists with the new recursive API
3233 Comment out None handling for now
3234 (append_nil): removed
3235 (append_*): changed to use dbus_message_iter_append_basic API
3236 (append_*_array): removed in favor of recursive append_array
3238 (__str__): Make it easier to print out recursive iterators
3240 - class Message (__str__): moved type inspection to the
3241 MessageIter class' __str__ method
3242 (get_iter): Added an append parameter wich defaults to False
3243 If True use the new API's to create an append iterator
3245 * python/dbus.py: Update to use new bindings API
3246 - TYPE_ACTIVATION -> TYPE_STARTER
3247 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3248 - class ActivationBus -> class StarterBus
3249 - class RemoteObject (__call__): get an append iterator
3250 - (_dispatch_dbus_method_call): get an append iterator
3251 - class Object (emit_signal): get an append iterator
3253 * python/examples/: Fixed up the examples to work with the new API
3255 2005-01-28 Joe Shaw <joeshaw@novell.com>
3257 * configure.in: Bump version up to 0.30.
3259 * HACKING: Add a release item to bump the version number up after
3262 2005-01-28 Havoc Pennington <hp@redhat.com>
3264 * doc/dbus-specification.xml: update to describe 16-bit types and
3267 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3270 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3273 * dbus/dbus-marshal-recursive.c: implement
3275 2005-01-27 Havoc Pennington <hp@redhat.com>
3277 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3279 * configure.in: find the right type for 16 and 32 bit ints as well
3282 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3283 the 16-bit types so people don't have to stuff them in 32-bit or
3286 2005-01-27 Havoc Pennington <hp@redhat.com>
3288 * dbus/dbus-message.c: byteswap the message if you init an
3289 iterator to read/write from it
3291 * dbus/dbus-marshal-byteswap.c: new file implementing
3292 _dbus_marshal_byteswap()
3294 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3296 2005-01-26 Havoc Pennington <hp@redhat.com>
3298 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3299 build, apparently - nobody noticed?)
3301 2005-01-26 Havoc Pennington <hp@redhat.com>
3303 * dbus/dbus-marshal-recursive.h: remove todo comment
3305 2005-01-25 Joe Shaw <joeshaw@novell.com>
3307 * Land the mono binding changes to conform to the new APIs.
3309 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3310 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3312 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3313 type code as a string.
3314 (InitAppending): Rename dbus_message_append_iter_init() to
3315 dbus_message_iter_init_append().
3317 * mono/BusDriver.cs: Rename ServiceEventHandler to
3318 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3319 Rename ServiceOwnerChanged to NameOwnerChanged.
3321 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3324 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3326 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3327 dbus_bus_acquire_service() to dbus_bus_request_name().
3329 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3330 of Type.UnderlyingSystemType to get the correct element type for
3332 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3333 dbus_message_get_{element|arg}_type() instead of
3334 dbus_message_iter_init_array_iterator().
3335 (Append): Replace dbus_message_iter_append_array() with
3336 dbus_message_iter_open_container() and
3337 dbus_message_iter_close_container().
3339 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3340 types have been removed.
3342 * mono/DBusType/*.cs: Replace calls of
3343 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3344 but specify the type in the DllImport extern declaration. Ditto
3345 for dbus_message_iter_append_[type]() ->
3346 dbus_message_iter_append_basic().
3348 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3349 NameOwnerChangedHandler.
3351 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3353 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3354 - get_base_service -> get_unique_name
3355 - bus_get_base_service -> bus_get_unique_name
3356 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3357 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3358 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3359 - bus_activate_service -> bus_start_service_by_name
3360 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3361 - bus_acquire_service -> bus_request_name
3362 - dbus_bus_acquire_service -> dbus_bus_request_name
3363 - bus_service_exists -> bus_name_has_owner
3364 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3366 * python/dbus.py: Rename of methods
3367 - activate_service -> start_service_by_name
3368 - bus_acquire_service -> bus_request_name
3369 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3370 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3373 2005-01-24 Joe Shaw <joeshaw@novell.com>
3375 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3376 signature for the method that can't be found.
3378 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3379 the message has any arguments, we need to call
3380 _dbus_type_reader_get_current_type(), not
3381 _dbus_type_reader_has_next().
3383 2005-01-24 Havoc Pennington <hp@redhat.com>
3385 * dbus/dbus-message-factory.c: more testing of message validation
3387 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3390 2005-01-23 Havoc Pennington <hp@redhat.com>
3392 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3393 get this all working, not many tests in the framework yet though
3395 2005-01-22 Havoc Pennington <hp@redhat.com>
3397 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3398 tutorial, based on work from David Wheeler.
3400 2005-01-21 Havoc Pennington <hp@redhat.com>
3402 * dbus/dbus-bus.c: add more return_if_fail checks
3404 * dbus/dbus-message.c (load_message): have the "no validation"
3405 mode (have to edit the code to toggle the mode for now though)
3407 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3408 skips all validation; I want to use this at least for benchmark
3409 baseline, I'm not sure if it should be a publicly-available switch.
3411 2005-01-21 Havoc Pennington <hp@redhat.com>
3413 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3414 toplevel doxygen group as the low-level API stuff
3416 * dbus/dbus.h: note that libdbus is the low-level API
3418 2005-01-20 Havoc Pennington <hp@redhat.com>
3420 * update-dbus-docs.sh: script to update docs on the web site, only
3421 works for me though. neener.
3423 2005-01-20 Havoc Pennington <hp@redhat.com>
3425 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3426 code can reveal bugs in it
3428 2005-01-20 Havoc Pennington <hp@redhat.com>
3430 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3431 select() version, patches from Tor Lillqvist
3433 2005-01-20 Havoc Pennington <hp@redhat.com>
3435 * doc/dbus-tutorial.xml: replace > with >
3437 * bus/services.c (bus_registry_acquire_service): validate the name
3438 and return a better error if it's no good.
3440 * doc/dbus-specification.xml: note NO_AUTO_START change
3442 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3443 from AUTO_START, we're toggling the default
3445 * bus/dispatch.c: adapt the tests to change of auto-start default
3447 2005-01-18 Havoc Pennington <hp@redhat.com>
3449 * rename dbus-daemon-1 to dbus-daemon throughout
3451 2005-01-18 Havoc Pennington <hp@redhat.com>
3453 * Throughout, grand renaming to strip out the use of "service",
3454 just say "name" instead (or "bus name" when ambiguous). Did not
3455 change the internal code of the message bus itself, only the
3456 programmer-facing API and messages.
3458 * doc/dbus-specification.xml: further update the message bus section
3460 * bus/config-parser.c (all_are_equiv): fix bug using freed string
3463 2005-01-17 Havoc Pennington <hp@redhat.com>
3465 * dbus/dbus-types.h: remove 16-bit types since we don't use them
3468 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3469 "invalid name character" not only non-ASCII
3471 * doc/dbus-specification.xml: further update spec, message bus
3472 parts are still out-of-date but the marshaling etc. stuff is now
3475 2005-01-17 Havoc Pennington <hp@redhat.com>
3477 * doc/dbus-specification.xml: partially update spec
3479 2005-01-17 Havoc Pennington <hp@redhat.com>
3481 * Throughout, align variant bodies according to the contained
3482 type, rather than always to 8. Should save a fair bit of space in
3485 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3486 fix handling of case where p == end
3488 * doc/TODO: remove the dbus_bool_t item and variant alignment items
3490 2005-01-17 Havoc Pennington <hp@redhat.com>
3492 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3494 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3495 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
3496 are marshaling/unmarshaling a boolean.
3498 2005-01-16 Havoc Pennington <hp@redhat.com>
3500 This is about it on what can be disabled/deleted from libdbus
3501 easily, back below 150K anyhow. Deeper cuts are more work than
3502 just turning the code off as I've done here.
3504 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3505 signed int convenience funcs
3507 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3510 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3511 things out of libdbus
3513 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3515 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3516 tests-enabled-only, though it should probably be deleted)
3518 * dbus/dbus-message-util.c: same stuff
3520 * dbus/dbus-auth-util.c: same stuff
3522 2005-01-16 Havoc Pennington <hp@redhat.com>
3524 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3526 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3527 way for stripping down dbus-userdb.c stuff included in libdbus.
3528 Rename _dbus_parse_uid for consistency.
3530 2005-01-16 Havoc Pennington <hp@redhat.com>
3532 * dbus/dbus-internals.c (_dbus_real_assert): print the function
3533 name the assertion failed in
3535 * dbus/dbus-internals.h (_dbus_return_if_fail)
3536 (_dbus_return_val_if_fail): assert that the name of the function
3537 containing the check doesn't start with '_', since we only want to
3538 use checks on public functions
3540 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3541 checks to assertions
3543 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3544 change checks to asserts for private function
3546 * dbus/dbus-message.c (_dbus_message_set_serial): checks
3547 to asserts for private function
3549 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3550 broken assertion that was breaking make check
3551 (_dbus_type_reader_array_is_empty): remove this rather than fix
3552 it, was only used in assertions
3554 2005-01-16 Havoc Pennington <hp@redhat.com>
3556 * test/unused-code-gc.py: hacky script to find code that's used
3557 only by the bus (not libdbus) or used only by tests or not used at
3558 all. It has some false alarms, but looks like we can clean up a
3559 lot of size from libdbus.
3561 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3562 dbus/Makefile.am: initially move 10K of binary size out of libdbus
3564 2005-01-16 Havoc Pennington <hp@redhat.com>
3566 * Add and fix docs according to Doxygen warnings throughout
3569 * dbus/dbus-marshal-recursive.c
3570 (_dbus_type_reader_array_is_empty): change this to just call
3571 array_reader_get_array_len() and make it static
3573 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3575 (dbus_message_iter_init_append): rename from append_iter_init
3577 * dbus/dbus-marshal-recursive.c
3578 (_dbus_type_reader_get_element_type): rename from
3579 _dbus_type_reader_get_array_type
3581 2005-01-15 Havoc Pennington <hp@redhat.com>
3583 * test/glib/test-profile.c (with_bus_server_filter): fix crash
3585 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3586 when DBUS_DISABLE_ASSERT
3587 (_dbus_marshal_set_basic): be sure we align for the string length
3589 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3592 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3593 inline macro version
3594 (_dbus_string_set_byte): provide inline macro version
3596 2005-01-15 Havoc Pennington <hp@redhat.com>
3598 * Land the new message args API and type system.
3600 This patch is huge, but the public API change is not
3601 really large. The set of D-BUS types has changed somewhat,
3602 and the arg "getters" are more geared toward language bindings;
3603 they don't make a copy, etc.
3605 There are also some known issues. See these emails for details
3607 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3608 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3610 * dbus/dbus-marshal-*: all the new stuff
3612 * dbus/dbus-message.c: basically rewritten
3614 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3615 freed blocks to be all non-nul bytes so using freed memory is less
3616 likely to work right
3618 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3619 DBUS_FAIL_MALLOC=N environment variable, so you can do
3620 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3621 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3624 * qt/message.cpp: port to the new message args API
3625 (operator<<): use str.utf8() rather than str.unicode()
3626 (pretty sure this is right from the Qt docs?)
3628 * glib/dbus-gvalue.c: port to the new message args API
3630 * bus/dispatch.c, bus/driver.c: port to the new message args API
3632 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3633 "locked" flag to TRUE and align_offset to 0; I guess we never
3634 looked at these anyhow, but seems cleaner.
3636 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3637 move allocation padding macro to this header; use it to implement
3638 (_DBUS_STRING_STATIC): ability to declare a static string.
3640 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3641 change to return TRUE if the interface is not set.
3643 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3644 to dbus-marshal-validate.[hc]
3646 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3649 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3650 to dbus-marshal-*.[hc]
3652 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3653 function here from dbus-marshal.c
3655 2005-01-12 Joe Shaw <joeshaw@novell.com>
3657 * NEWS: Update for 0.23.
3659 * configure.in: Release 0.23.
3661 2005-01-12 Joe Shaw <joeshaw@novell.com>
3663 * mono/Makefile.am, mono/example/Makefile.am: Always build the
3664 dbus DLL with --debug. Clean up after the .mdb files this leaves
3667 * mono/doc/Makefile.am: Need to uninstall the docs on "make
3670 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3671 is an enum, get the enum's underlying type. Another mono
3674 2005-01-11 Joe Shaw <joeshaw@novell.com>
3676 Patch from Sjoerd Simons <sjoerd@luon.net>
3678 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3679 DESTDIR. It breaks stuff.
3681 2005-01-11 Joe Shaw <joeshaw@novell.com>
3683 Patch from Tambet Ingo <tambet@ximian.com>
3685 * mono/DBusType/Array.cs (Get): Get the underlying element type by
3686 calling type.GetElementType(). The code previously depended on
3687 broken Mono behavior, which was fixed in Mono 1.1.3.
3689 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3690 Activator.CreateInstance() so that the class's constructor is
3691 called with the right parameters.
3693 2005-01-11 Joe Shaw <joeshaw@novell.com>
3695 Patch from Timo Teräs <ext-timo.teras@nokia.com>
3697 * dbus/dbus-connection.c
3698 (_dbus_connection_queue_received_message_link): Call
3699 _dbus_connection_remove_timeout() instead of the _locked()
3700 variant, since it's always called from
3701 _dbus_connection_handle_watch(), which handles the locking.
3702 Removed the _locked() variant since it's no longer used.
3704 2005-01-03 Havoc Pennington <hp@redhat.com>
3706 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3709 2004-12-26 Havoc Pennington <hp@redhat.com>
3711 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3713 2005-01-03 Havoc Pennington <hp@redhat.com>
3715 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3718 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3720 2005-01-02 Havoc Pennington <hp@redhat.com>
3722 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3724 2005-01-01 Havoc Pennington <hp@redhat.com>
3726 * configure.in: add -Wfloat-equal
3728 2005-01-01 Havoc Pennington <hp@redhat.com>
3730 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
3731 for a variety of reasons '==' doesn't do this.
3733 2004-12-31 Havoc Pennington <hp@redhat.com>
3735 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3736 I keep wishing I had
3738 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3740 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3742 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3744 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3745 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3746 dbus-protocol.h. Because they are defines and not enums they are not
3749 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
3751 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3752 dbus_bus_activate_service
3754 * python/dbus.py (Bus.activate_service): activate a service on the
3757 2004-12-24 Havoc Pennington <hp@redhat.com>
3759 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3760 file format has also changed and I haven't adapted to that yet
3762 * Makefile.am: load .gcno files from latest gcc
3764 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
3765 * Patch from Rob Taylor <robtaylor@fastmail.fm>
3767 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3770 * python/dbus.py (get_unix_user): Added binding to
3771 call dbus_bindings.bus_get_unix_user
3773 * python/extract.py: Modified the proto_pat regex to
3774 handle unsigned long
3776 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3778 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3779 better POSIX compliance.
3781 2004-12-19 Havoc Pennington <hp@redhat.com>
3783 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
3784 (_dbus_string_insert_8_aligned): new functions
3786 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3788 2004-12-18 Havoc Pennington <hp@redhat.com>
3790 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3793 * dbus/dbus-message.c: fix a comment, and add a still-unused
3794 not-implemented function
3796 * dbus/dbus-marshal.h: fix comment
3798 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3800 2004-12-17 Joe Shaw <joeshaw@novell.com>
3802 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3803 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3804 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3805 Type.UnderlyingSystemType to get the actual system type
3806 underneath. This code previously depended on the broken Mono
3807 behavior, which was fixed in 1.1.3.
3809 2004-11-27 Havoc Pennington <hp@redhat.com>
3811 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3813 (_dbus_string_get_const_data): inline when asserts are disabled
3815 * dbus/dbus-message.c: record the _dbus_current_generation of
3816 creation so we can complain if dbus_shutdown() is used improperly.
3817 Do this only if checks are enabled.
3819 * dbus/dbus-connection.c: ditto
3821 2004-11-26 Havoc Pennington <hp@redhat.com>
3823 * test/glib/test-profile.c: add with_bus mode to profile echoes
3824 that go through the bus.
3826 * test/glib/run-test.sh: add ability to run test-profile
3828 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3831 2004-11-26 Havoc Pennington <hp@redhat.com>
3833 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3834 thing was implemented
3836 2004-11-26 Havoc Pennington <hp@redhat.com>
3838 * test/glib/test-profile.c: tweak a bit, add support for some
3839 made-up minimal malloc overhead with plain sockets, since in
3840 real life some sort of buffers are unavoidable thus we could
3841 count them in the theoretical best case
3843 2004-11-26 Havoc Pennington <hp@redhat.com>
3845 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3846 where I was trying to cache one too many messages
3848 2004-11-26 Havoc Pennington <hp@redhat.com>
3850 * dbus/dbus-message.c: reimplement message cache as an array which
3851 makes the cache about twice as fast and saves maybe 1.5% overall
3853 2004-11-26 Havoc Pennington <hp@redhat.com>
3855 * dbus/dbus-threads.c (init_global_locks): forgot to put the
3856 message cache lock here
3858 2004-11-26 Havoc Pennington <hp@redhat.com>
3860 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3861 the "char byte_order" next to each other to save 4 bytes
3862 (dbus_message_new_empty_header): reduce preallocation, since the
3863 message cache should achieve a similar effect
3864 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3865 message cache that keeps a few DBusMessage around in a pool,
3866 another 8% speedup or so.
3868 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3870 2004-11-25 Havoc Pennington <hp@redhat.com>
3872 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3873 to write, without reading or blocking, try it before the poll()
3874 and skip the poll() if nothing remains to write. This is about a
3875 3% speedup in the echo client/server
3877 2004-11-25 Havoc Pennington <hp@redhat.com>
3879 The primary change here is to always write() once before adding
3880 the write watch, which gives us about a 10% performance increase.
3882 * dbus/dbus-transport-unix.c: a number of modifications to cope
3883 with removing messages_pending
3884 (check_write_watch): properly handle
3885 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3886 messages_pending stuff
3887 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3889 (unix_handle_watch): after writing, see if the write watch can be
3891 (unix_do_iteration): assert that write_watch/read_watch are
3892 non-NULL rather than testing that they aren't, since they
3893 aren't allowed to be NULL. check_write_watch() at the end so
3894 we add the watch if we did not finish writing (e.g. got EAGAIN)
3896 * dbus/dbus-transport-protected.h: remove messages_pending call,
3897 since it resulted in too much inefficient watch adding/removing;
3898 instead we now require that the transport user does an iteration
3899 after queueing outgoing messages, and after trying the first
3900 write() we add a write watch if we got EAGAIN or exceeded our
3901 max bytes to write per iteration setting
3903 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3906 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3907 freed and then accessed, valgrind flagged this bug, fix it
3909 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3910 as the last valid field plus 1, where really it is equal to the
3911 last valid field. Corrects some message corruption issues.
3913 * dbus/dbus-mainloop.c: verbosity changes
3915 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3916 instead of aborting in one of the test codepaths
3918 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3919 caused not printing the pid ever again if a verbose was missing
3920 the newline at the end
3921 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3923 * dbus/dbus-connection.c: verbosity changes;
3924 (dbus_connection_has_messages_to_send): new function
3925 (_dbus_connection_message_sent): no longer call transport->messages_pending
3926 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3927 try to write() immediately, so we can avoid the write watch. This
3928 is the core purpose of this patchset
3929 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3930 dump the outgoing message queue, so nobody will get confused
3931 trying to send them or thinking stuff is pending to be sent
3933 * bus/test.c: verbosity changes
3935 * bus/driver.c: verbosity/assertion changes
3937 * bus/dispatch.c: a bunch of little tweaks to get it working again
3938 because this patchset changes when/where you need to block.
3940 2004-11-23 Havoc Pennington <hp@redhat.com>
3942 * test/glib/test-profile.c: modify to accept a plain_sockets
3943 argument in which case it will bench plain sockets instead of
3944 libdbus, for comparison purposes.
3946 2004-11-22 Havoc Pennington <hp@redhat.com>
3948 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3949 threads for more time, so sysprof can get a grip on it.
3951 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3954 2004-11-13 Havoc Pennington <hp@redhat.com>
3956 * test/glib/test-profile.c: fix this thing up a bit
3958 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3959 preallocation sizes by a fair bit; not sure if this will be an
3960 overall performance win or not, but it does reduce reallocs.
3962 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3963 the test hack that forced constant realloc if asserts are
3964 disabled, so we can profile sanely. Sprinkle in some
3965 _DBUS_UNLIKELY() which are probably pointless, but before I
3966 noticed the real performance problem I put them in.
3967 (_dbus_string_validate_utf8): micro-optimize this thing a little
3968 bit, though callgrind says it didn't help; then special-case
3969 ascii, which did help a lot; then be sure we detect nul bytes as
3970 invalid, which is a bugfix.
3971 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3972 superstition; use memset to nul the padding instead of a manual
3974 (_dbus_string_get_length): inline this as a
3975 macro; it showed up in the profile because it's used for loop
3978 2004-11-10 Colin Walters <walters@verbum.org>
3980 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3983 2004-11-09 Colin Walters <walters@verbum.org>
3985 * dbus/dbus-string.c (_dbus_string_get_length): New
3986 function, writes DBusString to C buffer.
3988 * dbus/dbus-string.h: Prototype it.
3990 * dbus/dbus-message.c (dbus_message_type_to_string): New
3991 function, converts message type into C string.
3993 * dbus/dbus-message.h: Prototype it.
3995 * bus/selinux.c (bus_selinux_check): Take source pid,
3996 target pid, and audit data. Pass audit data to
3998 (log_audit_callback): New function, appends extra
4000 (bus_selinux_allows_acquire_service): Also take
4001 service name, add it to audit data.
4002 (bus_selinux_allows_send): Also take message
4003 type, interface, method member, error name,
4004 and destination, and add them to audit data.
4005 (log_cb): Initialize func_audit.
4007 * bus/selinux.h (bus_selinux_allows_acquire_service)
4008 (bus_selinux_allows_send): Update prototypes
4010 * bus/services.c (bus_registry_acquire_service): Pass
4011 service name to bus_selinux_allows_acquire_service.
4013 * bus/bus.c (bus_context_check_security_policy): Pass
4014 additional audit data. Move assignment of dest
4017 2004-11-07 Colin Walters <walters@verbum.org>
4019 * dbus/dbus-transport-unix.c (do_authentication): Always
4020 initialize auth_completed.
4022 2004-11-07 Colin Walters <walters@verbum.org>
4024 * bus/bus.c (load_config): Break into three
4025 separate functions: process_config_first_time_only,
4026 process_config_every_time, and process_config_postinit.
4027 (process_config_every_time): Move call of
4028 bus_registry_set_service_context_table into
4029 process_config_postinit.
4030 (process_config_postinit): New function, does
4031 any processing that needs to happen late
4032 in initialization (and also on reload).
4033 (bus_context_new): Instead of calling load_config,
4034 open config parser here and call process_config_first_time_only
4035 and process_config_every_time directly. Later, after
4036 we have forked but before changing UID,
4037 invoke bus_selinux_full_init, and then call
4038 process_config_postinit.
4039 (bus_context_reload_config): As in bus_context_new,
4040 load parse file inside here, and call process_config_every_time
4041 and process_config_postinit.
4043 * bus/services.h, bus/services.c
4044 (bus_registry_set_service_context_table): Rename
4045 from bus_registry_set_sid_table. Take string hash from config
4046 parser, and convert them here into SIDs.
4048 * bus/config-parser.c (struct BusConfigParser): Have
4049 config parser only store a mapping of service->context
4051 (merge_service_context_hash): New function.
4052 (merge_included): Merge context string hashes instead
4053 of using bus_selinux_id_table_union.
4054 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4055 simply create a new string hash.
4056 (bus_config_parser_unref): Unref it.
4057 (start_selinux_child): Simply insert strings into hash,
4058 don't call bus_selinux_id_table_copy_over.
4060 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4061 (bus_selinux_id_table_copy_over): Delete.
4063 2004-11-03 Colin Walters <walters@verbum.org>
4065 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4068 2004-11-03 Colin Walters <walters@verbum.org>
4070 * bus/test-main.c (test_pre_hook): Fix test logic,
4071 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4073 2004-11-02 Colin Walters <walters@redhat.com>
4075 * bus/selinux.c (bus_selinux_init): Split into two functions,
4076 bus_selinux_pre_init and bus_selinux_post_init.
4077 (bus_selinux_pre_init): Just determine whether SELinux is
4079 (bus_selinux_post_init): Do everything else.
4081 * bus/main.c (main): Call bus_selinux_pre_init before parsing
4082 config file, and bus_selinux_post_init after. This ensures that
4083 we don't lose the policyreload notification thread that
4084 bus_selinux_init created before forking previously.
4086 * bus/test-main.c (test_pre_hook): Update for split.
4088 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
4090 Patch from Johan Fischer <linux@fischaz.com>
4092 * mono/doc/Makefile.am (install-data-local): Added directory
4095 2004-10-29 Colin Walters <walters@redhat.com>
4097 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4098 parameter for fd to write pid to.
4100 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4102 * bus/bus.c (bus_context_new): Pass print_pid_fd
4103 to _dbus_become_daemon (bug #1720)
4105 2004-10-29 Colin Walters <walters@redhat.com>
4107 Patch from Ed Catmur <ed@catmur.co.uk>
4109 * mono/doc/Makefile.am (install-data-local): Handle
4112 2004-10-29 Colin Walters <walters@redhat.com>
4114 * bus/.cvsignore, qt/.cvsignore: Update.
4116 2004-10-29 Colin Walters <walters@redhat.com>
4118 Patch from Kristof Vansant <de_lupus@pandora.be>
4120 * configure.in: Detect Slackware.
4121 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4122 * bus/rc.messagebus.in: New file.
4124 2004-10-29 Colin Walters <walters@redhat.com>
4126 * tools/dbus-monitor.c (filter_func): Return
4127 DBUS_HANDLER_RESULT_HANDLED in filter function
4129 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4131 2004-10-29 Colin Walters <walters@redhat.com>
4133 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4135 * bus/services.c (bus_registry_acquire_service):
4136 Correctly retrieve service name from DBusString
4139 2004-10-29 Colin Walters <walters@redhat.com>
4141 * dbus/dbus-glib.h: Update documentation to not
4142 refer to internal APIs.
4144 2004-10-27 Joe Shaw <joeshaw@novell.com>
4146 * mono/Arguments.cs (GetDBusTypeConstructor):
4147 type.UnderlyingSystemType will return "System.Byte" if you do it
4148 on "byte[]", which is not what we want. So check the type.IsArray
4149 property and use System.Array instead.
4151 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4153 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4154 the DBusUserInfo structure since this is passed into the function.
4155 This would cause a double free when the function that allocated
4156 the structure would try to free it when an error occured.
4158 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4159 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4160 for service activation to avoid 32bit/64bit parallel install issues
4162 2004-10-21 Colin Walters <walters@verbum.org>
4164 * AUTHORS: Fix my email address, the @gnu.org one
4165 has been bouncing for some time. Also add J5.
4167 2004-10-21 Colin Walters <walters@verbum.org>
4169 * dbus/dbus-transport-unix.c (do_authentication): Return
4170 authentication status to callers.
4171 (unix_handle_watch): If we completed authentication this round,
4172 don't do another read. Instead wait until the next iteration,
4173 after we've read any pending data in the auth buffer.
4174 (unix_do_iteration): Ditto.
4175 (unix_handle_watch): Updated for new do_authentication prototype.
4177 2004-10-18 Colin Walters <walters@verbum.org>
4179 * bus/selinux.c (bus_selinux_enabled): Handle
4180 --disable-selinux case.
4182 2004-10-18 Colin Walters <walters@verbum.org>
4184 * bus/selinux.h: Add bus_selinux_enabled.
4186 * bus/selinux.c (bus_selinux_enabled): Implement it.
4188 * bus/config-parser.c (struct include): Add
4189 if_selinux_enabled member.
4190 (start_busconfig_child): Parse if_selinux_enabled
4191 attribute for include.
4192 (bus_config_parser_content): Handle it.
4194 * bus/session.conf.in, bus/system.conf.in: Add
4195 inclusion of context mapping to default config files;
4196 conditional on SELinux being enabled.
4198 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4200 * test/data/invalid-config-files/badselinux-1.conf,
4201 test/data/invalid-config-files/badselinux-2.conf:
4202 Test files for bad syntax.
4204 2004-10-17 Colin Walters <walters@verbum.org>
4206 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4207 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4208 format specifier mismatches.
4210 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4212 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4215 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4216 pointer (bug #1540, Leonardo Boiko).
4218 2004-09-28 Jon Trowbridge <trow@ximian.com>
4220 * mono/BusDriver.cs: Changed BusDriver struct to remove
4221 the ServiceCreated and ServiceDeleted events and replace them
4222 with the new ServiceOwnerChanged event.
4224 * mono/example/BusListener.cs: Added a new example program,
4225 which listens for and reports any ServiceOwnerChanged events
4228 * mono/example/Makefile.am (DESTDIR): Build changes for the
4229 new BusListener.cs example.
4231 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4233 * bus/signals.c (bus_match_rule_parse): validate the components of
4234 match rules (bug #1439).
4236 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4238 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4240 * doc/dbus-specification.xml: document ServiceOwnerChanged
4243 * bus/driver.c, bus/driver.h, bus/services.c: Use
4244 ServiceOwnerChanged signal instead of ServiceCreated and
4247 * bus/dispatch.c: update testcase for the new signal.
4249 2004-09-20 Jon Trowbridge <trow@ximian.com>
4251 Patch from Nat Friedman <nat@novell.com>
4253 * mono/Makefile.am: A number of small build fixes to allow "make
4254 distcheck" to succeed.
4256 * mono/example/Makefile.am: "make distcheck" fixes.
4258 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4261 * test/Makefile.am: "make distcheck" fixes.
4263 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4265 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4267 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4269 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4270 messages after the first one (bug #1389).
4272 * bus/dispatch.c (check_double_hello_message): add a test case for
4273 the double hello message bug.
4274 (check_existent_service_activation): fix check of spawning error.
4276 2004-09-16 David Zeuthen <david@fubar.dk>
4278 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4280 2004-09-12 David Zeuthen <david@fubar.dk>
4282 Patch from Kay Sievers <kay.sievers@vrfy.org>
4284 * bus/bus.c (bus_context_new):
4286 * bus/main.c (usage)
4288 Add commandline option --nofork to override configuration file
4291 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4293 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4294 compilers don't like it (bug #974).
4296 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4298 * qt/connection.*: Applied patch by Jérôme Lodewyck
4299 <lodewyck@clipper.ens.fr> to integrate an existing
4300 connection into the Qt eventloop
4302 2004-08-30 Jon Trowbridge <trow@ximian.com>
4304 * mono/BusDriver.cs: Added. This is a class for interacting with
4305 the org.freedesktop.DBus service.
4307 * mono/Message.cs: Added a mechanism to expose the message that is
4308 currently being dispatched via the static Message.Current
4309 property. Added Message.Sender and Message.Destination
4312 * mono/Handler.cs: Expose the dispatched message via
4313 Message.Current when handling method calls.
4315 * mono/Service.cs: Expose the dispatched message via
4316 Message.Current when handling signal emissions.
4318 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4319 Connection.BaseService property.
4321 2004-08-28 Havoc Pennington <hp@redhat.com>
4323 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4325 More fixes from Steve Grubb
4327 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4328 (_dbus_listen_tcp_socket): fix fd leak
4330 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4331 EINTR to a bit lower in the code
4333 2004-08-26 Jon Trowbridge <trow@ximian.com>
4335 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4336 TRUE if we are inquiring about the existence of the built-in
4337 org.freedesktop.DBus service.
4339 2004-08-25 John Palmieri <johnp@redhat.com>
4340 * bus/config-parser.c:
4341 (struct PolicyType): Add POLICY_CONSOLE
4342 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4343 (start_busconfig_child): Sets up console element when
4344 <policy at_console=""> is encountered in a policy file
4345 (append_rule_from_element): Convert console elements to console
4349 (bus_policy_create_client_policy): Add console rules to the client
4350 policy based on if the client is at the console
4351 (bus_policy_append_console_rule): New function for adding a
4352 console rule to a policy
4353 (bus_policy_merge): Handle console rule merging
4355 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4356 where we check for console user files
4358 * dbus/dbus-sysdeps.c:
4359 (_dbus_file_exists): New function which checks if the given
4361 (_dbus_user_at_console): New function which does the system
4362 specific process of checking if the user is at the console
4364 * dbus/dbus-userdb.c:
4365 (_dbus_is_console_user): New function converts a UID to user name
4366 and then calls the system specific _dbus_user_at_console to
4367 see if the user is at the console and therefor a console user
4369 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4371 * bus/config-parser.c (set_limit):
4372 * bus/dbus-daemon-1.1.in:
4373 * test/data/valid-config-files/many-rules.conf: set the
4374 max_match_rules_per_connection limt from the config file.
4376 * doc/busconfig.dtd: update the DTD.
4378 * bus/driver.c: remove some unused variables.
4380 2004-08-24 Mikael Hallendal <micke@imendio.com>
4382 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4383 it's been replaced by dbus_g_bus_get
4385 2004-08-23 Colin Walters <walters@redhat.com>
4387 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4389 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4391 * bus/selinux.c: Create a thread for policy reload notification.
4392 (bus_selinux_get_policy_root): Implement.
4394 * bus/config-parser.c (start_busconfig_child)
4395 (bus_config_parser_content): Support SELinux-root relative
4398 * configure.in <HAVE_SELINUX>: Add -lpthread.
4400 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4401 (test_post_hook): Move memory checking into here.
4402 (test_pre_hook, test_post_hook): Move SELinux checks in
4403 here, but conditional on a DBUS_TEST_SELINUX environment
4404 variable. Unfortunately we can't run the SELinux checks
4405 as a normal user, since they won't have any permissions
4406 for /selinux. So this will have to be tested manually
4407 for now, until we have virtualization for most of
4410 2004-08-23 Havoc Pennington <hp@redhat.com>
4412 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4413 drop supplementary groups, suggested by Steve Grubb
4415 2004-08-20 Colin Walters <walters@redhat.com>
4417 * bus/config-parser.c (start_busconfig_child): Remove some unused
4420 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4423 2004-08-17 Joe Shaw <joeshaw@novell.com>
4425 * configure.in: If --enable-mono is passed in, if we can't find
4428 * mono/Makefile.am: Use /gacutil to install assemblies into the
4431 2004-08-12 Havoc Pennington <hp@redhat.com>
4433 * NEWS: update for 0.22
4435 * configure.in: release 0.22
4437 2004-08-11 Colin Walters <walters@redhat.com>
4439 * tools/dbus-send.c (main, usage): Add --reply-timeout
4442 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
4444 * bus/bus.c (process_config_first_time_only): get rid of an unused
4445 DBusError that was causing a memoy leak (bug #989).
4447 * dbus/dbus-keyring.c, dbus/dbus-message.c:
4448 fix compilation on Solaris/Forte C (bug #974)
4450 * bus/main.c (main): plug two minuscule memleaks.
4452 2004-08-10 Havoc Pennington <hp@redhat.com>
4454 * doc/dbus-tutorial.xml: add some more info on GLib bindings
4456 2004-08-09 Havoc Pennington <hp@redhat.com>
4458 * COPYING: switch to Academic Free License version 2.1 instead of
4459 2.0, to resolve complaints about patent termination clause.
4461 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
4463 * README: added documentation for the --enable-python
4466 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4468 * bus/config-parser.c (bus_config_parser_new): fix an invalid
4469 _unref in the SELinux support.
4471 * doc/busconfig.dtd: update DTD for SELinux support.
4473 * bus/config-loader-libxml.c: fix error handler and parser
4474 initialisation/cleanup. OOM test now works with libxml2 HEAD.
4476 * configure.in: remove the warning about libxml2.
4478 * dbus/dbus-bus.c: silence doxygen warning.
4480 2004-07-31 Colin Walters <walters@redhat.com>
4482 * configure.in: Move #error in SELinux check to its own line.
4484 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4486 * dbus/dbus-internals.h (_DBUS_SET_OOM):
4487 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4490 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4491 broken by the change in the _SET_OOM macros.
4493 2004-07-31 Colin Walters <walters@redhat.com>
4495 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4498 2004-07-31 Colin Walters <walters@redhat.com>
4500 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4501 to correctly detect DBUS__ACQUIRE_SVC. Also add an
4504 2004-07-24 Havoc Pennington <hp@redhat.com>
4506 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4508 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4511 * configure.in: add --enable-selinux
4513 * bus/policy.c (bus_policy_merge): add FIXME to a comment
4515 * bus/main.c (main): initialize and shut down selinux
4517 * bus/connection.c: store SELinux ID on each connection, to avoid
4518 repeated getting of the string context and converting it into
4521 * bus/bus.c (bus_context_get_policy): new accessor, though it
4523 (bus_context_check_security_policy): check whether the security
4524 context of sender connection can send to the security context of
4525 recipient connection
4527 * bus/config-parser.c: add parsing for <selinux> and <associate>
4529 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4530 implement dbus_connection_get_unix_fd()
4532 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4533 function, used by the selinux stuff
4535 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
4537 * bus/config-loader-libxml.c: complete the implementation of
4538 libxml backend for config file loader. Doesn't work with full OOM
4541 * configure.in: change error when selecting libxml into a warning.
4543 * test/data/invalid-config-files: add two non-well-formed XML
4546 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4548 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4549 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4550 be necessary to read all the buffer. (bug #894)
4552 * bus/activation.c (bus_activation_activate_service): fix a
4553 potential assertion failure (bug #896). Small optimization in the
4554 case of auto-activation messages.
4556 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4557 add test case for byte-through-vararg bug (#901). patch by Kimmo
4560 2004-07-28 Anders Carlsson <andersca@gnome.org>
4563 * python/dbus_bindings.pyx.in:
4564 Add dbus.init_gthreads (), allow emit_signal to pass
4565 arguments to the signal.
4567 2004-07-24 Havoc Pennington <hp@redhat.com>
4569 * AUTHORS: add some people, not really comprehensively, let me
4570 know if I missed you
4572 2004-07-24 Havoc Pennington <hp@redhat.com>
4574 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4577 * test/Makefile.am (DIST_SUBDIRS): here also
4579 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4581 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4582 breaking build on Solaris, reported by Farhad Saberi on the ML.
4584 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4585 va_arg invocation to account for integer promotion in the case of
4586 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4588 * bus/services.c (bus_service_remove_owner): fix bug #902, use
4589 _dbus_list_get_first_link, not _dbus_list_get_first.
4591 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4593 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4594 handler functions so that the asserts in _dbus_object_subtree_unref
4597 * dbus/dbus-transport-unix.c (do_reading):
4598 _dbus_transport_queue_messages return value is of type
4599 dbus_bool_t, not DBusDispatchStatus.
4601 2004-07-19 David Zeuthen <david@fubar.dk>
4603 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4606 (check_get_connection_unix_user): Debug says GetProperty; but the
4607 method is called GetConnectionUnixUser
4608 (check_get_connection_unix_process_id): New function
4609 (bus_dispatch_test): Actually call check_get_connection_unix_user();
4610 also call check_get_connection_unix_process_id()
4613 (bus_driver_handle_get_connection_unix_process_id): New function,
4614 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4618 (handle_server_data_external_mech): Set pid from the credentials
4619 obtained from the socket
4621 * dbus/dbus-connection.c:
4622 (dbus_connection_get_unix_process_id): New function
4624 * dbus/dbus-connection.h:
4625 Add prototype for dbus_connection_get_unix_process_id
4627 * dbus/dbus-transport.c:
4628 (_dbus_transport_get_unix_process_id): New function
4630 * dbus/dbus-transport.h:
4631 Add prototype for _dbus_transport_get_unix_process_id
4633 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
4635 * dbus/dbus-message.c: Message counter fix, patch by Christian
4636 Hammond <chipx86@gnupdate.org>
4638 2004-07-18 Seth Nickell <seth@gnome.org>
4641 * python/dbus_bindings.pyx.in:
4642 * python/tests/test-client.py:
4644 Add dbus.ByteArray and dbus_bindings.ByteArray
4645 types so that byte streams can be passed back.
4647 Give jdahlin the heaps of credit that are so
4650 2004-07-12 Seth Nickell <seth@gnome.org>
4654 Add message argument to the default object_method_handler
4657 * python/dbus_bindings.pyx.in:
4659 Automatically return NIL when passed an empty list
4660 (we can't pass back a list since lists are typed
4661 and we don't have any idea what type the the client
4662 intended the list to be... :-( )
4664 2004-07-10 Seth Nickell <seth@gnome.org>
4666 * python/examples/Makefile.am:
4668 Fix distcheck breakage caused by new examples.
4670 2004-07-10 Seth Nickell <seth@gnome.org>
4674 Add "message" argument to service-side dbus.Object
4675 methods. This will break existing services written
4676 using the python bindings, but will allow extraction
4677 of all the message information (e.g. who its from).
4679 Add improved "object oriented" signal handling/emission.
4681 * python/examples/example-service.py:
4685 * python/examples/example-signal-emitter.py:
4686 * python/examples/example-signal-recipient.py:
4688 Two new examples that show how to emit and receive
4689 signals using the new APIs.
4691 * python/examples/example-signals.py:
4692 * python/examples/gconf-proxy-service.py:
4693 * python/examples/gconf-proxy-service2.py:
4695 Add "message" argument to service methods.
4697 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
4699 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4700 * dbus/bus.c (dbus_bus_get_unix_user)
4701 * doc/dbus-specification.xml: implement GetConnectionUnixUser
4702 method of org.freedesktop.DBus interface.
4704 * bus/dispatch.c: test case
4706 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
4708 * python/Makefile.am: switched include directory from glib/ to dbus/
4709 since dbus-glib.h moved
4711 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4713 * configure.in: prevent building the gcj stuff and libxml loader
4714 since they are broken.
4716 2004-06-20 Havoc Pennington <hp@redhat.com>
4718 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
4719 codes from the dbus error names
4721 * glib/dbus-glib.h: move to subdir dbus/ since it's included
4722 as dbus/dbus-glib.h and that breakage is now visible due to
4723 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4725 * glib/dbus-glib.h: s/gproxy/g_proxy/
4727 * dbus/dbus-shared.h: new header to hold stuff shared with
4730 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4733 * glib/dbus-glib.h (dbus_set_g_error): move to
4734 dbus-glib-lowlevel.h
4736 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4737 of stuff to enable this
4739 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4741 * a bunch of other changes with the same basic "separate glib
4742 bindings from dbus.h" theme
4744 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
4746 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4748 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4750 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4752 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4753 the reply value of the ServiceExists message.
4755 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
4757 * python/dbus_bindings.pyx.in: No longer need to parse path
4758 elements and pass them as arrays of strings. The C API now
4759 accepts plain path strings.
4760 (_build_parsed_path): removed
4762 2004-06-07 Havoc Pennington <hp@redhat.com>
4764 * doc/TODO: remove auto-activation item since it's done; sort
4765 items by importance/milestone
4767 2004-06-07 Havoc Pennington <hp@redhat.com>
4769 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4770 random signature when using REQUIRED_FIELDS (this hack won't work
4773 * dbus/dbus-message.c: change the signature to be a header field,
4774 instead of message->signature special-case string. Incremental
4775 step forward. Then we can fix up code to send the signature in the
4776 message, then fix up code to validate said signature, then fix up
4777 code to not put the typecodes inline, etc.
4778 (load_one_message): don't make up the signature after the fact
4779 (decode_header_data): require signature field for the known
4782 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4784 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4786 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
4788 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4790 * mono/Handler.cs: Updated to follow new path argument for
4791 (un-)registering objects.
4793 * mono/example/Makefile.am:
4795 * configure.in: Bumped required version for mono and use new -pkg
4798 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
4800 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4801 registration functions take the path argument as char* instead of
4804 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4805 split off the path decompostion part of
4806 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4809 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4811 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4813 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4814 machine approach. A state is implemented as a function that
4815 handles incoming events as specified for that state.
4817 * doc/dbus-specification.xml: Update auth protocol state machine
4818 specification to match implementation. Remove some leftover
4821 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4823 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4824 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4827 * Doxyfile.in: remove deprecated options.
4829 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4830 glib/test-thread.h, glib/test-thread-client.c,
4831 glib/test-thread-server.c, glib/test-profile.c,
4832 glib/test-dbus-glib.c: remove these unused files.
4834 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
4836 * dbus/dbus-object-tree.c
4837 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4838 non-fallback handlers (bug #684).
4839 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4840 (find_subtree_recurse): report wether the returned subtree is an
4841 exact match or a "fallback" match higher up in the tree.
4842 (object_tree_test_iteration): update test case.
4844 2004-06-01 Seth Nickell <seth@gnome.org>
4846 * python/dbus_bindings.pyx.in:
4847 * python/tests/test-client.py:
4849 Round off basic type support. Add dicts (yay!), and
4850 remaining array types.
4852 Make MessageIter more general so it works for dicts too.
4854 Mark all loop variables as C integers.
4856 2004-05-31 Havoc Pennington <hp@redhat.com>
4858 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4861 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4863 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4864 option that runs the tests, and start filling in some code
4865 including for starters just dumping the interfaces to stdout
4867 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4869 * test/data/valid-introspection-files/lots-of-types.xml: test of
4870 an example introspection file
4872 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4875 2004-05-31 Seth Nickell <seth@gnome.org>
4877 * python/dbus_bindings.pyx.in:
4878 * python/tests/test-client.py:
4883 Fix string array memory trashing bug... oops...
4885 2004-05-30 Seth Nickell <seth@gnome.org>
4889 Add a nicer-but-less-flexible alternate API for handling
4890 calls to virtual objects in dbus.ObjectTree.
4892 Screw up the argument order to the dbus.Object constructor
4893 for consistency with dbus.ObjectTree (and to make dbus_methods
4894 optional for future extension)
4896 * python/examples/Makefile.am:
4897 * python/examples/gconf-proxy-service.py:
4898 * python/examples/gconf-proxy-service2.py:
4900 Alternate implementation of gconf-proxy-service using the
4901 nicer dbus.ObjectTree API.
4903 * python/examples/example-service.py:
4904 * python/tests/test-server.py
4906 Reverse the argument order to deal with dbus.Object constructor
4909 2004-05-30 Seth Nickell <seth@gnome.org>
4911 * python/examples/example-client.py:
4912 * python/examples/example-service.py:
4914 Take it back. Lists seem to work but they're broken
4915 in the test suite. Make the base examples use
4918 2004-05-30 Seth Nickell <seth@gnome.org>
4920 * python/dbus_bindings.pyx.in:
4921 * python/tests/test-client.py:
4923 Add some more tests and fix errors that crop up.
4924 Unfortunately, currently it seems like marshalling
4925 and unmarshalling of lists is completely broken :-(
4927 2004-05-30 Seth Nickell <seth@gnome.org>
4929 * python/dbus_bindings.pyx.in:
4931 Add support for ObjectPath type.
4935 Refactor message handling code to a common function.
4937 * python/tests/test-client.py:
4938 * python/tests/test-server.py:
4940 Add tests that check to make sure values of all types
4941 can be echoed from a service w/o mangling.
4943 2004-05-29 Seth Nickell <seth@gnome.org>
4947 Add ObjectTree class which allows implementation
4948 of trees of "virtual" objects. Basically the python
4949 wrapper for "register_fallback".
4951 * python/examples/Makefile.am
4952 * python/examples/gconf-proxy-client.py:
4953 * python/examples/gconf-proxy-service.py:
4955 Implement a simple GConf proxy service that supports
4956 get/set on string and int GConf keys using the ObjectTree.
4958 2004-05-29 Seth Nickell <seth@gnome.org>
4961 * python/examples/example-client.py:
4962 * python/examples/example-service.py:
4963 * python/examples/list-system-services.py:
4965 Add SessionBus, SystemBus and ActivationBus classes
4966 so you don't need to know the special little BUS_TYPE
4969 2004-05-29 Havoc Pennington <hp@redhat.com>
4971 * bus/config-parser.c (process_test_valid_subdir): temporarily
4972 stop testing config parser OOM handling, since expat has issues
4973 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4975 * bus/dbus-daemon-1.1.in: change requested_reply to
4976 send_requested_reply/receive_requested_reply so we can send the
4977 replies, not just receive them.
4979 * bus/config-parser.c: parse the new
4980 send_requested_reply/receive_requested_reply
4982 * bus/policy.c (bus_client_policy_check_can_send): add
4983 requested_reply argument and use it
4985 * bus/bus.c (bus_context_check_security_policy): pass through
4986 requested_reply status to message send check
4988 * bus/system.conf.in: adapt to requested_reply change
4990 2004-05-28 Havoc Pennington <hp@redhat.com>
4992 * test/glib/test-service-glib.c (main): remove unused variable
4994 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4996 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4997 from the enum, no longer in use.
4999 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5002 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5003 whether error_name passed in is a valid error name.
5005 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
5007 * dbus/dbus-message.c (dbus_message_get_args): Added support for
5008 OBJECT_PATH and OBJECT_PATH_ARRAY
5010 2004-05-28 Seth Nickell <seth@gnome.org>
5012 * python/examples/Makefile.am:
5014 Forget to add Makefile.am. Do not pass go.
5016 2004-05-28 Michael Meeks <michael@ximian.com>
5018 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
5021 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5023 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5024 (_dbus_message_iter_get_basic_type_array): impl.
5025 drastically simplify ~all relevant _get methods to use these.
5026 (_dbus_message_iter_append_basic_array),
5027 (dbus_message_iter_append_basic): impl
5028 drastically simplify ~all relevant _append methods to use these.
5030 * dbus/dbus-message-builder.c (parse_basic_type)
5031 (parse_basic_array, lookup_basic_type): impl.
5032 (_dbus_message_data_load): prune scads of duplicate /
5035 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
5036 (_dbus_demarshal_basic_type): implement,
5037 (demarshal_and_validate_len/arg): beef up debug.
5038 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5040 2004-05-27 Seth Nickell <seth@gnome.org>
5043 * python/Makefile.am:
5045 Include the example python apps in the tarball.
5047 * python/examples/list-system-services.py
5049 Add a python new example that fetches the list of services
5050 from the system bus.
5052 2004-05-27 Seth Nickell <seth@gnome.org>
5055 * python/dbus_bindings.pyx.in:
5057 Fix failure to notify that a signal was not handled,
5058 resulted in hung functions.
5060 2004-05-25 Colin Walters <walters@redhat.com>
5062 * tools/dbus-monitor.c (main): Monitor all types of messages.
5064 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
5066 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5067 which unregisters the object path and disposes the handler.
5069 2004-05-23 Kristian Høgsberg <krh@redhat.com>
5071 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5073 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5074 operands to && so we call dbus_message_iter_next () for the last
5077 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5079 * dbus/dbus-object-tree.c
5080 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5081 children even if the requested path isn't registered.
5082 (object_tree_test_iteration): test object_tree_list_registered.
5084 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5087 2004-05-20 Kristian Høgsberg <krh@redhat.com>
5089 * doc/TODO: Remove resolved items.
5091 * bus/expirelist.h (struct BusExpireList): remove unused n_items
5094 * bus/connection.c (bus_connections_expect_reply): Enforce the
5095 per-connection limit on pending replies.
5097 Patch from Jon Trowbridge <trow@ximian.com>:
5099 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5100 up a watch that triggers a config reload when one end of the pipe
5102 (signal_handler): Instead of doing the config reload in our SIGHUP
5103 handler, just write to the reload pipe and let the associated
5104 watch handle the reload when control returns to the main loop.
5106 * bus/driver.c (bus_driver_handle_reload_config): Added.
5107 Implements a ReloadConfig method for requesting a configuration
5108 file reload via the bus driver.
5110 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5112 * HACKING: Updated release instructions concerning the wiki page.
5114 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5116 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5117 filter against auth->allowed_mechs; we only add allowed mechs in
5118 record_mechanisms().
5120 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5121 ALLOWED_MECHS to auth-script format so we can set the list of
5124 * data/auth/client-out-of-mechanisms.auth-script: New test to
5125 check client disconnects when it is out of mechanisms to try.
5127 * dbus/dbus-auth.c (process_command): Remove check for lines
5128 longer that 1 MB; we only buffer up maximum 16 kB.
5130 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5131 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5132 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5133 assume there might be unused bytes.
5135 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5136 client-out-of-mechs, it is handled in process_reject(). Move check
5137 for max failures to send_rejected(), as it's a server-only thing.
5139 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5140 send_auth(), send_data(), send_rejected(), send_error(),
5141 send_ok(), send_begin() and send_cancel().
5143 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5145 Remove base64 encoding, replace with hex encoding. Original patch
5146 from trow@ximian.com, added error handling.
5148 * dbus/dbus-string.c (_dbus_string_base64_encode)
5149 (_dbus_string_base64_decode): Remove.
5150 (_dbus_string_hex_decode): Add end_return argument so we can
5151 distinguish between OOM and invalid hex encoding.
5152 (_dbus_string_test): Remove base64 tests and add test case for
5155 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5156 Replace base64 with hex.
5158 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5159 for invalid hex encoded data in auth protocol.
5161 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5163 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5166 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5168 * mono/dbus-sharp.dll.config.in: Added for GAC
5169 * mono/dbus-sharp.snk: Added for GAC
5170 * mono/Assembly.cs.in: Added for GAC
5171 * mono/Makefile.am: Changes for GAC installation
5172 * configure.in: Added refs for dbus-sharp.dll.config.in and
5173 Assembly.cs.in. More fixes for mono testing
5174 * mono/example/Makefile.am: Changed var to CSC
5175 * Makefile.am: Changed flag name to DBUS_USE_CSC
5177 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5179 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5180 * mono/doc/*: Added documentation framework
5181 * configure.in: Added monodoc check
5182 * README: Added description of mono configure flags
5184 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5186 * doc/dbus-specification.xml: Added a "Required" column to the
5187 header fields table and changed the "zero or more" verbage in
5188 the above paragraph to read "The header must contain the required
5189 named header fields and zero or more of the optional named header
5191 * test/data/invalid-messages/*.message: Added the required PATH
5192 named header field to the tests so that they don't fail on
5193 'Missing path field'
5195 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
5197 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5198 the stack by implicitly defining variable and parameter types and
5199 removing the hack of defining C pointers as python objects and later
5202 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5204 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5206 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5208 * mono/DBusType/Dict.cs: Handle empty dicts
5209 * mono/DBusType/Array.cs: Handle empty arrays
5210 * mono/Arguments.cs: Handle empty arguments
5212 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5214 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5217 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5219 * test/data/valid-messages/standard-*.message: Update message
5220 test scripts to new header field names.
5222 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5224 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5225 overflow to times_we_did_each_thing array which would chop off the
5226 first character of the failure_dir string. Increased the size of
5227 the array to 7 to reflect the number of random mutation functions
5230 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5232 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5233 unix_server->watch here, it is unreffed in disconnect.
5234 (_dbus_server_new_for_tcp_socket): convert NULL host to
5235 "localhost" here so we don't append NULL to address.
5237 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5238 various addresses, including tcp with no explicit host.
5240 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5242 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5243 fix incorrect setting of .name_offset in the HeaderField (it was
5244 off by two bytes, positioned right after the name and typecode)
5246 * bus/bus.c (bus_context_new, bus_context_unref): test before
5247 calling dbus_server_free_data_slot and _dbus_user_database_unref
5248 in case of an error.
5250 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5253 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5255 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5256 _dbus_poll() instead of select().
5258 2004-04-15 Jon Trowbridge <trow@ximian.com>
5260 * bus/main.c (signal_handler): Reload the configuration files
5262 (main): Set up our SIGHUP handler.
5264 * bus/bus.c (struct BusContext): Store the config file, user and
5265 fork flag in the BusContext.
5266 (process_config_first_time_only): Added. Contains the code
5267 (previously in bus_context_new) for setting up the BusContext from
5268 the BusConfigParser that should only be run the first time the
5269 config files are read.
5270 (process_config_every_time): Added. Contains the code (previously
5271 in bus_context_new) for setting up the BusContext from the
5272 BusConfigParser that should be run every time the config files are
5274 (load_config): Added. Builds a BusConfigParser from the config
5275 files and passes the resulting structure off to
5276 process_config_first_time_only (assuming this is the first time)
5277 and process_config_every_time.
5278 (bus_context_new): All of the config-related code has been moved
5279 to process_config_first_time_only and process_config_every_time.
5280 Now this function just does the non-config-related initializations
5281 and calls load_config.
5282 (bus_context_reload_config): Added.
5284 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5286 * bus/driver.c (bus_driver_handle_get_service_owner):
5287 implement a GetServiceOwner method.
5288 * doc/dbus-specification.xml: document it.
5289 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5291 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5292 implement, using the bus GetServiceOwner method.
5294 * test/glib/test-dbus-glib.c:
5295 use dbus_gproxy_new_for_service_owner so that we can receive the
5298 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5300 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5301 dbus/dbus-message.c, dbus/dbus-protocol.h
5302 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5304 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5305 dbus/dbus-message.c, dbus/dbus-protocol.h
5306 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5308 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5309 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5310 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5312 * doc/dbus-specification.xml (Header Fields Table):
5313 s/SERVICE/DESTINATION
5314 s/SENDER_SERVICE/SENDER
5317 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5319 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5322 2004-04-13 Michael Meeks <michael@ximian.com>
5324 * glib/dbus-gobject.c (handle_introspect): split out
5325 (introspect_properties): this.
5326 (handle_introspect): implement this.
5328 * test/glib/Makefile.am: use the absolute path so the bus
5329 daemon's chdir ("/") doesn't kill us dead.
5331 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5333 2004-04-12 Jon Trowbridge <trow@ximian.com>
5335 * bus/config-parser.c (struct BusConfigParser): Added
5336 included_files field.
5337 (seen_include): Added. Checks whether or not a file has already
5338 been included by any parent BusConfigParser.
5339 (bus_config_parser_new): Copy the parent's included_files.
5340 (include_file): Track which files have been included, and fail on
5341 circular inclusions.
5342 (process_test_valid_subdir): Changed printf to report if we are
5343 testing valid or invalid conf files.
5344 (all_are_equiv): Changed printf to be a bit clearer about
5345 what we are actually doing.
5346 (bus_config_parser_test): Test invalid configuration files.
5348 2004-04-09 Jon Trowbridge <trow@ximian.com>
5350 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5351 argument. If non-null, the newly-constructed BusConfigParser will
5352 be initialized with the parent's BusLimits instead of the default
5354 (include_file): When including a config file, pass in
5355 the current parser as the parent and then copy the BusLimits
5356 from the included BusConfigParser pack to the current parser.
5357 (process_test_valid_subdir): Renamed from process_test_subdir.
5358 (process_test_equiv_subdir): Added. Walks through a directory,
5359 descending into each subdirectory and loading the config files
5360 it finds there. If any subdirectory contains two config files
5361 that don't produce identical BusConfigParser structs, fail.
5362 For now, the BusConfigParser's BusPolicies are not compared.
5363 (bus_config_parser_test): Call both process_test_valid_subdir and
5364 process_test_equiv_subdir.
5366 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5367 argument and pass it along to the call to bus_config_parser_new.
5368 Also made a few small changes to allow this code to compile.
5370 * bus/config-loader-expat.c (bus_config_load): Take a parent
5371 argument and pass it along to the call to bus_config_parser_new.
5373 * bus/bus.c (bus_context_new): Load the config file
5374 with a NULL parent argument.
5376 2004-03-29 Michael Meeks <michael@ximian.com>
5378 * glib/dbus-gobject.c (introspect_properties): split
5379 out, fix mangled 'while' flow control.
5380 (introspect_signals): implement.
5381 (handle_introspect): update.
5383 2004-03-29 Michael Meeks <michael@ximian.com>
5385 * glib/dbus-gobject.c (set_object_property): split out /
5386 re-work, use the property type, and not the message type(!)
5387 (get_object_property): ditto.
5389 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5390 (dbus_gvalue_marshal): make this code re-usable, needed
5391 for signals too, also on both proxy and server side.
5392 Re-write for more efficiency / readability.
5394 2004-03-29 Michael Meeks <michael@ximian.com>
5396 * dbus/dbus-message.c
5397 (dbus_message_new_error_printf): impl.
5399 * dbus/dbus-connection.c
5400 (dbus_connection_unregister_object_path): fix warning.
5402 * configure.in: fix no-mono-installed situation.
5404 2004-03-27 Havoc Pennington <hp@redhat.com>
5406 Patch from Timo Teräs:
5408 * tools/dbus-send.c (main): if --print-reply, assume type is
5409 method call; support boolean type args
5411 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5412 bunch of memleak and logic bugs
5414 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5416 * mono/Arguments.cs:
5417 * mono/Introspector.cs:
5419 * mono/InterfaceProxy.cs:
5421 * mono/ProxyBuilder.cs:
5423 Added InterfaceProxy class to avoid building proxies for every
5427 * dbus-message.c (dbus_message_append_args_valist)
5428 (dbus_message_iter_get_object_path)
5429 (dbus_message_iter_get_object_path_array)
5430 (dbus_message_iter_append_object_path)
5431 (dbus_message_iter_append_object_path_array):
5432 Added object_path iter functions to handle OBJECT_PATH arguments
5434 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5436 First checkin of mono bindings.
5439 Build stuff for the bindings
5440 * dbus-sharp.pc.in: Added for pkgconfig
5442 2004-03-21 Havoc Pennington <hp@redhat.com>
5444 * test/test-service.c (main): remove debug spew
5446 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5448 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5451 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5452 (dbus_message_iter_init_array_iterator)
5453 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5454 indicate whether the iterator is empty
5456 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5459 2004-03-19 Havoc Pennington <hp@redhat.com>
5461 * NEWS: 0.21 updates
5463 * configure.in: 0.21
5465 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5467 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5468 you don't need pyrex to make dist
5470 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5473 2004-03-18 Richard Hult <richard@imendio.com>
5475 * dbus/dbus-message.c (dbus_message_get_auto_activation)
5476 (dbus_message_set_auto_activation): Add doxygen docs.
5478 2004-03-16 Richard Hult <richard@imendio.com>
5480 * bus/activation.c: (bus_activation_service_created),
5481 (bus_activation_send_pending_auto_activation_messages),
5482 (bus_activation_activate_service):
5484 * bus/dispatch.c: (bus_dispatch),
5485 (check_nonexistent_service_auto_activation),
5486 (check_service_auto_activated),
5487 (check_segfault_service_auto_activation),
5488 (check_existent_service_auto_activation), (bus_dispatch_test):
5489 * bus/driver.c: (bus_driver_handle_activate_service):
5490 * bus/services.c: (bus_registry_acquire_service):
5491 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5492 (dbus_message_get_auto_activation):
5493 * dbus/dbus-message.h:
5494 * dbus/dbus-protocol.h: Implement auto-activation.
5496 * doc/dbus-specification.xml: Add auto-activation to the spec.
5498 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
5500 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5501 fix a bug with CUSTOM types.
5503 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5504 a unit test for this bug (used to fail).
5506 2004-03-12 Mikael Hallendal <micke@imendio.com>
5509 (babysitter_watch_callback): notify all pending activations waiting for
5510 the same exec that the activation failed.
5511 (bus_activation_activate_service): shortcut the activation if we
5512 already waiting for the same executable to start up.
5514 2004-03-12 Mikael Hallendal <micke@imendio.com>
5517 - Added service file reloading.
5518 Each service files directory is kept in an hash table in
5519 BusActivation and each BusActivationEntry knows what .service-file it
5520 was read from. So when you try to activate a service the bus will
5521 check if it's been updated, removed or if new .service-files has
5523 - Test code at the bottom for the service file reloading.
5524 * bus/test-main.c: (main):
5526 - added service reloading test.
5527 * dbus/dbus-sysdeps.c:
5528 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5530 2004-03-08 Michael Meeks <michael@ximian.com>
5532 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
5533 bail immediately if disconnected, to avoid busy loop.
5535 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5536 cleanup cut/paste/inefficiency.
5538 2004-03-01 David Zeuthen <david@fubar.dk>
5540 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5541 bug where args were used twice. This bug resulted in a segfault
5542 on a Debian/PPC system when starting the messagebus daemon. Include
5543 dbus-sysdeps.h for DBUS_VA_COPY
5545 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5547 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5548 appropriate va_copy implementation. From GLib
5550 2004-02-24 Joe Shaw <joe@ximian.com>
5552 * bus/services.c (bus_registry_acquire_service): We need to pass
5553 in the service name to dbus_set_error() to prevent a crash.
5555 2003-12-26 Anders Carlsson <andersca@gnome.org>
5557 * AUTHORS: Reveal my True identity.
5559 2003-12-17 Mikael Hallendal <micke@imendio.com>
5561 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5562 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5564 2003-12-13 Mikael Hallendal <micke@imendio.com>
5566 * doc/TODO: Added not about better error check of configuration files.
5568 2003-12-02 Richard Hult <richard@imendio.com>
5570 * Update AFL version to 2.0 throughout the source files to reflect
5571 the update that was done a while ago.
5573 2003-12-02 Richard Hult <richard@imendio.com>
5575 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5576 wrote_dict_key to FALSE on the iter that the dict is appended to,
5577 just like when appending other types. Fixes a bug where a dict
5578 couldn't be put inside a dict.
5579 (dbus_message_iter_append_dict_key): Fix typo in warning message.
5580 (message_iter_test, _dbus_message_test): Add test case for dict
5583 2003-12-01 David Zeuthen <david@fubar.dk>
5585 * python/dbus.py: Add the actual message when calling the reciever
5586 of a signal such that parameters can be inspected. Add the method
5587 remove_signal_receiver
5589 2003-11-26 Mikael Hallendal <micke@imendio.com>
5593 * glib/*.[ch]: Made ref functions return the pointer
5595 2003-11-25 Zack Rusin <zack@kde.org>
5597 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5599 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
5602 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
5603 the Integrator and to better fit with the server,
5605 2003-11-24 Zack Rusin <zack@kde.org>
5607 * qt/connection.h, qt/connection.cpp: removing initDbus method since
5608 the integrator handles it now
5610 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5611 since QTimer wasn't really meant to be used the way DBusTimeout is
5613 2003-11-24 Zack Rusin <zack@kde.org>
5615 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
5616 Integrator class which integrates D-BUS with the Qt event loop,
5618 * qt/connection.h, qt/connection.cpp: Move all the code which
5619 was dealing with D-BUS integration to the Integrator class,
5620 and start using Integrator,
5622 2003-11-23 Zack Rusin <zack@kde.org>
5624 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
5627 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5628 switching namespaces to DBusQt, reworking the class,
5630 * Makefile.cvs: switching dependencies so that it matches KDE
5633 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
5636 2003-11-19 Havoc Pennington <hp@redhat.com>
5640 * configure.in: bump version to 0.20
5642 * configure.in (have_qt): add yet another place to look for qt
5643 (someone hand trolltech a .pc file...)
5645 2003-11-01 Havoc Pennington <hp@redhat.com>
5647 * doc/dbus-specification.xml: add state machine docs on the auth
5648 protocol; just a first draft, I'm sure it's wrong.
5650 2003-10-28 David Zeuthen <david@fubar.dk>
5652 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5653 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5655 2003-10-28 Havoc Pennington <hp@redhat.com>
5657 * dbus/dbus-message.c (get_next_field): delete unused function
5659 2003-10-28 Havoc Pennington <hp@redhat.com>
5661 * bus/expirelist.c (do_expiration_with_current_time): detect
5662 failure of the expire_func due to OOM
5664 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5666 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5667 NoReply error that's now created by the bus when the service exits
5669 2003-10-28 Havoc Pennington <hp@redhat.com>
5671 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5672 tests for set_path, set_interface, set_member, etc.
5674 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5676 * dbus/dbus-message.c (set_string_field): always just delete and
5677 re-append the field; accept NULL for deletion
5678 (re_align_fields_recurse): reimplement
5680 2003-10-26 Havoc Pennington <hp@redhat.com>
5682 * dbus/dbus-connection.c: fix docs to properly describe the
5683 disconnected message
5684 (_dbus_connection_notify_disconnected): remove this function;
5685 we can't synchronously add the disconnected message, we have to
5686 do it after we've queued any remaining real messages
5687 (_dbus_connection_get_dispatch_status_unlocked): queue the
5688 disconnect message only if the transport has finished queueing all
5689 its real messages and is disconnected.
5690 (dbus_connection_disconnect): update the dispatch status here
5692 2003-10-22 Havoc Pennington <hp@redhat.com>
5694 * bus/bus.c (bus_context_check_security_policy): fix up assertion
5696 * bus/connection.c (bus_transaction_send_from_driver): set the
5697 destination to the connection's base service
5699 2003-10-20 Havoc Pennington <hp@redhat.com>
5701 hmm, make check is currently not passing.
5703 * doc/dbus-specification.xml: add requirement that custom type
5704 names follow the same rules as interface names.
5706 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5707 duplication and allow 'c' to be 'custom'; dict is now 'm' for
5710 * doc/dbus-specification.xml: update type codes to match
5711 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5712 CUSTOM. Add type OBJECT_PATH to the spec.
5714 2003-10-17 Havoc Pennington <hp@redhat.com>
5716 * bus/driver.c (create_unique_client_name): use "." as separator
5717 in base service names instead of '-'
5719 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5720 byte at the end of the string
5722 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5723 optimization macros since string validation seems to be a slow
5726 * doc/dbus-specification.xml: restrict valid
5727 service/interface/member/error names. Add test suite code for the
5730 * dbus/dbus-string.c: limit service/interface/member/error names
5733 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5734 format arg to verbose spew
5736 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5737 memory, return instead of g_error
5739 * test/test-service.c (path_message_func): support emitting a
5742 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5743 activation bus type if DBUS_BUS_ACTIVATION was set; default to
5744 assuming the activation bus was the session bus so that services
5745 started manually will still register.
5746 (init_connections_unlocked): fix so that in OOM situation we get
5747 the same semantics when retrying the function
5749 * test/test-service.c (main): change to use path registration, to
5750 test those codepaths; register with DBUS_BUS_ACTIVATION rather
5751 than DBUS_BUS_SESSION
5753 2003-10-16 Havoc Pennington <hp@redhat.com>
5755 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5757 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5758 coverage of the tests
5759 (coverage-report.txt): don't move the .da and .bbg files around
5761 2003-10-16 Havoc Pennington <hp@redhat.com>
5763 * bus/bus.c (struct BusContext): remove struct field I didn't mean
5766 2003-10-16 Havoc Pennington <hp@redhat.com>
5768 * bus/connection.c (bus_pending_reply_expired): either cancel or
5770 (bus_connections_check_reply): use unlink, not remove_link, as we
5771 don't want to free the link; fixes double free mess
5773 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5774 where no reply was received
5776 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5779 * bus/signals.c (match_rule_matches): add special cases for the
5780 bus driver, so you can match on sender/destination for it.
5782 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5783 DBUS_PRINT_BACKTRACE is set
5785 * dbus/dbus-internals.c: add pid to assertion failure messages
5787 * dbus/dbus-connection.c: add message type code to the debug spew
5789 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5790 sender=foo not service=foo
5792 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5793 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
5794 DBUS_ACTIVATION_ADDRESS instead
5796 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5797 DBUS_SYSTEM_BUS_ADDRESS if appropriate
5799 * bus/bus.c (bus_context_new): handle OOM copying bus type into
5802 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5803 (dbus_message_iter_get_object_path_array): new function (half
5804 finished, disabled for the moment)
5806 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5807 DBUS_MESSAGE_TYPE_ERROR
5809 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5810 avoid redirecting stderr to /dev/null
5811 (babysit): close stdin if not doing the "exit_with_session" thing
5813 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5814 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5815 stdout/stdin, so things don't get confused
5817 * bus/system.conf.in: fix to allow replies, I modified .conf
5818 instead of .conf.in again.
5820 2003-10-14 David Zeuthen <david@fubar.dk>
5822 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5823 argtype to arg_type when raising unknown arg type exception.
5824 Changed type list to reflect the changes in dbus-protocol.h so
5825 the bindings actually work.
5827 2003-10-14 Havoc Pennington <hp@redhat.com>
5829 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5830 to have a bug keeping it from outputting the .da files sometimes
5831 (string_get_string): don't append garbage nul bytes to the string.
5833 2003-10-15 Seth Nickell <seth@gnome.org>
5835 * python/Makefile.am:
5837 Include dbus_h_wrapper.h in the dist tarball.
5839 2003-10-14 Havoc Pennington <hp@redhat.com>
5841 * bus/bus.c (bus_context_check_security_policy): revamp this to
5842 work more sanely with new policy-based requested reply setup
5844 * bus/connection.c (bus_transaction_send_from_driver): set bus
5845 driver messages as no reply
5847 * bus/policy.c (bus_client_policy_check_can_receive): handle a
5848 requested_reply attribute on allow/deny rules
5850 * bus/system.conf: add <allow requested_reply="true"/>
5852 * bus/driver.c (bus_driver_handle_message): fix check for replies
5853 sent to the bus driver, which was backward. How did this ever work
5854 at all though? I think I'm missing something.
5856 * dbus/dbus-message.c (decode_header_data): require error and
5857 method return messages to have a reply serial field to be valid
5858 (_dbus_message_loader_queue_messages): break up this function;
5859 validate that reply serial and plain serial are nonzero;
5860 clean up the OOM/error handling.
5861 (get_uint_field): don't return -1 from this
5862 (dbus_message_create_header): fix signed/unsigned bug
5864 * bus/connection.c (bus_connections_expect_reply): save serial of
5865 the incoming message, not reply serial
5867 2003-10-14 Havoc Pennington <hp@redhat.com>
5869 * bus/connection.c: implement pending reply tracking using
5872 * bus/bus.c (bus_context_check_security_policy): verify that a
5873 reply is pending in order to allow a reply to be sent. Deny
5874 messages of unknown type.
5876 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5878 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5879 (bus_context_get_reply_timeout): new
5881 2003-10-13 Seth Nickell <seth@gnome.org>
5883 * python/Makefile.am:
5885 Pass "make distcheck": remove a couple files from DIST_FILES
5886 that weren't included in the final version.
5888 2003-10-12 Havoc Pennington <hp@pobox.com>
5890 Added test code that 1) starts an actual bus daemon and 2) uses
5891 DBusGProxy; fixed bugs that were revealed by the test. Lots
5892 more testing possible, but this is the basic framework.
5894 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5895 empty proxy lists from the proxy list hash
5897 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5898 couple of return_if_fail checks
5900 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5901 to allocate, so everything is cleared to NULL as it should be.
5903 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5904 source as data to dbus_connection_set_timeout_functions() as the
5905 timeout functions expected
5907 * test/glib/run-test.sh: add a little script to start up a message
5908 bus and run tests using it
5910 * tools/dbus-launch.1: updates
5912 * tools/dbus-launch.c (main): add --config-file option
5914 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5915 that could never be reached.
5917 * dbus/dbus-message.c (dbus_message_new_method_return)
5918 (dbus_message_new_error, dbus_message_new_signal): set the
5919 no-reply-expected flag on all these. Redundant, but may
5920 as well be consistent.
5922 2003-10-11 Havoc Pennington <hp@pobox.com>
5924 * test/decode-gcov.c (function_solve_graph): make broken block
5925 graph a nonfatal error since it seems to be broken. Need to debug
5928 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5929 can't just check type > INVALID < LAST anymore
5931 * dbus/dbus-message.c (dbus_message_get_signature): new function
5932 (dbus_message_has_signature): new function
5933 (struct DBusMessage): add signature field (right now it isn't sent
5934 over the wire, just generated on the fly)
5935 (dbus_message_copy): copy the signature, and init strings to
5936 proper length to avoid some reallocs
5937 (dbus_message_iter_init_array_iterator): return void, since it
5939 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5940 (_dbus_message_loader_queue_messages): add silly temporary hack to
5941 fill in message->signature on load
5943 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5944 characters, so they are relatively human-readable.
5946 2003-10-11 Havoc Pennington <hp@pobox.com>
5948 * dbus/dbus-message.c (_dbus_message_test): add more test
5949 coverage, but #if 0 for now since they uncover a bug
5950 not fixed yet; I think in re_align_field_recurse()
5951 (re_align_field_recurse): add FIXME about broken assertion
5953 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5955 * bus/connection.c: share a couple code bits with expirelist.c
5957 * bus/expirelist.h, bus/expirelist.c: implement a generic
5958 expire-items-after-N-seconds facility, was going to share between
5959 expiring connections and replies, decided not to use for expiring
5960 connections for now.
5962 * COPYING: include AFL 2.0 (still need to change all the file headers)
5964 2003-10-09 Havoc Pennington <hp@redhat.com>
5966 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5967 gcc 3.3. Not that we do anything about it yet.
5969 * bus/signals.c (bus_match_rule_parse): impose max length on the
5972 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5974 2003-10-09 Havoc Pennington <hp@redhat.com>
5976 Make matching rules theoretically work (add parser).
5978 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5979 the case where destination is explicitly specified as bus driver
5980 and someone else is eavesdropping.
5982 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5983 definition of eavesdropping and assertion
5985 * tools/dbus-send.c (main): use dbus_message_type_from_string
5987 * bus/signals.c (bus_match_rule_parse): implement
5989 * dbus/dbus-message.c (dbus_message_type_from_string): new
5991 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5993 2003-10-02 Havoc Pennington <hp@pobox.com>
5995 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5996 dbus_gproxy_oneway_call
5998 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5999 (dbus_server_setup_with_g_main): fix to allow calling them more
6000 than once on the same args
6001 (dbus_bus_get_with_g_main): new function
6003 2003-10-02 Havoc Pennington <hp@redhat.com>
6005 * doc/dbus-tutorial.xml: write some stuff
6007 2003-09-29 Havoc Pennington <hp@pobox.com>
6009 * configure.in: split checks for Doxygen from XML docs, check for
6012 * doc/Makefile.am: XML-ify all the docs, and add a blank
6015 2003-09-29 Havoc Pennington <hp@pobox.com>
6017 * Merge dbus-object-names branch. To see the entire patch
6018 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6019 it's huuuuge though.
6020 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6022 2003-09-28 Havoc Pennington <hp@pobox.com>
6024 * HACKING: update to reflect new server
6026 2003-09-26 Seth Nickell <seth@gnome.org>
6029 * python/examples/example-signals.py:
6031 Start implementing some notions of signals. The API
6032 is really terrible, but they sort of work (with the
6033 exception of being able to filter by service, and to
6034 transmit signals *as* a particular service). Need to
6035 figure out how to make messages come from the service
6038 * python/dbus_bindings.pyx.in:
6040 Removed duplicate message_handler callbacks.
6042 2003-09-25 Havoc Pennington <hp@redhat.com>
6044 * bus/session.conf.in: fix my mess
6046 2003-09-25 Havoc Pennington <hp@pobox.com>
6048 * bus/session.conf.in: fix security policy, reported by Seth Nickell
6050 2003-09-25 Seth Nickell <seth@gnome.org>
6052 * python/examples/example-service.py:
6054 Johan notices complete wrong code in example-service, but
6055 completely wrong in a way that works exactly the same (!).
6056 Johan is confused, how could this possibly work? Example
6057 code fails to serve purpose of making things clear.
6060 2003-09-25 Mark McLoughlin <mark@skynet.ie>
6062 * doc/dbus-specification.sgml: don't require header fields
6063 to be 4-byte aligned and specify that fields should be
6064 distinguished from padding by the fact that zero is not
6067 * doc/TODO: remove re-alignment item and add item to doc
6068 the OBJECT_PATH type.
6070 * dbus/dbus-message.c:
6071 (HeaderField): rename the original member to value_offset
6072 and introduce a name_offset member to keep track of where
6073 the field actually begins.
6074 (adjust_field_offsets): remove.
6075 (append_int_field), (append_uint_field),
6076 (append_string_field): don't align the start of the header
6077 field to a 4-byte boundary.
6078 (get_next_field): impl finding the next marhsalled field
6079 after a given field.
6080 (re_align_field_recurse): impl re-aligning a number of
6081 already marshalled fields.
6082 (delete_field): impl deleting a field of any type and
6083 re-aligning any following fields.
6084 (delete_int_or_uint_field), (delete_string_field): remove.
6085 (set_int_field), (set_uint_field): no need to re-check
6086 that we have the correct type for the field.
6087 (set_string_field): ditto and impl re-aligning any
6089 (decode_header_data): update to take into account that
6090 the fields aren't 4-byte aligned any more and the new
6091 way to distinguish padding from header fields. Also,
6092 don't exit when there is too much header padding.
6093 (process_test_subdir): print the directory.
6094 (_dbus_message_test): add test to make sure a following
6095 field is re-aligned correctly after field deletion.
6097 * dbus/dbus-string.[ch]:
6098 (_dbus_string_insert_bytes): rename from insert_byte and
6099 allow the insert of multiple bytes.
6100 (_dbus_string_test): test inserting multiple bytes.
6102 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6103 warning note to docs about having to re-align any
6104 marshalled values following the string.
6106 * dbus/dbus-message-builder.c:
6107 (append_string_field), (_dbus_message_data_load):
6108 don't align the header field.
6110 * dbus/dbus-auth.c: (process_test_subdir): print the
6113 * test/break-loader.c: (randomly_add_one_byte): upd. for
6116 * test/data/invalid-messages/bad-header-field-alignment.message:
6119 * test/data/valid-messages/unknown-header-field.message: shove
6120 a dict in the unknown field.
6122 2003-09-25 Seth Nickell <seth@gnome.org>
6125 * python/dbus_bindings.pyx.in:
6127 Handle return values.
6129 * python/examples/example-client.py:
6130 * python/examples/example-service.py:
6132 Pass back return values from the service to the client.
6134 2003-09-24 Seth Nickell <seth@gnome.org>
6138 Connect Object methods (when you are sharing an object) up... pass
6139 in a list of methods to be shared. Sharing all the methods just
6140 worked out too weird. You can now create nice Services over the
6143 * python/dbus_bindings.pyx.in:
6145 Keep references to user_data tuples passed into C functions so
6146 Python doesn't garbage collect on us.
6148 Implement MethodReturn and Error subclasses of Message for creating
6149 DBusMessage's of those types.
6151 * python/examples/example-client.py:
6152 * python/examples/example-service.py:
6154 Simple example code showing both how create DBus services and objects,
6155 and how to use them.
6157 2003-09-23 Havoc Pennington <hp@pobox.com>
6159 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6161 2003-09-23 Havoc Pennington <hp@redhat.com>
6163 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6164 (dbus_gproxy_disconnect_signal): implement
6165 (dbus_gproxy_manager_remove_signal_match): implement
6166 (dbus_gproxy_manager_add_signal_match): implement
6167 (dbus_gproxy_oneway_call): implement
6169 2003-09-23 Havoc Pennington <hp@pobox.com>
6171 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6172 subclass. This means dropping the transparent thread safety of the
6173 proxy; you now need a separate proxy per-thread, or your own
6174 locking on the proxy. Probably right anyway.
6175 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6177 2003-09-22 Havoc Pennington <hp@redhat.com>
6179 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6181 2003-09-21 Seth Nickell <seth@gnome.org>
6183 First checkin of the Python bindings.
6185 * python/.cvsignore:
6186 * python/Makefile.am:
6187 * python/dbus_bindings.pyx.in:
6188 * python/dbus_h_wrapper.h:
6190 Pieces for Pyrex to operate on, building a dbus_bindings.so
6191 python module for low-level access to the DBus APIs.
6195 High-level Python module for accessing DBus objects.
6200 Build stuff for the python bindings.
6204 Extra macro needed for finding the Python C header files.
6206 2003-09-21 Havoc Pennington <hp@pobox.com>
6208 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6209 implementing the proxy manager, didn't get very far.
6211 * dbus/dbus-bus.c (dbus_bus_add_match): new
6212 (dbus_bus_remove_match): new
6214 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6215 path_name argument; adjust the other not-yet-implemented
6216 gproxy constructors to be what I think they should be.
6218 2003-09-21 Havoc Pennington <hp@pobox.com>
6220 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6221 by default for message bus connections.
6223 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6224 exit_on_disconnect flag is set and we process the disconnected
6226 (dbus_connection_set_exit_on_disconnect): new function
6228 2003-09-21 Havoc Pennington <hp@pobox.com>
6230 Get matching rules mostly working in the bus; only actually
6231 parsing the rule text remains. However, the client side of
6232 "signal connections" hasn't been started, this patch is only the
6235 * dbus/dispatch.c: fix for the matching rules changes
6237 * bus/driver.c (bus_driver_handle_remove_match)
6238 (bus_driver_handle_add_match): send an ack reply from these
6241 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6242 arguments, reported by Seth Nickell
6244 * bus/config-parser.c (append_rule_from_element): support
6245 eavesdrop=true|false attribute on policies so match rules
6246 can be prevented from snooping on the system bus.
6248 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6249 and "destination" in attribute names; fix some docs bugs;
6250 add eavesdrop=true|false attribute
6252 * bus/driver.c (bus_driver_handle_add_match)
6253 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6256 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6257 rid of broadcast service concept, signals are just always broadcast
6259 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6260 mostly implement matching rules stuff (currently only exposed as signal
6263 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6265 * doc/dbus-specification.sgml: Change the header field name
6266 to be an enum and update the rest of the spec to reference
6267 the fields using the conventinal name.
6269 * dbus/dbus-protocol.h: update to reflect the spec.
6271 * doc/TODO: add item to remove the 4 byte alignment requirement.
6273 * dbus/dbus-message.c: Remove the code to generalise the
6274 header/body length and serial number header fields as named
6275 header fields so we can reference field names using the
6277 (append_int_field), (append_uint_field), (append_string_field):
6278 Append the field name as a byte rather than four chars.
6279 (delete_int_or_uint_field), (delete_string_field): reflect the
6280 fact that the field name and typecode now occupy 4 bytes instead
6282 (decode_string_field), (decode_header_data): update to reflect
6283 protocol changes and move the field specific encoding from
6284 decode_string_field() back into decode_header_data().
6286 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6287 Add utility to aid debugging.
6289 * dbus/dbus-message-builder.c:
6290 (append_string_field), (_dbus_message_data_load): Update to
6291 reflect protocol changes; Change the FIELD_NAME directive
6292 to HEADER_FIELD and allow it to take the field's conventional
6293 name rather than the actual value.
6295 * test/data/*/*.message: Update to use HEADER_FIELD instead
6296 of FIELD_NAME; Always align the header on an 8 byte boundary
6297 *before* updating the header length.
6299 2003-09-15 Havoc Pennington <hp@pobox.com>
6301 * dbus/dbus-pending-call.c: add the get/set object data
6302 boilerplate as for DBusConnection, etc. Use generic object data
6303 for the notify callback.
6305 * glib/dbus-gparser.c (parse_node): parse child nodes
6307 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6309 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6310 contain functions shared between the convenience lib and the
6313 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6314 -export-symbols-regex to the GLib library
6316 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6317 fix the locking in here, and add a default handler for
6318 Introspect() that just returns sub-nodes.
6320 2003-09-14 Havoc Pennington <hp@pobox.com>
6322 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6323 rather than gfoo consistent
6325 * glib/dbus-gproxy.h: delete for now, move contents to
6326 dbus-glib.h, because the include files don't work right since we
6327 aren't in the dbus/ subdir.
6329 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6330 (dbus_gproxy_end_call): finish
6331 (dbus_gproxy_begin_call): finish
6333 * glib/dbus-gmain.c (dbus_set_g_error): new
6335 * glib/dbus-gobject.c (handle_introspect): include information
6336 about child nodes in the introspection
6338 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6339 function to help in implementation of introspection
6341 * dbus/dbus-object-tree.c
6342 (_dbus_object_tree_list_registered_and_unlock): new function
6344 2003-09-12 Havoc Pennington <hp@pobox.com>
6346 * glib/dbus-gidl.h: add common base class for all the foo_info
6349 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6352 * test/Makefile.am: try test srcdir -ef . in addition to test
6353 srcdir = ., one of them should work (yeah lame)
6355 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6358 * glib/dbus-gparser.h: make description_load routines return
6359 NodeInfo* not Parser*
6361 * Makefile.am (SUBDIRS): build test dir after all library dirs
6363 * configure.in: add GTK+ detection
6365 2003-09-07 Havoc Pennington <hp@pobox.com>
6367 * Make Doxygen contented.
6369 2003-09-07 Havoc Pennington <hp@pobox.com>
6371 * doc/dbus-specification.sgml: more updates
6373 2003-09-06 Havoc Pennington <hp@pobox.com>
6375 * doc/dbus-specification.sgml: partial updates
6377 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6378 zillionth time; hopefully I edited the right file this time.
6380 * bus/config-parser.c (append_rule_from_element): support
6381 send_type, send_path, receive_type, receive_path
6383 * bus/policy.c: add message type and path to the list of things
6384 that can be "firewalled"
6386 2003-09-06 Havoc Pennington <hp@pobox.com>
6388 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6389 (dbus_connection_register_object_path): make this not handle
6390 messages to paths below the given path
6392 2003-09-03 Havoc Pennington <hp@pobox.com>
6394 * test/glib/Makefile.am: add this with random glib-linked test
6397 * glib/Makefile.am: remove the random test programs from here,
6398 leave only the unit tests
6400 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6401 uscore/javacaps conversion, and fix
6402 (get_object_property, set_object_property): change to .NET
6403 convention for mapping props to methods, set_FooBar/get_FooBar,
6404 since one language has such a convention we may as well copy it.
6405 Plus real methods in either getFooBar or get_foo_bar style won't
6406 collide with this convention.
6408 2003-09-01 Havoc Pennington <hp@pobox.com>
6410 * glib/dbus-gparser.c: implement
6412 * glib/dbus-gobject.c: start implementing skeletons support
6414 * configure.in: when disabling checks/assert, also define
6415 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6417 2003-09-01 Havoc Pennington <hp@pobox.com>
6419 * glib/Makefile.am: rearrange a bunch of files and get "make
6420 check" framework set up
6422 2003-08-31 Havoc Pennington <hp@pobox.com>
6424 * fix build with --disable-tests
6426 2003-08-30 Havoc Pennington <hp@pobox.com>
6428 * dbus/dbus-connection.c: purge DBusMessageHandler
6430 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6431 use callbacks everywhere
6433 2003-08-30 Havoc Pennington <hp@pobox.com>
6435 * test/data/valid-config-files/system.d/test.conf: change to
6436 root for the user so warnings don't get printed
6438 * dbus/dbus-message.c: add dbus_message_get_path,
6439 dbus_message_set_path
6441 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6442 dispatching to a path
6444 * dbus/dbus-string.c (_dbus_string_validate_path): add
6446 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6447 (_dbus_marshal_object_path): implement
6449 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
6450 to contain the path to the target object
6451 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6452 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6454 2003-08-30 Havoc Pennington <hp@pobox.com>
6456 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6458 2003-08-29 Havoc Pennington <hp@pobox.com>
6460 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6462 (struct DBusObjectSubtree): shrink this
6463 a lot, since we may have a lot of them
6464 (_dbus_object_tree_free_all_unlocked): implement
6465 (_dbus_object_tree_dispatch_and_unlock): implement
6467 2003-08-29 Havoc Pennington <hp@pobox.com>
6469 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6471 2003-08-28 Havoc Pennington <hp@pobox.com>
6475 * dbus/dbus-connection.c: port to no ObjectID, create a
6476 DBusObjectTree, rename ObjectTree to ObjectPath in public API
6478 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
6479 everything except UnregisterFunction and MessageFunction
6481 * dbus/dbus-marshal.c: port away from DBusObjectID,
6482 add DBUS_TYPE_OBJECT_PATH
6484 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
6485 dbus/dbus-objectid.[hc]: remove these, we are moving to
6486 path-based object IDs
6488 2003-08-25 Havoc Pennington <hp@pobox.com>
6490 Just noticed that dbus_message_test is hosed, I wonder when I
6491 broke that. I thought make check was passing earlier...
6493 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
6494 container tree, will replace most of dbus-object-registry
6496 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6499 2003-08-19 Havoc Pennington <hp@pobox.com>
6501 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6502 (dbus_message_is_error): fix this function
6504 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6507 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6508 reflect clarified man page
6509 (bus_client_policy_check_can_send): ditto
6511 * bus/session.conf.in: fixup
6513 * bus/system.conf.in: fixup
6515 2003-08-18 Havoc Pennington <hp@redhat.com>
6517 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6519 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6520 dumb bug created earlier (wrong order of args to
6521 decode_header_data())
6523 * tools/dbus-send.c: port
6525 * tools/dbus-print-message.c (print_message): port
6527 * test/data/*messages: port all messages over
6529 * dbus/dbus-message-builder.c: support including
6532 * bus/driver.c: port over
6534 * bus/dispatch.c: port over to new stuff
6536 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6537 rename disconnect signal to "Disconnected"
6539 2003-08-17 Havoc Pennington <hp@pobox.com>
6541 This doesn't compile yet, but syncing up so I can hack on it from
6542 work. What are branches for if not broken code? ;-)
6544 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6545 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6546 DBUS_HEADER_FIELD_ERROR_NAME
6548 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6549 for the interface+member pairs
6550 (string_hash): change to use g_str_hash algorithm
6551 (find_direct_function, find_string_function): refactor these to
6554 * dbus/dbus-message.c: port all of this over to support
6555 interface/member fields instead of name field
6557 * dbus/dbus-object-registry.c: port over
6559 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6560 from _dbus_string_validate_name
6562 * bus/dbus-daemon-1.1: change file format for the
6563 <deny>/<allow> stuff to match new message naming scheme
6565 * bus/policy.c: port over
6567 * bus/config-parser.c: parse new format
6569 2003-08-16 Havoc Pennington <hp@pobox.com>
6571 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6574 * glib/dbus-gproxy.c: some hacking
6576 2003-08-15 Havoc Pennington <hp@redhat.com>
6578 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6580 * dbus/dbus-connection.c
6581 (dbus_connection_send_with_reply_and_block): factor out internals;
6582 change to convert any error replies to DBusError instead of
6583 returning them as a message
6585 2003-08-15 Havoc Pennington <hp@pobox.com>
6587 * dbus/dbus-connection.c,
6588 dbus/dbus-pending-call.c: Finish the pending call stuff
6590 2003-08-14 Havoc Pennington <hp@redhat.com>
6592 * dbus/dbus-pending-call.c: start on new object that will replace
6593 DBusMessageHandler and ReplyHandlerData for tracking outstanding
6596 * dbus/dbus-gproxy.c: start on proxy object used to communicate
6597 with remote interfaces
6599 * dbus/dbus-gidl.c: do the boring boilerplate in here
6601 2003-08-12 Havoc Pennington <hp@pobox.com>
6603 * bus/dispatch.c (bus_dispatch): make this return proper
6604 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6606 * dbus/dbus-errors.c (dbus_set_error): use
6607 _dbus_string_append_printf_valist
6609 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6610 (_dbus_string_append_printf): new
6612 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6615 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6616 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6617 message is unhandled.
6619 2003-08-11 Havoc Pennington <hp@pobox.com>
6621 * bus/test.c (client_disconnect_handler): change to return
6622 HANDLED (would have been REMOVE_MESSAGE)
6624 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6625 HANDLED/NOT_YET_HANDLED instead of
6626 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
6629 2003-08-10 Havoc Pennington <hp@pobox.com>
6631 * tools/dbus-send.c (main): add --type argument, for now
6632 supporting only method_call and signal types.
6634 * tools/dbus-print-message.c: print message type
6636 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6637 init connection->objects
6639 * doc/dbus-specification.sgml: fix sgml
6641 * bus/*.c: port over to object-instance API changes
6643 * test/test-service.c: ditto
6645 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6646 name, we will have to fix up the rest of the code to also handle
6648 (dbus_message_new): generic message-creation call
6649 (set_string_field): allow appending name field
6651 2003-08-06 Havoc Pennington <hp@pobox.com>
6653 * dbus/dbus-object-registry.c: implement signal connection
6656 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6658 * dbus/dbus-internals.c (_dbus_memdup): new function
6660 2003-08-02 Havoc Pennington <hp@pobox.com>
6662 * dbus/dbus-message.c (dbus_message_get_no_reply)
6663 (dbus_message_set_no_reply): add these and remove
6664 set_is_error/get_is_error
6666 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
6667 remove the ERROR flag, since there's now an ERROR type
6669 2003-08-01 Havoc Pennington <hp@pobox.com>
6671 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6674 * dbus/dbus-message.c (dbus_message_get_type): new function
6676 * doc/dbus-specification.sgml: add "type" byte to messages
6678 2003-08-01 Havoc Pennington <hp@pobox.com>
6680 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6681 a message type enum to distinguish kinds of message
6682 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
6683 that need not be replied to
6685 2003-08-01 Havoc Pennington <hp@pobox.com>
6687 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6688 (unpack_8_octets): fix no-64-bit-int bug
6690 * dbus/dbus-object-registry.c (validate_id): validate the
6691 connection ID bits, not just the instance ID.
6693 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6694 the connection-global 33 bits of the object ID
6696 * dbus/dbus-object-registry.c (info_from_entry): fill in
6697 object ID in the new way
6699 * dbus/dbus-objectid.h: rather than high/low bits, specifically
6700 define server/client/instance bits.
6702 2003-07-30 Havoc Pennington <hp@pobox.com>
6704 * dbus/dbus-connection.c (dbus_connection_register_object): fix
6707 2003-07-13 Havoc Pennington <hp@pobox.com>
6709 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6710 fields to DBusObjectVTable and DBusObjectInfo
6712 2003-07-12 Havoc Pennington <hp@pobox.com>
6714 * dbus/dbus-object-registry.c: implement unit test,
6715 fix bugs discovered in process
6717 * dbus/dbus-connection.c: remove handler_table and
6718 register_handler(), add DBusObjectRegistry usage
6720 * dbus/dbus-objectid.c (dbus_object_id_is_null)
6721 (dbus_object_id_set_null): new functions
6723 2003-07-08 Havoc Pennington <hp@pobox.com>
6725 * dbus/dbus-object.c: implement some of this
6727 * dbus/dbus-object-registry.c
6728 (_dbus_object_registry_add_and_unlock): fill in the object_id out
6730 (_dbus_object_registry_new): handle OOM
6732 2003-07-08 Havoc Pennington <hp@pobox.com>
6734 * dbus/dbus-object.h: sketch out an API for registering objects
6735 with a connection, that allows us to use as little as 24 bytes
6736 per object and lets application code represent an object in
6737 any conceivable way.
6739 * dbus/dbus-object-registry.c: implement the hard bits of the
6740 DBusConnection aspect of object API. Not yet wired up.
6742 2003-07-06 Havoc Pennington <hp@pobox.com>
6744 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6745 (_dbus_marshal_object_id): new
6746 (_dbus_demarshal_object_id): new
6747 (_dbus_marshal_get_arg_end_pos): support object ID type, and
6748 consolidate identical switch cases. Don't conditionalize handling
6749 of DBUS_TYPE_UINT64, need to handle the type always.
6750 (_dbus_marshal_validate_arg): consolidate identical cases, and
6751 handle DBUS_TYPE_OBJECT_ID
6753 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6755 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6757 2003-09-28 Havoc Pennington <hp@pobox.com>
6761 2003-09-28 Havoc Pennington <hp@pobox.com>
6763 * doc/Makefile.am (dbus-specification.html): testing a funky hack
6764 to work with Debian db2html
6766 2003-09-28 Havoc Pennington <hp@pobox.com>
6768 * configure.in: 0.13
6770 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6771 stylesheet-images for benefit of Debian
6773 Change back to using filesystem-linked sockets for the system
6774 bus, so only root can create the default system bus address.
6776 * bus/system.conf.in: change to use
6777 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6779 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6782 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6783 here, and AC_DEFINE DBUS_SYSTEM_PATH
6785 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6788 * doc/busconfig.dtd:
6791 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6793 * doc/dbus-specification.sgml:
6794 Add activation reply values.
6796 2003-08-05 Havoc Pennington <hp@redhat.com>
6798 * configure.in: 0.12
6800 2003-08-05 Anders Carlsson <andersca@codefactory.se>
6802 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6803 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6804 (add_watch), (remove_watch), (create_source):
6805 Refcount fds, fixes some reentrancy issues.
6807 2003-07-30 Havoc Pennington <hp@redhat.com>
6809 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6810 bus address to be abstract if we have abstract sockets
6814 2003-07-28 Havoc Pennington <hp@redhat.com>
6816 * bus/messagebus.in: fix to avoid processname/servicename
6817 confusion, from Michael Kearey
6818 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6820 2003-07-23 Havoc Pennington <hp@pobox.com>
6822 * dbus/dbus-message.c (dbus_message_iter_get_named):
6823 fix from Andy Hanton to remove broken "+1"
6825 2003-07-16 Havoc Pennington <hp@pobox.com>
6827 * tools/dbus-launch.c (babysit): close stdout/stderr in the
6828 babysitter process, as suggested by Thomas Leonard, so
6829 an "eval `dbus-launch --exit-with-session`" will actually
6832 2003-07-16 Havoc Pennington <hp@pobox.com>
6834 * configure.in: print out EXPANDED_* variables in the summary at
6835 the end; clean up the code that computes EXPANDED_ variables and
6836 get the ones using exec_prefix right. Should make things work
6837 when you build without --prefix
6839 2003-06-29 Havoc Pennington <hp@pobox.com>
6841 * mono/Test.cs (class Test): fire up a main loop and run it
6843 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6844 done once, the app has to do it
6846 2003-06-26 Havoc Pennington <hp@pobox.com>
6848 * mono/Connection.cs: set up connection with the glib main loop
6850 2003-07-01 Havoc Pennington <hp@redhat.com>
6852 * doc/dbus-specification.sgml: clarify the format of a type code,
6853 change suggested by Jim Blandy
6855 2003-06-29 Miloslav Trmac <mitr@volny.cz>
6858 * tools/Makefile.am: Don't assume srcdir == builddir.
6860 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6861 the allocated block.
6862 (_dbus_memory_test): New function.
6863 * dbus/dbus-test.h: Add _dbus_memory_test ().
6864 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6866 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6868 (dbus_message_new): Remove obsolete @todo.
6870 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6871 (_dbus_marshal_set_uint64): Fix comment.
6873 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6874 hardcode FIELD_REPLY_SERIAL.
6876 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6877 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6879 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6880 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6882 2003-06-24 Havoc Pennington <hp@pobox.com>
6884 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6886 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6892 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6893 * gcj/org/.cvsignore:
6894 * gcj/org/Makefile.am:
6895 * gcj/org/freedesktop/.cvsignore:
6896 * gcj/org/freedesktop/Makefile.am:
6897 * gcj/org/freedesktop/dbus/.cvsignore:
6898 * gcj/org/freedesktop/dbus/Makefile.am:
6899 * gcj/org/freedesktop/dbus/Message.java: (Message),
6901 * gcj/org/freedesktop/dbus/natMessage.cc:
6902 Fix the build system.
6904 2003-06-22 Havoc Pennington <hp@pobox.com>
6906 * mono/Connection.cs: add more bindings
6908 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6911 2003-06-22 Havoc Pennington <hp@pobox.com>
6913 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6914 Start wrapping more stuff.
6916 2003-06-22 Havoc Pennington <hp@pobox.com>
6918 * mono/Message.cs: implement Message.Wrap() that ensures we only
6919 have a single C# wrapper per DBusMessage, assuming it works which
6920 it probably doesn't.
6922 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6923 (dbus_message_free_data_slot): new
6924 (dbus_message_set_data): new
6925 (dbus_message_get_data): new
6927 2003-06-22 Havoc Pennington <hp@pobox.com>
6929 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6930 (_dbus_data_slot_allocator_alloc): rework these to keep a
6931 reference count on each slot and automatically manage a global
6932 slot ID variable passed in by address
6934 * bus/bus.c: convert to new dataslot API
6936 * dbus/dbus-bus.c: convert to new dataslot API
6938 * dbus/dbus-connection.c: convert to new dataslot API
6940 * dbus/dbus-server.c: convert to new dataslot API
6942 * glib/dbus-gmain.c: ditto
6946 * bus/connection.c: ditto
6948 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6950 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6951 after the gcj checks so that the correct configuration tags
6952 will be added to libtool.
6954 * dbus-glib-1.pc.in: No need to specify any includes since
6955 dbus-1.pc.in has those.
6957 2003-06-22 Havoc Pennington <hp@pobox.com>
6959 * mono/*, gcj/*, configure.in, Makefile.am:
6960 Check in makefiles and subdirs for mono and gcj bindings.
6961 Neither binding actually exists, just trying to get through
6962 all the build and other boring bits.
6964 2003-06-21 Philip Blundell <philb@gnu.org>
6966 * tools/dbus-monitor.1: Updated.
6968 * tools/dbus-send.1: Likewise.
6970 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6972 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6973 for hangup and error after checking read so we won't discard
6974 pending data if both hangup and read are set.
6976 2003-06-19 Philip Blundell <philb@gnu.org>
6978 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6980 * tools/dbus-send.c: Accept both --system and --session.
6982 * tools/dbus-monitor.c: Same here.
6984 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6986 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6987 from C++ (Patch by Miloslav Trmac).
6989 2003-06-15 Joe Shaw <joe@assbarn.com>
6991 * configure.in: Check for socklen_t.
6993 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6995 * test/test-segfault.c: Add #include <sys/time.h>
6997 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6998 dbus-launch needs it.
7000 2003-06-09 Havoc Pennington <hp@redhat.com>
7002 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7003 SUN_LEN, it breaks abstract socket usage
7005 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7008 2003-06-04 Havoc Pennington <hp@pobox.com>
7010 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7011 using unix:abstract=/foo, and when listening in a tmpdir
7012 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7014 * dbus/dbus-transport.c (_dbus_transport_open): support
7017 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7018 support abstract sockets
7020 * dbus/dbus-transport-unix.c
7021 (_dbus_transport_new_for_domain_socket): support abstract sockets
7023 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7024 toggle as an argument, implement abstract namespace support
7025 (_dbus_listen_unix_socket): ditto
7027 * configure.in: add --enable-abstract-sockets and implement
7028 a configure check for autodetection of the right value.
7030 2003-06-01 Havoc Pennington <hp@pobox.com>
7032 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7033 in /tmp (though on Linux this will end up being useless,
7034 when we add abstract namespace support)
7036 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7039 2003-05-28 Colin Walters <walters@verbum.org>
7041 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7043 2003-05-18 Anders Carlsson <andersca@codefactory.se>
7045 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7047 2003-05-17 Colin Walters <walters@gnu.org>
7049 * tools/dbus-send.c: Don't exit with an error code if --help was
7050 passed. Default to using the session bus instead of the system
7053 * tools/dbus-launch.c: Ditto.
7055 * tools/dbus-monitor.c: Ditto.
7057 * tools/dbus-send.1: Update with new arguments.
7059 * tools/dbus-launch.c: Emit code to export variables. New
7060 arguments -s and -c to specify shell syntax, and a bit of code to
7061 autodetect syntax. Also, allow specifying a program to run.
7063 * tools/dbus-launch.1: Update with new arguments.
7065 * tools/dbus-send.1: Ditto.
7067 * tools/dbus-monitor.1: Ditto.
7069 2003-05-17 Havoc Pennington <hp@pobox.com>
7071 * bus/config-parser.c (merge_included): merge in policies from
7072 child configuration file.
7074 * bus/policy.c (bus_policy_merge): function to merge two policies
7077 2003-05-16 Havoc Pennington <hp@redhat.com>
7079 * dbus/dbus-connection.c: disable verbose lock spew
7081 * tools/dbus-send.c: add --print-reply command line option
7083 * tools/dbus-print-message.h (print_message): new util function
7084 shared by dbus-send and dbus-monitor
7086 * tools/dbus-monitor.c (handler_func): exit on disconnect
7088 * dbus/dbus-transport-unix.c (do_reading): if the transport is
7089 disconnected, don't try to use the read_watch
7091 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7092 so we can find this bug more easily
7094 2003-05-16 Havoc Pennington <hp@redhat.com>
7096 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7097 NULL as DBusHashTable is annoyingly likely to do.
7099 2003-05-16 Colin Walters <walters@verbum.org>
7101 * tools/dbus-monitor.c: Add --session argument and usage()
7104 * tools/dbus-monitor.1: Update with new --session arg.
7106 * bus/Makefile.am (install-data-hook): Create
7107 $(libdir)/dbus-1.0/services so that the session bus is happy.
7109 2003-05-15 Havoc Pennington <hp@redhat.com>
7111 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7112 on non-x86. ifdef's are evil.
7114 2003-05-15 Havoc Pennington <hp@redhat.com>
7116 * configure.in: 0.11
7120 * bus/Makefile.am (initddir): apparently we are supposed to put
7121 init scripts in /etc/rc.d/init.d not /etc/init.d
7123 * bus/Makefile.am: remove the "you must --enable-tests to make
7124 check" as it broke distcheck
7126 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7128 2003-05-13 James Willcox <jwillcox@gnome.org>
7131 * bus/activation.c: (bus_activation_service_created),
7132 (bus_activation_activate_service):
7133 * bus/driver.c: (bus_driver_send_service_deleted),
7134 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7135 (bus_driver_send_service_acquired),
7136 (bus_driver_send_welcome_message),
7137 (bus_driver_handle_list_services):
7138 * bus/session.conf.in:
7139 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7140 (dbus_bus_service_exists), (dbus_bus_activate_service):
7143 Add some convenience API which lets you activate a service, and did a
7144 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7145 and dbus_message_get_args()
7147 2003-05-11 Havoc Pennington <hp@pobox.com>
7149 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7150 calling _dbus_marshal_validate_arg() for every byte in a byte
7153 * dbus/dbus-message-handler.c: use atomic reference counting to
7154 reduce number of locks slightly; the global lock in here sucks
7156 * dbus/dbus-connection.c
7157 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7158 update_dispatch_status that can be called with lock held; then use
7159 in a couple places to reduce locking/unlocking
7160 (dbus_connection_send): hold the lock over the whole function
7161 instead of acquiring it twice.
7163 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7165 * bus/connection.c (bus_connections_setup_connection): fix access
7166 to already-freed memory.
7168 * dbus/dbus-connection.c: keep a little cache of linked list
7169 nodes, to avoid using the global linked list alloc lock in the
7170 normal send-message case. Instead we just use the connection lock
7171 that we already have to take.
7173 * dbus/dbus-list.c (_dbus_list_find_last): new function
7175 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7176 change to use a struct for the atomic type; fix docs,
7177 they return value before increment, not after increment.
7179 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7180 (_dbus_string_append_8_aligned): new functions to try to
7181 microoptimize this operation.
7182 (reallocate_for_length): break this out of set_length(), to
7183 improve profile info, and also so we can consider inlining the
7186 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7187 strings with some preallocation, cuts down on our calls to realloc
7188 a fair bit. Though if we can get the "move entire string to empty
7189 string" optimization below to kick in here, it would be better.
7191 * dbus/dbus-string.c (_dbus_string_move): just call
7192 _dbus_string_move_len
7193 (_dbus_string_move_len): add a special case for moving
7194 an entire string into an empty string; we can just
7195 swap the string data instead of doing any reallocs.
7196 (_dbus_string_init_preallocated): new function
7198 2003-05-11 Havoc Pennington <hp@pobox.com>
7200 Write a "test-profile" that does echo client-server with threads;
7201 profile reveals lock contention, memcpy/realloc of buffers, and
7202 UTF-8 validation as hot spots. 20% of lock contention eliminated
7203 with dbus_atomic_inc/dec implementation on x86. Much remaining
7204 contention is global mempool locks for GList and DBusList.
7206 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7209 * dbus/dbus-connection.c (struct DBusConnection): use
7210 dbus_atomic_t for the reference count
7212 * dbus/dbus-message.c (struct DBusMessage): declare
7213 dbus_atomic_t values as volatile
7215 * configure.in: code to detect ability to use atomic integer
7216 operations in assembly, from GLib patch
7218 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7219 time, tired of it being wrong in threads and forked processes
7221 * glib/test-profile.c: a little program to bounce messages back
7222 and forth between threads and eat CPU
7224 * dbus/dbus-connection.c: add debug spew macros for debugging
7225 thread locks; include config.h at top; fix deadlock in
7226 dbus_connection_flush()
7228 2003-05-08 Havoc Pennington <hp@pobox.com>
7230 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7231 data from getting written, and there wasn't a good reason to
7234 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7235 dbus_verbose lines in test coverage
7236 (main): add list of functions sorted by # of untested blocks
7237 to the coverage report
7239 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7241 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7243 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7244 extend test coverage
7246 * test/data/auth/cancel.auth-script: test canceling an
7249 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7250 aren't used. in CVS history if we end up needing them.
7252 2003-05-04 Havoc Pennington <hp@pobox.com>
7254 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7257 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7258 function, which assumed length was in # of strings, not bytes
7260 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7263 * dbus/dbus-connection.c
7264 (_dbus_connection_queue_received_message): disable function for
7265 now, we are only using it in test mode
7267 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7268 remove a mistaken FIXME
7270 2003-05-04 Havoc Pennington <hp@pobox.com>
7272 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7273 unlock mutex on successful return, patch from Anders Gustafsson
7275 2003-05-04 Havoc Pennington <hp@pobox.com>
7277 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7280 2003-05-04 Havoc Pennington <hp@pobox.com>
7282 * tools/dbus-launch.c: implement
7284 * bus/main.c (main), bus/bus.c (bus_context_new):
7285 implement --print-pid and --fork
7287 2003-05-03 Havoc Pennington <hp@redhat.com>
7289 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7290 the address had no value, and add to test suite. Fix and
7291 regression test from Miloslav Trmac
7293 2003-05-03 Havoc Pennington <hp@pobox.com>
7295 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7296 watch is invalid when handled
7298 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7299 dbus-launch utility to launch the bus from a shell script. Didn't
7300 actually implement dbus-launch yet, it's just a placeholder still.
7302 2003-05-03 Havoc Pennington <hp@pobox.com>
7304 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7305 daemon; also documents daemon config file, so replaces
7306 doc/config-file.txt. Corrected some stuff from config-file.txt in
7307 the process of moving it.
7309 2003-05-03 Havoc Pennington <hp@pobox.com>
7311 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7314 2003-05-03 Colin Walters <walters@verbum.org>
7316 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7317 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7319 * Makefile.am: Update to use new .pc versioning scheme.
7321 2003-05-02 Havoc Pennington <hp@redhat.com>
7323 * bus/system.conf.in: allow send/receive to/from message bus
7326 2003-04-30 Havoc Pennington <hp@redhat.com>
7328 * configure.in: print a note when building with unit tests and
7331 2003-04-30 Havoc Pennington <hp@redhat.com>
7333 * Makefile.am: add a check-local that complains if you didn't
7334 configure with --enable-tests
7336 2003-04-29 Havoc Pennington <hp@redhat.com>
7338 * glib/dbus-gmain.c: docs cleanups
7340 * dbus/dbus-types.h: add docs on int64 types
7342 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7343 public API docs section
7345 2003-04-29 Havoc Pennington <hp@redhat.com>
7347 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7348 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7349 parallel install API version, not with the D-BUS package version.
7351 * HACKING: move some of README over here
7353 * README: updates, and document API/ABI policy
7355 * configure.in: reindentation
7357 2003-04-29 Havoc Pennington <hp@redhat.com>
7359 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7360 to use this library" to be sure people have the right
7363 2003-04-28 Havoc Pennington <hp@redhat.com>
7365 * configure.in: add --enable-docs which by default is auto yes if
7366 doxygen and db2html found, no otherwise; but can be forced on/off
7368 * doc/Makefile.am: conditionalize whether to build docs on
7371 2003-04-28 Havoc Pennington <hp@redhat.com>
7373 * configure.in: 0.10
7377 * bus/system.conf.in: add <includedir>system.d</includedir>
7379 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7380 username was provided but not uid
7382 * bus/config-parser.c (struct BusConfigParser): keep track of
7383 whether the parser is toplevel or was included; change some
7384 of the error handling if it's included.
7386 2003-04-27 Havoc Pennington <hp@pobox.com>
7390 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7391 report correct status if we finish processing authentication
7392 inside this function.
7394 * bus/activation.c (try_send_activation_failure): use
7395 bus_transaction_send_error_reply
7397 * bus/connection.c (bus_connection_get_groups): return an error
7398 explaining the problem
7400 * bus/bus.c (bus_context_check_security_policy): implement
7401 restriction here that inactive connections can only send the
7402 hello message. Also, allow bus driver to send anything to
7405 * bus/connection.c (bus_connection_complete): create the
7406 BusClientPolicy here instead of on-demand.
7407 (bus_connection_get_policy): don't return an error
7409 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7410 sender field in message being replied to
7412 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7413 causing it to return FALSE always
7415 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7416 we checked sender rather than destination
7418 2003-04-25 Havoc Pennington <hp@redhat.com>
7420 test suite is slightly hosed at the moment, will fix soon
7422 * bus/connection.c (bus_connections_expire_incomplete): fix to
7423 properly disable the timeout when required
7424 (bus_connection_set_name): check whether we can remove incomplete
7425 connections timeout after we complete each connection.
7427 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7428 probably still broken.
7430 * bus/services.c (bus_registry_acquire_service): implement max
7431 number of services owned, and honor allow/deny rules on which
7432 services a connection can own.
7434 * bus/connection.c (bus_connection_get_policy): report errors here
7436 * bus/activation.c: implement limit on number of pending
7439 2003-04-25 Havoc Pennington <hp@redhat.com>
7441 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7442 where we used >= 0 instead of != DBUS_UID_UNSET.
7444 2003-04-25 Havoc Pennington <hp@redhat.com>
7446 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7447 were toggled without add/remove, fix from Anders Gustafsson
7449 2003-04-24 Havoc Pennington <hp@redhat.com>
7451 * test/data/valid-config-files/basic.conf: add <limit> tags to
7454 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7455 <limit> tag in configuration file.
7457 2003-04-24 Havoc Pennington <hp@redhat.com>
7459 * bus/dispatch.c: somehow missed some name_is
7461 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7462 (_dbus_timeout_set_interval): new
7464 * bus/connection.c (bus_connections_setup_connection): record time
7465 when each connection is first set up, and expire them after the
7466 auth timeout passes.
7468 2003-04-24 Havoc Pennington <hp@redhat.com>
7470 * dbus/dbus-message.c (dbus_message_name_is): rename
7471 (dbus_message_service_is): rename
7472 (dbus_message_sender_is): rename
7473 (dbus_message_get_service): rename
7475 2003-04-24 Havoc Pennington <hp@redhat.com>
7477 * configure.in: add --enable-checks
7479 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7481 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7482 to use thread locks.
7483 (_dbus_connection_handler_destroyed_locked): move some private
7484 functions into proper docs group
7486 * dbus/dbus-internals.h: add _dbus_return_if_fail,
7487 _dbus_return_val_if_fail
7489 Throughout: use dbus_return_if_fail
7491 2003-04-23 James Willcox <jwillcox@gnome.org>
7494 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7495 (dbus_connection_setup_with_g_main),
7496 (dbus_server_setup_with_g_main):
7497 * glib/test-dbus-glib.c: (main):
7498 * glib/test-thread-client.c: (main):
7499 * glib/test-thread-server.c: (new_connection_callback), (main):
7500 * tools/dbus-monitor.c: (main):
7502 Added a GMainContext argument to dbus_connection_setup_with_g_main()
7503 and dbus_server_setup_with_g_main().
7505 2003-04-20 Havoc Pennington <hp@pobox.com>
7507 * doc/dbus-specification.sgml: document the restrictions on
7508 message and service names
7510 2003-04-22 Havoc Pennington <hp@redhat.com>
7512 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7513 support, and do some code cleanups to share more code and
7514 speed up array marshal/demarshal.
7516 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7518 * configure.in: generate dbus-arch-deps.h
7520 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7523 2003-04-22 Havoc Pennington <hp@redhat.com>
7525 * test/data/valid-messages/opposite-endian.message: fix test
7526 to use proper type for rply field
7528 * test/data/invalid-messages: add tests for below validation
7530 * dbus/dbus-message.c (decode_header_data): validate field types,
7531 and validate that named fields are valid names
7532 (decode_name_field): consider messages in the
7533 org.freedesktop.Local. namespace to be invalid.
7535 * dbus/dbus-string.c (_dbus_string_validate_name): new
7537 2003-04-19 Havoc Pennington <hp@pobox.com>
7539 * bus/driver.c (bus_driver_handle_hello): check limits and
7540 return an error if they are exceeded.
7542 * bus/connection.c: maintain separate lists of active and inactive
7543 connections, and a count of each. Maintain count of completed
7544 connections per user. Implement code to check connection limits.
7546 * dbus/dbus-list.c (_dbus_list_unlink): export
7548 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7549 number of bytes in the message queue for a connection
7551 2003-04-18 Havoc Pennington <hp@pobox.com>
7553 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7555 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7558 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7559 on realloc be sure to update the pointer in the keyring
7561 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7562 offset to avoid writing to unallocated memory
7564 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7565 try the next mechanism, so we properly handle OOM
7567 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7569 (_dbus_keyring_new): fix OOM bug
7570 (_dbus_keyring_new_homedir): always set error; impose a maximum
7571 number of keys we'll load from the file, mostly to speed up the
7572 test suite and make its OOM checks more useful, but also for
7575 * dbus/dbus-auth.c (process_error_server): reject authentication
7576 if we get an error from the client
7577 (process_cancel): on cancel, send REJECTED, per the spec
7578 (process_error_client): send CANCEL if we get an error from the
7581 2003-04-18 Havoc Pennington <hp@pobox.com>
7583 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7586 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7589 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7590 about DBUS_TEST_HOMEDIR once
7592 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7595 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7596 config file so we test the right thing
7598 Throughout: assorted docs improvements
7600 2003-04-18 Havoc Pennington <hp@pobox.com>
7602 * glib/dbus-gmain.c: adapt to watch changes
7604 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7606 * dbus/dbus-server.h: remove dbus_server_handle_watch
7608 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7610 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7611 like DBusTimeout, so we don't need dbus_connection_handle_watch
7614 2003-04-17 Havoc Pennington <hp@redhat.com>
7616 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7617 database usage so it all goes via the DBusUserDatabase cache.
7619 2003-04-17 Havoc Pennington <hp@redhat.com>
7621 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7622 there was an OOM watch we skipped, we always return TRUE so we
7623 iterate again to have a look at it again. Fixes test suite hang.
7624 Code rearrangement also lets us lose some memset and only iterate
7625 over callbacks once.
7627 * bus/driver.c (bus_driver_handle_message): sense of test for
7630 2003-04-16 Havoc Pennington <hp@pobox.com>
7632 * doc/dbus-specification.sgml: make spec say serials are unsigned
7634 * dbus/dbus-message.h: change message serials to unsigned
7636 * dbus/dbus-connection.c: adapt to message serials being unsigned
7638 2003-04-15 Havoc Pennington <hp@pobox.com>
7640 * bus/bus.c: create and keep around a shared DBusUserDatabase
7643 * bus/connection.c (bus_connection_get_groups): don't cache
7644 groups for user in the connection object, since user database
7645 object now does that.
7647 2003-04-16 Havoc Pennington <hp@redhat.com>
7649 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7650 list of size counters
7651 (_dbus_message_loader_putback_message_link): put back a popped link
7653 * dbus/dbus-connection.c
7654 (dbus_connection_set_max_live_messages_size): rename
7656 (dbus_connection_get_outgoing_size): get size of outgoing
7658 (_dbus_connection_set_connection_counter): remove this cruft
7660 2003-04-14 Havoc Pennington <hp@redhat.com>
7662 * dbus/dbus-userdb.c: user database abstraction, mostly to get
7663 caching, but at some point we might want to be able to use a
7666 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7667 SHA1 conf file to test the sha1 auth mechanism, since the regular
7668 test always uses EXTERNAL when available.
7671 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7672 add conf file that requires use of sha1 auth
7674 2003-04-13 Havoc Pennington <hp@pobox.com>
7676 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7677 from Philip Blundell to send messages and monitor them.
7679 2003-04-13 Havoc Pennington <hp@pobox.com>
7681 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7684 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7687 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7688 fix to only recover unused bytes if we're already authenticated
7689 (_dbus_transport_get_is_authenticated): fix to still mark us
7690 authenticated if there are unused bytes.
7692 * bus/dispatch.c: implement security policy checking
7694 * bus/connection.c (bus_transaction_send_from_driver): new
7696 * bus/bus.c (bus_context_check_security_policy): new
7698 * bus/dispatch.c (send_service_nonexistent_error): delete this,
7699 now we just set the DBusError and it gets converted to an error
7702 * bus/connection.c (allow_user_function): enable code using actual
7703 data from the config file
7705 * bus/policy.c (list_allows_user): handle wildcard rules for
7706 user/group connection perms
7708 2003-04-13 Havoc Pennington <hp@pobox.com>
7710 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7712 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7714 * bus/policy.c (bus_policy_append_mandatory_rule)
7715 (bus_policy_append_default_rule, bus_policy_append_user_rule)
7716 (bus_policy_append_group_rule): new functions
7718 2003-04-12 Havoc Pennington <hp@pobox.com>
7720 * bus/config-parser.c (bus_config_parser_new): fix a memleak
7722 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7723 the pid/gid/uid, just for paranoia.
7725 * test/break-loader.c (randomly_do_n_things): find a byte
7726 containing a type code, and randomly change it to a different
7729 2003-04-12 Havoc Pennington <hp@pobox.com>
7731 * bus/policy.h: change BusPolicy to be the thing from the config
7732 file, and rename old BusPolicy to BusClientPolicy
7734 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7735 match change in how policy works
7737 * dbus/dbus-internals.h: mark assert_not_reached as
7738 __attribute((noreturn))__
7740 2003-04-11 Havoc Pennington <hp@redhat.com>
7742 * doc/dbus-specification.sgml: fix a spot with the wrong name for
7743 the broadcast service. Use boolean return for ServiceExists.
7745 2003-04-11 Havoc Pennington <hp@redhat.com>
7747 * configure.in: add another directory to look for qt in.
7749 2003-04-11 Havoc Pennington <hp@redhat.com>
7751 * AUTHORS: add Colin Walters
7753 2003-04-11 Havoc Pennington <hp@redhat.com>
7759 2003-04-11 Havoc Pennington <hp@redhat.com>
7761 * bus/messagebus.in: remove pid file when stopping the
7762 message bus, since the bus won't have privileges to remove it
7765 2003-04-11 Havoc Pennington <hp@redhat.com>
7767 * bus/bus.c (bus_context_new): move credentials change after
7770 2003-04-11 Havoc Pennington <hp@pobox.com>
7772 * test/decode-gcov.c: add "below average functions" to the
7773 coverage report, and change how some of the code works.
7775 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7776 not in the coverage stats.
7778 * test/test-service.c (main): use _dbus_verbose not fprintf in a
7779 couple places so running the test suite doesn't result in megaspam.
7781 2003-04-11 Havoc Pennington <hp@pobox.com>
7783 * bus/dispatch.c (check_existent_service_activation): accept a no
7784 memory error in a place we didn't before
7786 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7787 in case the first one failed," since the test suite is less
7790 2003-04-10 Havoc Pennington <hp@pobox.com>
7792 * bus/dispatch.c (check_segfault_service_activation): add test
7793 for launching an executable that just crashes.
7795 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7796 don't leave a million cores. We'll see how portable this is.
7798 2003-04-10 Havoc Pennington <hp@pobox.com>
7800 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7801 the possible parent failures before we fork, so that we don't
7802 fail to create a babysitter after creating the child.
7804 * bus/activation.c (bus_activation_activate_service): kill child
7805 if we don't successfully complete the activation.
7807 2003-04-10 Havoc Pennington <hp@redhat.com>
7809 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7810 the connection if it's disconnected
7812 * bus/activation.c (bus_activation_service_created): use new
7813 transaction features to roll back removal of pending activation if
7814 we don't successfully create the service after all. Don't remove
7815 pending activation if the function fails.
7817 * dbus/dbus-list.c (_dbus_list_insert_before_link)
7818 (_dbus_list_insert_after_link): new code to facilitate
7821 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7822 new functionality, so we can preallocate the ability to insert
7825 * bus/connection.c (bus_transaction_add_cancel_hook): new function
7826 allowing us to put custom hooks in a transaction to be used for
7827 cancelling said transaction
7829 * doc/dbus-specification.sgml: add some discussion of secondary
7830 service owners, and disallow zero-length service names
7832 * bus/services.c (bus_registry_acquire_service): new function,
7833 splits out part of bus_driver_handle_acquire_service() and fixes
7834 a bug where we didn't remove the service doing the acquiring
7835 from the secondary queue if we failed to remove the current owner
7836 from the front of the queue.
7838 2003-04-10 Alexander Larsson <alexl@redhat.com>
7840 * doc/dbus-specification.sgml:
7841 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7843 2003-04-10 Alexander Larsson <alexl@redhat.com>
7848 Added files to cvsignore
7850 * dbus/dbus-message.h:
7851 * dbus/dbus-message.c: (dbus_message_iter_get_named):
7852 Make get_named() take two out argument and return a boolean.
7853 (dbus_message_iter_get_args_valist):
7854 Update usage of get_named().
7855 (dbus_message_iter_append_byte):
7857 (dbus_message_iter_append_named)
7859 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7862 2003-04-10 Alexander Larsson <alexl@redhat.com>
7864 * dbus/dbus-marshal.[ch]:
7865 Add array_type_pos argument to _dbus_marshal_validate_arg.
7866 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7868 * dbus/dbus-message.[ch]:
7869 Multi-dimensional arrays have full type specification in the
7870 outermost array. Iter code re-arranged to handle this.
7871 Added some more iter tests.
7873 * doc/dbus-specification.sgml:
7876 Update new array encoding description.
7877 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7879 * test/data/invalid-messages/array-with-mixed-types.message:
7880 * test/data/valid-messages/array-of-array-of-uint32.message:
7881 Change to the new array format.
7883 * test/data/invalid-messages/too-short-dict.message:
7886 * test/data/valid-messages/recursive-types.message:
7887 Fix up and extend test.
7889 2003-04-10 Havoc Pennington <hp@pobox.com>
7891 * bus/dispatch.c: lots of fixes
7893 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7894 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7895 that was crack, broke the test service.
7897 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7898 handling to avoid piling up errors if we get a failure on the
7901 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7902 pid in assertion failures.
7904 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7905 to some fixed size of file descriptor array. Don't return TRUE
7906 anytime a timeout exists, that led to lots of busy loop silliness
7909 2003-04-09 Havoc Pennington <hp@redhat.com>
7911 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7912 I'd checked this in earlier but hadn't.
7914 2003-04-09 Havoc Pennington <hp@redhat.com>
7916 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7917 the activation test (man this is getting old!)
7919 2003-04-09 Havoc Pennington <hp@redhat.com>
7921 * test/test-utils.c: use dispatch status function to fix this up
7923 * bus/connection.c (connection_watch_callback): don't dispatch
7925 (connection_timeout_callback): don't dispatch from here
7926 (bus_connections_setup_connection): set the dispatch status function
7927 (bus_connection_disconnected): unset it
7929 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7930 used to add a connection to be dispatched
7931 (_dbus_loop_iterate): do the dispatching at the end of each
7934 * dbus/dbus-connection.c
7935 (dbus_connection_set_dispatch_status_function): new function
7936 allowing us to fix up main loop usage
7937 (_dbus_connection_last_unref): free all the various function
7939 (dbus_connection_dispatch): call the DispatchStatusFunction
7940 whenever this function returns
7941 (dbus_connection_handle_watch): call DispatchStatusFunction
7942 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7943 (reply_handler_timeout): call DispatchStatusFunction
7944 (dbus_connection_flush): call DispatchStatusFunction
7946 2003-04-09 Havoc Pennington <hp@redhat.com>
7948 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7951 * bus/dispatch.c (check_service_activated): fix bug in test
7953 * dbus/dbus-mainloop.c (check_timeout): fix this up
7955 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7956 verbose output so we can sort out output from different processes,
7957 e.g. in the activation case.
7959 2003-04-08 Colin Walters <walters@gnu.org>
7961 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7963 (bus_context_new): Set it.
7964 (bus_context_unref): Use it to delete the pid file.
7966 2003-04-08 Havoc Pennington <hp@redhat.com>
7968 * test/data/invalid-messages/array-with-mixed-types.message:
7969 regression test that fails for the moment
7971 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7972 tests for convenience
7974 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7975 array of nil, it broke things.
7977 * test/data/invalid-messages/array-of-nil.message: regression test
7979 * test/data/valid-messages/array-of-array-of-uint32.message:
7980 happened to write this so added it to suite
7982 2003-04-08 Havoc Pennington <hp@redhat.com>
7984 * bus/driver.c (bus_driver_handle_acquire_service): init
7985 retval/reply before checking name
7987 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7988 recursion depth argument
7990 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7991 in the public struct for future extension
7993 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7996 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7999 * doc/dbus-specification.sgml: fix typo
8001 2003-04-08 Alexander Larsson <alexl@redhat.com>
8003 Implemented recursive types, named types and new-style iters
8006 * glib/test-thread-client.c: (thread_func):
8007 * glib/test-thread-server.c: (handle_test_message):
8008 * test/test-service.c: (handle_echo):
8017 * dbus/dbus-internals.c: (_dbus_type_to_string):
8018 Update for new types.
8020 * dbus/dbus-marshal.[ch]:
8021 Implement recursive types and the new marshalling format.
8022 Remove hardcoded dict marshalling.
8023 Marshal named types.
8025 * dbus/dbus-message-builder.c:
8027 Remove references to old types
8029 * dbus/dbus-message.[ch]:
8030 New non-refcounted iter API that supports recursive iters.
8031 Use iters for appending, including support for recursive
8033 Add byte and named type support.
8034 Update everything to new marshalling formats.
8035 Add tests for new API.
8037 * dbus/dbus-protocol.h:
8038 Remove old array types.
8039 Add types: BYTE, ARRAY, DICT, NAMED
8041 * dbus/dbus-string.c:
8042 * dbus/dbus-sysdeps.c:
8043 Make parse_double locale safe.
8045 * dbus/dbus-test-main.c:
8051 * doc/dbus-specification.sgml:
8054 * test/data/incomplete-messages/missing-body.message:
8055 * test/data/invalid-messages/bad-boolean.message:
8056 * test/data/invalid-messages/bad-boolean-array.message:
8057 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8058 * test/data/invalid-messages/boolean-has-no-value.message-raw:
8059 * test/data/invalid-messages/too-short-dict.message:
8060 * test/data/valid-messages/dict-simple.message:
8061 * test/data/valid-messages/dict.message:
8062 * test/data/valid-messages/emptiness.message:
8063 * test/data/valid-messages/lots-of-arguments.message:
8064 * test/data/valid-messages/no-padding.message:
8065 * test/data/valid-messages/recursive-types.message:
8066 Add missing NAME fields
8067 Fix up dicts & arrays
8069 * test/data/invalid-messages/dict-with-nil-value.message:
8070 Removed, this is not invalid anymore.
8072 * test/data/valid-messages/recursive-types.message:
8073 Add new test for deeply recursive types.
8075 2003-04-07 Havoc Pennington <hp@pobox.com>
8077 * bus/driver.c (bus_driver_handle_acquire_service): return an
8078 error if you try to acquire a service that starts with ':'
8080 2003-04-07 Havoc Pennington <hp@redhat.com>
8082 * doc/dbus-specification.sgml: require that base service names
8083 start with ':' and that the base service is created/deleted
8084 as first and last things a connection does on the bus
8086 * bus/dispatch.c (check_existent_service_activation): lots more
8087 work on the activation test; it doesn't fully pass yet...
8089 * test/test-service.c (main): fix so we don't memleak the
8090 connection to the message bus
8091 (filter_func): accept a message asking us to exit
8093 2003-04-06 Havoc Pennington <hp@pobox.com>
8095 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8098 * configure.in: fixes to Qt detection from Colin Walters
8100 * doc/Makefile.am: Only remove generated docbook dirs if they
8101 exist, from Colin Walters
8103 * dbus/dbus-bus.c: change how we set well-known connections to
8104 NULL, so that it works if a single connection is stored in
8105 two well-known array slots.
8107 * test/Makefile.am: remove a lot of stuff that isn't immediately
8108 useful, it's in CVS history if we want it.
8110 * test/test-service.c: use dbus-mainloop instead of that
8113 2003-04-06 Havoc Pennington <hp@pobox.com>
8115 * dbus/Makefile.am: split lists of sources into stuff that goes in
8116 the library, util functions that go in the lib and are also used
8117 elsewhere, and util functions that are used in tests/daemon but
8118 don't go in the lib.
8120 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8121 here so it can be used in test binaries also
8123 2003-04-06 Havoc Pennington <hp@pobox.com>
8125 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8126 here in the parent process, so we can return an error if it
8127 fails. Also, move some of the code into the child so the parent
8128 is less hosed if we fail midway through.
8130 * bus/bus.c (bus_context_new): move pidfile detection further up
8131 in the function, before we start overwriting sockets and such.
8133 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8135 * configure.in: add --with-system-pid-file and --with-system-socket
8137 2003-04-06 Colin Walters <walters@verbum.org>
8139 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8141 * bus/system.conf.in: Declare a pidfile.
8143 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8144 create one (if appropriate).
8146 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8147 (struct BusConfigParser) [pidfile]: New.
8148 (element_type_to_name, merge_included, start_busconfig_child)
8149 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8150 (bus_config_parser_unref): Free it.
8151 (bus_config_parser_get_pidfile): New function.
8153 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8155 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8157 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8159 * dbus/dbus-sysdeps.h: Prototype it.
8161 2003-04-06 Havoc Pennington <hp@pobox.com>
8163 * bus/bus.c (bus_context_new): print the address in here, rather
8164 than in main(), because we need to do it before forking the daemon
8166 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8167 on the service nonexistent error
8169 * bus/driver.c (bus_driver_handle_acquire_service): set the
8170 sender on the AcquireService reply
8172 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8173 server also listen on a UNIX socket so services can connect to it.
8175 2003-04-06 Havoc Pennington <hp@pobox.com>
8177 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8178 so it detects deadlocks and also we actually init threads when
8181 2003-04-06 Havoc Pennington <hp@pobox.com>
8183 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8184 save the domain socket name, and unlink it when we disconnect the
8185 server. Means that at least when we exit normally, we won't leave
8186 a bunch of junk in /tmp
8188 * dbus/dbus-transport-unix.c
8189 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8190 memory management). (I was making a real change here but then
8193 2003-04-06 Havoc Pennington <hp@pobox.com>
8195 * bus/bus.c (bus_context_new): fix wrong handling of
8196 server_data_slot_unref() in the error case.
8198 * dbus/dbus-internals.h (_dbus_assert): change so it passes
8199 "(condition) != 0" to _dbus_real_assert so that
8200 "_dbus_assert (pointer)" doesn't cause a warning
8202 * bus/main.c (main): accept --print-address option to print out
8203 the message bus address
8205 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8207 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8208 "tmpdir" option to unix: address on client side
8210 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8213 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8214 we can use to create sockets in the test suite.
8216 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8217 cleanly. To be used for testing.
8219 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8221 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8223 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8224 handle trying to call this when there's no servers active
8226 2003-04-05 Havoc Pennington <hp@pobox.com>
8232 2003-04-05 Havoc Pennington <hp@pobox.com>
8234 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8235 crash on startup. Need to get "try starting the daemon"
8236 in the test suite I guess. ;-)
8238 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8239 tracked the number of open connections; it's better done in
8240 application-specific code as you want it to span all servers etc.
8242 2003-04-05 Havoc Pennington <hp@pobox.com>
8244 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8245 patch from Colin Walters
8247 2003-04-05 Havoc Pennington <hp@pobox.com>
8249 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8250 reality; in fact multiple mechanisms are allowed.
8252 * dbus/dbus-internals.c (_dbus_real_assert)
8253 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8254 _dbus_assert_not_reached() into functions, so that they don't show
8255 up in basic block counts for test coverage, and don't use up as
8256 much disk space. Does mean slower execution speed though, so
8257 assumes --disable-asserts is the normal production case.
8259 2003-04-05 Havoc Pennington <hp@pobox.com>
8261 * test/Makefile.am (dist-hook): also dist *.in files
8267 2003-04-05 Havoc Pennington <hp@pobox.com>
8269 * dbus/dbus-string.c: docs warning
8271 * dbus/dbus-spawn.c: missing docs
8273 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8275 2003-04-05 Havoc Pennington <hp@pobox.com>
8277 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8280 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8281 to -1 once we've reaped the babysitter
8282 (_dbus_babysitter_handle_watch): do as much work as we can, not
8285 * bus/activation.c: add code using DBusBabysitter so that we
8286 handle it when a service fails to start up properly.
8287 (bus_activation_service_created): don't remove the activation
8288 entries as we go, just let them get removed when we free the pending
8289 activation. Unref reply messages after sending them.
8291 2003-04-05 Havoc Pennington <hp@pobox.com>
8293 * test/decode-gcov.c (main): print per-directory stats in the report
8295 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8297 2003-04-05 Havoc Pennington <hp@pobox.com>
8299 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8301 * test/decode-gcov.c: hack up a little program to suck data
8302 out of gcov files. Yes this is sort of silly.
8304 * configure.in: define something in config.h and do an
8305 AM_CONDITIONAL when gcov is enabled
8307 2003-04-04 Havoc Pennington <hp@redhat.com>
8309 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8310 return a "babysitter" object that is used to monitor the status of
8311 the spawned process and reap it when required.
8313 * test/test-segfault.c, test/test-exit.c,
8314 test/test-sleep-forever.c: binaries that do various lame things,
8315 used in the test suite.
8317 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8319 2003-04-03 Havoc Pennington <hp@pobox.com>
8321 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8322 in preparation for modifying it, dbus-sysdeps is getting
8325 2003-04-03 Havoc Pennington <hp@redhat.com>
8327 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8330 * bus/*.[hc]: adapt to mainloop change
8332 2003-04-03 Havoc Pennington <hp@redhat.com>
8334 * bus/activation.c (load_directory): fix up memleaks
8335 (bus_activation_entry_free): free the entry
8337 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8338 we get one from the message bus; fix memleaks.
8340 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8342 2003-04-03 Havoc Pennington <hp@pobox.com>
8344 * bus/config-parser.c (bus_config_parser_unref): free
8345 list of mechanisms, bug discovered by test suite enhancements
8346 (putting system.conf and session.conf into suite)
8348 * test/Makefile.am, test/test-service.c: add placeholder for a
8349 test service that we'll activate as part of test suite. Doesn't
8352 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8353 setting NULL value, and use system malloc not dbus_malloc()
8354 when we have unavoidable memleakage.
8356 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8357 didn't work, and support DBUS_BUS_ACTIVATION.
8359 * bus/activation.c (child_setup): pass our well-known bus type to
8362 * bus/config-parser.c: support <type> to specify well-known type
8364 * doc/dbus-specification.sgml: document the env variables to
8365 locate well-known buses and find service activator
8367 2003-04-02 Havoc Pennington <hp@redhat.com>
8369 * test/Makefile.am (all-local): add a rule to copy tests to
8370 builddir, so we can have generated tests. Use this to remove the
8371 silly hack for testing system.conf and session.conf. Will use this
8372 shortly to generate .service files pointing to test binaries.
8374 2003-04-02 Havoc Pennington <hp@redhat.com>
8376 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8377 current alloc and needed new length, not max of the doubled
8378 allocation and needed new length. Also, when building tests,
8379 don't do the double-allocation stuff, just realloc every time.
8381 2003-04-02 Havoc Pennington <hp@redhat.com>
8383 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8385 (_dbus_string_get_dirname): new
8386 (_dbus_sysdeps_test): new
8387 (_dbus_directory_open): include dirnames in error messages
8389 * bus/config-parser.c: interpret <include> and <includedir> and
8390 <servicedir> relative to config file location if the given
8391 filename is not absolute.
8393 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8395 2003-04-02 Havoc Pennington <hp@redhat.com>
8397 * bus/connection.c (bus_transaction_send_error_reply): set sender
8398 service for the error, and unref the reply on success
8400 * bus/activation.c: convert to use BusTransaction so OOM can be
8402 (bus_activation_service_created): set sender of the message
8404 2003-04-01 Havoc Pennington <hp@redhat.com>
8406 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8407 <includedir> (at least mostly)
8409 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8410 first, then the user ID
8412 2003-04-01 Havoc Pennington <hp@pobox.com>
8414 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8417 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8419 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8421 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8422 socket 0777, and unlink any existing socket.
8424 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8425 the configuration file so specifies; set up auth mechanism
8428 * bus/config-parser.c (bus_config_parser_content): add support
8429 for <fork> option and fill in code for <auth>
8431 * bus/system.conf.in: add <fork/> to default configuration,
8432 and limit auth mechanisms to EXTERNAL
8434 * doc/config-file.txt (Elements): add <fork>
8436 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8437 (_dbus_change_identity): new function
8439 2003-03-31 Havoc Pennington <hp@redhat.com>
8441 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8442 (_dbus_listen_unix_socket): fix off-by-one error in null
8443 termination spotted by Nalin
8445 2003-03-31 Havoc Pennington <hp@redhat.com>
8447 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8448 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8449 having a real home directory available.
8451 2003-03-31 Havoc Pennington <hp@redhat.com>
8453 * bus/Makefile.am (install-data-hook): create /var/run/dbus
8455 * bus/messagebus.in: add init script for Red Hat /etc/init.d
8457 * configure.in: add support for specifying a style of init script
8460 2003-03-31 Havoc Pennington <hp@redhat.com>
8462 Fix some annoying DBusString API and fix all affected code.
8464 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8466 (_dbus_string_get_data): change to return string instead of using
8468 (_dbus_string_get_const_data): ditto
8469 (_dbus_string_get_data_len): ditto
8470 (_dbus_string_get_const_data_len): ditto
8472 2003-03-31 Havoc Pennington <hp@redhat.com>
8474 * bus/main.c (main): fix up the command line arguments to be nicer
8476 2003-03-31 Havoc Pennington <hp@redhat.com>
8478 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8479 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8480 final location that lands in the config file
8482 * bus/config-loader-expat.c (bus_config_load): fix type of
8485 * doc/TODO: remove TODO item for dbus_bus_get()
8487 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8489 2003-03-31 Havoc Pennington <hp@pobox.com>
8491 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8492 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8493 argument since they are always client side
8495 * dbus/dbus-server.c (dbus_server_get_address): new function
8497 * bus/main.c (main): take the configuration file as an argument.
8499 * test/data/valid-config-files/debug-allow-all.conf: new file to
8500 use with dispatch.c tests for example
8502 * bus/test-main.c (main): require test data dir
8504 * bus/bus.c (bus_context_new): change this to take a
8505 configuration file name as argument
8507 * doc/config-file.txt (Elements): add <servicedir>
8509 * bus/system.conf, bus/session.conf: new files
8511 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8512 well-known socket if none set
8514 * configure.in: create system.conf and session.conf
8516 2003-03-30 Havoc Pennington <hp@pobox.com>
8518 * bus/config-parser.c: hacking
8520 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8521 to shut down, since it could cause weirdness with the DBusList
8524 * dbus/dbus-list.c (_dbus_list_test): add tests for the
8525 link-oriented stack routines
8526 (alloc_link): free the mempool if the first alloc from it fails
8528 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8530 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8532 (_dbus_string_skip_white): new
8534 * doc/config-file.txt (Elements): add <includedir>
8536 2003-03-28 Havoc Pennington <hp@pobox.com>
8538 * dbus/dbus-string.c (_dbus_string_copy_data_len)
8539 (_dbus_string_copy_data): new functions
8541 2003-03-28 Anders Carlsson <andersca@codefactory.se>
8543 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8547 * dbus/dbus-memory.c:
8550 2003-03-28 Havoc Pennington <hp@pobox.com>
8552 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8553 I think it may have just been superstition. Not sure.
8555 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8556 failures that were not being handled.
8558 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8560 * dbus/dbus-memory.c: add ability to set number of mallocs in a
8561 row that will fail on out-of-memory.
8563 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8564 function for testing out-of-memory handling.
8566 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8567 allocation functions, they do map exactly to the expat ones.
8569 2003-03-27 Havoc Pennington <hp@redhat.com>
8571 * bus/config-loader-libxml.c (bus_config_load): add another error
8574 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8577 Add note about automatic service activation.
8579 * doc/dbus-specification.sgml:
8580 Rename the specification and clarify a few things.
8582 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8585 * dbus/dbus-address.c:
8587 * dbus/dbus-marshal.c:
8588 * dbus/dbus-server-debug-pipe.c:
8589 * dbus/dbus-transport-unix.c:
8590 Fix documentation warnings.
8592 2003-03-26 Havoc Pennington <hp@pobox.com>
8594 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8595 after every test so it's quick and easy to see which leaked, and
8596 so we test multiple dbus_shutdown() calls
8598 * configure.in: change configure.in XML stuff to also support
8601 * config-loader-libxml.c: some hacking
8603 * config-loader-expat.c: some hacking
8605 * config-parser.c: some hacking, plus tests
8607 2003-03-25 Havoc Pennington <hp@redhat.com>
8609 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8611 * configure.in: add --with-xml option to specify XML library,
8612 right now only libxml is supported.
8614 * bus/config-loader-libxml.c, config-parser.c: sync some minor
8615 nonworking code between home and work, still just stubs
8617 2003-03-24 Havoc Pennington <hp@redhat.com>
8619 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8622 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8623 NULL argument for "message" if the error is a well-known one,
8624 fill in a generic message in this case.
8626 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8629 * bus/test.c (bus_test_flush_bus): add
8631 * bus/policy.c (bus_policy_test): test code stub
8633 2003-03-24 Havoc Pennington <hp@pobox.com>
8635 * bus/connection.c (bus_connections_setup_connection): set up
8636 the "can this user connect" function, but it always returns
8637 TRUE until we have a config file parser so we can have a config
8638 file that allows connections.
8640 2003-03-23 Havoc Pennington <hp@pobox.com>
8642 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8643 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8644 the mutex, so we can check for proper memory management
8647 * dbus/dbus-dataslot.c: remove the mutex from
8648 DBusDataSlotAllocator and lock it manually when using it,
8649 to simplify fitting it into the global slots framework.
8651 * dbus/dbus-threads.c (init_static_locks): rework how we're
8652 handling global locks so they are easily shut down.
8654 * bus/policy.c (bus_policy_append_rule): fix
8656 * bus/test-main.c (main): check for memleaks
8658 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8659 test suite check for memleaks
8661 * dbus/dbus-memory.c: add support in test mode for tracking
8662 number of outstanding blocks
8664 2003-03-23 Havoc Pennington <hp@pobox.com>
8666 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8669 * dbus/dbus-hash.h: add ULONG hash keys
8671 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8672 (_dbus_get_group_id): new function
8674 2003-03-20 Havoc Pennington <hp@redhat.com>
8676 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8678 (dbus_connection_get_unix_user): new function
8680 2003-03-20 Havoc Pennington <hp@pobox.com>
8682 * bus/connection.c (bus_connection_send_oom_error): assert that
8683 message has a sender
8684 (connection_execute_transaction): ditto
8685 (bus_connection_preallocate_oom_error): fix to set the sender, and
8686 set recipient to the destination service, not the bus driver
8688 * bus/policy.c: hacking
8690 * dbus/dbus-message.c (dbus_message_service_is): new function
8691 (dbus_message_sender_is): new
8693 2003-03-19 Havoc Pennington <hp@redhat.com>
8695 * bus/policy.c: start sketching code for policy restrictions on
8696 what connections can do.
8698 2003-03-18 Havoc Pennington <hp@redhat.com>
8700 * doc/TODO: some notes on high-level todo items. Little nitpick
8701 stuff is all in @todo, so no need to add it here.
8703 * doc/config-file.txt: some notes on how config file might look
8705 2003-03-18 Anders Carlsson <andersca@codefactory.se>
8711 2003-03-17 Havoc Pennington <hp@redhat.com>
8713 * dbus/dbus-internals.h: add gcc attributes so that
8714 our printf-style functions warn on bad arguments to
8717 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8720 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8723 2003-03-17 Havoc Pennington <hp@redhat.com>
8725 * bus/test-main.c (main): make it print something as it runs
8726 so make check doesn't look stuck
8728 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8729 from CVS, now obsolete
8731 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8733 * bus/dispatch.c: (bus_dispatch):
8734 Refetch the service name since it may have been reallocated
8735 when dbus_message_set_sender was called.
8737 * dbus/dbus-sysdeps.c: (_dbus_accept):
8738 Add address and address length variables and use them to stop
8739 valgrind from complaining.
8741 2003-03-17 Havoc Pennington <hp@pobox.com>
8743 All tests pass, no memleaks, no valgrind complaints.
8745 * bus/test.c: refcount handler_slot
8747 * bus/connection.c (bus_connections_new): refcount
8748 connection_data_slot
8750 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8751 bytes so that auth scripts pass.
8753 * bus/dispatch.c: init message_handler_slot so it gets allocated
8756 * bus/dispatch.c (message_handler_slot_ref): fix memleak
8758 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8759 dealloc server_pipe_hash when no longer used for benefit of
8762 * dbus/dbus-auth.c (process_command): memleak fix
8764 * bus/dispatch.c (check_hello_message): memleak fix
8766 2003-03-16 Havoc Pennington <hp@pobox.com>
8768 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8770 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8772 * bus/activation.c (bus_activation_activate_service): Append
8773 the pending activation entry to the list of pending activations.
8775 2003-03-16 Havoc Pennington <hp@pobox.com>
8777 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8780 * dbus/dbus-address.c (create_entry): fix OOM handling when
8781 failing to alloc entry->method
8783 2003-03-16 Havoc Pennington <hp@pobox.com>
8785 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8788 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8789 add some missing dbus_set_result
8791 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8792 alloc the DBusMessageHandler
8794 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8795 the transport here, since we call this from the finalizer; it
8796 resulted in a double-finalize.
8798 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8799 where we tried to use transport->connection that was NULL,
8800 happened when transport was disconnected early on due to OOM
8802 * bus/*.c: adapt to handle OOM for watches/timeouts
8804 * dbus/dbus-transport-unix.c: port to handle OOM during
8807 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8808 reference to unused bytes instead of a copy
8810 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8813 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8816 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8819 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8821 * doc/dbus-specification.sgml:
8822 Document reply message for ActivateService.
8824 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8826 * bus/activation.c: (bus_pending_activation_entry_free),
8827 (bus_pending_activation_free), (bus_activation_new),
8828 (bus_activation_unref), (bus_activation_service_created),
8829 (bus_activation_activate_service):
8831 * bus/bus.c: (bus_context_new):
8832 * bus/desktop-file.c: (new_section):
8833 * bus/driver.c: (bus_driver_send_service_deleted),
8834 (bus_driver_handle_activate_service):
8835 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8837 * dbus/dbus-connection.c:
8838 (dbus_connection_send_with_reply_and_block):
8839 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8840 * dbus/dbus-protocol.h:
8841 Make activation work better. Now pending activations will be queued
8842 and the daemon won't try to activate services that are already registered.
8844 2003-03-16 Havoc Pennington <hp@pobox.com>
8846 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8849 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8850 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8852 2003-03-16 Havoc Pennington <hp@pobox.com>
8854 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8855 this. always run the test suite before commit...
8857 * bus/*: adapt to DBusConnection API changes
8859 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8860 requires renaming stuff to avoid dbus_connection_dispatch name
8863 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8866 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8867 separate from _dbus_message_loader_return_buffer()
8869 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8870 this, because it's now always broken to use; the number of
8871 messages in queue vs. the number still buffered by the message
8872 loader is undefined/meaningless. Should use
8873 dbus_connection_get_dispatch_state().
8874 (dbus_connection_dispatch): rename from
8875 dbus_connection_dispatch_message
8877 2003-03-16 Havoc Pennington <hp@pobox.com>
8879 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8882 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8884 * dbus/dbus-connection.c:
8885 (dbus_connection_send_with_reply_and_block):
8886 Decrease connection->n_incoming when removing an entry
8888 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8889 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8890 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8891 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8892 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8893 (dbus_dict_get_byte_array):
8894 Handle NULL arrays and strings. Also add support for byte arrays.
8896 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8897 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8898 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8899 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8900 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8901 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8902 * dbus/dbus-marshal.h:
8903 Add support for marshalling and demarshalling empty arrays and strings.
8905 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8906 (dbus_message_append_string_array),
8907 (dbus_message_iter_get_boolean),
8908 (dbus_message_iter_get_boolean_array),
8909 (dbus_message_iter_get_int32_array),
8910 (dbus_message_iter_get_uint32_array),
8911 (dbus_message_iter_get_double_array),
8912 (dbus_message_iter_get_byte_array),
8913 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8914 (check_message_handling):
8915 Add support for getting empty arrays and dicts.
8917 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8918 Don't do any validation at all for now, that's better than just checking
8921 * test/data/valid-messages/emptiness.message:
8922 New test message with lots of empty arrays.
8924 2003-03-16 Havoc Pennington <hp@pobox.com>
8926 * dbus/dbus-connection.c
8927 (_dbus_connection_queue_received_message_link): new function that
8928 can't fail due to OOM
8930 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8931 new function pops a message together with a list link
8934 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8935 message queuing functions to avoid needing to alloc memory
8937 2003-03-16 Havoc Pennington <hp@pobox.com>
8939 Oops - test code was only testing failure of around 30 of the
8940 mallocs in the test path, but it turns out there are 500+
8941 mallocs. I believe this was due to misguided linking setup such
8942 that there was one copy of dbus_malloc etc. in the daemon and one
8943 in the shared lib, and only daemon mallocs were tested. In any
8944 case, the test case now tests all 500+ mallocs, and doesn't pass
8945 yet, though there are lots of fixes in this patch.
8947 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8948 this so that it doesn't need to allocate memory, since it
8949 has no way of indicating failure due to OOM (and would be
8950 annoying if it did).
8952 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8954 * bus/Makefile.am: rearrange to create two self-contained
8955 libraries, to avoid having libraries with overlapping symbols.
8956 that was resulting in weirdness, e.g. I'm pretty sure there
8957 were two copies of global static variables.
8959 * dbus/dbus-internals.c: move the malloc debug stuff to
8962 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8965 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8967 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8970 * bus/dispatch.c (bus_dispatch_add_connection): free
8971 message_handler_slot when no longer using it, so
8972 memory leak checkers are happy for the test suite.
8974 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8976 * bus/bus.c (new_connection_callback): disconnect in here if
8977 bus_connections_setup_connection fails.
8979 * bus/connection.c (bus_connections_unref): fix to free the
8981 (bus_connections_setup_connection): if this fails, don't
8982 disconnect the connection, just be sure there are no side
8985 * dbus/dbus-string.c (undo_alignment): unbreak this
8987 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8989 (_dbus_auth_new): fix the order in which we free strings
8992 * bus/connection.c (bus_connection_disconnected): fix to
8993 not send ServiceDeleted multiple times in case of memory
8996 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8997 get the base service name
8998 (dbus_bus_register_client): don't return base service name,
8999 instead store it on the DBusConnection and have an accessor
9001 (dbus_bus_register_client): rename dbus_bus_register()
9003 * bus/dispatch.c (check_hello_message): verify that other
9004 connections on the bus also got the correct results, not
9005 just the one sending hello
9007 2003-03-15 Havoc Pennington <hp@pobox.com>
9009 Make it pass the Hello handling test including all OOM codepaths.
9010 Now to do other messages...
9012 * bus/services.c (bus_service_remove_owner): fix crash when
9013 removing owner from an empty list of owners
9014 (bus_registry_ensure): don't leave service in the list of
9015 a connection's owned services if we fail to put the service
9018 * bus/connection.c (bus_connection_preallocate_oom_error): set
9019 error flag on the OOM error.
9021 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9022 handle _dbus_transport_set_connection failure
9024 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9025 to create watches up front and simply enable/disable them as
9027 (unix_connection_set): this can now fail on OOM
9029 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9030 of enabling/disabling a watch or timeout.
9032 * bus/loop.c (bus_loop_iterate): don't touch disabled
9035 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9037 2003-03-15 Havoc Pennington <hp@pobox.com>
9039 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9040 write useful test code, after all that futzing around ;-)
9042 Test does not yet pass because we can't handle OOM in
9043 _dbus_transport_messages_pending (basically,
9044 dbus_connection_preallocate_send() does not prealloc the write
9045 watch). To fix this, I think we need to add new stuff to
9046 set_watch_functions, namely a SetEnabled function so we can alloc
9047 the watch earlier, then enable it later.
9049 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9050 dbus-memory.c to the convenience lib
9052 * bus/test.c: rename some static functions to keep them clearly
9053 distinct from stuff in connection.c. Handle client disconnection.
9055 2003-03-14 Havoc Pennington <hp@pobox.com>
9057 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9058 transport, tests more of the real codepath. Set up clients
9059 with bus_setup_debug_client.
9061 * bus/test.c (bus_setup_debug_client): function to set up debug
9062 "clients" on the main loop
9064 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9067 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9070 * dbus/dbus-server-debug.c: support a debug server based on pipes
9072 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9073 (_dbus_close): new function
9075 * configure.in: check for socketpair
9077 2003-03-14 Havoc Pennington <hp@redhat.com>
9079 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9082 * dbus/dbus-transport-debug.c: rework this a good bit to be
9083 less complicated. hopefully still works.
9085 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9088 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9091 * dbus/dbus-message.c (dbus_message_copy): rename from
9092 dbus_message_new_from_message, fix it up to copy
9093 all the message fields, add test case
9095 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9096 not quite passing yet
9098 2003-03-14 Havoc Pennington <hp@pobox.com>
9100 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9101 until no work remains" in test code. (the large diff here
9102 is just code movement, no actual changes)
9104 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9105 1, no point waiting around for test code.
9106 (_dbus_server_debug_accept_transport): unref the timeout
9107 after adding it (right?)
9109 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9111 2003-03-13 Havoc Pennington <hp@redhat.com>
9113 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9116 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9119 * dbus/dbus-connection.h: Make AddWatchFunction and
9120 AddTimeoutFunction return a bool so they can fail on out-of-memory
9122 * bus/bus.c (bus_context_new): set up timeout handlers
9124 * bus/connection.c (bus_connections_setup_connection): set up
9127 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9130 * bus/bus.c (bus_context_new): adapt to changes
9132 * bus/connection.c: adapt to changes
9134 * test/watch.c: adapt to DBusWatch changes
9136 * bus/dispatch.c (bus_dispatch_test): started adding this but
9139 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9141 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9143 2003-03-13 Havoc Pennington <hp@pobox.com>
9145 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9146 set up a test framework as for the library
9148 2003-03-12 Havoc Pennington <hp@pobox.com>
9150 Throughout: purge global variables, introduce BusActivation,
9151 BusConnections, BusRegistry, etc. objects instead.
9153 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9156 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9157 going to redo this a bit differently I think
9159 2003-03-12 Havoc Pennington <hp@redhat.com>
9161 Mega-patch that gets the message bus daemon initially handling
9162 out-of-memory. Work still needed. Also lots of random
9163 moving stuff to DBusError instead of ResultCode.
9165 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9167 * dbus/dbus-connection.c
9168 (dbus_connection_send_with_reply_and_block): use DBusError
9170 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9173 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9174 code here, as the only failure possible is OOM.
9176 * bus/connection.c (bus_connection_disconnect):
9177 rename bus_connection_disconnected as it's a notification only
9179 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9180 "name" on get_args failure, should be done by get_args;
9181 don't disconnect client for bad args, just return an error.
9182 (bus_driver_handle_service_exists): ditto
9184 * bus/services.c (bus_services_list): NULL-terminate returned array
9186 * bus/driver.c (bus_driver_send_service_lost)
9187 (bus_driver_send_service_acquired): send messages from driver to a
9188 specific client to the client's unique name, not to the broadcast
9191 * dbus/dbus-message.c (decode_header_data): reject messages that
9192 contain no name field
9193 (_dbus_message_get_client_serial): rename to
9194 dbus_message_get_serial and make public
9195 (_dbus_message_set_serial): rename from set_client_serial
9196 (_dbus_message_set_reply_serial): make public
9197 (_dbus_message_get_reply_serial): make public
9199 * bus/connection.c (bus_connection_foreach): allow stopping
9200 iteration by returning FALSE from foreach function.
9202 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9203 (dbus_connection_free_preallocated_send)
9204 (dbus_connection_preallocate_send): new API for sending a message
9205 without possibility of malloc failure.
9206 (dbus_connection_send_message): rename to just
9207 dbus_connection_send (and same for whole function family)
9209 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9211 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9213 * bus/activation.c: handle/return errors
9215 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9217 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9218 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9219 (_dbus_result_from_errno): move to this file
9221 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9223 * dbus/dbus-marshal.c:
9224 (_dbus_marshal_set_string):
9225 Take a length argument so we can marshal the correct string
9228 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9229 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9230 (_dbus_marshal_test):
9231 * dbus/dbus-marshal.h:
9232 Add support for marshalling and demarshalling dicts.
9234 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9235 Add support for TYPE DICT.
9237 * dbus/dbus-message.c: (set_string_field):
9238 Adjust header padding.
9240 (dbus_message_append_args_valist), (dbus_message_append_dict),
9241 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9242 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9243 (check_message_handling), (check_have_valid_message):
9244 * dbus/dbus-message.h:
9245 Add functions for setting and getting dicts.
9247 * dbus/dbus-protocol.h:
9253 * doc/dbus-specification.sgml:
9254 Add information about how dicts are marshalled.
9256 * test/data/invalid-messages/dict-with-nil-value.message:
9257 * test/data/invalid-messages/too-short-dict.message:
9258 * test/data/valid-messages/dict-simple.message:
9259 * test/data/valid-messages/dict.message:
9260 Add sample messages containing dicts.
9262 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9264 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9266 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9269 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9270 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9271 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9272 (dbus_dict_set_double), (dbus_dict_set_string),
9273 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9274 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9275 (dbus_dict_set_string_array), (_dbus_dict_test):
9277 Fix according to comments from Havoc.
9279 2003-03-06 Michael Meeks <michael@server.home>
9281 * configure.in: if we don't have kde-config, disable have_qt.
9283 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9288 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9289 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9290 (dbus_dict_remove), (dbus_dict_get_value_type),
9291 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9292 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9293 (dbus_dict_put_double), (dbus_dict_put_string),
9294 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9295 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9296 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9297 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9298 (dbus_dict_get_double), (dbus_dict_get_string),
9299 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9300 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9301 (dbus_dict_get_string_array), (_dbus_dict_test):
9303 Add DBusDict implementation
9305 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9309 2003-03-04 Havoc Pennington <hp@pobox.com>
9311 * test/data/auth/*: adapt to changes
9313 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9314 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9317 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9318 more stuff from being in a context name, to make the protocol
9319 simpler to deal with
9321 * dbus/dbus-errors.c (dbus_error_has_name): new function
9322 (dbus_error_is_set): new function
9324 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9325 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9327 * dbus/dbus-connection.c (dbus_connection_flush): also read
9328 messages during a flush operation
9330 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9332 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9334 * configure.in: Check for gethostbyname on Solaris.
9336 * dbus/dbus-transport.c: (_dbus_transport_open):
9337 Remove duplicate "tcp" entry.
9339 * doc/dbus-specification.sgml:
9340 Clarify some things.
9342 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9344 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9345 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9346 (_dbus_keyring_test):
9347 * dbus/dbus-md5.c: (_dbus_md5_compute):
9348 * dbus/dbus-sha.c: (_dbus_sha_compute):
9351 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9353 * README: Add some things.
9355 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9357 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9358 after case DBUS_TYPE_BOOELAN.
9360 2003-03-02 Havoc Pennington <hp@pobox.com>
9362 * test/break-loader.c (randomly_set_extreme_ints): add test that
9363 sets really huge and small integers
9365 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9366 that length of boolean array fits in the string, and that
9367 string has room for boolean value in single-bool case.
9369 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9370 optional value to "ALIGN" command which is what to fill the
9373 * test/data/valid-messages/no-padding.message: add regression
9374 test for the message padding problem
9376 2003-03-02 Havoc Pennington <hp@pobox.com>
9378 * dbus/dbus-message.c (decode_header_data): fix to always init
9379 message_padding, from Benjamin Dauvergne
9381 2003-03-02 Havoc Pennington <hp@pobox.com>
9387 2003-03-01 Joe Shaw <joe@assbarn.com>
9389 * configure.in: Check for "struct cmsgcred" and try to access its
9390 members for BSD-like unices.
9392 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9393 _dbus_read_credentials_unix_socket().
9394 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9395 read() for reading the credential byte off the unix socket. Use
9396 struct cmsgcred on systems that support it.
9398 2003-02-27 Alexander Larsson <alexl@redhat.com>
9402 Make gthreads-2.0 dependency optional. Don't build thread test if
9405 2003-02-27 Havoc Pennington <hp@pobox.com>
9407 * dbus/dbus-connection.c
9408 (dbus_connection_send_message_with_reply_and_block): fix doh!
9409 doh! doh! bug that resulted in never removing a reply from the
9410 queue, no wonder we called get_reply_serial so much ;-)
9412 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9413 and client serial instead of demarshaling them every time
9415 2003-02-27 Havoc Pennington <hp@pobox.com>
9417 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9418 more inlined, using dbus-string-private.h, speeds things up
9421 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9422 when freeing the string
9423 (_dbus_string_steal_data): fix for align offset
9424 (undo_alignment): new function
9426 2003-02-26 Havoc Pennington <hp@redhat.com>
9428 All kinds of audit fixes from Owen, plus initial attempt to
9429 handle unaligned memory returned from malloc.
9431 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9432 leave room for align_offset and nul byte
9433 (fixup_alignment): function to track an align_offset and
9434 ensure real->str is aligned
9435 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9436 to allow a nul byte plus align offset
9437 (_dbus_string_lock): fix overflow issue
9438 (_dbus_string_init_const_len): add assertions on sanity of len,
9439 assign allocated to be ALLOCATION_PADDING larger than len
9440 (set_length): fixup the overflow handling
9441 (_dbus_string_get_data_len): fix overflow in assertion
9442 (open_gap): detect overflow in size of gap to be opened
9443 (_dbus_string_lengthen): add overflow check
9444 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9445 (_dbus_string_append): add overflow check
9446 (_dbus_string_append_unichar): overflow
9447 (_dbus_string_delete): fix overflow in assertion
9448 (_dbus_string_copy_len): overflow in assertion
9449 (_dbus_string_replace_len): overflows in assertions
9450 (_dbus_string_find): change to implement in terms of
9451 _dbus_string_find_to
9452 (_dbus_string_find_to): assorted fixage
9453 (_dbus_string_equal_c_str): assert c_str != NULL,
9454 fix logic so the function works
9455 (_dbus_string_ends_with_c_str): fix overflow thingy
9456 (_dbus_string_base64_encode): overflow fix
9457 (_dbus_string_validate_ascii): overflow
9458 (_dbus_string_validate_nul): overflow
9460 2003-02-26 Havoc Pennington <hp@redhat.com>
9462 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9464 2003-02-26 Alexander Larsson <alexl@redhat.com>
9467 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9469 * dbus/dbus-connection.c:
9470 * dbus/dbus-connection.h:
9471 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9472 Add dbus_connection_set_wakeup_main_function and use it when queueing
9473 incoming and outgoing messages.
9476 * dbus/dbus-dataslot.c:
9477 Threadsafe usage of DBusDataSlotAllocator
9479 * dbus/dbus-message.c: (dbus_message_get_args_iter):
9482 * dbus/dbus-server-unix.c:
9485 * glib/dbus-gmain.c:
9486 Implement the new wakeup functions for glib.
9489 * glib/test-thread-client.c:
9490 * glib/test-thread-server.c:
9491 * glib/test-thread.h:
9492 Initial cut at some thread test code. Not really done yet.
9494 2003-02-26 Havoc Pennington <hp@pobox.com>
9496 * dbus/dbus-connection.c
9497 (dbus_connection_send_message_with_reply_and_block): fix crash
9498 where we ref'd the outgoing message instead of the returned reply
9500 * dbus/dbus-transport-unix.c (do_authentication): check read watch
9501 at the end of this function, so if we didn't need to read for
9502 authentication, we reinstall it for receiving messages
9504 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9505 a NULL sender for peer-to-peer case
9507 * dbus/dbus-transport-unix.c (check_read_watch): handle
9508 !authenticated case correctly
9510 * glib/dbus-gmain.c: add support for DBusServer
9512 * dbus/dbus-server.c: add data slot support
9514 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9515 return values and handle errors
9517 * dbus/dbus-dataslot.c: factor out the data slot stuff from
9520 * Doxyfile.in (INPUT): add glib subdir
9522 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9523 setup_with_g_main instead of hookup_with_g_main; write docs
9525 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9527 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9528 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9529 * dbus/dbus-message.c: (dbus_message_append_boolean),
9530 (dbus_message_append_boolean_array),
9531 (dbus_message_get_args_valist), (_dbus_message_test):
9532 * dbus/dbus-message.h:
9533 * doc/dbus-specification.sgml:
9534 Various fixes as pointed out by Havoc.
9536 * test/data/invalid-messages/bad-boolean-array.message:
9537 * test/data/invalid-messages/bad-boolean.message:
9538 Add invalid boolean value test cases.
9540 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9542 * dbus/dbus-internals.c: (_dbus_type_to_string):
9543 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9544 (_dbus_marshal_validate_arg):
9545 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9546 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9547 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9548 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9549 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9550 (dbus_message_iter_get_double),
9551 (dbus_message_iter_get_boolean_array), (message_iter_test):
9552 * dbus/dbus-message.h:
9553 * dbus/dbus-protocol.h:
9554 * doc/dbus-specification.sgml:
9555 * test/data/valid-messages/lots-of-arguments.message:
9556 Add support for boolean and boolean array types.
9558 2003-02-23 Havoc Pennington <hp@pobox.com>
9560 * dbus/dbus-keyring.c: finish most of this implementation and
9563 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9564 these barf if the error isn't cleared to NULL
9566 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9567 (_dbus_create_directory): new function
9569 * dbus/dbus-errors.c (dbus_set_error): fix warning
9571 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9572 (_dbus_string_hex_decode): new function
9573 (test_hex_roundtrip): test code
9575 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9577 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9579 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9580 the save-to-temp/rename trick to atomically write the new file
9581 (_dbus_string_parse_uint): new function
9583 2003-02-22 Havoc Pennington <hp@pobox.com>
9585 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9587 2003-02-22 Havoc Pennington <hp@pobox.com>
9589 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9590 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9592 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9594 * dbus/test/data/sha-1: add US government test suite for SHA-1
9596 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9598 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9599 Make string arrays NULL-terminated.
9601 * dbus/dbus-memory.c: (dbus_free_string_array):
9602 * dbus/dbus-memory.h:
9603 New function for freeing NULL-terminated string arrays.
9605 * dbus/dbus-message-builder.c: (append_quoted_string),
9606 (_dbus_message_data_load):
9607 Add support for array types.
9609 * dbus/dbus-message.c: (check_message_handling):
9610 Add more types as test cases.
9612 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9613 (_dbus_string_parse_double):
9614 Add the start offset to the end offset.
9616 * test/data/valid-messages/lots-of-arguments.message:
9617 New test message with lots of arguments.
9619 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9621 * dbus/dbus-message.c: (dbus_message_append_nil),
9622 (dbus_message_append_int32), (dbus_message_append_uint32),
9623 (dbus_message_append_double), (dbus_message_append_string),
9624 (dbus_message_append_int32_array),
9625 (dbus_message_append_uint32_array),
9626 (dbus_message_append_double_array),
9627 (dbus_message_append_byte_array),
9628 (dbus_message_append_string_array):
9629 Fix all out-of-memory handling in these functions.
9631 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9633 * dbus/dbus-message.c: (dbus_message_append_nil):
9636 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9638 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9639 (dbus_message_append_nil), (dbus_message_append_int32_array),
9640 (dbus_message_append_uint32_array),
9641 (dbus_message_append_double_array),
9642 (dbus_message_append_byte_array),
9643 (dbus_message_append_string_array), (dbus_message_get_args_valist),
9644 (dbus_message_iter_get_int32_array),
9645 (dbus_message_iter_get_uint32_array),
9646 (dbus_message_iter_get_double_array),
9647 (dbus_message_iter_get_byte_array),
9648 (dbus_message_iter_get_string_array):
9650 * dbus/dbus-message.h:
9651 Add functions for appending and getting arrays.
9653 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9655 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9656 element size at least 8 bytes, fixes mempool tests on
9659 2003-02-20 Alexander Larsson <alexl@redhat.com>
9661 * dbus/dbus-transport-unix.c (unix_do_iteration):
9662 Unlock the connection mutex during a blocking select call.
9663 Add todo about how we need a way to wake up the select.
9665 * dbus/dbus-connection-internal.h:
9666 * dbus/dbus-connection.c:
9667 Add _dbus_connection_lock and _dbus_connection_unlock.
9669 2003-02-19 Havoc Pennington <hp@pobox.com>
9671 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9672 Doxyfile.in, not Doxyfile
9674 * dbus/dbus-keyring.c: do some hacking on this
9676 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9678 * dbus/dbus-errors.c (dbus_set_error_const): do not call
9680 (dbus_set_error): remove dbus_error_init, check for message ==
9681 NULL *before* we sprintf into it, and add @todo about including
9682 system headers in this file
9684 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9686 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9688 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9689 get various bits of user information based on either username
9691 (_dbus_homedir_from_username): new function
9693 2003-02-19 Anders Carlsson <andersca@codefactory.se>
9696 Add check for nonposix getpwnam_r
9698 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9699 Align the pool element size to a sizeof (void *) boundary.
9701 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9702 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9703 General Solaris fixes.
9705 * test/data/valid-messages/simplest-manual.message:
9706 Explicitly state that we want little-endian packing.
9708 2003-02-19 Mikael Hallendal <micke@codefactory.se>
9710 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9712 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9713 Added to create a transport connecting using a tcp/ip socket.
9715 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9716 to a tcp socket at given host and port.
9717 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9720 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9722 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9723 Added to create a server listening on a TCP/IP socket.
9725 2003-02-19 Havoc Pennington <hp@pobox.com>
9727 Throughout: mop up all the Doxygen warnings and undocumented
9730 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9731 to search any paths.
9733 * dbus/dbus-threads.c: move global mutex initializers to
9734 dbus-internals.h, multiple prototypes was confusing doxygen
9735 besides being kind of ugly
9737 * Doxyfile (PREDEFINED): have Doxygen define
9738 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9739 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9740 (do not abuse the feature! it's for stuff like the autogenerated
9741 macros in dbus-md5.c, not just for things you don't feel like
9744 2003-02-18 Havoc Pennington <hp@pobox.com>
9746 * dbus/dbus-string.c (_dbus_string_zero): new function
9748 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9749 wrap it in some dbus-friendly API
9751 * dbus/dbus-types.h: add 16-bit types
9753 2003-02-18 Joe Shaw <joe@assbarn.com>
9755 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9756 credentials from our currently running process.
9757 (get_word): Fix a buglet where we were copying the entire length
9758 instead of relative to our position.
9760 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9761 keys on the stack... it's 640k of data.
9763 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9764 read the credentials byte off the socket, even if we don't have
9766 (_dbus_poll): Implement poll() using select() for systems which
9769 * glib/test-dbus-glib.c (main): Print out an error if no
9770 parameters are given.
9772 * test/data/auth/fallback.auth-script: Added. Tests that a client
9773 can fallback to a secondary auth mechanism if the first fails.
9775 2003-02-18 Havoc Pennington <hp@pobox.com>
9779 2003-02-17 Havoc Pennington <hp@pobox.com>
9781 * doc/dbus-specification.sgml: lots of cosmetic
9782 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9783 env variable to DBUS_BUS_ADDRESS, s/client/application/,
9784 s/server/bus/ (except in authentication section). Add a section
9785 "Message Bus Message Routing"
9787 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
9793 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9795 * doc/dbus-specification.sgml:
9796 Specification updates.
9798 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9800 * bus/activation.c: (bus_activation_init), (child_setup),
9801 (bus_activation_activate_service):
9803 * bus/main.c: (main):
9804 Set DBUS_ADDRESS environment variable.
9806 * dbus/dbus-errors.c: (dbus_set_error):
9807 Don't use va_copy since that's a C99 feature.
9809 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9810 (_dbus_spawn_async):
9811 * dbus/dbus-sysdeps.h:
9812 Add child_setup_func to _dbus_spawn_async.
9814 * doc/dbus-specification.sgml:
9815 Update specification.
9817 * test/spawn-test.c: (setup_func), (main):
9820 2003-02-17 Alexander Larsson <alexl@redhat.com>
9822 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9825 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9829 * doc/dbus-test-plan.sgml:
9830 Add test plan document.
9835 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9837 * dbus/dbus-message.c: (decode_header_data),
9838 (_dbus_message_loader_return_buffer):
9839 Set the header padding amount when loading a message.
9841 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9843 * bus/dispatch.c: (send_one_message):
9844 Only send broadcast messages to registered connections.
9846 * dbus/dbus-message.c: (dbus_message_name_is):
9847 * dbus/dbus-message.h:
9848 New convenience function.
9850 * dbus/dbus-transport-debug.c: (do_reading):
9851 Only dispatch one message per run.
9854 * test/bus-test.c: (new_connection_callback), (die),
9855 (test_hello_client1_handler), (test_hello_client2_handler),
9856 (test_hello_replies), (main):
9858 * test/bus-test-loop.[ch]:
9861 2003-02-16 Havoc Pennington <hp@pobox.com>
9863 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9864 backward conditional
9866 2003-02-16 Alexander Larsson <alexl@redhat.com>
9868 * dbus/dbus-connection.c:
9869 Implement sent_message_with_reply. (with_reply_and block is still
9871 Made dispatch_message not lose message if OOM.
9873 * dbus/dbus-errors.h:
9874 Add NoReply error (for reply timeouts).
9876 2003-02-16 Alexander Larsson <alexl@redhat.com>
9878 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9879 Actually free keys and values when destroying hashtable.
9881 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9883 * dbus/dbus-auth.c: (client_try_next_mechanism):
9886 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9887 Return TRUE if there's no thread implementation around.
9889 * glib/dbus-gmain.c: (free_source),
9890 (dbus_connection_hookup_with_g_main):
9891 Make sure to remove the GSource when the connection is finalized.
9893 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9895 * bus/dispatch.c: (bus_dispatch_message_handler):
9896 * dbus/dbus-errors.h:
9897 Return an error if someone tries to send a message to a service
9900 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9902 * bus/activation.c: (load_directory), (bus_activation_init),
9903 (bus_activation_activate_service):
9906 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9907 More work on the activation handling.
9909 * dbus/dbus-errors.h:
9910 Add some error messages
9912 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9913 * dbus/dbus-message.h:
9914 New function that creates an error message.
9916 * dbus/dbus-protocol.h:
9917 Add ACTIVATE_SERVER message.
9919 * dbus/dbus-server-unix.c: (unix_handle_watch),
9920 (_dbus_server_new_for_domain_socket):
9921 Call _dbus_fd_set_close_on_exec.
9923 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9924 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9925 (_dbus_fd_set_close_on_exec):
9926 * dbus/dbus-sysdeps.h:
9927 Add _dbus_fd_set_close_on exec function. Also add function that checks
9928 that all open fds are set to close-on-exec and warns otherwise.
9930 * dbus/dbus-transport-unix.c:
9931 (_dbus_transport_new_for_domain_socket):
9932 Call _dbus_fd_set_close_on_exec.
9934 2003-02-16 Havoc Pennington <hp@pobox.com>
9936 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9937 allow people to avoid setting SIGPIPE to SIG_IGN
9938 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9939 we've been asked not to
9941 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9943 * dbus/dbus-list.c: (_dbus_list_append_link),
9944 (_dbus_list_prepend_link):
9945 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9949 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9952 * bus/activation.c: (bus_activation_entry_free),
9953 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9955 * bus/main.c: (main):
9956 Add simple activation support, doesn't work yet though.
9958 2003-02-15 Zack Rusin <zack@kde.org>
9960 * qt/dbus-qthread.cpp: small casting fix
9962 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9964 * dbus/dbus-errors.c: (dbus_set_error):
9965 * dbus/dbus-errors.h:
9966 Add a few errors and make dbus_set_error void.
9968 * dbus/dbus-sysdeps.c:
9969 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9970 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9971 * dbus/dbus-sysdeps.h:
9972 Add _dbus_spawn_async.
9974 * test/spawn-test.c: (main):
9975 Test for _dbus_spawn_async.
9977 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9979 * dbus/dbus-internals.h:
9980 Fix build without tests.
9982 * dbus/dbus-list.c: (alloc_link):
9983 Fix a segfault when a malloc fails.
9985 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9986 (dbus_malloc0), (dbus_realloc):
9987 Add support for malloc debugging.
9989 2003-02-15 Alexander Larsson <alexl@redhat.com>
9991 * dbus/dbus-threads.c:
9992 * dbus/dbus-threads.h:
9993 Add condvars. Remove static mutext from API.
9994 Implement static mutexes by initializing them from threads_init.
9996 * glib/dbus-gthread.c:
9997 * qt/dbus-qthread.cpp:
9998 Update with the thread api changes.
10001 * dbus/dbus-list.c:
10002 * dbus/dbus-list.h:
10003 Turn StaticMutex into normal mutex + init function.
10004 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10005 _dbus_list_append_link, _dbus_list_prepend_link
10008 * dbus/dbus-sysdeps.c:
10009 * dbus/dbus-sysdeps.h:
10010 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10011 _dbus_atomic_dec. Only slow fallback implementation at the moment.
10013 * dbus/dbus-protocol.h:
10014 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10016 * dbus/dbus-message.c:
10017 Make ref/unref atomic.
10020 * dbus/dbus-connection-internal.h:
10021 * dbus/dbus-connection.c:
10022 * dbus/dbus-connection.h:
10024 Change _peek to _borrow,_return & _steal_borrowed.
10025 Change disconnect callback to event.
10026 Make dbus_connection_dispatch_messages reentrant.
10028 * dbus/dbus-transport.c:
10029 Don't ref the connection on calls to the transport
10032 * dbus/dbus-message-handler.c:
10035 * glib/dbus-gmain.c:
10036 Don't use peek_message anymore
10038 * test/Makefile.am:
10039 * test/debug-thread.c:
10040 * test/debug-thread.h:
10041 Simple thread implementation that asserts() on deadlocks in
10042 single-threaded code.
10045 (main) Call debug_threads_init.
10048 Use disconnect message instead of disconnect callback.
10050 * bus/connection.c:
10051 * bus/connection.h:
10052 Don't call dbus_connection_set_disconnect_function. Instead export
10053 bus_connection_disconnect.
10056 Call bus_connection_disconnect when we get a disconnected message.
10058 2003-02-15 Havoc Pennington <hp@pobox.com>
10060 * dbus/dbus-message.c (dbus_message_new): fool around with the
10063 2003-02-14 Havoc Pennington <hp@pobox.com>
10065 * dbus/dbus-mempool.c: fail if the debug functions so indicate
10067 * dbus/dbus-memory.c: fail if the debug functions indicate we
10070 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10071 (_dbus_decrement_fail_alloc_counter): debug functions to
10072 simulate memory allocation failures
10074 2003-02-14 Havoc Pennington <hp@pobox.com>
10076 * dbus/dbus-errors.h (struct DBusError): add a word of padding
10079 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10081 * bus/driver.c: (bus_driver_handle_hello):
10083 * bus/services.c: (bus_service_lookup):
10084 Reorder message sending so we get a more sane order.
10086 * test/bus-test.c: (message_handler):
10089 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10091 * bus/driver.c: (bus_driver_send_service_deleted),
10092 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10093 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10094 (bus_driver_send_welcome_message),
10095 (bus_driver_handle_list_services),
10096 (bus_driver_handle_acquire_service),
10097 (bus_driver_handle_service_exists):
10098 * dbus/dbus-bus.c: (dbus_bus_register_client),
10099 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10100 * dbus/dbus-errors.c: (dbus_result_to_string):
10101 * dbus/dbus-errors.h:
10102 * dbus/dbus-message.c: (dbus_message_append_args),
10103 (dbus_message_append_args_valist), (dbus_message_get_args),
10104 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10105 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10106 (dbus_message_iter_get_byte_array),
10107 (dbus_message_iter_get_string_array), (message_iter_test),
10108 (check_message_handling), (_dbus_message_test):
10109 * dbus/dbus-message.h:
10110 * test/bus-test.c: (main):
10111 Change fields to arguments in messages, so that they won't be
10112 confused with header fields.
10114 * glib/test-dbus-glib.c: (main):
10115 Remove append_fields from hello message.
10117 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10119 * dbus/dbus-errors.c:
10120 * dbus/dbus-message.c:
10121 * dbus/dbus-string.c:
10122 Documentation fixes.
10124 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10126 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10128 Implement support for timeouts in dbus-glib.
10130 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10132 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10133 * dbus/dbus-message.c: (process_test_subdir):
10134 * test/break-loader.c: (find_breaks_based_on):
10135 Plug some memory leaks.
10137 2003-02-13 Richard Hult <rhult@codefactory.se>
10139 * bus/main.c: Fix build.
10141 * dbus/dbus-errors.h:
10142 * dbus/dbus-errors.c: Fix copyright for Anders.
10144 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10149 * bus/connection.c: (bus_connection_foreach):
10152 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10153 (unescape_string), (new_section), (parse_section_start),
10154 (parse_key_value), (report_error), (bus_desktop_file_load),
10155 (bus_desktop_file_get_string):
10156 * bus/desktop-file.h:
10157 Use DBusError for error reporting.
10159 * bus/dispatch.c: (send_one_message),
10160 (bus_dispatch_message_handler):
10161 * bus/driver.c: (bus_driver_send_service_deleted),
10162 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10163 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10164 (bus_driver_send_welcome_message),
10165 (bus_driver_handle_list_services),
10166 (bus_driver_handle_acquire_service),
10167 (bus_driver_handle_service_exists):
10168 * bus/loop.c: (bus_loop_run):
10170 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10172 * bus/utils.c: (bus_wait_for_memory):
10174 New files with general utility functions.
10176 * dbus/dbus-internals.h:
10177 Remove _DBUS_HANDLE_OOM.
10179 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10181 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10182 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10183 * dbus/dbus-errors.h:
10184 Add DBusError structure.
10186 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10188 * test/data/valid-messages/standard-acquire-service.message:
10189 * test/data/valid-messages/standard-hello.message:
10190 * test/data/valid-messages/standard-list-services.message:
10191 * test/data/valid-messages/standard-service-exists.message:
10192 Add some standard messages.
10194 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10196 * bus/driver.c: (bus_driver_send_welcome_message),
10197 (bus_driver_handle_list_services),
10198 (bus_driver_handle_acquire_service),
10199 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10200 Update for API changes in libdbus.
10202 * dbus/dbus-message.c: (dbus_message_new_reply):
10203 * dbus/dbus-message.h:
10204 Remove the name argument. The spec states that replies shouldn't
10207 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10209 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10210 (report_error), (bus_desktop_file_load), (lookup_section),
10211 (lookup_line), (bus_desktop_file_get_raw),
10212 (bus_desktop_file_get_string):
10213 * bus/desktop-file.h:
10214 Some fixes, and new functions for getting a key value from a section.
10216 2003-02-13 Havoc Pennington <hp@pobox.com>
10218 * test/data/auth/fail-after-n-attempts.auth-script: new test
10220 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10223 2003-02-13 Havoc Pennington <hp@pobox.com>
10225 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10226 dbus_credentials_match were backward
10228 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10229 NO_CREDENTIALS and ROOT_CREDENTIALS
10231 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10232 into here. Never process more commands after we've reached an
10233 end state; store further data as unused bytes.
10235 * test/data/auth/*: add more auth tests
10237 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10238 command to match exact string and EXPECT_UNUSED to match unused
10241 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10243 2003-02-12 Havoc Pennington <hp@pobox.com>
10245 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10246 \r off of popped lines
10248 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10251 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10254 2003-02-12 Havoc Pennington <hp@pobox.com>
10256 * dbus/Makefile.am: remove break-loader from the build, since it
10259 * configure.in: add --enable-gcov to turn on coverage profiling
10260 flags and disable optimization
10262 2003-02-10 Havoc Pennington <hp@pobox.com>
10264 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10265 initial cut at test framework for DBusAuth from laptop.
10266 Doesn't quite work yet but it compiles and I need to get
10267 it off the 266mhz laptop. ;-)
10269 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10270 fix a memleak in error case
10272 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10275 * bus/desktop-file.c:
10276 * bus/desktop-file.h:
10277 Add a desktop file parser.
10279 2003-02-11 Zack Rusin <zack@kde.org>
10281 * qt/message.[h|cpp]: sample implementation
10282 of the KDE wrapper for DBusMessage
10284 2003-02-09 Zack Rusin <zack@kde.org>
10286 * test/bus-test.c: make_it_compile
10287 * doc/dbus-specification.sgml: minimal semantic fix
10289 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10295 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10297 * dbus/Makefile.am:
10298 * dbus/dbus-break-loader.c:
10299 * test/Makefile.am:
10300 * test/break-loader.c:
10301 Move dbus-break-loader to test/ and rename it to break-loader.
10303 2003-02-02 Havoc Pennington <hp@pobox.com>
10305 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10306 for code to manage cookies in your home directory
10308 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10310 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10311 to authenticate, then disconnect the client.
10313 2003-02-03 Alexander Larsson <alexl@redhat.com>
10315 * dbus/dbus-message.c (dbus_message_append_fields):
10318 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10320 * doc/dbus-specification.sgml:
10321 Update address format section.
10323 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10325 * test/Makefile.am:
10326 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10327 (message_handler), (new_connection_callback), (loop_quit),
10328 (loop_run), (main):
10331 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10333 * bus/driver.c: (bus_driver_handle_service_exists):
10334 Simplify the code a bit.
10336 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10339 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10342 Add libdbus-daemon.la and link to it.
10344 2003-02-01 James Willcox <jwillcox@gnome.org>
10346 * bus/driver.c: (bus_driver_handle_own_service):
10347 Actually include the service reply code in the message.
10349 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10351 * bus/driver.c: (bus_driver_handle_service_exists):
10352 Don't unref the incoming message.
10354 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10356 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10358 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10360 * dbus/dbus-server.c: (dbus_server_listen):
10361 * dbus/dbus-transport.c: (_dbus_transport_open):
10362 ifdef out the calls to the debug transport and server.
10364 2003-02-02 Alexander Larsson <alexl@redhat.com>
10366 * dbus/dbus-watch.c (dbus_watch_get_flags):
10367 Add note in the docs that ERROR or HANGUP won't be returned
10368 and are assumed always on.
10370 * glib/dbus-gmain.c (add_watch):
10371 Always add IO_ERR | IO_HUP
10373 * dbus/dbus-message.h:
10374 Add semicolon after dbus_message_iter_get_string_array().
10375 Makes qt code build again
10377 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10379 * bus/driver.c: (create_unique_client_name),
10380 (bus_driver_handle_hello):
10381 Don't take a name, just use a numeric id to identify
10384 * dbus/Makefile.am:
10385 * dbus/dbus-bus.c: (dbus_bus_register_client),
10386 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10388 Add new convenience functions for communicating with the bus.
10390 * dbus/dbus-message.h:
10392 * dbus/dbus-protocol.h:
10395 2003-02-01 Alexander Larsson <alexl@redhat.com>
10397 * dbus/dbus-message.c (dbus_message_append_fields):
10398 Add some more doc comments.
10400 2003-02-01 Havoc Pennington <hp@pobox.com>
10402 * dbus/dbus-break-loader.c (randomly_modify_length): change
10403 a 4-byte value in the message as if it were a length
10405 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10406 execute bit on saved files
10408 2003-02-01 Havoc Pennington <hp@pobox.com>
10410 * dbus/dbus-break-loader.c (main): new program to find messages
10411 that break the loader.
10413 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10414 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10416 * dbus/dbus-string.c (_dbus_string_set_byte): new
10418 2003-01-31 Havoc Pennington <hp@pobox.com>
10420 * dbus/dbus-message.c: refactor the test code to be more general,
10421 in preparation for writing a "randomly permute test cases to
10422 try to break the loader" program.
10424 2003-01-31 Havoc Pennington <hp@pobox.com>
10426 * doc/dbus-specification.sgml: work on the specification
10428 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10429 the protocol version of the message.
10431 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10432 no longer specifies that.
10433 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10436 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10437 "break" for DBUS_TYPE_NIL, remove @todo
10439 2003-01-31 Havoc Pennington <hp@pobox.com>
10441 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10442 just set_is_error/get_is_error as this is a commonly-used
10443 function, and write docs.
10445 2003-01-31 Anders Carlsson <andersca@codefactory.se>
10447 * dbus/dbus-address.c: (dbus_address_entry_free):
10448 Free key and value lists.
10450 * dbus/dbus-internals.c: (_dbus_type_to_string):
10451 Add the types we didn't have.
10453 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10454 (_dbus_marshal_validate_arg):
10457 * dbus/dbus-message.c: (dbus_message_set_sender):
10458 Remove todo about being able to set sender to NULL.
10460 (dbus_message_set_is_error_reply),
10461 (dbus_message_get_is_error_reply):
10462 * dbus/dbus-message.h:
10465 * dbus/dbus-protocol.h:
10466 Add error reply flag.
10468 * test/data/valid-messages/opposite-endian.message:
10469 Add NIL type to test.
10471 2003-01-31 Havoc Pennington <hp@pobox.com>
10473 * doc/dbus-specification.sgml: fully specify the header. Add
10474 flags and major protocol version, and change header/body len to
10477 * dbus/dbus-message-builder.c (append_saved_length): append length
10480 * dbus/dbus-message.c (dbus_message_create_header): change header
10481 length and body length to unsigned. Add the new fields from the
10483 (_dbus_message_loader_return_buffer): unsigned header/body len
10485 2003-01-30 Havoc Pennington <hp@pobox.com>
10487 * dbus/dbus-auth.c: rework to use only REJECTED, no
10490 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10491 use REJECTED, suggested by Mark McLoughlin
10493 2003-01-30 Havoc Pennington <hp@pobox.com>
10495 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10496 a better way to report errors here. e.g. "unix address lacks
10497 path" or something. also "no such file" when the path doesn't
10500 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10502 (dbus_parse_address): add @todo about documenting address format,
10503 and allowing , and ; to be escaped
10505 2003-01-30 Anders Carlsson <andersca@codefactory.se>
10507 * dbus/Makefile.am:
10508 Add dbus-address.[ch]
10510 * dbus/dbus-address.c: (dbus_address_entry_free),
10511 (dbus_address_entries_free), (create_entry),
10512 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10513 (dbus_parse_address), (_dbus_address_test):
10514 * dbus/dbus-address.h:
10515 New files for dealing with address parsing.
10517 * dbus/dbus-connection.c:
10518 Document timeout functions.
10520 * dbus/dbus-message.c:
10521 Document dbus_message_new_from_message.
10523 * dbus/dbus-server-debug.c:
10526 * dbus/dbus-server.c: (dbus_server_listen):
10527 Parse address and use correct server implementation.
10529 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10530 * dbus/dbus-string.h:
10531 New function with test.
10533 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10534 * dbus/dbus-test.h:
10537 * dbus/dbus-transport-debug.c:
10540 * dbus/dbus-transport.c: (_dbus_transport_open):
10541 Parse address and use correct transport implementation.
10543 2003-01-30 Havoc Pennington <hp@pobox.com>
10545 * dbus/dbus-message.c: use message->byte_order instead of
10546 DBUS_COMPILER_BYTE_ORDER throughout.
10547 (dbus_message_create_header): pad header to align the
10548 start of the body of the message to 8-byte boundary
10550 * dbus/dbus-marshal.h: make all the demarshalers take const
10551 DBusString arguments.
10553 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10554 validate message args here, so we don't have to do slow validation
10555 later, and so we catch bad messages as they are incoming. Also add
10556 better checks on header_len and body_len. Also fill in
10557 message->byte_order
10559 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10560 implemented properly)
10561 (_dbus_string_validate_nul): new function to check all-nul
10563 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10564 get_arg_end_pos and remove all validation
10565 (_dbus_marshal_validate_arg): actually do validation here.
10567 2003-01-29 Havoc Pennington <hp@pobox.com>
10569 * dbus/dbus-message.c (check_message_handling): fix assertion
10570 failure on set_client_serial
10572 2003-01-28 Havoc Pennington <hp@pobox.com>
10574 * dbus/dbus-server-debug.c: Add doc section comments
10576 * dbus/dbus-transport-debug.c: add doc section comments
10578 2003-01-28 Havoc Pennington <hp@redhat.com>
10580 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10581 the reverse order from how I had it
10582 (_dbus_string_base64_encode): reverse encoding order. I was
10583 basically byteswapping everything during encoding.
10585 2003-01-28 Anders Carlsson <andersca@codefactory.se>
10587 * dbus/dbus-connection-internal.h:
10588 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10589 (_dbus_connection_remove_timeout):
10590 Add functions for adding and removing timeouts.
10592 * dbus/dbus-message.c: (dbus_message_new_from_message):
10593 Add new function that takes a message and creates an exact
10594 copy of it, but with the refcount set to 1.
10595 (check_message_handling):
10598 * dbus/dbus-server-protected.h:
10599 * dbus/dbus-server.c: (_dbus_server_init_base),
10600 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10601 (dbus_server_set_timeout_functions):
10602 (_dbus_server_remove_timeout):
10603 New functions so that a server can add and remove timeouts.
10605 (dbus_server_listen):
10606 Add commented out call to dbus_server_debug_new.
10608 * dbus/dbus-timeout.c: (_dbus_timeout_new):
10609 Actually set the handler, doh.
10611 * dbus/dbus-transport.c: (_dbus_transport_open):
10612 Add commented out call to dbus_transport_debug_client_new.
10614 * dbus/Makefile.am:
10615 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10617 2003-01-28 Havoc Pennington <hp@pobox.com>
10619 * dbus/dbus-message.c (check_message_handling): function to check
10620 on the loaded message, iterates over it etc.
10622 2003-01-28 Havoc Pennington <hp@pobox.com>
10624 * test/Makefile.am (dist-hook): fix make distdir
10626 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10628 2003-01-27 Havoc Pennington <hp@pobox.com>
10630 * dbus/dbus-mempool.c (time_for_size): replace printf with
10633 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10634 empty lines; fix the SAVE_LENGTH stuff to be
10635 START_LENGTH/END_LENGTH so it actually works; couple other
10638 * test/Makefile.am (dist-hook): add dist-hook for .message files
10640 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10641 can be constant or locked.
10642 (_dbus_string_free): allow freeing a const string as
10643 documented/intended
10645 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10647 * dbus/dbus-test-main.c (main): take an argument which is the
10648 directory containing test data
10650 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10651 argument to this and load all the messages in test/data/
10652 checking that they can be loaded or not loaded as appropriate.
10654 2003-01-27 Anders Carlsson <andersca@codefactory.se>
10656 * bus/dispatch.c: (bus_dispatch_message_handler):
10657 Dispatch messages sent to services.
10659 * bus/driver.c: (bus_driver_send_service_deleted),
10660 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10661 (bus_driver_send_service_acquired):
10662 Add helper functions for sending service related messages.
10664 (bus_driver_send_welcome_message):
10665 Send HELLO_REPLY instead of WELCOME.
10667 (bus_driver_handle_list_services):
10668 Send LIST_SERVICES_REPLY instead of SERVICES.
10670 (bus_driver_handle_own_service),
10671 (bus_driver_handle_service_exists):
10672 New message handlers.
10674 (bus_driver_handle_message):
10675 Invoke new message handlers.
10677 (bus_driver_remove_connection):
10678 Don't remove any services here since that's done automatically
10679 by bus_service_remove_owner now.
10682 New function signatures.
10684 * bus/services.c: (bus_service_add_owner):
10685 Send ServiceAcquired message if we're the only primary owner.
10687 (bus_service_remove_owner):
10688 Send ServiceAcquired/ServiceLost messages.
10690 (bus_service_set_prohibit_replacement),
10691 (bus_service_get_prohibit_replacement):
10692 Functions for setting prohibit replacement.
10694 (bus_service_has_owner):
10695 New function that checks if a connection is in the owner queue of
10699 Add new function signatures.
10701 * dbus/dbus-list.c: (_dbus_list_test):
10702 Add tests for _dbus_list_remove_last and traversing the list backwards.
10704 * dbus/dbus-list.h:
10705 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10706 go any further, so return NULL then.
10708 * dbus/dbus-protocol.h:
10709 Add new messages, service flags and service replies.
10711 2003-01-26 Havoc Pennington <hp@pobox.com>
10713 * dbus/dbus-message-builder.c: implement, completely untested.
10715 * test/data/*: add data to be used in testing.
10716 ".message" files are our simple loadable text format.
10717 ".message-raw" will be binary dumps of messages.
10719 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10721 2003-01-26 Havoc Pennington <hp@pobox.com>
10723 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10725 * dbus/dbus-errors.c (dbus_result_to_string): add
10728 * dbus/dbus-message-builder.c: new file, will contain code to load
10729 up messages from files. Not implemented yet.
10731 2003-01-26 Havoc Pennington <hp@pobox.com>
10733 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10734 the sender by setting to NULL
10736 2003-01-26 Havoc Pennington <hp@pobox.com>
10738 The unit tests pass, but otherwise untested. If it breaks, the
10739 tests should have been better. ;-)
10741 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10744 * dbus/dbus-message.c: redo everything so we maintain
10745 message->header as the only copy of the various fields.
10746 This avoids the possibility of out-of-memory in some cases,
10747 for example dbus_message_lock() can't run out of memory anymore,
10748 and avoids extra copying. Figured I may as well go ahead and do
10749 this since it was busted for dbus_message_lock to not return
10750 failure on OOM, and dbus_message_write_header was totally
10751 unchecked for OOM. Also fixed some random other bugs.
10753 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10754 that strings are nul-terminated. Also, end_pos can be equal
10755 to string length just not greater than, I think.
10756 (_dbus_marshal_set_int32): new function
10757 (_dbus_marshal_set_uint32): new function
10758 (_dbus_marshal_set_string): new function
10760 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10761 a warning, init timeout_list to NULL
10762 (dbus_connection_send_message): don't use uninitialized variable
10765 * dbus/dbus-string.c (_dbus_string_replace_len): new function
10767 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10769 * bus/driver.c: (bus_driver_handle_hello),
10770 (bus_driver_send_welcome_message):
10773 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10775 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10776 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10777 (dbus_connection_unref):
10778 * dbus/dbus-marshal.c: (_dbus_marshal_test):
10779 * dbus/dbus-message.c: (dbus_message_unref),
10782 (dbus_message_get_fields):
10783 Remove debugging printout.
10785 (_dbus_message_loader_return_buffer):
10786 Don't store the header string.
10788 (_dbus_message_test):
10791 2003-01-26 Richard Hult <rhult@codefactory.se>
10793 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10794 the file descriptor list, since it can change under us.
10796 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10798 * glib/dbus-gmain.c: (dbus_connection_prepare),
10799 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10800 (remove_watch), (dbus_connection_hookup_with_g_main):
10801 Rewrite the glib handling to use its own GSource instead of a
10802 GIOChannel so we can catch messages put in the queue while waiting
10805 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10808 * bus/connection.c: (connection_disconnect_handler),
10809 (connection_watch_callback), (bus_connection_setup):
10810 * bus/dispatch.c: (send_one_message),
10811 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10812 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10814 * bus/driver.c: (bus_driver_send_service_deleted),
10815 (bus_driver_send_service_created), (bus_driver_handle_hello),
10816 (bus_driver_send_welcome_message),
10817 (bus_driver_handle_list_services), (bus_driver_remove_connection),
10818 (bus_driver_handle_message):
10820 Refactor code, put the message dispatching in its own file. Use
10821 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10824 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10826 * dbus/dbus-internals.h:
10827 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10829 * dbus/dbus-message.c: (dbus_message_get_sender):
10830 * dbus/dbus-message.h:
10831 Implement dbus_message_get_sender.
10833 * dbus/dbus-protocol.h:
10834 Add message and service defines.
10836 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10838 * dbus/dbus-connection.c: (dbus_connection_send_message):
10839 * dbus/dbus-message-internal.h:
10840 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10841 (dbus_message_write_header):
10842 Remove _dbus_messag_unlock and don't set the client serial on a
10843 message if one already exists.
10845 2003-01-24 Havoc Pennington <hp@pobox.com>
10847 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10850 * bus/driver.c (bus_driver_handle_list_services): fix a leak
10853 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10855 * dbus/dbus-list.c: (alloc_link), (free_link):
10856 Use a memory pool for the links.
10858 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10860 * bus/connection.c: (bus_connection_foreach):
10861 * bus/connection.h:
10862 Add new bus_connection_foreach function.
10864 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10865 Add function that broadcasts a message to all clients.
10867 (bus_driver_send_service_created), (bus_driver_handle_hello),
10868 (bus_driver_send_welcome_message),
10869 (bus_driver_handle_list_services), (bus_driver_message_handler):
10870 Implement functions that take care of listing services, and notifying
10871 clients when new services are created.
10873 * bus/services.c: (bus_services_list):
10875 Add new function that returns an array of strings with the currently
10876 registered services.
10878 * glib/dbus-glib.h:
10879 * glib/dbus-gmain.c:
10880 Update copyright year.
10882 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10884 * dbus/dbus-connection.c: (dbus_connection_send_message):
10885 Unlock the message in case it was sent earlier.
10887 (dbus_connection_send_message_with_reply_and_block):
10888 Remove the reply message from the list.
10890 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10891 Set array_len and new_pos correctly.
10893 (_dbus_marshal_test):
10894 Remove debug output.
10896 * dbus/dbus-message-internal.h:
10897 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10898 New function that returns the reply serial.
10900 (_dbus_message_unlock):
10901 New function that unlocks a message and resets its header.
10903 (dbus_message_append_string_array),
10904 (dbus_message_get_fields_valist),
10905 (dbus_message_iter_get_field_type),
10906 (dbus_message_iter_get_string_array),
10907 (dbus_message_get_fields),
10908 (dbus_message_append_fields_valist):
10909 Handle string arrays.
10911 (dbus_message_set_sender):
10912 Make this function public since the bus daemon needs it.
10914 (decode_header_data):
10915 Set the reply serial to -1 initially.
10917 * dbus/dbus-message.h:
10918 Add dbus_message_set_sender.
10920 2003-01-24 Havoc Pennington <hp@pobox.com>
10922 * doc/dbus-specification.sgml: add some stuff
10924 2003-01-22 Havoc Pennington <hp@pobox.com>
10926 * doc/dbus-specification.sgml: Start to document the protocol.
10928 2003-01-22 Havoc Pennington <hp@pobox.com>
10930 * dbus/dbus-connection.c
10931 (dbus_connection_send_message_with_reply_and_block): add some @todo
10933 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10935 2003-01-21 Havoc Pennington <hp@pobox.com>
10937 (patch untested because can't compile)
10939 * bus/driver.c (create_unique_client_name): make this function
10940 never recycle client names. Also, caller should initialize
10943 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10945 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10947 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10948 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10949 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10950 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10951 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10952 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10953 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10954 * dbus/dbus-marshal.h:
10955 * dbus/dbus-protocol.h:
10956 Add support for marshalling and demarshalling integer, double
10959 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10964 * bus/connection.c: (connection_disconnect_handler):
10965 Remove the connection from the bus driver's list.
10967 (connection_watch_callback): Dispatch messages.
10969 (free_connection_data): Free connection name.
10971 (bus_connection_setup): Add connection to the bus driver's list.
10972 (bus_connection_remove_owned_service):
10973 (bus_connection_set_name), (bus_connection_get_name):
10974 Add functions for setting and getting the connection's name.
10976 * bus/connection.h:
10977 Add function headers.
10979 * bus/driver.c: (create_unique_client_name),
10980 (bus_driver_handle_hello_message),
10981 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10982 (bus_driver_add_connection), (bus_driver_remove_connection):
10985 * bus/services.c: (bus_service_free):
10987 New file that handles communication and registreation with the bus
10990 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10992 * dbus/dbus-connection.c: (dbus_connection_send_message):
10993 Add a new client_serial parameter.
10995 (dbus_connection_send_message_with_reply):
10996 Remove a @todo since we've implemented the blocking function.
10998 (dbus_connection_send_message_with_reply_and_block):
10999 New function that sends a message and waits for a reply and
11000 then returns the reply.
11002 * dbus/dbus-connection.h:
11005 * dbus/dbus-errors.c: (dbus_result_to_string):
11006 * dbus/dbus-errors.h:
11007 Add new DBUS_RESULT.
11009 * dbus/dbus-message-internal.h:
11010 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11011 (_dbus_message_set_sender), (dbus_message_write_header),
11012 (dbus_message_new_reply), (decode_header_data),
11013 (_dbus_message_loader_return_buffer), (_dbus_message_test):
11014 * dbus/dbus-message.h:
11015 Add new functions that set the reply serial and sender.
11016 Also marshal and demarshal them correctly and add test.
11018 * dbus/dbus-protocol.h:
11019 Add new DBUS_MESSAGE_TYPE_SENDER.
11021 * glib/dbus-glib.h:
11022 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11023 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11024 (dbus_connection_hookup_with_g_main):
11025 * glib/test-dbus-glib.c: (main):
11026 Rewrite to use GIOChannel and remove the GSource crack.
11028 * test/echo-client.c: (main):
11029 * test/watch.c: (check_messages):
11030 Update for changed APIs
11032 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11034 * dbus/Makefile.am: Add dbus-timeout.[cħ]
11036 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11037 Create a DBusTimeoutList.
11038 (dbus_connection_set_timeout_functions): Add new function to
11039 set timeout callbacks
11041 * dbus/dbus-connection.h: Add public DBusTimeout API.
11043 * dbus/dbus-message.c: (dbus_message_get_service):
11044 * dbus/dbus-message.h: New function.
11046 * dbus/dbus-server.c: Fix small doc typo.
11048 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11050 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11052 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11053 of the string, just as long as specified.
11055 2003-01-19 Havoc Pennington <hp@pobox.com>
11057 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11060 * dbus/dbus-server.c (dbus_server_set_max_connections)
11061 (dbus_server_get_max_connections, dbus_server_get_n_connections):
11062 keep track of current number of connections, and add API for
11063 setting a max (but haven't implemented enforcing the max yet)
11065 2003-01-18 Havoc Pennington <hp@pobox.com>
11067 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11068 reading/writing if read_watch != NULL or write_watch != NULL.
11070 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11071 the message loader code to actually load message->header and
11072 message->body into the newly-created message.
11074 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11077 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11078 (dbus_connection_get_max_message_size)
11079 (dbus_connection_set_max_live_messages_size)
11080 (dbus_connection_get_max_live_messages_size): implement some
11081 resource limitation functions
11083 * dbus/dbus-resources.c: new file implementing some of the
11084 resource limits stuff
11086 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11087 missing docs, add @todo to handle OOM etc.
11089 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11092 2003-01-18 Havoc Pennington <hp@pobox.com>
11094 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11095 connection if it hasn't been already.
11097 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11098 replace with DisconnectFunction.
11100 2003-01-18 Havoc Pennington <hp@pobox.com>
11102 Building --disable-verbose-mode --disable-asserts --disable-tests
11103 cuts the library from 112K to 45K or so
11105 * configure.in: check for varargs macro support,
11106 add --enable-verbose-mode, --enable-asserts.
11108 * dbus/dbus-internals.h (_dbus_assert): support
11109 DBUS_DISABLE_ASSERT
11110 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11112 2003-01-18 Havoc Pennington <hp@pobox.com>
11114 * dbus/dbus-test.c: include config.h so that tests actually run
11116 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11117 so the failure mode when that assumption fails will be plenty
11120 2003-01-18 Havoc Pennington <hp@pobox.com>
11122 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11124 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11127 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11128 since we don't want to use those in make check
11130 2003-01-15 Havoc Pennington <hp@redhat.com>
11136 2003-01-15 Havoc Pennington <hp@redhat.com>
11138 * test/Makefile.am: fix so that test source code ends up in the
11139 distribution on make distcheck
11141 2003-01-15 Havoc Pennington <hp@redhat.com>
11147 2003-01-15 Havoc Pennington <hp@redhat.com>
11149 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11150 fix build when --disable-tests
11152 * Makefile.am (EXTRA_DIST): put HACKING in here
11154 * HACKING: document procedure for making a tarball release.
11156 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11158 * bus/connection.c: (connection_error_handler),
11159 (bus_connection_setup):
11160 * bus/main.c: (main):
11161 Make sure that the DBusConnectionData struct is NULLed
11162 out to prevent a segfault.
11164 * dbus/dbus-errors.c: (dbus_result_to_string):
11165 * dbus/dbus-errors.h:
11166 * dbus/dbus-message.c: (dbus_message_get_fields),
11167 (dbus_message_get_fields_valist), (_dbus_message_test):
11168 * dbus/dbus-message.h:
11169 Make dbus_message_get_fields return a result code so we can
11170 track invalid fields as well as oom.
11172 2003-01-11 Havoc Pennington <hp@pobox.com>
11174 * configure.in: change --enable-test/--enable-ansi action-if-given
11175 to enable_foo=$enableval instead of enable_foo=yes
11177 2003-01-08 Havoc Pennington <hp@pobox.com>
11179 * dbus/dbus-string.c (_dbus_string_align_length): new function
11181 * dbus/dbus-test-main.c: move main() for test app here
11183 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11184 symbol to run tests, because dbus-test isn't in the main
11187 Code review nitpicks.
11189 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11190 for people with narrow emacs ;-). Assert client_serial was filled
11191 in. Assert message->name != NULL.
11192 (dbus_message_append_fields): have "first_field_type" arg separate
11193 from va list, needed for C++ binding that also uses varargs IIRC
11194 and helps with type safety
11195 (dbus_message_new): add @todo about using DBusString to store
11196 service/name internally
11197 (dbus_message_new): don't leak ->service and ->name on OOM later
11199 (dbus_message_unref): free the service name
11200 (dbus_message_get_fields): same change to varargs
11201 i.e. first_field_type
11202 (_dbus_message_loader_return_buffer): assert that the message data
11203 is aligned (if not it's a bug in our code). Put in verbose griping
11204 about why we set corrupted = TRUE.
11205 (decode_header_data): add FIXME that char* is evil. Was going to
11206 add FIXME about evil locale-specific string.h strncmp, but just
11207 switched to wacky string-as-uint32 optimization. Move check for
11208 "no room for field name" above get_const_data_len() to avoid
11209 assertion failure in get_const_data_len if we have trailing 2
11210 bytes or the like. Check for service and name fields being
11211 provided twice. Don't leak service/name on error. Require field
11212 names to be aligned to 4 bytes.
11214 * dbus/dbus-marshal.c: move byte swap stuff to header
11215 (_dbus_pack_int32): uscore-prefix
11216 (_dbus_unpack_int32): uscore-prefix
11217 (_dbus_unpack_uint32): export
11218 (_dbus_demarshal_string): add @todo complaining about use of
11220 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11221 handling allowing corrupt data to go unchecked
11223 2003-01-08 Havoc Pennington <hp@redhat.com>
11225 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11226 to the select() as needed for authentication. (should be using
11227 _dbus_poll() not select, but for another day)
11229 * dbus/dbus.h: include dbus/dbus-protocol.h
11231 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11233 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11236 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11238 * dbus/dbus-internals.c: (_dbus_type_to_string):
11239 New function that returns a string describing a type.
11241 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11242 * dbus/dbus-marshal.h:
11243 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11244 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11245 (dbus_message_iter_get_byte_array):
11246 * dbus/dbus-message.h:
11247 Add new convenience functions for appending and getting message fields.
11248 Also add demarshalling routines for byte arrays.
11250 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11252 * dbus/dbus-connection-internal.h:
11253 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11254 (_dbus_connection_get_next_client_serial),
11255 (dbus_connection_send_message):
11256 * dbus/dbus-internals.h:
11257 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11258 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11259 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11260 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11261 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11262 (_dbus_verbose_bytes), (_dbus_marshal_test):
11263 * dbus/dbus-marshal.h:
11264 * dbus/dbus-message-internal.h:
11265 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11266 (dbus_message_write_header), (_dbus_message_lock),
11267 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11268 (dbus_message_get_name), (dbus_message_append_int32),
11269 (dbus_message_append_uint32), (dbus_message_append_double),
11270 (dbus_message_append_string), (dbus_message_append_byte_array),
11271 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11272 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11273 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11274 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11275 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11276 (decode_header_data), (_dbus_message_loader_return_buffer),
11277 (message_iter_test), (_dbus_message_test):
11278 * dbus/dbus-message.h:
11279 * dbus/dbus-protocol.h:
11280 * dbus/dbus-test.c: (main):
11281 * dbus/dbus-test.h:
11282 * glib/test-dbus-glib.c: (message_handler), (main):
11283 * test/echo-client.c: (main):
11284 * test/watch.c: (check_messages):
11285 Make messages sendable and receivable for real.
11287 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11289 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11290 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11291 * dbus/dbus-message.c: (dbus_message_append_int32),
11292 (dbus_message_append_uint32), (dbus_message_append_double),
11293 (dbus_message_append_string), (dbus_message_append_byte_array):
11294 Handle OOM restoration.
11296 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11298 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11299 (_dbus_demarshal_string), (_dbus_marshal_test):
11300 * dbus/dbus-marshal.h:
11301 * dbus/dbus-message.c: (dbus_message_get_name),
11302 Document these functions.
11304 (dbus_message_append_int32), (dbus_message_append_uint32),
11305 (dbus_message_append_double), (dbus_message_append_string),
11306 (dbus_message_append_byte_array):
11307 * dbus/dbus-message.h:
11308 Add functions for adding message fields of different types.
11310 * dbus/dbus-protocol.h:
11311 Add the different types.
11313 2003-01-05 Havoc Pennington <hp@pobox.com>
11315 * bus/connection.c: implement routines for handling connections,
11316 first thing is keeping a list of owned services on each connection
11317 and setting up watches etc.
11319 * bus/services.c: implement a mapping from service names to lists
11322 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11324 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11325 to use static mutexes for global data
11327 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11328 collection of functions to set/get application-specific data
11329 on the DBusConnection.
11331 2003-01-04 Havoc Pennington <hp@pobox.com>
11333 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11334 (_dbus_poll): new function
11336 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11339 * bus/loop.c: initial code for the daemon main loop
11341 2003-01-04 Havoc Pennington <hp@pobox.com>
11343 * test/watch.c (error_handler): make it safe if the error handler
11344 is called multiple times (if we s/error handler/disconnect
11345 handler/ we should just guarantee it's called only once)
11347 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11348 error handler on disconnect (it's quite possible we should
11349 just change the error handler to a "disconnect handler," I'm
11350 not sure we have any other meaningful errors)
11352 * configure.in: check for getpwnam_r
11354 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11355 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11356 mechanism as in SASL spec, using socket credentials
11358 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11359 (_dbus_send_credentials_unix_socket): new function
11361 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11363 (_dbus_write): only check errno if <0 returned
11364 (_dbus_write_two): ditto
11366 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11368 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11369 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11370 (_dbus_marshal_test):
11371 * dbus/dbus-marshal.h:
11372 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11373 to _dbus_marshal_utf8_string. Also fix some tests.
11375 2002-12-28 Harri Porten <porten@kde.org>
11377 * configure.in: added check for C++ compiler and a very cheesy
11378 check for the Qt integration
11380 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11382 * qt/Makefile.am: added
11384 * qt/.cvsignore: added
11386 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11387 latter, added #ifdef QT_THREAD_SUPPORT guard.
11389 * dbus/Makefile.am: added missing headers for make dist
11391 2002-12-28 Kristian Rietveld <kris@gtk.org>
11393 * dbus/Makefile.am: fixup export-symbols-regex.
11395 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11397 * acinclude.m4: Add this file and put the
11398 PKG_CHECK_MODULE macro in it.
11400 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11402 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11403 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11404 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11405 (_dbus_marshal_test):
11406 Make the demarshalling routines align the pos argument.
11407 Add string marshalling tests and fix the obvious bugs
11410 2002-12-26 Havoc Pennington <hp@pobox.com>
11412 * dbus/dbus-auth.c: fixes fixes fixes
11414 * dbus/dbus-transport-unix.c: wire up support for
11415 encoding/decoding data on the wire
11417 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11418 (_dbus_auth_decode_data): append to target string
11419 instead of nuking it.
11421 2002-12-26 Havoc Pennington <hp@pobox.com>
11423 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11424 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11427 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11428 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11429 now). Main point is because I wanted unpack_uint32 to implement
11430 _dbus_verbose_bytes
11431 (_dbus_verbose_bytes): new function
11433 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11435 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11436 mechanism to handle a corrupt message stream
11437 (_dbus_message_loader_new): fix preallocation to only prealloc,
11440 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11441 (_dbus_string_test): enhance tests for copy/move and fix the
11444 * dbus/dbus-transport-unix.c: Hold references in more places to
11445 avoid reentrancy problems
11447 * dbus/dbus-transport.c: ditto
11449 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11450 leak reference count in no-message case
11452 * test/watch.c (do_mainloop): handle adding/removing watches
11453 during iteration over the watches. Also, ref the connection/server
11454 stored on a watch, so we don't try to mangle a destroyed one.
11456 * dbus/dbus-transport-unix.c (do_authentication): perform
11459 * dbus/dbus-auth.c (get_state): add a state
11460 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11461 (_dbus_auth_get_unused_bytes): append the unused bytes
11462 to the passed in string, rather than prepend
11464 * dbus/dbus-transport.c (_dbus_transport_init_base): create
11465 the auth conversation DBusAuth
11467 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11468 (_dbus_transport_new_for_domain_socket): when creating a
11469 transport, pass in whether it's a client-side or server-side
11470 transport so we know which DBusAuth to create
11472 2002-12-03 Havoc Pennington <hp@pobox.com>
11474 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11475 _after_ finalizing the derived members
11476 (unix_connection_set): unref watch if we fail to add it
11478 * dbus/dbus-connection.c (dbus_connection_unref): delete the
11479 transport first, so that the connection owned by the
11480 transport will be valid as the transport finalizes.
11482 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11483 if necessary, and remove watches from the connection.
11485 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11487 2002-12-26 Anders Carlsson <andersca@codefactory.se>
11489 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11490 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11491 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11492 (_dbus_marshal_test):
11493 * dbus/dbus-marshal.h:
11494 Add string marshal functions and have the demarshal functions
11495 return the new position.
11497 2002-12-25 Havoc Pennington <hp@pobox.com>
11499 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11500 it is a simple protocol that just maps directly to SASL.
11502 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11503 initial implementation, not actually used yet.
11505 * dbus/dbus-string.c (_dbus_string_find): new function
11506 (_dbus_string_equal): new function
11507 (_dbus_string_base64_encode): new function
11508 (_dbus_string_base64_decode): new function
11510 2002-12-25 Anders Carlsson <andersca@codefactory.se>
11512 * dbus/Makefile.am:
11513 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11514 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11515 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11516 (_dbus_demarshal_uint32), (_dbus_marshal_test):
11517 * dbus/dbus-marshal.h:
11518 * dbus/dbus-protocol.h:
11519 * dbus/dbus-test.c: (main):
11520 * dbus/dbus-test.h:
11521 Add un-optimized marshalling/demarshalling routines.
11523 2002-12-25 Harri Porten <porten@kde.org>
11525 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11527 2002-12-24 Zack Rusin <zack@kde.org>
11529 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11530 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11533 2002-12-24 Havoc Pennington <hp@pobox.com>
11535 * glib/dbus-gthread.c: fix include
11537 * glib/dbus-glib.h: rename DBusMessageHandler for now.
11538 I think glib API needs to change, though, as you don't
11539 want to use DBusMessageFunction, you want to use the
11540 DBusMessageHandler object. Probably
11541 dbus_connection_open_with_g_main_loop()
11542 and dbus_connection_setup_g_main_loop() or something like that
11543 (but think of better names...) that just create a connection
11544 that has watch/timeout functions etc. already set up.
11546 * dbus/dbus-connection.c
11547 (dbus_connection_send_message_with_reply): new function just to
11548 show how the message handler helps us deal with replies.
11550 * dbus/dbus-list.c (_dbus_list_remove_last): new function
11552 * dbus/dbus-string.c (_dbus_string_test): free a string that
11555 * dbus/dbus-hash.c: use memory pools for the hash entries
11556 (rebuild_table): be more paranoid about overflow, and
11557 shrink table when we can
11558 (_dbus_hash_test): reduce number of sprintfs and write
11559 valid C89. Add tests for case where we grow and then
11560 shrink the hash table.
11562 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11564 * dbus/dbus-connection.c (dbus_connection_register_handler)
11565 (dbus_connection_unregister_handler): new functions
11567 * dbus/dbus-message.c (dbus_message_get_name): new
11569 * dbus/dbus-list.c: fix docs typo
11571 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11572 an object representing a handler for messages.
11574 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11576 * glib/dbus-glib.h:
11577 * glib/dbus-gthread.c: (dbus_gthread_init):
11578 Don't use the gdbus prefix for public functions.
11580 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11584 Add GLib checks and fixup .pc files
11586 * glib/Makefile.am:
11587 * glib/dbus-glib.h:
11588 * glib/dbus-gmain.c: (gdbus_connection_prepare),
11589 (gdbus_connection_check), (gdbus_connection_dispatch),
11590 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11591 (dbus_connection_gsource_new):
11592 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11593 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11594 * glib/test-dbus-glib.c: (message_handler), (main):
11597 2002-12-15 Harri Porten <porten@kde.org>
11599 * autogen.sh: check for libtoolize before attempting to use it
11601 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11604 * .cvsignore: ignore more stamp files
11606 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11608 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11609 without make install.
11611 2002-12-15 Havoc Pennington <hp@pobox.com>
11613 * dbus/dbus-threads.c: add thread stubs that a higher library
11614 layer can fill in. e.g. the GLib wrapper might fill them in with
11615 GThread stuff. We still need to use this thread API to
11616 thread-safe-ize the library.
11618 2002-12-12 Havoc Pennington <hp@pobox.com>
11620 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11621 below new interfaces and include fewer system headers.
11623 * dbus/dbus-sysdeps.c (_dbus_read): new function
11624 (_dbus_write): new function
11625 (_dbus_write_two): new function
11626 (_dbus_connect_unix_socket): new function
11627 (_dbus_listen_unix_socket): new function
11629 * dbus/dbus-message-internal.h: change interfaces to use
11632 2002-12-11 Havoc Pennington <hp@pobox.com>
11634 * dbus/dbus-types.h: add dbus_unichar
11636 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11638 * dbus/dbus-connection.c (dbus_connection_send_message): return
11641 * dbus/dbus-transport.c: include dbus-watch.h
11643 * dbus/dbus-connection.c: include dbus-message-internal.h
11645 * HACKING: add file with coding guidelines stuff.
11647 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11648 handling here, for security purposes (as in vsftpd). Not actually
11649 using this class yet.
11651 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11652 system/libc usage here, as in vsftpd, for ease of auditing (and
11653 should also simplify portability). Haven't actually moved all the
11654 system/libc usage into here yet.
11656 2002-11-25 Havoc Pennington <hp@pobox.com>
11658 * dbus/dbus-internals.c (_dbus_verbose): fix to not
11659 always print the first verbose message.
11661 2002-11-24 Havoc Pennington <hp@pobox.com>
11663 * test/echo-client.c, test/echo-server.c: cheesy test
11666 * configure.in (AC_CHECK_FUNCS): check for writev
11668 * dbus/dbus-message.c (_dbus_message_get_network_data): new
11671 * dbus/dbus-list.c (_dbus_list_foreach): new function
11673 * dbus/dbus-internals.c (_dbus_verbose): new function
11675 * dbus/dbus-server.c, dbus/dbus-server.h: public object
11676 representing a server that listens for connections.
11678 * dbus/.cvsignore: create
11680 * dbus/dbus-errors.h, dbus/dbus-errors.c:
11681 public API for reporting errors
11683 * dbus/dbus-connection.h, dbus/dbus-connection.c:
11684 public object representing a connection that
11685 sends/receives messages. (Same object used for
11686 both client and server.)
11688 * dbus/dbus-transport.h, dbus/dbus-transport.c:
11689 Basic abstraction for different kinds of stream
11690 that we might read/write messages from.
11692 2002-11-23 Havoc Pennington <hp@pobox.com>
11694 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11697 * dbus/dbus-test.c (main): add list test, and include
11698 dbus-test.h as intended
11700 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11701 (_dbus_hash_table_remove_int): return value indicates
11702 whether the entry existed to remove
11704 * dbus/dbus-list.c: add linked list utility class,
11705 with docs and tests
11707 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11710 2002-11-23 Havoc Pennington <hp@pobox.com>
11712 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11713 DBUS_END_DECLS to nothing, that should fix this once and for all
11715 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11717 * dbus/dbus-message.c, dbus/dbus-hash.c:
11718 add some missing @brief
11720 2002-11-23 Havoc Pennington <hp@pobox.com>
11722 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11723 to avoid confusing Doxygen
11725 * dbus/dbus-hash.c: @} not }@
11727 * dbus/dbus-message.c (struct DBusMessage): split out
11730 2002-11-23 Havoc Pennington <hp@pobox.com>
11732 * configure.in: pile on more warning flags if using gcc
11734 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11735 to document static functions
11737 * configure.in: add summary to end of configure so it
11738 looks nice and attractive
11740 * dbus/dbus-hash.c: finish implementation and write unit
11743 * configure.in: add --enable-tests to enable unit tests
11745 * dbus/dbus-test.c: test program to run unit tests
11746 for all files in dbus/*, initially runs a test for
11749 * dbus/dbus-internals.h: file to hold some internal utility stuff
11751 2002-11-22 Havoc Pennington <hp@redhat.com>
11753 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11754 "ported" away from Tcl
11756 * dbus/dbus-types.h: header for types such as dbus_bool_t
11758 2002-11-22 Havoc Pennington <hp@redhat.com>
11760 * dbus/dbus.h: fixups for doc warnings
11762 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11764 (QUIET): make it quiet so we can see warnings
11766 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11768 2002-11-22 Havoc Pennington <hp@redhat.com>
11770 * Makefile.am: include "Doxyfile" target in all-local
11772 * configure.in: generate the Doxyfile
11774 * Doxyfile.in: move Doxyfile here, so we can use
11775 configure to generate a Doxyfile with the right
11776 version number etc.
11778 2002-11-22 Havoc Pennington <hp@redhat.com>
11780 * dbus/dbus-message.c: move inline docs into .c file
11782 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11783 so all docs are under doc/
11784 (MAN_EXTENSION): generate man pages. Use extension
11785 ".3dbus" which matches ".3qt" on my system,
11786 I guess this is OK, I don't know really.
11787 (FILE_PATTERNS): look for .c files not .h, makes sense
11788 for plain C I think
11790 2002-11-22 Havoc Pennington <hp@pobox.com>
11792 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11793 because any app can be a server, and any app can be a client,
11794 the bus is a special kind of server.
11796 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
11798 * Doxyfile : adding. Still needs Makefile rules to be generated
11799 automatically (just run "doxygen" in the toplevel dir for now to
11802 * dbus/dbus-message.h : Adding sample docs (javadoc since
11803 resembles gtk-doc a little more)
11805 * dbus/dbus.h : Adding sample docs
11807 2002-11-21 Havoc Pennington <hp@redhat.com>
11809 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11810 so we can allow ourselves to include files directly,
11811 instead of having to use dbus.h
11813 * dbus/dbus.h: fill in
11815 * dbus/dbus-message.h: sketch out a sample header file.
11816 Include griping if you include it directly instead of
11819 * dbus/dbus-macros.h: new file with macros for extern "C",
11820 TRUE/FALSE, NULL, etc.
11822 * doc/file-boilerplate.c: put include guards in here
11824 2002-11-21 Havoc Pennington <hp@redhat.com>
11826 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11828 * COPYING: include the GPL as well, and license code
11829 under both AFL and GPL.
11831 2002-11-21 Havoc Pennington <hp@redhat.com>
11833 * acconfig.h: get rid of this
11835 * autogen.sh (run_configure): add --no-configure option
11837 * configure.in: remove AC_ARG_PROGRAM to make
11838 autoconf complain less. add AC_PREREQ.
11839 add AC_DEFINE third arg.
11841 2002-11-21 Anders Carlsson <andersca@codefactory.se>
11844 Fix references so we can distcheck.
11846 2002-11-21 Havoc Pennington <hp@redhat.com>
11848 * Initial module creation