1 2005-07-29 Havoc Pennington <hp@redhat.com>
3 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
4 (match_rule_matches): remove unused arg
5 (test_matching): add tests for match_rule_matches()
7 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
8 do arg0='foo' arg5='bar' in the match rules
9 (match_rule_matches): don't match if the arg0='foo' doesn't match.
11 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
13 2005-07-29 Ross Burton <ross@openedhand.com>
15 * dbus/dbus-connection.c:
16 Don't create a DBusCondVar which is never used.
18 2005-07-27 Ross Burton <ross@openedhand.com>
20 * dbus/dbus-message.c:
21 Reduce the size of the maximum cached message to 10K.
23 2005-07-25 Ross Burton <ross@openedhand.com>
26 Remove matches when all proxies are unregistered.
28 2005-07-24 Colin Walters <walters@verbum.org>
30 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
31 typedata; recursive arrays won't have it.
33 * test/glib/test-dbus-glib.c:
34 * test/glib/test-service-glib.c:
35 * test/glib/test-service-glib.xml: Add recursive arrays tests.
37 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
39 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
40 proxies.py, service.py: Cleanup of code after running it through the
41 pyflakes code checker mostly dealing with undefined names.
42 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
44 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
46 * NEWS: Update to 0.35.2
48 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
50 * python/_dbus.py: Remove import of the dbus.services
51 module as it no longer exists (patch from Dimitur Kirov)
53 * python/service.py (Object::__init__): Fixed typo
54 s/name/bus_name (patch from Dimitur Kirov)
56 * python/examples/example-signal-emitter.py: import dbus.glib
57 to get the main loop and use glib mainloop instead of gtk so
58 X doesn't have to be running.
60 * python/examples/example-signal-recipient.py: import dbus.glib
61 to get the main loop and use glib mainloop instead of gtk so
62 X doesn't have to be running. Import the decorators module
65 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
66 didn't pick up on but are needed to build
68 * configure.in: upped version to 0.35.2
70 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
71 added Colin Walters' SELinux API rename patch from head
72 s/unix sercurity context/selinux security context/
74 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
76 * python/Makefile.am: dbus_binding.pxd.in should be included
77 in EXTRA_DIST not dbus_binding.pxd
78 fix up $(srcdir) hopefully for the last time
80 * NEWS: Update to 0.35.1
82 2005-07-16 Colin Walters <walters@verbum.org>
84 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
85 from bus_driver_handle_get_connection_unix_security_context. Update for
87 (message_handlers): Update for renames.
89 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
90 _dbus_string_init failure correctly.
91 (bus_selinux_append_context): Convert SID to context. Append it
93 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
96 * bus/selinux.h: Update prototype.
98 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
99 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
101 2005-07-15 Colin Walters <walters@verbum.org>
103 * doc/TODO: Add note about convenience wrappers.
105 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
107 * NEWS: Update to 0.35
109 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
111 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
112 so distcheck doesn't fail
114 * glib/examples/Makefile.am: Add example-service.xml and
115 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
117 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
118 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
120 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
121 compiler looks in the right places during distcheck
123 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
125 * glib/example/Makefile.am: Fix a typo which cause make distcheck
128 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
130 * python/examples/example-service.py,
131 python/examples/example-signal-emitter.py: Fixed up examples
134 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
136 * python/__init__.py: Upped to version (0,42,0) because of
139 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
141 * ChangeLog: fix date in last entry
143 * configure.in, bus/system.conf.in: add the ability to configure
144 the system bus user at compiletime with the --with-dbus-user flag
145 (patch from Kristof Vansant)
147 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
149 * bus/dispatch.c, test/test-service.c: Add testcase
150 for sending messages to oneself (TODO item).
152 * python/service.py (class Object): Swap ordering of bus_name
153 and object_path parameters to better support inheritance.
155 * doc/dbus-tutorial.xml: change Python docs to reflect change
156 in parameter ordering and fix the inheritance section.
158 * doc/TODO: remove sending message to oneself TODO item
160 2005-07-15 Ross Burton <ross@openedhand.com>
162 * glib/dbus-gproxy.c:
163 Fix a leak when calling methods via the proxy.
165 2005-07-15 Colin Walters <walters@verbum.org>
167 * bus/selinux.c (bus_selinux_append_context): Wrap in
170 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
172 * python/_dbus.py (Bus::remove_signal_receiver):
173 don't add a callback to the match if none has been passed in
175 * python/matchrules.py (SignalMatchTree::remove): if the rule
176 being matched does not have a callback treat it as a wildcard
179 * doc/dbus-tutorial.xml: Add Python tutorial
181 2005-07-14 Colin Walters <walters@verbum.org>
184 (bus_driver_handle_get_connection_unix_security_context): New function.
185 (message_handlers): Add.
187 * bus/selinux.c (bus_selinux_append_context): New function; appends
188 security context to message.
190 * bus/selinux.h: Prototype.
192 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
194 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
196 * bus/activation.c: clean up all tabs to be 8 spaces
197 (bus_activation_activate_service): make sure we clean up
200 * bus/dispatch.c: clean up all tabs to be 8 spaces
201 (check_shell_fail_service_auto_start): New function
202 tests to make sure we get fail properly when trying to auto start a service
203 with a faulty command line
204 (check_shell_service_success_auto_start): New function tests to make sure
205 auto started services get the arguments on the command line
207 * test/test-shell-service.c: Added service for testing auto-starting with
208 command line arguments
210 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
211 test/data/valid-service-files/debug-shell-echo-success.service.in:
212 Added service files for testing auto-starting with command line arguments
214 * */.cvsignore: added a bunch of generated files to various .cvsignore files
216 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
218 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
220 * dbus/Makefile.am: added new files to build.
222 * bus/activation.c (bus_activation_activate_service): support
223 activation commands with parameters.
225 * test/shell-test.c: added test program for the shell parsing
228 2005-07-13 David Zeuthen <davidz@redhat.com>
230 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
231 64 bit signed and unsigned parameters
233 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
235 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
237 * python/service.py (class Name): renamed BusName to make it clearer
238 what the object is for (a name on the bus)
240 * python/examples/example-service.py,
241 python/examples/example-signal-emitter.py: change the Name object to
244 2005-07-12 Colin Walters <walters@verbum.org>
246 Patch from Jim Gettys <Jim.Gettys@hp.com>.
248 * tools/dbus-launch.c: Include sys/select.h.
250 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
251 * python/dbus_bindings.pyx.in: removed
253 * python/dbus_bindings.pyx: Added.
254 - Fixed some memleaks (patch from
255 Sean Meiners <sean.meiners@linspireinc.com>)
256 - Broke out the #include "dbus_h_wrapper.h" and put it in its
257 own pxd file (Pyrex definition)
258 - Broke out glib dependancies into its own pyx module
260 * python/dbus_bindings.pdx: Added.
261 - Defines C class Connection for exporting to other modules
263 * python/dbus_glib_bindings.pyx: Added.
264 - New module to handle lowlevel dbus-glib mainloop integration
266 * python/glib.py: Added.
267 - Registers the glib mainloop when you import this module
269 * python/services.py: Removed (renamed to service.py)
271 * python/service.py: Added.
272 - (class Server): renamed Name
274 * python/__init__.py: Bump ro version (0,41,0)
275 -don't import the decorators or service module
276 by default. These now reside in the dbus.service namespace
278 * python/_dbus.py (Bus::__init__): Add code run the main loop
279 setup function on creation
281 * python/examples/example-service.py,
282 python/examples/example-signal-emitter.py: update examples
284 * python/examples/gconf-proxy-service.py,
285 python/examples/gconf-proxy-service2.py: TODO fix these up
288 - Added a Python Bindings 1.0 section
289 - added "Add match on args or match on details to match rules"
292 2005-07-12 Colin Walters <walters@verbum.org>
294 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
295 (statemachine-glue.h):
296 * glib/examples/Makefile.am (example-service-glue.h)
297 (example-signal-emitter-glue.h):
298 * glib/Makefile.am (dbus-glib-error-switch.h):
299 Add libtool --mode=execute so we use the built library instead
300 of any installed one.
302 2005-07-11 Colin Walters <walters@verbum.org>
304 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
305 (dbus_g_value_types_init): Remove assertion.
306 (dbus_g_value_get_g_type, dbus_g_value_open)
307 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
308 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
309 functions related to DBusGValue. Now we marshal/demarshal
310 structures as GValueArray.
311 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
313 (signature_iter_to_g_type_array): Don't call
314 signature_iter_to_g_type_struct.
315 (signature_iter_to_g_type_struct): Delete.
316 (dbus_gvalue_to_signature): Delete.
317 (dbus_gvalue_to_signature): New function with same name as other
318 one; we can convert structures to signatures.
319 (demarshal_valuearray): New function.
320 (get_type_demarshaller): Use it.
321 (demarshal_recurse): Delete.
322 (marshal_proxy): New function.
323 (marshal_map): Warn if we can't determine signature from type.
324 (marshal_collection_ptrarray): Ditto.
325 (marshal_collection_array): Ditto.
326 (get_type_marshaller): Use marshal_valuearray.
327 (marshal_recurse): Delete.
328 (_dbus_gvalue_test): Add some tests.
330 * dbus/dbus-glib.h (struct _DBusGValueIterator):
331 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
332 (dbus_g_value_open, dbus_g_value_iterator_get_value)
333 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
334 (dbus_g_value_free): Remove prototypes.
336 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
339 * glib/examples/example-service.c:
340 * glib/examples/example-client.c: Implement GetTuple.
342 * test/glib/test-dbus-glib.c:
343 * test/glib/test-service-glib.c:
344 * test/glib/test-service-glib.xml: Add structure tests.
346 2005-07-10 Colin Walters <walters@verbum.org>
348 * doc/TODO: Knock off some GLib items with this patch.
350 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
351 (_dbus_gvalue_signals_error): New functions.
353 * glib/dbus-gvalue-utils.h: Prototype them.
355 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
356 and change to not output const/retval flags for input args. All
358 (invoke_object_method): Refactor to handle return values. Add
359 some more comments in various places. Remove debug g_print.
361 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
363 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
365 (compute_gsignature): New function; refactored from code from
366 compute_marshaller and compute_marshaller_name. Enhance to
367 handle return values and async ops more cleanly. Update for
368 async ops returning NONE instead of BOOLEAN.
369 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
370 and output appropriate string.
371 (generate_glue): Handle return value annotation. Also don't dump
372 constness flag for input arguments.
374 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
375 files shared between installed library and utilities.
376 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
377 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
378 binding tool can access gtype utility functions.
380 * test/glib/test-service-glib.c:
381 * test/glib/test-service-glib.xml:
382 * test/glib/test-dbus-glib.c: Add some tests for return values.
384 2005-07-09 Colin Walters <walters@verbum.org>
386 * glib/dbus-gparser.c (parse_annotation): Add annotations to
387 argument if available, not method.
389 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
390 (invoke_object_method): First, remove some redundant
391 GValues (object_value, error_value) in favor of working on
392 array directly. Second, rework constness to be less buggy.
393 Now we iterate directly over the argument metadata instead
394 of parallel iterating over output signature and metadata.
396 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
398 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
399 annotation on input args.
401 2005-07-09 Colin Walters <walters@verbum.org>
403 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
406 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
409 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
410 (method_dir_signature_from_object_info): Handle arg_iterate change.
411 (write_interface): Ditto.
412 (lookup_object_info): Don't barf if format_version is > 0.
413 (invoke_object_method): Handle arg constness.
415 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
416 (arg_info_new): Create.
417 (arg_info_unref): Destroy.
418 (arg_info_get_annotations, arg_info_get_annotation)
419 (arg_info_add_annotation): New functions.
421 * glib/dbus-gidl.h: Prototype them.
423 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
424 args, disallow them in properties.
425 (parse_annotation): Handle arg annotations.
427 * test/glib/test-service-glib.xml:
428 * test/glib/test-service-glib.c: Update to make some methods
431 2005-07-08 Colin Walters <walters@verbum.org>
433 * test/glib/test-service-glib.xml:
434 * test/glib/test-service-glib.c:
435 * test/glib/test-dbus-glib.c: Test a{sv}.
437 * glib/examples/statemachine/statemachine.c:
438 * glib/examples/statemachine/statemachine-server.c:
439 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
440 add progress bar, etc.
442 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
443 needed anymore due to generic array/map marshalling.
444 (dbus_g_value_types_init): Don't register basic arrays or the
446 (dbus_gtype_from_signature_iter): Don't try to recurse into
448 (dbus_gtype_to_signature): Check collection/map before type
450 (demarshal_garray_basic): Renamed to demarshal_collection_array.
451 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
452 generic map creation/append functions instead of hash table
454 (get_type_demarshaller): Handle maps.
455 (demarshal_collection): Dispatch on collection type to either
456 demarshal_collection_ptrarray or demarshal_collection_array.
457 (get_type_marshaller): Handle maps.
458 (marshal_collection): Dispatch collection type to either
459 marshal_collection_ptrarray or marshal_collection_array.
460 (_dbus_gvalue_test): New test.
462 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
463 (hash_free_from_gtype): Use it to free GValues.
464 (hashtable_append): New function.
465 (ptrarray_append): Fix prototype.
466 (slist_append): Ditto.
467 (_dbus_gvalue_utils_test): Extend tests.
469 * glib/dbus-gtype-specialized.c
470 (dbus_g_type_specialized_init_append): Renamed from
471 dbus_g_type_specialized_collection_init_append. Remove const from
472 value, since we steal it.
473 (dbus_g_type_specialized_map_append): New function.
475 * glib/dbus-gtype-specialized.h: Update prototypes.
476 Add DBusGTypeSpecializedMapAppendFunc.
478 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
481 * glib/dbus-gtest.h: Prototype it.
483 2005-07-08 Ross Burton <ross@openedhand.com>
486 Add DBysGAsyncData for the async bindings.
488 * glib/dbus-binding-tool-glib.c:
489 Re-enable the async bindings.
491 * test/glib/test-dbus-glib.c:
492 Add a test for the generated async bindings.
494 2005-07-08 Colin Walters <walters@verbum.org>
496 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
499 2005-07-08 Colin Walters <walters@verbum.org>
501 * tools/Makefile.am: Kill of print-introspect in favor of using
502 dbus-send --print-reply=literal.
504 * test/glib/test-service-glib.xml:
505 * test/glib/test-service-glib.c (my_object_get_objs): New test
508 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
509 (main): Test GetObjs.
511 * glib/examples/statemachine/Makefile.am:
512 * glib/examples/statemachine/sm-marshal.list:
513 * glib/examples/statemachine/statemachine-client.c:
514 * glib/examples/statemachine/statemachine-server.c:
515 * glib/examples/statemachine/statemachine-server.xml:
516 * glib/examples/statemachine/statemachine.c:
517 * glib/examples/statemachine/statemachine.h:
518 * glib/examples/statemachine/statemachine.xml:
522 * glib/examples/example-service.c (main): Move invocation
523 of dbus_g_object_type_install_info earlier, to emphasize it
524 should only be done once.
526 * glib/examples/example-signal-emitter.c (main): Ditto.
528 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
530 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
531 (dbus_gvalue_marshal): Update prototypes.
533 * glib/dbus-gvalue.c: Update all marshalling functions to take
534 const GValue instead of GValue.
535 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
537 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
539 (dbus_gtype_to_signature): Handle generic collecitons and maps.
540 Return a newly-allocated string.
541 (demarshal_proxy, demarshal_object_path, demarshal_object)
542 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
543 we get the wrong types from message.
544 (get_type_demarshaller): New function, extracted from
545 dbus_gvalue_demarshal.
546 (demarshal_collection): New function, demarshals generic
548 (dbus_gvalue_demarshal): Just invoke result of
549 get_type_demarshaller. Throw error if we don't have one.
550 (marshal_garray_basic): Abort on OOM.
551 (get_type_marshaller): New function, extracted from
553 (collection_marshal_iterator, marshal_collection): New functions;
554 implements generic marshalling for an iteratable specialized
556 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
558 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
560 (ptrarray_value_from_gvalue): Ditto.
561 (ptrarray_append, ptrarray_free): New functions.
562 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
563 (slist_append, slist_end_append, slist_free): New functions.
564 (dbus_g_type_specialized_builtins_init): Add append fuctions
565 for GPtrArray and GSList. Register GSList.
566 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
568 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
570 (dbus_g_type_specialized_collection_init_append)
571 (dbus_g_type_specialized_collection_append)
572 (dbus_g_type_specialized_collection_end_append): Prototype.
573 (DBusGTypeSpecializedCollectionVtable): Add append_func and
576 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
577 (dbus_g_type_specialized_collection_append)
578 (dbus_g_type_specialized_collection_end_append): New functions.
579 (dbus_g_type_map_value_iterate): Take const GValue.
580 (dbus_g_type_collection_value_iterate): Ditto.
582 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
583 _dbus_gvalue_utils_test.
585 * glib/dbus-gtest.h: Prototype it.
587 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
588 using uninitialized owner_list.
589 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
591 (dbus_g_proxy_end_call_internal): Update to use error set
592 from dbus_gvalue_demarshal instead of setting it here.
593 (dbus_g_proxy_begin_call): Move return_if_fail here.
595 * glib/dbus-gobject.c (write_interface): Update for
596 dbus_gtype_to_signature returning new string.
598 * configure.in: Add glib/examples/statemachine.
600 2005-07-08 Joe Shaw <joeshaw@novell.com>
602 * configure.in: Add a configure option, --with-console-auth-dir
604 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
605 new setting. Patch from Kay Sievers.
607 2005-07-06 Colin Walters <walters@verbum.org>
609 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
610 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
611 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
612 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
613 Delete in favor of dbus_g_proxy_begin_call and
614 dbus_g_proxy_cancel_call.
615 (DBusGProxyCall, DBusGProxyCallNotify): New.
616 (dbus_g_proxy_begin_call): Change prototype to take callback, user
617 data, and destroy function. This replaces
618 dbus_g_pending_call_set_notify.
619 (dbus_g_proxy_cancel_call): Prototype.
620 (DBusGAsyncData): Delete, shouldn't be needed anymore.
622 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
624 (struct _DBusGProxyManager): Add bus_proxy member, which is an
625 internal proxy for calls to the bus. Remove
626 pending_nameowner_calls, now the internal proxy keeps track.
627 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
628 pending_nameowner_calls.
629 (got_name_owner_cb): Update prototype, and use
630 dbus_g_proxy_end_call.
631 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
632 (dbus_g_proxy_manager_register): Delete directly libdbus code in
633 favor of using internal proxy.
634 (dbus_g_proxy_manager_unregister): Update to use
635 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
636 (dbus_g_proxy_init): Initialize pending calls map.
637 (dbus_g_proxy_constructor): New.
638 (dbus_g_proxy_class_init): Add get/set property functions,
639 constructor, and add NAME, PATH, and INTERFACE properties.
640 (cancel_pending_call): New function.
641 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
643 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
644 (GPendingNotifyClosure): New structure.
645 (d_pending_call_notify, d_pending_call_free): Moved here from
647 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
649 (manager_begin_bus_call): New internal function for talking to
651 (dbus_g_proxy_new): Construct object using GObjet properties.
652 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
653 Create closure of same, and insert call into map of pending calls.
654 (dbus_g_proxy_end_call_internal): Take call id instead of pending
655 call. Look up pending call in current set. Remove it when we've
657 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
658 (dbus_g_proxy_begin_call): Change API to take callback, user data,
659 and destroy function directly.
660 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
661 (dbus_g_proxy_call): Invoke with NULL callback.
662 (dbus_g_proxy_cancel_call): New function, replaces
663 dbus_g_pending_call_cancel.
665 * glib/dbus-gparser.c (validate_signature): Fix call to
668 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
669 New quark for attaching metadata to GType.
671 (lookup_object_info): Look up using quark.
672 (dbus_g_object_type_install_info): Check that a type is classed,
673 not that it's an object. Also just install type data using quark
674 instead of using global hash.
676 * glib/dbus-glib.c (dbus_g_pending_call_ref)
677 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
678 (GPendingNotifyClosure): Delete.
679 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
680 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
682 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
683 client method generation until we can fix it...
685 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
686 (load_from_service_thread_func): Ditto.
688 * tools/dbus-names-model.c (struct NamesModel): Hold
690 (have_names_notify): Update prototype, use
691 dbus_g_proxy_cancel_call.
692 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
694 * tools/dbus-monitor.c (filter_func): Update for print_message
697 * test/glib/test-dbus-glib.c: Add more tests for async
698 invocations. Update many begin_call/end_call pairs to just use
701 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
702 allows us to dump print-introspect.c.
704 * tools/dbus-print-message.h (print_message): Add literal argument
705 to print_message which is intended to allow printing arguments without
706 metadata like "string=".
708 * tools/dbus-print-message.c (print_iter): Add literal argument.
709 (print_message): Allow printing string messages literally.
711 2005-07-05 Colin Walters <walters@verbum.org>
713 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
714 Remove value refcount leak, original patch from Jorn Baayen
715 <jorn@openedhand.com>. Also remove useless extra value in favor
716 of prepending to value array directly.
718 2005-07-02 Colin Walters <walters@verbum.org>
720 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
722 2005-07-01 Colin Walters <walters@verbum.org>
724 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
726 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
727 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
728 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
729 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
731 2005-06-30 Colin Walters <walters@verbum.org>
733 * test/glib/test-dbus-glib.c:
734 * test/glib/test-service-glib.c:
735 * test/glib/test-service-glib.xml: Update tests for new error
736 setting bits, also add async tests (patch from Ross Burton).
738 * test/glib/Makefile.am (test_service_glib_LDADD): Add
739 DBUS_GLIB_THREADS_LIBS.
741 * glib/dbus-gproxy.c (get_name_owner)
742 (dbus_g_pending_call_end_valist): Ditto.
744 * glib/dbus-gobject.c (error_metadata): New mapping from GError
745 domain (GQuark) to DBusGErrorInfo.
746 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
747 quark in error_metadata. Take message interface as default
748 error message interface.
749 (gerror_to_dbus_error_message): Pass message interface.
750 (dbus_set_g_error): Resurrected.
751 (dbus_g_error_info_free): New function.
752 (dbus_g_object_type_install_info): Use g_type_class_ref instead
753 of _peek to actually create the object class if it hasn't been
755 (dbus_g_error_domain_register): New function.
757 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
759 * glib/dbus-gparser.c (validate_signature): Ditto.
761 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
762 (dbus_g_error_domain_register): Prototype.
764 * glib/dbus-glib.c (dbus_g_error_set): Delete.
767 2005-06-29 Colin Walters <walters@verbum.org>
769 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
770 DBUS_TYPE_G_OBJECT_PATH.
772 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
773 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
774 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
775 (dbus_g_object_path_get_g_type): New function.
776 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
777 to DBUS_TYPE_G_OBJECT_PATH by default.
778 (demarshal_proxy): Remove unused name variable.
779 (demarshal_object_path, marshal_object_path): New functions.
780 (demarshal_proxy_array, marshal_proxy_array): Delete.
782 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
783 DBUS_TYPE_G_OBJECT_PATH to char *.
784 (dbus_g_type_get_lookup_function): Map builtin
785 DBUS_TYPE_G_OBJECT_PATH.
787 * test/glib/test-dbus-glib.c
788 * test/glib/test-service-glib.c (my_object_objpath):
789 Adapt tests to new object path marshalling.
791 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
793 * configure.in: force check for Python >= 2.4
795 2005-06-29 Colin Walters <walters@verbum.org>
797 Patch from Ross Burton <ross@openedhand.com>
799 * glib/dbus-gobject.c (invoke_object_method): Unset object
800 value in all cases, not only in async case.
802 2005-06-29 Colin Walters <walters@verbum.org>
804 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
805 name_call for keeping track of any outgoing GetNameOwner call.
806 Also add for_owner and associated.
807 (struct _DBusGProxyManager): Add owner_names, which is hash table
808 that maps a base name to a list of names it owns (that we're
809 interested in). Add pending_nameowner_calls which is a list of
810 all outstanding GetNameOwner; avoids us having to iterate over
811 every proxy. Add unassociated_proxies which keeps track of name
812 proxies with no associated name owner.
813 (dbus_g_proxy_manager_unref): Destroy owner_names.
814 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
816 (find_name_in_info, name_owner_foreach)
817 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
818 (dbus_g_proxy_manager_monitor_name_owner)
819 (dbus_g_proxy_manager_unmonitor_name_owner)
820 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
821 New functions; they manipulate the owner_names mapping.
822 (got_name_owner_cb): New function.
823 (get_name_owner): New function, extracted from
824 dbus_g_proxy_new_for_name_owner.
825 (dbus_g_proxy_manager_register): For now we need to keep track of
826 all NameOwnerChanged. Also if the proxy is for a name, if we
827 don't already know the name owner, queue a new GetNameOwner
828 request and add it to our list of unassociated proxies. Otherwise
830 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
831 cancel any pending GetNameOwner call, etc.
832 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
833 the owner_names mapping to look up the current names for the
834 signal source, and dispatch to any proxies for that name.
835 (dbus_g_proxy_new): Initialize new members.
836 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
837 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
838 (dbus_g_pending_call_end_valist): New function, extracted from
839 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
840 but want to use the GLib infrastructure. Also note how many
841 arguments in reply were over.
842 (dbus_g_pending_call_end): New function, just call
843 dbus_g_pending_call_end_valist.
844 (dbus_g_proxy_end_call_internal): Just call
845 dbus_g_pending_call_end_valist.
847 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
848 of builtin marshaller for STRING_STRING_STRING.
850 * test/glib/test-dbus-glib.c:
851 * test/glib/test-service-glib.c:
852 * test/glib/test-service-glib.xml:
853 Extend tests to cover name proxies, destruction of owner proxies,
856 * glib/examples/example-signal-recipient.c
857 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
859 * tools/dbus-send.c (main): Print D-BUS error name in addition
862 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
864 * python/dbus_bindings.pyx.in (cunregister_function_handler,
865 cmessage_function_handler): Patch from
866 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
867 by using the Py_GILState_Ensure/Release to synchronize with the
870 2005-06-28 Ray Strode <rstrode@redhat.com>
872 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
873 babysitter helper process on last unref, bug #2813.
875 2005-06-27 Colin Walters <walters@verbum.org>
877 * test/glib/test-dbus-glib.c:
878 * test/glib/test-service-glib.c:
879 * test/glib/test-service-glib.xml:
880 Test hash table signal emitting.
882 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
883 types to their fundamental basis types, since this is what
884 marshallers operate on. Also add an entry for VOID__BOXED.
885 (dbus_g_object_register_marshaller_array): Convert to fundamental.
887 2005-06-26 Havoc Pennington <hp@redhat.com>
889 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
892 2005-06-26 Colin Walters <walters@verbum.org>
894 * glib/dbus-glib.c (dbus_set_g_error): Delete.
895 (dbus_g_error_set): New public function from its ashes; used by
896 both service-side method implementation and GLib bindings
898 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
899 (_dbus_glib_test): Add some tests.
901 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
903 * test/glib/test-service-glib.c (my_object_throw_error): Use
906 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
907 errors thrown by dbus_g_error_set.
909 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
911 * glib/dbus-gparser.c (validate_signature): Ditto.
913 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
914 (dbus_g_proxy_end_call_internal): Ditto.
916 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
917 converts DBUS_ERROR_x to DBUS_GERROR_x.
918 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
920 * doc/TODO: Remove error TODO.
922 * doc/dbus-tutorial.xml: Update with documentation about error
925 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
926 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
927 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
929 2005-06-22 Colin Walters <walters@verbum.org>
931 Patch from Ross Burton <ross@openedhand.com>
933 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
935 2005-06-20 Colin Walters <walters@verbum.org>
937 * configure.in: Add glib/examples.
939 * glib/Makefile.am: Add examples/
941 * glib/examples/.cvsignore
942 * glib/examples/Makefile.am
943 * glib/examples/example-client.c
944 * glib/examples/example-service.c
945 * glib/examples/example-service.xml
946 * glib/examples/example-signal-emitter.c
947 * glib/examples/example-signal-emitter.xml
948 * glib/examples/example-signal-recipient.c:
949 New files; GLib binding examples, ported from
952 2005-06-20 Colin Walters <walters@verbum.org>
955 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
958 * glib/dbus-binding-tool-glib.c:
959 * doc/dbus-tutorial.xml:
960 * test/glib/test-dbus-glib.c: Update for rename.
962 2005-06-20 Colin Walters <walters@verbum.org>
964 Patch suggested by Ross Burton <ross@openedhand.com>
966 * glib/dbus-gobject.c (export_signals): Free signal name.
967 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
968 memory leak. Add a bit of documentation.
969 (dbus_g_method_return_error): Free context, and note we do
972 2005-06-18 Murray Cumming <murrayc@murrayc.com>
975 * glib/dbus-gobject.c:
976 * glib/dbus-gproxy.c:
977 * glib/dbus-gvalue.c: Predeclare structs as
978 typedef struct _Something Something instead of
979 typedef struct Something Something, so we can
980 redeclare the prototypes. Other GNOME libraries
983 2005-06-17 Colin Walters <walters@verbum.org>
985 * tools/dbus-names-model.c (have_names_notify): Fix call
986 to dbus_g_proxy_end_call.
988 2005-06-17 Colin Walters <walters@verbum.org>
990 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
991 spew warnings if we get malformed remote signals.
993 * glib/dbus-gobject.c (propsig_iterate): New function.
994 (lookup_object_info): New function, extracted from
995 lookup_object_and_method.
996 (introspect_properties, introspect_signals): Delete; these
997 are merged into write_interface.
998 (write_interface): Write out signals and properties here;
999 dump the org.gtk.object stuff and use the interface given
1000 in the introspection data blob. Also fix up property XML.
1001 (lookup_values): New function.
1002 (introspect_interfaces): Gather a mapping from interface to a
1003 list of its methods, signals, and properties, then write out
1005 (lookup_object_and_method): Use lookup_object_info.
1006 (struct DBusGSignalClosure): Add interface.
1007 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1008 we can just use the constant data.
1009 (dbus_g_signal_closure_finalize): Don't free signal name.
1010 (signal_emitter_marshaller): Use interface from signal closure.
1011 (export_signals): Only export signals mentioned in introspection
1013 (dbus_g_connection_register_g_object): Warn if we have no
1014 introspection data for an object.
1015 (funcsig_equal): Remove unused variable.
1016 (dbus_g_object_register_marshaller): Take varargs instead of
1018 (dbus_g_object_register_marshaller_array): New function,
1019 extracted from old dbus_g_object_register_marshaller.
1021 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1022 signals and property data.
1023 (write_quoted_string): New function, extracted from generate_glue.
1024 (generate_glue): Write signals and properties to introspection
1027 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1028 exported_signals and exported_properties.
1029 (dbus_g_object_register_marshaller): Update prototype.
1030 (dbus_g_object_register_marshaller_array): Prototype.
1032 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1034 * test/glib/test-service-glib.c: Add new test signals and method
1037 * test/glib/test-service-glib.xml: Add some test signals.
1039 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1040 and my-object-marshal.h
1041 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1042 my-object-marshal.c.
1043 (my-object-marshal.c, my-object-marshal.h): Implement.
1045 * test/glib/.cvsignore: Update.
1047 * doc/TODO: Remove two GLib TODO items fixed by this
1050 2005-06-16 Colin Walters <walters@verbum.org>
1052 * doc/TODO: Update for GLib bindings.
1054 2005-06-16 Colin Walters <walters@verbum.org>
1056 * glib/dbus-binding-tool-glib.c:
1057 * glib/dbus-gobject.c:
1058 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1059 from Ross Burton, for his GLib bindings work.
1061 2005-06-16 Colin Walters <walters@verbum.org>
1063 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1064 to iterate instead of walking to G_TYPE_INVALID.
1066 Patch based on a patch from Ryan Gammon.
1068 2005-06-16 Colin Walters <walters@verbum.org>
1070 * bus/bus.c (bus_context_new): Set parser to NULL
1071 after we unref it (Patch from Chris Boscolo, #2174).
1073 2005-06-16 Colin Walters <walters@verbum.org>
1075 * python/dbus_bindings.pyx.in: Import size_t,
1076 __int64_t, __uint64_t, and __signed.
1078 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1079 Define cmsg struct, output it.
1080 (_dbus_read_credentials_unix_socket):
1083 Patch from Joe Markus Clarke for FreeBSD support.
1085 2005-06-16 Colin Walters <walters@verbum.org>
1087 * tools/dbus-send.c (append_array): Use strtok.
1088 (append_dict): New function.
1089 (type_from_name): New function, extracted from main.
1090 (main): Handle sending dicts.
1092 * tools/dbus-print-message.c (print_iter): Print dict
1095 2005-06-16 Colin Walters <walters@verbum.org>
1097 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1098 values as the empty string (#2948).
1100 2005-06-16 Colin Walters <walters@verbum.org>
1103 * mono/doc/Makefile.am:
1104 * test/glib/Makefile.am:
1106 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1108 2005-06-16 Colin Walters <walters@verbum.org>
1110 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1111 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1113 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1114 Increment pointer after swapping fixed array. Add assertion
1117 2005-06-15 Colin Walters <walters@verbum.org>
1119 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1120 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1122 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1124 * NEWS: Update to 0.34
1126 2005-06-15 David Zeuthen <davidz@redhat.com>
1128 * configure.in (LT_CURRENT): Revert back to 1 as the library
1129 hasn't changed and we've certainly not committed to protocol
1130 stability yet. All this does is to break ABI. See commit note
1131 from hp@redhat.com 2005-05-05 for details.
1133 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1135 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1136 (_dbus_connection_run_builtin_filters): New method
1137 (dbus_connection_dispatch): Run the builtin filters which in turn
1138 runs the peer filter which handles Ping messages.
1141 - Ping isn't handled: This patch fixes it
1143 - Add a test case for the Ping message: added TODO item
1145 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1147 * dbus/dbus-message.c:
1148 (dbus_message_has_path): New method
1149 (dbus_message_has_interface): New method
1150 (dbus_message_has_member): New method
1152 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1155 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1156 the keyring directory is private to the user
1159 - The convenience functions in dbus-bus.h should perhaps have
1160 the signatures that they would have if they were autogenerated
1161 stubs. e.g. the acquire service function. We should also evaluate
1162 which of these functions to include, in light of the fact that
1163 GLib/Qt native stubs will probably also exist.: Punted
1165 - add dbus_message_has_path(), maybe has_member/interface:
1168 - in dbus-keyring.c, enforce that the keyring dir is not
1169 world readable/writable: Fixed in this patch
1171 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1173 * dbus/dbus-marshal-validate.h: Added a new validation
1174 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1175 out of memory errors when validating signitures
1177 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1178 in places where we previously used DBUS_VALID and a FALSE return
1179 value to indicate OOM
1181 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1182 Use a stack to track the number of elements inside containers. The
1183 stack values are then used to validate that dict entries have only two
1184 elements within them.
1185 (validate_body_helper): check the reason for failure when validating
1188 * dbus/dbus-message.c (load_message): use
1189 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1190 DBUS_VALID and a FALSE return value to indicate OOM
1192 * doc/TODO: remove "- validate dict entry number of fields" as this
1195 2005-06-14 David Zeuthen <davidz@redhat.com>
1197 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1198 watches (if applicable) and add new watches
1200 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1201 (main): Setup SIGIO signal handler if using D_NOTIFY
1203 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1205 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1206 (merge_included): Also merge conf_dirs list
1207 (bus_config_parser_unref): Clear conf_dirs list
1208 (include_dir): Add directory to conf_dirs list
1209 (bus_config_parser_get_conf_dirs): New function
1211 * bus/dir-watch.[ch]: New files
1213 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1215 * configure.in: Add checks for D_NOTIFY on Linux
1217 2005-06-14 Colin Walters <walters@verbum.org>
1219 * glib/dbus-binding-tool-glib.c:
1220 * glib/dbus-gobject.c:
1221 * glib/dbus-gvalue.c: Fix indentation and brace style.
1223 2005-06-14 Ross Burton <ross@openedhand.com>.
1225 * glib/dbus-glib.h: Make DBusGMethodInvocation
1226 a private structure. Rearrange prototypes a bit.
1228 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1229 documentation for first_arg_type.
1231 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1232 here, add documentation. Move dbus_g_method_return
1233 and dbus_g_method_return_error into public API
1236 2005-06-14 Colin Walters <walters@verbum.org>
1238 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1239 Add missing return statements, noticed by Ross Burton.
1241 2005-06-13 Ross Burton <ross@openedhand.com>.
1243 * glib/dbus-gobject.c: Handle errors on message
1244 demarshalling by sending error message back.
1245 * glib/dbus-gvalue.c: Initialize return variables.
1247 2005-06-13 Colin Walters <walters@verbum.org>
1249 * glib/Makefile.am: Fix thinko in last patch.
1251 2005-06-13 Colin Walters <walters@verbum.org>
1253 * glib/Makefile.am: Move dbus-gtype-specialized.c
1254 and dbus-gtype-specialized.h into a _HEADERS variable,
1257 2005-06-12 Colin Walters <walters@verbum.org>
1259 Async signals and various bugfixes and testing by
1260 Ross Burton <ross@openedhand.com>.
1262 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1263 (dbus_gvalue_genmarshal_name_from_type)
1264 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1265 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1266 (dbus_g_value_types_init, dbus_gtype_from_signature)
1267 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1268 (dbus_gtypes_from_arg_signature): New function prototypes.
1269 (dbus_gvalue_demarshal): Take context and error arguments.
1270 (dbus_gvalue_demarshal_variant): New function.
1271 (dbus_gvalue_demarshal_message): New function.
1272 (dbus_gvalue_store): Delete.
1274 * glib/dbus-gvalue.c:
1276 File has been almost entirely rewritten; now we special-case
1277 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1278 hash tables correctly, etc. Full support for recursive values
1279 is not yet complete.
1281 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1282 argument of signal to G_TYPE_POINTER since we now pass a
1284 (lookup_g_marshaller): Delete in favor of
1285 _dbus_gobject_lookup_marshaller.
1286 (marshal_dbus_message_to_g_marshaller): Use
1287 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1288 to handle remote signal callbacks.
1289 (dbus_g_proxy_new_from_proxy): New function; creates a new
1290 DBusGProxy by copying an existing one.
1291 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1292 (dbus_g_proxy_get_path): New functions.
1293 (dbus_g_proxy_marshal_args_to_message): New function;
1294 factored out of existing code.
1295 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1296 from a varargs array.
1297 (dbus_g_proxy_begin_call_internal): New function.
1298 (dbus_g_proxy_end_call_internal): New function.
1299 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1300 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1301 after collecting args into value array.
1302 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1303 invoke dbus_g_proxy_end_call_internal.
1304 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1306 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1308 (array_free_all): New function.
1309 (dbus_g_proxy_add_signal): Take GTypes.
1311 * glib/dbus-gobject.h:
1312 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1313 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1316 * glib/dbus-gobject.c: Add a global marshal_table hash which
1317 stores mappings from type signatures to marshallers. Change lots
1318 of invocations of dbus_gtype_to_dbus_type to
1319 dbus_gtype_to_signature.
1320 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1321 (introspect_signals): Fix test for query.return_type.
1322 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1323 (invoke_object_method): Many changes. Handle asynchronous
1324 invocations. Convert arguments with
1325 dbus_gvalue_demarshal_message. Handle errors. Use
1326 DBusSignatureIter instead of strlen on args. Handle all arguments
1327 generically. Special-case variants.
1328 (dbus_g_method_return, dbus_g_method_return_error): New function.
1329 (DBusGSignalClosure): New structure, closes over signal
1331 (dbus_g_signal_closure_new): New function.
1332 (dbus_g_signal_closure_finalize): New function.
1333 (signal_emitter_marshaller): New function; is special marshaller
1334 which emits signals on bus.
1335 (export_signals): New function; introspects object signals and
1337 (dbus_g_object_type_install_info): Take GType instead of
1339 (dbus_g_connection_register_g_object): Invoke export_signals.
1340 (dbus_g_connection_lookup_g_object): New function.
1341 (DBusGFuncSignature) New structure; used for mapping type
1342 signatures to marshallers.
1343 (funcsig_hash): New function; hashes DBusGFuncSignature.
1344 (funcsig_equal): New function; compares DBusGFuncSignature.
1345 (_dbus_gobject_lookup_marshaller): New function.
1346 (dbus_g_object_register_marshaller): New function; used to
1347 register a marshaller at runtime for a particular signature.
1349 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1351 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1352 which notes a server method implementation should be
1355 * glib/dbus-binding-tool-glib.c
1356 (dbus_binding_tool_output_glib_server): Call
1357 dbus_g_value_types_init.
1358 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
1360 (dbus_g_type_get_lookup_function): Turn GType into an invocation
1361 of a lookup function.
1362 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1363 (write_untyped_out_args): New method; write output arguments.
1364 (write_formal_declarations_for_direction): Function for
1366 (write_formal_parameters_for_direction): Function for
1367 writing implementations.
1368 (write_typed_args_for_direction): Function for writing
1369 arguments prefixed with GTypes.
1370 (write_async_method_client): Write out async version
1373 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1374 (dbus_g_type_get_marshal_name): Move mapping from GType
1375 to marshal name into here.
1376 (dbus_g_type_get_c_name): Move into here.
1377 (compute_marshaller): Convert signature to type with
1378 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1379 (compute_marshaller_name): Ditto.
1380 (compute_marshaller): Handle async signal annotations.
1381 (gather_marshallers): Return if we don't have a known
1383 (generate_glue): Collect introspection blob here, and
1384 write all of the blob at the end. This allows an object
1385 with multiple interfaces to work.
1386 Mark async methods in introspection blob.
1388 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1389 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1390 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1392 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1393 avoids people accidentally using DBUS_TYPE_* which should
1394 not be necessary anymore.
1395 Do include dbus-gtype-specialized.h, which are utilities
1396 for GLib container types.
1397 Add various #defines for types such as
1398 DBUS_TYPE_G_BOOLEAN_ARRAY.
1399 (DBusGValueIterator, DBusGValue): Define, not fully used
1401 (dbus_g_value_get_g_type): Type for recursive value.
1402 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1403 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1404 (dbus_g_value_free): Prototypes.
1405 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1406 (dbus_g_proxy_set_interface): Prototype.
1407 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1408 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1410 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1412 (DBusGAsyncData, DBusGMethodInvocation): Structures for
1413 doing async invocations.
1414 (dbus_g_method_return, dbus_g_method_return_error):
1416 * doc/dbus-tutorial.xml: Update GLib section.
1418 * tools/dbus-viewer.c (load_child_nodes): Update
1419 for new invocation type of dbus_g_proxy_end_call.
1420 (load_from_service_thread_func): Ditto.
1422 * tools/print-introspect.c (main): Ditto.
1424 * tools/dbus-names-model.c (have_names_notify)
1425 (names_model_reload, names_model_set_connection)
1428 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1429 needed since Python bindings use GLib bindings.
1431 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1432 Add --prefix argument.
1434 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
1435 unneeded --ignore-unsupported arg.
1437 * test/glib/test-service-glib.c:
1438 * test/glib/test-service-glib.xml:
1439 * test/glib/test-dbus-glib.c: Add many more tests.
1441 2005-06-06 David Zeuthen <davidz@redhat.com>
1443 * doc/TODO: Add item about need to remove deprecated functions.
1445 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1447 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1448 to repair the ABI which was broken with the last commit.
1450 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
1452 * dbus/dbus-connection.c, dbus/dbus-connection.h
1453 (dbus_connection_disconnect): renamed to dbus_connection_close
1454 for API symmetry with dbus_connection_open
1455 (_dbus_connection_open_internal):
1456 s/dbus_connection_disconnect/dbus_connection_close
1458 * dbus/dbus-bus.c (dbus_bus_get):
1459 s/dbus_connection_disconnect/dbus_connection_close
1461 * bus/connection.c (bus_connections_unref,
1462 bus_connections_setup_connection, bus_connections_expire_incomplete):
1463 s/dbus_connection_disconnect/dbus_connection_close
1465 * bus/dispatch.c (bus_dispatch, kill_client_connection,
1466 kill_client_connection_unchecked, check_hello_connection):
1467 s/dbus_connection_disconnect/dbus_connection_close
1469 * bus/bus.c (new_connection_callback):
1470 s/dbus_connection_disconnect/dbus_connection_close
1472 * tools/dbus-send.c (main):
1473 s/dbus_connection_disconnect/dbus_connection_close
1475 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1476 s/dbus_connection_disconnect/dbus_connection_close
1478 * test/test-service.c (path_message_func, filter_func):
1479 s/dbus_connection_disconnect/dbus_connection_close
1481 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
1483 2005-05-25 Colin Walters <walters@verbum.org>
1485 * dbus/dbus-protocol.h: Move various bus service #defines such
1486 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1488 * dbus/dbus-shared.h: Various defines moved here.
1489 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1491 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
1493 * python/__init__.py: Python bindings deserve a minor version
1494 update. Upped to (0, 40, 2)
1496 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
1498 * python/decorators.py: add explicitly_pass_message decorator
1499 for passing in the dbus message as keyword for edge case signal
1502 * python/matchrules.py (SignalMatchRule.__repr__): fix output
1503 to conform with what dbus expects for match rules
1504 (SignalMatchRule.execute): add the dbus message as a keyword
1505 if the signal handler has requested it
1507 * python/examples/example/signal-recipient.py: added some more
1508 examples on how to hook up to signals
1510 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
1512 * python/decorators.py: import dbus_bindings
1514 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
1515 SignalMatchNode): new classes that implement wildcard signal
1516 callback matching using a tree lookup. Heavily modified from a
1517 patch sent by Celso Pinto (fd.o bug #3241)
1519 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1520 use new match classes to handle signals.
1522 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
1524 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1526 2005-05-18 Havoc Pennington <hp@redhat.com>
1528 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1529 gettext. Not really worth requiring yet perhaps, but any
1530 production quality 1.0 would require it so we should go ahead and
1531 get things set up. We do have a couple token calls to
1532 bindtextdomain in the code already.
1534 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
1536 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1537 when using recursive g_main_loops
1539 * python/_dbus.py (class Bus): add the ProxyObjectClass
1540 alias for ProxyObject to make it easier for the Twisted
1541 networking framework to integrate dbus.
1543 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1544 alias for ProxyMethod to make it easier for the Twisted
1545 networking framework to integrate dbus.
1547 2005-05-11 Ross Burton <ross@openedhand.com>
1549 * glib/dbus-glib-tool.c: Add --prefix argument.
1550 * glib/dbus-binding-tool-glib.h: Add prefix argument.
1551 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1552 Add prefix argument.
1553 (generate_glue): Pass prefix argument down.
1554 (dbus_binding_tool_output_glib_server): Pass prefix to
1557 2005-05-11 Colin Walters <walters@verbum.org>
1559 * tools/dbus-send.c (append_array): New function.
1560 (append_arg): Broken out from main.
1561 (main): Add cheesy hack to send arrays and variants.
1563 * tools/dbus-print-message.c (print_iter): Broken out
1566 2005-05-11 Colin Walters <walters@verbum.org>
1568 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1569 New function, returns signature string for signature iter.
1570 * dbus/dbus-signature.h: Prototype it.
1571 * dbus/dbus-message.c (dbus_message_iter_get_signature):
1572 New function, returns signature string for message iter.
1573 (dbus_message_iter_get_array_len): New function, returns
1575 (dbus_message_iter_get_fixed_array): Fix assertion; this
1576 function should be used when the iter is pointing to the
1577 contents of an array
1578 * dbus/dbus-message.h: Prototypes.
1579 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1580 New function; returns length of an array.
1581 * dbus/dbus-marshal-recursive.h: Prototype it.
1583 2005-05-11 Colin Walters <walters@verbum.org>
1585 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1588 2005-05-08 Havoc Pennington <hp@redhat.com>
1590 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1591 daemon's pid, not the parent's pid, to the file descriptor.
1592 Reported by Taj Morton.
1594 2005-05-05 Havoc Pennington <hp@redhat.com>
1596 * configure.in (LT_*): add notes on how the libtool versioning
1597 works to save thinking. Increment soname to indicate protocol
1598 breakage (though really the library interface hasn't changed I
1601 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1602 verify the GUID received from server matches what we were
1603 expecting, if we had an expectation
1605 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1606 (_dbus_auth_get_guid_from_server): new function
1607 (send_begin): parse the OK args
1609 * doc/dbus-specification.xml: add GUID to the auth protocol
1611 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
1613 * Fix my name in previous changelog ;)
1615 * python/proxies.py (ProxyObject.__getattr__): add further patch
1616 from Anthony Baxter to throw an AttributeError when python
1617 __special__ functions are called instead of marshling them over
1618 the bus (Bug#1685 comment 3).
1620 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
1622 * python/Makefile.am: changed to use pyexecdir for the binding
1623 shared libraries (Bug#2494)
1625 * python/exceptions.py: bring exceptions over from the bindings
1626 so they can be used in applications (Bug#2036)
1627 Make all exceptions derive from DBusException
1629 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1630 of classes so that print obj doesn't throw an exception (Bug #1685)
1632 2005-05-03 Ross Burton <ross@openedhand.com>
1634 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1635 Return if we get an error during registration. Set up a
1636 weak reference on object to unregister if object is destroyed.
1637 (unregister_gobject): New function.
1639 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
1641 * python/dbus_bindings.pyx.in:
1642 - added new type classes for hinting to the marashaler what type
1643 to send over the wire
1644 - added int16 and uint16 marshalers
1645 - Fixed a bug in the type constants that caused int32 to go out
1646 as uint16 over the wire
1647 * python/dbus.py: split up into different files and renamed _dbus.py
1648 * python/__init__.py, python/_util.py, python/decorators.py,
1649 python/exceptions.py, python/proxies.py, python/services.py,
1650 python/types.py: new files split off from dbus.py
1651 * python/Makefile.am: Add new files, remove dbus.py and
1652 install all python files to <python module dir>/dbus
1653 * python/examples/*: Added #!/usr/bin/env python to the top of
1654 every example. Patch provided by Tatavarty Kalyan
1656 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1658 * NEWS: Update to 0.33
1660 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1662 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1663 method for doing async calls
1664 (_pending_call_notification): New C function for handling pendning call
1666 (set_notify): New method for setting pending call notification
1668 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1669 Async capabilities added to remote method calls
1670 (Sender): class removed
1671 (RemoteService): class removed
1672 (ObjectTree): class removed for now
1673 (RemoteObject): Renamed to ProxyObject
1674 (RemoteMethod): Renamed to ProxyMethod
1675 (method): Decorator added for decorating python methods as dbus methods
1676 (signal): Decorator added for decorating python methods as signal emitters
1677 (ObjectType): Metaclass added for generating introspection data and the
1678 method callback vtable
1679 (Interface): Wrapper class added to wrap objects in a dbus interface
1680 (Object): Uses ObjectType as its metaclass and exports Introspect
1681 of the org.freedesktop.DBus.Introspectable interface
1682 (ValidationException, UnknownMethodException): new exceptions
1684 * python/examples/*: Modified to fit with the new bindings
1686 2005-04-23 Havoc Pennington <hp@redhat.com>
1688 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1689 reported by Tony Houghton
1691 * test/test-service.c (main): test
1692 dbus_connection_get_object_path_data()
1694 * dbus/dbus-object-tree.c (find_handler): be sure we always init
1696 (_dbus_object_tree_get_user_data_unlocked): new function used by
1697 dbus_connection_get_object_path_data()
1698 (do_register): add assertion test for get_user_data_unlocked
1699 (object_tree_test_iteration): more tests
1701 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1702 new function from Dan Reed to let you get the user data from
1703 dbus_connection_register_object_path()
1705 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
1707 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1708 in numerous places that did not account for the NULL terminator
1709 (signature_from_seed): changed the manual string copy loop to
1710 just use strcpy instead
1711 make check should now pass
1713 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
1715 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1716 so that it allows messages that are not signals to pass in
1717 NULL as the interface.
1719 2005-04-18 David Zeuthen <davidz@redhat.com>
1721 * glib/dbus-gmain.c (io_handler_destroy_source):
1722 (timeout_handler_destroy_source, connection_setup_free):
1723 Also unref the source to avoid memory leaks.
1725 2005-04-13 David Zeuthen <davidz@redhat.com>
1727 * bus/config-parser.c (bus_config_parser_new): Bump this to a
1728 more reasonable, yet still totally arbitrary, value :-).
1730 2005-04-13 David Zeuthen <davidz@redhat.com>
1732 * doc/TODO: Added an "important for 1.0" item about selinux
1735 2005-04-13 David Zeuthen <davidz@redhat.com>
1737 * bus/selinux.c: Add c-file-style to top of file
1738 (log_audit_callback): Don't free the data here anymore
1739 (bus_selinux_check): Don't take spid and tpid since appending
1740 that to auxdata may OOM.
1741 (bus_selinux_allows_acquire_service): Handle OOM and signal back
1742 to the caller if we are OOM by taking an error object.
1743 (bus_selinux_allows_send): -do-
1745 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1746 and bus_selinux_allows_send
1748 * bus/bus.c (bus_context_check_security_policy): Pass error and
1749 pass on OOM thrown by bus_selinux_allows_send()
1751 * bus/services.c (bus_registry_acquire_service): Pass error and
1752 pass on OOM thrown by bus_selinux_allows_acquire_service()
1754 2005-04-13 Havoc Pennington <hp@redhat.com>
1756 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1757 message at a time to avoid monopolizing the main loop, bug
1758 #2953 from Benjamin Otte
1760 2005-04-09 Havoc Pennington <hp@redhat.com>
1762 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1763 possible overlap, fix from Daniel Reed
1764 (fixup_alignment): fix signedness warnings
1765 (_dbus_string_append_unichar): ditto
1767 2005-04-09 Havoc Pennington <hp@redhat.com>
1769 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1771 * glib/dbus-glib-tool.c (main): fix warning
1773 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1775 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1776 add a new function that can be used in simple applications that
1777 don't have a main loop and are willing to block
1779 2005-04-05 David Zeuthen <davidz@redhat.com>
1781 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1783 * glib/dbus-gmain.c:
1784 (io_handler_destroy_source): Remove from list of IO handlers
1785 of the ConnectionSetup object
1786 (timeout_handler_destroy_source): -do- for timeout handlers
1787 (io_handler_source_finalized): Don't remove from list since
1788 we now do that in io_handler_destroy_source(). Renamed from
1789 io_handler_source_destroyed
1790 (timeout_handler_source_destroyed): -do- for timeout handlers
1791 (connection_setup_free): It is now safe to iterate over all
1792 IO and timeout handlers as the _destroy_source removes them
1793 from the list synchronously
1795 2005-03-30 Havoc Pennington <hp@redhat.com>
1797 * configure.in: change check to gtk 2.4
1799 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1800 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1803 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1807 * HACKING: Fixed realease instructions. configure.in should be updated to
1808 the next release by the person who made the last release.
1810 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1812 * python/lvalue_cast_post_process.py - removed. Patch has been
1813 submitted to Pyrex maintainers that fixes gcc4.0 errors
1815 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1817 2005-03-24 Daniel Reed <n@ml.org>
1819 * tools/Makefile.am: Make print-introspect and
1820 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1822 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1824 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1826 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1827 had in Red Hat packages for a while but for some reason never
1829 (_dbus_is_a_number): New checks if a string
1830 can be converted to a number and does the conversion if it can
1831 (_dbus_user_database_lookup): Add check to see if the given username
1832 is a udi. This allows udi's to be used instead of usernames in the
1834 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1835 is a gdi. This allows gdi's to be used instead of groupnames in the
1838 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1840 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1841 code so that it compiles with gcc4.0
1843 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1844 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1845 results back to dbus_binding.c
1847 2005-03-20 Colin Walters <walters@verbum.org>
1849 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1851 * configure.in: Require GTK+ 2.6.
1853 2005-03-20 Colin Walters <walters@verbum.org>
1855 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1857 2005-03-17 Tom Parker <palfrey@tevp.net>
1859 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1860 print DBUS_UID_UNSET; instead print passed username. Also
1861 be sure to actually use gid looked up in cache.
1863 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1864 for DBUS_GID_UNSET and groupname.
1866 2005-03-17 Colin Walters <walters@verbum.org>
1868 * bus/print-introspect.c: Move to tools/.
1869 * bus/run-with-tmp-session-bus.sh: Ditto.
1871 * glib/Makefile.am (dbus-glib-bindings.h): Move
1872 generation to tools/Makefile.am.
1874 * test/glib/run-test.sh: Update to handle move
1875 of run-with-tmp-session-bus.sh.
1877 * test/glib/test-service-glib.c: Update to handle
1878 move of dbus-glib-bindings.h.
1880 * tools/print-introspect.c: Moved here
1881 from bus/, and ported to GLib bindings.
1883 * tools/run-with-tmp-session-bus.sh: Moved here
1886 * tools/Makefile.am: Generate dbus-glib-bindings.h
1887 and dbus-bus-introspect.xml here.
1889 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1892 2005-03-17 Colin Walters <walters@verbum.org>
1894 * bus/driver.c (write_args_for_direction): Use
1895 _dbus_string_get_const_data to retrieve string;
1896 _dbus_string_get_const_data_len doesn't actually return
1897 a NULL-terminated substring.
1899 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1900 (main): Change to use org_freedesktop_DBus_request_name
1901 instead of using g_proxy_begin_call/end_call.
1903 2005-03-15 Joe Shaw <joeshaw@novell.com>
1905 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1906 generating the finalizer. Fixes from Ben Maurer.
1908 2005-03-12 Joe Shaw <joeshaw@novell.com>
1910 * mono/BusDriver.cs: Update method names: ListServices
1911 becomes ListNames; GetOwner becomes GetNameOwner.
1913 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1914 onto the eval stack when removing the delegate.
1916 2005-03-12 Joe Shaw <joeshaw@novell.com>
1918 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1919 LT_CURRENT. Set it to the autoconf variable.
1921 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1922 classes that disconnects the signal handler delegate from the
1923 service object. Fixes a big leak of proxy objects on the
1924 client side of things. Patch from Ben Maurer
1925 <bmaurer@ximian.com>
1927 2005-03-12 Colin Walters <walters@verbum.org>
1929 * bus/driver.c (write_args_for_direction): New function,
1930 parses a type signature into arguments and outputs to
1932 (bus_driver_handle_introspect): Use it instead of
1933 hardcoding XML for certain signatures.
1935 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1936 dependency on dbus-daemon.
1938 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1939 argument, pass it to dbus_binding_tool_output_glib_client.
1941 * glib/dbus-binding-tool-glib.c
1942 (generate_client_glue): Protect against multiple inclusion.
1943 (dbus_binding_tool_output_glib_client): Add
1944 G_BEGIN_DECLS/G_END_DECLS.
1946 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1947 Change to just take iface prefix directly.
1948 (write_formal_parameters): Clarify error message.
1949 (check_supported_parameters): New function; checks to see type
1950 signatures of method parameters are supported.
1951 (generate_client_glue): Handle ignore_unsupported flag.
1952 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1955 * glib/Makefile.am (dbus-glib-bindings.h): Pass
1956 --ignore-unsupported by default until glib bindings
1959 2005-03-11 Colin Walters <walters@verbum.org>
1961 * glib/Makefile.am: Generate dbus-glib-bindings.h and
1964 * bus/print-introspect.c: New file; prints introspection
1965 data for a given name and object path.
1967 * bus/run-with-tmp-session-bus.sh: New file, refactored
1968 from test/glib/run-test.sh. Creates a temporary session
1969 bus and runs another program.
1971 * test/glib/run-test.sh: Refactor to invoke
1972 run-with-tmp-session-bus.sh.
1974 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1975 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
1976 macros instead of hardcoding.
1978 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1980 2005-03-11 Joe Shaw <joeshaw@novell.com>
1982 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1983 this unref; it doesn't match up evenly in some codepaths.
1984 (_dbus_connection_block_pending_call): Unref at every exitpoint;
1985 this evenly matches with the ref near the top of this function.
1987 2005-03-09 Joe Shaw <joeshaw@novell.com>
1989 * dbus/dbus-object-tree.c
1990 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1991 and we try to unregister a path that's not registered, still go
1992 through the process of unlocking and don't just return.
1994 2005-03-09 Colin Walters <walters@verbum.org>
1996 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1997 to this are generated for client-side wrappers. Invokes a
1998 D-BUS method and returns reply values.
2000 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2001 function; writes signature string for argument direction.
2002 (write_args_for_direction): Change to pass input values directly
2003 instead of via address, and fix indentation.
2004 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2005 make generated wrappers inlineable.
2007 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2008 note about using dbus_type_is_fixed.
2010 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2011 dbus/dbus-signature.c as dbus_type_is_fixed.
2013 All callers updated.
2015 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2016 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2018 * dbus/dbus-signature.h: Prototype.
2020 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2023 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2024 appropriate instead of just freeing it.
2025 (main): Free returned strings using g_free.
2027 * test/glib/Makefile.am (test-service-glib-glue.h)
2028 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2030 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2031 simply maps a simple D-BUS type to GType.
2032 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2034 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2035 initialize the value with it.
2036 (dbus_gvalue_binding_type_from_type): Unused, delete.
2037 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2038 various types instead of unmarshalling to value data directly.
2039 Remove can_convert boolean.
2040 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2041 returning directly instead of using can_convert boolean.
2042 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2043 Stores a GValue in a pointer to a value of its corresponding C
2046 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2047 add dbus_gvalue_store.
2049 2005-03-08 Joe Shaw <joeshaw@novell.com>
2051 Fix a bunch of lifecycle and memory management problems
2052 in the mono bindings.
2054 * mono/Arguments.cs (Arguments): Implement IDisposable
2056 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2057 strictly a static class.
2059 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2060 delegates into this file.
2061 (Connection): Implement IDisposable.
2062 (Dispose): Disconnect the connection and set the raw connection
2063 pointer to IntPtr.Zero.
2064 (~Connection): Call Dispose().
2065 (RegisterObjectPath): Added. Manages the registration of object
2066 paths so we can cleanly disconnect them at dispose/finalize time.
2067 (UnregisterObjectPath): Ditto.
2068 (set_RawConnection): Unregister all of the object paths when
2069 changing the underlying DBusConnection. Add them back onto the
2070 new connection, if any.
2072 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2073 more unmanaged resources anymore, so it's not necessary. Move all
2074 the DBusObjectPathVTable stuff out of here.
2075 (Handler): Save references to our delegates so that they don't get
2076 finalized. Call Connection.RegisterObjectPath() instead of
2077 dbus_connection_register_object_path() directly.
2078 (Message_Called): Dispose the message after we're finished with
2081 * mono/Message.cs (Message): Implement IDisposable.
2082 (Dispose): Dispose the Arguments, and set the RawMessage to
2084 (SendWithReplyAndBlock): We own the ref to the reply that comes
2085 back from dbus_connection_send_with_reply_and_block() so add a
2086 comment about that and unref it after we've constructed a managed
2087 MethodReturn class around it. Fixes a big, big leak.
2089 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2091 (BuildSignalHandler): After we've sent the Signal message, dispose
2093 (BuildMethod): Dispose of the method call and reply messages after
2094 we've sent the message and extracted the data we want from the
2097 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2099 (Service_FilterCalled): Dispose of the message after we're
2102 2005-03-08 Joe Shaw <joeshaw@novell.com>
2104 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2105 After we attach our pending call to the connection, unref
2108 * mono/Connection.cs (set_RawConnection): Disconnect our
2109 filter and match callbacks from the old connection and
2110 reconnect them to the new connection, if any.
2112 * mono/DBusType/Array.cs: "Code" is a static member, so
2113 don't use "this" to refer to it. Fix for stricter checking
2116 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2117 object path that we pass into unmanaged code.
2119 * mono/DBusType/String.cs (Append): Don't leak the string
2120 that we pass into unmanged code.
2122 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2123 * NEWS: Update for 0.31
2125 * configure.in: Release 0.31
2126 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2128 * qt/Makefile.am: fixed build
2130 * dbus/Makefile.am: soname bump for libdbus
2132 * glib/Makefile.am: soname bump for libdbus-glib
2134 2005-03-05 Havoc Pennington <hp@redhat.com>
2136 * dbus/dbus-sysdeps.c:
2137 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2139 (_dbus_generate_random_bytes_buffer): fix return value
2141 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2142 checks actually work, from Tom Parker <fdo@tevp.net>
2144 2005-03-01 Colin Walters <walters@verbum.org>
2146 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2147 functions copied from dbus-glib-tool.c.
2148 (main): Convert lots of error code to use them.
2149 Also add some testing for introspection bits.
2151 2005-03-01 Colin Walters <walters@verbum.org>
2153 * doc/TODO: Remove introspection signature TODO.
2155 2005-02-27 Colin Walters <walters@verbum.org>
2157 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2158 Change return value to const char * instead of int so we can do
2160 (struct PropertyInfo, struct ArgInfo): Store char *.
2161 (property_info_new, arg_info_new): Update parameters, strdup.
2162 (property_info_unref, arg_info_unref): Free.
2164 * glib/dbus-gidl.h: Update prototypes.
2166 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2167 (validate_signature): New function, just validates signature and
2169 (parse_property, parse_arg): Invoke validate_signature. Store
2170 signature instead of just type code.
2172 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2173 function to return a primary type for a signature, dropping
2174 information about types in container types.
2175 (dbus_gvalue_genmarshal_name_from_type)
2176 (dbus_gvalue_binding_type_from_type)
2177 (dbus_gvalue_ctype_from_type): Update to take full signature
2178 instead of type code.
2179 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2181 * glib/dbus-gvalue.h: Update prototypes for above.
2183 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2184 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2185 (introspect_properties, introspect_signals, write_interface):
2186 Update to handle signatures, and remove usage of
2187 _dbus_gutils_type_to_string.
2188 (handle_introspect): Print out type codes instead of e.g. "string"
2189 in hardcoded introspection XML; also use x_AS_STRING constants
2190 instead of hardcoding in string.
2192 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2193 to string. Remove usage of _dbus_gutils_type_to_string.
2195 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2197 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2200 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2201 (compute_marshaller_name, generate_glue): Handle signature change
2203 (write_formal_parameters, write_args_for_direction): Ditto, and
2206 * tools/dbus-tree-view.c (type_to_string): Delete.
2207 (info_set_func_text): Update to print full signatures.
2209 * test/glib/test-service-glib.xml: Change types to new
2210 introspection format.
2212 2005-02-26 Havoc Pennington <hp@redhat.com>
2214 * doc/TODO: remove the "guid" item
2216 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2217 (with_bus_thread_func): use open_private
2219 * dbus/dbus-connection.c (dbus_connection_open_private): new
2220 function that works like the old dbus_connection_open()
2221 (dbus_connection_open): now returns an existing connection if
2224 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2225 through the GUID to the transport
2227 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2228 GUID in hex-encoded form.
2230 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2231 pass GUID argument in to the transport
2233 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2236 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2238 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2240 2005-02-25 Havoc Pennington <hp@redhat.com>
2242 * doc/dbus-specification.xml: document the GUID thing
2244 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2245 globally unique ID for the server, and put a "guid=hexencoded"
2246 field in the address
2248 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2250 * dbus/dbus-message.c: ditto
2252 * dbus/dbus-dataslot.c: ditto
2254 * dbus/dbus-list.c: ditto
2256 * dbus/dbus-internals.h: wait, just include
2257 dbus-threads-internal.h here
2259 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2262 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2264 2005-02-24 Colin Walters <walters@verbum.org>
2266 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2268 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2270 * glib/Makefile.am: added dbus-gobject.h to sources list
2271 so distcheck doesn't fail
2273 2005-02-24 Havoc Pennington <hp@redhat.com>
2275 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2276 you must disconnect before unref, since locking and other things
2277 are screwed up otherwise. Fix assorted other locking stuff.
2279 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2282 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2283 into a private header and don't export from the library
2285 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2287 2005-02-24 Colin Walters <walters@verbum.org>
2289 * dbus/dbus-signature.c: New file; implements various functions
2290 related to type signatures. Includes an interator for parsing,
2291 validation functions.
2292 (dbus_type_is_basic): Moved here from
2293 dbus-marshal-basic.c:_dbus_type_is_basic.
2294 (dbus_type_is_container): Moved here from
2295 dbus-marshal-basic.c:_dbus_type_is_container.
2297 All callers of _dbus_type_is_container and _dbus_type_is_basic
2298 updated, and include dbus-signature.h.
2300 * dbus/dbus-signature.h: New file; prototypes for the above.
2302 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2305 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2306 function factored out of _dbus_first_type_in_signature.
2307 (_dbus_first_type_in_signature_c_str): New function; returns first
2308 type code for a type signature character.
2310 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2311 handle function moves.
2313 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2315 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2316 function; skips to next complete type in type signature.
2317 Implemented using previous skip_one_complete_type. Now
2318 skip_one_complete_type just delegates to
2319 _dbus_type_signature_next.
2321 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2323 (_dbus_type_is_container): Ditto.
2325 * doc/dbus-specification.xml: Update introspection sample to
2326 use real type signatures.
2328 * dbus/dbus-test.h: Prototype signature test.
2330 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2333 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2335 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2337 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2338 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2340 2005-02-21 Colin Walters <walters@verbum.org>
2342 * dbus/dbus-test-main.c (main): Take optional specific test
2345 * dbus/dbus-test.c (run_test): New function, runs a test function
2346 with no data directory.
2347 (run_data_test): Like above, but takes data directory.
2348 (dbus_internal_do_not_use_run_tests): Take
2349 specific test argument. Replace lots of cut n' paste code
2350 with run_test and run_data_test.
2352 * dbus/dbus-test.h: Update prototype for
2353 dbus_internal_do_not_use_run_tests.
2355 2005-02-20 Havoc Pennington <hp@redhat.com>
2357 Fix bugs reported by Daniel P. Berrange
2359 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2360 (protected_change_watch): new function
2361 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2362 (_dbus_server_add_watch): change to work like the
2363 dbus-connection.c equivalents; like those, probably kind of
2364 busted, but should at least mostly work for now
2365 (dbus_server_disconnect): drop the lock if we were already
2366 disconnected, patch from Daniel P. Berrange
2368 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
2369 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2372 * doc/TODO: todo about unscrewing this mess
2374 2005-02-19 Colin Walters <walters@verbum.org>
2376 * glib/dbus-binding-tool-glib.c
2377 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2379 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2380 as errno.h and sys/stat.h.
2381 (lose): New function, prints error with
2383 (lose_gerror): Similar, but takes GError for message.
2384 (main): Add --output argument to specify output file to write to,
2385 instead of always printing to stdout. In this mode, determine
2386 timestamps on source files to see whether any are newer than the
2387 target file. If not, exit. Also convert a number of error
2388 messages to use lose (since it's shorter), and switch to using
2389 g_io_channel_shutdown.
2391 2005-02-19 Havoc Pennington <hp@redhat.com>
2393 * glib/dbus-gobject.c
2394 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2396 * glib/dbus-glib.c: fix doxygen warnings
2398 * glib/dbus-gparser.c (parse_annotation): error if an annotation
2399 is found on an <arg>
2401 2005-02-17 Colin Walters <walters@verbum.org>
2403 * glib/dbus-gobject.h: Don't export
2404 _dbus_glib_marshal_dbus_message_to_gvalue_array.
2406 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2407 (invoke_object_method): Handle it.
2409 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2412 2005-02-17 Colin Walters <walters@verbum.org>
2414 * bus/.cvsignore, doc/.cvsignore
2415 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2418 2005-02-17 Colin Walters <walters@verbum.org>
2420 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2421 Rename to DBUS_SERVICE_DBUS.
2422 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2423 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2424 Change the value from "org.freedesktop.Local"
2425 to "org.freedesktop.DBus.Local".
2426 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2427 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2428 DBUS_INTERFACE_INTROSPECTABLE.
2429 Change the value from "org.freedesktop.Introspectable"
2430 to "org.freedesktop.DBus.Introspectable".
2431 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2432 DBUS_INTERFACE_PROPERTIES.
2433 Change the value from "org.freedesktop.Properties"
2434 to "org.freedesktop.DBus.Properties".
2435 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2436 DBUS_INTERFACE_PEER.
2437 Change the value from "org.freedesktop.Peer"
2438 to "org.freedesktop.DBus.Peer".
2439 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
2440 DBUS_INTERFACE_LOCAL.
2441 Change the value from "org.freedesktop.Local"
2442 to "org.freedesktop.DBus.Local".
2444 All other users of those constants have been changed.
2446 * bus/driver.c (bus_driver_handle_introspect): Use constants.
2448 * glib/dbus-gobject.c (handle_introspect): Use constants.
2450 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2452 2005-02-17 Colin Walters <walters@verbum.org>
2454 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2455 (parse_node, parse_interface, parse_method, parse_signal)
2456 (parse_property, parse_annotation): Lose if we're currently in an
2458 (parse_annotation): New function.
2459 (parser_start_element, parser_end_element): Handle annotation.
2460 (parse_method, parse_interface): Remove support for c_name attribute,
2461 switch to annotations.
2463 * glib/dbus-gidl.h (interface_info_get_binding_names)
2464 (method_info_get_binding_names)
2465 (interface_info_get_binding_name, method_info_get_binding_name)
2466 (interface_info_set_binding_name, method_info_set_binding_name):
2468 (interface_info_get_annotations, method_info_get_annotations)
2469 (interface_info_get_annotation, method_info_get_annotation)
2470 (interface_info_add_annotation, method_info_add_annotation):
2473 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2475 (struct MethodInfo): Ditto.
2476 Straightfoward conversion of binding methods into annotation methods
2479 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2481 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2483 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2484 Use new annotation API.
2486 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
2489 * doc/dbus-specification.xml: Discuss introspection annotations,
2490 include list of well-known annotations.
2492 * test/glib/test-service-glib.xml: Make validate against new DTD.
2494 2005-02-17 Colin Walters <walters@verbum.org>
2496 This patch is based on initial work from
2497 Paul Kuliniewicz <kuliniew@purdue.edu>.
2499 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2500 initialization of GValue from dbus type to here.
2501 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2502 for the "glib-genmarshal" program from a DBus type.
2503 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2504 into the C name for it we use in the glib bindings.
2505 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2506 glib C type (not GValue).
2507 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2509 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2510 from dbus-gobject.c.
2512 * glib/dbus-gutils.h: Prototype it.
2514 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2515 (marshal_dbus_message_to_g_marshaller): Use new shared function
2516 dbus_glib_marshal_dbus_message_to_gvalue_array.
2518 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2519 Will be changed once we have annotations.
2521 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2522 GStaticRWLock. Callers updated.
2523 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
2524 (string_table_next): New function for iterating over zero-terminated
2526 (string_table_lookup): New function; retrieves specific entry in
2528 (get_method_data): New function; look up method data in object data chunk.
2529 (object_error_domain_prefix_from_object_info)
2530 (object_error_code_from_object_info): New functions, but not implemented yet.
2531 (method_interface_from_object_info): New function; retrieve interface name.
2532 (method_name_from_object_info): New function; retrieve method name.
2533 (method_arg_info_from_object_info): New function; retrieve argument data.
2534 (arg_iterate): New function; iterates over serialized argument data.
2535 (method_dir_signature_from_object_info): New function; returns a
2536 GString holding type signature for arguments for just one
2537 direction (input or output).
2538 (method_input_signature_from_object_info)
2539 (method_output_signature_from_object_info): New functions.
2540 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2541 converts dbus message arguments into a GValue array. Used for both
2542 signal handling and method invocation.
2543 (struct DBusGlibWriteIterfaceData): New utility structure.
2544 (write_interface): New function; generate introspection XML for
2546 (introspect_interfaces): New function; gathers all interface->methods,
2547 generates introspection XML for them.
2548 (handle_introspect): Invoke introspect_interfaces.
2549 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2550 (lookup_object_and_method): New function; examines an incoming message
2551 and attempts to match it up (via interface, method name, and argument
2552 signature) with a known object and method.
2553 (gerror_domaincode_to_dbus_error_name): New function; converts a
2554 GError domain and code into a DBus error name. Needs GError data
2555 added to object introspection to work well.
2556 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2558 (invoke_object_method): New function to invoke an object method
2559 looked up via lookup_object_and_method. Parses the incoming
2560 message, turns it into a GValue array, then invokes the marshaller
2561 specified in the DBusGMethodInfo. Creates a new message with
2562 either return values or error message as appropriate.
2563 (gobject_message_function): Invoke lookup_object_and_method and
2564 invoke_object_method.
2566 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2567 (enum DBusBindingOutputMode): New enum for binding output modes.
2568 (pretty_print): Print binding names.
2569 (dbus_binding_tool_error_quark): GError bits.
2570 (version): Fix typo.
2571 (main): Create GIOChannel for output. Parse new --mode argument,
2572 possible values are "pretty-print", "glib-server", "glib-client".
2573 Use mode to invoke appropriate function.
2575 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2577 * glib/dbus-glib-tool.h: New header, just includes GError bits
2580 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2581 maps binding style to name.
2582 (struct MethodInfo): Ditto.
2583 (get_hash_keys, get_hash_key): Utility function, returns keys for
2585 (interface_info_new, method_info_new): Initialize bindings.
2586 (interface_info_unref, method_info_unref): Destroy bindings.
2587 (method_info_get_binding_names, method_info_get_binding_name)
2588 (interface_info_get_binding_names, interface_info_get_binding_name):
2589 Functions for retrieving binding names.
2590 (method_info_set_binding_name, interface_info_set_binding_name):
2591 Functions for setting binding names.
2593 * glib/dbus-binding-tool-glib.h: New file, has prototypes
2594 for glib binding generation.
2596 * glib/dbus-binding-tool-glib.c: New file, implements server-side
2597 and client-side glib glue generation.
2599 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2600 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2603 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2604 of using GClosureMarshal directly.
2605 (struct DBusGObjectInfo): Add n_infos member.
2607 * test/glib/test-service-glib.xml: New file; contains introspection data
2608 for MyTestObject used in test-service-glib.c.
2610 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2611 (my_object_do_nothing, my_object_increment, my_object_throw_error)
2612 (my_object_uppercase, my_object_many_args): New test methods.
2613 (main): Use dbus_g_object_class_install_info to include generated object
2616 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2617 as well as client-side bindings.
2619 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2620 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2621 using both the dbus_gproxy stuff directly as well as the generated bindings.
2623 2005-02-15 Havoc Pennington <hp@redhat.com>
2625 * dbus/dbus-connection.c (dbus_connection_dispatch): always
2626 complete a pending call, don't run filters first.
2628 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2629 dbus_pending_call_steal_reply
2631 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2632 _dbus_connection_block_pending_call
2633 (dbus_pending_call_get_reply): change to steal_reply and return a
2636 * dbus/dbus-connection.c
2637 (dbus_connection_send_with_reply_and_block): port to work in terms
2639 (_dbus_connection_block_pending_call): replace block_for_reply
2642 2005-02-14 Havoc Pennington <hp@redhat.com>
2644 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2645 properly handle looking up group information by name; fix
2648 2005-02-13 Havoc Pennington <hp@redhat.com>
2650 * dbus/dbus-connection.c (dbus_connection_return_message)
2651 (dbus_connection_borrow_message): hold dispatch lock while message
2653 (_dbus_connection_block_for_reply): hold dispatch lock while we
2654 block for the reply, so nobody steals our reply
2655 (dbus_connection_pop_message): hold the dispatch lock while we
2658 2005-02-13 Havoc Pennington <hp@redhat.com>
2660 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2661 (_dbus_connection_release_dispatch)
2662 (_dbus_connection_acquire_io_path)
2663 (_dbus_connection_release_io_path): make the mutex and condvar
2664 control access to the "acquired" flag. Drop the connection lock
2665 while waiting on the condvar. Hopefully these are baby steps in
2666 roughly the right direction.
2668 2005-02-13 Havoc Pennington <hp@redhat.com>
2670 * dbus/dbus-connection.c: use separate mutexes for the condition
2671 variables; this is some kind of baseline for sanity, but the
2672 condition variables still aren't used correctly afaict
2674 2005-02-13 Havoc Pennington <hp@redhat.com>
2676 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2679 * dbus/dbus-connection.c
2680 (_dbus_connection_detach_pending_call_unlocked): add this
2682 Initial semi-correct pass through to fix thread locking; there are
2683 still some issues with the condition variable paths I'm pretty
2686 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2689 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2690 rename to add _unlocked
2691 (struct DBusConnection): move "dispatch_acquired" and
2692 "io_path_acquired" to use only one bit each.
2693 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2694 (dbus_connection_set_watch_functions): hacky fix to reentrancy
2695 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
2696 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
2697 (_dbus_connection_remove_timeout)
2698 (_dbus_connection_toggle_timeout): drop lock when calling out to
2699 user functions; done in a hacky/bad way.
2700 (_dbus_connection_send_and_unlock): add a missing unlock
2701 (_dbus_connection_block_for_reply): add a missing unlock
2703 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2704 drop lock in a hacky probably unsafe way to call out to user
2707 2005-02-12 Havoc Pennington <hp@redhat.com>
2709 * tools/dbus-tree-view.c (info_set_func_text): display more
2712 * bus/driver.c (bus_driver_handle_list_services): list the bus
2715 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2717 * glib/dbus-gidl.c (signal_info_get_n_args): new function
2718 (method_info_get_n_args): new function
2720 2005-02-12 Havoc Pennington <hp@redhat.com>
2722 * bus/driver.c (bus_driver_handle_introspect): add introspection
2725 2005-02-12 Havoc Pennington <hp@redhat.com>
2727 * bus/driver.c: put the signature of each bus driver method in the
2728 table of handlers and check it on incoming calls; this isn't
2729 really useful, but going to add introspect support in a minute.
2731 2005-02-11 Joe Shaw <joeshaw@novell.com>
2733 * mono/Connection.cs: The unpredictability of finalizers in mono
2734 prevents us from deterministically disconnecting the filters from
2735 the Service class's finalizer, so move tracking of filters and
2736 matches here. Add API for that.
2738 * mono/Service.cs: Remove the code, add code which calls the
2739 methods now on the Connection class.
2741 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
2743 * python/dbus.py (class Sender): added to support dbus signals better
2744 (Bus::add_signal_receiver): added expand_args parameter which defaults
2745 to True. When expand args is True the signal handler will pass the
2746 message arguments as parameters to the signal handler. If False
2747 revert to previous behavior where the signal handler must get the
2748 argument list from the message. This is to help port applications
2749 like HAL that have a tendancy to send variable length argument lists.
2750 self._match_rule_to_receivers is now a dict of dicts.
2751 (Bus::remove_signal_receiver): pop handler off the dict intead of
2752 removing it from a list
2753 (Bus::_signal_func): change signal handlers so that interface,
2754 signal_name, service, path and message are packed into a Sender
2755 object and that is passed to the handler. If expand_args is True
2756 extract the args list from the message and append it to the parameter
2759 * python/dbus_bindings.pyx.in (class Signature): added to support
2761 (MessageIter::__init__): changed iteration limit to match D-BUS
2762 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
2763 STRUCT and VARIENT type support
2764 (MessageIter::python_value_to_dbus_sig): made recursive to support
2766 (MessageIter::append*): added Signature, dict, tuple
2769 * python/examples/example-client.py: added examples of getting tuples
2772 * python/examples/example-service.py: added examples of sending tuples
2775 * python/examples/example-signal-recipient.py: Fixed to handle new
2776 signal callback format
2778 2005-02-10 Havoc Pennington <hp@redhat.com>
2780 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2781 (call dbus_g_proxy_add_signal)
2783 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2785 (_dbus_server_new_for_domain_socket): escape the path
2787 * dbus/dbus-address.c (dbus_address_escape_value): new
2788 (dbus_address_unescape_value): new
2789 (dbus_parse_address): unescape values
2791 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2793 * doc/dbus-specification.xml: explain how to escape values in
2796 2005-02-10 Havoc Pennington <hp@redhat.com>
2798 * dbus/dbus-message-factory.c (generate_special): modify test to
2799 avoid using a non-basic dict key
2801 * dbus/dbus-marshal-validate-util.c: add test for the below
2803 * doc/dbus-specification.xml: require that dict keys are a basic
2806 * dbus/dbus-marshal-validate.c
2807 (_dbus_validate_signature_with_reason): require that dict key is a
2810 2005-02-10 Havoc Pennington <hp@redhat.com>
2812 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2813 change to be _and_unlock instead of _unlocked
2815 * dbus/dbus-connection.c
2816 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2817 have no_update so we can find this bug quickly in future
2819 2005-02-10 Havoc Pennington <hp@redhat.com>
2821 * dbus/dbus-message-util.c (verify_test_message): tests for string
2824 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2825 support for arrays of string/signature/path
2827 2005-02-10 Joe Shaw <joeshaw@novell.com>
2829 * dbus/dbus-connection.c
2830 (_dbus_connection_queue_received_message_link,
2831 _dbus_connection_message_sent): Add the path to
2833 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2834 _dbus_connection_send_preallocated_unlocked(), updated the
2835 dispatch status, and unlocks. Fixes a bug where certain
2836 situations (like a broken pipe) could cause a Disconnect message
2837 to not be sent, tricking the bus into thinking a service was still
2838 there when the process had quit.
2839 (_dbus_connection_send_preallocated): Call
2840 _dbus_connection_send_preallocated_and_unlock().
2841 (_dbus_connection_send_and_unlock): Added. Calls
2842 _dbus_connection_send_preallocated_and_unlock().
2843 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2844 (dbus_connection_send_with_reply): Update the dispatch status and
2847 * mono/Service.cs (~Service): Added. Removes the filter so that
2848 we don't get unmanaged code calling back into a GCed delegate.
2849 (RemoveFilter); Added.
2851 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2853 * dbus/dbus-message.c (dbus_message_iter_open_container):
2854 - Removed check for iterator type being an array because
2855 get_arg_type does not work with writer iterators
2856 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2858 2005-02-07 Havoc Pennington <hp@redhat.com>
2860 * doc/dbus-specification.xml: some more language cleanups; add
2861 stuff about how to deal with invalid protocol and extension
2862 points; add _ to allowed chars in auth commands; add EXTENSION_
2865 2005-02-06 Havoc Pennington <hp@redhat.com>
2867 * s/expected/required/ in a couple places for clarity
2869 2005-02-07 Colin Walters <walters@verbum.org>
2871 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2872 sender or proposed_recipient.
2874 2005-02-06 Havoc Pennington <hp@redhat.com>
2876 * dbus/dbus-message-factory.c (generate_special): more tests
2878 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2879 array length that exceeds the maximum
2881 2005-02-05 Havoc Pennington <hp@redhat.com>
2883 * dbus/dbus-message-factory.c (generate_special): more test cases,
2886 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2887 reason why a signature was invalid
2889 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2890 skip the length of the string before we look at it in validation
2892 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2895 * dbus/dbus-message.c (_dbus_message_loader_new): default
2896 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2898 2005-02-05 Havoc Pennington <hp@redhat.com>
2900 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2901 if the signature of a variant was empty
2902 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2903 struct with no element type)
2905 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2906 mangled messages to break things
2908 2005-02-04 Havoc Pennington <hp@redhat.com>
2910 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2911 g_quark_try_string() so it actually can return 0
2912 (dbus_g_proxy_connect_signal): ditto
2914 2005-02-04 Havoc Pennington <hp@redhat.com>
2916 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2918 (tristring_from_message): assert cleanly on null path/interface
2919 (should not be possible though I decided later)
2920 (dbus_g_proxy_dispose): move proxy manager unregistration here
2921 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2922 g_return_if_fail() checks
2924 2005-02-04 Havoc Pennington <hp@redhat.com>
2926 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2928 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2929 (with some minor changes)
2931 * doc/dbus-specification.xml: add deprecated attribute to
2932 introspection format
2934 2005-01-31 Havoc Pennington <hp@redhat.com>
2936 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2937 think it's sort of right
2939 2005-01-30 Havoc Pennington <hp@redhat.com>
2941 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2943 2005-01-30 Havoc Pennington <hp@redhat.com>
2945 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2947 * autogen.sh: change to autotools 1.9
2949 * glib/dbus-gproxy.c: completely change how signals work
2950 (dbus_g_proxy_add_signal): new function to specify signature of a
2952 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2953 and g_warning if the incoming message has the wrong signature.
2955 2005-01-30 Havoc Pennington <hp@redhat.com>
2957 * tools/dbus-names-model.c (have_names_notify): fix this
2959 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2960 up the string array handling a bit
2962 2005-01-30 Havoc Pennington <hp@redhat.com>
2964 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2965 (dbus_g_pending_call_cancel): new function
2967 * dbus/dbus-glib.h: move GType decls for connection/message here;
2968 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2969 here, just kind of rationalizing how we handle all that
2971 * tools/dbus-names-model.c: new file for a tree model listing the
2974 * tools/dbus-tree-view.c (model_new): use proper typing on the
2977 2005-01-30 Havoc Pennington <hp@redhat.com>
2979 * glib/dbus-gmain.c: add a custom GSource back that just checks
2980 whether the message queue has anything in it; otherwise, there are
2981 cases where we won't see messages in the queue since there was no
2982 IO visible to the glib main loop
2984 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2985 increase default message timeout to 25 seconds
2987 2005-01-30 Havoc Pennington <hp@redhat.com>
2989 * test/glib/test-profile.c (no_bus_stop_server): remove the
2990 warning about the g_warning that I just fixed
2992 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2993 custom source, seems to be a lot easier to understand and work
2996 2005-01-30 Havoc Pennington <hp@redhat.com>
2998 I think this main loop thing is conceptually broken, but here are
2999 some band aids. I'll maybe rewrite it in a minute.
3001 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3002 custom GSource, so don't pass it in; confusing
3003 (gsource_server_finalize, gsource_connection_finalize): add
3004 finalize handlers that remove all the watches.
3006 2005-01-30 Havoc Pennington <hp@redhat.com>
3008 * glib/dbus-gobject.c (introspect_properties): fix the XML
3011 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3012 which effectively detects the use of freed messages
3014 * glib/dbus-gobject.c (handle_introspect): modify and return the
3015 reply message instead of the incoming message
3017 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3018 gee, maybe it should SEND THE XML instead of just making a string
3019 and freeing it again ;-)
3021 * tools/dbus-print-message.c (print_message): improve printing of
3024 * configure.in: add debug-glib.service to the output
3026 2005-01-30 Havoc Pennington <hp@redhat.com>
3028 dbus-viewer introspected and displayed the bus driver
3030 * dbus/dbus-object-tree.c
3031 (object_tree_test_iteration): add tests for a handler registered on "/"
3033 * dbus/dbus-object-tree.c
3034 (_dbus_decompose_path): fix to handle path "/" properly
3035 (run_decompose_tests): add tests for path decomposition
3037 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3040 * glib/dbus-gobject.c (handle_introspect): fix quotes
3042 * test/glib/run-test.sh: support launching the bus, then running
3045 * test/glib/test-service-glib.c (main): put in a trivial gobject
3046 subclass and register it on the connection
3048 * bus/driver.c (bus_driver_handle_introspect): implement
3049 introspection of the bus driver service
3051 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3052 identifiers, doctype decl
3054 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3055 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3056 returning the service unchanged.
3057 (bus_driver_handle_message): remove old check for reply_serial in
3058 method calls, now the message type deals with that
3059 (bus_driver_handle_message): handle NULL interface
3061 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3063 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3066 * tools/dbus-viewer.c: add support for introspecting a service on
3069 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3070 (dbus_g_pending_call_unref): add
3072 2005-01-29 Havoc Pennington <hp@redhat.com>
3074 * tools/dbus-tree-view.c: add support for displaying properties.
3075 (run dbus-viewer with an introspect xml file as arg, then resize
3076 the window so the tree elements show up, not sure what that is)
3078 * glib/dbus-gobject.c (handle_introspect): return
3079 org.freedesktop.Properties and org.freedesktop.Introspectable
3080 interfaces when we are introspected.
3082 * doc/dbus-specification.xml: allow empty interface name when
3085 2005-01-29 Havoc Pennington <hp@redhat.com>
3087 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3088 though it uses glib, it could be extended for any binding in
3091 * glib/dbus-gobject.c (gobject_message_function): change to the
3092 new way properties work
3094 * dbus/dbus-protocol.h: add the new interfaces
3096 * doc/dbus-specification.xml: document the introspection format,
3097 Introspectable interface, and add an org.freedesktop.Properties
3100 * glib/dbus-gparser.c: add support for a <property> element
3102 * glib/dbus-gidl.c: add PropertyInfo
3104 * glib/dbus-gobject.c (handle_introspect): put the outermost
3105 <node> outside the signal and property descriptions.
3106 (introspect_properties): export properties as <property> rather
3107 than as method calls
3109 2005-01-28 Havoc Pennington <hp@redhat.com>
3111 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3112 related to authentication protocol
3114 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3116 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3117 - BUS_ACTIVATION -> BUS_STARTER
3118 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3119 - class MessageIter (__init__): Added recursion checking
3120 so we throw a nice error instead of just disconnecting from the
3122 (get): Added arg_type parameter for recursion.
3123 Removed the nil type
3124 Added signiture type placeholder (not implemented)
3125 Added struct type placeholder (not implemented)
3126 Added varient type placeholder (not implemented)
3127 Commented out dict type for now
3128 (get_element_type): renamed from get_array_type
3129 (get_*): changed to use the dbus_message_iter_get_basic API
3130 (get_*_array): removed in favor of recursive get_array method
3131 (get_array): new recursive method which calls get to marshal
3132 the elements of the array
3133 (value_to_dbus_sig): New method returns the corrasponding
3134 dbus signiture to a python value
3135 (append): Comment out dict handling for now
3136 Handle lists with the new recursive API
3137 Comment out None handling for now
3138 (append_nil): removed
3139 (append_*): changed to use dbus_message_iter_append_basic API
3140 (append_*_array): removed in favor of recursive append_array
3142 (__str__): Make it easier to print out recursive iterators
3144 - class Message (__str__): moved type inspection to the
3145 MessageIter class' __str__ method
3146 (get_iter): Added an append parameter wich defaults to False
3147 If True use the new API's to create an append iterator
3149 * python/dbus.py: Update to use new bindings API
3150 - TYPE_ACTIVATION -> TYPE_STARTER
3151 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3152 - class ActivationBus -> class StarterBus
3153 - class RemoteObject (__call__): get an append iterator
3154 - (_dispatch_dbus_method_call): get an append iterator
3155 - class Object (emit_signal): get an append iterator
3157 * python/examples/: Fixed up the examples to work with the new API
3159 2005-01-28 Joe Shaw <joeshaw@novell.com>
3161 * configure.in: Bump version up to 0.30.
3163 * HACKING: Add a release item to bump the version number up after
3166 2005-01-28 Havoc Pennington <hp@redhat.com>
3168 * doc/dbus-specification.xml: update to describe 16-bit types and
3171 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3174 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3177 * dbus/dbus-marshal-recursive.c: implement
3179 2005-01-27 Havoc Pennington <hp@redhat.com>
3181 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3183 * configure.in: find the right type for 16 and 32 bit ints as well
3186 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3187 the 16-bit types so people don't have to stuff them in 32-bit or
3190 2005-01-27 Havoc Pennington <hp@redhat.com>
3192 * dbus/dbus-message.c: byteswap the message if you init an
3193 iterator to read/write from it
3195 * dbus/dbus-marshal-byteswap.c: new file implementing
3196 _dbus_marshal_byteswap()
3198 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3200 2005-01-26 Havoc Pennington <hp@redhat.com>
3202 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3203 build, apparently - nobody noticed?)
3205 2005-01-26 Havoc Pennington <hp@redhat.com>
3207 * dbus/dbus-marshal-recursive.h: remove todo comment
3209 2005-01-25 Joe Shaw <joeshaw@novell.com>
3211 * Land the mono binding changes to conform to the new APIs.
3213 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3214 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3216 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3217 type code as a string.
3218 (InitAppending): Rename dbus_message_append_iter_init() to
3219 dbus_message_iter_init_append().
3221 * mono/BusDriver.cs: Rename ServiceEventHandler to
3222 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3223 Rename ServiceOwnerChanged to NameOwnerChanged.
3225 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3228 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3230 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3231 dbus_bus_acquire_service() to dbus_bus_request_name().
3233 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3234 of Type.UnderlyingSystemType to get the correct element type for
3236 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3237 dbus_message_get_{element|arg}_type() instead of
3238 dbus_message_iter_init_array_iterator().
3239 (Append): Replace dbus_message_iter_append_array() with
3240 dbus_message_iter_open_container() and
3241 dbus_message_iter_close_container().
3243 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3244 types have been removed.
3246 * mono/DBusType/*.cs: Replace calls of
3247 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3248 but specify the type in the DllImport extern declaration. Ditto
3249 for dbus_message_iter_append_[type]() ->
3250 dbus_message_iter_append_basic().
3252 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3253 NameOwnerChangedHandler.
3255 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3257 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3258 - get_base_service -> get_unique_name
3259 - bus_get_base_service -> bus_get_unique_name
3260 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3261 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3262 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3263 - bus_activate_service -> bus_start_service_by_name
3264 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3265 - bus_acquire_service -> bus_request_name
3266 - dbus_bus_acquire_service -> dbus_bus_request_name
3267 - bus_service_exists -> bus_name_has_owner
3268 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3270 * python/dbus.py: Rename of methods
3271 - activate_service -> start_service_by_name
3272 - bus_acquire_service -> bus_request_name
3273 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3274 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3277 2005-01-24 Joe Shaw <joeshaw@novell.com>
3279 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3280 signature for the method that can't be found.
3282 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3283 the message has any arguments, we need to call
3284 _dbus_type_reader_get_current_type(), not
3285 _dbus_type_reader_has_next().
3287 2005-01-24 Havoc Pennington <hp@redhat.com>
3289 * dbus/dbus-message-factory.c: more testing of message validation
3291 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3294 2005-01-23 Havoc Pennington <hp@redhat.com>
3296 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3297 get this all working, not many tests in the framework yet though
3299 2005-01-22 Havoc Pennington <hp@redhat.com>
3301 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3302 tutorial, based on work from David Wheeler.
3304 2005-01-21 Havoc Pennington <hp@redhat.com>
3306 * dbus/dbus-bus.c: add more return_if_fail checks
3308 * dbus/dbus-message.c (load_message): have the "no validation"
3309 mode (have to edit the code to toggle the mode for now though)
3311 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3312 skips all validation; I want to use this at least for benchmark
3313 baseline, I'm not sure if it should be a publicly-available switch.
3315 2005-01-21 Havoc Pennington <hp@redhat.com>
3317 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3318 toplevel doxygen group as the low-level API stuff
3320 * dbus/dbus.h: note that libdbus is the low-level API
3322 2005-01-20 Havoc Pennington <hp@redhat.com>
3324 * update-dbus-docs.sh: script to update docs on the web site, only
3325 works for me though. neener.
3327 2005-01-20 Havoc Pennington <hp@redhat.com>
3329 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3330 code can reveal bugs in it
3332 2005-01-20 Havoc Pennington <hp@redhat.com>
3334 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3335 select() version, patches from Tor Lillqvist
3337 2005-01-20 Havoc Pennington <hp@redhat.com>
3339 * doc/dbus-tutorial.xml: replace > with >
3341 * bus/services.c (bus_registry_acquire_service): validate the name
3342 and return a better error if it's no good.
3344 * doc/dbus-specification.xml: note NO_AUTO_START change
3346 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3347 from AUTO_START, we're toggling the default
3349 * bus/dispatch.c: adapt the tests to change of auto-start default
3351 2005-01-18 Havoc Pennington <hp@redhat.com>
3353 * rename dbus-daemon-1 to dbus-daemon throughout
3355 2005-01-18 Havoc Pennington <hp@redhat.com>
3357 * Throughout, grand renaming to strip out the use of "service",
3358 just say "name" instead (or "bus name" when ambiguous). Did not
3359 change the internal code of the message bus itself, only the
3360 programmer-facing API and messages.
3362 * doc/dbus-specification.xml: further update the message bus section
3364 * bus/config-parser.c (all_are_equiv): fix bug using freed string
3367 2005-01-17 Havoc Pennington <hp@redhat.com>
3369 * dbus/dbus-types.h: remove 16-bit types since we don't use them
3372 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3373 "invalid name character" not only non-ASCII
3375 * doc/dbus-specification.xml: further update spec, message bus
3376 parts are still out-of-date but the marshaling etc. stuff is now
3379 2005-01-17 Havoc Pennington <hp@redhat.com>
3381 * doc/dbus-specification.xml: partially update spec
3383 2005-01-17 Havoc Pennington <hp@redhat.com>
3385 * Throughout, align variant bodies according to the contained
3386 type, rather than always to 8. Should save a fair bit of space in
3389 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3390 fix handling of case where p == end
3392 * doc/TODO: remove the dbus_bool_t item and variant alignment items
3394 2005-01-17 Havoc Pennington <hp@redhat.com>
3396 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3398 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3399 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
3400 are marshaling/unmarshaling a boolean.
3402 2005-01-16 Havoc Pennington <hp@redhat.com>
3404 This is about it on what can be disabled/deleted from libdbus
3405 easily, back below 150K anyhow. Deeper cuts are more work than
3406 just turning the code off as I've done here.
3408 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3409 signed int convenience funcs
3411 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3414 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3415 things out of libdbus
3417 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3419 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3420 tests-enabled-only, though it should probably be deleted)
3422 * dbus/dbus-message-util.c: same stuff
3424 * dbus/dbus-auth-util.c: same stuff
3426 2005-01-16 Havoc Pennington <hp@redhat.com>
3428 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3430 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3431 way for stripping down dbus-userdb.c stuff included in libdbus.
3432 Rename _dbus_parse_uid for consistency.
3434 2005-01-16 Havoc Pennington <hp@redhat.com>
3436 * dbus/dbus-internals.c (_dbus_real_assert): print the function
3437 name the assertion failed in
3439 * dbus/dbus-internals.h (_dbus_return_if_fail)
3440 (_dbus_return_val_if_fail): assert that the name of the function
3441 containing the check doesn't start with '_', since we only want to
3442 use checks on public functions
3444 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3445 checks to assertions
3447 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3448 change checks to asserts for private function
3450 * dbus/dbus-message.c (_dbus_message_set_serial): checks
3451 to asserts for private function
3453 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3454 broken assertion that was breaking make check
3455 (_dbus_type_reader_array_is_empty): remove this rather than fix
3456 it, was only used in assertions
3458 2005-01-16 Havoc Pennington <hp@redhat.com>
3460 * test/unused-code-gc.py: hacky script to find code that's used
3461 only by the bus (not libdbus) or used only by tests or not used at
3462 all. It has some false alarms, but looks like we can clean up a
3463 lot of size from libdbus.
3465 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3466 dbus/Makefile.am: initially move 10K of binary size out of libdbus
3468 2005-01-16 Havoc Pennington <hp@redhat.com>
3470 * Add and fix docs according to Doxygen warnings throughout
3473 * dbus/dbus-marshal-recursive.c
3474 (_dbus_type_reader_array_is_empty): change this to just call
3475 array_reader_get_array_len() and make it static
3477 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3479 (dbus_message_iter_init_append): rename from append_iter_init
3481 * dbus/dbus-marshal-recursive.c
3482 (_dbus_type_reader_get_element_type): rename from
3483 _dbus_type_reader_get_array_type
3485 2005-01-15 Havoc Pennington <hp@redhat.com>
3487 * test/glib/test-profile.c (with_bus_server_filter): fix crash
3489 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3490 when DBUS_DISABLE_ASSERT
3491 (_dbus_marshal_set_basic): be sure we align for the string length
3493 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3496 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3497 inline macro version
3498 (_dbus_string_set_byte): provide inline macro version
3500 2005-01-15 Havoc Pennington <hp@redhat.com>
3502 * Land the new message args API and type system.
3504 This patch is huge, but the public API change is not
3505 really large. The set of D-BUS types has changed somewhat,
3506 and the arg "getters" are more geared toward language bindings;
3507 they don't make a copy, etc.
3509 There are also some known issues. See these emails for details
3511 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3512 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3514 * dbus/dbus-marshal-*: all the new stuff
3516 * dbus/dbus-message.c: basically rewritten
3518 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3519 freed blocks to be all non-nul bytes so using freed memory is less
3520 likely to work right
3522 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3523 DBUS_FAIL_MALLOC=N environment variable, so you can do
3524 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3525 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3528 * qt/message.cpp: port to the new message args API
3529 (operator<<): use str.utf8() rather than str.unicode()
3530 (pretty sure this is right from the Qt docs?)
3532 * glib/dbus-gvalue.c: port to the new message args API
3534 * bus/dispatch.c, bus/driver.c: port to the new message args API
3536 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3537 "locked" flag to TRUE and align_offset to 0; I guess we never
3538 looked at these anyhow, but seems cleaner.
3540 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3541 move allocation padding macro to this header; use it to implement
3542 (_DBUS_STRING_STATIC): ability to declare a static string.
3544 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3545 change to return TRUE if the interface is not set.
3547 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3548 to dbus-marshal-validate.[hc]
3550 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3553 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3554 to dbus-marshal-*.[hc]
3556 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3557 function here from dbus-marshal.c
3559 2005-01-12 Joe Shaw <joeshaw@novell.com>
3561 * NEWS: Update for 0.23.
3563 * configure.in: Release 0.23.
3565 2005-01-12 Joe Shaw <joeshaw@novell.com>
3567 * mono/Makefile.am, mono/example/Makefile.am: Always build the
3568 dbus DLL with --debug. Clean up after the .mdb files this leaves
3571 * mono/doc/Makefile.am: Need to uninstall the docs on "make
3574 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3575 is an enum, get the enum's underlying type. Another mono
3578 2005-01-11 Joe Shaw <joeshaw@novell.com>
3580 Patch from Sjoerd Simons <sjoerd@luon.net>
3582 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3583 DESTDIR. It breaks stuff.
3585 2005-01-11 Joe Shaw <joeshaw@novell.com>
3587 Patch from Tambet Ingo <tambet@ximian.com>
3589 * mono/DBusType/Array.cs (Get): Get the underlying element type by
3590 calling type.GetElementType(). The code previously depended on
3591 broken Mono behavior, which was fixed in Mono 1.1.3.
3593 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3594 Activator.CreateInstance() so that the class's constructor is
3595 called with the right parameters.
3597 2005-01-11 Joe Shaw <joeshaw@novell.com>
3599 Patch from Timo Teräs <ext-timo.teras@nokia.com>
3601 * dbus/dbus-connection.c
3602 (_dbus_connection_queue_received_message_link): Call
3603 _dbus_connection_remove_timeout() instead of the _locked()
3604 variant, since it's always called from
3605 _dbus_connection_handle_watch(), which handles the locking.
3606 Removed the _locked() variant since it's no longer used.
3608 2005-01-03 Havoc Pennington <hp@redhat.com>
3610 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3613 2004-12-26 Havoc Pennington <hp@redhat.com>
3615 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3617 2005-01-03 Havoc Pennington <hp@redhat.com>
3619 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3622 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3624 2005-01-02 Havoc Pennington <hp@redhat.com>
3626 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3628 2005-01-01 Havoc Pennington <hp@redhat.com>
3630 * configure.in: add -Wfloat-equal
3632 2005-01-01 Havoc Pennington <hp@redhat.com>
3634 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
3635 for a variety of reasons '==' doesn't do this.
3637 2004-12-31 Havoc Pennington <hp@redhat.com>
3639 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3640 I keep wishing I had
3642 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3644 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3646 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3648 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3649 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3650 dbus-protocol.h. Because they are defines and not enums they are not
3653 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
3655 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3656 dbus_bus_activate_service
3658 * python/dbus.py (Bus.activate_service): activate a service on the
3661 2004-12-24 Havoc Pennington <hp@redhat.com>
3663 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3664 file format has also changed and I haven't adapted to that yet
3666 * Makefile.am: load .gcno files from latest gcc
3668 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
3669 * Patch from Rob Taylor <robtaylor@fastmail.fm>
3671 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3674 * python/dbus.py (get_unix_user): Added binding to
3675 call dbus_bindings.bus_get_unix_user
3677 * python/extract.py: Modified the proto_pat regex to
3678 handle unsigned long
3680 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3682 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3683 better POSIX compliance.
3685 2004-12-19 Havoc Pennington <hp@redhat.com>
3687 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
3688 (_dbus_string_insert_8_aligned): new functions
3690 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3692 2004-12-18 Havoc Pennington <hp@redhat.com>
3694 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3697 * dbus/dbus-message.c: fix a comment, and add a still-unused
3698 not-implemented function
3700 * dbus/dbus-marshal.h: fix comment
3702 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3704 2004-12-17 Joe Shaw <joeshaw@novell.com>
3706 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3707 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3708 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3709 Type.UnderlyingSystemType to get the actual system type
3710 underneath. This code previously depended on the broken Mono
3711 behavior, which was fixed in 1.1.3.
3713 2004-11-27 Havoc Pennington <hp@redhat.com>
3715 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3717 (_dbus_string_get_const_data): inline when asserts are disabled
3719 * dbus/dbus-message.c: record the _dbus_current_generation of
3720 creation so we can complain if dbus_shutdown() is used improperly.
3721 Do this only if checks are enabled.
3723 * dbus/dbus-connection.c: ditto
3725 2004-11-26 Havoc Pennington <hp@redhat.com>
3727 * test/glib/test-profile.c: add with_bus mode to profile echoes
3728 that go through the bus.
3730 * test/glib/run-test.sh: add ability to run test-profile
3732 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3735 2004-11-26 Havoc Pennington <hp@redhat.com>
3737 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3738 thing was implemented
3740 2004-11-26 Havoc Pennington <hp@redhat.com>
3742 * test/glib/test-profile.c: tweak a bit, add support for some
3743 made-up minimal malloc overhead with plain sockets, since in
3744 real life some sort of buffers are unavoidable thus we could
3745 count them in the theoretical best case
3747 2004-11-26 Havoc Pennington <hp@redhat.com>
3749 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3750 where I was trying to cache one too many messages
3752 2004-11-26 Havoc Pennington <hp@redhat.com>
3754 * dbus/dbus-message.c: reimplement message cache as an array which
3755 makes the cache about twice as fast and saves maybe 1.5% overall
3757 2004-11-26 Havoc Pennington <hp@redhat.com>
3759 * dbus/dbus-threads.c (init_global_locks): forgot to put the
3760 message cache lock here
3762 2004-11-26 Havoc Pennington <hp@redhat.com>
3764 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3765 the "char byte_order" next to each other to save 4 bytes
3766 (dbus_message_new_empty_header): reduce preallocation, since the
3767 message cache should achieve a similar effect
3768 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3769 message cache that keeps a few DBusMessage around in a pool,
3770 another 8% speedup or so.
3772 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3774 2004-11-25 Havoc Pennington <hp@redhat.com>
3776 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3777 to write, without reading or blocking, try it before the poll()
3778 and skip the poll() if nothing remains to write. This is about a
3779 3% speedup in the echo client/server
3781 2004-11-25 Havoc Pennington <hp@redhat.com>
3783 The primary change here is to always write() once before adding
3784 the write watch, which gives us about a 10% performance increase.
3786 * dbus/dbus-transport-unix.c: a number of modifications to cope
3787 with removing messages_pending
3788 (check_write_watch): properly handle
3789 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3790 messages_pending stuff
3791 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3793 (unix_handle_watch): after writing, see if the write watch can be
3795 (unix_do_iteration): assert that write_watch/read_watch are
3796 non-NULL rather than testing that they aren't, since they
3797 aren't allowed to be NULL. check_write_watch() at the end so
3798 we add the watch if we did not finish writing (e.g. got EAGAIN)
3800 * dbus/dbus-transport-protected.h: remove messages_pending call,
3801 since it resulted in too much inefficient watch adding/removing;
3802 instead we now require that the transport user does an iteration
3803 after queueing outgoing messages, and after trying the first
3804 write() we add a write watch if we got EAGAIN or exceeded our
3805 max bytes to write per iteration setting
3807 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3810 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3811 freed and then accessed, valgrind flagged this bug, fix it
3813 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3814 as the last valid field plus 1, where really it is equal to the
3815 last valid field. Corrects some message corruption issues.
3817 * dbus/dbus-mainloop.c: verbosity changes
3819 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3820 instead of aborting in one of the test codepaths
3822 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3823 caused not printing the pid ever again if a verbose was missing
3824 the newline at the end
3825 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3827 * dbus/dbus-connection.c: verbosity changes;
3828 (dbus_connection_has_messages_to_send): new function
3829 (_dbus_connection_message_sent): no longer call transport->messages_pending
3830 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3831 try to write() immediately, so we can avoid the write watch. This
3832 is the core purpose of this patchset
3833 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3834 dump the outgoing message queue, so nobody will get confused
3835 trying to send them or thinking stuff is pending to be sent
3837 * bus/test.c: verbosity changes
3839 * bus/driver.c: verbosity/assertion changes
3841 * bus/dispatch.c: a bunch of little tweaks to get it working again
3842 because this patchset changes when/where you need to block.
3844 2004-11-23 Havoc Pennington <hp@redhat.com>
3846 * test/glib/test-profile.c: modify to accept a plain_sockets
3847 argument in which case it will bench plain sockets instead of
3848 libdbus, for comparison purposes.
3850 2004-11-22 Havoc Pennington <hp@redhat.com>
3852 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3853 threads for more time, so sysprof can get a grip on it.
3855 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3858 2004-11-13 Havoc Pennington <hp@redhat.com>
3860 * test/glib/test-profile.c: fix this thing up a bit
3862 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3863 preallocation sizes by a fair bit; not sure if this will be an
3864 overall performance win or not, but it does reduce reallocs.
3866 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3867 the test hack that forced constant realloc if asserts are
3868 disabled, so we can profile sanely. Sprinkle in some
3869 _DBUS_UNLIKELY() which are probably pointless, but before I
3870 noticed the real performance problem I put them in.
3871 (_dbus_string_validate_utf8): micro-optimize this thing a little
3872 bit, though callgrind says it didn't help; then special-case
3873 ascii, which did help a lot; then be sure we detect nul bytes as
3874 invalid, which is a bugfix.
3875 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3876 superstition; use memset to nul the padding instead of a manual
3878 (_dbus_string_get_length): inline this as a
3879 macro; it showed up in the profile because it's used for loop
3882 2004-11-10 Colin Walters <walters@verbum.org>
3884 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3887 2004-11-09 Colin Walters <walters@verbum.org>
3889 * dbus/dbus-string.c (_dbus_string_get_length): New
3890 function, writes DBusString to C buffer.
3892 * dbus/dbus-string.h: Prototype it.
3894 * dbus/dbus-message.c (dbus_message_type_to_string): New
3895 function, converts message type into C string.
3897 * dbus/dbus-message.h: Prototype it.
3899 * bus/selinux.c (bus_selinux_check): Take source pid,
3900 target pid, and audit data. Pass audit data to
3902 (log_audit_callback): New function, appends extra
3904 (bus_selinux_allows_acquire_service): Also take
3905 service name, add it to audit data.
3906 (bus_selinux_allows_send): Also take message
3907 type, interface, method member, error name,
3908 and destination, and add them to audit data.
3909 (log_cb): Initialize func_audit.
3911 * bus/selinux.h (bus_selinux_allows_acquire_service)
3912 (bus_selinux_allows_send): Update prototypes
3914 * bus/services.c (bus_registry_acquire_service): Pass
3915 service name to bus_selinux_allows_acquire_service.
3917 * bus/bus.c (bus_context_check_security_policy): Pass
3918 additional audit data. Move assignment of dest
3921 2004-11-07 Colin Walters <walters@verbum.org>
3923 * dbus/dbus-transport-unix.c (do_authentication): Always
3924 initialize auth_completed.
3926 2004-11-07 Colin Walters <walters@verbum.org>
3928 * bus/bus.c (load_config): Break into three
3929 separate functions: process_config_first_time_only,
3930 process_config_every_time, and process_config_postinit.
3931 (process_config_every_time): Move call of
3932 bus_registry_set_service_context_table into
3933 process_config_postinit.
3934 (process_config_postinit): New function, does
3935 any processing that needs to happen late
3936 in initialization (and also on reload).
3937 (bus_context_new): Instead of calling load_config,
3938 open config parser here and call process_config_first_time_only
3939 and process_config_every_time directly. Later, after
3940 we have forked but before changing UID,
3941 invoke bus_selinux_full_init, and then call
3942 process_config_postinit.
3943 (bus_context_reload_config): As in bus_context_new,
3944 load parse file inside here, and call process_config_every_time
3945 and process_config_postinit.
3947 * bus/services.h, bus/services.c
3948 (bus_registry_set_service_context_table): Rename
3949 from bus_registry_set_sid_table. Take string hash from config
3950 parser, and convert them here into SIDs.
3952 * bus/config-parser.c (struct BusConfigParser): Have
3953 config parser only store a mapping of service->context
3955 (merge_service_context_hash): New function.
3956 (merge_included): Merge context string hashes instead
3957 of using bus_selinux_id_table_union.
3958 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3959 simply create a new string hash.
3960 (bus_config_parser_unref): Unref it.
3961 (start_selinux_child): Simply insert strings into hash,
3962 don't call bus_selinux_id_table_copy_over.
3964 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3965 (bus_selinux_id_table_copy_over): Delete.
3967 2004-11-03 Colin Walters <walters@verbum.org>
3969 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3972 2004-11-03 Colin Walters <walters@verbum.org>
3974 * bus/test-main.c (test_pre_hook): Fix test logic,
3975 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3977 2004-11-02 Colin Walters <walters@redhat.com>
3979 * bus/selinux.c (bus_selinux_init): Split into two functions,
3980 bus_selinux_pre_init and bus_selinux_post_init.
3981 (bus_selinux_pre_init): Just determine whether SELinux is
3983 (bus_selinux_post_init): Do everything else.
3985 * bus/main.c (main): Call bus_selinux_pre_init before parsing
3986 config file, and bus_selinux_post_init after. This ensures that
3987 we don't lose the policyreload notification thread that
3988 bus_selinux_init created before forking previously.
3990 * bus/test-main.c (test_pre_hook): Update for split.
3992 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
3994 Patch from Johan Fischer <linux@fischaz.com>
3996 * mono/doc/Makefile.am (install-data-local): Added directory
3999 2004-10-29 Colin Walters <walters@redhat.com>
4001 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4002 parameter for fd to write pid to.
4004 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4006 * bus/bus.c (bus_context_new): Pass print_pid_fd
4007 to _dbus_become_daemon (bug #1720)
4009 2004-10-29 Colin Walters <walters@redhat.com>
4011 Patch from Ed Catmur <ed@catmur.co.uk>
4013 * mono/doc/Makefile.am (install-data-local): Handle
4016 2004-10-29 Colin Walters <walters@redhat.com>
4018 * bus/.cvsignore, qt/.cvsignore: Update.
4020 2004-10-29 Colin Walters <walters@redhat.com>
4022 Patch from Kristof Vansant <de_lupus@pandora.be>
4024 * configure.in: Detect Slackware.
4025 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4026 * bus/rc.messagebus.in: New file.
4028 2004-10-29 Colin Walters <walters@redhat.com>
4030 * tools/dbus-monitor.c (filter_func): Return
4031 DBUS_HANDLER_RESULT_HANDLED in filter function
4033 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4035 2004-10-29 Colin Walters <walters@redhat.com>
4037 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4039 * bus/services.c (bus_registry_acquire_service):
4040 Correctly retrieve service name from DBusString
4043 2004-10-29 Colin Walters <walters@redhat.com>
4045 * dbus/dbus-glib.h: Update documentation to not
4046 refer to internal APIs.
4048 2004-10-27 Joe Shaw <joeshaw@novell.com>
4050 * mono/Arguments.cs (GetDBusTypeConstructor):
4051 type.UnderlyingSystemType will return "System.Byte" if you do it
4052 on "byte[]", which is not what we want. So check the type.IsArray
4053 property and use System.Array instead.
4055 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4057 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4058 the DBusUserInfo structure since this is passed into the function.
4059 This would cause a double free when the function that allocated
4060 the structure would try to free it when an error occured.
4062 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4063 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4064 for service activation to avoid 32bit/64bit parallel install issues
4066 2004-10-21 Colin Walters <walters@verbum.org>
4068 * AUTHORS: Fix my email address, the @gnu.org one
4069 has been bouncing for some time. Also add J5.
4071 2004-10-21 Colin Walters <walters@verbum.org>
4073 * dbus/dbus-transport-unix.c (do_authentication): Return
4074 authentication status to callers.
4075 (unix_handle_watch): If we completed authentication this round,
4076 don't do another read. Instead wait until the next iteration,
4077 after we've read any pending data in the auth buffer.
4078 (unix_do_iteration): Ditto.
4079 (unix_handle_watch): Updated for new do_authentication prototype.
4081 2004-10-18 Colin Walters <walters@verbum.org>
4083 * bus/selinux.c (bus_selinux_enabled): Handle
4084 --disable-selinux case.
4086 2004-10-18 Colin Walters <walters@verbum.org>
4088 * bus/selinux.h: Add bus_selinux_enabled.
4090 * bus/selinux.c (bus_selinux_enabled): Implement it.
4092 * bus/config-parser.c (struct include): Add
4093 if_selinux_enabled member.
4094 (start_busconfig_child): Parse if_selinux_enabled
4095 attribute for include.
4096 (bus_config_parser_content): Handle it.
4098 * bus/session.conf.in, bus/system.conf.in: Add
4099 inclusion of context mapping to default config files;
4100 conditional on SELinux being enabled.
4102 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4104 * test/data/invalid-config-files/badselinux-1.conf,
4105 test/data/invalid-config-files/badselinux-2.conf:
4106 Test files for bad syntax.
4108 2004-10-17 Colin Walters <walters@verbum.org>
4110 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4111 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4112 format specifier mismatches.
4114 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4116 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4119 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4120 pointer (bug #1540, Leonardo Boiko).
4122 2004-09-28 Jon Trowbridge <trow@ximian.com>
4124 * mono/BusDriver.cs: Changed BusDriver struct to remove
4125 the ServiceCreated and ServiceDeleted events and replace them
4126 with the new ServiceOwnerChanged event.
4128 * mono/example/BusListener.cs: Added a new example program,
4129 which listens for and reports any ServiceOwnerChanged events
4132 * mono/example/Makefile.am (DESTDIR): Build changes for the
4133 new BusListener.cs example.
4135 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4137 * bus/signals.c (bus_match_rule_parse): validate the components of
4138 match rules (bug #1439).
4140 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4142 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4144 * doc/dbus-specification.xml: document ServiceOwnerChanged
4147 * bus/driver.c, bus/driver.h, bus/services.c: Use
4148 ServiceOwnerChanged signal instead of ServiceCreated and
4151 * bus/dispatch.c: update testcase for the new signal.
4153 2004-09-20 Jon Trowbridge <trow@ximian.com>
4155 Patch from Nat Friedman <nat@novell.com>
4157 * mono/Makefile.am: A number of small build fixes to allow "make
4158 distcheck" to succeed.
4160 * mono/example/Makefile.am: "make distcheck" fixes.
4162 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4165 * test/Makefile.am: "make distcheck" fixes.
4167 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4169 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4171 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4173 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4174 messages after the first one (bug #1389).
4176 * bus/dispatch.c (check_double_hello_message): add a test case for
4177 the double hello message bug.
4178 (check_existent_service_activation): fix check of spawning error.
4180 2004-09-16 David Zeuthen <david@fubar.dk>
4182 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4184 2004-09-12 David Zeuthen <david@fubar.dk>
4186 Patch from Kay Sievers <kay.sievers@vrfy.org>
4188 * bus/bus.c (bus_context_new):
4190 * bus/main.c (usage)
4192 Add commandline option --nofork to override configuration file
4195 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4197 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4198 compilers don't like it (bug #974).
4200 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4202 * qt/connection.*: Applied patch by Jérôme Lodewyck
4203 <lodewyck@clipper.ens.fr> to integrate an existing
4204 connection into the Qt eventloop
4206 2004-08-30 Jon Trowbridge <trow@ximian.com>
4208 * mono/BusDriver.cs: Added. This is a class for interacting with
4209 the org.freedesktop.DBus service.
4211 * mono/Message.cs: Added a mechanism to expose the message that is
4212 currently being dispatched via the static Message.Current
4213 property. Added Message.Sender and Message.Destination
4216 * mono/Handler.cs: Expose the dispatched message via
4217 Message.Current when handling method calls.
4219 * mono/Service.cs: Expose the dispatched message via
4220 Message.Current when handling signal emissions.
4222 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4223 Connection.BaseService property.
4225 2004-08-28 Havoc Pennington <hp@redhat.com>
4227 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4229 More fixes from Steve Grubb
4231 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4232 (_dbus_listen_tcp_socket): fix fd leak
4234 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4235 EINTR to a bit lower in the code
4237 2004-08-26 Jon Trowbridge <trow@ximian.com>
4239 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4240 TRUE if we are inquiring about the existence of the built-in
4241 org.freedesktop.DBus service.
4243 2004-08-25 John Palmieri <johnp@redhat.com>
4244 * bus/config-parser.c:
4245 (struct PolicyType): Add POLICY_CONSOLE
4246 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4247 (start_busconfig_child): Sets up console element when
4248 <policy at_console=""> is encountered in a policy file
4249 (append_rule_from_element): Convert console elements to console
4253 (bus_policy_create_client_policy): Add console rules to the client
4254 policy based on if the client is at the console
4255 (bus_policy_append_console_rule): New function for adding a
4256 console rule to a policy
4257 (bus_policy_merge): Handle console rule merging
4259 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4260 where we check for console user files
4262 * dbus/dbus-sysdeps.c:
4263 (_dbus_file_exists): New function which checks if the given
4265 (_dbus_user_at_console): New function which does the system
4266 specific process of checking if the user is at the console
4268 * dbus/dbus-userdb.c:
4269 (_dbus_is_console_user): New function converts a UID to user name
4270 and then calls the system specific _dbus_user_at_console to
4271 see if the user is at the console and therefor a console user
4273 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4275 * bus/config-parser.c (set_limit):
4276 * bus/dbus-daemon-1.1.in:
4277 * test/data/valid-config-files/many-rules.conf: set the
4278 max_match_rules_per_connection limt from the config file.
4280 * doc/busconfig.dtd: update the DTD.
4282 * bus/driver.c: remove some unused variables.
4284 2004-08-24 Mikael Hallendal <micke@imendio.com>
4286 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4287 it's been replaced by dbus_g_bus_get
4289 2004-08-23 Colin Walters <walters@redhat.com>
4291 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4293 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4295 * bus/selinux.c: Create a thread for policy reload notification.
4296 (bus_selinux_get_policy_root): Implement.
4298 * bus/config-parser.c (start_busconfig_child)
4299 (bus_config_parser_content): Support SELinux-root relative
4302 * configure.in <HAVE_SELINUX>: Add -lpthread.
4304 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4305 (test_post_hook): Move memory checking into here.
4306 (test_pre_hook, test_post_hook): Move SELinux checks in
4307 here, but conditional on a DBUS_TEST_SELINUX environment
4308 variable. Unfortunately we can't run the SELinux checks
4309 as a normal user, since they won't have any permissions
4310 for /selinux. So this will have to be tested manually
4311 for now, until we have virtualization for most of
4314 2004-08-23 Havoc Pennington <hp@redhat.com>
4316 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4317 drop supplementary groups, suggested by Steve Grubb
4319 2004-08-20 Colin Walters <walters@redhat.com>
4321 * bus/config-parser.c (start_busconfig_child): Remove some unused
4324 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4327 2004-08-17 Joe Shaw <joeshaw@novell.com>
4329 * configure.in: If --enable-mono is passed in, if we can't find
4332 * mono/Makefile.am: Use /gacutil to install assemblies into the
4335 2004-08-12 Havoc Pennington <hp@redhat.com>
4337 * NEWS: update for 0.22
4339 * configure.in: release 0.22
4341 2004-08-11 Colin Walters <walters@redhat.com>
4343 * tools/dbus-send.c (main, usage): Add --reply-timeout
4346 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
4348 * bus/bus.c (process_config_first_time_only): get rid of an unused
4349 DBusError that was causing a memoy leak (bug #989).
4351 * dbus/dbus-keyring.c, dbus/dbus-message.c:
4352 fix compilation on Solaris/Forte C (bug #974)
4354 * bus/main.c (main): plug two minuscule memleaks.
4356 2004-08-10 Havoc Pennington <hp@redhat.com>
4358 * doc/dbus-tutorial.xml: add some more info on GLib bindings
4360 2004-08-09 Havoc Pennington <hp@redhat.com>
4362 * COPYING: switch to Academic Free License version 2.1 instead of
4363 2.0, to resolve complaints about patent termination clause.
4365 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
4367 * README: added documentation for the --enable-python
4370 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4372 * bus/config-parser.c (bus_config_parser_new): fix an invalid
4373 _unref in the SELinux support.
4375 * doc/busconfig.dtd: update DTD for SELinux support.
4377 * bus/config-loader-libxml.c: fix error handler and parser
4378 initialisation/cleanup. OOM test now works with libxml2 HEAD.
4380 * configure.in: remove the warning about libxml2.
4382 * dbus/dbus-bus.c: silence doxygen warning.
4384 2004-07-31 Colin Walters <walters@redhat.com>
4386 * configure.in: Move #error in SELinux check to its own line.
4388 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4390 * dbus/dbus-internals.h (_DBUS_SET_OOM):
4391 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4394 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4395 broken by the change in the _SET_OOM macros.
4397 2004-07-31 Colin Walters <walters@redhat.com>
4399 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4402 2004-07-31 Colin Walters <walters@redhat.com>
4404 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4405 to correctly detect DBUS__ACQUIRE_SVC. Also add an
4408 2004-07-24 Havoc Pennington <hp@redhat.com>
4410 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4412 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4415 * configure.in: add --enable-selinux
4417 * bus/policy.c (bus_policy_merge): add FIXME to a comment
4419 * bus/main.c (main): initialize and shut down selinux
4421 * bus/connection.c: store SELinux ID on each connection, to avoid
4422 repeated getting of the string context and converting it into
4425 * bus/bus.c (bus_context_get_policy): new accessor, though it
4427 (bus_context_check_security_policy): check whether the security
4428 context of sender connection can send to the security context of
4429 recipient connection
4431 * bus/config-parser.c: add parsing for <selinux> and <associate>
4433 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4434 implement dbus_connection_get_unix_fd()
4436 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4437 function, used by the selinux stuff
4439 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
4441 * bus/config-loader-libxml.c: complete the implementation of
4442 libxml backend for config file loader. Doesn't work with full OOM
4445 * configure.in: change error when selecting libxml into a warning.
4447 * test/data/invalid-config-files: add two non-well-formed XML
4450 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4452 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4453 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4454 be necessary to read all the buffer. (bug #894)
4456 * bus/activation.c (bus_activation_activate_service): fix a
4457 potential assertion failure (bug #896). Small optimization in the
4458 case of auto-activation messages.
4460 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4461 add test case for byte-through-vararg bug (#901). patch by Kimmo
4464 2004-07-28 Anders Carlsson <andersca@gnome.org>
4467 * python/dbus_bindings.pyx.in:
4468 Add dbus.init_gthreads (), allow emit_signal to pass
4469 arguments to the signal.
4471 2004-07-24 Havoc Pennington <hp@redhat.com>
4473 * AUTHORS: add some people, not really comprehensively, let me
4474 know if I missed you
4476 2004-07-24 Havoc Pennington <hp@redhat.com>
4478 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4481 * test/Makefile.am (DIST_SUBDIRS): here also
4483 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4485 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4486 breaking build on Solaris, reported by Farhad Saberi on the ML.
4488 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4489 va_arg invocation to account for integer promotion in the case of
4490 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4492 * bus/services.c (bus_service_remove_owner): fix bug #902, use
4493 _dbus_list_get_first_link, not _dbus_list_get_first.
4495 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4497 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4498 handler functions so that the asserts in _dbus_object_subtree_unref
4501 * dbus/dbus-transport-unix.c (do_reading):
4502 _dbus_transport_queue_messages return value is of type
4503 dbus_bool_t, not DBusDispatchStatus.
4505 2004-07-19 David Zeuthen <david@fubar.dk>
4507 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4510 (check_get_connection_unix_user): Debug says GetProperty; but the
4511 method is called GetConnectionUnixUser
4512 (check_get_connection_unix_process_id): New function
4513 (bus_dispatch_test): Actually call check_get_connection_unix_user();
4514 also call check_get_connection_unix_process_id()
4517 (bus_driver_handle_get_connection_unix_process_id): New function,
4518 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4522 (handle_server_data_external_mech): Set pid from the credentials
4523 obtained from the socket
4525 * dbus/dbus-connection.c:
4526 (dbus_connection_get_unix_process_id): New function
4528 * dbus/dbus-connection.h:
4529 Add prototype for dbus_connection_get_unix_process_id
4531 * dbus/dbus-transport.c:
4532 (_dbus_transport_get_unix_process_id): New function
4534 * dbus/dbus-transport.h:
4535 Add prototype for _dbus_transport_get_unix_process_id
4537 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
4539 * dbus/dbus-message.c: Message counter fix, patch by Christian
4540 Hammond <chipx86@gnupdate.org>
4542 2004-07-18 Seth Nickell <seth@gnome.org>
4545 * python/dbus_bindings.pyx.in:
4546 * python/tests/test-client.py:
4548 Add dbus.ByteArray and dbus_bindings.ByteArray
4549 types so that byte streams can be passed back.
4551 Give jdahlin the heaps of credit that are so
4554 2004-07-12 Seth Nickell <seth@gnome.org>
4558 Add message argument to the default object_method_handler
4561 * python/dbus_bindings.pyx.in:
4563 Automatically return NIL when passed an empty list
4564 (we can't pass back a list since lists are typed
4565 and we don't have any idea what type the the client
4566 intended the list to be... :-( )
4568 2004-07-10 Seth Nickell <seth@gnome.org>
4570 * python/examples/Makefile.am:
4572 Fix distcheck breakage caused by new examples.
4574 2004-07-10 Seth Nickell <seth@gnome.org>
4578 Add "message" argument to service-side dbus.Object
4579 methods. This will break existing services written
4580 using the python bindings, but will allow extraction
4581 of all the message information (e.g. who its from).
4583 Add improved "object oriented" signal handling/emission.
4585 * python/examples/example-service.py:
4589 * python/examples/example-signal-emitter.py:
4590 * python/examples/example-signal-recipient.py:
4592 Two new examples that show how to emit and receive
4593 signals using the new APIs.
4595 * python/examples/example-signals.py:
4596 * python/examples/gconf-proxy-service.py:
4597 * python/examples/gconf-proxy-service2.py:
4599 Add "message" argument to service methods.
4601 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
4603 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4604 * dbus/bus.c (dbus_bus_get_unix_user)
4605 * doc/dbus-specification.xml: implement GetConnectionUnixUser
4606 method of org.freedesktop.DBus interface.
4608 * bus/dispatch.c: test case
4610 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
4612 * python/Makefile.am: switched include directory from glib/ to dbus/
4613 since dbus-glib.h moved
4615 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4617 * configure.in: prevent building the gcj stuff and libxml loader
4618 since they are broken.
4620 2004-06-20 Havoc Pennington <hp@redhat.com>
4622 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
4623 codes from the dbus error names
4625 * glib/dbus-glib.h: move to subdir dbus/ since it's included
4626 as dbus/dbus-glib.h and that breakage is now visible due to
4627 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4629 * glib/dbus-glib.h: s/gproxy/g_proxy/
4631 * dbus/dbus-shared.h: new header to hold stuff shared with
4634 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4637 * glib/dbus-glib.h (dbus_set_g_error): move to
4638 dbus-glib-lowlevel.h
4640 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4641 of stuff to enable this
4643 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4645 * a bunch of other changes with the same basic "separate glib
4646 bindings from dbus.h" theme
4648 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
4650 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4652 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4654 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4656 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4657 the reply value of the ServiceExists message.
4659 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
4661 * python/dbus_bindings.pyx.in: No longer need to parse path
4662 elements and pass them as arrays of strings. The C API now
4663 accepts plain path strings.
4664 (_build_parsed_path): removed
4666 2004-06-07 Havoc Pennington <hp@redhat.com>
4668 * doc/TODO: remove auto-activation item since it's done; sort
4669 items by importance/milestone
4671 2004-06-07 Havoc Pennington <hp@redhat.com>
4673 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4674 random signature when using REQUIRED_FIELDS (this hack won't work
4677 * dbus/dbus-message.c: change the signature to be a header field,
4678 instead of message->signature special-case string. Incremental
4679 step forward. Then we can fix up code to send the signature in the
4680 message, then fix up code to validate said signature, then fix up
4681 code to not put the typecodes inline, etc.
4682 (load_one_message): don't make up the signature after the fact
4683 (decode_header_data): require signature field for the known
4686 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4688 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4690 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
4692 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4694 * mono/Handler.cs: Updated to follow new path argument for
4695 (un-)registering objects.
4697 * mono/example/Makefile.am:
4699 * configure.in: Bumped required version for mono and use new -pkg
4702 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
4704 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4705 registration functions take the path argument as char* instead of
4708 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4709 split off the path decompostion part of
4710 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4713 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4715 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4717 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4718 machine approach. A state is implemented as a function that
4719 handles incoming events as specified for that state.
4721 * doc/dbus-specification.xml: Update auth protocol state machine
4722 specification to match implementation. Remove some leftover
4725 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4727 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4728 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4731 * Doxyfile.in: remove deprecated options.
4733 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4734 glib/test-thread.h, glib/test-thread-client.c,
4735 glib/test-thread-server.c, glib/test-profile.c,
4736 glib/test-dbus-glib.c: remove these unused files.
4738 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
4740 * dbus/dbus-object-tree.c
4741 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4742 non-fallback handlers (bug #684).
4743 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4744 (find_subtree_recurse): report wether the returned subtree is an
4745 exact match or a "fallback" match higher up in the tree.
4746 (object_tree_test_iteration): update test case.
4748 2004-06-01 Seth Nickell <seth@gnome.org>
4750 * python/dbus_bindings.pyx.in:
4751 * python/tests/test-client.py:
4753 Round off basic type support. Add dicts (yay!), and
4754 remaining array types.
4756 Make MessageIter more general so it works for dicts too.
4758 Mark all loop variables as C integers.
4760 2004-05-31 Havoc Pennington <hp@redhat.com>
4762 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4765 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4767 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4768 option that runs the tests, and start filling in some code
4769 including for starters just dumping the interfaces to stdout
4771 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4773 * test/data/valid-introspection-files/lots-of-types.xml: test of
4774 an example introspection file
4776 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4779 2004-05-31 Seth Nickell <seth@gnome.org>
4781 * python/dbus_bindings.pyx.in:
4782 * python/tests/test-client.py:
4787 Fix string array memory trashing bug... oops...
4789 2004-05-30 Seth Nickell <seth@gnome.org>
4793 Add a nicer-but-less-flexible alternate API for handling
4794 calls to virtual objects in dbus.ObjectTree.
4796 Screw up the argument order to the dbus.Object constructor
4797 for consistency with dbus.ObjectTree (and to make dbus_methods
4798 optional for future extension)
4800 * python/examples/Makefile.am:
4801 * python/examples/gconf-proxy-service.py:
4802 * python/examples/gconf-proxy-service2.py:
4804 Alternate implementation of gconf-proxy-service using the
4805 nicer dbus.ObjectTree API.
4807 * python/examples/example-service.py:
4808 * python/tests/test-server.py
4810 Reverse the argument order to deal with dbus.Object constructor
4813 2004-05-30 Seth Nickell <seth@gnome.org>
4815 * python/examples/example-client.py:
4816 * python/examples/example-service.py:
4818 Take it back. Lists seem to work but they're broken
4819 in the test suite. Make the base examples use
4822 2004-05-30 Seth Nickell <seth@gnome.org>
4824 * python/dbus_bindings.pyx.in:
4825 * python/tests/test-client.py:
4827 Add some more tests and fix errors that crop up.
4828 Unfortunately, currently it seems like marshalling
4829 and unmarshalling of lists is completely broken :-(
4831 2004-05-30 Seth Nickell <seth@gnome.org>
4833 * python/dbus_bindings.pyx.in:
4835 Add support for ObjectPath type.
4839 Refactor message handling code to a common function.
4841 * python/tests/test-client.py:
4842 * python/tests/test-server.py:
4844 Add tests that check to make sure values of all types
4845 can be echoed from a service w/o mangling.
4847 2004-05-29 Seth Nickell <seth@gnome.org>
4851 Add ObjectTree class which allows implementation
4852 of trees of "virtual" objects. Basically the python
4853 wrapper for "register_fallback".
4855 * python/examples/Makefile.am
4856 * python/examples/gconf-proxy-client.py:
4857 * python/examples/gconf-proxy-service.py:
4859 Implement a simple GConf proxy service that supports
4860 get/set on string and int GConf keys using the ObjectTree.
4862 2004-05-29 Seth Nickell <seth@gnome.org>
4865 * python/examples/example-client.py:
4866 * python/examples/example-service.py:
4867 * python/examples/list-system-services.py:
4869 Add SessionBus, SystemBus and ActivationBus classes
4870 so you don't need to know the special little BUS_TYPE
4873 2004-05-29 Havoc Pennington <hp@redhat.com>
4875 * bus/config-parser.c (process_test_valid_subdir): temporarily
4876 stop testing config parser OOM handling, since expat has issues
4877 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4879 * bus/dbus-daemon-1.1.in: change requested_reply to
4880 send_requested_reply/receive_requested_reply so we can send the
4881 replies, not just receive them.
4883 * bus/config-parser.c: parse the new
4884 send_requested_reply/receive_requested_reply
4886 * bus/policy.c (bus_client_policy_check_can_send): add
4887 requested_reply argument and use it
4889 * bus/bus.c (bus_context_check_security_policy): pass through
4890 requested_reply status to message send check
4892 * bus/system.conf.in: adapt to requested_reply change
4894 2004-05-28 Havoc Pennington <hp@redhat.com>
4896 * test/glib/test-service-glib.c (main): remove unused variable
4898 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4900 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4901 from the enum, no longer in use.
4903 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4906 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4907 whether error_name passed in is a valid error name.
4909 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4911 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4912 OBJECT_PATH and OBJECT_PATH_ARRAY
4914 2004-05-28 Seth Nickell <seth@gnome.org>
4916 * python/examples/Makefile.am:
4918 Forget to add Makefile.am. Do not pass go.
4920 2004-05-28 Michael Meeks <michael@ximian.com>
4922 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4925 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4927 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4928 (_dbus_message_iter_get_basic_type_array): impl.
4929 drastically simplify ~all relevant _get methods to use these.
4930 (_dbus_message_iter_append_basic_array),
4931 (dbus_message_iter_append_basic): impl
4932 drastically simplify ~all relevant _append methods to use these.
4934 * dbus/dbus-message-builder.c (parse_basic_type)
4935 (parse_basic_array, lookup_basic_type): impl.
4936 (_dbus_message_data_load): prune scads of duplicate /
4939 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4940 (_dbus_demarshal_basic_type): implement,
4941 (demarshal_and_validate_len/arg): beef up debug.
4942 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4944 2004-05-27 Seth Nickell <seth@gnome.org>
4947 * python/Makefile.am:
4949 Include the example python apps in the tarball.
4951 * python/examples/list-system-services.py
4953 Add a python new example that fetches the list of services
4954 from the system bus.
4956 2004-05-27 Seth Nickell <seth@gnome.org>
4959 * python/dbus_bindings.pyx.in:
4961 Fix failure to notify that a signal was not handled,
4962 resulted in hung functions.
4964 2004-05-25 Colin Walters <walters@redhat.com>
4966 * tools/dbus-monitor.c (main): Monitor all types of messages.
4968 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
4970 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4971 which unregisters the object path and disposes the handler.
4973 2004-05-23 Kristian Høgsberg <krh@redhat.com>
4975 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4977 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4978 operands to && so we call dbus_message_iter_next () for the last
4981 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4983 * dbus/dbus-object-tree.c
4984 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4985 children even if the requested path isn't registered.
4986 (object_tree_test_iteration): test object_tree_list_registered.
4988 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4991 2004-05-20 Kristian Høgsberg <krh@redhat.com>
4993 * doc/TODO: Remove resolved items.
4995 * bus/expirelist.h (struct BusExpireList): remove unused n_items
4998 * bus/connection.c (bus_connections_expect_reply): Enforce the
4999 per-connection limit on pending replies.
5001 Patch from Jon Trowbridge <trow@ximian.com>:
5003 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5004 up a watch that triggers a config reload when one end of the pipe
5006 (signal_handler): Instead of doing the config reload in our SIGHUP
5007 handler, just write to the reload pipe and let the associated
5008 watch handle the reload when control returns to the main loop.
5010 * bus/driver.c (bus_driver_handle_reload_config): Added.
5011 Implements a ReloadConfig method for requesting a configuration
5012 file reload via the bus driver.
5014 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5016 * HACKING: Updated release instructions concerning the wiki page.
5018 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5020 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5021 filter against auth->allowed_mechs; we only add allowed mechs in
5022 record_mechanisms().
5024 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5025 ALLOWED_MECHS to auth-script format so we can set the list of
5028 * data/auth/client-out-of-mechanisms.auth-script: New test to
5029 check client disconnects when it is out of mechanisms to try.
5031 * dbus/dbus-auth.c (process_command): Remove check for lines
5032 longer that 1 MB; we only buffer up maximum 16 kB.
5034 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5035 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5036 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5037 assume there might be unused bytes.
5039 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5040 client-out-of-mechs, it is handled in process_reject(). Move check
5041 for max failures to send_rejected(), as it's a server-only thing.
5043 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5044 send_auth(), send_data(), send_rejected(), send_error(),
5045 send_ok(), send_begin() and send_cancel().
5047 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5049 Remove base64 encoding, replace with hex encoding. Original patch
5050 from trow@ximian.com, added error handling.
5052 * dbus/dbus-string.c (_dbus_string_base64_encode)
5053 (_dbus_string_base64_decode): Remove.
5054 (_dbus_string_hex_decode): Add end_return argument so we can
5055 distinguish between OOM and invalid hex encoding.
5056 (_dbus_string_test): Remove base64 tests and add test case for
5059 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5060 Replace base64 with hex.
5062 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5063 for invalid hex encoded data in auth protocol.
5065 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5067 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5070 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5072 * mono/dbus-sharp.dll.config.in: Added for GAC
5073 * mono/dbus-sharp.snk: Added for GAC
5074 * mono/Assembly.cs.in: Added for GAC
5075 * mono/Makefile.am: Changes for GAC installation
5076 * configure.in: Added refs for dbus-sharp.dll.config.in and
5077 Assembly.cs.in. More fixes for mono testing
5078 * mono/example/Makefile.am: Changed var to CSC
5079 * Makefile.am: Changed flag name to DBUS_USE_CSC
5081 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5083 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5084 * mono/doc/*: Added documentation framework
5085 * configure.in: Added monodoc check
5086 * README: Added description of mono configure flags
5088 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5090 * doc/dbus-specification.xml: Added a "Required" column to the
5091 header fields table and changed the "zero or more" verbage in
5092 the above paragraph to read "The header must contain the required
5093 named header fields and zero or more of the optional named header
5095 * test/data/invalid-messages/*.message: Added the required PATH
5096 named header field to the tests so that they don't fail on
5097 'Missing path field'
5099 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
5101 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5102 the stack by implicitly defining variable and parameter types and
5103 removing the hack of defining C pointers as python objects and later
5106 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5108 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5110 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5112 * mono/DBusType/Dict.cs: Handle empty dicts
5113 * mono/DBusType/Array.cs: Handle empty arrays
5114 * mono/Arguments.cs: Handle empty arguments
5116 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5118 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5121 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5123 * test/data/valid-messages/standard-*.message: Update message
5124 test scripts to new header field names.
5126 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5128 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5129 overflow to times_we_did_each_thing array which would chop off the
5130 first character of the failure_dir string. Increased the size of
5131 the array to 7 to reflect the number of random mutation functions
5134 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5136 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5137 unix_server->watch here, it is unreffed in disconnect.
5138 (_dbus_server_new_for_tcp_socket): convert NULL host to
5139 "localhost" here so we don't append NULL to address.
5141 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5142 various addresses, including tcp with no explicit host.
5144 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5146 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5147 fix incorrect setting of .name_offset in the HeaderField (it was
5148 off by two bytes, positioned right after the name and typecode)
5150 * bus/bus.c (bus_context_new, bus_context_unref): test before
5151 calling dbus_server_free_data_slot and _dbus_user_database_unref
5152 in case of an error.
5154 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5157 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5159 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5160 _dbus_poll() instead of select().
5162 2004-04-15 Jon Trowbridge <trow@ximian.com>
5164 * bus/main.c (signal_handler): Reload the configuration files
5166 (main): Set up our SIGHUP handler.
5168 * bus/bus.c (struct BusContext): Store the config file, user and
5169 fork flag in the BusContext.
5170 (process_config_first_time_only): Added. Contains the code
5171 (previously in bus_context_new) for setting up the BusContext from
5172 the BusConfigParser that should only be run the first time the
5173 config files are read.
5174 (process_config_every_time): Added. Contains the code (previously
5175 in bus_context_new) for setting up the BusContext from the
5176 BusConfigParser that should be run every time the config files are
5178 (load_config): Added. Builds a BusConfigParser from the config
5179 files and passes the resulting structure off to
5180 process_config_first_time_only (assuming this is the first time)
5181 and process_config_every_time.
5182 (bus_context_new): All of the config-related code has been moved
5183 to process_config_first_time_only and process_config_every_time.
5184 Now this function just does the non-config-related initializations
5185 and calls load_config.
5186 (bus_context_reload_config): Added.
5188 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5190 * bus/driver.c (bus_driver_handle_get_service_owner):
5191 implement a GetServiceOwner method.
5192 * doc/dbus-specification.xml: document it.
5193 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5195 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5196 implement, using the bus GetServiceOwner method.
5198 * test/glib/test-dbus-glib.c:
5199 use dbus_gproxy_new_for_service_owner so that we can receive the
5202 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5204 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5205 dbus/dbus-message.c, dbus/dbus-protocol.h
5206 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5208 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5209 dbus/dbus-message.c, dbus/dbus-protocol.h
5210 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5212 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5213 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5214 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5216 * doc/dbus-specification.xml (Header Fields Table):
5217 s/SERVICE/DESTINATION
5218 s/SENDER_SERVICE/SENDER
5221 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5223 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5226 2004-04-13 Michael Meeks <michael@ximian.com>
5228 * glib/dbus-gobject.c (handle_introspect): split out
5229 (introspect_properties): this.
5230 (handle_introspect): implement this.
5232 * test/glib/Makefile.am: use the absolute path so the bus
5233 daemon's chdir ("/") doesn't kill us dead.
5235 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5237 2004-04-12 Jon Trowbridge <trow@ximian.com>
5239 * bus/config-parser.c (struct BusConfigParser): Added
5240 included_files field.
5241 (seen_include): Added. Checks whether or not a file has already
5242 been included by any parent BusConfigParser.
5243 (bus_config_parser_new): Copy the parent's included_files.
5244 (include_file): Track which files have been included, and fail on
5245 circular inclusions.
5246 (process_test_valid_subdir): Changed printf to report if we are
5247 testing valid or invalid conf files.
5248 (all_are_equiv): Changed printf to be a bit clearer about
5249 what we are actually doing.
5250 (bus_config_parser_test): Test invalid configuration files.
5252 2004-04-09 Jon Trowbridge <trow@ximian.com>
5254 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5255 argument. If non-null, the newly-constructed BusConfigParser will
5256 be initialized with the parent's BusLimits instead of the default
5258 (include_file): When including a config file, pass in
5259 the current parser as the parent and then copy the BusLimits
5260 from the included BusConfigParser pack to the current parser.
5261 (process_test_valid_subdir): Renamed from process_test_subdir.
5262 (process_test_equiv_subdir): Added. Walks through a directory,
5263 descending into each subdirectory and loading the config files
5264 it finds there. If any subdirectory contains two config files
5265 that don't produce identical BusConfigParser structs, fail.
5266 For now, the BusConfigParser's BusPolicies are not compared.
5267 (bus_config_parser_test): Call both process_test_valid_subdir and
5268 process_test_equiv_subdir.
5270 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5271 argument and pass it along to the call to bus_config_parser_new.
5272 Also made a few small changes to allow this code to compile.
5274 * bus/config-loader-expat.c (bus_config_load): Take a parent
5275 argument and pass it along to the call to bus_config_parser_new.
5277 * bus/bus.c (bus_context_new): Load the config file
5278 with a NULL parent argument.
5280 2004-03-29 Michael Meeks <michael@ximian.com>
5282 * glib/dbus-gobject.c (introspect_properties): split
5283 out, fix mangled 'while' flow control.
5284 (introspect_signals): implement.
5285 (handle_introspect): update.
5287 2004-03-29 Michael Meeks <michael@ximian.com>
5289 * glib/dbus-gobject.c (set_object_property): split out /
5290 re-work, use the property type, and not the message type(!)
5291 (get_object_property): ditto.
5293 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5294 (dbus_gvalue_marshal): make this code re-usable, needed
5295 for signals too, also on both proxy and server side.
5296 Re-write for more efficiency / readability.
5298 2004-03-29 Michael Meeks <michael@ximian.com>
5300 * dbus/dbus-message.c
5301 (dbus_message_new_error_printf): impl.
5303 * dbus/dbus-connection.c
5304 (dbus_connection_unregister_object_path): fix warning.
5306 * configure.in: fix no-mono-installed situation.
5308 2004-03-27 Havoc Pennington <hp@redhat.com>
5310 Patch from Timo Teräs:
5312 * tools/dbus-send.c (main): if --print-reply, assume type is
5313 method call; support boolean type args
5315 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5316 bunch of memleak and logic bugs
5318 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5320 * mono/Arguments.cs:
5321 * mono/Introspector.cs:
5323 * mono/InterfaceProxy.cs:
5325 * mono/ProxyBuilder.cs:
5327 Added InterfaceProxy class to avoid building proxies for every
5331 * dbus-message.c (dbus_message_append_args_valist)
5332 (dbus_message_iter_get_object_path)
5333 (dbus_message_iter_get_object_path_array)
5334 (dbus_message_iter_append_object_path)
5335 (dbus_message_iter_append_object_path_array):
5336 Added object_path iter functions to handle OBJECT_PATH arguments
5338 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5340 First checkin of mono bindings.
5343 Build stuff for the bindings
5344 * dbus-sharp.pc.in: Added for pkgconfig
5346 2004-03-21 Havoc Pennington <hp@redhat.com>
5348 * test/test-service.c (main): remove debug spew
5350 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5352 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5355 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5356 (dbus_message_iter_init_array_iterator)
5357 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5358 indicate whether the iterator is empty
5360 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5363 2004-03-19 Havoc Pennington <hp@redhat.com>
5365 * NEWS: 0.21 updates
5367 * configure.in: 0.21
5369 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5371 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5372 you don't need pyrex to make dist
5374 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5377 2004-03-18 Richard Hult <richard@imendio.com>
5379 * dbus/dbus-message.c (dbus_message_get_auto_activation)
5380 (dbus_message_set_auto_activation): Add doxygen docs.
5382 2004-03-16 Richard Hult <richard@imendio.com>
5384 * bus/activation.c: (bus_activation_service_created),
5385 (bus_activation_send_pending_auto_activation_messages),
5386 (bus_activation_activate_service):
5388 * bus/dispatch.c: (bus_dispatch),
5389 (check_nonexistent_service_auto_activation),
5390 (check_service_auto_activated),
5391 (check_segfault_service_auto_activation),
5392 (check_existent_service_auto_activation), (bus_dispatch_test):
5393 * bus/driver.c: (bus_driver_handle_activate_service):
5394 * bus/services.c: (bus_registry_acquire_service):
5395 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5396 (dbus_message_get_auto_activation):
5397 * dbus/dbus-message.h:
5398 * dbus/dbus-protocol.h: Implement auto-activation.
5400 * doc/dbus-specification.xml: Add auto-activation to the spec.
5402 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
5404 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5405 fix a bug with CUSTOM types.
5407 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5408 a unit test for this bug (used to fail).
5410 2004-03-12 Mikael Hallendal <micke@imendio.com>
5413 (babysitter_watch_callback): notify all pending activations waiting for
5414 the same exec that the activation failed.
5415 (bus_activation_activate_service): shortcut the activation if we
5416 already waiting for the same executable to start up.
5418 2004-03-12 Mikael Hallendal <micke@imendio.com>
5421 - Added service file reloading.
5422 Each service files directory is kept in an hash table in
5423 BusActivation and each BusActivationEntry knows what .service-file it
5424 was read from. So when you try to activate a service the bus will
5425 check if it's been updated, removed or if new .service-files has
5427 - Test code at the bottom for the service file reloading.
5428 * bus/test-main.c: (main):
5430 - added service reloading test.
5431 * dbus/dbus-sysdeps.c:
5432 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5434 2004-03-08 Michael Meeks <michael@ximian.com>
5436 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
5437 bail immediately if disconnected, to avoid busy loop.
5439 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5440 cleanup cut/paste/inefficiency.
5442 2004-03-01 David Zeuthen <david@fubar.dk>
5444 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5445 bug where args were used twice. This bug resulted in a segfault
5446 on a Debian/PPC system when starting the messagebus daemon. Include
5447 dbus-sysdeps.h for DBUS_VA_COPY
5449 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5451 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5452 appropriate va_copy implementation. From GLib
5454 2004-02-24 Joe Shaw <joe@ximian.com>
5456 * bus/services.c (bus_registry_acquire_service): We need to pass
5457 in the service name to dbus_set_error() to prevent a crash.
5459 2003-12-26 Anders Carlsson <andersca@gnome.org>
5461 * AUTHORS: Reveal my True identity.
5463 2003-12-17 Mikael Hallendal <micke@imendio.com>
5465 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5466 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5468 2003-12-13 Mikael Hallendal <micke@imendio.com>
5470 * doc/TODO: Added not about better error check of configuration files.
5472 2003-12-02 Richard Hult <richard@imendio.com>
5474 * Update AFL version to 2.0 throughout the source files to reflect
5475 the update that was done a while ago.
5477 2003-12-02 Richard Hult <richard@imendio.com>
5479 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5480 wrote_dict_key to FALSE on the iter that the dict is appended to,
5481 just like when appending other types. Fixes a bug where a dict
5482 couldn't be put inside a dict.
5483 (dbus_message_iter_append_dict_key): Fix typo in warning message.
5484 (message_iter_test, _dbus_message_test): Add test case for dict
5487 2003-12-01 David Zeuthen <david@fubar.dk>
5489 * python/dbus.py: Add the actual message when calling the reciever
5490 of a signal such that parameters can be inspected. Add the method
5491 remove_signal_receiver
5493 2003-11-26 Mikael Hallendal <micke@imendio.com>
5497 * glib/*.[ch]: Made ref functions return the pointer
5499 2003-11-25 Zack Rusin <zack@kde.org>
5501 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5503 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
5506 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
5507 the Integrator and to better fit with the server,
5509 2003-11-24 Zack Rusin <zack@kde.org>
5511 * qt/connection.h, qt/connection.cpp: removing initDbus method since
5512 the integrator handles it now
5514 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5515 since QTimer wasn't really meant to be used the way DBusTimeout is
5517 2003-11-24 Zack Rusin <zack@kde.org>
5519 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
5520 Integrator class which integrates D-BUS with the Qt event loop,
5522 * qt/connection.h, qt/connection.cpp: Move all the code which
5523 was dealing with D-BUS integration to the Integrator class,
5524 and start using Integrator,
5526 2003-11-23 Zack Rusin <zack@kde.org>
5528 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
5531 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5532 switching namespaces to DBusQt, reworking the class,
5534 * Makefile.cvs: switching dependencies so that it matches KDE
5537 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
5540 2003-11-19 Havoc Pennington <hp@redhat.com>
5544 * configure.in: bump version to 0.20
5546 * configure.in (have_qt): add yet another place to look for qt
5547 (someone hand trolltech a .pc file...)
5549 2003-11-01 Havoc Pennington <hp@redhat.com>
5551 * doc/dbus-specification.xml: add state machine docs on the auth
5552 protocol; just a first draft, I'm sure it's wrong.
5554 2003-10-28 David Zeuthen <david@fubar.dk>
5556 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5557 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5559 2003-10-28 Havoc Pennington <hp@redhat.com>
5561 * dbus/dbus-message.c (get_next_field): delete unused function
5563 2003-10-28 Havoc Pennington <hp@redhat.com>
5565 * bus/expirelist.c (do_expiration_with_current_time): detect
5566 failure of the expire_func due to OOM
5568 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5570 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5571 NoReply error that's now created by the bus when the service exits
5573 2003-10-28 Havoc Pennington <hp@redhat.com>
5575 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5576 tests for set_path, set_interface, set_member, etc.
5578 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5580 * dbus/dbus-message.c (set_string_field): always just delete and
5581 re-append the field; accept NULL for deletion
5582 (re_align_fields_recurse): reimplement
5584 2003-10-26 Havoc Pennington <hp@redhat.com>
5586 * dbus/dbus-connection.c: fix docs to properly describe the
5587 disconnected message
5588 (_dbus_connection_notify_disconnected): remove this function;
5589 we can't synchronously add the disconnected message, we have to
5590 do it after we've queued any remaining real messages
5591 (_dbus_connection_get_dispatch_status_unlocked): queue the
5592 disconnect message only if the transport has finished queueing all
5593 its real messages and is disconnected.
5594 (dbus_connection_disconnect): update the dispatch status here
5596 2003-10-22 Havoc Pennington <hp@redhat.com>
5598 * bus/bus.c (bus_context_check_security_policy): fix up assertion
5600 * bus/connection.c (bus_transaction_send_from_driver): set the
5601 destination to the connection's base service
5603 2003-10-20 Havoc Pennington <hp@redhat.com>
5605 hmm, make check is currently not passing.
5607 * doc/dbus-specification.xml: add requirement that custom type
5608 names follow the same rules as interface names.
5610 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5611 duplication and allow 'c' to be 'custom'; dict is now 'm' for
5614 * doc/dbus-specification.xml: update type codes to match
5615 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5616 CUSTOM. Add type OBJECT_PATH to the spec.
5618 2003-10-17 Havoc Pennington <hp@redhat.com>
5620 * bus/driver.c (create_unique_client_name): use "." as separator
5621 in base service names instead of '-'
5623 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5624 byte at the end of the string
5626 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5627 optimization macros since string validation seems to be a slow
5630 * doc/dbus-specification.xml: restrict valid
5631 service/interface/member/error names. Add test suite code for the
5634 * dbus/dbus-string.c: limit service/interface/member/error names
5637 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5638 format arg to verbose spew
5640 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5641 memory, return instead of g_error
5643 * test/test-service.c (path_message_func): support emitting a
5646 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5647 activation bus type if DBUS_BUS_ACTIVATION was set; default to
5648 assuming the activation bus was the session bus so that services
5649 started manually will still register.
5650 (init_connections_unlocked): fix so that in OOM situation we get
5651 the same semantics when retrying the function
5653 * test/test-service.c (main): change to use path registration, to
5654 test those codepaths; register with DBUS_BUS_ACTIVATION rather
5655 than DBUS_BUS_SESSION
5657 2003-10-16 Havoc Pennington <hp@redhat.com>
5659 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5661 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5662 coverage of the tests
5663 (coverage-report.txt): don't move the .da and .bbg files around
5665 2003-10-16 Havoc Pennington <hp@redhat.com>
5667 * bus/bus.c (struct BusContext): remove struct field I didn't mean
5670 2003-10-16 Havoc Pennington <hp@redhat.com>
5672 * bus/connection.c (bus_pending_reply_expired): either cancel or
5674 (bus_connections_check_reply): use unlink, not remove_link, as we
5675 don't want to free the link; fixes double free mess
5677 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5678 where no reply was received
5680 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5683 * bus/signals.c (match_rule_matches): add special cases for the
5684 bus driver, so you can match on sender/destination for it.
5686 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5687 DBUS_PRINT_BACKTRACE is set
5689 * dbus/dbus-internals.c: add pid to assertion failure messages
5691 * dbus/dbus-connection.c: add message type code to the debug spew
5693 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5694 sender=foo not service=foo
5696 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5697 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
5698 DBUS_ACTIVATION_ADDRESS instead
5700 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5701 DBUS_SYSTEM_BUS_ADDRESS if appropriate
5703 * bus/bus.c (bus_context_new): handle OOM copying bus type into
5706 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5707 (dbus_message_iter_get_object_path_array): new function (half
5708 finished, disabled for the moment)
5710 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5711 DBUS_MESSAGE_TYPE_ERROR
5713 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5714 avoid redirecting stderr to /dev/null
5715 (babysit): close stdin if not doing the "exit_with_session" thing
5717 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5718 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5719 stdout/stdin, so things don't get confused
5721 * bus/system.conf.in: fix to allow replies, I modified .conf
5722 instead of .conf.in again.
5724 2003-10-14 David Zeuthen <david@fubar.dk>
5726 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5727 argtype to arg_type when raising unknown arg type exception.
5728 Changed type list to reflect the changes in dbus-protocol.h so
5729 the bindings actually work.
5731 2003-10-14 Havoc Pennington <hp@redhat.com>
5733 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5734 to have a bug keeping it from outputting the .da files sometimes
5735 (string_get_string): don't append garbage nul bytes to the string.
5737 2003-10-15 Seth Nickell <seth@gnome.org>
5739 * python/Makefile.am:
5741 Include dbus_h_wrapper.h in the dist tarball.
5743 2003-10-14 Havoc Pennington <hp@redhat.com>
5745 * bus/bus.c (bus_context_check_security_policy): revamp this to
5746 work more sanely with new policy-based requested reply setup
5748 * bus/connection.c (bus_transaction_send_from_driver): set bus
5749 driver messages as no reply
5751 * bus/policy.c (bus_client_policy_check_can_receive): handle a
5752 requested_reply attribute on allow/deny rules
5754 * bus/system.conf: add <allow requested_reply="true"/>
5756 * bus/driver.c (bus_driver_handle_message): fix check for replies
5757 sent to the bus driver, which was backward. How did this ever work
5758 at all though? I think I'm missing something.
5760 * dbus/dbus-message.c (decode_header_data): require error and
5761 method return messages to have a reply serial field to be valid
5762 (_dbus_message_loader_queue_messages): break up this function;
5763 validate that reply serial and plain serial are nonzero;
5764 clean up the OOM/error handling.
5765 (get_uint_field): don't return -1 from this
5766 (dbus_message_create_header): fix signed/unsigned bug
5768 * bus/connection.c (bus_connections_expect_reply): save serial of
5769 the incoming message, not reply serial
5771 2003-10-14 Havoc Pennington <hp@redhat.com>
5773 * bus/connection.c: implement pending reply tracking using
5776 * bus/bus.c (bus_context_check_security_policy): verify that a
5777 reply is pending in order to allow a reply to be sent. Deny
5778 messages of unknown type.
5780 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5782 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5783 (bus_context_get_reply_timeout): new
5785 2003-10-13 Seth Nickell <seth@gnome.org>
5787 * python/Makefile.am:
5789 Pass "make distcheck": remove a couple files from DIST_FILES
5790 that weren't included in the final version.
5792 2003-10-12 Havoc Pennington <hp@pobox.com>
5794 Added test code that 1) starts an actual bus daemon and 2) uses
5795 DBusGProxy; fixed bugs that were revealed by the test. Lots
5796 more testing possible, but this is the basic framework.
5798 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5799 empty proxy lists from the proxy list hash
5801 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5802 couple of return_if_fail checks
5804 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5805 to allocate, so everything is cleared to NULL as it should be.
5807 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5808 source as data to dbus_connection_set_timeout_functions() as the
5809 timeout functions expected
5811 * test/glib/run-test.sh: add a little script to start up a message
5812 bus and run tests using it
5814 * tools/dbus-launch.1: updates
5816 * tools/dbus-launch.c (main): add --config-file option
5818 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5819 that could never be reached.
5821 * dbus/dbus-message.c (dbus_message_new_method_return)
5822 (dbus_message_new_error, dbus_message_new_signal): set the
5823 no-reply-expected flag on all these. Redundant, but may
5824 as well be consistent.
5826 2003-10-11 Havoc Pennington <hp@pobox.com>
5828 * test/decode-gcov.c (function_solve_graph): make broken block
5829 graph a nonfatal error since it seems to be broken. Need to debug
5832 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5833 can't just check type > INVALID < LAST anymore
5835 * dbus/dbus-message.c (dbus_message_get_signature): new function
5836 (dbus_message_has_signature): new function
5837 (struct DBusMessage): add signature field (right now it isn't sent
5838 over the wire, just generated on the fly)
5839 (dbus_message_copy): copy the signature, and init strings to
5840 proper length to avoid some reallocs
5841 (dbus_message_iter_init_array_iterator): return void, since it
5843 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5844 (_dbus_message_loader_queue_messages): add silly temporary hack to
5845 fill in message->signature on load
5847 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5848 characters, so they are relatively human-readable.
5850 2003-10-11 Havoc Pennington <hp@pobox.com>
5852 * dbus/dbus-message.c (_dbus_message_test): add more test
5853 coverage, but #if 0 for now since they uncover a bug
5854 not fixed yet; I think in re_align_field_recurse()
5855 (re_align_field_recurse): add FIXME about broken assertion
5857 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5859 * bus/connection.c: share a couple code bits with expirelist.c
5861 * bus/expirelist.h, bus/expirelist.c: implement a generic
5862 expire-items-after-N-seconds facility, was going to share between
5863 expiring connections and replies, decided not to use for expiring
5864 connections for now.
5866 * COPYING: include AFL 2.0 (still need to change all the file headers)
5868 2003-10-09 Havoc Pennington <hp@redhat.com>
5870 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5871 gcc 3.3. Not that we do anything about it yet.
5873 * bus/signals.c (bus_match_rule_parse): impose max length on the
5876 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5878 2003-10-09 Havoc Pennington <hp@redhat.com>
5880 Make matching rules theoretically work (add parser).
5882 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5883 the case where destination is explicitly specified as bus driver
5884 and someone else is eavesdropping.
5886 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5887 definition of eavesdropping and assertion
5889 * tools/dbus-send.c (main): use dbus_message_type_from_string
5891 * bus/signals.c (bus_match_rule_parse): implement
5893 * dbus/dbus-message.c (dbus_message_type_from_string): new
5895 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5897 2003-10-02 Havoc Pennington <hp@pobox.com>
5899 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5900 dbus_gproxy_oneway_call
5902 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5903 (dbus_server_setup_with_g_main): fix to allow calling them more
5904 than once on the same args
5905 (dbus_bus_get_with_g_main): new function
5907 2003-10-02 Havoc Pennington <hp@redhat.com>
5909 * doc/dbus-tutorial.xml: write some stuff
5911 2003-09-29 Havoc Pennington <hp@pobox.com>
5913 * configure.in: split checks for Doxygen from XML docs, check for
5916 * doc/Makefile.am: XML-ify all the docs, and add a blank
5919 2003-09-29 Havoc Pennington <hp@pobox.com>
5921 * Merge dbus-object-names branch. To see the entire patch
5922 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5923 it's huuuuge though.
5924 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5926 2003-09-28 Havoc Pennington <hp@pobox.com>
5928 * HACKING: update to reflect new server
5930 2003-09-26 Seth Nickell <seth@gnome.org>
5933 * python/examples/example-signals.py:
5935 Start implementing some notions of signals. The API
5936 is really terrible, but they sort of work (with the
5937 exception of being able to filter by service, and to
5938 transmit signals *as* a particular service). Need to
5939 figure out how to make messages come from the service
5942 * python/dbus_bindings.pyx.in:
5944 Removed duplicate message_handler callbacks.
5946 2003-09-25 Havoc Pennington <hp@redhat.com>
5948 * bus/session.conf.in: fix my mess
5950 2003-09-25 Havoc Pennington <hp@pobox.com>
5952 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5954 2003-09-25 Seth Nickell <seth@gnome.org>
5956 * python/examples/example-service.py:
5958 Johan notices complete wrong code in example-service, but
5959 completely wrong in a way that works exactly the same (!).
5960 Johan is confused, how could this possibly work? Example
5961 code fails to serve purpose of making things clear.
5964 2003-09-25 Mark McLoughlin <mark@skynet.ie>
5966 * doc/dbus-specification.sgml: don't require header fields
5967 to be 4-byte aligned and specify that fields should be
5968 distinguished from padding by the fact that zero is not
5971 * doc/TODO: remove re-alignment item and add item to doc
5972 the OBJECT_PATH type.
5974 * dbus/dbus-message.c:
5975 (HeaderField): rename the original member to value_offset
5976 and introduce a name_offset member to keep track of where
5977 the field actually begins.
5978 (adjust_field_offsets): remove.
5979 (append_int_field), (append_uint_field),
5980 (append_string_field): don't align the start of the header
5981 field to a 4-byte boundary.
5982 (get_next_field): impl finding the next marhsalled field
5983 after a given field.
5984 (re_align_field_recurse): impl re-aligning a number of
5985 already marshalled fields.
5986 (delete_field): impl deleting a field of any type and
5987 re-aligning any following fields.
5988 (delete_int_or_uint_field), (delete_string_field): remove.
5989 (set_int_field), (set_uint_field): no need to re-check
5990 that we have the correct type for the field.
5991 (set_string_field): ditto and impl re-aligning any
5993 (decode_header_data): update to take into account that
5994 the fields aren't 4-byte aligned any more and the new
5995 way to distinguish padding from header fields. Also,
5996 don't exit when there is too much header padding.
5997 (process_test_subdir): print the directory.
5998 (_dbus_message_test): add test to make sure a following
5999 field is re-aligned correctly after field deletion.
6001 * dbus/dbus-string.[ch]:
6002 (_dbus_string_insert_bytes): rename from insert_byte and
6003 allow the insert of multiple bytes.
6004 (_dbus_string_test): test inserting multiple bytes.
6006 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6007 warning note to docs about having to re-align any
6008 marshalled values following the string.
6010 * dbus/dbus-message-builder.c:
6011 (append_string_field), (_dbus_message_data_load):
6012 don't align the header field.
6014 * dbus/dbus-auth.c: (process_test_subdir): print the
6017 * test/break-loader.c: (randomly_add_one_byte): upd. for
6020 * test/data/invalid-messages/bad-header-field-alignment.message:
6023 * test/data/valid-messages/unknown-header-field.message: shove
6024 a dict in the unknown field.
6026 2003-09-25 Seth Nickell <seth@gnome.org>
6029 * python/dbus_bindings.pyx.in:
6031 Handle return values.
6033 * python/examples/example-client.py:
6034 * python/examples/example-service.py:
6036 Pass back return values from the service to the client.
6038 2003-09-24 Seth Nickell <seth@gnome.org>
6042 Connect Object methods (when you are sharing an object) up... pass
6043 in a list of methods to be shared. Sharing all the methods just
6044 worked out too weird. You can now create nice Services over the
6047 * python/dbus_bindings.pyx.in:
6049 Keep references to user_data tuples passed into C functions so
6050 Python doesn't garbage collect on us.
6052 Implement MethodReturn and Error subclasses of Message for creating
6053 DBusMessage's of those types.
6055 * python/examples/example-client.py:
6056 * python/examples/example-service.py:
6058 Simple example code showing both how create DBus services and objects,
6059 and how to use them.
6061 2003-09-23 Havoc Pennington <hp@pobox.com>
6063 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6065 2003-09-23 Havoc Pennington <hp@redhat.com>
6067 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6068 (dbus_gproxy_disconnect_signal): implement
6069 (dbus_gproxy_manager_remove_signal_match): implement
6070 (dbus_gproxy_manager_add_signal_match): implement
6071 (dbus_gproxy_oneway_call): implement
6073 2003-09-23 Havoc Pennington <hp@pobox.com>
6075 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6076 subclass. This means dropping the transparent thread safety of the
6077 proxy; you now need a separate proxy per-thread, or your own
6078 locking on the proxy. Probably right anyway.
6079 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6081 2003-09-22 Havoc Pennington <hp@redhat.com>
6083 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6085 2003-09-21 Seth Nickell <seth@gnome.org>
6087 First checkin of the Python bindings.
6089 * python/.cvsignore:
6090 * python/Makefile.am:
6091 * python/dbus_bindings.pyx.in:
6092 * python/dbus_h_wrapper.h:
6094 Pieces for Pyrex to operate on, building a dbus_bindings.so
6095 python module for low-level access to the DBus APIs.
6099 High-level Python module for accessing DBus objects.
6104 Build stuff for the python bindings.
6108 Extra macro needed for finding the Python C header files.
6110 2003-09-21 Havoc Pennington <hp@pobox.com>
6112 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6113 implementing the proxy manager, didn't get very far.
6115 * dbus/dbus-bus.c (dbus_bus_add_match): new
6116 (dbus_bus_remove_match): new
6118 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6119 path_name argument; adjust the other not-yet-implemented
6120 gproxy constructors to be what I think they should be.
6122 2003-09-21 Havoc Pennington <hp@pobox.com>
6124 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6125 by default for message bus connections.
6127 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6128 exit_on_disconnect flag is set and we process the disconnected
6130 (dbus_connection_set_exit_on_disconnect): new function
6132 2003-09-21 Havoc Pennington <hp@pobox.com>
6134 Get matching rules mostly working in the bus; only actually
6135 parsing the rule text remains. However, the client side of
6136 "signal connections" hasn't been started, this patch is only the
6139 * dbus/dispatch.c: fix for the matching rules changes
6141 * bus/driver.c (bus_driver_handle_remove_match)
6142 (bus_driver_handle_add_match): send an ack reply from these
6145 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6146 arguments, reported by Seth Nickell
6148 * bus/config-parser.c (append_rule_from_element): support
6149 eavesdrop=true|false attribute on policies so match rules
6150 can be prevented from snooping on the system bus.
6152 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6153 and "destination" in attribute names; fix some docs bugs;
6154 add eavesdrop=true|false attribute
6156 * bus/driver.c (bus_driver_handle_add_match)
6157 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6160 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6161 rid of broadcast service concept, signals are just always broadcast
6163 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6164 mostly implement matching rules stuff (currently only exposed as signal
6167 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6169 * doc/dbus-specification.sgml: Change the header field name
6170 to be an enum and update the rest of the spec to reference
6171 the fields using the conventinal name.
6173 * dbus/dbus-protocol.h: update to reflect the spec.
6175 * doc/TODO: add item to remove the 4 byte alignment requirement.
6177 * dbus/dbus-message.c: Remove the code to generalise the
6178 header/body length and serial number header fields as named
6179 header fields so we can reference field names using the
6181 (append_int_field), (append_uint_field), (append_string_field):
6182 Append the field name as a byte rather than four chars.
6183 (delete_int_or_uint_field), (delete_string_field): reflect the
6184 fact that the field name and typecode now occupy 4 bytes instead
6186 (decode_string_field), (decode_header_data): update to reflect
6187 protocol changes and move the field specific encoding from
6188 decode_string_field() back into decode_header_data().
6190 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6191 Add utility to aid debugging.
6193 * dbus/dbus-message-builder.c:
6194 (append_string_field), (_dbus_message_data_load): Update to
6195 reflect protocol changes; Change the FIELD_NAME directive
6196 to HEADER_FIELD and allow it to take the field's conventional
6197 name rather than the actual value.
6199 * test/data/*/*.message: Update to use HEADER_FIELD instead
6200 of FIELD_NAME; Always align the header on an 8 byte boundary
6201 *before* updating the header length.
6203 2003-09-15 Havoc Pennington <hp@pobox.com>
6205 * dbus/dbus-pending-call.c: add the get/set object data
6206 boilerplate as for DBusConnection, etc. Use generic object data
6207 for the notify callback.
6209 * glib/dbus-gparser.c (parse_node): parse child nodes
6211 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6213 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6214 contain functions shared between the convenience lib and the
6217 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6218 -export-symbols-regex to the GLib library
6220 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6221 fix the locking in here, and add a default handler for
6222 Introspect() that just returns sub-nodes.
6224 2003-09-14 Havoc Pennington <hp@pobox.com>
6226 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6227 rather than gfoo consistent
6229 * glib/dbus-gproxy.h: delete for now, move contents to
6230 dbus-glib.h, because the include files don't work right since we
6231 aren't in the dbus/ subdir.
6233 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6234 (dbus_gproxy_end_call): finish
6235 (dbus_gproxy_begin_call): finish
6237 * glib/dbus-gmain.c (dbus_set_g_error): new
6239 * glib/dbus-gobject.c (handle_introspect): include information
6240 about child nodes in the introspection
6242 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6243 function to help in implementation of introspection
6245 * dbus/dbus-object-tree.c
6246 (_dbus_object_tree_list_registered_and_unlock): new function
6248 2003-09-12 Havoc Pennington <hp@pobox.com>
6250 * glib/dbus-gidl.h: add common base class for all the foo_info
6253 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6256 * test/Makefile.am: try test srcdir -ef . in addition to test
6257 srcdir = ., one of them should work (yeah lame)
6259 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6262 * glib/dbus-gparser.h: make description_load routines return
6263 NodeInfo* not Parser*
6265 * Makefile.am (SUBDIRS): build test dir after all library dirs
6267 * configure.in: add GTK+ detection
6269 2003-09-07 Havoc Pennington <hp@pobox.com>
6271 * Make Doxygen contented.
6273 2003-09-07 Havoc Pennington <hp@pobox.com>
6275 * doc/dbus-specification.sgml: more updates
6277 2003-09-06 Havoc Pennington <hp@pobox.com>
6279 * doc/dbus-specification.sgml: partial updates
6281 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6282 zillionth time; hopefully I edited the right file this time.
6284 * bus/config-parser.c (append_rule_from_element): support
6285 send_type, send_path, receive_type, receive_path
6287 * bus/policy.c: add message type and path to the list of things
6288 that can be "firewalled"
6290 2003-09-06 Havoc Pennington <hp@pobox.com>
6292 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6293 (dbus_connection_register_object_path): make this not handle
6294 messages to paths below the given path
6296 2003-09-03 Havoc Pennington <hp@pobox.com>
6298 * test/glib/Makefile.am: add this with random glib-linked test
6301 * glib/Makefile.am: remove the random test programs from here,
6302 leave only the unit tests
6304 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6305 uscore/javacaps conversion, and fix
6306 (get_object_property, set_object_property): change to .NET
6307 convention for mapping props to methods, set_FooBar/get_FooBar,
6308 since one language has such a convention we may as well copy it.
6309 Plus real methods in either getFooBar or get_foo_bar style won't
6310 collide with this convention.
6312 2003-09-01 Havoc Pennington <hp@pobox.com>
6314 * glib/dbus-gparser.c: implement
6316 * glib/dbus-gobject.c: start implementing skeletons support
6318 * configure.in: when disabling checks/assert, also define
6319 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6321 2003-09-01 Havoc Pennington <hp@pobox.com>
6323 * glib/Makefile.am: rearrange a bunch of files and get "make
6324 check" framework set up
6326 2003-08-31 Havoc Pennington <hp@pobox.com>
6328 * fix build with --disable-tests
6330 2003-08-30 Havoc Pennington <hp@pobox.com>
6332 * dbus/dbus-connection.c: purge DBusMessageHandler
6334 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6335 use callbacks everywhere
6337 2003-08-30 Havoc Pennington <hp@pobox.com>
6339 * test/data/valid-config-files/system.d/test.conf: change to
6340 root for the user so warnings don't get printed
6342 * dbus/dbus-message.c: add dbus_message_get_path,
6343 dbus_message_set_path
6345 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6346 dispatching to a path
6348 * dbus/dbus-string.c (_dbus_string_validate_path): add
6350 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6351 (_dbus_marshal_object_path): implement
6353 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
6354 to contain the path to the target object
6355 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6356 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6358 2003-08-30 Havoc Pennington <hp@pobox.com>
6360 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6362 2003-08-29 Havoc Pennington <hp@pobox.com>
6364 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6366 (struct DBusObjectSubtree): shrink this
6367 a lot, since we may have a lot of them
6368 (_dbus_object_tree_free_all_unlocked): implement
6369 (_dbus_object_tree_dispatch_and_unlock): implement
6371 2003-08-29 Havoc Pennington <hp@pobox.com>
6373 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6375 2003-08-28 Havoc Pennington <hp@pobox.com>
6379 * dbus/dbus-connection.c: port to no ObjectID, create a
6380 DBusObjectTree, rename ObjectTree to ObjectPath in public API
6382 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
6383 everything except UnregisterFunction and MessageFunction
6385 * dbus/dbus-marshal.c: port away from DBusObjectID,
6386 add DBUS_TYPE_OBJECT_PATH
6388 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
6389 dbus/dbus-objectid.[hc]: remove these, we are moving to
6390 path-based object IDs
6392 2003-08-25 Havoc Pennington <hp@pobox.com>
6394 Just noticed that dbus_message_test is hosed, I wonder when I
6395 broke that. I thought make check was passing earlier...
6397 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
6398 container tree, will replace most of dbus-object-registry
6400 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6403 2003-08-19 Havoc Pennington <hp@pobox.com>
6405 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6406 (dbus_message_is_error): fix this function
6408 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6411 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6412 reflect clarified man page
6413 (bus_client_policy_check_can_send): ditto
6415 * bus/session.conf.in: fixup
6417 * bus/system.conf.in: fixup
6419 2003-08-18 Havoc Pennington <hp@redhat.com>
6421 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6423 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6424 dumb bug created earlier (wrong order of args to
6425 decode_header_data())
6427 * tools/dbus-send.c: port
6429 * tools/dbus-print-message.c (print_message): port
6431 * test/data/*messages: port all messages over
6433 * dbus/dbus-message-builder.c: support including
6436 * bus/driver.c: port over
6438 * bus/dispatch.c: port over to new stuff
6440 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6441 rename disconnect signal to "Disconnected"
6443 2003-08-17 Havoc Pennington <hp@pobox.com>
6445 This doesn't compile yet, but syncing up so I can hack on it from
6446 work. What are branches for if not broken code? ;-)
6448 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6449 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6450 DBUS_HEADER_FIELD_ERROR_NAME
6452 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6453 for the interface+member pairs
6454 (string_hash): change to use g_str_hash algorithm
6455 (find_direct_function, find_string_function): refactor these to
6458 * dbus/dbus-message.c: port all of this over to support
6459 interface/member fields instead of name field
6461 * dbus/dbus-object-registry.c: port over
6463 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6464 from _dbus_string_validate_name
6466 * bus/dbus-daemon-1.1: change file format for the
6467 <deny>/<allow> stuff to match new message naming scheme
6469 * bus/policy.c: port over
6471 * bus/config-parser.c: parse new format
6473 2003-08-16 Havoc Pennington <hp@pobox.com>
6475 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6478 * glib/dbus-gproxy.c: some hacking
6480 2003-08-15 Havoc Pennington <hp@redhat.com>
6482 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6484 * dbus/dbus-connection.c
6485 (dbus_connection_send_with_reply_and_block): factor out internals;
6486 change to convert any error replies to DBusError instead of
6487 returning them as a message
6489 2003-08-15 Havoc Pennington <hp@pobox.com>
6491 * dbus/dbus-connection.c,
6492 dbus/dbus-pending-call.c: Finish the pending call stuff
6494 2003-08-14 Havoc Pennington <hp@redhat.com>
6496 * dbus/dbus-pending-call.c: start on new object that will replace
6497 DBusMessageHandler and ReplyHandlerData for tracking outstanding
6500 * dbus/dbus-gproxy.c: start on proxy object used to communicate
6501 with remote interfaces
6503 * dbus/dbus-gidl.c: do the boring boilerplate in here
6505 2003-08-12 Havoc Pennington <hp@pobox.com>
6507 * bus/dispatch.c (bus_dispatch): make this return proper
6508 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6510 * dbus/dbus-errors.c (dbus_set_error): use
6511 _dbus_string_append_printf_valist
6513 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6514 (_dbus_string_append_printf): new
6516 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6519 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6520 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6521 message is unhandled.
6523 2003-08-11 Havoc Pennington <hp@pobox.com>
6525 * bus/test.c (client_disconnect_handler): change to return
6526 HANDLED (would have been REMOVE_MESSAGE)
6528 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6529 HANDLED/NOT_YET_HANDLED instead of
6530 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
6533 2003-08-10 Havoc Pennington <hp@pobox.com>
6535 * tools/dbus-send.c (main): add --type argument, for now
6536 supporting only method_call and signal types.
6538 * tools/dbus-print-message.c: print message type
6540 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6541 init connection->objects
6543 * doc/dbus-specification.sgml: fix sgml
6545 * bus/*.c: port over to object-instance API changes
6547 * test/test-service.c: ditto
6549 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6550 name, we will have to fix up the rest of the code to also handle
6552 (dbus_message_new): generic message-creation call
6553 (set_string_field): allow appending name field
6555 2003-08-06 Havoc Pennington <hp@pobox.com>
6557 * dbus/dbus-object-registry.c: implement signal connection
6560 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6562 * dbus/dbus-internals.c (_dbus_memdup): new function
6564 2003-08-02 Havoc Pennington <hp@pobox.com>
6566 * dbus/dbus-message.c (dbus_message_get_no_reply)
6567 (dbus_message_set_no_reply): add these and remove
6568 set_is_error/get_is_error
6570 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
6571 remove the ERROR flag, since there's now an ERROR type
6573 2003-08-01 Havoc Pennington <hp@pobox.com>
6575 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6578 * dbus/dbus-message.c (dbus_message_get_type): new function
6580 * doc/dbus-specification.sgml: add "type" byte to messages
6582 2003-08-01 Havoc Pennington <hp@pobox.com>
6584 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6585 a message type enum to distinguish kinds of message
6586 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
6587 that need not be replied to
6589 2003-08-01 Havoc Pennington <hp@pobox.com>
6591 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6592 (unpack_8_octets): fix no-64-bit-int bug
6594 * dbus/dbus-object-registry.c (validate_id): validate the
6595 connection ID bits, not just the instance ID.
6597 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6598 the connection-global 33 bits of the object ID
6600 * dbus/dbus-object-registry.c (info_from_entry): fill in
6601 object ID in the new way
6603 * dbus/dbus-objectid.h: rather than high/low bits, specifically
6604 define server/client/instance bits.
6606 2003-07-30 Havoc Pennington <hp@pobox.com>
6608 * dbus/dbus-connection.c (dbus_connection_register_object): fix
6611 2003-07-13 Havoc Pennington <hp@pobox.com>
6613 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6614 fields to DBusObjectVTable and DBusObjectInfo
6616 2003-07-12 Havoc Pennington <hp@pobox.com>
6618 * dbus/dbus-object-registry.c: implement unit test,
6619 fix bugs discovered in process
6621 * dbus/dbus-connection.c: remove handler_table and
6622 register_handler(), add DBusObjectRegistry usage
6624 * dbus/dbus-objectid.c (dbus_object_id_is_null)
6625 (dbus_object_id_set_null): new functions
6627 2003-07-08 Havoc Pennington <hp@pobox.com>
6629 * dbus/dbus-object.c: implement some of this
6631 * dbus/dbus-object-registry.c
6632 (_dbus_object_registry_add_and_unlock): fill in the object_id out
6634 (_dbus_object_registry_new): handle OOM
6636 2003-07-08 Havoc Pennington <hp@pobox.com>
6638 * dbus/dbus-object.h: sketch out an API for registering objects
6639 with a connection, that allows us to use as little as 24 bytes
6640 per object and lets application code represent an object in
6641 any conceivable way.
6643 * dbus/dbus-object-registry.c: implement the hard bits of the
6644 DBusConnection aspect of object API. Not yet wired up.
6646 2003-07-06 Havoc Pennington <hp@pobox.com>
6648 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6649 (_dbus_marshal_object_id): new
6650 (_dbus_demarshal_object_id): new
6651 (_dbus_marshal_get_arg_end_pos): support object ID type, and
6652 consolidate identical switch cases. Don't conditionalize handling
6653 of DBUS_TYPE_UINT64, need to handle the type always.
6654 (_dbus_marshal_validate_arg): consolidate identical cases, and
6655 handle DBUS_TYPE_OBJECT_ID
6657 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6659 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6661 2003-09-28 Havoc Pennington <hp@pobox.com>
6665 2003-09-28 Havoc Pennington <hp@pobox.com>
6667 * doc/Makefile.am (dbus-specification.html): testing a funky hack
6668 to work with Debian db2html
6670 2003-09-28 Havoc Pennington <hp@pobox.com>
6672 * configure.in: 0.13
6674 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6675 stylesheet-images for benefit of Debian
6677 Change back to using filesystem-linked sockets for the system
6678 bus, so only root can create the default system bus address.
6680 * bus/system.conf.in: change to use
6681 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6683 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6686 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6687 here, and AC_DEFINE DBUS_SYSTEM_PATH
6689 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6692 * doc/busconfig.dtd:
6695 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6697 * doc/dbus-specification.sgml:
6698 Add activation reply values.
6700 2003-08-05 Havoc Pennington <hp@redhat.com>
6702 * configure.in: 0.12
6704 2003-08-05 Anders Carlsson <andersca@codefactory.se>
6706 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6707 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6708 (add_watch), (remove_watch), (create_source):
6709 Refcount fds, fixes some reentrancy issues.
6711 2003-07-30 Havoc Pennington <hp@redhat.com>
6713 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6714 bus address to be abstract if we have abstract sockets
6718 2003-07-28 Havoc Pennington <hp@redhat.com>
6720 * bus/messagebus.in: fix to avoid processname/servicename
6721 confusion, from Michael Kearey
6722 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6724 2003-07-23 Havoc Pennington <hp@pobox.com>
6726 * dbus/dbus-message.c (dbus_message_iter_get_named):
6727 fix from Andy Hanton to remove broken "+1"
6729 2003-07-16 Havoc Pennington <hp@pobox.com>
6731 * tools/dbus-launch.c (babysit): close stdout/stderr in the
6732 babysitter process, as suggested by Thomas Leonard, so
6733 an "eval `dbus-launch --exit-with-session`" will actually
6736 2003-07-16 Havoc Pennington <hp@pobox.com>
6738 * configure.in: print out EXPANDED_* variables in the summary at
6739 the end; clean up the code that computes EXPANDED_ variables and
6740 get the ones using exec_prefix right. Should make things work
6741 when you build without --prefix
6743 2003-06-29 Havoc Pennington <hp@pobox.com>
6745 * mono/Test.cs (class Test): fire up a main loop and run it
6747 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6748 done once, the app has to do it
6750 2003-06-26 Havoc Pennington <hp@pobox.com>
6752 * mono/Connection.cs: set up connection with the glib main loop
6754 2003-07-01 Havoc Pennington <hp@redhat.com>
6756 * doc/dbus-specification.sgml: clarify the format of a type code,
6757 change suggested by Jim Blandy
6759 2003-06-29 Miloslav Trmac <mitr@volny.cz>
6762 * tools/Makefile.am: Don't assume srcdir == builddir.
6764 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6765 the allocated block.
6766 (_dbus_memory_test): New function.
6767 * dbus/dbus-test.h: Add _dbus_memory_test ().
6768 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6770 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6772 (dbus_message_new): Remove obsolete @todo.
6774 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6775 (_dbus_marshal_set_uint64): Fix comment.
6777 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6778 hardcode FIELD_REPLY_SERIAL.
6780 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6781 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6783 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6784 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6786 2003-06-24 Havoc Pennington <hp@pobox.com>
6788 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6790 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6796 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6797 * gcj/org/.cvsignore:
6798 * gcj/org/Makefile.am:
6799 * gcj/org/freedesktop/.cvsignore:
6800 * gcj/org/freedesktop/Makefile.am:
6801 * gcj/org/freedesktop/dbus/.cvsignore:
6802 * gcj/org/freedesktop/dbus/Makefile.am:
6803 * gcj/org/freedesktop/dbus/Message.java: (Message),
6805 * gcj/org/freedesktop/dbus/natMessage.cc:
6806 Fix the build system.
6808 2003-06-22 Havoc Pennington <hp@pobox.com>
6810 * mono/Connection.cs: add more bindings
6812 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6815 2003-06-22 Havoc Pennington <hp@pobox.com>
6817 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6818 Start wrapping more stuff.
6820 2003-06-22 Havoc Pennington <hp@pobox.com>
6822 * mono/Message.cs: implement Message.Wrap() that ensures we only
6823 have a single C# wrapper per DBusMessage, assuming it works which
6824 it probably doesn't.
6826 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6827 (dbus_message_free_data_slot): new
6828 (dbus_message_set_data): new
6829 (dbus_message_get_data): new
6831 2003-06-22 Havoc Pennington <hp@pobox.com>
6833 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6834 (_dbus_data_slot_allocator_alloc): rework these to keep a
6835 reference count on each slot and automatically manage a global
6836 slot ID variable passed in by address
6838 * bus/bus.c: convert to new dataslot API
6840 * dbus/dbus-bus.c: convert to new dataslot API
6842 * dbus/dbus-connection.c: convert to new dataslot API
6844 * dbus/dbus-server.c: convert to new dataslot API
6846 * glib/dbus-gmain.c: ditto
6850 * bus/connection.c: ditto
6852 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6854 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6855 after the gcj checks so that the correct configuration tags
6856 will be added to libtool.
6858 * dbus-glib-1.pc.in: No need to specify any includes since
6859 dbus-1.pc.in has those.
6861 2003-06-22 Havoc Pennington <hp@pobox.com>
6863 * mono/*, gcj/*, configure.in, Makefile.am:
6864 Check in makefiles and subdirs for mono and gcj bindings.
6865 Neither binding actually exists, just trying to get through
6866 all the build and other boring bits.
6868 2003-06-21 Philip Blundell <philb@gnu.org>
6870 * tools/dbus-monitor.1: Updated.
6872 * tools/dbus-send.1: Likewise.
6874 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6876 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6877 for hangup and error after checking read so we won't discard
6878 pending data if both hangup and read are set.
6880 2003-06-19 Philip Blundell <philb@gnu.org>
6882 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6884 * tools/dbus-send.c: Accept both --system and --session.
6886 * tools/dbus-monitor.c: Same here.
6888 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6890 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6891 from C++ (Patch by Miloslav Trmac).
6893 2003-06-15 Joe Shaw <joe@assbarn.com>
6895 * configure.in: Check for socklen_t.
6897 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6899 * test/test-segfault.c: Add #include <sys/time.h>
6901 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6902 dbus-launch needs it.
6904 2003-06-09 Havoc Pennington <hp@redhat.com>
6906 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6907 SUN_LEN, it breaks abstract socket usage
6909 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6912 2003-06-04 Havoc Pennington <hp@pobox.com>
6914 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6915 using unix:abstract=/foo, and when listening in a tmpdir
6916 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6918 * dbus/dbus-transport.c (_dbus_transport_open): support
6921 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6922 support abstract sockets
6924 * dbus/dbus-transport-unix.c
6925 (_dbus_transport_new_for_domain_socket): support abstract sockets
6927 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6928 toggle as an argument, implement abstract namespace support
6929 (_dbus_listen_unix_socket): ditto
6931 * configure.in: add --enable-abstract-sockets and implement
6932 a configure check for autodetection of the right value.
6934 2003-06-01 Havoc Pennington <hp@pobox.com>
6936 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6937 in /tmp (though on Linux this will end up being useless,
6938 when we add abstract namespace support)
6940 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6943 2003-05-28 Colin Walters <walters@verbum.org>
6945 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6947 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6949 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6951 2003-05-17 Colin Walters <walters@gnu.org>
6953 * tools/dbus-send.c: Don't exit with an error code if --help was
6954 passed. Default to using the session bus instead of the system
6957 * tools/dbus-launch.c: Ditto.
6959 * tools/dbus-monitor.c: Ditto.
6961 * tools/dbus-send.1: Update with new arguments.
6963 * tools/dbus-launch.c: Emit code to export variables. New
6964 arguments -s and -c to specify shell syntax, and a bit of code to
6965 autodetect syntax. Also, allow specifying a program to run.
6967 * tools/dbus-launch.1: Update with new arguments.
6969 * tools/dbus-send.1: Ditto.
6971 * tools/dbus-monitor.1: Ditto.
6973 2003-05-17 Havoc Pennington <hp@pobox.com>
6975 * bus/config-parser.c (merge_included): merge in policies from
6976 child configuration file.
6978 * bus/policy.c (bus_policy_merge): function to merge two policies
6981 2003-05-16 Havoc Pennington <hp@redhat.com>
6983 * dbus/dbus-connection.c: disable verbose lock spew
6985 * tools/dbus-send.c: add --print-reply command line option
6987 * tools/dbus-print-message.h (print_message): new util function
6988 shared by dbus-send and dbus-monitor
6990 * tools/dbus-monitor.c (handler_func): exit on disconnect
6992 * dbus/dbus-transport-unix.c (do_reading): if the transport is
6993 disconnected, don't try to use the read_watch
6995 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6996 so we can find this bug more easily
6998 2003-05-16 Havoc Pennington <hp@redhat.com>
7000 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7001 NULL as DBusHashTable is annoyingly likely to do.
7003 2003-05-16 Colin Walters <walters@verbum.org>
7005 * tools/dbus-monitor.c: Add --session argument and usage()
7008 * tools/dbus-monitor.1: Update with new --session arg.
7010 * bus/Makefile.am (install-data-hook): Create
7011 $(libdir)/dbus-1.0/services so that the session bus is happy.
7013 2003-05-15 Havoc Pennington <hp@redhat.com>
7015 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7016 on non-x86. ifdef's are evil.
7018 2003-05-15 Havoc Pennington <hp@redhat.com>
7020 * configure.in: 0.11
7024 * bus/Makefile.am (initddir): apparently we are supposed to put
7025 init scripts in /etc/rc.d/init.d not /etc/init.d
7027 * bus/Makefile.am: remove the "you must --enable-tests to make
7028 check" as it broke distcheck
7030 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7032 2003-05-13 James Willcox <jwillcox@gnome.org>
7035 * bus/activation.c: (bus_activation_service_created),
7036 (bus_activation_activate_service):
7037 * bus/driver.c: (bus_driver_send_service_deleted),
7038 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7039 (bus_driver_send_service_acquired),
7040 (bus_driver_send_welcome_message),
7041 (bus_driver_handle_list_services):
7042 * bus/session.conf.in:
7043 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7044 (dbus_bus_service_exists), (dbus_bus_activate_service):
7047 Add some convenience API which lets you activate a service, and did a
7048 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7049 and dbus_message_get_args()
7051 2003-05-11 Havoc Pennington <hp@pobox.com>
7053 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7054 calling _dbus_marshal_validate_arg() for every byte in a byte
7057 * dbus/dbus-message-handler.c: use atomic reference counting to
7058 reduce number of locks slightly; the global lock in here sucks
7060 * dbus/dbus-connection.c
7061 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7062 update_dispatch_status that can be called with lock held; then use
7063 in a couple places to reduce locking/unlocking
7064 (dbus_connection_send): hold the lock over the whole function
7065 instead of acquiring it twice.
7067 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7069 * bus/connection.c (bus_connections_setup_connection): fix access
7070 to already-freed memory.
7072 * dbus/dbus-connection.c: keep a little cache of linked list
7073 nodes, to avoid using the global linked list alloc lock in the
7074 normal send-message case. Instead we just use the connection lock
7075 that we already have to take.
7077 * dbus/dbus-list.c (_dbus_list_find_last): new function
7079 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7080 change to use a struct for the atomic type; fix docs,
7081 they return value before increment, not after increment.
7083 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7084 (_dbus_string_append_8_aligned): new functions to try to
7085 microoptimize this operation.
7086 (reallocate_for_length): break this out of set_length(), to
7087 improve profile info, and also so we can consider inlining the
7090 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7091 strings with some preallocation, cuts down on our calls to realloc
7092 a fair bit. Though if we can get the "move entire string to empty
7093 string" optimization below to kick in here, it would be better.
7095 * dbus/dbus-string.c (_dbus_string_move): just call
7096 _dbus_string_move_len
7097 (_dbus_string_move_len): add a special case for moving
7098 an entire string into an empty string; we can just
7099 swap the string data instead of doing any reallocs.
7100 (_dbus_string_init_preallocated): new function
7102 2003-05-11 Havoc Pennington <hp@pobox.com>
7104 Write a "test-profile" that does echo client-server with threads;
7105 profile reveals lock contention, memcpy/realloc of buffers, and
7106 UTF-8 validation as hot spots. 20% of lock contention eliminated
7107 with dbus_atomic_inc/dec implementation on x86. Much remaining
7108 contention is global mempool locks for GList and DBusList.
7110 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7113 * dbus/dbus-connection.c (struct DBusConnection): use
7114 dbus_atomic_t for the reference count
7116 * dbus/dbus-message.c (struct DBusMessage): declare
7117 dbus_atomic_t values as volatile
7119 * configure.in: code to detect ability to use atomic integer
7120 operations in assembly, from GLib patch
7122 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7123 time, tired of it being wrong in threads and forked processes
7125 * glib/test-profile.c: a little program to bounce messages back
7126 and forth between threads and eat CPU
7128 * dbus/dbus-connection.c: add debug spew macros for debugging
7129 thread locks; include config.h at top; fix deadlock in
7130 dbus_connection_flush()
7132 2003-05-08 Havoc Pennington <hp@pobox.com>
7134 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7135 data from getting written, and there wasn't a good reason to
7138 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7139 dbus_verbose lines in test coverage
7140 (main): add list of functions sorted by # of untested blocks
7141 to the coverage report
7143 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7145 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7147 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7148 extend test coverage
7150 * test/data/auth/cancel.auth-script: test canceling an
7153 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7154 aren't used. in CVS history if we end up needing them.
7156 2003-05-04 Havoc Pennington <hp@pobox.com>
7158 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7161 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7162 function, which assumed length was in # of strings, not bytes
7164 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7167 * dbus/dbus-connection.c
7168 (_dbus_connection_queue_received_message): disable function for
7169 now, we are only using it in test mode
7171 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7172 remove a mistaken FIXME
7174 2003-05-04 Havoc Pennington <hp@pobox.com>
7176 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7177 unlock mutex on successful return, patch from Anders Gustafsson
7179 2003-05-04 Havoc Pennington <hp@pobox.com>
7181 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7184 2003-05-04 Havoc Pennington <hp@pobox.com>
7186 * tools/dbus-launch.c: implement
7188 * bus/main.c (main), bus/bus.c (bus_context_new):
7189 implement --print-pid and --fork
7191 2003-05-03 Havoc Pennington <hp@redhat.com>
7193 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7194 the address had no value, and add to test suite. Fix and
7195 regression test from Miloslav Trmac
7197 2003-05-03 Havoc Pennington <hp@pobox.com>
7199 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7200 watch is invalid when handled
7202 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7203 dbus-launch utility to launch the bus from a shell script. Didn't
7204 actually implement dbus-launch yet, it's just a placeholder still.
7206 2003-05-03 Havoc Pennington <hp@pobox.com>
7208 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7209 daemon; also documents daemon config file, so replaces
7210 doc/config-file.txt. Corrected some stuff from config-file.txt in
7211 the process of moving it.
7213 2003-05-03 Havoc Pennington <hp@pobox.com>
7215 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7218 2003-05-03 Colin Walters <walters@verbum.org>
7220 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7221 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7223 * Makefile.am: Update to use new .pc versioning scheme.
7225 2003-05-02 Havoc Pennington <hp@redhat.com>
7227 * bus/system.conf.in: allow send/receive to/from message bus
7230 2003-04-30 Havoc Pennington <hp@redhat.com>
7232 * configure.in: print a note when building with unit tests and
7235 2003-04-30 Havoc Pennington <hp@redhat.com>
7237 * Makefile.am: add a check-local that complains if you didn't
7238 configure with --enable-tests
7240 2003-04-29 Havoc Pennington <hp@redhat.com>
7242 * glib/dbus-gmain.c: docs cleanups
7244 * dbus/dbus-types.h: add docs on int64 types
7246 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7247 public API docs section
7249 2003-04-29 Havoc Pennington <hp@redhat.com>
7251 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7252 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7253 parallel install API version, not with the D-BUS package version.
7255 * HACKING: move some of README over here
7257 * README: updates, and document API/ABI policy
7259 * configure.in: reindentation
7261 2003-04-29 Havoc Pennington <hp@redhat.com>
7263 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7264 to use this library" to be sure people have the right
7267 2003-04-28 Havoc Pennington <hp@redhat.com>
7269 * configure.in: add --enable-docs which by default is auto yes if
7270 doxygen and db2html found, no otherwise; but can be forced on/off
7272 * doc/Makefile.am: conditionalize whether to build docs on
7275 2003-04-28 Havoc Pennington <hp@redhat.com>
7277 * configure.in: 0.10
7281 * bus/system.conf.in: add <includedir>system.d</includedir>
7283 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7284 username was provided but not uid
7286 * bus/config-parser.c (struct BusConfigParser): keep track of
7287 whether the parser is toplevel or was included; change some
7288 of the error handling if it's included.
7290 2003-04-27 Havoc Pennington <hp@pobox.com>
7294 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7295 report correct status if we finish processing authentication
7296 inside this function.
7298 * bus/activation.c (try_send_activation_failure): use
7299 bus_transaction_send_error_reply
7301 * bus/connection.c (bus_connection_get_groups): return an error
7302 explaining the problem
7304 * bus/bus.c (bus_context_check_security_policy): implement
7305 restriction here that inactive connections can only send the
7306 hello message. Also, allow bus driver to send anything to
7309 * bus/connection.c (bus_connection_complete): create the
7310 BusClientPolicy here instead of on-demand.
7311 (bus_connection_get_policy): don't return an error
7313 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7314 sender field in message being replied to
7316 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7317 causing it to return FALSE always
7319 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7320 we checked sender rather than destination
7322 2003-04-25 Havoc Pennington <hp@redhat.com>
7324 test suite is slightly hosed at the moment, will fix soon
7326 * bus/connection.c (bus_connections_expire_incomplete): fix to
7327 properly disable the timeout when required
7328 (bus_connection_set_name): check whether we can remove incomplete
7329 connections timeout after we complete each connection.
7331 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7332 probably still broken.
7334 * bus/services.c (bus_registry_acquire_service): implement max
7335 number of services owned, and honor allow/deny rules on which
7336 services a connection can own.
7338 * bus/connection.c (bus_connection_get_policy): report errors here
7340 * bus/activation.c: implement limit on number of pending
7343 2003-04-25 Havoc Pennington <hp@redhat.com>
7345 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7346 where we used >= 0 instead of != DBUS_UID_UNSET.
7348 2003-04-25 Havoc Pennington <hp@redhat.com>
7350 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7351 were toggled without add/remove, fix from Anders Gustafsson
7353 2003-04-24 Havoc Pennington <hp@redhat.com>
7355 * test/data/valid-config-files/basic.conf: add <limit> tags to
7358 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7359 <limit> tag in configuration file.
7361 2003-04-24 Havoc Pennington <hp@redhat.com>
7363 * bus/dispatch.c: somehow missed some name_is
7365 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7366 (_dbus_timeout_set_interval): new
7368 * bus/connection.c (bus_connections_setup_connection): record time
7369 when each connection is first set up, and expire them after the
7370 auth timeout passes.
7372 2003-04-24 Havoc Pennington <hp@redhat.com>
7374 * dbus/dbus-message.c (dbus_message_name_is): rename
7375 (dbus_message_service_is): rename
7376 (dbus_message_sender_is): rename
7377 (dbus_message_get_service): rename
7379 2003-04-24 Havoc Pennington <hp@redhat.com>
7381 * configure.in: add --enable-checks
7383 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7385 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7386 to use thread locks.
7387 (_dbus_connection_handler_destroyed_locked): move some private
7388 functions into proper docs group
7390 * dbus/dbus-internals.h: add _dbus_return_if_fail,
7391 _dbus_return_val_if_fail
7393 Throughout: use dbus_return_if_fail
7395 2003-04-23 James Willcox <jwillcox@gnome.org>
7398 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7399 (dbus_connection_setup_with_g_main),
7400 (dbus_server_setup_with_g_main):
7401 * glib/test-dbus-glib.c: (main):
7402 * glib/test-thread-client.c: (main):
7403 * glib/test-thread-server.c: (new_connection_callback), (main):
7404 * tools/dbus-monitor.c: (main):
7406 Added a GMainContext argument to dbus_connection_setup_with_g_main()
7407 and dbus_server_setup_with_g_main().
7409 2003-04-20 Havoc Pennington <hp@pobox.com>
7411 * doc/dbus-specification.sgml: document the restrictions on
7412 message and service names
7414 2003-04-22 Havoc Pennington <hp@redhat.com>
7416 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7417 support, and do some code cleanups to share more code and
7418 speed up array marshal/demarshal.
7420 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7422 * configure.in: generate dbus-arch-deps.h
7424 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7427 2003-04-22 Havoc Pennington <hp@redhat.com>
7429 * test/data/valid-messages/opposite-endian.message: fix test
7430 to use proper type for rply field
7432 * test/data/invalid-messages: add tests for below validation
7434 * dbus/dbus-message.c (decode_header_data): validate field types,
7435 and validate that named fields are valid names
7436 (decode_name_field): consider messages in the
7437 org.freedesktop.Local. namespace to be invalid.
7439 * dbus/dbus-string.c (_dbus_string_validate_name): new
7441 2003-04-19 Havoc Pennington <hp@pobox.com>
7443 * bus/driver.c (bus_driver_handle_hello): check limits and
7444 return an error if they are exceeded.
7446 * bus/connection.c: maintain separate lists of active and inactive
7447 connections, and a count of each. Maintain count of completed
7448 connections per user. Implement code to check connection limits.
7450 * dbus/dbus-list.c (_dbus_list_unlink): export
7452 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7453 number of bytes in the message queue for a connection
7455 2003-04-18 Havoc Pennington <hp@pobox.com>
7457 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7459 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7462 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7463 on realloc be sure to update the pointer in the keyring
7465 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7466 offset to avoid writing to unallocated memory
7468 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7469 try the next mechanism, so we properly handle OOM
7471 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7473 (_dbus_keyring_new): fix OOM bug
7474 (_dbus_keyring_new_homedir): always set error; impose a maximum
7475 number of keys we'll load from the file, mostly to speed up the
7476 test suite and make its OOM checks more useful, but also for
7479 * dbus/dbus-auth.c (process_error_server): reject authentication
7480 if we get an error from the client
7481 (process_cancel): on cancel, send REJECTED, per the spec
7482 (process_error_client): send CANCEL if we get an error from the
7485 2003-04-18 Havoc Pennington <hp@pobox.com>
7487 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7490 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7493 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7494 about DBUS_TEST_HOMEDIR once
7496 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7499 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7500 config file so we test the right thing
7502 Throughout: assorted docs improvements
7504 2003-04-18 Havoc Pennington <hp@pobox.com>
7506 * glib/dbus-gmain.c: adapt to watch changes
7508 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7510 * dbus/dbus-server.h: remove dbus_server_handle_watch
7512 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7514 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7515 like DBusTimeout, so we don't need dbus_connection_handle_watch
7518 2003-04-17 Havoc Pennington <hp@redhat.com>
7520 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7521 database usage so it all goes via the DBusUserDatabase cache.
7523 2003-04-17 Havoc Pennington <hp@redhat.com>
7525 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7526 there was an OOM watch we skipped, we always return TRUE so we
7527 iterate again to have a look at it again. Fixes test suite hang.
7528 Code rearrangement also lets us lose some memset and only iterate
7529 over callbacks once.
7531 * bus/driver.c (bus_driver_handle_message): sense of test for
7534 2003-04-16 Havoc Pennington <hp@pobox.com>
7536 * doc/dbus-specification.sgml: make spec say serials are unsigned
7538 * dbus/dbus-message.h: change message serials to unsigned
7540 * dbus/dbus-connection.c: adapt to message serials being unsigned
7542 2003-04-15 Havoc Pennington <hp@pobox.com>
7544 * bus/bus.c: create and keep around a shared DBusUserDatabase
7547 * bus/connection.c (bus_connection_get_groups): don't cache
7548 groups for user in the connection object, since user database
7549 object now does that.
7551 2003-04-16 Havoc Pennington <hp@redhat.com>
7553 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7554 list of size counters
7555 (_dbus_message_loader_putback_message_link): put back a popped link
7557 * dbus/dbus-connection.c
7558 (dbus_connection_set_max_live_messages_size): rename
7560 (dbus_connection_get_outgoing_size): get size of outgoing
7562 (_dbus_connection_set_connection_counter): remove this cruft
7564 2003-04-14 Havoc Pennington <hp@redhat.com>
7566 * dbus/dbus-userdb.c: user database abstraction, mostly to get
7567 caching, but at some point we might want to be able to use a
7570 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7571 SHA1 conf file to test the sha1 auth mechanism, since the regular
7572 test always uses EXTERNAL when available.
7575 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7576 add conf file that requires use of sha1 auth
7578 2003-04-13 Havoc Pennington <hp@pobox.com>
7580 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7581 from Philip Blundell to send messages and monitor them.
7583 2003-04-13 Havoc Pennington <hp@pobox.com>
7585 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7588 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7591 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7592 fix to only recover unused bytes if we're already authenticated
7593 (_dbus_transport_get_is_authenticated): fix to still mark us
7594 authenticated if there are unused bytes.
7596 * bus/dispatch.c: implement security policy checking
7598 * bus/connection.c (bus_transaction_send_from_driver): new
7600 * bus/bus.c (bus_context_check_security_policy): new
7602 * bus/dispatch.c (send_service_nonexistent_error): delete this,
7603 now we just set the DBusError and it gets converted to an error
7606 * bus/connection.c (allow_user_function): enable code using actual
7607 data from the config file
7609 * bus/policy.c (list_allows_user): handle wildcard rules for
7610 user/group connection perms
7612 2003-04-13 Havoc Pennington <hp@pobox.com>
7614 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7616 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7618 * bus/policy.c (bus_policy_append_mandatory_rule)
7619 (bus_policy_append_default_rule, bus_policy_append_user_rule)
7620 (bus_policy_append_group_rule): new functions
7622 2003-04-12 Havoc Pennington <hp@pobox.com>
7624 * bus/config-parser.c (bus_config_parser_new): fix a memleak
7626 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7627 the pid/gid/uid, just for paranoia.
7629 * test/break-loader.c (randomly_do_n_things): find a byte
7630 containing a type code, and randomly change it to a different
7633 2003-04-12 Havoc Pennington <hp@pobox.com>
7635 * bus/policy.h: change BusPolicy to be the thing from the config
7636 file, and rename old BusPolicy to BusClientPolicy
7638 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7639 match change in how policy works
7641 * dbus/dbus-internals.h: mark assert_not_reached as
7642 __attribute((noreturn))__
7644 2003-04-11 Havoc Pennington <hp@redhat.com>
7646 * doc/dbus-specification.sgml: fix a spot with the wrong name for
7647 the broadcast service. Use boolean return for ServiceExists.
7649 2003-04-11 Havoc Pennington <hp@redhat.com>
7651 * configure.in: add another directory to look for qt in.
7653 2003-04-11 Havoc Pennington <hp@redhat.com>
7655 * AUTHORS: add Colin Walters
7657 2003-04-11 Havoc Pennington <hp@redhat.com>
7663 2003-04-11 Havoc Pennington <hp@redhat.com>
7665 * bus/messagebus.in: remove pid file when stopping the
7666 message bus, since the bus won't have privileges to remove it
7669 2003-04-11 Havoc Pennington <hp@redhat.com>
7671 * bus/bus.c (bus_context_new): move credentials change after
7674 2003-04-11 Havoc Pennington <hp@pobox.com>
7676 * test/decode-gcov.c: add "below average functions" to the
7677 coverage report, and change how some of the code works.
7679 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7680 not in the coverage stats.
7682 * test/test-service.c (main): use _dbus_verbose not fprintf in a
7683 couple places so running the test suite doesn't result in megaspam.
7685 2003-04-11 Havoc Pennington <hp@pobox.com>
7687 * bus/dispatch.c (check_existent_service_activation): accept a no
7688 memory error in a place we didn't before
7690 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7691 in case the first one failed," since the test suite is less
7694 2003-04-10 Havoc Pennington <hp@pobox.com>
7696 * bus/dispatch.c (check_segfault_service_activation): add test
7697 for launching an executable that just crashes.
7699 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7700 don't leave a million cores. We'll see how portable this is.
7702 2003-04-10 Havoc Pennington <hp@pobox.com>
7704 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7705 the possible parent failures before we fork, so that we don't
7706 fail to create a babysitter after creating the child.
7708 * bus/activation.c (bus_activation_activate_service): kill child
7709 if we don't successfully complete the activation.
7711 2003-04-10 Havoc Pennington <hp@redhat.com>
7713 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7714 the connection if it's disconnected
7716 * bus/activation.c (bus_activation_service_created): use new
7717 transaction features to roll back removal of pending activation if
7718 we don't successfully create the service after all. Don't remove
7719 pending activation if the function fails.
7721 * dbus/dbus-list.c (_dbus_list_insert_before_link)
7722 (_dbus_list_insert_after_link): new code to facilitate
7725 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7726 new functionality, so we can preallocate the ability to insert
7729 * bus/connection.c (bus_transaction_add_cancel_hook): new function
7730 allowing us to put custom hooks in a transaction to be used for
7731 cancelling said transaction
7733 * doc/dbus-specification.sgml: add some discussion of secondary
7734 service owners, and disallow zero-length service names
7736 * bus/services.c (bus_registry_acquire_service): new function,
7737 splits out part of bus_driver_handle_acquire_service() and fixes
7738 a bug where we didn't remove the service doing the acquiring
7739 from the secondary queue if we failed to remove the current owner
7740 from the front of the queue.
7742 2003-04-10 Alexander Larsson <alexl@redhat.com>
7744 * doc/dbus-specification.sgml:
7745 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7747 2003-04-10 Alexander Larsson <alexl@redhat.com>
7752 Added files to cvsignore
7754 * dbus/dbus-message.h:
7755 * dbus/dbus-message.c: (dbus_message_iter_get_named):
7756 Make get_named() take two out argument and return a boolean.
7757 (dbus_message_iter_get_args_valist):
7758 Update usage of get_named().
7759 (dbus_message_iter_append_byte):
7761 (dbus_message_iter_append_named)
7763 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7766 2003-04-10 Alexander Larsson <alexl@redhat.com>
7768 * dbus/dbus-marshal.[ch]:
7769 Add array_type_pos argument to _dbus_marshal_validate_arg.
7770 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7772 * dbus/dbus-message.[ch]:
7773 Multi-dimensional arrays have full type specification in the
7774 outermost array. Iter code re-arranged to handle this.
7775 Added some more iter tests.
7777 * doc/dbus-specification.sgml:
7780 Update new array encoding description.
7781 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7783 * test/data/invalid-messages/array-with-mixed-types.message:
7784 * test/data/valid-messages/array-of-array-of-uint32.message:
7785 Change to the new array format.
7787 * test/data/invalid-messages/too-short-dict.message:
7790 * test/data/valid-messages/recursive-types.message:
7791 Fix up and extend test.
7793 2003-04-10 Havoc Pennington <hp@pobox.com>
7795 * bus/dispatch.c: lots of fixes
7797 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7798 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7799 that was crack, broke the test service.
7801 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7802 handling to avoid piling up errors if we get a failure on the
7805 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7806 pid in assertion failures.
7808 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7809 to some fixed size of file descriptor array. Don't return TRUE
7810 anytime a timeout exists, that led to lots of busy loop silliness
7813 2003-04-09 Havoc Pennington <hp@redhat.com>
7815 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7816 I'd checked this in earlier but hadn't.
7818 2003-04-09 Havoc Pennington <hp@redhat.com>
7820 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7821 the activation test (man this is getting old!)
7823 2003-04-09 Havoc Pennington <hp@redhat.com>
7825 * test/test-utils.c: use dispatch status function to fix this up
7827 * bus/connection.c (connection_watch_callback): don't dispatch
7829 (connection_timeout_callback): don't dispatch from here
7830 (bus_connections_setup_connection): set the dispatch status function
7831 (bus_connection_disconnected): unset it
7833 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7834 used to add a connection to be dispatched
7835 (_dbus_loop_iterate): do the dispatching at the end of each
7838 * dbus/dbus-connection.c
7839 (dbus_connection_set_dispatch_status_function): new function
7840 allowing us to fix up main loop usage
7841 (_dbus_connection_last_unref): free all the various function
7843 (dbus_connection_dispatch): call the DispatchStatusFunction
7844 whenever this function returns
7845 (dbus_connection_handle_watch): call DispatchStatusFunction
7846 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7847 (reply_handler_timeout): call DispatchStatusFunction
7848 (dbus_connection_flush): call DispatchStatusFunction
7850 2003-04-09 Havoc Pennington <hp@redhat.com>
7852 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7855 * bus/dispatch.c (check_service_activated): fix bug in test
7857 * dbus/dbus-mainloop.c (check_timeout): fix this up
7859 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7860 verbose output so we can sort out output from different processes,
7861 e.g. in the activation case.
7863 2003-04-08 Colin Walters <walters@gnu.org>
7865 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7867 (bus_context_new): Set it.
7868 (bus_context_unref): Use it to delete the pid file.
7870 2003-04-08 Havoc Pennington <hp@redhat.com>
7872 * test/data/invalid-messages/array-with-mixed-types.message:
7873 regression test that fails for the moment
7875 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7876 tests for convenience
7878 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7879 array of nil, it broke things.
7881 * test/data/invalid-messages/array-of-nil.message: regression test
7883 * test/data/valid-messages/array-of-array-of-uint32.message:
7884 happened to write this so added it to suite
7886 2003-04-08 Havoc Pennington <hp@redhat.com>
7888 * bus/driver.c (bus_driver_handle_acquire_service): init
7889 retval/reply before checking name
7891 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7892 recursion depth argument
7894 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7895 in the public struct for future extension
7897 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7900 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7903 * doc/dbus-specification.sgml: fix typo
7905 2003-04-08 Alexander Larsson <alexl@redhat.com>
7907 Implemented recursive types, named types and new-style iters
7910 * glib/test-thread-client.c: (thread_func):
7911 * glib/test-thread-server.c: (handle_test_message):
7912 * test/test-service.c: (handle_echo):
7921 * dbus/dbus-internals.c: (_dbus_type_to_string):
7922 Update for new types.
7924 * dbus/dbus-marshal.[ch]:
7925 Implement recursive types and the new marshalling format.
7926 Remove hardcoded dict marshalling.
7927 Marshal named types.
7929 * dbus/dbus-message-builder.c:
7931 Remove references to old types
7933 * dbus/dbus-message.[ch]:
7934 New non-refcounted iter API that supports recursive iters.
7935 Use iters for appending, including support for recursive
7937 Add byte and named type support.
7938 Update everything to new marshalling formats.
7939 Add tests for new API.
7941 * dbus/dbus-protocol.h:
7942 Remove old array types.
7943 Add types: BYTE, ARRAY, DICT, NAMED
7945 * dbus/dbus-string.c:
7946 * dbus/dbus-sysdeps.c:
7947 Make parse_double locale safe.
7949 * dbus/dbus-test-main.c:
7955 * doc/dbus-specification.sgml:
7958 * test/data/incomplete-messages/missing-body.message:
7959 * test/data/invalid-messages/bad-boolean.message:
7960 * test/data/invalid-messages/bad-boolean-array.message:
7961 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7962 * test/data/invalid-messages/boolean-has-no-value.message-raw:
7963 * test/data/invalid-messages/too-short-dict.message:
7964 * test/data/valid-messages/dict-simple.message:
7965 * test/data/valid-messages/dict.message:
7966 * test/data/valid-messages/emptiness.message:
7967 * test/data/valid-messages/lots-of-arguments.message:
7968 * test/data/valid-messages/no-padding.message:
7969 * test/data/valid-messages/recursive-types.message:
7970 Add missing NAME fields
7971 Fix up dicts & arrays
7973 * test/data/invalid-messages/dict-with-nil-value.message:
7974 Removed, this is not invalid anymore.
7976 * test/data/valid-messages/recursive-types.message:
7977 Add new test for deeply recursive types.
7979 2003-04-07 Havoc Pennington <hp@pobox.com>
7981 * bus/driver.c (bus_driver_handle_acquire_service): return an
7982 error if you try to acquire a service that starts with ':'
7984 2003-04-07 Havoc Pennington <hp@redhat.com>
7986 * doc/dbus-specification.sgml: require that base service names
7987 start with ':' and that the base service is created/deleted
7988 as first and last things a connection does on the bus
7990 * bus/dispatch.c (check_existent_service_activation): lots more
7991 work on the activation test; it doesn't fully pass yet...
7993 * test/test-service.c (main): fix so we don't memleak the
7994 connection to the message bus
7995 (filter_func): accept a message asking us to exit
7997 2003-04-06 Havoc Pennington <hp@pobox.com>
7999 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8002 * configure.in: fixes to Qt detection from Colin Walters
8004 * doc/Makefile.am: Only remove generated docbook dirs if they
8005 exist, from Colin Walters
8007 * dbus/dbus-bus.c: change how we set well-known connections to
8008 NULL, so that it works if a single connection is stored in
8009 two well-known array slots.
8011 * test/Makefile.am: remove a lot of stuff that isn't immediately
8012 useful, it's in CVS history if we want it.
8014 * test/test-service.c: use dbus-mainloop instead of that
8017 2003-04-06 Havoc Pennington <hp@pobox.com>
8019 * dbus/Makefile.am: split lists of sources into stuff that goes in
8020 the library, util functions that go in the lib and are also used
8021 elsewhere, and util functions that are used in tests/daemon but
8022 don't go in the lib.
8024 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8025 here so it can be used in test binaries also
8027 2003-04-06 Havoc Pennington <hp@pobox.com>
8029 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8030 here in the parent process, so we can return an error if it
8031 fails. Also, move some of the code into the child so the parent
8032 is less hosed if we fail midway through.
8034 * bus/bus.c (bus_context_new): move pidfile detection further up
8035 in the function, before we start overwriting sockets and such.
8037 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8039 * configure.in: add --with-system-pid-file and --with-system-socket
8041 2003-04-06 Colin Walters <walters@verbum.org>
8043 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8045 * bus/system.conf.in: Declare a pidfile.
8047 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8048 create one (if appropriate).
8050 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8051 (struct BusConfigParser) [pidfile]: New.
8052 (element_type_to_name, merge_included, start_busconfig_child)
8053 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8054 (bus_config_parser_unref): Free it.
8055 (bus_config_parser_get_pidfile): New function.
8057 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8059 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8061 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8063 * dbus/dbus-sysdeps.h: Prototype it.
8065 2003-04-06 Havoc Pennington <hp@pobox.com>
8067 * bus/bus.c (bus_context_new): print the address in here, rather
8068 than in main(), because we need to do it before forking the daemon
8070 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8071 on the service nonexistent error
8073 * bus/driver.c (bus_driver_handle_acquire_service): set the
8074 sender on the AcquireService reply
8076 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8077 server also listen on a UNIX socket so services can connect to it.
8079 2003-04-06 Havoc Pennington <hp@pobox.com>
8081 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8082 so it detects deadlocks and also we actually init threads when
8085 2003-04-06 Havoc Pennington <hp@pobox.com>
8087 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8088 save the domain socket name, and unlink it when we disconnect the
8089 server. Means that at least when we exit normally, we won't leave
8090 a bunch of junk in /tmp
8092 * dbus/dbus-transport-unix.c
8093 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8094 memory management). (I was making a real change here but then
8097 2003-04-06 Havoc Pennington <hp@pobox.com>
8099 * bus/bus.c (bus_context_new): fix wrong handling of
8100 server_data_slot_unref() in the error case.
8102 * dbus/dbus-internals.h (_dbus_assert): change so it passes
8103 "(condition) != 0" to _dbus_real_assert so that
8104 "_dbus_assert (pointer)" doesn't cause a warning
8106 * bus/main.c (main): accept --print-address option to print out
8107 the message bus address
8109 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8111 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8112 "tmpdir" option to unix: address on client side
8114 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8117 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8118 we can use to create sockets in the test suite.
8120 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8121 cleanly. To be used for testing.
8123 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8125 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8127 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8128 handle trying to call this when there's no servers active
8130 2003-04-05 Havoc Pennington <hp@pobox.com>
8136 2003-04-05 Havoc Pennington <hp@pobox.com>
8138 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8139 crash on startup. Need to get "try starting the daemon"
8140 in the test suite I guess. ;-)
8142 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8143 tracked the number of open connections; it's better done in
8144 application-specific code as you want it to span all servers etc.
8146 2003-04-05 Havoc Pennington <hp@pobox.com>
8148 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8149 patch from Colin Walters
8151 2003-04-05 Havoc Pennington <hp@pobox.com>
8153 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8154 reality; in fact multiple mechanisms are allowed.
8156 * dbus/dbus-internals.c (_dbus_real_assert)
8157 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8158 _dbus_assert_not_reached() into functions, so that they don't show
8159 up in basic block counts for test coverage, and don't use up as
8160 much disk space. Does mean slower execution speed though, so
8161 assumes --disable-asserts is the normal production case.
8163 2003-04-05 Havoc Pennington <hp@pobox.com>
8165 * test/Makefile.am (dist-hook): also dist *.in files
8171 2003-04-05 Havoc Pennington <hp@pobox.com>
8173 * dbus/dbus-string.c: docs warning
8175 * dbus/dbus-spawn.c: missing docs
8177 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8179 2003-04-05 Havoc Pennington <hp@pobox.com>
8181 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8184 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8185 to -1 once we've reaped the babysitter
8186 (_dbus_babysitter_handle_watch): do as much work as we can, not
8189 * bus/activation.c: add code using DBusBabysitter so that we
8190 handle it when a service fails to start up properly.
8191 (bus_activation_service_created): don't remove the activation
8192 entries as we go, just let them get removed when we free the pending
8193 activation. Unref reply messages after sending them.
8195 2003-04-05 Havoc Pennington <hp@pobox.com>
8197 * test/decode-gcov.c (main): print per-directory stats in the report
8199 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8201 2003-04-05 Havoc Pennington <hp@pobox.com>
8203 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8205 * test/decode-gcov.c: hack up a little program to suck data
8206 out of gcov files. Yes this is sort of silly.
8208 * configure.in: define something in config.h and do an
8209 AM_CONDITIONAL when gcov is enabled
8211 2003-04-04 Havoc Pennington <hp@redhat.com>
8213 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8214 return a "babysitter" object that is used to monitor the status of
8215 the spawned process and reap it when required.
8217 * test/test-segfault.c, test/test-exit.c,
8218 test/test-sleep-forever.c: binaries that do various lame things,
8219 used in the test suite.
8221 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8223 2003-04-03 Havoc Pennington <hp@pobox.com>
8225 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8226 in preparation for modifying it, dbus-sysdeps is getting
8229 2003-04-03 Havoc Pennington <hp@redhat.com>
8231 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8234 * bus/*.[hc]: adapt to mainloop change
8236 2003-04-03 Havoc Pennington <hp@redhat.com>
8238 * bus/activation.c (load_directory): fix up memleaks
8239 (bus_activation_entry_free): free the entry
8241 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8242 we get one from the message bus; fix memleaks.
8244 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8246 2003-04-03 Havoc Pennington <hp@pobox.com>
8248 * bus/config-parser.c (bus_config_parser_unref): free
8249 list of mechanisms, bug discovered by test suite enhancements
8250 (putting system.conf and session.conf into suite)
8252 * test/Makefile.am, test/test-service.c: add placeholder for a
8253 test service that we'll activate as part of test suite. Doesn't
8256 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8257 setting NULL value, and use system malloc not dbus_malloc()
8258 when we have unavoidable memleakage.
8260 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8261 didn't work, and support DBUS_BUS_ACTIVATION.
8263 * bus/activation.c (child_setup): pass our well-known bus type to
8266 * bus/config-parser.c: support <type> to specify well-known type
8268 * doc/dbus-specification.sgml: document the env variables to
8269 locate well-known buses and find service activator
8271 2003-04-02 Havoc Pennington <hp@redhat.com>
8273 * test/Makefile.am (all-local): add a rule to copy tests to
8274 builddir, so we can have generated tests. Use this to remove the
8275 silly hack for testing system.conf and session.conf. Will use this
8276 shortly to generate .service files pointing to test binaries.
8278 2003-04-02 Havoc Pennington <hp@redhat.com>
8280 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8281 current alloc and needed new length, not max of the doubled
8282 allocation and needed new length. Also, when building tests,
8283 don't do the double-allocation stuff, just realloc every time.
8285 2003-04-02 Havoc Pennington <hp@redhat.com>
8287 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8289 (_dbus_string_get_dirname): new
8290 (_dbus_sysdeps_test): new
8291 (_dbus_directory_open): include dirnames in error messages
8293 * bus/config-parser.c: interpret <include> and <includedir> and
8294 <servicedir> relative to config file location if the given
8295 filename is not absolute.
8297 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8299 2003-04-02 Havoc Pennington <hp@redhat.com>
8301 * bus/connection.c (bus_transaction_send_error_reply): set sender
8302 service for the error, and unref the reply on success
8304 * bus/activation.c: convert to use BusTransaction so OOM can be
8306 (bus_activation_service_created): set sender of the message
8308 2003-04-01 Havoc Pennington <hp@redhat.com>
8310 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8311 <includedir> (at least mostly)
8313 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8314 first, then the user ID
8316 2003-04-01 Havoc Pennington <hp@pobox.com>
8318 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8321 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8323 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8325 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8326 socket 0777, and unlink any existing socket.
8328 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8329 the configuration file so specifies; set up auth mechanism
8332 * bus/config-parser.c (bus_config_parser_content): add support
8333 for <fork> option and fill in code for <auth>
8335 * bus/system.conf.in: add <fork/> to default configuration,
8336 and limit auth mechanisms to EXTERNAL
8338 * doc/config-file.txt (Elements): add <fork>
8340 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8341 (_dbus_change_identity): new function
8343 2003-03-31 Havoc Pennington <hp@redhat.com>
8345 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8346 (_dbus_listen_unix_socket): fix off-by-one error in null
8347 termination spotted by Nalin
8349 2003-03-31 Havoc Pennington <hp@redhat.com>
8351 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8352 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8353 having a real home directory available.
8355 2003-03-31 Havoc Pennington <hp@redhat.com>
8357 * bus/Makefile.am (install-data-hook): create /var/run/dbus
8359 * bus/messagebus.in: add init script for Red Hat /etc/init.d
8361 * configure.in: add support for specifying a style of init script
8364 2003-03-31 Havoc Pennington <hp@redhat.com>
8366 Fix some annoying DBusString API and fix all affected code.
8368 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8370 (_dbus_string_get_data): change to return string instead of using
8372 (_dbus_string_get_const_data): ditto
8373 (_dbus_string_get_data_len): ditto
8374 (_dbus_string_get_const_data_len): ditto
8376 2003-03-31 Havoc Pennington <hp@redhat.com>
8378 * bus/main.c (main): fix up the command line arguments to be nicer
8380 2003-03-31 Havoc Pennington <hp@redhat.com>
8382 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8383 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8384 final location that lands in the config file
8386 * bus/config-loader-expat.c (bus_config_load): fix type of
8389 * doc/TODO: remove TODO item for dbus_bus_get()
8391 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8393 2003-03-31 Havoc Pennington <hp@pobox.com>
8395 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8396 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8397 argument since they are always client side
8399 * dbus/dbus-server.c (dbus_server_get_address): new function
8401 * bus/main.c (main): take the configuration file as an argument.
8403 * test/data/valid-config-files/debug-allow-all.conf: new file to
8404 use with dispatch.c tests for example
8406 * bus/test-main.c (main): require test data dir
8408 * bus/bus.c (bus_context_new): change this to take a
8409 configuration file name as argument
8411 * doc/config-file.txt (Elements): add <servicedir>
8413 * bus/system.conf, bus/session.conf: new files
8415 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8416 well-known socket if none set
8418 * configure.in: create system.conf and session.conf
8420 2003-03-30 Havoc Pennington <hp@pobox.com>
8422 * bus/config-parser.c: hacking
8424 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8425 to shut down, since it could cause weirdness with the DBusList
8428 * dbus/dbus-list.c (_dbus_list_test): add tests for the
8429 link-oriented stack routines
8430 (alloc_link): free the mempool if the first alloc from it fails
8432 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8434 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8436 (_dbus_string_skip_white): new
8438 * doc/config-file.txt (Elements): add <includedir>
8440 2003-03-28 Havoc Pennington <hp@pobox.com>
8442 * dbus/dbus-string.c (_dbus_string_copy_data_len)
8443 (_dbus_string_copy_data): new functions
8445 2003-03-28 Anders Carlsson <andersca@codefactory.se>
8447 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8451 * dbus/dbus-memory.c:
8454 2003-03-28 Havoc Pennington <hp@pobox.com>
8456 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8457 I think it may have just been superstition. Not sure.
8459 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8460 failures that were not being handled.
8462 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8464 * dbus/dbus-memory.c: add ability to set number of mallocs in a
8465 row that will fail on out-of-memory.
8467 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8468 function for testing out-of-memory handling.
8470 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8471 allocation functions, they do map exactly to the expat ones.
8473 2003-03-27 Havoc Pennington <hp@redhat.com>
8475 * bus/config-loader-libxml.c (bus_config_load): add another error
8478 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8481 Add note about automatic service activation.
8483 * doc/dbus-specification.sgml:
8484 Rename the specification and clarify a few things.
8486 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8489 * dbus/dbus-address.c:
8491 * dbus/dbus-marshal.c:
8492 * dbus/dbus-server-debug-pipe.c:
8493 * dbus/dbus-transport-unix.c:
8494 Fix documentation warnings.
8496 2003-03-26 Havoc Pennington <hp@pobox.com>
8498 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8499 after every test so it's quick and easy to see which leaked, and
8500 so we test multiple dbus_shutdown() calls
8502 * configure.in: change configure.in XML stuff to also support
8505 * config-loader-libxml.c: some hacking
8507 * config-loader-expat.c: some hacking
8509 * config-parser.c: some hacking, plus tests
8511 2003-03-25 Havoc Pennington <hp@redhat.com>
8513 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8515 * configure.in: add --with-xml option to specify XML library,
8516 right now only libxml is supported.
8518 * bus/config-loader-libxml.c, config-parser.c: sync some minor
8519 nonworking code between home and work, still just stubs
8521 2003-03-24 Havoc Pennington <hp@redhat.com>
8523 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8526 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8527 NULL argument for "message" if the error is a well-known one,
8528 fill in a generic message in this case.
8530 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8533 * bus/test.c (bus_test_flush_bus): add
8535 * bus/policy.c (bus_policy_test): test code stub
8537 2003-03-24 Havoc Pennington <hp@pobox.com>
8539 * bus/connection.c (bus_connections_setup_connection): set up
8540 the "can this user connect" function, but it always returns
8541 TRUE until we have a config file parser so we can have a config
8542 file that allows connections.
8544 2003-03-23 Havoc Pennington <hp@pobox.com>
8546 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8547 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8548 the mutex, so we can check for proper memory management
8551 * dbus/dbus-dataslot.c: remove the mutex from
8552 DBusDataSlotAllocator and lock it manually when using it,
8553 to simplify fitting it into the global slots framework.
8555 * dbus/dbus-threads.c (init_static_locks): rework how we're
8556 handling global locks so they are easily shut down.
8558 * bus/policy.c (bus_policy_append_rule): fix
8560 * bus/test-main.c (main): check for memleaks
8562 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8563 test suite check for memleaks
8565 * dbus/dbus-memory.c: add support in test mode for tracking
8566 number of outstanding blocks
8568 2003-03-23 Havoc Pennington <hp@pobox.com>
8570 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8573 * dbus/dbus-hash.h: add ULONG hash keys
8575 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8576 (_dbus_get_group_id): new function
8578 2003-03-20 Havoc Pennington <hp@redhat.com>
8580 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8582 (dbus_connection_get_unix_user): new function
8584 2003-03-20 Havoc Pennington <hp@pobox.com>
8586 * bus/connection.c (bus_connection_send_oom_error): assert that
8587 message has a sender
8588 (connection_execute_transaction): ditto
8589 (bus_connection_preallocate_oom_error): fix to set the sender, and
8590 set recipient to the destination service, not the bus driver
8592 * bus/policy.c: hacking
8594 * dbus/dbus-message.c (dbus_message_service_is): new function
8595 (dbus_message_sender_is): new
8597 2003-03-19 Havoc Pennington <hp@redhat.com>
8599 * bus/policy.c: start sketching code for policy restrictions on
8600 what connections can do.
8602 2003-03-18 Havoc Pennington <hp@redhat.com>
8604 * doc/TODO: some notes on high-level todo items. Little nitpick
8605 stuff is all in @todo, so no need to add it here.
8607 * doc/config-file.txt: some notes on how config file might look
8609 2003-03-18 Anders Carlsson <andersca@codefactory.se>
8615 2003-03-17 Havoc Pennington <hp@redhat.com>
8617 * dbus/dbus-internals.h: add gcc attributes so that
8618 our printf-style functions warn on bad arguments to
8621 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8624 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8627 2003-03-17 Havoc Pennington <hp@redhat.com>
8629 * bus/test-main.c (main): make it print something as it runs
8630 so make check doesn't look stuck
8632 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8633 from CVS, now obsolete
8635 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8637 * bus/dispatch.c: (bus_dispatch):
8638 Refetch the service name since it may have been reallocated
8639 when dbus_message_set_sender was called.
8641 * dbus/dbus-sysdeps.c: (_dbus_accept):
8642 Add address and address length variables and use them to stop
8643 valgrind from complaining.
8645 2003-03-17 Havoc Pennington <hp@pobox.com>
8647 All tests pass, no memleaks, no valgrind complaints.
8649 * bus/test.c: refcount handler_slot
8651 * bus/connection.c (bus_connections_new): refcount
8652 connection_data_slot
8654 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8655 bytes so that auth scripts pass.
8657 * bus/dispatch.c: init message_handler_slot so it gets allocated
8660 * bus/dispatch.c (message_handler_slot_ref): fix memleak
8662 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8663 dealloc server_pipe_hash when no longer used for benefit of
8666 * dbus/dbus-auth.c (process_command): memleak fix
8668 * bus/dispatch.c (check_hello_message): memleak fix
8670 2003-03-16 Havoc Pennington <hp@pobox.com>
8672 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8674 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8676 * bus/activation.c (bus_activation_activate_service): Append
8677 the pending activation entry to the list of pending activations.
8679 2003-03-16 Havoc Pennington <hp@pobox.com>
8681 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8684 * dbus/dbus-address.c (create_entry): fix OOM handling when
8685 failing to alloc entry->method
8687 2003-03-16 Havoc Pennington <hp@pobox.com>
8689 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8692 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8693 add some missing dbus_set_result
8695 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8696 alloc the DBusMessageHandler
8698 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8699 the transport here, since we call this from the finalizer; it
8700 resulted in a double-finalize.
8702 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8703 where we tried to use transport->connection that was NULL,
8704 happened when transport was disconnected early on due to OOM
8706 * bus/*.c: adapt to handle OOM for watches/timeouts
8708 * dbus/dbus-transport-unix.c: port to handle OOM during
8711 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8712 reference to unused bytes instead of a copy
8714 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8717 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8720 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8723 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8725 * doc/dbus-specification.sgml:
8726 Document reply message for ActivateService.
8728 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8730 * bus/activation.c: (bus_pending_activation_entry_free),
8731 (bus_pending_activation_free), (bus_activation_new),
8732 (bus_activation_unref), (bus_activation_service_created),
8733 (bus_activation_activate_service):
8735 * bus/bus.c: (bus_context_new):
8736 * bus/desktop-file.c: (new_section):
8737 * bus/driver.c: (bus_driver_send_service_deleted),
8738 (bus_driver_handle_activate_service):
8739 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8741 * dbus/dbus-connection.c:
8742 (dbus_connection_send_with_reply_and_block):
8743 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8744 * dbus/dbus-protocol.h:
8745 Make activation work better. Now pending activations will be queued
8746 and the daemon won't try to activate services that are already registered.
8748 2003-03-16 Havoc Pennington <hp@pobox.com>
8750 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8753 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8754 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8756 2003-03-16 Havoc Pennington <hp@pobox.com>
8758 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8759 this. always run the test suite before commit...
8761 * bus/*: adapt to DBusConnection API changes
8763 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8764 requires renaming stuff to avoid dbus_connection_dispatch name
8767 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8770 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8771 separate from _dbus_message_loader_return_buffer()
8773 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8774 this, because it's now always broken to use; the number of
8775 messages in queue vs. the number still buffered by the message
8776 loader is undefined/meaningless. Should use
8777 dbus_connection_get_dispatch_state().
8778 (dbus_connection_dispatch): rename from
8779 dbus_connection_dispatch_message
8781 2003-03-16 Havoc Pennington <hp@pobox.com>
8783 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8786 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8788 * dbus/dbus-connection.c:
8789 (dbus_connection_send_with_reply_and_block):
8790 Decrease connection->n_incoming when removing an entry
8792 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8793 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8794 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8795 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8796 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8797 (dbus_dict_get_byte_array):
8798 Handle NULL arrays and strings. Also add support for byte arrays.
8800 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8801 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8802 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8803 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8804 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8805 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8806 * dbus/dbus-marshal.h:
8807 Add support for marshalling and demarshalling empty arrays and strings.
8809 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8810 (dbus_message_append_string_array),
8811 (dbus_message_iter_get_boolean),
8812 (dbus_message_iter_get_boolean_array),
8813 (dbus_message_iter_get_int32_array),
8814 (dbus_message_iter_get_uint32_array),
8815 (dbus_message_iter_get_double_array),
8816 (dbus_message_iter_get_byte_array),
8817 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8818 (check_message_handling):
8819 Add support for getting empty arrays and dicts.
8821 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8822 Don't do any validation at all for now, that's better than just checking
8825 * test/data/valid-messages/emptiness.message:
8826 New test message with lots of empty arrays.
8828 2003-03-16 Havoc Pennington <hp@pobox.com>
8830 * dbus/dbus-connection.c
8831 (_dbus_connection_queue_received_message_link): new function that
8832 can't fail due to OOM
8834 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8835 new function pops a message together with a list link
8838 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8839 message queuing functions to avoid needing to alloc memory
8841 2003-03-16 Havoc Pennington <hp@pobox.com>
8843 Oops - test code was only testing failure of around 30 of the
8844 mallocs in the test path, but it turns out there are 500+
8845 mallocs. I believe this was due to misguided linking setup such
8846 that there was one copy of dbus_malloc etc. in the daemon and one
8847 in the shared lib, and only daemon mallocs were tested. In any
8848 case, the test case now tests all 500+ mallocs, and doesn't pass
8849 yet, though there are lots of fixes in this patch.
8851 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8852 this so that it doesn't need to allocate memory, since it
8853 has no way of indicating failure due to OOM (and would be
8854 annoying if it did).
8856 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8858 * bus/Makefile.am: rearrange to create two self-contained
8859 libraries, to avoid having libraries with overlapping symbols.
8860 that was resulting in weirdness, e.g. I'm pretty sure there
8861 were two copies of global static variables.
8863 * dbus/dbus-internals.c: move the malloc debug stuff to
8866 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8869 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8871 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8874 * bus/dispatch.c (bus_dispatch_add_connection): free
8875 message_handler_slot when no longer using it, so
8876 memory leak checkers are happy for the test suite.
8878 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8880 * bus/bus.c (new_connection_callback): disconnect in here if
8881 bus_connections_setup_connection fails.
8883 * bus/connection.c (bus_connections_unref): fix to free the
8885 (bus_connections_setup_connection): if this fails, don't
8886 disconnect the connection, just be sure there are no side
8889 * dbus/dbus-string.c (undo_alignment): unbreak this
8891 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8893 (_dbus_auth_new): fix the order in which we free strings
8896 * bus/connection.c (bus_connection_disconnected): fix to
8897 not send ServiceDeleted multiple times in case of memory
8900 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8901 get the base service name
8902 (dbus_bus_register_client): don't return base service name,
8903 instead store it on the DBusConnection and have an accessor
8905 (dbus_bus_register_client): rename dbus_bus_register()
8907 * bus/dispatch.c (check_hello_message): verify that other
8908 connections on the bus also got the correct results, not
8909 just the one sending hello
8911 2003-03-15 Havoc Pennington <hp@pobox.com>
8913 Make it pass the Hello handling test including all OOM codepaths.
8914 Now to do other messages...
8916 * bus/services.c (bus_service_remove_owner): fix crash when
8917 removing owner from an empty list of owners
8918 (bus_registry_ensure): don't leave service in the list of
8919 a connection's owned services if we fail to put the service
8922 * bus/connection.c (bus_connection_preallocate_oom_error): set
8923 error flag on the OOM error.
8925 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8926 handle _dbus_transport_set_connection failure
8928 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8929 to create watches up front and simply enable/disable them as
8931 (unix_connection_set): this can now fail on OOM
8933 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8934 of enabling/disabling a watch or timeout.
8936 * bus/loop.c (bus_loop_iterate): don't touch disabled
8939 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8941 2003-03-15 Havoc Pennington <hp@pobox.com>
8943 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8944 write useful test code, after all that futzing around ;-)
8946 Test does not yet pass because we can't handle OOM in
8947 _dbus_transport_messages_pending (basically,
8948 dbus_connection_preallocate_send() does not prealloc the write
8949 watch). To fix this, I think we need to add new stuff to
8950 set_watch_functions, namely a SetEnabled function so we can alloc
8951 the watch earlier, then enable it later.
8953 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8954 dbus-memory.c to the convenience lib
8956 * bus/test.c: rename some static functions to keep them clearly
8957 distinct from stuff in connection.c. Handle client disconnection.
8959 2003-03-14 Havoc Pennington <hp@pobox.com>
8961 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8962 transport, tests more of the real codepath. Set up clients
8963 with bus_setup_debug_client.
8965 * bus/test.c (bus_setup_debug_client): function to set up debug
8966 "clients" on the main loop
8968 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8971 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8974 * dbus/dbus-server-debug.c: support a debug server based on pipes
8976 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8977 (_dbus_close): new function
8979 * configure.in: check for socketpair
8981 2003-03-14 Havoc Pennington <hp@redhat.com>
8983 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8986 * dbus/dbus-transport-debug.c: rework this a good bit to be
8987 less complicated. hopefully still works.
8989 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8992 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8995 * dbus/dbus-message.c (dbus_message_copy): rename from
8996 dbus_message_new_from_message, fix it up to copy
8997 all the message fields, add test case
8999 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9000 not quite passing yet
9002 2003-03-14 Havoc Pennington <hp@pobox.com>
9004 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9005 until no work remains" in test code. (the large diff here
9006 is just code movement, no actual changes)
9008 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9009 1, no point waiting around for test code.
9010 (_dbus_server_debug_accept_transport): unref the timeout
9011 after adding it (right?)
9013 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9015 2003-03-13 Havoc Pennington <hp@redhat.com>
9017 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9020 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9023 * dbus/dbus-connection.h: Make AddWatchFunction and
9024 AddTimeoutFunction return a bool so they can fail on out-of-memory
9026 * bus/bus.c (bus_context_new): set up timeout handlers
9028 * bus/connection.c (bus_connections_setup_connection): set up
9031 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9034 * bus/bus.c (bus_context_new): adapt to changes
9036 * bus/connection.c: adapt to changes
9038 * test/watch.c: adapt to DBusWatch changes
9040 * bus/dispatch.c (bus_dispatch_test): started adding this but
9043 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9045 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9047 2003-03-13 Havoc Pennington <hp@pobox.com>
9049 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9050 set up a test framework as for the library
9052 2003-03-12 Havoc Pennington <hp@pobox.com>
9054 Throughout: purge global variables, introduce BusActivation,
9055 BusConnections, BusRegistry, etc. objects instead.
9057 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9060 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9061 going to redo this a bit differently I think
9063 2003-03-12 Havoc Pennington <hp@redhat.com>
9065 Mega-patch that gets the message bus daemon initially handling
9066 out-of-memory. Work still needed. Also lots of random
9067 moving stuff to DBusError instead of ResultCode.
9069 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9071 * dbus/dbus-connection.c
9072 (dbus_connection_send_with_reply_and_block): use DBusError
9074 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9077 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9078 code here, as the only failure possible is OOM.
9080 * bus/connection.c (bus_connection_disconnect):
9081 rename bus_connection_disconnected as it's a notification only
9083 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9084 "name" on get_args failure, should be done by get_args;
9085 don't disconnect client for bad args, just return an error.
9086 (bus_driver_handle_service_exists): ditto
9088 * bus/services.c (bus_services_list): NULL-terminate returned array
9090 * bus/driver.c (bus_driver_send_service_lost)
9091 (bus_driver_send_service_acquired): send messages from driver to a
9092 specific client to the client's unique name, not to the broadcast
9095 * dbus/dbus-message.c (decode_header_data): reject messages that
9096 contain no name field
9097 (_dbus_message_get_client_serial): rename to
9098 dbus_message_get_serial and make public
9099 (_dbus_message_set_serial): rename from set_client_serial
9100 (_dbus_message_set_reply_serial): make public
9101 (_dbus_message_get_reply_serial): make public
9103 * bus/connection.c (bus_connection_foreach): allow stopping
9104 iteration by returning FALSE from foreach function.
9106 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9107 (dbus_connection_free_preallocated_send)
9108 (dbus_connection_preallocate_send): new API for sending a message
9109 without possibility of malloc failure.
9110 (dbus_connection_send_message): rename to just
9111 dbus_connection_send (and same for whole function family)
9113 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9115 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9117 * bus/activation.c: handle/return errors
9119 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9121 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9122 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9123 (_dbus_result_from_errno): move to this file
9125 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9127 * dbus/dbus-marshal.c:
9128 (_dbus_marshal_set_string):
9129 Take a length argument so we can marshal the correct string
9132 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9133 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9134 (_dbus_marshal_test):
9135 * dbus/dbus-marshal.h:
9136 Add support for marshalling and demarshalling dicts.
9138 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9139 Add support for TYPE DICT.
9141 * dbus/dbus-message.c: (set_string_field):
9142 Adjust header padding.
9144 (dbus_message_append_args_valist), (dbus_message_append_dict),
9145 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9146 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9147 (check_message_handling), (check_have_valid_message):
9148 * dbus/dbus-message.h:
9149 Add functions for setting and getting dicts.
9151 * dbus/dbus-protocol.h:
9157 * doc/dbus-specification.sgml:
9158 Add information about how dicts are marshalled.
9160 * test/data/invalid-messages/dict-with-nil-value.message:
9161 * test/data/invalid-messages/too-short-dict.message:
9162 * test/data/valid-messages/dict-simple.message:
9163 * test/data/valid-messages/dict.message:
9164 Add sample messages containing dicts.
9166 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9168 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9170 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9173 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9174 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9175 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9176 (dbus_dict_set_double), (dbus_dict_set_string),
9177 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9178 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9179 (dbus_dict_set_string_array), (_dbus_dict_test):
9181 Fix according to comments from Havoc.
9183 2003-03-06 Michael Meeks <michael@server.home>
9185 * configure.in: if we don't have kde-config, disable have_qt.
9187 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9192 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9193 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9194 (dbus_dict_remove), (dbus_dict_get_value_type),
9195 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9196 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9197 (dbus_dict_put_double), (dbus_dict_put_string),
9198 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9199 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9200 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9201 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9202 (dbus_dict_get_double), (dbus_dict_get_string),
9203 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9204 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9205 (dbus_dict_get_string_array), (_dbus_dict_test):
9207 Add DBusDict implementation
9209 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9213 2003-03-04 Havoc Pennington <hp@pobox.com>
9215 * test/data/auth/*: adapt to changes
9217 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9218 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9221 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9222 more stuff from being in a context name, to make the protocol
9223 simpler to deal with
9225 * dbus/dbus-errors.c (dbus_error_has_name): new function
9226 (dbus_error_is_set): new function
9228 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9229 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9231 * dbus/dbus-connection.c (dbus_connection_flush): also read
9232 messages during a flush operation
9234 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9236 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9238 * configure.in: Check for gethostbyname on Solaris.
9240 * dbus/dbus-transport.c: (_dbus_transport_open):
9241 Remove duplicate "tcp" entry.
9243 * doc/dbus-specification.sgml:
9244 Clarify some things.
9246 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9248 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9249 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9250 (_dbus_keyring_test):
9251 * dbus/dbus-md5.c: (_dbus_md5_compute):
9252 * dbus/dbus-sha.c: (_dbus_sha_compute):
9255 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9257 * README: Add some things.
9259 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9261 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9262 after case DBUS_TYPE_BOOELAN.
9264 2003-03-02 Havoc Pennington <hp@pobox.com>
9266 * test/break-loader.c (randomly_set_extreme_ints): add test that
9267 sets really huge and small integers
9269 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9270 that length of boolean array fits in the string, and that
9271 string has room for boolean value in single-bool case.
9273 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9274 optional value to "ALIGN" command which is what to fill the
9277 * test/data/valid-messages/no-padding.message: add regression
9278 test for the message padding problem
9280 2003-03-02 Havoc Pennington <hp@pobox.com>
9282 * dbus/dbus-message.c (decode_header_data): fix to always init
9283 message_padding, from Benjamin Dauvergne
9285 2003-03-02 Havoc Pennington <hp@pobox.com>
9291 2003-03-01 Joe Shaw <joe@assbarn.com>
9293 * configure.in: Check for "struct cmsgcred" and try to access its
9294 members for BSD-like unices.
9296 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9297 _dbus_read_credentials_unix_socket().
9298 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9299 read() for reading the credential byte off the unix socket. Use
9300 struct cmsgcred on systems that support it.
9302 2003-02-27 Alexander Larsson <alexl@redhat.com>
9306 Make gthreads-2.0 dependency optional. Don't build thread test if
9309 2003-02-27 Havoc Pennington <hp@pobox.com>
9311 * dbus/dbus-connection.c
9312 (dbus_connection_send_message_with_reply_and_block): fix doh!
9313 doh! doh! bug that resulted in never removing a reply from the
9314 queue, no wonder we called get_reply_serial so much ;-)
9316 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9317 and client serial instead of demarshaling them every time
9319 2003-02-27 Havoc Pennington <hp@pobox.com>
9321 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9322 more inlined, using dbus-string-private.h, speeds things up
9325 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9326 when freeing the string
9327 (_dbus_string_steal_data): fix for align offset
9328 (undo_alignment): new function
9330 2003-02-26 Havoc Pennington <hp@redhat.com>
9332 All kinds of audit fixes from Owen, plus initial attempt to
9333 handle unaligned memory returned from malloc.
9335 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9336 leave room for align_offset and nul byte
9337 (fixup_alignment): function to track an align_offset and
9338 ensure real->str is aligned
9339 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9340 to allow a nul byte plus align offset
9341 (_dbus_string_lock): fix overflow issue
9342 (_dbus_string_init_const_len): add assertions on sanity of len,
9343 assign allocated to be ALLOCATION_PADDING larger than len
9344 (set_length): fixup the overflow handling
9345 (_dbus_string_get_data_len): fix overflow in assertion
9346 (open_gap): detect overflow in size of gap to be opened
9347 (_dbus_string_lengthen): add overflow check
9348 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9349 (_dbus_string_append): add overflow check
9350 (_dbus_string_append_unichar): overflow
9351 (_dbus_string_delete): fix overflow in assertion
9352 (_dbus_string_copy_len): overflow in assertion
9353 (_dbus_string_replace_len): overflows in assertions
9354 (_dbus_string_find): change to implement in terms of
9355 _dbus_string_find_to
9356 (_dbus_string_find_to): assorted fixage
9357 (_dbus_string_equal_c_str): assert c_str != NULL,
9358 fix logic so the function works
9359 (_dbus_string_ends_with_c_str): fix overflow thingy
9360 (_dbus_string_base64_encode): overflow fix
9361 (_dbus_string_validate_ascii): overflow
9362 (_dbus_string_validate_nul): overflow
9364 2003-02-26 Havoc Pennington <hp@redhat.com>
9366 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9368 2003-02-26 Alexander Larsson <alexl@redhat.com>
9371 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9373 * dbus/dbus-connection.c:
9374 * dbus/dbus-connection.h:
9375 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9376 Add dbus_connection_set_wakeup_main_function and use it when queueing
9377 incoming and outgoing messages.
9380 * dbus/dbus-dataslot.c:
9381 Threadsafe usage of DBusDataSlotAllocator
9383 * dbus/dbus-message.c: (dbus_message_get_args_iter):
9386 * dbus/dbus-server-unix.c:
9389 * glib/dbus-gmain.c:
9390 Implement the new wakeup functions for glib.
9393 * glib/test-thread-client.c:
9394 * glib/test-thread-server.c:
9395 * glib/test-thread.h:
9396 Initial cut at some thread test code. Not really done yet.
9398 2003-02-26 Havoc Pennington <hp@pobox.com>
9400 * dbus/dbus-connection.c
9401 (dbus_connection_send_message_with_reply_and_block): fix crash
9402 where we ref'd the outgoing message instead of the returned reply
9404 * dbus/dbus-transport-unix.c (do_authentication): check read watch
9405 at the end of this function, so if we didn't need to read for
9406 authentication, we reinstall it for receiving messages
9408 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9409 a NULL sender for peer-to-peer case
9411 * dbus/dbus-transport-unix.c (check_read_watch): handle
9412 !authenticated case correctly
9414 * glib/dbus-gmain.c: add support for DBusServer
9416 * dbus/dbus-server.c: add data slot support
9418 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9419 return values and handle errors
9421 * dbus/dbus-dataslot.c: factor out the data slot stuff from
9424 * Doxyfile.in (INPUT): add glib subdir
9426 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9427 setup_with_g_main instead of hookup_with_g_main; write docs
9429 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9431 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9432 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9433 * dbus/dbus-message.c: (dbus_message_append_boolean),
9434 (dbus_message_append_boolean_array),
9435 (dbus_message_get_args_valist), (_dbus_message_test):
9436 * dbus/dbus-message.h:
9437 * doc/dbus-specification.sgml:
9438 Various fixes as pointed out by Havoc.
9440 * test/data/invalid-messages/bad-boolean-array.message:
9441 * test/data/invalid-messages/bad-boolean.message:
9442 Add invalid boolean value test cases.
9444 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9446 * dbus/dbus-internals.c: (_dbus_type_to_string):
9447 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9448 (_dbus_marshal_validate_arg):
9449 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9450 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9451 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9452 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9453 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9454 (dbus_message_iter_get_double),
9455 (dbus_message_iter_get_boolean_array), (message_iter_test):
9456 * dbus/dbus-message.h:
9457 * dbus/dbus-protocol.h:
9458 * doc/dbus-specification.sgml:
9459 * test/data/valid-messages/lots-of-arguments.message:
9460 Add support for boolean and boolean array types.
9462 2003-02-23 Havoc Pennington <hp@pobox.com>
9464 * dbus/dbus-keyring.c: finish most of this implementation and
9467 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9468 these barf if the error isn't cleared to NULL
9470 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9471 (_dbus_create_directory): new function
9473 * dbus/dbus-errors.c (dbus_set_error): fix warning
9475 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9476 (_dbus_string_hex_decode): new function
9477 (test_hex_roundtrip): test code
9479 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9481 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9483 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9484 the save-to-temp/rename trick to atomically write the new file
9485 (_dbus_string_parse_uint): new function
9487 2003-02-22 Havoc Pennington <hp@pobox.com>
9489 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9491 2003-02-22 Havoc Pennington <hp@pobox.com>
9493 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9494 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9496 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9498 * dbus/test/data/sha-1: add US government test suite for SHA-1
9500 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9502 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9503 Make string arrays NULL-terminated.
9505 * dbus/dbus-memory.c: (dbus_free_string_array):
9506 * dbus/dbus-memory.h:
9507 New function for freeing NULL-terminated string arrays.
9509 * dbus/dbus-message-builder.c: (append_quoted_string),
9510 (_dbus_message_data_load):
9511 Add support for array types.
9513 * dbus/dbus-message.c: (check_message_handling):
9514 Add more types as test cases.
9516 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9517 (_dbus_string_parse_double):
9518 Add the start offset to the end offset.
9520 * test/data/valid-messages/lots-of-arguments.message:
9521 New test message with lots of arguments.
9523 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9525 * dbus/dbus-message.c: (dbus_message_append_nil),
9526 (dbus_message_append_int32), (dbus_message_append_uint32),
9527 (dbus_message_append_double), (dbus_message_append_string),
9528 (dbus_message_append_int32_array),
9529 (dbus_message_append_uint32_array),
9530 (dbus_message_append_double_array),
9531 (dbus_message_append_byte_array),
9532 (dbus_message_append_string_array):
9533 Fix all out-of-memory handling in these functions.
9535 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9537 * dbus/dbus-message.c: (dbus_message_append_nil):
9540 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9542 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9543 (dbus_message_append_nil), (dbus_message_append_int32_array),
9544 (dbus_message_append_uint32_array),
9545 (dbus_message_append_double_array),
9546 (dbus_message_append_byte_array),
9547 (dbus_message_append_string_array), (dbus_message_get_args_valist),
9548 (dbus_message_iter_get_int32_array),
9549 (dbus_message_iter_get_uint32_array),
9550 (dbus_message_iter_get_double_array),
9551 (dbus_message_iter_get_byte_array),
9552 (dbus_message_iter_get_string_array):
9554 * dbus/dbus-message.h:
9555 Add functions for appending and getting arrays.
9557 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9559 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9560 element size at least 8 bytes, fixes mempool tests on
9563 2003-02-20 Alexander Larsson <alexl@redhat.com>
9565 * dbus/dbus-transport-unix.c (unix_do_iteration):
9566 Unlock the connection mutex during a blocking select call.
9567 Add todo about how we need a way to wake up the select.
9569 * dbus/dbus-connection-internal.h:
9570 * dbus/dbus-connection.c:
9571 Add _dbus_connection_lock and _dbus_connection_unlock.
9573 2003-02-19 Havoc Pennington <hp@pobox.com>
9575 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9576 Doxyfile.in, not Doxyfile
9578 * dbus/dbus-keyring.c: do some hacking on this
9580 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9582 * dbus/dbus-errors.c (dbus_set_error_const): do not call
9584 (dbus_set_error): remove dbus_error_init, check for message ==
9585 NULL *before* we sprintf into it, and add @todo about including
9586 system headers in this file
9588 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9590 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9592 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9593 get various bits of user information based on either username
9595 (_dbus_homedir_from_username): new function
9597 2003-02-19 Anders Carlsson <andersca@codefactory.se>
9600 Add check for nonposix getpwnam_r
9602 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9603 Align the pool element size to a sizeof (void *) boundary.
9605 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9606 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9607 General Solaris fixes.
9609 * test/data/valid-messages/simplest-manual.message:
9610 Explicitly state that we want little-endian packing.
9612 2003-02-19 Mikael Hallendal <micke@codefactory.se>
9614 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9616 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9617 Added to create a transport connecting using a tcp/ip socket.
9619 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9620 to a tcp socket at given host and port.
9621 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9624 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9626 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9627 Added to create a server listening on a TCP/IP socket.
9629 2003-02-19 Havoc Pennington <hp@pobox.com>
9631 Throughout: mop up all the Doxygen warnings and undocumented
9634 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9635 to search any paths.
9637 * dbus/dbus-threads.c: move global mutex initializers to
9638 dbus-internals.h, multiple prototypes was confusing doxygen
9639 besides being kind of ugly
9641 * Doxyfile (PREDEFINED): have Doxygen define
9642 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9643 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9644 (do not abuse the feature! it's for stuff like the autogenerated
9645 macros in dbus-md5.c, not just for things you don't feel like
9648 2003-02-18 Havoc Pennington <hp@pobox.com>
9650 * dbus/dbus-string.c (_dbus_string_zero): new function
9652 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9653 wrap it in some dbus-friendly API
9655 * dbus/dbus-types.h: add 16-bit types
9657 2003-02-18 Joe Shaw <joe@assbarn.com>
9659 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9660 credentials from our currently running process.
9661 (get_word): Fix a buglet where we were copying the entire length
9662 instead of relative to our position.
9664 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9665 keys on the stack... it's 640k of data.
9667 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9668 read the credentials byte off the socket, even if we don't have
9670 (_dbus_poll): Implement poll() using select() for systems which
9673 * glib/test-dbus-glib.c (main): Print out an error if no
9674 parameters are given.
9676 * test/data/auth/fallback.auth-script: Added. Tests that a client
9677 can fallback to a secondary auth mechanism if the first fails.
9679 2003-02-18 Havoc Pennington <hp@pobox.com>
9683 2003-02-17 Havoc Pennington <hp@pobox.com>
9685 * doc/dbus-specification.sgml: lots of cosmetic
9686 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9687 env variable to DBUS_BUS_ADDRESS, s/client/application/,
9688 s/server/bus/ (except in authentication section). Add a section
9689 "Message Bus Message Routing"
9691 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
9697 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9699 * doc/dbus-specification.sgml:
9700 Specification updates.
9702 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9704 * bus/activation.c: (bus_activation_init), (child_setup),
9705 (bus_activation_activate_service):
9707 * bus/main.c: (main):
9708 Set DBUS_ADDRESS environment variable.
9710 * dbus/dbus-errors.c: (dbus_set_error):
9711 Don't use va_copy since that's a C99 feature.
9713 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9714 (_dbus_spawn_async):
9715 * dbus/dbus-sysdeps.h:
9716 Add child_setup_func to _dbus_spawn_async.
9718 * doc/dbus-specification.sgml:
9719 Update specification.
9721 * test/spawn-test.c: (setup_func), (main):
9724 2003-02-17 Alexander Larsson <alexl@redhat.com>
9726 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9729 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9733 * doc/dbus-test-plan.sgml:
9734 Add test plan document.
9739 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9741 * dbus/dbus-message.c: (decode_header_data),
9742 (_dbus_message_loader_return_buffer):
9743 Set the header padding amount when loading a message.
9745 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9747 * bus/dispatch.c: (send_one_message):
9748 Only send broadcast messages to registered connections.
9750 * dbus/dbus-message.c: (dbus_message_name_is):
9751 * dbus/dbus-message.h:
9752 New convenience function.
9754 * dbus/dbus-transport-debug.c: (do_reading):
9755 Only dispatch one message per run.
9758 * test/bus-test.c: (new_connection_callback), (die),
9759 (test_hello_client1_handler), (test_hello_client2_handler),
9760 (test_hello_replies), (main):
9762 * test/bus-test-loop.[ch]:
9765 2003-02-16 Havoc Pennington <hp@pobox.com>
9767 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9768 backward conditional
9770 2003-02-16 Alexander Larsson <alexl@redhat.com>
9772 * dbus/dbus-connection.c:
9773 Implement sent_message_with_reply. (with_reply_and block is still
9775 Made dispatch_message not lose message if OOM.
9777 * dbus/dbus-errors.h:
9778 Add NoReply error (for reply timeouts).
9780 2003-02-16 Alexander Larsson <alexl@redhat.com>
9782 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9783 Actually free keys and values when destroying hashtable.
9785 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9787 * dbus/dbus-auth.c: (client_try_next_mechanism):
9790 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9791 Return TRUE if there's no thread implementation around.
9793 * glib/dbus-gmain.c: (free_source),
9794 (dbus_connection_hookup_with_g_main):
9795 Make sure to remove the GSource when the connection is finalized.
9797 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9799 * bus/dispatch.c: (bus_dispatch_message_handler):
9800 * dbus/dbus-errors.h:
9801 Return an error if someone tries to send a message to a service
9804 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9806 * bus/activation.c: (load_directory), (bus_activation_init),
9807 (bus_activation_activate_service):
9810 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9811 More work on the activation handling.
9813 * dbus/dbus-errors.h:
9814 Add some error messages
9816 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9817 * dbus/dbus-message.h:
9818 New function that creates an error message.
9820 * dbus/dbus-protocol.h:
9821 Add ACTIVATE_SERVER message.
9823 * dbus/dbus-server-unix.c: (unix_handle_watch),
9824 (_dbus_server_new_for_domain_socket):
9825 Call _dbus_fd_set_close_on_exec.
9827 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9828 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9829 (_dbus_fd_set_close_on_exec):
9830 * dbus/dbus-sysdeps.h:
9831 Add _dbus_fd_set_close_on exec function. Also add function that checks
9832 that all open fds are set to close-on-exec and warns otherwise.
9834 * dbus/dbus-transport-unix.c:
9835 (_dbus_transport_new_for_domain_socket):
9836 Call _dbus_fd_set_close_on_exec.
9838 2003-02-16 Havoc Pennington <hp@pobox.com>
9840 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9841 allow people to avoid setting SIGPIPE to SIG_IGN
9842 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9843 we've been asked not to
9845 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9847 * dbus/dbus-list.c: (_dbus_list_append_link),
9848 (_dbus_list_prepend_link):
9849 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9853 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9856 * bus/activation.c: (bus_activation_entry_free),
9857 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9859 * bus/main.c: (main):
9860 Add simple activation support, doesn't work yet though.
9862 2003-02-15 Zack Rusin <zack@kde.org>
9864 * qt/dbus-qthread.cpp: small casting fix
9866 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9868 * dbus/dbus-errors.c: (dbus_set_error):
9869 * dbus/dbus-errors.h:
9870 Add a few errors and make dbus_set_error void.
9872 * dbus/dbus-sysdeps.c:
9873 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9874 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9875 * dbus/dbus-sysdeps.h:
9876 Add _dbus_spawn_async.
9878 * test/spawn-test.c: (main):
9879 Test for _dbus_spawn_async.
9881 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9883 * dbus/dbus-internals.h:
9884 Fix build without tests.
9886 * dbus/dbus-list.c: (alloc_link):
9887 Fix a segfault when a malloc fails.
9889 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9890 (dbus_malloc0), (dbus_realloc):
9891 Add support for malloc debugging.
9893 2003-02-15 Alexander Larsson <alexl@redhat.com>
9895 * dbus/dbus-threads.c:
9896 * dbus/dbus-threads.h:
9897 Add condvars. Remove static mutext from API.
9898 Implement static mutexes by initializing them from threads_init.
9900 * glib/dbus-gthread.c:
9901 * qt/dbus-qthread.cpp:
9902 Update with the thread api changes.
9907 Turn StaticMutex into normal mutex + init function.
9908 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9909 _dbus_list_append_link, _dbus_list_prepend_link
9912 * dbus/dbus-sysdeps.c:
9913 * dbus/dbus-sysdeps.h:
9914 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9915 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9917 * dbus/dbus-protocol.h:
9918 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9920 * dbus/dbus-message.c:
9921 Make ref/unref atomic.
9924 * dbus/dbus-connection-internal.h:
9925 * dbus/dbus-connection.c:
9926 * dbus/dbus-connection.h:
9928 Change _peek to _borrow,_return & _steal_borrowed.
9929 Change disconnect callback to event.
9930 Make dbus_connection_dispatch_messages reentrant.
9932 * dbus/dbus-transport.c:
9933 Don't ref the connection on calls to the transport
9936 * dbus/dbus-message-handler.c:
9939 * glib/dbus-gmain.c:
9940 Don't use peek_message anymore
9943 * test/debug-thread.c:
9944 * test/debug-thread.h:
9945 Simple thread implementation that asserts() on deadlocks in
9946 single-threaded code.
9949 (main) Call debug_threads_init.
9952 Use disconnect message instead of disconnect callback.
9956 Don't call dbus_connection_set_disconnect_function. Instead export
9957 bus_connection_disconnect.
9960 Call bus_connection_disconnect when we get a disconnected message.
9962 2003-02-15 Havoc Pennington <hp@pobox.com>
9964 * dbus/dbus-message.c (dbus_message_new): fool around with the
9967 2003-02-14 Havoc Pennington <hp@pobox.com>
9969 * dbus/dbus-mempool.c: fail if the debug functions so indicate
9971 * dbus/dbus-memory.c: fail if the debug functions indicate we
9974 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9975 (_dbus_decrement_fail_alloc_counter): debug functions to
9976 simulate memory allocation failures
9978 2003-02-14 Havoc Pennington <hp@pobox.com>
9980 * dbus/dbus-errors.h (struct DBusError): add a word of padding
9983 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9985 * bus/driver.c: (bus_driver_handle_hello):
9987 * bus/services.c: (bus_service_lookup):
9988 Reorder message sending so we get a more sane order.
9990 * test/bus-test.c: (message_handler):
9993 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9995 * bus/driver.c: (bus_driver_send_service_deleted),
9996 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9997 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9998 (bus_driver_send_welcome_message),
9999 (bus_driver_handle_list_services),
10000 (bus_driver_handle_acquire_service),
10001 (bus_driver_handle_service_exists):
10002 * dbus/dbus-bus.c: (dbus_bus_register_client),
10003 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10004 * dbus/dbus-errors.c: (dbus_result_to_string):
10005 * dbus/dbus-errors.h:
10006 * dbus/dbus-message.c: (dbus_message_append_args),
10007 (dbus_message_append_args_valist), (dbus_message_get_args),
10008 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10009 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10010 (dbus_message_iter_get_byte_array),
10011 (dbus_message_iter_get_string_array), (message_iter_test),
10012 (check_message_handling), (_dbus_message_test):
10013 * dbus/dbus-message.h:
10014 * test/bus-test.c: (main):
10015 Change fields to arguments in messages, so that they won't be
10016 confused with header fields.
10018 * glib/test-dbus-glib.c: (main):
10019 Remove append_fields from hello message.
10021 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10023 * dbus/dbus-errors.c:
10024 * dbus/dbus-message.c:
10025 * dbus/dbus-string.c:
10026 Documentation fixes.
10028 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10030 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10032 Implement support for timeouts in dbus-glib.
10034 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10036 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10037 * dbus/dbus-message.c: (process_test_subdir):
10038 * test/break-loader.c: (find_breaks_based_on):
10039 Plug some memory leaks.
10041 2003-02-13 Richard Hult <rhult@codefactory.se>
10043 * bus/main.c: Fix build.
10045 * dbus/dbus-errors.h:
10046 * dbus/dbus-errors.c: Fix copyright for Anders.
10048 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10053 * bus/connection.c: (bus_connection_foreach):
10056 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10057 (unescape_string), (new_section), (parse_section_start),
10058 (parse_key_value), (report_error), (bus_desktop_file_load),
10059 (bus_desktop_file_get_string):
10060 * bus/desktop-file.h:
10061 Use DBusError for error reporting.
10063 * bus/dispatch.c: (send_one_message),
10064 (bus_dispatch_message_handler):
10065 * bus/driver.c: (bus_driver_send_service_deleted),
10066 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10067 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10068 (bus_driver_send_welcome_message),
10069 (bus_driver_handle_list_services),
10070 (bus_driver_handle_acquire_service),
10071 (bus_driver_handle_service_exists):
10072 * bus/loop.c: (bus_loop_run):
10074 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10076 * bus/utils.c: (bus_wait_for_memory):
10078 New files with general utility functions.
10080 * dbus/dbus-internals.h:
10081 Remove _DBUS_HANDLE_OOM.
10083 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10085 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10086 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10087 * dbus/dbus-errors.h:
10088 Add DBusError structure.
10090 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10092 * test/data/valid-messages/standard-acquire-service.message:
10093 * test/data/valid-messages/standard-hello.message:
10094 * test/data/valid-messages/standard-list-services.message:
10095 * test/data/valid-messages/standard-service-exists.message:
10096 Add some standard messages.
10098 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10100 * bus/driver.c: (bus_driver_send_welcome_message),
10101 (bus_driver_handle_list_services),
10102 (bus_driver_handle_acquire_service),
10103 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10104 Update for API changes in libdbus.
10106 * dbus/dbus-message.c: (dbus_message_new_reply):
10107 * dbus/dbus-message.h:
10108 Remove the name argument. The spec states that replies shouldn't
10111 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10113 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10114 (report_error), (bus_desktop_file_load), (lookup_section),
10115 (lookup_line), (bus_desktop_file_get_raw),
10116 (bus_desktop_file_get_string):
10117 * bus/desktop-file.h:
10118 Some fixes, and new functions for getting a key value from a section.
10120 2003-02-13 Havoc Pennington <hp@pobox.com>
10122 * test/data/auth/fail-after-n-attempts.auth-script: new test
10124 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10127 2003-02-13 Havoc Pennington <hp@pobox.com>
10129 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10130 dbus_credentials_match were backward
10132 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10133 NO_CREDENTIALS and ROOT_CREDENTIALS
10135 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10136 into here. Never process more commands after we've reached an
10137 end state; store further data as unused bytes.
10139 * test/data/auth/*: add more auth tests
10141 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10142 command to match exact string and EXPECT_UNUSED to match unused
10145 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10147 2003-02-12 Havoc Pennington <hp@pobox.com>
10149 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10150 \r off of popped lines
10152 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10155 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10158 2003-02-12 Havoc Pennington <hp@pobox.com>
10160 * dbus/Makefile.am: remove break-loader from the build, since it
10163 * configure.in: add --enable-gcov to turn on coverage profiling
10164 flags and disable optimization
10166 2003-02-10 Havoc Pennington <hp@pobox.com>
10168 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10169 initial cut at test framework for DBusAuth from laptop.
10170 Doesn't quite work yet but it compiles and I need to get
10171 it off the 266mhz laptop. ;-)
10173 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10174 fix a memleak in error case
10176 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10179 * bus/desktop-file.c:
10180 * bus/desktop-file.h:
10181 Add a desktop file parser.
10183 2003-02-11 Zack Rusin <zack@kde.org>
10185 * qt/message.[h|cpp]: sample implementation
10186 of the KDE wrapper for DBusMessage
10188 2003-02-09 Zack Rusin <zack@kde.org>
10190 * test/bus-test.c: make_it_compile
10191 * doc/dbus-specification.sgml: minimal semantic fix
10193 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10199 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10201 * dbus/Makefile.am:
10202 * dbus/dbus-break-loader.c:
10203 * test/Makefile.am:
10204 * test/break-loader.c:
10205 Move dbus-break-loader to test/ and rename it to break-loader.
10207 2003-02-02 Havoc Pennington <hp@pobox.com>
10209 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10210 for code to manage cookies in your home directory
10212 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10214 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10215 to authenticate, then disconnect the client.
10217 2003-02-03 Alexander Larsson <alexl@redhat.com>
10219 * dbus/dbus-message.c (dbus_message_append_fields):
10222 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10224 * doc/dbus-specification.sgml:
10225 Update address format section.
10227 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10229 * test/Makefile.am:
10230 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10231 (message_handler), (new_connection_callback), (loop_quit),
10232 (loop_run), (main):
10235 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10237 * bus/driver.c: (bus_driver_handle_service_exists):
10238 Simplify the code a bit.
10240 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10243 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10246 Add libdbus-daemon.la and link to it.
10248 2003-02-01 James Willcox <jwillcox@gnome.org>
10250 * bus/driver.c: (bus_driver_handle_own_service):
10251 Actually include the service reply code in the message.
10253 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10255 * bus/driver.c: (bus_driver_handle_service_exists):
10256 Don't unref the incoming message.
10258 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10260 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10262 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10264 * dbus/dbus-server.c: (dbus_server_listen):
10265 * dbus/dbus-transport.c: (_dbus_transport_open):
10266 ifdef out the calls to the debug transport and server.
10268 2003-02-02 Alexander Larsson <alexl@redhat.com>
10270 * dbus/dbus-watch.c (dbus_watch_get_flags):
10271 Add note in the docs that ERROR or HANGUP won't be returned
10272 and are assumed always on.
10274 * glib/dbus-gmain.c (add_watch):
10275 Always add IO_ERR | IO_HUP
10277 * dbus/dbus-message.h:
10278 Add semicolon after dbus_message_iter_get_string_array().
10279 Makes qt code build again
10281 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10283 * bus/driver.c: (create_unique_client_name),
10284 (bus_driver_handle_hello):
10285 Don't take a name, just use a numeric id to identify
10288 * dbus/Makefile.am:
10289 * dbus/dbus-bus.c: (dbus_bus_register_client),
10290 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10292 Add new convenience functions for communicating with the bus.
10294 * dbus/dbus-message.h:
10296 * dbus/dbus-protocol.h:
10299 2003-02-01 Alexander Larsson <alexl@redhat.com>
10301 * dbus/dbus-message.c (dbus_message_append_fields):
10302 Add some more doc comments.
10304 2003-02-01 Havoc Pennington <hp@pobox.com>
10306 * dbus/dbus-break-loader.c (randomly_modify_length): change
10307 a 4-byte value in the message as if it were a length
10309 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10310 execute bit on saved files
10312 2003-02-01 Havoc Pennington <hp@pobox.com>
10314 * dbus/dbus-break-loader.c (main): new program to find messages
10315 that break the loader.
10317 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10318 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10320 * dbus/dbus-string.c (_dbus_string_set_byte): new
10322 2003-01-31 Havoc Pennington <hp@pobox.com>
10324 * dbus/dbus-message.c: refactor the test code to be more general,
10325 in preparation for writing a "randomly permute test cases to
10326 try to break the loader" program.
10328 2003-01-31 Havoc Pennington <hp@pobox.com>
10330 * doc/dbus-specification.sgml: work on the specification
10332 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10333 the protocol version of the message.
10335 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10336 no longer specifies that.
10337 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10340 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10341 "break" for DBUS_TYPE_NIL, remove @todo
10343 2003-01-31 Havoc Pennington <hp@pobox.com>
10345 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10346 just set_is_error/get_is_error as this is a commonly-used
10347 function, and write docs.
10349 2003-01-31 Anders Carlsson <andersca@codefactory.se>
10351 * dbus/dbus-address.c: (dbus_address_entry_free):
10352 Free key and value lists.
10354 * dbus/dbus-internals.c: (_dbus_type_to_string):
10355 Add the types we didn't have.
10357 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10358 (_dbus_marshal_validate_arg):
10361 * dbus/dbus-message.c: (dbus_message_set_sender):
10362 Remove todo about being able to set sender to NULL.
10364 (dbus_message_set_is_error_reply),
10365 (dbus_message_get_is_error_reply):
10366 * dbus/dbus-message.h:
10369 * dbus/dbus-protocol.h:
10370 Add error reply flag.
10372 * test/data/valid-messages/opposite-endian.message:
10373 Add NIL type to test.
10375 2003-01-31 Havoc Pennington <hp@pobox.com>
10377 * doc/dbus-specification.sgml: fully specify the header. Add
10378 flags and major protocol version, and change header/body len to
10381 * dbus/dbus-message-builder.c (append_saved_length): append length
10384 * dbus/dbus-message.c (dbus_message_create_header): change header
10385 length and body length to unsigned. Add the new fields from the
10387 (_dbus_message_loader_return_buffer): unsigned header/body len
10389 2003-01-30 Havoc Pennington <hp@pobox.com>
10391 * dbus/dbus-auth.c: rework to use only REJECTED, no
10394 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10395 use REJECTED, suggested by Mark McLoughlin
10397 2003-01-30 Havoc Pennington <hp@pobox.com>
10399 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10400 a better way to report errors here. e.g. "unix address lacks
10401 path" or something. also "no such file" when the path doesn't
10404 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10406 (dbus_parse_address): add @todo about documenting address format,
10407 and allowing , and ; to be escaped
10409 2003-01-30 Anders Carlsson <andersca@codefactory.se>
10411 * dbus/Makefile.am:
10412 Add dbus-address.[ch]
10414 * dbus/dbus-address.c: (dbus_address_entry_free),
10415 (dbus_address_entries_free), (create_entry),
10416 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10417 (dbus_parse_address), (_dbus_address_test):
10418 * dbus/dbus-address.h:
10419 New files for dealing with address parsing.
10421 * dbus/dbus-connection.c:
10422 Document timeout functions.
10424 * dbus/dbus-message.c:
10425 Document dbus_message_new_from_message.
10427 * dbus/dbus-server-debug.c:
10430 * dbus/dbus-server.c: (dbus_server_listen):
10431 Parse address and use correct server implementation.
10433 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10434 * dbus/dbus-string.h:
10435 New function with test.
10437 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10438 * dbus/dbus-test.h:
10441 * dbus/dbus-transport-debug.c:
10444 * dbus/dbus-transport.c: (_dbus_transport_open):
10445 Parse address and use correct transport implementation.
10447 2003-01-30 Havoc Pennington <hp@pobox.com>
10449 * dbus/dbus-message.c: use message->byte_order instead of
10450 DBUS_COMPILER_BYTE_ORDER throughout.
10451 (dbus_message_create_header): pad header to align the
10452 start of the body of the message to 8-byte boundary
10454 * dbus/dbus-marshal.h: make all the demarshalers take const
10455 DBusString arguments.
10457 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10458 validate message args here, so we don't have to do slow validation
10459 later, and so we catch bad messages as they are incoming. Also add
10460 better checks on header_len and body_len. Also fill in
10461 message->byte_order
10463 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10464 implemented properly)
10465 (_dbus_string_validate_nul): new function to check all-nul
10467 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10468 get_arg_end_pos and remove all validation
10469 (_dbus_marshal_validate_arg): actually do validation here.
10471 2003-01-29 Havoc Pennington <hp@pobox.com>
10473 * dbus/dbus-message.c (check_message_handling): fix assertion
10474 failure on set_client_serial
10476 2003-01-28 Havoc Pennington <hp@pobox.com>
10478 * dbus/dbus-server-debug.c: Add doc section comments
10480 * dbus/dbus-transport-debug.c: add doc section comments
10482 2003-01-28 Havoc Pennington <hp@redhat.com>
10484 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10485 the reverse order from how I had it
10486 (_dbus_string_base64_encode): reverse encoding order. I was
10487 basically byteswapping everything during encoding.
10489 2003-01-28 Anders Carlsson <andersca@codefactory.se>
10491 * dbus/dbus-connection-internal.h:
10492 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10493 (_dbus_connection_remove_timeout):
10494 Add functions for adding and removing timeouts.
10496 * dbus/dbus-message.c: (dbus_message_new_from_message):
10497 Add new function that takes a message and creates an exact
10498 copy of it, but with the refcount set to 1.
10499 (check_message_handling):
10502 * dbus/dbus-server-protected.h:
10503 * dbus/dbus-server.c: (_dbus_server_init_base),
10504 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10505 (dbus_server_set_timeout_functions):
10506 (_dbus_server_remove_timeout):
10507 New functions so that a server can add and remove timeouts.
10509 (dbus_server_listen):
10510 Add commented out call to dbus_server_debug_new.
10512 * dbus/dbus-timeout.c: (_dbus_timeout_new):
10513 Actually set the handler, doh.
10515 * dbus/dbus-transport.c: (_dbus_transport_open):
10516 Add commented out call to dbus_transport_debug_client_new.
10518 * dbus/Makefile.am:
10519 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10521 2003-01-28 Havoc Pennington <hp@pobox.com>
10523 * dbus/dbus-message.c (check_message_handling): function to check
10524 on the loaded message, iterates over it etc.
10526 2003-01-28 Havoc Pennington <hp@pobox.com>
10528 * test/Makefile.am (dist-hook): fix make distdir
10530 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10532 2003-01-27 Havoc Pennington <hp@pobox.com>
10534 * dbus/dbus-mempool.c (time_for_size): replace printf with
10537 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10538 empty lines; fix the SAVE_LENGTH stuff to be
10539 START_LENGTH/END_LENGTH so it actually works; couple other
10542 * test/Makefile.am (dist-hook): add dist-hook for .message files
10544 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10545 can be constant or locked.
10546 (_dbus_string_free): allow freeing a const string as
10547 documented/intended
10549 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10551 * dbus/dbus-test-main.c (main): take an argument which is the
10552 directory containing test data
10554 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10555 argument to this and load all the messages in test/data/
10556 checking that they can be loaded or not loaded as appropriate.
10558 2003-01-27 Anders Carlsson <andersca@codefactory.se>
10560 * bus/dispatch.c: (bus_dispatch_message_handler):
10561 Dispatch messages sent to services.
10563 * bus/driver.c: (bus_driver_send_service_deleted),
10564 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10565 (bus_driver_send_service_acquired):
10566 Add helper functions for sending service related messages.
10568 (bus_driver_send_welcome_message):
10569 Send HELLO_REPLY instead of WELCOME.
10571 (bus_driver_handle_list_services):
10572 Send LIST_SERVICES_REPLY instead of SERVICES.
10574 (bus_driver_handle_own_service),
10575 (bus_driver_handle_service_exists):
10576 New message handlers.
10578 (bus_driver_handle_message):
10579 Invoke new message handlers.
10581 (bus_driver_remove_connection):
10582 Don't remove any services here since that's done automatically
10583 by bus_service_remove_owner now.
10586 New function signatures.
10588 * bus/services.c: (bus_service_add_owner):
10589 Send ServiceAcquired message if we're the only primary owner.
10591 (bus_service_remove_owner):
10592 Send ServiceAcquired/ServiceLost messages.
10594 (bus_service_set_prohibit_replacement),
10595 (bus_service_get_prohibit_replacement):
10596 Functions for setting prohibit replacement.
10598 (bus_service_has_owner):
10599 New function that checks if a connection is in the owner queue of
10603 Add new function signatures.
10605 * dbus/dbus-list.c: (_dbus_list_test):
10606 Add tests for _dbus_list_remove_last and traversing the list backwards.
10608 * dbus/dbus-list.h:
10609 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10610 go any further, so return NULL then.
10612 * dbus/dbus-protocol.h:
10613 Add new messages, service flags and service replies.
10615 2003-01-26 Havoc Pennington <hp@pobox.com>
10617 * dbus/dbus-message-builder.c: implement, completely untested.
10619 * test/data/*: add data to be used in testing.
10620 ".message" files are our simple loadable text format.
10621 ".message-raw" will be binary dumps of messages.
10623 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10625 2003-01-26 Havoc Pennington <hp@pobox.com>
10627 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10629 * dbus/dbus-errors.c (dbus_result_to_string): add
10632 * dbus/dbus-message-builder.c: new file, will contain code to load
10633 up messages from files. Not implemented yet.
10635 2003-01-26 Havoc Pennington <hp@pobox.com>
10637 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10638 the sender by setting to NULL
10640 2003-01-26 Havoc Pennington <hp@pobox.com>
10642 The unit tests pass, but otherwise untested. If it breaks, the
10643 tests should have been better. ;-)
10645 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10648 * dbus/dbus-message.c: redo everything so we maintain
10649 message->header as the only copy of the various fields.
10650 This avoids the possibility of out-of-memory in some cases,
10651 for example dbus_message_lock() can't run out of memory anymore,
10652 and avoids extra copying. Figured I may as well go ahead and do
10653 this since it was busted for dbus_message_lock to not return
10654 failure on OOM, and dbus_message_write_header was totally
10655 unchecked for OOM. Also fixed some random other bugs.
10657 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10658 that strings are nul-terminated. Also, end_pos can be equal
10659 to string length just not greater than, I think.
10660 (_dbus_marshal_set_int32): new function
10661 (_dbus_marshal_set_uint32): new function
10662 (_dbus_marshal_set_string): new function
10664 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10665 a warning, init timeout_list to NULL
10666 (dbus_connection_send_message): don't use uninitialized variable
10669 * dbus/dbus-string.c (_dbus_string_replace_len): new function
10671 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10673 * bus/driver.c: (bus_driver_handle_hello),
10674 (bus_driver_send_welcome_message):
10677 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10679 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10680 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10681 (dbus_connection_unref):
10682 * dbus/dbus-marshal.c: (_dbus_marshal_test):
10683 * dbus/dbus-message.c: (dbus_message_unref),
10686 (dbus_message_get_fields):
10687 Remove debugging printout.
10689 (_dbus_message_loader_return_buffer):
10690 Don't store the header string.
10692 (_dbus_message_test):
10695 2003-01-26 Richard Hult <rhult@codefactory.se>
10697 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10698 the file descriptor list, since it can change under us.
10700 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10702 * glib/dbus-gmain.c: (dbus_connection_prepare),
10703 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10704 (remove_watch), (dbus_connection_hookup_with_g_main):
10705 Rewrite the glib handling to use its own GSource instead of a
10706 GIOChannel so we can catch messages put in the queue while waiting
10709 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10712 * bus/connection.c: (connection_disconnect_handler),
10713 (connection_watch_callback), (bus_connection_setup):
10714 * bus/dispatch.c: (send_one_message),
10715 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10716 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10718 * bus/driver.c: (bus_driver_send_service_deleted),
10719 (bus_driver_send_service_created), (bus_driver_handle_hello),
10720 (bus_driver_send_welcome_message),
10721 (bus_driver_handle_list_services), (bus_driver_remove_connection),
10722 (bus_driver_handle_message):
10724 Refactor code, put the message dispatching in its own file. Use
10725 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10728 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10730 * dbus/dbus-internals.h:
10731 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10733 * dbus/dbus-message.c: (dbus_message_get_sender):
10734 * dbus/dbus-message.h:
10735 Implement dbus_message_get_sender.
10737 * dbus/dbus-protocol.h:
10738 Add message and service defines.
10740 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10742 * dbus/dbus-connection.c: (dbus_connection_send_message):
10743 * dbus/dbus-message-internal.h:
10744 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10745 (dbus_message_write_header):
10746 Remove _dbus_messag_unlock and don't set the client serial on a
10747 message if one already exists.
10749 2003-01-24 Havoc Pennington <hp@pobox.com>
10751 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10754 * bus/driver.c (bus_driver_handle_list_services): fix a leak
10757 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10759 * dbus/dbus-list.c: (alloc_link), (free_link):
10760 Use a memory pool for the links.
10762 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10764 * bus/connection.c: (bus_connection_foreach):
10765 * bus/connection.h:
10766 Add new bus_connection_foreach function.
10768 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10769 Add function that broadcasts a message to all clients.
10771 (bus_driver_send_service_created), (bus_driver_handle_hello),
10772 (bus_driver_send_welcome_message),
10773 (bus_driver_handle_list_services), (bus_driver_message_handler):
10774 Implement functions that take care of listing services, and notifying
10775 clients when new services are created.
10777 * bus/services.c: (bus_services_list):
10779 Add new function that returns an array of strings with the currently
10780 registered services.
10782 * glib/dbus-glib.h:
10783 * glib/dbus-gmain.c:
10784 Update copyright year.
10786 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10788 * dbus/dbus-connection.c: (dbus_connection_send_message):
10789 Unlock the message in case it was sent earlier.
10791 (dbus_connection_send_message_with_reply_and_block):
10792 Remove the reply message from the list.
10794 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10795 Set array_len and new_pos correctly.
10797 (_dbus_marshal_test):
10798 Remove debug output.
10800 * dbus/dbus-message-internal.h:
10801 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10802 New function that returns the reply serial.
10804 (_dbus_message_unlock):
10805 New function that unlocks a message and resets its header.
10807 (dbus_message_append_string_array),
10808 (dbus_message_get_fields_valist),
10809 (dbus_message_iter_get_field_type),
10810 (dbus_message_iter_get_string_array),
10811 (dbus_message_get_fields),
10812 (dbus_message_append_fields_valist):
10813 Handle string arrays.
10815 (dbus_message_set_sender):
10816 Make this function public since the bus daemon needs it.
10818 (decode_header_data):
10819 Set the reply serial to -1 initially.
10821 * dbus/dbus-message.h:
10822 Add dbus_message_set_sender.
10824 2003-01-24 Havoc Pennington <hp@pobox.com>
10826 * doc/dbus-specification.sgml: add some stuff
10828 2003-01-22 Havoc Pennington <hp@pobox.com>
10830 * doc/dbus-specification.sgml: Start to document the protocol.
10832 2003-01-22 Havoc Pennington <hp@pobox.com>
10834 * dbus/dbus-connection.c
10835 (dbus_connection_send_message_with_reply_and_block): add some @todo
10837 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10839 2003-01-21 Havoc Pennington <hp@pobox.com>
10841 (patch untested because can't compile)
10843 * bus/driver.c (create_unique_client_name): make this function
10844 never recycle client names. Also, caller should initialize
10847 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10849 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10851 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10852 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10853 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10854 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10855 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10856 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10857 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10858 * dbus/dbus-marshal.h:
10859 * dbus/dbus-protocol.h:
10860 Add support for marshalling and demarshalling integer, double
10863 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10868 * bus/connection.c: (connection_disconnect_handler):
10869 Remove the connection from the bus driver's list.
10871 (connection_watch_callback): Dispatch messages.
10873 (free_connection_data): Free connection name.
10875 (bus_connection_setup): Add connection to the bus driver's list.
10876 (bus_connection_remove_owned_service):
10877 (bus_connection_set_name), (bus_connection_get_name):
10878 Add functions for setting and getting the connection's name.
10880 * bus/connection.h:
10881 Add function headers.
10883 * bus/driver.c: (create_unique_client_name),
10884 (bus_driver_handle_hello_message),
10885 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10886 (bus_driver_add_connection), (bus_driver_remove_connection):
10889 * bus/services.c: (bus_service_free):
10891 New file that handles communication and registreation with the bus
10894 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10896 * dbus/dbus-connection.c: (dbus_connection_send_message):
10897 Add a new client_serial parameter.
10899 (dbus_connection_send_message_with_reply):
10900 Remove a @todo since we've implemented the blocking function.
10902 (dbus_connection_send_message_with_reply_and_block):
10903 New function that sends a message and waits for a reply and
10904 then returns the reply.
10906 * dbus/dbus-connection.h:
10909 * dbus/dbus-errors.c: (dbus_result_to_string):
10910 * dbus/dbus-errors.h:
10911 Add new DBUS_RESULT.
10913 * dbus/dbus-message-internal.h:
10914 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10915 (_dbus_message_set_sender), (dbus_message_write_header),
10916 (dbus_message_new_reply), (decode_header_data),
10917 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10918 * dbus/dbus-message.h:
10919 Add new functions that set the reply serial and sender.
10920 Also marshal and demarshal them correctly and add test.
10922 * dbus/dbus-protocol.h:
10923 Add new DBUS_MESSAGE_TYPE_SENDER.
10925 * glib/dbus-glib.h:
10926 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10927 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10928 (dbus_connection_hookup_with_g_main):
10929 * glib/test-dbus-glib.c: (main):
10930 Rewrite to use GIOChannel and remove the GSource crack.
10932 * test/echo-client.c: (main):
10933 * test/watch.c: (check_messages):
10934 Update for changed APIs
10936 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10938 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10940 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10941 Create a DBusTimeoutList.
10942 (dbus_connection_set_timeout_functions): Add new function to
10943 set timeout callbacks
10945 * dbus/dbus-connection.h: Add public DBusTimeout API.
10947 * dbus/dbus-message.c: (dbus_message_get_service):
10948 * dbus/dbus-message.h: New function.
10950 * dbus/dbus-server.c: Fix small doc typo.
10952 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10954 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10956 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10957 of the string, just as long as specified.
10959 2003-01-19 Havoc Pennington <hp@pobox.com>
10961 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10964 * dbus/dbus-server.c (dbus_server_set_max_connections)
10965 (dbus_server_get_max_connections, dbus_server_get_n_connections):
10966 keep track of current number of connections, and add API for
10967 setting a max (but haven't implemented enforcing the max yet)
10969 2003-01-18 Havoc Pennington <hp@pobox.com>
10971 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10972 reading/writing if read_watch != NULL or write_watch != NULL.
10974 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10975 the message loader code to actually load message->header and
10976 message->body into the newly-created message.
10978 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10981 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10982 (dbus_connection_get_max_message_size)
10983 (dbus_connection_set_max_live_messages_size)
10984 (dbus_connection_get_max_live_messages_size): implement some
10985 resource limitation functions
10987 * dbus/dbus-resources.c: new file implementing some of the
10988 resource limits stuff
10990 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10991 missing docs, add @todo to handle OOM etc.
10993 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10996 2003-01-18 Havoc Pennington <hp@pobox.com>
10998 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10999 connection if it hasn't been already.
11001 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11002 replace with DisconnectFunction.
11004 2003-01-18 Havoc Pennington <hp@pobox.com>
11006 Building --disable-verbose-mode --disable-asserts --disable-tests
11007 cuts the library from 112K to 45K or so
11009 * configure.in: check for varargs macro support,
11010 add --enable-verbose-mode, --enable-asserts.
11012 * dbus/dbus-internals.h (_dbus_assert): support
11013 DBUS_DISABLE_ASSERT
11014 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11016 2003-01-18 Havoc Pennington <hp@pobox.com>
11018 * dbus/dbus-test.c: include config.h so that tests actually run
11020 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11021 so the failure mode when that assumption fails will be plenty
11024 2003-01-18 Havoc Pennington <hp@pobox.com>
11026 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11028 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11031 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11032 since we don't want to use those in make check
11034 2003-01-15 Havoc Pennington <hp@redhat.com>
11040 2003-01-15 Havoc Pennington <hp@redhat.com>
11042 * test/Makefile.am: fix so that test source code ends up in the
11043 distribution on make distcheck
11045 2003-01-15 Havoc Pennington <hp@redhat.com>
11051 2003-01-15 Havoc Pennington <hp@redhat.com>
11053 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11054 fix build when --disable-tests
11056 * Makefile.am (EXTRA_DIST): put HACKING in here
11058 * HACKING: document procedure for making a tarball release.
11060 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11062 * bus/connection.c: (connection_error_handler),
11063 (bus_connection_setup):
11064 * bus/main.c: (main):
11065 Make sure that the DBusConnectionData struct is NULLed
11066 out to prevent a segfault.
11068 * dbus/dbus-errors.c: (dbus_result_to_string):
11069 * dbus/dbus-errors.h:
11070 * dbus/dbus-message.c: (dbus_message_get_fields),
11071 (dbus_message_get_fields_valist), (_dbus_message_test):
11072 * dbus/dbus-message.h:
11073 Make dbus_message_get_fields return a result code so we can
11074 track invalid fields as well as oom.
11076 2003-01-11 Havoc Pennington <hp@pobox.com>
11078 * configure.in: change --enable-test/--enable-ansi action-if-given
11079 to enable_foo=$enableval instead of enable_foo=yes
11081 2003-01-08 Havoc Pennington <hp@pobox.com>
11083 * dbus/dbus-string.c (_dbus_string_align_length): new function
11085 * dbus/dbus-test-main.c: move main() for test app here
11087 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11088 symbol to run tests, because dbus-test isn't in the main
11091 Code review nitpicks.
11093 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11094 for people with narrow emacs ;-). Assert client_serial was filled
11095 in. Assert message->name != NULL.
11096 (dbus_message_append_fields): have "first_field_type" arg separate
11097 from va list, needed for C++ binding that also uses varargs IIRC
11098 and helps with type safety
11099 (dbus_message_new): add @todo about using DBusString to store
11100 service/name internally
11101 (dbus_message_new): don't leak ->service and ->name on OOM later
11103 (dbus_message_unref): free the service name
11104 (dbus_message_get_fields): same change to varargs
11105 i.e. first_field_type
11106 (_dbus_message_loader_return_buffer): assert that the message data
11107 is aligned (if not it's a bug in our code). Put in verbose griping
11108 about why we set corrupted = TRUE.
11109 (decode_header_data): add FIXME that char* is evil. Was going to
11110 add FIXME about evil locale-specific string.h strncmp, but just
11111 switched to wacky string-as-uint32 optimization. Move check for
11112 "no room for field name" above get_const_data_len() to avoid
11113 assertion failure in get_const_data_len if we have trailing 2
11114 bytes or the like. Check for service and name fields being
11115 provided twice. Don't leak service/name on error. Require field
11116 names to be aligned to 4 bytes.
11118 * dbus/dbus-marshal.c: move byte swap stuff to header
11119 (_dbus_pack_int32): uscore-prefix
11120 (_dbus_unpack_int32): uscore-prefix
11121 (_dbus_unpack_uint32): export
11122 (_dbus_demarshal_string): add @todo complaining about use of
11124 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11125 handling allowing corrupt data to go unchecked
11127 2003-01-08 Havoc Pennington <hp@redhat.com>
11129 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11130 to the select() as needed for authentication. (should be using
11131 _dbus_poll() not select, but for another day)
11133 * dbus/dbus.h: include dbus/dbus-protocol.h
11135 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11137 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11140 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11142 * dbus/dbus-internals.c: (_dbus_type_to_string):
11143 New function that returns a string describing a type.
11145 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11146 * dbus/dbus-marshal.h:
11147 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11148 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11149 (dbus_message_iter_get_byte_array):
11150 * dbus/dbus-message.h:
11151 Add new convenience functions for appending and getting message fields.
11152 Also add demarshalling routines for byte arrays.
11154 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11156 * dbus/dbus-connection-internal.h:
11157 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11158 (_dbus_connection_get_next_client_serial),
11159 (dbus_connection_send_message):
11160 * dbus/dbus-internals.h:
11161 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11162 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11163 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11164 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11165 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11166 (_dbus_verbose_bytes), (_dbus_marshal_test):
11167 * dbus/dbus-marshal.h:
11168 * dbus/dbus-message-internal.h:
11169 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11170 (dbus_message_write_header), (_dbus_message_lock),
11171 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11172 (dbus_message_get_name), (dbus_message_append_int32),
11173 (dbus_message_append_uint32), (dbus_message_append_double),
11174 (dbus_message_append_string), (dbus_message_append_byte_array),
11175 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11176 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11177 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11178 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11179 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11180 (decode_header_data), (_dbus_message_loader_return_buffer),
11181 (message_iter_test), (_dbus_message_test):
11182 * dbus/dbus-message.h:
11183 * dbus/dbus-protocol.h:
11184 * dbus/dbus-test.c: (main):
11185 * dbus/dbus-test.h:
11186 * glib/test-dbus-glib.c: (message_handler), (main):
11187 * test/echo-client.c: (main):
11188 * test/watch.c: (check_messages):
11189 Make messages sendable and receivable for real.
11191 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11193 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11194 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11195 * dbus/dbus-message.c: (dbus_message_append_int32),
11196 (dbus_message_append_uint32), (dbus_message_append_double),
11197 (dbus_message_append_string), (dbus_message_append_byte_array):
11198 Handle OOM restoration.
11200 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11202 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11203 (_dbus_demarshal_string), (_dbus_marshal_test):
11204 * dbus/dbus-marshal.h:
11205 * dbus/dbus-message.c: (dbus_message_get_name),
11206 Document these functions.
11208 (dbus_message_append_int32), (dbus_message_append_uint32),
11209 (dbus_message_append_double), (dbus_message_append_string),
11210 (dbus_message_append_byte_array):
11211 * dbus/dbus-message.h:
11212 Add functions for adding message fields of different types.
11214 * dbus/dbus-protocol.h:
11215 Add the different types.
11217 2003-01-05 Havoc Pennington <hp@pobox.com>
11219 * bus/connection.c: implement routines for handling connections,
11220 first thing is keeping a list of owned services on each connection
11221 and setting up watches etc.
11223 * bus/services.c: implement a mapping from service names to lists
11226 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11228 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11229 to use static mutexes for global data
11231 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11232 collection of functions to set/get application-specific data
11233 on the DBusConnection.
11235 2003-01-04 Havoc Pennington <hp@pobox.com>
11237 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11238 (_dbus_poll): new function
11240 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11243 * bus/loop.c: initial code for the daemon main loop
11245 2003-01-04 Havoc Pennington <hp@pobox.com>
11247 * test/watch.c (error_handler): make it safe if the error handler
11248 is called multiple times (if we s/error handler/disconnect
11249 handler/ we should just guarantee it's called only once)
11251 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11252 error handler on disconnect (it's quite possible we should
11253 just change the error handler to a "disconnect handler," I'm
11254 not sure we have any other meaningful errors)
11256 * configure.in: check for getpwnam_r
11258 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11259 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11260 mechanism as in SASL spec, using socket credentials
11262 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11263 (_dbus_send_credentials_unix_socket): new function
11265 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11267 (_dbus_write): only check errno if <0 returned
11268 (_dbus_write_two): ditto
11270 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11272 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11273 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11274 (_dbus_marshal_test):
11275 * dbus/dbus-marshal.h:
11276 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11277 to _dbus_marshal_utf8_string. Also fix some tests.
11279 2002-12-28 Harri Porten <porten@kde.org>
11281 * configure.in: added check for C++ compiler and a very cheesy
11282 check for the Qt integration
11284 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11286 * qt/Makefile.am: added
11288 * qt/.cvsignore: added
11290 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11291 latter, added #ifdef QT_THREAD_SUPPORT guard.
11293 * dbus/Makefile.am: added missing headers for make dist
11295 2002-12-28 Kristian Rietveld <kris@gtk.org>
11297 * dbus/Makefile.am: fixup export-symbols-regex.
11299 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11301 * acinclude.m4: Add this file and put the
11302 PKG_CHECK_MODULE macro in it.
11304 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11306 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11307 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11308 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11309 (_dbus_marshal_test):
11310 Make the demarshalling routines align the pos argument.
11311 Add string marshalling tests and fix the obvious bugs
11314 2002-12-26 Havoc Pennington <hp@pobox.com>
11316 * dbus/dbus-auth.c: fixes fixes fixes
11318 * dbus/dbus-transport-unix.c: wire up support for
11319 encoding/decoding data on the wire
11321 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11322 (_dbus_auth_decode_data): append to target string
11323 instead of nuking it.
11325 2002-12-26 Havoc Pennington <hp@pobox.com>
11327 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11328 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11331 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11332 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11333 now). Main point is because I wanted unpack_uint32 to implement
11334 _dbus_verbose_bytes
11335 (_dbus_verbose_bytes): new function
11337 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11339 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11340 mechanism to handle a corrupt message stream
11341 (_dbus_message_loader_new): fix preallocation to only prealloc,
11344 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11345 (_dbus_string_test): enhance tests for copy/move and fix the
11348 * dbus/dbus-transport-unix.c: Hold references in more places to
11349 avoid reentrancy problems
11351 * dbus/dbus-transport.c: ditto
11353 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11354 leak reference count in no-message case
11356 * test/watch.c (do_mainloop): handle adding/removing watches
11357 during iteration over the watches. Also, ref the connection/server
11358 stored on a watch, so we don't try to mangle a destroyed one.
11360 * dbus/dbus-transport-unix.c (do_authentication): perform
11363 * dbus/dbus-auth.c (get_state): add a state
11364 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11365 (_dbus_auth_get_unused_bytes): append the unused bytes
11366 to the passed in string, rather than prepend
11368 * dbus/dbus-transport.c (_dbus_transport_init_base): create
11369 the auth conversation DBusAuth
11371 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11372 (_dbus_transport_new_for_domain_socket): when creating a
11373 transport, pass in whether it's a client-side or server-side
11374 transport so we know which DBusAuth to create
11376 2002-12-03 Havoc Pennington <hp@pobox.com>
11378 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11379 _after_ finalizing the derived members
11380 (unix_connection_set): unref watch if we fail to add it
11382 * dbus/dbus-connection.c (dbus_connection_unref): delete the
11383 transport first, so that the connection owned by the
11384 transport will be valid as the transport finalizes.
11386 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11387 if necessary, and remove watches from the connection.
11389 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11391 2002-12-26 Anders Carlsson <andersca@codefactory.se>
11393 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11394 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11395 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11396 (_dbus_marshal_test):
11397 * dbus/dbus-marshal.h:
11398 Add string marshal functions and have the demarshal functions
11399 return the new position.
11401 2002-12-25 Havoc Pennington <hp@pobox.com>
11403 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11404 it is a simple protocol that just maps directly to SASL.
11406 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11407 initial implementation, not actually used yet.
11409 * dbus/dbus-string.c (_dbus_string_find): new function
11410 (_dbus_string_equal): new function
11411 (_dbus_string_base64_encode): new function
11412 (_dbus_string_base64_decode): new function
11414 2002-12-25 Anders Carlsson <andersca@codefactory.se>
11416 * dbus/Makefile.am:
11417 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11418 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11419 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11420 (_dbus_demarshal_uint32), (_dbus_marshal_test):
11421 * dbus/dbus-marshal.h:
11422 * dbus/dbus-protocol.h:
11423 * dbus/dbus-test.c: (main):
11424 * dbus/dbus-test.h:
11425 Add un-optimized marshalling/demarshalling routines.
11427 2002-12-25 Harri Porten <porten@kde.org>
11429 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11431 2002-12-24 Zack Rusin <zack@kde.org>
11433 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11434 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11437 2002-12-24 Havoc Pennington <hp@pobox.com>
11439 * glib/dbus-gthread.c: fix include
11441 * glib/dbus-glib.h: rename DBusMessageHandler for now.
11442 I think glib API needs to change, though, as you don't
11443 want to use DBusMessageFunction, you want to use the
11444 DBusMessageHandler object. Probably
11445 dbus_connection_open_with_g_main_loop()
11446 and dbus_connection_setup_g_main_loop() or something like that
11447 (but think of better names...) that just create a connection
11448 that has watch/timeout functions etc. already set up.
11450 * dbus/dbus-connection.c
11451 (dbus_connection_send_message_with_reply): new function just to
11452 show how the message handler helps us deal with replies.
11454 * dbus/dbus-list.c (_dbus_list_remove_last): new function
11456 * dbus/dbus-string.c (_dbus_string_test): free a string that
11459 * dbus/dbus-hash.c: use memory pools for the hash entries
11460 (rebuild_table): be more paranoid about overflow, and
11461 shrink table when we can
11462 (_dbus_hash_test): reduce number of sprintfs and write
11463 valid C89. Add tests for case where we grow and then
11464 shrink the hash table.
11466 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11468 * dbus/dbus-connection.c (dbus_connection_register_handler)
11469 (dbus_connection_unregister_handler): new functions
11471 * dbus/dbus-message.c (dbus_message_get_name): new
11473 * dbus/dbus-list.c: fix docs typo
11475 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11476 an object representing a handler for messages.
11478 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11480 * glib/dbus-glib.h:
11481 * glib/dbus-gthread.c: (dbus_gthread_init):
11482 Don't use the gdbus prefix for public functions.
11484 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11488 Add GLib checks and fixup .pc files
11490 * glib/Makefile.am:
11491 * glib/dbus-glib.h:
11492 * glib/dbus-gmain.c: (gdbus_connection_prepare),
11493 (gdbus_connection_check), (gdbus_connection_dispatch),
11494 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11495 (dbus_connection_gsource_new):
11496 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11497 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11498 * glib/test-dbus-glib.c: (message_handler), (main):
11501 2002-12-15 Harri Porten <porten@kde.org>
11503 * autogen.sh: check for libtoolize before attempting to use it
11505 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11508 * .cvsignore: ignore more stamp files
11510 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11512 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11513 without make install.
11515 2002-12-15 Havoc Pennington <hp@pobox.com>
11517 * dbus/dbus-threads.c: add thread stubs that a higher library
11518 layer can fill in. e.g. the GLib wrapper might fill them in with
11519 GThread stuff. We still need to use this thread API to
11520 thread-safe-ize the library.
11522 2002-12-12 Havoc Pennington <hp@pobox.com>
11524 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11525 below new interfaces and include fewer system headers.
11527 * dbus/dbus-sysdeps.c (_dbus_read): new function
11528 (_dbus_write): new function
11529 (_dbus_write_two): new function
11530 (_dbus_connect_unix_socket): new function
11531 (_dbus_listen_unix_socket): new function
11533 * dbus/dbus-message-internal.h: change interfaces to use
11536 2002-12-11 Havoc Pennington <hp@pobox.com>
11538 * dbus/dbus-types.h: add dbus_unichar
11540 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11542 * dbus/dbus-connection.c (dbus_connection_send_message): return
11545 * dbus/dbus-transport.c: include dbus-watch.h
11547 * dbus/dbus-connection.c: include dbus-message-internal.h
11549 * HACKING: add file with coding guidelines stuff.
11551 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11552 handling here, for security purposes (as in vsftpd). Not actually
11553 using this class yet.
11555 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11556 system/libc usage here, as in vsftpd, for ease of auditing (and
11557 should also simplify portability). Haven't actually moved all the
11558 system/libc usage into here yet.
11560 2002-11-25 Havoc Pennington <hp@pobox.com>
11562 * dbus/dbus-internals.c (_dbus_verbose): fix to not
11563 always print the first verbose message.
11565 2002-11-24 Havoc Pennington <hp@pobox.com>
11567 * test/echo-client.c, test/echo-server.c: cheesy test
11570 * configure.in (AC_CHECK_FUNCS): check for writev
11572 * dbus/dbus-message.c (_dbus_message_get_network_data): new
11575 * dbus/dbus-list.c (_dbus_list_foreach): new function
11577 * dbus/dbus-internals.c (_dbus_verbose): new function
11579 * dbus/dbus-server.c, dbus/dbus-server.h: public object
11580 representing a server that listens for connections.
11582 * dbus/.cvsignore: create
11584 * dbus/dbus-errors.h, dbus/dbus-errors.c:
11585 public API for reporting errors
11587 * dbus/dbus-connection.h, dbus/dbus-connection.c:
11588 public object representing a connection that
11589 sends/receives messages. (Same object used for
11590 both client and server.)
11592 * dbus/dbus-transport.h, dbus/dbus-transport.c:
11593 Basic abstraction for different kinds of stream
11594 that we might read/write messages from.
11596 2002-11-23 Havoc Pennington <hp@pobox.com>
11598 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11601 * dbus/dbus-test.c (main): add list test, and include
11602 dbus-test.h as intended
11604 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11605 (_dbus_hash_table_remove_int): return value indicates
11606 whether the entry existed to remove
11608 * dbus/dbus-list.c: add linked list utility class,
11609 with docs and tests
11611 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11614 2002-11-23 Havoc Pennington <hp@pobox.com>
11616 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11617 DBUS_END_DECLS to nothing, that should fix this once and for all
11619 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11621 * dbus/dbus-message.c, dbus/dbus-hash.c:
11622 add some missing @brief
11624 2002-11-23 Havoc Pennington <hp@pobox.com>
11626 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11627 to avoid confusing Doxygen
11629 * dbus/dbus-hash.c: @} not }@
11631 * dbus/dbus-message.c (struct DBusMessage): split out
11634 2002-11-23 Havoc Pennington <hp@pobox.com>
11636 * configure.in: pile on more warning flags if using gcc
11638 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11639 to document static functions
11641 * configure.in: add summary to end of configure so it
11642 looks nice and attractive
11644 * dbus/dbus-hash.c: finish implementation and write unit
11647 * configure.in: add --enable-tests to enable unit tests
11649 * dbus/dbus-test.c: test program to run unit tests
11650 for all files in dbus/*, initially runs a test for
11653 * dbus/dbus-internals.h: file to hold some internal utility stuff
11655 2002-11-22 Havoc Pennington <hp@redhat.com>
11657 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11658 "ported" away from Tcl
11660 * dbus/dbus-types.h: header for types such as dbus_bool_t
11662 2002-11-22 Havoc Pennington <hp@redhat.com>
11664 * dbus/dbus.h: fixups for doc warnings
11666 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11668 (QUIET): make it quiet so we can see warnings
11670 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11672 2002-11-22 Havoc Pennington <hp@redhat.com>
11674 * Makefile.am: include "Doxyfile" target in all-local
11676 * configure.in: generate the Doxyfile
11678 * Doxyfile.in: move Doxyfile here, so we can use
11679 configure to generate a Doxyfile with the right
11680 version number etc.
11682 2002-11-22 Havoc Pennington <hp@redhat.com>
11684 * dbus/dbus-message.c: move inline docs into .c file
11686 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11687 so all docs are under doc/
11688 (MAN_EXTENSION): generate man pages. Use extension
11689 ".3dbus" which matches ".3qt" on my system,
11690 I guess this is OK, I don't know really.
11691 (FILE_PATTERNS): look for .c files not .h, makes sense
11692 for plain C I think
11694 2002-11-22 Havoc Pennington <hp@pobox.com>
11696 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11697 because any app can be a server, and any app can be a client,
11698 the bus is a special kind of server.
11700 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
11702 * Doxyfile : adding. Still needs Makefile rules to be generated
11703 automatically (just run "doxygen" in the toplevel dir for now to
11706 * dbus/dbus-message.h : Adding sample docs (javadoc since
11707 resembles gtk-doc a little more)
11709 * dbus/dbus.h : Adding sample docs
11711 2002-11-21 Havoc Pennington <hp@redhat.com>
11713 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11714 so we can allow ourselves to include files directly,
11715 instead of having to use dbus.h
11717 * dbus/dbus.h: fill in
11719 * dbus/dbus-message.h: sketch out a sample header file.
11720 Include griping if you include it directly instead of
11723 * dbus/dbus-macros.h: new file with macros for extern "C",
11724 TRUE/FALSE, NULL, etc.
11726 * doc/file-boilerplate.c: put include guards in here
11728 2002-11-21 Havoc Pennington <hp@redhat.com>
11730 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11732 * COPYING: include the GPL as well, and license code
11733 under both AFL and GPL.
11735 2002-11-21 Havoc Pennington <hp@redhat.com>
11737 * acconfig.h: get rid of this
11739 * autogen.sh (run_configure): add --no-configure option
11741 * configure.in: remove AC_ARG_PROGRAM to make
11742 autoconf complain less. add AC_PREREQ.
11743 add AC_DEFINE third arg.
11745 2002-11-21 Anders Carlsson <andersca@codefactory.se>
11748 Fix references so we can distcheck.
11750 2002-11-21 Havoc Pennington <hp@redhat.com>
11752 * Initial module creation