1 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
5 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
7 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
8 so distcheck doesn't fail
10 * glib/examples/Makefile.am: Add example-service.xml and
11 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
13 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
14 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
16 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
17 compiler looks in the right places during distcheck
19 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
21 * glib/example/Makefile.am: Fix a typo which cause make distcheck
24 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
26 * python/examples/example-service.py,
27 python/examples/example-signal-emitter.py: Fixed up examples
30 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
32 * python/__init__.py: Upped to version (0,42,0) because of
35 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
37 * ChangeLog: fix date in last entry
39 * configure.in, bus/system.conf.in: add the ability to configure
40 the system bus user at compiletime with the --with-dbus-user flag
41 (patch from Kristof Vansant)
43 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
45 * bus/dispatch.c, test/test-service.c: Add testcase
46 for sending messages to oneself (TODO item).
48 * python/service.py (class Object): Swap ordering of bus_name
49 and object_path parameters to better support inheritance.
51 * doc/dbus-tutorial.xml: change Python docs to reflect change
52 in parameter ordering and fix the inheritance section.
54 * doc/TODO: remove sending message to oneself TODO item
56 2005-07-15 Ross Burton <ross@openedhand.com>
59 Fix a leak when calling methods via the proxy.
61 2005-07-15 Colin Walters <walters@verbum.org>
63 * bus/selinux.c (bus_selinux_append_context): Wrap in
66 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
68 * python/_dbus.py (Bus::remove_signal_receiver):
69 don't add a callback to the match if none has been passed in
71 * python/matchrules.py (SignalMatchTree::remove): if the rule
72 being matched does not have a callback treat it as a wildcard
75 * doc/dbus-tutorial.xml: Add Python tutorial
77 2005-07-14 Colin Walters <walters@verbum.org>
80 (bus_driver_handle_get_connection_unix_security_context): New function.
81 (message_handlers): Add.
83 * bus/selinux.c (bus_selinux_append_context): New function; appends
84 security context to message.
86 * bus/selinux.h: Prototype.
88 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
90 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
92 * bus/activation.c: clean up all tabs to be 8 spaces
93 (bus_activation_activate_service): make sure we clean up
96 * bus/dispatch.c: clean up all tabs to be 8 spaces
97 (check_shell_fail_service_auto_start): New function
98 tests to make sure we get fail properly when trying to auto start a service
99 with a faulty command line
100 (check_shell_service_success_auto_start): New function tests to make sure
101 auto started services get the arguments on the command line
103 * test/test-shell-service.c: Added service for testing auto-starting with
104 command line arguments
106 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
107 test/data/valid-service-files/debug-shell-echo-success.service.in:
108 Added service files for testing auto-starting with command line arguments
110 * */.cvsignore: added a bunch of generated files to various .cvsignore files
112 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
114 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
116 * dbus/Makefile.am: added new files to build.
118 * bus/activation.c (bus_activation_activate_service): support
119 activation commands with parameters.
121 * test/shell-test.c: added test program for the shell parsing
124 2005-07-13 David Zeuthen <davidz@redhat.com>
126 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
127 64 bit signed and unsigned parameters
129 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
131 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
133 * python/service.py (class Name): renamed BusName to make it clearer
134 what the object is for (a name on the bus)
136 * python/examples/example-service.py,
137 python/examples/example-signal-emitter.py: change the Name object to
140 2005-07-12 Colin Walters <walters@verbum.org>
142 Patch from Jim Gettys <Jim.Gettys@hp.com>.
144 * tools/dbus-launch.c: Include sys/select.h.
146 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
147 * python/dbus_bindings.pyx.in: removed
149 * python/dbus_bindings.pyx: Added.
150 - Fixed some memleaks (patch from
151 Sean Meiners <sean.meiners@linspireinc.com>)
152 - Broke out the #include "dbus_h_wrapper.h" and put it in its
153 own pxd file (Pyrex definition)
154 - Broke out glib dependancies into its own pyx module
156 * python/dbus_bindings.pdx: Added.
157 - Defines C class Connection for exporting to other modules
159 * python/dbus_glib_bindings.pyx: Added.
160 - New module to handle lowlevel dbus-glib mainloop integration
162 * python/glib.py: Added.
163 - Registers the glib mainloop when you import this module
165 * python/services.py: Removed (renamed to service.py)
167 * python/service.py: Added.
168 - (class Server): renamed Name
170 * python/__init__.py: Bump ro version (0,41,0)
171 -don't import the decorators or service module
172 by default. These now reside in the dbus.service namespace
174 * python/_dbus.py (Bus::__init__): Add code run the main loop
175 setup function on creation
177 * python/examples/example-service.py,
178 python/examples/example-signal-emitter.py: update examples
180 * python/examples/gconf-proxy-service.py,
181 python/examples/gconf-proxy-service2.py: TODO fix these up
184 - Added a Python Bindings 1.0 section
185 - added "Add match on args or match on details to match rules"
188 2005-07-12 Colin Walters <walters@verbum.org>
190 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
191 (statemachine-glue.h):
192 * glib/examples/Makefile.am (example-service-glue.h)
193 (example-signal-emitter-glue.h):
194 * glib/Makefile.am (dbus-glib-error-switch.h):
195 Add libtool --mode=execute so we use the built library instead
196 of any installed one.
198 2005-07-11 Colin Walters <walters@verbum.org>
200 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
201 (dbus_g_value_types_init): Remove assertion.
202 (dbus_g_value_get_g_type, dbus_g_value_open)
203 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
204 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
205 functions related to DBusGValue. Now we marshal/demarshal
206 structures as GValueArray.
207 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
209 (signature_iter_to_g_type_array): Don't call
210 signature_iter_to_g_type_struct.
211 (signature_iter_to_g_type_struct): Delete.
212 (dbus_gvalue_to_signature): Delete.
213 (dbus_gvalue_to_signature): New function with same name as other
214 one; we can convert structures to signatures.
215 (demarshal_valuearray): New function.
216 (get_type_demarshaller): Use it.
217 (demarshal_recurse): Delete.
218 (marshal_proxy): New function.
219 (marshal_map): Warn if we can't determine signature from type.
220 (marshal_collection_ptrarray): Ditto.
221 (marshal_collection_array): Ditto.
222 (get_type_marshaller): Use marshal_valuearray.
223 (marshal_recurse): Delete.
224 (_dbus_gvalue_test): Add some tests.
226 * dbus/dbus-glib.h (struct _DBusGValueIterator):
227 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
228 (dbus_g_value_open, dbus_g_value_iterator_get_value)
229 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
230 (dbus_g_value_free): Remove prototypes.
232 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
235 * glib/examples/example-service.c:
236 * glib/examples/example-client.c: Implement GetTuple.
238 * test/glib/test-dbus-glib.c:
239 * test/glib/test-service-glib.c:
240 * test/glib/test-service-glib.xml: Add structure tests.
242 2005-07-10 Colin Walters <walters@verbum.org>
244 * doc/TODO: Knock off some GLib items with this patch.
246 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
247 (_dbus_gvalue_signals_error): New functions.
249 * glib/dbus-gvalue-utils.h: Prototype them.
251 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
252 and change to not output const/retval flags for input args. All
254 (invoke_object_method): Refactor to handle return values. Add
255 some more comments in various places. Remove debug g_print.
257 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
259 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
261 (compute_gsignature): New function; refactored from code from
262 compute_marshaller and compute_marshaller_name. Enhance to
263 handle return values and async ops more cleanly. Update for
264 async ops returning NONE instead of BOOLEAN.
265 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
266 and output appropriate string.
267 (generate_glue): Handle return value annotation. Also don't dump
268 constness flag for input arguments.
270 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
271 files shared between installed library and utilities.
272 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
273 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
274 binding tool can access gtype utility functions.
276 * test/glib/test-service-glib.c:
277 * test/glib/test-service-glib.xml:
278 * test/glib/test-dbus-glib.c: Add some tests for return values.
280 2005-07-09 Colin Walters <walters@verbum.org>
282 * glib/dbus-gparser.c (parse_annotation): Add annotations to
283 argument if available, not method.
285 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
286 (invoke_object_method): First, remove some redundant
287 GValues (object_value, error_value) in favor of working on
288 array directly. Second, rework constness to be less buggy.
289 Now we iterate directly over the argument metadata instead
290 of parallel iterating over output signature and metadata.
292 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
294 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
295 annotation on input args.
297 2005-07-09 Colin Walters <walters@verbum.org>
299 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
302 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
305 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
306 (method_dir_signature_from_object_info): Handle arg_iterate change.
307 (write_interface): Ditto.
308 (lookup_object_info): Don't barf if format_version is > 0.
309 (invoke_object_method): Handle arg constness.
311 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
312 (arg_info_new): Create.
313 (arg_info_unref): Destroy.
314 (arg_info_get_annotations, arg_info_get_annotation)
315 (arg_info_add_annotation): New functions.
317 * glib/dbus-gidl.h: Prototype them.
319 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
320 args, disallow them in properties.
321 (parse_annotation): Handle arg annotations.
323 * test/glib/test-service-glib.xml:
324 * test/glib/test-service-glib.c: Update to make some methods
327 2005-07-08 Colin Walters <walters@verbum.org>
329 * test/glib/test-service-glib.xml:
330 * test/glib/test-service-glib.c:
331 * test/glib/test-dbus-glib.c: Test a{sv}.
333 * glib/examples/statemachine/statemachine.c:
334 * glib/examples/statemachine/statemachine-server.c:
335 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
336 add progress bar, etc.
338 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
339 needed anymore due to generic array/map marshalling.
340 (dbus_g_value_types_init): Don't register basic arrays or the
342 (dbus_gtype_from_signature_iter): Don't try to recurse into
344 (dbus_gtype_to_signature): Check collection/map before type
346 (demarshal_garray_basic): Renamed to demarshal_collection_array.
347 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
348 generic map creation/append functions instead of hash table
350 (get_type_demarshaller): Handle maps.
351 (demarshal_collection): Dispatch on collection type to either
352 demarshal_collection_ptrarray or demarshal_collection_array.
353 (get_type_marshaller): Handle maps.
354 (marshal_collection): Dispatch collection type to either
355 marshal_collection_ptrarray or marshal_collection_array.
356 (_dbus_gvalue_test): New test.
358 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
359 (hash_free_from_gtype): Use it to free GValues.
360 (hashtable_append): New function.
361 (ptrarray_append): Fix prototype.
362 (slist_append): Ditto.
363 (_dbus_gvalue_utils_test): Extend tests.
365 * glib/dbus-gtype-specialized.c
366 (dbus_g_type_specialized_init_append): Renamed from
367 dbus_g_type_specialized_collection_init_append. Remove const from
368 value, since we steal it.
369 (dbus_g_type_specialized_map_append): New function.
371 * glib/dbus-gtype-specialized.h: Update prototypes.
372 Add DBusGTypeSpecializedMapAppendFunc.
374 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
377 * glib/dbus-gtest.h: Prototype it.
379 2005-07-08 Ross Burton <ross@openedhand.com>
382 Add DBysGAsyncData for the async bindings.
384 * glib/dbus-binding-tool-glib.c:
385 Re-enable the async bindings.
387 * test/glib/test-dbus-glib.c:
388 Add a test for the generated async bindings.
390 2005-07-08 Colin Walters <walters@verbum.org>
392 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
395 2005-07-08 Colin Walters <walters@verbum.org>
397 * tools/Makefile.am: Kill of print-introspect in favor of using
398 dbus-send --print-reply=literal.
400 * test/glib/test-service-glib.xml:
401 * test/glib/test-service-glib.c (my_object_get_objs): New test
404 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
405 (main): Test GetObjs.
407 * glib/examples/statemachine/Makefile.am:
408 * glib/examples/statemachine/sm-marshal.list:
409 * glib/examples/statemachine/statemachine-client.c:
410 * glib/examples/statemachine/statemachine-server.c:
411 * glib/examples/statemachine/statemachine-server.xml:
412 * glib/examples/statemachine/statemachine.c:
413 * glib/examples/statemachine/statemachine.h:
414 * glib/examples/statemachine/statemachine.xml:
418 * glib/examples/example-service.c (main): Move invocation
419 of dbus_g_object_type_install_info earlier, to emphasize it
420 should only be done once.
422 * glib/examples/example-signal-emitter.c (main): Ditto.
424 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
426 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
427 (dbus_gvalue_marshal): Update prototypes.
429 * glib/dbus-gvalue.c: Update all marshalling functions to take
430 const GValue instead of GValue.
431 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
433 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
435 (dbus_gtype_to_signature): Handle generic collecitons and maps.
436 Return a newly-allocated string.
437 (demarshal_proxy, demarshal_object_path, demarshal_object)
438 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
439 we get the wrong types from message.
440 (get_type_demarshaller): New function, extracted from
441 dbus_gvalue_demarshal.
442 (demarshal_collection): New function, demarshals generic
444 (dbus_gvalue_demarshal): Just invoke result of
445 get_type_demarshaller. Throw error if we don't have one.
446 (marshal_garray_basic): Abort on OOM.
447 (get_type_marshaller): New function, extracted from
449 (collection_marshal_iterator, marshal_collection): New functions;
450 implements generic marshalling for an iteratable specialized
452 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
454 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
456 (ptrarray_value_from_gvalue): Ditto.
457 (ptrarray_append, ptrarray_free): New functions.
458 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
459 (slist_append, slist_end_append, slist_free): New functions.
460 (dbus_g_type_specialized_builtins_init): Add append fuctions
461 for GPtrArray and GSList. Register GSList.
462 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
464 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
466 (dbus_g_type_specialized_collection_init_append)
467 (dbus_g_type_specialized_collection_append)
468 (dbus_g_type_specialized_collection_end_append): Prototype.
469 (DBusGTypeSpecializedCollectionVtable): Add append_func and
472 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
473 (dbus_g_type_specialized_collection_append)
474 (dbus_g_type_specialized_collection_end_append): New functions.
475 (dbus_g_type_map_value_iterate): Take const GValue.
476 (dbus_g_type_collection_value_iterate): Ditto.
478 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
479 _dbus_gvalue_utils_test.
481 * glib/dbus-gtest.h: Prototype it.
483 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
484 using uninitialized owner_list.
485 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
487 (dbus_g_proxy_end_call_internal): Update to use error set
488 from dbus_gvalue_demarshal instead of setting it here.
489 (dbus_g_proxy_begin_call): Move return_if_fail here.
491 * glib/dbus-gobject.c (write_interface): Update for
492 dbus_gtype_to_signature returning new string.
494 * configure.in: Add glib/examples/statemachine.
496 2005-07-08 Joe Shaw <joeshaw@novell.com>
498 * configure.in: Add a configure option, --with-console-auth-dir
500 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
501 new setting. Patch from Kay Sievers.
503 2005-07-06 Colin Walters <walters@verbum.org>
505 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
506 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
507 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
508 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
509 Delete in favor of dbus_g_proxy_begin_call and
510 dbus_g_proxy_cancel_call.
511 (DBusGProxyCall, DBusGProxyCallNotify): New.
512 (dbus_g_proxy_begin_call): Change prototype to take callback, user
513 data, and destroy function. This replaces
514 dbus_g_pending_call_set_notify.
515 (dbus_g_proxy_cancel_call): Prototype.
516 (DBusGAsyncData): Delete, shouldn't be needed anymore.
518 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
520 (struct _DBusGProxyManager): Add bus_proxy member, which is an
521 internal proxy for calls to the bus. Remove
522 pending_nameowner_calls, now the internal proxy keeps track.
523 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
524 pending_nameowner_calls.
525 (got_name_owner_cb): Update prototype, and use
526 dbus_g_proxy_end_call.
527 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
528 (dbus_g_proxy_manager_register): Delete directly libdbus code in
529 favor of using internal proxy.
530 (dbus_g_proxy_manager_unregister): Update to use
531 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
532 (dbus_g_proxy_init): Initialize pending calls map.
533 (dbus_g_proxy_constructor): New.
534 (dbus_g_proxy_class_init): Add get/set property functions,
535 constructor, and add NAME, PATH, and INTERFACE properties.
536 (cancel_pending_call): New function.
537 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
539 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
540 (GPendingNotifyClosure): New structure.
541 (d_pending_call_notify, d_pending_call_free): Moved here from
543 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
545 (manager_begin_bus_call): New internal function for talking to
547 (dbus_g_proxy_new): Construct object using GObjet properties.
548 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
549 Create closure of same, and insert call into map of pending calls.
550 (dbus_g_proxy_end_call_internal): Take call id instead of pending
551 call. Look up pending call in current set. Remove it when we've
553 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
554 (dbus_g_proxy_begin_call): Change API to take callback, user data,
555 and destroy function directly.
556 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
557 (dbus_g_proxy_call): Invoke with NULL callback.
558 (dbus_g_proxy_cancel_call): New function, replaces
559 dbus_g_pending_call_cancel.
561 * glib/dbus-gparser.c (validate_signature): Fix call to
564 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
565 New quark for attaching metadata to GType.
567 (lookup_object_info): Look up using quark.
568 (dbus_g_object_type_install_info): Check that a type is classed,
569 not that it's an object. Also just install type data using quark
570 instead of using global hash.
572 * glib/dbus-glib.c (dbus_g_pending_call_ref)
573 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
574 (GPendingNotifyClosure): Delete.
575 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
576 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
578 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
579 client method generation until we can fix it...
581 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
582 (load_from_service_thread_func): Ditto.
584 * tools/dbus-names-model.c (struct NamesModel): Hold
586 (have_names_notify): Update prototype, use
587 dbus_g_proxy_cancel_call.
588 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
590 * tools/dbus-monitor.c (filter_func): Update for print_message
593 * test/glib/test-dbus-glib.c: Add more tests for async
594 invocations. Update many begin_call/end_call pairs to just use
597 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
598 allows us to dump print-introspect.c.
600 * tools/dbus-print-message.h (print_message): Add literal argument
601 to print_message which is intended to allow printing arguments without
602 metadata like "string=".
604 * tools/dbus-print-message.c (print_iter): Add literal argument.
605 (print_message): Allow printing string messages literally.
607 2005-07-05 Colin Walters <walters@verbum.org>
609 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
610 Remove value refcount leak, original patch from Jorn Baayen
611 <jorn@openedhand.com>. Also remove useless extra value in favor
612 of prepending to value array directly.
614 2005-07-02 Colin Walters <walters@verbum.org>
616 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
618 2005-07-01 Colin Walters <walters@verbum.org>
620 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
622 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
623 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
624 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
625 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
627 2005-06-30 Colin Walters <walters@verbum.org>
629 * test/glib/test-dbus-glib.c:
630 * test/glib/test-service-glib.c:
631 * test/glib/test-service-glib.xml: Update tests for new error
632 setting bits, also add async tests (patch from Ross Burton).
634 * test/glib/Makefile.am (test_service_glib_LDADD): Add
635 DBUS_GLIB_THREADS_LIBS.
637 * glib/dbus-gproxy.c (get_name_owner)
638 (dbus_g_pending_call_end_valist): Ditto.
640 * glib/dbus-gobject.c (error_metadata): New mapping from GError
641 domain (GQuark) to DBusGErrorInfo.
642 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
643 quark in error_metadata. Take message interface as default
644 error message interface.
645 (gerror_to_dbus_error_message): Pass message interface.
646 (dbus_set_g_error): Resurrected.
647 (dbus_g_error_info_free): New function.
648 (dbus_g_object_type_install_info): Use g_type_class_ref instead
649 of _peek to actually create the object class if it hasn't been
651 (dbus_g_error_domain_register): New function.
653 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
655 * glib/dbus-gparser.c (validate_signature): Ditto.
657 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
658 (dbus_g_error_domain_register): Prototype.
660 * glib/dbus-glib.c (dbus_g_error_set): Delete.
663 2005-06-29 Colin Walters <walters@verbum.org>
665 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
666 DBUS_TYPE_G_OBJECT_PATH.
668 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
669 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
670 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
671 (dbus_g_object_path_get_g_type): New function.
672 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
673 to DBUS_TYPE_G_OBJECT_PATH by default.
674 (demarshal_proxy): Remove unused name variable.
675 (demarshal_object_path, marshal_object_path): New functions.
676 (demarshal_proxy_array, marshal_proxy_array): Delete.
678 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
679 DBUS_TYPE_G_OBJECT_PATH to char *.
680 (dbus_g_type_get_lookup_function): Map builtin
681 DBUS_TYPE_G_OBJECT_PATH.
683 * test/glib/test-dbus-glib.c
684 * test/glib/test-service-glib.c (my_object_objpath):
685 Adapt tests to new object path marshalling.
687 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
689 * configure.in: force check for Python >= 2.4
691 2005-06-29 Colin Walters <walters@verbum.org>
693 Patch from Ross Burton <ross@openedhand.com>
695 * glib/dbus-gobject.c (invoke_object_method): Unset object
696 value in all cases, not only in async case.
698 2005-06-29 Colin Walters <walters@verbum.org>
700 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
701 name_call for keeping track of any outgoing GetNameOwner call.
702 Also add for_owner and associated.
703 (struct _DBusGProxyManager): Add owner_names, which is hash table
704 that maps a base name to a list of names it owns (that we're
705 interested in). Add pending_nameowner_calls which is a list of
706 all outstanding GetNameOwner; avoids us having to iterate over
707 every proxy. Add unassociated_proxies which keeps track of name
708 proxies with no associated name owner.
709 (dbus_g_proxy_manager_unref): Destroy owner_names.
710 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
712 (find_name_in_info, name_owner_foreach)
713 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
714 (dbus_g_proxy_manager_monitor_name_owner)
715 (dbus_g_proxy_manager_unmonitor_name_owner)
716 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
717 New functions; they manipulate the owner_names mapping.
718 (got_name_owner_cb): New function.
719 (get_name_owner): New function, extracted from
720 dbus_g_proxy_new_for_name_owner.
721 (dbus_g_proxy_manager_register): For now we need to keep track of
722 all NameOwnerChanged. Also if the proxy is for a name, if we
723 don't already know the name owner, queue a new GetNameOwner
724 request and add it to our list of unassociated proxies. Otherwise
726 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
727 cancel any pending GetNameOwner call, etc.
728 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
729 the owner_names mapping to look up the current names for the
730 signal source, and dispatch to any proxies for that name.
731 (dbus_g_proxy_new): Initialize new members.
732 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
733 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
734 (dbus_g_pending_call_end_valist): New function, extracted from
735 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
736 but want to use the GLib infrastructure. Also note how many
737 arguments in reply were over.
738 (dbus_g_pending_call_end): New function, just call
739 dbus_g_pending_call_end_valist.
740 (dbus_g_proxy_end_call_internal): Just call
741 dbus_g_pending_call_end_valist.
743 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
744 of builtin marshaller for STRING_STRING_STRING.
746 * test/glib/test-dbus-glib.c:
747 * test/glib/test-service-glib.c:
748 * test/glib/test-service-glib.xml:
749 Extend tests to cover name proxies, destruction of owner proxies,
752 * glib/examples/example-signal-recipient.c
753 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
755 * tools/dbus-send.c (main): Print D-BUS error name in addition
758 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
760 * python/dbus_bindings.pyx.in (cunregister_function_handler,
761 cmessage_function_handler): Patch from
762 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
763 by using the Py_GILState_Ensure/Release to synchronize with the
766 2005-06-28 Ray Strode <rstrode@redhat.com>
768 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
769 babysitter helper process on last unref, bug #2813.
771 2005-06-27 Colin Walters <walters@verbum.org>
773 * test/glib/test-dbus-glib.c:
774 * test/glib/test-service-glib.c:
775 * test/glib/test-service-glib.xml:
776 Test hash table signal emitting.
778 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
779 types to their fundamental basis types, since this is what
780 marshallers operate on. Also add an entry for VOID__BOXED.
781 (dbus_g_object_register_marshaller_array): Convert to fundamental.
783 2005-06-26 Havoc Pennington <hp@redhat.com>
785 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
788 2005-06-26 Colin Walters <walters@verbum.org>
790 * glib/dbus-glib.c (dbus_set_g_error): Delete.
791 (dbus_g_error_set): New public function from its ashes; used by
792 both service-side method implementation and GLib bindings
794 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
795 (_dbus_glib_test): Add some tests.
797 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
799 * test/glib/test-service-glib.c (my_object_throw_error): Use
802 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
803 errors thrown by dbus_g_error_set.
805 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
807 * glib/dbus-gparser.c (validate_signature): Ditto.
809 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
810 (dbus_g_proxy_end_call_internal): Ditto.
812 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
813 converts DBUS_ERROR_x to DBUS_GERROR_x.
814 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
816 * doc/TODO: Remove error TODO.
818 * doc/dbus-tutorial.xml: Update with documentation about error
821 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
822 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
823 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
825 2005-06-22 Colin Walters <walters@verbum.org>
827 Patch from Ross Burton <ross@openedhand.com>
829 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
831 2005-06-20 Colin Walters <walters@verbum.org>
833 * configure.in: Add glib/examples.
835 * glib/Makefile.am: Add examples/
837 * glib/examples/.cvsignore
838 * glib/examples/Makefile.am
839 * glib/examples/example-client.c
840 * glib/examples/example-service.c
841 * glib/examples/example-service.xml
842 * glib/examples/example-signal-emitter.c
843 * glib/examples/example-signal-emitter.xml
844 * glib/examples/example-signal-recipient.c:
845 New files; GLib binding examples, ported from
848 2005-06-20 Colin Walters <walters@verbum.org>
851 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
854 * glib/dbus-binding-tool-glib.c:
855 * doc/dbus-tutorial.xml:
856 * test/glib/test-dbus-glib.c: Update for rename.
858 2005-06-20 Colin Walters <walters@verbum.org>
860 Patch suggested by Ross Burton <ross@openedhand.com>
862 * glib/dbus-gobject.c (export_signals): Free signal name.
863 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
864 memory leak. Add a bit of documentation.
865 (dbus_g_method_return_error): Free context, and note we do
868 2005-06-18 Murray Cumming <murrayc@murrayc.com>
871 * glib/dbus-gobject.c:
872 * glib/dbus-gproxy.c:
873 * glib/dbus-gvalue.c: Predeclare structs as
874 typedef struct _Something Something instead of
875 typedef struct Something Something, so we can
876 redeclare the prototypes. Other GNOME libraries
879 2005-06-17 Colin Walters <walters@verbum.org>
881 * tools/dbus-names-model.c (have_names_notify): Fix call
882 to dbus_g_proxy_end_call.
884 2005-06-17 Colin Walters <walters@verbum.org>
886 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
887 spew warnings if we get malformed remote signals.
889 * glib/dbus-gobject.c (propsig_iterate): New function.
890 (lookup_object_info): New function, extracted from
891 lookup_object_and_method.
892 (introspect_properties, introspect_signals): Delete; these
893 are merged into write_interface.
894 (write_interface): Write out signals and properties here;
895 dump the org.gtk.object stuff and use the interface given
896 in the introspection data blob. Also fix up property XML.
897 (lookup_values): New function.
898 (introspect_interfaces): Gather a mapping from interface to a
899 list of its methods, signals, and properties, then write out
901 (lookup_object_and_method): Use lookup_object_info.
902 (struct DBusGSignalClosure): Add interface.
903 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
904 we can just use the constant data.
905 (dbus_g_signal_closure_finalize): Don't free signal name.
906 (signal_emitter_marshaller): Use interface from signal closure.
907 (export_signals): Only export signals mentioned in introspection
909 (dbus_g_connection_register_g_object): Warn if we have no
910 introspection data for an object.
911 (funcsig_equal): Remove unused variable.
912 (dbus_g_object_register_marshaller): Take varargs instead of
914 (dbus_g_object_register_marshaller_array): New function,
915 extracted from old dbus_g_object_register_marshaller.
917 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
918 signals and property data.
919 (write_quoted_string): New function, extracted from generate_glue.
920 (generate_glue): Write signals and properties to introspection
923 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
924 exported_signals and exported_properties.
925 (dbus_g_object_register_marshaller): Update prototype.
926 (dbus_g_object_register_marshaller_array): Prototype.
928 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
930 * test/glib/test-service-glib.c: Add new test signals and method
933 * test/glib/test-service-glib.xml: Add some test signals.
935 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
936 and my-object-marshal.h
937 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
939 (my-object-marshal.c, my-object-marshal.h): Implement.
941 * test/glib/.cvsignore: Update.
943 * doc/TODO: Remove two GLib TODO items fixed by this
946 2005-06-16 Colin Walters <walters@verbum.org>
948 * doc/TODO: Update for GLib bindings.
950 2005-06-16 Colin Walters <walters@verbum.org>
952 * glib/dbus-binding-tool-glib.c:
953 * glib/dbus-gobject.c:
954 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
955 from Ross Burton, for his GLib bindings work.
957 2005-06-16 Colin Walters <walters@verbum.org>
959 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
960 to iterate instead of walking to G_TYPE_INVALID.
962 Patch based on a patch from Ryan Gammon.
964 2005-06-16 Colin Walters <walters@verbum.org>
966 * bus/bus.c (bus_context_new): Set parser to NULL
967 after we unref it (Patch from Chris Boscolo, #2174).
969 2005-06-16 Colin Walters <walters@verbum.org>
971 * python/dbus_bindings.pyx.in: Import size_t,
972 __int64_t, __uint64_t, and __signed.
974 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
975 Define cmsg struct, output it.
976 (_dbus_read_credentials_unix_socket):
979 Patch from Joe Markus Clarke for FreeBSD support.
981 2005-06-16 Colin Walters <walters@verbum.org>
983 * tools/dbus-send.c (append_array): Use strtok.
984 (append_dict): New function.
985 (type_from_name): New function, extracted from main.
986 (main): Handle sending dicts.
988 * tools/dbus-print-message.c (print_iter): Print dict
991 2005-06-16 Colin Walters <walters@verbum.org>
993 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
994 values as the empty string (#2948).
996 2005-06-16 Colin Walters <walters@verbum.org>
999 * mono/doc/Makefile.am:
1000 * test/glib/Makefile.am:
1002 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1004 2005-06-16 Colin Walters <walters@verbum.org>
1006 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1007 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1009 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1010 Increment pointer after swapping fixed array. Add assertion
1013 2005-06-15 Colin Walters <walters@verbum.org>
1015 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1016 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1018 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1020 * NEWS: Update to 0.34
1022 2005-06-15 David Zeuthen <davidz@redhat.com>
1024 * configure.in (LT_CURRENT): Revert back to 1 as the library
1025 hasn't changed and we've certainly not committed to protocol
1026 stability yet. All this does is to break ABI. See commit note
1027 from hp@redhat.com 2005-05-05 for details.
1029 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1031 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1032 (_dbus_connection_run_builtin_filters): New method
1033 (dbus_connection_dispatch): Run the builtin filters which in turn
1034 runs the peer filter which handles Ping messages.
1037 - Ping isn't handled: This patch fixes it
1039 - Add a test case for the Ping message: added TODO item
1041 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1043 * dbus/dbus-message.c:
1044 (dbus_message_has_path): New method
1045 (dbus_message_has_interface): New method
1046 (dbus_message_has_member): New method
1048 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1051 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1052 the keyring directory is private to the user
1055 - The convenience functions in dbus-bus.h should perhaps have
1056 the signatures that they would have if they were autogenerated
1057 stubs. e.g. the acquire service function. We should also evaluate
1058 which of these functions to include, in light of the fact that
1059 GLib/Qt native stubs will probably also exist.: Punted
1061 - add dbus_message_has_path(), maybe has_member/interface:
1064 - in dbus-keyring.c, enforce that the keyring dir is not
1065 world readable/writable: Fixed in this patch
1067 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1069 * dbus/dbus-marshal-validate.h: Added a new validation
1070 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1071 out of memory errors when validating signitures
1073 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1074 in places where we previously used DBUS_VALID and a FALSE return
1075 value to indicate OOM
1077 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1078 Use a stack to track the number of elements inside containers. The
1079 stack values are then used to validate that dict entries have only two
1080 elements within them.
1081 (validate_body_helper): check the reason for failure when validating
1084 * dbus/dbus-message.c (load_message): use
1085 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1086 DBUS_VALID and a FALSE return value to indicate OOM
1088 * doc/TODO: remove "- validate dict entry number of fields" as this
1091 2005-06-14 David Zeuthen <davidz@redhat.com>
1093 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1094 watches (if applicable) and add new watches
1096 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1097 (main): Setup SIGIO signal handler if using D_NOTIFY
1099 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1101 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1102 (merge_included): Also merge conf_dirs list
1103 (bus_config_parser_unref): Clear conf_dirs list
1104 (include_dir): Add directory to conf_dirs list
1105 (bus_config_parser_get_conf_dirs): New function
1107 * bus/dir-watch.[ch]: New files
1109 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1111 * configure.in: Add checks for D_NOTIFY on Linux
1113 2005-06-14 Colin Walters <walters@verbum.org>
1115 * glib/dbus-binding-tool-glib.c:
1116 * glib/dbus-gobject.c:
1117 * glib/dbus-gvalue.c: Fix indentation and brace style.
1119 2005-06-14 Ross Burton <ross@openedhand.com>.
1121 * glib/dbus-glib.h: Make DBusGMethodInvocation
1122 a private structure. Rearrange prototypes a bit.
1124 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1125 documentation for first_arg_type.
1127 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1128 here, add documentation. Move dbus_g_method_return
1129 and dbus_g_method_return_error into public API
1132 2005-06-14 Colin Walters <walters@verbum.org>
1134 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1135 Add missing return statements, noticed by Ross Burton.
1137 2005-06-13 Ross Burton <ross@openedhand.com>.
1139 * glib/dbus-gobject.c: Handle errors on message
1140 demarshalling by sending error message back.
1141 * glib/dbus-gvalue.c: Initialize return variables.
1143 2005-06-13 Colin Walters <walters@verbum.org>
1145 * glib/Makefile.am: Fix thinko in last patch.
1147 2005-06-13 Colin Walters <walters@verbum.org>
1149 * glib/Makefile.am: Move dbus-gtype-specialized.c
1150 and dbus-gtype-specialized.h into a _HEADERS variable,
1153 2005-06-12 Colin Walters <walters@verbum.org>
1155 Async signals and various bugfixes and testing by
1156 Ross Burton <ross@openedhand.com>.
1158 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1159 (dbus_gvalue_genmarshal_name_from_type)
1160 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1161 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1162 (dbus_g_value_types_init, dbus_gtype_from_signature)
1163 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1164 (dbus_gtypes_from_arg_signature): New function prototypes.
1165 (dbus_gvalue_demarshal): Take context and error arguments.
1166 (dbus_gvalue_demarshal_variant): New function.
1167 (dbus_gvalue_demarshal_message): New function.
1168 (dbus_gvalue_store): Delete.
1170 * glib/dbus-gvalue.c:
1172 File has been almost entirely rewritten; now we special-case
1173 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1174 hash tables correctly, etc. Full support for recursive values
1175 is not yet complete.
1177 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1178 argument of signal to G_TYPE_POINTER since we now pass a
1180 (lookup_g_marshaller): Delete in favor of
1181 _dbus_gobject_lookup_marshaller.
1182 (marshal_dbus_message_to_g_marshaller): Use
1183 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1184 to handle remote signal callbacks.
1185 (dbus_g_proxy_new_from_proxy): New function; creates a new
1186 DBusGProxy by copying an existing one.
1187 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1188 (dbus_g_proxy_get_path): New functions.
1189 (dbus_g_proxy_marshal_args_to_message): New function;
1190 factored out of existing code.
1191 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1192 from a varargs array.
1193 (dbus_g_proxy_begin_call_internal): New function.
1194 (dbus_g_proxy_end_call_internal): New function.
1195 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1196 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1197 after collecting args into value array.
1198 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1199 invoke dbus_g_proxy_end_call_internal.
1200 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1202 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1204 (array_free_all): New function.
1205 (dbus_g_proxy_add_signal): Take GTypes.
1207 * glib/dbus-gobject.h:
1208 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1209 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1212 * glib/dbus-gobject.c: Add a global marshal_table hash which
1213 stores mappings from type signatures to marshallers. Change lots
1214 of invocations of dbus_gtype_to_dbus_type to
1215 dbus_gtype_to_signature.
1216 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1217 (introspect_signals): Fix test for query.return_type.
1218 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1219 (invoke_object_method): Many changes. Handle asynchronous
1220 invocations. Convert arguments with
1221 dbus_gvalue_demarshal_message. Handle errors. Use
1222 DBusSignatureIter instead of strlen on args. Handle all arguments
1223 generically. Special-case variants.
1224 (dbus_g_method_return, dbus_g_method_return_error): New function.
1225 (DBusGSignalClosure): New structure, closes over signal
1227 (dbus_g_signal_closure_new): New function.
1228 (dbus_g_signal_closure_finalize): New function.
1229 (signal_emitter_marshaller): New function; is special marshaller
1230 which emits signals on bus.
1231 (export_signals): New function; introspects object signals and
1233 (dbus_g_object_type_install_info): Take GType instead of
1235 (dbus_g_connection_register_g_object): Invoke export_signals.
1236 (dbus_g_connection_lookup_g_object): New function.
1237 (DBusGFuncSignature) New structure; used for mapping type
1238 signatures to marshallers.
1239 (funcsig_hash): New function; hashes DBusGFuncSignature.
1240 (funcsig_equal): New function; compares DBusGFuncSignature.
1241 (_dbus_gobject_lookup_marshaller): New function.
1242 (dbus_g_object_register_marshaller): New function; used to
1243 register a marshaller at runtime for a particular signature.
1245 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
1247 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
1248 which notes a server method implementation should be
1251 * glib/dbus-binding-tool-glib.c
1252 (dbus_binding_tool_output_glib_server): Call
1253 dbus_g_value_types_init.
1254 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
1256 (dbus_g_type_get_lookup_function): Turn GType into an invocation
1257 of a lookup function.
1258 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
1259 (write_untyped_out_args): New method; write output arguments.
1260 (write_formal_declarations_for_direction): Function for
1262 (write_formal_parameters_for_direction): Function for
1263 writing implementations.
1264 (write_typed_args_for_direction): Function for writing
1265 arguments prefixed with GTypes.
1266 (write_async_method_client): Write out async version
1269 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
1270 (dbus_g_type_get_marshal_name): Move mapping from GType
1271 to marshal name into here.
1272 (dbus_g_type_get_c_name): Move into here.
1273 (compute_marshaller): Convert signature to type with
1274 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
1275 (compute_marshaller_name): Ditto.
1276 (compute_marshaller): Handle async signal annotations.
1277 (gather_marshallers): Return if we don't have a known
1279 (generate_glue): Collect introspection blob here, and
1280 write all of the blob at the end. This allows an object
1281 with multiple interfaces to work.
1282 Mark async methods in introspection blob.
1284 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
1285 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
1286 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
1288 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
1289 avoids people accidentally using DBUS_TYPE_* which should
1290 not be necessary anymore.
1291 Do include dbus-gtype-specialized.h, which are utilities
1292 for GLib container types.
1293 Add various #defines for types such as
1294 DBUS_TYPE_G_BOOLEAN_ARRAY.
1295 (DBusGValueIterator, DBusGValue): Define, not fully used
1297 (dbus_g_value_get_g_type): Type for recursive value.
1298 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1299 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1300 (dbus_g_value_free): Prototypes.
1301 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
1302 (dbus_g_proxy_set_interface): Prototype.
1303 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
1304 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
1306 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
1308 (DBusGAsyncData, DBusGMethodInvocation): Structures for
1309 doing async invocations.
1310 (dbus_g_method_return, dbus_g_method_return_error):
1312 * doc/dbus-tutorial.xml: Update GLib section.
1314 * tools/dbus-viewer.c (load_child_nodes): Update
1315 for new invocation type of dbus_g_proxy_end_call.
1316 (load_from_service_thread_func): Ditto.
1318 * tools/print-introspect.c (main): Ditto.
1320 * tools/dbus-names-model.c (have_names_notify)
1321 (names_model_reload, names_model_set_connection)
1324 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
1325 needed since Python bindings use GLib bindings.
1327 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
1328 Add --prefix argument.
1330 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
1331 unneeded --ignore-unsupported arg.
1333 * test/glib/test-service-glib.c:
1334 * test/glib/test-service-glib.xml:
1335 * test/glib/test-dbus-glib.c: Add many more tests.
1337 2005-06-06 David Zeuthen <davidz@redhat.com>
1339 * doc/TODO: Add item about need to remove deprecated functions.
1341 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
1343 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
1344 to repair the ABI which was broken with the last commit.
1346 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
1348 * dbus/dbus-connection.c, dbus/dbus-connection.h
1349 (dbus_connection_disconnect): renamed to dbus_connection_close
1350 for API symmetry with dbus_connection_open
1351 (_dbus_connection_open_internal):
1352 s/dbus_connection_disconnect/dbus_connection_close
1354 * dbus/dbus-bus.c (dbus_bus_get):
1355 s/dbus_connection_disconnect/dbus_connection_close
1357 * bus/connection.c (bus_connections_unref,
1358 bus_connections_setup_connection, bus_connections_expire_incomplete):
1359 s/dbus_connection_disconnect/dbus_connection_close
1361 * bus/dispatch.c (bus_dispatch, kill_client_connection,
1362 kill_client_connection_unchecked, check_hello_connection):
1363 s/dbus_connection_disconnect/dbus_connection_close
1365 * bus/bus.c (new_connection_callback):
1366 s/dbus_connection_disconnect/dbus_connection_close
1368 * tools/dbus-send.c (main):
1369 s/dbus_connection_disconnect/dbus_connection_close
1371 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
1372 s/dbus_connection_disconnect/dbus_connection_close
1374 * test/test-service.c (path_message_func, filter_func):
1375 s/dbus_connection_disconnect/dbus_connection_close
1377 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
1379 2005-05-25 Colin Walters <walters@verbum.org>
1381 * dbus/dbus-protocol.h: Move various bus service #defines such
1382 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
1384 * dbus/dbus-shared.h: Various defines moved here.
1385 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
1387 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
1389 * python/__init__.py: Python bindings deserve a minor version
1390 update. Upped to (0, 40, 2)
1392 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
1394 * python/decorators.py: add explicitly_pass_message decorator
1395 for passing in the dbus message as keyword for edge case signal
1398 * python/matchrules.py (SignalMatchRule.__repr__): fix output
1399 to conform with what dbus expects for match rules
1400 (SignalMatchRule.execute): add the dbus message as a keyword
1401 if the signal handler has requested it
1403 * python/examples/example/signal-recipient.py: added some more
1404 examples on how to hook up to signals
1406 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
1408 * python/decorators.py: import dbus_bindings
1410 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
1411 SignalMatchNode): new classes that implement wildcard signal
1412 callback matching using a tree lookup. Heavily modified from a
1413 patch sent by Celso Pinto (fd.o bug #3241)
1415 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
1416 use new match classes to handle signals.
1418 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
1420 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
1422 2005-05-18 Havoc Pennington <hp@redhat.com>
1424 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
1425 gettext. Not really worth requiring yet perhaps, but any
1426 production quality 1.0 would require it so we should go ahead and
1427 get things set up. We do have a couple token calls to
1428 bindtextdomain in the code already.
1430 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
1432 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
1433 when using recursive g_main_loops
1435 * python/_dbus.py (class Bus): add the ProxyObjectClass
1436 alias for ProxyObject to make it easier for the Twisted
1437 networking framework to integrate dbus.
1439 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
1440 alias for ProxyMethod to make it easier for the Twisted
1441 networking framework to integrate dbus.
1443 2005-05-11 Ross Burton <ross@openedhand.com>
1445 * glib/dbus-glib-tool.c: Add --prefix argument.
1446 * glib/dbus-binding-tool-glib.h: Add prefix argument.
1447 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
1448 Add prefix argument.
1449 (generate_glue): Pass prefix argument down.
1450 (dbus_binding_tool_output_glib_server): Pass prefix to
1453 2005-05-11 Colin Walters <walters@verbum.org>
1455 * tools/dbus-send.c (append_array): New function.
1456 (append_arg): Broken out from main.
1457 (main): Add cheesy hack to send arrays and variants.
1459 * tools/dbus-print-message.c (print_iter): Broken out
1462 2005-05-11 Colin Walters <walters@verbum.org>
1464 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
1465 New function, returns signature string for signature iter.
1466 * dbus/dbus-signature.h: Prototype it.
1467 * dbus/dbus-message.c (dbus_message_iter_get_signature):
1468 New function, returns signature string for message iter.
1469 (dbus_message_iter_get_array_len): New function, returns
1471 (dbus_message_iter_get_fixed_array): Fix assertion; this
1472 function should be used when the iter is pointing to the
1473 contents of an array
1474 * dbus/dbus-message.h: Prototypes.
1475 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
1476 New function; returns length of an array.
1477 * dbus/dbus-marshal-recursive.h: Prototype it.
1479 2005-05-11 Colin Walters <walters@verbum.org>
1481 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
1484 2005-05-08 Havoc Pennington <hp@redhat.com>
1486 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
1487 daemon's pid, not the parent's pid, to the file descriptor.
1488 Reported by Taj Morton.
1490 2005-05-05 Havoc Pennington <hp@redhat.com>
1492 * configure.in (LT_*): add notes on how the libtool versioning
1493 works to save thinking. Increment soname to indicate protocol
1494 breakage (though really the library interface hasn't changed I
1497 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1498 verify the GUID received from server matches what we were
1499 expecting, if we had an expectation
1501 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
1502 (_dbus_auth_get_guid_from_server): new function
1503 (send_begin): parse the OK args
1505 * doc/dbus-specification.xml: add GUID to the auth protocol
1507 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
1509 * Fix my name in previous changelog ;)
1511 * python/proxies.py (ProxyObject.__getattr__): add further patch
1512 from Anthony Baxter to throw an AttributeError when python
1513 __special__ functions are called instead of marshling them over
1514 the bus (Bug#1685 comment 3).
1516 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
1518 * python/Makefile.am: changed to use pyexecdir for the binding
1519 shared libraries (Bug#2494)
1521 * python/exceptions.py: bring exceptions over from the bindings
1522 so they can be used in applications (Bug#2036)
1523 Make all exceptions derive from DBusException
1525 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
1526 of classes so that print obj doesn't throw an exception (Bug #1685)
1528 2005-05-03 Ross Burton <ross@openedhand.com>
1530 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
1531 Return if we get an error during registration. Set up a
1532 weak reference on object to unregister if object is destroyed.
1533 (unregister_gobject): New function.
1535 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
1537 * python/dbus_bindings.pyx.in:
1538 - added new type classes for hinting to the marashaler what type
1539 to send over the wire
1540 - added int16 and uint16 marshalers
1541 - Fixed a bug in the type constants that caused int32 to go out
1542 as uint16 over the wire
1543 * python/dbus.py: split up into different files and renamed _dbus.py
1544 * python/__init__.py, python/_util.py, python/decorators.py,
1545 python/exceptions.py, python/proxies.py, python/services.py,
1546 python/types.py: new files split off from dbus.py
1547 * python/Makefile.am: Add new files, remove dbus.py and
1548 install all python files to <python module dir>/dbus
1549 * python/examples/*: Added #!/usr/bin/env python to the top of
1550 every example. Patch provided by Tatavarty Kalyan
1552 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1554 * NEWS: Update to 0.33
1556 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
1558 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
1559 method for doing async calls
1560 (_pending_call_notification): New C function for handling pendning call
1562 (set_notify): New method for setting pending call notification
1564 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
1565 Async capabilities added to remote method calls
1566 (Sender): class removed
1567 (RemoteService): class removed
1568 (ObjectTree): class removed for now
1569 (RemoteObject): Renamed to ProxyObject
1570 (RemoteMethod): Renamed to ProxyMethod
1571 (method): Decorator added for decorating python methods as dbus methods
1572 (signal): Decorator added for decorating python methods as signal emitters
1573 (ObjectType): Metaclass added for generating introspection data and the
1574 method callback vtable
1575 (Interface): Wrapper class added to wrap objects in a dbus interface
1576 (Object): Uses ObjectType as its metaclass and exports Introspect
1577 of the org.freedesktop.DBus.Introspectable interface
1578 (ValidationException, UnknownMethodException): new exceptions
1580 * python/examples/*: Modified to fit with the new bindings
1582 2005-04-23 Havoc Pennington <hp@redhat.com>
1584 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
1585 reported by Tony Houghton
1587 * test/test-service.c (main): test
1588 dbus_connection_get_object_path_data()
1590 * dbus/dbus-object-tree.c (find_handler): be sure we always init
1592 (_dbus_object_tree_get_user_data_unlocked): new function used by
1593 dbus_connection_get_object_path_data()
1594 (do_register): add assertion test for get_user_data_unlocked
1595 (object_tree_test_iteration): more tests
1597 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
1598 new function from Dan Reed to let you get the user data from
1599 dbus_connection_register_object_path()
1601 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
1603 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
1604 in numerous places that did not account for the NULL terminator
1605 (signature_from_seed): changed the manual string copy loop to
1606 just use strcpy instead
1607 make check should now pass
1609 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
1611 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
1612 so that it allows messages that are not signals to pass in
1613 NULL as the interface.
1615 2005-04-18 David Zeuthen <davidz@redhat.com>
1617 * glib/dbus-gmain.c (io_handler_destroy_source):
1618 (timeout_handler_destroy_source, connection_setup_free):
1619 Also unref the source to avoid memory leaks.
1621 2005-04-13 David Zeuthen <davidz@redhat.com>
1623 * bus/config-parser.c (bus_config_parser_new): Bump this to a
1624 more reasonable, yet still totally arbitrary, value :-).
1626 2005-04-13 David Zeuthen <davidz@redhat.com>
1628 * doc/TODO: Added an "important for 1.0" item about selinux
1631 2005-04-13 David Zeuthen <davidz@redhat.com>
1633 * bus/selinux.c: Add c-file-style to top of file
1634 (log_audit_callback): Don't free the data here anymore
1635 (bus_selinux_check): Don't take spid and tpid since appending
1636 that to auxdata may OOM.
1637 (bus_selinux_allows_acquire_service): Handle OOM and signal back
1638 to the caller if we are OOM by taking an error object.
1639 (bus_selinux_allows_send): -do-
1641 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
1642 and bus_selinux_allows_send
1644 * bus/bus.c (bus_context_check_security_policy): Pass error and
1645 pass on OOM thrown by bus_selinux_allows_send()
1647 * bus/services.c (bus_registry_acquire_service): Pass error and
1648 pass on OOM thrown by bus_selinux_allows_acquire_service()
1650 2005-04-13 Havoc Pennington <hp@redhat.com>
1652 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
1653 message at a time to avoid monopolizing the main loop, bug
1654 #2953 from Benjamin Otte
1656 2005-04-09 Havoc Pennington <hp@redhat.com>
1658 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
1659 possible overlap, fix from Daniel Reed
1660 (fixup_alignment): fix signedness warnings
1661 (_dbus_string_append_unichar): ditto
1663 2005-04-09 Havoc Pennington <hp@redhat.com>
1665 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
1667 * glib/dbus-glib-tool.c (main): fix warning
1669 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
1671 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
1672 add a new function that can be used in simple applications that
1673 don't have a main loop and are willing to block
1675 2005-04-05 David Zeuthen <davidz@redhat.com>
1677 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
1679 * glib/dbus-gmain.c:
1680 (io_handler_destroy_source): Remove from list of IO handlers
1681 of the ConnectionSetup object
1682 (timeout_handler_destroy_source): -do- for timeout handlers
1683 (io_handler_source_finalized): Don't remove from list since
1684 we now do that in io_handler_destroy_source(). Renamed from
1685 io_handler_source_destroyed
1686 (timeout_handler_source_destroyed): -do- for timeout handlers
1687 (connection_setup_free): It is now safe to iterate over all
1688 IO and timeout handlers as the _destroy_source removes them
1689 from the list synchronously
1691 2005-03-30 Havoc Pennington <hp@redhat.com>
1693 * configure.in: change check to gtk 2.4
1695 * tools/dbus-viewer.c (name_combo_changed_callback): remove
1696 gtk_combo_box_get_active_text() usage to decrement GTK requirement
1699 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1703 * HACKING: Fixed realease instructions. configure.in should be updated to
1704 the next release by the person who made the last release.
1706 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
1708 * python/lvalue_cast_post_process.py - removed. Patch has been
1709 submitted to Pyrex maintainers that fixes gcc4.0 errors
1711 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
1713 2005-03-24 Daniel Reed <n@ml.org>
1715 * tools/Makefile.am: Make print-introspect and
1716 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
1718 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
1720 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
1722 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
1723 had in Red Hat packages for a while but for some reason never
1725 (_dbus_is_a_number): New checks if a string
1726 can be converted to a number and does the conversion if it can
1727 (_dbus_user_database_lookup): Add check to see if the given username
1728 is a udi. This allows udi's to be used instead of usernames in the
1730 (_dbus_user_database_lookup_group): Add check to see if the given groupname
1731 is a gdi. This allows gdi's to be used instead of groupnames in the
1734 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
1736 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
1737 code so that it compiles with gcc4.0
1739 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
1740 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
1741 results back to dbus_binding.c
1743 2005-03-20 Colin Walters <walters@verbum.org>
1745 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
1747 * configure.in: Require GTK+ 2.6.
1749 2005-03-20 Colin Walters <walters@verbum.org>
1751 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
1753 2005-03-17 Tom Parker <palfrey@tevp.net>
1755 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
1756 print DBUS_UID_UNSET; instead print passed username. Also
1757 be sure to actually use gid looked up in cache.
1759 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
1760 for DBUS_GID_UNSET and groupname.
1762 2005-03-17 Colin Walters <walters@verbum.org>
1764 * bus/print-introspect.c: Move to tools/.
1765 * bus/run-with-tmp-session-bus.sh: Ditto.
1767 * glib/Makefile.am (dbus-glib-bindings.h): Move
1768 generation to tools/Makefile.am.
1770 * test/glib/run-test.sh: Update to handle move
1771 of run-with-tmp-session-bus.sh.
1773 * test/glib/test-service-glib.c: Update to handle
1774 move of dbus-glib-bindings.h.
1776 * tools/print-introspect.c: Moved here
1777 from bus/, and ported to GLib bindings.
1779 * tools/run-with-tmp-session-bus.sh: Moved here
1782 * tools/Makefile.am: Generate dbus-glib-bindings.h
1783 and dbus-bus-introspect.xml here.
1785 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
1788 2005-03-17 Colin Walters <walters@verbum.org>
1790 * bus/driver.c (write_args_for_direction): Use
1791 _dbus_string_get_const_data to retrieve string;
1792 _dbus_string_get_const_data_len doesn't actually return
1793 a NULL-terminated substring.
1795 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
1796 (main): Change to use org_freedesktop_DBus_request_name
1797 instead of using g_proxy_begin_call/end_call.
1799 2005-03-15 Joe Shaw <joeshaw@novell.com>
1801 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
1802 generating the finalizer. Fixes from Ben Maurer.
1804 2005-03-12 Joe Shaw <joeshaw@novell.com>
1806 * mono/BusDriver.cs: Update method names: ListServices
1807 becomes ListNames; GetOwner becomes GetNameOwner.
1809 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
1810 onto the eval stack when removing the delegate.
1812 2005-03-12 Joe Shaw <joeshaw@novell.com>
1814 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
1815 LT_CURRENT. Set it to the autoconf variable.
1817 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
1818 classes that disconnects the signal handler delegate from the
1819 service object. Fixes a big leak of proxy objects on the
1820 client side of things. Patch from Ben Maurer
1821 <bmaurer@ximian.com>
1823 2005-03-12 Colin Walters <walters@verbum.org>
1825 * bus/driver.c (write_args_for_direction): New function,
1826 parses a type signature into arguments and outputs to
1828 (bus_driver_handle_introspect): Use it instead of
1829 hardcoding XML for certain signatures.
1831 * bus/Makefile.am (dbus-bus-introspect.xml): Add
1832 dependency on dbus-daemon.
1834 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
1835 argument, pass it to dbus_binding_tool_output_glib_client.
1837 * glib/dbus-binding-tool-glib.c
1838 (generate_client_glue): Protect against multiple inclusion.
1839 (dbus_binding_tool_output_glib_client): Add
1840 G_BEGIN_DECLS/G_END_DECLS.
1842 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
1843 Change to just take iface prefix directly.
1844 (write_formal_parameters): Clarify error message.
1845 (check_supported_parameters): New function; checks to see type
1846 signatures of method parameters are supported.
1847 (generate_client_glue): Handle ignore_unsupported flag.
1848 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
1851 * glib/Makefile.am (dbus-glib-bindings.h): Pass
1852 --ignore-unsupported by default until glib bindings
1855 2005-03-11 Colin Walters <walters@verbum.org>
1857 * glib/Makefile.am: Generate dbus-glib-bindings.h and
1860 * bus/print-introspect.c: New file; prints introspection
1861 data for a given name and object path.
1863 * bus/run-with-tmp-session-bus.sh: New file, refactored
1864 from test/glib/run-test.sh. Creates a temporary session
1865 bus and runs another program.
1867 * test/glib/run-test.sh: Refactor to invoke
1868 run-with-tmp-session-bus.sh.
1870 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
1871 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
1872 macros instead of hardcoding.
1874 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
1876 2005-03-11 Joe Shaw <joeshaw@novell.com>
1878 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
1879 this unref; it doesn't match up evenly in some codepaths.
1880 (_dbus_connection_block_pending_call): Unref at every exitpoint;
1881 this evenly matches with the ref near the top of this function.
1883 2005-03-09 Joe Shaw <joeshaw@novell.com>
1885 * dbus/dbus-object-tree.c
1886 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
1887 and we try to unregister a path that's not registered, still go
1888 through the process of unlocking and don't just return.
1890 2005-03-09 Colin Walters <walters@verbum.org>
1892 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
1893 to this are generated for client-side wrappers. Invokes a
1894 D-BUS method and returns reply values.
1896 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
1897 function; writes signature string for argument direction.
1898 (write_args_for_direction): Change to pass input values directly
1899 instead of via address, and fix indentation.
1900 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
1901 make generated wrappers inlineable.
1903 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
1904 note about using dbus_type_is_fixed.
1906 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
1907 dbus/dbus-signature.c as dbus_type_is_fixed.
1909 All callers updated.
1911 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
1912 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
1914 * dbus/dbus-signature.h: Prototype.
1916 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
1919 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
1920 appropriate instead of just freeing it.
1921 (main): Free returned strings using g_free.
1923 * test/glib/Makefile.am (test-service-glib-glue.h)
1924 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
1926 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
1927 simply maps a simple D-BUS type to GType.
1928 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
1930 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
1931 initialize the value with it.
1932 (dbus_gvalue_binding_type_from_type): Unused, delete.
1933 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
1934 various types instead of unmarshalling to value data directly.
1935 Remove can_convert boolean.
1936 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
1937 returning directly instead of using can_convert boolean.
1938 (dbus_gvalue_store): New function; not related to D-BUS per-se.
1939 Stores a GValue in a pointer to a value of its corresponding C
1942 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
1943 add dbus_gvalue_store.
1945 2005-03-08 Joe Shaw <joeshaw@novell.com>
1947 Fix a bunch of lifecycle and memory management problems
1948 in the mono bindings.
1950 * mono/Arguments.cs (Arguments): Implement IDisposable
1952 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
1953 strictly a static class.
1955 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1956 delegates into this file.
1957 (Connection): Implement IDisposable.
1958 (Dispose): Disconnect the connection and set the raw connection
1959 pointer to IntPtr.Zero.
1960 (~Connection): Call Dispose().
1961 (RegisterObjectPath): Added. Manages the registration of object
1962 paths so we can cleanly disconnect them at dispose/finalize time.
1963 (UnregisterObjectPath): Ditto.
1964 (set_RawConnection): Unregister all of the object paths when
1965 changing the underlying DBusConnection. Add them back onto the
1966 new connection, if any.
1968 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1969 more unmanaged resources anymore, so it's not necessary. Move all
1970 the DBusObjectPathVTable stuff out of here.
1971 (Handler): Save references to our delegates so that they don't get
1972 finalized. Call Connection.RegisterObjectPath() instead of
1973 dbus_connection_register_object_path() directly.
1974 (Message_Called): Dispose the message after we're finished with
1977 * mono/Message.cs (Message): Implement IDisposable.
1978 (Dispose): Dispose the Arguments, and set the RawMessage to
1980 (SendWithReplyAndBlock): We own the ref to the reply that comes
1981 back from dbus_connection_send_with_reply_and_block() so add a
1982 comment about that and unref it after we've constructed a managed
1983 MethodReturn class around it. Fixes a big, big leak.
1985 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1987 (BuildSignalHandler): After we've sent the Signal message, dispose
1989 (BuildMethod): Dispose of the method call and reply messages after
1990 we've sent the message and extracted the data we want from the
1993 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1995 (Service_FilterCalled): Dispose of the message after we're
1998 2005-03-08 Joe Shaw <joeshaw@novell.com>
2000 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2001 After we attach our pending call to the connection, unref
2004 * mono/Connection.cs (set_RawConnection): Disconnect our
2005 filter and match callbacks from the old connection and
2006 reconnect them to the new connection, if any.
2008 * mono/DBusType/Array.cs: "Code" is a static member, so
2009 don't use "this" to refer to it. Fix for stricter checking
2012 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2013 object path that we pass into unmanaged code.
2015 * mono/DBusType/String.cs (Append): Don't leak the string
2016 that we pass into unmanged code.
2018 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2019 * NEWS: Update for 0.31
2021 * configure.in: Release 0.31
2022 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2024 * qt/Makefile.am: fixed build
2026 * dbus/Makefile.am: soname bump for libdbus
2028 * glib/Makefile.am: soname bump for libdbus-glib
2030 2005-03-05 Havoc Pennington <hp@redhat.com>
2032 * dbus/dbus-sysdeps.c:
2033 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2035 (_dbus_generate_random_bytes_buffer): fix return value
2037 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2038 checks actually work, from Tom Parker <fdo@tevp.net>
2040 2005-03-01 Colin Walters <walters@verbum.org>
2042 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2043 functions copied from dbus-glib-tool.c.
2044 (main): Convert lots of error code to use them.
2045 Also add some testing for introspection bits.
2047 2005-03-01 Colin Walters <walters@verbum.org>
2049 * doc/TODO: Remove introspection signature TODO.
2051 2005-02-27 Colin Walters <walters@verbum.org>
2053 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2054 Change return value to const char * instead of int so we can do
2056 (struct PropertyInfo, struct ArgInfo): Store char *.
2057 (property_info_new, arg_info_new): Update parameters, strdup.
2058 (property_info_unref, arg_info_unref): Free.
2060 * glib/dbus-gidl.h: Update prototypes.
2062 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2063 (validate_signature): New function, just validates signature and
2065 (parse_property, parse_arg): Invoke validate_signature. Store
2066 signature instead of just type code.
2068 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2069 function to return a primary type for a signature, dropping
2070 information about types in container types.
2071 (dbus_gvalue_genmarshal_name_from_type)
2072 (dbus_gvalue_binding_type_from_type)
2073 (dbus_gvalue_ctype_from_type): Update to take full signature
2074 instead of type code.
2075 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2077 * glib/dbus-gvalue.h: Update prototypes for above.
2079 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2080 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2081 (introspect_properties, introspect_signals, write_interface):
2082 Update to handle signatures, and remove usage of
2083 _dbus_gutils_type_to_string.
2084 (handle_introspect): Print out type codes instead of e.g. "string"
2085 in hardcoded introspection XML; also use x_AS_STRING constants
2086 instead of hardcoding in string.
2088 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2089 to string. Remove usage of _dbus_gutils_type_to_string.
2091 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2093 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2096 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2097 (compute_marshaller_name, generate_glue): Handle signature change
2099 (write_formal_parameters, write_args_for_direction): Ditto, and
2102 * tools/dbus-tree-view.c (type_to_string): Delete.
2103 (info_set_func_text): Update to print full signatures.
2105 * test/glib/test-service-glib.xml: Change types to new
2106 introspection format.
2108 2005-02-26 Havoc Pennington <hp@redhat.com>
2110 * doc/TODO: remove the "guid" item
2112 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2113 (with_bus_thread_func): use open_private
2115 * dbus/dbus-connection.c (dbus_connection_open_private): new
2116 function that works like the old dbus_connection_open()
2117 (dbus_connection_open): now returns an existing connection if
2120 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2121 through the GUID to the transport
2123 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2124 GUID in hex-encoded form.
2126 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2127 pass GUID argument in to the transport
2129 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2132 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2134 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2136 2005-02-25 Havoc Pennington <hp@redhat.com>
2138 * doc/dbus-specification.xml: document the GUID thing
2140 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2141 globally unique ID for the server, and put a "guid=hexencoded"
2142 field in the address
2144 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2146 * dbus/dbus-message.c: ditto
2148 * dbus/dbus-dataslot.c: ditto
2150 * dbus/dbus-list.c: ditto
2152 * dbus/dbus-internals.h: wait, just include
2153 dbus-threads-internal.h here
2155 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2158 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2160 2005-02-24 Colin Walters <walters@verbum.org>
2162 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2164 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2166 * glib/Makefile.am: added dbus-gobject.h to sources list
2167 so distcheck doesn't fail
2169 2005-02-24 Havoc Pennington <hp@redhat.com>
2171 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2172 you must disconnect before unref, since locking and other things
2173 are screwed up otherwise. Fix assorted other locking stuff.
2175 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2178 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2179 into a private header and don't export from the library
2181 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2183 2005-02-24 Colin Walters <walters@verbum.org>
2185 * dbus/dbus-signature.c: New file; implements various functions
2186 related to type signatures. Includes an interator for parsing,
2187 validation functions.
2188 (dbus_type_is_basic): Moved here from
2189 dbus-marshal-basic.c:_dbus_type_is_basic.
2190 (dbus_type_is_container): Moved here from
2191 dbus-marshal-basic.c:_dbus_type_is_container.
2193 All callers of _dbus_type_is_container and _dbus_type_is_basic
2194 updated, and include dbus-signature.h.
2196 * dbus/dbus-signature.h: New file; prototypes for the above.
2198 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2201 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2202 function factored out of _dbus_first_type_in_signature.
2203 (_dbus_first_type_in_signature_c_str): New function; returns first
2204 type code for a type signature character.
2206 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2207 handle function moves.
2209 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2211 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2212 function; skips to next complete type in type signature.
2213 Implemented using previous skip_one_complete_type. Now
2214 skip_one_complete_type just delegates to
2215 _dbus_type_signature_next.
2217 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2219 (_dbus_type_is_container): Ditto.
2221 * doc/dbus-specification.xml: Update introspection sample to
2222 use real type signatures.
2224 * dbus/dbus-test.h: Prototype signature test.
2226 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2229 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2231 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2233 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2234 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
2236 2005-02-21 Colin Walters <walters@verbum.org>
2238 * dbus/dbus-test-main.c (main): Take optional specific test
2241 * dbus/dbus-test.c (run_test): New function, runs a test function
2242 with no data directory.
2243 (run_data_test): Like above, but takes data directory.
2244 (dbus_internal_do_not_use_run_tests): Take
2245 specific test argument. Replace lots of cut n' paste code
2246 with run_test and run_data_test.
2248 * dbus/dbus-test.h: Update prototype for
2249 dbus_internal_do_not_use_run_tests.
2251 2005-02-20 Havoc Pennington <hp@redhat.com>
2253 Fix bugs reported by Daniel P. Berrange
2255 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
2256 (protected_change_watch): new function
2257 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
2258 (_dbus_server_add_watch): change to work like the
2259 dbus-connection.c equivalents; like those, probably kind of
2260 busted, but should at least mostly work for now
2261 (dbus_server_disconnect): drop the lock if we were already
2262 disconnected, patch from Daniel P. Berrange
2264 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
2265 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
2268 * doc/TODO: todo about unscrewing this mess
2270 2005-02-19 Colin Walters <walters@verbum.org>
2272 * glib/dbus-binding-tool-glib.c
2273 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
2275 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
2276 as errno.h and sys/stat.h.
2277 (lose): New function, prints error with
2279 (lose_gerror): Similar, but takes GError for message.
2280 (main): Add --output argument to specify output file to write to,
2281 instead of always printing to stdout. In this mode, determine
2282 timestamps on source files to see whether any are newer than the
2283 target file. If not, exit. Also convert a number of error
2284 messages to use lose (since it's shorter), and switch to using
2285 g_io_channel_shutdown.
2287 2005-02-19 Havoc Pennington <hp@redhat.com>
2289 * glib/dbus-gobject.c
2290 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
2292 * glib/dbus-glib.c: fix doxygen warnings
2294 * glib/dbus-gparser.c (parse_annotation): error if an annotation
2295 is found on an <arg>
2297 2005-02-17 Colin Walters <walters@verbum.org>
2299 * glib/dbus-gobject.h: Don't export
2300 _dbus_glib_marshal_dbus_message_to_gvalue_array.
2302 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
2303 (invoke_object_method): Handle it.
2305 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
2308 2005-02-17 Colin Walters <walters@verbum.org>
2310 * bus/.cvsignore, doc/.cvsignore
2311 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
2314 2005-02-17 Colin Walters <walters@verbum.org>
2316 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
2317 Rename to DBUS_SERVICE_DBUS.
2318 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
2319 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
2320 Change the value from "org.freedesktop.Local"
2321 to "org.freedesktop.DBus.Local".
2322 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
2323 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
2324 DBUS_INTERFACE_INTROSPECTABLE.
2325 Change the value from "org.freedesktop.Introspectable"
2326 to "org.freedesktop.DBus.Introspectable".
2327 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
2328 DBUS_INTERFACE_PROPERTIES.
2329 Change the value from "org.freedesktop.Properties"
2330 to "org.freedesktop.DBus.Properties".
2331 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
2332 DBUS_INTERFACE_PEER.
2333 Change the value from "org.freedesktop.Peer"
2334 to "org.freedesktop.DBus.Peer".
2335 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
2336 DBUS_INTERFACE_LOCAL.
2337 Change the value from "org.freedesktop.Local"
2338 to "org.freedesktop.DBus.Local".
2340 All other users of those constants have been changed.
2342 * bus/driver.c (bus_driver_handle_introspect): Use constants.
2344 * glib/dbus-gobject.c (handle_introspect): Use constants.
2346 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
2348 2005-02-17 Colin Walters <walters@verbum.org>
2350 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
2351 (parse_node, parse_interface, parse_method, parse_signal)
2352 (parse_property, parse_annotation): Lose if we're currently in an
2354 (parse_annotation): New function.
2355 (parser_start_element, parser_end_element): Handle annotation.
2356 (parse_method, parse_interface): Remove support for c_name attribute,
2357 switch to annotations.
2359 * glib/dbus-gidl.h (interface_info_get_binding_names)
2360 (method_info_get_binding_names)
2361 (interface_info_get_binding_name, method_info_get_binding_name)
2362 (interface_info_set_binding_name, method_info_set_binding_name):
2364 (interface_info_get_annotations, method_info_get_annotations)
2365 (interface_info_get_annotation, method_info_get_annotation)
2366 (interface_info_add_annotation, method_info_add_annotation):
2369 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
2371 (struct MethodInfo): Ditto.
2372 Straightfoward conversion of binding methods into annotation methods
2375 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
2377 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
2379 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
2380 Use new annotation API.
2382 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
2385 * doc/dbus-specification.xml: Discuss introspection annotations,
2386 include list of well-known annotations.
2388 * test/glib/test-service-glib.xml: Make validate against new DTD.
2390 2005-02-17 Colin Walters <walters@verbum.org>
2392 This patch is based on initial work from
2393 Paul Kuliniewicz <kuliniew@purdue.edu>.
2395 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
2396 initialization of GValue from dbus type to here.
2397 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
2398 for the "glib-genmarshal" program from a DBus type.
2399 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
2400 into the C name for it we use in the glib bindings.
2401 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
2402 glib C type (not GValue).
2403 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
2405 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
2406 from dbus-gobject.c.
2408 * glib/dbus-gutils.h: Prototype it.
2410 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
2411 (marshal_dbus_message_to_g_marshaller): Use new shared function
2412 dbus_glib_marshal_dbus_message_to_gvalue_array.
2414 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
2415 Will be changed once we have annotations.
2417 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
2418 GStaticRWLock. Callers updated.
2419 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
2420 (string_table_next): New function for iterating over zero-terminated
2422 (string_table_lookup): New function; retrieves specific entry in
2424 (get_method_data): New function; look up method data in object data chunk.
2425 (object_error_domain_prefix_from_object_info)
2426 (object_error_code_from_object_info): New functions, but not implemented yet.
2427 (method_interface_from_object_info): New function; retrieve interface name.
2428 (method_name_from_object_info): New function; retrieve method name.
2429 (method_arg_info_from_object_info): New function; retrieve argument data.
2430 (arg_iterate): New function; iterates over serialized argument data.
2431 (method_dir_signature_from_object_info): New function; returns a
2432 GString holding type signature for arguments for just one
2433 direction (input or output).
2434 (method_input_signature_from_object_info)
2435 (method_output_signature_from_object_info): New functions.
2436 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
2437 converts dbus message arguments into a GValue array. Used for both
2438 signal handling and method invocation.
2439 (struct DBusGlibWriteIterfaceData): New utility structure.
2440 (write_interface): New function; generate introspection XML for
2442 (introspect_interfaces): New function; gathers all interface->methods,
2443 generates introspection XML for them.
2444 (handle_introspect): Invoke introspect_interfaces.
2445 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
2446 (lookup_object_and_method): New function; examines an incoming message
2447 and attempts to match it up (via interface, method name, and argument
2448 signature) with a known object and method.
2449 (gerror_domaincode_to_dbus_error_name): New function; converts a
2450 GError domain and code into a DBus error name. Needs GError data
2451 added to object introspection to work well.
2452 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
2454 (invoke_object_method): New function to invoke an object method
2455 looked up via lookup_object_and_method. Parses the incoming
2456 message, turns it into a GValue array, then invokes the marshaller
2457 specified in the DBusGMethodInfo. Creates a new message with
2458 either return values or error message as appropriate.
2459 (gobject_message_function): Invoke lookup_object_and_method and
2460 invoke_object_method.
2462 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
2463 (enum DBusBindingOutputMode): New enum for binding output modes.
2464 (pretty_print): Print binding names.
2465 (dbus_binding_tool_error_quark): GError bits.
2466 (version): Fix typo.
2467 (main): Create GIOChannel for output. Parse new --mode argument,
2468 possible values are "pretty-print", "glib-server", "glib-client".
2469 Use mode to invoke appropriate function.
2471 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
2473 * glib/dbus-glib-tool.h: New header, just includes GError bits
2476 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
2477 maps binding style to name.
2478 (struct MethodInfo): Ditto.
2479 (get_hash_keys, get_hash_key): Utility function, returns keys for
2481 (interface_info_new, method_info_new): Initialize bindings.
2482 (interface_info_unref, method_info_unref): Destroy bindings.
2483 (method_info_get_binding_names, method_info_get_binding_name)
2484 (interface_info_get_binding_names, interface_info_get_binding_name):
2485 Functions for retrieving binding names.
2486 (method_info_set_binding_name, interface_info_set_binding_name):
2487 Functions for setting binding names.
2489 * glib/dbus-binding-tool-glib.h: New file, has prototypes
2490 for glib binding generation.
2492 * glib/dbus-binding-tool-glib.c: New file, implements server-side
2493 and client-side glib glue generation.
2495 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
2496 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
2499 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
2500 of using GClosureMarshal directly.
2501 (struct DBusGObjectInfo): Add n_infos member.
2503 * test/glib/test-service-glib.xml: New file; contains introspection data
2504 for MyTestObject used in test-service-glib.c.
2506 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
2507 (my_object_do_nothing, my_object_increment, my_object_throw_error)
2508 (my_object_uppercase, my_object_many_args): New test methods.
2509 (main): Use dbus_g_object_class_install_info to include generated object
2512 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
2513 as well as client-side bindings.
2515 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
2516 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
2517 using both the dbus_gproxy stuff directly as well as the generated bindings.
2519 2005-02-15 Havoc Pennington <hp@redhat.com>
2521 * dbus/dbus-connection.c (dbus_connection_dispatch): always
2522 complete a pending call, don't run filters first.
2524 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
2525 dbus_pending_call_steal_reply
2527 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
2528 _dbus_connection_block_pending_call
2529 (dbus_pending_call_get_reply): change to steal_reply and return a
2532 * dbus/dbus-connection.c
2533 (dbus_connection_send_with_reply_and_block): port to work in terms
2535 (_dbus_connection_block_pending_call): replace block_for_reply
2538 2005-02-14 Havoc Pennington <hp@redhat.com>
2540 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
2541 properly handle looking up group information by name; fix
2544 2005-02-13 Havoc Pennington <hp@redhat.com>
2546 * dbus/dbus-connection.c (dbus_connection_return_message)
2547 (dbus_connection_borrow_message): hold dispatch lock while message
2549 (_dbus_connection_block_for_reply): hold dispatch lock while we
2550 block for the reply, so nobody steals our reply
2551 (dbus_connection_pop_message): hold the dispatch lock while we
2554 2005-02-13 Havoc Pennington <hp@redhat.com>
2556 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
2557 (_dbus_connection_release_dispatch)
2558 (_dbus_connection_acquire_io_path)
2559 (_dbus_connection_release_io_path): make the mutex and condvar
2560 control access to the "acquired" flag. Drop the connection lock
2561 while waiting on the condvar. Hopefully these are baby steps in
2562 roughly the right direction.
2564 2005-02-13 Havoc Pennington <hp@redhat.com>
2566 * dbus/dbus-connection.c: use separate mutexes for the condition
2567 variables; this is some kind of baseline for sanity, but the
2568 condition variables still aren't used correctly afaict
2570 2005-02-13 Havoc Pennington <hp@redhat.com>
2572 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2575 * dbus/dbus-connection.c
2576 (_dbus_connection_detach_pending_call_unlocked): add this
2578 Initial semi-correct pass through to fix thread locking; there are
2579 still some issues with the condition variable paths I'm pretty
2582 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
2585 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
2586 rename to add _unlocked
2587 (struct DBusConnection): move "dispatch_acquired" and
2588 "io_path_acquired" to use only one bit each.
2589 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
2590 (dbus_connection_set_watch_functions): hacky fix to reentrancy
2591 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
2592 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
2593 (_dbus_connection_remove_timeout)
2594 (_dbus_connection_toggle_timeout): drop lock when calling out to
2595 user functions; done in a hacky/bad way.
2596 (_dbus_connection_send_and_unlock): add a missing unlock
2597 (_dbus_connection_block_for_reply): add a missing unlock
2599 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2600 drop lock in a hacky probably unsafe way to call out to user
2603 2005-02-12 Havoc Pennington <hp@redhat.com>
2605 * tools/dbus-tree-view.c (info_set_func_text): display more
2608 * bus/driver.c (bus_driver_handle_list_services): list the bus
2611 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
2613 * glib/dbus-gidl.c (signal_info_get_n_args): new function
2614 (method_info_get_n_args): new function
2616 2005-02-12 Havoc Pennington <hp@redhat.com>
2618 * bus/driver.c (bus_driver_handle_introspect): add introspection
2621 2005-02-12 Havoc Pennington <hp@redhat.com>
2623 * bus/driver.c: put the signature of each bus driver method in the
2624 table of handlers and check it on incoming calls; this isn't
2625 really useful, but going to add introspect support in a minute.
2627 2005-02-11 Joe Shaw <joeshaw@novell.com>
2629 * mono/Connection.cs: The unpredictability of finalizers in mono
2630 prevents us from deterministically disconnecting the filters from
2631 the Service class's finalizer, so move tracking of filters and
2632 matches here. Add API for that.
2634 * mono/Service.cs: Remove the code, add code which calls the
2635 methods now on the Connection class.
2637 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
2639 * python/dbus.py (class Sender): added to support dbus signals better
2640 (Bus::add_signal_receiver): added expand_args parameter which defaults
2641 to True. When expand args is True the signal handler will pass the
2642 message arguments as parameters to the signal handler. If False
2643 revert to previous behavior where the signal handler must get the
2644 argument list from the message. This is to help port applications
2645 like HAL that have a tendancy to send variable length argument lists.
2646 self._match_rule_to_receivers is now a dict of dicts.
2647 (Bus::remove_signal_receiver): pop handler off the dict intead of
2648 removing it from a list
2649 (Bus::_signal_func): change signal handlers so that interface,
2650 signal_name, service, path and message are packed into a Sender
2651 object and that is passed to the handler. If expand_args is True
2652 extract the args list from the message and append it to the parameter
2655 * python/dbus_bindings.pyx.in (class Signature): added to support
2657 (MessageIter::__init__): changed iteration limit to match D-BUS
2658 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
2659 STRUCT and VARIENT type support
2660 (MessageIter::python_value_to_dbus_sig): made recursive to support
2662 (MessageIter::append*): added Signature, dict, tuple
2665 * python/examples/example-client.py: added examples of getting tuples
2668 * python/examples/example-service.py: added examples of sending tuples
2671 * python/examples/example-signal-recipient.py: Fixed to handle new
2672 signal callback format
2674 2005-02-10 Havoc Pennington <hp@redhat.com>
2676 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
2677 (call dbus_g_proxy_add_signal)
2679 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
2681 (_dbus_server_new_for_domain_socket): escape the path
2683 * dbus/dbus-address.c (dbus_address_escape_value): new
2684 (dbus_address_unescape_value): new
2685 (dbus_parse_address): unescape values
2687 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
2689 * doc/dbus-specification.xml: explain how to escape values in
2692 2005-02-10 Havoc Pennington <hp@redhat.com>
2694 * dbus/dbus-message-factory.c (generate_special): modify test to
2695 avoid using a non-basic dict key
2697 * dbus/dbus-marshal-validate-util.c: add test for the below
2699 * doc/dbus-specification.xml: require that dict keys are a basic
2702 * dbus/dbus-marshal-validate.c
2703 (_dbus_validate_signature_with_reason): require that dict key is a
2706 2005-02-10 Havoc Pennington <hp@redhat.com>
2708 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
2709 change to be _and_unlock instead of _unlocked
2711 * dbus/dbus-connection.c
2712 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
2713 have no_update so we can find this bug quickly in future
2715 2005-02-10 Havoc Pennington <hp@redhat.com>
2717 * dbus/dbus-message-util.c (verify_test_message): tests for string
2720 * dbus/dbus-message.c (dbus_message_append_args_valist): add
2721 support for arrays of string/signature/path
2723 2005-02-10 Joe Shaw <joeshaw@novell.com>
2725 * dbus/dbus-connection.c
2726 (_dbus_connection_queue_received_message_link,
2727 _dbus_connection_message_sent): Add the path to
2729 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
2730 _dbus_connection_send_preallocated_unlocked(), updated the
2731 dispatch status, and unlocks. Fixes a bug where certain
2732 situations (like a broken pipe) could cause a Disconnect message
2733 to not be sent, tricking the bus into thinking a service was still
2734 there when the process had quit.
2735 (_dbus_connection_send_preallocated): Call
2736 _dbus_connection_send_preallocated_and_unlock().
2737 (_dbus_connection_send_and_unlock): Added. Calls
2738 _dbus_connection_send_preallocated_and_unlock().
2739 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
2740 (dbus_connection_send_with_reply): Update the dispatch status and
2743 * mono/Service.cs (~Service): Added. Removes the filter so that
2744 we don't get unmanaged code calling back into a GCed delegate.
2745 (RemoveFilter); Added.
2747 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
2749 * dbus/dbus-message.c (dbus_message_iter_open_container):
2750 - Removed check for iterator type being an array because
2751 get_arg_type does not work with writer iterators
2752 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
2754 2005-02-07 Havoc Pennington <hp@redhat.com>
2756 * doc/dbus-specification.xml: some more language cleanups; add
2757 stuff about how to deal with invalid protocol and extension
2758 points; add _ to allowed chars in auth commands; add EXTENSION_
2761 2005-02-06 Havoc Pennington <hp@redhat.com>
2763 * s/expected/required/ in a couple places for clarity
2765 2005-02-07 Colin Walters <walters@verbum.org>
2767 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
2768 sender or proposed_recipient.
2770 2005-02-06 Havoc Pennington <hp@redhat.com>
2772 * dbus/dbus-message-factory.c (generate_special): more tests
2774 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
2775 array length that exceeds the maximum
2777 2005-02-05 Havoc Pennington <hp@redhat.com>
2779 * dbus/dbus-message-factory.c (generate_special): more test cases,
2782 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
2783 reason why a signature was invalid
2785 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
2786 skip the length of the string before we look at it in validation
2788 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
2791 * dbus/dbus-message.c (_dbus_message_loader_new): default
2792 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
2794 2005-02-05 Havoc Pennington <hp@redhat.com>
2796 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
2797 if the signature of a variant was empty
2798 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
2799 struct with no element type)
2801 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
2802 mangled messages to break things
2804 2005-02-04 Havoc Pennington <hp@redhat.com>
2806 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
2807 g_quark_try_string() so it actually can return 0
2808 (dbus_g_proxy_connect_signal): ditto
2810 2005-02-04 Havoc Pennington <hp@redhat.com>
2812 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
2814 (tristring_from_message): assert cleanly on null path/interface
2815 (should not be possible though I decided later)
2816 (dbus_g_proxy_dispose): move proxy manager unregistration here
2817 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
2818 g_return_if_fail() checks
2820 2005-02-04 Havoc Pennington <hp@redhat.com>
2822 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
2824 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
2825 (with some minor changes)
2827 * doc/dbus-specification.xml: add deprecated attribute to
2828 introspection format
2830 2005-01-31 Havoc Pennington <hp@redhat.com>
2832 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
2833 think it's sort of right
2835 2005-01-30 Havoc Pennington <hp@redhat.com>
2837 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
2839 2005-01-30 Havoc Pennington <hp@redhat.com>
2841 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
2843 * autogen.sh: change to autotools 1.9
2845 * glib/dbus-gproxy.c: completely change how signals work
2846 (dbus_g_proxy_add_signal): new function to specify signature of a
2848 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
2849 and g_warning if the incoming message has the wrong signature.
2851 2005-01-30 Havoc Pennington <hp@redhat.com>
2853 * tools/dbus-names-model.c (have_names_notify): fix this
2855 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
2856 up the string array handling a bit
2858 2005-01-30 Havoc Pennington <hp@redhat.com>
2860 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
2861 (dbus_g_pending_call_cancel): new function
2863 * dbus/dbus-glib.h: move GType decls for connection/message here;
2864 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
2865 here, just kind of rationalizing how we handle all that
2867 * tools/dbus-names-model.c: new file for a tree model listing the
2870 * tools/dbus-tree-view.c (model_new): use proper typing on the
2873 2005-01-30 Havoc Pennington <hp@redhat.com>
2875 * glib/dbus-gmain.c: add a custom GSource back that just checks
2876 whether the message queue has anything in it; otherwise, there are
2877 cases where we won't see messages in the queue since there was no
2878 IO visible to the glib main loop
2880 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
2881 increase default message timeout to 25 seconds
2883 2005-01-30 Havoc Pennington <hp@redhat.com>
2885 * test/glib/test-profile.c (no_bus_stop_server): remove the
2886 warning about the g_warning that I just fixed
2888 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
2889 custom source, seems to be a lot easier to understand and work
2892 2005-01-30 Havoc Pennington <hp@redhat.com>
2894 I think this main loop thing is conceptually broken, but here are
2895 some band aids. I'll maybe rewrite it in a minute.
2897 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
2898 custom GSource, so don't pass it in; confusing
2899 (gsource_server_finalize, gsource_connection_finalize): add
2900 finalize handlers that remove all the watches.
2902 2005-01-30 Havoc Pennington <hp@redhat.com>
2904 * glib/dbus-gobject.c (introspect_properties): fix the XML
2907 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
2908 which effectively detects the use of freed messages
2910 * glib/dbus-gobject.c (handle_introspect): modify and return the
2911 reply message instead of the incoming message
2913 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
2914 gee, maybe it should SEND THE XML instead of just making a string
2915 and freeing it again ;-)
2917 * tools/dbus-print-message.c (print_message): improve printing of
2920 * configure.in: add debug-glib.service to the output
2922 2005-01-30 Havoc Pennington <hp@redhat.com>
2924 dbus-viewer introspected and displayed the bus driver
2926 * dbus/dbus-object-tree.c
2927 (object_tree_test_iteration): add tests for a handler registered on "/"
2929 * dbus/dbus-object-tree.c
2930 (_dbus_decompose_path): fix to handle path "/" properly
2931 (run_decompose_tests): add tests for path decomposition
2933 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
2936 * glib/dbus-gobject.c (handle_introspect): fix quotes
2938 * test/glib/run-test.sh: support launching the bus, then running
2941 * test/glib/test-service-glib.c (main): put in a trivial gobject
2942 subclass and register it on the connection
2944 * bus/driver.c (bus_driver_handle_introspect): implement
2945 introspection of the bus driver service
2947 * dbus/dbus-protocol.h: add #defines for the XML namespace,
2948 identifiers, doctype decl
2950 * bus/driver.c (bus_driver_handle_get_service_owner): handle
2951 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
2952 returning the service unchanged.
2953 (bus_driver_handle_message): remove old check for reply_serial in
2954 method calls, now the message type deals with that
2955 (bus_driver_handle_message): handle NULL interface
2957 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2959 * glib/dbus-gloader-expat.c (description_load_from_string): allow
2962 * tools/dbus-viewer.c: add support for introspecting a service on
2965 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2966 (dbus_g_pending_call_unref): add
2968 2005-01-29 Havoc Pennington <hp@redhat.com>
2970 * tools/dbus-tree-view.c: add support for displaying properties.
2971 (run dbus-viewer with an introspect xml file as arg, then resize
2972 the window so the tree elements show up, not sure what that is)
2974 * glib/dbus-gobject.c (handle_introspect): return
2975 org.freedesktop.Properties and org.freedesktop.Introspectable
2976 interfaces when we are introspected.
2978 * doc/dbus-specification.xml: allow empty interface name when
2981 2005-01-29 Havoc Pennington <hp@redhat.com>
2983 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2984 though it uses glib, it could be extended for any binding in
2987 * glib/dbus-gobject.c (gobject_message_function): change to the
2988 new way properties work
2990 * dbus/dbus-protocol.h: add the new interfaces
2992 * doc/dbus-specification.xml: document the introspection format,
2993 Introspectable interface, and add an org.freedesktop.Properties
2996 * glib/dbus-gparser.c: add support for a <property> element
2998 * glib/dbus-gidl.c: add PropertyInfo
3000 * glib/dbus-gobject.c (handle_introspect): put the outermost
3001 <node> outside the signal and property descriptions.
3002 (introspect_properties): export properties as <property> rather
3003 than as method calls
3005 2005-01-28 Havoc Pennington <hp@redhat.com>
3007 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3008 related to authentication protocol
3010 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3012 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3013 - BUS_ACTIVATION -> BUS_STARTER
3014 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3015 - class MessageIter (__init__): Added recursion checking
3016 so we throw a nice error instead of just disconnecting from the
3018 (get): Added arg_type parameter for recursion.
3019 Removed the nil type
3020 Added signiture type placeholder (not implemented)
3021 Added struct type placeholder (not implemented)
3022 Added varient type placeholder (not implemented)
3023 Commented out dict type for now
3024 (get_element_type): renamed from get_array_type
3025 (get_*): changed to use the dbus_message_iter_get_basic API
3026 (get_*_array): removed in favor of recursive get_array method
3027 (get_array): new recursive method which calls get to marshal
3028 the elements of the array
3029 (value_to_dbus_sig): New method returns the corrasponding
3030 dbus signiture to a python value
3031 (append): Comment out dict handling for now
3032 Handle lists with the new recursive API
3033 Comment out None handling for now
3034 (append_nil): removed
3035 (append_*): changed to use dbus_message_iter_append_basic API
3036 (append_*_array): removed in favor of recursive append_array
3038 (__str__): Make it easier to print out recursive iterators
3040 - class Message (__str__): moved type inspection to the
3041 MessageIter class' __str__ method
3042 (get_iter): Added an append parameter wich defaults to False
3043 If True use the new API's to create an append iterator
3045 * python/dbus.py: Update to use new bindings API
3046 - TYPE_ACTIVATION -> TYPE_STARTER
3047 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3048 - class ActivationBus -> class StarterBus
3049 - class RemoteObject (__call__): get an append iterator
3050 - (_dispatch_dbus_method_call): get an append iterator
3051 - class Object (emit_signal): get an append iterator
3053 * python/examples/: Fixed up the examples to work with the new API
3055 2005-01-28 Joe Shaw <joeshaw@novell.com>
3057 * configure.in: Bump version up to 0.30.
3059 * HACKING: Add a release item to bump the version number up after
3062 2005-01-28 Havoc Pennington <hp@redhat.com>
3064 * doc/dbus-specification.xml: update to describe 16-bit types and
3067 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3070 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3073 * dbus/dbus-marshal-recursive.c: implement
3075 2005-01-27 Havoc Pennington <hp@redhat.com>
3077 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3079 * configure.in: find the right type for 16 and 32 bit ints as well
3082 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3083 the 16-bit types so people don't have to stuff them in 32-bit or
3086 2005-01-27 Havoc Pennington <hp@redhat.com>
3088 * dbus/dbus-message.c: byteswap the message if you init an
3089 iterator to read/write from it
3091 * dbus/dbus-marshal-byteswap.c: new file implementing
3092 _dbus_marshal_byteswap()
3094 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3096 2005-01-26 Havoc Pennington <hp@redhat.com>
3098 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3099 build, apparently - nobody noticed?)
3101 2005-01-26 Havoc Pennington <hp@redhat.com>
3103 * dbus/dbus-marshal-recursive.h: remove todo comment
3105 2005-01-25 Joe Shaw <joeshaw@novell.com>
3107 * Land the mono binding changes to conform to the new APIs.
3109 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3110 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3112 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3113 type code as a string.
3114 (InitAppending): Rename dbus_message_append_iter_init() to
3115 dbus_message_iter_init_append().
3117 * mono/BusDriver.cs: Rename ServiceEventHandler to
3118 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3119 Rename ServiceOwnerChanged to NameOwnerChanged.
3121 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3124 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3126 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3127 dbus_bus_acquire_service() to dbus_bus_request_name().
3129 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3130 of Type.UnderlyingSystemType to get the correct element type for
3132 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3133 dbus_message_get_{element|arg}_type() instead of
3134 dbus_message_iter_init_array_iterator().
3135 (Append): Replace dbus_message_iter_append_array() with
3136 dbus_message_iter_open_container() and
3137 dbus_message_iter_close_container().
3139 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3140 types have been removed.
3142 * mono/DBusType/*.cs: Replace calls of
3143 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3144 but specify the type in the DllImport extern declaration. Ditto
3145 for dbus_message_iter_append_[type]() ->
3146 dbus_message_iter_append_basic().
3148 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3149 NameOwnerChangedHandler.
3151 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3153 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3154 - get_base_service -> get_unique_name
3155 - bus_get_base_service -> bus_get_unique_name
3156 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3157 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3158 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3159 - bus_activate_service -> bus_start_service_by_name
3160 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3161 - bus_acquire_service -> bus_request_name
3162 - dbus_bus_acquire_service -> dbus_bus_request_name
3163 - bus_service_exists -> bus_name_has_owner
3164 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3166 * python/dbus.py: Rename of methods
3167 - activate_service -> start_service_by_name
3168 - bus_acquire_service -> bus_request_name
3169 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3170 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3173 2005-01-24 Joe Shaw <joeshaw@novell.com>
3175 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3176 signature for the method that can't be found.
3178 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3179 the message has any arguments, we need to call
3180 _dbus_type_reader_get_current_type(), not
3181 _dbus_type_reader_has_next().
3183 2005-01-24 Havoc Pennington <hp@redhat.com>
3185 * dbus/dbus-message-factory.c: more testing of message validation
3187 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3190 2005-01-23 Havoc Pennington <hp@redhat.com>
3192 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3193 get this all working, not many tests in the framework yet though
3195 2005-01-22 Havoc Pennington <hp@redhat.com>
3197 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3198 tutorial, based on work from David Wheeler.
3200 2005-01-21 Havoc Pennington <hp@redhat.com>
3202 * dbus/dbus-bus.c: add more return_if_fail checks
3204 * dbus/dbus-message.c (load_message): have the "no validation"
3205 mode (have to edit the code to toggle the mode for now though)
3207 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3208 skips all validation; I want to use this at least for benchmark
3209 baseline, I'm not sure if it should be a publicly-available switch.
3211 2005-01-21 Havoc Pennington <hp@redhat.com>
3213 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3214 toplevel doxygen group as the low-level API stuff
3216 * dbus/dbus.h: note that libdbus is the low-level API
3218 2005-01-20 Havoc Pennington <hp@redhat.com>
3220 * update-dbus-docs.sh: script to update docs on the web site, only
3221 works for me though. neener.
3223 2005-01-20 Havoc Pennington <hp@redhat.com>
3225 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3226 code can reveal bugs in it
3228 2005-01-20 Havoc Pennington <hp@redhat.com>
3230 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3231 select() version, patches from Tor Lillqvist
3233 2005-01-20 Havoc Pennington <hp@redhat.com>
3235 * doc/dbus-tutorial.xml: replace > with >
3237 * bus/services.c (bus_registry_acquire_service): validate the name
3238 and return a better error if it's no good.
3240 * doc/dbus-specification.xml: note NO_AUTO_START change
3242 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
3243 from AUTO_START, we're toggling the default
3245 * bus/dispatch.c: adapt the tests to change of auto-start default
3247 2005-01-18 Havoc Pennington <hp@redhat.com>
3249 * rename dbus-daemon-1 to dbus-daemon throughout
3251 2005-01-18 Havoc Pennington <hp@redhat.com>
3253 * Throughout, grand renaming to strip out the use of "service",
3254 just say "name" instead (or "bus name" when ambiguous). Did not
3255 change the internal code of the message bus itself, only the
3256 programmer-facing API and messages.
3258 * doc/dbus-specification.xml: further update the message bus section
3260 * bus/config-parser.c (all_are_equiv): fix bug using freed string
3263 2005-01-17 Havoc Pennington <hp@redhat.com>
3265 * dbus/dbus-types.h: remove 16-bit types since we don't use them
3268 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
3269 "invalid name character" not only non-ASCII
3271 * doc/dbus-specification.xml: further update spec, message bus
3272 parts are still out-of-date but the marshaling etc. stuff is now
3275 2005-01-17 Havoc Pennington <hp@redhat.com>
3277 * doc/dbus-specification.xml: partially update spec
3279 2005-01-17 Havoc Pennington <hp@redhat.com>
3281 * Throughout, align variant bodies according to the contained
3282 type, rather than always to 8. Should save a fair bit of space in
3285 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
3286 fix handling of case where p == end
3288 * doc/TODO: remove the dbus_bool_t item and variant alignment items
3290 2005-01-17 Havoc Pennington <hp@redhat.com>
3292 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
3294 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
3295 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
3296 are marshaling/unmarshaling a boolean.
3298 2005-01-16 Havoc Pennington <hp@redhat.com>
3300 This is about it on what can be disabled/deleted from libdbus
3301 easily, back below 150K anyhow. Deeper cuts are more work than
3302 just turning the code off as I've done here.
3304 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
3305 signed int convenience funcs
3307 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
3310 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
3311 things out of libdbus
3313 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
3315 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
3316 tests-enabled-only, though it should probably be deleted)
3318 * dbus/dbus-message-util.c: same stuff
3320 * dbus/dbus-auth-util.c: same stuff
3322 2005-01-16 Havoc Pennington <hp@redhat.com>
3324 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
3326 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
3327 way for stripping down dbus-userdb.c stuff included in libdbus.
3328 Rename _dbus_parse_uid for consistency.
3330 2005-01-16 Havoc Pennington <hp@redhat.com>
3332 * dbus/dbus-internals.c (_dbus_real_assert): print the function
3333 name the assertion failed in
3335 * dbus/dbus-internals.h (_dbus_return_if_fail)
3336 (_dbus_return_val_if_fail): assert that the name of the function
3337 containing the check doesn't start with '_', since we only want to
3338 use checks on public functions
3340 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
3341 checks to assertions
3343 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
3344 change checks to asserts for private function
3346 * dbus/dbus-message.c (_dbus_message_set_serial): checks
3347 to asserts for private function
3349 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
3350 broken assertion that was breaking make check
3351 (_dbus_type_reader_array_is_empty): remove this rather than fix
3352 it, was only used in assertions
3354 2005-01-16 Havoc Pennington <hp@redhat.com>
3356 * test/unused-code-gc.py: hacky script to find code that's used
3357 only by the bus (not libdbus) or used only by tests or not used at
3358 all. It has some false alarms, but looks like we can clean up a
3359 lot of size from libdbus.
3361 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
3362 dbus/Makefile.am: initially move 10K of binary size out of libdbus
3364 2005-01-16 Havoc Pennington <hp@redhat.com>
3366 * Add and fix docs according to Doxygen warnings throughout
3369 * dbus/dbus-marshal-recursive.c
3370 (_dbus_type_reader_array_is_empty): change this to just call
3371 array_reader_get_array_len() and make it static
3373 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
3375 (dbus_message_iter_init_append): rename from append_iter_init
3377 * dbus/dbus-marshal-recursive.c
3378 (_dbus_type_reader_get_element_type): rename from
3379 _dbus_type_reader_get_array_type
3381 2005-01-15 Havoc Pennington <hp@redhat.com>
3383 * test/glib/test-profile.c (with_bus_server_filter): fix crash
3385 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
3386 when DBUS_DISABLE_ASSERT
3387 (_dbus_marshal_set_basic): be sure we align for the string length
3389 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
3392 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
3393 inline macro version
3394 (_dbus_string_set_byte): provide inline macro version
3396 2005-01-15 Havoc Pennington <hp@redhat.com>
3398 * Land the new message args API and type system.
3400 This patch is huge, but the public API change is not
3401 really large. The set of D-BUS types has changed somewhat,
3402 and the arg "getters" are more geared toward language bindings;
3403 they don't make a copy, etc.
3405 There are also some known issues. See these emails for details
3407 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
3408 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
3410 * dbus/dbus-marshal-*: all the new stuff
3412 * dbus/dbus-message.c: basically rewritten
3414 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
3415 freed blocks to be all non-nul bytes so using freed memory is less
3416 likely to work right
3418 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
3419 DBUS_FAIL_MALLOC=N environment variable, so you can do
3420 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
3421 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
3424 * qt/message.cpp: port to the new message args API
3425 (operator<<): use str.utf8() rather than str.unicode()
3426 (pretty sure this is right from the Qt docs?)
3428 * glib/dbus-gvalue.c: port to the new message args API
3430 * bus/dispatch.c, bus/driver.c: port to the new message args API
3432 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
3433 "locked" flag to TRUE and align_offset to 0; I guess we never
3434 looked at these anyhow, but seems cleaner.
3436 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
3437 move allocation padding macro to this header; use it to implement
3438 (_DBUS_STRING_STATIC): ability to declare a static string.
3440 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
3441 change to return TRUE if the interface is not set.
3443 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
3444 to dbus-marshal-validate.[hc]
3446 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
3449 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
3450 to dbus-marshal-*.[hc]
3452 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
3453 function here from dbus-marshal.c
3455 2005-01-12 Joe Shaw <joeshaw@novell.com>
3457 * NEWS: Update for 0.23.
3459 * configure.in: Release 0.23.
3461 2005-01-12 Joe Shaw <joeshaw@novell.com>
3463 * mono/Makefile.am, mono/example/Makefile.am: Always build the
3464 dbus DLL with --debug. Clean up after the .mdb files this leaves
3467 * mono/doc/Makefile.am: Need to uninstall the docs on "make
3470 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
3471 is an enum, get the enum's underlying type. Another mono
3474 2005-01-11 Joe Shaw <joeshaw@novell.com>
3476 Patch from Sjoerd Simons <sjoerd@luon.net>
3478 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
3479 DESTDIR. It breaks stuff.
3481 2005-01-11 Joe Shaw <joeshaw@novell.com>
3483 Patch from Tambet Ingo <tambet@ximian.com>
3485 * mono/DBusType/Array.cs (Get): Get the underlying element type by
3486 calling type.GetElementType(). The code previously depended on
3487 broken Mono behavior, which was fixed in Mono 1.1.3.
3489 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
3490 Activator.CreateInstance() so that the class's constructor is
3491 called with the right parameters.
3493 2005-01-11 Joe Shaw <joeshaw@novell.com>
3495 Patch from Timo Teräs <ext-timo.teras@nokia.com>
3497 * dbus/dbus-connection.c
3498 (_dbus_connection_queue_received_message_link): Call
3499 _dbus_connection_remove_timeout() instead of the _locked()
3500 variant, since it's always called from
3501 _dbus_connection_handle_watch(), which handles the locking.
3502 Removed the _locked() variant since it's no longer used.
3504 2005-01-03 Havoc Pennington <hp@redhat.com>
3506 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
3509 2004-12-26 Havoc Pennington <hp@redhat.com>
3511 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
3513 2005-01-03 Havoc Pennington <hp@redhat.com>
3515 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
3518 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
3520 2005-01-02 Havoc Pennington <hp@redhat.com>
3522 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
3524 2005-01-01 Havoc Pennington <hp@redhat.com>
3526 * configure.in: add -Wfloat-equal
3528 2005-01-01 Havoc Pennington <hp@redhat.com>
3530 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
3531 for a variety of reasons '==' doesn't do this.
3533 2004-12-31 Havoc Pennington <hp@redhat.com>
3535 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
3536 I keep wishing I had
3538 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3540 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
3542 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
3544 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
3545 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
3546 dbus-protocol.h. Because they are defines and not enums they are not
3549 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
3551 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
3552 dbus_bus_activate_service
3554 * python/dbus.py (Bus.activate_service): activate a service on the
3557 2004-12-24 Havoc Pennington <hp@redhat.com>
3559 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
3560 file format has also changed and I haven't adapted to that yet
3562 * Makefile.am: load .gcno files from latest gcc
3564 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
3565 * Patch from Rob Taylor <robtaylor@fastmail.fm>
3567 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
3570 * python/dbus.py (get_unix_user): Added binding to
3571 call dbus_bindings.bus_get_unix_user
3573 * python/extract.py: Modified the proto_pat regex to
3574 handle unsigned long
3576 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3578 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
3579 better POSIX compliance.
3581 2004-12-19 Havoc Pennington <hp@redhat.com>
3583 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
3584 (_dbus_string_insert_8_aligned): new functions
3586 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
3588 2004-12-18 Havoc Pennington <hp@redhat.com>
3590 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
3593 * dbus/dbus-message.c: fix a comment, and add a still-unused
3594 not-implemented function
3596 * dbus/dbus-marshal.h: fix comment
3598 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
3600 2004-12-17 Joe Shaw <joeshaw@novell.com>
3602 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
3603 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
3604 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
3605 Type.UnderlyingSystemType to get the actual system type
3606 underneath. This code previously depended on the broken Mono
3607 behavior, which was fixed in 1.1.3.
3609 2004-11-27 Havoc Pennington <hp@redhat.com>
3611 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
3613 (_dbus_string_get_const_data): inline when asserts are disabled
3615 * dbus/dbus-message.c: record the _dbus_current_generation of
3616 creation so we can complain if dbus_shutdown() is used improperly.
3617 Do this only if checks are enabled.
3619 * dbus/dbus-connection.c: ditto
3621 2004-11-26 Havoc Pennington <hp@redhat.com>
3623 * test/glib/test-profile.c: add with_bus mode to profile echoes
3624 that go through the bus.
3626 * test/glib/run-test.sh: add ability to run test-profile
3628 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
3631 2004-11-26 Havoc Pennington <hp@redhat.com>
3633 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
3634 thing was implemented
3636 2004-11-26 Havoc Pennington <hp@redhat.com>
3638 * test/glib/test-profile.c: tweak a bit, add support for some
3639 made-up minimal malloc overhead with plain sockets, since in
3640 real life some sort of buffers are unavoidable thus we could
3641 count them in the theoretical best case
3643 2004-11-26 Havoc Pennington <hp@redhat.com>
3645 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
3646 where I was trying to cache one too many messages
3648 2004-11-26 Havoc Pennington <hp@redhat.com>
3650 * dbus/dbus-message.c: reimplement message cache as an array which
3651 makes the cache about twice as fast and saves maybe 1.5% overall
3653 2004-11-26 Havoc Pennington <hp@redhat.com>
3655 * dbus/dbus-threads.c (init_global_locks): forgot to put the
3656 message cache lock here
3658 2004-11-26 Havoc Pennington <hp@redhat.com>
3660 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
3661 the "char byte_order" next to each other to save 4 bytes
3662 (dbus_message_new_empty_header): reduce preallocation, since the
3663 message cache should achieve a similar effect
3664 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
3665 message cache that keeps a few DBusMessage around in a pool,
3666 another 8% speedup or so.
3668 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
3670 2004-11-25 Havoc Pennington <hp@redhat.com>
3672 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
3673 to write, without reading or blocking, try it before the poll()
3674 and skip the poll() if nothing remains to write. This is about a
3675 3% speedup in the echo client/server
3677 2004-11-25 Havoc Pennington <hp@redhat.com>
3679 The primary change here is to always write() once before adding
3680 the write watch, which gives us about a 10% performance increase.
3682 * dbus/dbus-transport-unix.c: a number of modifications to cope
3683 with removing messages_pending
3684 (check_write_watch): properly handle
3685 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
3686 messages_pending stuff
3687 (check_read_watch): properly handle WAITING_FOR_MEMORY and
3689 (unix_handle_watch): after writing, see if the write watch can be
3691 (unix_do_iteration): assert that write_watch/read_watch are
3692 non-NULL rather than testing that they aren't, since they
3693 aren't allowed to be NULL. check_write_watch() at the end so
3694 we add the watch if we did not finish writing (e.g. got EAGAIN)
3696 * dbus/dbus-transport-protected.h: remove messages_pending call,
3697 since it resulted in too much inefficient watch adding/removing;
3698 instead we now require that the transport user does an iteration
3699 after queueing outgoing messages, and after trying the first
3700 write() we add a write watch if we got EAGAIN or exceeded our
3701 max bytes to write per iteration setting
3703 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
3706 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
3707 freed and then accessed, valgrind flagged this bug, fix it
3709 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
3710 as the last valid field plus 1, where really it is equal to the
3711 last valid field. Corrects some message corruption issues.
3713 * dbus/dbus-mainloop.c: verbosity changes
3715 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
3716 instead of aborting in one of the test codepaths
3718 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
3719 caused not printing the pid ever again if a verbose was missing
3720 the newline at the end
3721 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
3723 * dbus/dbus-connection.c: verbosity changes;
3724 (dbus_connection_has_messages_to_send): new function
3725 (_dbus_connection_message_sent): no longer call transport->messages_pending
3726 (_dbus_connection_send_preallocated_unlocked): do one iteration to
3727 try to write() immediately, so we can avoid the write watch. This
3728 is the core purpose of this patchset
3729 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
3730 dump the outgoing message queue, so nobody will get confused
3731 trying to send them or thinking stuff is pending to be sent
3733 * bus/test.c: verbosity changes
3735 * bus/driver.c: verbosity/assertion changes
3737 * bus/dispatch.c: a bunch of little tweaks to get it working again
3738 because this patchset changes when/where you need to block.
3740 2004-11-23 Havoc Pennington <hp@redhat.com>
3742 * test/glib/test-profile.c: modify to accept a plain_sockets
3743 argument in which case it will bench plain sockets instead of
3744 libdbus, for comparison purposes.
3746 2004-11-22 Havoc Pennington <hp@redhat.com>
3748 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
3749 threads for more time, so sysprof can get a grip on it.
3751 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
3754 2004-11-13 Havoc Pennington <hp@redhat.com>
3756 * test/glib/test-profile.c: fix this thing up a bit
3758 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
3759 preallocation sizes by a fair bit; not sure if this will be an
3760 overall performance win or not, but it does reduce reallocs.
3762 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
3763 the test hack that forced constant realloc if asserts are
3764 disabled, so we can profile sanely. Sprinkle in some
3765 _DBUS_UNLIKELY() which are probably pointless, but before I
3766 noticed the real performance problem I put them in.
3767 (_dbus_string_validate_utf8): micro-optimize this thing a little
3768 bit, though callgrind says it didn't help; then special-case
3769 ascii, which did help a lot; then be sure we detect nul bytes as
3770 invalid, which is a bugfix.
3771 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
3772 superstition; use memset to nul the padding instead of a manual
3774 (_dbus_string_get_length): inline this as a
3775 macro; it showed up in the profile because it's used for loop
3778 2004-11-10 Colin Walters <walters@verbum.org>
3780 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
3783 2004-11-09 Colin Walters <walters@verbum.org>
3785 * dbus/dbus-string.c (_dbus_string_get_length): New
3786 function, writes DBusString to C buffer.
3788 * dbus/dbus-string.h: Prototype it.
3790 * dbus/dbus-message.c (dbus_message_type_to_string): New
3791 function, converts message type into C string.
3793 * dbus/dbus-message.h: Prototype it.
3795 * bus/selinux.c (bus_selinux_check): Take source pid,
3796 target pid, and audit data. Pass audit data to
3798 (log_audit_callback): New function, appends extra
3800 (bus_selinux_allows_acquire_service): Also take
3801 service name, add it to audit data.
3802 (bus_selinux_allows_send): Also take message
3803 type, interface, method member, error name,
3804 and destination, and add them to audit data.
3805 (log_cb): Initialize func_audit.
3807 * bus/selinux.h (bus_selinux_allows_acquire_service)
3808 (bus_selinux_allows_send): Update prototypes
3810 * bus/services.c (bus_registry_acquire_service): Pass
3811 service name to bus_selinux_allows_acquire_service.
3813 * bus/bus.c (bus_context_check_security_policy): Pass
3814 additional audit data. Move assignment of dest
3817 2004-11-07 Colin Walters <walters@verbum.org>
3819 * dbus/dbus-transport-unix.c (do_authentication): Always
3820 initialize auth_completed.
3822 2004-11-07 Colin Walters <walters@verbum.org>
3824 * bus/bus.c (load_config): Break into three
3825 separate functions: process_config_first_time_only,
3826 process_config_every_time, and process_config_postinit.
3827 (process_config_every_time): Move call of
3828 bus_registry_set_service_context_table into
3829 process_config_postinit.
3830 (process_config_postinit): New function, does
3831 any processing that needs to happen late
3832 in initialization (and also on reload).
3833 (bus_context_new): Instead of calling load_config,
3834 open config parser here and call process_config_first_time_only
3835 and process_config_every_time directly. Later, after
3836 we have forked but before changing UID,
3837 invoke bus_selinux_full_init, and then call
3838 process_config_postinit.
3839 (bus_context_reload_config): As in bus_context_new,
3840 load parse file inside here, and call process_config_every_time
3841 and process_config_postinit.
3843 * bus/services.h, bus/services.c
3844 (bus_registry_set_service_context_table): Rename
3845 from bus_registry_set_sid_table. Take string hash from config
3846 parser, and convert them here into SIDs.
3848 * bus/config-parser.c (struct BusConfigParser): Have
3849 config parser only store a mapping of service->context
3851 (merge_service_context_hash): New function.
3852 (merge_included): Merge context string hashes instead
3853 of using bus_selinux_id_table_union.
3854 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
3855 simply create a new string hash.
3856 (bus_config_parser_unref): Unref it.
3857 (start_selinux_child): Simply insert strings into hash,
3858 don't call bus_selinux_id_table_copy_over.
3860 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
3861 (bus_selinux_id_table_copy_over): Delete.
3863 2004-11-03 Colin Walters <walters@verbum.org>
3865 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
3868 2004-11-03 Colin Walters <walters@verbum.org>
3870 * bus/test-main.c (test_pre_hook): Fix test logic,
3871 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
3873 2004-11-02 Colin Walters <walters@redhat.com>
3875 * bus/selinux.c (bus_selinux_init): Split into two functions,
3876 bus_selinux_pre_init and bus_selinux_post_init.
3877 (bus_selinux_pre_init): Just determine whether SELinux is
3879 (bus_selinux_post_init): Do everything else.
3881 * bus/main.c (main): Call bus_selinux_pre_init before parsing
3882 config file, and bus_selinux_post_init after. This ensures that
3883 we don't lose the policyreload notification thread that
3884 bus_selinux_init created before forking previously.
3886 * bus/test-main.c (test_pre_hook): Update for split.
3888 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
3890 Patch from Johan Fischer <linux@fischaz.com>
3892 * mono/doc/Makefile.am (install-data-local): Added directory
3895 2004-10-29 Colin Walters <walters@redhat.com>
3897 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
3898 parameter for fd to write pid to.
3900 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
3902 * bus/bus.c (bus_context_new): Pass print_pid_fd
3903 to _dbus_become_daemon (bug #1720)
3905 2004-10-29 Colin Walters <walters@redhat.com>
3907 Patch from Ed Catmur <ed@catmur.co.uk>
3909 * mono/doc/Makefile.am (install-data-local): Handle
3912 2004-10-29 Colin Walters <walters@redhat.com>
3914 * bus/.cvsignore, qt/.cvsignore: Update.
3916 2004-10-29 Colin Walters <walters@redhat.com>
3918 Patch from Kristof Vansant <de_lupus@pandora.be>
3920 * configure.in: Detect Slackware.
3921 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
3922 * bus/rc.messagebus.in: New file.
3924 2004-10-29 Colin Walters <walters@redhat.com>
3926 * tools/dbus-monitor.c (filter_func): Return
3927 DBUS_HANDLER_RESULT_HANDLED in filter function
3929 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
3931 2004-10-29 Colin Walters <walters@redhat.com>
3933 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
3935 * bus/services.c (bus_registry_acquire_service):
3936 Correctly retrieve service name from DBusString
3939 2004-10-29 Colin Walters <walters@redhat.com>
3941 * dbus/dbus-glib.h: Update documentation to not
3942 refer to internal APIs.
3944 2004-10-27 Joe Shaw <joeshaw@novell.com>
3946 * mono/Arguments.cs (GetDBusTypeConstructor):
3947 type.UnderlyingSystemType will return "System.Byte" if you do it
3948 on "byte[]", which is not what we want. So check the type.IsArray
3949 property and use System.Array instead.
3951 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
3953 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3954 the DBusUserInfo structure since this is passed into the function.
3955 This would cause a double free when the function that allocated
3956 the structure would try to free it when an error occured.
3958 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3959 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3960 for service activation to avoid 32bit/64bit parallel install issues
3962 2004-10-21 Colin Walters <walters@verbum.org>
3964 * AUTHORS: Fix my email address, the @gnu.org one
3965 has been bouncing for some time. Also add J5.
3967 2004-10-21 Colin Walters <walters@verbum.org>
3969 * dbus/dbus-transport-unix.c (do_authentication): Return
3970 authentication status to callers.
3971 (unix_handle_watch): If we completed authentication this round,
3972 don't do another read. Instead wait until the next iteration,
3973 after we've read any pending data in the auth buffer.
3974 (unix_do_iteration): Ditto.
3975 (unix_handle_watch): Updated for new do_authentication prototype.
3977 2004-10-18 Colin Walters <walters@verbum.org>
3979 * bus/selinux.c (bus_selinux_enabled): Handle
3980 --disable-selinux case.
3982 2004-10-18 Colin Walters <walters@verbum.org>
3984 * bus/selinux.h: Add bus_selinux_enabled.
3986 * bus/selinux.c (bus_selinux_enabled): Implement it.
3988 * bus/config-parser.c (struct include): Add
3989 if_selinux_enabled member.
3990 (start_busconfig_child): Parse if_selinux_enabled
3991 attribute for include.
3992 (bus_config_parser_content): Handle it.
3994 * bus/session.conf.in, bus/system.conf.in: Add
3995 inclusion of context mapping to default config files;
3996 conditional on SELinux being enabled.
3998 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4000 * test/data/invalid-config-files/badselinux-1.conf,
4001 test/data/invalid-config-files/badselinux-2.conf:
4002 Test files for bad syntax.
4004 2004-10-17 Colin Walters <walters@verbum.org>
4006 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4007 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4008 format specifier mismatches.
4010 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4012 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4015 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4016 pointer (bug #1540, Leonardo Boiko).
4018 2004-09-28 Jon Trowbridge <trow@ximian.com>
4020 * mono/BusDriver.cs: Changed BusDriver struct to remove
4021 the ServiceCreated and ServiceDeleted events and replace them
4022 with the new ServiceOwnerChanged event.
4024 * mono/example/BusListener.cs: Added a new example program,
4025 which listens for and reports any ServiceOwnerChanged events
4028 * mono/example/Makefile.am (DESTDIR): Build changes for the
4029 new BusListener.cs example.
4031 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4033 * bus/signals.c (bus_match_rule_parse): validate the components of
4034 match rules (bug #1439).
4036 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4038 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4040 * doc/dbus-specification.xml: document ServiceOwnerChanged
4043 * bus/driver.c, bus/driver.h, bus/services.c: Use
4044 ServiceOwnerChanged signal instead of ServiceCreated and
4047 * bus/dispatch.c: update testcase for the new signal.
4049 2004-09-20 Jon Trowbridge <trow@ximian.com>
4051 Patch from Nat Friedman <nat@novell.com>
4053 * mono/Makefile.am: A number of small build fixes to allow "make
4054 distcheck" to succeed.
4056 * mono/example/Makefile.am: "make distcheck" fixes.
4058 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4061 * test/Makefile.am: "make distcheck" fixes.
4063 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4065 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4067 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4069 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4070 messages after the first one (bug #1389).
4072 * bus/dispatch.c (check_double_hello_message): add a test case for
4073 the double hello message bug.
4074 (check_existent_service_activation): fix check of spawning error.
4076 2004-09-16 David Zeuthen <david@fubar.dk>
4078 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4080 2004-09-12 David Zeuthen <david@fubar.dk>
4082 Patch from Kay Sievers <kay.sievers@vrfy.org>
4084 * bus/bus.c (bus_context_new):
4086 * bus/main.c (usage)
4088 Add commandline option --nofork to override configuration file
4091 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4093 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4094 compilers don't like it (bug #974).
4096 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4098 * qt/connection.*: Applied patch by Jérôme Lodewyck
4099 <lodewyck@clipper.ens.fr> to integrate an existing
4100 connection into the Qt eventloop
4102 2004-08-30 Jon Trowbridge <trow@ximian.com>
4104 * mono/BusDriver.cs: Added. This is a class for interacting with
4105 the org.freedesktop.DBus service.
4107 * mono/Message.cs: Added a mechanism to expose the message that is
4108 currently being dispatched via the static Message.Current
4109 property. Added Message.Sender and Message.Destination
4112 * mono/Handler.cs: Expose the dispatched message via
4113 Message.Current when handling method calls.
4115 * mono/Service.cs: Expose the dispatched message via
4116 Message.Current when handling signal emissions.
4118 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4119 Connection.BaseService property.
4121 2004-08-28 Havoc Pennington <hp@redhat.com>
4123 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4125 More fixes from Steve Grubb
4127 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4128 (_dbus_listen_tcp_socket): fix fd leak
4130 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4131 EINTR to a bit lower in the code
4133 2004-08-26 Jon Trowbridge <trow@ximian.com>
4135 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4136 TRUE if we are inquiring about the existence of the built-in
4137 org.freedesktop.DBus service.
4139 2004-08-25 John Palmieri <johnp@redhat.com>
4140 * bus/config-parser.c:
4141 (struct PolicyType): Add POLICY_CONSOLE
4142 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4143 (start_busconfig_child): Sets up console element when
4144 <policy at_console=""> is encountered in a policy file
4145 (append_rule_from_element): Convert console elements to console
4149 (bus_policy_create_client_policy): Add console rules to the client
4150 policy based on if the client is at the console
4151 (bus_policy_append_console_rule): New function for adding a
4152 console rule to a policy
4153 (bus_policy_merge): Handle console rule merging
4155 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4156 where we check for console user files
4158 * dbus/dbus-sysdeps.c:
4159 (_dbus_file_exists): New function which checks if the given
4161 (_dbus_user_at_console): New function which does the system
4162 specific process of checking if the user is at the console
4164 * dbus/dbus-userdb.c:
4165 (_dbus_is_console_user): New function converts a UID to user name
4166 and then calls the system specific _dbus_user_at_console to
4167 see if the user is at the console and therefor a console user
4169 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4171 * bus/config-parser.c (set_limit):
4172 * bus/dbus-daemon-1.1.in:
4173 * test/data/valid-config-files/many-rules.conf: set the
4174 max_match_rules_per_connection limt from the config file.
4176 * doc/busconfig.dtd: update the DTD.
4178 * bus/driver.c: remove some unused variables.
4180 2004-08-24 Mikael Hallendal <micke@imendio.com>
4182 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4183 it's been replaced by dbus_g_bus_get
4185 2004-08-23 Colin Walters <walters@redhat.com>
4187 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4189 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4191 * bus/selinux.c: Create a thread for policy reload notification.
4192 (bus_selinux_get_policy_root): Implement.
4194 * bus/config-parser.c (start_busconfig_child)
4195 (bus_config_parser_content): Support SELinux-root relative
4198 * configure.in <HAVE_SELINUX>: Add -lpthread.
4200 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4201 (test_post_hook): Move memory checking into here.
4202 (test_pre_hook, test_post_hook): Move SELinux checks in
4203 here, but conditional on a DBUS_TEST_SELINUX environment
4204 variable. Unfortunately we can't run the SELinux checks
4205 as a normal user, since they won't have any permissions
4206 for /selinux. So this will have to be tested manually
4207 for now, until we have virtualization for most of
4210 2004-08-23 Havoc Pennington <hp@redhat.com>
4212 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4213 drop supplementary groups, suggested by Steve Grubb
4215 2004-08-20 Colin Walters <walters@redhat.com>
4217 * bus/config-parser.c (start_busconfig_child): Remove some unused
4220 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4223 2004-08-17 Joe Shaw <joeshaw@novell.com>
4225 * configure.in: If --enable-mono is passed in, if we can't find
4228 * mono/Makefile.am: Use /gacutil to install assemblies into the
4231 2004-08-12 Havoc Pennington <hp@redhat.com>
4233 * NEWS: update for 0.22
4235 * configure.in: release 0.22
4237 2004-08-11 Colin Walters <walters@redhat.com>
4239 * tools/dbus-send.c (main, usage): Add --reply-timeout
4242 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
4244 * bus/bus.c (process_config_first_time_only): get rid of an unused
4245 DBusError that was causing a memoy leak (bug #989).
4247 * dbus/dbus-keyring.c, dbus/dbus-message.c:
4248 fix compilation on Solaris/Forte C (bug #974)
4250 * bus/main.c (main): plug two minuscule memleaks.
4252 2004-08-10 Havoc Pennington <hp@redhat.com>
4254 * doc/dbus-tutorial.xml: add some more info on GLib bindings
4256 2004-08-09 Havoc Pennington <hp@redhat.com>
4258 * COPYING: switch to Academic Free License version 2.1 instead of
4259 2.0, to resolve complaints about patent termination clause.
4261 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
4263 * README: added documentation for the --enable-python
4266 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4268 * bus/config-parser.c (bus_config_parser_new): fix an invalid
4269 _unref in the SELinux support.
4271 * doc/busconfig.dtd: update DTD for SELinux support.
4273 * bus/config-loader-libxml.c: fix error handler and parser
4274 initialisation/cleanup. OOM test now works with libxml2 HEAD.
4276 * configure.in: remove the warning about libxml2.
4278 * dbus/dbus-bus.c: silence doxygen warning.
4280 2004-07-31 Colin Walters <walters@redhat.com>
4282 * configure.in: Move #error in SELinux check to its own line.
4284 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
4286 * dbus/dbus-internals.h (_DBUS_SET_OOM):
4287 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
4290 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
4291 broken by the change in the _SET_OOM macros.
4293 2004-07-31 Colin Walters <walters@redhat.com>
4295 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
4298 2004-07-31 Colin Walters <walters@redhat.com>
4300 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
4301 to correctly detect DBUS__ACQUIRE_SVC. Also add an
4304 2004-07-24 Havoc Pennington <hp@redhat.com>
4306 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4308 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
4311 * configure.in: add --enable-selinux
4313 * bus/policy.c (bus_policy_merge): add FIXME to a comment
4315 * bus/main.c (main): initialize and shut down selinux
4317 * bus/connection.c: store SELinux ID on each connection, to avoid
4318 repeated getting of the string context and converting it into
4321 * bus/bus.c (bus_context_get_policy): new accessor, though it
4323 (bus_context_check_security_policy): check whether the security
4324 context of sender connection can send to the security context of
4325 recipient connection
4327 * bus/config-parser.c: add parsing for <selinux> and <associate>
4329 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
4330 implement dbus_connection_get_unix_fd()
4332 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
4333 function, used by the selinux stuff
4335 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
4337 * bus/config-loader-libxml.c: complete the implementation of
4338 libxml backend for config file loader. Doesn't work with full OOM
4341 * configure.in: change error when selecting libxml into a warning.
4343 * test/data/invalid-config-files: add two non-well-formed XML
4346 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
4348 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
4349 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
4350 be necessary to read all the buffer. (bug #894)
4352 * bus/activation.c (bus_activation_activate_service): fix a
4353 potential assertion failure (bug #896). Small optimization in the
4354 case of auto-activation messages.
4356 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
4357 add test case for byte-through-vararg bug (#901). patch by Kimmo
4360 2004-07-28 Anders Carlsson <andersca@gnome.org>
4363 * python/dbus_bindings.pyx.in:
4364 Add dbus.init_gthreads (), allow emit_signal to pass
4365 arguments to the signal.
4367 2004-07-24 Havoc Pennington <hp@redhat.com>
4369 * AUTHORS: add some people, not really comprehensively, let me
4370 know if I missed you
4372 2004-07-24 Havoc Pennington <hp@redhat.com>
4374 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
4377 * test/Makefile.am (DIST_SUBDIRS): here also
4379 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4381 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
4382 breaking build on Solaris, reported by Farhad Saberi on the ML.
4384 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
4385 va_arg invocation to account for integer promotion in the case of
4386 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
4388 * bus/services.c (bus_service_remove_owner): fix bug #902, use
4389 _dbus_list_get_first_link, not _dbus_list_get_first.
4391 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
4393 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
4394 handler functions so that the asserts in _dbus_object_subtree_unref
4397 * dbus/dbus-transport-unix.c (do_reading):
4398 _dbus_transport_queue_messages return value is of type
4399 dbus_bool_t, not DBusDispatchStatus.
4401 2004-07-19 David Zeuthen <david@fubar.dk>
4403 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
4406 (check_get_connection_unix_user): Debug says GetProperty; but the
4407 method is called GetConnectionUnixUser
4408 (check_get_connection_unix_process_id): New function
4409 (bus_dispatch_test): Actually call check_get_connection_unix_user();
4410 also call check_get_connection_unix_process_id()
4413 (bus_driver_handle_get_connection_unix_process_id): New function,
4414 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
4418 (handle_server_data_external_mech): Set pid from the credentials
4419 obtained from the socket
4421 * dbus/dbus-connection.c:
4422 (dbus_connection_get_unix_process_id): New function
4424 * dbus/dbus-connection.h:
4425 Add prototype for dbus_connection_get_unix_process_id
4427 * dbus/dbus-transport.c:
4428 (_dbus_transport_get_unix_process_id): New function
4430 * dbus/dbus-transport.h:
4431 Add prototype for _dbus_transport_get_unix_process_id
4433 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
4435 * dbus/dbus-message.c: Message counter fix, patch by Christian
4436 Hammond <chipx86@gnupdate.org>
4438 2004-07-18 Seth Nickell <seth@gnome.org>
4441 * python/dbus_bindings.pyx.in:
4442 * python/tests/test-client.py:
4444 Add dbus.ByteArray and dbus_bindings.ByteArray
4445 types so that byte streams can be passed back.
4447 Give jdahlin the heaps of credit that are so
4450 2004-07-12 Seth Nickell <seth@gnome.org>
4454 Add message argument to the default object_method_handler
4457 * python/dbus_bindings.pyx.in:
4459 Automatically return NIL when passed an empty list
4460 (we can't pass back a list since lists are typed
4461 and we don't have any idea what type the the client
4462 intended the list to be... :-( )
4464 2004-07-10 Seth Nickell <seth@gnome.org>
4466 * python/examples/Makefile.am:
4468 Fix distcheck breakage caused by new examples.
4470 2004-07-10 Seth Nickell <seth@gnome.org>
4474 Add "message" argument to service-side dbus.Object
4475 methods. This will break existing services written
4476 using the python bindings, but will allow extraction
4477 of all the message information (e.g. who its from).
4479 Add improved "object oriented" signal handling/emission.
4481 * python/examples/example-service.py:
4485 * python/examples/example-signal-emitter.py:
4486 * python/examples/example-signal-recipient.py:
4488 Two new examples that show how to emit and receive
4489 signals using the new APIs.
4491 * python/examples/example-signals.py:
4492 * python/examples/gconf-proxy-service.py:
4493 * python/examples/gconf-proxy-service2.py:
4495 Add "message" argument to service methods.
4497 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
4499 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
4500 * dbus/bus.c (dbus_bus_get_unix_user)
4501 * doc/dbus-specification.xml: implement GetConnectionUnixUser
4502 method of org.freedesktop.DBus interface.
4504 * bus/dispatch.c: test case
4506 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
4508 * python/Makefile.am: switched include directory from glib/ to dbus/
4509 since dbus-glib.h moved
4511 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
4513 * configure.in: prevent building the gcj stuff and libxml loader
4514 since they are broken.
4516 2004-06-20 Havoc Pennington <hp@redhat.com>
4518 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
4519 codes from the dbus error names
4521 * glib/dbus-glib.h: move to subdir dbus/ since it's included
4522 as dbus/dbus-glib.h and that breakage is now visible due to
4523 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
4525 * glib/dbus-glib.h: s/gproxy/g_proxy/
4527 * dbus/dbus-shared.h: new header to hold stuff shared with
4530 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
4533 * glib/dbus-glib.h (dbus_set_g_error): move to
4534 dbus-glib-lowlevel.h
4536 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
4537 of stuff to enable this
4539 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
4541 * a bunch of other changes with the same basic "separate glib
4542 bindings from dbus.h" theme
4544 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
4546 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
4548 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
4550 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4552 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
4553 the reply value of the ServiceExists message.
4555 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
4557 * python/dbus_bindings.pyx.in: No longer need to parse path
4558 elements and pass them as arrays of strings. The C API now
4559 accepts plain path strings.
4560 (_build_parsed_path): removed
4562 2004-06-07 Havoc Pennington <hp@redhat.com>
4564 * doc/TODO: remove auto-activation item since it's done; sort
4565 items by importance/milestone
4567 2004-06-07 Havoc Pennington <hp@redhat.com>
4569 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
4570 random signature when using REQUIRED_FIELDS (this hack won't work
4573 * dbus/dbus-message.c: change the signature to be a header field,
4574 instead of message->signature special-case string. Incremental
4575 step forward. Then we can fix up code to send the signature in the
4576 message, then fix up code to validate said signature, then fix up
4577 code to not put the typecodes inline, etc.
4578 (load_one_message): don't make up the signature after the fact
4579 (decode_header_data): require signature field for the known
4582 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
4584 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
4586 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
4588 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
4590 * mono/Handler.cs: Updated to follow new path argument for
4591 (un-)registering objects.
4593 * mono/example/Makefile.am:
4595 * configure.in: Bumped required version for mono and use new -pkg
4598 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
4600 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
4601 registration functions take the path argument as char* instead of
4604 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
4605 split off the path decompostion part of
4606 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
4609 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
4611 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4613 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
4614 machine approach. A state is implemented as a function that
4615 handles incoming events as specified for that state.
4617 * doc/dbus-specification.xml: Update auth protocol state machine
4618 specification to match implementation. Remove some leftover
4621 2004-06-02 Kristian Høgsberg <krh@redhat.com>
4623 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
4624 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
4627 * Doxyfile.in: remove deprecated options.
4629 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
4630 glib/test-thread.h, glib/test-thread-client.c,
4631 glib/test-thread-server.c, glib/test-profile.c,
4632 glib/test-dbus-glib.c: remove these unused files.
4634 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
4636 * dbus/dbus-object-tree.c
4637 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
4638 non-fallback handlers (bug #684).
4639 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
4640 (find_subtree_recurse): report wether the returned subtree is an
4641 exact match or a "fallback" match higher up in the tree.
4642 (object_tree_test_iteration): update test case.
4644 2004-06-01 Seth Nickell <seth@gnome.org>
4646 * python/dbus_bindings.pyx.in:
4647 * python/tests/test-client.py:
4649 Round off basic type support. Add dicts (yay!), and
4650 remaining array types.
4652 Make MessageIter more general so it works for dicts too.
4654 Mark all loop variables as C integers.
4656 2004-05-31 Havoc Pennington <hp@redhat.com>
4658 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
4661 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
4663 * glib/dbus-glib-tool.c (main): set up to have a --self-test
4664 option that runs the tests, and start filling in some code
4665 including for starters just dumping the interfaces to stdout
4667 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
4669 * test/data/valid-introspection-files/lots-of-types.xml: test of
4670 an example introspection file
4672 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
4675 2004-05-31 Seth Nickell <seth@gnome.org>
4677 * python/dbus_bindings.pyx.in:
4678 * python/tests/test-client.py:
4683 Fix string array memory trashing bug... oops...
4685 2004-05-30 Seth Nickell <seth@gnome.org>
4689 Add a nicer-but-less-flexible alternate API for handling
4690 calls to virtual objects in dbus.ObjectTree.
4692 Screw up the argument order to the dbus.Object constructor
4693 for consistency with dbus.ObjectTree (and to make dbus_methods
4694 optional for future extension)
4696 * python/examples/Makefile.am:
4697 * python/examples/gconf-proxy-service.py:
4698 * python/examples/gconf-proxy-service2.py:
4700 Alternate implementation of gconf-proxy-service using the
4701 nicer dbus.ObjectTree API.
4703 * python/examples/example-service.py:
4704 * python/tests/test-server.py
4706 Reverse the argument order to deal with dbus.Object constructor
4709 2004-05-30 Seth Nickell <seth@gnome.org>
4711 * python/examples/example-client.py:
4712 * python/examples/example-service.py:
4714 Take it back. Lists seem to work but they're broken
4715 in the test suite. Make the base examples use
4718 2004-05-30 Seth Nickell <seth@gnome.org>
4720 * python/dbus_bindings.pyx.in:
4721 * python/tests/test-client.py:
4723 Add some more tests and fix errors that crop up.
4724 Unfortunately, currently it seems like marshalling
4725 and unmarshalling of lists is completely broken :-(
4727 2004-05-30 Seth Nickell <seth@gnome.org>
4729 * python/dbus_bindings.pyx.in:
4731 Add support for ObjectPath type.
4735 Refactor message handling code to a common function.
4737 * python/tests/test-client.py:
4738 * python/tests/test-server.py:
4740 Add tests that check to make sure values of all types
4741 can be echoed from a service w/o mangling.
4743 2004-05-29 Seth Nickell <seth@gnome.org>
4747 Add ObjectTree class which allows implementation
4748 of trees of "virtual" objects. Basically the python
4749 wrapper for "register_fallback".
4751 * python/examples/Makefile.am
4752 * python/examples/gconf-proxy-client.py:
4753 * python/examples/gconf-proxy-service.py:
4755 Implement a simple GConf proxy service that supports
4756 get/set on string and int GConf keys using the ObjectTree.
4758 2004-05-29 Seth Nickell <seth@gnome.org>
4761 * python/examples/example-client.py:
4762 * python/examples/example-service.py:
4763 * python/examples/list-system-services.py:
4765 Add SessionBus, SystemBus and ActivationBus classes
4766 so you don't need to know the special little BUS_TYPE
4769 2004-05-29 Havoc Pennington <hp@redhat.com>
4771 * bus/config-parser.c (process_test_valid_subdir): temporarily
4772 stop testing config parser OOM handling, since expat has issues
4773 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
4775 * bus/dbus-daemon-1.1.in: change requested_reply to
4776 send_requested_reply/receive_requested_reply so we can send the
4777 replies, not just receive them.
4779 * bus/config-parser.c: parse the new
4780 send_requested_reply/receive_requested_reply
4782 * bus/policy.c (bus_client_policy_check_can_send): add
4783 requested_reply argument and use it
4785 * bus/bus.c (bus_context_check_security_policy): pass through
4786 requested_reply status to message send check
4788 * bus/system.conf.in: adapt to requested_reply change
4790 2004-05-28 Havoc Pennington <hp@redhat.com>
4792 * test/glib/test-service-glib.c (main): remove unused variable
4794 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
4796 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
4797 from the enum, no longer in use.
4799 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
4802 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
4803 whether error_name passed in is a valid error name.
4805 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
4807 * dbus/dbus-message.c (dbus_message_get_args): Added support for
4808 OBJECT_PATH and OBJECT_PATH_ARRAY
4810 2004-05-28 Seth Nickell <seth@gnome.org>
4812 * python/examples/Makefile.am:
4814 Forget to add Makefile.am. Do not pass go.
4816 2004-05-28 Michael Meeks <michael@ximian.com>
4818 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
4821 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
4823 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
4824 (_dbus_message_iter_get_basic_type_array): impl.
4825 drastically simplify ~all relevant _get methods to use these.
4826 (_dbus_message_iter_append_basic_array),
4827 (dbus_message_iter_append_basic): impl
4828 drastically simplify ~all relevant _append methods to use these.
4830 * dbus/dbus-message-builder.c (parse_basic_type)
4831 (parse_basic_array, lookup_basic_type): impl.
4832 (_dbus_message_data_load): prune scads of duplicate /
4835 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
4836 (_dbus_demarshal_basic_type): implement,
4837 (demarshal_and_validate_len/arg): beef up debug.
4838 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
4840 2004-05-27 Seth Nickell <seth@gnome.org>
4843 * python/Makefile.am:
4845 Include the example python apps in the tarball.
4847 * python/examples/list-system-services.py
4849 Add a python new example that fetches the list of services
4850 from the system bus.
4852 2004-05-27 Seth Nickell <seth@gnome.org>
4855 * python/dbus_bindings.pyx.in:
4857 Fix failure to notify that a signal was not handled,
4858 resulted in hung functions.
4860 2004-05-25 Colin Walters <walters@redhat.com>
4862 * tools/dbus-monitor.c (main): Monitor all types of messages.
4864 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
4866 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
4867 which unregisters the object path and disposes the handler.
4869 2004-05-23 Kristian Høgsberg <krh@redhat.com>
4871 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
4873 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
4874 operands to && so we call dbus_message_iter_next () for the last
4877 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4879 * dbus/dbus-object-tree.c
4880 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
4881 children even if the requested path isn't registered.
4882 (object_tree_test_iteration): test object_tree_list_registered.
4884 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
4887 2004-05-20 Kristian Høgsberg <krh@redhat.com>
4889 * doc/TODO: Remove resolved items.
4891 * bus/expirelist.h (struct BusExpireList): remove unused n_items
4894 * bus/connection.c (bus_connections_expect_reply): Enforce the
4895 per-connection limit on pending replies.
4897 Patch from Jon Trowbridge <trow@ximian.com>:
4899 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
4900 up a watch that triggers a config reload when one end of the pipe
4902 (signal_handler): Instead of doing the config reload in our SIGHUP
4903 handler, just write to the reload pipe and let the associated
4904 watch handle the reload when control returns to the main loop.
4906 * bus/driver.c (bus_driver_handle_reload_config): Added.
4907 Implements a ReloadConfig method for requesting a configuration
4908 file reload via the bus driver.
4910 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
4912 * HACKING: Updated release instructions concerning the wiki page.
4914 2004-05-18 Kristian Høgsberg <krh@redhat.com>
4916 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
4917 filter against auth->allowed_mechs; we only add allowed mechs in
4918 record_mechanisms().
4920 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
4921 ALLOWED_MECHS to auth-script format so we can set the list of
4924 * data/auth/client-out-of-mechanisms.auth-script: New test to
4925 check client disconnects when it is out of mechanisms to try.
4927 * dbus/dbus-auth.c (process_command): Remove check for lines
4928 longer that 1 MB; we only buffer up maximum 16 kB.
4930 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
4931 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
4932 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
4933 assume there might be unused bytes.
4935 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
4936 client-out-of-mechs, it is handled in process_reject(). Move check
4937 for max failures to send_rejected(), as it's a server-only thing.
4939 * dbus/dbus-auth.c: Factor out protocol reply code into functions
4940 send_auth(), send_data(), send_rejected(), send_error(),
4941 send_ok(), send_begin() and send_cancel().
4943 2004-05-17 Kristian Høgsberg <krh@redhat.com>
4945 Remove base64 encoding, replace with hex encoding. Original patch
4946 from trow@ximian.com, added error handling.
4948 * dbus/dbus-string.c (_dbus_string_base64_encode)
4949 (_dbus_string_base64_decode): Remove.
4950 (_dbus_string_hex_decode): Add end_return argument so we can
4951 distinguish between OOM and invalid hex encoding.
4952 (_dbus_string_test): Remove base64 tests and add test case for
4955 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4956 Replace base64 with hex.
4958 * test/data/auth/invalid-hex-encoding.auth-script: New test case
4959 for invalid hex encoded data in auth protocol.
4961 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4963 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4966 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4968 * mono/dbus-sharp.dll.config.in: Added for GAC
4969 * mono/dbus-sharp.snk: Added for GAC
4970 * mono/Assembly.cs.in: Added for GAC
4971 * mono/Makefile.am: Changes for GAC installation
4972 * configure.in: Added refs for dbus-sharp.dll.config.in and
4973 Assembly.cs.in. More fixes for mono testing
4974 * mono/example/Makefile.am: Changed var to CSC
4975 * Makefile.am: Changed flag name to DBUS_USE_CSC
4977 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4979 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4980 * mono/doc/*: Added documentation framework
4981 * configure.in: Added monodoc check
4982 * README: Added description of mono configure flags
4984 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
4986 * doc/dbus-specification.xml: Added a "Required" column to the
4987 header fields table and changed the "zero or more" verbage in
4988 the above paragraph to read "The header must contain the required
4989 named header fields and zero or more of the optional named header
4991 * test/data/invalid-messages/*.message: Added the required PATH
4992 named header field to the tests so that they don't fail on
4993 'Missing path field'
4995 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
4997 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4998 the stack by implicitly defining variable and parameter types and
4999 removing the hack of defining C pointers as python objects and later
5002 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5004 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5006 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5008 * mono/DBusType/Dict.cs: Handle empty dicts
5009 * mono/DBusType/Array.cs: Handle empty arrays
5010 * mono/Arguments.cs: Handle empty arguments
5012 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5014 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5017 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5019 * test/data/valid-messages/standard-*.message: Update message
5020 test scripts to new header field names.
5022 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5024 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5025 overflow to times_we_did_each_thing array which would chop off the
5026 first character of the failure_dir string. Increased the size of
5027 the array to 7 to reflect the number of random mutation functions
5030 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5032 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5033 unix_server->watch here, it is unreffed in disconnect.
5034 (_dbus_server_new_for_tcp_socket): convert NULL host to
5035 "localhost" here so we don't append NULL to address.
5037 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5038 various addresses, including tcp with no explicit host.
5040 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5042 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5043 fix incorrect setting of .name_offset in the HeaderField (it was
5044 off by two bytes, positioned right after the name and typecode)
5046 * bus/bus.c (bus_context_new, bus_context_unref): test before
5047 calling dbus_server_free_data_slot and _dbus_user_database_unref
5048 in case of an error.
5050 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5053 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5055 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5056 _dbus_poll() instead of select().
5058 2004-04-15 Jon Trowbridge <trow@ximian.com>
5060 * bus/main.c (signal_handler): Reload the configuration files
5062 (main): Set up our SIGHUP handler.
5064 * bus/bus.c (struct BusContext): Store the config file, user and
5065 fork flag in the BusContext.
5066 (process_config_first_time_only): Added. Contains the code
5067 (previously in bus_context_new) for setting up the BusContext from
5068 the BusConfigParser that should only be run the first time the
5069 config files are read.
5070 (process_config_every_time): Added. Contains the code (previously
5071 in bus_context_new) for setting up the BusContext from the
5072 BusConfigParser that should be run every time the config files are
5074 (load_config): Added. Builds a BusConfigParser from the config
5075 files and passes the resulting structure off to
5076 process_config_first_time_only (assuming this is the first time)
5077 and process_config_every_time.
5078 (bus_context_new): All of the config-related code has been moved
5079 to process_config_first_time_only and process_config_every_time.
5080 Now this function just does the non-config-related initializations
5081 and calls load_config.
5082 (bus_context_reload_config): Added.
5084 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5086 * bus/driver.c (bus_driver_handle_get_service_owner):
5087 implement a GetServiceOwner method.
5088 * doc/dbus-specification.xml: document it.
5089 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5091 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5092 implement, using the bus GetServiceOwner method.
5094 * test/glib/test-dbus-glib.c:
5095 use dbus_gproxy_new_for_service_owner so that we can receive the
5098 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5100 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5101 dbus/dbus-message.c, dbus/dbus-protocol.h
5102 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5104 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5105 dbus/dbus-message.c, dbus/dbus-protocol.h
5106 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5108 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5109 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5110 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5112 * doc/dbus-specification.xml (Header Fields Table):
5113 s/SERVICE/DESTINATION
5114 s/SENDER_SERVICE/SENDER
5117 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5119 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5122 2004-04-13 Michael Meeks <michael@ximian.com>
5124 * glib/dbus-gobject.c (handle_introspect): split out
5125 (introspect_properties): this.
5126 (handle_introspect): implement this.
5128 * test/glib/Makefile.am: use the absolute path so the bus
5129 daemon's chdir ("/") doesn't kill us dead.
5131 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5133 2004-04-12 Jon Trowbridge <trow@ximian.com>
5135 * bus/config-parser.c (struct BusConfigParser): Added
5136 included_files field.
5137 (seen_include): Added. Checks whether or not a file has already
5138 been included by any parent BusConfigParser.
5139 (bus_config_parser_new): Copy the parent's included_files.
5140 (include_file): Track which files have been included, and fail on
5141 circular inclusions.
5142 (process_test_valid_subdir): Changed printf to report if we are
5143 testing valid or invalid conf files.
5144 (all_are_equiv): Changed printf to be a bit clearer about
5145 what we are actually doing.
5146 (bus_config_parser_test): Test invalid configuration files.
5148 2004-04-09 Jon Trowbridge <trow@ximian.com>
5150 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5151 argument. If non-null, the newly-constructed BusConfigParser will
5152 be initialized with the parent's BusLimits instead of the default
5154 (include_file): When including a config file, pass in
5155 the current parser as the parent and then copy the BusLimits
5156 from the included BusConfigParser pack to the current parser.
5157 (process_test_valid_subdir): Renamed from process_test_subdir.
5158 (process_test_equiv_subdir): Added. Walks through a directory,
5159 descending into each subdirectory and loading the config files
5160 it finds there. If any subdirectory contains two config files
5161 that don't produce identical BusConfigParser structs, fail.
5162 For now, the BusConfigParser's BusPolicies are not compared.
5163 (bus_config_parser_test): Call both process_test_valid_subdir and
5164 process_test_equiv_subdir.
5166 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5167 argument and pass it along to the call to bus_config_parser_new.
5168 Also made a few small changes to allow this code to compile.
5170 * bus/config-loader-expat.c (bus_config_load): Take a parent
5171 argument and pass it along to the call to bus_config_parser_new.
5173 * bus/bus.c (bus_context_new): Load the config file
5174 with a NULL parent argument.
5176 2004-03-29 Michael Meeks <michael@ximian.com>
5178 * glib/dbus-gobject.c (introspect_properties): split
5179 out, fix mangled 'while' flow control.
5180 (introspect_signals): implement.
5181 (handle_introspect): update.
5183 2004-03-29 Michael Meeks <michael@ximian.com>
5185 * glib/dbus-gobject.c (set_object_property): split out /
5186 re-work, use the property type, and not the message type(!)
5187 (get_object_property): ditto.
5189 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5190 (dbus_gvalue_marshal): make this code re-usable, needed
5191 for signals too, also on both proxy and server side.
5192 Re-write for more efficiency / readability.
5194 2004-03-29 Michael Meeks <michael@ximian.com>
5196 * dbus/dbus-message.c
5197 (dbus_message_new_error_printf): impl.
5199 * dbus/dbus-connection.c
5200 (dbus_connection_unregister_object_path): fix warning.
5202 * configure.in: fix no-mono-installed situation.
5204 2004-03-27 Havoc Pennington <hp@redhat.com>
5206 Patch from Timo Teräs:
5208 * tools/dbus-send.c (main): if --print-reply, assume type is
5209 method call; support boolean type args
5211 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5212 bunch of memleak and logic bugs
5214 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5216 * mono/Arguments.cs:
5217 * mono/Introspector.cs:
5219 * mono/InterfaceProxy.cs:
5221 * mono/ProxyBuilder.cs:
5223 Added InterfaceProxy class to avoid building proxies for every
5227 * dbus-message.c (dbus_message_append_args_valist)
5228 (dbus_message_iter_get_object_path)
5229 (dbus_message_iter_get_object_path_array)
5230 (dbus_message_iter_append_object_path)
5231 (dbus_message_iter_append_object_path_array):
5232 Added object_path iter functions to handle OBJECT_PATH arguments
5234 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5236 First checkin of mono bindings.
5239 Build stuff for the bindings
5240 * dbus-sharp.pc.in: Added for pkgconfig
5242 2004-03-21 Havoc Pennington <hp@redhat.com>
5244 * test/test-service.c (main): remove debug spew
5246 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5248 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
5251 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
5252 (dbus_message_iter_init_array_iterator)
5253 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
5254 indicate whether the iterator is empty
5256 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
5259 2004-03-19 Havoc Pennington <hp@redhat.com>
5261 * NEWS: 0.21 updates
5263 * configure.in: 0.21
5265 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
5267 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
5268 you don't need pyrex to make dist
5270 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
5273 2004-03-18 Richard Hult <richard@imendio.com>
5275 * dbus/dbus-message.c (dbus_message_get_auto_activation)
5276 (dbus_message_set_auto_activation): Add doxygen docs.
5278 2004-03-16 Richard Hult <richard@imendio.com>
5280 * bus/activation.c: (bus_activation_service_created),
5281 (bus_activation_send_pending_auto_activation_messages),
5282 (bus_activation_activate_service):
5284 * bus/dispatch.c: (bus_dispatch),
5285 (check_nonexistent_service_auto_activation),
5286 (check_service_auto_activated),
5287 (check_segfault_service_auto_activation),
5288 (check_existent_service_auto_activation), (bus_dispatch_test):
5289 * bus/driver.c: (bus_driver_handle_activate_service):
5290 * bus/services.c: (bus_registry_acquire_service):
5291 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
5292 (dbus_message_get_auto_activation):
5293 * dbus/dbus-message.h:
5294 * dbus/dbus-protocol.h: Implement auto-activation.
5296 * doc/dbus-specification.xml: Add auto-activation to the spec.
5298 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
5300 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
5301 fix a bug with CUSTOM types.
5303 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
5304 a unit test for this bug (used to fail).
5306 2004-03-12 Mikael Hallendal <micke@imendio.com>
5309 (babysitter_watch_callback): notify all pending activations waiting for
5310 the same exec that the activation failed.
5311 (bus_activation_activate_service): shortcut the activation if we
5312 already waiting for the same executable to start up.
5314 2004-03-12 Mikael Hallendal <micke@imendio.com>
5317 - Added service file reloading.
5318 Each service files directory is kept in an hash table in
5319 BusActivation and each BusActivationEntry knows what .service-file it
5320 was read from. So when you try to activate a service the bus will
5321 check if it's been updated, removed or if new .service-files has
5323 - Test code at the bottom for the service file reloading.
5324 * bus/test-main.c: (main):
5326 - added service reloading test.
5327 * dbus/dbus-sysdeps.c:
5328 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
5330 2004-03-08 Michael Meeks <michael@ximian.com>
5332 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
5333 bail immediately if disconnected, to avoid busy loop.
5335 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
5336 cleanup cut/paste/inefficiency.
5338 2004-03-01 David Zeuthen <david@fubar.dk>
5340 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
5341 bug where args were used twice. This bug resulted in a segfault
5342 on a Debian/PPC system when starting the messagebus daemon. Include
5343 dbus-sysdeps.h for DBUS_VA_COPY
5345 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
5347 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
5348 appropriate va_copy implementation. From GLib
5350 2004-02-24 Joe Shaw <joe@ximian.com>
5352 * bus/services.c (bus_registry_acquire_service): We need to pass
5353 in the service name to dbus_set_error() to prevent a crash.
5355 2003-12-26 Anders Carlsson <andersca@gnome.org>
5357 * AUTHORS: Reveal my True identity.
5359 2003-12-17 Mikael Hallendal <micke@imendio.com>
5361 * dbus/dbus-message.c: (dbus_message_append_args_valist):
5362 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
5364 2003-12-13 Mikael Hallendal <micke@imendio.com>
5366 * doc/TODO: Added not about better error check of configuration files.
5368 2003-12-02 Richard Hult <richard@imendio.com>
5370 * Update AFL version to 2.0 throughout the source files to reflect
5371 the update that was done a while ago.
5373 2003-12-02 Richard Hult <richard@imendio.com>
5375 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
5376 wrote_dict_key to FALSE on the iter that the dict is appended to,
5377 just like when appending other types. Fixes a bug where a dict
5378 couldn't be put inside a dict.
5379 (dbus_message_iter_append_dict_key): Fix typo in warning message.
5380 (message_iter_test, _dbus_message_test): Add test case for dict
5383 2003-12-01 David Zeuthen <david@fubar.dk>
5385 * python/dbus.py: Add the actual message when calling the reciever
5386 of a signal such that parameters can be inspected. Add the method
5387 remove_signal_receiver
5389 2003-11-26 Mikael Hallendal <micke@imendio.com>
5393 * glib/*.[ch]: Made ref functions return the pointer
5395 2003-11-25 Zack Rusin <zack@kde.org>
5397 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
5399 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
5402 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
5403 the Integrator and to better fit with the server,
5405 2003-11-24 Zack Rusin <zack@kde.org>
5407 * qt/connection.h, qt/connection.cpp: removing initDbus method since
5408 the integrator handles it now
5410 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
5411 since QTimer wasn't really meant to be used the way DBusTimeout is
5413 2003-11-24 Zack Rusin <zack@kde.org>
5415 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
5416 Integrator class which integrates D-BUS with the Qt event loop,
5418 * qt/connection.h, qt/connection.cpp: Move all the code which
5419 was dealing with D-BUS integration to the Integrator class,
5420 and start using Integrator,
5422 2003-11-23 Zack Rusin <zack@kde.org>
5424 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
5427 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
5428 switching namespaces to DBusQt, reworking the class,
5430 * Makefile.cvs: switching dependencies so that it matches KDE
5433 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
5436 2003-11-19 Havoc Pennington <hp@redhat.com>
5440 * configure.in: bump version to 0.20
5442 * configure.in (have_qt): add yet another place to look for qt
5443 (someone hand trolltech a .pc file...)
5445 2003-11-01 Havoc Pennington <hp@redhat.com>
5447 * doc/dbus-specification.xml: add state machine docs on the auth
5448 protocol; just a first draft, I'm sure it's wrong.
5450 2003-10-28 David Zeuthen <david@fubar.dk>
5452 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
5453 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
5455 2003-10-28 Havoc Pennington <hp@redhat.com>
5457 * dbus/dbus-message.c (get_next_field): delete unused function
5459 2003-10-28 Havoc Pennington <hp@redhat.com>
5461 * bus/expirelist.c (do_expiration_with_current_time): detect
5462 failure of the expire_func due to OOM
5464 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
5466 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
5467 NoReply error that's now created by the bus when the service exits
5469 2003-10-28 Havoc Pennington <hp@redhat.com>
5471 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
5472 tests for set_path, set_interface, set_member, etc.
5474 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
5476 * dbus/dbus-message.c (set_string_field): always just delete and
5477 re-append the field; accept NULL for deletion
5478 (re_align_fields_recurse): reimplement
5480 2003-10-26 Havoc Pennington <hp@redhat.com>
5482 * dbus/dbus-connection.c: fix docs to properly describe the
5483 disconnected message
5484 (_dbus_connection_notify_disconnected): remove this function;
5485 we can't synchronously add the disconnected message, we have to
5486 do it after we've queued any remaining real messages
5487 (_dbus_connection_get_dispatch_status_unlocked): queue the
5488 disconnect message only if the transport has finished queueing all
5489 its real messages and is disconnected.
5490 (dbus_connection_disconnect): update the dispatch status here
5492 2003-10-22 Havoc Pennington <hp@redhat.com>
5494 * bus/bus.c (bus_context_check_security_policy): fix up assertion
5496 * bus/connection.c (bus_transaction_send_from_driver): set the
5497 destination to the connection's base service
5499 2003-10-20 Havoc Pennington <hp@redhat.com>
5501 hmm, make check is currently not passing.
5503 * doc/dbus-specification.xml: add requirement that custom type
5504 names follow the same rules as interface names.
5506 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
5507 duplication and allow 'c' to be 'custom'; dict is now 'm' for
5510 * doc/dbus-specification.xml: update type codes to match
5511 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
5512 CUSTOM. Add type OBJECT_PATH to the spec.
5514 2003-10-17 Havoc Pennington <hp@redhat.com>
5516 * bus/driver.c (create_unique_client_name): use "." as separator
5517 in base service names instead of '-'
5519 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
5520 byte at the end of the string
5522 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
5523 optimization macros since string validation seems to be a slow
5526 * doc/dbus-specification.xml: restrict valid
5527 service/interface/member/error names. Add test suite code for the
5530 * dbus/dbus-string.c: limit service/interface/member/error names
5533 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
5534 format arg to verbose spew
5536 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
5537 memory, return instead of g_error
5539 * test/test-service.c (path_message_func): support emitting a
5542 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
5543 activation bus type if DBUS_BUS_ACTIVATION was set; default to
5544 assuming the activation bus was the session bus so that services
5545 started manually will still register.
5546 (init_connections_unlocked): fix so that in OOM situation we get
5547 the same semantics when retrying the function
5549 * test/test-service.c (main): change to use path registration, to
5550 test those codepaths; register with DBUS_BUS_ACTIVATION rather
5551 than DBUS_BUS_SESSION
5553 2003-10-16 Havoc Pennington <hp@redhat.com>
5555 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
5557 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
5558 coverage of the tests
5559 (coverage-report.txt): don't move the .da and .bbg files around
5561 2003-10-16 Havoc Pennington <hp@redhat.com>
5563 * bus/bus.c (struct BusContext): remove struct field I didn't mean
5566 2003-10-16 Havoc Pennington <hp@redhat.com>
5568 * bus/connection.c (bus_pending_reply_expired): either cancel or
5570 (bus_connections_check_reply): use unlink, not remove_link, as we
5571 don't want to free the link; fixes double free mess
5573 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
5574 where no reply was received
5576 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
5579 * bus/signals.c (match_rule_matches): add special cases for the
5580 bus driver, so you can match on sender/destination for it.
5582 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
5583 DBUS_PRINT_BACKTRACE is set
5585 * dbus/dbus-internals.c: add pid to assertion failure messages
5587 * dbus/dbus-connection.c: add message type code to the debug spew
5589 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
5590 sender=foo not service=foo
5592 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
5593 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
5594 DBUS_ACTIVATION_ADDRESS instead
5596 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
5597 DBUS_SYSTEM_BUS_ADDRESS if appropriate
5599 * bus/bus.c (bus_context_new): handle OOM copying bus type into
5602 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
5603 (dbus_message_iter_get_object_path_array): new function (half
5604 finished, disabled for the moment)
5606 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
5607 DBUS_MESSAGE_TYPE_ERROR
5609 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
5610 avoid redirecting stderr to /dev/null
5611 (babysit): close stdin if not doing the "exit_with_session" thing
5613 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
5614 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
5615 stdout/stdin, so things don't get confused
5617 * bus/system.conf.in: fix to allow replies, I modified .conf
5618 instead of .conf.in again.
5620 2003-10-14 David Zeuthen <david@fubar.dk>
5622 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
5623 argtype to arg_type when raising unknown arg type exception.
5624 Changed type list to reflect the changes in dbus-protocol.h so
5625 the bindings actually work.
5627 2003-10-14 Havoc Pennington <hp@redhat.com>
5629 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
5630 to have a bug keeping it from outputting the .da files sometimes
5631 (string_get_string): don't append garbage nul bytes to the string.
5633 2003-10-15 Seth Nickell <seth@gnome.org>
5635 * python/Makefile.am:
5637 Include dbus_h_wrapper.h in the dist tarball.
5639 2003-10-14 Havoc Pennington <hp@redhat.com>
5641 * bus/bus.c (bus_context_check_security_policy): revamp this to
5642 work more sanely with new policy-based requested reply setup
5644 * bus/connection.c (bus_transaction_send_from_driver): set bus
5645 driver messages as no reply
5647 * bus/policy.c (bus_client_policy_check_can_receive): handle a
5648 requested_reply attribute on allow/deny rules
5650 * bus/system.conf: add <allow requested_reply="true"/>
5652 * bus/driver.c (bus_driver_handle_message): fix check for replies
5653 sent to the bus driver, which was backward. How did this ever work
5654 at all though? I think I'm missing something.
5656 * dbus/dbus-message.c (decode_header_data): require error and
5657 method return messages to have a reply serial field to be valid
5658 (_dbus_message_loader_queue_messages): break up this function;
5659 validate that reply serial and plain serial are nonzero;
5660 clean up the OOM/error handling.
5661 (get_uint_field): don't return -1 from this
5662 (dbus_message_create_header): fix signed/unsigned bug
5664 * bus/connection.c (bus_connections_expect_reply): save serial of
5665 the incoming message, not reply serial
5667 2003-10-14 Havoc Pennington <hp@redhat.com>
5669 * bus/connection.c: implement pending reply tracking using
5672 * bus/bus.c (bus_context_check_security_policy): verify that a
5673 reply is pending in order to allow a reply to be sent. Deny
5674 messages of unknown type.
5676 * bus/dbus-daemon-1.1.in: update to mention new resource limits
5678 * bus/bus.c (bus_context_get_max_replies_per_connection): new
5679 (bus_context_get_reply_timeout): new
5681 2003-10-13 Seth Nickell <seth@gnome.org>
5683 * python/Makefile.am:
5685 Pass "make distcheck": remove a couple files from DIST_FILES
5686 that weren't included in the final version.
5688 2003-10-12 Havoc Pennington <hp@pobox.com>
5690 Added test code that 1) starts an actual bus daemon and 2) uses
5691 DBusGProxy; fixed bugs that were revealed by the test. Lots
5692 more testing possible, but this is the basic framework.
5694 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
5695 empty proxy lists from the proxy list hash
5697 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
5698 couple of return_if_fail checks
5700 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
5701 to allocate, so everything is cleared to NULL as it should be.
5703 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
5704 source as data to dbus_connection_set_timeout_functions() as the
5705 timeout functions expected
5707 * test/glib/run-test.sh: add a little script to start up a message
5708 bus and run tests using it
5710 * tools/dbus-launch.1: updates
5712 * tools/dbus-launch.c (main): add --config-file option
5714 * tools/dbus-launch.c (main): remove confusing else if (runprog)
5715 that could never be reached.
5717 * dbus/dbus-message.c (dbus_message_new_method_return)
5718 (dbus_message_new_error, dbus_message_new_signal): set the
5719 no-reply-expected flag on all these. Redundant, but may
5720 as well be consistent.
5722 2003-10-11 Havoc Pennington <hp@pobox.com>
5724 * test/decode-gcov.c (function_solve_graph): make broken block
5725 graph a nonfatal error since it seems to be broken. Need to debug
5728 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
5729 can't just check type > INVALID < LAST anymore
5731 * dbus/dbus-message.c (dbus_message_get_signature): new function
5732 (dbus_message_has_signature): new function
5733 (struct DBusMessage): add signature field (right now it isn't sent
5734 over the wire, just generated on the fly)
5735 (dbus_message_copy): copy the signature, and init strings to
5736 proper length to avoid some reallocs
5737 (dbus_message_iter_init_array_iterator): return void, since it
5739 (dbus_message_iter_init_dict_iterator): return void since it can't fail
5740 (_dbus_message_loader_queue_messages): add silly temporary hack to
5741 fill in message->signature on load
5743 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
5744 characters, so they are relatively human-readable.
5746 2003-10-11 Havoc Pennington <hp@pobox.com>
5748 * dbus/dbus-message.c (_dbus_message_test): add more test
5749 coverage, but #if 0 for now since they uncover a bug
5750 not fixed yet; I think in re_align_field_recurse()
5751 (re_align_field_recurse): add FIXME about broken assertion
5753 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
5755 * bus/connection.c: share a couple code bits with expirelist.c
5757 * bus/expirelist.h, bus/expirelist.c: implement a generic
5758 expire-items-after-N-seconds facility, was going to share between
5759 expiring connections and replies, decided not to use for expiring
5760 connections for now.
5762 * COPYING: include AFL 2.0 (still need to change all the file headers)
5764 2003-10-09 Havoc Pennington <hp@redhat.com>
5766 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
5767 gcc 3.3. Not that we do anything about it yet.
5769 * bus/signals.c (bus_match_rule_parse): impose max length on the
5772 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
5774 2003-10-09 Havoc Pennington <hp@redhat.com>
5776 Make matching rules theoretically work (add parser).
5778 * bus/bus.c (bus_context_check_security_policy): fix up to handle
5779 the case where destination is explicitly specified as bus driver
5780 and someone else is eavesdropping.
5782 * bus/policy.c (bus_client_policy_check_can_receive): fix up
5783 definition of eavesdropping and assertion
5785 * tools/dbus-send.c (main): use dbus_message_type_from_string
5787 * bus/signals.c (bus_match_rule_parse): implement
5789 * dbus/dbus-message.c (dbus_message_type_from_string): new
5791 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
5793 2003-10-02 Havoc Pennington <hp@pobox.com>
5795 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
5796 dbus_gproxy_oneway_call
5798 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
5799 (dbus_server_setup_with_g_main): fix to allow calling them more
5800 than once on the same args
5801 (dbus_bus_get_with_g_main): new function
5803 2003-10-02 Havoc Pennington <hp@redhat.com>
5805 * doc/dbus-tutorial.xml: write some stuff
5807 2003-09-29 Havoc Pennington <hp@pobox.com>
5809 * configure.in: split checks for Doxygen from XML docs, check for
5812 * doc/Makefile.am: XML-ify all the docs, and add a blank
5815 2003-09-29 Havoc Pennington <hp@pobox.com>
5817 * Merge dbus-object-names branch. To see the entire patch
5818 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
5819 it's huuuuge though.
5820 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
5822 2003-09-28 Havoc Pennington <hp@pobox.com>
5824 * HACKING: update to reflect new server
5826 2003-09-26 Seth Nickell <seth@gnome.org>
5829 * python/examples/example-signals.py:
5831 Start implementing some notions of signals. The API
5832 is really terrible, but they sort of work (with the
5833 exception of being able to filter by service, and to
5834 transmit signals *as* a particular service). Need to
5835 figure out how to make messages come from the service
5838 * python/dbus_bindings.pyx.in:
5840 Removed duplicate message_handler callbacks.
5842 2003-09-25 Havoc Pennington <hp@redhat.com>
5844 * bus/session.conf.in: fix my mess
5846 2003-09-25 Havoc Pennington <hp@pobox.com>
5848 * bus/session.conf.in: fix security policy, reported by Seth Nickell
5850 2003-09-25 Seth Nickell <seth@gnome.org>
5852 * python/examples/example-service.py:
5854 Johan notices complete wrong code in example-service, but
5855 completely wrong in a way that works exactly the same (!).
5856 Johan is confused, how could this possibly work? Example
5857 code fails to serve purpose of making things clear.
5860 2003-09-25 Mark McLoughlin <mark@skynet.ie>
5862 * doc/dbus-specification.sgml: don't require header fields
5863 to be 4-byte aligned and specify that fields should be
5864 distinguished from padding by the fact that zero is not
5867 * doc/TODO: remove re-alignment item and add item to doc
5868 the OBJECT_PATH type.
5870 * dbus/dbus-message.c:
5871 (HeaderField): rename the original member to value_offset
5872 and introduce a name_offset member to keep track of where
5873 the field actually begins.
5874 (adjust_field_offsets): remove.
5875 (append_int_field), (append_uint_field),
5876 (append_string_field): don't align the start of the header
5877 field to a 4-byte boundary.
5878 (get_next_field): impl finding the next marhsalled field
5879 after a given field.
5880 (re_align_field_recurse): impl re-aligning a number of
5881 already marshalled fields.
5882 (delete_field): impl deleting a field of any type and
5883 re-aligning any following fields.
5884 (delete_int_or_uint_field), (delete_string_field): remove.
5885 (set_int_field), (set_uint_field): no need to re-check
5886 that we have the correct type for the field.
5887 (set_string_field): ditto and impl re-aligning any
5889 (decode_header_data): update to take into account that
5890 the fields aren't 4-byte aligned any more and the new
5891 way to distinguish padding from header fields. Also,
5892 don't exit when there is too much header padding.
5893 (process_test_subdir): print the directory.
5894 (_dbus_message_test): add test to make sure a following
5895 field is re-aligned correctly after field deletion.
5897 * dbus/dbus-string.[ch]:
5898 (_dbus_string_insert_bytes): rename from insert_byte and
5899 allow the insert of multiple bytes.
5900 (_dbus_string_test): test inserting multiple bytes.
5902 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
5903 warning note to docs about having to re-align any
5904 marshalled values following the string.
5906 * dbus/dbus-message-builder.c:
5907 (append_string_field), (_dbus_message_data_load):
5908 don't align the header field.
5910 * dbus/dbus-auth.c: (process_test_subdir): print the
5913 * test/break-loader.c: (randomly_add_one_byte): upd. for
5916 * test/data/invalid-messages/bad-header-field-alignment.message:
5919 * test/data/valid-messages/unknown-header-field.message: shove
5920 a dict in the unknown field.
5922 2003-09-25 Seth Nickell <seth@gnome.org>
5925 * python/dbus_bindings.pyx.in:
5927 Handle return values.
5929 * python/examples/example-client.py:
5930 * python/examples/example-service.py:
5932 Pass back return values from the service to the client.
5934 2003-09-24 Seth Nickell <seth@gnome.org>
5938 Connect Object methods (when you are sharing an object) up... pass
5939 in a list of methods to be shared. Sharing all the methods just
5940 worked out too weird. You can now create nice Services over the
5943 * python/dbus_bindings.pyx.in:
5945 Keep references to user_data tuples passed into C functions so
5946 Python doesn't garbage collect on us.
5948 Implement MethodReturn and Error subclasses of Message for creating
5949 DBusMessage's of those types.
5951 * python/examples/example-client.py:
5952 * python/examples/example-service.py:
5954 Simple example code showing both how create DBus services and objects,
5955 and how to use them.
5957 2003-09-23 Havoc Pennington <hp@pobox.com>
5959 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5961 2003-09-23 Havoc Pennington <hp@redhat.com>
5963 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5964 (dbus_gproxy_disconnect_signal): implement
5965 (dbus_gproxy_manager_remove_signal_match): implement
5966 (dbus_gproxy_manager_add_signal_match): implement
5967 (dbus_gproxy_oneway_call): implement
5969 2003-09-23 Havoc Pennington <hp@pobox.com>
5971 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5972 subclass. This means dropping the transparent thread safety of the
5973 proxy; you now need a separate proxy per-thread, or your own
5974 locking on the proxy. Probably right anyway.
5975 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5977 2003-09-22 Havoc Pennington <hp@redhat.com>
5979 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5981 2003-09-21 Seth Nickell <seth@gnome.org>
5983 First checkin of the Python bindings.
5985 * python/.cvsignore:
5986 * python/Makefile.am:
5987 * python/dbus_bindings.pyx.in:
5988 * python/dbus_h_wrapper.h:
5990 Pieces for Pyrex to operate on, building a dbus_bindings.so
5991 python module for low-level access to the DBus APIs.
5995 High-level Python module for accessing DBus objects.
6000 Build stuff for the python bindings.
6004 Extra macro needed for finding the Python C header files.
6006 2003-09-21 Havoc Pennington <hp@pobox.com>
6008 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6009 implementing the proxy manager, didn't get very far.
6011 * dbus/dbus-bus.c (dbus_bus_add_match): new
6012 (dbus_bus_remove_match): new
6014 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6015 path_name argument; adjust the other not-yet-implemented
6016 gproxy constructors to be what I think they should be.
6018 2003-09-21 Havoc Pennington <hp@pobox.com>
6020 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6021 by default for message bus connections.
6023 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6024 exit_on_disconnect flag is set and we process the disconnected
6026 (dbus_connection_set_exit_on_disconnect): new function
6028 2003-09-21 Havoc Pennington <hp@pobox.com>
6030 Get matching rules mostly working in the bus; only actually
6031 parsing the rule text remains. However, the client side of
6032 "signal connections" hasn't been started, this patch is only the
6035 * dbus/dispatch.c: fix for the matching rules changes
6037 * bus/driver.c (bus_driver_handle_remove_match)
6038 (bus_driver_handle_add_match): send an ack reply from these
6041 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6042 arguments, reported by Seth Nickell
6044 * bus/config-parser.c (append_rule_from_element): support
6045 eavesdrop=true|false attribute on policies so match rules
6046 can be prevented from snooping on the system bus.
6048 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6049 and "destination" in attribute names; fix some docs bugs;
6050 add eavesdrop=true|false attribute
6052 * bus/driver.c (bus_driver_handle_add_match)
6053 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6056 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6057 rid of broadcast service concept, signals are just always broadcast
6059 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6060 mostly implement matching rules stuff (currently only exposed as signal
6063 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6065 * doc/dbus-specification.sgml: Change the header field name
6066 to be an enum and update the rest of the spec to reference
6067 the fields using the conventinal name.
6069 * dbus/dbus-protocol.h: update to reflect the spec.
6071 * doc/TODO: add item to remove the 4 byte alignment requirement.
6073 * dbus/dbus-message.c: Remove the code to generalise the
6074 header/body length and serial number header fields as named
6075 header fields so we can reference field names using the
6077 (append_int_field), (append_uint_field), (append_string_field):
6078 Append the field name as a byte rather than four chars.
6079 (delete_int_or_uint_field), (delete_string_field): reflect the
6080 fact that the field name and typecode now occupy 4 bytes instead
6082 (decode_string_field), (decode_header_data): update to reflect
6083 protocol changes and move the field specific encoding from
6084 decode_string_field() back into decode_header_data().
6086 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6087 Add utility to aid debugging.
6089 * dbus/dbus-message-builder.c:
6090 (append_string_field), (_dbus_message_data_load): Update to
6091 reflect protocol changes; Change the FIELD_NAME directive
6092 to HEADER_FIELD and allow it to take the field's conventional
6093 name rather than the actual value.
6095 * test/data/*/*.message: Update to use HEADER_FIELD instead
6096 of FIELD_NAME; Always align the header on an 8 byte boundary
6097 *before* updating the header length.
6099 2003-09-15 Havoc Pennington <hp@pobox.com>
6101 * dbus/dbus-pending-call.c: add the get/set object data
6102 boilerplate as for DBusConnection, etc. Use generic object data
6103 for the notify callback.
6105 * glib/dbus-gparser.c (parse_node): parse child nodes
6107 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6109 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6110 contain functions shared between the convenience lib and the
6113 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6114 -export-symbols-regex to the GLib library
6116 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6117 fix the locking in here, and add a default handler for
6118 Introspect() that just returns sub-nodes.
6120 2003-09-14 Havoc Pennington <hp@pobox.com>
6122 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6123 rather than gfoo consistent
6125 * glib/dbus-gproxy.h: delete for now, move contents to
6126 dbus-glib.h, because the include files don't work right since we
6127 aren't in the dbus/ subdir.
6129 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6130 (dbus_gproxy_end_call): finish
6131 (dbus_gproxy_begin_call): finish
6133 * glib/dbus-gmain.c (dbus_set_g_error): new
6135 * glib/dbus-gobject.c (handle_introspect): include information
6136 about child nodes in the introspection
6138 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6139 function to help in implementation of introspection
6141 * dbus/dbus-object-tree.c
6142 (_dbus_object_tree_list_registered_and_unlock): new function
6144 2003-09-12 Havoc Pennington <hp@pobox.com>
6146 * glib/dbus-gidl.h: add common base class for all the foo_info
6149 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6152 * test/Makefile.am: try test srcdir -ef . in addition to test
6153 srcdir = ., one of them should work (yeah lame)
6155 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6158 * glib/dbus-gparser.h: make description_load routines return
6159 NodeInfo* not Parser*
6161 * Makefile.am (SUBDIRS): build test dir after all library dirs
6163 * configure.in: add GTK+ detection
6165 2003-09-07 Havoc Pennington <hp@pobox.com>
6167 * Make Doxygen contented.
6169 2003-09-07 Havoc Pennington <hp@pobox.com>
6171 * doc/dbus-specification.sgml: more updates
6173 2003-09-06 Havoc Pennington <hp@pobox.com>
6175 * doc/dbus-specification.sgml: partial updates
6177 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6178 zillionth time; hopefully I edited the right file this time.
6180 * bus/config-parser.c (append_rule_from_element): support
6181 send_type, send_path, receive_type, receive_path
6183 * bus/policy.c: add message type and path to the list of things
6184 that can be "firewalled"
6186 2003-09-06 Havoc Pennington <hp@pobox.com>
6188 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6189 (dbus_connection_register_object_path): make this not handle
6190 messages to paths below the given path
6192 2003-09-03 Havoc Pennington <hp@pobox.com>
6194 * test/glib/Makefile.am: add this with random glib-linked test
6197 * glib/Makefile.am: remove the random test programs from here,
6198 leave only the unit tests
6200 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6201 uscore/javacaps conversion, and fix
6202 (get_object_property, set_object_property): change to .NET
6203 convention for mapping props to methods, set_FooBar/get_FooBar,
6204 since one language has such a convention we may as well copy it.
6205 Plus real methods in either getFooBar or get_foo_bar style won't
6206 collide with this convention.
6208 2003-09-01 Havoc Pennington <hp@pobox.com>
6210 * glib/dbus-gparser.c: implement
6212 * glib/dbus-gobject.c: start implementing skeletons support
6214 * configure.in: when disabling checks/assert, also define
6215 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6217 2003-09-01 Havoc Pennington <hp@pobox.com>
6219 * glib/Makefile.am: rearrange a bunch of files and get "make
6220 check" framework set up
6222 2003-08-31 Havoc Pennington <hp@pobox.com>
6224 * fix build with --disable-tests
6226 2003-08-30 Havoc Pennington <hp@pobox.com>
6228 * dbus/dbus-connection.c: purge DBusMessageHandler
6230 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6231 use callbacks everywhere
6233 2003-08-30 Havoc Pennington <hp@pobox.com>
6235 * test/data/valid-config-files/system.d/test.conf: change to
6236 root for the user so warnings don't get printed
6238 * dbus/dbus-message.c: add dbus_message_get_path,
6239 dbus_message_set_path
6241 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
6242 dispatching to a path
6244 * dbus/dbus-string.c (_dbus_string_validate_path): add
6246 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
6247 (_dbus_marshal_object_path): implement
6249 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
6250 to contain the path to the target object
6251 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
6252 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
6254 2003-08-30 Havoc Pennington <hp@pobox.com>
6256 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
6258 2003-08-29 Havoc Pennington <hp@pobox.com>
6260 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
6262 (struct DBusObjectSubtree): shrink this
6263 a lot, since we may have a lot of them
6264 (_dbus_object_tree_free_all_unlocked): implement
6265 (_dbus_object_tree_dispatch_and_unlock): implement
6267 2003-08-29 Havoc Pennington <hp@pobox.com>
6269 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
6271 2003-08-28 Havoc Pennington <hp@pobox.com>
6275 * dbus/dbus-connection.c: port to no ObjectID, create a
6276 DBusObjectTree, rename ObjectTree to ObjectPath in public API
6278 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
6279 everything except UnregisterFunction and MessageFunction
6281 * dbus/dbus-marshal.c: port away from DBusObjectID,
6282 add DBUS_TYPE_OBJECT_PATH
6284 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
6285 dbus/dbus-objectid.[hc]: remove these, we are moving to
6286 path-based object IDs
6288 2003-08-25 Havoc Pennington <hp@pobox.com>
6290 Just noticed that dbus_message_test is hosed, I wonder when I
6291 broke that. I thought make check was passing earlier...
6293 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
6294 container tree, will replace most of dbus-object-registry
6296 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
6299 2003-08-19 Havoc Pennington <hp@pobox.com>
6301 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
6302 (dbus_message_is_error): fix this function
6304 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
6307 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
6308 reflect clarified man page
6309 (bus_client_policy_check_can_send): ditto
6311 * bus/session.conf.in: fixup
6313 * bus/system.conf.in: fixup
6315 2003-08-18 Havoc Pennington <hp@redhat.com>
6317 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
6319 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
6320 dumb bug created earlier (wrong order of args to
6321 decode_header_data())
6323 * tools/dbus-send.c: port
6325 * tools/dbus-print-message.c (print_message): port
6327 * test/data/*messages: port all messages over
6329 * dbus/dbus-message-builder.c: support including
6332 * bus/driver.c: port over
6334 * bus/dispatch.c: port over to new stuff
6336 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6337 rename disconnect signal to "Disconnected"
6339 2003-08-17 Havoc Pennington <hp@pobox.com>
6341 This doesn't compile yet, but syncing up so I can hack on it from
6342 work. What are branches for if not broken code? ;-)
6344 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
6345 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
6346 DBUS_HEADER_FIELD_ERROR_NAME
6348 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
6349 for the interface+member pairs
6350 (string_hash): change to use g_str_hash algorithm
6351 (find_direct_function, find_string_function): refactor these to
6354 * dbus/dbus-message.c: port all of this over to support
6355 interface/member fields instead of name field
6357 * dbus/dbus-object-registry.c: port over
6359 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
6360 from _dbus_string_validate_name
6362 * bus/dbus-daemon-1.1: change file format for the
6363 <deny>/<allow> stuff to match new message naming scheme
6365 * bus/policy.c: port over
6367 * bus/config-parser.c: parse new format
6369 2003-08-16 Havoc Pennington <hp@pobox.com>
6371 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
6374 * glib/dbus-gproxy.c: some hacking
6376 2003-08-15 Havoc Pennington <hp@redhat.com>
6378 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
6380 * dbus/dbus-connection.c
6381 (dbus_connection_send_with_reply_and_block): factor out internals;
6382 change to convert any error replies to DBusError instead of
6383 returning them as a message
6385 2003-08-15 Havoc Pennington <hp@pobox.com>
6387 * dbus/dbus-connection.c,
6388 dbus/dbus-pending-call.c: Finish the pending call stuff
6390 2003-08-14 Havoc Pennington <hp@redhat.com>
6392 * dbus/dbus-pending-call.c: start on new object that will replace
6393 DBusMessageHandler and ReplyHandlerData for tracking outstanding
6396 * dbus/dbus-gproxy.c: start on proxy object used to communicate
6397 with remote interfaces
6399 * dbus/dbus-gidl.c: do the boring boilerplate in here
6401 2003-08-12 Havoc Pennington <hp@pobox.com>
6403 * bus/dispatch.c (bus_dispatch): make this return proper
6404 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
6406 * dbus/dbus-errors.c (dbus_set_error): use
6407 _dbus_string_append_printf_valist
6409 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
6410 (_dbus_string_append_printf): new
6412 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
6415 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
6416 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
6417 message is unhandled.
6419 2003-08-11 Havoc Pennington <hp@pobox.com>
6421 * bus/test.c (client_disconnect_handler): change to return
6422 HANDLED (would have been REMOVE_MESSAGE)
6424 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
6425 HANDLED/NOT_YET_HANDLED instead of
6426 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
6429 2003-08-10 Havoc Pennington <hp@pobox.com>
6431 * tools/dbus-send.c (main): add --type argument, for now
6432 supporting only method_call and signal types.
6434 * tools/dbus-print-message.c: print message type
6436 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
6437 init connection->objects
6439 * doc/dbus-specification.sgml: fix sgml
6441 * bus/*.c: port over to object-instance API changes
6443 * test/test-service.c: ditto
6445 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
6446 name, we will have to fix up the rest of the code to also handle
6448 (dbus_message_new): generic message-creation call
6449 (set_string_field): allow appending name field
6451 2003-08-06 Havoc Pennington <hp@pobox.com>
6453 * dbus/dbus-object-registry.c: implement signal connection
6456 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
6458 * dbus/dbus-internals.c (_dbus_memdup): new function
6460 2003-08-02 Havoc Pennington <hp@pobox.com>
6462 * dbus/dbus-message.c (dbus_message_get_no_reply)
6463 (dbus_message_set_no_reply): add these and remove
6464 set_is_error/get_is_error
6466 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
6467 remove the ERROR flag, since there's now an ERROR type
6469 2003-08-01 Havoc Pennington <hp@pobox.com>
6471 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
6474 * dbus/dbus-message.c (dbus_message_get_type): new function
6476 * doc/dbus-specification.sgml: add "type" byte to messages
6478 2003-08-01 Havoc Pennington <hp@pobox.com>
6480 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
6481 a message type enum to distinguish kinds of message
6482 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
6483 that need not be replied to
6485 2003-08-01 Havoc Pennington <hp@pobox.com>
6487 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
6488 (unpack_8_octets): fix no-64-bit-int bug
6490 * dbus/dbus-object-registry.c (validate_id): validate the
6491 connection ID bits, not just the instance ID.
6493 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
6494 the connection-global 33 bits of the object ID
6496 * dbus/dbus-object-registry.c (info_from_entry): fill in
6497 object ID in the new way
6499 * dbus/dbus-objectid.h: rather than high/low bits, specifically
6500 define server/client/instance bits.
6502 2003-07-30 Havoc Pennington <hp@pobox.com>
6504 * dbus/dbus-connection.c (dbus_connection_register_object): fix
6507 2003-07-13 Havoc Pennington <hp@pobox.com>
6509 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
6510 fields to DBusObjectVTable and DBusObjectInfo
6512 2003-07-12 Havoc Pennington <hp@pobox.com>
6514 * dbus/dbus-object-registry.c: implement unit test,
6515 fix bugs discovered in process
6517 * dbus/dbus-connection.c: remove handler_table and
6518 register_handler(), add DBusObjectRegistry usage
6520 * dbus/dbus-objectid.c (dbus_object_id_is_null)
6521 (dbus_object_id_set_null): new functions
6523 2003-07-08 Havoc Pennington <hp@pobox.com>
6525 * dbus/dbus-object.c: implement some of this
6527 * dbus/dbus-object-registry.c
6528 (_dbus_object_registry_add_and_unlock): fill in the object_id out
6530 (_dbus_object_registry_new): handle OOM
6532 2003-07-08 Havoc Pennington <hp@pobox.com>
6534 * dbus/dbus-object.h: sketch out an API for registering objects
6535 with a connection, that allows us to use as little as 24 bytes
6536 per object and lets application code represent an object in
6537 any conceivable way.
6539 * dbus/dbus-object-registry.c: implement the hard bits of the
6540 DBusConnection aspect of object API. Not yet wired up.
6542 2003-07-06 Havoc Pennington <hp@pobox.com>
6544 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
6545 (_dbus_marshal_object_id): new
6546 (_dbus_demarshal_object_id): new
6547 (_dbus_marshal_get_arg_end_pos): support object ID type, and
6548 consolidate identical switch cases. Don't conditionalize handling
6549 of DBUS_TYPE_UINT64, need to handle the type always.
6550 (_dbus_marshal_validate_arg): consolidate identical cases, and
6551 handle DBUS_TYPE_OBJECT_ID
6553 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
6555 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
6557 2003-09-28 Havoc Pennington <hp@pobox.com>
6561 2003-09-28 Havoc Pennington <hp@pobox.com>
6563 * doc/Makefile.am (dbus-specification.html): testing a funky hack
6564 to work with Debian db2html
6566 2003-09-28 Havoc Pennington <hp@pobox.com>
6568 * configure.in: 0.13
6570 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
6571 stylesheet-images for benefit of Debian
6573 Change back to using filesystem-linked sockets for the system
6574 bus, so only root can create the default system bus address.
6576 * bus/system.conf.in: change to use
6577 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6579 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
6582 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
6583 here, and AC_DEFINE DBUS_SYSTEM_PATH
6585 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6588 * doc/busconfig.dtd:
6591 2003-08-09 Anders Carlsson <andersca@codefactory.se>
6593 * doc/dbus-specification.sgml:
6594 Add activation reply values.
6596 2003-08-05 Havoc Pennington <hp@redhat.com>
6598 * configure.in: 0.12
6600 2003-08-05 Anders Carlsson <andersca@codefactory.se>
6602 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
6603 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
6604 (add_watch), (remove_watch), (create_source):
6605 Refcount fds, fixes some reentrancy issues.
6607 2003-07-30 Havoc Pennington <hp@redhat.com>
6609 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
6610 bus address to be abstract if we have abstract sockets
6614 2003-07-28 Havoc Pennington <hp@redhat.com>
6616 * bus/messagebus.in: fix to avoid processname/servicename
6617 confusion, from Michael Kearey
6618 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
6620 2003-07-23 Havoc Pennington <hp@pobox.com>
6622 * dbus/dbus-message.c (dbus_message_iter_get_named):
6623 fix from Andy Hanton to remove broken "+1"
6625 2003-07-16 Havoc Pennington <hp@pobox.com>
6627 * tools/dbus-launch.c (babysit): close stdout/stderr in the
6628 babysitter process, as suggested by Thomas Leonard, so
6629 an "eval `dbus-launch --exit-with-session`" will actually
6632 2003-07-16 Havoc Pennington <hp@pobox.com>
6634 * configure.in: print out EXPANDED_* variables in the summary at
6635 the end; clean up the code that computes EXPANDED_ variables and
6636 get the ones using exec_prefix right. Should make things work
6637 when you build without --prefix
6639 2003-06-29 Havoc Pennington <hp@pobox.com>
6641 * mono/Test.cs (class Test): fire up a main loop and run it
6643 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
6644 done once, the app has to do it
6646 2003-06-26 Havoc Pennington <hp@pobox.com>
6648 * mono/Connection.cs: set up connection with the glib main loop
6650 2003-07-01 Havoc Pennington <hp@redhat.com>
6652 * doc/dbus-specification.sgml: clarify the format of a type code,
6653 change suggested by Jim Blandy
6655 2003-06-29 Miloslav Trmac <mitr@volny.cz>
6658 * tools/Makefile.am: Don't assume srcdir == builddir.
6660 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
6661 the allocated block.
6662 (_dbus_memory_test): New function.
6663 * dbus/dbus-test.h: Add _dbus_memory_test ().
6664 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
6666 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
6668 (dbus_message_new): Remove obsolete @todo.
6670 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
6671 (_dbus_marshal_set_uint64): Fix comment.
6673 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
6674 hardcode FIELD_REPLY_SERIAL.
6676 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
6677 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
6679 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
6680 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
6682 2003-06-24 Havoc Pennington <hp@pobox.com>
6684 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
6686 2003-06-23 Anders Carlsson <andersca@codefactory.se>
6692 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
6693 * gcj/org/.cvsignore:
6694 * gcj/org/Makefile.am:
6695 * gcj/org/freedesktop/.cvsignore:
6696 * gcj/org/freedesktop/Makefile.am:
6697 * gcj/org/freedesktop/dbus/.cvsignore:
6698 * gcj/org/freedesktop/dbus/Makefile.am:
6699 * gcj/org/freedesktop/dbus/Message.java: (Message),
6701 * gcj/org/freedesktop/dbus/natMessage.cc:
6702 Fix the build system.
6704 2003-06-22 Havoc Pennington <hp@pobox.com>
6706 * mono/Connection.cs: add more bindings
6708 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
6711 2003-06-22 Havoc Pennington <hp@pobox.com>
6713 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
6714 Start wrapping more stuff.
6716 2003-06-22 Havoc Pennington <hp@pobox.com>
6718 * mono/Message.cs: implement Message.Wrap() that ensures we only
6719 have a single C# wrapper per DBusMessage, assuming it works which
6720 it probably doesn't.
6722 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
6723 (dbus_message_free_data_slot): new
6724 (dbus_message_set_data): new
6725 (dbus_message_get_data): new
6727 2003-06-22 Havoc Pennington <hp@pobox.com>
6729 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
6730 (_dbus_data_slot_allocator_alloc): rework these to keep a
6731 reference count on each slot and automatically manage a global
6732 slot ID variable passed in by address
6734 * bus/bus.c: convert to new dataslot API
6736 * dbus/dbus-bus.c: convert to new dataslot API
6738 * dbus/dbus-connection.c: convert to new dataslot API
6740 * dbus/dbus-server.c: convert to new dataslot API
6742 * glib/dbus-gmain.c: ditto
6746 * bus/connection.c: ditto
6748 2003-06-22 Anders Carlsson <andersca@codefactory.se>
6750 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
6751 after the gcj checks so that the correct configuration tags
6752 will be added to libtool.
6754 * dbus-glib-1.pc.in: No need to specify any includes since
6755 dbus-1.pc.in has those.
6757 2003-06-22 Havoc Pennington <hp@pobox.com>
6759 * mono/*, gcj/*, configure.in, Makefile.am:
6760 Check in makefiles and subdirs for mono and gcj bindings.
6761 Neither binding actually exists, just trying to get through
6762 all the build and other boring bits.
6764 2003-06-21 Philip Blundell <philb@gnu.org>
6766 * tools/dbus-monitor.1: Updated.
6768 * tools/dbus-send.1: Likewise.
6770 2003-06-20 Anders Carlsson <andersca@codefactory.se>
6772 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
6773 for hangup and error after checking read so we won't discard
6774 pending data if both hangup and read are set.
6776 2003-06-19 Philip Blundell <philb@gnu.org>
6778 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
6780 * tools/dbus-send.c: Accept both --system and --session.
6782 * tools/dbus-monitor.c: Same here.
6784 2003-06-19 Anders Carlsson <andersca@codefactory.se>
6786 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
6787 from C++ (Patch by Miloslav Trmac).
6789 2003-06-15 Joe Shaw <joe@assbarn.com>
6791 * configure.in: Check for socklen_t.
6793 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
6795 * test/test-segfault.c: Add #include <sys/time.h>
6797 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
6798 dbus-launch needs it.
6800 2003-06-09 Havoc Pennington <hp@redhat.com>
6802 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
6803 SUN_LEN, it breaks abstract socket usage
6805 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
6808 2003-06-04 Havoc Pennington <hp@pobox.com>
6810 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
6811 using unix:abstract=/foo, and when listening in a tmpdir
6812 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
6814 * dbus/dbus-transport.c (_dbus_transport_open): support
6817 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6818 support abstract sockets
6820 * dbus/dbus-transport-unix.c
6821 (_dbus_transport_new_for_domain_socket): support abstract sockets
6823 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
6824 toggle as an argument, implement abstract namespace support
6825 (_dbus_listen_unix_socket): ditto
6827 * configure.in: add --enable-abstract-sockets and implement
6828 a configure check for autodetection of the right value.
6830 2003-06-01 Havoc Pennington <hp@pobox.com>
6832 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
6833 in /tmp (though on Linux this will end up being useless,
6834 when we add abstract namespace support)
6836 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
6839 2003-05-28 Colin Walters <walters@verbum.org>
6841 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
6843 2003-05-18 Anders Carlsson <andersca@codefactory.se>
6845 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
6847 2003-05-17 Colin Walters <walters@gnu.org>
6849 * tools/dbus-send.c: Don't exit with an error code if --help was
6850 passed. Default to using the session bus instead of the system
6853 * tools/dbus-launch.c: Ditto.
6855 * tools/dbus-monitor.c: Ditto.
6857 * tools/dbus-send.1: Update with new arguments.
6859 * tools/dbus-launch.c: Emit code to export variables. New
6860 arguments -s and -c to specify shell syntax, and a bit of code to
6861 autodetect syntax. Also, allow specifying a program to run.
6863 * tools/dbus-launch.1: Update with new arguments.
6865 * tools/dbus-send.1: Ditto.
6867 * tools/dbus-monitor.1: Ditto.
6869 2003-05-17 Havoc Pennington <hp@pobox.com>
6871 * bus/config-parser.c (merge_included): merge in policies from
6872 child configuration file.
6874 * bus/policy.c (bus_policy_merge): function to merge two policies
6877 2003-05-16 Havoc Pennington <hp@redhat.com>
6879 * dbus/dbus-connection.c: disable verbose lock spew
6881 * tools/dbus-send.c: add --print-reply command line option
6883 * tools/dbus-print-message.h (print_message): new util function
6884 shared by dbus-send and dbus-monitor
6886 * tools/dbus-monitor.c (handler_func): exit on disconnect
6888 * dbus/dbus-transport-unix.c (do_reading): if the transport is
6889 disconnected, don't try to use the read_watch
6891 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
6892 so we can find this bug more easily
6894 2003-05-16 Havoc Pennington <hp@redhat.com>
6896 * bus/policy.c (free_rule_list_func): avoid a crash when passed
6897 NULL as DBusHashTable is annoyingly likely to do.
6899 2003-05-16 Colin Walters <walters@verbum.org>
6901 * tools/dbus-monitor.c: Add --session argument and usage()
6904 * tools/dbus-monitor.1: Update with new --session arg.
6906 * bus/Makefile.am (install-data-hook): Create
6907 $(libdir)/dbus-1.0/services so that the session bus is happy.
6909 2003-05-15 Havoc Pennington <hp@redhat.com>
6911 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
6912 on non-x86. ifdef's are evil.
6914 2003-05-15 Havoc Pennington <hp@redhat.com>
6916 * configure.in: 0.11
6920 * bus/Makefile.am (initddir): apparently we are supposed to put
6921 init scripts in /etc/rc.d/init.d not /etc/init.d
6923 * bus/Makefile.am: remove the "you must --enable-tests to make
6924 check" as it broke distcheck
6926 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
6928 2003-05-13 James Willcox <jwillcox@gnome.org>
6931 * bus/activation.c: (bus_activation_service_created),
6932 (bus_activation_activate_service):
6933 * bus/driver.c: (bus_driver_send_service_deleted),
6934 (bus_driver_send_service_created), (bus_driver_send_service_lost),
6935 (bus_driver_send_service_acquired),
6936 (bus_driver_send_welcome_message),
6937 (bus_driver_handle_list_services):
6938 * bus/session.conf.in:
6939 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
6940 (dbus_bus_service_exists), (dbus_bus_activate_service):
6943 Add some convenience API which lets you activate a service, and did a
6944 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
6945 and dbus_message_get_args()
6947 2003-05-11 Havoc Pennington <hp@pobox.com>
6949 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6950 calling _dbus_marshal_validate_arg() for every byte in a byte
6953 * dbus/dbus-message-handler.c: use atomic reference counting to
6954 reduce number of locks slightly; the global lock in here sucks
6956 * dbus/dbus-connection.c
6957 (_dbus_connection_update_dispatch_status_and_unlock): variant of
6958 update_dispatch_status that can be called with lock held; then use
6959 in a couple places to reduce locking/unlocking
6960 (dbus_connection_send): hold the lock over the whole function
6961 instead of acquiring it twice.
6963 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6965 * bus/connection.c (bus_connections_setup_connection): fix access
6966 to already-freed memory.
6968 * dbus/dbus-connection.c: keep a little cache of linked list
6969 nodes, to avoid using the global linked list alloc lock in the
6970 normal send-message case. Instead we just use the connection lock
6971 that we already have to take.
6973 * dbus/dbus-list.c (_dbus_list_find_last): new function
6975 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6976 change to use a struct for the atomic type; fix docs,
6977 they return value before increment, not after increment.
6979 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6980 (_dbus_string_append_8_aligned): new functions to try to
6981 microoptimize this operation.
6982 (reallocate_for_length): break this out of set_length(), to
6983 improve profile info, and also so we can consider inlining the
6986 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6987 strings with some preallocation, cuts down on our calls to realloc
6988 a fair bit. Though if we can get the "move entire string to empty
6989 string" optimization below to kick in here, it would be better.
6991 * dbus/dbus-string.c (_dbus_string_move): just call
6992 _dbus_string_move_len
6993 (_dbus_string_move_len): add a special case for moving
6994 an entire string into an empty string; we can just
6995 swap the string data instead of doing any reallocs.
6996 (_dbus_string_init_preallocated): new function
6998 2003-05-11 Havoc Pennington <hp@pobox.com>
7000 Write a "test-profile" that does echo client-server with threads;
7001 profile reveals lock contention, memcpy/realloc of buffers, and
7002 UTF-8 validation as hot spots. 20% of lock contention eliminated
7003 with dbus_atomic_inc/dec implementation on x86. Much remaining
7004 contention is global mempool locks for GList and DBusList.
7006 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7009 * dbus/dbus-connection.c (struct DBusConnection): use
7010 dbus_atomic_t for the reference count
7012 * dbus/dbus-message.c (struct DBusMessage): declare
7013 dbus_atomic_t values as volatile
7015 * configure.in: code to detect ability to use atomic integer
7016 operations in assembly, from GLib patch
7018 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7019 time, tired of it being wrong in threads and forked processes
7021 * glib/test-profile.c: a little program to bounce messages back
7022 and forth between threads and eat CPU
7024 * dbus/dbus-connection.c: add debug spew macros for debugging
7025 thread locks; include config.h at top; fix deadlock in
7026 dbus_connection_flush()
7028 2003-05-08 Havoc Pennington <hp@pobox.com>
7030 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7031 data from getting written, and there wasn't a good reason to
7034 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7035 dbus_verbose lines in test coverage
7036 (main): add list of functions sorted by # of untested blocks
7037 to the coverage report
7039 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7041 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7043 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7044 extend test coverage
7046 * test/data/auth/cancel.auth-script: test canceling an
7049 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7050 aren't used. in CVS history if we end up needing them.
7052 2003-05-04 Havoc Pennington <hp@pobox.com>
7054 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7057 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7058 function, which assumed length was in # of strings, not bytes
7060 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7063 * dbus/dbus-connection.c
7064 (_dbus_connection_queue_received_message): disable function for
7065 now, we are only using it in test mode
7067 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7068 remove a mistaken FIXME
7070 2003-05-04 Havoc Pennington <hp@pobox.com>
7072 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7073 unlock mutex on successful return, patch from Anders Gustafsson
7075 2003-05-04 Havoc Pennington <hp@pobox.com>
7077 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7080 2003-05-04 Havoc Pennington <hp@pobox.com>
7082 * tools/dbus-launch.c: implement
7084 * bus/main.c (main), bus/bus.c (bus_context_new):
7085 implement --print-pid and --fork
7087 2003-05-03 Havoc Pennington <hp@redhat.com>
7089 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7090 the address had no value, and add to test suite. Fix and
7091 regression test from Miloslav Trmac
7093 2003-05-03 Havoc Pennington <hp@pobox.com>
7095 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7096 watch is invalid when handled
7098 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7099 dbus-launch utility to launch the bus from a shell script. Didn't
7100 actually implement dbus-launch yet, it's just a placeholder still.
7102 2003-05-03 Havoc Pennington <hp@pobox.com>
7104 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7105 daemon; also documents daemon config file, so replaces
7106 doc/config-file.txt. Corrected some stuff from config-file.txt in
7107 the process of moving it.
7109 2003-05-03 Havoc Pennington <hp@pobox.com>
7111 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7114 2003-05-03 Colin Walters <walters@verbum.org>
7116 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7117 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7119 * Makefile.am: Update to use new .pc versioning scheme.
7121 2003-05-02 Havoc Pennington <hp@redhat.com>
7123 * bus/system.conf.in: allow send/receive to/from message bus
7126 2003-04-30 Havoc Pennington <hp@redhat.com>
7128 * configure.in: print a note when building with unit tests and
7131 2003-04-30 Havoc Pennington <hp@redhat.com>
7133 * Makefile.am: add a check-local that complains if you didn't
7134 configure with --enable-tests
7136 2003-04-29 Havoc Pennington <hp@redhat.com>
7138 * glib/dbus-gmain.c: docs cleanups
7140 * dbus/dbus-types.h: add docs on int64 types
7142 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7143 public API docs section
7145 2003-04-29 Havoc Pennington <hp@redhat.com>
7147 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7148 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7149 parallel install API version, not with the D-BUS package version.
7151 * HACKING: move some of README over here
7153 * README: updates, and document API/ABI policy
7155 * configure.in: reindentation
7157 2003-04-29 Havoc Pennington <hp@redhat.com>
7159 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7160 to use this library" to be sure people have the right
7163 2003-04-28 Havoc Pennington <hp@redhat.com>
7165 * configure.in: add --enable-docs which by default is auto yes if
7166 doxygen and db2html found, no otherwise; but can be forced on/off
7168 * doc/Makefile.am: conditionalize whether to build docs on
7171 2003-04-28 Havoc Pennington <hp@redhat.com>
7173 * configure.in: 0.10
7177 * bus/system.conf.in: add <includedir>system.d</includedir>
7179 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7180 username was provided but not uid
7182 * bus/config-parser.c (struct BusConfigParser): keep track of
7183 whether the parser is toplevel or was included; change some
7184 of the error handling if it's included.
7186 2003-04-27 Havoc Pennington <hp@pobox.com>
7190 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7191 report correct status if we finish processing authentication
7192 inside this function.
7194 * bus/activation.c (try_send_activation_failure): use
7195 bus_transaction_send_error_reply
7197 * bus/connection.c (bus_connection_get_groups): return an error
7198 explaining the problem
7200 * bus/bus.c (bus_context_check_security_policy): implement
7201 restriction here that inactive connections can only send the
7202 hello message. Also, allow bus driver to send anything to
7205 * bus/connection.c (bus_connection_complete): create the
7206 BusClientPolicy here instead of on-demand.
7207 (bus_connection_get_policy): don't return an error
7209 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7210 sender field in message being replied to
7212 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7213 causing it to return FALSE always
7215 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7216 we checked sender rather than destination
7218 2003-04-25 Havoc Pennington <hp@redhat.com>
7220 test suite is slightly hosed at the moment, will fix soon
7222 * bus/connection.c (bus_connections_expire_incomplete): fix to
7223 properly disable the timeout when required
7224 (bus_connection_set_name): check whether we can remove incomplete
7225 connections timeout after we complete each connection.
7227 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7228 probably still broken.
7230 * bus/services.c (bus_registry_acquire_service): implement max
7231 number of services owned, and honor allow/deny rules on which
7232 services a connection can own.
7234 * bus/connection.c (bus_connection_get_policy): report errors here
7236 * bus/activation.c: implement limit on number of pending
7239 2003-04-25 Havoc Pennington <hp@redhat.com>
7241 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
7242 where we used >= 0 instead of != DBUS_UID_UNSET.
7244 2003-04-25 Havoc Pennington <hp@redhat.com>
7246 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
7247 were toggled without add/remove, fix from Anders Gustafsson
7249 2003-04-24 Havoc Pennington <hp@redhat.com>
7251 * test/data/valid-config-files/basic.conf: add <limit> tags to
7254 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
7255 <limit> tag in configuration file.
7257 2003-04-24 Havoc Pennington <hp@redhat.com>
7259 * bus/dispatch.c: somehow missed some name_is
7261 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
7262 (_dbus_timeout_set_interval): new
7264 * bus/connection.c (bus_connections_setup_connection): record time
7265 when each connection is first set up, and expire them after the
7266 auth timeout passes.
7268 2003-04-24 Havoc Pennington <hp@redhat.com>
7270 * dbus/dbus-message.c (dbus_message_name_is): rename
7271 (dbus_message_service_is): rename
7272 (dbus_message_sender_is): rename
7273 (dbus_message_get_service): rename
7275 2003-04-24 Havoc Pennington <hp@redhat.com>
7277 * configure.in: add --enable-checks
7279 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
7281 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
7282 to use thread locks.
7283 (_dbus_connection_handler_destroyed_locked): move some private
7284 functions into proper docs group
7286 * dbus/dbus-internals.h: add _dbus_return_if_fail,
7287 _dbus_return_val_if_fail
7289 Throughout: use dbus_return_if_fail
7291 2003-04-23 James Willcox <jwillcox@gnome.org>
7294 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
7295 (dbus_connection_setup_with_g_main),
7296 (dbus_server_setup_with_g_main):
7297 * glib/test-dbus-glib.c: (main):
7298 * glib/test-thread-client.c: (main):
7299 * glib/test-thread-server.c: (new_connection_callback), (main):
7300 * tools/dbus-monitor.c: (main):
7302 Added a GMainContext argument to dbus_connection_setup_with_g_main()
7303 and dbus_server_setup_with_g_main().
7305 2003-04-20 Havoc Pennington <hp@pobox.com>
7307 * doc/dbus-specification.sgml: document the restrictions on
7308 message and service names
7310 2003-04-22 Havoc Pennington <hp@redhat.com>
7312 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
7313 support, and do some code cleanups to share more code and
7314 speed up array marshal/demarshal.
7316 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
7318 * configure.in: generate dbus-arch-deps.h
7320 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
7323 2003-04-22 Havoc Pennington <hp@redhat.com>
7325 * test/data/valid-messages/opposite-endian.message: fix test
7326 to use proper type for rply field
7328 * test/data/invalid-messages: add tests for below validation
7330 * dbus/dbus-message.c (decode_header_data): validate field types,
7331 and validate that named fields are valid names
7332 (decode_name_field): consider messages in the
7333 org.freedesktop.Local. namespace to be invalid.
7335 * dbus/dbus-string.c (_dbus_string_validate_name): new
7337 2003-04-19 Havoc Pennington <hp@pobox.com>
7339 * bus/driver.c (bus_driver_handle_hello): check limits and
7340 return an error if they are exceeded.
7342 * bus/connection.c: maintain separate lists of active and inactive
7343 connections, and a count of each. Maintain count of completed
7344 connections per user. Implement code to check connection limits.
7346 * dbus/dbus-list.c (_dbus_list_unlink): export
7348 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
7349 number of bytes in the message queue for a connection
7351 2003-04-18 Havoc Pennington <hp@pobox.com>
7353 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
7355 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
7358 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
7359 on realloc be sure to update the pointer in the keyring
7361 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
7362 offset to avoid writing to unallocated memory
7364 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
7365 try the next mechanism, so we properly handle OOM
7367 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
7369 (_dbus_keyring_new): fix OOM bug
7370 (_dbus_keyring_new_homedir): always set error; impose a maximum
7371 number of keys we'll load from the file, mostly to speed up the
7372 test suite and make its OOM checks more useful, but also for
7375 * dbus/dbus-auth.c (process_error_server): reject authentication
7376 if we get an error from the client
7377 (process_cancel): on cancel, send REJECTED, per the spec
7378 (process_error_client): send CANCEL if we get an error from the
7381 2003-04-18 Havoc Pennington <hp@pobox.com>
7383 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
7386 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
7389 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
7390 about DBUS_TEST_HOMEDIR once
7392 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
7395 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
7396 config file so we test the right thing
7398 Throughout: assorted docs improvements
7400 2003-04-18 Havoc Pennington <hp@pobox.com>
7402 * glib/dbus-gmain.c: adapt to watch changes
7404 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
7406 * dbus/dbus-server.h: remove dbus_server_handle_watch
7408 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
7410 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
7411 like DBusTimeout, so we don't need dbus_connection_handle_watch
7414 2003-04-17 Havoc Pennington <hp@redhat.com>
7416 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
7417 database usage so it all goes via the DBusUserDatabase cache.
7419 2003-04-17 Havoc Pennington <hp@redhat.com>
7421 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
7422 there was an OOM watch we skipped, we always return TRUE so we
7423 iterate again to have a look at it again. Fixes test suite hang.
7424 Code rearrangement also lets us lose some memset and only iterate
7425 over callbacks once.
7427 * bus/driver.c (bus_driver_handle_message): sense of test for
7430 2003-04-16 Havoc Pennington <hp@pobox.com>
7432 * doc/dbus-specification.sgml: make spec say serials are unsigned
7434 * dbus/dbus-message.h: change message serials to unsigned
7436 * dbus/dbus-connection.c: adapt to message serials being unsigned
7438 2003-04-15 Havoc Pennington <hp@pobox.com>
7440 * bus/bus.c: create and keep around a shared DBusUserDatabase
7443 * bus/connection.c (bus_connection_get_groups): don't cache
7444 groups for user in the connection object, since user database
7445 object now does that.
7447 2003-04-16 Havoc Pennington <hp@redhat.com>
7449 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
7450 list of size counters
7451 (_dbus_message_loader_putback_message_link): put back a popped link
7453 * dbus/dbus-connection.c
7454 (dbus_connection_set_max_live_messages_size): rename
7456 (dbus_connection_get_outgoing_size): get size of outgoing
7458 (_dbus_connection_set_connection_counter): remove this cruft
7460 2003-04-14 Havoc Pennington <hp@redhat.com>
7462 * dbus/dbus-userdb.c: user database abstraction, mostly to get
7463 caching, but at some point we might want to be able to use a
7466 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
7467 SHA1 conf file to test the sha1 auth mechanism, since the regular
7468 test always uses EXTERNAL when available.
7471 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
7472 add conf file that requires use of sha1 auth
7474 2003-04-13 Havoc Pennington <hp@pobox.com>
7476 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
7477 from Philip Blundell to send messages and monitor them.
7479 2003-04-13 Havoc Pennington <hp@pobox.com>
7481 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
7484 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
7487 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7488 fix to only recover unused bytes if we're already authenticated
7489 (_dbus_transport_get_is_authenticated): fix to still mark us
7490 authenticated if there are unused bytes.
7492 * bus/dispatch.c: implement security policy checking
7494 * bus/connection.c (bus_transaction_send_from_driver): new
7496 * bus/bus.c (bus_context_check_security_policy): new
7498 * bus/dispatch.c (send_service_nonexistent_error): delete this,
7499 now we just set the DBusError and it gets converted to an error
7502 * bus/connection.c (allow_user_function): enable code using actual
7503 data from the config file
7505 * bus/policy.c (list_allows_user): handle wildcard rules for
7506 user/group connection perms
7508 2003-04-13 Havoc Pennington <hp@pobox.com>
7510 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
7512 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
7514 * bus/policy.c (bus_policy_append_mandatory_rule)
7515 (bus_policy_append_default_rule, bus_policy_append_user_rule)
7516 (bus_policy_append_group_rule): new functions
7518 2003-04-12 Havoc Pennington <hp@pobox.com>
7520 * bus/config-parser.c (bus_config_parser_new): fix a memleak
7522 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
7523 the pid/gid/uid, just for paranoia.
7525 * test/break-loader.c (randomly_do_n_things): find a byte
7526 containing a type code, and randomly change it to a different
7529 2003-04-12 Havoc Pennington <hp@pobox.com>
7531 * bus/policy.h: change BusPolicy to be the thing from the config
7532 file, and rename old BusPolicy to BusClientPolicy
7534 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
7535 match change in how policy works
7537 * dbus/dbus-internals.h: mark assert_not_reached as
7538 __attribute((noreturn))__
7540 2003-04-11 Havoc Pennington <hp@redhat.com>
7542 * doc/dbus-specification.sgml: fix a spot with the wrong name for
7543 the broadcast service. Use boolean return for ServiceExists.
7545 2003-04-11 Havoc Pennington <hp@redhat.com>
7547 * configure.in: add another directory to look for qt in.
7549 2003-04-11 Havoc Pennington <hp@redhat.com>
7551 * AUTHORS: add Colin Walters
7553 2003-04-11 Havoc Pennington <hp@redhat.com>
7559 2003-04-11 Havoc Pennington <hp@redhat.com>
7561 * bus/messagebus.in: remove pid file when stopping the
7562 message bus, since the bus won't have privileges to remove it
7565 2003-04-11 Havoc Pennington <hp@redhat.com>
7567 * bus/bus.c (bus_context_new): move credentials change after
7570 2003-04-11 Havoc Pennington <hp@pobox.com>
7572 * test/decode-gcov.c: add "below average functions" to the
7573 coverage report, and change how some of the code works.
7575 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
7576 not in the coverage stats.
7578 * test/test-service.c (main): use _dbus_verbose not fprintf in a
7579 couple places so running the test suite doesn't result in megaspam.
7581 2003-04-11 Havoc Pennington <hp@pobox.com>
7583 * bus/dispatch.c (check_existent_service_activation): accept a no
7584 memory error in a place we didn't before
7586 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
7587 in case the first one failed," since the test suite is less
7590 2003-04-10 Havoc Pennington <hp@pobox.com>
7592 * bus/dispatch.c (check_segfault_service_activation): add test
7593 for launching an executable that just crashes.
7595 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
7596 don't leave a million cores. We'll see how portable this is.
7598 2003-04-10 Havoc Pennington <hp@pobox.com>
7600 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
7601 the possible parent failures before we fork, so that we don't
7602 fail to create a babysitter after creating the child.
7604 * bus/activation.c (bus_activation_activate_service): kill child
7605 if we don't successfully complete the activation.
7607 2003-04-10 Havoc Pennington <hp@redhat.com>
7609 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
7610 the connection if it's disconnected
7612 * bus/activation.c (bus_activation_service_created): use new
7613 transaction features to roll back removal of pending activation if
7614 we don't successfully create the service after all. Don't remove
7615 pending activation if the function fails.
7617 * dbus/dbus-list.c (_dbus_list_insert_before_link)
7618 (_dbus_list_insert_after_link): new code to facilitate
7621 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
7622 new functionality, so we can preallocate the ability to insert
7625 * bus/connection.c (bus_transaction_add_cancel_hook): new function
7626 allowing us to put custom hooks in a transaction to be used for
7627 cancelling said transaction
7629 * doc/dbus-specification.sgml: add some discussion of secondary
7630 service owners, and disallow zero-length service names
7632 * bus/services.c (bus_registry_acquire_service): new function,
7633 splits out part of bus_driver_handle_acquire_service() and fixes
7634 a bug where we didn't remove the service doing the acquiring
7635 from the secondary queue if we failed to remove the current owner
7636 from the front of the queue.
7638 2003-04-10 Alexander Larsson <alexl@redhat.com>
7640 * doc/dbus-specification.sgml:
7641 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
7643 2003-04-10 Alexander Larsson <alexl@redhat.com>
7648 Added files to cvsignore
7650 * dbus/dbus-message.h:
7651 * dbus/dbus-message.c: (dbus_message_iter_get_named):
7652 Make get_named() take two out argument and return a boolean.
7653 (dbus_message_iter_get_args_valist):
7654 Update usage of get_named().
7655 (dbus_message_iter_append_byte):
7657 (dbus_message_iter_append_named)
7659 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
7662 2003-04-10 Alexander Larsson <alexl@redhat.com>
7664 * dbus/dbus-marshal.[ch]:
7665 Add array_type_pos argument to _dbus_marshal_validate_arg.
7666 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
7668 * dbus/dbus-message.[ch]:
7669 Multi-dimensional arrays have full type specification in the
7670 outermost array. Iter code re-arranged to handle this.
7671 Added some more iter tests.
7673 * doc/dbus-specification.sgml:
7676 Update new array encoding description.
7677 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
7679 * test/data/invalid-messages/array-with-mixed-types.message:
7680 * test/data/valid-messages/array-of-array-of-uint32.message:
7681 Change to the new array format.
7683 * test/data/invalid-messages/too-short-dict.message:
7686 * test/data/valid-messages/recursive-types.message:
7687 Fix up and extend test.
7689 2003-04-10 Havoc Pennington <hp@pobox.com>
7691 * bus/dispatch.c: lots of fixes
7693 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
7694 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
7695 that was crack, broke the test service.
7697 * dbus/dbus-transport.c (_dbus_transport_open): fix error
7698 handling to avoid piling up errors if we get a failure on the
7701 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
7702 pid in assertion failures.
7704 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
7705 to some fixed size of file descriptor array. Don't return TRUE
7706 anytime a timeout exists, that led to lots of busy loop silliness
7709 2003-04-09 Havoc Pennington <hp@redhat.com>
7711 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
7712 I'd checked this in earlier but hadn't.
7714 2003-04-09 Havoc Pennington <hp@redhat.com>
7716 * bus/dispatch.c (bus_dispatch_test): get a bit further through
7717 the activation test (man this is getting old!)
7719 2003-04-09 Havoc Pennington <hp@redhat.com>
7721 * test/test-utils.c: use dispatch status function to fix this up
7723 * bus/connection.c (connection_watch_callback): don't dispatch
7725 (connection_timeout_callback): don't dispatch from here
7726 (bus_connections_setup_connection): set the dispatch status function
7727 (bus_connection_disconnected): unset it
7729 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
7730 used to add a connection to be dispatched
7731 (_dbus_loop_iterate): do the dispatching at the end of each
7734 * dbus/dbus-connection.c
7735 (dbus_connection_set_dispatch_status_function): new function
7736 allowing us to fix up main loop usage
7737 (_dbus_connection_last_unref): free all the various function
7739 (dbus_connection_dispatch): call the DispatchStatusFunction
7740 whenever this function returns
7741 (dbus_connection_handle_watch): call DispatchStatusFunction
7742 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
7743 (reply_handler_timeout): call DispatchStatusFunction
7744 (dbus_connection_flush): call DispatchStatusFunction
7746 2003-04-09 Havoc Pennington <hp@redhat.com>
7748 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
7751 * bus/dispatch.c (check_service_activated): fix bug in test
7753 * dbus/dbus-mainloop.c (check_timeout): fix this up
7755 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
7756 verbose output so we can sort out output from different processes,
7757 e.g. in the activation case.
7759 2003-04-08 Colin Walters <walters@gnu.org>
7761 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
7763 (bus_context_new): Set it.
7764 (bus_context_unref): Use it to delete the pid file.
7766 2003-04-08 Havoc Pennington <hp@redhat.com>
7768 * test/data/invalid-messages/array-with-mixed-types.message:
7769 regression test that fails for the moment
7771 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
7772 tests for convenience
7774 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
7775 array of nil, it broke things.
7777 * test/data/invalid-messages/array-of-nil.message: regression test
7779 * test/data/valid-messages/array-of-array-of-uint32.message:
7780 happened to write this so added it to suite
7782 2003-04-08 Havoc Pennington <hp@redhat.com>
7784 * bus/driver.c (bus_driver_handle_acquire_service): init
7785 retval/reply before checking name
7787 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
7788 recursion depth argument
7790 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
7791 in the public struct for future extension
7793 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
7796 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
7799 * doc/dbus-specification.sgml: fix typo
7801 2003-04-08 Alexander Larsson <alexl@redhat.com>
7803 Implemented recursive types, named types and new-style iters
7806 * glib/test-thread-client.c: (thread_func):
7807 * glib/test-thread-server.c: (handle_test_message):
7808 * test/test-service.c: (handle_echo):
7817 * dbus/dbus-internals.c: (_dbus_type_to_string):
7818 Update for new types.
7820 * dbus/dbus-marshal.[ch]:
7821 Implement recursive types and the new marshalling format.
7822 Remove hardcoded dict marshalling.
7823 Marshal named types.
7825 * dbus/dbus-message-builder.c:
7827 Remove references to old types
7829 * dbus/dbus-message.[ch]:
7830 New non-refcounted iter API that supports recursive iters.
7831 Use iters for appending, including support for recursive
7833 Add byte and named type support.
7834 Update everything to new marshalling formats.
7835 Add tests for new API.
7837 * dbus/dbus-protocol.h:
7838 Remove old array types.
7839 Add types: BYTE, ARRAY, DICT, NAMED
7841 * dbus/dbus-string.c:
7842 * dbus/dbus-sysdeps.c:
7843 Make parse_double locale safe.
7845 * dbus/dbus-test-main.c:
7851 * doc/dbus-specification.sgml:
7854 * test/data/incomplete-messages/missing-body.message:
7855 * test/data/invalid-messages/bad-boolean.message:
7856 * test/data/invalid-messages/bad-boolean-array.message:
7857 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
7858 * test/data/invalid-messages/boolean-has-no-value.message-raw:
7859 * test/data/invalid-messages/too-short-dict.message:
7860 * test/data/valid-messages/dict-simple.message:
7861 * test/data/valid-messages/dict.message:
7862 * test/data/valid-messages/emptiness.message:
7863 * test/data/valid-messages/lots-of-arguments.message:
7864 * test/data/valid-messages/no-padding.message:
7865 * test/data/valid-messages/recursive-types.message:
7866 Add missing NAME fields
7867 Fix up dicts & arrays
7869 * test/data/invalid-messages/dict-with-nil-value.message:
7870 Removed, this is not invalid anymore.
7872 * test/data/valid-messages/recursive-types.message:
7873 Add new test for deeply recursive types.
7875 2003-04-07 Havoc Pennington <hp@pobox.com>
7877 * bus/driver.c (bus_driver_handle_acquire_service): return an
7878 error if you try to acquire a service that starts with ':'
7880 2003-04-07 Havoc Pennington <hp@redhat.com>
7882 * doc/dbus-specification.sgml: require that base service names
7883 start with ':' and that the base service is created/deleted
7884 as first and last things a connection does on the bus
7886 * bus/dispatch.c (check_existent_service_activation): lots more
7887 work on the activation test; it doesn't fully pass yet...
7889 * test/test-service.c (main): fix so we don't memleak the
7890 connection to the message bus
7891 (filter_func): accept a message asking us to exit
7893 2003-04-06 Havoc Pennington <hp@pobox.com>
7895 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
7898 * configure.in: fixes to Qt detection from Colin Walters
7900 * doc/Makefile.am: Only remove generated docbook dirs if they
7901 exist, from Colin Walters
7903 * dbus/dbus-bus.c: change how we set well-known connections to
7904 NULL, so that it works if a single connection is stored in
7905 two well-known array slots.
7907 * test/Makefile.am: remove a lot of stuff that isn't immediately
7908 useful, it's in CVS history if we want it.
7910 * test/test-service.c: use dbus-mainloop instead of that
7913 2003-04-06 Havoc Pennington <hp@pobox.com>
7915 * dbus/Makefile.am: split lists of sources into stuff that goes in
7916 the library, util functions that go in the lib and are also used
7917 elsewhere, and util functions that are used in tests/daemon but
7918 don't go in the lib.
7920 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
7921 here so it can be used in test binaries also
7923 2003-04-06 Havoc Pennington <hp@pobox.com>
7925 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
7926 here in the parent process, so we can return an error if it
7927 fails. Also, move some of the code into the child so the parent
7928 is less hosed if we fail midway through.
7930 * bus/bus.c (bus_context_new): move pidfile detection further up
7931 in the function, before we start overwriting sockets and such.
7933 * bus/messagebus.in: adjust this a bit, not sure if it will work.
7935 * configure.in: add --with-system-pid-file and --with-system-socket
7937 2003-04-06 Colin Walters <walters@verbum.org>
7939 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
7941 * bus/system.conf.in: Declare a pidfile.
7943 * bus/bus.c (bus_context_new): Test for an existing pid file, and
7944 create one (if appropriate).
7946 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
7947 (struct BusConfigParser) [pidfile]: New.
7948 (element_type_to_name, merge_included, start_busconfig_child)
7949 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7950 (bus_config_parser_unref): Free it.
7951 (bus_config_parser_get_pidfile): New function.
7953 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7955 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7957 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7959 * dbus/dbus-sysdeps.h: Prototype it.
7961 2003-04-06 Havoc Pennington <hp@pobox.com>
7963 * bus/bus.c (bus_context_new): print the address in here, rather
7964 than in main(), because we need to do it before forking the daemon
7966 * bus/dispatch.c (send_service_nonexistent_error): set the sender
7967 on the service nonexistent error
7969 * bus/driver.c (bus_driver_handle_acquire_service): set the
7970 sender on the AcquireService reply
7972 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7973 server also listen on a UNIX socket so services can connect to it.
7975 2003-04-06 Havoc Pennington <hp@pobox.com>
7977 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7978 so it detects deadlocks and also we actually init threads when
7981 2003-04-06 Havoc Pennington <hp@pobox.com>
7983 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7984 save the domain socket name, and unlink it when we disconnect the
7985 server. Means that at least when we exit normally, we won't leave
7986 a bunch of junk in /tmp
7988 * dbus/dbus-transport-unix.c
7989 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7990 memory management). (I was making a real change here but then
7993 2003-04-06 Havoc Pennington <hp@pobox.com>
7995 * bus/bus.c (bus_context_new): fix wrong handling of
7996 server_data_slot_unref() in the error case.
7998 * dbus/dbus-internals.h (_dbus_assert): change so it passes
7999 "(condition) != 0" to _dbus_real_assert so that
8000 "_dbus_assert (pointer)" doesn't cause a warning
8002 * bus/main.c (main): accept --print-address option to print out
8003 the message bus address
8005 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8007 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8008 "tmpdir" option to unix: address on client side
8010 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8013 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8014 we can use to create sockets in the test suite.
8016 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8017 cleanly. To be used for testing.
8019 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8021 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8023 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8024 handle trying to call this when there's no servers active
8026 2003-04-05 Havoc Pennington <hp@pobox.com>
8032 2003-04-05 Havoc Pennington <hp@pobox.com>
8034 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8035 crash on startup. Need to get "try starting the daemon"
8036 in the test suite I guess. ;-)
8038 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8039 tracked the number of open connections; it's better done in
8040 application-specific code as you want it to span all servers etc.
8042 2003-04-05 Havoc Pennington <hp@pobox.com>
8044 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8045 patch from Colin Walters
8047 2003-04-05 Havoc Pennington <hp@pobox.com>
8049 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8050 reality; in fact multiple mechanisms are allowed.
8052 * dbus/dbus-internals.c (_dbus_real_assert)
8053 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8054 _dbus_assert_not_reached() into functions, so that they don't show
8055 up in basic block counts for test coverage, and don't use up as
8056 much disk space. Does mean slower execution speed though, so
8057 assumes --disable-asserts is the normal production case.
8059 2003-04-05 Havoc Pennington <hp@pobox.com>
8061 * test/Makefile.am (dist-hook): also dist *.in files
8067 2003-04-05 Havoc Pennington <hp@pobox.com>
8069 * dbus/dbus-string.c: docs warning
8071 * dbus/dbus-spawn.c: missing docs
8073 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8075 2003-04-05 Havoc Pennington <hp@pobox.com>
8077 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8080 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8081 to -1 once we've reaped the babysitter
8082 (_dbus_babysitter_handle_watch): do as much work as we can, not
8085 * bus/activation.c: add code using DBusBabysitter so that we
8086 handle it when a service fails to start up properly.
8087 (bus_activation_service_created): don't remove the activation
8088 entries as we go, just let them get removed when we free the pending
8089 activation. Unref reply messages after sending them.
8091 2003-04-05 Havoc Pennington <hp@pobox.com>
8093 * test/decode-gcov.c (main): print per-directory stats in the report
8095 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8097 2003-04-05 Havoc Pennington <hp@pobox.com>
8099 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8101 * test/decode-gcov.c: hack up a little program to suck data
8102 out of gcov files. Yes this is sort of silly.
8104 * configure.in: define something in config.h and do an
8105 AM_CONDITIONAL when gcov is enabled
8107 2003-04-04 Havoc Pennington <hp@redhat.com>
8109 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8110 return a "babysitter" object that is used to monitor the status of
8111 the spawned process and reap it when required.
8113 * test/test-segfault.c, test/test-exit.c,
8114 test/test-sleep-forever.c: binaries that do various lame things,
8115 used in the test suite.
8117 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8119 2003-04-03 Havoc Pennington <hp@pobox.com>
8121 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8122 in preparation for modifying it, dbus-sysdeps is getting
8125 2003-04-03 Havoc Pennington <hp@redhat.com>
8127 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8130 * bus/*.[hc]: adapt to mainloop change
8132 2003-04-03 Havoc Pennington <hp@redhat.com>
8134 * bus/activation.c (load_directory): fix up memleaks
8135 (bus_activation_entry_free): free the entry
8137 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8138 we get one from the message bus; fix memleaks.
8140 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8142 2003-04-03 Havoc Pennington <hp@pobox.com>
8144 * bus/config-parser.c (bus_config_parser_unref): free
8145 list of mechanisms, bug discovered by test suite enhancements
8146 (putting system.conf and session.conf into suite)
8148 * test/Makefile.am, test/test-service.c: add placeholder for a
8149 test service that we'll activate as part of test suite. Doesn't
8152 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8153 setting NULL value, and use system malloc not dbus_malloc()
8154 when we have unavoidable memleakage.
8156 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8157 didn't work, and support DBUS_BUS_ACTIVATION.
8159 * bus/activation.c (child_setup): pass our well-known bus type to
8162 * bus/config-parser.c: support <type> to specify well-known type
8164 * doc/dbus-specification.sgml: document the env variables to
8165 locate well-known buses and find service activator
8167 2003-04-02 Havoc Pennington <hp@redhat.com>
8169 * test/Makefile.am (all-local): add a rule to copy tests to
8170 builddir, so we can have generated tests. Use this to remove the
8171 silly hack for testing system.conf and session.conf. Will use this
8172 shortly to generate .service files pointing to test binaries.
8174 2003-04-02 Havoc Pennington <hp@redhat.com>
8176 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8177 current alloc and needed new length, not max of the doubled
8178 allocation and needed new length. Also, when building tests,
8179 don't do the double-allocation stuff, just realloc every time.
8181 2003-04-02 Havoc Pennington <hp@redhat.com>
8183 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8185 (_dbus_string_get_dirname): new
8186 (_dbus_sysdeps_test): new
8187 (_dbus_directory_open): include dirnames in error messages
8189 * bus/config-parser.c: interpret <include> and <includedir> and
8190 <servicedir> relative to config file location if the given
8191 filename is not absolute.
8193 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8195 2003-04-02 Havoc Pennington <hp@redhat.com>
8197 * bus/connection.c (bus_transaction_send_error_reply): set sender
8198 service for the error, and unref the reply on success
8200 * bus/activation.c: convert to use BusTransaction so OOM can be
8202 (bus_activation_service_created): set sender of the message
8204 2003-04-01 Havoc Pennington <hp@redhat.com>
8206 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8207 <includedir> (at least mostly)
8209 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8210 first, then the user ID
8212 2003-04-01 Havoc Pennington <hp@pobox.com>
8214 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8217 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8219 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8221 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8222 socket 0777, and unlink any existing socket.
8224 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8225 the configuration file so specifies; set up auth mechanism
8228 * bus/config-parser.c (bus_config_parser_content): add support
8229 for <fork> option and fill in code for <auth>
8231 * bus/system.conf.in: add <fork/> to default configuration,
8232 and limit auth mechanisms to EXTERNAL
8234 * doc/config-file.txt (Elements): add <fork>
8236 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
8237 (_dbus_change_identity): new function
8239 2003-03-31 Havoc Pennington <hp@redhat.com>
8241 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
8242 (_dbus_listen_unix_socket): fix off-by-one error in null
8243 termination spotted by Nalin
8245 2003-03-31 Havoc Pennington <hp@redhat.com>
8247 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
8248 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
8249 having a real home directory available.
8251 2003-03-31 Havoc Pennington <hp@redhat.com>
8253 * bus/Makefile.am (install-data-hook): create /var/run/dbus
8255 * bus/messagebus.in: add init script for Red Hat /etc/init.d
8257 * configure.in: add support for specifying a style of init script
8260 2003-03-31 Havoc Pennington <hp@redhat.com>
8262 Fix some annoying DBusString API and fix all affected code.
8264 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
8266 (_dbus_string_get_data): change to return string instead of using
8268 (_dbus_string_get_const_data): ditto
8269 (_dbus_string_get_data_len): ditto
8270 (_dbus_string_get_const_data_len): ditto
8272 2003-03-31 Havoc Pennington <hp@redhat.com>
8274 * bus/main.c (main): fix up the command line arguments to be nicer
8276 2003-03-31 Havoc Pennington <hp@redhat.com>
8278 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
8279 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
8280 final location that lands in the config file
8282 * bus/config-loader-expat.c (bus_config_load): fix type of
8285 * doc/TODO: remove TODO item for dbus_bus_get()
8287 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
8289 2003-03-31 Havoc Pennington <hp@pobox.com>
8291 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
8292 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
8293 argument since they are always client side
8295 * dbus/dbus-server.c (dbus_server_get_address): new function
8297 * bus/main.c (main): take the configuration file as an argument.
8299 * test/data/valid-config-files/debug-allow-all.conf: new file to
8300 use with dispatch.c tests for example
8302 * bus/test-main.c (main): require test data dir
8304 * bus/bus.c (bus_context_new): change this to take a
8305 configuration file name as argument
8307 * doc/config-file.txt (Elements): add <servicedir>
8309 * bus/system.conf, bus/session.conf: new files
8311 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
8312 well-known socket if none set
8314 * configure.in: create system.conf and session.conf
8316 2003-03-30 Havoc Pennington <hp@pobox.com>
8318 * bus/config-parser.c: hacking
8320 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
8321 to shut down, since it could cause weirdness with the DBusList
8324 * dbus/dbus-list.c (_dbus_list_test): add tests for the
8325 link-oriented stack routines
8326 (alloc_link): free the mempool if the first alloc from it fails
8328 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
8330 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
8332 (_dbus_string_skip_white): new
8334 * doc/config-file.txt (Elements): add <includedir>
8336 2003-03-28 Havoc Pennington <hp@pobox.com>
8338 * dbus/dbus-string.c (_dbus_string_copy_data_len)
8339 (_dbus_string_copy_data): new functions
8341 2003-03-28 Anders Carlsson <andersca@codefactory.se>
8343 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
8347 * dbus/dbus-memory.c:
8350 2003-03-28 Havoc Pennington <hp@pobox.com>
8352 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
8353 I think it may have just been superstition. Not sure.
8355 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
8356 failures that were not being handled.
8358 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
8360 * dbus/dbus-memory.c: add ability to set number of mallocs in a
8361 row that will fail on out-of-memory.
8363 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
8364 function for testing out-of-memory handling.
8366 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
8367 allocation functions, they do map exactly to the expat ones.
8369 2003-03-27 Havoc Pennington <hp@redhat.com>
8371 * bus/config-loader-libxml.c (bus_config_load): add another error
8374 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8377 Add note about automatic service activation.
8379 * doc/dbus-specification.sgml:
8380 Rename the specification and clarify a few things.
8382 2003-03-26 Anders Carlsson <andersca@codefactory.se>
8385 * dbus/dbus-address.c:
8387 * dbus/dbus-marshal.c:
8388 * dbus/dbus-server-debug-pipe.c:
8389 * dbus/dbus-transport-unix.c:
8390 Fix documentation warnings.
8392 2003-03-26 Havoc Pennington <hp@pobox.com>
8394 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
8395 after every test so it's quick and easy to see which leaked, and
8396 so we test multiple dbus_shutdown() calls
8398 * configure.in: change configure.in XML stuff to also support
8401 * config-loader-libxml.c: some hacking
8403 * config-loader-expat.c: some hacking
8405 * config-parser.c: some hacking, plus tests
8407 2003-03-25 Havoc Pennington <hp@redhat.com>
8409 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
8411 * configure.in: add --with-xml option to specify XML library,
8412 right now only libxml is supported.
8414 * bus/config-loader-libxml.c, config-parser.c: sync some minor
8415 nonworking code between home and work, still just stubs
8417 2003-03-24 Havoc Pennington <hp@redhat.com>
8419 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
8422 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
8423 NULL argument for "message" if the error is a well-known one,
8424 fill in a generic message in this case.
8426 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
8429 * bus/test.c (bus_test_flush_bus): add
8431 * bus/policy.c (bus_policy_test): test code stub
8433 2003-03-24 Havoc Pennington <hp@pobox.com>
8435 * bus/connection.c (bus_connections_setup_connection): set up
8436 the "can this user connect" function, but it always returns
8437 TRUE until we have a config file parser so we can have a config
8438 file that allows connections.
8440 2003-03-23 Havoc Pennington <hp@pobox.com>
8442 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
8443 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
8444 the mutex, so we can check for proper memory management
8447 * dbus/dbus-dataslot.c: remove the mutex from
8448 DBusDataSlotAllocator and lock it manually when using it,
8449 to simplify fitting it into the global slots framework.
8451 * dbus/dbus-threads.c (init_static_locks): rework how we're
8452 handling global locks so they are easily shut down.
8454 * bus/policy.c (bus_policy_append_rule): fix
8456 * bus/test-main.c (main): check for memleaks
8458 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
8459 test suite check for memleaks
8461 * dbus/dbus-memory.c: add support in test mode for tracking
8462 number of outstanding blocks
8464 2003-03-23 Havoc Pennington <hp@pobox.com>
8466 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
8469 * dbus/dbus-hash.h: add ULONG hash keys
8471 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
8472 (_dbus_get_group_id): new function
8474 2003-03-20 Havoc Pennington <hp@redhat.com>
8476 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
8478 (dbus_connection_get_unix_user): new function
8480 2003-03-20 Havoc Pennington <hp@pobox.com>
8482 * bus/connection.c (bus_connection_send_oom_error): assert that
8483 message has a sender
8484 (connection_execute_transaction): ditto
8485 (bus_connection_preallocate_oom_error): fix to set the sender, and
8486 set recipient to the destination service, not the bus driver
8488 * bus/policy.c: hacking
8490 * dbus/dbus-message.c (dbus_message_service_is): new function
8491 (dbus_message_sender_is): new
8493 2003-03-19 Havoc Pennington <hp@redhat.com>
8495 * bus/policy.c: start sketching code for policy restrictions on
8496 what connections can do.
8498 2003-03-18 Havoc Pennington <hp@redhat.com>
8500 * doc/TODO: some notes on high-level todo items. Little nitpick
8501 stuff is all in @todo, so no need to add it here.
8503 * doc/config-file.txt: some notes on how config file might look
8505 2003-03-18 Anders Carlsson <andersca@codefactory.se>
8511 2003-03-17 Havoc Pennington <hp@redhat.com>
8513 * dbus/dbus-internals.h: add gcc attributes so that
8514 our printf-style functions warn on bad arguments to
8517 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
8520 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
8523 2003-03-17 Havoc Pennington <hp@redhat.com>
8525 * bus/test-main.c (main): make it print something as it runs
8526 so make check doesn't look stuck
8528 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
8529 from CVS, now obsolete
8531 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8533 * bus/dispatch.c: (bus_dispatch):
8534 Refetch the service name since it may have been reallocated
8535 when dbus_message_set_sender was called.
8537 * dbus/dbus-sysdeps.c: (_dbus_accept):
8538 Add address and address length variables and use them to stop
8539 valgrind from complaining.
8541 2003-03-17 Havoc Pennington <hp@pobox.com>
8543 All tests pass, no memleaks, no valgrind complaints.
8545 * bus/test.c: refcount handler_slot
8547 * bus/connection.c (bus_connections_new): refcount
8548 connection_data_slot
8550 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
8551 bytes so that auth scripts pass.
8553 * bus/dispatch.c: init message_handler_slot so it gets allocated
8556 * bus/dispatch.c (message_handler_slot_ref): fix memleak
8558 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
8559 dealloc server_pipe_hash when no longer used for benefit of
8562 * dbus/dbus-auth.c (process_command): memleak fix
8564 * bus/dispatch.c (check_hello_message): memleak fix
8566 2003-03-16 Havoc Pennington <hp@pobox.com>
8568 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
8570 2003-03-17 Anders Carlsson <andersca@codefactory.se>
8572 * bus/activation.c (bus_activation_activate_service): Append
8573 the pending activation entry to the list of pending activations.
8575 2003-03-16 Havoc Pennington <hp@pobox.com>
8577 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
8580 * dbus/dbus-address.c (create_entry): fix OOM handling when
8581 failing to alloc entry->method
8583 2003-03-16 Havoc Pennington <hp@pobox.com>
8585 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
8588 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8589 add some missing dbus_set_result
8591 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
8592 alloc the DBusMessageHandler
8594 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
8595 the transport here, since we call this from the finalizer; it
8596 resulted in a double-finalize.
8598 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
8599 where we tried to use transport->connection that was NULL,
8600 happened when transport was disconnected early on due to OOM
8602 * bus/*.c: adapt to handle OOM for watches/timeouts
8604 * dbus/dbus-transport-unix.c: port to handle OOM during
8607 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
8608 reference to unused bytes instead of a copy
8610 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
8613 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
8616 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
8619 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8621 * doc/dbus-specification.sgml:
8622 Document reply message for ActivateService.
8624 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8626 * bus/activation.c: (bus_pending_activation_entry_free),
8627 (bus_pending_activation_free), (bus_activation_new),
8628 (bus_activation_unref), (bus_activation_service_created),
8629 (bus_activation_activate_service):
8631 * bus/bus.c: (bus_context_new):
8632 * bus/desktop-file.c: (new_section):
8633 * bus/driver.c: (bus_driver_send_service_deleted),
8634 (bus_driver_handle_activate_service):
8635 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
8637 * dbus/dbus-connection.c:
8638 (dbus_connection_send_with_reply_and_block):
8639 * dbus/dbus-message.c: (dbus_message_append_args_valist):
8640 * dbus/dbus-protocol.h:
8641 Make activation work better. Now pending activations will be queued
8642 and the daemon won't try to activate services that are already registered.
8644 2003-03-16 Havoc Pennington <hp@pobox.com>
8646 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
8649 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
8650 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
8652 2003-03-16 Havoc Pennington <hp@pobox.com>
8654 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
8655 this. always run the test suite before commit...
8657 * bus/*: adapt to DBusConnection API changes
8659 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
8660 requires renaming stuff to avoid dbus_connection_dispatch name
8663 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
8666 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8667 separate from _dbus_message_loader_return_buffer()
8669 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
8670 this, because it's now always broken to use; the number of
8671 messages in queue vs. the number still buffered by the message
8672 loader is undefined/meaningless. Should use
8673 dbus_connection_get_dispatch_state().
8674 (dbus_connection_dispatch): rename from
8675 dbus_connection_dispatch_message
8677 2003-03-16 Havoc Pennington <hp@pobox.com>
8679 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
8682 2003-03-16 Anders Carlsson <andersca@codefactory.se>
8684 * dbus/dbus-connection.c:
8685 (dbus_connection_send_with_reply_and_block):
8686 Decrease connection->n_incoming when removing an entry
8688 * dbus/dbus-dict.c: (dbus_dict_entry_free),
8689 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8690 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8691 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
8692 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
8693 (dbus_dict_get_byte_array):
8694 Handle NULL arrays and strings. Also add support for byte arrays.
8696 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
8697 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
8698 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
8699 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
8700 (_dbus_demarshal_dict), (demarshal_and_validate_len),
8701 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
8702 * dbus/dbus-marshal.h:
8703 Add support for marshalling and demarshalling empty arrays and strings.
8705 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8706 (dbus_message_append_string_array),
8707 (dbus_message_iter_get_boolean),
8708 (dbus_message_iter_get_boolean_array),
8709 (dbus_message_iter_get_int32_array),
8710 (dbus_message_iter_get_uint32_array),
8711 (dbus_message_iter_get_double_array),
8712 (dbus_message_iter_get_byte_array),
8713 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
8714 (check_message_handling):
8715 Add support for getting empty arrays and dicts.
8717 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
8718 Don't do any validation at all for now, that's better than just checking
8721 * test/data/valid-messages/emptiness.message:
8722 New test message with lots of empty arrays.
8724 2003-03-16 Havoc Pennington <hp@pobox.com>
8726 * dbus/dbus-connection.c
8727 (_dbus_connection_queue_received_message_link): new function that
8728 can't fail due to OOM
8730 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
8731 new function pops a message together with a list link
8734 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
8735 message queuing functions to avoid needing to alloc memory
8737 2003-03-16 Havoc Pennington <hp@pobox.com>
8739 Oops - test code was only testing failure of around 30 of the
8740 mallocs in the test path, but it turns out there are 500+
8741 mallocs. I believe this was due to misguided linking setup such
8742 that there was one copy of dbus_malloc etc. in the daemon and one
8743 in the shared lib, and only daemon mallocs were tested. In any
8744 case, the test case now tests all 500+ mallocs, and doesn't pass
8745 yet, though there are lots of fixes in this patch.
8747 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8748 this so that it doesn't need to allocate memory, since it
8749 has no way of indicating failure due to OOM (and would be
8750 annoying if it did).
8752 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
8754 * bus/Makefile.am: rearrange to create two self-contained
8755 libraries, to avoid having libraries with overlapping symbols.
8756 that was resulting in weirdness, e.g. I'm pretty sure there
8757 were two copies of global static variables.
8759 * dbus/dbus-internals.c: move the malloc debug stuff to
8762 * dbus/dbus-list.c (free_link): free list mempool if it becomes
8765 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
8767 * dbus/dbus-address.c (dbus_parse_address): free list nodes
8770 * bus/dispatch.c (bus_dispatch_add_connection): free
8771 message_handler_slot when no longer using it, so
8772 memory leak checkers are happy for the test suite.
8774 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
8776 * bus/bus.c (new_connection_callback): disconnect in here if
8777 bus_connections_setup_connection fails.
8779 * bus/connection.c (bus_connections_unref): fix to free the
8781 (bus_connections_setup_connection): if this fails, don't
8782 disconnect the connection, just be sure there are no side
8785 * dbus/dbus-string.c (undo_alignment): unbreak this
8787 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
8789 (_dbus_auth_new): fix the order in which we free strings
8792 * bus/connection.c (bus_connection_disconnected): fix to
8793 not send ServiceDeleted multiple times in case of memory
8796 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
8797 get the base service name
8798 (dbus_bus_register_client): don't return base service name,
8799 instead store it on the DBusConnection and have an accessor
8801 (dbus_bus_register_client): rename dbus_bus_register()
8803 * bus/dispatch.c (check_hello_message): verify that other
8804 connections on the bus also got the correct results, not
8805 just the one sending hello
8807 2003-03-15 Havoc Pennington <hp@pobox.com>
8809 Make it pass the Hello handling test including all OOM codepaths.
8810 Now to do other messages...
8812 * bus/services.c (bus_service_remove_owner): fix crash when
8813 removing owner from an empty list of owners
8814 (bus_registry_ensure): don't leave service in the list of
8815 a connection's owned services if we fail to put the service
8818 * bus/connection.c (bus_connection_preallocate_oom_error): set
8819 error flag on the OOM error.
8821 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
8822 handle _dbus_transport_set_connection failure
8824 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
8825 to create watches up front and simply enable/disable them as
8827 (unix_connection_set): this can now fail on OOM
8829 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
8830 of enabling/disabling a watch or timeout.
8832 * bus/loop.c (bus_loop_iterate): don't touch disabled
8835 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
8837 2003-03-15 Havoc Pennington <hp@pobox.com>
8839 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
8840 write useful test code, after all that futzing around ;-)
8842 Test does not yet pass because we can't handle OOM in
8843 _dbus_transport_messages_pending (basically,
8844 dbus_connection_preallocate_send() does not prealloc the write
8845 watch). To fix this, I think we need to add new stuff to
8846 set_watch_functions, namely a SetEnabled function so we can alloc
8847 the watch earlier, then enable it later.
8849 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
8850 dbus-memory.c to the convenience lib
8852 * bus/test.c: rename some static functions to keep them clearly
8853 distinct from stuff in connection.c. Handle client disconnection.
8855 2003-03-14 Havoc Pennington <hp@pobox.com>
8857 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
8858 transport, tests more of the real codepath. Set up clients
8859 with bus_setup_debug_client.
8861 * bus/test.c (bus_setup_debug_client): function to set up debug
8862 "clients" on the main loop
8864 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
8867 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
8870 * dbus/dbus-server-debug.c: support a debug server based on pipes
8872 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
8873 (_dbus_close): new function
8875 * configure.in: check for socketpair
8877 2003-03-14 Havoc Pennington <hp@redhat.com>
8879 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
8882 * dbus/dbus-transport-debug.c: rework this a good bit to be
8883 less complicated. hopefully still works.
8885 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
8888 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
8891 * dbus/dbus-message.c (dbus_message_copy): rename from
8892 dbus_message_new_from_message, fix it up to copy
8893 all the message fields, add test case
8895 * bus/dispatch.c (bus_dispatch_test): add some more test code,
8896 not quite passing yet
8898 2003-03-14 Havoc Pennington <hp@pobox.com>
8900 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
8901 until no work remains" in test code. (the large diff here
8902 is just code movement, no actual changes)
8904 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
8905 1, no point waiting around for test code.
8906 (_dbus_server_debug_accept_transport): unref the timeout
8907 after adding it (right?)
8909 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
8911 2003-03-13 Havoc Pennington <hp@redhat.com>
8913 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
8916 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
8919 * dbus/dbus-connection.h: Make AddWatchFunction and
8920 AddTimeoutFunction return a bool so they can fail on out-of-memory
8922 * bus/bus.c (bus_context_new): set up timeout handlers
8924 * bus/connection.c (bus_connections_setup_connection): set up
8927 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
8930 * bus/bus.c (bus_context_new): adapt to changes
8932 * bus/connection.c: adapt to changes
8934 * test/watch.c: adapt to DBusWatch changes
8936 * bus/dispatch.c (bus_dispatch_test): started adding this but
8939 2003-03-14 Anders Carlsson <andersca@codefactory.se>
8941 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
8943 2003-03-13 Havoc Pennington <hp@pobox.com>
8945 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
8946 set up a test framework as for the library
8948 2003-03-12 Havoc Pennington <hp@pobox.com>
8950 Throughout: purge global variables, introduce BusActivation,
8951 BusConnections, BusRegistry, etc. objects instead.
8953 * bus/bus.h, bus/bus.c: introduce BusContext as a global
8956 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8957 going to redo this a bit differently I think
8959 2003-03-12 Havoc Pennington <hp@redhat.com>
8961 Mega-patch that gets the message bus daemon initially handling
8962 out-of-memory. Work still needed. Also lots of random
8963 moving stuff to DBusError instead of ResultCode.
8965 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8967 * dbus/dbus-connection.c
8968 (dbus_connection_send_with_reply_and_block): use DBusError
8970 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8973 * dbus/dbus-connection.c (dbus_connection_send): drop the result
8974 code here, as the only failure possible is OOM.
8976 * bus/connection.c (bus_connection_disconnect):
8977 rename bus_connection_disconnected as it's a notification only
8979 * bus/driver.c (bus_driver_handle_acquire_service): don't free
8980 "name" on get_args failure, should be done by get_args;
8981 don't disconnect client for bad args, just return an error.
8982 (bus_driver_handle_service_exists): ditto
8984 * bus/services.c (bus_services_list): NULL-terminate returned array
8986 * bus/driver.c (bus_driver_send_service_lost)
8987 (bus_driver_send_service_acquired): send messages from driver to a
8988 specific client to the client's unique name, not to the broadcast
8991 * dbus/dbus-message.c (decode_header_data): reject messages that
8992 contain no name field
8993 (_dbus_message_get_client_serial): rename to
8994 dbus_message_get_serial and make public
8995 (_dbus_message_set_serial): rename from set_client_serial
8996 (_dbus_message_set_reply_serial): make public
8997 (_dbus_message_get_reply_serial): make public
8999 * bus/connection.c (bus_connection_foreach): allow stopping
9000 iteration by returning FALSE from foreach function.
9002 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9003 (dbus_connection_free_preallocated_send)
9004 (dbus_connection_preallocate_send): new API for sending a message
9005 without possibility of malloc failure.
9006 (dbus_connection_send_message): rename to just
9007 dbus_connection_send (and same for whole function family)
9009 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9011 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9013 * bus/activation.c: handle/return errors
9015 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9017 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9018 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9019 (_dbus_result_from_errno): move to this file
9021 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9023 * dbus/dbus-marshal.c:
9024 (_dbus_marshal_set_string):
9025 Take a length argument so we can marshal the correct string
9028 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9029 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9030 (_dbus_marshal_test):
9031 * dbus/dbus-marshal.h:
9032 Add support for marshalling and demarshalling dicts.
9034 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9035 Add support for TYPE DICT.
9037 * dbus/dbus-message.c: (set_string_field):
9038 Adjust header padding.
9040 (dbus_message_append_args_valist), (dbus_message_append_dict),
9041 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9042 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9043 (check_message_handling), (check_have_valid_message):
9044 * dbus/dbus-message.h:
9045 Add functions for setting and getting dicts.
9047 * dbus/dbus-protocol.h:
9053 * doc/dbus-specification.sgml:
9054 Add information about how dicts are marshalled.
9056 * test/data/invalid-messages/dict-with-nil-value.message:
9057 * test/data/invalid-messages/too-short-dict.message:
9058 * test/data/valid-messages/dict-simple.message:
9059 * test/data/valid-messages/dict.message:
9060 Add sample messages containing dicts.
9062 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9064 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9066 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9069 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9070 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9071 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9072 (dbus_dict_set_double), (dbus_dict_set_string),
9073 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9074 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9075 (dbus_dict_set_string_array), (_dbus_dict_test):
9077 Fix according to comments from Havoc.
9079 2003-03-06 Michael Meeks <michael@server.home>
9081 * configure.in: if we don't have kde-config, disable have_qt.
9083 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9088 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9089 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9090 (dbus_dict_remove), (dbus_dict_get_value_type),
9091 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9092 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9093 (dbus_dict_put_double), (dbus_dict_put_string),
9094 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9095 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9096 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9097 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9098 (dbus_dict_get_double), (dbus_dict_get_string),
9099 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9100 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9101 (dbus_dict_get_string_array), (_dbus_dict_test):
9103 Add DBusDict implementation
9105 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9109 2003-03-04 Havoc Pennington <hp@pobox.com>
9111 * test/data/auth/*: adapt to changes
9113 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9114 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9117 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9118 more stuff from being in a context name, to make the protocol
9119 simpler to deal with
9121 * dbus/dbus-errors.c (dbus_error_has_name): new function
9122 (dbus_error_is_set): new function
9124 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9125 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9127 * dbus/dbus-connection.c (dbus_connection_flush): also read
9128 messages during a flush operation
9130 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9132 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9134 * configure.in: Check for gethostbyname on Solaris.
9136 * dbus/dbus-transport.c: (_dbus_transport_open):
9137 Remove duplicate "tcp" entry.
9139 * doc/dbus-specification.sgml:
9140 Clarify some things.
9142 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9144 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9145 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9146 (_dbus_keyring_test):
9147 * dbus/dbus-md5.c: (_dbus_md5_compute):
9148 * dbus/dbus-sha.c: (_dbus_sha_compute):
9151 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9153 * README: Add some things.
9155 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9157 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9158 after case DBUS_TYPE_BOOELAN.
9160 2003-03-02 Havoc Pennington <hp@pobox.com>
9162 * test/break-loader.c (randomly_set_extreme_ints): add test that
9163 sets really huge and small integers
9165 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9166 that length of boolean array fits in the string, and that
9167 string has room for boolean value in single-bool case.
9169 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9170 optional value to "ALIGN" command which is what to fill the
9173 * test/data/valid-messages/no-padding.message: add regression
9174 test for the message padding problem
9176 2003-03-02 Havoc Pennington <hp@pobox.com>
9178 * dbus/dbus-message.c (decode_header_data): fix to always init
9179 message_padding, from Benjamin Dauvergne
9181 2003-03-02 Havoc Pennington <hp@pobox.com>
9187 2003-03-01 Joe Shaw <joe@assbarn.com>
9189 * configure.in: Check for "struct cmsgcred" and try to access its
9190 members for BSD-like unices.
9192 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9193 _dbus_read_credentials_unix_socket().
9194 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9195 read() for reading the credential byte off the unix socket. Use
9196 struct cmsgcred on systems that support it.
9198 2003-02-27 Alexander Larsson <alexl@redhat.com>
9202 Make gthreads-2.0 dependency optional. Don't build thread test if
9205 2003-02-27 Havoc Pennington <hp@pobox.com>
9207 * dbus/dbus-connection.c
9208 (dbus_connection_send_message_with_reply_and_block): fix doh!
9209 doh! doh! bug that resulted in never removing a reply from the
9210 queue, no wonder we called get_reply_serial so much ;-)
9212 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9213 and client serial instead of demarshaling them every time
9215 2003-02-27 Havoc Pennington <hp@pobox.com>
9217 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9218 more inlined, using dbus-string-private.h, speeds things up
9221 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9222 when freeing the string
9223 (_dbus_string_steal_data): fix for align offset
9224 (undo_alignment): new function
9226 2003-02-26 Havoc Pennington <hp@redhat.com>
9228 All kinds of audit fixes from Owen, plus initial attempt to
9229 handle unaligned memory returned from malloc.
9231 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9232 leave room for align_offset and nul byte
9233 (fixup_alignment): function to track an align_offset and
9234 ensure real->str is aligned
9235 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
9236 to allow a nul byte plus align offset
9237 (_dbus_string_lock): fix overflow issue
9238 (_dbus_string_init_const_len): add assertions on sanity of len,
9239 assign allocated to be ALLOCATION_PADDING larger than len
9240 (set_length): fixup the overflow handling
9241 (_dbus_string_get_data_len): fix overflow in assertion
9242 (open_gap): detect overflow in size of gap to be opened
9243 (_dbus_string_lengthen): add overflow check
9244 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
9245 (_dbus_string_append): add overflow check
9246 (_dbus_string_append_unichar): overflow
9247 (_dbus_string_delete): fix overflow in assertion
9248 (_dbus_string_copy_len): overflow in assertion
9249 (_dbus_string_replace_len): overflows in assertions
9250 (_dbus_string_find): change to implement in terms of
9251 _dbus_string_find_to
9252 (_dbus_string_find_to): assorted fixage
9253 (_dbus_string_equal_c_str): assert c_str != NULL,
9254 fix logic so the function works
9255 (_dbus_string_ends_with_c_str): fix overflow thingy
9256 (_dbus_string_base64_encode): overflow fix
9257 (_dbus_string_validate_ascii): overflow
9258 (_dbus_string_validate_nul): overflow
9260 2003-02-26 Havoc Pennington <hp@redhat.com>
9262 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
9264 2003-02-26 Alexander Larsson <alexl@redhat.com>
9267 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
9269 * dbus/dbus-connection.c:
9270 * dbus/dbus-connection.h:
9271 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
9272 Add dbus_connection_set_wakeup_main_function and use it when queueing
9273 incoming and outgoing messages.
9276 * dbus/dbus-dataslot.c:
9277 Threadsafe usage of DBusDataSlotAllocator
9279 * dbus/dbus-message.c: (dbus_message_get_args_iter):
9282 * dbus/dbus-server-unix.c:
9285 * glib/dbus-gmain.c:
9286 Implement the new wakeup functions for glib.
9289 * glib/test-thread-client.c:
9290 * glib/test-thread-server.c:
9291 * glib/test-thread.h:
9292 Initial cut at some thread test code. Not really done yet.
9294 2003-02-26 Havoc Pennington <hp@pobox.com>
9296 * dbus/dbus-connection.c
9297 (dbus_connection_send_message_with_reply_and_block): fix crash
9298 where we ref'd the outgoing message instead of the returned reply
9300 * dbus/dbus-transport-unix.c (do_authentication): check read watch
9301 at the end of this function, so if we didn't need to read for
9302 authentication, we reinstall it for receiving messages
9304 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
9305 a NULL sender for peer-to-peer case
9307 * dbus/dbus-transport-unix.c (check_read_watch): handle
9308 !authenticated case correctly
9310 * glib/dbus-gmain.c: add support for DBusServer
9312 * dbus/dbus-server.c: add data slot support
9314 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
9315 return values and handle errors
9317 * dbus/dbus-dataslot.c: factor out the data slot stuff from
9320 * Doxyfile.in (INPUT): add glib subdir
9322 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
9323 setup_with_g_main instead of hookup_with_g_main; write docs
9325 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9327 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
9328 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9329 * dbus/dbus-message.c: (dbus_message_append_boolean),
9330 (dbus_message_append_boolean_array),
9331 (dbus_message_get_args_valist), (_dbus_message_test):
9332 * dbus/dbus-message.h:
9333 * doc/dbus-specification.sgml:
9334 Various fixes as pointed out by Havoc.
9336 * test/data/invalid-messages/bad-boolean-array.message:
9337 * test/data/invalid-messages/bad-boolean.message:
9338 Add invalid boolean value test cases.
9340 2003-02-24 Anders Carlsson <andersca@codefactory.se>
9342 * dbus/dbus-internals.c: (_dbus_type_to_string):
9343 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9344 (_dbus_marshal_validate_arg):
9345 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9346 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9347 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
9348 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
9349 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
9350 (dbus_message_iter_get_double),
9351 (dbus_message_iter_get_boolean_array), (message_iter_test):
9352 * dbus/dbus-message.h:
9353 * dbus/dbus-protocol.h:
9354 * doc/dbus-specification.sgml:
9355 * test/data/valid-messages/lots-of-arguments.message:
9356 Add support for boolean and boolean array types.
9358 2003-02-23 Havoc Pennington <hp@pobox.com>
9360 * dbus/dbus-keyring.c: finish most of this implementation and
9363 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
9364 these barf if the error isn't cleared to NULL
9366 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
9367 (_dbus_create_directory): new function
9369 * dbus/dbus-errors.c (dbus_set_error): fix warning
9371 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
9372 (_dbus_string_hex_decode): new function
9373 (test_hex_roundtrip): test code
9375 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
9377 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
9379 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
9380 the save-to-temp/rename trick to atomically write the new file
9381 (_dbus_string_parse_uint): new function
9383 2003-02-22 Havoc Pennington <hp@pobox.com>
9385 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
9387 2003-02-22 Havoc Pennington <hp@pobox.com>
9389 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
9390 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
9392 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
9394 * dbus/test/data/sha-1: add US government test suite for SHA-1
9396 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9398 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9399 Make string arrays NULL-terminated.
9401 * dbus/dbus-memory.c: (dbus_free_string_array):
9402 * dbus/dbus-memory.h:
9403 New function for freeing NULL-terminated string arrays.
9405 * dbus/dbus-message-builder.c: (append_quoted_string),
9406 (_dbus_message_data_load):
9407 Add support for array types.
9409 * dbus/dbus-message.c: (check_message_handling):
9410 Add more types as test cases.
9412 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
9413 (_dbus_string_parse_double):
9414 Add the start offset to the end offset.
9416 * test/data/valid-messages/lots-of-arguments.message:
9417 New test message with lots of arguments.
9419 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9421 * dbus/dbus-message.c: (dbus_message_append_nil),
9422 (dbus_message_append_int32), (dbus_message_append_uint32),
9423 (dbus_message_append_double), (dbus_message_append_string),
9424 (dbus_message_append_int32_array),
9425 (dbus_message_append_uint32_array),
9426 (dbus_message_append_double_array),
9427 (dbus_message_append_byte_array),
9428 (dbus_message_append_string_array):
9429 Fix all out-of-memory handling in these functions.
9431 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9433 * dbus/dbus-message.c: (dbus_message_append_nil):
9436 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9438 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9439 (dbus_message_append_nil), (dbus_message_append_int32_array),
9440 (dbus_message_append_uint32_array),
9441 (dbus_message_append_double_array),
9442 (dbus_message_append_byte_array),
9443 (dbus_message_append_string_array), (dbus_message_get_args_valist),
9444 (dbus_message_iter_get_int32_array),
9445 (dbus_message_iter_get_uint32_array),
9446 (dbus_message_iter_get_double_array),
9447 (dbus_message_iter_get_byte_array),
9448 (dbus_message_iter_get_string_array):
9450 * dbus/dbus-message.h:
9451 Add functions for appending and getting arrays.
9453 2003-02-21 Anders Carlsson <andersca@codefactory.se>
9455 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
9456 element size at least 8 bytes, fixes mempool tests on
9459 2003-02-20 Alexander Larsson <alexl@redhat.com>
9461 * dbus/dbus-transport-unix.c (unix_do_iteration):
9462 Unlock the connection mutex during a blocking select call.
9463 Add todo about how we need a way to wake up the select.
9465 * dbus/dbus-connection-internal.h:
9466 * dbus/dbus-connection.c:
9467 Add _dbus_connection_lock and _dbus_connection_unlock.
9469 2003-02-19 Havoc Pennington <hp@pobox.com>
9471 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
9472 Doxyfile.in, not Doxyfile
9474 * dbus/dbus-keyring.c: do some hacking on this
9476 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
9478 * dbus/dbus-errors.c (dbus_set_error_const): do not call
9480 (dbus_set_error): remove dbus_error_init, check for message ==
9481 NULL *before* we sprintf into it, and add @todo about including
9482 system headers in this file
9484 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
9486 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
9488 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
9489 get various bits of user information based on either username
9491 (_dbus_homedir_from_username): new function
9493 2003-02-19 Anders Carlsson <andersca@codefactory.se>
9496 Add check for nonposix getpwnam_r
9498 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
9499 Align the pool element size to a sizeof (void *) boundary.
9501 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
9502 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
9503 General Solaris fixes.
9505 * test/data/valid-messages/simplest-manual.message:
9506 Explicitly state that we want little-endian packing.
9508 2003-02-19 Mikael Hallendal <micke@codefactory.se>
9510 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9512 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
9513 Added to create a transport connecting using a tcp/ip socket.
9515 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
9516 to a tcp socket at given host and port.
9517 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
9520 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
9522 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
9523 Added to create a server listening on a TCP/IP socket.
9525 2003-02-19 Havoc Pennington <hp@pobox.com>
9527 Throughout: mop up all the Doxygen warnings and undocumented
9530 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
9531 to search any paths.
9533 * dbus/dbus-threads.c: move global mutex initializers to
9534 dbus-internals.h, multiple prototypes was confusing doxygen
9535 besides being kind of ugly
9537 * Doxyfile (PREDEFINED): have Doxygen define
9538 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
9539 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
9540 (do not abuse the feature! it's for stuff like the autogenerated
9541 macros in dbus-md5.c, not just for things you don't feel like
9544 2003-02-18 Havoc Pennington <hp@pobox.com>
9546 * dbus/dbus-string.c (_dbus_string_zero): new function
9548 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
9549 wrap it in some dbus-friendly API
9551 * dbus/dbus-types.h: add 16-bit types
9553 2003-02-18 Joe Shaw <joe@assbarn.com>
9555 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
9556 credentials from our currently running process.
9557 (get_word): Fix a buglet where we were copying the entire length
9558 instead of relative to our position.
9560 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
9561 keys on the stack... it's 640k of data.
9563 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
9564 read the credentials byte off the socket, even if we don't have
9566 (_dbus_poll): Implement poll() using select() for systems which
9569 * glib/test-dbus-glib.c (main): Print out an error if no
9570 parameters are given.
9572 * test/data/auth/fallback.auth-script: Added. Tests that a client
9573 can fallback to a secondary auth mechanism if the first fails.
9575 2003-02-18 Havoc Pennington <hp@pobox.com>
9579 2003-02-17 Havoc Pennington <hp@pobox.com>
9581 * doc/dbus-specification.sgml: lots of cosmetic
9582 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
9583 env variable to DBUS_BUS_ADDRESS, s/client/application/,
9584 s/server/bus/ (except in authentication section). Add a section
9585 "Message Bus Message Routing"
9587 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
9593 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9595 * doc/dbus-specification.sgml:
9596 Specification updates.
9598 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9600 * bus/activation.c: (bus_activation_init), (child_setup),
9601 (bus_activation_activate_service):
9603 * bus/main.c: (main):
9604 Set DBUS_ADDRESS environment variable.
9606 * dbus/dbus-errors.c: (dbus_set_error):
9607 Don't use va_copy since that's a C99 feature.
9609 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
9610 (_dbus_spawn_async):
9611 * dbus/dbus-sysdeps.h:
9612 Add child_setup_func to _dbus_spawn_async.
9614 * doc/dbus-specification.sgml:
9615 Update specification.
9617 * test/spawn-test.c: (setup_func), (main):
9620 2003-02-17 Alexander Larsson <alexl@redhat.com>
9622 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
9625 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9629 * doc/dbus-test-plan.sgml:
9630 Add test plan document.
9635 2003-02-17 Anders Carlsson <andersca@codefactory.se>
9637 * dbus/dbus-message.c: (decode_header_data),
9638 (_dbus_message_loader_return_buffer):
9639 Set the header padding amount when loading a message.
9641 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9643 * bus/dispatch.c: (send_one_message):
9644 Only send broadcast messages to registered connections.
9646 * dbus/dbus-message.c: (dbus_message_name_is):
9647 * dbus/dbus-message.h:
9648 New convenience function.
9650 * dbus/dbus-transport-debug.c: (do_reading):
9651 Only dispatch one message per run.
9654 * test/bus-test.c: (new_connection_callback), (die),
9655 (test_hello_client1_handler), (test_hello_client2_handler),
9656 (test_hello_replies), (main):
9658 * test/bus-test-loop.[ch]:
9661 2003-02-16 Havoc Pennington <hp@pobox.com>
9663 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9664 backward conditional
9666 2003-02-16 Alexander Larsson <alexl@redhat.com>
9668 * dbus/dbus-connection.c:
9669 Implement sent_message_with_reply. (with_reply_and block is still
9671 Made dispatch_message not lose message if OOM.
9673 * dbus/dbus-errors.h:
9674 Add NoReply error (for reply timeouts).
9676 2003-02-16 Alexander Larsson <alexl@redhat.com>
9678 * dbus/dbus-hash.c (_dbus_hash_table_unref):
9679 Actually free keys and values when destroying hashtable.
9681 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9683 * dbus/dbus-auth.c: (client_try_next_mechanism):
9686 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
9687 Return TRUE if there's no thread implementation around.
9689 * glib/dbus-gmain.c: (free_source),
9690 (dbus_connection_hookup_with_g_main):
9691 Make sure to remove the GSource when the connection is finalized.
9693 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9695 * bus/dispatch.c: (bus_dispatch_message_handler):
9696 * dbus/dbus-errors.h:
9697 Return an error if someone tries to send a message to a service
9700 2003-02-16 Anders Carlsson <andersca@codefactory.se>
9702 * bus/activation.c: (load_directory), (bus_activation_init),
9703 (bus_activation_activate_service):
9706 (bus_driver_handle_activate_service), (bus_driver_handle_message):
9707 More work on the activation handling.
9709 * dbus/dbus-errors.h:
9710 Add some error messages
9712 * dbus/dbus-message.c: (dbus_message_new_error_reply):
9713 * dbus/dbus-message.h:
9714 New function that creates an error message.
9716 * dbus/dbus-protocol.h:
9717 Add ACTIVATE_SERVER message.
9719 * dbus/dbus-server-unix.c: (unix_handle_watch),
9720 (_dbus_server_new_for_domain_socket):
9721 Call _dbus_fd_set_close_on_exec.
9723 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
9724 (_dbus_spawn_async), (_dbus_disable_sigpipe),
9725 (_dbus_fd_set_close_on_exec):
9726 * dbus/dbus-sysdeps.h:
9727 Add _dbus_fd_set_close_on exec function. Also add function that checks
9728 that all open fds are set to close-on-exec and warns otherwise.
9730 * dbus/dbus-transport-unix.c:
9731 (_dbus_transport_new_for_domain_socket):
9732 Call _dbus_fd_set_close_on_exec.
9734 2003-02-16 Havoc Pennington <hp@pobox.com>
9736 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
9737 allow people to avoid setting SIGPIPE to SIG_IGN
9738 (_dbus_connection_new_for_transport): disable SIGPIPE unless
9739 we've been asked not to
9741 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9743 * dbus/dbus-list.c: (_dbus_list_append_link),
9744 (_dbus_list_prepend_link):
9745 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
9749 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9752 * bus/activation.c: (bus_activation_entry_free),
9753 (add_desktop_file_entry), (load_directory), (bus_activation_init):
9755 * bus/main.c: (main):
9756 Add simple activation support, doesn't work yet though.
9758 2003-02-15 Zack Rusin <zack@kde.org>
9760 * qt/dbus-qthread.cpp: small casting fix
9762 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9764 * dbus/dbus-errors.c: (dbus_set_error):
9765 * dbus/dbus-errors.h:
9766 Add a few errors and make dbus_set_error void.
9768 * dbus/dbus-sysdeps.c:
9769 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
9770 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
9771 * dbus/dbus-sysdeps.h:
9772 Add _dbus_spawn_async.
9774 * test/spawn-test.c: (main):
9775 Test for _dbus_spawn_async.
9777 2003-02-15 Anders Carlsson <andersca@codefactory.se>
9779 * dbus/dbus-internals.h:
9780 Fix build without tests.
9782 * dbus/dbus-list.c: (alloc_link):
9783 Fix a segfault when a malloc fails.
9785 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
9786 (dbus_malloc0), (dbus_realloc):
9787 Add support for malloc debugging.
9789 2003-02-15 Alexander Larsson <alexl@redhat.com>
9791 * dbus/dbus-threads.c:
9792 * dbus/dbus-threads.h:
9793 Add condvars. Remove static mutext from API.
9794 Implement static mutexes by initializing them from threads_init.
9796 * glib/dbus-gthread.c:
9797 * qt/dbus-qthread.cpp:
9798 Update with the thread api changes.
9803 Turn StaticMutex into normal mutex + init function.
9804 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
9805 _dbus_list_append_link, _dbus_list_prepend_link
9808 * dbus/dbus-sysdeps.c:
9809 * dbus/dbus-sysdeps.h:
9810 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
9811 _dbus_atomic_dec. Only slow fallback implementation at the moment.
9813 * dbus/dbus-protocol.h:
9814 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
9816 * dbus/dbus-message.c:
9817 Make ref/unref atomic.
9820 * dbus/dbus-connection-internal.h:
9821 * dbus/dbus-connection.c:
9822 * dbus/dbus-connection.h:
9824 Change _peek to _borrow,_return & _steal_borrowed.
9825 Change disconnect callback to event.
9826 Make dbus_connection_dispatch_messages reentrant.
9828 * dbus/dbus-transport.c:
9829 Don't ref the connection on calls to the transport
9832 * dbus/dbus-message-handler.c:
9835 * glib/dbus-gmain.c:
9836 Don't use peek_message anymore
9839 * test/debug-thread.c:
9840 * test/debug-thread.h:
9841 Simple thread implementation that asserts() on deadlocks in
9842 single-threaded code.
9845 (main) Call debug_threads_init.
9848 Use disconnect message instead of disconnect callback.
9852 Don't call dbus_connection_set_disconnect_function. Instead export
9853 bus_connection_disconnect.
9856 Call bus_connection_disconnect when we get a disconnected message.
9858 2003-02-15 Havoc Pennington <hp@pobox.com>
9860 * dbus/dbus-message.c (dbus_message_new): fool around with the
9863 2003-02-14 Havoc Pennington <hp@pobox.com>
9865 * dbus/dbus-mempool.c: fail if the debug functions so indicate
9867 * dbus/dbus-memory.c: fail if the debug functions indicate we
9870 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
9871 (_dbus_decrement_fail_alloc_counter): debug functions to
9872 simulate memory allocation failures
9874 2003-02-14 Havoc Pennington <hp@pobox.com>
9876 * dbus/dbus-errors.h (struct DBusError): add a word of padding
9879 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9881 * bus/driver.c: (bus_driver_handle_hello):
9883 * bus/services.c: (bus_service_lookup):
9884 Reorder message sending so we get a more sane order.
9886 * test/bus-test.c: (message_handler):
9889 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9891 * bus/driver.c: (bus_driver_send_service_deleted),
9892 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9893 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9894 (bus_driver_send_welcome_message),
9895 (bus_driver_handle_list_services),
9896 (bus_driver_handle_acquire_service),
9897 (bus_driver_handle_service_exists):
9898 * dbus/dbus-bus.c: (dbus_bus_register_client),
9899 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9900 * dbus/dbus-errors.c: (dbus_result_to_string):
9901 * dbus/dbus-errors.h:
9902 * dbus/dbus-message.c: (dbus_message_append_args),
9903 (dbus_message_append_args_valist), (dbus_message_get_args),
9904 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
9905 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
9906 (dbus_message_iter_get_byte_array),
9907 (dbus_message_iter_get_string_array), (message_iter_test),
9908 (check_message_handling), (_dbus_message_test):
9909 * dbus/dbus-message.h:
9910 * test/bus-test.c: (main):
9911 Change fields to arguments in messages, so that they won't be
9912 confused with header fields.
9914 * glib/test-dbus-glib.c: (main):
9915 Remove append_fields from hello message.
9917 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9919 * dbus/dbus-errors.c:
9920 * dbus/dbus-message.c:
9921 * dbus/dbus-string.c:
9922 Documentation fixes.
9924 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9926 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
9928 Implement support for timeouts in dbus-glib.
9930 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9932 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9933 * dbus/dbus-message.c: (process_test_subdir):
9934 * test/break-loader.c: (find_breaks_based_on):
9935 Plug some memory leaks.
9937 2003-02-13 Richard Hult <rhult@codefactory.se>
9939 * bus/main.c: Fix build.
9941 * dbus/dbus-errors.h:
9942 * dbus/dbus-errors.c: Fix copyright for Anders.
9944 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9949 * bus/connection.c: (bus_connection_foreach):
9952 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9953 (unescape_string), (new_section), (parse_section_start),
9954 (parse_key_value), (report_error), (bus_desktop_file_load),
9955 (bus_desktop_file_get_string):
9956 * bus/desktop-file.h:
9957 Use DBusError for error reporting.
9959 * bus/dispatch.c: (send_one_message),
9960 (bus_dispatch_message_handler):
9961 * bus/driver.c: (bus_driver_send_service_deleted),
9962 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9963 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9964 (bus_driver_send_welcome_message),
9965 (bus_driver_handle_list_services),
9966 (bus_driver_handle_acquire_service),
9967 (bus_driver_handle_service_exists):
9968 * bus/loop.c: (bus_loop_run):
9970 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9972 * bus/utils.c: (bus_wait_for_memory):
9974 New files with general utility functions.
9976 * dbus/dbus-internals.h:
9977 Remove _DBUS_HANDLE_OOM.
9979 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9981 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9982 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9983 * dbus/dbus-errors.h:
9984 Add DBusError structure.
9986 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9988 * test/data/valid-messages/standard-acquire-service.message:
9989 * test/data/valid-messages/standard-hello.message:
9990 * test/data/valid-messages/standard-list-services.message:
9991 * test/data/valid-messages/standard-service-exists.message:
9992 Add some standard messages.
9994 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9996 * bus/driver.c: (bus_driver_send_welcome_message),
9997 (bus_driver_handle_list_services),
9998 (bus_driver_handle_acquire_service),
9999 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10000 Update for API changes in libdbus.
10002 * dbus/dbus-message.c: (dbus_message_new_reply):
10003 * dbus/dbus-message.h:
10004 Remove the name argument. The spec states that replies shouldn't
10007 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10009 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10010 (report_error), (bus_desktop_file_load), (lookup_section),
10011 (lookup_line), (bus_desktop_file_get_raw),
10012 (bus_desktop_file_get_string):
10013 * bus/desktop-file.h:
10014 Some fixes, and new functions for getting a key value from a section.
10016 2003-02-13 Havoc Pennington <hp@pobox.com>
10018 * test/data/auth/fail-after-n-attempts.auth-script: new test
10020 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10023 2003-02-13 Havoc Pennington <hp@pobox.com>
10025 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10026 dbus_credentials_match were backward
10028 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10029 NO_CREDENTIALS and ROOT_CREDENTIALS
10031 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10032 into here. Never process more commands after we've reached an
10033 end state; store further data as unused bytes.
10035 * test/data/auth/*: add more auth tests
10037 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10038 command to match exact string and EXPECT_UNUSED to match unused
10041 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10043 2003-02-12 Havoc Pennington <hp@pobox.com>
10045 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10046 \r off of popped lines
10048 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10051 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10054 2003-02-12 Havoc Pennington <hp@pobox.com>
10056 * dbus/Makefile.am: remove break-loader from the build, since it
10059 * configure.in: add --enable-gcov to turn on coverage profiling
10060 flags and disable optimization
10062 2003-02-10 Havoc Pennington <hp@pobox.com>
10064 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10065 initial cut at test framework for DBusAuth from laptop.
10066 Doesn't quite work yet but it compiles and I need to get
10067 it off the 266mhz laptop. ;-)
10069 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10070 fix a memleak in error case
10072 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10075 * bus/desktop-file.c:
10076 * bus/desktop-file.h:
10077 Add a desktop file parser.
10079 2003-02-11 Zack Rusin <zack@kde.org>
10081 * qt/message.[h|cpp]: sample implementation
10082 of the KDE wrapper for DBusMessage
10084 2003-02-09 Zack Rusin <zack@kde.org>
10086 * test/bus-test.c: make_it_compile
10087 * doc/dbus-specification.sgml: minimal semantic fix
10089 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10095 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10097 * dbus/Makefile.am:
10098 * dbus/dbus-break-loader.c:
10099 * test/Makefile.am:
10100 * test/break-loader.c:
10101 Move dbus-break-loader to test/ and rename it to break-loader.
10103 2003-02-02 Havoc Pennington <hp@pobox.com>
10105 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10106 for code to manage cookies in your home directory
10108 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10110 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10111 to authenticate, then disconnect the client.
10113 2003-02-03 Alexander Larsson <alexl@redhat.com>
10115 * dbus/dbus-message.c (dbus_message_append_fields):
10118 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10120 * doc/dbus-specification.sgml:
10121 Update address format section.
10123 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10125 * test/Makefile.am:
10126 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10127 (message_handler), (new_connection_callback), (loop_quit),
10128 (loop_run), (main):
10131 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10133 * bus/driver.c: (bus_driver_handle_service_exists):
10134 Simplify the code a bit.
10136 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10139 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10142 Add libdbus-daemon.la and link to it.
10144 2003-02-01 James Willcox <jwillcox@gnome.org>
10146 * bus/driver.c: (bus_driver_handle_own_service):
10147 Actually include the service reply code in the message.
10149 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10151 * bus/driver.c: (bus_driver_handle_service_exists):
10152 Don't unref the incoming message.
10154 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10156 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10158 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10160 * dbus/dbus-server.c: (dbus_server_listen):
10161 * dbus/dbus-transport.c: (_dbus_transport_open):
10162 ifdef out the calls to the debug transport and server.
10164 2003-02-02 Alexander Larsson <alexl@redhat.com>
10166 * dbus/dbus-watch.c (dbus_watch_get_flags):
10167 Add note in the docs that ERROR or HANGUP won't be returned
10168 and are assumed always on.
10170 * glib/dbus-gmain.c (add_watch):
10171 Always add IO_ERR | IO_HUP
10173 * dbus/dbus-message.h:
10174 Add semicolon after dbus_message_iter_get_string_array().
10175 Makes qt code build again
10177 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10179 * bus/driver.c: (create_unique_client_name),
10180 (bus_driver_handle_hello):
10181 Don't take a name, just use a numeric id to identify
10184 * dbus/Makefile.am:
10185 * dbus/dbus-bus.c: (dbus_bus_register_client),
10186 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10188 Add new convenience functions for communicating with the bus.
10190 * dbus/dbus-message.h:
10192 * dbus/dbus-protocol.h:
10195 2003-02-01 Alexander Larsson <alexl@redhat.com>
10197 * dbus/dbus-message.c (dbus_message_append_fields):
10198 Add some more doc comments.
10200 2003-02-01 Havoc Pennington <hp@pobox.com>
10202 * dbus/dbus-break-loader.c (randomly_modify_length): change
10203 a 4-byte value in the message as if it were a length
10205 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10206 execute bit on saved files
10208 2003-02-01 Havoc Pennington <hp@pobox.com>
10210 * dbus/dbus-break-loader.c (main): new program to find messages
10211 that break the loader.
10213 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10214 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10216 * dbus/dbus-string.c (_dbus_string_set_byte): new
10218 2003-01-31 Havoc Pennington <hp@pobox.com>
10220 * dbus/dbus-message.c: refactor the test code to be more general,
10221 in preparation for writing a "randomly permute test cases to
10222 try to break the loader" program.
10224 2003-01-31 Havoc Pennington <hp@pobox.com>
10226 * doc/dbus-specification.sgml: work on the specification
10228 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10229 the protocol version of the message.
10231 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10232 no longer specifies that.
10233 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
10236 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
10237 "break" for DBUS_TYPE_NIL, remove @todo
10239 2003-01-31 Havoc Pennington <hp@pobox.com>
10241 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
10242 just set_is_error/get_is_error as this is a commonly-used
10243 function, and write docs.
10245 2003-01-31 Anders Carlsson <andersca@codefactory.se>
10247 * dbus/dbus-address.c: (dbus_address_entry_free):
10248 Free key and value lists.
10250 * dbus/dbus-internals.c: (_dbus_type_to_string):
10251 Add the types we didn't have.
10253 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10254 (_dbus_marshal_validate_arg):
10257 * dbus/dbus-message.c: (dbus_message_set_sender):
10258 Remove todo about being able to set sender to NULL.
10260 (dbus_message_set_is_error_reply),
10261 (dbus_message_get_is_error_reply):
10262 * dbus/dbus-message.h:
10265 * dbus/dbus-protocol.h:
10266 Add error reply flag.
10268 * test/data/valid-messages/opposite-endian.message:
10269 Add NIL type to test.
10271 2003-01-31 Havoc Pennington <hp@pobox.com>
10273 * doc/dbus-specification.sgml: fully specify the header. Add
10274 flags and major protocol version, and change header/body len to
10277 * dbus/dbus-message-builder.c (append_saved_length): append length
10280 * dbus/dbus-message.c (dbus_message_create_header): change header
10281 length and body length to unsigned. Add the new fields from the
10283 (_dbus_message_loader_return_buffer): unsigned header/body len
10285 2003-01-30 Havoc Pennington <hp@pobox.com>
10287 * dbus/dbus-auth.c: rework to use only REJECTED, no
10290 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
10291 use REJECTED, suggested by Mark McLoughlin
10293 2003-01-30 Havoc Pennington <hp@pobox.com>
10295 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
10296 a better way to report errors here. e.g. "unix address lacks
10297 path" or something. also "no such file" when the path doesn't
10300 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
10302 (dbus_parse_address): add @todo about documenting address format,
10303 and allowing , and ; to be escaped
10305 2003-01-30 Anders Carlsson <andersca@codefactory.se>
10307 * dbus/Makefile.am:
10308 Add dbus-address.[ch]
10310 * dbus/dbus-address.c: (dbus_address_entry_free),
10311 (dbus_address_entries_free), (create_entry),
10312 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
10313 (dbus_parse_address), (_dbus_address_test):
10314 * dbus/dbus-address.h:
10315 New files for dealing with address parsing.
10317 * dbus/dbus-connection.c:
10318 Document timeout functions.
10320 * dbus/dbus-message.c:
10321 Document dbus_message_new_from_message.
10323 * dbus/dbus-server-debug.c:
10326 * dbus/dbus-server.c: (dbus_server_listen):
10327 Parse address and use correct server implementation.
10329 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
10330 * dbus/dbus-string.h:
10331 New function with test.
10333 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
10334 * dbus/dbus-test.h:
10337 * dbus/dbus-transport-debug.c:
10340 * dbus/dbus-transport.c: (_dbus_transport_open):
10341 Parse address and use correct transport implementation.
10343 2003-01-30 Havoc Pennington <hp@pobox.com>
10345 * dbus/dbus-message.c: use message->byte_order instead of
10346 DBUS_COMPILER_BYTE_ORDER throughout.
10347 (dbus_message_create_header): pad header to align the
10348 start of the body of the message to 8-byte boundary
10350 * dbus/dbus-marshal.h: make all the demarshalers take const
10351 DBusString arguments.
10353 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
10354 validate message args here, so we don't have to do slow validation
10355 later, and so we catch bad messages as they are incoming. Also add
10356 better checks on header_len and body_len. Also fill in
10357 message->byte_order
10359 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
10360 implemented properly)
10361 (_dbus_string_validate_nul): new function to check all-nul
10363 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
10364 get_arg_end_pos and remove all validation
10365 (_dbus_marshal_validate_arg): actually do validation here.
10367 2003-01-29 Havoc Pennington <hp@pobox.com>
10369 * dbus/dbus-message.c (check_message_handling): fix assertion
10370 failure on set_client_serial
10372 2003-01-28 Havoc Pennington <hp@pobox.com>
10374 * dbus/dbus-server-debug.c: Add doc section comments
10376 * dbus/dbus-transport-debug.c: add doc section comments
10378 2003-01-28 Havoc Pennington <hp@redhat.com>
10380 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
10381 the reverse order from how I had it
10382 (_dbus_string_base64_encode): reverse encoding order. I was
10383 basically byteswapping everything during encoding.
10385 2003-01-28 Anders Carlsson <andersca@codefactory.se>
10387 * dbus/dbus-connection-internal.h:
10388 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
10389 (_dbus_connection_remove_timeout):
10390 Add functions for adding and removing timeouts.
10392 * dbus/dbus-message.c: (dbus_message_new_from_message):
10393 Add new function that takes a message and creates an exact
10394 copy of it, but with the refcount set to 1.
10395 (check_message_handling):
10398 * dbus/dbus-server-protected.h:
10399 * dbus/dbus-server.c: (_dbus_server_init_base),
10400 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
10401 (dbus_server_set_timeout_functions):
10402 (_dbus_server_remove_timeout):
10403 New functions so that a server can add and remove timeouts.
10405 (dbus_server_listen):
10406 Add commented out call to dbus_server_debug_new.
10408 * dbus/dbus-timeout.c: (_dbus_timeout_new):
10409 Actually set the handler, doh.
10411 * dbus/dbus-transport.c: (_dbus_transport_open):
10412 Add commented out call to dbus_transport_debug_client_new.
10414 * dbus/Makefile.am:
10415 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
10417 2003-01-28 Havoc Pennington <hp@pobox.com>
10419 * dbus/dbus-message.c (check_message_handling): function to check
10420 on the loaded message, iterates over it etc.
10422 2003-01-28 Havoc Pennington <hp@pobox.com>
10424 * test/Makefile.am (dist-hook): fix make distdir
10426 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
10428 2003-01-27 Havoc Pennington <hp@pobox.com>
10430 * dbus/dbus-mempool.c (time_for_size): replace printf with
10433 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
10434 empty lines; fix the SAVE_LENGTH stuff to be
10435 START_LENGTH/END_LENGTH so it actually works; couple other
10438 * test/Makefile.am (dist-hook): add dist-hook for .message files
10440 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
10441 can be constant or locked.
10442 (_dbus_string_free): allow freeing a const string as
10443 documented/intended
10445 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
10447 * dbus/dbus-test-main.c (main): take an argument which is the
10448 directory containing test data
10450 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
10451 argument to this and load all the messages in test/data/
10452 checking that they can be loaded or not loaded as appropriate.
10454 2003-01-27 Anders Carlsson <andersca@codefactory.se>
10456 * bus/dispatch.c: (bus_dispatch_message_handler):
10457 Dispatch messages sent to services.
10459 * bus/driver.c: (bus_driver_send_service_deleted),
10460 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10461 (bus_driver_send_service_acquired):
10462 Add helper functions for sending service related messages.
10464 (bus_driver_send_welcome_message):
10465 Send HELLO_REPLY instead of WELCOME.
10467 (bus_driver_handle_list_services):
10468 Send LIST_SERVICES_REPLY instead of SERVICES.
10470 (bus_driver_handle_own_service),
10471 (bus_driver_handle_service_exists):
10472 New message handlers.
10474 (bus_driver_handle_message):
10475 Invoke new message handlers.
10477 (bus_driver_remove_connection):
10478 Don't remove any services here since that's done automatically
10479 by bus_service_remove_owner now.
10482 New function signatures.
10484 * bus/services.c: (bus_service_add_owner):
10485 Send ServiceAcquired message if we're the only primary owner.
10487 (bus_service_remove_owner):
10488 Send ServiceAcquired/ServiceLost messages.
10490 (bus_service_set_prohibit_replacement),
10491 (bus_service_get_prohibit_replacement):
10492 Functions for setting prohibit replacement.
10494 (bus_service_has_owner):
10495 New function that checks if a connection is in the owner queue of
10499 Add new function signatures.
10501 * dbus/dbus-list.c: (_dbus_list_test):
10502 Add tests for _dbus_list_remove_last and traversing the list backwards.
10504 * dbus/dbus-list.h:
10505 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
10506 go any further, so return NULL then.
10508 * dbus/dbus-protocol.h:
10509 Add new messages, service flags and service replies.
10511 2003-01-26 Havoc Pennington <hp@pobox.com>
10513 * dbus/dbus-message-builder.c: implement, completely untested.
10515 * test/data/*: add data to be used in testing.
10516 ".message" files are our simple loadable text format.
10517 ".message-raw" will be binary dumps of messages.
10519 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
10521 2003-01-26 Havoc Pennington <hp@pobox.com>
10523 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
10525 * dbus/dbus-errors.c (dbus_result_to_string): add
10528 * dbus/dbus-message-builder.c: new file, will contain code to load
10529 up messages from files. Not implemented yet.
10531 2003-01-26 Havoc Pennington <hp@pobox.com>
10533 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
10534 the sender by setting to NULL
10536 2003-01-26 Havoc Pennington <hp@pobox.com>
10538 The unit tests pass, but otherwise untested. If it breaks, the
10539 tests should have been better. ;-)
10541 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
10544 * dbus/dbus-message.c: redo everything so we maintain
10545 message->header as the only copy of the various fields.
10546 This avoids the possibility of out-of-memory in some cases,
10547 for example dbus_message_lock() can't run out of memory anymore,
10548 and avoids extra copying. Figured I may as well go ahead and do
10549 this since it was busted for dbus_message_lock to not return
10550 failure on OOM, and dbus_message_write_header was totally
10551 unchecked for OOM. Also fixed some random other bugs.
10553 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
10554 that strings are nul-terminated. Also, end_pos can be equal
10555 to string length just not greater than, I think.
10556 (_dbus_marshal_set_int32): new function
10557 (_dbus_marshal_set_uint32): new function
10558 (_dbus_marshal_set_string): new function
10560 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
10561 a warning, init timeout_list to NULL
10562 (dbus_connection_send_message): don't use uninitialized variable
10565 * dbus/dbus-string.c (_dbus_string_replace_len): new function
10567 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10569 * bus/driver.c: (bus_driver_handle_hello),
10570 (bus_driver_send_welcome_message):
10573 2003-01-26 Anders Carlsson <andersca@codefactory.se>
10575 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
10576 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10577 (dbus_connection_unref):
10578 * dbus/dbus-marshal.c: (_dbus_marshal_test):
10579 * dbus/dbus-message.c: (dbus_message_unref),
10582 (dbus_message_get_fields):
10583 Remove debugging printout.
10585 (_dbus_message_loader_return_buffer):
10586 Don't store the header string.
10588 (_dbus_message_test):
10591 2003-01-26 Richard Hult <rhult@codefactory.se>
10593 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
10594 the file descriptor list, since it can change under us.
10596 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10598 * glib/dbus-gmain.c: (dbus_connection_prepare),
10599 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
10600 (remove_watch), (dbus_connection_hookup_with_g_main):
10601 Rewrite the glib handling to use its own GSource instead of a
10602 GIOChannel so we can catch messages put in the queue while waiting
10605 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10608 * bus/connection.c: (connection_disconnect_handler),
10609 (connection_watch_callback), (bus_connection_setup):
10610 * bus/dispatch.c: (send_one_message),
10611 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
10612 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
10614 * bus/driver.c: (bus_driver_send_service_deleted),
10615 (bus_driver_send_service_created), (bus_driver_handle_hello),
10616 (bus_driver_send_welcome_message),
10617 (bus_driver_handle_list_services), (bus_driver_remove_connection),
10618 (bus_driver_handle_message):
10620 Refactor code, put the message dispatching in its own file. Use
10621 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
10624 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10626 * dbus/dbus-internals.h:
10627 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
10629 * dbus/dbus-message.c: (dbus_message_get_sender):
10630 * dbus/dbus-message.h:
10631 Implement dbus_message_get_sender.
10633 * dbus/dbus-protocol.h:
10634 Add message and service defines.
10636 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10638 * dbus/dbus-connection.c: (dbus_connection_send_message):
10639 * dbus/dbus-message-internal.h:
10640 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
10641 (dbus_message_write_header):
10642 Remove _dbus_messag_unlock and don't set the client serial on a
10643 message if one already exists.
10645 2003-01-24 Havoc Pennington <hp@pobox.com>
10647 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
10650 * bus/driver.c (bus_driver_handle_list_services): fix a leak
10653 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10655 * dbus/dbus-list.c: (alloc_link), (free_link):
10656 Use a memory pool for the links.
10658 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10660 * bus/connection.c: (bus_connection_foreach):
10661 * bus/connection.h:
10662 Add new bus_connection_foreach function.
10664 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
10665 Add function that broadcasts a message to all clients.
10667 (bus_driver_send_service_created), (bus_driver_handle_hello),
10668 (bus_driver_send_welcome_message),
10669 (bus_driver_handle_list_services), (bus_driver_message_handler):
10670 Implement functions that take care of listing services, and notifying
10671 clients when new services are created.
10673 * bus/services.c: (bus_services_list):
10675 Add new function that returns an array of strings with the currently
10676 registered services.
10678 * glib/dbus-glib.h:
10679 * glib/dbus-gmain.c:
10680 Update copyright year.
10682 2003-01-25 Anders Carlsson <andersca@codefactory.se>
10684 * dbus/dbus-connection.c: (dbus_connection_send_message):
10685 Unlock the message in case it was sent earlier.
10687 (dbus_connection_send_message_with_reply_and_block):
10688 Remove the reply message from the list.
10690 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10691 Set array_len and new_pos correctly.
10693 (_dbus_marshal_test):
10694 Remove debug output.
10696 * dbus/dbus-message-internal.h:
10697 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
10698 New function that returns the reply serial.
10700 (_dbus_message_unlock):
10701 New function that unlocks a message and resets its header.
10703 (dbus_message_append_string_array),
10704 (dbus_message_get_fields_valist),
10705 (dbus_message_iter_get_field_type),
10706 (dbus_message_iter_get_string_array),
10707 (dbus_message_get_fields),
10708 (dbus_message_append_fields_valist):
10709 Handle string arrays.
10711 (dbus_message_set_sender):
10712 Make this function public since the bus daemon needs it.
10714 (decode_header_data):
10715 Set the reply serial to -1 initially.
10717 * dbus/dbus-message.h:
10718 Add dbus_message_set_sender.
10720 2003-01-24 Havoc Pennington <hp@pobox.com>
10722 * doc/dbus-specification.sgml: add some stuff
10724 2003-01-22 Havoc Pennington <hp@pobox.com>
10726 * doc/dbus-specification.sgml: Start to document the protocol.
10728 2003-01-22 Havoc Pennington <hp@pobox.com>
10730 * dbus/dbus-connection.c
10731 (dbus_connection_send_message_with_reply_and_block): add some @todo
10733 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
10735 2003-01-21 Havoc Pennington <hp@pobox.com>
10737 (patch untested because can't compile)
10739 * bus/driver.c (create_unique_client_name): make this function
10740 never recycle client names. Also, caller should initialize
10743 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
10745 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10747 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10748 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10749 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
10750 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
10751 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10752 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10753 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
10754 * dbus/dbus-marshal.h:
10755 * dbus/dbus-protocol.h:
10756 Add support for marshalling and demarshalling integer, double
10759 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10764 * bus/connection.c: (connection_disconnect_handler):
10765 Remove the connection from the bus driver's list.
10767 (connection_watch_callback): Dispatch messages.
10769 (free_connection_data): Free connection name.
10771 (bus_connection_setup): Add connection to the bus driver's list.
10772 (bus_connection_remove_owned_service):
10773 (bus_connection_set_name), (bus_connection_get_name):
10774 Add functions for setting and getting the connection's name.
10776 * bus/connection.h:
10777 Add function headers.
10779 * bus/driver.c: (create_unique_client_name),
10780 (bus_driver_handle_hello_message),
10781 (bus_driver_send_welcome_message), (bus_driver_message_handler),
10782 (bus_driver_add_connection), (bus_driver_remove_connection):
10785 * bus/services.c: (bus_service_free):
10787 New file that handles communication and registreation with the bus
10790 2003-01-21 Anders Carlsson <andersca@codefactory.se>
10792 * dbus/dbus-connection.c: (dbus_connection_send_message):
10793 Add a new client_serial parameter.
10795 (dbus_connection_send_message_with_reply):
10796 Remove a @todo since we've implemented the blocking function.
10798 (dbus_connection_send_message_with_reply_and_block):
10799 New function that sends a message and waits for a reply and
10800 then returns the reply.
10802 * dbus/dbus-connection.h:
10805 * dbus/dbus-errors.c: (dbus_result_to_string):
10806 * dbus/dbus-errors.h:
10807 Add new DBUS_RESULT.
10809 * dbus/dbus-message-internal.h:
10810 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
10811 (_dbus_message_set_sender), (dbus_message_write_header),
10812 (dbus_message_new_reply), (decode_header_data),
10813 (_dbus_message_loader_return_buffer), (_dbus_message_test):
10814 * dbus/dbus-message.h:
10815 Add new functions that set the reply serial and sender.
10816 Also marshal and demarshal them correctly and add test.
10818 * dbus/dbus-protocol.h:
10819 Add new DBUS_MESSAGE_TYPE_SENDER.
10821 * glib/dbus-glib.h:
10822 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
10823 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
10824 (dbus_connection_hookup_with_g_main):
10825 * glib/test-dbus-glib.c: (main):
10826 Rewrite to use GIOChannel and remove the GSource crack.
10828 * test/echo-client.c: (main):
10829 * test/watch.c: (check_messages):
10830 Update for changed APIs
10832 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10834 * dbus/Makefile.am: Add dbus-timeout.[cħ]
10836 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
10837 Create a DBusTimeoutList.
10838 (dbus_connection_set_timeout_functions): Add new function to
10839 set timeout callbacks
10841 * dbus/dbus-connection.h: Add public DBusTimeout API.
10843 * dbus/dbus-message.c: (dbus_message_get_service):
10844 * dbus/dbus-message.h: New function.
10846 * dbus/dbus-server.c: Fix small doc typo.
10848 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
10850 2003-01-19 Anders Carlsson <andersca@codefactory.se>
10852 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
10853 of the string, just as long as specified.
10855 2003-01-19 Havoc Pennington <hp@pobox.com>
10857 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
10860 * dbus/dbus-server.c (dbus_server_set_max_connections)
10861 (dbus_server_get_max_connections, dbus_server_get_n_connections):
10862 keep track of current number of connections, and add API for
10863 setting a max (but haven't implemented enforcing the max yet)
10865 2003-01-18 Havoc Pennington <hp@pobox.com>
10867 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
10868 reading/writing if read_watch != NULL or write_watch != NULL.
10870 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
10871 the message loader code to actually load message->header and
10872 message->body into the newly-created message.
10874 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
10877 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
10878 (dbus_connection_get_max_message_size)
10879 (dbus_connection_set_max_live_messages_size)
10880 (dbus_connection_get_max_live_messages_size): implement some
10881 resource limitation functions
10883 * dbus/dbus-resources.c: new file implementing some of the
10884 resource limits stuff
10886 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
10887 missing docs, add @todo to handle OOM etc.
10889 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
10892 2003-01-18 Havoc Pennington <hp@pobox.com>
10894 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
10895 connection if it hasn't been already.
10897 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
10898 replace with DisconnectFunction.
10900 2003-01-18 Havoc Pennington <hp@pobox.com>
10902 Building --disable-verbose-mode --disable-asserts --disable-tests
10903 cuts the library from 112K to 45K or so
10905 * configure.in: check for varargs macro support,
10906 add --enable-verbose-mode, --enable-asserts.
10908 * dbus/dbus-internals.h (_dbus_assert): support
10909 DBUS_DISABLE_ASSERT
10910 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
10912 2003-01-18 Havoc Pennington <hp@pobox.com>
10914 * dbus/dbus-test.c: include config.h so that tests actually run
10916 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
10917 so the failure mode when that assumption fails will be plenty
10920 2003-01-18 Havoc Pennington <hp@pobox.com>
10922 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
10924 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
10927 * test/Makefile.am: don't use special variable "TESTS" for echo-*
10928 since we don't want to use those in make check
10930 2003-01-15 Havoc Pennington <hp@redhat.com>
10936 2003-01-15 Havoc Pennington <hp@redhat.com>
10938 * test/Makefile.am: fix so that test source code ends up in the
10939 distribution on make distcheck
10941 2003-01-15 Havoc Pennington <hp@redhat.com>
10947 2003-01-15 Havoc Pennington <hp@redhat.com>
10949 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10950 fix build when --disable-tests
10952 * Makefile.am (EXTRA_DIST): put HACKING in here
10954 * HACKING: document procedure for making a tarball release.
10956 2003-01-14 Anders Carlsson <andersca@codefactory.se>
10958 * bus/connection.c: (connection_error_handler),
10959 (bus_connection_setup):
10960 * bus/main.c: (main):
10961 Make sure that the DBusConnectionData struct is NULLed
10962 out to prevent a segfault.
10964 * dbus/dbus-errors.c: (dbus_result_to_string):
10965 * dbus/dbus-errors.h:
10966 * dbus/dbus-message.c: (dbus_message_get_fields),
10967 (dbus_message_get_fields_valist), (_dbus_message_test):
10968 * dbus/dbus-message.h:
10969 Make dbus_message_get_fields return a result code so we can
10970 track invalid fields as well as oom.
10972 2003-01-11 Havoc Pennington <hp@pobox.com>
10974 * configure.in: change --enable-test/--enable-ansi action-if-given
10975 to enable_foo=$enableval instead of enable_foo=yes
10977 2003-01-08 Havoc Pennington <hp@pobox.com>
10979 * dbus/dbus-string.c (_dbus_string_align_length): new function
10981 * dbus/dbus-test-main.c: move main() for test app here
10983 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10984 symbol to run tests, because dbus-test isn't in the main
10987 Code review nitpicks.
10989 * dbus/dbus-message.c (dbus_message_write_header): add newlines
10990 for people with narrow emacs ;-). Assert client_serial was filled
10991 in. Assert message->name != NULL.
10992 (dbus_message_append_fields): have "first_field_type" arg separate
10993 from va list, needed for C++ binding that also uses varargs IIRC
10994 and helps with type safety
10995 (dbus_message_new): add @todo about using DBusString to store
10996 service/name internally
10997 (dbus_message_new): don't leak ->service and ->name on OOM later
10999 (dbus_message_unref): free the service name
11000 (dbus_message_get_fields): same change to varargs
11001 i.e. first_field_type
11002 (_dbus_message_loader_return_buffer): assert that the message data
11003 is aligned (if not it's a bug in our code). Put in verbose griping
11004 about why we set corrupted = TRUE.
11005 (decode_header_data): add FIXME that char* is evil. Was going to
11006 add FIXME about evil locale-specific string.h strncmp, but just
11007 switched to wacky string-as-uint32 optimization. Move check for
11008 "no room for field name" above get_const_data_len() to avoid
11009 assertion failure in get_const_data_len if we have trailing 2
11010 bytes or the like. Check for service and name fields being
11011 provided twice. Don't leak service/name on error. Require field
11012 names to be aligned to 4 bytes.
11014 * dbus/dbus-marshal.c: move byte swap stuff to header
11015 (_dbus_pack_int32): uscore-prefix
11016 (_dbus_unpack_int32): uscore-prefix
11017 (_dbus_unpack_uint32): export
11018 (_dbus_demarshal_string): add @todo complaining about use of
11020 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11021 handling allowing corrupt data to go unchecked
11023 2003-01-08 Havoc Pennington <hp@redhat.com>
11025 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11026 to the select() as needed for authentication. (should be using
11027 _dbus_poll() not select, but for another day)
11029 * dbus/dbus.h: include dbus/dbus-protocol.h
11031 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11033 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11036 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11038 * dbus/dbus-internals.c: (_dbus_type_to_string):
11039 New function that returns a string describing a type.
11041 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11042 * dbus/dbus-marshal.h:
11043 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11044 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11045 (dbus_message_iter_get_byte_array):
11046 * dbus/dbus-message.h:
11047 Add new convenience functions for appending and getting message fields.
11048 Also add demarshalling routines for byte arrays.
11050 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11052 * dbus/dbus-connection-internal.h:
11053 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11054 (_dbus_connection_get_next_client_serial),
11055 (dbus_connection_send_message):
11056 * dbus/dbus-internals.h:
11057 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11058 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11059 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11060 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11061 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11062 (_dbus_verbose_bytes), (_dbus_marshal_test):
11063 * dbus/dbus-marshal.h:
11064 * dbus/dbus-message-internal.h:
11065 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11066 (dbus_message_write_header), (_dbus_message_lock),
11067 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11068 (dbus_message_get_name), (dbus_message_append_int32),
11069 (dbus_message_append_uint32), (dbus_message_append_double),
11070 (dbus_message_append_string), (dbus_message_append_byte_array),
11071 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11072 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11073 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11074 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11075 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11076 (decode_header_data), (_dbus_message_loader_return_buffer),
11077 (message_iter_test), (_dbus_message_test):
11078 * dbus/dbus-message.h:
11079 * dbus/dbus-protocol.h:
11080 * dbus/dbus-test.c: (main):
11081 * dbus/dbus-test.h:
11082 * glib/test-dbus-glib.c: (message_handler), (main):
11083 * test/echo-client.c: (main):
11084 * test/watch.c: (check_messages):
11085 Make messages sendable and receivable for real.
11087 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11089 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11090 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11091 * dbus/dbus-message.c: (dbus_message_append_int32),
11092 (dbus_message_append_uint32), (dbus_message_append_double),
11093 (dbus_message_append_string), (dbus_message_append_byte_array):
11094 Handle OOM restoration.
11096 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11098 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11099 (_dbus_demarshal_string), (_dbus_marshal_test):
11100 * dbus/dbus-marshal.h:
11101 * dbus/dbus-message.c: (dbus_message_get_name),
11102 Document these functions.
11104 (dbus_message_append_int32), (dbus_message_append_uint32),
11105 (dbus_message_append_double), (dbus_message_append_string),
11106 (dbus_message_append_byte_array):
11107 * dbus/dbus-message.h:
11108 Add functions for adding message fields of different types.
11110 * dbus/dbus-protocol.h:
11111 Add the different types.
11113 2003-01-05 Havoc Pennington <hp@pobox.com>
11115 * bus/connection.c: implement routines for handling connections,
11116 first thing is keeping a list of owned services on each connection
11117 and setting up watches etc.
11119 * bus/services.c: implement a mapping from service names to lists
11122 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11124 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11125 to use static mutexes for global data
11127 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11128 collection of functions to set/get application-specific data
11129 on the DBusConnection.
11131 2003-01-04 Havoc Pennington <hp@pobox.com>
11133 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11134 (_dbus_poll): new function
11136 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11139 * bus/loop.c: initial code for the daemon main loop
11141 2003-01-04 Havoc Pennington <hp@pobox.com>
11143 * test/watch.c (error_handler): make it safe if the error handler
11144 is called multiple times (if we s/error handler/disconnect
11145 handler/ we should just guarantee it's called only once)
11147 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11148 error handler on disconnect (it's quite possible we should
11149 just change the error handler to a "disconnect handler," I'm
11150 not sure we have any other meaningful errors)
11152 * configure.in: check for getpwnam_r
11154 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11155 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11156 mechanism as in SASL spec, using socket credentials
11158 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11159 (_dbus_send_credentials_unix_socket): new function
11161 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11163 (_dbus_write): only check errno if <0 returned
11164 (_dbus_write_two): ditto
11166 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11168 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11169 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11170 (_dbus_marshal_test):
11171 * dbus/dbus-marshal.h:
11172 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11173 to _dbus_marshal_utf8_string. Also fix some tests.
11175 2002-12-28 Harri Porten <porten@kde.org>
11177 * configure.in: added check for C++ compiler and a very cheesy
11178 check for the Qt integration
11180 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11182 * qt/Makefile.am: added
11184 * qt/.cvsignore: added
11186 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11187 latter, added #ifdef QT_THREAD_SUPPORT guard.
11189 * dbus/Makefile.am: added missing headers for make dist
11191 2002-12-28 Kristian Rietveld <kris@gtk.org>
11193 * dbus/Makefile.am: fixup export-symbols-regex.
11195 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11197 * acinclude.m4: Add this file and put the
11198 PKG_CHECK_MODULE macro in it.
11200 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11202 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11203 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11204 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11205 (_dbus_marshal_test):
11206 Make the demarshalling routines align the pos argument.
11207 Add string marshalling tests and fix the obvious bugs
11210 2002-12-26 Havoc Pennington <hp@pobox.com>
11212 * dbus/dbus-auth.c: fixes fixes fixes
11214 * dbus/dbus-transport-unix.c: wire up support for
11215 encoding/decoding data on the wire
11217 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11218 (_dbus_auth_decode_data): append to target string
11219 instead of nuking it.
11221 2002-12-26 Havoc Pennington <hp@pobox.com>
11223 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11224 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11227 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11228 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11229 now). Main point is because I wanted unpack_uint32 to implement
11230 _dbus_verbose_bytes
11231 (_dbus_verbose_bytes): new function
11233 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
11235 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
11236 mechanism to handle a corrupt message stream
11237 (_dbus_message_loader_new): fix preallocation to only prealloc,
11240 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
11241 (_dbus_string_test): enhance tests for copy/move and fix the
11244 * dbus/dbus-transport-unix.c: Hold references in more places to
11245 avoid reentrancy problems
11247 * dbus/dbus-transport.c: ditto
11249 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
11250 leak reference count in no-message case
11252 * test/watch.c (do_mainloop): handle adding/removing watches
11253 during iteration over the watches. Also, ref the connection/server
11254 stored on a watch, so we don't try to mangle a destroyed one.
11256 * dbus/dbus-transport-unix.c (do_authentication): perform
11259 * dbus/dbus-auth.c (get_state): add a state
11260 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
11261 (_dbus_auth_get_unused_bytes): append the unused bytes
11262 to the passed in string, rather than prepend
11264 * dbus/dbus-transport.c (_dbus_transport_init_base): create
11265 the auth conversation DBusAuth
11267 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
11268 (_dbus_transport_new_for_domain_socket): when creating a
11269 transport, pass in whether it's a client-side or server-side
11270 transport so we know which DBusAuth to create
11272 2002-12-03 Havoc Pennington <hp@pobox.com>
11274 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
11275 _after_ finalizing the derived members
11276 (unix_connection_set): unref watch if we fail to add it
11278 * dbus/dbus-connection.c (dbus_connection_unref): delete the
11279 transport first, so that the connection owned by the
11280 transport will be valid as the transport finalizes.
11282 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
11283 if necessary, and remove watches from the connection.
11285 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
11287 2002-12-26 Anders Carlsson <andersca@codefactory.se>
11289 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11290 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11291 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11292 (_dbus_marshal_test):
11293 * dbus/dbus-marshal.h:
11294 Add string marshal functions and have the demarshal functions
11295 return the new position.
11297 2002-12-25 Havoc Pennington <hp@pobox.com>
11299 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
11300 it is a simple protocol that just maps directly to SASL.
11302 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
11303 initial implementation, not actually used yet.
11305 * dbus/dbus-string.c (_dbus_string_find): new function
11306 (_dbus_string_equal): new function
11307 (_dbus_string_base64_encode): new function
11308 (_dbus_string_base64_decode): new function
11310 2002-12-25 Anders Carlsson <andersca@codefactory.se>
11312 * dbus/Makefile.am:
11313 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
11314 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11315 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11316 (_dbus_demarshal_uint32), (_dbus_marshal_test):
11317 * dbus/dbus-marshal.h:
11318 * dbus/dbus-protocol.h:
11319 * dbus/dbus-test.c: (main):
11320 * dbus/dbus-test.h:
11321 Add un-optimized marshalling/demarshalling routines.
11323 2002-12-25 Harri Porten <porten@kde.org>
11325 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
11327 2002-12-24 Zack Rusin <zack@kde.org>
11329 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
11330 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
11333 2002-12-24 Havoc Pennington <hp@pobox.com>
11335 * glib/dbus-gthread.c: fix include
11337 * glib/dbus-glib.h: rename DBusMessageHandler for now.
11338 I think glib API needs to change, though, as you don't
11339 want to use DBusMessageFunction, you want to use the
11340 DBusMessageHandler object. Probably
11341 dbus_connection_open_with_g_main_loop()
11342 and dbus_connection_setup_g_main_loop() or something like that
11343 (but think of better names...) that just create a connection
11344 that has watch/timeout functions etc. already set up.
11346 * dbus/dbus-connection.c
11347 (dbus_connection_send_message_with_reply): new function just to
11348 show how the message handler helps us deal with replies.
11350 * dbus/dbus-list.c (_dbus_list_remove_last): new function
11352 * dbus/dbus-string.c (_dbus_string_test): free a string that
11355 * dbus/dbus-hash.c: use memory pools for the hash entries
11356 (rebuild_table): be more paranoid about overflow, and
11357 shrink table when we can
11358 (_dbus_hash_test): reduce number of sprintfs and write
11359 valid C89. Add tests for case where we grow and then
11360 shrink the hash table.
11362 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
11364 * dbus/dbus-connection.c (dbus_connection_register_handler)
11365 (dbus_connection_unregister_handler): new functions
11367 * dbus/dbus-message.c (dbus_message_get_name): new
11369 * dbus/dbus-list.c: fix docs typo
11371 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
11372 an object representing a handler for messages.
11374 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11376 * glib/dbus-glib.h:
11377 * glib/dbus-gthread.c: (dbus_gthread_init):
11378 Don't use the gdbus prefix for public functions.
11380 2002-12-16 Anders Carlsson <andersca@codefactory.se>
11384 Add GLib checks and fixup .pc files
11386 * glib/Makefile.am:
11387 * glib/dbus-glib.h:
11388 * glib/dbus-gmain.c: (gdbus_connection_prepare),
11389 (gdbus_connection_check), (gdbus_connection_dispatch),
11390 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
11391 (dbus_connection_gsource_new):
11392 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
11393 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
11394 * glib/test-dbus-glib.c: (message_handler), (main):
11397 2002-12-15 Harri Porten <porten@kde.org>
11399 * autogen.sh: check for libtoolize before attempting to use it
11401 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
11404 * .cvsignore: ignore more stamp files
11406 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
11408 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
11409 without make install.
11411 2002-12-15 Havoc Pennington <hp@pobox.com>
11413 * dbus/dbus-threads.c: add thread stubs that a higher library
11414 layer can fill in. e.g. the GLib wrapper might fill them in with
11415 GThread stuff. We still need to use this thread API to
11416 thread-safe-ize the library.
11418 2002-12-12 Havoc Pennington <hp@pobox.com>
11420 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
11421 below new interfaces and include fewer system headers.
11423 * dbus/dbus-sysdeps.c (_dbus_read): new function
11424 (_dbus_write): new function
11425 (_dbus_write_two): new function
11426 (_dbus_connect_unix_socket): new function
11427 (_dbus_listen_unix_socket): new function
11429 * dbus/dbus-message-internal.h: change interfaces to use
11432 2002-12-11 Havoc Pennington <hp@pobox.com>
11434 * dbus/dbus-types.h: add dbus_unichar
11436 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
11438 * dbus/dbus-connection.c (dbus_connection_send_message): return
11441 * dbus/dbus-transport.c: include dbus-watch.h
11443 * dbus/dbus-connection.c: include dbus-message-internal.h
11445 * HACKING: add file with coding guidelines stuff.
11447 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
11448 handling here, for security purposes (as in vsftpd). Not actually
11449 using this class yet.
11451 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
11452 system/libc usage here, as in vsftpd, for ease of auditing (and
11453 should also simplify portability). Haven't actually moved all the
11454 system/libc usage into here yet.
11456 2002-11-25 Havoc Pennington <hp@pobox.com>
11458 * dbus/dbus-internals.c (_dbus_verbose): fix to not
11459 always print the first verbose message.
11461 2002-11-24 Havoc Pennington <hp@pobox.com>
11463 * test/echo-client.c, test/echo-server.c: cheesy test
11466 * configure.in (AC_CHECK_FUNCS): check for writev
11468 * dbus/dbus-message.c (_dbus_message_get_network_data): new
11471 * dbus/dbus-list.c (_dbus_list_foreach): new function
11473 * dbus/dbus-internals.c (_dbus_verbose): new function
11475 * dbus/dbus-server.c, dbus/dbus-server.h: public object
11476 representing a server that listens for connections.
11478 * dbus/.cvsignore: create
11480 * dbus/dbus-errors.h, dbus/dbus-errors.c:
11481 public API for reporting errors
11483 * dbus/dbus-connection.h, dbus/dbus-connection.c:
11484 public object representing a connection that
11485 sends/receives messages. (Same object used for
11486 both client and server.)
11488 * dbus/dbus-transport.h, dbus/dbus-transport.c:
11489 Basic abstraction for different kinds of stream
11490 that we might read/write messages from.
11492 2002-11-23 Havoc Pennington <hp@pobox.com>
11494 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
11497 * dbus/dbus-test.c (main): add list test, and include
11498 dbus-test.h as intended
11500 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
11501 (_dbus_hash_table_remove_int): return value indicates
11502 whether the entry existed to remove
11504 * dbus/dbus-list.c: add linked list utility class,
11505 with docs and tests
11507 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
11510 2002-11-23 Havoc Pennington <hp@pobox.com>
11512 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
11513 DBUS_END_DECLS to nothing, that should fix this once and for all
11515 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
11517 * dbus/dbus-message.c, dbus/dbus-hash.c:
11518 add some missing @brief
11520 2002-11-23 Havoc Pennington <hp@pobox.com>
11522 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
11523 to avoid confusing Doxygen
11525 * dbus/dbus-hash.c: @} not }@
11527 * dbus/dbus-message.c (struct DBusMessage): split out
11530 2002-11-23 Havoc Pennington <hp@pobox.com>
11532 * configure.in: pile on more warning flags if using gcc
11534 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
11535 to document static functions
11537 * configure.in: add summary to end of configure so it
11538 looks nice and attractive
11540 * dbus/dbus-hash.c: finish implementation and write unit
11543 * configure.in: add --enable-tests to enable unit tests
11545 * dbus/dbus-test.c: test program to run unit tests
11546 for all files in dbus/*, initially runs a test for
11549 * dbus/dbus-internals.h: file to hold some internal utility stuff
11551 2002-11-22 Havoc Pennington <hp@redhat.com>
11553 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
11554 "ported" away from Tcl
11556 * dbus/dbus-types.h: header for types such as dbus_bool_t
11558 2002-11-22 Havoc Pennington <hp@redhat.com>
11560 * dbus/dbus.h: fixups for doc warnings
11562 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
11564 (QUIET): make it quiet so we can see warnings
11566 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
11568 2002-11-22 Havoc Pennington <hp@redhat.com>
11570 * Makefile.am: include "Doxyfile" target in all-local
11572 * configure.in: generate the Doxyfile
11574 * Doxyfile.in: move Doxyfile here, so we can use
11575 configure to generate a Doxyfile with the right
11576 version number etc.
11578 2002-11-22 Havoc Pennington <hp@redhat.com>
11580 * dbus/dbus-message.c: move inline docs into .c file
11582 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
11583 so all docs are under doc/
11584 (MAN_EXTENSION): generate man pages. Use extension
11585 ".3dbus" which matches ".3qt" on my system,
11586 I guess this is OK, I don't know really.
11587 (FILE_PATTERNS): look for .c files not .h, makes sense
11588 for plain C I think
11590 2002-11-22 Havoc Pennington <hp@pobox.com>
11592 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
11593 because any app can be a server, and any app can be a client,
11594 the bus is a special kind of server.
11596 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
11598 * Doxyfile : adding. Still needs Makefile rules to be generated
11599 automatically (just run "doxygen" in the toplevel dir for now to
11602 * dbus/dbus-message.h : Adding sample docs (javadoc since
11603 resembles gtk-doc a little more)
11605 * dbus/dbus.h : Adding sample docs
11607 2002-11-21 Havoc Pennington <hp@redhat.com>
11609 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
11610 so we can allow ourselves to include files directly,
11611 instead of having to use dbus.h
11613 * dbus/dbus.h: fill in
11615 * dbus/dbus-message.h: sketch out a sample header file.
11616 Include griping if you include it directly instead of
11619 * dbus/dbus-macros.h: new file with macros for extern "C",
11620 TRUE/FALSE, NULL, etc.
11622 * doc/file-boilerplate.c: put include guards in here
11624 2002-11-21 Havoc Pennington <hp@redhat.com>
11626 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
11628 * COPYING: include the GPL as well, and license code
11629 under both AFL and GPL.
11631 2002-11-21 Havoc Pennington <hp@redhat.com>
11633 * acconfig.h: get rid of this
11635 * autogen.sh (run_configure): add --no-configure option
11637 * configure.in: remove AC_ARG_PROGRAM to make
11638 autoconf complain less. add AC_PREREQ.
11639 add AC_DEFINE third arg.
11641 2002-11-21 Anders Carlsson <andersca@codefactory.se>
11644 Fix references so we can distcheck.
11646 2002-11-21 Havoc Pennington <hp@redhat.com>
11648 * Initial module creation