1 2005-06-16 Colin Walters <walters@verbum.org>
3 * glib/dbus-binding-tool-glib.c:
5 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
6 from Ross Burton, for his GLib bindings work.
8 2005-06-16 Colin Walters <walters@verbum.org>
10 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
11 to iterate instead of walking to G_TYPE_INVALID.
13 Patch based on a patch from Ryan Gammon.
15 2005-06-16 Colin Walters <walters@verbum.org>
17 * bus/bus.c (bus_context_new): Set parser to NULL
18 after we unref it (Patch from Chris Boscolo, #2174).
20 2005-06-16 Colin Walters <walters@verbum.org>
22 * python/dbus_bindings.pyx.in: Import size_t,
23 __int64_t, __uint64_t, and __signed.
25 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
26 Define cmsg struct, output it.
27 (_dbus_read_credentials_unix_socket):
30 Patch from Joe Markus Clarke for FreeBSD support.
32 2005-06-16 Colin Walters <walters@verbum.org>
34 * tools/dbus-send.c (append_array): Use strtok.
35 (append_dict): New function.
36 (type_from_name): New function, extracted from main.
37 (main): Handle sending dicts.
39 * tools/dbus-print-message.c (print_iter): Print dict
42 2005-06-16 Colin Walters <walters@verbum.org>
44 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
45 values as the empty string (#2948).
47 2005-06-16 Colin Walters <walters@verbum.org>
50 * mono/doc/Makefile.am:
51 * test/glib/Makefile.am:
53 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
55 2005-06-16 Colin Walters <walters@verbum.org>
57 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
58 header byte order from expected byte order (Patch from Chris Wilson, #3475).
60 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
61 Increment pointer after swapping fixed array. Add assertion
64 2005-06-15 Colin Walters <walters@verbum.org>
66 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
67 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
69 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
71 * NEWS: Update to 0.34
73 2005-06-15 David Zeuthen <davidz@redhat.com>
75 * configure.in (LT_CURRENT): Revert back to 1 as the library
76 hasn't changed and we've certainly not committed to protocol
77 stability yet. All this does is to break ABI. See commit note
78 from hp@redhat.com 2005-05-05 for details.
80 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
82 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
83 (_dbus_connection_run_builtin_filters): New method
84 (dbus_connection_dispatch): Run the builtin filters which in turn
85 runs the peer filter which handles Ping messages.
88 - Ping isn't handled: This patch fixes it
90 - Add a test case for the Ping message: added TODO item
92 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
94 * dbus/dbus-message.c:
95 (dbus_message_has_path): New method
96 (dbus_message_has_interface): New method
97 (dbus_message_has_member): New method
99 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
102 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
103 the keyring directory is private to the user
106 - The convenience functions in dbus-bus.h should perhaps have
107 the signatures that they would have if they were autogenerated
108 stubs. e.g. the acquire service function. We should also evaluate
109 which of these functions to include, in light of the fact that
110 GLib/Qt native stubs will probably also exist.: Punted
112 - add dbus_message_has_path(), maybe has_member/interface:
115 - in dbus-keyring.c, enforce that the keyring dir is not
116 world readable/writable: Fixed in this patch
118 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
120 * dbus/dbus-marshal-validate.h: Added a new validation
121 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
122 out of memory errors when validating signitures
124 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
125 in places where we previously used DBUS_VALID and a FALSE return
126 value to indicate OOM
128 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
129 Use a stack to track the number of elements inside containers. The
130 stack values are then used to validate that dict entries have only two
131 elements within them.
132 (validate_body_helper): check the reason for failure when validating
135 * dbus/dbus-message.c (load_message): use
136 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
137 DBUS_VALID and a FALSE return value to indicate OOM
139 * doc/TODO: remove "- validate dict entry number of fields" as this
142 2005-06-14 David Zeuthen <davidz@redhat.com>
144 * bus/bus.c (process_config_every_time): Drop existing conf-dir
145 watches (if applicable) and add new watches
147 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
148 (main): Setup SIGIO signal handler if using D_NOTIFY
150 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
152 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
153 (merge_included): Also merge conf_dirs list
154 (bus_config_parser_unref): Clear conf_dirs list
155 (include_dir): Add directory to conf_dirs list
156 (bus_config_parser_get_conf_dirs): New function
158 * bus/dir-watch.[ch]: New files
160 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
162 * configure.in: Add checks for D_NOTIFY on Linux
164 2005-06-14 Colin Walters <walters@verbum.org>
166 * glib/dbus-binding-tool-glib.c:
167 * glib/dbus-gobject.c:
168 * glib/dbus-gvalue.c: Fix indentation and brace style.
170 2005-06-14 Ross Burton <ross@openedhand.com>.
172 * glib/dbus-glib.h: Make DBusGMethodInvocation
173 a private structure. Rearrange prototypes a bit.
175 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
176 documentation for first_arg_type.
178 * glib/dbus-gobject.c: Move DBusGMethodInvocation
179 here, add documentation. Move dbus_g_method_return
180 and dbus_g_method_return_error into public API
183 2005-06-14 Colin Walters <walters@verbum.org>
185 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
186 Add missing return statements, noticed by Ross Burton.
188 2005-06-13 Ross Burton <ross@openedhand.com>.
190 * glib/dbus-gobject.c: Handle errors on message
191 demarshalling by sending error message back.
192 * glib/dbus-gvalue.c: Initialize return variables.
194 2005-06-13 Colin Walters <walters@verbum.org>
196 * glib/Makefile.am: Fix thinko in last patch.
198 2005-06-13 Colin Walters <walters@verbum.org>
200 * glib/Makefile.am: Move dbus-gtype-specialized.c
201 and dbus-gtype-specialized.h into a _HEADERS variable,
204 2005-06-12 Colin Walters <walters@verbum.org>
206 Async signals and various bugfixes and testing by
207 Ross Burton <ross@openedhand.com>.
209 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
210 (dbus_gvalue_genmarshal_name_from_type)
211 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
212 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
213 (dbus_g_value_types_init, dbus_gtype_from_signature)
214 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
215 (dbus_gtypes_from_arg_signature): New function prototypes.
216 (dbus_gvalue_demarshal): Take context and error arguments.
217 (dbus_gvalue_demarshal_variant): New function.
218 (dbus_gvalue_demarshal_message): New function.
219 (dbus_gvalue_store): Delete.
221 * glib/dbus-gvalue.c:
223 File has been almost entirely rewritten; now we special-case
224 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
225 hash tables correctly, etc. Full support for recursive values
228 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
229 argument of signal to G_TYPE_POINTER since we now pass a
231 (lookup_g_marshaller): Delete in favor of
232 _dbus_gobject_lookup_marshaller.
233 (marshal_dbus_message_to_g_marshaller): Use
234 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
235 to handle remote signal callbacks.
236 (dbus_g_proxy_new_from_proxy): New function; creates a new
237 DBusGProxy by copying an existing one.
238 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
239 (dbus_g_proxy_get_path): New functions.
240 (dbus_g_proxy_marshal_args_to_message): New function;
241 factored out of existing code.
242 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
243 from a varargs array.
244 (dbus_g_proxy_begin_call_internal): New function.
245 (dbus_g_proxy_end_call_internal): New function.
246 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
247 as arguments; simply invoke dbus_g_proxy_begin_call_internal
248 after collecting args into value array.
249 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
250 invoke dbus_g_proxy_end_call_internal.
251 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
253 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
255 (array_free_all): New function.
256 (dbus_g_proxy_add_signal): Take GTypes.
258 * glib/dbus-gobject.h:
259 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
260 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
263 * glib/dbus-gobject.c: Add a global marshal_table hash which
264 stores mappings from type signatures to marshallers. Change lots
265 of invocations of dbus_gtype_to_dbus_type to
266 dbus_gtype_to_signature.
267 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
268 (introspect_signals): Fix test for query.return_type.
269 (set_object_property): Update invocation of dbus_gvalue_demarshal.
270 (invoke_object_method): Many changes. Handle asynchronous
271 invocations. Convert arguments with
272 dbus_gvalue_demarshal_message. Handle errors. Use
273 DBusSignatureIter instead of strlen on args. Handle all arguments
274 generically. Special-case variants.
275 (dbus_g_method_return, dbus_g_method_return_error): New function.
276 (DBusGSignalClosure): New structure, closes over signal
278 (dbus_g_signal_closure_new): New function.
279 (dbus_g_signal_closure_finalize): New function.
280 (signal_emitter_marshaller): New function; is special marshaller
281 which emits signals on bus.
282 (export_signals): New function; introspects object signals and
284 (dbus_g_object_type_install_info): Take GType instead of
286 (dbus_g_connection_register_g_object): Invoke export_signals.
287 (dbus_g_connection_lookup_g_object): New function.
288 (DBusGFuncSignature) New structure; used for mapping type
289 signatures to marshallers.
290 (funcsig_hash): New function; hashes DBusGFuncSignature.
291 (funcsig_equal): New function; compares DBusGFuncSignature.
292 (_dbus_gobject_lookup_marshaller): New function.
293 (dbus_g_object_register_marshaller): New function; used to
294 register a marshaller at runtime for a particular signature.
296 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
298 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
299 which notes a server method implementation should be
302 * glib/dbus-binding-tool-glib.c
303 (dbus_binding_tool_output_glib_server): Call
304 dbus_g_value_types_init.
305 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
307 (dbus_g_type_get_lookup_function): Turn GType into an invocation
308 of a lookup function.
309 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
310 (write_untyped_out_args): New method; write output arguments.
311 (write_formal_declarations_for_direction): Function for
313 (write_formal_parameters_for_direction): Function for
314 writing implementations.
315 (write_typed_args_for_direction): Function for writing
316 arguments prefixed with GTypes.
317 (write_async_method_client): Write out async version
320 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
321 (dbus_g_type_get_marshal_name): Move mapping from GType
322 to marshal name into here.
323 (dbus_g_type_get_c_name): Move into here.
324 (compute_marshaller): Convert signature to type with
325 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
326 (compute_marshaller_name): Ditto.
327 (compute_marshaller): Handle async signal annotations.
328 (gather_marshallers): Return if we don't have a known
330 (generate_glue): Collect introspection blob here, and
331 write all of the blob at the end. This allows an object
332 with multiple interfaces to work.
333 Mark async methods in introspection blob.
335 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
336 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
337 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
339 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
340 avoids people accidentally using DBUS_TYPE_* which should
341 not be necessary anymore.
342 Do include dbus-gtype-specialized.h, which are utilities
343 for GLib container types.
344 Add various #defines for types such as
345 DBUS_TYPE_G_BOOLEAN_ARRAY.
346 (DBusGValueIterator, DBusGValue): Define, not fully used
348 (dbus_g_value_get_g_type): Type for recursive value.
349 (dbus_g_value_open, dbus_g_value_iterator_get_value)
350 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
351 (dbus_g_value_free): Prototypes.
352 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
353 (dbus_g_proxy_set_interface): Prototype.
354 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
355 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
357 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
359 (DBusGAsyncData, DBusGMethodInvocation): Structures for
360 doing async invocations.
361 (dbus_g_method_return, dbus_g_method_return_error):
363 * doc/dbus-tutorial.xml: Update GLib section.
365 * tools/dbus-viewer.c (load_child_nodes): Update
366 for new invocation type of dbus_g_proxy_end_call.
367 (load_from_service_thread_func): Ditto.
369 * tools/print-introspect.c (main): Ditto.
371 * tools/dbus-names-model.c (have_names_notify)
372 (names_model_reload, names_model_set_connection)
375 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
376 needed since Python bindings use GLib bindings.
378 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
379 Add --prefix argument.
381 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
382 unneeded --ignore-unsupported arg.
384 * test/glib/test-service-glib.c:
385 * test/glib/test-service-glib.xml:
386 * test/glib/test-dbus-glib.c: Add many more tests.
388 2005-06-06 David Zeuthen <davidz@redhat.com>
390 * doc/TODO: Add item about need to remove deprecated functions.
392 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
394 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
395 to repair the ABI which was broken with the last commit.
397 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
399 * dbus/dbus-connection.c, dbus/dbus-connection.h
400 (dbus_connection_disconnect): renamed to dbus_connection_close
401 for API symmetry with dbus_connection_open
402 (_dbus_connection_open_internal):
403 s/dbus_connection_disconnect/dbus_connection_close
405 * dbus/dbus-bus.c (dbus_bus_get):
406 s/dbus_connection_disconnect/dbus_connection_close
408 * bus/connection.c (bus_connections_unref,
409 bus_connections_setup_connection, bus_connections_expire_incomplete):
410 s/dbus_connection_disconnect/dbus_connection_close
412 * bus/dispatch.c (bus_dispatch, kill_client_connection,
413 kill_client_connection_unchecked, check_hello_connection):
414 s/dbus_connection_disconnect/dbus_connection_close
416 * bus/bus.c (new_connection_callback):
417 s/dbus_connection_disconnect/dbus_connection_close
419 * tools/dbus-send.c (main):
420 s/dbus_connection_disconnect/dbus_connection_close
422 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
423 s/dbus_connection_disconnect/dbus_connection_close
425 * test/test-service.c (path_message_func, filter_func):
426 s/dbus_connection_disconnect/dbus_connection_close
428 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
430 2005-05-25 Colin Walters <walters@verbum.org>
432 * dbus/dbus-protocol.h: Move various bus service #defines such
433 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
435 * dbus/dbus-shared.h: Various defines moved here.
436 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
438 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
440 * python/__init__.py: Python bindings deserve a minor version
441 update. Upped to (0, 40, 2)
443 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
445 * python/decorators.py: add explicitly_pass_message decorator
446 for passing in the dbus message as keyword for edge case signal
449 * python/matchrules.py (SignalMatchRule.__repr__): fix output
450 to conform with what dbus expects for match rules
451 (SignalMatchRule.execute): add the dbus message as a keyword
452 if the signal handler has requested it
454 * python/examples/example/signal-recipient.py: added some more
455 examples on how to hook up to signals
457 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
459 * python/decorators.py: import dbus_bindings
461 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
462 SignalMatchNode): new classes that implement wildcard signal
463 callback matching using a tree lookup. Heavily modified from a
464 patch sent by Celso Pinto (fd.o bug #3241)
466 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
467 use new match classes to handle signals.
469 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
471 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
473 2005-05-18 Havoc Pennington <hp@redhat.com>
475 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
476 gettext. Not really worth requiring yet perhaps, but any
477 production quality 1.0 would require it so we should go ahead and
478 get things set up. We do have a couple token calls to
479 bindtextdomain in the code already.
481 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
483 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
484 when using recursive g_main_loops
486 * python/_dbus.py (class Bus): add the ProxyObjectClass
487 alias for ProxyObject to make it easier for the Twisted
488 networking framework to integrate dbus.
490 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
491 alias for ProxyMethod to make it easier for the Twisted
492 networking framework to integrate dbus.
494 2005-05-11 Ross Burton <ross@openedhand.com>
496 * glib/dbus-glib-tool.c: Add --prefix argument.
497 * glib/dbus-binding-tool-glib.h: Add prefix argument.
498 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
500 (generate_glue): Pass prefix argument down.
501 (dbus_binding_tool_output_glib_server): Pass prefix to
504 2005-05-11 Colin Walters <walters@verbum.org>
506 * tools/dbus-send.c (append_array): New function.
507 (append_arg): Broken out from main.
508 (main): Add cheesy hack to send arrays and variants.
510 * tools/dbus-print-message.c (print_iter): Broken out
513 2005-05-11 Colin Walters <walters@verbum.org>
515 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
516 New function, returns signature string for signature iter.
517 * dbus/dbus-signature.h: Prototype it.
518 * dbus/dbus-message.c (dbus_message_iter_get_signature):
519 New function, returns signature string for message iter.
520 (dbus_message_iter_get_array_len): New function, returns
522 (dbus_message_iter_get_fixed_array): Fix assertion; this
523 function should be used when the iter is pointing to the
525 * dbus/dbus-message.h: Prototypes.
526 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
527 New function; returns length of an array.
528 * dbus/dbus-marshal-recursive.h: Prototype it.
530 2005-05-11 Colin Walters <walters@verbum.org>
532 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
535 2005-05-08 Havoc Pennington <hp@redhat.com>
537 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
538 daemon's pid, not the parent's pid, to the file descriptor.
539 Reported by Taj Morton.
541 2005-05-05 Havoc Pennington <hp@redhat.com>
543 * configure.in (LT_*): add notes on how the libtool versioning
544 works to save thinking. Increment soname to indicate protocol
545 breakage (though really the library interface hasn't changed I
548 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
549 verify the GUID received from server matches what we were
550 expecting, if we had an expectation
552 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
553 (_dbus_auth_get_guid_from_server): new function
554 (send_begin): parse the OK args
556 * doc/dbus-specification.xml: add GUID to the auth protocol
558 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
560 * Fix my name in previous changelog ;)
562 * python/proxies.py (ProxyObject.__getattr__): add further patch
563 from Anthony Baxter to throw an AttributeError when python
564 __special__ functions are called instead of marshling them over
565 the bus (Bug#1685 comment 3).
567 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
569 * python/Makefile.am: changed to use pyexecdir for the binding
570 shared libraries (Bug#2494)
572 * python/exceptions.py: bring exceptions over from the bindings
573 so they can be used in applications (Bug#2036)
574 Make all exceptions derive from DBusException
576 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
577 of classes so that print obj doesn't throw an exception (Bug #1685)
579 2005-05-03 Ross Burton <ross@openedhand.com>
581 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
582 Return if we get an error during registration. Set up a
583 weak reference on object to unregister if object is destroyed.
584 (unregister_gobject): New function.
586 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
588 * python/dbus_bindings.pyx.in:
589 - added new type classes for hinting to the marashaler what type
590 to send over the wire
591 - added int16 and uint16 marshalers
592 - Fixed a bug in the type constants that caused int32 to go out
593 as uint16 over the wire
594 * python/dbus.py: split up into different files and renamed _dbus.py
595 * python/__init__.py, python/_util.py, python/decorators.py,
596 python/exceptions.py, python/proxies.py, python/services.py,
597 python/types.py: new files split off from dbus.py
598 * python/Makefile.am: Add new files, remove dbus.py and
599 install all python files to <python module dir>/dbus
600 * python/examples/*: Added #!/usr/bin/env python to the top of
601 every example. Patch provided by Tatavarty Kalyan
603 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
605 * NEWS: Update to 0.33
607 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
609 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
610 method for doing async calls
611 (_pending_call_notification): New C function for handling pendning call
613 (set_notify): New method for setting pending call notification
615 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
616 Async capabilities added to remote method calls
617 (Sender): class removed
618 (RemoteService): class removed
619 (ObjectTree): class removed for now
620 (RemoteObject): Renamed to ProxyObject
621 (RemoteMethod): Renamed to ProxyMethod
622 (method): Decorator added for decorating python methods as dbus methods
623 (signal): Decorator added for decorating python methods as signal emitters
624 (ObjectType): Metaclass added for generating introspection data and the
625 method callback vtable
626 (Interface): Wrapper class added to wrap objects in a dbus interface
627 (Object): Uses ObjectType as its metaclass and exports Introspect
628 of the org.freedesktop.DBus.Introspectable interface
629 (ValidationException, UnknownMethodException): new exceptions
631 * python/examples/*: Modified to fit with the new bindings
633 2005-04-23 Havoc Pennington <hp@redhat.com>
635 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
636 reported by Tony Houghton
638 * test/test-service.c (main): test
639 dbus_connection_get_object_path_data()
641 * dbus/dbus-object-tree.c (find_handler): be sure we always init
643 (_dbus_object_tree_get_user_data_unlocked): new function used by
644 dbus_connection_get_object_path_data()
645 (do_register): add assertion test for get_user_data_unlocked
646 (object_tree_test_iteration): more tests
648 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
649 new function from Dan Reed to let you get the user data from
650 dbus_connection_register_object_path()
652 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
654 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
655 in numerous places that did not account for the NULL terminator
656 (signature_from_seed): changed the manual string copy loop to
657 just use strcpy instead
658 make check should now pass
660 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
662 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
663 so that it allows messages that are not signals to pass in
664 NULL as the interface.
666 2005-04-18 David Zeuthen <davidz@redhat.com>
668 * glib/dbus-gmain.c (io_handler_destroy_source):
669 (timeout_handler_destroy_source, connection_setup_free):
670 Also unref the source to avoid memory leaks.
672 2005-04-13 David Zeuthen <davidz@redhat.com>
674 * bus/config-parser.c (bus_config_parser_new): Bump this to a
675 more reasonable, yet still totally arbitrary, value :-).
677 2005-04-13 David Zeuthen <davidz@redhat.com>
679 * doc/TODO: Added an "important for 1.0" item about selinux
682 2005-04-13 David Zeuthen <davidz@redhat.com>
684 * bus/selinux.c: Add c-file-style to top of file
685 (log_audit_callback): Don't free the data here anymore
686 (bus_selinux_check): Don't take spid and tpid since appending
687 that to auxdata may OOM.
688 (bus_selinux_allows_acquire_service): Handle OOM and signal back
689 to the caller if we are OOM by taking an error object.
690 (bus_selinux_allows_send): -do-
692 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
693 and bus_selinux_allows_send
695 * bus/bus.c (bus_context_check_security_policy): Pass error and
696 pass on OOM thrown by bus_selinux_allows_send()
698 * bus/services.c (bus_registry_acquire_service): Pass error and
699 pass on OOM thrown by bus_selinux_allows_acquire_service()
701 2005-04-13 Havoc Pennington <hp@redhat.com>
703 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
704 message at a time to avoid monopolizing the main loop, bug
705 #2953 from Benjamin Otte
707 2005-04-09 Havoc Pennington <hp@redhat.com>
709 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
710 possible overlap, fix from Daniel Reed
711 (fixup_alignment): fix signedness warnings
712 (_dbus_string_append_unichar): ditto
714 2005-04-09 Havoc Pennington <hp@redhat.com>
716 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
718 * glib/dbus-glib-tool.c (main): fix warning
720 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
722 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
723 add a new function that can be used in simple applications that
724 don't have a main loop and are willing to block
726 2005-04-05 David Zeuthen <davidz@redhat.com>
728 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
731 (io_handler_destroy_source): Remove from list of IO handlers
732 of the ConnectionSetup object
733 (timeout_handler_destroy_source): -do- for timeout handlers
734 (io_handler_source_finalized): Don't remove from list since
735 we now do that in io_handler_destroy_source(). Renamed from
736 io_handler_source_destroyed
737 (timeout_handler_source_destroyed): -do- for timeout handlers
738 (connection_setup_free): It is now safe to iterate over all
739 IO and timeout handlers as the _destroy_source removes them
740 from the list synchronously
742 2005-03-30 Havoc Pennington <hp@redhat.com>
744 * configure.in: change check to gtk 2.4
746 * tools/dbus-viewer.c (name_combo_changed_callback): remove
747 gtk_combo_box_get_active_text() usage to decrement GTK requirement
750 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
754 * HACKING: Fixed realease instructions. configure.in should be updated to
755 the next release by the person who made the last release.
757 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
759 * python/lvalue_cast_post_process.py - removed. Patch has been
760 submitted to Pyrex maintainers that fixes gcc4.0 errors
762 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
764 2005-03-24 Daniel Reed <n@ml.org>
766 * tools/Makefile.am: Make print-introspect and
767 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
769 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
771 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
773 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
774 had in Red Hat packages for a while but for some reason never
776 (_dbus_is_a_number): New checks if a string
777 can be converted to a number and does the conversion if it can
778 (_dbus_user_database_lookup): Add check to see if the given username
779 is a udi. This allows udi's to be used instead of usernames in the
781 (_dbus_user_database_lookup_group): Add check to see if the given groupname
782 is a gdi. This allows gdi's to be used instead of groupnames in the
785 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
787 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
788 code so that it compiles with gcc4.0
790 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
791 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
792 results back to dbus_binding.c
794 2005-03-20 Colin Walters <walters@verbum.org>
796 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
798 * configure.in: Require GTK+ 2.6.
800 2005-03-20 Colin Walters <walters@verbum.org>
802 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
804 2005-03-17 Tom Parker <palfrey@tevp.net>
806 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
807 print DBUS_UID_UNSET; instead print passed username. Also
808 be sure to actually use gid looked up in cache.
810 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
811 for DBUS_GID_UNSET and groupname.
813 2005-03-17 Colin Walters <walters@verbum.org>
815 * bus/print-introspect.c: Move to tools/.
816 * bus/run-with-tmp-session-bus.sh: Ditto.
818 * glib/Makefile.am (dbus-glib-bindings.h): Move
819 generation to tools/Makefile.am.
821 * test/glib/run-test.sh: Update to handle move
822 of run-with-tmp-session-bus.sh.
824 * test/glib/test-service-glib.c: Update to handle
825 move of dbus-glib-bindings.h.
827 * tools/print-introspect.c: Moved here
828 from bus/, and ported to GLib bindings.
830 * tools/run-with-tmp-session-bus.sh: Moved here
833 * tools/Makefile.am: Generate dbus-glib-bindings.h
834 and dbus-bus-introspect.xml here.
836 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
839 2005-03-17 Colin Walters <walters@verbum.org>
841 * bus/driver.c (write_args_for_direction): Use
842 _dbus_string_get_const_data to retrieve string;
843 _dbus_string_get_const_data_len doesn't actually return
844 a NULL-terminated substring.
846 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
847 (main): Change to use org_freedesktop_DBus_request_name
848 instead of using g_proxy_begin_call/end_call.
850 2005-03-15 Joe Shaw <joeshaw@novell.com>
852 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
853 generating the finalizer. Fixes from Ben Maurer.
855 2005-03-12 Joe Shaw <joeshaw@novell.com>
857 * mono/BusDriver.cs: Update method names: ListServices
858 becomes ListNames; GetOwner becomes GetNameOwner.
860 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
861 onto the eval stack when removing the delegate.
863 2005-03-12 Joe Shaw <joeshaw@novell.com>
865 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
866 LT_CURRENT. Set it to the autoconf variable.
868 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
869 classes that disconnects the signal handler delegate from the
870 service object. Fixes a big leak of proxy objects on the
871 client side of things. Patch from Ben Maurer
874 2005-03-12 Colin Walters <walters@verbum.org>
876 * bus/driver.c (write_args_for_direction): New function,
877 parses a type signature into arguments and outputs to
879 (bus_driver_handle_introspect): Use it instead of
880 hardcoding XML for certain signatures.
882 * bus/Makefile.am (dbus-bus-introspect.xml): Add
883 dependency on dbus-daemon.
885 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
886 argument, pass it to dbus_binding_tool_output_glib_client.
888 * glib/dbus-binding-tool-glib.c
889 (generate_client_glue): Protect against multiple inclusion.
890 (dbus_binding_tool_output_glib_client): Add
891 G_BEGIN_DECLS/G_END_DECLS.
893 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
894 Change to just take iface prefix directly.
895 (write_formal_parameters): Clarify error message.
896 (check_supported_parameters): New function; checks to see type
897 signatures of method parameters are supported.
898 (generate_client_glue): Handle ignore_unsupported flag.
899 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
902 * glib/Makefile.am (dbus-glib-bindings.h): Pass
903 --ignore-unsupported by default until glib bindings
906 2005-03-11 Colin Walters <walters@verbum.org>
908 * glib/Makefile.am: Generate dbus-glib-bindings.h and
911 * bus/print-introspect.c: New file; prints introspection
912 data for a given name and object path.
914 * bus/run-with-tmp-session-bus.sh: New file, refactored
915 from test/glib/run-test.sh. Creates a temporary session
916 bus and runs another program.
918 * test/glib/run-test.sh: Refactor to invoke
919 run-with-tmp-session-bus.sh.
921 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
922 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
923 macros instead of hardcoding.
925 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
927 2005-03-11 Joe Shaw <joeshaw@novell.com>
929 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
930 this unref; it doesn't match up evenly in some codepaths.
931 (_dbus_connection_block_pending_call): Unref at every exitpoint;
932 this evenly matches with the ref near the top of this function.
934 2005-03-09 Joe Shaw <joeshaw@novell.com>
936 * dbus/dbus-object-tree.c
937 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
938 and we try to unregister a path that's not registered, still go
939 through the process of unlocking and don't just return.
941 2005-03-09 Colin Walters <walters@verbum.org>
943 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
944 to this are generated for client-side wrappers. Invokes a
945 D-BUS method and returns reply values.
947 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
948 function; writes signature string for argument direction.
949 (write_args_for_direction): Change to pass input values directly
950 instead of via address, and fix indentation.
951 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
952 make generated wrappers inlineable.
954 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
955 note about using dbus_type_is_fixed.
957 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
958 dbus/dbus-signature.c as dbus_type_is_fixed.
962 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
963 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
965 * dbus/dbus-signature.h: Prototype.
967 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
970 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
971 appropriate instead of just freeing it.
972 (main): Free returned strings using g_free.
974 * test/glib/Makefile.am (test-service-glib-glue.h)
975 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
977 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
978 simply maps a simple D-BUS type to GType.
979 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
981 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
982 initialize the value with it.
983 (dbus_gvalue_binding_type_from_type): Unused, delete.
984 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
985 various types instead of unmarshalling to value data directly.
986 Remove can_convert boolean.
987 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
988 returning directly instead of using can_convert boolean.
989 (dbus_gvalue_store): New function; not related to D-BUS per-se.
990 Stores a GValue in a pointer to a value of its corresponding C
993 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
994 add dbus_gvalue_store.
996 2005-03-08 Joe Shaw <joeshaw@novell.com>
998 Fix a bunch of lifecycle and memory management problems
999 in the mono bindings.
1001 * mono/Arguments.cs (Arguments): Implement IDisposable
1003 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
1004 strictly a static class.
1006 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
1007 delegates into this file.
1008 (Connection): Implement IDisposable.
1009 (Dispose): Disconnect the connection and set the raw connection
1010 pointer to IntPtr.Zero.
1011 (~Connection): Call Dispose().
1012 (RegisterObjectPath): Added. Manages the registration of object
1013 paths so we can cleanly disconnect them at dispose/finalize time.
1014 (UnregisterObjectPath): Ditto.
1015 (set_RawConnection): Unregister all of the object paths when
1016 changing the underlying DBusConnection. Add them back onto the
1017 new connection, if any.
1019 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
1020 more unmanaged resources anymore, so it's not necessary. Move all
1021 the DBusObjectPathVTable stuff out of here.
1022 (Handler): Save references to our delegates so that they don't get
1023 finalized. Call Connection.RegisterObjectPath() instead of
1024 dbus_connection_register_object_path() directly.
1025 (Message_Called): Dispose the message after we're finished with
1028 * mono/Message.cs (Message): Implement IDisposable.
1029 (Dispose): Dispose the Arguments, and set the RawMessage to
1031 (SendWithReplyAndBlock): We own the ref to the reply that comes
1032 back from dbus_connection_send_with_reply_and_block() so add a
1033 comment about that and unref it after we've constructed a managed
1034 MethodReturn class around it. Fixes a big, big leak.
1036 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
1038 (BuildSignalHandler): After we've sent the Signal message, dispose
1040 (BuildMethod): Dispose of the method call and reply messages after
1041 we've sent the message and extracted the data we want from the
1044 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
1046 (Service_FilterCalled): Dispose of the message after we're
1049 2005-03-08 Joe Shaw <joeshaw@novell.com>
1051 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
1052 After we attach our pending call to the connection, unref
1055 * mono/Connection.cs (set_RawConnection): Disconnect our
1056 filter and match callbacks from the old connection and
1057 reconnect them to the new connection, if any.
1059 * mono/DBusType/Array.cs: "Code" is a static member, so
1060 don't use "this" to refer to it. Fix for stricter checking
1063 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
1064 object path that we pass into unmanaged code.
1066 * mono/DBusType/String.cs (Append): Don't leak the string
1067 that we pass into unmanged code.
1069 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
1070 * NEWS: Update for 0.31
1072 * configure.in: Release 0.31
1073 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
1075 * qt/Makefile.am: fixed build
1077 * dbus/Makefile.am: soname bump for libdbus
1079 * glib/Makefile.am: soname bump for libdbus-glib
1081 2005-03-05 Havoc Pennington <hp@redhat.com>
1083 * dbus/dbus-sysdeps.c:
1084 (pseudorandom_generate_random_bytes_buffer): fix to have no return
1086 (_dbus_generate_random_bytes_buffer): fix return value
1088 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
1089 checks actually work, from Tom Parker <fdo@tevp.net>
1091 2005-03-01 Colin Walters <walters@verbum.org>
1093 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
1094 functions copied from dbus-glib-tool.c.
1095 (main): Convert lots of error code to use them.
1096 Also add some testing for introspection bits.
1098 2005-03-01 Colin Walters <walters@verbum.org>
1100 * doc/TODO: Remove introspection signature TODO.
1102 2005-02-27 Colin Walters <walters@verbum.org>
1104 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
1105 Change return value to const char * instead of int so we can do
1107 (struct PropertyInfo, struct ArgInfo): Store char *.
1108 (property_info_new, arg_info_new): Update parameters, strdup.
1109 (property_info_unref, arg_info_unref): Free.
1111 * glib/dbus-gidl.h: Update prototypes.
1113 * glib/dbus-gparser.c (basic_type_from_string): Delete.
1114 (validate_signature): New function, just validates signature and
1116 (parse_property, parse_arg): Invoke validate_signature. Store
1117 signature instead of just type code.
1119 * glib/dbus-gvalue.c (base_type_from_signature): New utility
1120 function to return a primary type for a signature, dropping
1121 information about types in container types.
1122 (dbus_gvalue_genmarshal_name_from_type)
1123 (dbus_gvalue_binding_type_from_type)
1124 (dbus_gvalue_ctype_from_type): Update to take full signature
1125 instead of type code.
1126 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
1128 * glib/dbus-gvalue.h: Update prototypes for above.
1130 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
1131 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
1132 (introspect_properties, introspect_signals, write_interface):
1133 Update to handle signatures, and remove usage of
1134 _dbus_gutils_type_to_string.
1135 (handle_introspect): Print out type codes instead of e.g. "string"
1136 in hardcoded introspection XML; also use x_AS_STRING constants
1137 instead of hardcoding in string.
1139 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
1140 to string. Remove usage of _dbus_gutils_type_to_string.
1142 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
1144 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
1147 * glib/dbus-binding-tool-glib.c (compute_marshaller)
1148 (compute_marshaller_name, generate_glue): Handle signature change
1150 (write_formal_parameters, write_args_for_direction): Ditto, and
1153 * tools/dbus-tree-view.c (type_to_string): Delete.
1154 (info_set_func_text): Update to print full signatures.
1156 * test/glib/test-service-glib.xml: Change types to new
1157 introspection format.
1159 2005-02-26 Havoc Pennington <hp@redhat.com>
1161 * doc/TODO: remove the "guid" item
1163 * test/glib/test-profile.c (no_bus_thread_func): use open_private
1164 (with_bus_thread_func): use open_private
1166 * dbus/dbus-connection.c (dbus_connection_open_private): new
1167 function that works like the old dbus_connection_open()
1168 (dbus_connection_open): now returns an existing connection if
1171 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
1172 through the GUID to the transport
1174 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
1175 GUID in hex-encoded form.
1177 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
1178 pass GUID argument in to the transport
1180 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
1183 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
1185 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
1187 2005-02-25 Havoc Pennington <hp@redhat.com>
1189 * doc/dbus-specification.xml: document the GUID thing
1191 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
1192 globally unique ID for the server, and put a "guid=hexencoded"
1193 field in the address
1195 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
1197 * dbus/dbus-message.c: ditto
1199 * dbus/dbus-dataslot.c: ditto
1201 * dbus/dbus-list.c: ditto
1203 * dbus/dbus-internals.h: wait, just include
1204 dbus-threads-internal.h here
1206 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
1209 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
1211 2005-02-24 Colin Walters <walters@verbum.org>
1213 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
1215 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
1217 * glib/Makefile.am: added dbus-gobject.h to sources list
1218 so distcheck doesn't fail
1220 2005-02-24 Havoc Pennington <hp@redhat.com>
1222 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
1223 you must disconnect before unref, since locking and other things
1224 are screwed up otherwise. Fix assorted other locking stuff.
1226 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
1229 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
1230 into a private header and don't export from the library
1232 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
1234 2005-02-24 Colin Walters <walters@verbum.org>
1236 * dbus/dbus-signature.c: New file; implements various functions
1237 related to type signatures. Includes an interator for parsing,
1238 validation functions.
1239 (dbus_type_is_basic): Moved here from
1240 dbus-marshal-basic.c:_dbus_type_is_basic.
1241 (dbus_type_is_container): Moved here from
1242 dbus-marshal-basic.c:_dbus_type_is_container.
1244 All callers of _dbus_type_is_container and _dbus_type_is_basic
1245 updated, and include dbus-signature.h.
1247 * dbus/dbus-signature.h: New file; prototypes for the above.
1249 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
1252 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
1253 function factored out of _dbus_first_type_in_signature.
1254 (_dbus_first_type_in_signature_c_str): New function; returns first
1255 type code for a type signature character.
1257 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
1258 handle function moves.
1260 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
1262 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
1263 function; skips to next complete type in type signature.
1264 Implemented using previous skip_one_complete_type. Now
1265 skip_one_complete_type just delegates to
1266 _dbus_type_signature_next.
1268 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
1270 (_dbus_type_is_container): Ditto.
1272 * doc/dbus-specification.xml: Update introspection sample to
1273 use real type signatures.
1275 * dbus/dbus-test.h: Prototype signature test.
1277 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
1280 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
1282 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
1284 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
1285 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
1287 2005-02-21 Colin Walters <walters@verbum.org>
1289 * dbus/dbus-test-main.c (main): Take optional specific test
1292 * dbus/dbus-test.c (run_test): New function, runs a test function
1293 with no data directory.
1294 (run_data_test): Like above, but takes data directory.
1295 (dbus_internal_do_not_use_run_tests): Take
1296 specific test argument. Replace lots of cut n' paste code
1297 with run_test and run_data_test.
1299 * dbus/dbus-test.h: Update prototype for
1300 dbus_internal_do_not_use_run_tests.
1302 2005-02-20 Havoc Pennington <hp@redhat.com>
1304 Fix bugs reported by Daniel P. Berrange
1306 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
1307 (protected_change_watch): new function
1308 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
1309 (_dbus_server_add_watch): change to work like the
1310 dbus-connection.c equivalents; like those, probably kind of
1311 busted, but should at least mostly work for now
1312 (dbus_server_disconnect): drop the lock if we were already
1313 disconnected, patch from Daniel P. Berrange
1315 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
1316 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
1319 * doc/TODO: todo about unscrewing this mess
1321 2005-02-19 Colin Walters <walters@verbum.org>
1323 * glib/dbus-binding-tool-glib.c
1324 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
1326 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
1327 as errno.h and sys/stat.h.
1328 (lose): New function, prints error with
1330 (lose_gerror): Similar, but takes GError for message.
1331 (main): Add --output argument to specify output file to write to,
1332 instead of always printing to stdout. In this mode, determine
1333 timestamps on source files to see whether any are newer than the
1334 target file. If not, exit. Also convert a number of error
1335 messages to use lose (since it's shorter), and switch to using
1336 g_io_channel_shutdown.
1338 2005-02-19 Havoc Pennington <hp@redhat.com>
1340 * glib/dbus-gobject.c
1341 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
1343 * glib/dbus-glib.c: fix doxygen warnings
1345 * glib/dbus-gparser.c (parse_annotation): error if an annotation
1346 is found on an <arg>
1348 2005-02-17 Colin Walters <walters@verbum.org>
1350 * glib/dbus-gobject.h: Don't export
1351 _dbus_glib_marshal_dbus_message_to_gvalue_array.
1353 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
1354 (invoke_object_method): Handle it.
1356 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1359 2005-02-17 Colin Walters <walters@verbum.org>
1361 * bus/.cvsignore, doc/.cvsignore
1362 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
1365 2005-02-17 Colin Walters <walters@verbum.org>
1367 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
1368 Rename to DBUS_SERVICE_DBUS.
1369 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
1370 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
1371 Change the value from "org.freedesktop.Local"
1372 to "org.freedesktop.DBus.Local".
1373 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
1374 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
1375 DBUS_INTERFACE_INTROSPECTABLE.
1376 Change the value from "org.freedesktop.Introspectable"
1377 to "org.freedesktop.DBus.Introspectable".
1378 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
1379 DBUS_INTERFACE_PROPERTIES.
1380 Change the value from "org.freedesktop.Properties"
1381 to "org.freedesktop.DBus.Properties".
1382 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
1383 DBUS_INTERFACE_PEER.
1384 Change the value from "org.freedesktop.Peer"
1385 to "org.freedesktop.DBus.Peer".
1386 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
1387 DBUS_INTERFACE_LOCAL.
1388 Change the value from "org.freedesktop.Local"
1389 to "org.freedesktop.DBus.Local".
1391 All other users of those constants have been changed.
1393 * bus/driver.c (bus_driver_handle_introspect): Use constants.
1395 * glib/dbus-gobject.c (handle_introspect): Use constants.
1397 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
1399 2005-02-17 Colin Walters <walters@verbum.org>
1401 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
1402 (parse_node, parse_interface, parse_method, parse_signal)
1403 (parse_property, parse_annotation): Lose if we're currently in an
1405 (parse_annotation): New function.
1406 (parser_start_element, parser_end_element): Handle annotation.
1407 (parse_method, parse_interface): Remove support for c_name attribute,
1408 switch to annotations.
1410 * glib/dbus-gidl.h (interface_info_get_binding_names)
1411 (method_info_get_binding_names)
1412 (interface_info_get_binding_name, method_info_get_binding_name)
1413 (interface_info_set_binding_name, method_info_set_binding_name):
1415 (interface_info_get_annotations, method_info_get_annotations)
1416 (interface_info_get_annotation, method_info_get_annotation)
1417 (interface_info_add_annotation, method_info_add_annotation):
1420 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
1422 (struct MethodInfo): Ditto.
1423 Straightfoward conversion of binding methods into annotation methods
1426 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
1428 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
1430 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
1431 Use new annotation API.
1433 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
1436 * doc/dbus-specification.xml: Discuss introspection annotations,
1437 include list of well-known annotations.
1439 * test/glib/test-service-glib.xml: Make validate against new DTD.
1441 2005-02-17 Colin Walters <walters@verbum.org>
1443 This patch is based on initial work from
1444 Paul Kuliniewicz <kuliniew@purdue.edu>.
1446 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
1447 initialization of GValue from dbus type to here.
1448 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
1449 for the "glib-genmarshal" program from a DBus type.
1450 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
1451 into the C name for it we use in the glib bindings.
1452 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
1453 glib C type (not GValue).
1454 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
1456 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
1457 from dbus-gobject.c.
1459 * glib/dbus-gutils.h: Prototype it.
1461 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
1462 (marshal_dbus_message_to_g_marshaller): Use new shared function
1463 dbus_glib_marshal_dbus_message_to_gvalue_array.
1465 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
1466 Will be changed once we have annotations.
1468 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
1469 GStaticRWLock. Callers updated.
1470 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
1471 (string_table_next): New function for iterating over zero-terminated
1473 (string_table_lookup): New function; retrieves specific entry in
1475 (get_method_data): New function; look up method data in object data chunk.
1476 (object_error_domain_prefix_from_object_info)
1477 (object_error_code_from_object_info): New functions, but not implemented yet.
1478 (method_interface_from_object_info): New function; retrieve interface name.
1479 (method_name_from_object_info): New function; retrieve method name.
1480 (method_arg_info_from_object_info): New function; retrieve argument data.
1481 (arg_iterate): New function; iterates over serialized argument data.
1482 (method_dir_signature_from_object_info): New function; returns a
1483 GString holding type signature for arguments for just one
1484 direction (input or output).
1485 (method_input_signature_from_object_info)
1486 (method_output_signature_from_object_info): New functions.
1487 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
1488 converts dbus message arguments into a GValue array. Used for both
1489 signal handling and method invocation.
1490 (struct DBusGlibWriteIterfaceData): New utility structure.
1491 (write_interface): New function; generate introspection XML for
1493 (introspect_interfaces): New function; gathers all interface->methods,
1494 generates introspection XML for them.
1495 (handle_introspect): Invoke introspect_interfaces.
1496 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
1497 (lookup_object_and_method): New function; examines an incoming message
1498 and attempts to match it up (via interface, method name, and argument
1499 signature) with a known object and method.
1500 (gerror_domaincode_to_dbus_error_name): New function; converts a
1501 GError domain and code into a DBus error name. Needs GError data
1502 added to object introspection to work well.
1503 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
1505 (invoke_object_method): New function to invoke an object method
1506 looked up via lookup_object_and_method. Parses the incoming
1507 message, turns it into a GValue array, then invokes the marshaller
1508 specified in the DBusGMethodInfo. Creates a new message with
1509 either return values or error message as appropriate.
1510 (gobject_message_function): Invoke lookup_object_and_method and
1511 invoke_object_method.
1513 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
1514 (enum DBusBindingOutputMode): New enum for binding output modes.
1515 (pretty_print): Print binding names.
1516 (dbus_binding_tool_error_quark): GError bits.
1517 (version): Fix typo.
1518 (main): Create GIOChannel for output. Parse new --mode argument,
1519 possible values are "pretty-print", "glib-server", "glib-client".
1520 Use mode to invoke appropriate function.
1522 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
1524 * glib/dbus-glib-tool.h: New header, just includes GError bits
1527 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
1528 maps binding style to name.
1529 (struct MethodInfo): Ditto.
1530 (get_hash_keys, get_hash_key): Utility function, returns keys for
1532 (interface_info_new, method_info_new): Initialize bindings.
1533 (interface_info_unref, method_info_unref): Destroy bindings.
1534 (method_info_get_binding_names, method_info_get_binding_name)
1535 (interface_info_get_binding_names, interface_info_get_binding_name):
1536 Functions for retrieving binding names.
1537 (method_info_set_binding_name, interface_info_set_binding_name):
1538 Functions for setting binding names.
1540 * glib/dbus-binding-tool-glib.h: New file, has prototypes
1541 for glib binding generation.
1543 * glib/dbus-binding-tool-glib.c: New file, implements server-side
1544 and client-side glib glue generation.
1546 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
1547 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
1550 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
1551 of using GClosureMarshal directly.
1552 (struct DBusGObjectInfo): Add n_infos member.
1554 * test/glib/test-service-glib.xml: New file; contains introspection data
1555 for MyTestObject used in test-service-glib.c.
1557 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
1558 (my_object_do_nothing, my_object_increment, my_object_throw_error)
1559 (my_object_uppercase, my_object_many_args): New test methods.
1560 (main): Use dbus_g_object_class_install_info to include generated object
1563 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
1564 as well as client-side bindings.
1566 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
1567 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
1568 using both the dbus_gproxy stuff directly as well as the generated bindings.
1570 2005-02-15 Havoc Pennington <hp@redhat.com>
1572 * dbus/dbus-connection.c (dbus_connection_dispatch): always
1573 complete a pending call, don't run filters first.
1575 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
1576 dbus_pending_call_steal_reply
1578 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
1579 _dbus_connection_block_pending_call
1580 (dbus_pending_call_get_reply): change to steal_reply and return a
1583 * dbus/dbus-connection.c
1584 (dbus_connection_send_with_reply_and_block): port to work in terms
1586 (_dbus_connection_block_pending_call): replace block_for_reply
1589 2005-02-14 Havoc Pennington <hp@redhat.com>
1591 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
1592 properly handle looking up group information by name; fix
1595 2005-02-13 Havoc Pennington <hp@redhat.com>
1597 * dbus/dbus-connection.c (dbus_connection_return_message)
1598 (dbus_connection_borrow_message): hold dispatch lock while message
1600 (_dbus_connection_block_for_reply): hold dispatch lock while we
1601 block for the reply, so nobody steals our reply
1602 (dbus_connection_pop_message): hold the dispatch lock while we
1605 2005-02-13 Havoc Pennington <hp@redhat.com>
1607 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
1608 (_dbus_connection_release_dispatch)
1609 (_dbus_connection_acquire_io_path)
1610 (_dbus_connection_release_io_path): make the mutex and condvar
1611 control access to the "acquired" flag. Drop the connection lock
1612 while waiting on the condvar. Hopefully these are baby steps in
1613 roughly the right direction.
1615 2005-02-13 Havoc Pennington <hp@redhat.com>
1617 * dbus/dbus-connection.c: use separate mutexes for the condition
1618 variables; this is some kind of baseline for sanity, but the
1619 condition variables still aren't used correctly afaict
1621 2005-02-13 Havoc Pennington <hp@redhat.com>
1623 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1626 * dbus/dbus-connection.c
1627 (_dbus_connection_detach_pending_call_unlocked): add this
1629 Initial semi-correct pass through to fix thread locking; there are
1630 still some issues with the condition variable paths I'm pretty
1633 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
1636 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
1637 rename to add _unlocked
1638 (struct DBusConnection): move "dispatch_acquired" and
1639 "io_path_acquired" to use only one bit each.
1640 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
1641 (dbus_connection_set_watch_functions): hacky fix to reentrancy
1642 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
1643 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
1644 (_dbus_connection_remove_timeout)
1645 (_dbus_connection_toggle_timeout): drop lock when calling out to
1646 user functions; done in a hacky/bad way.
1647 (_dbus_connection_send_and_unlock): add a missing unlock
1648 (_dbus_connection_block_for_reply): add a missing unlock
1650 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1651 drop lock in a hacky probably unsafe way to call out to user
1654 2005-02-12 Havoc Pennington <hp@redhat.com>
1656 * tools/dbus-tree-view.c (info_set_func_text): display more
1659 * bus/driver.c (bus_driver_handle_list_services): list the bus
1662 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
1664 * glib/dbus-gidl.c (signal_info_get_n_args): new function
1665 (method_info_get_n_args): new function
1667 2005-02-12 Havoc Pennington <hp@redhat.com>
1669 * bus/driver.c (bus_driver_handle_introspect): add introspection
1672 2005-02-12 Havoc Pennington <hp@redhat.com>
1674 * bus/driver.c: put the signature of each bus driver method in the
1675 table of handlers and check it on incoming calls; this isn't
1676 really useful, but going to add introspect support in a minute.
1678 2005-02-11 Joe Shaw <joeshaw@novell.com>
1680 * mono/Connection.cs: The unpredictability of finalizers in mono
1681 prevents us from deterministically disconnecting the filters from
1682 the Service class's finalizer, so move tracking of filters and
1683 matches here. Add API for that.
1685 * mono/Service.cs: Remove the code, add code which calls the
1686 methods now on the Connection class.
1688 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
1690 * python/dbus.py (class Sender): added to support dbus signals better
1691 (Bus::add_signal_receiver): added expand_args parameter which defaults
1692 to True. When expand args is True the signal handler will pass the
1693 message arguments as parameters to the signal handler. If False
1694 revert to previous behavior where the signal handler must get the
1695 argument list from the message. This is to help port applications
1696 like HAL that have a tendancy to send variable length argument lists.
1697 self._match_rule_to_receivers is now a dict of dicts.
1698 (Bus::remove_signal_receiver): pop handler off the dict intead of
1699 removing it from a list
1700 (Bus::_signal_func): change signal handlers so that interface,
1701 signal_name, service, path and message are packed into a Sender
1702 object and that is passed to the handler. If expand_args is True
1703 extract the args list from the message and append it to the parameter
1706 * python/dbus_bindings.pyx.in (class Signature): added to support
1708 (MessageIter::__init__): changed iteration limit to match D-BUS
1709 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
1710 STRUCT and VARIENT type support
1711 (MessageIter::python_value_to_dbus_sig): made recursive to support
1713 (MessageIter::append*): added Signature, dict, tuple
1716 * python/examples/example-client.py: added examples of getting tuples
1719 * python/examples/example-service.py: added examples of sending tuples
1722 * python/examples/example-signal-recipient.py: Fixed to handle new
1723 signal callback format
1725 2005-02-10 Havoc Pennington <hp@redhat.com>
1727 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
1728 (call dbus_g_proxy_add_signal)
1730 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
1732 (_dbus_server_new_for_domain_socket): escape the path
1734 * dbus/dbus-address.c (dbus_address_escape_value): new
1735 (dbus_address_unescape_value): new
1736 (dbus_parse_address): unescape values
1738 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
1740 * doc/dbus-specification.xml: explain how to escape values in
1743 2005-02-10 Havoc Pennington <hp@redhat.com>
1745 * dbus/dbus-message-factory.c (generate_special): modify test to
1746 avoid using a non-basic dict key
1748 * dbus/dbus-marshal-validate-util.c: add test for the below
1750 * doc/dbus-specification.xml: require that dict keys are a basic
1753 * dbus/dbus-marshal-validate.c
1754 (_dbus_validate_signature_with_reason): require that dict key is a
1757 2005-02-10 Havoc Pennington <hp@redhat.com>
1759 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1760 change to be _and_unlock instead of _unlocked
1762 * dbus/dbus-connection.c
1763 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
1764 have no_update so we can find this bug quickly in future
1766 2005-02-10 Havoc Pennington <hp@redhat.com>
1768 * dbus/dbus-message-util.c (verify_test_message): tests for string
1771 * dbus/dbus-message.c (dbus_message_append_args_valist): add
1772 support for arrays of string/signature/path
1774 2005-02-10 Joe Shaw <joeshaw@novell.com>
1776 * dbus/dbus-connection.c
1777 (_dbus_connection_queue_received_message_link,
1778 _dbus_connection_message_sent): Add the path to
1780 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
1781 _dbus_connection_send_preallocated_unlocked(), updated the
1782 dispatch status, and unlocks. Fixes a bug where certain
1783 situations (like a broken pipe) could cause a Disconnect message
1784 to not be sent, tricking the bus into thinking a service was still
1785 there when the process had quit.
1786 (_dbus_connection_send_preallocated): Call
1787 _dbus_connection_send_preallocated_and_unlock().
1788 (_dbus_connection_send_and_unlock): Added. Calls
1789 _dbus_connection_send_preallocated_and_unlock().
1790 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
1791 (dbus_connection_send_with_reply): Update the dispatch status and
1794 * mono/Service.cs (~Service): Added. Removes the filter so that
1795 we don't get unmanaged code calling back into a GCed delegate.
1796 (RemoveFilter); Added.
1798 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
1800 * dbus/dbus-message.c (dbus_message_iter_open_container):
1801 - Removed check for iterator type being an array because
1802 get_arg_type does not work with writer iterators
1803 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
1805 2005-02-07 Havoc Pennington <hp@redhat.com>
1807 * doc/dbus-specification.xml: some more language cleanups; add
1808 stuff about how to deal with invalid protocol and extension
1809 points; add _ to allowed chars in auth commands; add EXTENSION_
1812 2005-02-06 Havoc Pennington <hp@redhat.com>
1814 * s/expected/required/ in a couple places for clarity
1816 2005-02-07 Colin Walters <walters@verbum.org>
1818 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
1819 sender or proposed_recipient.
1821 2005-02-06 Havoc Pennington <hp@redhat.com>
1823 * dbus/dbus-message-factory.c (generate_special): more tests
1825 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
1826 array length that exceeds the maximum
1828 2005-02-05 Havoc Pennington <hp@redhat.com>
1830 * dbus/dbus-message-factory.c (generate_special): more test cases,
1833 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
1834 reason why a signature was invalid
1836 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
1837 skip the length of the string before we look at it in validation
1839 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
1842 * dbus/dbus-message.c (_dbus_message_loader_new): default
1843 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
1845 2005-02-05 Havoc Pennington <hp@redhat.com>
1847 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
1848 if the signature of a variant was empty
1849 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
1850 struct with no element type)
1852 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
1853 mangled messages to break things
1855 2005-02-04 Havoc Pennington <hp@redhat.com>
1857 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
1858 g_quark_try_string() so it actually can return 0
1859 (dbus_g_proxy_connect_signal): ditto
1861 2005-02-04 Havoc Pennington <hp@redhat.com>
1863 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
1865 (tristring_from_message): assert cleanly on null path/interface
1866 (should not be possible though I decided later)
1867 (dbus_g_proxy_dispose): move proxy manager unregistration here
1868 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
1869 g_return_if_fail() checks
1871 2005-02-04 Havoc Pennington <hp@redhat.com>
1873 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
1875 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
1876 (with some minor changes)
1878 * doc/dbus-specification.xml: add deprecated attribute to
1879 introspection format
1881 2005-01-31 Havoc Pennington <hp@redhat.com>
1883 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
1884 think it's sort of right
1886 2005-01-30 Havoc Pennington <hp@redhat.com>
1888 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
1890 2005-01-30 Havoc Pennington <hp@redhat.com>
1892 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
1894 * autogen.sh: change to autotools 1.9
1896 * glib/dbus-gproxy.c: completely change how signals work
1897 (dbus_g_proxy_add_signal): new function to specify signature of a
1899 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
1900 and g_warning if the incoming message has the wrong signature.
1902 2005-01-30 Havoc Pennington <hp@redhat.com>
1904 * tools/dbus-names-model.c (have_names_notify): fix this
1906 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
1907 up the string array handling a bit
1909 2005-01-30 Havoc Pennington <hp@redhat.com>
1911 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
1912 (dbus_g_pending_call_cancel): new function
1914 * dbus/dbus-glib.h: move GType decls for connection/message here;
1915 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
1916 here, just kind of rationalizing how we handle all that
1918 * tools/dbus-names-model.c: new file for a tree model listing the
1921 * tools/dbus-tree-view.c (model_new): use proper typing on the
1924 2005-01-30 Havoc Pennington <hp@redhat.com>
1926 * glib/dbus-gmain.c: add a custom GSource back that just checks
1927 whether the message queue has anything in it; otherwise, there are
1928 cases where we won't see messages in the queue since there was no
1929 IO visible to the glib main loop
1931 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
1932 increase default message timeout to 25 seconds
1934 2005-01-30 Havoc Pennington <hp@redhat.com>
1936 * test/glib/test-profile.c (no_bus_stop_server): remove the
1937 warning about the g_warning that I just fixed
1939 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
1940 custom source, seems to be a lot easier to understand and work
1943 2005-01-30 Havoc Pennington <hp@redhat.com>
1945 I think this main loop thing is conceptually broken, but here are
1946 some band aids. I'll maybe rewrite it in a minute.
1948 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
1949 custom GSource, so don't pass it in; confusing
1950 (gsource_server_finalize, gsource_connection_finalize): add
1951 finalize handlers that remove all the watches.
1953 2005-01-30 Havoc Pennington <hp@redhat.com>
1955 * glib/dbus-gobject.c (introspect_properties): fix the XML
1958 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
1959 which effectively detects the use of freed messages
1961 * glib/dbus-gobject.c (handle_introspect): modify and return the
1962 reply message instead of the incoming message
1964 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
1965 gee, maybe it should SEND THE XML instead of just making a string
1966 and freeing it again ;-)
1968 * tools/dbus-print-message.c (print_message): improve printing of
1971 * configure.in: add debug-glib.service to the output
1973 2005-01-30 Havoc Pennington <hp@redhat.com>
1975 dbus-viewer introspected and displayed the bus driver
1977 * dbus/dbus-object-tree.c
1978 (object_tree_test_iteration): add tests for a handler registered on "/"
1980 * dbus/dbus-object-tree.c
1981 (_dbus_decompose_path): fix to handle path "/" properly
1982 (run_decompose_tests): add tests for path decomposition
1984 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
1987 * glib/dbus-gobject.c (handle_introspect): fix quotes
1989 * test/glib/run-test.sh: support launching the bus, then running
1992 * test/glib/test-service-glib.c (main): put in a trivial gobject
1993 subclass and register it on the connection
1995 * bus/driver.c (bus_driver_handle_introspect): implement
1996 introspection of the bus driver service
1998 * dbus/dbus-protocol.h: add #defines for the XML namespace,
1999 identifiers, doctype decl
2001 * bus/driver.c (bus_driver_handle_get_service_owner): handle
2002 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
2003 returning the service unchanged.
2004 (bus_driver_handle_message): remove old check for reply_serial in
2005 method calls, now the message type deals with that
2006 (bus_driver_handle_message): handle NULL interface
2008 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
2010 * glib/dbus-gloader-expat.c (description_load_from_string): allow
2013 * tools/dbus-viewer.c: add support for introspecting a service on
2016 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
2017 (dbus_g_pending_call_unref): add
2019 2005-01-29 Havoc Pennington <hp@redhat.com>
2021 * tools/dbus-tree-view.c: add support for displaying properties.
2022 (run dbus-viewer with an introspect xml file as arg, then resize
2023 the window so the tree elements show up, not sure what that is)
2025 * glib/dbus-gobject.c (handle_introspect): return
2026 org.freedesktop.Properties and org.freedesktop.Introspectable
2027 interfaces when we are introspected.
2029 * doc/dbus-specification.xml: allow empty interface name when
2032 2005-01-29 Havoc Pennington <hp@redhat.com>
2034 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
2035 though it uses glib, it could be extended for any binding in
2038 * glib/dbus-gobject.c (gobject_message_function): change to the
2039 new way properties work
2041 * dbus/dbus-protocol.h: add the new interfaces
2043 * doc/dbus-specification.xml: document the introspection format,
2044 Introspectable interface, and add an org.freedesktop.Properties
2047 * glib/dbus-gparser.c: add support for a <property> element
2049 * glib/dbus-gidl.c: add PropertyInfo
2051 * glib/dbus-gobject.c (handle_introspect): put the outermost
2052 <node> outside the signal and property descriptions.
2053 (introspect_properties): export properties as <property> rather
2054 than as method calls
2056 2005-01-28 Havoc Pennington <hp@redhat.com>
2058 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
2059 related to authentication protocol
2061 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
2063 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
2064 - BUS_ACTIVATION -> BUS_STARTER
2065 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
2066 - class MessageIter (__init__): Added recursion checking
2067 so we throw a nice error instead of just disconnecting from the
2069 (get): Added arg_type parameter for recursion.
2070 Removed the nil type
2071 Added signiture type placeholder (not implemented)
2072 Added struct type placeholder (not implemented)
2073 Added varient type placeholder (not implemented)
2074 Commented out dict type for now
2075 (get_element_type): renamed from get_array_type
2076 (get_*): changed to use the dbus_message_iter_get_basic API
2077 (get_*_array): removed in favor of recursive get_array method
2078 (get_array): new recursive method which calls get to marshal
2079 the elements of the array
2080 (value_to_dbus_sig): New method returns the corrasponding
2081 dbus signiture to a python value
2082 (append): Comment out dict handling for now
2083 Handle lists with the new recursive API
2084 Comment out None handling for now
2085 (append_nil): removed
2086 (append_*): changed to use dbus_message_iter_append_basic API
2087 (append_*_array): removed in favor of recursive append_array
2089 (__str__): Make it easier to print out recursive iterators
2091 - class Message (__str__): moved type inspection to the
2092 MessageIter class' __str__ method
2093 (get_iter): Added an append parameter wich defaults to False
2094 If True use the new API's to create an append iterator
2096 * python/dbus.py: Update to use new bindings API
2097 - TYPE_ACTIVATION -> TYPE_STARTER
2098 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
2099 - class ActivationBus -> class StarterBus
2100 - class RemoteObject (__call__): get an append iterator
2101 - (_dispatch_dbus_method_call): get an append iterator
2102 - class Object (emit_signal): get an append iterator
2104 * python/examples/: Fixed up the examples to work with the new API
2106 2005-01-28 Joe Shaw <joeshaw@novell.com>
2108 * configure.in: Bump version up to 0.30.
2110 * HACKING: Add a release item to bump the version number up after
2113 2005-01-28 Havoc Pennington <hp@redhat.com>
2115 * doc/dbus-specification.xml: update to describe 16-bit types and
2118 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
2121 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
2124 * dbus/dbus-marshal-recursive.c: implement
2126 2005-01-27 Havoc Pennington <hp@redhat.com>
2128 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
2130 * configure.in: find the right type for 16 and 32 bit ints as well
2133 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
2134 the 16-bit types so people don't have to stuff them in 32-bit or
2137 2005-01-27 Havoc Pennington <hp@redhat.com>
2139 * dbus/dbus-message.c: byteswap the message if you init an
2140 iterator to read/write from it
2142 * dbus/dbus-marshal-byteswap.c: new file implementing
2143 _dbus_marshal_byteswap()
2145 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
2147 2005-01-26 Havoc Pennington <hp@redhat.com>
2149 * dbus/dbus-marshal-validate-util.c: break this out (and fix
2150 build, apparently - nobody noticed?)
2152 2005-01-26 Havoc Pennington <hp@redhat.com>
2154 * dbus/dbus-marshal-recursive.h: remove todo comment
2156 2005-01-25 Joe Shaw <joeshaw@novell.com>
2158 * Land the mono binding changes to conform to the new APIs.
2160 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
2161 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
2163 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
2164 type code as a string.
2165 (InitAppending): Rename dbus_message_append_iter_init() to
2166 dbus_message_iter_init_append().
2168 * mono/BusDriver.cs: Rename ServiceEventHandler to
2169 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
2170 Rename ServiceOwnerChanged to NameOwnerChanged.
2172 * mono/Connection.cs: Rename BaseService to UniqueName, and the
2175 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
2177 * mono/Service.cs: Rename Exists to HasOwner, internally rename
2178 dbus_bus_acquire_service() to dbus_bus_request_name().
2180 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
2181 of Type.UnderlyingSystemType to get the correct element type for
2183 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
2184 dbus_message_get_{element|arg}_type() instead of
2185 dbus_message_iter_init_array_iterator().
2186 (Append): Replace dbus_message_iter_append_array() with
2187 dbus_message_iter_open_container() and
2188 dbus_message_iter_close_container().
2190 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
2191 types have been removed.
2193 * mono/DBusType/*.cs: Replace calls of
2194 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
2195 but specify the type in the DllImport extern declaration. Ditto
2196 for dbus_message_iter_append_[type]() ->
2197 dbus_message_iter_append_basic().
2199 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
2200 NameOwnerChangedHandler.
2202 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
2204 * python/dbus_bindings.pyx.in: Rename of methods and bindings
2205 - get_base_service -> get_unique_name
2206 - bus_get_base_service -> bus_get_unique_name
2207 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
2208 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
2209 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
2210 - bus_activate_service -> bus_start_service_by_name
2211 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
2212 - bus_acquire_service -> bus_request_name
2213 - dbus_bus_acquire_service -> dbus_bus_request_name
2214 - bus_service_exists -> bus_name_has_owner
2215 - dbus_bus_service_exists -> dbus_bus_name_has_owner
2217 * python/dbus.py: Rename of methods
2218 - activate_service -> start_service_by_name
2219 - bus_acquire_service -> bus_request_name
2220 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
2221 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
2224 2005-01-24 Joe Shaw <joeshaw@novell.com>
2226 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
2227 signature for the method that can't be found.
2229 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
2230 the message has any arguments, we need to call
2231 _dbus_type_reader_get_current_type(), not
2232 _dbus_type_reader_has_next().
2234 2005-01-24 Havoc Pennington <hp@redhat.com>
2236 * dbus/dbus-message-factory.c: more testing of message validation
2238 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
2241 2005-01-23 Havoc Pennington <hp@redhat.com>
2243 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
2244 get this all working, not many tests in the framework yet though
2246 2005-01-22 Havoc Pennington <hp@redhat.com>
2248 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
2249 tutorial, based on work from David Wheeler.
2251 2005-01-21 Havoc Pennington <hp@redhat.com>
2253 * dbus/dbus-bus.c: add more return_if_fail checks
2255 * dbus/dbus-message.c (load_message): have the "no validation"
2256 mode (have to edit the code to toggle the mode for now though)
2258 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
2259 skips all validation; I want to use this at least for benchmark
2260 baseline, I'm not sure if it should be a publicly-available switch.
2262 2005-01-21 Havoc Pennington <hp@redhat.com>
2264 * glib/dbus-gmain.c: don't put the GLib bindings in the same
2265 toplevel doxygen group as the low-level API stuff
2267 * dbus/dbus.h: note that libdbus is the low-level API
2269 2005-01-20 Havoc Pennington <hp@redhat.com>
2271 * update-dbus-docs.sh: script to update docs on the web site, only
2272 works for me though. neener.
2274 2005-01-20 Havoc Pennington <hp@redhat.com>
2276 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
2277 code can reveal bugs in it
2279 2005-01-20 Havoc Pennington <hp@redhat.com>
2281 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
2282 select() version, patches from Tor Lillqvist
2284 2005-01-20 Havoc Pennington <hp@redhat.com>
2286 * doc/dbus-tutorial.xml: replace > with >
2288 * bus/services.c (bus_registry_acquire_service): validate the name
2289 and return a better error if it's no good.
2291 * doc/dbus-specification.xml: note NO_AUTO_START change
2293 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
2294 from AUTO_START, we're toggling the default
2296 * bus/dispatch.c: adapt the tests to change of auto-start default
2298 2005-01-18 Havoc Pennington <hp@redhat.com>
2300 * rename dbus-daemon-1 to dbus-daemon throughout
2302 2005-01-18 Havoc Pennington <hp@redhat.com>
2304 * Throughout, grand renaming to strip out the use of "service",
2305 just say "name" instead (or "bus name" when ambiguous). Did not
2306 change the internal code of the message bus itself, only the
2307 programmer-facing API and messages.
2309 * doc/dbus-specification.xml: further update the message bus section
2311 * bus/config-parser.c (all_are_equiv): fix bug using freed string
2314 2005-01-17 Havoc Pennington <hp@redhat.com>
2316 * dbus/dbus-types.h: remove 16-bit types since we don't use them
2319 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
2320 "invalid name character" not only non-ASCII
2322 * doc/dbus-specification.xml: further update spec, message bus
2323 parts are still out-of-date but the marshaling etc. stuff is now
2326 2005-01-17 Havoc Pennington <hp@redhat.com>
2328 * doc/dbus-specification.xml: partially update spec
2330 2005-01-17 Havoc Pennington <hp@redhat.com>
2332 * Throughout, align variant bodies according to the contained
2333 type, rather than always to 8. Should save a fair bit of space in
2336 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
2337 fix handling of case where p == end
2339 * doc/TODO: remove the dbus_bool_t item and variant alignment items
2341 2005-01-17 Havoc Pennington <hp@redhat.com>
2343 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
2345 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
2346 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
2347 are marshaling/unmarshaling a boolean.
2349 2005-01-16 Havoc Pennington <hp@redhat.com>
2351 This is about it on what can be disabled/deleted from libdbus
2352 easily, back below 150K anyhow. Deeper cuts are more work than
2353 just turning the code off as I've done here.
2355 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
2356 signed int convenience funcs
2358 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
2361 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
2362 things out of libdbus
2364 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
2366 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
2367 tests-enabled-only, though it should probably be deleted)
2369 * dbus/dbus-message-util.c: same stuff
2371 * dbus/dbus-auth-util.c: same stuff
2373 2005-01-16 Havoc Pennington <hp@redhat.com>
2375 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
2377 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
2378 way for stripping down dbus-userdb.c stuff included in libdbus.
2379 Rename _dbus_parse_uid for consistency.
2381 2005-01-16 Havoc Pennington <hp@redhat.com>
2383 * dbus/dbus-internals.c (_dbus_real_assert): print the function
2384 name the assertion failed in
2386 * dbus/dbus-internals.h (_dbus_return_if_fail)
2387 (_dbus_return_val_if_fail): assert that the name of the function
2388 containing the check doesn't start with '_', since we only want to
2389 use checks on public functions
2391 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
2392 checks to assertions
2394 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
2395 change checks to asserts for private function
2397 * dbus/dbus-message.c (_dbus_message_set_serial): checks
2398 to asserts for private function
2400 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
2401 broken assertion that was breaking make check
2402 (_dbus_type_reader_array_is_empty): remove this rather than fix
2403 it, was only used in assertions
2405 2005-01-16 Havoc Pennington <hp@redhat.com>
2407 * test/unused-code-gc.py: hacky script to find code that's used
2408 only by the bus (not libdbus) or used only by tests or not used at
2409 all. It has some false alarms, but looks like we can clean up a
2410 lot of size from libdbus.
2412 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
2413 dbus/Makefile.am: initially move 10K of binary size out of libdbus
2415 2005-01-16 Havoc Pennington <hp@redhat.com>
2417 * Add and fix docs according to Doxygen warnings throughout
2420 * dbus/dbus-marshal-recursive.c
2421 (_dbus_type_reader_array_is_empty): change this to just call
2422 array_reader_get_array_len() and make it static
2424 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
2426 (dbus_message_iter_init_append): rename from append_iter_init
2428 * dbus/dbus-marshal-recursive.c
2429 (_dbus_type_reader_get_element_type): rename from
2430 _dbus_type_reader_get_array_type
2432 2005-01-15 Havoc Pennington <hp@redhat.com>
2434 * test/glib/test-profile.c (with_bus_server_filter): fix crash
2436 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
2437 when DBUS_DISABLE_ASSERT
2438 (_dbus_marshal_set_basic): be sure we align for the string length
2440 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
2443 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
2444 inline macro version
2445 (_dbus_string_set_byte): provide inline macro version
2447 2005-01-15 Havoc Pennington <hp@redhat.com>
2449 * Land the new message args API and type system.
2451 This patch is huge, but the public API change is not
2452 really large. The set of D-BUS types has changed somewhat,
2453 and the arg "getters" are more geared toward language bindings;
2454 they don't make a copy, etc.
2456 There are also some known issues. See these emails for details
2458 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
2459 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
2461 * dbus/dbus-marshal-*: all the new stuff
2463 * dbus/dbus-message.c: basically rewritten
2465 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
2466 freed blocks to be all non-nul bytes so using freed memory is less
2467 likely to work right
2469 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
2470 DBUS_FAIL_MALLOC=N environment variable, so you can do
2471 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
2472 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
2475 * qt/message.cpp: port to the new message args API
2476 (operator<<): use str.utf8() rather than str.unicode()
2477 (pretty sure this is right from the Qt docs?)
2479 * glib/dbus-gvalue.c: port to the new message args API
2481 * bus/dispatch.c, bus/driver.c: port to the new message args API
2483 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
2484 "locked" flag to TRUE and align_offset to 0; I guess we never
2485 looked at these anyhow, but seems cleaner.
2487 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
2488 move allocation padding macro to this header; use it to implement
2489 (_DBUS_STRING_STATIC): ability to declare a static string.
2491 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
2492 change to return TRUE if the interface is not set.
2494 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
2495 to dbus-marshal-validate.[hc]
2497 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
2500 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
2501 to dbus-marshal-*.[hc]
2503 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
2504 function here from dbus-marshal.c
2506 2005-01-12 Joe Shaw <joeshaw@novell.com>
2508 * NEWS: Update for 0.23.
2510 * configure.in: Release 0.23.
2512 2005-01-12 Joe Shaw <joeshaw@novell.com>
2514 * mono/Makefile.am, mono/example/Makefile.am: Always build the
2515 dbus DLL with --debug. Clean up after the .mdb files this leaves
2518 * mono/doc/Makefile.am: Need to uninstall the docs on "make
2521 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
2522 is an enum, get the enum's underlying type. Another mono
2525 2005-01-11 Joe Shaw <joeshaw@novell.com>
2527 Patch from Sjoerd Simons <sjoerd@luon.net>
2529 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
2530 DESTDIR. It breaks stuff.
2532 2005-01-11 Joe Shaw <joeshaw@novell.com>
2534 Patch from Tambet Ingo <tambet@ximian.com>
2536 * mono/DBusType/Array.cs (Get): Get the underlying element type by
2537 calling type.GetElementType(). The code previously depended on
2538 broken Mono behavior, which was fixed in Mono 1.1.3.
2540 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
2541 Activator.CreateInstance() so that the class's constructor is
2542 called with the right parameters.
2544 2005-01-11 Joe Shaw <joeshaw@novell.com>
2546 Patch from Timo Teräs <ext-timo.teras@nokia.com>
2548 * dbus/dbus-connection.c
2549 (_dbus_connection_queue_received_message_link): Call
2550 _dbus_connection_remove_timeout() instead of the _locked()
2551 variant, since it's always called from
2552 _dbus_connection_handle_watch(), which handles the locking.
2553 Removed the _locked() variant since it's no longer used.
2555 2005-01-03 Havoc Pennington <hp@redhat.com>
2557 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
2560 2004-12-26 Havoc Pennington <hp@redhat.com>
2562 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
2564 2005-01-03 Havoc Pennington <hp@redhat.com>
2566 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
2569 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
2571 2005-01-02 Havoc Pennington <hp@redhat.com>
2573 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
2575 2005-01-01 Havoc Pennington <hp@redhat.com>
2577 * configure.in: add -Wfloat-equal
2579 2005-01-01 Havoc Pennington <hp@redhat.com>
2581 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
2582 for a variety of reasons '==' doesn't do this.
2584 2004-12-31 Havoc Pennington <hp@redhat.com>
2586 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
2587 I keep wishing I had
2589 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2591 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
2593 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
2595 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
2596 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
2597 dbus-protocol.h. Because they are defines and not enums they are not
2600 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
2602 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
2603 dbus_bus_activate_service
2605 * python/dbus.py (Bus.activate_service): activate a service on the
2608 2004-12-24 Havoc Pennington <hp@redhat.com>
2610 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
2611 file format has also changed and I haven't adapted to that yet
2613 * Makefile.am: load .gcno files from latest gcc
2615 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
2616 * Patch from Rob Taylor <robtaylor@fastmail.fm>
2618 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
2621 * python/dbus.py (get_unix_user): Added binding to
2622 call dbus_bindings.bus_get_unix_user
2624 * python/extract.py: Modified the proto_pat regex to
2625 handle unsigned long
2627 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
2629 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
2630 better POSIX compliance.
2632 2004-12-19 Havoc Pennington <hp@redhat.com>
2634 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
2635 (_dbus_string_insert_8_aligned): new functions
2637 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
2639 2004-12-18 Havoc Pennington <hp@redhat.com>
2641 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
2644 * dbus/dbus-message.c: fix a comment, and add a still-unused
2645 not-implemented function
2647 * dbus/dbus-marshal.h: fix comment
2649 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
2651 2004-12-17 Joe Shaw <joeshaw@novell.com>
2653 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
2654 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
2655 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
2656 Type.UnderlyingSystemType to get the actual system type
2657 underneath. This code previously depended on the broken Mono
2658 behavior, which was fixed in 1.1.3.
2660 2004-11-27 Havoc Pennington <hp@redhat.com>
2662 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
2664 (_dbus_string_get_const_data): inline when asserts are disabled
2666 * dbus/dbus-message.c: record the _dbus_current_generation of
2667 creation so we can complain if dbus_shutdown() is used improperly.
2668 Do this only if checks are enabled.
2670 * dbus/dbus-connection.c: ditto
2672 2004-11-26 Havoc Pennington <hp@redhat.com>
2674 * test/glib/test-profile.c: add with_bus mode to profile echoes
2675 that go through the bus.
2677 * test/glib/run-test.sh: add ability to run test-profile
2679 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
2682 2004-11-26 Havoc Pennington <hp@redhat.com>
2684 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
2685 thing was implemented
2687 2004-11-26 Havoc Pennington <hp@redhat.com>
2689 * test/glib/test-profile.c: tweak a bit, add support for some
2690 made-up minimal malloc overhead with plain sockets, since in
2691 real life some sort of buffers are unavoidable thus we could
2692 count them in the theoretical best case
2694 2004-11-26 Havoc Pennington <hp@redhat.com>
2696 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
2697 where I was trying to cache one too many messages
2699 2004-11-26 Havoc Pennington <hp@redhat.com>
2701 * dbus/dbus-message.c: reimplement message cache as an array which
2702 makes the cache about twice as fast and saves maybe 1.5% overall
2704 2004-11-26 Havoc Pennington <hp@redhat.com>
2706 * dbus/dbus-threads.c (init_global_locks): forgot to put the
2707 message cache lock here
2709 2004-11-26 Havoc Pennington <hp@redhat.com>
2711 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
2712 the "char byte_order" next to each other to save 4 bytes
2713 (dbus_message_new_empty_header): reduce preallocation, since the
2714 message cache should achieve a similar effect
2715 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
2716 message cache that keeps a few DBusMessage around in a pool,
2717 another 8% speedup or so.
2719 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
2721 2004-11-25 Havoc Pennington <hp@redhat.com>
2723 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
2724 to write, without reading or blocking, try it before the poll()
2725 and skip the poll() if nothing remains to write. This is about a
2726 3% speedup in the echo client/server
2728 2004-11-25 Havoc Pennington <hp@redhat.com>
2730 The primary change here is to always write() once before adding
2731 the write watch, which gives us about a 10% performance increase.
2733 * dbus/dbus-transport-unix.c: a number of modifications to cope
2734 with removing messages_pending
2735 (check_write_watch): properly handle
2736 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
2737 messages_pending stuff
2738 (check_read_watch): properly handle WAITING_FOR_MEMORY and
2740 (unix_handle_watch): after writing, see if the write watch can be
2742 (unix_do_iteration): assert that write_watch/read_watch are
2743 non-NULL rather than testing that they aren't, since they
2744 aren't allowed to be NULL. check_write_watch() at the end so
2745 we add the watch if we did not finish writing (e.g. got EAGAIN)
2747 * dbus/dbus-transport-protected.h: remove messages_pending call,
2748 since it resulted in too much inefficient watch adding/removing;
2749 instead we now require that the transport user does an iteration
2750 after queueing outgoing messages, and after trying the first
2751 write() we add a write watch if we got EAGAIN or exceeded our
2752 max bytes to write per iteration setting
2754 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
2757 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
2758 freed and then accessed, valgrind flagged this bug, fix it
2760 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
2761 as the last valid field plus 1, where really it is equal to the
2762 last valid field. Corrects some message corruption issues.
2764 * dbus/dbus-mainloop.c: verbosity changes
2766 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
2767 instead of aborting in one of the test codepaths
2769 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
2770 caused not printing the pid ever again if a verbose was missing
2771 the newline at the end
2772 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
2774 * dbus/dbus-connection.c: verbosity changes;
2775 (dbus_connection_has_messages_to_send): new function
2776 (_dbus_connection_message_sent): no longer call transport->messages_pending
2777 (_dbus_connection_send_preallocated_unlocked): do one iteration to
2778 try to write() immediately, so we can avoid the write watch. This
2779 is the core purpose of this patchset
2780 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
2781 dump the outgoing message queue, so nobody will get confused
2782 trying to send them or thinking stuff is pending to be sent
2784 * bus/test.c: verbosity changes
2786 * bus/driver.c: verbosity/assertion changes
2788 * bus/dispatch.c: a bunch of little tweaks to get it working again
2789 because this patchset changes when/where you need to block.
2791 2004-11-23 Havoc Pennington <hp@redhat.com>
2793 * test/glib/test-profile.c: modify to accept a plain_sockets
2794 argument in which case it will bench plain sockets instead of
2795 libdbus, for comparison purposes.
2797 2004-11-22 Havoc Pennington <hp@redhat.com>
2799 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
2800 threads for more time, so sysprof can get a grip on it.
2802 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
2805 2004-11-13 Havoc Pennington <hp@redhat.com>
2807 * test/glib/test-profile.c: fix this thing up a bit
2809 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
2810 preallocation sizes by a fair bit; not sure if this will be an
2811 overall performance win or not, but it does reduce reallocs.
2813 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
2814 the test hack that forced constant realloc if asserts are
2815 disabled, so we can profile sanely. Sprinkle in some
2816 _DBUS_UNLIKELY() which are probably pointless, but before I
2817 noticed the real performance problem I put them in.
2818 (_dbus_string_validate_utf8): micro-optimize this thing a little
2819 bit, though callgrind says it didn't help; then special-case
2820 ascii, which did help a lot; then be sure we detect nul bytes as
2821 invalid, which is a bugfix.
2822 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
2823 superstition; use memset to nul the padding instead of a manual
2825 (_dbus_string_get_length): inline this as a
2826 macro; it showed up in the profile because it's used for loop
2829 2004-11-10 Colin Walters <walters@verbum.org>
2831 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
2834 2004-11-09 Colin Walters <walters@verbum.org>
2836 * dbus/dbus-string.c (_dbus_string_get_length): New
2837 function, writes DBusString to C buffer.
2839 * dbus/dbus-string.h: Prototype it.
2841 * dbus/dbus-message.c (dbus_message_type_to_string): New
2842 function, converts message type into C string.
2844 * dbus/dbus-message.h: Prototype it.
2846 * bus/selinux.c (bus_selinux_check): Take source pid,
2847 target pid, and audit data. Pass audit data to
2849 (log_audit_callback): New function, appends extra
2851 (bus_selinux_allows_acquire_service): Also take
2852 service name, add it to audit data.
2853 (bus_selinux_allows_send): Also take message
2854 type, interface, method member, error name,
2855 and destination, and add them to audit data.
2856 (log_cb): Initialize func_audit.
2858 * bus/selinux.h (bus_selinux_allows_acquire_service)
2859 (bus_selinux_allows_send): Update prototypes
2861 * bus/services.c (bus_registry_acquire_service): Pass
2862 service name to bus_selinux_allows_acquire_service.
2864 * bus/bus.c (bus_context_check_security_policy): Pass
2865 additional audit data. Move assignment of dest
2868 2004-11-07 Colin Walters <walters@verbum.org>
2870 * dbus/dbus-transport-unix.c (do_authentication): Always
2871 initialize auth_completed.
2873 2004-11-07 Colin Walters <walters@verbum.org>
2875 * bus/bus.c (load_config): Break into three
2876 separate functions: process_config_first_time_only,
2877 process_config_every_time, and process_config_postinit.
2878 (process_config_every_time): Move call of
2879 bus_registry_set_service_context_table into
2880 process_config_postinit.
2881 (process_config_postinit): New function, does
2882 any processing that needs to happen late
2883 in initialization (and also on reload).
2884 (bus_context_new): Instead of calling load_config,
2885 open config parser here and call process_config_first_time_only
2886 and process_config_every_time directly. Later, after
2887 we have forked but before changing UID,
2888 invoke bus_selinux_full_init, and then call
2889 process_config_postinit.
2890 (bus_context_reload_config): As in bus_context_new,
2891 load parse file inside here, and call process_config_every_time
2892 and process_config_postinit.
2894 * bus/services.h, bus/services.c
2895 (bus_registry_set_service_context_table): Rename
2896 from bus_registry_set_sid_table. Take string hash from config
2897 parser, and convert them here into SIDs.
2899 * bus/config-parser.c (struct BusConfigParser): Have
2900 config parser only store a mapping of service->context
2902 (merge_service_context_hash): New function.
2903 (merge_included): Merge context string hashes instead
2904 of using bus_selinux_id_table_union.
2905 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
2906 simply create a new string hash.
2907 (bus_config_parser_unref): Unref it.
2908 (start_selinux_child): Simply insert strings into hash,
2909 don't call bus_selinux_id_table_copy_over.
2911 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
2912 (bus_selinux_id_table_copy_over): Delete.
2914 2004-11-03 Colin Walters <walters@verbum.org>
2916 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
2919 2004-11-03 Colin Walters <walters@verbum.org>
2921 * bus/test-main.c (test_pre_hook): Fix test logic,
2922 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
2924 2004-11-02 Colin Walters <walters@redhat.com>
2926 * bus/selinux.c (bus_selinux_init): Split into two functions,
2927 bus_selinux_pre_init and bus_selinux_post_init.
2928 (bus_selinux_pre_init): Just determine whether SELinux is
2930 (bus_selinux_post_init): Do everything else.
2932 * bus/main.c (main): Call bus_selinux_pre_init before parsing
2933 config file, and bus_selinux_post_init after. This ensures that
2934 we don't lose the policyreload notification thread that
2935 bus_selinux_init created before forking previously.
2937 * bus/test-main.c (test_pre_hook): Update for split.
2939 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
2941 Patch from Johan Fischer <linux@fischaz.com>
2943 * mono/doc/Makefile.am (install-data-local): Added directory
2946 2004-10-29 Colin Walters <walters@redhat.com>
2948 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
2949 parameter for fd to write pid to.
2951 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
2953 * bus/bus.c (bus_context_new): Pass print_pid_fd
2954 to _dbus_become_daemon (bug #1720)
2956 2004-10-29 Colin Walters <walters@redhat.com>
2958 Patch from Ed Catmur <ed@catmur.co.uk>
2960 * mono/doc/Makefile.am (install-data-local): Handle
2963 2004-10-29 Colin Walters <walters@redhat.com>
2965 * bus/.cvsignore, qt/.cvsignore: Update.
2967 2004-10-29 Colin Walters <walters@redhat.com>
2969 Patch from Kristof Vansant <de_lupus@pandora.be>
2971 * configure.in: Detect Slackware.
2972 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
2973 * bus/rc.messagebus.in: New file.
2975 2004-10-29 Colin Walters <walters@redhat.com>
2977 * tools/dbus-monitor.c (filter_func): Return
2978 DBUS_HANDLER_RESULT_HANDLED in filter function
2980 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
2982 2004-10-29 Colin Walters <walters@redhat.com>
2984 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
2986 * bus/services.c (bus_registry_acquire_service):
2987 Correctly retrieve service name from DBusString
2990 2004-10-29 Colin Walters <walters@redhat.com>
2992 * dbus/dbus-glib.h: Update documentation to not
2993 refer to internal APIs.
2995 2004-10-27 Joe Shaw <joeshaw@novell.com>
2997 * mono/Arguments.cs (GetDBusTypeConstructor):
2998 type.UnderlyingSystemType will return "System.Byte" if you do it
2999 on "byte[]", which is not what we want. So check the type.IsArray
3000 property and use System.Array instead.
3002 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
3004 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
3005 the DBusUserInfo structure since this is passed into the function.
3006 This would cause a double free when the function that allocated
3007 the structure would try to free it when an error occured.
3009 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
3010 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
3011 for service activation to avoid 32bit/64bit parallel install issues
3013 2004-10-21 Colin Walters <walters@verbum.org>
3015 * AUTHORS: Fix my email address, the @gnu.org one
3016 has been bouncing for some time. Also add J5.
3018 2004-10-21 Colin Walters <walters@verbum.org>
3020 * dbus/dbus-transport-unix.c (do_authentication): Return
3021 authentication status to callers.
3022 (unix_handle_watch): If we completed authentication this round,
3023 don't do another read. Instead wait until the next iteration,
3024 after we've read any pending data in the auth buffer.
3025 (unix_do_iteration): Ditto.
3026 (unix_handle_watch): Updated for new do_authentication prototype.
3028 2004-10-18 Colin Walters <walters@verbum.org>
3030 * bus/selinux.c (bus_selinux_enabled): Handle
3031 --disable-selinux case.
3033 2004-10-18 Colin Walters <walters@verbum.org>
3035 * bus/selinux.h: Add bus_selinux_enabled.
3037 * bus/selinux.c (bus_selinux_enabled): Implement it.
3039 * bus/config-parser.c (struct include): Add
3040 if_selinux_enabled member.
3041 (start_busconfig_child): Parse if_selinux_enabled
3042 attribute for include.
3043 (bus_config_parser_content): Handle it.
3045 * bus/session.conf.in, bus/system.conf.in: Add
3046 inclusion of context mapping to default config files;
3047 conditional on SELinux being enabled.
3049 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
3051 * test/data/invalid-config-files/badselinux-1.conf,
3052 test/data/invalid-config-files/badselinux-2.conf:
3053 Test files for bad syntax.
3055 2004-10-17 Colin Walters <walters@verbum.org>
3057 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
3058 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
3059 format specifier mismatches.
3061 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
3063 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
3066 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
3067 pointer (bug #1540, Leonardo Boiko).
3069 2004-09-28 Jon Trowbridge <trow@ximian.com>
3071 * mono/BusDriver.cs: Changed BusDriver struct to remove
3072 the ServiceCreated and ServiceDeleted events and replace them
3073 with the new ServiceOwnerChanged event.
3075 * mono/example/BusListener.cs: Added a new example program,
3076 which listens for and reports any ServiceOwnerChanged events
3079 * mono/example/Makefile.am (DESTDIR): Build changes for the
3080 new BusListener.cs example.
3082 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
3084 * bus/signals.c (bus_match_rule_parse): validate the components of
3085 match rules (bug #1439).
3087 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
3089 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
3091 * doc/dbus-specification.xml: document ServiceOwnerChanged
3094 * bus/driver.c, bus/driver.h, bus/services.c: Use
3095 ServiceOwnerChanged signal instead of ServiceCreated and
3098 * bus/dispatch.c: update testcase for the new signal.
3100 2004-09-20 Jon Trowbridge <trow@ximian.com>
3102 Patch from Nat Friedman <nat@novell.com>
3104 * mono/Makefile.am: A number of small build fixes to allow "make
3105 distcheck" to succeed.
3107 * mono/example/Makefile.am: "make distcheck" fixes.
3109 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
3112 * test/Makefile.am: "make distcheck" fixes.
3114 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
3116 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
3118 * doc/busconfig.dtd: update the DTD for the at_console attribute.
3120 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
3121 messages after the first one (bug #1389).
3123 * bus/dispatch.c (check_double_hello_message): add a test case for
3124 the double hello message bug.
3125 (check_existent_service_activation): fix check of spawning error.
3127 2004-09-16 David Zeuthen <david@fubar.dk>
3129 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
3131 2004-09-12 David Zeuthen <david@fubar.dk>
3133 Patch from Kay Sievers <kay.sievers@vrfy.org>
3135 * bus/bus.c (bus_context_new):
3137 * bus/main.c (usage)
3139 Add commandline option --nofork to override configuration file
3142 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3144 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
3145 compilers don't like it (bug #974).
3147 2004-09-04 Harald Fernengel <harry@kdevelop.org>
3149 * qt/connection.*: Applied patch by Jérôme Lodewyck
3150 <lodewyck@clipper.ens.fr> to integrate an existing
3151 connection into the Qt eventloop
3153 2004-08-30 Jon Trowbridge <trow@ximian.com>
3155 * mono/BusDriver.cs: Added. This is a class for interacting with
3156 the org.freedesktop.DBus service.
3158 * mono/Message.cs: Added a mechanism to expose the message that is
3159 currently being dispatched via the static Message.Current
3160 property. Added Message.Sender and Message.Destination
3163 * mono/Handler.cs: Expose the dispatched message via
3164 Message.Current when handling method calls.
3166 * mono/Service.cs: Expose the dispatched message via
3167 Message.Current when handling signal emissions.
3169 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
3170 Connection.BaseService property.
3172 2004-08-28 Havoc Pennington <hp@redhat.com>
3174 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
3176 More fixes from Steve Grubb
3178 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
3179 (_dbus_listen_tcp_socket): fix fd leak
3181 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
3182 EINTR to a bit lower in the code
3184 2004-08-26 Jon Trowbridge <trow@ximian.com>
3186 * bus/driver.c (bus_driver_handle_service_exists): Respond with
3187 TRUE if we are inquiring about the existence of the built-in
3188 org.freedesktop.DBus service.
3190 2004-08-25 John Palmieri <johnp@redhat.com>
3191 * bus/config-parser.c:
3192 (struct PolicyType): Add POLICY_CONSOLE
3193 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
3194 (start_busconfig_child): Sets up console element when
3195 <policy at_console=""> is encountered in a policy file
3196 (append_rule_from_element): Convert console elements to console
3200 (bus_policy_create_client_policy): Add console rules to the client
3201 policy based on if the client is at the console
3202 (bus_policy_append_console_rule): New function for adding a
3203 console rule to a policy
3204 (bus_policy_merge): Handle console rule merging
3206 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
3207 where we check for console user files
3209 * dbus/dbus-sysdeps.c:
3210 (_dbus_file_exists): New function which checks if the given
3212 (_dbus_user_at_console): New function which does the system
3213 specific process of checking if the user is at the console
3215 * dbus/dbus-userdb.c:
3216 (_dbus_is_console_user): New function converts a UID to user name
3217 and then calls the system specific _dbus_user_at_console to
3218 see if the user is at the console and therefor a console user
3220 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
3222 * bus/config-parser.c (set_limit):
3223 * bus/dbus-daemon-1.1.in:
3224 * test/data/valid-config-files/many-rules.conf: set the
3225 max_match_rules_per_connection limt from the config file.
3227 * doc/busconfig.dtd: update the DTD.
3229 * bus/driver.c: remove some unused variables.
3231 2004-08-24 Mikael Hallendal <micke@imendio.com>
3233 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
3234 it's been replaced by dbus_g_bus_get
3236 2004-08-23 Colin Walters <walters@redhat.com>
3238 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3240 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
3242 * bus/selinux.c: Create a thread for policy reload notification.
3243 (bus_selinux_get_policy_root): Implement.
3245 * bus/config-parser.c (start_busconfig_child)
3246 (bus_config_parser_content): Support SELinux-root relative
3249 * configure.in <HAVE_SELINUX>: Add -lpthread.
3251 * bus/test-main.c (test_pre_hook, test_post_hook): New.
3252 (test_post_hook): Move memory checking into here.
3253 (test_pre_hook, test_post_hook): Move SELinux checks in
3254 here, but conditional on a DBUS_TEST_SELINUX environment
3255 variable. Unfortunately we can't run the SELinux checks
3256 as a normal user, since they won't have any permissions
3257 for /selinux. So this will have to be tested manually
3258 for now, until we have virtualization for most of
3261 2004-08-23 Havoc Pennington <hp@redhat.com>
3263 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
3264 drop supplementary groups, suggested by Steve Grubb
3266 2004-08-20 Colin Walters <walters@redhat.com>
3268 * bus/config-parser.c (start_busconfig_child): Remove some unused
3271 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
3274 2004-08-17 Joe Shaw <joeshaw@novell.com>
3276 * configure.in: If --enable-mono is passed in, if we can't find
3279 * mono/Makefile.am: Use /gacutil to install assemblies into the
3282 2004-08-12 Havoc Pennington <hp@redhat.com>
3284 * NEWS: update for 0.22
3286 * configure.in: release 0.22
3288 2004-08-11 Colin Walters <walters@redhat.com>
3290 * tools/dbus-send.c (main, usage): Add --reply-timeout
3293 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
3295 * bus/bus.c (process_config_first_time_only): get rid of an unused
3296 DBusError that was causing a memoy leak (bug #989).
3298 * dbus/dbus-keyring.c, dbus/dbus-message.c:
3299 fix compilation on Solaris/Forte C (bug #974)
3301 * bus/main.c (main): plug two minuscule memleaks.
3303 2004-08-10 Havoc Pennington <hp@redhat.com>
3305 * doc/dbus-tutorial.xml: add some more info on GLib bindings
3307 2004-08-09 Havoc Pennington <hp@redhat.com>
3309 * COPYING: switch to Academic Free License version 2.1 instead of
3310 2.0, to resolve complaints about patent termination clause.
3312 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
3314 * README: added documentation for the --enable-python
3317 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3319 * bus/config-parser.c (bus_config_parser_new): fix an invalid
3320 _unref in the SELinux support.
3322 * doc/busconfig.dtd: update DTD for SELinux support.
3324 * bus/config-loader-libxml.c: fix error handler and parser
3325 initialisation/cleanup. OOM test now works with libxml2 HEAD.
3327 * configure.in: remove the warning about libxml2.
3329 * dbus/dbus-bus.c: silence doxygen warning.
3331 2004-07-31 Colin Walters <walters@redhat.com>
3333 * configure.in: Move #error in SELinux check to its own line.
3335 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
3337 * dbus/dbus-internals.h (_DBUS_SET_OOM):
3338 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
3341 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
3342 broken by the change in the _SET_OOM macros.
3344 2004-07-31 Colin Walters <walters@redhat.com>
3346 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
3349 2004-07-31 Colin Walters <walters@redhat.com>
3351 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
3352 to correctly detect DBUS__ACQUIRE_SVC. Also add an
3355 2004-07-24 Havoc Pennington <hp@redhat.com>
3357 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
3359 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
3362 * configure.in: add --enable-selinux
3364 * bus/policy.c (bus_policy_merge): add FIXME to a comment
3366 * bus/main.c (main): initialize and shut down selinux
3368 * bus/connection.c: store SELinux ID on each connection, to avoid
3369 repeated getting of the string context and converting it into
3372 * bus/bus.c (bus_context_get_policy): new accessor, though it
3374 (bus_context_check_security_policy): check whether the security
3375 context of sender connection can send to the security context of
3376 recipient connection
3378 * bus/config-parser.c: add parsing for <selinux> and <associate>
3380 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
3381 implement dbus_connection_get_unix_fd()
3383 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
3384 function, used by the selinux stuff
3386 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
3388 * bus/config-loader-libxml.c: complete the implementation of
3389 libxml backend for config file loader. Doesn't work with full OOM
3392 * configure.in: change error when selecting libxml into a warning.
3394 * test/data/invalid-config-files: add two non-well-formed XML
3397 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
3399 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
3400 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
3401 be necessary to read all the buffer. (bug #894)
3403 * bus/activation.c (bus_activation_activate_service): fix a
3404 potential assertion failure (bug #896). Small optimization in the
3405 case of auto-activation messages.
3407 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
3408 add test case for byte-through-vararg bug (#901). patch by Kimmo
3411 2004-07-28 Anders Carlsson <andersca@gnome.org>
3414 * python/dbus_bindings.pyx.in:
3415 Add dbus.init_gthreads (), allow emit_signal to pass
3416 arguments to the signal.
3418 2004-07-24 Havoc Pennington <hp@redhat.com>
3420 * AUTHORS: add some people, not really comprehensively, let me
3421 know if I missed you
3423 2004-07-24 Havoc Pennington <hp@redhat.com>
3425 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
3428 * test/Makefile.am (DIST_SUBDIRS): here also
3430 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3432 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
3433 breaking build on Solaris, reported by Farhad Saberi on the ML.
3435 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
3436 va_arg invocation to account for integer promotion in the case of
3437 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
3439 * bus/services.c (bus_service_remove_owner): fix bug #902, use
3440 _dbus_list_get_first_link, not _dbus_list_get_first.
3442 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
3444 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
3445 handler functions so that the asserts in _dbus_object_subtree_unref
3448 * dbus/dbus-transport-unix.c (do_reading):
3449 _dbus_transport_queue_messages return value is of type
3450 dbus_bool_t, not DBusDispatchStatus.
3452 2004-07-19 David Zeuthen <david@fubar.dk>
3454 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
3457 (check_get_connection_unix_user): Debug says GetProperty; but the
3458 method is called GetConnectionUnixUser
3459 (check_get_connection_unix_process_id): New function
3460 (bus_dispatch_test): Actually call check_get_connection_unix_user();
3461 also call check_get_connection_unix_process_id()
3464 (bus_driver_handle_get_connection_unix_process_id): New function,
3465 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
3469 (handle_server_data_external_mech): Set pid from the credentials
3470 obtained from the socket
3472 * dbus/dbus-connection.c:
3473 (dbus_connection_get_unix_process_id): New function
3475 * dbus/dbus-connection.h:
3476 Add prototype for dbus_connection_get_unix_process_id
3478 * dbus/dbus-transport.c:
3479 (_dbus_transport_get_unix_process_id): New function
3481 * dbus/dbus-transport.h:
3482 Add prototype for _dbus_transport_get_unix_process_id
3484 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
3486 * dbus/dbus-message.c: Message counter fix, patch by Christian
3487 Hammond <chipx86@gnupdate.org>
3489 2004-07-18 Seth Nickell <seth@gnome.org>
3492 * python/dbus_bindings.pyx.in:
3493 * python/tests/test-client.py:
3495 Add dbus.ByteArray and dbus_bindings.ByteArray
3496 types so that byte streams can be passed back.
3498 Give jdahlin the heaps of credit that are so
3501 2004-07-12 Seth Nickell <seth@gnome.org>
3505 Add message argument to the default object_method_handler
3508 * python/dbus_bindings.pyx.in:
3510 Automatically return NIL when passed an empty list
3511 (we can't pass back a list since lists are typed
3512 and we don't have any idea what type the the client
3513 intended the list to be... :-( )
3515 2004-07-10 Seth Nickell <seth@gnome.org>
3517 * python/examples/Makefile.am:
3519 Fix distcheck breakage caused by new examples.
3521 2004-07-10 Seth Nickell <seth@gnome.org>
3525 Add "message" argument to service-side dbus.Object
3526 methods. This will break existing services written
3527 using the python bindings, but will allow extraction
3528 of all the message information (e.g. who its from).
3530 Add improved "object oriented" signal handling/emission.
3532 * python/examples/example-service.py:
3536 * python/examples/example-signal-emitter.py:
3537 * python/examples/example-signal-recipient.py:
3539 Two new examples that show how to emit and receive
3540 signals using the new APIs.
3542 * python/examples/example-signals.py:
3543 * python/examples/gconf-proxy-service.py:
3544 * python/examples/gconf-proxy-service2.py:
3546 Add "message" argument to service methods.
3548 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
3550 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
3551 * dbus/bus.c (dbus_bus_get_unix_user)
3552 * doc/dbus-specification.xml: implement GetConnectionUnixUser
3553 method of org.freedesktop.DBus interface.
3555 * bus/dispatch.c: test case
3557 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
3559 * python/Makefile.am: switched include directory from glib/ to dbus/
3560 since dbus-glib.h moved
3562 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
3564 * configure.in: prevent building the gcj stuff and libxml loader
3565 since they are broken.
3567 2004-06-20 Havoc Pennington <hp@redhat.com>
3569 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
3570 codes from the dbus error names
3572 * glib/dbus-glib.h: move to subdir dbus/ since it's included
3573 as dbus/dbus-glib.h and that breakage is now visible due to
3574 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
3576 * glib/dbus-glib.h: s/gproxy/g_proxy/
3578 * dbus/dbus-shared.h: new header to hold stuff shared with
3581 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
3584 * glib/dbus-glib.h (dbus_set_g_error): move to
3585 dbus-glib-lowlevel.h
3587 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
3588 of stuff to enable this
3590 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
3592 * a bunch of other changes with the same basic "separate glib
3593 bindings from dbus.h" theme
3595 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
3597 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
3599 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
3601 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
3603 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
3604 the reply value of the ServiceExists message.
3606 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
3608 * python/dbus_bindings.pyx.in: No longer need to parse path
3609 elements and pass them as arrays of strings. The C API now
3610 accepts plain path strings.
3611 (_build_parsed_path): removed
3613 2004-06-07 Havoc Pennington <hp@redhat.com>
3615 * doc/TODO: remove auto-activation item since it's done; sort
3616 items by importance/milestone
3618 2004-06-07 Havoc Pennington <hp@redhat.com>
3620 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
3621 random signature when using REQUIRED_FIELDS (this hack won't work
3624 * dbus/dbus-message.c: change the signature to be a header field,
3625 instead of message->signature special-case string. Incremental
3626 step forward. Then we can fix up code to send the signature in the
3627 message, then fix up code to validate said signature, then fix up
3628 code to not put the typecodes inline, etc.
3629 (load_one_message): don't make up the signature after the fact
3630 (decode_header_data): require signature field for the known
3633 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
3635 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
3637 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
3639 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
3641 * mono/Handler.cs: Updated to follow new path argument for
3642 (un-)registering objects.
3644 * mono/example/Makefile.am:
3646 * configure.in: Bumped required version for mono and use new -pkg
3649 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
3651 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
3652 registration functions take the path argument as char* instead of
3655 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
3656 split off the path decompostion part of
3657 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
3660 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
3662 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3664 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
3665 machine approach. A state is implemented as a function that
3666 handles incoming events as specified for that state.
3668 * doc/dbus-specification.xml: Update auth protocol state machine
3669 specification to match implementation. Remove some leftover
3672 2004-06-02 Kristian Høgsberg <krh@redhat.com>
3674 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
3675 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
3678 * Doxyfile.in: remove deprecated options.
3680 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
3681 glib/test-thread.h, glib/test-thread-client.c,
3682 glib/test-thread-server.c, glib/test-profile.c,
3683 glib/test-dbus-glib.c: remove these unused files.
3685 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
3687 * dbus/dbus-object-tree.c
3688 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
3689 non-fallback handlers (bug #684).
3690 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
3691 (find_subtree_recurse): report wether the returned subtree is an
3692 exact match or a "fallback" match higher up in the tree.
3693 (object_tree_test_iteration): update test case.
3695 2004-06-01 Seth Nickell <seth@gnome.org>
3697 * python/dbus_bindings.pyx.in:
3698 * python/tests/test-client.py:
3700 Round off basic type support. Add dicts (yay!), and
3701 remaining array types.
3703 Make MessageIter more general so it works for dicts too.
3705 Mark all loop variables as C integers.
3707 2004-05-31 Havoc Pennington <hp@redhat.com>
3709 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
3712 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
3714 * glib/dbus-glib-tool.c (main): set up to have a --self-test
3715 option that runs the tests, and start filling in some code
3716 including for starters just dumping the interfaces to stdout
3718 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
3720 * test/data/valid-introspection-files/lots-of-types.xml: test of
3721 an example introspection file
3723 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
3726 2004-05-31 Seth Nickell <seth@gnome.org>
3728 * python/dbus_bindings.pyx.in:
3729 * python/tests/test-client.py:
3734 Fix string array memory trashing bug... oops...
3736 2004-05-30 Seth Nickell <seth@gnome.org>
3740 Add a nicer-but-less-flexible alternate API for handling
3741 calls to virtual objects in dbus.ObjectTree.
3743 Screw up the argument order to the dbus.Object constructor
3744 for consistency with dbus.ObjectTree (and to make dbus_methods
3745 optional for future extension)
3747 * python/examples/Makefile.am:
3748 * python/examples/gconf-proxy-service.py:
3749 * python/examples/gconf-proxy-service2.py:
3751 Alternate implementation of gconf-proxy-service using the
3752 nicer dbus.ObjectTree API.
3754 * python/examples/example-service.py:
3755 * python/tests/test-server.py
3757 Reverse the argument order to deal with dbus.Object constructor
3760 2004-05-30 Seth Nickell <seth@gnome.org>
3762 * python/examples/example-client.py:
3763 * python/examples/example-service.py:
3765 Take it back. Lists seem to work but they're broken
3766 in the test suite. Make the base examples use
3769 2004-05-30 Seth Nickell <seth@gnome.org>
3771 * python/dbus_bindings.pyx.in:
3772 * python/tests/test-client.py:
3774 Add some more tests and fix errors that crop up.
3775 Unfortunately, currently it seems like marshalling
3776 and unmarshalling of lists is completely broken :-(
3778 2004-05-30 Seth Nickell <seth@gnome.org>
3780 * python/dbus_bindings.pyx.in:
3782 Add support for ObjectPath type.
3786 Refactor message handling code to a common function.
3788 * python/tests/test-client.py:
3789 * python/tests/test-server.py:
3791 Add tests that check to make sure values of all types
3792 can be echoed from a service w/o mangling.
3794 2004-05-29 Seth Nickell <seth@gnome.org>
3798 Add ObjectTree class which allows implementation
3799 of trees of "virtual" objects. Basically the python
3800 wrapper for "register_fallback".
3802 * python/examples/Makefile.am
3803 * python/examples/gconf-proxy-client.py:
3804 * python/examples/gconf-proxy-service.py:
3806 Implement a simple GConf proxy service that supports
3807 get/set on string and int GConf keys using the ObjectTree.
3809 2004-05-29 Seth Nickell <seth@gnome.org>
3812 * python/examples/example-client.py:
3813 * python/examples/example-service.py:
3814 * python/examples/list-system-services.py:
3816 Add SessionBus, SystemBus and ActivationBus classes
3817 so you don't need to know the special little BUS_TYPE
3820 2004-05-29 Havoc Pennington <hp@redhat.com>
3822 * bus/config-parser.c (process_test_valid_subdir): temporarily
3823 stop testing config parser OOM handling, since expat has issues
3824 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
3826 * bus/dbus-daemon-1.1.in: change requested_reply to
3827 send_requested_reply/receive_requested_reply so we can send the
3828 replies, not just receive them.
3830 * bus/config-parser.c: parse the new
3831 send_requested_reply/receive_requested_reply
3833 * bus/policy.c (bus_client_policy_check_can_send): add
3834 requested_reply argument and use it
3836 * bus/bus.c (bus_context_check_security_policy): pass through
3837 requested_reply status to message send check
3839 * bus/system.conf.in: adapt to requested_reply change
3841 2004-05-28 Havoc Pennington <hp@redhat.com>
3843 * test/glib/test-service-glib.c (main): remove unused variable
3845 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
3847 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
3848 from the enum, no longer in use.
3850 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
3853 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
3854 whether error_name passed in is a valid error name.
3856 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
3858 * dbus/dbus-message.c (dbus_message_get_args): Added support for
3859 OBJECT_PATH and OBJECT_PATH_ARRAY
3861 2004-05-28 Seth Nickell <seth@gnome.org>
3863 * python/examples/Makefile.am:
3865 Forget to add Makefile.am. Do not pass go.
3867 2004-05-28 Michael Meeks <michael@ximian.com>
3869 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
3872 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
3874 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
3875 (_dbus_message_iter_get_basic_type_array): impl.
3876 drastically simplify ~all relevant _get methods to use these.
3877 (_dbus_message_iter_append_basic_array),
3878 (dbus_message_iter_append_basic): impl
3879 drastically simplify ~all relevant _append methods to use these.
3881 * dbus/dbus-message-builder.c (parse_basic_type)
3882 (parse_basic_array, lookup_basic_type): impl.
3883 (_dbus_message_data_load): prune scads of duplicate /
3886 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
3887 (_dbus_demarshal_basic_type): implement,
3888 (demarshal_and_validate_len/arg): beef up debug.
3889 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
3891 2004-05-27 Seth Nickell <seth@gnome.org>
3894 * python/Makefile.am:
3896 Include the example python apps in the tarball.
3898 * python/examples/list-system-services.py
3900 Add a python new example that fetches the list of services
3901 from the system bus.
3903 2004-05-27 Seth Nickell <seth@gnome.org>
3906 * python/dbus_bindings.pyx.in:
3908 Fix failure to notify that a signal was not handled,
3909 resulted in hung functions.
3911 2004-05-25 Colin Walters <walters@redhat.com>
3913 * tools/dbus-monitor.c (main): Monitor all types of messages.
3915 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
3917 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
3918 which unregisters the object path and disposes the handler.
3920 2004-05-23 Kristian Høgsberg <krh@redhat.com>
3922 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
3924 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
3925 operands to && so we call dbus_message_iter_next () for the last
3928 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
3930 * dbus/dbus-object-tree.c
3931 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
3932 children even if the requested path isn't registered.
3933 (object_tree_test_iteration): test object_tree_list_registered.
3935 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
3938 2004-05-20 Kristian Høgsberg <krh@redhat.com>
3940 * doc/TODO: Remove resolved items.
3942 * bus/expirelist.h (struct BusExpireList): remove unused n_items
3945 * bus/connection.c (bus_connections_expect_reply): Enforce the
3946 per-connection limit on pending replies.
3948 Patch from Jon Trowbridge <trow@ximian.com>:
3950 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
3951 up a watch that triggers a config reload when one end of the pipe
3953 (signal_handler): Instead of doing the config reload in our SIGHUP
3954 handler, just write to the reload pipe and let the associated
3955 watch handle the reload when control returns to the main loop.
3957 * bus/driver.c (bus_driver_handle_reload_config): Added.
3958 Implements a ReloadConfig method for requesting a configuration
3959 file reload via the bus driver.
3961 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
3963 * HACKING: Updated release instructions concerning the wiki page.
3965 2004-05-18 Kristian Høgsberg <krh@redhat.com>
3967 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
3968 filter against auth->allowed_mechs; we only add allowed mechs in
3969 record_mechanisms().
3971 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
3972 ALLOWED_MECHS to auth-script format so we can set the list of
3975 * data/auth/client-out-of-mechanisms.auth-script: New test to
3976 check client disconnects when it is out of mechanisms to try.
3978 * dbus/dbus-auth.c (process_command): Remove check for lines
3979 longer that 1 MB; we only buffer up maximum 16 kB.
3981 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
3982 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
3983 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
3984 assume there might be unused bytes.
3986 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
3987 client-out-of-mechs, it is handled in process_reject(). Move check
3988 for max failures to send_rejected(), as it's a server-only thing.
3990 * dbus/dbus-auth.c: Factor out protocol reply code into functions
3991 send_auth(), send_data(), send_rejected(), send_error(),
3992 send_ok(), send_begin() and send_cancel().
3994 2004-05-17 Kristian Høgsberg <krh@redhat.com>
3996 Remove base64 encoding, replace with hex encoding. Original patch
3997 from trow@ximian.com, added error handling.
3999 * dbus/dbus-string.c (_dbus_string_base64_encode)
4000 (_dbus_string_base64_decode): Remove.
4001 (_dbus_string_hex_decode): Add end_return argument so we can
4002 distinguish between OOM and invalid hex encoding.
4003 (_dbus_string_test): Remove base64 tests and add test case for
4006 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
4007 Replace base64 with hex.
4009 * test/data/auth/invalid-hex-encoding.auth-script: New test case
4010 for invalid hex encoded data in auth protocol.
4012 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4014 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
4017 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4019 * mono/dbus-sharp.dll.config.in: Added for GAC
4020 * mono/dbus-sharp.snk: Added for GAC
4021 * mono/Assembly.cs.in: Added for GAC
4022 * mono/Makefile.am: Changes for GAC installation
4023 * configure.in: Added refs for dbus-sharp.dll.config.in and
4024 Assembly.cs.in. More fixes for mono testing
4025 * mono/example/Makefile.am: Changed var to CSC
4026 * Makefile.am: Changed flag name to DBUS_USE_CSC
4028 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
4030 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
4031 * mono/doc/*: Added documentation framework
4032 * configure.in: Added monodoc check
4033 * README: Added description of mono configure flags
4035 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
4037 * doc/dbus-specification.xml: Added a "Required" column to the
4038 header fields table and changed the "zero or more" verbage in
4039 the above paragraph to read "The header must contain the required
4040 named header fields and zero or more of the optional named header
4042 * test/data/invalid-messages/*.message: Added the required PATH
4043 named header field to the tests so that they don't fail on
4044 'Missing path field'
4046 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
4048 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
4049 the stack by implicitly defining variable and parameter types and
4050 removing the hack of defining C pointers as python objects and later
4053 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
4055 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
4057 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
4059 * mono/DBusType/Dict.cs: Handle empty dicts
4060 * mono/DBusType/Array.cs: Handle empty arrays
4061 * mono/Arguments.cs: Handle empty arguments
4063 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
4065 * dbus-sharp.pc.in: Modified to include include Libs and Requires
4068 2004-04-25 Kristian Høgsberg <krh@redhat.com>
4070 * test/data/valid-messages/standard-*.message: Update message
4071 test scripts to new header field names.
4073 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
4075 * test/break-loader.c (randomly_do_n_things): tracked down buffer
4076 overflow to times_we_did_each_thing array which would chop off the
4077 first character of the failure_dir string. Increased the size of
4078 the array to 7 to reflect the number of random mutation functions
4081 2004-04-21 Kristian Høgsberg <krh@redhat.com>
4083 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
4084 unix_server->watch here, it is unreffed in disconnect.
4085 (_dbus_server_new_for_tcp_socket): convert NULL host to
4086 "localhost" here so we don't append NULL to address.
4088 * dbus/dbus-server.c (_dbus_server_test): Add test case for
4089 various addresses, including tcp with no explicit host.
4091 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4093 * dbus/dbus-message.c (decode_header_data, decode_string_field):
4094 fix incorrect setting of .name_offset in the HeaderField (it was
4095 off by two bytes, positioned right after the name and typecode)
4097 * bus/bus.c (bus_context_new, bus_context_unref): test before
4098 calling dbus_server_free_data_slot and _dbus_user_database_unref
4099 in case of an error.
4101 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
4104 2004-04-19 Kristian Høgsberg <krh@redhat.com>
4106 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
4107 _dbus_poll() instead of select().
4109 2004-04-15 Jon Trowbridge <trow@ximian.com>
4111 * bus/main.c (signal_handler): Reload the configuration files
4113 (main): Set up our SIGHUP handler.
4115 * bus/bus.c (struct BusContext): Store the config file, user and
4116 fork flag in the BusContext.
4117 (process_config_first_time_only): Added. Contains the code
4118 (previously in bus_context_new) for setting up the BusContext from
4119 the BusConfigParser that should only be run the first time the
4120 config files are read.
4121 (process_config_every_time): Added. Contains the code (previously
4122 in bus_context_new) for setting up the BusContext from the
4123 BusConfigParser that should be run every time the config files are
4125 (load_config): Added. Builds a BusConfigParser from the config
4126 files and passes the resulting structure off to
4127 process_config_first_time_only (assuming this is the first time)
4128 and process_config_every_time.
4129 (bus_context_new): All of the config-related code has been moved
4130 to process_config_first_time_only and process_config_every_time.
4131 Now this function just does the non-config-related initializations
4132 and calls load_config.
4133 (bus_context_reload_config): Added.
4135 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
4137 * bus/driver.c (bus_driver_handle_get_service_owner):
4138 implement a GetServiceOwner method.
4139 * doc/dbus-specification.xml: document it.
4140 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
4142 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
4143 implement, using the bus GetServiceOwner method.
4145 * test/glib/test-dbus-glib.c:
4146 use dbus_gproxy_new_for_service_owner so that we can receive the
4149 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
4151 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4152 dbus/dbus-message.c, dbus/dbus-protocol.h
4153 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
4155 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
4156 dbus/dbus-message.c, dbus/dbus-protocol.h
4157 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
4159 * dbus/dbus-internals.c (_dbus_header_field_to_string):
4160 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
4161 DBUS_HEADER_FIELD_SENDER resolves to "sender"
4163 * doc/dbus-specification.xml (Header Fields Table):
4164 s/SERVICE/DESTINATION
4165 s/SENDER_SERVICE/SENDER
4168 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
4170 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
4173 2004-04-13 Michael Meeks <michael@ximian.com>
4175 * glib/dbus-gobject.c (handle_introspect): split out
4176 (introspect_properties): this.
4177 (handle_introspect): implement this.
4179 * test/glib/Makefile.am: use the absolute path so the bus
4180 daemon's chdir ("/") doesn't kill us dead.
4182 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
4184 2004-04-12 Jon Trowbridge <trow@ximian.com>
4186 * bus/config-parser.c (struct BusConfigParser): Added
4187 included_files field.
4188 (seen_include): Added. Checks whether or not a file has already
4189 been included by any parent BusConfigParser.
4190 (bus_config_parser_new): Copy the parent's included_files.
4191 (include_file): Track which files have been included, and fail on
4192 circular inclusions.
4193 (process_test_valid_subdir): Changed printf to report if we are
4194 testing valid or invalid conf files.
4195 (all_are_equiv): Changed printf to be a bit clearer about
4196 what we are actually doing.
4197 (bus_config_parser_test): Test invalid configuration files.
4199 2004-04-09 Jon Trowbridge <trow@ximian.com>
4201 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
4202 argument. If non-null, the newly-constructed BusConfigParser will
4203 be initialized with the parent's BusLimits instead of the default
4205 (include_file): When including a config file, pass in
4206 the current parser as the parent and then copy the BusLimits
4207 from the included BusConfigParser pack to the current parser.
4208 (process_test_valid_subdir): Renamed from process_test_subdir.
4209 (process_test_equiv_subdir): Added. Walks through a directory,
4210 descending into each subdirectory and loading the config files
4211 it finds there. If any subdirectory contains two config files
4212 that don't produce identical BusConfigParser structs, fail.
4213 For now, the BusConfigParser's BusPolicies are not compared.
4214 (bus_config_parser_test): Call both process_test_valid_subdir and
4215 process_test_equiv_subdir.
4217 * bus/config-loader-libxml.c (bus_config_load): Take a parent
4218 argument and pass it along to the call to bus_config_parser_new.
4219 Also made a few small changes to allow this code to compile.
4221 * bus/config-loader-expat.c (bus_config_load): Take a parent
4222 argument and pass it along to the call to bus_config_parser_new.
4224 * bus/bus.c (bus_context_new): Load the config file
4225 with a NULL parent argument.
4227 2004-03-29 Michael Meeks <michael@ximian.com>
4229 * glib/dbus-gobject.c (introspect_properties): split
4230 out, fix mangled 'while' flow control.
4231 (introspect_signals): implement.
4232 (handle_introspect): update.
4234 2004-03-29 Michael Meeks <michael@ximian.com>
4236 * glib/dbus-gobject.c (set_object_property): split out /
4237 re-work, use the property type, and not the message type(!)
4238 (get_object_property): ditto.
4240 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
4241 (dbus_gvalue_marshal): make this code re-usable, needed
4242 for signals too, also on both proxy and server side.
4243 Re-write for more efficiency / readability.
4245 2004-03-29 Michael Meeks <michael@ximian.com>
4247 * dbus/dbus-message.c
4248 (dbus_message_new_error_printf): impl.
4250 * dbus/dbus-connection.c
4251 (dbus_connection_unregister_object_path): fix warning.
4253 * configure.in: fix no-mono-installed situation.
4255 2004-03-27 Havoc Pennington <hp@redhat.com>
4257 Patch from Timo Teräs:
4259 * tools/dbus-send.c (main): if --print-reply, assume type is
4260 method call; support boolean type args
4262 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
4263 bunch of memleak and logic bugs
4265 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4267 * mono/Arguments.cs:
4268 * mono/Introspector.cs:
4270 * mono/InterfaceProxy.cs:
4272 * mono/ProxyBuilder.cs:
4274 Added InterfaceProxy class to avoid building proxies for every
4278 * dbus-message.c (dbus_message_append_args_valist)
4279 (dbus_message_iter_get_object_path)
4280 (dbus_message_iter_get_object_path_array)
4281 (dbus_message_iter_append_object_path)
4282 (dbus_message_iter_append_object_path_array):
4283 Added object_path iter functions to handle OBJECT_PATH arguments
4285 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
4287 First checkin of mono bindings.
4290 Build stuff for the bindings
4291 * dbus-sharp.pc.in: Added for pkgconfig
4293 2004-03-21 Havoc Pennington <hp@redhat.com>
4295 * test/test-service.c (main): remove debug spew
4297 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4299 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
4302 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
4303 (dbus_message_iter_init_array_iterator)
4304 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
4305 indicate whether the iterator is empty
4307 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
4310 2004-03-19 Havoc Pennington <hp@redhat.com>
4312 * NEWS: 0.21 updates
4314 * configure.in: 0.21
4316 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
4318 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
4319 you don't need pyrex to make dist
4321 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
4324 2004-03-18 Richard Hult <richard@imendio.com>
4326 * dbus/dbus-message.c (dbus_message_get_auto_activation)
4327 (dbus_message_set_auto_activation): Add doxygen docs.
4329 2004-03-16 Richard Hult <richard@imendio.com>
4331 * bus/activation.c: (bus_activation_service_created),
4332 (bus_activation_send_pending_auto_activation_messages),
4333 (bus_activation_activate_service):
4335 * bus/dispatch.c: (bus_dispatch),
4336 (check_nonexistent_service_auto_activation),
4337 (check_service_auto_activated),
4338 (check_segfault_service_auto_activation),
4339 (check_existent_service_auto_activation), (bus_dispatch_test):
4340 * bus/driver.c: (bus_driver_handle_activate_service):
4341 * bus/services.c: (bus_registry_acquire_service):
4342 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
4343 (dbus_message_get_auto_activation):
4344 * dbus/dbus-message.h:
4345 * dbus/dbus-protocol.h: Implement auto-activation.
4347 * doc/dbus-specification.xml: Add auto-activation to the spec.
4349 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
4351 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
4352 fix a bug with CUSTOM types.
4354 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
4355 a unit test for this bug (used to fail).
4357 2004-03-12 Mikael Hallendal <micke@imendio.com>
4360 (babysitter_watch_callback): notify all pending activations waiting for
4361 the same exec that the activation failed.
4362 (bus_activation_activate_service): shortcut the activation if we
4363 already waiting for the same executable to start up.
4365 2004-03-12 Mikael Hallendal <micke@imendio.com>
4368 - Added service file reloading.
4369 Each service files directory is kept in an hash table in
4370 BusActivation and each BusActivationEntry knows what .service-file it
4371 was read from. So when you try to activate a service the bus will
4372 check if it's been updated, removed or if new .service-files has
4374 - Test code at the bottom for the service file reloading.
4375 * bus/test-main.c: (main):
4377 - added service reloading test.
4378 * dbus/dbus-sysdeps.c:
4379 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
4381 2004-03-08 Michael Meeks <michael@ximian.com>
4383 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
4384 bail immediately if disconnected, to avoid busy loop.
4386 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
4387 cleanup cut/paste/inefficiency.
4389 2004-03-01 David Zeuthen <david@fubar.dk>
4391 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
4392 bug where args were used twice. This bug resulted in a segfault
4393 on a Debian/PPC system when starting the messagebus daemon. Include
4394 dbus-sysdeps.h for DBUS_VA_COPY
4396 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
4398 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
4399 appropriate va_copy implementation. From GLib
4401 2004-02-24 Joe Shaw <joe@ximian.com>
4403 * bus/services.c (bus_registry_acquire_service): We need to pass
4404 in the service name to dbus_set_error() to prevent a crash.
4406 2003-12-26 Anders Carlsson <andersca@gnome.org>
4408 * AUTHORS: Reveal my True identity.
4410 2003-12-17 Mikael Hallendal <micke@imendio.com>
4412 * dbus/dbus-message.c: (dbus_message_append_args_valist):
4413 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
4415 2003-12-13 Mikael Hallendal <micke@imendio.com>
4417 * doc/TODO: Added not about better error check of configuration files.
4419 2003-12-02 Richard Hult <richard@imendio.com>
4421 * Update AFL version to 2.0 throughout the source files to reflect
4422 the update that was done a while ago.
4424 2003-12-02 Richard Hult <richard@imendio.com>
4426 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
4427 wrote_dict_key to FALSE on the iter that the dict is appended to,
4428 just like when appending other types. Fixes a bug where a dict
4429 couldn't be put inside a dict.
4430 (dbus_message_iter_append_dict_key): Fix typo in warning message.
4431 (message_iter_test, _dbus_message_test): Add test case for dict
4434 2003-12-01 David Zeuthen <david@fubar.dk>
4436 * python/dbus.py: Add the actual message when calling the reciever
4437 of a signal such that parameters can be inspected. Add the method
4438 remove_signal_receiver
4440 2003-11-26 Mikael Hallendal <micke@imendio.com>
4444 * glib/*.[ch]: Made ref functions return the pointer
4446 2003-11-25 Zack Rusin <zack@kde.org>
4448 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
4450 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
4453 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
4454 the Integrator and to better fit with the server,
4456 2003-11-24 Zack Rusin <zack@kde.org>
4458 * qt/connection.h, qt/connection.cpp: removing initDbus method since
4459 the integrator handles it now
4461 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
4462 since QTimer wasn't really meant to be used the way DBusTimeout is
4464 2003-11-24 Zack Rusin <zack@kde.org>
4466 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
4467 Integrator class which integrates D-BUS with the Qt event loop,
4469 * qt/connection.h, qt/connection.cpp: Move all the code which
4470 was dealing with D-BUS integration to the Integrator class,
4471 and start using Integrator,
4473 2003-11-23 Zack Rusin <zack@kde.org>
4475 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
4478 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
4479 switching namespaces to DBusQt, reworking the class,
4481 * Makefile.cvs: switching dependencies so that it matches KDE
4484 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
4487 2003-11-19 Havoc Pennington <hp@redhat.com>
4491 * configure.in: bump version to 0.20
4493 * configure.in (have_qt): add yet another place to look for qt
4494 (someone hand trolltech a .pc file...)
4496 2003-11-01 Havoc Pennington <hp@redhat.com>
4498 * doc/dbus-specification.xml: add state machine docs on the auth
4499 protocol; just a first draft, I'm sure it's wrong.
4501 2003-10-28 David Zeuthen <david@fubar.dk>
4503 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
4504 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
4506 2003-10-28 Havoc Pennington <hp@redhat.com>
4508 * dbus/dbus-message.c (get_next_field): delete unused function
4510 2003-10-28 Havoc Pennington <hp@redhat.com>
4512 * bus/expirelist.c (do_expiration_with_current_time): detect
4513 failure of the expire_func due to OOM
4515 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
4517 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
4518 NoReply error that's now created by the bus when the service exits
4520 2003-10-28 Havoc Pennington <hp@redhat.com>
4522 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
4523 tests for set_path, set_interface, set_member, etc.
4525 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
4527 * dbus/dbus-message.c (set_string_field): always just delete and
4528 re-append the field; accept NULL for deletion
4529 (re_align_fields_recurse): reimplement
4531 2003-10-26 Havoc Pennington <hp@redhat.com>
4533 * dbus/dbus-connection.c: fix docs to properly describe the
4534 disconnected message
4535 (_dbus_connection_notify_disconnected): remove this function;
4536 we can't synchronously add the disconnected message, we have to
4537 do it after we've queued any remaining real messages
4538 (_dbus_connection_get_dispatch_status_unlocked): queue the
4539 disconnect message only if the transport has finished queueing all
4540 its real messages and is disconnected.
4541 (dbus_connection_disconnect): update the dispatch status here
4543 2003-10-22 Havoc Pennington <hp@redhat.com>
4545 * bus/bus.c (bus_context_check_security_policy): fix up assertion
4547 * bus/connection.c (bus_transaction_send_from_driver): set the
4548 destination to the connection's base service
4550 2003-10-20 Havoc Pennington <hp@redhat.com>
4552 hmm, make check is currently not passing.
4554 * doc/dbus-specification.xml: add requirement that custom type
4555 names follow the same rules as interface names.
4557 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
4558 duplication and allow 'c' to be 'custom'; dict is now 'm' for
4561 * doc/dbus-specification.xml: update type codes to match
4562 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
4563 CUSTOM. Add type OBJECT_PATH to the spec.
4565 2003-10-17 Havoc Pennington <hp@redhat.com>
4567 * bus/driver.c (create_unique_client_name): use "." as separator
4568 in base service names instead of '-'
4570 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
4571 byte at the end of the string
4573 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
4574 optimization macros since string validation seems to be a slow
4577 * doc/dbus-specification.xml: restrict valid
4578 service/interface/member/error names. Add test suite code for the
4581 * dbus/dbus-string.c: limit service/interface/member/error names
4584 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
4585 format arg to verbose spew
4587 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
4588 memory, return instead of g_error
4590 * test/test-service.c (path_message_func): support emitting a
4593 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
4594 activation bus type if DBUS_BUS_ACTIVATION was set; default to
4595 assuming the activation bus was the session bus so that services
4596 started manually will still register.
4597 (init_connections_unlocked): fix so that in OOM situation we get
4598 the same semantics when retrying the function
4600 * test/test-service.c (main): change to use path registration, to
4601 test those codepaths; register with DBUS_BUS_ACTIVATION rather
4602 than DBUS_BUS_SESSION
4604 2003-10-16 Havoc Pennington <hp@redhat.com>
4606 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
4608 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
4609 coverage of the tests
4610 (coverage-report.txt): don't move the .da and .bbg files around
4612 2003-10-16 Havoc Pennington <hp@redhat.com>
4614 * bus/bus.c (struct BusContext): remove struct field I didn't mean
4617 2003-10-16 Havoc Pennington <hp@redhat.com>
4619 * bus/connection.c (bus_pending_reply_expired): either cancel or
4621 (bus_connections_check_reply): use unlink, not remove_link, as we
4622 don't want to free the link; fixes double free mess
4624 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
4625 where no reply was received
4627 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
4630 * bus/signals.c (match_rule_matches): add special cases for the
4631 bus driver, so you can match on sender/destination for it.
4633 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
4634 DBUS_PRINT_BACKTRACE is set
4636 * dbus/dbus-internals.c: add pid to assertion failure messages
4638 * dbus/dbus-connection.c: add message type code to the debug spew
4640 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
4641 sender=foo not service=foo
4643 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
4644 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
4645 DBUS_ACTIVATION_ADDRESS instead
4647 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
4648 DBUS_SYSTEM_BUS_ADDRESS if appropriate
4650 * bus/bus.c (bus_context_new): handle OOM copying bus type into
4653 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
4654 (dbus_message_iter_get_object_path_array): new function (half
4655 finished, disabled for the moment)
4657 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
4658 DBUS_MESSAGE_TYPE_ERROR
4660 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
4661 avoid redirecting stderr to /dev/null
4662 (babysit): close stdin if not doing the "exit_with_session" thing
4664 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
4665 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
4666 stdout/stdin, so things don't get confused
4668 * bus/system.conf.in: fix to allow replies, I modified .conf
4669 instead of .conf.in again.
4671 2003-10-14 David Zeuthen <david@fubar.dk>
4673 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
4674 argtype to arg_type when raising unknown arg type exception.
4675 Changed type list to reflect the changes in dbus-protocol.h so
4676 the bindings actually work.
4678 2003-10-14 Havoc Pennington <hp@redhat.com>
4680 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
4681 to have a bug keeping it from outputting the .da files sometimes
4682 (string_get_string): don't append garbage nul bytes to the string.
4684 2003-10-15 Seth Nickell <seth@gnome.org>
4686 * python/Makefile.am:
4688 Include dbus_h_wrapper.h in the dist tarball.
4690 2003-10-14 Havoc Pennington <hp@redhat.com>
4692 * bus/bus.c (bus_context_check_security_policy): revamp this to
4693 work more sanely with new policy-based requested reply setup
4695 * bus/connection.c (bus_transaction_send_from_driver): set bus
4696 driver messages as no reply
4698 * bus/policy.c (bus_client_policy_check_can_receive): handle a
4699 requested_reply attribute on allow/deny rules
4701 * bus/system.conf: add <allow requested_reply="true"/>
4703 * bus/driver.c (bus_driver_handle_message): fix check for replies
4704 sent to the bus driver, which was backward. How did this ever work
4705 at all though? I think I'm missing something.
4707 * dbus/dbus-message.c (decode_header_data): require error and
4708 method return messages to have a reply serial field to be valid
4709 (_dbus_message_loader_queue_messages): break up this function;
4710 validate that reply serial and plain serial are nonzero;
4711 clean up the OOM/error handling.
4712 (get_uint_field): don't return -1 from this
4713 (dbus_message_create_header): fix signed/unsigned bug
4715 * bus/connection.c (bus_connections_expect_reply): save serial of
4716 the incoming message, not reply serial
4718 2003-10-14 Havoc Pennington <hp@redhat.com>
4720 * bus/connection.c: implement pending reply tracking using
4723 * bus/bus.c (bus_context_check_security_policy): verify that a
4724 reply is pending in order to allow a reply to be sent. Deny
4725 messages of unknown type.
4727 * bus/dbus-daemon-1.1.in: update to mention new resource limits
4729 * bus/bus.c (bus_context_get_max_replies_per_connection): new
4730 (bus_context_get_reply_timeout): new
4732 2003-10-13 Seth Nickell <seth@gnome.org>
4734 * python/Makefile.am:
4736 Pass "make distcheck": remove a couple files from DIST_FILES
4737 that weren't included in the final version.
4739 2003-10-12 Havoc Pennington <hp@pobox.com>
4741 Added test code that 1) starts an actual bus daemon and 2) uses
4742 DBusGProxy; fixed bugs that were revealed by the test. Lots
4743 more testing possible, but this is the basic framework.
4745 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
4746 empty proxy lists from the proxy list hash
4748 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
4749 couple of return_if_fail checks
4751 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
4752 to allocate, so everything is cleared to NULL as it should be.
4754 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
4755 source as data to dbus_connection_set_timeout_functions() as the
4756 timeout functions expected
4758 * test/glib/run-test.sh: add a little script to start up a message
4759 bus and run tests using it
4761 * tools/dbus-launch.1: updates
4763 * tools/dbus-launch.c (main): add --config-file option
4765 * tools/dbus-launch.c (main): remove confusing else if (runprog)
4766 that could never be reached.
4768 * dbus/dbus-message.c (dbus_message_new_method_return)
4769 (dbus_message_new_error, dbus_message_new_signal): set the
4770 no-reply-expected flag on all these. Redundant, but may
4771 as well be consistent.
4773 2003-10-11 Havoc Pennington <hp@pobox.com>
4775 * test/decode-gcov.c (function_solve_graph): make broken block
4776 graph a nonfatal error since it seems to be broken. Need to debug
4779 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
4780 can't just check type > INVALID < LAST anymore
4782 * dbus/dbus-message.c (dbus_message_get_signature): new function
4783 (dbus_message_has_signature): new function
4784 (struct DBusMessage): add signature field (right now it isn't sent
4785 over the wire, just generated on the fly)
4786 (dbus_message_copy): copy the signature, and init strings to
4787 proper length to avoid some reallocs
4788 (dbus_message_iter_init_array_iterator): return void, since it
4790 (dbus_message_iter_init_dict_iterator): return void since it can't fail
4791 (_dbus_message_loader_queue_messages): add silly temporary hack to
4792 fill in message->signature on load
4794 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
4795 characters, so they are relatively human-readable.
4797 2003-10-11 Havoc Pennington <hp@pobox.com>
4799 * dbus/dbus-message.c (_dbus_message_test): add more test
4800 coverage, but #if 0 for now since they uncover a bug
4801 not fixed yet; I think in re_align_field_recurse()
4802 (re_align_field_recurse): add FIXME about broken assertion
4804 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
4806 * bus/connection.c: share a couple code bits with expirelist.c
4808 * bus/expirelist.h, bus/expirelist.c: implement a generic
4809 expire-items-after-N-seconds facility, was going to share between
4810 expiring connections and replies, decided not to use for expiring
4811 connections for now.
4813 * COPYING: include AFL 2.0 (still need to change all the file headers)
4815 2003-10-09 Havoc Pennington <hp@redhat.com>
4817 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
4818 gcc 3.3. Not that we do anything about it yet.
4820 * bus/signals.c (bus_match_rule_parse): impose max length on the
4823 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
4825 2003-10-09 Havoc Pennington <hp@redhat.com>
4827 Make matching rules theoretically work (add parser).
4829 * bus/bus.c (bus_context_check_security_policy): fix up to handle
4830 the case where destination is explicitly specified as bus driver
4831 and someone else is eavesdropping.
4833 * bus/policy.c (bus_client_policy_check_can_receive): fix up
4834 definition of eavesdropping and assertion
4836 * tools/dbus-send.c (main): use dbus_message_type_from_string
4838 * bus/signals.c (bus_match_rule_parse): implement
4840 * dbus/dbus-message.c (dbus_message_type_from_string): new
4842 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
4844 2003-10-02 Havoc Pennington <hp@pobox.com>
4846 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
4847 dbus_gproxy_oneway_call
4849 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
4850 (dbus_server_setup_with_g_main): fix to allow calling them more
4851 than once on the same args
4852 (dbus_bus_get_with_g_main): new function
4854 2003-10-02 Havoc Pennington <hp@redhat.com>
4856 * doc/dbus-tutorial.xml: write some stuff
4858 2003-09-29 Havoc Pennington <hp@pobox.com>
4860 * configure.in: split checks for Doxygen from XML docs, check for
4863 * doc/Makefile.am: XML-ify all the docs, and add a blank
4866 2003-09-29 Havoc Pennington <hp@pobox.com>
4868 * Merge dbus-object-names branch. To see the entire patch
4869 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
4870 it's huuuuge though.
4871 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
4873 2003-09-28 Havoc Pennington <hp@pobox.com>
4875 * HACKING: update to reflect new server
4877 2003-09-26 Seth Nickell <seth@gnome.org>
4880 * python/examples/example-signals.py:
4882 Start implementing some notions of signals. The API
4883 is really terrible, but they sort of work (with the
4884 exception of being able to filter by service, and to
4885 transmit signals *as* a particular service). Need to
4886 figure out how to make messages come from the service
4889 * python/dbus_bindings.pyx.in:
4891 Removed duplicate message_handler callbacks.
4893 2003-09-25 Havoc Pennington <hp@redhat.com>
4895 * bus/session.conf.in: fix my mess
4897 2003-09-25 Havoc Pennington <hp@pobox.com>
4899 * bus/session.conf.in: fix security policy, reported by Seth Nickell
4901 2003-09-25 Seth Nickell <seth@gnome.org>
4903 * python/examples/example-service.py:
4905 Johan notices complete wrong code in example-service, but
4906 completely wrong in a way that works exactly the same (!).
4907 Johan is confused, how could this possibly work? Example
4908 code fails to serve purpose of making things clear.
4911 2003-09-25 Mark McLoughlin <mark@skynet.ie>
4913 * doc/dbus-specification.sgml: don't require header fields
4914 to be 4-byte aligned and specify that fields should be
4915 distinguished from padding by the fact that zero is not
4918 * doc/TODO: remove re-alignment item and add item to doc
4919 the OBJECT_PATH type.
4921 * dbus/dbus-message.c:
4922 (HeaderField): rename the original member to value_offset
4923 and introduce a name_offset member to keep track of where
4924 the field actually begins.
4925 (adjust_field_offsets): remove.
4926 (append_int_field), (append_uint_field),
4927 (append_string_field): don't align the start of the header
4928 field to a 4-byte boundary.
4929 (get_next_field): impl finding the next marhsalled field
4930 after a given field.
4931 (re_align_field_recurse): impl re-aligning a number of
4932 already marshalled fields.
4933 (delete_field): impl deleting a field of any type and
4934 re-aligning any following fields.
4935 (delete_int_or_uint_field), (delete_string_field): remove.
4936 (set_int_field), (set_uint_field): no need to re-check
4937 that we have the correct type for the field.
4938 (set_string_field): ditto and impl re-aligning any
4940 (decode_header_data): update to take into account that
4941 the fields aren't 4-byte aligned any more and the new
4942 way to distinguish padding from header fields. Also,
4943 don't exit when there is too much header padding.
4944 (process_test_subdir): print the directory.
4945 (_dbus_message_test): add test to make sure a following
4946 field is re-aligned correctly after field deletion.
4948 * dbus/dbus-string.[ch]:
4949 (_dbus_string_insert_bytes): rename from insert_byte and
4950 allow the insert of multiple bytes.
4951 (_dbus_string_test): test inserting multiple bytes.
4953 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
4954 warning note to docs about having to re-align any
4955 marshalled values following the string.
4957 * dbus/dbus-message-builder.c:
4958 (append_string_field), (_dbus_message_data_load):
4959 don't align the header field.
4961 * dbus/dbus-auth.c: (process_test_subdir): print the
4964 * test/break-loader.c: (randomly_add_one_byte): upd. for
4967 * test/data/invalid-messages/bad-header-field-alignment.message:
4970 * test/data/valid-messages/unknown-header-field.message: shove
4971 a dict in the unknown field.
4973 2003-09-25 Seth Nickell <seth@gnome.org>
4976 * python/dbus_bindings.pyx.in:
4978 Handle return values.
4980 * python/examples/example-client.py:
4981 * python/examples/example-service.py:
4983 Pass back return values from the service to the client.
4985 2003-09-24 Seth Nickell <seth@gnome.org>
4989 Connect Object methods (when you are sharing an object) up... pass
4990 in a list of methods to be shared. Sharing all the methods just
4991 worked out too weird. You can now create nice Services over the
4994 * python/dbus_bindings.pyx.in:
4996 Keep references to user_data tuples passed into C functions so
4997 Python doesn't garbage collect on us.
4999 Implement MethodReturn and Error subclasses of Message for creating
5000 DBusMessage's of those types.
5002 * python/examples/example-client.py:
5003 * python/examples/example-service.py:
5005 Simple example code showing both how create DBus services and objects,
5006 and how to use them.
5008 2003-09-23 Havoc Pennington <hp@pobox.com>
5010 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
5012 2003-09-23 Havoc Pennington <hp@redhat.com>
5014 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
5015 (dbus_gproxy_disconnect_signal): implement
5016 (dbus_gproxy_manager_remove_signal_match): implement
5017 (dbus_gproxy_manager_add_signal_match): implement
5018 (dbus_gproxy_oneway_call): implement
5020 2003-09-23 Havoc Pennington <hp@pobox.com>
5022 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
5023 subclass. This means dropping the transparent thread safety of the
5024 proxy; you now need a separate proxy per-thread, or your own
5025 locking on the proxy. Probably right anyway.
5026 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
5028 2003-09-22 Havoc Pennington <hp@redhat.com>
5030 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
5032 2003-09-21 Seth Nickell <seth@gnome.org>
5034 First checkin of the Python bindings.
5036 * python/.cvsignore:
5037 * python/Makefile.am:
5038 * python/dbus_bindings.pyx.in:
5039 * python/dbus_h_wrapper.h:
5041 Pieces for Pyrex to operate on, building a dbus_bindings.so
5042 python module for low-level access to the DBus APIs.
5046 High-level Python module for accessing DBus objects.
5051 Build stuff for the python bindings.
5055 Extra macro needed for finding the Python C header files.
5057 2003-09-21 Havoc Pennington <hp@pobox.com>
5059 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
5060 implementing the proxy manager, didn't get very far.
5062 * dbus/dbus-bus.c (dbus_bus_add_match): new
5063 (dbus_bus_remove_match): new
5065 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
5066 path_name argument; adjust the other not-yet-implemented
5067 gproxy constructors to be what I think they should be.
5069 2003-09-21 Havoc Pennington <hp@pobox.com>
5071 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
5072 by default for message bus connections.
5074 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
5075 exit_on_disconnect flag is set and we process the disconnected
5077 (dbus_connection_set_exit_on_disconnect): new function
5079 2003-09-21 Havoc Pennington <hp@pobox.com>
5081 Get matching rules mostly working in the bus; only actually
5082 parsing the rule text remains. However, the client side of
5083 "signal connections" hasn't been started, this patch is only the
5086 * dbus/dispatch.c: fix for the matching rules changes
5088 * bus/driver.c (bus_driver_handle_remove_match)
5089 (bus_driver_handle_add_match): send an ack reply from these
5092 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
5093 arguments, reported by Seth Nickell
5095 * bus/config-parser.c (append_rule_from_element): support
5096 eavesdrop=true|false attribute on policies so match rules
5097 can be prevented from snooping on the system bus.
5099 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
5100 and "destination" in attribute names; fix some docs bugs;
5101 add eavesdrop=true|false attribute
5103 * bus/driver.c (bus_driver_handle_add_match)
5104 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
5107 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
5108 rid of broadcast service concept, signals are just always broadcast
5110 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
5111 mostly implement matching rules stuff (currently only exposed as signal
5114 2003-09-21 Mark McLoughlin <mark@skynet.ie>
5116 * doc/dbus-specification.sgml: Change the header field name
5117 to be an enum and update the rest of the spec to reference
5118 the fields using the conventinal name.
5120 * dbus/dbus-protocol.h: update to reflect the spec.
5122 * doc/TODO: add item to remove the 4 byte alignment requirement.
5124 * dbus/dbus-message.c: Remove the code to generalise the
5125 header/body length and serial number header fields as named
5126 header fields so we can reference field names using the
5128 (append_int_field), (append_uint_field), (append_string_field):
5129 Append the field name as a byte rather than four chars.
5130 (delete_int_or_uint_field), (delete_string_field): reflect the
5131 fact that the field name and typecode now occupy 4 bytes instead
5133 (decode_string_field), (decode_header_data): update to reflect
5134 protocol changes and move the field specific encoding from
5135 decode_string_field() back into decode_header_data().
5137 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
5138 Add utility to aid debugging.
5140 * dbus/dbus-message-builder.c:
5141 (append_string_field), (_dbus_message_data_load): Update to
5142 reflect protocol changes; Change the FIELD_NAME directive
5143 to HEADER_FIELD and allow it to take the field's conventional
5144 name rather than the actual value.
5146 * test/data/*/*.message: Update to use HEADER_FIELD instead
5147 of FIELD_NAME; Always align the header on an 8 byte boundary
5148 *before* updating the header length.
5150 2003-09-15 Havoc Pennington <hp@pobox.com>
5152 * dbus/dbus-pending-call.c: add the get/set object data
5153 boilerplate as for DBusConnection, etc. Use generic object data
5154 for the notify callback.
5156 * glib/dbus-gparser.c (parse_node): parse child nodes
5158 * tools/dbus-viewer.c: more hacking on the dbus-viewer
5160 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
5161 contain functions shared between the convenience lib and the
5164 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
5165 -export-symbols-regex to the GLib library
5167 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
5168 fix the locking in here, and add a default handler for
5169 Introspect() that just returns sub-nodes.
5171 2003-09-14 Havoc Pennington <hp@pobox.com>
5173 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
5174 rather than gfoo consistent
5176 * glib/dbus-gproxy.h: delete for now, move contents to
5177 dbus-glib.h, because the include files don't work right since we
5178 aren't in the dbus/ subdir.
5180 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
5181 (dbus_gproxy_end_call): finish
5182 (dbus_gproxy_begin_call): finish
5184 * glib/dbus-gmain.c (dbus_set_g_error): new
5186 * glib/dbus-gobject.c (handle_introspect): include information
5187 about child nodes in the introspection
5189 * dbus/dbus-connection.c (dbus_connection_list_registered): new
5190 function to help in implementation of introspection
5192 * dbus/dbus-object-tree.c
5193 (_dbus_object_tree_list_registered_and_unlock): new function
5195 2003-09-12 Havoc Pennington <hp@pobox.com>
5197 * glib/dbus-gidl.h: add common base class for all the foo_info
5200 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
5203 * test/Makefile.am: try test srcdir -ef . in addition to test
5204 srcdir = ., one of them should work (yeah lame)
5206 * glib/Makefile.am: build the "idl" parser stuff as a convenience
5209 * glib/dbus-gparser.h: make description_load routines return
5210 NodeInfo* not Parser*
5212 * Makefile.am (SUBDIRS): build test dir after all library dirs
5214 * configure.in: add GTK+ detection
5216 2003-09-07 Havoc Pennington <hp@pobox.com>
5218 * Make Doxygen contented.
5220 2003-09-07 Havoc Pennington <hp@pobox.com>
5222 * doc/dbus-specification.sgml: more updates
5224 2003-09-06 Havoc Pennington <hp@pobox.com>
5226 * doc/dbus-specification.sgml: partial updates
5228 * bus/dbus-daemon-1.1.in: fix the config file docs for the
5229 zillionth time; hopefully I edited the right file this time.
5231 * bus/config-parser.c (append_rule_from_element): support
5232 send_type, send_path, receive_type, receive_path
5234 * bus/policy.c: add message type and path to the list of things
5235 that can be "firewalled"
5237 2003-09-06 Havoc Pennington <hp@pobox.com>
5239 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
5240 (dbus_connection_register_object_path): make this not handle
5241 messages to paths below the given path
5243 2003-09-03 Havoc Pennington <hp@pobox.com>
5245 * test/glib/Makefile.am: add this with random glib-linked test
5248 * glib/Makefile.am: remove the random test programs from here,
5249 leave only the unit tests
5251 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
5252 uscore/javacaps conversion, and fix
5253 (get_object_property, set_object_property): change to .NET
5254 convention for mapping props to methods, set_FooBar/get_FooBar,
5255 since one language has such a convention we may as well copy it.
5256 Plus real methods in either getFooBar or get_foo_bar style won't
5257 collide with this convention.
5259 2003-09-01 Havoc Pennington <hp@pobox.com>
5261 * glib/dbus-gparser.c: implement
5263 * glib/dbus-gobject.c: start implementing skeletons support
5265 * configure.in: when disabling checks/assert, also define
5266 G_DISABLE_ASSERT and G_DISABLE_CHECKS
5268 2003-09-01 Havoc Pennington <hp@pobox.com>
5270 * glib/Makefile.am: rearrange a bunch of files and get "make
5271 check" framework set up
5273 2003-08-31 Havoc Pennington <hp@pobox.com>
5275 * fix build with --disable-tests
5277 2003-08-30 Havoc Pennington <hp@pobox.com>
5279 * dbus/dbus-connection.c: purge DBusMessageHandler
5281 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
5282 use callbacks everywhere
5284 2003-08-30 Havoc Pennington <hp@pobox.com>
5286 * test/data/valid-config-files/system.d/test.conf: change to
5287 root for the user so warnings don't get printed
5289 * dbus/dbus-message.c: add dbus_message_get_path,
5290 dbus_message_set_path
5292 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
5293 dispatching to a path
5295 * dbus/dbus-string.c (_dbus_string_validate_path): add
5297 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
5298 (_dbus_marshal_object_path): implement
5300 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
5301 to contain the path to the target object
5302 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
5303 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
5305 2003-08-30 Havoc Pennington <hp@pobox.com>
5307 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
5309 2003-08-29 Havoc Pennington <hp@pobox.com>
5311 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
5313 (struct DBusObjectSubtree): shrink this
5314 a lot, since we may have a lot of them
5315 (_dbus_object_tree_free_all_unlocked): implement
5316 (_dbus_object_tree_dispatch_and_unlock): implement
5318 2003-08-29 Havoc Pennington <hp@pobox.com>
5320 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
5322 2003-08-28 Havoc Pennington <hp@pobox.com>
5326 * dbus/dbus-connection.c: port to no ObjectID, create a
5327 DBusObjectTree, rename ObjectTree to ObjectPath in public API
5329 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
5330 everything except UnregisterFunction and MessageFunction
5332 * dbus/dbus-marshal.c: port away from DBusObjectID,
5333 add DBUS_TYPE_OBJECT_PATH
5335 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
5336 dbus/dbus-objectid.[hc]: remove these, we are moving to
5337 path-based object IDs
5339 2003-08-25 Havoc Pennington <hp@pobox.com>
5341 Just noticed that dbus_message_test is hosed, I wonder when I
5342 broke that. I thought make check was passing earlier...
5344 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
5345 container tree, will replace most of dbus-object-registry
5347 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
5350 2003-08-19 Havoc Pennington <hp@pobox.com>
5352 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
5353 (dbus_message_is_error): fix this function
5355 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
5358 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
5359 reflect clarified man page
5360 (bus_client_policy_check_can_send): ditto
5362 * bus/session.conf.in: fixup
5364 * bus/system.conf.in: fixup
5366 2003-08-18 Havoc Pennington <hp@redhat.com>
5368 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
5370 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
5371 dumb bug created earlier (wrong order of args to
5372 decode_header_data())
5374 * tools/dbus-send.c: port
5376 * tools/dbus-print-message.c (print_message): port
5378 * test/data/*messages: port all messages over
5380 * dbus/dbus-message-builder.c: support including
5383 * bus/driver.c: port over
5385 * bus/dispatch.c: port over to new stuff
5387 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5388 rename disconnect signal to "Disconnected"
5390 2003-08-17 Havoc Pennington <hp@pobox.com>
5392 This doesn't compile yet, but syncing up so I can hack on it from
5393 work. What are branches for if not broken code? ;-)
5395 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
5396 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
5397 DBUS_HEADER_FIELD_ERROR_NAME
5399 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
5400 for the interface+member pairs
5401 (string_hash): change to use g_str_hash algorithm
5402 (find_direct_function, find_string_function): refactor these to
5405 * dbus/dbus-message.c: port all of this over to support
5406 interface/member fields instead of name field
5408 * dbus/dbus-object-registry.c: port over
5410 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
5411 from _dbus_string_validate_name
5413 * bus/dbus-daemon-1.1: change file format for the
5414 <deny>/<allow> stuff to match new message naming scheme
5416 * bus/policy.c: port over
5418 * bus/config-parser.c: parse new format
5420 2003-08-16 Havoc Pennington <hp@pobox.com>
5422 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
5425 * glib/dbus-gproxy.c: some hacking
5427 2003-08-15 Havoc Pennington <hp@redhat.com>
5429 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
5431 * dbus/dbus-connection.c
5432 (dbus_connection_send_with_reply_and_block): factor out internals;
5433 change to convert any error replies to DBusError instead of
5434 returning them as a message
5436 2003-08-15 Havoc Pennington <hp@pobox.com>
5438 * dbus/dbus-connection.c,
5439 dbus/dbus-pending-call.c: Finish the pending call stuff
5441 2003-08-14 Havoc Pennington <hp@redhat.com>
5443 * dbus/dbus-pending-call.c: start on new object that will replace
5444 DBusMessageHandler and ReplyHandlerData for tracking outstanding
5447 * dbus/dbus-gproxy.c: start on proxy object used to communicate
5448 with remote interfaces
5450 * dbus/dbus-gidl.c: do the boring boilerplate in here
5452 2003-08-12 Havoc Pennington <hp@pobox.com>
5454 * bus/dispatch.c (bus_dispatch): make this return proper
5455 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
5457 * dbus/dbus-errors.c (dbus_set_error): use
5458 _dbus_string_append_printf_valist
5460 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
5461 (_dbus_string_append_printf): new
5463 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
5466 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
5467 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
5468 message is unhandled.
5470 2003-08-11 Havoc Pennington <hp@pobox.com>
5472 * bus/test.c (client_disconnect_handler): change to return
5473 HANDLED (would have been REMOVE_MESSAGE)
5475 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
5476 HANDLED/NOT_YET_HANDLED instead of
5477 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
5480 2003-08-10 Havoc Pennington <hp@pobox.com>
5482 * tools/dbus-send.c (main): add --type argument, for now
5483 supporting only method_call and signal types.
5485 * tools/dbus-print-message.c: print message type
5487 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
5488 init connection->objects
5490 * doc/dbus-specification.sgml: fix sgml
5492 * bus/*.c: port over to object-instance API changes
5494 * test/test-service.c: ditto
5496 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
5497 name, we will have to fix up the rest of the code to also handle
5499 (dbus_message_new): generic message-creation call
5500 (set_string_field): allow appending name field
5502 2003-08-06 Havoc Pennington <hp@pobox.com>
5504 * dbus/dbus-object-registry.c: implement signal connection
5507 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
5509 * dbus/dbus-internals.c (_dbus_memdup): new function
5511 2003-08-02 Havoc Pennington <hp@pobox.com>
5513 * dbus/dbus-message.c (dbus_message_get_no_reply)
5514 (dbus_message_set_no_reply): add these and remove
5515 set_is_error/get_is_error
5517 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
5518 remove the ERROR flag, since there's now an ERROR type
5520 2003-08-01 Havoc Pennington <hp@pobox.com>
5522 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
5525 * dbus/dbus-message.c (dbus_message_get_type): new function
5527 * doc/dbus-specification.sgml: add "type" byte to messages
5529 2003-08-01 Havoc Pennington <hp@pobox.com>
5531 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
5532 a message type enum to distinguish kinds of message
5533 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
5534 that need not be replied to
5536 2003-08-01 Havoc Pennington <hp@pobox.com>
5538 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
5539 (unpack_8_octets): fix no-64-bit-int bug
5541 * dbus/dbus-object-registry.c (validate_id): validate the
5542 connection ID bits, not just the instance ID.
5544 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
5545 the connection-global 33 bits of the object ID
5547 * dbus/dbus-object-registry.c (info_from_entry): fill in
5548 object ID in the new way
5550 * dbus/dbus-objectid.h: rather than high/low bits, specifically
5551 define server/client/instance bits.
5553 2003-07-30 Havoc Pennington <hp@pobox.com>
5555 * dbus/dbus-connection.c (dbus_connection_register_object): fix
5558 2003-07-13 Havoc Pennington <hp@pobox.com>
5560 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
5561 fields to DBusObjectVTable and DBusObjectInfo
5563 2003-07-12 Havoc Pennington <hp@pobox.com>
5565 * dbus/dbus-object-registry.c: implement unit test,
5566 fix bugs discovered in process
5568 * dbus/dbus-connection.c: remove handler_table and
5569 register_handler(), add DBusObjectRegistry usage
5571 * dbus/dbus-objectid.c (dbus_object_id_is_null)
5572 (dbus_object_id_set_null): new functions
5574 2003-07-08 Havoc Pennington <hp@pobox.com>
5576 * dbus/dbus-object.c: implement some of this
5578 * dbus/dbus-object-registry.c
5579 (_dbus_object_registry_add_and_unlock): fill in the object_id out
5581 (_dbus_object_registry_new): handle OOM
5583 2003-07-08 Havoc Pennington <hp@pobox.com>
5585 * dbus/dbus-object.h: sketch out an API for registering objects
5586 with a connection, that allows us to use as little as 24 bytes
5587 per object and lets application code represent an object in
5588 any conceivable way.
5590 * dbus/dbus-object-registry.c: implement the hard bits of the
5591 DBusConnection aspect of object API. Not yet wired up.
5593 2003-07-06 Havoc Pennington <hp@pobox.com>
5595 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
5596 (_dbus_marshal_object_id): new
5597 (_dbus_demarshal_object_id): new
5598 (_dbus_marshal_get_arg_end_pos): support object ID type, and
5599 consolidate identical switch cases. Don't conditionalize handling
5600 of DBUS_TYPE_UINT64, need to handle the type always.
5601 (_dbus_marshal_validate_arg): consolidate identical cases, and
5602 handle DBUS_TYPE_OBJECT_ID
5604 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
5606 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
5608 2003-09-28 Havoc Pennington <hp@pobox.com>
5612 2003-09-28 Havoc Pennington <hp@pobox.com>
5614 * doc/Makefile.am (dbus-specification.html): testing a funky hack
5615 to work with Debian db2html
5617 2003-09-28 Havoc Pennington <hp@pobox.com>
5619 * configure.in: 0.13
5621 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
5622 stylesheet-images for benefit of Debian
5624 Change back to using filesystem-linked sockets for the system
5625 bus, so only root can create the default system bus address.
5627 * bus/system.conf.in: change to use
5628 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5630 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
5633 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5634 here, and AC_DEFINE DBUS_SYSTEM_PATH
5636 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5639 * doc/busconfig.dtd:
5642 2003-08-09 Anders Carlsson <andersca@codefactory.se>
5644 * doc/dbus-specification.sgml:
5645 Add activation reply values.
5647 2003-08-05 Havoc Pennington <hp@redhat.com>
5649 * configure.in: 0.12
5651 2003-08-05 Anders Carlsson <andersca@codefactory.se>
5653 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
5654 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
5655 (add_watch), (remove_watch), (create_source):
5656 Refcount fds, fixes some reentrancy issues.
5658 2003-07-30 Havoc Pennington <hp@redhat.com>
5660 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
5661 bus address to be abstract if we have abstract sockets
5665 2003-07-28 Havoc Pennington <hp@redhat.com>
5667 * bus/messagebus.in: fix to avoid processname/servicename
5668 confusion, from Michael Kearey
5669 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
5671 2003-07-23 Havoc Pennington <hp@pobox.com>
5673 * dbus/dbus-message.c (dbus_message_iter_get_named):
5674 fix from Andy Hanton to remove broken "+1"
5676 2003-07-16 Havoc Pennington <hp@pobox.com>
5678 * tools/dbus-launch.c (babysit): close stdout/stderr in the
5679 babysitter process, as suggested by Thomas Leonard, so
5680 an "eval `dbus-launch --exit-with-session`" will actually
5683 2003-07-16 Havoc Pennington <hp@pobox.com>
5685 * configure.in: print out EXPANDED_* variables in the summary at
5686 the end; clean up the code that computes EXPANDED_ variables and
5687 get the ones using exec_prefix right. Should make things work
5688 when you build without --prefix
5690 2003-06-29 Havoc Pennington <hp@pobox.com>
5692 * mono/Test.cs (class Test): fire up a main loop and run it
5694 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
5695 done once, the app has to do it
5697 2003-06-26 Havoc Pennington <hp@pobox.com>
5699 * mono/Connection.cs: set up connection with the glib main loop
5701 2003-07-01 Havoc Pennington <hp@redhat.com>
5703 * doc/dbus-specification.sgml: clarify the format of a type code,
5704 change suggested by Jim Blandy
5706 2003-06-29 Miloslav Trmac <mitr@volny.cz>
5709 * tools/Makefile.am: Don't assume srcdir == builddir.
5711 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
5712 the allocated block.
5713 (_dbus_memory_test): New function.
5714 * dbus/dbus-test.h: Add _dbus_memory_test ().
5715 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
5717 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
5719 (dbus_message_new): Remove obsolete @todo.
5721 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
5722 (_dbus_marshal_set_uint64): Fix comment.
5724 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
5725 hardcode FIELD_REPLY_SERIAL.
5727 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
5728 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
5730 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
5731 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
5733 2003-06-24 Havoc Pennington <hp@pobox.com>
5735 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
5737 2003-06-23 Anders Carlsson <andersca@codefactory.se>
5743 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
5744 * gcj/org/.cvsignore:
5745 * gcj/org/Makefile.am:
5746 * gcj/org/freedesktop/.cvsignore:
5747 * gcj/org/freedesktop/Makefile.am:
5748 * gcj/org/freedesktop/dbus/.cvsignore:
5749 * gcj/org/freedesktop/dbus/Makefile.am:
5750 * gcj/org/freedesktop/dbus/Message.java: (Message),
5752 * gcj/org/freedesktop/dbus/natMessage.cc:
5753 Fix the build system.
5755 2003-06-22 Havoc Pennington <hp@pobox.com>
5757 * mono/Connection.cs: add more bindings
5759 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
5762 2003-06-22 Havoc Pennington <hp@pobox.com>
5764 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
5765 Start wrapping more stuff.
5767 2003-06-22 Havoc Pennington <hp@pobox.com>
5769 * mono/Message.cs: implement Message.Wrap() that ensures we only
5770 have a single C# wrapper per DBusMessage, assuming it works which
5771 it probably doesn't.
5773 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
5774 (dbus_message_free_data_slot): new
5775 (dbus_message_set_data): new
5776 (dbus_message_get_data): new
5778 2003-06-22 Havoc Pennington <hp@pobox.com>
5780 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
5781 (_dbus_data_slot_allocator_alloc): rework these to keep a
5782 reference count on each slot and automatically manage a global
5783 slot ID variable passed in by address
5785 * bus/bus.c: convert to new dataslot API
5787 * dbus/dbus-bus.c: convert to new dataslot API
5789 * dbus/dbus-connection.c: convert to new dataslot API
5791 * dbus/dbus-server.c: convert to new dataslot API
5793 * glib/dbus-gmain.c: ditto
5797 * bus/connection.c: ditto
5799 2003-06-22 Anders Carlsson <andersca@codefactory.se>
5801 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
5802 after the gcj checks so that the correct configuration tags
5803 will be added to libtool.
5805 * dbus-glib-1.pc.in: No need to specify any includes since
5806 dbus-1.pc.in has those.
5808 2003-06-22 Havoc Pennington <hp@pobox.com>
5810 * mono/*, gcj/*, configure.in, Makefile.am:
5811 Check in makefiles and subdirs for mono and gcj bindings.
5812 Neither binding actually exists, just trying to get through
5813 all the build and other boring bits.
5815 2003-06-21 Philip Blundell <philb@gnu.org>
5817 * tools/dbus-monitor.1: Updated.
5819 * tools/dbus-send.1: Likewise.
5821 2003-06-20 Anders Carlsson <andersca@codefactory.se>
5823 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
5824 for hangup and error after checking read so we won't discard
5825 pending data if both hangup and read are set.
5827 2003-06-19 Philip Blundell <philb@gnu.org>
5829 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
5831 * tools/dbus-send.c: Accept both --system and --session.
5833 * tools/dbus-monitor.c: Same here.
5835 2003-06-19 Anders Carlsson <andersca@codefactory.se>
5837 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
5838 from C++ (Patch by Miloslav Trmac).
5840 2003-06-15 Joe Shaw <joe@assbarn.com>
5842 * configure.in: Check for socklen_t.
5844 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
5846 * test/test-segfault.c: Add #include <sys/time.h>
5848 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
5849 dbus-launch needs it.
5851 2003-06-09 Havoc Pennington <hp@redhat.com>
5853 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
5854 SUN_LEN, it breaks abstract socket usage
5856 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
5859 2003-06-04 Havoc Pennington <hp@pobox.com>
5861 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
5862 using unix:abstract=/foo, and when listening in a tmpdir
5863 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
5865 * dbus/dbus-transport.c (_dbus_transport_open): support
5868 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
5869 support abstract sockets
5871 * dbus/dbus-transport-unix.c
5872 (_dbus_transport_new_for_domain_socket): support abstract sockets
5874 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
5875 toggle as an argument, implement abstract namespace support
5876 (_dbus_listen_unix_socket): ditto
5878 * configure.in: add --enable-abstract-sockets and implement
5879 a configure check for autodetection of the right value.
5881 2003-06-01 Havoc Pennington <hp@pobox.com>
5883 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
5884 in /tmp (though on Linux this will end up being useless,
5885 when we add abstract namespace support)
5887 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
5890 2003-05-28 Colin Walters <walters@verbum.org>
5892 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
5894 2003-05-18 Anders Carlsson <andersca@codefactory.se>
5896 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
5898 2003-05-17 Colin Walters <walters@gnu.org>
5900 * tools/dbus-send.c: Don't exit with an error code if --help was
5901 passed. Default to using the session bus instead of the system
5904 * tools/dbus-launch.c: Ditto.
5906 * tools/dbus-monitor.c: Ditto.
5908 * tools/dbus-send.1: Update with new arguments.
5910 * tools/dbus-launch.c: Emit code to export variables. New
5911 arguments -s and -c to specify shell syntax, and a bit of code to
5912 autodetect syntax. Also, allow specifying a program to run.
5914 * tools/dbus-launch.1: Update with new arguments.
5916 * tools/dbus-send.1: Ditto.
5918 * tools/dbus-monitor.1: Ditto.
5920 2003-05-17 Havoc Pennington <hp@pobox.com>
5922 * bus/config-parser.c (merge_included): merge in policies from
5923 child configuration file.
5925 * bus/policy.c (bus_policy_merge): function to merge two policies
5928 2003-05-16 Havoc Pennington <hp@redhat.com>
5930 * dbus/dbus-connection.c: disable verbose lock spew
5932 * tools/dbus-send.c: add --print-reply command line option
5934 * tools/dbus-print-message.h (print_message): new util function
5935 shared by dbus-send and dbus-monitor
5937 * tools/dbus-monitor.c (handler_func): exit on disconnect
5939 * dbus/dbus-transport-unix.c (do_reading): if the transport is
5940 disconnected, don't try to use the read_watch
5942 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
5943 so we can find this bug more easily
5945 2003-05-16 Havoc Pennington <hp@redhat.com>
5947 * bus/policy.c (free_rule_list_func): avoid a crash when passed
5948 NULL as DBusHashTable is annoyingly likely to do.
5950 2003-05-16 Colin Walters <walters@verbum.org>
5952 * tools/dbus-monitor.c: Add --session argument and usage()
5955 * tools/dbus-monitor.1: Update with new --session arg.
5957 * bus/Makefile.am (install-data-hook): Create
5958 $(libdir)/dbus-1.0/services so that the session bus is happy.
5960 2003-05-15 Havoc Pennington <hp@redhat.com>
5962 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
5963 on non-x86. ifdef's are evil.
5965 2003-05-15 Havoc Pennington <hp@redhat.com>
5967 * configure.in: 0.11
5971 * bus/Makefile.am (initddir): apparently we are supposed to put
5972 init scripts in /etc/rc.d/init.d not /etc/init.d
5974 * bus/Makefile.am: remove the "you must --enable-tests to make
5975 check" as it broke distcheck
5977 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
5979 2003-05-13 James Willcox <jwillcox@gnome.org>
5982 * bus/activation.c: (bus_activation_service_created),
5983 (bus_activation_activate_service):
5984 * bus/driver.c: (bus_driver_send_service_deleted),
5985 (bus_driver_send_service_created), (bus_driver_send_service_lost),
5986 (bus_driver_send_service_acquired),
5987 (bus_driver_send_welcome_message),
5988 (bus_driver_handle_list_services):
5989 * bus/session.conf.in:
5990 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
5991 (dbus_bus_service_exists), (dbus_bus_activate_service):
5994 Add some convenience API which lets you activate a service, and did a
5995 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
5996 and dbus_message_get_args()
5998 2003-05-11 Havoc Pennington <hp@pobox.com>
6000 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
6001 calling _dbus_marshal_validate_arg() for every byte in a byte
6004 * dbus/dbus-message-handler.c: use atomic reference counting to
6005 reduce number of locks slightly; the global lock in here sucks
6007 * dbus/dbus-connection.c
6008 (_dbus_connection_update_dispatch_status_and_unlock): variant of
6009 update_dispatch_status that can be called with lock held; then use
6010 in a couple places to reduce locking/unlocking
6011 (dbus_connection_send): hold the lock over the whole function
6012 instead of acquiring it twice.
6014 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
6016 * bus/connection.c (bus_connections_setup_connection): fix access
6017 to already-freed memory.
6019 * dbus/dbus-connection.c: keep a little cache of linked list
6020 nodes, to avoid using the global linked list alloc lock in the
6021 normal send-message case. Instead we just use the connection lock
6022 that we already have to take.
6024 * dbus/dbus-list.c (_dbus_list_find_last): new function
6026 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
6027 change to use a struct for the atomic type; fix docs,
6028 they return value before increment, not after increment.
6030 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
6031 (_dbus_string_append_8_aligned): new functions to try to
6032 microoptimize this operation.
6033 (reallocate_for_length): break this out of set_length(), to
6034 improve profile info, and also so we can consider inlining the
6037 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
6038 strings with some preallocation, cuts down on our calls to realloc
6039 a fair bit. Though if we can get the "move entire string to empty
6040 string" optimization below to kick in here, it would be better.
6042 * dbus/dbus-string.c (_dbus_string_move): just call
6043 _dbus_string_move_len
6044 (_dbus_string_move_len): add a special case for moving
6045 an entire string into an empty string; we can just
6046 swap the string data instead of doing any reallocs.
6047 (_dbus_string_init_preallocated): new function
6049 2003-05-11 Havoc Pennington <hp@pobox.com>
6051 Write a "test-profile" that does echo client-server with threads;
6052 profile reveals lock contention, memcpy/realloc of buffers, and
6053 UTF-8 validation as hot spots. 20% of lock contention eliminated
6054 with dbus_atomic_inc/dec implementation on x86. Much remaining
6055 contention is global mempool locks for GList and DBusList.
6057 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
6060 * dbus/dbus-connection.c (struct DBusConnection): use
6061 dbus_atomic_t for the reference count
6063 * dbus/dbus-message.c (struct DBusMessage): declare
6064 dbus_atomic_t values as volatile
6066 * configure.in: code to detect ability to use atomic integer
6067 operations in assembly, from GLib patch
6069 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
6070 time, tired of it being wrong in threads and forked processes
6072 * glib/test-profile.c: a little program to bounce messages back
6073 and forth between threads and eat CPU
6075 * dbus/dbus-connection.c: add debug spew macros for debugging
6076 thread locks; include config.h at top; fix deadlock in
6077 dbus_connection_flush()
6079 2003-05-08 Havoc Pennington <hp@pobox.com>
6081 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
6082 data from getting written, and there wasn't a good reason to
6085 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
6086 dbus_verbose lines in test coverage
6087 (main): add list of functions sorted by # of untested blocks
6088 to the coverage report
6090 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
6092 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
6094 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
6095 extend test coverage
6097 * test/data/auth/cancel.auth-script: test canceling an
6100 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
6101 aren't used. in CVS history if we end up needing them.
6103 2003-05-04 Havoc Pennington <hp@pobox.com>
6105 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
6108 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
6109 function, which assumed length was in # of strings, not bytes
6111 * dbus/dbus-message.c (_dbus_message_test): add tests for some
6114 * dbus/dbus-connection.c
6115 (_dbus_connection_queue_received_message): disable function for
6116 now, we are only using it in test mode
6118 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
6119 remove a mistaken FIXME
6121 2003-05-04 Havoc Pennington <hp@pobox.com>
6123 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
6124 unlock mutex on successful return, patch from Anders Gustafsson
6126 2003-05-04 Havoc Pennington <hp@pobox.com>
6128 * dbus-glib-1.pc.in (Requires): fix dependencies, from
6131 2003-05-04 Havoc Pennington <hp@pobox.com>
6133 * tools/dbus-launch.c: implement
6135 * bus/main.c (main), bus/bus.c (bus_context_new):
6136 implement --print-pid and --fork
6138 2003-05-03 Havoc Pennington <hp@redhat.com>
6140 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
6141 the address had no value, and add to test suite. Fix and
6142 regression test from Miloslav Trmac
6144 2003-05-03 Havoc Pennington <hp@pobox.com>
6146 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
6147 watch is invalid when handled
6149 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
6150 dbus-launch utility to launch the bus from a shell script. Didn't
6151 actually implement dbus-launch yet, it's just a placeholder still.
6153 2003-05-03 Havoc Pennington <hp@pobox.com>
6155 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
6156 daemon; also documents daemon config file, so replaces
6157 doc/config-file.txt. Corrected some stuff from config-file.txt in
6158 the process of moving it.
6160 2003-05-03 Havoc Pennington <hp@pobox.com>
6162 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
6165 2003-05-03 Colin Walters <walters@verbum.org>
6167 * dbus/dbus-sysdeps.c (fill_user_info): Test against
6168 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
6170 * Makefile.am: Update to use new .pc versioning scheme.
6172 2003-05-02 Havoc Pennington <hp@redhat.com>
6174 * bus/system.conf.in: allow send/receive to/from message bus
6177 2003-04-30 Havoc Pennington <hp@redhat.com>
6179 * configure.in: print a note when building with unit tests and
6182 2003-04-30 Havoc Pennington <hp@redhat.com>
6184 * Makefile.am: add a check-local that complains if you didn't
6185 configure with --enable-tests
6187 2003-04-29 Havoc Pennington <hp@redhat.com>
6189 * glib/dbus-gmain.c: docs cleanups
6191 * dbus/dbus-types.h: add docs on int64 types
6193 * dbus/dbus-memory.c: fix docs to avoid putting private API in
6194 public API docs section
6196 2003-04-29 Havoc Pennington <hp@redhat.com>
6198 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
6199 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
6200 parallel install API version, not with the D-BUS package version.
6202 * HACKING: move some of README over here
6204 * README: updates, and document API/ABI policy
6206 * configure.in: reindentation
6208 2003-04-29 Havoc Pennington <hp@redhat.com>
6210 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
6211 to use this library" to be sure people have the right
6214 2003-04-28 Havoc Pennington <hp@redhat.com>
6216 * configure.in: add --enable-docs which by default is auto yes if
6217 doxygen and db2html found, no otherwise; but can be forced on/off
6219 * doc/Makefile.am: conditionalize whether to build docs on
6222 2003-04-28 Havoc Pennington <hp@redhat.com>
6224 * configure.in: 0.10
6228 * bus/system.conf.in: add <includedir>system.d</includedir>
6230 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
6231 username was provided but not uid
6233 * bus/config-parser.c (struct BusConfigParser): keep track of
6234 whether the parser is toplevel or was included; change some
6235 of the error handling if it's included.
6237 2003-04-27 Havoc Pennington <hp@pobox.com>
6241 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6242 report correct status if we finish processing authentication
6243 inside this function.
6245 * bus/activation.c (try_send_activation_failure): use
6246 bus_transaction_send_error_reply
6248 * bus/connection.c (bus_connection_get_groups): return an error
6249 explaining the problem
6251 * bus/bus.c (bus_context_check_security_policy): implement
6252 restriction here that inactive connections can only send the
6253 hello message. Also, allow bus driver to send anything to
6256 * bus/connection.c (bus_connection_complete): create the
6257 BusClientPolicy here instead of on-demand.
6258 (bus_connection_get_policy): don't return an error
6260 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
6261 sender field in message being replied to
6263 * bus/bus.c (bus_context_check_security_policy): fix silly typo
6264 causing it to return FALSE always
6266 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
6267 we checked sender rather than destination
6269 2003-04-25 Havoc Pennington <hp@redhat.com>
6271 test suite is slightly hosed at the moment, will fix soon
6273 * bus/connection.c (bus_connections_expire_incomplete): fix to
6274 properly disable the timeout when required
6275 (bus_connection_set_name): check whether we can remove incomplete
6276 connections timeout after we complete each connection.
6278 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
6279 probably still broken.
6281 * bus/services.c (bus_registry_acquire_service): implement max
6282 number of services owned, and honor allow/deny rules on which
6283 services a connection can own.
6285 * bus/connection.c (bus_connection_get_policy): report errors here
6287 * bus/activation.c: implement limit on number of pending
6290 2003-04-25 Havoc Pennington <hp@redhat.com>
6292 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
6293 where we used >= 0 instead of != DBUS_UID_UNSET.
6295 2003-04-25 Havoc Pennington <hp@redhat.com>
6297 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
6298 were toggled without add/remove, fix from Anders Gustafsson
6300 2003-04-24 Havoc Pennington <hp@redhat.com>
6302 * test/data/valid-config-files/basic.conf: add <limit> tags to
6305 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
6306 <limit> tag in configuration file.
6308 2003-04-24 Havoc Pennington <hp@redhat.com>
6310 * bus/dispatch.c: somehow missed some name_is
6312 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
6313 (_dbus_timeout_set_interval): new
6315 * bus/connection.c (bus_connections_setup_connection): record time
6316 when each connection is first set up, and expire them after the
6317 auth timeout passes.
6319 2003-04-24 Havoc Pennington <hp@redhat.com>
6321 * dbus/dbus-message.c (dbus_message_name_is): rename
6322 (dbus_message_service_is): rename
6323 (dbus_message_sender_is): rename
6324 (dbus_message_get_service): rename
6326 2003-04-24 Havoc Pennington <hp@redhat.com>
6328 * configure.in: add --enable-checks
6330 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
6332 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
6333 to use thread locks.
6334 (_dbus_connection_handler_destroyed_locked): move some private
6335 functions into proper docs group
6337 * dbus/dbus-internals.h: add _dbus_return_if_fail,
6338 _dbus_return_val_if_fail
6340 Throughout: use dbus_return_if_fail
6342 2003-04-23 James Willcox <jwillcox@gnome.org>
6345 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
6346 (dbus_connection_setup_with_g_main),
6347 (dbus_server_setup_with_g_main):
6348 * glib/test-dbus-glib.c: (main):
6349 * glib/test-thread-client.c: (main):
6350 * glib/test-thread-server.c: (new_connection_callback), (main):
6351 * tools/dbus-monitor.c: (main):
6353 Added a GMainContext argument to dbus_connection_setup_with_g_main()
6354 and dbus_server_setup_with_g_main().
6356 2003-04-20 Havoc Pennington <hp@pobox.com>
6358 * doc/dbus-specification.sgml: document the restrictions on
6359 message and service names
6361 2003-04-22 Havoc Pennington <hp@redhat.com>
6363 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
6364 support, and do some code cleanups to share more code and
6365 speed up array marshal/demarshal.
6367 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
6369 * configure.in: generate dbus-arch-deps.h
6371 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
6374 2003-04-22 Havoc Pennington <hp@redhat.com>
6376 * test/data/valid-messages/opposite-endian.message: fix test
6377 to use proper type for rply field
6379 * test/data/invalid-messages: add tests for below validation
6381 * dbus/dbus-message.c (decode_header_data): validate field types,
6382 and validate that named fields are valid names
6383 (decode_name_field): consider messages in the
6384 org.freedesktop.Local. namespace to be invalid.
6386 * dbus/dbus-string.c (_dbus_string_validate_name): new
6388 2003-04-19 Havoc Pennington <hp@pobox.com>
6390 * bus/driver.c (bus_driver_handle_hello): check limits and
6391 return an error if they are exceeded.
6393 * bus/connection.c: maintain separate lists of active and inactive
6394 connections, and a count of each. Maintain count of completed
6395 connections per user. Implement code to check connection limits.
6397 * dbus/dbus-list.c (_dbus_list_unlink): export
6399 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
6400 number of bytes in the message queue for a connection
6402 2003-04-18 Havoc Pennington <hp@pobox.com>
6404 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
6406 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
6409 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
6410 on realloc be sure to update the pointer in the keyring
6412 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
6413 offset to avoid writing to unallocated memory
6415 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
6416 try the next mechanism, so we properly handle OOM
6418 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
6420 (_dbus_keyring_new): fix OOM bug
6421 (_dbus_keyring_new_homedir): always set error; impose a maximum
6422 number of keys we'll load from the file, mostly to speed up the
6423 test suite and make its OOM checks more useful, but also for
6426 * dbus/dbus-auth.c (process_error_server): reject authentication
6427 if we get an error from the client
6428 (process_cancel): on cancel, send REJECTED, per the spec
6429 (process_error_client): send CANCEL if we get an error from the
6432 2003-04-18 Havoc Pennington <hp@pobox.com>
6434 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
6437 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
6440 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
6441 about DBUS_TEST_HOMEDIR once
6443 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
6446 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
6447 config file so we test the right thing
6449 Throughout: assorted docs improvements
6451 2003-04-18 Havoc Pennington <hp@pobox.com>
6453 * glib/dbus-gmain.c: adapt to watch changes
6455 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
6457 * dbus/dbus-server.h: remove dbus_server_handle_watch
6459 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
6461 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
6462 like DBusTimeout, so we don't need dbus_connection_handle_watch
6465 2003-04-17 Havoc Pennington <hp@redhat.com>
6467 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
6468 database usage so it all goes via the DBusUserDatabase cache.
6470 2003-04-17 Havoc Pennington <hp@redhat.com>
6472 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
6473 there was an OOM watch we skipped, we always return TRUE so we
6474 iterate again to have a look at it again. Fixes test suite hang.
6475 Code rearrangement also lets us lose some memset and only iterate
6476 over callbacks once.
6478 * bus/driver.c (bus_driver_handle_message): sense of test for
6481 2003-04-16 Havoc Pennington <hp@pobox.com>
6483 * doc/dbus-specification.sgml: make spec say serials are unsigned
6485 * dbus/dbus-message.h: change message serials to unsigned
6487 * dbus/dbus-connection.c: adapt to message serials being unsigned
6489 2003-04-15 Havoc Pennington <hp@pobox.com>
6491 * bus/bus.c: create and keep around a shared DBusUserDatabase
6494 * bus/connection.c (bus_connection_get_groups): don't cache
6495 groups for user in the connection object, since user database
6496 object now does that.
6498 2003-04-16 Havoc Pennington <hp@redhat.com>
6500 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
6501 list of size counters
6502 (_dbus_message_loader_putback_message_link): put back a popped link
6504 * dbus/dbus-connection.c
6505 (dbus_connection_set_max_live_messages_size): rename
6507 (dbus_connection_get_outgoing_size): get size of outgoing
6509 (_dbus_connection_set_connection_counter): remove this cruft
6511 2003-04-14 Havoc Pennington <hp@redhat.com>
6513 * dbus/dbus-userdb.c: user database abstraction, mostly to get
6514 caching, but at some point we might want to be able to use a
6517 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
6518 SHA1 conf file to test the sha1 auth mechanism, since the regular
6519 test always uses EXTERNAL when available.
6522 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
6523 add conf file that requires use of sha1 auth
6525 2003-04-13 Havoc Pennington <hp@pobox.com>
6527 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
6528 from Philip Blundell to send messages and monitor them.
6530 2003-04-13 Havoc Pennington <hp@pobox.com>
6532 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
6535 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
6538 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6539 fix to only recover unused bytes if we're already authenticated
6540 (_dbus_transport_get_is_authenticated): fix to still mark us
6541 authenticated if there are unused bytes.
6543 * bus/dispatch.c: implement security policy checking
6545 * bus/connection.c (bus_transaction_send_from_driver): new
6547 * bus/bus.c (bus_context_check_security_policy): new
6549 * bus/dispatch.c (send_service_nonexistent_error): delete this,
6550 now we just set the DBusError and it gets converted to an error
6553 * bus/connection.c (allow_user_function): enable code using actual
6554 data from the config file
6556 * bus/policy.c (list_allows_user): handle wildcard rules for
6557 user/group connection perms
6559 2003-04-13 Havoc Pennington <hp@pobox.com>
6561 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
6563 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
6565 * bus/policy.c (bus_policy_append_mandatory_rule)
6566 (bus_policy_append_default_rule, bus_policy_append_user_rule)
6567 (bus_policy_append_group_rule): new functions
6569 2003-04-12 Havoc Pennington <hp@pobox.com>
6571 * bus/config-parser.c (bus_config_parser_new): fix a memleak
6573 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
6574 the pid/gid/uid, just for paranoia.
6576 * test/break-loader.c (randomly_do_n_things): find a byte
6577 containing a type code, and randomly change it to a different
6580 2003-04-12 Havoc Pennington <hp@pobox.com>
6582 * bus/policy.h: change BusPolicy to be the thing from the config
6583 file, and rename old BusPolicy to BusClientPolicy
6585 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
6586 match change in how policy works
6588 * dbus/dbus-internals.h: mark assert_not_reached as
6589 __attribute((noreturn))__
6591 2003-04-11 Havoc Pennington <hp@redhat.com>
6593 * doc/dbus-specification.sgml: fix a spot with the wrong name for
6594 the broadcast service. Use boolean return for ServiceExists.
6596 2003-04-11 Havoc Pennington <hp@redhat.com>
6598 * configure.in: add another directory to look for qt in.
6600 2003-04-11 Havoc Pennington <hp@redhat.com>
6602 * AUTHORS: add Colin Walters
6604 2003-04-11 Havoc Pennington <hp@redhat.com>
6610 2003-04-11 Havoc Pennington <hp@redhat.com>
6612 * bus/messagebus.in: remove pid file when stopping the
6613 message bus, since the bus won't have privileges to remove it
6616 2003-04-11 Havoc Pennington <hp@redhat.com>
6618 * bus/bus.c (bus_context_new): move credentials change after
6621 2003-04-11 Havoc Pennington <hp@pobox.com>
6623 * test/decode-gcov.c: add "below average functions" to the
6624 coverage report, and change how some of the code works.
6626 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
6627 not in the coverage stats.
6629 * test/test-service.c (main): use _dbus_verbose not fprintf in a
6630 couple places so running the test suite doesn't result in megaspam.
6632 2003-04-11 Havoc Pennington <hp@pobox.com>
6634 * bus/dispatch.c (check_existent_service_activation): accept a no
6635 memory error in a place we didn't before
6637 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
6638 in case the first one failed," since the test suite is less
6641 2003-04-10 Havoc Pennington <hp@pobox.com>
6643 * bus/dispatch.c (check_segfault_service_activation): add test
6644 for launching an executable that just crashes.
6646 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
6647 don't leave a million cores. We'll see how portable this is.
6649 2003-04-10 Havoc Pennington <hp@pobox.com>
6651 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
6652 the possible parent failures before we fork, so that we don't
6653 fail to create a babysitter after creating the child.
6655 * bus/activation.c (bus_activation_activate_service): kill child
6656 if we don't successfully complete the activation.
6658 2003-04-10 Havoc Pennington <hp@redhat.com>
6660 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
6661 the connection if it's disconnected
6663 * bus/activation.c (bus_activation_service_created): use new
6664 transaction features to roll back removal of pending activation if
6665 we don't successfully create the service after all. Don't remove
6666 pending activation if the function fails.
6668 * dbus/dbus-list.c (_dbus_list_insert_before_link)
6669 (_dbus_list_insert_after_link): new code to facilitate
6672 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
6673 new functionality, so we can preallocate the ability to insert
6676 * bus/connection.c (bus_transaction_add_cancel_hook): new function
6677 allowing us to put custom hooks in a transaction to be used for
6678 cancelling said transaction
6680 * doc/dbus-specification.sgml: add some discussion of secondary
6681 service owners, and disallow zero-length service names
6683 * bus/services.c (bus_registry_acquire_service): new function,
6684 splits out part of bus_driver_handle_acquire_service() and fixes
6685 a bug where we didn't remove the service doing the acquiring
6686 from the secondary queue if we failed to remove the current owner
6687 from the front of the queue.
6689 2003-04-10 Alexander Larsson <alexl@redhat.com>
6691 * doc/dbus-specification.sgml:
6692 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
6694 2003-04-10 Alexander Larsson <alexl@redhat.com>
6699 Added files to cvsignore
6701 * dbus/dbus-message.h:
6702 * dbus/dbus-message.c: (dbus_message_iter_get_named):
6703 Make get_named() take two out argument and return a boolean.
6704 (dbus_message_iter_get_args_valist):
6705 Update usage of get_named().
6706 (dbus_message_iter_append_byte):
6708 (dbus_message_iter_append_named)
6710 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
6713 2003-04-10 Alexander Larsson <alexl@redhat.com>
6715 * dbus/dbus-marshal.[ch]:
6716 Add array_type_pos argument to _dbus_marshal_validate_arg.
6717 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
6719 * dbus/dbus-message.[ch]:
6720 Multi-dimensional arrays have full type specification in the
6721 outermost array. Iter code re-arranged to handle this.
6722 Added some more iter tests.
6724 * doc/dbus-specification.sgml:
6727 Update new array encoding description.
6728 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
6730 * test/data/invalid-messages/array-with-mixed-types.message:
6731 * test/data/valid-messages/array-of-array-of-uint32.message:
6732 Change to the new array format.
6734 * test/data/invalid-messages/too-short-dict.message:
6737 * test/data/valid-messages/recursive-types.message:
6738 Fix up and extend test.
6740 2003-04-10 Havoc Pennington <hp@pobox.com>
6742 * bus/dispatch.c: lots of fixes
6744 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
6745 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
6746 that was crack, broke the test service.
6748 * dbus/dbus-transport.c (_dbus_transport_open): fix error
6749 handling to avoid piling up errors if we get a failure on the
6752 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
6753 pid in assertion failures.
6755 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
6756 to some fixed size of file descriptor array. Don't return TRUE
6757 anytime a timeout exists, that led to lots of busy loop silliness
6760 2003-04-09 Havoc Pennington <hp@redhat.com>
6762 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
6763 I'd checked this in earlier but hadn't.
6765 2003-04-09 Havoc Pennington <hp@redhat.com>
6767 * bus/dispatch.c (bus_dispatch_test): get a bit further through
6768 the activation test (man this is getting old!)
6770 2003-04-09 Havoc Pennington <hp@redhat.com>
6772 * test/test-utils.c: use dispatch status function to fix this up
6774 * bus/connection.c (connection_watch_callback): don't dispatch
6776 (connection_timeout_callback): don't dispatch from here
6777 (bus_connections_setup_connection): set the dispatch status function
6778 (bus_connection_disconnected): unset it
6780 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
6781 used to add a connection to be dispatched
6782 (_dbus_loop_iterate): do the dispatching at the end of each
6785 * dbus/dbus-connection.c
6786 (dbus_connection_set_dispatch_status_function): new function
6787 allowing us to fix up main loop usage
6788 (_dbus_connection_last_unref): free all the various function
6790 (dbus_connection_dispatch): call the DispatchStatusFunction
6791 whenever this function returns
6792 (dbus_connection_handle_watch): call DispatchStatusFunction
6793 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
6794 (reply_handler_timeout): call DispatchStatusFunction
6795 (dbus_connection_flush): call DispatchStatusFunction
6797 2003-04-09 Havoc Pennington <hp@redhat.com>
6799 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
6802 * bus/dispatch.c (check_service_activated): fix bug in test
6804 * dbus/dbus-mainloop.c (check_timeout): fix this up
6806 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
6807 verbose output so we can sort out output from different processes,
6808 e.g. in the activation case.
6810 2003-04-08 Colin Walters <walters@gnu.org>
6812 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
6814 (bus_context_new): Set it.
6815 (bus_context_unref): Use it to delete the pid file.
6817 2003-04-08 Havoc Pennington <hp@redhat.com>
6819 * test/data/invalid-messages/array-with-mixed-types.message:
6820 regression test that fails for the moment
6822 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
6823 tests for convenience
6825 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
6826 array of nil, it broke things.
6828 * test/data/invalid-messages/array-of-nil.message: regression test
6830 * test/data/valid-messages/array-of-array-of-uint32.message:
6831 happened to write this so added it to suite
6833 2003-04-08 Havoc Pennington <hp@redhat.com>
6835 * bus/driver.c (bus_driver_handle_acquire_service): init
6836 retval/reply before checking name
6838 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
6839 recursion depth argument
6841 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
6842 in the public struct for future extension
6844 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
6847 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
6850 * doc/dbus-specification.sgml: fix typo
6852 2003-04-08 Alexander Larsson <alexl@redhat.com>
6854 Implemented recursive types, named types and new-style iters
6857 * glib/test-thread-client.c: (thread_func):
6858 * glib/test-thread-server.c: (handle_test_message):
6859 * test/test-service.c: (handle_echo):
6868 * dbus/dbus-internals.c: (_dbus_type_to_string):
6869 Update for new types.
6871 * dbus/dbus-marshal.[ch]:
6872 Implement recursive types and the new marshalling format.
6873 Remove hardcoded dict marshalling.
6874 Marshal named types.
6876 * dbus/dbus-message-builder.c:
6878 Remove references to old types
6880 * dbus/dbus-message.[ch]:
6881 New non-refcounted iter API that supports recursive iters.
6882 Use iters for appending, including support for recursive
6884 Add byte and named type support.
6885 Update everything to new marshalling formats.
6886 Add tests for new API.
6888 * dbus/dbus-protocol.h:
6889 Remove old array types.
6890 Add types: BYTE, ARRAY, DICT, NAMED
6892 * dbus/dbus-string.c:
6893 * dbus/dbus-sysdeps.c:
6894 Make parse_double locale safe.
6896 * dbus/dbus-test-main.c:
6902 * doc/dbus-specification.sgml:
6905 * test/data/incomplete-messages/missing-body.message:
6906 * test/data/invalid-messages/bad-boolean.message:
6907 * test/data/invalid-messages/bad-boolean-array.message:
6908 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
6909 * test/data/invalid-messages/boolean-has-no-value.message-raw:
6910 * test/data/invalid-messages/too-short-dict.message:
6911 * test/data/valid-messages/dict-simple.message:
6912 * test/data/valid-messages/dict.message:
6913 * test/data/valid-messages/emptiness.message:
6914 * test/data/valid-messages/lots-of-arguments.message:
6915 * test/data/valid-messages/no-padding.message:
6916 * test/data/valid-messages/recursive-types.message:
6917 Add missing NAME fields
6918 Fix up dicts & arrays
6920 * test/data/invalid-messages/dict-with-nil-value.message:
6921 Removed, this is not invalid anymore.
6923 * test/data/valid-messages/recursive-types.message:
6924 Add new test for deeply recursive types.
6926 2003-04-07 Havoc Pennington <hp@pobox.com>
6928 * bus/driver.c (bus_driver_handle_acquire_service): return an
6929 error if you try to acquire a service that starts with ':'
6931 2003-04-07 Havoc Pennington <hp@redhat.com>
6933 * doc/dbus-specification.sgml: require that base service names
6934 start with ':' and that the base service is created/deleted
6935 as first and last things a connection does on the bus
6937 * bus/dispatch.c (check_existent_service_activation): lots more
6938 work on the activation test; it doesn't fully pass yet...
6940 * test/test-service.c (main): fix so we don't memleak the
6941 connection to the message bus
6942 (filter_func): accept a message asking us to exit
6944 2003-04-06 Havoc Pennington <hp@pobox.com>
6946 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
6949 * configure.in: fixes to Qt detection from Colin Walters
6951 * doc/Makefile.am: Only remove generated docbook dirs if they
6952 exist, from Colin Walters
6954 * dbus/dbus-bus.c: change how we set well-known connections to
6955 NULL, so that it works if a single connection is stored in
6956 two well-known array slots.
6958 * test/Makefile.am: remove a lot of stuff that isn't immediately
6959 useful, it's in CVS history if we want it.
6961 * test/test-service.c: use dbus-mainloop instead of that
6964 2003-04-06 Havoc Pennington <hp@pobox.com>
6966 * dbus/Makefile.am: split lists of sources into stuff that goes in
6967 the library, util functions that go in the lib and are also used
6968 elsewhere, and util functions that are used in tests/daemon but
6969 don't go in the lib.
6971 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
6972 here so it can be used in test binaries also
6974 2003-04-06 Havoc Pennington <hp@pobox.com>
6976 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
6977 here in the parent process, so we can return an error if it
6978 fails. Also, move some of the code into the child so the parent
6979 is less hosed if we fail midway through.
6981 * bus/bus.c (bus_context_new): move pidfile detection further up
6982 in the function, before we start overwriting sockets and such.
6984 * bus/messagebus.in: adjust this a bit, not sure if it will work.
6986 * configure.in: add --with-system-pid-file and --with-system-socket
6988 2003-04-06 Colin Walters <walters@verbum.org>
6990 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
6992 * bus/system.conf.in: Declare a pidfile.
6994 * bus/bus.c (bus_context_new): Test for an existing pid file, and
6995 create one (if appropriate).
6997 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
6998 (struct BusConfigParser) [pidfile]: New.
6999 (element_type_to_name, merge_included, start_busconfig_child)
7000 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
7001 (bus_config_parser_unref): Free it.
7002 (bus_config_parser_get_pidfile): New function.
7004 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
7006 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
7008 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
7010 * dbus/dbus-sysdeps.h: Prototype it.
7012 2003-04-06 Havoc Pennington <hp@pobox.com>
7014 * bus/bus.c (bus_context_new): print the address in here, rather
7015 than in main(), because we need to do it before forking the daemon
7017 * bus/dispatch.c (send_service_nonexistent_error): set the sender
7018 on the service nonexistent error
7020 * bus/driver.c (bus_driver_handle_acquire_service): set the
7021 sender on the AcquireService reply
7023 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
7024 server also listen on a UNIX socket so services can connect to it.
7026 2003-04-06 Havoc Pennington <hp@pobox.com>
7028 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
7029 so it detects deadlocks and also we actually init threads when
7032 2003-04-06 Havoc Pennington <hp@pobox.com>
7034 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7035 save the domain socket name, and unlink it when we disconnect the
7036 server. Means that at least when we exit normally, we won't leave
7037 a bunch of junk in /tmp
7039 * dbus/dbus-transport-unix.c
7040 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
7041 memory management). (I was making a real change here but then
7044 2003-04-06 Havoc Pennington <hp@pobox.com>
7046 * bus/bus.c (bus_context_new): fix wrong handling of
7047 server_data_slot_unref() in the error case.
7049 * dbus/dbus-internals.h (_dbus_assert): change so it passes
7050 "(condition) != 0" to _dbus_real_assert so that
7051 "_dbus_assert (pointer)" doesn't cause a warning
7053 * bus/main.c (main): accept --print-address option to print out
7054 the message bus address
7056 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
7058 * dbus/dbus-transport.c (_dbus_transport_open): special error for
7059 "tmpdir" option to unix: address on client side
7061 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
7064 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
7065 we can use to create sockets in the test suite.
7067 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
7068 cleanly. To be used for testing.
7070 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
7072 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
7074 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7075 handle trying to call this when there's no servers active
7077 2003-04-05 Havoc Pennington <hp@pobox.com>
7083 2003-04-05 Havoc Pennington <hp@pobox.com>
7085 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
7086 crash on startup. Need to get "try starting the daemon"
7087 in the test suite I guess. ;-)
7089 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
7090 tracked the number of open connections; it's better done in
7091 application-specific code as you want it to span all servers etc.
7093 2003-04-05 Havoc Pennington <hp@pobox.com>
7095 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
7096 patch from Colin Walters
7098 2003-04-05 Havoc Pennington <hp@pobox.com>
7100 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
7101 reality; in fact multiple mechanisms are allowed.
7103 * dbus/dbus-internals.c (_dbus_real_assert)
7104 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
7105 _dbus_assert_not_reached() into functions, so that they don't show
7106 up in basic block counts for test coverage, and don't use up as
7107 much disk space. Does mean slower execution speed though, so
7108 assumes --disable-asserts is the normal production case.
7110 2003-04-05 Havoc Pennington <hp@pobox.com>
7112 * test/Makefile.am (dist-hook): also dist *.in files
7118 2003-04-05 Havoc Pennington <hp@pobox.com>
7120 * dbus/dbus-string.c: docs warning
7122 * dbus/dbus-spawn.c: missing docs
7124 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
7126 2003-04-05 Havoc Pennington <hp@pobox.com>
7128 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
7131 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
7132 to -1 once we've reaped the babysitter
7133 (_dbus_babysitter_handle_watch): do as much work as we can, not
7136 * bus/activation.c: add code using DBusBabysitter so that we
7137 handle it when a service fails to start up properly.
7138 (bus_activation_service_created): don't remove the activation
7139 entries as we go, just let them get removed when we free the pending
7140 activation. Unref reply messages after sending them.
7142 2003-04-05 Havoc Pennington <hp@pobox.com>
7144 * test/decode-gcov.c (main): print per-directory stats in the report
7146 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
7148 2003-04-05 Havoc Pennington <hp@pobox.com>
7150 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
7152 * test/decode-gcov.c: hack up a little program to suck data
7153 out of gcov files. Yes this is sort of silly.
7155 * configure.in: define something in config.h and do an
7156 AM_CONDITIONAL when gcov is enabled
7158 2003-04-04 Havoc Pennington <hp@redhat.com>
7160 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
7161 return a "babysitter" object that is used to monitor the status of
7162 the spawned process and reap it when required.
7164 * test/test-segfault.c, test/test-exit.c,
7165 test/test-sleep-forever.c: binaries that do various lame things,
7166 used in the test suite.
7168 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
7170 2003-04-03 Havoc Pennington <hp@pobox.com>
7172 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
7173 in preparation for modifying it, dbus-sysdeps is getting
7176 2003-04-03 Havoc Pennington <hp@redhat.com>
7178 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
7181 * bus/*.[hc]: adapt to mainloop change
7183 2003-04-03 Havoc Pennington <hp@redhat.com>
7185 * bus/activation.c (load_directory): fix up memleaks
7186 (bus_activation_entry_free): free the entry
7188 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
7189 we get one from the message bus; fix memleaks.
7191 * dbus/dbus-message.c (dbus_set_error_from_message): new function
7193 2003-04-03 Havoc Pennington <hp@pobox.com>
7195 * bus/config-parser.c (bus_config_parser_unref): free
7196 list of mechanisms, bug discovered by test suite enhancements
7197 (putting system.conf and session.conf into suite)
7199 * test/Makefile.am, test/test-service.c: add placeholder for a
7200 test service that we'll activate as part of test suite. Doesn't
7203 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
7204 setting NULL value, and use system malloc not dbus_malloc()
7205 when we have unavoidable memleakage.
7207 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
7208 didn't work, and support DBUS_BUS_ACTIVATION.
7210 * bus/activation.c (child_setup): pass our well-known bus type to
7213 * bus/config-parser.c: support <type> to specify well-known type
7215 * doc/dbus-specification.sgml: document the env variables to
7216 locate well-known buses and find service activator
7218 2003-04-02 Havoc Pennington <hp@redhat.com>
7220 * test/Makefile.am (all-local): add a rule to copy tests to
7221 builddir, so we can have generated tests. Use this to remove the
7222 silly hack for testing system.conf and session.conf. Will use this
7223 shortly to generate .service files pointing to test binaries.
7225 2003-04-02 Havoc Pennington <hp@redhat.com>
7227 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
7228 current alloc and needed new length, not max of the doubled
7229 allocation and needed new length. Also, when building tests,
7230 don't do the double-allocation stuff, just realloc every time.
7232 2003-04-02 Havoc Pennington <hp@redhat.com>
7234 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
7236 (_dbus_string_get_dirname): new
7237 (_dbus_sysdeps_test): new
7238 (_dbus_directory_open): include dirnames in error messages
7240 * bus/config-parser.c: interpret <include> and <includedir> and
7241 <servicedir> relative to config file location if the given
7242 filename is not absolute.
7244 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
7246 2003-04-02 Havoc Pennington <hp@redhat.com>
7248 * bus/connection.c (bus_transaction_send_error_reply): set sender
7249 service for the error, and unref the reply on success
7251 * bus/activation.c: convert to use BusTransaction so OOM can be
7253 (bus_activation_service_created): set sender of the message
7255 2003-04-01 Havoc Pennington <hp@redhat.com>
7257 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
7258 <includedir> (at least mostly)
7260 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
7261 first, then the user ID
7263 2003-04-01 Havoc Pennington <hp@pobox.com>
7265 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
7268 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
7270 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
7272 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
7273 socket 0777, and unlink any existing socket.
7275 * bus/bus.c (bus_context_new): change our UID/GID and fork if
7276 the configuration file so specifies; set up auth mechanism
7279 * bus/config-parser.c (bus_config_parser_content): add support
7280 for <fork> option and fill in code for <auth>
7282 * bus/system.conf.in: add <fork/> to default configuration,
7283 and limit auth mechanisms to EXTERNAL
7285 * doc/config-file.txt (Elements): add <fork>
7287 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
7288 (_dbus_change_identity): new function
7290 2003-03-31 Havoc Pennington <hp@redhat.com>
7292 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
7293 (_dbus_listen_unix_socket): fix off-by-one error in null
7294 termination spotted by Nalin
7296 2003-03-31 Havoc Pennington <hp@redhat.com>
7298 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
7299 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
7300 having a real home directory available.
7302 2003-03-31 Havoc Pennington <hp@redhat.com>
7304 * bus/Makefile.am (install-data-hook): create /var/run/dbus
7306 * bus/messagebus.in: add init script for Red Hat /etc/init.d
7308 * configure.in: add support for specifying a style of init script
7311 2003-03-31 Havoc Pennington <hp@redhat.com>
7313 Fix some annoying DBusString API and fix all affected code.
7315 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
7317 (_dbus_string_get_data): change to return string instead of using
7319 (_dbus_string_get_const_data): ditto
7320 (_dbus_string_get_data_len): ditto
7321 (_dbus_string_get_const_data_len): ditto
7323 2003-03-31 Havoc Pennington <hp@redhat.com>
7325 * bus/main.c (main): fix up the command line arguments to be nicer
7327 2003-03-31 Havoc Pennington <hp@redhat.com>
7329 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
7330 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
7331 final location that lands in the config file
7333 * bus/config-loader-expat.c (bus_config_load): fix type of
7336 * doc/TODO: remove TODO item for dbus_bus_get()
7338 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
7340 2003-03-31 Havoc Pennington <hp@pobox.com>
7342 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
7343 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
7344 argument since they are always client side
7346 * dbus/dbus-server.c (dbus_server_get_address): new function
7348 * bus/main.c (main): take the configuration file as an argument.
7350 * test/data/valid-config-files/debug-allow-all.conf: new file to
7351 use with dispatch.c tests for example
7353 * bus/test-main.c (main): require test data dir
7355 * bus/bus.c (bus_context_new): change this to take a
7356 configuration file name as argument
7358 * doc/config-file.txt (Elements): add <servicedir>
7360 * bus/system.conf, bus/session.conf: new files
7362 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
7363 well-known socket if none set
7365 * configure.in: create system.conf and session.conf
7367 2003-03-30 Havoc Pennington <hp@pobox.com>
7369 * bus/config-parser.c: hacking
7371 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
7372 to shut down, since it could cause weirdness with the DBusList
7375 * dbus/dbus-list.c (_dbus_list_test): add tests for the
7376 link-oriented stack routines
7377 (alloc_link): free the mempool if the first alloc from it fails
7379 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
7381 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
7383 (_dbus_string_skip_white): new
7385 * doc/config-file.txt (Elements): add <includedir>
7387 2003-03-28 Havoc Pennington <hp@pobox.com>
7389 * dbus/dbus-string.c (_dbus_string_copy_data_len)
7390 (_dbus_string_copy_data): new functions
7392 2003-03-28 Anders Carlsson <andersca@codefactory.se>
7394 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
7398 * dbus/dbus-memory.c:
7401 2003-03-28 Havoc Pennington <hp@pobox.com>
7403 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
7404 I think it may have just been superstition. Not sure.
7406 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
7407 failures that were not being handled.
7409 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
7411 * dbus/dbus-memory.c: add ability to set number of mallocs in a
7412 row that will fail on out-of-memory.
7414 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
7415 function for testing out-of-memory handling.
7417 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
7418 allocation functions, they do map exactly to the expat ones.
7420 2003-03-27 Havoc Pennington <hp@redhat.com>
7422 * bus/config-loader-libxml.c (bus_config_load): add another error
7425 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7428 Add note about automatic service activation.
7430 * doc/dbus-specification.sgml:
7431 Rename the specification and clarify a few things.
7433 2003-03-26 Anders Carlsson <andersca@codefactory.se>
7436 * dbus/dbus-address.c:
7438 * dbus/dbus-marshal.c:
7439 * dbus/dbus-server-debug-pipe.c:
7440 * dbus/dbus-transport-unix.c:
7441 Fix documentation warnings.
7443 2003-03-26 Havoc Pennington <hp@pobox.com>
7445 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
7446 after every test so it's quick and easy to see which leaked, and
7447 so we test multiple dbus_shutdown() calls
7449 * configure.in: change configure.in XML stuff to also support
7452 * config-loader-libxml.c: some hacking
7454 * config-loader-expat.c: some hacking
7456 * config-parser.c: some hacking, plus tests
7458 2003-03-25 Havoc Pennington <hp@redhat.com>
7460 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
7462 * configure.in: add --with-xml option to specify XML library,
7463 right now only libxml is supported.
7465 * bus/config-loader-libxml.c, config-parser.c: sync some minor
7466 nonworking code between home and work, still just stubs
7468 2003-03-24 Havoc Pennington <hp@redhat.com>
7470 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
7473 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
7474 NULL argument for "message" if the error is a well-known one,
7475 fill in a generic message in this case.
7477 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
7480 * bus/test.c (bus_test_flush_bus): add
7482 * bus/policy.c (bus_policy_test): test code stub
7484 2003-03-24 Havoc Pennington <hp@pobox.com>
7486 * bus/connection.c (bus_connections_setup_connection): set up
7487 the "can this user connect" function, but it always returns
7488 TRUE until we have a config file parser so we can have a config
7489 file that allows connections.
7491 2003-03-23 Havoc Pennington <hp@pobox.com>
7493 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
7494 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
7495 the mutex, so we can check for proper memory management
7498 * dbus/dbus-dataslot.c: remove the mutex from
7499 DBusDataSlotAllocator and lock it manually when using it,
7500 to simplify fitting it into the global slots framework.
7502 * dbus/dbus-threads.c (init_static_locks): rework how we're
7503 handling global locks so they are easily shut down.
7505 * bus/policy.c (bus_policy_append_rule): fix
7507 * bus/test-main.c (main): check for memleaks
7509 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
7510 test suite check for memleaks
7512 * dbus/dbus-memory.c: add support in test mode for tracking
7513 number of outstanding blocks
7515 2003-03-23 Havoc Pennington <hp@pobox.com>
7517 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
7520 * dbus/dbus-hash.h: add ULONG hash keys
7522 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
7523 (_dbus_get_group_id): new function
7525 2003-03-20 Havoc Pennington <hp@redhat.com>
7527 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
7529 (dbus_connection_get_unix_user): new function
7531 2003-03-20 Havoc Pennington <hp@pobox.com>
7533 * bus/connection.c (bus_connection_send_oom_error): assert that
7534 message has a sender
7535 (connection_execute_transaction): ditto
7536 (bus_connection_preallocate_oom_error): fix to set the sender, and
7537 set recipient to the destination service, not the bus driver
7539 * bus/policy.c: hacking
7541 * dbus/dbus-message.c (dbus_message_service_is): new function
7542 (dbus_message_sender_is): new
7544 2003-03-19 Havoc Pennington <hp@redhat.com>
7546 * bus/policy.c: start sketching code for policy restrictions on
7547 what connections can do.
7549 2003-03-18 Havoc Pennington <hp@redhat.com>
7551 * doc/TODO: some notes on high-level todo items. Little nitpick
7552 stuff is all in @todo, so no need to add it here.
7554 * doc/config-file.txt: some notes on how config file might look
7556 2003-03-18 Anders Carlsson <andersca@codefactory.se>
7562 2003-03-17 Havoc Pennington <hp@redhat.com>
7564 * dbus/dbus-internals.h: add gcc attributes so that
7565 our printf-style functions warn on bad arguments to
7568 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
7571 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7574 2003-03-17 Havoc Pennington <hp@redhat.com>
7576 * bus/test-main.c (main): make it print something as it runs
7577 so make check doesn't look stuck
7579 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
7580 from CVS, now obsolete
7582 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7584 * bus/dispatch.c: (bus_dispatch):
7585 Refetch the service name since it may have been reallocated
7586 when dbus_message_set_sender was called.
7588 * dbus/dbus-sysdeps.c: (_dbus_accept):
7589 Add address and address length variables and use them to stop
7590 valgrind from complaining.
7592 2003-03-17 Havoc Pennington <hp@pobox.com>
7594 All tests pass, no memleaks, no valgrind complaints.
7596 * bus/test.c: refcount handler_slot
7598 * bus/connection.c (bus_connections_new): refcount
7599 connection_data_slot
7601 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
7602 bytes so that auth scripts pass.
7604 * bus/dispatch.c: init message_handler_slot so it gets allocated
7607 * bus/dispatch.c (message_handler_slot_ref): fix memleak
7609 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
7610 dealloc server_pipe_hash when no longer used for benefit of
7613 * dbus/dbus-auth.c (process_command): memleak fix
7615 * bus/dispatch.c (check_hello_message): memleak fix
7617 2003-03-16 Havoc Pennington <hp@pobox.com>
7619 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
7621 2003-03-17 Anders Carlsson <andersca@codefactory.se>
7623 * bus/activation.c (bus_activation_activate_service): Append
7624 the pending activation entry to the list of pending activations.
7626 2003-03-16 Havoc Pennington <hp@pobox.com>
7628 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
7631 * dbus/dbus-address.c (create_entry): fix OOM handling when
7632 failing to alloc entry->method
7634 2003-03-16 Havoc Pennington <hp@pobox.com>
7636 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
7639 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7640 add some missing dbus_set_result
7642 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
7643 alloc the DBusMessageHandler
7645 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
7646 the transport here, since we call this from the finalizer; it
7647 resulted in a double-finalize.
7649 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
7650 where we tried to use transport->connection that was NULL,
7651 happened when transport was disconnected early on due to OOM
7653 * bus/*.c: adapt to handle OOM for watches/timeouts
7655 * dbus/dbus-transport-unix.c: port to handle OOM during
7658 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
7659 reference to unused bytes instead of a copy
7661 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
7664 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
7667 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
7670 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7672 * doc/dbus-specification.sgml:
7673 Document reply message for ActivateService.
7675 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7677 * bus/activation.c: (bus_pending_activation_entry_free),
7678 (bus_pending_activation_free), (bus_activation_new),
7679 (bus_activation_unref), (bus_activation_service_created),
7680 (bus_activation_activate_service):
7682 * bus/bus.c: (bus_context_new):
7683 * bus/desktop-file.c: (new_section):
7684 * bus/driver.c: (bus_driver_send_service_deleted),
7685 (bus_driver_handle_activate_service):
7686 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
7688 * dbus/dbus-connection.c:
7689 (dbus_connection_send_with_reply_and_block):
7690 * dbus/dbus-message.c: (dbus_message_append_args_valist):
7691 * dbus/dbus-protocol.h:
7692 Make activation work better. Now pending activations will be queued
7693 and the daemon won't try to activate services that are already registered.
7695 2003-03-16 Havoc Pennington <hp@pobox.com>
7697 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
7700 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
7701 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
7703 2003-03-16 Havoc Pennington <hp@pobox.com>
7705 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
7706 this. always run the test suite before commit...
7708 * bus/*: adapt to DBusConnection API changes
7710 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
7711 requires renaming stuff to avoid dbus_connection_dispatch name
7714 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
7717 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7718 separate from _dbus_message_loader_return_buffer()
7720 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
7721 this, because it's now always broken to use; the number of
7722 messages in queue vs. the number still buffered by the message
7723 loader is undefined/meaningless. Should use
7724 dbus_connection_get_dispatch_state().
7725 (dbus_connection_dispatch): rename from
7726 dbus_connection_dispatch_message
7728 2003-03-16 Havoc Pennington <hp@pobox.com>
7730 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
7733 2003-03-16 Anders Carlsson <andersca@codefactory.se>
7735 * dbus/dbus-connection.c:
7736 (dbus_connection_send_with_reply_and_block):
7737 Decrease connection->n_incoming when removing an entry
7739 * dbus/dbus-dict.c: (dbus_dict_entry_free),
7740 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7741 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7742 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
7743 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
7744 (dbus_dict_get_byte_array):
7745 Handle NULL arrays and strings. Also add support for byte arrays.
7747 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
7748 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
7749 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7750 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7751 (_dbus_demarshal_dict), (demarshal_and_validate_len),
7752 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
7753 * dbus/dbus-marshal.h:
7754 Add support for marshalling and demarshalling empty arrays and strings.
7756 * dbus/dbus-message.c: (dbus_message_append_args_valist),
7757 (dbus_message_append_string_array),
7758 (dbus_message_iter_get_boolean),
7759 (dbus_message_iter_get_boolean_array),
7760 (dbus_message_iter_get_int32_array),
7761 (dbus_message_iter_get_uint32_array),
7762 (dbus_message_iter_get_double_array),
7763 (dbus_message_iter_get_byte_array),
7764 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
7765 (check_message_handling):
7766 Add support for getting empty arrays and dicts.
7768 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
7769 Don't do any validation at all for now, that's better than just checking
7772 * test/data/valid-messages/emptiness.message:
7773 New test message with lots of empty arrays.
7775 2003-03-16 Havoc Pennington <hp@pobox.com>
7777 * dbus/dbus-connection.c
7778 (_dbus_connection_queue_received_message_link): new function that
7779 can't fail due to OOM
7781 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
7782 new function pops a message together with a list link
7785 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
7786 message queuing functions to avoid needing to alloc memory
7788 2003-03-16 Havoc Pennington <hp@pobox.com>
7790 Oops - test code was only testing failure of around 30 of the
7791 mallocs in the test path, but it turns out there are 500+
7792 mallocs. I believe this was due to misguided linking setup such
7793 that there was one copy of dbus_malloc etc. in the daemon and one
7794 in the shared lib, and only daemon mallocs were tested. In any
7795 case, the test case now tests all 500+ mallocs, and doesn't pass
7796 yet, though there are lots of fixes in this patch.
7798 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
7799 this so that it doesn't need to allocate memory, since it
7800 has no way of indicating failure due to OOM (and would be
7801 annoying if it did).
7803 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
7805 * bus/Makefile.am: rearrange to create two self-contained
7806 libraries, to avoid having libraries with overlapping symbols.
7807 that was resulting in weirdness, e.g. I'm pretty sure there
7808 were two copies of global static variables.
7810 * dbus/dbus-internals.c: move the malloc debug stuff to
7813 * dbus/dbus-list.c (free_link): free list mempool if it becomes
7816 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
7818 * dbus/dbus-address.c (dbus_parse_address): free list nodes
7821 * bus/dispatch.c (bus_dispatch_add_connection): free
7822 message_handler_slot when no longer using it, so
7823 memory leak checkers are happy for the test suite.
7825 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
7827 * bus/bus.c (new_connection_callback): disconnect in here if
7828 bus_connections_setup_connection fails.
7830 * bus/connection.c (bus_connections_unref): fix to free the
7832 (bus_connections_setup_connection): if this fails, don't
7833 disconnect the connection, just be sure there are no side
7836 * dbus/dbus-string.c (undo_alignment): unbreak this
7838 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
7840 (_dbus_auth_new): fix the order in which we free strings
7843 * bus/connection.c (bus_connection_disconnected): fix to
7844 not send ServiceDeleted multiple times in case of memory
7847 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
7848 get the base service name
7849 (dbus_bus_register_client): don't return base service name,
7850 instead store it on the DBusConnection and have an accessor
7852 (dbus_bus_register_client): rename dbus_bus_register()
7854 * bus/dispatch.c (check_hello_message): verify that other
7855 connections on the bus also got the correct results, not
7856 just the one sending hello
7858 2003-03-15 Havoc Pennington <hp@pobox.com>
7860 Make it pass the Hello handling test including all OOM codepaths.
7861 Now to do other messages...
7863 * bus/services.c (bus_service_remove_owner): fix crash when
7864 removing owner from an empty list of owners
7865 (bus_registry_ensure): don't leave service in the list of
7866 a connection's owned services if we fail to put the service
7869 * bus/connection.c (bus_connection_preallocate_oom_error): set
7870 error flag on the OOM error.
7872 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7873 handle _dbus_transport_set_connection failure
7875 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
7876 to create watches up front and simply enable/disable them as
7878 (unix_connection_set): this can now fail on OOM
7880 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
7881 of enabling/disabling a watch or timeout.
7883 * bus/loop.c (bus_loop_iterate): don't touch disabled
7886 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
7888 2003-03-15 Havoc Pennington <hp@pobox.com>
7890 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
7891 write useful test code, after all that futzing around ;-)
7893 Test does not yet pass because we can't handle OOM in
7894 _dbus_transport_messages_pending (basically,
7895 dbus_connection_preallocate_send() does not prealloc the write
7896 watch). To fix this, I think we need to add new stuff to
7897 set_watch_functions, namely a SetEnabled function so we can alloc
7898 the watch earlier, then enable it later.
7900 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
7901 dbus-memory.c to the convenience lib
7903 * bus/test.c: rename some static functions to keep them clearly
7904 distinct from stuff in connection.c. Handle client disconnection.
7906 2003-03-14 Havoc Pennington <hp@pobox.com>
7908 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
7909 transport, tests more of the real codepath. Set up clients
7910 with bus_setup_debug_client.
7912 * bus/test.c (bus_setup_debug_client): function to set up debug
7913 "clients" on the main loop
7915 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
7918 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
7921 * dbus/dbus-server-debug.c: support a debug server based on pipes
7923 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
7924 (_dbus_close): new function
7926 * configure.in: check for socketpair
7928 2003-03-14 Havoc Pennington <hp@redhat.com>
7930 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
7933 * dbus/dbus-transport-debug.c: rework this a good bit to be
7934 less complicated. hopefully still works.
7936 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
7939 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
7942 * dbus/dbus-message.c (dbus_message_copy): rename from
7943 dbus_message_new_from_message, fix it up to copy
7944 all the message fields, add test case
7946 * bus/dispatch.c (bus_dispatch_test): add some more test code,
7947 not quite passing yet
7949 2003-03-14 Havoc Pennington <hp@pobox.com>
7951 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
7952 until no work remains" in test code. (the large diff here
7953 is just code movement, no actual changes)
7955 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
7956 1, no point waiting around for test code.
7957 (_dbus_server_debug_accept_transport): unref the timeout
7958 after adding it (right?)
7960 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
7962 2003-03-13 Havoc Pennington <hp@redhat.com>
7964 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
7967 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
7970 * dbus/dbus-connection.h: Make AddWatchFunction and
7971 AddTimeoutFunction return a bool so they can fail on out-of-memory
7973 * bus/bus.c (bus_context_new): set up timeout handlers
7975 * bus/connection.c (bus_connections_setup_connection): set up
7978 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
7981 * bus/bus.c (bus_context_new): adapt to changes
7983 * bus/connection.c: adapt to changes
7985 * test/watch.c: adapt to DBusWatch changes
7987 * bus/dispatch.c (bus_dispatch_test): started adding this but
7990 2003-03-14 Anders Carlsson <andersca@codefactory.se>
7992 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
7994 2003-03-13 Havoc Pennington <hp@pobox.com>
7996 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
7997 set up a test framework as for the library
7999 2003-03-12 Havoc Pennington <hp@pobox.com>
8001 Throughout: purge global variables, introduce BusActivation,
8002 BusConnections, BusRegistry, etc. objects instead.
8004 * bus/bus.h, bus/bus.c: introduce BusContext as a global
8007 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
8008 going to redo this a bit differently I think
8010 2003-03-12 Havoc Pennington <hp@redhat.com>
8012 Mega-patch that gets the message bus daemon initially handling
8013 out-of-memory. Work still needed. Also lots of random
8014 moving stuff to DBusError instead of ResultCode.
8016 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
8018 * dbus/dbus-connection.c
8019 (dbus_connection_send_with_reply_and_block): use DBusError
8021 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
8024 * dbus/dbus-connection.c (dbus_connection_send): drop the result
8025 code here, as the only failure possible is OOM.
8027 * bus/connection.c (bus_connection_disconnect):
8028 rename bus_connection_disconnected as it's a notification only
8030 * bus/driver.c (bus_driver_handle_acquire_service): don't free
8031 "name" on get_args failure, should be done by get_args;
8032 don't disconnect client for bad args, just return an error.
8033 (bus_driver_handle_service_exists): ditto
8035 * bus/services.c (bus_services_list): NULL-terminate returned array
8037 * bus/driver.c (bus_driver_send_service_lost)
8038 (bus_driver_send_service_acquired): send messages from driver to a
8039 specific client to the client's unique name, not to the broadcast
8042 * dbus/dbus-message.c (decode_header_data): reject messages that
8043 contain no name field
8044 (_dbus_message_get_client_serial): rename to
8045 dbus_message_get_serial and make public
8046 (_dbus_message_set_serial): rename from set_client_serial
8047 (_dbus_message_set_reply_serial): make public
8048 (_dbus_message_get_reply_serial): make public
8050 * bus/connection.c (bus_connection_foreach): allow stopping
8051 iteration by returning FALSE from foreach function.
8053 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
8054 (dbus_connection_free_preallocated_send)
8055 (dbus_connection_preallocate_send): new API for sending a message
8056 without possibility of malloc failure.
8057 (dbus_connection_send_message): rename to just
8058 dbus_connection_send (and same for whole function family)
8060 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
8062 * dbus/dbus-sysdeps.c (_dbus_exit): new function
8064 * bus/activation.c: handle/return errors
8066 * dbus/dbus-errors.h: add more DBUS_ERROR #define
8068 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
8069 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
8070 (_dbus_result_from_errno): move to this file
8072 2003-03-10 Anders Carlsson <andersca@codefactory.se>
8074 * dbus/dbus-marshal.c:
8075 (_dbus_marshal_set_string):
8076 Take a length argument so we can marshal the correct string
8079 (_dbus_marshal_dict), (_dbus_demarshal_dict),
8080 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
8081 (_dbus_marshal_test):
8082 * dbus/dbus-marshal.h:
8083 Add support for marshalling and demarshalling dicts.
8085 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8086 Add support for TYPE DICT.
8088 * dbus/dbus-message.c: (set_string_field):
8089 Adjust header padding.
8091 (dbus_message_append_args_valist), (dbus_message_append_dict),
8092 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
8093 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
8094 (check_message_handling), (check_have_valid_message):
8095 * dbus/dbus-message.h:
8096 Add functions for setting and getting dicts.
8098 * dbus/dbus-protocol.h:
8104 * doc/dbus-specification.sgml:
8105 Add information about how dicts are marshalled.
8107 * test/data/invalid-messages/dict-with-nil-value.message:
8108 * test/data/invalid-messages/too-short-dict.message:
8109 * test/data/valid-messages/dict-simple.message:
8110 * test/data/valid-messages/dict.message:
8111 Add sample messages containing dicts.
8113 2003-03-08 Anders Carlsson <andersca@codefactory.se>
8115 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
8117 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8120 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8121 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
8122 (dbus_dict_set_int32), (dbus_dict_set_uint32),
8123 (dbus_dict_set_double), (dbus_dict_set_string),
8124 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
8125 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
8126 (dbus_dict_set_string_array), (_dbus_dict_test):
8128 Fix according to comments from Havoc.
8130 2003-03-06 Michael Meeks <michael@server.home>
8132 * configure.in: if we don't have kde-config, disable have_qt.
8134 2003-03-07 Anders Carlsson <andersca@codefactory.se>
8139 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
8140 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
8141 (dbus_dict_remove), (dbus_dict_get_value_type),
8142 (dbus_dict_get_keys), (dbus_dict_put_boolean),
8143 (dbus_dict_put_int32), (dbus_dict_put_uint32),
8144 (dbus_dict_put_double), (dbus_dict_put_string),
8145 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
8146 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
8147 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
8148 (dbus_dict_get_int32), (dbus_dict_get_uint32),
8149 (dbus_dict_get_double), (dbus_dict_get_string),
8150 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
8151 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
8152 (dbus_dict_get_string_array), (_dbus_dict_test):
8154 Add DBusDict implementation
8156 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
8160 2003-03-04 Havoc Pennington <hp@pobox.com>
8162 * test/data/auth/*: adapt to changes
8164 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
8165 USERID_BASE64 and change USERNAME_BASE64 to put in username not
8168 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
8169 more stuff from being in a context name, to make the protocol
8170 simpler to deal with
8172 * dbus/dbus-errors.c (dbus_error_has_name): new function
8173 (dbus_error_is_set): new function
8175 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
8176 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
8178 * dbus/dbus-connection.c (dbus_connection_flush): also read
8179 messages during a flush operation
8181 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
8183 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8185 * configure.in: Check for gethostbyname on Solaris.
8187 * dbus/dbus-transport.c: (_dbus_transport_open):
8188 Remove duplicate "tcp" entry.
8190 * doc/dbus-specification.sgml:
8191 Clarify some things.
8193 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8195 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
8196 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
8197 (_dbus_keyring_test):
8198 * dbus/dbus-md5.c: (_dbus_md5_compute):
8199 * dbus/dbus-sha.c: (_dbus_sha_compute):
8202 2003-03-05 Anders Carlsson <andersca@codefactory.se>
8204 * README: Add some things.
8206 2003-03-04 Anders Carlsson <andersca@codefactory.se>
8208 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
8209 after case DBUS_TYPE_BOOELAN.
8211 2003-03-02 Havoc Pennington <hp@pobox.com>
8213 * test/break-loader.c (randomly_set_extreme_ints): add test that
8214 sets really huge and small integers
8216 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
8217 that length of boolean array fits in the string, and that
8218 string has room for boolean value in single-bool case.
8220 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
8221 optional value to "ALIGN" command which is what to fill the
8224 * test/data/valid-messages/no-padding.message: add regression
8225 test for the message padding problem
8227 2003-03-02 Havoc Pennington <hp@pobox.com>
8229 * dbus/dbus-message.c (decode_header_data): fix to always init
8230 message_padding, from Benjamin Dauvergne
8232 2003-03-02 Havoc Pennington <hp@pobox.com>
8238 2003-03-01 Joe Shaw <joe@assbarn.com>
8240 * configure.in: Check for "struct cmsgcred" and try to access its
8241 members for BSD-like unices.
8243 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
8244 _dbus_read_credentials_unix_socket().
8245 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
8246 read() for reading the credential byte off the unix socket. Use
8247 struct cmsgcred on systems that support it.
8249 2003-02-27 Alexander Larsson <alexl@redhat.com>
8253 Make gthreads-2.0 dependency optional. Don't build thread test if
8256 2003-02-27 Havoc Pennington <hp@pobox.com>
8258 * dbus/dbus-connection.c
8259 (dbus_connection_send_message_with_reply_and_block): fix doh!
8260 doh! doh! bug that resulted in never removing a reply from the
8261 queue, no wonder we called get_reply_serial so much ;-)
8263 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
8264 and client serial instead of demarshaling them every time
8266 2003-02-27 Havoc Pennington <hp@pobox.com>
8268 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
8269 more inlined, using dbus-string-private.h, speeds things up
8272 * dbus/dbus-string.c (_dbus_string_free): apply align offset
8273 when freeing the string
8274 (_dbus_string_steal_data): fix for align offset
8275 (undo_alignment): new function
8277 2003-02-26 Havoc Pennington <hp@redhat.com>
8279 All kinds of audit fixes from Owen, plus initial attempt to
8280 handle unaligned memory returned from malloc.
8282 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
8283 leave room for align_offset and nul byte
8284 (fixup_alignment): function to track an align_offset and
8285 ensure real->str is aligned
8286 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
8287 to allow a nul byte plus align offset
8288 (_dbus_string_lock): fix overflow issue
8289 (_dbus_string_init_const_len): add assertions on sanity of len,
8290 assign allocated to be ALLOCATION_PADDING larger than len
8291 (set_length): fixup the overflow handling
8292 (_dbus_string_get_data_len): fix overflow in assertion
8293 (open_gap): detect overflow in size of gap to be opened
8294 (_dbus_string_lengthen): add overflow check
8295 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
8296 (_dbus_string_append): add overflow check
8297 (_dbus_string_append_unichar): overflow
8298 (_dbus_string_delete): fix overflow in assertion
8299 (_dbus_string_copy_len): overflow in assertion
8300 (_dbus_string_replace_len): overflows in assertions
8301 (_dbus_string_find): change to implement in terms of
8302 _dbus_string_find_to
8303 (_dbus_string_find_to): assorted fixage
8304 (_dbus_string_equal_c_str): assert c_str != NULL,
8305 fix logic so the function works
8306 (_dbus_string_ends_with_c_str): fix overflow thingy
8307 (_dbus_string_base64_encode): overflow fix
8308 (_dbus_string_validate_ascii): overflow
8309 (_dbus_string_validate_nul): overflow
8311 2003-02-26 Havoc Pennington <hp@redhat.com>
8313 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
8315 2003-02-26 Alexander Larsson <alexl@redhat.com>
8318 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
8320 * dbus/dbus-connection.c:
8321 * dbus/dbus-connection.h:
8322 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
8323 Add dbus_connection_set_wakeup_main_function and use it when queueing
8324 incoming and outgoing messages.
8327 * dbus/dbus-dataslot.c:
8328 Threadsafe usage of DBusDataSlotAllocator
8330 * dbus/dbus-message.c: (dbus_message_get_args_iter):
8333 * dbus/dbus-server-unix.c:
8336 * glib/dbus-gmain.c:
8337 Implement the new wakeup functions for glib.
8340 * glib/test-thread-client.c:
8341 * glib/test-thread-server.c:
8342 * glib/test-thread.h:
8343 Initial cut at some thread test code. Not really done yet.
8345 2003-02-26 Havoc Pennington <hp@pobox.com>
8347 * dbus/dbus-connection.c
8348 (dbus_connection_send_message_with_reply_and_block): fix crash
8349 where we ref'd the outgoing message instead of the returned reply
8351 * dbus/dbus-transport-unix.c (do_authentication): check read watch
8352 at the end of this function, so if we didn't need to read for
8353 authentication, we reinstall it for receiving messages
8355 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
8356 a NULL sender for peer-to-peer case
8358 * dbus/dbus-transport-unix.c (check_read_watch): handle
8359 !authenticated case correctly
8361 * glib/dbus-gmain.c: add support for DBusServer
8363 * dbus/dbus-server.c: add data slot support
8365 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
8366 return values and handle errors
8368 * dbus/dbus-dataslot.c: factor out the data slot stuff from
8371 * Doxyfile.in (INPUT): add glib subdir
8373 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
8374 setup_with_g_main instead of hookup_with_g_main; write docs
8376 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8378 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
8379 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8380 * dbus/dbus-message.c: (dbus_message_append_boolean),
8381 (dbus_message_append_boolean_array),
8382 (dbus_message_get_args_valist), (_dbus_message_test):
8383 * dbus/dbus-message.h:
8384 * doc/dbus-specification.sgml:
8385 Various fixes as pointed out by Havoc.
8387 * test/data/invalid-messages/bad-boolean-array.message:
8388 * test/data/invalid-messages/bad-boolean.message:
8389 Add invalid boolean value test cases.
8391 2003-02-24 Anders Carlsson <andersca@codefactory.se>
8393 * dbus/dbus-internals.c: (_dbus_type_to_string):
8394 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
8395 (_dbus_marshal_validate_arg):
8396 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8397 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8398 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
8399 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
8400 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
8401 (dbus_message_iter_get_double),
8402 (dbus_message_iter_get_boolean_array), (message_iter_test):
8403 * dbus/dbus-message.h:
8404 * dbus/dbus-protocol.h:
8405 * doc/dbus-specification.sgml:
8406 * test/data/valid-messages/lots-of-arguments.message:
8407 Add support for boolean and boolean array types.
8409 2003-02-23 Havoc Pennington <hp@pobox.com>
8411 * dbus/dbus-keyring.c: finish most of this implementation and
8414 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
8415 these barf if the error isn't cleared to NULL
8417 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
8418 (_dbus_create_directory): new function
8420 * dbus/dbus-errors.c (dbus_set_error): fix warning
8422 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
8423 (_dbus_string_hex_decode): new function
8424 (test_hex_roundtrip): test code
8426 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
8428 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
8430 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
8431 the save-to-temp/rename trick to atomically write the new file
8432 (_dbus_string_parse_uint): new function
8434 2003-02-22 Havoc Pennington <hp@pobox.com>
8436 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
8438 2003-02-22 Havoc Pennington <hp@pobox.com>
8440 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
8441 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
8443 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
8445 * dbus/test/data/sha-1: add US government test suite for SHA-1
8447 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8449 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
8450 Make string arrays NULL-terminated.
8452 * dbus/dbus-memory.c: (dbus_free_string_array):
8453 * dbus/dbus-memory.h:
8454 New function for freeing NULL-terminated string arrays.
8456 * dbus/dbus-message-builder.c: (append_quoted_string),
8457 (_dbus_message_data_load):
8458 Add support for array types.
8460 * dbus/dbus-message.c: (check_message_handling):
8461 Add more types as test cases.
8463 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
8464 (_dbus_string_parse_double):
8465 Add the start offset to the end offset.
8467 * test/data/valid-messages/lots-of-arguments.message:
8468 New test message with lots of arguments.
8470 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8472 * dbus/dbus-message.c: (dbus_message_append_nil),
8473 (dbus_message_append_int32), (dbus_message_append_uint32),
8474 (dbus_message_append_double), (dbus_message_append_string),
8475 (dbus_message_append_int32_array),
8476 (dbus_message_append_uint32_array),
8477 (dbus_message_append_double_array),
8478 (dbus_message_append_byte_array),
8479 (dbus_message_append_string_array):
8480 Fix all out-of-memory handling in these functions.
8482 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8484 * dbus/dbus-message.c: (dbus_message_append_nil):
8487 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8489 * dbus/dbus-message.c: (dbus_message_append_args_valist),
8490 (dbus_message_append_nil), (dbus_message_append_int32_array),
8491 (dbus_message_append_uint32_array),
8492 (dbus_message_append_double_array),
8493 (dbus_message_append_byte_array),
8494 (dbus_message_append_string_array), (dbus_message_get_args_valist),
8495 (dbus_message_iter_get_int32_array),
8496 (dbus_message_iter_get_uint32_array),
8497 (dbus_message_iter_get_double_array),
8498 (dbus_message_iter_get_byte_array),
8499 (dbus_message_iter_get_string_array):
8501 * dbus/dbus-message.h:
8502 Add functions for appending and getting arrays.
8504 2003-02-21 Anders Carlsson <andersca@codefactory.se>
8506 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
8507 element size at least 8 bytes, fixes mempool tests on
8510 2003-02-20 Alexander Larsson <alexl@redhat.com>
8512 * dbus/dbus-transport-unix.c (unix_do_iteration):
8513 Unlock the connection mutex during a blocking select call.
8514 Add todo about how we need a way to wake up the select.
8516 * dbus/dbus-connection-internal.h:
8517 * dbus/dbus-connection.c:
8518 Add _dbus_connection_lock and _dbus_connection_unlock.
8520 2003-02-19 Havoc Pennington <hp@pobox.com>
8522 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
8523 Doxyfile.in, not Doxyfile
8525 * dbus/dbus-keyring.c: do some hacking on this
8527 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
8529 * dbus/dbus-errors.c (dbus_set_error_const): do not call
8531 (dbus_set_error): remove dbus_error_init, check for message ==
8532 NULL *before* we sprintf into it, and add @todo about including
8533 system headers in this file
8535 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
8537 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
8539 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
8540 get various bits of user information based on either username
8542 (_dbus_homedir_from_username): new function
8544 2003-02-19 Anders Carlsson <andersca@codefactory.se>
8547 Add check for nonposix getpwnam_r
8549 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
8550 Align the pool element size to a sizeof (void *) boundary.
8552 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
8553 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
8554 General Solaris fixes.
8556 * test/data/valid-messages/simplest-manual.message:
8557 Explicitly state that we want little-endian packing.
8559 2003-02-19 Mikael Hallendal <micke@codefactory.se>
8561 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8563 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
8564 Added to create a transport connecting using a tcp/ip socket.
8566 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
8567 to a tcp socket at given host and port.
8568 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
8571 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8573 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
8574 Added to create a server listening on a TCP/IP socket.
8576 2003-02-19 Havoc Pennington <hp@pobox.com>
8578 Throughout: mop up all the Doxygen warnings and undocumented
8581 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
8582 to search any paths.
8584 * dbus/dbus-threads.c: move global mutex initializers to
8585 dbus-internals.h, multiple prototypes was confusing doxygen
8586 besides being kind of ugly
8588 * Doxyfile (PREDEFINED): have Doxygen define
8589 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
8590 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
8591 (do not abuse the feature! it's for stuff like the autogenerated
8592 macros in dbus-md5.c, not just for things you don't feel like
8595 2003-02-18 Havoc Pennington <hp@pobox.com>
8597 * dbus/dbus-string.c (_dbus_string_zero): new function
8599 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
8600 wrap it in some dbus-friendly API
8602 * dbus/dbus-types.h: add 16-bit types
8604 2003-02-18 Joe Shaw <joe@assbarn.com>
8606 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
8607 credentials from our currently running process.
8608 (get_word): Fix a buglet where we were copying the entire length
8609 instead of relative to our position.
8611 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
8612 keys on the stack... it's 640k of data.
8614 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
8615 read the credentials byte off the socket, even if we don't have
8617 (_dbus_poll): Implement poll() using select() for systems which
8620 * glib/test-dbus-glib.c (main): Print out an error if no
8621 parameters are given.
8623 * test/data/auth/fallback.auth-script: Added. Tests that a client
8624 can fallback to a secondary auth mechanism if the first fails.
8626 2003-02-18 Havoc Pennington <hp@pobox.com>
8630 2003-02-17 Havoc Pennington <hp@pobox.com>
8632 * doc/dbus-specification.sgml: lots of cosmetic
8633 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
8634 env variable to DBUS_BUS_ADDRESS, s/client/application/,
8635 s/server/bus/ (except in authentication section). Add a section
8636 "Message Bus Message Routing"
8638 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
8644 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8646 * doc/dbus-specification.sgml:
8647 Specification updates.
8649 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8651 * bus/activation.c: (bus_activation_init), (child_setup),
8652 (bus_activation_activate_service):
8654 * bus/main.c: (main):
8655 Set DBUS_ADDRESS environment variable.
8657 * dbus/dbus-errors.c: (dbus_set_error):
8658 Don't use va_copy since that's a C99 feature.
8660 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
8661 (_dbus_spawn_async):
8662 * dbus/dbus-sysdeps.h:
8663 Add child_setup_func to _dbus_spawn_async.
8665 * doc/dbus-specification.sgml:
8666 Update specification.
8668 * test/spawn-test.c: (setup_func), (main):
8671 2003-02-17 Alexander Larsson <alexl@redhat.com>
8673 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
8676 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8680 * doc/dbus-test-plan.sgml:
8681 Add test plan document.
8686 2003-02-17 Anders Carlsson <andersca@codefactory.se>
8688 * dbus/dbus-message.c: (decode_header_data),
8689 (_dbus_message_loader_return_buffer):
8690 Set the header padding amount when loading a message.
8692 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8694 * bus/dispatch.c: (send_one_message):
8695 Only send broadcast messages to registered connections.
8697 * dbus/dbus-message.c: (dbus_message_name_is):
8698 * dbus/dbus-message.h:
8699 New convenience function.
8701 * dbus/dbus-transport-debug.c: (do_reading):
8702 Only dispatch one message per run.
8705 * test/bus-test.c: (new_connection_callback), (die),
8706 (test_hello_client1_handler), (test_hello_client2_handler),
8707 (test_hello_replies), (main):
8709 * test/bus-test-loop.[ch]:
8712 2003-02-16 Havoc Pennington <hp@pobox.com>
8714 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8715 backward conditional
8717 2003-02-16 Alexander Larsson <alexl@redhat.com>
8719 * dbus/dbus-connection.c:
8720 Implement sent_message_with_reply. (with_reply_and block is still
8722 Made dispatch_message not lose message if OOM.
8724 * dbus/dbus-errors.h:
8725 Add NoReply error (for reply timeouts).
8727 2003-02-16 Alexander Larsson <alexl@redhat.com>
8729 * dbus/dbus-hash.c (_dbus_hash_table_unref):
8730 Actually free keys and values when destroying hashtable.
8732 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8734 * dbus/dbus-auth.c: (client_try_next_mechanism):
8737 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
8738 Return TRUE if there's no thread implementation around.
8740 * glib/dbus-gmain.c: (free_source),
8741 (dbus_connection_hookup_with_g_main):
8742 Make sure to remove the GSource when the connection is finalized.
8744 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8746 * bus/dispatch.c: (bus_dispatch_message_handler):
8747 * dbus/dbus-errors.h:
8748 Return an error if someone tries to send a message to a service
8751 2003-02-16 Anders Carlsson <andersca@codefactory.se>
8753 * bus/activation.c: (load_directory), (bus_activation_init),
8754 (bus_activation_activate_service):
8757 (bus_driver_handle_activate_service), (bus_driver_handle_message):
8758 More work on the activation handling.
8760 * dbus/dbus-errors.h:
8761 Add some error messages
8763 * dbus/dbus-message.c: (dbus_message_new_error_reply):
8764 * dbus/dbus-message.h:
8765 New function that creates an error message.
8767 * dbus/dbus-protocol.h:
8768 Add ACTIVATE_SERVER message.
8770 * dbus/dbus-server-unix.c: (unix_handle_watch),
8771 (_dbus_server_new_for_domain_socket):
8772 Call _dbus_fd_set_close_on_exec.
8774 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
8775 (_dbus_spawn_async), (_dbus_disable_sigpipe),
8776 (_dbus_fd_set_close_on_exec):
8777 * dbus/dbus-sysdeps.h:
8778 Add _dbus_fd_set_close_on exec function. Also add function that checks
8779 that all open fds are set to close-on-exec and warns otherwise.
8781 * dbus/dbus-transport-unix.c:
8782 (_dbus_transport_new_for_domain_socket):
8783 Call _dbus_fd_set_close_on_exec.
8785 2003-02-16 Havoc Pennington <hp@pobox.com>
8787 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
8788 allow people to avoid setting SIGPIPE to SIG_IGN
8789 (_dbus_connection_new_for_transport): disable SIGPIPE unless
8790 we've been asked not to
8792 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8794 * dbus/dbus-list.c: (_dbus_list_append_link),
8795 (_dbus_list_prepend_link):
8796 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
8800 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8803 * bus/activation.c: (bus_activation_entry_free),
8804 (add_desktop_file_entry), (load_directory), (bus_activation_init):
8806 * bus/main.c: (main):
8807 Add simple activation support, doesn't work yet though.
8809 2003-02-15 Zack Rusin <zack@kde.org>
8811 * qt/dbus-qthread.cpp: small casting fix
8813 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8815 * dbus/dbus-errors.c: (dbus_set_error):
8816 * dbus/dbus-errors.h:
8817 Add a few errors and make dbus_set_error void.
8819 * dbus/dbus-sysdeps.c:
8820 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
8821 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
8822 * dbus/dbus-sysdeps.h:
8823 Add _dbus_spawn_async.
8825 * test/spawn-test.c: (main):
8826 Test for _dbus_spawn_async.
8828 2003-02-15 Anders Carlsson <andersca@codefactory.se>
8830 * dbus/dbus-internals.h:
8831 Fix build without tests.
8833 * dbus/dbus-list.c: (alloc_link):
8834 Fix a segfault when a malloc fails.
8836 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
8837 (dbus_malloc0), (dbus_realloc):
8838 Add support for malloc debugging.
8840 2003-02-15 Alexander Larsson <alexl@redhat.com>
8842 * dbus/dbus-threads.c:
8843 * dbus/dbus-threads.h:
8844 Add condvars. Remove static mutext from API.
8845 Implement static mutexes by initializing them from threads_init.
8847 * glib/dbus-gthread.c:
8848 * qt/dbus-qthread.cpp:
8849 Update with the thread api changes.
8854 Turn StaticMutex into normal mutex + init function.
8855 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
8856 _dbus_list_append_link, _dbus_list_prepend_link
8859 * dbus/dbus-sysdeps.c:
8860 * dbus/dbus-sysdeps.h:
8861 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
8862 _dbus_atomic_dec. Only slow fallback implementation at the moment.
8864 * dbus/dbus-protocol.h:
8865 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
8867 * dbus/dbus-message.c:
8868 Make ref/unref atomic.
8871 * dbus/dbus-connection-internal.h:
8872 * dbus/dbus-connection.c:
8873 * dbus/dbus-connection.h:
8875 Change _peek to _borrow,_return & _steal_borrowed.
8876 Change disconnect callback to event.
8877 Make dbus_connection_dispatch_messages reentrant.
8879 * dbus/dbus-transport.c:
8880 Don't ref the connection on calls to the transport
8883 * dbus/dbus-message-handler.c:
8886 * glib/dbus-gmain.c:
8887 Don't use peek_message anymore
8890 * test/debug-thread.c:
8891 * test/debug-thread.h:
8892 Simple thread implementation that asserts() on deadlocks in
8893 single-threaded code.
8896 (main) Call debug_threads_init.
8899 Use disconnect message instead of disconnect callback.
8903 Don't call dbus_connection_set_disconnect_function. Instead export
8904 bus_connection_disconnect.
8907 Call bus_connection_disconnect when we get a disconnected message.
8909 2003-02-15 Havoc Pennington <hp@pobox.com>
8911 * dbus/dbus-message.c (dbus_message_new): fool around with the
8914 2003-02-14 Havoc Pennington <hp@pobox.com>
8916 * dbus/dbus-mempool.c: fail if the debug functions so indicate
8918 * dbus/dbus-memory.c: fail if the debug functions indicate we
8921 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
8922 (_dbus_decrement_fail_alloc_counter): debug functions to
8923 simulate memory allocation failures
8925 2003-02-14 Havoc Pennington <hp@pobox.com>
8927 * dbus/dbus-errors.h (struct DBusError): add a word of padding
8930 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8932 * bus/driver.c: (bus_driver_handle_hello):
8934 * bus/services.c: (bus_service_lookup):
8935 Reorder message sending so we get a more sane order.
8937 * test/bus-test.c: (message_handler):
8940 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8942 * bus/driver.c: (bus_driver_send_service_deleted),
8943 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8944 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
8945 (bus_driver_send_welcome_message),
8946 (bus_driver_handle_list_services),
8947 (bus_driver_handle_acquire_service),
8948 (bus_driver_handle_service_exists):
8949 * dbus/dbus-bus.c: (dbus_bus_register_client),
8950 (dbus_bus_acquire_service), (dbus_bus_service_exists):
8951 * dbus/dbus-errors.c: (dbus_result_to_string):
8952 * dbus/dbus-errors.h:
8953 * dbus/dbus-message.c: (dbus_message_append_args),
8954 (dbus_message_append_args_valist), (dbus_message_get_args),
8955 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
8956 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
8957 (dbus_message_iter_get_byte_array),
8958 (dbus_message_iter_get_string_array), (message_iter_test),
8959 (check_message_handling), (_dbus_message_test):
8960 * dbus/dbus-message.h:
8961 * test/bus-test.c: (main):
8962 Change fields to arguments in messages, so that they won't be
8963 confused with header fields.
8965 * glib/test-dbus-glib.c: (main):
8966 Remove append_fields from hello message.
8968 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8970 * dbus/dbus-errors.c:
8971 * dbus/dbus-message.c:
8972 * dbus/dbus-string.c:
8973 Documentation fixes.
8975 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8977 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
8979 Implement support for timeouts in dbus-glib.
8981 2003-02-13 Anders Carlsson <andersca@codefactory.se>
8983 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8984 * dbus/dbus-message.c: (process_test_subdir):
8985 * test/break-loader.c: (find_breaks_based_on):
8986 Plug some memory leaks.
8988 2003-02-13 Richard Hult <rhult@codefactory.se>
8990 * bus/main.c: Fix build.
8992 * dbus/dbus-errors.h:
8993 * dbus/dbus-errors.c: Fix copyright for Anders.
8995 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9000 * bus/connection.c: (bus_connection_foreach):
9003 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
9004 (unescape_string), (new_section), (parse_section_start),
9005 (parse_key_value), (report_error), (bus_desktop_file_load),
9006 (bus_desktop_file_get_string):
9007 * bus/desktop-file.h:
9008 Use DBusError for error reporting.
9010 * bus/dispatch.c: (send_one_message),
9011 (bus_dispatch_message_handler):
9012 * bus/driver.c: (bus_driver_send_service_deleted),
9013 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9014 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
9015 (bus_driver_send_welcome_message),
9016 (bus_driver_handle_list_services),
9017 (bus_driver_handle_acquire_service),
9018 (bus_driver_handle_service_exists):
9019 * bus/loop.c: (bus_loop_run):
9021 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
9023 * bus/utils.c: (bus_wait_for_memory):
9025 New files with general utility functions.
9027 * dbus/dbus-internals.h:
9028 Remove _DBUS_HANDLE_OOM.
9030 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9032 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
9033 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
9034 * dbus/dbus-errors.h:
9035 Add DBusError structure.
9037 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9039 * test/data/valid-messages/standard-acquire-service.message:
9040 * test/data/valid-messages/standard-hello.message:
9041 * test/data/valid-messages/standard-list-services.message:
9042 * test/data/valid-messages/standard-service-exists.message:
9043 Add some standard messages.
9045 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9047 * bus/driver.c: (bus_driver_send_welcome_message),
9048 (bus_driver_handle_list_services),
9049 (bus_driver_handle_acquire_service),
9050 (bus_driver_handle_service_exists), (bus_driver_handle_message):
9051 Update for API changes in libdbus.
9053 * dbus/dbus-message.c: (dbus_message_new_reply):
9054 * dbus/dbus-message.h:
9055 Remove the name argument. The spec states that replies shouldn't
9058 2003-02-13 Anders Carlsson <andersca@codefactory.se>
9060 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
9061 (report_error), (bus_desktop_file_load), (lookup_section),
9062 (lookup_line), (bus_desktop_file_get_raw),
9063 (bus_desktop_file_get_string):
9064 * bus/desktop-file.h:
9065 Some fixes, and new functions for getting a key value from a section.
9067 2003-02-13 Havoc Pennington <hp@pobox.com>
9069 * test/data/auth/fail-after-n-attempts.auth-script: new test
9071 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
9074 2003-02-13 Havoc Pennington <hp@pobox.com>
9076 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
9077 dbus_credentials_match were backward
9079 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
9080 NO_CREDENTIALS and ROOT_CREDENTIALS
9082 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
9083 into here. Never process more commands after we've reached an
9084 end state; store further data as unused bytes.
9086 * test/data/auth/*: add more auth tests
9088 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
9089 command to match exact string and EXPECT_UNUSED to match unused
9092 * test/Makefile.am (dist-hook): fix to dist all the test stuff
9094 2003-02-12 Havoc Pennington <hp@pobox.com>
9096 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
9097 \r off of popped lines
9099 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
9102 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
9105 2003-02-12 Havoc Pennington <hp@pobox.com>
9107 * dbus/Makefile.am: remove break-loader from the build, since it
9110 * configure.in: add --enable-gcov to turn on coverage profiling
9111 flags and disable optimization
9113 2003-02-10 Havoc Pennington <hp@pobox.com>
9115 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
9116 initial cut at test framework for DBusAuth from laptop.
9117 Doesn't quite work yet but it compiles and I need to get
9118 it off the 266mhz laptop. ;-)
9120 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
9121 fix a memleak in error case
9123 2003-02-12 Anders Carlsson <andersca@codefactory.se>
9126 * bus/desktop-file.c:
9127 * bus/desktop-file.h:
9128 Add a desktop file parser.
9130 2003-02-11 Zack Rusin <zack@kde.org>
9132 * qt/message.[h|cpp]: sample implementation
9133 of the KDE wrapper for DBusMessage
9135 2003-02-09 Zack Rusin <zack@kde.org>
9137 * test/bus-test.c: make_it_compile
9138 * doc/dbus-specification.sgml: minimal semantic fix
9140 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9146 2003-02-06 Anders Carlsson <andersca@codefactory.se>
9149 * dbus/dbus-break-loader.c:
9151 * test/break-loader.c:
9152 Move dbus-break-loader to test/ and rename it to break-loader.
9154 2003-02-02 Havoc Pennington <hp@pobox.com>
9156 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
9157 for code to manage cookies in your home directory
9159 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
9161 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
9162 to authenticate, then disconnect the client.
9164 2003-02-03 Alexander Larsson <alexl@redhat.com>
9166 * dbus/dbus-message.c (dbus_message_append_fields):
9169 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9171 * doc/dbus-specification.sgml:
9172 Update address format section.
9174 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9177 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
9178 (message_handler), (new_connection_callback), (loop_quit),
9182 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9184 * bus/driver.c: (bus_driver_handle_service_exists):
9185 Simplify the code a bit.
9187 * dbus/dbus-bus.c: (dbus_bus_service_exists):
9190 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9193 Add libdbus-daemon.la and link to it.
9195 2003-02-01 James Willcox <jwillcox@gnome.org>
9197 * bus/driver.c: (bus_driver_handle_own_service):
9198 Actually include the service reply code in the message.
9200 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9202 * bus/driver.c: (bus_driver_handle_service_exists):
9203 Don't unref the incoming message.
9205 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9207 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
9209 2003-02-02 Anders Carlsson <andersca@codefactory.se>
9211 * dbus/dbus-server.c: (dbus_server_listen):
9212 * dbus/dbus-transport.c: (_dbus_transport_open):
9213 ifdef out the calls to the debug transport and server.
9215 2003-02-02 Alexander Larsson <alexl@redhat.com>
9217 * dbus/dbus-watch.c (dbus_watch_get_flags):
9218 Add note in the docs that ERROR or HANGUP won't be returned
9219 and are assumed always on.
9221 * glib/dbus-gmain.c (add_watch):
9222 Always add IO_ERR | IO_HUP
9224 * dbus/dbus-message.h:
9225 Add semicolon after dbus_message_iter_get_string_array().
9226 Makes qt code build again
9228 2003-02-01 Anders Carlsson <andersca@codefactory.se>
9230 * bus/driver.c: (create_unique_client_name),
9231 (bus_driver_handle_hello):
9232 Don't take a name, just use a numeric id to identify
9236 * dbus/dbus-bus.c: (dbus_bus_register_client),
9237 (dbus_bus_acquire_service), (dbus_bus_service_exists):
9239 Add new convenience functions for communicating with the bus.
9241 * dbus/dbus-message.h:
9243 * dbus/dbus-protocol.h:
9246 2003-02-01 Alexander Larsson <alexl@redhat.com>
9248 * dbus/dbus-message.c (dbus_message_append_fields):
9249 Add some more doc comments.
9251 2003-02-01 Havoc Pennington <hp@pobox.com>
9253 * dbus/dbus-break-loader.c (randomly_modify_length): change
9254 a 4-byte value in the message as if it were a length
9256 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
9257 execute bit on saved files
9259 2003-02-01 Havoc Pennington <hp@pobox.com>
9261 * dbus/dbus-break-loader.c (main): new program to find messages
9262 that break the loader.
9264 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
9265 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
9267 * dbus/dbus-string.c (_dbus_string_set_byte): new
9269 2003-01-31 Havoc Pennington <hp@pobox.com>
9271 * dbus/dbus-message.c: refactor the test code to be more general,
9272 in preparation for writing a "randomly permute test cases to
9273 try to break the loader" program.
9275 2003-01-31 Havoc Pennington <hp@pobox.com>
9277 * doc/dbus-specification.sgml: work on the specification
9279 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
9280 the protocol version of the message.
9282 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
9283 no longer specifies that.
9284 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
9287 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
9288 "break" for DBUS_TYPE_NIL, remove @todo
9290 2003-01-31 Havoc Pennington <hp@pobox.com>
9292 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
9293 just set_is_error/get_is_error as this is a commonly-used
9294 function, and write docs.
9296 2003-01-31 Anders Carlsson <andersca@codefactory.se>
9298 * dbus/dbus-address.c: (dbus_address_entry_free):
9299 Free key and value lists.
9301 * dbus/dbus-internals.c: (_dbus_type_to_string):
9302 Add the types we didn't have.
9304 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
9305 (_dbus_marshal_validate_arg):
9308 * dbus/dbus-message.c: (dbus_message_set_sender):
9309 Remove todo about being able to set sender to NULL.
9311 (dbus_message_set_is_error_reply),
9312 (dbus_message_get_is_error_reply):
9313 * dbus/dbus-message.h:
9316 * dbus/dbus-protocol.h:
9317 Add error reply flag.
9319 * test/data/valid-messages/opposite-endian.message:
9320 Add NIL type to test.
9322 2003-01-31 Havoc Pennington <hp@pobox.com>
9324 * doc/dbus-specification.sgml: fully specify the header. Add
9325 flags and major protocol version, and change header/body len to
9328 * dbus/dbus-message-builder.c (append_saved_length): append length
9331 * dbus/dbus-message.c (dbus_message_create_header): change header
9332 length and body length to unsigned. Add the new fields from the
9334 (_dbus_message_loader_return_buffer): unsigned header/body len
9336 2003-01-30 Havoc Pennington <hp@pobox.com>
9338 * dbus/dbus-auth.c: rework to use only REJECTED, no
9341 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
9342 use REJECTED, suggested by Mark McLoughlin
9344 2003-01-30 Havoc Pennington <hp@pobox.com>
9346 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
9347 a better way to report errors here. e.g. "unix address lacks
9348 path" or something. also "no such file" when the path doesn't
9351 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
9353 (dbus_parse_address): add @todo about documenting address format,
9354 and allowing , and ; to be escaped
9356 2003-01-30 Anders Carlsson <andersca@codefactory.se>
9359 Add dbus-address.[ch]
9361 * dbus/dbus-address.c: (dbus_address_entry_free),
9362 (dbus_address_entries_free), (create_entry),
9363 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
9364 (dbus_parse_address), (_dbus_address_test):
9365 * dbus/dbus-address.h:
9366 New files for dealing with address parsing.
9368 * dbus/dbus-connection.c:
9369 Document timeout functions.
9371 * dbus/dbus-message.c:
9372 Document dbus_message_new_from_message.
9374 * dbus/dbus-server-debug.c:
9377 * dbus/dbus-server.c: (dbus_server_listen):
9378 Parse address and use correct server implementation.
9380 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
9381 * dbus/dbus-string.h:
9382 New function with test.
9384 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
9388 * dbus/dbus-transport-debug.c:
9391 * dbus/dbus-transport.c: (_dbus_transport_open):
9392 Parse address and use correct transport implementation.
9394 2003-01-30 Havoc Pennington <hp@pobox.com>
9396 * dbus/dbus-message.c: use message->byte_order instead of
9397 DBUS_COMPILER_BYTE_ORDER throughout.
9398 (dbus_message_create_header): pad header to align the
9399 start of the body of the message to 8-byte boundary
9401 * dbus/dbus-marshal.h: make all the demarshalers take const
9402 DBusString arguments.
9404 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
9405 validate message args here, so we don't have to do slow validation
9406 later, and so we catch bad messages as they are incoming. Also add
9407 better checks on header_len and body_len. Also fill in
9410 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
9411 implemented properly)
9412 (_dbus_string_validate_nul): new function to check all-nul
9414 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
9415 get_arg_end_pos and remove all validation
9416 (_dbus_marshal_validate_arg): actually do validation here.
9418 2003-01-29 Havoc Pennington <hp@pobox.com>
9420 * dbus/dbus-message.c (check_message_handling): fix assertion
9421 failure on set_client_serial
9423 2003-01-28 Havoc Pennington <hp@pobox.com>
9425 * dbus/dbus-server-debug.c: Add doc section comments
9427 * dbus/dbus-transport-debug.c: add doc section comments
9429 2003-01-28 Havoc Pennington <hp@redhat.com>
9431 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
9432 the reverse order from how I had it
9433 (_dbus_string_base64_encode): reverse encoding order. I was
9434 basically byteswapping everything during encoding.
9436 2003-01-28 Anders Carlsson <andersca@codefactory.se>
9438 * dbus/dbus-connection-internal.h:
9439 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
9440 (_dbus_connection_remove_timeout):
9441 Add functions for adding and removing timeouts.
9443 * dbus/dbus-message.c: (dbus_message_new_from_message):
9444 Add new function that takes a message and creates an exact
9445 copy of it, but with the refcount set to 1.
9446 (check_message_handling):
9449 * dbus/dbus-server-protected.h:
9450 * dbus/dbus-server.c: (_dbus_server_init_base),
9451 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
9452 (dbus_server_set_timeout_functions):
9453 (_dbus_server_remove_timeout):
9454 New functions so that a server can add and remove timeouts.
9456 (dbus_server_listen):
9457 Add commented out call to dbus_server_debug_new.
9459 * dbus/dbus-timeout.c: (_dbus_timeout_new):
9460 Actually set the handler, doh.
9462 * dbus/dbus-transport.c: (_dbus_transport_open):
9463 Add commented out call to dbus_transport_debug_client_new.
9466 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
9468 2003-01-28 Havoc Pennington <hp@pobox.com>
9470 * dbus/dbus-message.c (check_message_handling): function to check
9471 on the loaded message, iterates over it etc.
9473 2003-01-28 Havoc Pennington <hp@pobox.com>
9475 * test/Makefile.am (dist-hook): fix make distdir
9477 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
9479 2003-01-27 Havoc Pennington <hp@pobox.com>
9481 * dbus/dbus-mempool.c (time_for_size): replace printf with
9484 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
9485 empty lines; fix the SAVE_LENGTH stuff to be
9486 START_LENGTH/END_LENGTH so it actually works; couple other
9489 * test/Makefile.am (dist-hook): add dist-hook for .message files
9491 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
9492 can be constant or locked.
9493 (_dbus_string_free): allow freeing a const string as
9496 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
9498 * dbus/dbus-test-main.c (main): take an argument which is the
9499 directory containing test data
9501 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
9502 argument to this and load all the messages in test/data/
9503 checking that they can be loaded or not loaded as appropriate.
9505 2003-01-27 Anders Carlsson <andersca@codefactory.se>
9507 * bus/dispatch.c: (bus_dispatch_message_handler):
9508 Dispatch messages sent to services.
9510 * bus/driver.c: (bus_driver_send_service_deleted),
9511 (bus_driver_send_service_created), (bus_driver_send_service_lost),
9512 (bus_driver_send_service_acquired):
9513 Add helper functions for sending service related messages.
9515 (bus_driver_send_welcome_message):
9516 Send HELLO_REPLY instead of WELCOME.
9518 (bus_driver_handle_list_services):
9519 Send LIST_SERVICES_REPLY instead of SERVICES.
9521 (bus_driver_handle_own_service),
9522 (bus_driver_handle_service_exists):
9523 New message handlers.
9525 (bus_driver_handle_message):
9526 Invoke new message handlers.
9528 (bus_driver_remove_connection):
9529 Don't remove any services here since that's done automatically
9530 by bus_service_remove_owner now.
9533 New function signatures.
9535 * bus/services.c: (bus_service_add_owner):
9536 Send ServiceAcquired message if we're the only primary owner.
9538 (bus_service_remove_owner):
9539 Send ServiceAcquired/ServiceLost messages.
9541 (bus_service_set_prohibit_replacement),
9542 (bus_service_get_prohibit_replacement):
9543 Functions for setting prohibit replacement.
9545 (bus_service_has_owner):
9546 New function that checks if a connection is in the owner queue of
9550 Add new function signatures.
9552 * dbus/dbus-list.c: (_dbus_list_test):
9553 Add tests for _dbus_list_remove_last and traversing the list backwards.
9556 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
9557 go any further, so return NULL then.
9559 * dbus/dbus-protocol.h:
9560 Add new messages, service flags and service replies.
9562 2003-01-26 Havoc Pennington <hp@pobox.com>
9564 * dbus/dbus-message-builder.c: implement, completely untested.
9566 * test/data/*: add data to be used in testing.
9567 ".message" files are our simple loadable text format.
9568 ".message-raw" will be binary dumps of messages.
9570 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
9572 2003-01-26 Havoc Pennington <hp@pobox.com>
9574 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
9576 * dbus/dbus-errors.c (dbus_result_to_string): add
9579 * dbus/dbus-message-builder.c: new file, will contain code to load
9580 up messages from files. Not implemented yet.
9582 2003-01-26 Havoc Pennington <hp@pobox.com>
9584 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
9585 the sender by setting to NULL
9587 2003-01-26 Havoc Pennington <hp@pobox.com>
9589 The unit tests pass, but otherwise untested. If it breaks, the
9590 tests should have been better. ;-)
9592 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
9595 * dbus/dbus-message.c: redo everything so we maintain
9596 message->header as the only copy of the various fields.
9597 This avoids the possibility of out-of-memory in some cases,
9598 for example dbus_message_lock() can't run out of memory anymore,
9599 and avoids extra copying. Figured I may as well go ahead and do
9600 this since it was busted for dbus_message_lock to not return
9601 failure on OOM, and dbus_message_write_header was totally
9602 unchecked for OOM. Also fixed some random other bugs.
9604 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
9605 that strings are nul-terminated. Also, end_pos can be equal
9606 to string length just not greater than, I think.
9607 (_dbus_marshal_set_int32): new function
9608 (_dbus_marshal_set_uint32): new function
9609 (_dbus_marshal_set_string): new function
9611 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
9612 a warning, init timeout_list to NULL
9613 (dbus_connection_send_message): don't use uninitialized variable
9616 * dbus/dbus-string.c (_dbus_string_replace_len): new function
9618 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9620 * bus/driver.c: (bus_driver_handle_hello),
9621 (bus_driver_send_welcome_message):
9624 2003-01-26 Anders Carlsson <andersca@codefactory.se>
9626 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
9627 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9628 (dbus_connection_unref):
9629 * dbus/dbus-marshal.c: (_dbus_marshal_test):
9630 * dbus/dbus-message.c: (dbus_message_unref),
9633 (dbus_message_get_fields):
9634 Remove debugging printout.
9636 (_dbus_message_loader_return_buffer):
9637 Don't store the header string.
9639 (_dbus_message_test):
9642 2003-01-26 Richard Hult <rhult@codefactory.se>
9644 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
9645 the file descriptor list, since it can change under us.
9647 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9649 * glib/dbus-gmain.c: (dbus_connection_prepare),
9650 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
9651 (remove_watch), (dbus_connection_hookup_with_g_main):
9652 Rewrite the glib handling to use its own GSource instead of a
9653 GIOChannel so we can catch messages put in the queue while waiting
9656 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9659 * bus/connection.c: (connection_disconnect_handler),
9660 (connection_watch_callback), (bus_connection_setup):
9661 * bus/dispatch.c: (send_one_message),
9662 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
9663 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
9665 * bus/driver.c: (bus_driver_send_service_deleted),
9666 (bus_driver_send_service_created), (bus_driver_handle_hello),
9667 (bus_driver_send_welcome_message),
9668 (bus_driver_handle_list_services), (bus_driver_remove_connection),
9669 (bus_driver_handle_message):
9671 Refactor code, put the message dispatching in its own file. Use
9672 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
9675 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9677 * dbus/dbus-internals.h:
9678 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
9680 * dbus/dbus-message.c: (dbus_message_get_sender):
9681 * dbus/dbus-message.h:
9682 Implement dbus_message_get_sender.
9684 * dbus/dbus-protocol.h:
9685 Add message and service defines.
9687 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9689 * dbus/dbus-connection.c: (dbus_connection_send_message):
9690 * dbus/dbus-message-internal.h:
9691 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
9692 (dbus_message_write_header):
9693 Remove _dbus_messag_unlock and don't set the client serial on a
9694 message if one already exists.
9696 2003-01-24 Havoc Pennington <hp@pobox.com>
9698 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
9701 * bus/driver.c (bus_driver_handle_list_services): fix a leak
9704 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9706 * dbus/dbus-list.c: (alloc_link), (free_link):
9707 Use a memory pool for the links.
9709 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9711 * bus/connection.c: (bus_connection_foreach):
9713 Add new bus_connection_foreach function.
9715 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
9716 Add function that broadcasts a message to all clients.
9718 (bus_driver_send_service_created), (bus_driver_handle_hello),
9719 (bus_driver_send_welcome_message),
9720 (bus_driver_handle_list_services), (bus_driver_message_handler):
9721 Implement functions that take care of listing services, and notifying
9722 clients when new services are created.
9724 * bus/services.c: (bus_services_list):
9726 Add new function that returns an array of strings with the currently
9727 registered services.
9730 * glib/dbus-gmain.c:
9731 Update copyright year.
9733 2003-01-25 Anders Carlsson <andersca@codefactory.se>
9735 * dbus/dbus-connection.c: (dbus_connection_send_message):
9736 Unlock the message in case it was sent earlier.
9738 (dbus_connection_send_message_with_reply_and_block):
9739 Remove the reply message from the list.
9741 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9742 Set array_len and new_pos correctly.
9744 (_dbus_marshal_test):
9745 Remove debug output.
9747 * dbus/dbus-message-internal.h:
9748 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
9749 New function that returns the reply serial.
9751 (_dbus_message_unlock):
9752 New function that unlocks a message and resets its header.
9754 (dbus_message_append_string_array),
9755 (dbus_message_get_fields_valist),
9756 (dbus_message_iter_get_field_type),
9757 (dbus_message_iter_get_string_array),
9758 (dbus_message_get_fields),
9759 (dbus_message_append_fields_valist):
9760 Handle string arrays.
9762 (dbus_message_set_sender):
9763 Make this function public since the bus daemon needs it.
9765 (decode_header_data):
9766 Set the reply serial to -1 initially.
9768 * dbus/dbus-message.h:
9769 Add dbus_message_set_sender.
9771 2003-01-24 Havoc Pennington <hp@pobox.com>
9773 * doc/dbus-specification.sgml: add some stuff
9775 2003-01-22 Havoc Pennington <hp@pobox.com>
9777 * doc/dbus-specification.sgml: Start to document the protocol.
9779 2003-01-22 Havoc Pennington <hp@pobox.com>
9781 * dbus/dbus-connection.c
9782 (dbus_connection_send_message_with_reply_and_block): add some @todo
9784 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
9786 2003-01-21 Havoc Pennington <hp@pobox.com>
9788 (patch untested because can't compile)
9790 * bus/driver.c (create_unique_client_name): make this function
9791 never recycle client names. Also, caller should initialize
9794 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
9796 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9798 * dbus/dbus-marshal.c: (_dbus_marshal_double),
9799 (_dbus_marshal_int32), (_dbus_marshal_uint32),
9800 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
9801 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
9802 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9803 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9804 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
9805 * dbus/dbus-marshal.h:
9806 * dbus/dbus-protocol.h:
9807 Add support for marshalling and demarshalling integer, double
9810 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9815 * bus/connection.c: (connection_disconnect_handler):
9816 Remove the connection from the bus driver's list.
9818 (connection_watch_callback): Dispatch messages.
9820 (free_connection_data): Free connection name.
9822 (bus_connection_setup): Add connection to the bus driver's list.
9823 (bus_connection_remove_owned_service):
9824 (bus_connection_set_name), (bus_connection_get_name):
9825 Add functions for setting and getting the connection's name.
9828 Add function headers.
9830 * bus/driver.c: (create_unique_client_name),
9831 (bus_driver_handle_hello_message),
9832 (bus_driver_send_welcome_message), (bus_driver_message_handler),
9833 (bus_driver_add_connection), (bus_driver_remove_connection):
9836 * bus/services.c: (bus_service_free):
9838 New file that handles communication and registreation with the bus
9841 2003-01-21 Anders Carlsson <andersca@codefactory.se>
9843 * dbus/dbus-connection.c: (dbus_connection_send_message):
9844 Add a new client_serial parameter.
9846 (dbus_connection_send_message_with_reply):
9847 Remove a @todo since we've implemented the blocking function.
9849 (dbus_connection_send_message_with_reply_and_block):
9850 New function that sends a message and waits for a reply and
9851 then returns the reply.
9853 * dbus/dbus-connection.h:
9856 * dbus/dbus-errors.c: (dbus_result_to_string):
9857 * dbus/dbus-errors.h:
9858 Add new DBUS_RESULT.
9860 * dbus/dbus-message-internal.h:
9861 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
9862 (_dbus_message_set_sender), (dbus_message_write_header),
9863 (dbus_message_new_reply), (decode_header_data),
9864 (_dbus_message_loader_return_buffer), (_dbus_message_test):
9865 * dbus/dbus-message.h:
9866 Add new functions that set the reply serial and sender.
9867 Also marshal and demarshal them correctly and add test.
9869 * dbus/dbus-protocol.h:
9870 Add new DBUS_MESSAGE_TYPE_SENDER.
9873 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
9874 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
9875 (dbus_connection_hookup_with_g_main):
9876 * glib/test-dbus-glib.c: (main):
9877 Rewrite to use GIOChannel and remove the GSource crack.
9879 * test/echo-client.c: (main):
9880 * test/watch.c: (check_messages):
9881 Update for changed APIs
9883 2003-01-19 Anders Carlsson <andersca@codefactory.se>
9885 * dbus/Makefile.am: Add dbus-timeout.[cħ]
9887 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
9888 Create a DBusTimeoutList.
9889 (dbus_connection_set_timeout_functions): Add new function to
9890 set timeout callbacks
9892 * dbus/dbus-connection.h: Add public DBusTimeout API.
9894 * dbus/dbus-message.c: (dbus_message_get_service):
9895 * dbus/dbus-message.h: New function.
9897 * dbus/dbus-server.c: Fix small doc typo.
9899 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
9901 2003-01-19 Anders Carlsson <andersca@codefactory.se>
9903 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
9904 of the string, just as long as specified.
9906 2003-01-19 Havoc Pennington <hp@pobox.com>
9908 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
9911 * dbus/dbus-server.c (dbus_server_set_max_connections)
9912 (dbus_server_get_max_connections, dbus_server_get_n_connections):
9913 keep track of current number of connections, and add API for
9914 setting a max (but haven't implemented enforcing the max yet)
9916 2003-01-18 Havoc Pennington <hp@pobox.com>
9918 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
9919 reading/writing if read_watch != NULL or write_watch != NULL.
9921 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
9922 the message loader code to actually load message->header and
9923 message->body into the newly-created message.
9925 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
9928 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
9929 (dbus_connection_get_max_message_size)
9930 (dbus_connection_set_max_live_messages_size)
9931 (dbus_connection_get_max_live_messages_size): implement some
9932 resource limitation functions
9934 * dbus/dbus-resources.c: new file implementing some of the
9935 resource limits stuff
9937 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
9938 missing docs, add @todo to handle OOM etc.
9940 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
9943 2003-01-18 Havoc Pennington <hp@pobox.com>
9945 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
9946 connection if it hasn't been already.
9948 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
9949 replace with DisconnectFunction.
9951 2003-01-18 Havoc Pennington <hp@pobox.com>
9953 Building --disable-verbose-mode --disable-asserts --disable-tests
9954 cuts the library from 112K to 45K or so
9956 * configure.in: check for varargs macro support,
9957 add --enable-verbose-mode, --enable-asserts.
9959 * dbus/dbus-internals.h (_dbus_assert): support
9961 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
9963 2003-01-18 Havoc Pennington <hp@pobox.com>
9965 * dbus/dbus-test.c: include config.h so that tests actually run
9967 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
9968 so the failure mode when that assumption fails will be plenty
9971 2003-01-18 Havoc Pennington <hp@pobox.com>
9973 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
9975 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
9978 * test/Makefile.am: don't use special variable "TESTS" for echo-*
9979 since we don't want to use those in make check
9981 2003-01-15 Havoc Pennington <hp@redhat.com>
9987 2003-01-15 Havoc Pennington <hp@redhat.com>
9989 * test/Makefile.am: fix so that test source code ends up in the
9990 distribution on make distcheck
9992 2003-01-15 Havoc Pennington <hp@redhat.com>
9998 2003-01-15 Havoc Pennington <hp@redhat.com>
10000 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
10001 fix build when --disable-tests
10003 * Makefile.am (EXTRA_DIST): put HACKING in here
10005 * HACKING: document procedure for making a tarball release.
10007 2003-01-14 Anders Carlsson <andersca@codefactory.se>
10009 * bus/connection.c: (connection_error_handler),
10010 (bus_connection_setup):
10011 * bus/main.c: (main):
10012 Make sure that the DBusConnectionData struct is NULLed
10013 out to prevent a segfault.
10015 * dbus/dbus-errors.c: (dbus_result_to_string):
10016 * dbus/dbus-errors.h:
10017 * dbus/dbus-message.c: (dbus_message_get_fields),
10018 (dbus_message_get_fields_valist), (_dbus_message_test):
10019 * dbus/dbus-message.h:
10020 Make dbus_message_get_fields return a result code so we can
10021 track invalid fields as well as oom.
10023 2003-01-11 Havoc Pennington <hp@pobox.com>
10025 * configure.in: change --enable-test/--enable-ansi action-if-given
10026 to enable_foo=$enableval instead of enable_foo=yes
10028 2003-01-08 Havoc Pennington <hp@pobox.com>
10030 * dbus/dbus-string.c (_dbus_string_align_length): new function
10032 * dbus/dbus-test-main.c: move main() for test app here
10034 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
10035 symbol to run tests, because dbus-test isn't in the main
10038 Code review nitpicks.
10040 * dbus/dbus-message.c (dbus_message_write_header): add newlines
10041 for people with narrow emacs ;-). Assert client_serial was filled
10042 in. Assert message->name != NULL.
10043 (dbus_message_append_fields): have "first_field_type" arg separate
10044 from va list, needed for C++ binding that also uses varargs IIRC
10045 and helps with type safety
10046 (dbus_message_new): add @todo about using DBusString to store
10047 service/name internally
10048 (dbus_message_new): don't leak ->service and ->name on OOM later
10050 (dbus_message_unref): free the service name
10051 (dbus_message_get_fields): same change to varargs
10052 i.e. first_field_type
10053 (_dbus_message_loader_return_buffer): assert that the message data
10054 is aligned (if not it's a bug in our code). Put in verbose griping
10055 about why we set corrupted = TRUE.
10056 (decode_header_data): add FIXME that char* is evil. Was going to
10057 add FIXME about evil locale-specific string.h strncmp, but just
10058 switched to wacky string-as-uint32 optimization. Move check for
10059 "no room for field name" above get_const_data_len() to avoid
10060 assertion failure in get_const_data_len if we have trailing 2
10061 bytes or the like. Check for service and name fields being
10062 provided twice. Don't leak service/name on error. Require field
10063 names to be aligned to 4 bytes.
10065 * dbus/dbus-marshal.c: move byte swap stuff to header
10066 (_dbus_pack_int32): uscore-prefix
10067 (_dbus_unpack_int32): uscore-prefix
10068 (_dbus_unpack_uint32): export
10069 (_dbus_demarshal_string): add @todo complaining about use of
10071 (_dbus_marshal_get_field_end_pos): add @todo about bad error
10072 handling allowing corrupt data to go unchecked
10074 2003-01-08 Havoc Pennington <hp@redhat.com>
10076 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
10077 to the select() as needed for authentication. (should be using
10078 _dbus_poll() not select, but for another day)
10080 * dbus/dbus.h: include dbus/dbus-protocol.h
10082 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10084 * dbus/Makefile.am (dbusinclude_HEADERS): Install
10087 2003-01-08 Anders Carlsson <andersca@codefactory.se>
10089 * dbus/dbus-internals.c: (_dbus_type_to_string):
10090 New function that returns a string describing a type.
10092 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
10093 * dbus/dbus-marshal.h:
10094 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
10095 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
10096 (dbus_message_iter_get_byte_array):
10097 * dbus/dbus-message.h:
10098 Add new convenience functions for appending and getting message fields.
10099 Also add demarshalling routines for byte arrays.
10101 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10103 * dbus/dbus-connection-internal.h:
10104 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
10105 (_dbus_connection_get_next_client_serial),
10106 (dbus_connection_send_message):
10107 * dbus/dbus-internals.h:
10108 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
10109 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
10110 (_dbus_marshal_uint32), (_dbus_demarshal_double),
10111 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
10112 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
10113 (_dbus_verbose_bytes), (_dbus_marshal_test):
10114 * dbus/dbus-marshal.h:
10115 * dbus/dbus-message-internal.h:
10116 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
10117 (dbus_message_write_header), (_dbus_message_lock),
10118 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
10119 (dbus_message_get_name), (dbus_message_append_int32),
10120 (dbus_message_append_uint32), (dbus_message_append_double),
10121 (dbus_message_append_string), (dbus_message_append_byte_array),
10122 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
10123 (dbus_message_iter_unref), (dbus_message_iter_has_next),
10124 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
10125 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
10126 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
10127 (decode_header_data), (_dbus_message_loader_return_buffer),
10128 (message_iter_test), (_dbus_message_test):
10129 * dbus/dbus-message.h:
10130 * dbus/dbus-protocol.h:
10131 * dbus/dbus-test.c: (main):
10132 * dbus/dbus-test.h:
10133 * glib/test-dbus-glib.c: (message_handler), (main):
10134 * test/echo-client.c: (main):
10135 * test/watch.c: (check_messages):
10136 Make messages sendable and receivable for real.
10138 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10140 * dbus/dbus-marshal.c: (_dbus_marshal_double),
10141 (_dbus_marshal_string), (_dbus_marshal_byte_array):
10142 * dbus/dbus-message.c: (dbus_message_append_int32),
10143 (dbus_message_append_uint32), (dbus_message_append_double),
10144 (dbus_message_append_string), (dbus_message_append_byte_array):
10145 Handle OOM restoration.
10147 2003-01-07 Anders Carlsson <andersca@codefactory.se>
10149 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10150 (_dbus_demarshal_string), (_dbus_marshal_test):
10151 * dbus/dbus-marshal.h:
10152 * dbus/dbus-message.c: (dbus_message_get_name),
10153 Document these functions.
10155 (dbus_message_append_int32), (dbus_message_append_uint32),
10156 (dbus_message_append_double), (dbus_message_append_string),
10157 (dbus_message_append_byte_array):
10158 * dbus/dbus-message.h:
10159 Add functions for adding message fields of different types.
10161 * dbus/dbus-protocol.h:
10162 Add the different types.
10164 2003-01-05 Havoc Pennington <hp@pobox.com>
10166 * bus/connection.c: implement routines for handling connections,
10167 first thing is keeping a list of owned services on each connection
10168 and setting up watches etc.
10170 * bus/services.c: implement a mapping from service names to lists
10173 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
10175 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
10176 to use static mutexes for global data
10178 * dbus/dbus-connection.c (dbus_connection_set_data): add new
10179 collection of functions to set/get application-specific data
10180 on the DBusConnection.
10182 2003-01-04 Havoc Pennington <hp@pobox.com>
10184 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
10185 (_dbus_poll): new function
10187 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
10190 * bus/loop.c: initial code for the daemon main loop
10192 2003-01-04 Havoc Pennington <hp@pobox.com>
10194 * test/watch.c (error_handler): make it safe if the error handler
10195 is called multiple times (if we s/error handler/disconnect
10196 handler/ we should just guarantee it's called only once)
10198 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
10199 error handler on disconnect (it's quite possible we should
10200 just change the error handler to a "disconnect handler," I'm
10201 not sure we have any other meaningful errors)
10203 * configure.in: check for getpwnam_r
10205 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
10206 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
10207 mechanism as in SASL spec, using socket credentials
10209 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
10210 (_dbus_send_credentials_unix_socket): new function
10212 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
10214 (_dbus_write): only check errno if <0 returned
10215 (_dbus_write_two): ditto
10217 2003-01-02 Anders Carlsson <andersca@codefactory.se>
10219 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
10220 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
10221 (_dbus_marshal_test):
10222 * dbus/dbus-marshal.h:
10223 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
10224 to _dbus_marshal_utf8_string. Also fix some tests.
10226 2002-12-28 Harri Porten <porten@kde.org>
10228 * configure.in: added check for C++ compiler and a very cheesy
10229 check for the Qt integration
10231 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
10233 * qt/Makefile.am: added
10235 * qt/.cvsignore: added
10237 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
10238 latter, added #ifdef QT_THREAD_SUPPORT guard.
10240 * dbus/Makefile.am: added missing headers for make dist
10242 2002-12-28 Kristian Rietveld <kris@gtk.org>
10244 * dbus/Makefile.am: fixup export-symbols-regex.
10246 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10248 * acinclude.m4: Add this file and put the
10249 PKG_CHECK_MODULE macro in it.
10251 2002-12-27 Anders Carlsson <andersca@codefactory.se>
10253 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10254 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10255 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10256 (_dbus_marshal_test):
10257 Make the demarshalling routines align the pos argument.
10258 Add string marshalling tests and fix the obvious bugs
10261 2002-12-26 Havoc Pennington <hp@pobox.com>
10263 * dbus/dbus-auth.c: fixes fixes fixes
10265 * dbus/dbus-transport-unix.c: wire up support for
10266 encoding/decoding data on the wire
10268 * dbus/dbus-auth.c (_dbus_auth_encode_data)
10269 (_dbus_auth_decode_data): append to target string
10270 instead of nuking it.
10272 2002-12-26 Havoc Pennington <hp@pobox.com>
10274 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
10275 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
10278 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
10279 avoid swap_bytes() overhead (ignoring possible assembly stuff for
10280 now). Main point is because I wanted unpack_uint32 to implement
10281 _dbus_verbose_bytes
10282 (_dbus_verbose_bytes): new function
10284 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
10286 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
10287 mechanism to handle a corrupt message stream
10288 (_dbus_message_loader_new): fix preallocation to only prealloc,
10291 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
10292 (_dbus_string_test): enhance tests for copy/move and fix the
10295 * dbus/dbus-transport-unix.c: Hold references in more places to
10296 avoid reentrancy problems
10298 * dbus/dbus-transport.c: ditto
10300 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
10301 leak reference count in no-message case
10303 * test/watch.c (do_mainloop): handle adding/removing watches
10304 during iteration over the watches. Also, ref the connection/server
10305 stored on a watch, so we don't try to mangle a destroyed one.
10307 * dbus/dbus-transport-unix.c (do_authentication): perform
10310 * dbus/dbus-auth.c (get_state): add a state
10311 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
10312 (_dbus_auth_get_unused_bytes): append the unused bytes
10313 to the passed in string, rather than prepend
10315 * dbus/dbus-transport.c (_dbus_transport_init_base): create
10316 the auth conversation DBusAuth
10318 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
10319 (_dbus_transport_new_for_domain_socket): when creating a
10320 transport, pass in whether it's a client-side or server-side
10321 transport so we know which DBusAuth to create
10323 2002-12-03 Havoc Pennington <hp@pobox.com>
10325 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
10326 _after_ finalizing the derived members
10327 (unix_connection_set): unref watch if we fail to add it
10329 * dbus/dbus-connection.c (dbus_connection_unref): delete the
10330 transport first, so that the connection owned by the
10331 transport will be valid as the transport finalizes.
10333 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
10334 if necessary, and remove watches from the connection.
10336 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
10338 2002-12-26 Anders Carlsson <andersca@codefactory.se>
10340 * dbus/dbus-marshal.c: (_dbus_marshal_string),
10341 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10342 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
10343 (_dbus_marshal_test):
10344 * dbus/dbus-marshal.h:
10345 Add string marshal functions and have the demarshal functions
10346 return the new position.
10348 2002-12-25 Havoc Pennington <hp@pobox.com>
10350 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
10351 it is a simple protocol that just maps directly to SASL.
10353 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
10354 initial implementation, not actually used yet.
10356 * dbus/dbus-string.c (_dbus_string_find): new function
10357 (_dbus_string_equal): new function
10358 (_dbus_string_base64_encode): new function
10359 (_dbus_string_base64_decode): new function
10361 2002-12-25 Anders Carlsson <andersca@codefactory.se>
10363 * dbus/Makefile.am:
10364 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
10365 (_dbus_marshal_int32), (_dbus_marshal_uint32),
10366 (_dbus_demarshal_double), (_dbus_demarshal_int32),
10367 (_dbus_demarshal_uint32), (_dbus_marshal_test):
10368 * dbus/dbus-marshal.h:
10369 * dbus/dbus-protocol.h:
10370 * dbus/dbus-test.c: (main):
10371 * dbus/dbus-test.h:
10372 Add un-optimized marshalling/demarshalling routines.
10374 2002-12-25 Harri Porten <porten@kde.org>
10376 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
10378 2002-12-24 Zack Rusin <zack@kde.org>
10380 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
10381 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
10384 2002-12-24 Havoc Pennington <hp@pobox.com>
10386 * glib/dbus-gthread.c: fix include
10388 * glib/dbus-glib.h: rename DBusMessageHandler for now.
10389 I think glib API needs to change, though, as you don't
10390 want to use DBusMessageFunction, you want to use the
10391 DBusMessageHandler object. Probably
10392 dbus_connection_open_with_g_main_loop()
10393 and dbus_connection_setup_g_main_loop() or something like that
10394 (but think of better names...) that just create a connection
10395 that has watch/timeout functions etc. already set up.
10397 * dbus/dbus-connection.c
10398 (dbus_connection_send_message_with_reply): new function just to
10399 show how the message handler helps us deal with replies.
10401 * dbus/dbus-list.c (_dbus_list_remove_last): new function
10403 * dbus/dbus-string.c (_dbus_string_test): free a string that
10406 * dbus/dbus-hash.c: use memory pools for the hash entries
10407 (rebuild_table): be more paranoid about overflow, and
10408 shrink table when we can
10409 (_dbus_hash_test): reduce number of sprintfs and write
10410 valid C89. Add tests for case where we grow and then
10411 shrink the hash table.
10413 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
10415 * dbus/dbus-connection.c (dbus_connection_register_handler)
10416 (dbus_connection_unregister_handler): new functions
10418 * dbus/dbus-message.c (dbus_message_get_name): new
10420 * dbus/dbus-list.c: fix docs typo
10422 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
10423 an object representing a handler for messages.
10425 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10427 * glib/dbus-glib.h:
10428 * glib/dbus-gthread.c: (dbus_gthread_init):
10429 Don't use the gdbus prefix for public functions.
10431 2002-12-16 Anders Carlsson <andersca@codefactory.se>
10435 Add GLib checks and fixup .pc files
10437 * glib/Makefile.am:
10438 * glib/dbus-glib.h:
10439 * glib/dbus-gmain.c: (gdbus_connection_prepare),
10440 (gdbus_connection_check), (gdbus_connection_dispatch),
10441 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
10442 (dbus_connection_gsource_new):
10443 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
10444 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
10445 * glib/test-dbus-glib.c: (message_handler), (main):
10448 2002-12-15 Harri Porten <porten@kde.org>
10450 * autogen.sh: check for libtoolize before attempting to use it
10452 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
10455 * .cvsignore: ignore more stamp files
10457 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
10459 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
10460 without make install.
10462 2002-12-15 Havoc Pennington <hp@pobox.com>
10464 * dbus/dbus-threads.c: add thread stubs that a higher library
10465 layer can fill in. e.g. the GLib wrapper might fill them in with
10466 GThread stuff. We still need to use this thread API to
10467 thread-safe-ize the library.
10469 2002-12-12 Havoc Pennington <hp@pobox.com>
10471 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
10472 below new interfaces and include fewer system headers.
10474 * dbus/dbus-sysdeps.c (_dbus_read): new function
10475 (_dbus_write): new function
10476 (_dbus_write_two): new function
10477 (_dbus_connect_unix_socket): new function
10478 (_dbus_listen_unix_socket): new function
10480 * dbus/dbus-message-internal.h: change interfaces to use
10483 2002-12-11 Havoc Pennington <hp@pobox.com>
10485 * dbus/dbus-types.h: add dbus_unichar
10487 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
10489 * dbus/dbus-connection.c (dbus_connection_send_message): return
10492 * dbus/dbus-transport.c: include dbus-watch.h
10494 * dbus/dbus-connection.c: include dbus-message-internal.h
10496 * HACKING: add file with coding guidelines stuff.
10498 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
10499 handling here, for security purposes (as in vsftpd). Not actually
10500 using this class yet.
10502 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
10503 system/libc usage here, as in vsftpd, for ease of auditing (and
10504 should also simplify portability). Haven't actually moved all the
10505 system/libc usage into here yet.
10507 2002-11-25 Havoc Pennington <hp@pobox.com>
10509 * dbus/dbus-internals.c (_dbus_verbose): fix to not
10510 always print the first verbose message.
10512 2002-11-24 Havoc Pennington <hp@pobox.com>
10514 * test/echo-client.c, test/echo-server.c: cheesy test
10517 * configure.in (AC_CHECK_FUNCS): check for writev
10519 * dbus/dbus-message.c (_dbus_message_get_network_data): new
10522 * dbus/dbus-list.c (_dbus_list_foreach): new function
10524 * dbus/dbus-internals.c (_dbus_verbose): new function
10526 * dbus/dbus-server.c, dbus/dbus-server.h: public object
10527 representing a server that listens for connections.
10529 * dbus/.cvsignore: create
10531 * dbus/dbus-errors.h, dbus/dbus-errors.c:
10532 public API for reporting errors
10534 * dbus/dbus-connection.h, dbus/dbus-connection.c:
10535 public object representing a connection that
10536 sends/receives messages. (Same object used for
10537 both client and server.)
10539 * dbus/dbus-transport.h, dbus/dbus-transport.c:
10540 Basic abstraction for different kinds of stream
10541 that we might read/write messages from.
10543 2002-11-23 Havoc Pennington <hp@pobox.com>
10545 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
10548 * dbus/dbus-test.c (main): add list test, and include
10549 dbus-test.h as intended
10551 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
10552 (_dbus_hash_table_remove_int): return value indicates
10553 whether the entry existed to remove
10555 * dbus/dbus-list.c: add linked list utility class,
10556 with docs and tests
10558 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
10561 2002-11-23 Havoc Pennington <hp@pobox.com>
10563 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
10564 DBUS_END_DECLS to nothing, that should fix this once and for all
10566 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
10568 * dbus/dbus-message.c, dbus/dbus-hash.c:
10569 add some missing @brief
10571 2002-11-23 Havoc Pennington <hp@pobox.com>
10573 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
10574 to avoid confusing Doxygen
10576 * dbus/dbus-hash.c: @} not }@
10578 * dbus/dbus-message.c (struct DBusMessage): split out
10581 2002-11-23 Havoc Pennington <hp@pobox.com>
10583 * configure.in: pile on more warning flags if using gcc
10585 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
10586 to document static functions
10588 * configure.in: add summary to end of configure so it
10589 looks nice and attractive
10591 * dbus/dbus-hash.c: finish implementation and write unit
10594 * configure.in: add --enable-tests to enable unit tests
10596 * dbus/dbus-test.c: test program to run unit tests
10597 for all files in dbus/*, initially runs a test for
10600 * dbus/dbus-internals.h: file to hold some internal utility stuff
10602 2002-11-22 Havoc Pennington <hp@redhat.com>
10604 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
10605 "ported" away from Tcl
10607 * dbus/dbus-types.h: header for types such as dbus_bool_t
10609 2002-11-22 Havoc Pennington <hp@redhat.com>
10611 * dbus/dbus.h: fixups for doc warnings
10613 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
10615 (QUIET): make it quiet so we can see warnings
10617 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
10619 2002-11-22 Havoc Pennington <hp@redhat.com>
10621 * Makefile.am: include "Doxyfile" target in all-local
10623 * configure.in: generate the Doxyfile
10625 * Doxyfile.in: move Doxyfile here, so we can use
10626 configure to generate a Doxyfile with the right
10627 version number etc.
10629 2002-11-22 Havoc Pennington <hp@redhat.com>
10631 * dbus/dbus-message.c: move inline docs into .c file
10633 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
10634 so all docs are under doc/
10635 (MAN_EXTENSION): generate man pages. Use extension
10636 ".3dbus" which matches ".3qt" on my system,
10637 I guess this is OK, I don't know really.
10638 (FILE_PATTERNS): look for .c files not .h, makes sense
10639 for plain C I think
10641 2002-11-22 Havoc Pennington <hp@pobox.com>
10643 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
10644 because any app can be a server, and any app can be a client,
10645 the bus is a special kind of server.
10647 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
10649 * Doxyfile : adding. Still needs Makefile rules to be generated
10650 automatically (just run "doxygen" in the toplevel dir for now to
10653 * dbus/dbus-message.h : Adding sample docs (javadoc since
10654 resembles gtk-doc a little more)
10656 * dbus/dbus.h : Adding sample docs
10658 2002-11-21 Havoc Pennington <hp@redhat.com>
10660 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
10661 so we can allow ourselves to include files directly,
10662 instead of having to use dbus.h
10664 * dbus/dbus.h: fill in
10666 * dbus/dbus-message.h: sketch out a sample header file.
10667 Include griping if you include it directly instead of
10670 * dbus/dbus-macros.h: new file with macros for extern "C",
10671 TRUE/FALSE, NULL, etc.
10673 * doc/file-boilerplate.c: put include guards in here
10675 2002-11-21 Havoc Pennington <hp@redhat.com>
10677 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
10679 * COPYING: include the GPL as well, and license code
10680 under both AFL and GPL.
10682 2002-11-21 Havoc Pennington <hp@redhat.com>
10684 * acconfig.h: get rid of this
10686 * autogen.sh (run_configure): add --no-configure option
10688 * configure.in: remove AC_ARG_PROGRAM to make
10689 autoconf complain less. add AC_PREREQ.
10690 add AC_DEFINE third arg.
10692 2002-11-21 Anders Carlsson <andersca@codefactory.se>
10695 Fix references so we can distcheck.
10697 2002-11-21 Havoc Pennington <hp@redhat.com>
10699 * Initial module creation