1 2005-10-29 Robert McQueen <robot101@debian.org>
3 * glib/Makefile.am, glib/examples/Makefile.am,
4 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
5 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
7 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
9 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
10 from Ubuntu by Daniel Silverstone to allow specifying match rules on
13 2005-10-27 Ross Burton <ross@openedhand.com>
15 * dbus/dbus-marshal-header.c:
18 * glib/dbus-gobject.c:
19 Stop compiler warning.
21 2005-10-25 Ross Burton <ross@openedhand.com>
24 * dbus/dbus-server-unix.c:
25 * dbus/dbus-transport-unix.c:
27 * glib/dbus-gobject.c:
28 Add some const keywords.
30 2005-10-25 Ross Burton <ross@openedhand.com>
32 * doc/dbus-specification.xml:
33 Document the NoReply annotation.
35 * glib/dbus-binding-tool-glib.h:
36 * glib/dbus-binding-tool-glib.c:
37 Respect the NoReply annotation.
39 2005-10-24 Robert McQueen <robot101@debian.org>
41 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
42 derive from unicode instead of str, and encode/decode UTF-8 when
43 marshalling/unmarshalling bus messages
45 * python/introspect_parser.py: encode introspection data as UTF-8
46 before passing the buffer into libxml2
48 * test/python/test-client.py: add unicode test strings
50 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
51 ignore generated python test files
53 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
55 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
56 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
57 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
59 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
60 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
61 when constructing struct signatures
63 * python/_dbus.py (Bus): handle private connections using the
64 private keyword in the constructor. defaults to private=False
65 (Bus::close): new method to close a connection to the bus
67 * python/dbus_bindings.pyx (Connection::close): renamed method
68 was previously called disconnect
69 (bus_get): now supports getting a private connection
71 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
72 keyword is set to True. if it is, execute the method without waiting
74 (ProxyObject::_introspect_execute_queue): new method for executing
75 all the pending methods that were waiting for the introspect to
76 finish. this is called when introspect either succeeds or fails
77 (ProxyObject::_introspect_error_handler): call queued methods
79 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
81 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
82 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
84 * python/service.py (Object::_message_cb): handle exceptions correctly
85 by sending them over the wire to the calling app. This makes sure
86 the client returns immediately instead of waiting the 15 seconds to
89 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
90 Add a test to benchmark how long it takes to introspect a service and
91 call a method which returns a large element (pretty fast)
93 * test/python/test-service.py (TestObject::GetComplexArray): new test
94 method which pushes a lot of data
96 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
98 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
99 reclaim memory outside of the loop and use del istead of just setting
102 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
104 * python/service.py (ObjectType::_reflect_on_signal): Always close
105 signal tag even when there are no arguments
107 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
109 * configure.in: Set mono, mono-docs and Qt3 to default
110 to no instead of auto when building. These bindings do not
111 have full time maintainers and will not be supported for the
114 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
116 patches from Michael Krivoruchko <misha at sun.com>:
118 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
119 _dbus_connection_message_sent,
120 _dbus_connection_send_preallocated_unlocked_no_update,
121 _dbus_connection_pop_message_link_unlocked): handle the case when path
122 is NULL when calling _dbus_verbose
124 * configure.in: check for functions getpeerucred and getpeereid
126 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
127 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
128 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
129 Patch was only tested on Solaris 10 x86 so it might be issues
130 with other platforms (i.e. BSDs and MacOSX)
133 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
135 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
136 instead of marshal basic so we can handle recursive types in a variant
138 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
141 * test/glib/test-service-glib.c, test-service-glib.xml
142 (my_object_echo_variant [EchoVariant],
143 my_object_process_variant_of_array_of_ints123
144 [ProcessVariantOfArrayOfInts123]):
147 * python/introspect_parser.py: New module for parsing introspect
150 * python/dbus_bindings.pyx:
151 (various places): when throwing errors fix to use errormsg instead
152 of message local variable because Pyrex can get confused with other
153 message variables (initial patch by Robert McQueen
154 <robert.mcqueen at collabora.co.uk>)
155 (MessageIter::parse_signature_block): new method for getting the next
156 block in a signiture.
157 (MessageIter::append_strict): new method for appending values strictly
158 using the passed in signature instead of guessing at the type
159 (MessageItter:: append_dict, append_struct, append_array): use
160 signatures to marshal children if the signature is available
162 * python/exceptions.py (IntrospectionParserException): new exception
164 * python/proxies.py (ProxyMethod::__call__): Marshal args with
165 introspected signatures if available, else we fall back to the
166 old way of doing things.
167 (ProxyObject::_introspect_reply_handler ): parse introspection data
169 * python/service.py (ObjectType::_reflect_on_method): Properly
170 terminate <method> if there are no args in the reflection data
172 * test/python/test-client.py: add tests for talking with the GLib
173 test server. This gives us better coverage for introspection since
174 python to python will always generate arguments as variants. It also
175 allows us to test the robustness of the GLib bindings and interlanguage
179 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
181 * bus/driver.c (bus_driver_handle_introspect): Add signals
182 to the introspect data. (patch from Daniel P. Berrange
183 <dan at berrange.com>)
185 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
187 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
188 _dbus_connection_run_builtin_filters): Changed these to
189 be unlock_no_update functions and call
190 _dbus_connection_send_unlocked_no_update instead of
191 dbus_connection_send to avoid locking errors.
193 * doc/TODO: Removed the make Ping test TODO
195 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
197 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
198 We now copy the message from a DBusError and then free
199 the error object befor throwing the error
201 * glib/dbus-glib-tool.c: removed extra comma at the end of the
202 DBusBindingOutputMode enum which was causing a warning.
203 #include <time.h> so using time_t is explicitly defined
205 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
207 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
209 (internal_bus_get): new method that take over the heavy lifting
210 of dbus_bus_get and adds the ability to get a private connection
212 (dbus_bus_get): wrapper to internal_bus_get that provides the same
213 interface as in previous versions
214 (dbus_bus_get_private): new method that is a wrapper to
215 internal_bus_get to get a private connection to the bus
218 (dbus_bus_get_private): add as a public libdbus interface
220 - dbus-1.pc.in: output system_bus_default_address and
221 sysconfdir variables so apps can use them when compiling
223 2005-09-23 Harald Fernengel <harry@kdevelop.org>
224 * dbus/qt: New Qt bindings
226 2005-09-12 Waldo Bastian <bastian@kde.org>
228 * dbus/dbus-marshal-validate.c,
229 doc/dbus-specification.xml, test/Makefile.am,
230 test/test-names.c: allow hyphens in bus names.
232 2005-09-11 Mark McLoughlin <mark@skynet.ie>
234 * test/data/auth/fallback.auth-script: we don't
235 retry the EXTERNAL method when we know its going
238 2005-09-11 Mark McLoughlin <mark@skynet.ie>
240 * dbus/dbus-connection-internal.h: rename
241 (add|remove|toggle)_(watch|timeout) to unlocked()
243 * dbus/dbus-connection.c: ditto.
245 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
246 Update some callers for the renaming.
248 2005-09-10 Mark McLoughlin <mark@skynet.ie>
250 * dbus/dbus-auth.c: (record_mechanisms): don't
251 retry the first auth mechanism because we know
252 we're just going to get rejected again.
254 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
255 Fix thinko ... and what a nasty little bugger to
256 track down you were ...
258 * dbus/dbus-connection.c:
259 (_dbus_connection_add_watch),
260 (_dbus_connection_remove_watch): add note about
261 these needing the connection to be locked.
262 (_dbus_connection_get_dispatch_status_unlocked):
263 set status to DATA_REMAINS when we queue the
264 disconnected message.
267 (bus_dispatch): fix warning.
268 (check_existent_service_no_auto_start):
269 Expect ChildSignaled error too.
270 (check_existent_hello_from_self): fix another
273 2005-09-08 Joe Shaw <joeshaw@novell.com>
275 Patches from James Willcox <snorp@snorp.net>
277 * mono/Makefile.am: Add Int16.cs and UInt16.cs
279 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
280 support array "out" parameters.
282 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
283 for 16-bit int support.
285 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
289 * Patch from Steve Grubb:
290 - bus/activation.c (bus_activation_service_reload_test): clean up
292 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
293 - dbus/dbus-message-factory.c (generate_special): fix a couple of
294 buffer overflows in the test suite. This is non critical because
295 it can not be exploited and this code is only run when doing a
298 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
299 - configure.in: Don't check and link against kdecore, only qt headers
300 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
301 - gcj/org/freedesktop/dbus/Makefile.am:
302 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
303 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
304 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
305 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
306 - tools/Makefile.am: Add platform extentions to binaries
307 (i.e. .exe on windows)
310 - Make it so if no suitable version of python is found we only
311 disable building python instead of exiting the configure script
312 - Require version 2.4 of glib for glib bindings
315 * python/__init__.py: Sync version with libdbus to (0,50,0)
317 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
319 * dbus/dbus-object-tree.c (find_subtree_recurse):
320 a couple of optimizations (bug #710):
321 - do a binary search in the tree
322 - insert a new child at the right place directly, no need for
324 - do the "double alloc" thing when allocating children
326 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
328 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
330 * python/dbus_bindings.pyx: Memory management foo
331 (global): remove hacky _user_data_references global list
332 (GIL_safe_cunregister_function_handler): userdata now stuffed into
333 tuples. Unref user_data
334 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
335 (Connection::__del__): Remove and replace with __dealloc__ method
336 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
337 to keep tuple from being deallocated instead of the global var hack
338 (Connection::register_object_path): Stuff user_data into a tuple.
339 Use Py_INCREF to keep tuple from being deallocated instead of the
341 (Connection::register_fallback): Stuff user_data into a tuple.
342 Use Py_INCREF to keep tuple from being deallocated instead of the
344 (GIL_safe_pending_call_notification): Don't unref the message
345 because it gets unreffed when going out of scope. Py_XDECREF
347 (PendingCall::__del__): Remove and replace with __dealloc__ method
348 (PendingCall::set_notify): ref the pending call because we will
349 need it to stick around for when the notify callback gets called
350 (Message::__del__): Remove and replace with __dealloc__ method
352 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
353 gthreads_init to match up with the dbus call
355 * python/glib.py (init_threads): Changed to threads_init to match
356 up with gobject.threads_init(). init_threads is kept for backwards
357 compat but will most likely be deprecated in the future
359 * test/python/test-client.py:
360 - revamp to use Python's unittest functionality
361 - add async call tests
362 - setup threads in glib and dbus so we make sure locks are working
364 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
366 * python/dbus_bindings.pyx
367 (_pending_call_notification, cunregister_function_handler,
368 cmessage_function_handler): All callback functions have been rearranged
369 to workaround a bug in Pyrex when working with the GIL which is Python's
370 global lock when dealing with threads. They have been split into
371 a wrapper function (which assumes the name of the old function) and
372 a _GIL_safe_<function name> function which contains the functionality
373 of the old function. This ensures that Pyrex does not write code
374 the lock is released.
377 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
379 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
380 GIL global lock when calling back into Python
382 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
386 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
388 * bus/policy.c (bus_policy_allow_user): change default "user is
389 allowed" to be "user has same uid as the bus itself"; any
390 allow/deny rules will override.
392 * bus/session.conf.in: don't allow all users, since now by default
393 the user that ran the bus can connect.
395 2005-08-26 Colin Walters <walters@verbum.org>
397 * tools/dbus-print-message.c (print_message): Flush stdout
398 after printing a message, so that redirecting to a file, then
399 hitting Ctrl-C works.
401 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
403 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
404 (EmptyMessage): new class that subclasses Message. This is a workaround
405 to a Pyrex bug that fails to call __del__ when the Message object goes out
406 of scope. For some reason subclassing Message fixes this bug
407 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
408 - s/Message(_create=0)/EmptyMessage everywhere else
410 * test/python/test-{server|client}.py: add the python/.libs directory
411 to the lookup path so dbus_bindings and dbus_glib_bindings don't
412 get picked up from the system
414 2005-08-25 Colin Walters <walters@verbum.org>
416 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
417 to Ryan Lortie for the suggestion.
419 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
421 * test/python: Add python regression test
423 * configure.in: Add test/python/Makefile
425 * test/Makefile.am: Add the python directory to SUBDIRS
427 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
432 (Interface::connect_to_signal): propigate keywords for match on args
433 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
435 * python/proxies.py (ProxyObject::connect_to_signal):
436 propigate keywords for match on args
438 * Makefile.am: point everything to pyexecdir since python borks
441 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
445 2005-08-23 Colin Walters <walters@verbum.org>
447 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
449 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
451 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
452 to fix some wranings. We now use dbus_bindings.DBusConnection instead
453 of defining DBusConnection ourselves.
455 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
457 * python/dbus.pth: New path file to fix up problems when installing
458 c libraries to lib64 and python files to lib.
460 * python/Makefile.am: install dbus.pth in the correct spot
462 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
463 * ChangeLog: clean up my last entry a bit
465 * doc/introspect.xsl: New stylesheet for converting introspection data
466 into browser renderable xhtml. Contributed by Lennart Poettering.
468 * doc/introspect.dtd: Fixups in the introspect format from Lennart
471 * doc/dbus-tutorial.xml:
472 - Add Colin Walter to the Authors section for authoring the GLib
474 - Add descriptions of the new signature and type functionality
475 in the Python complex type mapping section
476 - Add a sidenote on the new args matching functionality in
478 - Fixed up some of the examples to use the gobject.MainLoop
482 (Bus::_create_args_dict): New. Converts a hash of arg matches
483 to a more useable format
484 (Bus::add_signal_receiver): add a **keywords parameter for catching
486 (Bus::remove_signal_receiver): add a **keywords parameter for catching
489 * python/matchrules.py:
490 (MatchTree::exec_matches): Check for arg matches
491 (SignalMatchRule::add_args_match): New method
492 (SignalMatchRule::execute): Added args_list parameter as an optimization
493 so we don't have to marshal the args more than once
494 (SignalMatchRule::match_args_from_list): New method that checks to see
495 if the rule's arg matches match an argument list. Only arguments
496 set in the rule are checked.
497 (SignalMatchRule::match_args_from_rule): New method that checks to see
498 if the rule's arg matches match another rule's. All args have to match
499 in order for this method to return true. If either rule has more args
500 then it is not a match.
501 (SignalMatchRule::is_match): Add args match
502 (SignalMatchRule::repr): Add args to the final output if they exist
504 2005-08-17 Ross Burton <ross@burtonini.com>
506 * glib/dbus-gproxy.c:
507 (dbus_g_proxy_call_no_reply): unref the message once sent.
508 (dbus_g_proxy_call): protect against NULL proxy.
510 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
512 * python/__init__.py: Version updated (0, 43, 0)
514 * python/dbus_bindings.pyx:
515 - Fixed type objects to have self passed into __init__
516 - Added the Variant type
517 - Add the ability to specify types or signatures for Array, Variant
519 (Connection::send_with_reply_handlers): return a PendingCall object
520 (_pending_call_notification): handle the case when an error is returned
521 without an error message in the body
522 (MessageIter::get_boolean): return True or False instead of an integer
523 (MessageIter::python_value_to_dbus_sig): add direct checking of types
524 and add checks for objects with embeded signatures or types (Array,
525 Variant and Dictionary)
526 (MessageIter::append_byte): handle case when the value is a dbus.Byte
527 (MessageIter::append_dict): handle embeded types or signatures
528 (MessageIter::append_array): handle embeded types or signatures
529 (MessageIter::append_variant): new method
532 (DeferedMethod): New. Dummy executable object used when queuing calls
533 blocking on introspection data
534 (ProxyMethod::__call__): add the timeout keyword for specifying longer
535 or shorter timeouts for method calls
536 (ProxyObject): Add first pass at an introspection state machine
537 (ProxyObject::__init__): Add introspect keyword for turing off an on
539 (ProxyObject::_Introspect): Internal Introspect call that bypasses
540 the usual mechanisms for sending messages. This is to avoid a deadlock
541 where the Intospect call would be queued waiting for the Introspect
543 (ProxyObject::_introspect_reply_handler): New. This method is called
544 when introspection returns with no error
545 (ProxyObject::_introspect_error_handler): New. This method is called
546 when introspection encounters an error
547 (ProxyObject::__getattr__): Code to handle different introspection
548 states. Queue async calls or block blocking calls if we are
549 introspecting. Pass through as normal if we are not or are done with
552 * python/service.py: Import signal and method from decorators.py
554 * python/types.py: Add Variant type
556 2005-08-16 Colin Walters <walters@verbum.org>
558 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
559 DBusError message is NULL.
561 2005-08-09 Havoc Pennington <hp@redhat.com>
563 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
564 malloc'd copy of the name parameter
566 2005-08-09 Havoc Pennington <hp@redhat.com>
568 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
569 warning if the reply serial is set to 0
571 2005-08-04 Colin Walters <walters@verbum.org>
573 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
574 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
575 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
576 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
577 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
578 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
579 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
580 * glib/dbus-gvalue.h (dbus_g_value_types_init)
581 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
582 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
584 Prefix name with _ to ensure they're not exported. All callers
587 * glib/dbus-gvalue.c (typecode_to_gtype)
588 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
589 (signature_iter_to_g_type_dict)
590 (signature_iter_to_g_type_array)
591 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
592 (dbus_gtypes_from_arg_signature):
593 Move to dbus-gsignature.c.
595 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
596 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
597 (dbus_binding_tool_output_glib_client): Ditto.
599 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
600 and dbus-gsignature.h
602 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
605 2005-08-03 Colin Walters <walters@verbum.org>
607 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
608 catch any incompatible changes accidentally made.
610 2005-08-03 Havoc Pennington <hp@redhat.com>
612 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
613 typo, from Julien Puydt
615 * bus/connection.c (bus_connection_disconnected): we were always
616 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
618 2005-08-01 Colin Walters <walters@verbum.org>
620 Patch from Joe Markus Clarke:
622 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
625 2005-08-01 Colin Walters <walters@verbum.org>
627 Patch from Joe Markus Clarke:
629 * tools/dbus-send.c (main):
631 Don't use C99 style initializers (bug #3933).
633 2005-08-01 Colin Walters <walters@verbum.org>
635 Patch from Joe Markus Clarke:
637 * glib/dbus-gvalue.c (dbus_g_value_types_init):
638 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
639 * glib/dbus-gobject.c (write_interface):
641 Don't use C99 style initializers (bug #3933).
643 2005-07-31 Havoc Pennington <hp@redhat.com>
645 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
646 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
648 2005-07-30 Havoc Pennington <hp@redhat.com>
650 * fix a bunch of Doxygen warnings and mistakes
652 2005-07-30 Havoc Pennington <hp@redhat.com>
654 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
655 DBUS_BUILD_TESTS since it's now used in production code
657 2005-07-29 Havoc Pennington <hp@redhat.com>
659 * test/glib/test-profile.c (write_junk): initialize the junk
660 buffer so valgrind doesn't have a breakdown
662 2005-07-29 Havoc Pennington <hp@redhat.com>
664 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
665 (match_rule_matches): remove unused arg
666 (test_matching): add tests for match_rule_matches()
668 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
669 do arg0='foo' arg5='bar' in the match rules
670 (match_rule_matches): don't match if the arg0='foo' doesn't match.
672 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
674 2005-07-29 Ross Burton <ross@openedhand.com>
676 * dbus/dbus-connection.c:
677 Don't create a DBusCondVar which is never used.
679 2005-07-27 Ross Burton <ross@openedhand.com>
681 * dbus/dbus-message.c:
682 Reduce the size of the maximum cached message to 10K.
684 2005-07-25 Ross Burton <ross@openedhand.com>
686 * glib/dbus-gproxy.c:
687 Remove matches when all proxies are unregistered.
689 2005-07-24 Colin Walters <walters@verbum.org>
691 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
692 typedata; recursive arrays won't have it.
694 * test/glib/test-dbus-glib.c:
695 * test/glib/test-service-glib.c:
696 * test/glib/test-service-glib.xml: Add recursive arrays tests.
698 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
700 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
701 proxies.py, service.py: Cleanup of code after running it through the
702 pyflakes code checker mostly dealing with undefined names.
703 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
705 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
707 * NEWS: Update to 0.35.2
709 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
711 * python/_dbus.py: Remove import of the dbus.services
712 module as it no longer exists (patch from Dimitur Kirov)
714 * python/service.py (Object::__init__): Fixed typo
715 s/name/bus_name (patch from Dimitur Kirov)
717 * python/examples/example-signal-emitter.py: import dbus.glib
718 to get the main loop and use glib mainloop instead of gtk so
719 X doesn't have to be running.
721 * python/examples/example-signal-recipient.py: import dbus.glib
722 to get the main loop and use glib mainloop instead of gtk so
723 X doesn't have to be running. Import the decorators module
726 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
727 didn't pick up on but are needed to build
729 * configure.in: upped version to 0.35.2
731 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
732 added Colin Walters' SELinux API rename patch from head
733 s/unix sercurity context/selinux security context/
735 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
737 * python/Makefile.am: dbus_binding.pxd.in should be included
738 in EXTRA_DIST not dbus_binding.pxd
739 fix up $(srcdir) hopefully for the last time
741 * NEWS: Update to 0.35.1
743 2005-07-16 Colin Walters <walters@verbum.org>
745 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
746 from bus_driver_handle_get_connection_unix_security_context. Update for
748 (message_handlers): Update for renames.
750 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
751 _dbus_string_init failure correctly.
752 (bus_selinux_append_context): Convert SID to context. Append it
754 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
757 * bus/selinux.h: Update prototype.
759 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
760 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
762 2005-07-15 Colin Walters <walters@verbum.org>
764 * doc/TODO: Add note about convenience wrappers.
766 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
768 * NEWS: Update to 0.35
770 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
772 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
773 so distcheck doesn't fail
775 * glib/examples/Makefile.am: Add example-service.xml and
776 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
778 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
779 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
781 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
782 compiler looks in the right places during distcheck
784 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
786 * glib/example/Makefile.am: Fix a typo which cause make distcheck
789 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
791 * python/examples/example-service.py,
792 python/examples/example-signal-emitter.py: Fixed up examples
795 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
797 * python/__init__.py: Upped to version (0,42,0) because of
800 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
802 * ChangeLog: fix date in last entry
804 * configure.in, bus/system.conf.in: add the ability to configure
805 the system bus user at compiletime with the --with-dbus-user flag
806 (patch from Kristof Vansant)
808 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
810 * bus/dispatch.c, test/test-service.c: Add testcase
811 for sending messages to oneself (TODO item).
813 * python/service.py (class Object): Swap ordering of bus_name
814 and object_path parameters to better support inheritance.
816 * doc/dbus-tutorial.xml: change Python docs to reflect change
817 in parameter ordering and fix the inheritance section.
819 * doc/TODO: remove sending message to oneself TODO item
821 2005-07-15 Ross Burton <ross@openedhand.com>
823 * glib/dbus-gproxy.c:
824 Fix a leak when calling methods via the proxy.
826 2005-07-15 Colin Walters <walters@verbum.org>
828 * bus/selinux.c (bus_selinux_append_context): Wrap in
831 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
833 * python/_dbus.py (Bus::remove_signal_receiver):
834 don't add a callback to the match if none has been passed in
836 * python/matchrules.py (SignalMatchTree::remove): if the rule
837 being matched does not have a callback treat it as a wildcard
840 * doc/dbus-tutorial.xml: Add Python tutorial
842 2005-07-14 Colin Walters <walters@verbum.org>
845 (bus_driver_handle_get_connection_unix_security_context): New function.
846 (message_handlers): Add.
848 * bus/selinux.c (bus_selinux_append_context): New function; appends
849 security context to message.
851 * bus/selinux.h: Prototype.
853 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
855 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
857 * bus/activation.c: clean up all tabs to be 8 spaces
858 (bus_activation_activate_service): make sure we clean up
861 * bus/dispatch.c: clean up all tabs to be 8 spaces
862 (check_shell_fail_service_auto_start): New function
863 tests to make sure we get fail properly when trying to auto start a service
864 with a faulty command line
865 (check_shell_service_success_auto_start): New function tests to make sure
866 auto started services get the arguments on the command line
868 * test/test-shell-service.c: Added service for testing auto-starting with
869 command line arguments
871 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
872 test/data/valid-service-files/debug-shell-echo-success.service.in:
873 Added service files for testing auto-starting with command line arguments
875 * */.cvsignore: added a bunch of generated files to various .cvsignore files
877 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
879 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
881 * dbus/Makefile.am: added new files to build.
883 * bus/activation.c (bus_activation_activate_service): support
884 activation commands with parameters.
886 * test/shell-test.c: added test program for the shell parsing
889 2005-07-13 David Zeuthen <davidz@redhat.com>
891 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
892 64 bit signed and unsigned parameters
894 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
896 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
898 * python/service.py (class Name): renamed BusName to make it clearer
899 what the object is for (a name on the bus)
901 * python/examples/example-service.py,
902 python/examples/example-signal-emitter.py: change the Name object to
905 2005-07-12 Colin Walters <walters@verbum.org>
907 Patch from Jim Gettys <Jim.Gettys@hp.com>.
909 * tools/dbus-launch.c: Include sys/select.h.
911 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
912 * python/dbus_bindings.pyx.in: removed
914 * python/dbus_bindings.pyx: Added.
915 - Fixed some memleaks (patch from
916 Sean Meiners <sean.meiners@linspireinc.com>)
917 - Broke out the #include "dbus_h_wrapper.h" and put it in its
918 own pxd file (Pyrex definition)
919 - Broke out glib dependancies into its own pyx module
921 * python/dbus_bindings.pdx: Added.
922 - Defines C class Connection for exporting to other modules
924 * python/dbus_glib_bindings.pyx: Added.
925 - New module to handle lowlevel dbus-glib mainloop integration
927 * python/glib.py: Added.
928 - Registers the glib mainloop when you import this module
930 * python/services.py: Removed (renamed to service.py)
932 * python/service.py: Added.
933 - (class Server): renamed Name
935 * python/__init__.py: Bump ro version (0,41,0)
936 -don't import the decorators or service module
937 by default. These now reside in the dbus.service namespace
939 * python/_dbus.py (Bus::__init__): Add code run the main loop
940 setup function on creation
942 * python/examples/example-service.py,
943 python/examples/example-signal-emitter.py: update examples
945 * python/examples/gconf-proxy-service.py,
946 python/examples/gconf-proxy-service2.py: TODO fix these up
949 - Added a Python Bindings 1.0 section
950 - added "Add match on args or match on details to match rules"
953 2005-07-12 Colin Walters <walters@verbum.org>
955 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
956 (statemachine-glue.h):
957 * glib/examples/Makefile.am (example-service-glue.h)
958 (example-signal-emitter-glue.h):
959 * glib/Makefile.am (dbus-glib-error-switch.h):
960 Add libtool --mode=execute so we use the built library instead
961 of any installed one.
963 2005-07-11 Colin Walters <walters@verbum.org>
965 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
966 (dbus_g_value_types_init): Remove assertion.
967 (dbus_g_value_get_g_type, dbus_g_value_open)
968 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
969 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
970 functions related to DBusGValue. Now we marshal/demarshal
971 structures as GValueArray.
972 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
974 (signature_iter_to_g_type_array): Don't call
975 signature_iter_to_g_type_struct.
976 (signature_iter_to_g_type_struct): Delete.
977 (dbus_gvalue_to_signature): Delete.
978 (dbus_gvalue_to_signature): New function with same name as other
979 one; we can convert structures to signatures.
980 (demarshal_valuearray): New function.
981 (get_type_demarshaller): Use it.
982 (demarshal_recurse): Delete.
983 (marshal_proxy): New function.
984 (marshal_map): Warn if we can't determine signature from type.
985 (marshal_collection_ptrarray): Ditto.
986 (marshal_collection_array): Ditto.
987 (get_type_marshaller): Use marshal_valuearray.
988 (marshal_recurse): Delete.
989 (_dbus_gvalue_test): Add some tests.
991 * dbus/dbus-glib.h (struct _DBusGValueIterator):
992 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
993 (dbus_g_value_open, dbus_g_value_iterator_get_value)
994 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
995 (dbus_g_value_free): Remove prototypes.
997 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1000 * glib/examples/example-service.c:
1001 * glib/examples/example-client.c: Implement GetTuple.
1003 * test/glib/test-dbus-glib.c:
1004 * test/glib/test-service-glib.c:
1005 * test/glib/test-service-glib.xml: Add structure tests.
1007 2005-07-10 Colin Walters <walters@verbum.org>
1009 * doc/TODO: Knock off some GLib items with this patch.
1011 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
1012 (_dbus_gvalue_signals_error): New functions.
1014 * glib/dbus-gvalue-utils.h: Prototype them.
1016 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1017 and change to not output const/retval flags for input args. All
1019 (invoke_object_method): Refactor to handle return values. Add
1020 some more comments in various places. Remove debug g_print.
1022 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1024 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1026 (compute_gsignature): New function; refactored from code from
1027 compute_marshaller and compute_marshaller_name. Enhance to
1028 handle return values and async ops more cleanly. Update for
1029 async ops returning NONE instead of BOOLEAN.
1030 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1031 and output appropriate string.
1032 (generate_glue): Handle return value annotation. Also don't dump
1033 constness flag for input arguments.
1035 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1036 files shared between installed library and utilities.
1037 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1038 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1039 binding tool can access gtype utility functions.
1041 * test/glib/test-service-glib.c:
1042 * test/glib/test-service-glib.xml:
1043 * test/glib/test-dbus-glib.c: Add some tests for return values.
1045 2005-07-09 Colin Walters <walters@verbum.org>
1047 * glib/dbus-gparser.c (parse_annotation): Add annotations to
1048 argument if available, not method.
1050 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1051 (invoke_object_method): First, remove some redundant
1052 GValues (object_value, error_value) in favor of working on
1053 array directly. Second, rework constness to be less buggy.
1054 Now we iterate directly over the argument metadata instead
1055 of parallel iterating over output signature and metadata.
1057 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1059 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1060 annotation on input args.
1062 2005-07-09 Colin Walters <walters@verbum.org>
1064 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1067 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1070 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1071 (method_dir_signature_from_object_info): Handle arg_iterate change.
1072 (write_interface): Ditto.
1073 (lookup_object_info): Don't barf if format_version is > 0.
1074 (invoke_object_method): Handle arg constness.
1076 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1077 (arg_info_new): Create.
1078 (arg_info_unref): Destroy.
1079 (arg_info_get_annotations, arg_info_get_annotation)
1080 (arg_info_add_annotation): New functions.
1082 * glib/dbus-gidl.h: Prototype them.
1084 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1085 args, disallow them in properties.
1086 (parse_annotation): Handle arg annotations.
1088 * test/glib/test-service-glib.xml:
1089 * test/glib/test-service-glib.c: Update to make some methods
1092 2005-07-08 Colin Walters <walters@verbum.org>
1094 * test/glib/test-service-glib.xml:
1095 * test/glib/test-service-glib.c:
1096 * test/glib/test-dbus-glib.c: Test a{sv}.
1098 * glib/examples/statemachine/statemachine.c:
1099 * glib/examples/statemachine/statemachine-server.c:
1100 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1101 add progress bar, etc.
1103 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1104 needed anymore due to generic array/map marshalling.
1105 (dbus_g_value_types_init): Don't register basic arrays or the
1107 (dbus_gtype_from_signature_iter): Don't try to recurse into
1109 (dbus_gtype_to_signature): Check collection/map before type
1111 (demarshal_garray_basic): Renamed to demarshal_collection_array.
1112 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1113 generic map creation/append functions instead of hash table
1115 (get_type_demarshaller): Handle maps.
1116 (demarshal_collection): Dispatch on collection type to either
1117 demarshal_collection_ptrarray or demarshal_collection_array.
1118 (get_type_marshaller): Handle maps.
1119 (marshal_collection): Dispatch collection type to either
1120 marshal_collection_ptrarray or marshal_collection_array.
1121 (_dbus_gvalue_test): New test.
1123 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1124 (hash_free_from_gtype): Use it to free GValues.
1125 (hashtable_append): New function.
1126 (ptrarray_append): Fix prototype.
1127 (slist_append): Ditto.
1128 (_dbus_gvalue_utils_test): Extend tests.
1130 * glib/dbus-gtype-specialized.c
1131 (dbus_g_type_specialized_init_append): Renamed from
1132 dbus_g_type_specialized_collection_init_append. Remove const from
1133 value, since we steal it.
1134 (dbus_g_type_specialized_map_append): New function.
1136 * glib/dbus-gtype-specialized.h: Update prototypes.
1137 Add DBusGTypeSpecializedMapAppendFunc.
1139 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1142 * glib/dbus-gtest.h: Prototype it.
1144 2005-07-08 Ross Burton <ross@openedhand.com>
1147 Add DBysGAsyncData for the async bindings.
1149 * glib/dbus-binding-tool-glib.c:
1150 Re-enable the async bindings.
1152 * test/glib/test-dbus-glib.c:
1153 Add a test for the generated async bindings.
1155 2005-07-08 Colin Walters <walters@verbum.org>
1157 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1160 2005-07-08 Colin Walters <walters@verbum.org>
1162 * tools/Makefile.am: Kill of print-introspect in favor of using
1163 dbus-send --print-reply=literal.
1165 * test/glib/test-service-glib.xml:
1166 * test/glib/test-service-glib.c (my_object_get_objs): New test
1169 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1170 (main): Test GetObjs.
1172 * glib/examples/statemachine/Makefile.am:
1173 * glib/examples/statemachine/sm-marshal.list:
1174 * glib/examples/statemachine/statemachine-client.c:
1175 * glib/examples/statemachine/statemachine-server.c:
1176 * glib/examples/statemachine/statemachine-server.xml:
1177 * glib/examples/statemachine/statemachine.c:
1178 * glib/examples/statemachine/statemachine.h:
1179 * glib/examples/statemachine/statemachine.xml:
1183 * glib/examples/example-service.c (main): Move invocation
1184 of dbus_g_object_type_install_info earlier, to emphasize it
1185 should only be done once.
1187 * glib/examples/example-signal-emitter.c (main): Ditto.
1189 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1191 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1192 (dbus_gvalue_marshal): Update prototypes.
1194 * glib/dbus-gvalue.c: Update all marshalling functions to take
1195 const GValue instead of GValue.
1196 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1198 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1200 (dbus_gtype_to_signature): Handle generic collecitons and maps.
1201 Return a newly-allocated string.
1202 (demarshal_proxy, demarshal_object_path, demarshal_object)
1203 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1204 we get the wrong types from message.
1205 (get_type_demarshaller): New function, extracted from
1206 dbus_gvalue_demarshal.
1207 (demarshal_collection): New function, demarshals generic
1209 (dbus_gvalue_demarshal): Just invoke result of
1210 get_type_demarshaller. Throw error if we don't have one.
1211 (marshal_garray_basic): Abort on OOM.
1212 (get_type_marshaller): New function, extracted from
1213 dbus_gvalue_marshal.
1214 (collection_marshal_iterator, marshal_collection): New functions;
1215 implements generic marshalling for an iteratable specialized
1217 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1219 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1221 (ptrarray_value_from_gvalue): Ditto.
1222 (ptrarray_append, ptrarray_free): New functions.
1223 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
1224 (slist_append, slist_end_append, slist_free): New functions.
1225 (dbus_g_type_specialized_builtins_init): Add append fuctions
1226 for GPtrArray and GSList. Register GSList.
1227 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1229 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1231 (dbus_g_type_specialized_collection_init_append)
1232 (dbus_g_type_specialized_collection_append)
1233 (dbus_g_type_specialized_collection_end_append): Prototype.
1234 (DBusGTypeSpecializedCollectionVtable): Add append_func and
1237 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
1238 (dbus_g_type_specialized_collection_append)
1239 (dbus_g_type_specialized_collection_end_append): New functions.
1240 (dbus_g_type_map_value_iterate): Take const GValue.
1241 (dbus_g_type_collection_value_iterate): Ditto.
1243 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1244 _dbus_gvalue_utils_test.
1246 * glib/dbus-gtest.h: Prototype it.
1248 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1249 using uninitialized owner_list.
1250 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1252 (dbus_g_proxy_end_call_internal): Update to use error set
1253 from dbus_gvalue_demarshal instead of setting it here.
1254 (dbus_g_proxy_begin_call): Move return_if_fail here.
1256 * glib/dbus-gobject.c (write_interface): Update for
1257 dbus_gtype_to_signature returning new string.
1259 * configure.in: Add glib/examples/statemachine.
1261 2005-07-08 Joe Shaw <joeshaw@novell.com>
1263 * configure.in: Add a configure option, --with-console-auth-dir
1265 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1266 new setting. Patch from Kay Sievers.
1268 2005-07-06 Colin Walters <walters@verbum.org>
1270 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1271 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1272 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1273 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1274 Delete in favor of dbus_g_proxy_begin_call and
1275 dbus_g_proxy_cancel_call.
1276 (DBusGProxyCall, DBusGProxyCallNotify): New.
1277 (dbus_g_proxy_begin_call): Change prototype to take callback, user
1278 data, and destroy function. This replaces
1279 dbus_g_pending_call_set_notify.
1280 (dbus_g_proxy_cancel_call): Prototype.
1281 (DBusGAsyncData): Delete, shouldn't be needed anymore.
1283 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1285 (struct _DBusGProxyManager): Add bus_proxy member, which is an
1286 internal proxy for calls to the bus. Remove
1287 pending_nameowner_calls, now the internal proxy keeps track.
1288 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1289 pending_nameowner_calls.
1290 (got_name_owner_cb): Update prototype, and use
1291 dbus_g_proxy_end_call.
1292 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1293 (dbus_g_proxy_manager_register): Delete directly libdbus code in
1294 favor of using internal proxy.
1295 (dbus_g_proxy_manager_unregister): Update to use
1296 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1297 (dbus_g_proxy_init): Initialize pending calls map.
1298 (dbus_g_proxy_constructor): New.
1299 (dbus_g_proxy_class_init): Add get/set property functions,
1300 constructor, and add NAME, PATH, and INTERFACE properties.
1301 (cancel_pending_call): New function.
1302 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1304 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1305 (GPendingNotifyClosure): New structure.
1306 (d_pending_call_notify, d_pending_call_free): Moved here from
1308 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1310 (manager_begin_bus_call): New internal function for talking to
1312 (dbus_g_proxy_new): Construct object using GObjet properties.
1313 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1314 Create closure of same, and insert call into map of pending calls.
1315 (dbus_g_proxy_end_call_internal): Take call id instead of pending
1316 call. Look up pending call in current set. Remove it when we've
1318 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1319 (dbus_g_proxy_begin_call): Change API to take callback, user data,
1320 and destroy function directly.
1321 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1322 (dbus_g_proxy_call): Invoke with NULL callback.
1323 (dbus_g_proxy_cancel_call): New function, replaces
1324 dbus_g_pending_call_cancel.
1326 * glib/dbus-gparser.c (validate_signature): Fix call to
1329 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1330 New quark for attaching metadata to GType.
1331 (info_hash): Delete.
1332 (lookup_object_info): Look up using quark.
1333 (dbus_g_object_type_install_info): Check that a type is classed,
1334 not that it's an object. Also just install type data using quark
1335 instead of using global hash.
1337 * glib/dbus-glib.c (dbus_g_pending_call_ref)
1338 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1339 (GPendingNotifyClosure): Delete.
1340 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1341 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1343 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1344 client method generation until we can fix it...
1346 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1347 (load_from_service_thread_func): Ditto.
1349 * tools/dbus-names-model.c (struct NamesModel): Hold
1351 (have_names_notify): Update prototype, use
1352 dbus_g_proxy_cancel_call.
1353 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1355 * tools/dbus-monitor.c (filter_func): Update for print_message
1358 * test/glib/test-dbus-glib.c: Add more tests for async
1359 invocations. Update many begin_call/end_call pairs to just use
1362 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
1363 allows us to dump print-introspect.c.
1365 * tools/dbus-print-message.h (print_message): Add literal argument
1366 to print_message which is intended to allow printing arguments without
1367 metadata like "string=".
1369 * tools/dbus-print-message.c (print_iter): Add literal argument.
1370 (print_message): Allow printing string messages literally.
1372 2005-07-05 Colin Walters <walters@verbum.org>
1374 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1375 Remove value refcount leak, original patch from Jorn Baayen
1376 <jorn@openedhand.com>. Also remove useless extra value in favor
1377 of prepending to value array directly.
1379 2005-07-02 Colin Walters <walters@verbum.org>
1381 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1383 2005-07-01 Colin Walters <walters@verbum.org>
1385 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1387 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1388 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1389 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1390 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1392 2005-06-30 Colin Walters <walters@verbum.org>
1394 * test/glib/test-dbus-glib.c:
1395 * test/glib/test-service-glib.c:
1396 * test/glib/test-service-glib.xml: Update tests for new error
1397 setting bits, also add async tests (patch from Ross Burton).
1399 * test/glib/Makefile.am (test_service_glib_LDADD): Add
1400 DBUS_GLIB_THREADS_LIBS.
1402 * glib/dbus-gproxy.c (get_name_owner)
1403 (dbus_g_pending_call_end_valist): Ditto.
1405 * glib/dbus-gobject.c (error_metadata): New mapping from GError
1406 domain (GQuark) to DBusGErrorInfo.
1407 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1408 quark in error_metadata. Take message interface as default
1409 error message interface.
1410 (gerror_to_dbus_error_message): Pass message interface.
1411 (dbus_set_g_error): Resurrected.
1412 (dbus_g_error_info_free): New function.
1413 (dbus_g_object_type_install_info): Use g_type_class_ref instead
1414 of _peek to actually create the object class if it hasn't been
1416 (dbus_g_error_domain_register): New function.
1418 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1420 * glib/dbus-gparser.c (validate_signature): Ditto.
1422 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1423 (dbus_g_error_domain_register): Prototype.
1425 * glib/dbus-glib.c (dbus_g_error_set): Delete.
1428 2005-06-29 Colin Walters <walters@verbum.org>
1430 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
1431 DBUS_TYPE_G_OBJECT_PATH.
1433 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1434 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1435 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
1436 (dbus_g_object_path_get_g_type): New function.
1437 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1438 to DBUS_TYPE_G_OBJECT_PATH by default.
1439 (demarshal_proxy): Remove unused name variable.
1440 (demarshal_object_path, marshal_object_path): New functions.
1441 (demarshal_proxy_array, marshal_proxy_array): Delete.
1443 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1444 DBUS_TYPE_G_OBJECT_PATH to char *.
1445 (dbus_g_type_get_lookup_function): Map builtin
1446 DBUS_TYPE_G_OBJECT_PATH.
1448 * test/glib/test-dbus-glib.c
1449 * test/glib/test-service-glib.c (my_object_objpath):
1450 Adapt tests to new object path marshalling.
1452 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
1454 * configure.in: force check for Python >= 2.4
1456 2005-06-29 Colin Walters <walters@verbum.org>
1458 Patch from Ross Burton <ross@openedhand.com>
1460 * glib/dbus-gobject.c (invoke_object_method): Unset object
1461 value in all cases, not only in async case.
1463 2005-06-29 Colin Walters <walters@verbum.org>
1465 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1466 name_call for keeping track of any outgoing GetNameOwner call.
1467 Also add for_owner and associated.
1468 (struct _DBusGProxyManager): Add owner_names, which is hash table
1469 that maps a base name to a list of names it owns (that we're
1470 interested in). Add pending_nameowner_calls which is a list of
1471 all outstanding GetNameOwner; avoids us having to iterate over
1472 every proxy. Add unassociated_proxies which keeps track of name
1473 proxies with no associated name owner.
1474 (dbus_g_proxy_manager_unref): Destroy owner_names.
1475 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1477 (find_name_in_info, name_owner_foreach)
1478 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1479 (dbus_g_proxy_manager_monitor_name_owner)
1480 (dbus_g_proxy_manager_unmonitor_name_owner)
1481 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1482 New functions; they manipulate the owner_names mapping.
1483 (got_name_owner_cb): New function.
1484 (get_name_owner): New function, extracted from
1485 dbus_g_proxy_new_for_name_owner.
1486 (dbus_g_proxy_manager_register): For now we need to keep track of
1487 all NameOwnerChanged. Also if the proxy is for a name, if we
1488 don't already know the name owner, queue a new GetNameOwner
1489 request and add it to our list of unassociated proxies. Otherwise
1491 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1492 cancel any pending GetNameOwner call, etc.
1493 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
1494 the owner_names mapping to look up the current names for the
1495 signal source, and dispatch to any proxies for that name.
1496 (dbus_g_proxy_new): Initialize new members.
1497 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1498 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1499 (dbus_g_pending_call_end_valist): New function, extracted from
1500 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
1501 but want to use the GLib infrastructure. Also note how many
1502 arguments in reply were over.
1503 (dbus_g_pending_call_end): New function, just call
1504 dbus_g_pending_call_end_valist.
1505 (dbus_g_proxy_end_call_internal): Just call
1506 dbus_g_pending_call_end_valist.
1508 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1509 of builtin marshaller for STRING_STRING_STRING.
1511 * test/glib/test-dbus-glib.c:
1512 * test/glib/test-service-glib.c:
1513 * test/glib/test-service-glib.xml:
1514 Extend tests to cover name proxies, destruction of owner proxies,
1517 * glib/examples/example-signal-recipient.c
1518 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1520 * tools/dbus-send.c (main): Print D-BUS error name in addition
1523 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
1525 * python/dbus_bindings.pyx.in (cunregister_function_handler,
1526 cmessage_function_handler): Patch from
1527 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1528 by using the Py_GILState_Ensure/Release to synchronize with the
1531 2005-06-28 Ray Strode <rstrode@redhat.com>
1533 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1534 babysitter helper process on last unref, bug #2813.
1536 2005-06-27 Colin Walters <walters@verbum.org>
1538 * test/glib/test-dbus-glib.c:
1539 * test/glib/test-service-glib.c:
1540 * test/glib/test-service-glib.xml:
1541 Test hash table signal emitting.
1543 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1544 types to their fundamental basis types, since this is what
1545 marshallers operate on. Also add an entry for VOID__BOXED.
1546 (dbus_g_object_register_marshaller_array): Convert to fundamental.
1548 2005-06-26 Havoc Pennington <hp@redhat.com>
1550 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1553 2005-06-26 Colin Walters <walters@verbum.org>
1555 * glib/dbus-glib.c (dbus_set_g_error): Delete.
1556 (dbus_g_error_set): New public function from its ashes; used by
1557 both service-side method implementation and GLib bindings
1559 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1560 (_dbus_glib_test): Add some tests.
1562 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1564 * test/glib/test-service-glib.c (my_object_throw_error): Use
1567 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1568 errors thrown by dbus_g_error_set.
1570 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1572 * glib/dbus-gparser.c (validate_signature): Ditto.
1574 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
1575 (dbus_g_proxy_end_call_internal): Ditto.
1577 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1578 converts DBUS_ERROR_x to DBUS_GERROR_x.
1579 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1581 * doc/TODO: Remove error TODO.
1583 * doc/dbus-tutorial.xml: Update with documentation about error
1586 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1587 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1588 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
1590 2005-06-22 Colin Walters <walters@verbum.org>
1592 Patch from Ross Burton <ross@openedhand.com>
1594 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1596 2005-06-20 Colin Walters <walters@verbum.org>
1598 * configure.in: Add glib/examples.
1600 * glib/Makefile.am: Add examples/
1602 * glib/examples/.cvsignore
1603 * glib/examples/Makefile.am
1604 * glib/examples/example-client.c
1605 * glib/examples/example-service.c
1606 * glib/examples/example-service.xml
1607 * glib/examples/example-signal-emitter.c
1608 * glib/examples/example-signal-emitter.xml
1609 * glib/examples/example-signal-recipient.c:
1610 New files; GLib binding examples, ported from
1613 2005-06-20 Colin Walters <walters@verbum.org>
1616 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1619 * glib/dbus-binding-tool-glib.c:
1620 * doc/dbus-tutorial.xml:
1621 * test/glib/test-dbus-glib.c: Update for rename.
1623 2005-06-20 Colin Walters <walters@verbum.org>
1625 Patch suggested by Ross Burton <ross@openedhand.com>
1627 * glib/dbus-gobject.c (export_signals): Free signal name.
1628 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1629 memory leak. Add a bit of documentation.
1630 (dbus_g_method_return_error): Free context, and note we do
1633 2005-06-18 Murray Cumming <murrayc@murrayc.com>
1636 * glib/dbus-gobject.c:
1637 * glib/dbus-gproxy.c:
1638 * glib/dbus-gvalue.c: Predeclare structs as
1639 typedef struct _Something Something instead of
1640 typedef struct Something Something, so we can
1641 redeclare the prototypes. Other GNOME libraries
1644 2005-06-17 Colin Walters <walters@verbum.org>
1646 * tools/dbus-names-model.c (have_names_notify): Fix call
1647 to dbus_g_proxy_end_call.
1649 2005-06-17 Colin Walters <walters@verbum.org>
1651 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1652 spew warnings if we get malformed remote signals.
1654 * glib/dbus-gobject.c (propsig_iterate): New function.
1655 (lookup_object_info): New function, extracted from
1656 lookup_object_and_method.
1657 (introspect_properties, introspect_signals): Delete; these
1658 are merged into write_interface.
1659 (write_interface): Write out signals and properties here;
1660 dump the org.gtk.object stuff and use the interface given
1661 in the introspection data blob. Also fix up property XML.
1662 (lookup_values): New function.
1663 (introspect_interfaces): Gather a mapping from interface to a
1664 list of its methods, signals, and properties, then write out
1666 (lookup_object_and_method): Use lookup_object_info.
1667 (struct DBusGSignalClosure): Add interface.
1668 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1669 we can just use the constant data.
1670 (dbus_g_signal_closure_finalize): Don't free signal name.
1671 (signal_emitter_marshaller): Use interface from signal closure.
1672 (export_signals): Only export signals mentioned in introspection
1674 (dbus_g_connection_register_g_object): Warn if we have no
1675 introspection data for an object.
1676 (funcsig_equal): Remove unused variable.
1677 (dbus_g_object_register_marshaller): Take varargs instead of
1679 (dbus_g_object_register_marshaller_array): New function,
1680 extracted from old dbus_g_object_register_marshaller.
1682 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1683 signals and property data.
1684 (write_quoted_string): New function, extracted from generate_glue.
1685 (generate_glue): Write signals and properties to introspection
1688 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1689 exported_signals and exported_properties.
1690 (dbus_g_object_register_marshaller): Update prototype.
1691 (dbus_g_object_register_marshaller_array): Prototype.
1693 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1695 * test/glib/test-service-glib.c: Add new test signals and method
1698 * test/glib/test-service-glib.xml: Add some test signals.
1700 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1701 and my-object-marshal.h
1702 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1703 my-object-marshal.c.
1704 (my-object-marshal.c, my-object-marshal.h): Implement.
1706 * test/glib/.cvsignore: Update.
1708 * doc/TODO: Remove two GLib TODO items fixed by this
1711 2005-06-16 Colin Walters <walters@verbum.org>
1713 * doc/TODO: Update for GLib bindings.
1715 2005-06-16 Colin Walters <walters@verbum.org>
1717 * glib/dbus-binding-tool-glib.c:
1718 * glib/dbus-gobject.c:
1719 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1720 from Ross Burton, for his GLib bindings work.
1722 2005-06-16 Colin Walters <walters@verbum.org>
1724 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1725 to iterate instead of walking to G_TYPE_INVALID.
1727 Patch based on a patch from Ryan Gammon.
1729 2005-06-16 Colin Walters <walters@verbum.org>
1731 * bus/bus.c (bus_context_new): Set parser to NULL
1732 after we unref it (Patch from Chris Boscolo, #2174).
1734 2005-06-16 Colin Walters <walters@verbum.org>
1736 * python/dbus_bindings.pyx.in: Import size_t,
1737 __int64_t, __uint64_t, and __signed.
1739 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1740 Define cmsg struct, output it.
1741 (_dbus_read_credentials_unix_socket):
1744 Patch from Joe Markus Clarke for FreeBSD support.
1746 2005-06-16 Colin Walters <walters@verbum.org>
1748 * tools/dbus-send.c (append_array): Use strtok.
1749 (append_dict): New function.
1750 (type_from_name): New function, extracted from main.
1751 (main): Handle sending dicts.
1753 * tools/dbus-print-message.c (print_iter): Print dict
1756 2005-06-16 Colin Walters <walters@verbum.org>
1758 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1759 values as the empty string (#2948).
1761 2005-06-16 Colin Walters <walters@verbum.org>
1764 * mono/doc/Makefile.am:
1765 * test/glib/Makefile.am:
1767 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
1769 2005-06-16 Colin Walters <walters@verbum.org>
1771 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
1772 header byte order from expected byte order (Patch from Chris Wilson, #3475).
1774 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
1775 Increment pointer after swapping fixed array. Add assertion
1778 2005-06-15 Colin Walters <walters@verbum.org>
1780 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
1781 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
1783 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1785 * NEWS: Update to 0.34
1787 2005-06-15 David Zeuthen <davidz@redhat.com>
1789 * configure.in (LT_CURRENT): Revert back to 1 as the library
1790 hasn't changed and we've certainly not committed to protocol
1791 stability yet. All this does is to break ABI. See commit note
1792 from hp@redhat.com 2005-05-05 for details.
1794 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1796 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
1797 (_dbus_connection_run_builtin_filters): New method
1798 (dbus_connection_dispatch): Run the builtin filters which in turn
1799 runs the peer filter which handles Ping messages.
1802 - Ping isn't handled: This patch fixes it
1804 - Add a test case for the Ping message: added TODO item
1806 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1808 * dbus/dbus-message.c:
1809 (dbus_message_has_path): New method
1810 (dbus_message_has_interface): New method
1811 (dbus_message_has_member): New method
1813 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
1816 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
1817 the keyring directory is private to the user
1820 - The convenience functions in dbus-bus.h should perhaps have
1821 the signatures that they would have if they were autogenerated
1822 stubs. e.g. the acquire service function. We should also evaluate
1823 which of these functions to include, in light of the fact that
1824 GLib/Qt native stubs will probably also exist.: Punted
1826 - add dbus_message_has_path(), maybe has_member/interface:
1829 - in dbus-keyring.c, enforce that the keyring dir is not
1830 world readable/writable: Fixed in this patch
1832 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
1834 * dbus/dbus-marshal-validate.h: Added a new validation
1835 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
1836 out of memory errors when validating signitures
1838 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
1839 in places where we previously used DBUS_VALID and a FALSE return
1840 value to indicate OOM
1842 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
1843 Use a stack to track the number of elements inside containers. The
1844 stack values are then used to validate that dict entries have only two
1845 elements within them.
1846 (validate_body_helper): check the reason for failure when validating
1849 * dbus/dbus-message.c (load_message): use
1850 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
1851 DBUS_VALID and a FALSE return value to indicate OOM
1853 * doc/TODO: remove "- validate dict entry number of fields" as this
1856 2005-06-14 David Zeuthen <davidz@redhat.com>
1858 * bus/bus.c (process_config_every_time): Drop existing conf-dir
1859 watches (if applicable) and add new watches
1861 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
1862 (main): Setup SIGIO signal handler if using D_NOTIFY
1864 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
1866 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
1867 (merge_included): Also merge conf_dirs list
1868 (bus_config_parser_unref): Clear conf_dirs list
1869 (include_dir): Add directory to conf_dirs list
1870 (bus_config_parser_get_conf_dirs): New function
1872 * bus/dir-watch.[ch]: New files
1874 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
1876 * configure.in: Add checks for D_NOTIFY on Linux
1878 2005-06-14 Colin Walters <walters@verbum.org>
1880 * glib/dbus-binding-tool-glib.c:
1881 * glib/dbus-gobject.c:
1882 * glib/dbus-gvalue.c: Fix indentation and brace style.
1884 2005-06-14 Ross Burton <ross@openedhand.com>.
1886 * glib/dbus-glib.h: Make DBusGMethodInvocation
1887 a private structure. Rearrange prototypes a bit.
1889 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
1890 documentation for first_arg_type.
1892 * glib/dbus-gobject.c: Move DBusGMethodInvocation
1893 here, add documentation. Move dbus_g_method_return
1894 and dbus_g_method_return_error into public API
1897 2005-06-14 Colin Walters <walters@verbum.org>
1899 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
1900 Add missing return statements, noticed by Ross Burton.
1902 2005-06-13 Ross Burton <ross@openedhand.com>.
1904 * glib/dbus-gobject.c: Handle errors on message
1905 demarshalling by sending error message back.
1906 * glib/dbus-gvalue.c: Initialize return variables.
1908 2005-06-13 Colin Walters <walters@verbum.org>
1910 * glib/Makefile.am: Fix thinko in last patch.
1912 2005-06-13 Colin Walters <walters@verbum.org>
1914 * glib/Makefile.am: Move dbus-gtype-specialized.c
1915 and dbus-gtype-specialized.h into a _HEADERS variable,
1918 2005-06-12 Colin Walters <walters@verbum.org>
1920 Async signals and various bugfixes and testing by
1921 Ross Burton <ross@openedhand.com>.
1923 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
1924 (dbus_gvalue_genmarshal_name_from_type)
1925 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
1926 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
1927 (dbus_g_value_types_init, dbus_gtype_from_signature)
1928 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
1929 (dbus_gtypes_from_arg_signature): New function prototypes.
1930 (dbus_gvalue_demarshal): Take context and error arguments.
1931 (dbus_gvalue_demarshal_variant): New function.
1932 (dbus_gvalue_demarshal_message): New function.
1933 (dbus_gvalue_store): Delete.
1935 * glib/dbus-gvalue.c:
1937 File has been almost entirely rewritten; now we special-case
1938 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
1939 hash tables correctly, etc. Full support for recursive values
1940 is not yet complete.
1942 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
1943 argument of signal to G_TYPE_POINTER since we now pass a
1945 (lookup_g_marshaller): Delete in favor of
1946 _dbus_gobject_lookup_marshaller.
1947 (marshal_dbus_message_to_g_marshaller): Use
1948 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
1949 to handle remote signal callbacks.
1950 (dbus_g_proxy_new_from_proxy): New function; creates a new
1951 DBusGProxy by copying an existing one.
1952 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
1953 (dbus_g_proxy_get_path): New functions.
1954 (dbus_g_proxy_marshal_args_to_message): New function;
1955 factored out of existing code.
1956 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
1957 from a varargs array.
1958 (dbus_g_proxy_begin_call_internal): New function.
1959 (dbus_g_proxy_end_call_internal): New function.
1960 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
1961 as arguments; simply invoke dbus_g_proxy_begin_call_internal
1962 after collecting args into value array.
1963 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
1964 invoke dbus_g_proxy_end_call_internal.
1965 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
1967 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
1969 (array_free_all): New function.
1970 (dbus_g_proxy_add_signal): Take GTypes.
1972 * glib/dbus-gobject.h:
1973 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1974 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
1977 * glib/dbus-gobject.c: Add a global marshal_table hash which
1978 stores mappings from type signatures to marshallers. Change lots
1979 of invocations of dbus_gtype_to_dbus_type to
1980 dbus_gtype_to_signature.
1981 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
1982 (introspect_signals): Fix test for query.return_type.
1983 (set_object_property): Update invocation of dbus_gvalue_demarshal.
1984 (invoke_object_method): Many changes. Handle asynchronous
1985 invocations. Convert arguments with
1986 dbus_gvalue_demarshal_message. Handle errors. Use
1987 DBusSignatureIter instead of strlen on args. Handle all arguments
1988 generically. Special-case variants.
1989 (dbus_g_method_return, dbus_g_method_return_error): New function.
1990 (DBusGSignalClosure): New structure, closes over signal
1992 (dbus_g_signal_closure_new): New function.
1993 (dbus_g_signal_closure_finalize): New function.
1994 (signal_emitter_marshaller): New function; is special marshaller
1995 which emits signals on bus.
1996 (export_signals): New function; introspects object signals and
1998 (dbus_g_object_type_install_info): Take GType instead of
2000 (dbus_g_connection_register_g_object): Invoke export_signals.
2001 (dbus_g_connection_lookup_g_object): New function.
2002 (DBusGFuncSignature) New structure; used for mapping type
2003 signatures to marshallers.
2004 (funcsig_hash): New function; hashes DBusGFuncSignature.
2005 (funcsig_equal): New function; compares DBusGFuncSignature.
2006 (_dbus_gobject_lookup_marshaller): New function.
2007 (dbus_g_object_register_marshaller): New function; used to
2008 register a marshaller at runtime for a particular signature.
2010 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2012 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2013 which notes a server method implementation should be
2016 * glib/dbus-binding-tool-glib.c
2017 (dbus_binding_tool_output_glib_server): Call
2018 dbus_g_value_types_init.
2019 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
2021 (dbus_g_type_get_lookup_function): Turn GType into an invocation
2022 of a lookup function.
2023 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2024 (write_untyped_out_args): New method; write output arguments.
2025 (write_formal_declarations_for_direction): Function for
2027 (write_formal_parameters_for_direction): Function for
2028 writing implementations.
2029 (write_typed_args_for_direction): Function for writing
2030 arguments prefixed with GTypes.
2031 (write_async_method_client): Write out async version
2034 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2035 (dbus_g_type_get_marshal_name): Move mapping from GType
2036 to marshal name into here.
2037 (dbus_g_type_get_c_name): Move into here.
2038 (compute_marshaller): Convert signature to type with
2039 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2040 (compute_marshaller_name): Ditto.
2041 (compute_marshaller): Handle async signal annotations.
2042 (gather_marshallers): Return if we don't have a known
2044 (generate_glue): Collect introspection blob here, and
2045 write all of the blob at the end. This allows an object
2046 with multiple interfaces to work.
2047 Mark async methods in introspection blob.
2049 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2050 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2051 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2053 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2054 avoids people accidentally using DBUS_TYPE_* which should
2055 not be necessary anymore.
2056 Do include dbus-gtype-specialized.h, which are utilities
2057 for GLib container types.
2058 Add various #defines for types such as
2059 DBUS_TYPE_G_BOOLEAN_ARRAY.
2060 (DBusGValueIterator, DBusGValue): Define, not fully used
2062 (dbus_g_value_get_g_type): Type for recursive value.
2063 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2064 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2065 (dbus_g_value_free): Prototypes.
2066 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2067 (dbus_g_proxy_set_interface): Prototype.
2068 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2069 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2071 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2073 (DBusGAsyncData, DBusGMethodInvocation): Structures for
2074 doing async invocations.
2075 (dbus_g_method_return, dbus_g_method_return_error):
2077 * doc/dbus-tutorial.xml: Update GLib section.
2079 * tools/dbus-viewer.c (load_child_nodes): Update
2080 for new invocation type of dbus_g_proxy_end_call.
2081 (load_from_service_thread_func): Ditto.
2083 * tools/print-introspect.c (main): Ditto.
2085 * tools/dbus-names-model.c (have_names_notify)
2086 (names_model_reload, names_model_set_connection)
2089 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2090 needed since Python bindings use GLib bindings.
2092 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2093 Add --prefix argument.
2095 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
2096 unneeded --ignore-unsupported arg.
2098 * test/glib/test-service-glib.c:
2099 * test/glib/test-service-glib.xml:
2100 * test/glib/test-dbus-glib.c: Add many more tests.
2102 2005-06-06 David Zeuthen <davidz@redhat.com>
2104 * doc/TODO: Add item about need to remove deprecated functions.
2106 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2108 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2109 to repair the ABI which was broken with the last commit.
2111 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
2113 * dbus/dbus-connection.c, dbus/dbus-connection.h
2114 (dbus_connection_disconnect): renamed to dbus_connection_close
2115 for API symmetry with dbus_connection_open
2116 (_dbus_connection_open_internal):
2117 s/dbus_connection_disconnect/dbus_connection_close
2119 * dbus/dbus-bus.c (dbus_bus_get):
2120 s/dbus_connection_disconnect/dbus_connection_close
2122 * bus/connection.c (bus_connections_unref,
2123 bus_connections_setup_connection, bus_connections_expire_incomplete):
2124 s/dbus_connection_disconnect/dbus_connection_close
2126 * bus/dispatch.c (bus_dispatch, kill_client_connection,
2127 kill_client_connection_unchecked, check_hello_connection):
2128 s/dbus_connection_disconnect/dbus_connection_close
2130 * bus/bus.c (new_connection_callback):
2131 s/dbus_connection_disconnect/dbus_connection_close
2133 * tools/dbus-send.c (main):
2134 s/dbus_connection_disconnect/dbus_connection_close
2136 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2137 s/dbus_connection_disconnect/dbus_connection_close
2139 * test/test-service.c (path_message_func, filter_func):
2140 s/dbus_connection_disconnect/dbus_connection_close
2142 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
2144 2005-05-25 Colin Walters <walters@verbum.org>
2146 * dbus/dbus-protocol.h: Move various bus service #defines such
2147 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2149 * dbus/dbus-shared.h: Various defines moved here.
2150 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2152 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
2154 * python/__init__.py: Python bindings deserve a minor version
2155 update. Upped to (0, 40, 2)
2157 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
2159 * python/decorators.py: add explicitly_pass_message decorator
2160 for passing in the dbus message as keyword for edge case signal
2163 * python/matchrules.py (SignalMatchRule.__repr__): fix output
2164 to conform with what dbus expects for match rules
2165 (SignalMatchRule.execute): add the dbus message as a keyword
2166 if the signal handler has requested it
2168 * python/examples/example/signal-recipient.py: added some more
2169 examples on how to hook up to signals
2171 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
2173 * python/decorators.py: import dbus_bindings
2175 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
2176 SignalMatchNode): new classes that implement wildcard signal
2177 callback matching using a tree lookup. Heavily modified from a
2178 patch sent by Celso Pinto (fd.o bug #3241)
2180 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2181 use new match classes to handle signals.
2183 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
2185 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2187 2005-05-18 Havoc Pennington <hp@redhat.com>
2189 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2190 gettext. Not really worth requiring yet perhaps, but any
2191 production quality 1.0 would require it so we should go ahead and
2192 get things set up. We do have a couple token calls to
2193 bindtextdomain in the code already.
2195 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
2197 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2198 when using recursive g_main_loops
2200 * python/_dbus.py (class Bus): add the ProxyObjectClass
2201 alias for ProxyObject to make it easier for the Twisted
2202 networking framework to integrate dbus.
2204 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2205 alias for ProxyMethod to make it easier for the Twisted
2206 networking framework to integrate dbus.
2208 2005-05-11 Ross Burton <ross@openedhand.com>
2210 * glib/dbus-glib-tool.c: Add --prefix argument.
2211 * glib/dbus-binding-tool-glib.h: Add prefix argument.
2212 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2213 Add prefix argument.
2214 (generate_glue): Pass prefix argument down.
2215 (dbus_binding_tool_output_glib_server): Pass prefix to
2218 2005-05-11 Colin Walters <walters@verbum.org>
2220 * tools/dbus-send.c (append_array): New function.
2221 (append_arg): Broken out from main.
2222 (main): Add cheesy hack to send arrays and variants.
2224 * tools/dbus-print-message.c (print_iter): Broken out
2227 2005-05-11 Colin Walters <walters@verbum.org>
2229 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2230 New function, returns signature string for signature iter.
2231 * dbus/dbus-signature.h: Prototype it.
2232 * dbus/dbus-message.c (dbus_message_iter_get_signature):
2233 New function, returns signature string for message iter.
2234 (dbus_message_iter_get_array_len): New function, returns
2236 (dbus_message_iter_get_fixed_array): Fix assertion; this
2237 function should be used when the iter is pointing to the
2238 contents of an array
2239 * dbus/dbus-message.h: Prototypes.
2240 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2241 New function; returns length of an array.
2242 * dbus/dbus-marshal-recursive.h: Prototype it.
2244 2005-05-11 Colin Walters <walters@verbum.org>
2246 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2249 2005-05-08 Havoc Pennington <hp@redhat.com>
2251 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2252 daemon's pid, not the parent's pid, to the file descriptor.
2253 Reported by Taj Morton.
2255 2005-05-05 Havoc Pennington <hp@redhat.com>
2257 * configure.in (LT_*): add notes on how the libtool versioning
2258 works to save thinking. Increment soname to indicate protocol
2259 breakage (though really the library interface hasn't changed I
2262 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2263 verify the GUID received from server matches what we were
2264 expecting, if we had an expectation
2266 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2267 (_dbus_auth_get_guid_from_server): new function
2268 (send_begin): parse the OK args
2270 * doc/dbus-specification.xml: add GUID to the auth protocol
2272 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
2274 * Fix my name in previous changelog ;)
2276 * python/proxies.py (ProxyObject.__getattr__): add further patch
2277 from Anthony Baxter to throw an AttributeError when python
2278 __special__ functions are called instead of marshling them over
2279 the bus (Bug#1685 comment 3).
2281 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
2283 * python/Makefile.am: changed to use pyexecdir for the binding
2284 shared libraries (Bug#2494)
2286 * python/exceptions.py: bring exceptions over from the bindings
2287 so they can be used in applications (Bug#2036)
2288 Make all exceptions derive from DBusException
2290 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2291 of classes so that print obj doesn't throw an exception (Bug #1685)
2293 2005-05-03 Ross Burton <ross@openedhand.com>
2295 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2296 Return if we get an error during registration. Set up a
2297 weak reference on object to unregister if object is destroyed.
2298 (unregister_gobject): New function.
2300 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
2302 * python/dbus_bindings.pyx.in:
2303 - added new type classes for hinting to the marashaler what type
2304 to send over the wire
2305 - added int16 and uint16 marshalers
2306 - Fixed a bug in the type constants that caused int32 to go out
2307 as uint16 over the wire
2308 * python/dbus.py: split up into different files and renamed _dbus.py
2309 * python/__init__.py, python/_util.py, python/decorators.py,
2310 python/exceptions.py, python/proxies.py, python/services.py,
2311 python/types.py: new files split off from dbus.py
2312 * python/Makefile.am: Add new files, remove dbus.py and
2313 install all python files to <python module dir>/dbus
2314 * python/examples/*: Added #!/usr/bin/env python to the top of
2315 every example. Patch provided by Tatavarty Kalyan
2317 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2319 * NEWS: Update to 0.33
2321 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2323 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2324 method for doing async calls
2325 (_pending_call_notification): New C function for handling pendning call
2327 (set_notify): New method for setting pending call notification
2329 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2330 Async capabilities added to remote method calls
2331 (Sender): class removed
2332 (RemoteService): class removed
2333 (ObjectTree): class removed for now
2334 (RemoteObject): Renamed to ProxyObject
2335 (RemoteMethod): Renamed to ProxyMethod
2336 (method): Decorator added for decorating python methods as dbus methods
2337 (signal): Decorator added for decorating python methods as signal emitters
2338 (ObjectType): Metaclass added for generating introspection data and the
2339 method callback vtable
2340 (Interface): Wrapper class added to wrap objects in a dbus interface
2341 (Object): Uses ObjectType as its metaclass and exports Introspect
2342 of the org.freedesktop.DBus.Introspectable interface
2343 (ValidationException, UnknownMethodException): new exceptions
2345 * python/examples/*: Modified to fit with the new bindings
2347 2005-04-23 Havoc Pennington <hp@redhat.com>
2349 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2350 reported by Tony Houghton
2352 * test/test-service.c (main): test
2353 dbus_connection_get_object_path_data()
2355 * dbus/dbus-object-tree.c (find_handler): be sure we always init
2357 (_dbus_object_tree_get_user_data_unlocked): new function used by
2358 dbus_connection_get_object_path_data()
2359 (do_register): add assertion test for get_user_data_unlocked
2360 (object_tree_test_iteration): more tests
2362 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2363 new function from Dan Reed to let you get the user data from
2364 dbus_connection_register_object_path()
2366 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
2368 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2369 in numerous places that did not account for the NULL terminator
2370 (signature_from_seed): changed the manual string copy loop to
2371 just use strcpy instead
2372 make check should now pass
2374 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
2376 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2377 so that it allows messages that are not signals to pass in
2378 NULL as the interface.
2380 2005-04-18 David Zeuthen <davidz@redhat.com>
2382 * glib/dbus-gmain.c (io_handler_destroy_source):
2383 (timeout_handler_destroy_source, connection_setup_free):
2384 Also unref the source to avoid memory leaks.
2386 2005-04-13 David Zeuthen <davidz@redhat.com>
2388 * bus/config-parser.c (bus_config_parser_new): Bump this to a
2389 more reasonable, yet still totally arbitrary, value :-).
2391 2005-04-13 David Zeuthen <davidz@redhat.com>
2393 * doc/TODO: Added an "important for 1.0" item about selinux
2396 2005-04-13 David Zeuthen <davidz@redhat.com>
2398 * bus/selinux.c: Add c-file-style to top of file
2399 (log_audit_callback): Don't free the data here anymore
2400 (bus_selinux_check): Don't take spid and tpid since appending
2401 that to auxdata may OOM.
2402 (bus_selinux_allows_acquire_service): Handle OOM and signal back
2403 to the caller if we are OOM by taking an error object.
2404 (bus_selinux_allows_send): -do-
2406 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2407 and bus_selinux_allows_send
2409 * bus/bus.c (bus_context_check_security_policy): Pass error and
2410 pass on OOM thrown by bus_selinux_allows_send()
2412 * bus/services.c (bus_registry_acquire_service): Pass error and
2413 pass on OOM thrown by bus_selinux_allows_acquire_service()
2415 2005-04-13 Havoc Pennington <hp@redhat.com>
2417 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2418 message at a time to avoid monopolizing the main loop, bug
2419 #2953 from Benjamin Otte
2421 2005-04-09 Havoc Pennington <hp@redhat.com>
2423 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2424 possible overlap, fix from Daniel Reed
2425 (fixup_alignment): fix signedness warnings
2426 (_dbus_string_append_unichar): ditto
2428 2005-04-09 Havoc Pennington <hp@redhat.com>
2430 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2432 * glib/dbus-glib-tool.c (main): fix warning
2434 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2436 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2437 add a new function that can be used in simple applications that
2438 don't have a main loop and are willing to block
2440 2005-04-05 David Zeuthen <davidz@redhat.com>
2442 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2444 * glib/dbus-gmain.c:
2445 (io_handler_destroy_source): Remove from list of IO handlers
2446 of the ConnectionSetup object
2447 (timeout_handler_destroy_source): -do- for timeout handlers
2448 (io_handler_source_finalized): Don't remove from list since
2449 we now do that in io_handler_destroy_source(). Renamed from
2450 io_handler_source_destroyed
2451 (timeout_handler_source_destroyed): -do- for timeout handlers
2452 (connection_setup_free): It is now safe to iterate over all
2453 IO and timeout handlers as the _destroy_source removes them
2454 from the list synchronously
2456 2005-03-30 Havoc Pennington <hp@redhat.com>
2458 * configure.in: change check to gtk 2.4
2460 * tools/dbus-viewer.c (name_combo_changed_callback): remove
2461 gtk_combo_box_get_active_text() usage to decrement GTK requirement
2464 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2468 * HACKING: Fixed realease instructions. configure.in should be updated to
2469 the next release by the person who made the last release.
2471 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2473 * python/lvalue_cast_post_process.py - removed. Patch has been
2474 submitted to Pyrex maintainers that fixes gcc4.0 errors
2476 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2478 2005-03-24 Daniel Reed <n@ml.org>
2480 * tools/Makefile.am: Make print-introspect and
2481 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2483 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
2485 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2487 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
2488 had in Red Hat packages for a while but for some reason never
2490 (_dbus_is_a_number): New checks if a string
2491 can be converted to a number and does the conversion if it can
2492 (_dbus_user_database_lookup): Add check to see if the given username
2493 is a udi. This allows udi's to be used instead of usernames in the
2495 (_dbus_user_database_lookup_group): Add check to see if the given groupname
2496 is a gdi. This allows gdi's to be used instead of groupnames in the
2499 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
2501 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2502 code so that it compiles with gcc4.0
2504 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2505 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2506 results back to dbus_binding.c
2508 2005-03-20 Colin Walters <walters@verbum.org>
2510 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2512 * configure.in: Require GTK+ 2.6.
2514 2005-03-20 Colin Walters <walters@verbum.org>
2516 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2518 2005-03-17 Tom Parker <palfrey@tevp.net>
2520 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2521 print DBUS_UID_UNSET; instead print passed username. Also
2522 be sure to actually use gid looked up in cache.
2524 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2525 for DBUS_GID_UNSET and groupname.
2527 2005-03-17 Colin Walters <walters@verbum.org>
2529 * bus/print-introspect.c: Move to tools/.
2530 * bus/run-with-tmp-session-bus.sh: Ditto.
2532 * glib/Makefile.am (dbus-glib-bindings.h): Move
2533 generation to tools/Makefile.am.
2535 * test/glib/run-test.sh: Update to handle move
2536 of run-with-tmp-session-bus.sh.
2538 * test/glib/test-service-glib.c: Update to handle
2539 move of dbus-glib-bindings.h.
2541 * tools/print-introspect.c: Moved here
2542 from bus/, and ported to GLib bindings.
2544 * tools/run-with-tmp-session-bus.sh: Moved here
2547 * tools/Makefile.am: Generate dbus-glib-bindings.h
2548 and dbus-bus-introspect.xml here.
2550 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2553 2005-03-17 Colin Walters <walters@verbum.org>
2555 * bus/driver.c (write_args_for_direction): Use
2556 _dbus_string_get_const_data to retrieve string;
2557 _dbus_string_get_const_data_len doesn't actually return
2558 a NULL-terminated substring.
2560 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2561 (main): Change to use org_freedesktop_DBus_request_name
2562 instead of using g_proxy_begin_call/end_call.
2564 2005-03-15 Joe Shaw <joeshaw@novell.com>
2566 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2567 generating the finalizer. Fixes from Ben Maurer.
2569 2005-03-12 Joe Shaw <joeshaw@novell.com>
2571 * mono/BusDriver.cs: Update method names: ListServices
2572 becomes ListNames; GetOwner becomes GetNameOwner.
2574 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2575 onto the eval stack when removing the delegate.
2577 2005-03-12 Joe Shaw <joeshaw@novell.com>
2579 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2580 LT_CURRENT. Set it to the autoconf variable.
2582 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2583 classes that disconnects the signal handler delegate from the
2584 service object. Fixes a big leak of proxy objects on the
2585 client side of things. Patch from Ben Maurer
2586 <bmaurer@ximian.com>
2588 2005-03-12 Colin Walters <walters@verbum.org>
2590 * bus/driver.c (write_args_for_direction): New function,
2591 parses a type signature into arguments and outputs to
2593 (bus_driver_handle_introspect): Use it instead of
2594 hardcoding XML for certain signatures.
2596 * bus/Makefile.am (dbus-bus-introspect.xml): Add
2597 dependency on dbus-daemon.
2599 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2600 argument, pass it to dbus_binding_tool_output_glib_client.
2602 * glib/dbus-binding-tool-glib.c
2603 (generate_client_glue): Protect against multiple inclusion.
2604 (dbus_binding_tool_output_glib_client): Add
2605 G_BEGIN_DECLS/G_END_DECLS.
2607 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2608 Change to just take iface prefix directly.
2609 (write_formal_parameters): Clarify error message.
2610 (check_supported_parameters): New function; checks to see type
2611 signatures of method parameters are supported.
2612 (generate_client_glue): Handle ignore_unsupported flag.
2613 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2616 * glib/Makefile.am (dbus-glib-bindings.h): Pass
2617 --ignore-unsupported by default until glib bindings
2620 2005-03-11 Colin Walters <walters@verbum.org>
2622 * glib/Makefile.am: Generate dbus-glib-bindings.h and
2625 * bus/print-introspect.c: New file; prints introspection
2626 data for a given name and object path.
2628 * bus/run-with-tmp-session-bus.sh: New file, refactored
2629 from test/glib/run-test.sh. Creates a temporary session
2630 bus and runs another program.
2632 * test/glib/run-test.sh: Refactor to invoke
2633 run-with-tmp-session-bus.sh.
2635 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2636 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
2637 macros instead of hardcoding.
2639 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2641 2005-03-11 Joe Shaw <joeshaw@novell.com>
2643 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2644 this unref; it doesn't match up evenly in some codepaths.
2645 (_dbus_connection_block_pending_call): Unref at every exitpoint;
2646 this evenly matches with the ref near the top of this function.
2648 2005-03-09 Joe Shaw <joeshaw@novell.com>
2650 * dbus/dbus-object-tree.c
2651 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2652 and we try to unregister a path that's not registered, still go
2653 through the process of unlocking and don't just return.
2655 2005-03-09 Colin Walters <walters@verbum.org>
2657 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2658 to this are generated for client-side wrappers. Invokes a
2659 D-BUS method and returns reply values.
2661 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2662 function; writes signature string for argument direction.
2663 (write_args_for_direction): Change to pass input values directly
2664 instead of via address, and fix indentation.
2665 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2666 make generated wrappers inlineable.
2668 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2669 note about using dbus_type_is_fixed.
2671 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2672 dbus/dbus-signature.c as dbus_type_is_fixed.
2674 All callers updated.
2676 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2677 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2679 * dbus/dbus-signature.h: Prototype.
2681 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2684 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2685 appropriate instead of just freeing it.
2686 (main): Free returned strings using g_free.
2688 * test/glib/Makefile.am (test-service-glib-glue.h)
2689 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2691 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2692 simply maps a simple D-BUS type to GType.
2693 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2695 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2696 initialize the value with it.
2697 (dbus_gvalue_binding_type_from_type): Unused, delete.
2698 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2699 various types instead of unmarshalling to value data directly.
2700 Remove can_convert boolean.
2701 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2702 returning directly instead of using can_convert boolean.
2703 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2704 Stores a GValue in a pointer to a value of its corresponding C
2707 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2708 add dbus_gvalue_store.
2710 2005-03-08 Joe Shaw <joeshaw@novell.com>
2712 Fix a bunch of lifecycle and memory management problems
2713 in the mono bindings.
2715 * mono/Arguments.cs (Arguments): Implement IDisposable
2717 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2718 strictly a static class.
2720 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2721 delegates into this file.
2722 (Connection): Implement IDisposable.
2723 (Dispose): Disconnect the connection and set the raw connection
2724 pointer to IntPtr.Zero.
2725 (~Connection): Call Dispose().
2726 (RegisterObjectPath): Added. Manages the registration of object
2727 paths so we can cleanly disconnect them at dispose/finalize time.
2728 (UnregisterObjectPath): Ditto.
2729 (set_RawConnection): Unregister all of the object paths when
2730 changing the underlying DBusConnection. Add them back onto the
2731 new connection, if any.
2733 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2734 more unmanaged resources anymore, so it's not necessary. Move all
2735 the DBusObjectPathVTable stuff out of here.
2736 (Handler): Save references to our delegates so that they don't get
2737 finalized. Call Connection.RegisterObjectPath() instead of
2738 dbus_connection_register_object_path() directly.
2739 (Message_Called): Dispose the message after we're finished with
2742 * mono/Message.cs (Message): Implement IDisposable.
2743 (Dispose): Dispose the Arguments, and set the RawMessage to
2745 (SendWithReplyAndBlock): We own the ref to the reply that comes
2746 back from dbus_connection_send_with_reply_and_block() so add a
2747 comment about that and unref it after we've constructed a managed
2748 MethodReturn class around it. Fixes a big, big leak.
2750 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2752 (BuildSignalHandler): After we've sent the Signal message, dispose
2754 (BuildMethod): Dispose of the method call and reply messages after
2755 we've sent the message and extracted the data we want from the
2758 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2760 (Service_FilterCalled): Dispose of the message after we're
2763 2005-03-08 Joe Shaw <joeshaw@novell.com>
2765 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
2766 After we attach our pending call to the connection, unref
2769 * mono/Connection.cs (set_RawConnection): Disconnect our
2770 filter and match callbacks from the old connection and
2771 reconnect them to the new connection, if any.
2773 * mono/DBusType/Array.cs: "Code" is a static member, so
2774 don't use "this" to refer to it. Fix for stricter checking
2777 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
2778 object path that we pass into unmanaged code.
2780 * mono/DBusType/String.cs (Append): Don't leak the string
2781 that we pass into unmanged code.
2783 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
2784 * NEWS: Update for 0.31
2786 * configure.in: Release 0.31
2787 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
2789 * qt/Makefile.am: fixed build
2791 * dbus/Makefile.am: soname bump for libdbus
2793 * glib/Makefile.am: soname bump for libdbus-glib
2795 2005-03-05 Havoc Pennington <hp@redhat.com>
2797 * dbus/dbus-sysdeps.c:
2798 (pseudorandom_generate_random_bytes_buffer): fix to have no return
2800 (_dbus_generate_random_bytes_buffer): fix return value
2802 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
2803 checks actually work, from Tom Parker <fdo@tevp.net>
2805 2005-03-01 Colin Walters <walters@verbum.org>
2807 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
2808 functions copied from dbus-glib-tool.c.
2809 (main): Convert lots of error code to use them.
2810 Also add some testing for introspection bits.
2812 2005-03-01 Colin Walters <walters@verbum.org>
2814 * doc/TODO: Remove introspection signature TODO.
2816 2005-02-27 Colin Walters <walters@verbum.org>
2818 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
2819 Change return value to const char * instead of int so we can do
2821 (struct PropertyInfo, struct ArgInfo): Store char *.
2822 (property_info_new, arg_info_new): Update parameters, strdup.
2823 (property_info_unref, arg_info_unref): Free.
2825 * glib/dbus-gidl.h: Update prototypes.
2827 * glib/dbus-gparser.c (basic_type_from_string): Delete.
2828 (validate_signature): New function, just validates signature and
2830 (parse_property, parse_arg): Invoke validate_signature. Store
2831 signature instead of just type code.
2833 * glib/dbus-gvalue.c (base_type_from_signature): New utility
2834 function to return a primary type for a signature, dropping
2835 information about types in container types.
2836 (dbus_gvalue_genmarshal_name_from_type)
2837 (dbus_gvalue_binding_type_from_type)
2838 (dbus_gvalue_ctype_from_type): Update to take full signature
2839 instead of type code.
2840 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
2842 * glib/dbus-gvalue.h: Update prototypes for above.
2844 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
2845 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
2846 (introspect_properties, introspect_signals, write_interface):
2847 Update to handle signatures, and remove usage of
2848 _dbus_gutils_type_to_string.
2849 (handle_introspect): Print out type codes instead of e.g. "string"
2850 in hardcoded introspection XML; also use x_AS_STRING constants
2851 instead of hardcoding in string.
2853 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
2854 to string. Remove usage of _dbus_gutils_type_to_string.
2856 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
2858 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
2861 * glib/dbus-binding-tool-glib.c (compute_marshaller)
2862 (compute_marshaller_name, generate_glue): Handle signature change
2864 (write_formal_parameters, write_args_for_direction): Ditto, and
2867 * tools/dbus-tree-view.c (type_to_string): Delete.
2868 (info_set_func_text): Update to print full signatures.
2870 * test/glib/test-service-glib.xml: Change types to new
2871 introspection format.
2873 2005-02-26 Havoc Pennington <hp@redhat.com>
2875 * doc/TODO: remove the "guid" item
2877 * test/glib/test-profile.c (no_bus_thread_func): use open_private
2878 (with_bus_thread_func): use open_private
2880 * dbus/dbus-connection.c (dbus_connection_open_private): new
2881 function that works like the old dbus_connection_open()
2882 (dbus_connection_open): now returns an existing connection if
2885 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
2886 through the GUID to the transport
2888 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
2889 GUID in hex-encoded form.
2891 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
2892 pass GUID argument in to the transport
2894 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
2897 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
2899 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
2901 2005-02-25 Havoc Pennington <hp@redhat.com>
2903 * doc/dbus-specification.xml: document the GUID thing
2905 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
2906 globally unique ID for the server, and put a "guid=hexencoded"
2907 field in the address
2909 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
2911 * dbus/dbus-message.c: ditto
2913 * dbus/dbus-dataslot.c: ditto
2915 * dbus/dbus-list.c: ditto
2917 * dbus/dbus-internals.h: wait, just include
2918 dbus-threads-internal.h here
2920 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
2923 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
2925 2005-02-24 Colin Walters <walters@verbum.org>
2927 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
2929 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
2931 * glib/Makefile.am: added dbus-gobject.h to sources list
2932 so distcheck doesn't fail
2934 2005-02-24 Havoc Pennington <hp@redhat.com>
2936 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
2937 you must disconnect before unref, since locking and other things
2938 are screwed up otherwise. Fix assorted other locking stuff.
2940 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
2943 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
2944 into a private header and don't export from the library
2946 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
2948 2005-02-24 Colin Walters <walters@verbum.org>
2950 * dbus/dbus-signature.c: New file; implements various functions
2951 related to type signatures. Includes an interator for parsing,
2952 validation functions.
2953 (dbus_type_is_basic): Moved here from
2954 dbus-marshal-basic.c:_dbus_type_is_basic.
2955 (dbus_type_is_container): Moved here from
2956 dbus-marshal-basic.c:_dbus_type_is_container.
2958 All callers of _dbus_type_is_container and _dbus_type_is_basic
2959 updated, and include dbus-signature.h.
2961 * dbus/dbus-signature.h: New file; prototypes for the above.
2963 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
2966 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
2967 function factored out of _dbus_first_type_in_signature.
2968 (_dbus_first_type_in_signature_c_str): New function; returns first
2969 type code for a type signature character.
2971 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
2972 handle function moves.
2974 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
2976 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
2977 function; skips to next complete type in type signature.
2978 Implemented using previous skip_one_complete_type. Now
2979 skip_one_complete_type just delegates to
2980 _dbus_type_signature_next.
2982 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
2984 (_dbus_type_is_container): Ditto.
2986 * doc/dbus-specification.xml: Update introspection sample to
2987 use real type signatures.
2989 * dbus/dbus-test.h: Prototype signature test.
2991 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
2994 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
2996 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
2998 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
2999 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3001 2005-02-21 Colin Walters <walters@verbum.org>
3003 * dbus/dbus-test-main.c (main): Take optional specific test
3006 * dbus/dbus-test.c (run_test): New function, runs a test function
3007 with no data directory.
3008 (run_data_test): Like above, but takes data directory.
3009 (dbus_internal_do_not_use_run_tests): Take
3010 specific test argument. Replace lots of cut n' paste code
3011 with run_test and run_data_test.
3013 * dbus/dbus-test.h: Update prototype for
3014 dbus_internal_do_not_use_run_tests.
3016 2005-02-20 Havoc Pennington <hp@redhat.com>
3018 Fix bugs reported by Daniel P. Berrange
3020 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3021 (protected_change_watch): new function
3022 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3023 (_dbus_server_add_watch): change to work like the
3024 dbus-connection.c equivalents; like those, probably kind of
3025 busted, but should at least mostly work for now
3026 (dbus_server_disconnect): drop the lock if we were already
3027 disconnected, patch from Daniel P. Berrange
3029 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
3030 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3033 * doc/TODO: todo about unscrewing this mess
3035 2005-02-19 Colin Walters <walters@verbum.org>
3037 * glib/dbus-binding-tool-glib.c
3038 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3040 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3041 as errno.h and sys/stat.h.
3042 (lose): New function, prints error with
3044 (lose_gerror): Similar, but takes GError for message.
3045 (main): Add --output argument to specify output file to write to,
3046 instead of always printing to stdout. In this mode, determine
3047 timestamps on source files to see whether any are newer than the
3048 target file. If not, exit. Also convert a number of error
3049 messages to use lose (since it's shorter), and switch to using
3050 g_io_channel_shutdown.
3052 2005-02-19 Havoc Pennington <hp@redhat.com>
3054 * glib/dbus-gobject.c
3055 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3057 * glib/dbus-glib.c: fix doxygen warnings
3059 * glib/dbus-gparser.c (parse_annotation): error if an annotation
3060 is found on an <arg>
3062 2005-02-17 Colin Walters <walters@verbum.org>
3064 * glib/dbus-gobject.h: Don't export
3065 _dbus_glib_marshal_dbus_message_to_gvalue_array.
3067 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3068 (invoke_object_method): Handle it.
3070 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3073 2005-02-17 Colin Walters <walters@verbum.org>
3075 * bus/.cvsignore, doc/.cvsignore
3076 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3079 2005-02-17 Colin Walters <walters@verbum.org>
3081 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3082 Rename to DBUS_SERVICE_DBUS.
3083 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3084 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3085 Change the value from "org.freedesktop.Local"
3086 to "org.freedesktop.DBus.Local".
3087 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3088 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3089 DBUS_INTERFACE_INTROSPECTABLE.
3090 Change the value from "org.freedesktop.Introspectable"
3091 to "org.freedesktop.DBus.Introspectable".
3092 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3093 DBUS_INTERFACE_PROPERTIES.
3094 Change the value from "org.freedesktop.Properties"
3095 to "org.freedesktop.DBus.Properties".
3096 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3097 DBUS_INTERFACE_PEER.
3098 Change the value from "org.freedesktop.Peer"
3099 to "org.freedesktop.DBus.Peer".
3100 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
3101 DBUS_INTERFACE_LOCAL.
3102 Change the value from "org.freedesktop.Local"
3103 to "org.freedesktop.DBus.Local".
3105 All other users of those constants have been changed.
3107 * bus/driver.c (bus_driver_handle_introspect): Use constants.
3109 * glib/dbus-gobject.c (handle_introspect): Use constants.
3111 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3113 2005-02-17 Colin Walters <walters@verbum.org>
3115 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3116 (parse_node, parse_interface, parse_method, parse_signal)
3117 (parse_property, parse_annotation): Lose if we're currently in an
3119 (parse_annotation): New function.
3120 (parser_start_element, parser_end_element): Handle annotation.
3121 (parse_method, parse_interface): Remove support for c_name attribute,
3122 switch to annotations.
3124 * glib/dbus-gidl.h (interface_info_get_binding_names)
3125 (method_info_get_binding_names)
3126 (interface_info_get_binding_name, method_info_get_binding_name)
3127 (interface_info_set_binding_name, method_info_set_binding_name):
3129 (interface_info_get_annotations, method_info_get_annotations)
3130 (interface_info_get_annotation, method_info_get_annotation)
3131 (interface_info_add_annotation, method_info_add_annotation):
3134 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3136 (struct MethodInfo): Ditto.
3137 Straightfoward conversion of binding methods into annotation methods
3140 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3142 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3144 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3145 Use new annotation API.
3147 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
3150 * doc/dbus-specification.xml: Discuss introspection annotations,
3151 include list of well-known annotations.
3153 * test/glib/test-service-glib.xml: Make validate against new DTD.
3155 2005-02-17 Colin Walters <walters@verbum.org>
3157 This patch is based on initial work from
3158 Paul Kuliniewicz <kuliniew@purdue.edu>.
3160 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3161 initialization of GValue from dbus type to here.
3162 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3163 for the "glib-genmarshal" program from a DBus type.
3164 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3165 into the C name for it we use in the glib bindings.
3166 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3167 glib C type (not GValue).
3168 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3170 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3171 from dbus-gobject.c.
3173 * glib/dbus-gutils.h: Prototype it.
3175 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3176 (marshal_dbus_message_to_g_marshaller): Use new shared function
3177 dbus_glib_marshal_dbus_message_to_gvalue_array.
3179 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3180 Will be changed once we have annotations.
3182 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3183 GStaticRWLock. Callers updated.
3184 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
3185 (string_table_next): New function for iterating over zero-terminated
3187 (string_table_lookup): New function; retrieves specific entry in
3189 (get_method_data): New function; look up method data in object data chunk.
3190 (object_error_domain_prefix_from_object_info)
3191 (object_error_code_from_object_info): New functions, but not implemented yet.
3192 (method_interface_from_object_info): New function; retrieve interface name.
3193 (method_name_from_object_info): New function; retrieve method name.
3194 (method_arg_info_from_object_info): New function; retrieve argument data.
3195 (arg_iterate): New function; iterates over serialized argument data.
3196 (method_dir_signature_from_object_info): New function; returns a
3197 GString holding type signature for arguments for just one
3198 direction (input or output).
3199 (method_input_signature_from_object_info)
3200 (method_output_signature_from_object_info): New functions.
3201 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3202 converts dbus message arguments into a GValue array. Used for both
3203 signal handling and method invocation.
3204 (struct DBusGlibWriteIterfaceData): New utility structure.
3205 (write_interface): New function; generate introspection XML for
3207 (introspect_interfaces): New function; gathers all interface->methods,
3208 generates introspection XML for them.
3209 (handle_introspect): Invoke introspect_interfaces.
3210 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3211 (lookup_object_and_method): New function; examines an incoming message
3212 and attempts to match it up (via interface, method name, and argument
3213 signature) with a known object and method.
3214 (gerror_domaincode_to_dbus_error_name): New function; converts a
3215 GError domain and code into a DBus error name. Needs GError data
3216 added to object introspection to work well.
3217 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3219 (invoke_object_method): New function to invoke an object method
3220 looked up via lookup_object_and_method. Parses the incoming
3221 message, turns it into a GValue array, then invokes the marshaller
3222 specified in the DBusGMethodInfo. Creates a new message with
3223 either return values or error message as appropriate.
3224 (gobject_message_function): Invoke lookup_object_and_method and
3225 invoke_object_method.
3227 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3228 (enum DBusBindingOutputMode): New enum for binding output modes.
3229 (pretty_print): Print binding names.
3230 (dbus_binding_tool_error_quark): GError bits.
3231 (version): Fix typo.
3232 (main): Create GIOChannel for output. Parse new --mode argument,
3233 possible values are "pretty-print", "glib-server", "glib-client".
3234 Use mode to invoke appropriate function.
3236 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3238 * glib/dbus-glib-tool.h: New header, just includes GError bits
3241 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3242 maps binding style to name.
3243 (struct MethodInfo): Ditto.
3244 (get_hash_keys, get_hash_key): Utility function, returns keys for
3246 (interface_info_new, method_info_new): Initialize bindings.
3247 (interface_info_unref, method_info_unref): Destroy bindings.
3248 (method_info_get_binding_names, method_info_get_binding_name)
3249 (interface_info_get_binding_names, interface_info_get_binding_name):
3250 Functions for retrieving binding names.
3251 (method_info_set_binding_name, interface_info_set_binding_name):
3252 Functions for setting binding names.
3254 * glib/dbus-binding-tool-glib.h: New file, has prototypes
3255 for glib binding generation.
3257 * glib/dbus-binding-tool-glib.c: New file, implements server-side
3258 and client-side glib glue generation.
3260 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3261 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3264 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3265 of using GClosureMarshal directly.
3266 (struct DBusGObjectInfo): Add n_infos member.
3268 * test/glib/test-service-glib.xml: New file; contains introspection data
3269 for MyTestObject used in test-service-glib.c.
3271 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3272 (my_object_do_nothing, my_object_increment, my_object_throw_error)
3273 (my_object_uppercase, my_object_many_args): New test methods.
3274 (main): Use dbus_g_object_class_install_info to include generated object
3277 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3278 as well as client-side bindings.
3280 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3281 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3282 using both the dbus_gproxy stuff directly as well as the generated bindings.
3284 2005-02-15 Havoc Pennington <hp@redhat.com>
3286 * dbus/dbus-connection.c (dbus_connection_dispatch): always
3287 complete a pending call, don't run filters first.
3289 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3290 dbus_pending_call_steal_reply
3292 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3293 _dbus_connection_block_pending_call
3294 (dbus_pending_call_get_reply): change to steal_reply and return a
3297 * dbus/dbus-connection.c
3298 (dbus_connection_send_with_reply_and_block): port to work in terms
3300 (_dbus_connection_block_pending_call): replace block_for_reply
3303 2005-02-14 Havoc Pennington <hp@redhat.com>
3305 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3306 properly handle looking up group information by name; fix
3309 2005-02-13 Havoc Pennington <hp@redhat.com>
3311 * dbus/dbus-connection.c (dbus_connection_return_message)
3312 (dbus_connection_borrow_message): hold dispatch lock while message
3314 (_dbus_connection_block_for_reply): hold dispatch lock while we
3315 block for the reply, so nobody steals our reply
3316 (dbus_connection_pop_message): hold the dispatch lock while we
3319 2005-02-13 Havoc Pennington <hp@redhat.com>
3321 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3322 (_dbus_connection_release_dispatch)
3323 (_dbus_connection_acquire_io_path)
3324 (_dbus_connection_release_io_path): make the mutex and condvar
3325 control access to the "acquired" flag. Drop the connection lock
3326 while waiting on the condvar. Hopefully these are baby steps in
3327 roughly the right direction.
3329 2005-02-13 Havoc Pennington <hp@redhat.com>
3331 * dbus/dbus-connection.c: use separate mutexes for the condition
3332 variables; this is some kind of baseline for sanity, but the
3333 condition variables still aren't used correctly afaict
3335 2005-02-13 Havoc Pennington <hp@redhat.com>
3337 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3340 * dbus/dbus-connection.c
3341 (_dbus_connection_detach_pending_call_unlocked): add this
3343 Initial semi-correct pass through to fix thread locking; there are
3344 still some issues with the condition variable paths I'm pretty
3347 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3350 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3351 rename to add _unlocked
3352 (struct DBusConnection): move "dispatch_acquired" and
3353 "io_path_acquired" to use only one bit each.
3354 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3355 (dbus_connection_set_watch_functions): hacky fix to reentrancy
3356 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
3357 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
3358 (_dbus_connection_remove_timeout)
3359 (_dbus_connection_toggle_timeout): drop lock when calling out to
3360 user functions; done in a hacky/bad way.
3361 (_dbus_connection_send_and_unlock): add a missing unlock
3362 (_dbus_connection_block_for_reply): add a missing unlock
3364 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3365 drop lock in a hacky probably unsafe way to call out to user
3368 2005-02-12 Havoc Pennington <hp@redhat.com>
3370 * tools/dbus-tree-view.c (info_set_func_text): display more
3373 * bus/driver.c (bus_driver_handle_list_services): list the bus
3376 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3378 * glib/dbus-gidl.c (signal_info_get_n_args): new function
3379 (method_info_get_n_args): new function
3381 2005-02-12 Havoc Pennington <hp@redhat.com>
3383 * bus/driver.c (bus_driver_handle_introspect): add introspection
3386 2005-02-12 Havoc Pennington <hp@redhat.com>
3388 * bus/driver.c: put the signature of each bus driver method in the
3389 table of handlers and check it on incoming calls; this isn't
3390 really useful, but going to add introspect support in a minute.
3392 2005-02-11 Joe Shaw <joeshaw@novell.com>
3394 * mono/Connection.cs: The unpredictability of finalizers in mono
3395 prevents us from deterministically disconnecting the filters from
3396 the Service class's finalizer, so move tracking of filters and
3397 matches here. Add API for that.
3399 * mono/Service.cs: Remove the code, add code which calls the
3400 methods now on the Connection class.
3402 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
3404 * python/dbus.py (class Sender): added to support dbus signals better
3405 (Bus::add_signal_receiver): added expand_args parameter which defaults
3406 to True. When expand args is True the signal handler will pass the
3407 message arguments as parameters to the signal handler. If False
3408 revert to previous behavior where the signal handler must get the
3409 argument list from the message. This is to help port applications
3410 like HAL that have a tendancy to send variable length argument lists.
3411 self._match_rule_to_receivers is now a dict of dicts.
3412 (Bus::remove_signal_receiver): pop handler off the dict intead of
3413 removing it from a list
3414 (Bus::_signal_func): change signal handlers so that interface,
3415 signal_name, service, path and message are packed into a Sender
3416 object and that is passed to the handler. If expand_args is True
3417 extract the args list from the message and append it to the parameter
3420 * python/dbus_bindings.pyx.in (class Signature): added to support
3422 (MessageIter::__init__): changed iteration limit to match D-BUS
3423 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
3424 STRUCT and VARIENT type support
3425 (MessageIter::python_value_to_dbus_sig): made recursive to support
3427 (MessageIter::append*): added Signature, dict, tuple
3430 * python/examples/example-client.py: added examples of getting tuples
3433 * python/examples/example-service.py: added examples of sending tuples
3436 * python/examples/example-signal-recipient.py: Fixed to handle new
3437 signal callback format
3439 2005-02-10 Havoc Pennington <hp@redhat.com>
3441 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3442 (call dbus_g_proxy_add_signal)
3444 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3446 (_dbus_server_new_for_domain_socket): escape the path
3448 * dbus/dbus-address.c (dbus_address_escape_value): new
3449 (dbus_address_unescape_value): new
3450 (dbus_parse_address): unescape values
3452 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3454 * doc/dbus-specification.xml: explain how to escape values in
3457 2005-02-10 Havoc Pennington <hp@redhat.com>
3459 * dbus/dbus-message-factory.c (generate_special): modify test to
3460 avoid using a non-basic dict key
3462 * dbus/dbus-marshal-validate-util.c: add test for the below
3464 * doc/dbus-specification.xml: require that dict keys are a basic
3467 * dbus/dbus-marshal-validate.c
3468 (_dbus_validate_signature_with_reason): require that dict key is a
3471 2005-02-10 Havoc Pennington <hp@redhat.com>
3473 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3474 change to be _and_unlock instead of _unlocked
3476 * dbus/dbus-connection.c
3477 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3478 have no_update so we can find this bug quickly in future
3480 2005-02-10 Havoc Pennington <hp@redhat.com>
3482 * dbus/dbus-message-util.c (verify_test_message): tests for string
3485 * dbus/dbus-message.c (dbus_message_append_args_valist): add
3486 support for arrays of string/signature/path
3488 2005-02-10 Joe Shaw <joeshaw@novell.com>
3490 * dbus/dbus-connection.c
3491 (_dbus_connection_queue_received_message_link,
3492 _dbus_connection_message_sent): Add the path to
3494 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
3495 _dbus_connection_send_preallocated_unlocked(), updated the
3496 dispatch status, and unlocks. Fixes a bug where certain
3497 situations (like a broken pipe) could cause a Disconnect message
3498 to not be sent, tricking the bus into thinking a service was still
3499 there when the process had quit.
3500 (_dbus_connection_send_preallocated): Call
3501 _dbus_connection_send_preallocated_and_unlock().
3502 (_dbus_connection_send_and_unlock): Added. Calls
3503 _dbus_connection_send_preallocated_and_unlock().
3504 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3505 (dbus_connection_send_with_reply): Update the dispatch status and
3508 * mono/Service.cs (~Service): Added. Removes the filter so that
3509 we don't get unmanaged code calling back into a GCed delegate.
3510 (RemoveFilter); Added.
3512 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
3514 * dbus/dbus-message.c (dbus_message_iter_open_container):
3515 - Removed check for iterator type being an array because
3516 get_arg_type does not work with writer iterators
3517 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3519 2005-02-07 Havoc Pennington <hp@redhat.com>
3521 * doc/dbus-specification.xml: some more language cleanups; add
3522 stuff about how to deal with invalid protocol and extension
3523 points; add _ to allowed chars in auth commands; add EXTENSION_
3526 2005-02-06 Havoc Pennington <hp@redhat.com>
3528 * s/expected/required/ in a couple places for clarity
3530 2005-02-07 Colin Walters <walters@verbum.org>
3532 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3533 sender or proposed_recipient.
3535 2005-02-06 Havoc Pennington <hp@redhat.com>
3537 * dbus/dbus-message-factory.c (generate_special): more tests
3539 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3540 array length that exceeds the maximum
3542 2005-02-05 Havoc Pennington <hp@redhat.com>
3544 * dbus/dbus-message-factory.c (generate_special): more test cases,
3547 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3548 reason why a signature was invalid
3550 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3551 skip the length of the string before we look at it in validation
3553 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3556 * dbus/dbus-message.c (_dbus_message_loader_new): default
3557 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3559 2005-02-05 Havoc Pennington <hp@redhat.com>
3561 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3562 if the signature of a variant was empty
3563 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3564 struct with no element type)
3566 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3567 mangled messages to break things
3569 2005-02-04 Havoc Pennington <hp@redhat.com>
3571 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3572 g_quark_try_string() so it actually can return 0
3573 (dbus_g_proxy_connect_signal): ditto
3575 2005-02-04 Havoc Pennington <hp@redhat.com>
3577 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3579 (tristring_from_message): assert cleanly on null path/interface
3580 (should not be possible though I decided later)
3581 (dbus_g_proxy_dispose): move proxy manager unregistration here
3582 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3583 g_return_if_fail() checks
3585 2005-02-04 Havoc Pennington <hp@redhat.com>
3587 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3589 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3590 (with some minor changes)
3592 * doc/dbus-specification.xml: add deprecated attribute to
3593 introspection format
3595 2005-01-31 Havoc Pennington <hp@redhat.com>
3597 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3598 think it's sort of right
3600 2005-01-30 Havoc Pennington <hp@redhat.com>
3602 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3604 2005-01-30 Havoc Pennington <hp@redhat.com>
3606 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3608 * autogen.sh: change to autotools 1.9
3610 * glib/dbus-gproxy.c: completely change how signals work
3611 (dbus_g_proxy_add_signal): new function to specify signature of a
3613 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3614 and g_warning if the incoming message has the wrong signature.
3616 2005-01-30 Havoc Pennington <hp@redhat.com>
3618 * tools/dbus-names-model.c (have_names_notify): fix this
3620 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3621 up the string array handling a bit
3623 2005-01-30 Havoc Pennington <hp@redhat.com>
3625 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3626 (dbus_g_pending_call_cancel): new function
3628 * dbus/dbus-glib.h: move GType decls for connection/message here;
3629 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3630 here, just kind of rationalizing how we handle all that
3632 * tools/dbus-names-model.c: new file for a tree model listing the
3635 * tools/dbus-tree-view.c (model_new): use proper typing on the
3638 2005-01-30 Havoc Pennington <hp@redhat.com>
3640 * glib/dbus-gmain.c: add a custom GSource back that just checks
3641 whether the message queue has anything in it; otherwise, there are
3642 cases where we won't see messages in the queue since there was no
3643 IO visible to the glib main loop
3645 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3646 increase default message timeout to 25 seconds
3648 2005-01-30 Havoc Pennington <hp@redhat.com>
3650 * test/glib/test-profile.c (no_bus_stop_server): remove the
3651 warning about the g_warning that I just fixed
3653 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3654 custom source, seems to be a lot easier to understand and work
3657 2005-01-30 Havoc Pennington <hp@redhat.com>
3659 I think this main loop thing is conceptually broken, but here are
3660 some band aids. I'll maybe rewrite it in a minute.
3662 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3663 custom GSource, so don't pass it in; confusing
3664 (gsource_server_finalize, gsource_connection_finalize): add
3665 finalize handlers that remove all the watches.
3667 2005-01-30 Havoc Pennington <hp@redhat.com>
3669 * glib/dbus-gobject.c (introspect_properties): fix the XML
3672 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3673 which effectively detects the use of freed messages
3675 * glib/dbus-gobject.c (handle_introspect): modify and return the
3676 reply message instead of the incoming message
3678 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3679 gee, maybe it should SEND THE XML instead of just making a string
3680 and freeing it again ;-)
3682 * tools/dbus-print-message.c (print_message): improve printing of
3685 * configure.in: add debug-glib.service to the output
3687 2005-01-30 Havoc Pennington <hp@redhat.com>
3689 dbus-viewer introspected and displayed the bus driver
3691 * dbus/dbus-object-tree.c
3692 (object_tree_test_iteration): add tests for a handler registered on "/"
3694 * dbus/dbus-object-tree.c
3695 (_dbus_decompose_path): fix to handle path "/" properly
3696 (run_decompose_tests): add tests for path decomposition
3698 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3701 * glib/dbus-gobject.c (handle_introspect): fix quotes
3703 * test/glib/run-test.sh: support launching the bus, then running
3706 * test/glib/test-service-glib.c (main): put in a trivial gobject
3707 subclass and register it on the connection
3709 * bus/driver.c (bus_driver_handle_introspect): implement
3710 introspection of the bus driver service
3712 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3713 identifiers, doctype decl
3715 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3716 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3717 returning the service unchanged.
3718 (bus_driver_handle_message): remove old check for reply_serial in
3719 method calls, now the message type deals with that
3720 (bus_driver_handle_message): handle NULL interface
3722 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3724 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3727 * tools/dbus-viewer.c: add support for introspecting a service on
3730 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3731 (dbus_g_pending_call_unref): add
3733 2005-01-29 Havoc Pennington <hp@redhat.com>
3735 * tools/dbus-tree-view.c: add support for displaying properties.
3736 (run dbus-viewer with an introspect xml file as arg, then resize
3737 the window so the tree elements show up, not sure what that is)
3739 * glib/dbus-gobject.c (handle_introspect): return
3740 org.freedesktop.Properties and org.freedesktop.Introspectable
3741 interfaces when we are introspected.
3743 * doc/dbus-specification.xml: allow empty interface name when
3746 2005-01-29 Havoc Pennington <hp@redhat.com>
3748 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3749 though it uses glib, it could be extended for any binding in
3752 * glib/dbus-gobject.c (gobject_message_function): change to the
3753 new way properties work
3755 * dbus/dbus-protocol.h: add the new interfaces
3757 * doc/dbus-specification.xml: document the introspection format,
3758 Introspectable interface, and add an org.freedesktop.Properties
3761 * glib/dbus-gparser.c: add support for a <property> element
3763 * glib/dbus-gidl.c: add PropertyInfo
3765 * glib/dbus-gobject.c (handle_introspect): put the outermost
3766 <node> outside the signal and property descriptions.
3767 (introspect_properties): export properties as <property> rather
3768 than as method calls
3770 2005-01-28 Havoc Pennington <hp@redhat.com>
3772 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
3773 related to authentication protocol
3775 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
3777 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
3778 - BUS_ACTIVATION -> BUS_STARTER
3779 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
3780 - class MessageIter (__init__): Added recursion checking
3781 so we throw a nice error instead of just disconnecting from the
3783 (get): Added arg_type parameter for recursion.
3784 Removed the nil type
3785 Added signiture type placeholder (not implemented)
3786 Added struct type placeholder (not implemented)
3787 Added varient type placeholder (not implemented)
3788 Commented out dict type for now
3789 (get_element_type): renamed from get_array_type
3790 (get_*): changed to use the dbus_message_iter_get_basic API
3791 (get_*_array): removed in favor of recursive get_array method
3792 (get_array): new recursive method which calls get to marshal
3793 the elements of the array
3794 (value_to_dbus_sig): New method returns the corrasponding
3795 dbus signiture to a python value
3796 (append): Comment out dict handling for now
3797 Handle lists with the new recursive API
3798 Comment out None handling for now
3799 (append_nil): removed
3800 (append_*): changed to use dbus_message_iter_append_basic API
3801 (append_*_array): removed in favor of recursive append_array
3803 (__str__): Make it easier to print out recursive iterators
3805 - class Message (__str__): moved type inspection to the
3806 MessageIter class' __str__ method
3807 (get_iter): Added an append parameter wich defaults to False
3808 If True use the new API's to create an append iterator
3810 * python/dbus.py: Update to use new bindings API
3811 - TYPE_ACTIVATION -> TYPE_STARTER
3812 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
3813 - class ActivationBus -> class StarterBus
3814 - class RemoteObject (__call__): get an append iterator
3815 - (_dispatch_dbus_method_call): get an append iterator
3816 - class Object (emit_signal): get an append iterator
3818 * python/examples/: Fixed up the examples to work with the new API
3820 2005-01-28 Joe Shaw <joeshaw@novell.com>
3822 * configure.in: Bump version up to 0.30.
3824 * HACKING: Add a release item to bump the version number up after
3827 2005-01-28 Havoc Pennington <hp@redhat.com>
3829 * doc/dbus-specification.xml: update to describe 16-bit types and
3832 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
3835 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
3838 * dbus/dbus-marshal-recursive.c: implement
3840 2005-01-27 Havoc Pennington <hp@redhat.com>
3842 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
3844 * configure.in: find the right type for 16 and 32 bit ints as well
3847 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
3848 the 16-bit types so people don't have to stuff them in 32-bit or
3851 2005-01-27 Havoc Pennington <hp@redhat.com>
3853 * dbus/dbus-message.c: byteswap the message if you init an
3854 iterator to read/write from it
3856 * dbus/dbus-marshal-byteswap.c: new file implementing
3857 _dbus_marshal_byteswap()
3859 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
3861 2005-01-26 Havoc Pennington <hp@redhat.com>
3863 * dbus/dbus-marshal-validate-util.c: break this out (and fix
3864 build, apparently - nobody noticed?)
3866 2005-01-26 Havoc Pennington <hp@redhat.com>
3868 * dbus/dbus-marshal-recursive.h: remove todo comment
3870 2005-01-25 Joe Shaw <joeshaw@novell.com>
3872 * Land the mono binding changes to conform to the new APIs.
3874 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
3875 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
3877 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
3878 type code as a string.
3879 (InitAppending): Rename dbus_message_append_iter_init() to
3880 dbus_message_iter_init_append().
3882 * mono/BusDriver.cs: Rename ServiceEventHandler to
3883 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
3884 Rename ServiceOwnerChanged to NameOwnerChanged.
3886 * mono/Connection.cs: Rename BaseService to UniqueName, and the
3889 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
3891 * mono/Service.cs: Rename Exists to HasOwner, internally rename
3892 dbus_bus_acquire_service() to dbus_bus_request_name().
3894 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
3895 of Type.UnderlyingSystemType to get the correct element type for
3897 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
3898 dbus_message_get_{element|arg}_type() instead of
3899 dbus_message_iter_init_array_iterator().
3900 (Append): Replace dbus_message_iter_append_array() with
3901 dbus_message_iter_open_container() and
3902 dbus_message_iter_close_container().
3904 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
3905 types have been removed.
3907 * mono/DBusType/*.cs: Replace calls of
3908 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
3909 but specify the type in the DllImport extern declaration. Ditto
3910 for dbus_message_iter_append_[type]() ->
3911 dbus_message_iter_append_basic().
3913 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
3914 NameOwnerChangedHandler.
3916 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
3918 * python/dbus_bindings.pyx.in: Rename of methods and bindings
3919 - get_base_service -> get_unique_name
3920 - bus_get_base_service -> bus_get_unique_name
3921 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
3922 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
3923 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
3924 - bus_activate_service -> bus_start_service_by_name
3925 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
3926 - bus_acquire_service -> bus_request_name
3927 - dbus_bus_acquire_service -> dbus_bus_request_name
3928 - bus_service_exists -> bus_name_has_owner
3929 - dbus_bus_service_exists -> dbus_bus_name_has_owner
3931 * python/dbus.py: Rename of methods
3932 - activate_service -> start_service_by_name
3933 - bus_acquire_service -> bus_request_name
3934 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
3935 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
3938 2005-01-24 Joe Shaw <joeshaw@novell.com>
3940 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
3941 signature for the method that can't be found.
3943 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
3944 the message has any arguments, we need to call
3945 _dbus_type_reader_get_current_type(), not
3946 _dbus_type_reader_has_next().
3948 2005-01-24 Havoc Pennington <hp@redhat.com>
3950 * dbus/dbus-message-factory.c: more testing of message validation
3952 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
3955 2005-01-23 Havoc Pennington <hp@redhat.com>
3957 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
3958 get this all working, not many tests in the framework yet though
3960 2005-01-22 Havoc Pennington <hp@redhat.com>
3962 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
3963 tutorial, based on work from David Wheeler.
3965 2005-01-21 Havoc Pennington <hp@redhat.com>
3967 * dbus/dbus-bus.c: add more return_if_fail checks
3969 * dbus/dbus-message.c (load_message): have the "no validation"
3970 mode (have to edit the code to toggle the mode for now though)
3972 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
3973 skips all validation; I want to use this at least for benchmark
3974 baseline, I'm not sure if it should be a publicly-available switch.
3976 2005-01-21 Havoc Pennington <hp@redhat.com>
3978 * glib/dbus-gmain.c: don't put the GLib bindings in the same
3979 toplevel doxygen group as the low-level API stuff
3981 * dbus/dbus.h: note that libdbus is the low-level API
3983 2005-01-20 Havoc Pennington <hp@redhat.com>
3985 * update-dbus-docs.sh: script to update docs on the web site, only
3986 works for me though. neener.
3988 2005-01-20 Havoc Pennington <hp@redhat.com>
3990 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
3991 code can reveal bugs in it
3993 2005-01-20 Havoc Pennington <hp@redhat.com>
3995 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
3996 select() version, patches from Tor Lillqvist
3998 2005-01-20 Havoc Pennington <hp@redhat.com>
4000 * doc/dbus-tutorial.xml: replace > with >
4002 * bus/services.c (bus_registry_acquire_service): validate the name
4003 and return a better error if it's no good.
4005 * doc/dbus-specification.xml: note NO_AUTO_START change
4007 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4008 from AUTO_START, we're toggling the default
4010 * bus/dispatch.c: adapt the tests to change of auto-start default
4012 2005-01-18 Havoc Pennington <hp@redhat.com>
4014 * rename dbus-daemon-1 to dbus-daemon throughout
4016 2005-01-18 Havoc Pennington <hp@redhat.com>
4018 * Throughout, grand renaming to strip out the use of "service",
4019 just say "name" instead (or "bus name" when ambiguous). Did not
4020 change the internal code of the message bus itself, only the
4021 programmer-facing API and messages.
4023 * doc/dbus-specification.xml: further update the message bus section
4025 * bus/config-parser.c (all_are_equiv): fix bug using freed string
4028 2005-01-17 Havoc Pennington <hp@redhat.com>
4030 * dbus/dbus-types.h: remove 16-bit types since we don't use them
4033 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4034 "invalid name character" not only non-ASCII
4036 * doc/dbus-specification.xml: further update spec, message bus
4037 parts are still out-of-date but the marshaling etc. stuff is now
4040 2005-01-17 Havoc Pennington <hp@redhat.com>
4042 * doc/dbus-specification.xml: partially update spec
4044 2005-01-17 Havoc Pennington <hp@redhat.com>
4046 * Throughout, align variant bodies according to the contained
4047 type, rather than always to 8. Should save a fair bit of space in
4050 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4051 fix handling of case where p == end
4053 * doc/TODO: remove the dbus_bool_t item and variant alignment items
4055 2005-01-17 Havoc Pennington <hp@redhat.com>
4057 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4059 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4060 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
4061 are marshaling/unmarshaling a boolean.
4063 2005-01-16 Havoc Pennington <hp@redhat.com>
4065 This is about it on what can be disabled/deleted from libdbus
4066 easily, back below 150K anyhow. Deeper cuts are more work than
4067 just turning the code off as I've done here.
4069 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4070 signed int convenience funcs
4072 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4075 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4076 things out of libdbus
4078 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4080 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4081 tests-enabled-only, though it should probably be deleted)
4083 * dbus/dbus-message-util.c: same stuff
4085 * dbus/dbus-auth-util.c: same stuff
4087 2005-01-16 Havoc Pennington <hp@redhat.com>
4089 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4091 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4092 way for stripping down dbus-userdb.c stuff included in libdbus.
4093 Rename _dbus_parse_uid for consistency.
4095 2005-01-16 Havoc Pennington <hp@redhat.com>
4097 * dbus/dbus-internals.c (_dbus_real_assert): print the function
4098 name the assertion failed in
4100 * dbus/dbus-internals.h (_dbus_return_if_fail)
4101 (_dbus_return_val_if_fail): assert that the name of the function
4102 containing the check doesn't start with '_', since we only want to
4103 use checks on public functions
4105 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4106 checks to assertions
4108 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4109 change checks to asserts for private function
4111 * dbus/dbus-message.c (_dbus_message_set_serial): checks
4112 to asserts for private function
4114 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4115 broken assertion that was breaking make check
4116 (_dbus_type_reader_array_is_empty): remove this rather than fix
4117 it, was only used in assertions
4119 2005-01-16 Havoc Pennington <hp@redhat.com>
4121 * test/unused-code-gc.py: hacky script to find code that's used
4122 only by the bus (not libdbus) or used only by tests or not used at
4123 all. It has some false alarms, but looks like we can clean up a
4124 lot of size from libdbus.
4126 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4127 dbus/Makefile.am: initially move 10K of binary size out of libdbus
4129 2005-01-16 Havoc Pennington <hp@redhat.com>
4131 * Add and fix docs according to Doxygen warnings throughout
4134 * dbus/dbus-marshal-recursive.c
4135 (_dbus_type_reader_array_is_empty): change this to just call
4136 array_reader_get_array_len() and make it static
4138 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4140 (dbus_message_iter_init_append): rename from append_iter_init
4142 * dbus/dbus-marshal-recursive.c
4143 (_dbus_type_reader_get_element_type): rename from
4144 _dbus_type_reader_get_array_type
4146 2005-01-15 Havoc Pennington <hp@redhat.com>
4148 * test/glib/test-profile.c (with_bus_server_filter): fix crash
4150 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4151 when DBUS_DISABLE_ASSERT
4152 (_dbus_marshal_set_basic): be sure we align for the string length
4154 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4157 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4158 inline macro version
4159 (_dbus_string_set_byte): provide inline macro version
4161 2005-01-15 Havoc Pennington <hp@redhat.com>
4163 * Land the new message args API and type system.
4165 This patch is huge, but the public API change is not
4166 really large. The set of D-BUS types has changed somewhat,
4167 and the arg "getters" are more geared toward language bindings;
4168 they don't make a copy, etc.
4170 There are also some known issues. See these emails for details
4172 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4173 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4175 * dbus/dbus-marshal-*: all the new stuff
4177 * dbus/dbus-message.c: basically rewritten
4179 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4180 freed blocks to be all non-nul bytes so using freed memory is less
4181 likely to work right
4183 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4184 DBUS_FAIL_MALLOC=N environment variable, so you can do
4185 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4186 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4189 * qt/message.cpp: port to the new message args API
4190 (operator<<): use str.utf8() rather than str.unicode()
4191 (pretty sure this is right from the Qt docs?)
4193 * glib/dbus-gvalue.c: port to the new message args API
4195 * bus/dispatch.c, bus/driver.c: port to the new message args API
4197 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4198 "locked" flag to TRUE and align_offset to 0; I guess we never
4199 looked at these anyhow, but seems cleaner.
4201 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4202 move allocation padding macro to this header; use it to implement
4203 (_DBUS_STRING_STATIC): ability to declare a static string.
4205 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4206 change to return TRUE if the interface is not set.
4208 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4209 to dbus-marshal-validate.[hc]
4211 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4214 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4215 to dbus-marshal-*.[hc]
4217 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4218 function here from dbus-marshal.c
4220 2005-01-12 Joe Shaw <joeshaw@novell.com>
4222 * NEWS: Update for 0.23.
4224 * configure.in: Release 0.23.
4226 2005-01-12 Joe Shaw <joeshaw@novell.com>
4228 * mono/Makefile.am, mono/example/Makefile.am: Always build the
4229 dbus DLL with --debug. Clean up after the .mdb files this leaves
4232 * mono/doc/Makefile.am: Need to uninstall the docs on "make
4235 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4236 is an enum, get the enum's underlying type. Another mono
4239 2005-01-11 Joe Shaw <joeshaw@novell.com>
4241 Patch from Sjoerd Simons <sjoerd@luon.net>
4243 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4244 DESTDIR. It breaks stuff.
4246 2005-01-11 Joe Shaw <joeshaw@novell.com>
4248 Patch from Tambet Ingo <tambet@ximian.com>
4250 * mono/DBusType/Array.cs (Get): Get the underlying element type by
4251 calling type.GetElementType(). The code previously depended on
4252 broken Mono behavior, which was fixed in Mono 1.1.3.
4254 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4255 Activator.CreateInstance() so that the class's constructor is
4256 called with the right parameters.
4258 2005-01-11 Joe Shaw <joeshaw@novell.com>
4260 Patch from Timo Teräs <ext-timo.teras@nokia.com>
4262 * dbus/dbus-connection.c
4263 (_dbus_connection_queue_received_message_link): Call
4264 _dbus_connection_remove_timeout() instead of the _locked()
4265 variant, since it's always called from
4266 _dbus_connection_handle_watch(), which handles the locking.
4267 Removed the _locked() variant since it's no longer used.
4269 2005-01-03 Havoc Pennington <hp@redhat.com>
4271 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4274 2004-12-26 Havoc Pennington <hp@redhat.com>
4276 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4278 2005-01-03 Havoc Pennington <hp@redhat.com>
4280 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4283 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4285 2005-01-02 Havoc Pennington <hp@redhat.com>
4287 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4289 2005-01-01 Havoc Pennington <hp@redhat.com>
4291 * configure.in: add -Wfloat-equal
4293 2005-01-01 Havoc Pennington <hp@redhat.com>
4295 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
4296 for a variety of reasons '==' doesn't do this.
4298 2004-12-31 Havoc Pennington <hp@redhat.com>
4300 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4301 I keep wishing I had
4303 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4305 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4307 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4309 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4310 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4311 dbus-protocol.h. Because they are defines and not enums they are not
4314 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
4316 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4317 dbus_bus_activate_service
4319 * python/dbus.py (Bus.activate_service): activate a service on the
4322 2004-12-24 Havoc Pennington <hp@redhat.com>
4324 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4325 file format has also changed and I haven't adapted to that yet
4327 * Makefile.am: load .gcno files from latest gcc
4329 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
4330 * Patch from Rob Taylor <robtaylor@fastmail.fm>
4332 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4335 * python/dbus.py (get_unix_user): Added binding to
4336 call dbus_bindings.bus_get_unix_user
4338 * python/extract.py: Modified the proto_pat regex to
4339 handle unsigned long
4341 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4343 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4344 better POSIX compliance.
4346 2004-12-19 Havoc Pennington <hp@redhat.com>
4348 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
4349 (_dbus_string_insert_8_aligned): new functions
4351 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4353 2004-12-18 Havoc Pennington <hp@redhat.com>
4355 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4358 * dbus/dbus-message.c: fix a comment, and add a still-unused
4359 not-implemented function
4361 * dbus/dbus-marshal.h: fix comment
4363 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4365 2004-12-17 Joe Shaw <joeshaw@novell.com>
4367 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4368 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4369 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4370 Type.UnderlyingSystemType to get the actual system type
4371 underneath. This code previously depended on the broken Mono
4372 behavior, which was fixed in 1.1.3.
4374 2004-11-27 Havoc Pennington <hp@redhat.com>
4376 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4378 (_dbus_string_get_const_data): inline when asserts are disabled
4380 * dbus/dbus-message.c: record the _dbus_current_generation of
4381 creation so we can complain if dbus_shutdown() is used improperly.
4382 Do this only if checks are enabled.
4384 * dbus/dbus-connection.c: ditto
4386 2004-11-26 Havoc Pennington <hp@redhat.com>
4388 * test/glib/test-profile.c: add with_bus mode to profile echoes
4389 that go through the bus.
4391 * test/glib/run-test.sh: add ability to run test-profile
4393 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4396 2004-11-26 Havoc Pennington <hp@redhat.com>
4398 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4399 thing was implemented
4401 2004-11-26 Havoc Pennington <hp@redhat.com>
4403 * test/glib/test-profile.c: tweak a bit, add support for some
4404 made-up minimal malloc overhead with plain sockets, since in
4405 real life some sort of buffers are unavoidable thus we could
4406 count them in the theoretical best case
4408 2004-11-26 Havoc Pennington <hp@redhat.com>
4410 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4411 where I was trying to cache one too many messages
4413 2004-11-26 Havoc Pennington <hp@redhat.com>
4415 * dbus/dbus-message.c: reimplement message cache as an array which
4416 makes the cache about twice as fast and saves maybe 1.5% overall
4418 2004-11-26 Havoc Pennington <hp@redhat.com>
4420 * dbus/dbus-threads.c (init_global_locks): forgot to put the
4421 message cache lock here
4423 2004-11-26 Havoc Pennington <hp@redhat.com>
4425 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4426 the "char byte_order" next to each other to save 4 bytes
4427 (dbus_message_new_empty_header): reduce preallocation, since the
4428 message cache should achieve a similar effect
4429 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4430 message cache that keeps a few DBusMessage around in a pool,
4431 another 8% speedup or so.
4433 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4435 2004-11-25 Havoc Pennington <hp@redhat.com>
4437 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4438 to write, without reading or blocking, try it before the poll()
4439 and skip the poll() if nothing remains to write. This is about a
4440 3% speedup in the echo client/server
4442 2004-11-25 Havoc Pennington <hp@redhat.com>
4444 The primary change here is to always write() once before adding
4445 the write watch, which gives us about a 10% performance increase.
4447 * dbus/dbus-transport-unix.c: a number of modifications to cope
4448 with removing messages_pending
4449 (check_write_watch): properly handle
4450 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4451 messages_pending stuff
4452 (check_read_watch): properly handle WAITING_FOR_MEMORY and
4454 (unix_handle_watch): after writing, see if the write watch can be
4456 (unix_do_iteration): assert that write_watch/read_watch are
4457 non-NULL rather than testing that they aren't, since they
4458 aren't allowed to be NULL. check_write_watch() at the end so
4459 we add the watch if we did not finish writing (e.g. got EAGAIN)
4461 * dbus/dbus-transport-protected.h: remove messages_pending call,
4462 since it resulted in too much inefficient watch adding/removing;
4463 instead we now require that the transport user does an iteration
4464 after queueing outgoing messages, and after trying the first
4465 write() we add a write watch if we got EAGAIN or exceeded our
4466 max bytes to write per iteration setting
4468 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4471 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4472 freed and then accessed, valgrind flagged this bug, fix it
4474 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4475 as the last valid field plus 1, where really it is equal to the
4476 last valid field. Corrects some message corruption issues.
4478 * dbus/dbus-mainloop.c: verbosity changes
4480 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4481 instead of aborting in one of the test codepaths
4483 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4484 caused not printing the pid ever again if a verbose was missing
4485 the newline at the end
4486 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4488 * dbus/dbus-connection.c: verbosity changes;
4489 (dbus_connection_has_messages_to_send): new function
4490 (_dbus_connection_message_sent): no longer call transport->messages_pending
4491 (_dbus_connection_send_preallocated_unlocked): do one iteration to
4492 try to write() immediately, so we can avoid the write watch. This
4493 is the core purpose of this patchset
4494 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4495 dump the outgoing message queue, so nobody will get confused
4496 trying to send them or thinking stuff is pending to be sent
4498 * bus/test.c: verbosity changes
4500 * bus/driver.c: verbosity/assertion changes
4502 * bus/dispatch.c: a bunch of little tweaks to get it working again
4503 because this patchset changes when/where you need to block.
4505 2004-11-23 Havoc Pennington <hp@redhat.com>
4507 * test/glib/test-profile.c: modify to accept a plain_sockets
4508 argument in which case it will bench plain sockets instead of
4509 libdbus, for comparison purposes.
4511 2004-11-22 Havoc Pennington <hp@redhat.com>
4513 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4514 threads for more time, so sysprof can get a grip on it.
4516 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4519 2004-11-13 Havoc Pennington <hp@redhat.com>
4521 * test/glib/test-profile.c: fix this thing up a bit
4523 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4524 preallocation sizes by a fair bit; not sure if this will be an
4525 overall performance win or not, but it does reduce reallocs.
4527 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4528 the test hack that forced constant realloc if asserts are
4529 disabled, so we can profile sanely. Sprinkle in some
4530 _DBUS_UNLIKELY() which are probably pointless, but before I
4531 noticed the real performance problem I put them in.
4532 (_dbus_string_validate_utf8): micro-optimize this thing a little
4533 bit, though callgrind says it didn't help; then special-case
4534 ascii, which did help a lot; then be sure we detect nul bytes as
4535 invalid, which is a bugfix.
4536 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4537 superstition; use memset to nul the padding instead of a manual
4539 (_dbus_string_get_length): inline this as a
4540 macro; it showed up in the profile because it's used for loop
4543 2004-11-10 Colin Walters <walters@verbum.org>
4545 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4548 2004-11-09 Colin Walters <walters@verbum.org>
4550 * dbus/dbus-string.c (_dbus_string_get_length): New
4551 function, writes DBusString to C buffer.
4553 * dbus/dbus-string.h: Prototype it.
4555 * dbus/dbus-message.c (dbus_message_type_to_string): New
4556 function, converts message type into C string.
4558 * dbus/dbus-message.h: Prototype it.
4560 * bus/selinux.c (bus_selinux_check): Take source pid,
4561 target pid, and audit data. Pass audit data to
4563 (log_audit_callback): New function, appends extra
4565 (bus_selinux_allows_acquire_service): Also take
4566 service name, add it to audit data.
4567 (bus_selinux_allows_send): Also take message
4568 type, interface, method member, error name,
4569 and destination, and add them to audit data.
4570 (log_cb): Initialize func_audit.
4572 * bus/selinux.h (bus_selinux_allows_acquire_service)
4573 (bus_selinux_allows_send): Update prototypes
4575 * bus/services.c (bus_registry_acquire_service): Pass
4576 service name to bus_selinux_allows_acquire_service.
4578 * bus/bus.c (bus_context_check_security_policy): Pass
4579 additional audit data. Move assignment of dest
4582 2004-11-07 Colin Walters <walters@verbum.org>
4584 * dbus/dbus-transport-unix.c (do_authentication): Always
4585 initialize auth_completed.
4587 2004-11-07 Colin Walters <walters@verbum.org>
4589 * bus/bus.c (load_config): Break into three
4590 separate functions: process_config_first_time_only,
4591 process_config_every_time, and process_config_postinit.
4592 (process_config_every_time): Move call of
4593 bus_registry_set_service_context_table into
4594 process_config_postinit.
4595 (process_config_postinit): New function, does
4596 any processing that needs to happen late
4597 in initialization (and also on reload).
4598 (bus_context_new): Instead of calling load_config,
4599 open config parser here and call process_config_first_time_only
4600 and process_config_every_time directly. Later, after
4601 we have forked but before changing UID,
4602 invoke bus_selinux_full_init, and then call
4603 process_config_postinit.
4604 (bus_context_reload_config): As in bus_context_new,
4605 load parse file inside here, and call process_config_every_time
4606 and process_config_postinit.
4608 * bus/services.h, bus/services.c
4609 (bus_registry_set_service_context_table): Rename
4610 from bus_registry_set_sid_table. Take string hash from config
4611 parser, and convert them here into SIDs.
4613 * bus/config-parser.c (struct BusConfigParser): Have
4614 config parser only store a mapping of service->context
4616 (merge_service_context_hash): New function.
4617 (merge_included): Merge context string hashes instead
4618 of using bus_selinux_id_table_union.
4619 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4620 simply create a new string hash.
4621 (bus_config_parser_unref): Unref it.
4622 (start_selinux_child): Simply insert strings into hash,
4623 don't call bus_selinux_id_table_copy_over.
4625 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4626 (bus_selinux_id_table_copy_over): Delete.
4628 2004-11-03 Colin Walters <walters@verbum.org>
4630 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4633 2004-11-03 Colin Walters <walters@verbum.org>
4635 * bus/test-main.c (test_pre_hook): Fix test logic,
4636 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4638 2004-11-02 Colin Walters <walters@redhat.com>
4640 * bus/selinux.c (bus_selinux_init): Split into two functions,
4641 bus_selinux_pre_init and bus_selinux_post_init.
4642 (bus_selinux_pre_init): Just determine whether SELinux is
4644 (bus_selinux_post_init): Do everything else.
4646 * bus/main.c (main): Call bus_selinux_pre_init before parsing
4647 config file, and bus_selinux_post_init after. This ensures that
4648 we don't lose the policyreload notification thread that
4649 bus_selinux_init created before forking previously.
4651 * bus/test-main.c (test_pre_hook): Update for split.
4653 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
4655 Patch from Johan Fischer <linux@fischaz.com>
4657 * mono/doc/Makefile.am (install-data-local): Added directory
4660 2004-10-29 Colin Walters <walters@redhat.com>
4662 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4663 parameter for fd to write pid to.
4665 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4667 * bus/bus.c (bus_context_new): Pass print_pid_fd
4668 to _dbus_become_daemon (bug #1720)
4670 2004-10-29 Colin Walters <walters@redhat.com>
4672 Patch from Ed Catmur <ed@catmur.co.uk>
4674 * mono/doc/Makefile.am (install-data-local): Handle
4677 2004-10-29 Colin Walters <walters@redhat.com>
4679 * bus/.cvsignore, qt/.cvsignore: Update.
4681 2004-10-29 Colin Walters <walters@redhat.com>
4683 Patch from Kristof Vansant <de_lupus@pandora.be>
4685 * configure.in: Detect Slackware.
4686 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4687 * bus/rc.messagebus.in: New file.
4689 2004-10-29 Colin Walters <walters@redhat.com>
4691 * tools/dbus-monitor.c (filter_func): Return
4692 DBUS_HANDLER_RESULT_HANDLED in filter function
4694 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4696 2004-10-29 Colin Walters <walters@redhat.com>
4698 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4700 * bus/services.c (bus_registry_acquire_service):
4701 Correctly retrieve service name from DBusString
4704 2004-10-29 Colin Walters <walters@redhat.com>
4706 * dbus/dbus-glib.h: Update documentation to not
4707 refer to internal APIs.
4709 2004-10-27 Joe Shaw <joeshaw@novell.com>
4711 * mono/Arguments.cs (GetDBusTypeConstructor):
4712 type.UnderlyingSystemType will return "System.Byte" if you do it
4713 on "byte[]", which is not what we want. So check the type.IsArray
4714 property and use System.Array instead.
4716 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4718 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4719 the DBusUserInfo structure since this is passed into the function.
4720 This would cause a double free when the function that allocated
4721 the structure would try to free it when an error occured.
4723 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4724 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4725 for service activation to avoid 32bit/64bit parallel install issues
4727 2004-10-21 Colin Walters <walters@verbum.org>
4729 * AUTHORS: Fix my email address, the @gnu.org one
4730 has been bouncing for some time. Also add J5.
4732 2004-10-21 Colin Walters <walters@verbum.org>
4734 * dbus/dbus-transport-unix.c (do_authentication): Return
4735 authentication status to callers.
4736 (unix_handle_watch): If we completed authentication this round,
4737 don't do another read. Instead wait until the next iteration,
4738 after we've read any pending data in the auth buffer.
4739 (unix_do_iteration): Ditto.
4740 (unix_handle_watch): Updated for new do_authentication prototype.
4742 2004-10-18 Colin Walters <walters@verbum.org>
4744 * bus/selinux.c (bus_selinux_enabled): Handle
4745 --disable-selinux case.
4747 2004-10-18 Colin Walters <walters@verbum.org>
4749 * bus/selinux.h: Add bus_selinux_enabled.
4751 * bus/selinux.c (bus_selinux_enabled): Implement it.
4753 * bus/config-parser.c (struct include): Add
4754 if_selinux_enabled member.
4755 (start_busconfig_child): Parse if_selinux_enabled
4756 attribute for include.
4757 (bus_config_parser_content): Handle it.
4759 * bus/session.conf.in, bus/system.conf.in: Add
4760 inclusion of context mapping to default config files;
4761 conditional on SELinux being enabled.
4763 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
4765 * test/data/invalid-config-files/badselinux-1.conf,
4766 test/data/invalid-config-files/badselinux-2.conf:
4767 Test files for bad syntax.
4769 2004-10-17 Colin Walters <walters@verbum.org>
4771 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
4772 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
4773 format specifier mismatches.
4775 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
4777 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
4780 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
4781 pointer (bug #1540, Leonardo Boiko).
4783 2004-09-28 Jon Trowbridge <trow@ximian.com>
4785 * mono/BusDriver.cs: Changed BusDriver struct to remove
4786 the ServiceCreated and ServiceDeleted events and replace them
4787 with the new ServiceOwnerChanged event.
4789 * mono/example/BusListener.cs: Added a new example program,
4790 which listens for and reports any ServiceOwnerChanged events
4793 * mono/example/Makefile.am (DESTDIR): Build changes for the
4794 new BusListener.cs example.
4796 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
4798 * bus/signals.c (bus_match_rule_parse): validate the components of
4799 match rules (bug #1439).
4801 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
4803 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
4805 * doc/dbus-specification.xml: document ServiceOwnerChanged
4808 * bus/driver.c, bus/driver.h, bus/services.c: Use
4809 ServiceOwnerChanged signal instead of ServiceCreated and
4812 * bus/dispatch.c: update testcase for the new signal.
4814 2004-09-20 Jon Trowbridge <trow@ximian.com>
4816 Patch from Nat Friedman <nat@novell.com>
4818 * mono/Makefile.am: A number of small build fixes to allow "make
4819 distcheck" to succeed.
4821 * mono/example/Makefile.am: "make distcheck" fixes.
4823 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
4826 * test/Makefile.am: "make distcheck" fixes.
4828 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
4830 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
4832 * doc/busconfig.dtd: update the DTD for the at_console attribute.
4834 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
4835 messages after the first one (bug #1389).
4837 * bus/dispatch.c (check_double_hello_message): add a test case for
4838 the double hello message bug.
4839 (check_existent_service_activation): fix check of spawning error.
4841 2004-09-16 David Zeuthen <david@fubar.dk>
4843 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
4845 2004-09-12 David Zeuthen <david@fubar.dk>
4847 Patch from Kay Sievers <kay.sievers@vrfy.org>
4849 * bus/bus.c (bus_context_new):
4851 * bus/main.c (usage)
4853 Add commandline option --nofork to override configuration file
4856 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
4858 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
4859 compilers don't like it (bug #974).
4861 2004-09-04 Harald Fernengel <harry@kdevelop.org>
4863 * qt/connection.*: Applied patch by Jérôme Lodewyck
4864 <lodewyck@clipper.ens.fr> to integrate an existing
4865 connection into the Qt eventloop
4867 2004-08-30 Jon Trowbridge <trow@ximian.com>
4869 * mono/BusDriver.cs: Added. This is a class for interacting with
4870 the org.freedesktop.DBus service.
4872 * mono/Message.cs: Added a mechanism to expose the message that is
4873 currently being dispatched via the static Message.Current
4874 property. Added Message.Sender and Message.Destination
4877 * mono/Handler.cs: Expose the dispatched message via
4878 Message.Current when handling method calls.
4880 * mono/Service.cs: Expose the dispatched message via
4881 Message.Current when handling signal emissions.
4883 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
4884 Connection.BaseService property.
4886 2004-08-28 Havoc Pennington <hp@redhat.com>
4888 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
4890 More fixes from Steve Grubb
4892 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
4893 (_dbus_listen_tcp_socket): fix fd leak
4895 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
4896 EINTR to a bit lower in the code
4898 2004-08-26 Jon Trowbridge <trow@ximian.com>
4900 * bus/driver.c (bus_driver_handle_service_exists): Respond with
4901 TRUE if we are inquiring about the existence of the built-in
4902 org.freedesktop.DBus service.
4904 2004-08-25 John Palmieri <johnp@redhat.com>
4905 * bus/config-parser.c:
4906 (struct PolicyType): Add POLICY_CONSOLE
4907 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
4908 (start_busconfig_child): Sets up console element when
4909 <policy at_console=""> is encountered in a policy file
4910 (append_rule_from_element): Convert console elements to console
4914 (bus_policy_create_client_policy): Add console rules to the client
4915 policy based on if the client is at the console
4916 (bus_policy_append_console_rule): New function for adding a
4917 console rule to a policy
4918 (bus_policy_merge): Handle console rule merging
4920 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
4921 where we check for console user files
4923 * dbus/dbus-sysdeps.c:
4924 (_dbus_file_exists): New function which checks if the given
4926 (_dbus_user_at_console): New function which does the system
4927 specific process of checking if the user is at the console
4929 * dbus/dbus-userdb.c:
4930 (_dbus_is_console_user): New function converts a UID to user name
4931 and then calls the system specific _dbus_user_at_console to
4932 see if the user is at the console and therefor a console user
4934 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
4936 * bus/config-parser.c (set_limit):
4937 * bus/dbus-daemon-1.1.in:
4938 * test/data/valid-config-files/many-rules.conf: set the
4939 max_match_rules_per_connection limt from the config file.
4941 * doc/busconfig.dtd: update the DTD.
4943 * bus/driver.c: remove some unused variables.
4945 2004-08-24 Mikael Hallendal <micke@imendio.com>
4947 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
4948 it's been replaced by dbus_g_bus_get
4950 2004-08-23 Colin Walters <walters@redhat.com>
4952 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
4954 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
4956 * bus/selinux.c: Create a thread for policy reload notification.
4957 (bus_selinux_get_policy_root): Implement.
4959 * bus/config-parser.c (start_busconfig_child)
4960 (bus_config_parser_content): Support SELinux-root relative
4963 * configure.in <HAVE_SELINUX>: Add -lpthread.
4965 * bus/test-main.c (test_pre_hook, test_post_hook): New.
4966 (test_post_hook): Move memory checking into here.
4967 (test_pre_hook, test_post_hook): Move SELinux checks in
4968 here, but conditional on a DBUS_TEST_SELINUX environment
4969 variable. Unfortunately we can't run the SELinux checks
4970 as a normal user, since they won't have any permissions
4971 for /selinux. So this will have to be tested manually
4972 for now, until we have virtualization for most of
4975 2004-08-23 Havoc Pennington <hp@redhat.com>
4977 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
4978 drop supplementary groups, suggested by Steve Grubb
4980 2004-08-20 Colin Walters <walters@redhat.com>
4982 * bus/config-parser.c (start_busconfig_child): Remove some unused
4985 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
4988 2004-08-17 Joe Shaw <joeshaw@novell.com>
4990 * configure.in: If --enable-mono is passed in, if we can't find
4993 * mono/Makefile.am: Use /gacutil to install assemblies into the
4996 2004-08-12 Havoc Pennington <hp@redhat.com>
4998 * NEWS: update for 0.22
5000 * configure.in: release 0.22
5002 2004-08-11 Colin Walters <walters@redhat.com>
5004 * tools/dbus-send.c (main, usage): Add --reply-timeout
5007 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
5009 * bus/bus.c (process_config_first_time_only): get rid of an unused
5010 DBusError that was causing a memoy leak (bug #989).
5012 * dbus/dbus-keyring.c, dbus/dbus-message.c:
5013 fix compilation on Solaris/Forte C (bug #974)
5015 * bus/main.c (main): plug two minuscule memleaks.
5017 2004-08-10 Havoc Pennington <hp@redhat.com>
5019 * doc/dbus-tutorial.xml: add some more info on GLib bindings
5021 2004-08-09 Havoc Pennington <hp@redhat.com>
5023 * COPYING: switch to Academic Free License version 2.1 instead of
5024 2.0, to resolve complaints about patent termination clause.
5026 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
5028 * README: added documentation for the --enable-python
5031 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5033 * bus/config-parser.c (bus_config_parser_new): fix an invalid
5034 _unref in the SELinux support.
5036 * doc/busconfig.dtd: update DTD for SELinux support.
5038 * bus/config-loader-libxml.c: fix error handler and parser
5039 initialisation/cleanup. OOM test now works with libxml2 HEAD.
5041 * configure.in: remove the warning about libxml2.
5043 * dbus/dbus-bus.c: silence doxygen warning.
5045 2004-07-31 Colin Walters <walters@redhat.com>
5047 * configure.in: Move #error in SELinux check to its own line.
5049 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5051 * dbus/dbus-internals.h (_DBUS_SET_OOM):
5052 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5055 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5056 broken by the change in the _SET_OOM macros.
5058 2004-07-31 Colin Walters <walters@redhat.com>
5060 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5063 2004-07-31 Colin Walters <walters@redhat.com>
5065 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5066 to correctly detect DBUS__ACQUIRE_SVC. Also add an
5069 2004-07-24 Havoc Pennington <hp@redhat.com>
5071 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5073 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5076 * configure.in: add --enable-selinux
5078 * bus/policy.c (bus_policy_merge): add FIXME to a comment
5080 * bus/main.c (main): initialize and shut down selinux
5082 * bus/connection.c: store SELinux ID on each connection, to avoid
5083 repeated getting of the string context and converting it into
5086 * bus/bus.c (bus_context_get_policy): new accessor, though it
5088 (bus_context_check_security_policy): check whether the security
5089 context of sender connection can send to the security context of
5090 recipient connection
5092 * bus/config-parser.c: add parsing for <selinux> and <associate>
5094 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5095 implement dbus_connection_get_unix_fd()
5097 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5098 function, used by the selinux stuff
5100 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
5102 * bus/config-loader-libxml.c: complete the implementation of
5103 libxml backend for config file loader. Doesn't work with full OOM
5106 * configure.in: change error when selecting libxml into a warning.
5108 * test/data/invalid-config-files: add two non-well-formed XML
5111 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5113 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5114 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5115 be necessary to read all the buffer. (bug #894)
5117 * bus/activation.c (bus_activation_activate_service): fix a
5118 potential assertion failure (bug #896). Small optimization in the
5119 case of auto-activation messages.
5121 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5122 add test case for byte-through-vararg bug (#901). patch by Kimmo
5125 2004-07-28 Anders Carlsson <andersca@gnome.org>
5128 * python/dbus_bindings.pyx.in:
5129 Add dbus.init_gthreads (), allow emit_signal to pass
5130 arguments to the signal.
5132 2004-07-24 Havoc Pennington <hp@redhat.com>
5134 * AUTHORS: add some people, not really comprehensively, let me
5135 know if I missed you
5137 2004-07-24 Havoc Pennington <hp@redhat.com>
5139 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5142 * test/Makefile.am (DIST_SUBDIRS): here also
5144 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5146 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5147 breaking build on Solaris, reported by Farhad Saberi on the ML.
5149 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5150 va_arg invocation to account for integer promotion in the case of
5151 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5153 * bus/services.c (bus_service_remove_owner): fix bug #902, use
5154 _dbus_list_get_first_link, not _dbus_list_get_first.
5156 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5158 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5159 handler functions so that the asserts in _dbus_object_subtree_unref
5162 * dbus/dbus-transport-unix.c (do_reading):
5163 _dbus_transport_queue_messages return value is of type
5164 dbus_bool_t, not DBusDispatchStatus.
5166 2004-07-19 David Zeuthen <david@fubar.dk>
5168 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5171 (check_get_connection_unix_user): Debug says GetProperty; but the
5172 method is called GetConnectionUnixUser
5173 (check_get_connection_unix_process_id): New function
5174 (bus_dispatch_test): Actually call check_get_connection_unix_user();
5175 also call check_get_connection_unix_process_id()
5178 (bus_driver_handle_get_connection_unix_process_id): New function,
5179 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5183 (handle_server_data_external_mech): Set pid from the credentials
5184 obtained from the socket
5186 * dbus/dbus-connection.c:
5187 (dbus_connection_get_unix_process_id): New function
5189 * dbus/dbus-connection.h:
5190 Add prototype for dbus_connection_get_unix_process_id
5192 * dbus/dbus-transport.c:
5193 (_dbus_transport_get_unix_process_id): New function
5195 * dbus/dbus-transport.h:
5196 Add prototype for _dbus_transport_get_unix_process_id
5198 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
5200 * dbus/dbus-message.c: Message counter fix, patch by Christian
5201 Hammond <chipx86@gnupdate.org>
5203 2004-07-18 Seth Nickell <seth@gnome.org>
5206 * python/dbus_bindings.pyx.in:
5207 * python/tests/test-client.py:
5209 Add dbus.ByteArray and dbus_bindings.ByteArray
5210 types so that byte streams can be passed back.
5212 Give jdahlin the heaps of credit that are so
5215 2004-07-12 Seth Nickell <seth@gnome.org>
5219 Add message argument to the default object_method_handler
5222 * python/dbus_bindings.pyx.in:
5224 Automatically return NIL when passed an empty list
5225 (we can't pass back a list since lists are typed
5226 and we don't have any idea what type the the client
5227 intended the list to be... :-( )
5229 2004-07-10 Seth Nickell <seth@gnome.org>
5231 * python/examples/Makefile.am:
5233 Fix distcheck breakage caused by new examples.
5235 2004-07-10 Seth Nickell <seth@gnome.org>
5239 Add "message" argument to service-side dbus.Object
5240 methods. This will break existing services written
5241 using the python bindings, but will allow extraction
5242 of all the message information (e.g. who its from).
5244 Add improved "object oriented" signal handling/emission.
5246 * python/examples/example-service.py:
5250 * python/examples/example-signal-emitter.py:
5251 * python/examples/example-signal-recipient.py:
5253 Two new examples that show how to emit and receive
5254 signals using the new APIs.
5256 * python/examples/example-signals.py:
5257 * python/examples/gconf-proxy-service.py:
5258 * python/examples/gconf-proxy-service2.py:
5260 Add "message" argument to service methods.
5262 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
5264 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5265 * dbus/bus.c (dbus_bus_get_unix_user)
5266 * doc/dbus-specification.xml: implement GetConnectionUnixUser
5267 method of org.freedesktop.DBus interface.
5269 * bus/dispatch.c: test case
5271 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
5273 * python/Makefile.am: switched include directory from glib/ to dbus/
5274 since dbus-glib.h moved
5276 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5278 * configure.in: prevent building the gcj stuff and libxml loader
5279 since they are broken.
5281 2004-06-20 Havoc Pennington <hp@redhat.com>
5283 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
5284 codes from the dbus error names
5286 * glib/dbus-glib.h: move to subdir dbus/ since it's included
5287 as dbus/dbus-glib.h and that breakage is now visible due to
5288 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5290 * glib/dbus-glib.h: s/gproxy/g_proxy/
5292 * dbus/dbus-shared.h: new header to hold stuff shared with
5295 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5298 * glib/dbus-glib.h (dbus_set_g_error): move to
5299 dbus-glib-lowlevel.h
5301 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5302 of stuff to enable this
5304 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5306 * a bunch of other changes with the same basic "separate glib
5307 bindings from dbus.h" theme
5309 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
5311 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5313 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5315 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5317 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5318 the reply value of the ServiceExists message.
5320 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
5322 * python/dbus_bindings.pyx.in: No longer need to parse path
5323 elements and pass them as arrays of strings. The C API now
5324 accepts plain path strings.
5325 (_build_parsed_path): removed
5327 2004-06-07 Havoc Pennington <hp@redhat.com>
5329 * doc/TODO: remove auto-activation item since it's done; sort
5330 items by importance/milestone
5332 2004-06-07 Havoc Pennington <hp@redhat.com>
5334 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5335 random signature when using REQUIRED_FIELDS (this hack won't work
5338 * dbus/dbus-message.c: change the signature to be a header field,
5339 instead of message->signature special-case string. Incremental
5340 step forward. Then we can fix up code to send the signature in the
5341 message, then fix up code to validate said signature, then fix up
5342 code to not put the typecodes inline, etc.
5343 (load_one_message): don't make up the signature after the fact
5344 (decode_header_data): require signature field for the known
5347 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5349 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5351 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
5353 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5355 * mono/Handler.cs: Updated to follow new path argument for
5356 (un-)registering objects.
5358 * mono/example/Makefile.am:
5360 * configure.in: Bumped required version for mono and use new -pkg
5363 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
5365 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5366 registration functions take the path argument as char* instead of
5369 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5370 split off the path decompostion part of
5371 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5374 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5376 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5378 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5379 machine approach. A state is implemented as a function that
5380 handles incoming events as specified for that state.
5382 * doc/dbus-specification.xml: Update auth protocol state machine
5383 specification to match implementation. Remove some leftover
5386 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5388 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5389 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5392 * Doxyfile.in: remove deprecated options.
5394 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5395 glib/test-thread.h, glib/test-thread-client.c,
5396 glib/test-thread-server.c, glib/test-profile.c,
5397 glib/test-dbus-glib.c: remove these unused files.
5399 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
5401 * dbus/dbus-object-tree.c
5402 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5403 non-fallback handlers (bug #684).
5404 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5405 (find_subtree_recurse): report wether the returned subtree is an
5406 exact match or a "fallback" match higher up in the tree.
5407 (object_tree_test_iteration): update test case.
5409 2004-06-01 Seth Nickell <seth@gnome.org>
5411 * python/dbus_bindings.pyx.in:
5412 * python/tests/test-client.py:
5414 Round off basic type support. Add dicts (yay!), and
5415 remaining array types.
5417 Make MessageIter more general so it works for dicts too.
5419 Mark all loop variables as C integers.
5421 2004-05-31 Havoc Pennington <hp@redhat.com>
5423 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5426 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5428 * glib/dbus-glib-tool.c (main): set up to have a --self-test
5429 option that runs the tests, and start filling in some code
5430 including for starters just dumping the interfaces to stdout
5432 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5434 * test/data/valid-introspection-files/lots-of-types.xml: test of
5435 an example introspection file
5437 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5440 2004-05-31 Seth Nickell <seth@gnome.org>
5442 * python/dbus_bindings.pyx.in:
5443 * python/tests/test-client.py:
5448 Fix string array memory trashing bug... oops...
5450 2004-05-30 Seth Nickell <seth@gnome.org>
5454 Add a nicer-but-less-flexible alternate API for handling
5455 calls to virtual objects in dbus.ObjectTree.
5457 Screw up the argument order to the dbus.Object constructor
5458 for consistency with dbus.ObjectTree (and to make dbus_methods
5459 optional for future extension)
5461 * python/examples/Makefile.am:
5462 * python/examples/gconf-proxy-service.py:
5463 * python/examples/gconf-proxy-service2.py:
5465 Alternate implementation of gconf-proxy-service using the
5466 nicer dbus.ObjectTree API.
5468 * python/examples/example-service.py:
5469 * python/tests/test-server.py
5471 Reverse the argument order to deal with dbus.Object constructor
5474 2004-05-30 Seth Nickell <seth@gnome.org>
5476 * python/examples/example-client.py:
5477 * python/examples/example-service.py:
5479 Take it back. Lists seem to work but they're broken
5480 in the test suite. Make the base examples use
5483 2004-05-30 Seth Nickell <seth@gnome.org>
5485 * python/dbus_bindings.pyx.in:
5486 * python/tests/test-client.py:
5488 Add some more tests and fix errors that crop up.
5489 Unfortunately, currently it seems like marshalling
5490 and unmarshalling of lists is completely broken :-(
5492 2004-05-30 Seth Nickell <seth@gnome.org>
5494 * python/dbus_bindings.pyx.in:
5496 Add support for ObjectPath type.
5500 Refactor message handling code to a common function.
5502 * python/tests/test-client.py:
5503 * python/tests/test-server.py:
5505 Add tests that check to make sure values of all types
5506 can be echoed from a service w/o mangling.
5508 2004-05-29 Seth Nickell <seth@gnome.org>
5512 Add ObjectTree class which allows implementation
5513 of trees of "virtual" objects. Basically the python
5514 wrapper for "register_fallback".
5516 * python/examples/Makefile.am
5517 * python/examples/gconf-proxy-client.py:
5518 * python/examples/gconf-proxy-service.py:
5520 Implement a simple GConf proxy service that supports
5521 get/set on string and int GConf keys using the ObjectTree.
5523 2004-05-29 Seth Nickell <seth@gnome.org>
5526 * python/examples/example-client.py:
5527 * python/examples/example-service.py:
5528 * python/examples/list-system-services.py:
5530 Add SessionBus, SystemBus and ActivationBus classes
5531 so you don't need to know the special little BUS_TYPE
5534 2004-05-29 Havoc Pennington <hp@redhat.com>
5536 * bus/config-parser.c (process_test_valid_subdir): temporarily
5537 stop testing config parser OOM handling, since expat has issues
5538 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5540 * bus/dbus-daemon-1.1.in: change requested_reply to
5541 send_requested_reply/receive_requested_reply so we can send the
5542 replies, not just receive them.
5544 * bus/config-parser.c: parse the new
5545 send_requested_reply/receive_requested_reply
5547 * bus/policy.c (bus_client_policy_check_can_send): add
5548 requested_reply argument and use it
5550 * bus/bus.c (bus_context_check_security_policy): pass through
5551 requested_reply status to message send check
5553 * bus/system.conf.in: adapt to requested_reply change
5555 2004-05-28 Havoc Pennington <hp@redhat.com>
5557 * test/glib/test-service-glib.c (main): remove unused variable
5559 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5561 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5562 from the enum, no longer in use.
5564 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5567 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5568 whether error_name passed in is a valid error name.
5570 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
5572 * dbus/dbus-message.c (dbus_message_get_args): Added support for
5573 OBJECT_PATH and OBJECT_PATH_ARRAY
5575 2004-05-28 Seth Nickell <seth@gnome.org>
5577 * python/examples/Makefile.am:
5579 Forget to add Makefile.am. Do not pass go.
5581 2004-05-28 Michael Meeks <michael@ximian.com>
5583 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
5586 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5588 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5589 (_dbus_message_iter_get_basic_type_array): impl.
5590 drastically simplify ~all relevant _get methods to use these.
5591 (_dbus_message_iter_append_basic_array),
5592 (dbus_message_iter_append_basic): impl
5593 drastically simplify ~all relevant _append methods to use these.
5595 * dbus/dbus-message-builder.c (parse_basic_type)
5596 (parse_basic_array, lookup_basic_type): impl.
5597 (_dbus_message_data_load): prune scads of duplicate /
5600 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
5601 (_dbus_demarshal_basic_type): implement,
5602 (demarshal_and_validate_len/arg): beef up debug.
5603 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5605 2004-05-27 Seth Nickell <seth@gnome.org>
5608 * python/Makefile.am:
5610 Include the example python apps in the tarball.
5612 * python/examples/list-system-services.py
5614 Add a python new example that fetches the list of services
5615 from the system bus.
5617 2004-05-27 Seth Nickell <seth@gnome.org>
5620 * python/dbus_bindings.pyx.in:
5622 Fix failure to notify that a signal was not handled,
5623 resulted in hung functions.
5625 2004-05-25 Colin Walters <walters@redhat.com>
5627 * tools/dbus-monitor.c (main): Monitor all types of messages.
5629 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
5631 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5632 which unregisters the object path and disposes the handler.
5634 2004-05-23 Kristian Høgsberg <krh@redhat.com>
5636 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5638 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5639 operands to && so we call dbus_message_iter_next () for the last
5642 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5644 * dbus/dbus-object-tree.c
5645 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5646 children even if the requested path isn't registered.
5647 (object_tree_test_iteration): test object_tree_list_registered.
5649 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5652 2004-05-20 Kristian Høgsberg <krh@redhat.com>
5654 * doc/TODO: Remove resolved items.
5656 * bus/expirelist.h (struct BusExpireList): remove unused n_items
5659 * bus/connection.c (bus_connections_expect_reply): Enforce the
5660 per-connection limit on pending replies.
5662 Patch from Jon Trowbridge <trow@ximian.com>:
5664 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5665 up a watch that triggers a config reload when one end of the pipe
5667 (signal_handler): Instead of doing the config reload in our SIGHUP
5668 handler, just write to the reload pipe and let the associated
5669 watch handle the reload when control returns to the main loop.
5671 * bus/driver.c (bus_driver_handle_reload_config): Added.
5672 Implements a ReloadConfig method for requesting a configuration
5673 file reload via the bus driver.
5675 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5677 * HACKING: Updated release instructions concerning the wiki page.
5679 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5681 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5682 filter against auth->allowed_mechs; we only add allowed mechs in
5683 record_mechanisms().
5685 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5686 ALLOWED_MECHS to auth-script format so we can set the list of
5689 * data/auth/client-out-of-mechanisms.auth-script: New test to
5690 check client disconnects when it is out of mechanisms to try.
5692 * dbus/dbus-auth.c (process_command): Remove check for lines
5693 longer that 1 MB; we only buffer up maximum 16 kB.
5695 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5696 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5697 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5698 assume there might be unused bytes.
5700 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5701 client-out-of-mechs, it is handled in process_reject(). Move check
5702 for max failures to send_rejected(), as it's a server-only thing.
5704 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5705 send_auth(), send_data(), send_rejected(), send_error(),
5706 send_ok(), send_begin() and send_cancel().
5708 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5710 Remove base64 encoding, replace with hex encoding. Original patch
5711 from trow@ximian.com, added error handling.
5713 * dbus/dbus-string.c (_dbus_string_base64_encode)
5714 (_dbus_string_base64_decode): Remove.
5715 (_dbus_string_hex_decode): Add end_return argument so we can
5716 distinguish between OOM and invalid hex encoding.
5717 (_dbus_string_test): Remove base64 tests and add test case for
5720 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5721 Replace base64 with hex.
5723 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5724 for invalid hex encoded data in auth protocol.
5726 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5728 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5731 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5733 * mono/dbus-sharp.dll.config.in: Added for GAC
5734 * mono/dbus-sharp.snk: Added for GAC
5735 * mono/Assembly.cs.in: Added for GAC
5736 * mono/Makefile.am: Changes for GAC installation
5737 * configure.in: Added refs for dbus-sharp.dll.config.in and
5738 Assembly.cs.in. More fixes for mono testing
5739 * mono/example/Makefile.am: Changed var to CSC
5740 * Makefile.am: Changed flag name to DBUS_USE_CSC
5742 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5744 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5745 * mono/doc/*: Added documentation framework
5746 * configure.in: Added monodoc check
5747 * README: Added description of mono configure flags
5749 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5751 * doc/dbus-specification.xml: Added a "Required" column to the
5752 header fields table and changed the "zero or more" verbage in
5753 the above paragraph to read "The header must contain the required
5754 named header fields and zero or more of the optional named header
5756 * test/data/invalid-messages/*.message: Added the required PATH
5757 named header field to the tests so that they don't fail on
5758 'Missing path field'
5760 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
5762 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
5763 the stack by implicitly defining variable and parameter types and
5764 removing the hack of defining C pointers as python objects and later
5767 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
5769 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
5771 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
5773 * mono/DBusType/Dict.cs: Handle empty dicts
5774 * mono/DBusType/Array.cs: Handle empty arrays
5775 * mono/Arguments.cs: Handle empty arguments
5777 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
5779 * dbus-sharp.pc.in: Modified to include include Libs and Requires
5782 2004-04-25 Kristian Høgsberg <krh@redhat.com>
5784 * test/data/valid-messages/standard-*.message: Update message
5785 test scripts to new header field names.
5787 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
5789 * test/break-loader.c (randomly_do_n_things): tracked down buffer
5790 overflow to times_we_did_each_thing array which would chop off the
5791 first character of the failure_dir string. Increased the size of
5792 the array to 7 to reflect the number of random mutation functions
5795 2004-04-21 Kristian Høgsberg <krh@redhat.com>
5797 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
5798 unix_server->watch here, it is unreffed in disconnect.
5799 (_dbus_server_new_for_tcp_socket): convert NULL host to
5800 "localhost" here so we don't append NULL to address.
5802 * dbus/dbus-server.c (_dbus_server_test): Add test case for
5803 various addresses, including tcp with no explicit host.
5805 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5807 * dbus/dbus-message.c (decode_header_data, decode_string_field):
5808 fix incorrect setting of .name_offset in the HeaderField (it was
5809 off by two bytes, positioned right after the name and typecode)
5811 * bus/bus.c (bus_context_new, bus_context_unref): test before
5812 calling dbus_server_free_data_slot and _dbus_user_database_unref
5813 in case of an error.
5815 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
5818 2004-04-19 Kristian Høgsberg <krh@redhat.com>
5820 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
5821 _dbus_poll() instead of select().
5823 2004-04-15 Jon Trowbridge <trow@ximian.com>
5825 * bus/main.c (signal_handler): Reload the configuration files
5827 (main): Set up our SIGHUP handler.
5829 * bus/bus.c (struct BusContext): Store the config file, user and
5830 fork flag in the BusContext.
5831 (process_config_first_time_only): Added. Contains the code
5832 (previously in bus_context_new) for setting up the BusContext from
5833 the BusConfigParser that should only be run the first time the
5834 config files are read.
5835 (process_config_every_time): Added. Contains the code (previously
5836 in bus_context_new) for setting up the BusContext from the
5837 BusConfigParser that should be run every time the config files are
5839 (load_config): Added. Builds a BusConfigParser from the config
5840 files and passes the resulting structure off to
5841 process_config_first_time_only (assuming this is the first time)
5842 and process_config_every_time.
5843 (bus_context_new): All of the config-related code has been moved
5844 to process_config_first_time_only and process_config_every_time.
5845 Now this function just does the non-config-related initializations
5846 and calls load_config.
5847 (bus_context_reload_config): Added.
5849 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
5851 * bus/driver.c (bus_driver_handle_get_service_owner):
5852 implement a GetServiceOwner method.
5853 * doc/dbus-specification.xml: document it.
5854 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
5856 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
5857 implement, using the bus GetServiceOwner method.
5859 * test/glib/test-dbus-glib.c:
5860 use dbus_gproxy_new_for_service_owner so that we can receive the
5863 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
5865 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5866 dbus/dbus-message.c, dbus/dbus-protocol.h
5867 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
5869 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
5870 dbus/dbus-message.c, dbus/dbus-protocol.h
5871 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
5873 * dbus/dbus-internals.c (_dbus_header_field_to_string):
5874 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
5875 DBUS_HEADER_FIELD_SENDER resolves to "sender"
5877 * doc/dbus-specification.xml (Header Fields Table):
5878 s/SERVICE/DESTINATION
5879 s/SENDER_SERVICE/SENDER
5882 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
5884 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
5887 2004-04-13 Michael Meeks <michael@ximian.com>
5889 * glib/dbus-gobject.c (handle_introspect): split out
5890 (introspect_properties): this.
5891 (handle_introspect): implement this.
5893 * test/glib/Makefile.am: use the absolute path so the bus
5894 daemon's chdir ("/") doesn't kill us dead.
5896 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
5898 2004-04-12 Jon Trowbridge <trow@ximian.com>
5900 * bus/config-parser.c (struct BusConfigParser): Added
5901 included_files field.
5902 (seen_include): Added. Checks whether or not a file has already
5903 been included by any parent BusConfigParser.
5904 (bus_config_parser_new): Copy the parent's included_files.
5905 (include_file): Track which files have been included, and fail on
5906 circular inclusions.
5907 (process_test_valid_subdir): Changed printf to report if we are
5908 testing valid or invalid conf files.
5909 (all_are_equiv): Changed printf to be a bit clearer about
5910 what we are actually doing.
5911 (bus_config_parser_test): Test invalid configuration files.
5913 2004-04-09 Jon Trowbridge <trow@ximian.com>
5915 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
5916 argument. If non-null, the newly-constructed BusConfigParser will
5917 be initialized with the parent's BusLimits instead of the default
5919 (include_file): When including a config file, pass in
5920 the current parser as the parent and then copy the BusLimits
5921 from the included BusConfigParser pack to the current parser.
5922 (process_test_valid_subdir): Renamed from process_test_subdir.
5923 (process_test_equiv_subdir): Added. Walks through a directory,
5924 descending into each subdirectory and loading the config files
5925 it finds there. If any subdirectory contains two config files
5926 that don't produce identical BusConfigParser structs, fail.
5927 For now, the BusConfigParser's BusPolicies are not compared.
5928 (bus_config_parser_test): Call both process_test_valid_subdir and
5929 process_test_equiv_subdir.
5931 * bus/config-loader-libxml.c (bus_config_load): Take a parent
5932 argument and pass it along to the call to bus_config_parser_new.
5933 Also made a few small changes to allow this code to compile.
5935 * bus/config-loader-expat.c (bus_config_load): Take a parent
5936 argument and pass it along to the call to bus_config_parser_new.
5938 * bus/bus.c (bus_context_new): Load the config file
5939 with a NULL parent argument.
5941 2004-03-29 Michael Meeks <michael@ximian.com>
5943 * glib/dbus-gobject.c (introspect_properties): split
5944 out, fix mangled 'while' flow control.
5945 (introspect_signals): implement.
5946 (handle_introspect): update.
5948 2004-03-29 Michael Meeks <michael@ximian.com>
5950 * glib/dbus-gobject.c (set_object_property): split out /
5951 re-work, use the property type, and not the message type(!)
5952 (get_object_property): ditto.
5954 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
5955 (dbus_gvalue_marshal): make this code re-usable, needed
5956 for signals too, also on both proxy and server side.
5957 Re-write for more efficiency / readability.
5959 2004-03-29 Michael Meeks <michael@ximian.com>
5961 * dbus/dbus-message.c
5962 (dbus_message_new_error_printf): impl.
5964 * dbus/dbus-connection.c
5965 (dbus_connection_unregister_object_path): fix warning.
5967 * configure.in: fix no-mono-installed situation.
5969 2004-03-27 Havoc Pennington <hp@redhat.com>
5971 Patch from Timo Teräs:
5973 * tools/dbus-send.c (main): if --print-reply, assume type is
5974 method call; support boolean type args
5976 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
5977 bunch of memleak and logic bugs
5979 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
5981 * mono/Arguments.cs:
5982 * mono/Introspector.cs:
5984 * mono/InterfaceProxy.cs:
5986 * mono/ProxyBuilder.cs:
5988 Added InterfaceProxy class to avoid building proxies for every
5992 * dbus-message.c (dbus_message_append_args_valist)
5993 (dbus_message_iter_get_object_path)
5994 (dbus_message_iter_get_object_path_array)
5995 (dbus_message_iter_append_object_path)
5996 (dbus_message_iter_append_object_path_array):
5997 Added object_path iter functions to handle OBJECT_PATH arguments
5999 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6001 First checkin of mono bindings.
6004 Build stuff for the bindings
6005 * dbus-sharp.pc.in: Added for pkgconfig
6007 2004-03-21 Havoc Pennington <hp@redhat.com>
6009 * test/test-service.c (main): remove debug spew
6011 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6013 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6016 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6017 (dbus_message_iter_init_array_iterator)
6018 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6019 indicate whether the iterator is empty
6021 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6024 2004-03-19 Havoc Pennington <hp@redhat.com>
6026 * NEWS: 0.21 updates
6028 * configure.in: 0.21
6030 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6032 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6033 you don't need pyrex to make dist
6035 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6038 2004-03-18 Richard Hult <richard@imendio.com>
6040 * dbus/dbus-message.c (dbus_message_get_auto_activation)
6041 (dbus_message_set_auto_activation): Add doxygen docs.
6043 2004-03-16 Richard Hult <richard@imendio.com>
6045 * bus/activation.c: (bus_activation_service_created),
6046 (bus_activation_send_pending_auto_activation_messages),
6047 (bus_activation_activate_service):
6049 * bus/dispatch.c: (bus_dispatch),
6050 (check_nonexistent_service_auto_activation),
6051 (check_service_auto_activated),
6052 (check_segfault_service_auto_activation),
6053 (check_existent_service_auto_activation), (bus_dispatch_test):
6054 * bus/driver.c: (bus_driver_handle_activate_service):
6055 * bus/services.c: (bus_registry_acquire_service):
6056 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6057 (dbus_message_get_auto_activation):
6058 * dbus/dbus-message.h:
6059 * dbus/dbus-protocol.h: Implement auto-activation.
6061 * doc/dbus-specification.xml: Add auto-activation to the spec.
6063 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
6065 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6066 fix a bug with CUSTOM types.
6068 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6069 a unit test for this bug (used to fail).
6071 2004-03-12 Mikael Hallendal <micke@imendio.com>
6074 (babysitter_watch_callback): notify all pending activations waiting for
6075 the same exec that the activation failed.
6076 (bus_activation_activate_service): shortcut the activation if we
6077 already waiting for the same executable to start up.
6079 2004-03-12 Mikael Hallendal <micke@imendio.com>
6082 - Added service file reloading.
6083 Each service files directory is kept in an hash table in
6084 BusActivation and each BusActivationEntry knows what .service-file it
6085 was read from. So when you try to activate a service the bus will
6086 check if it's been updated, removed or if new .service-files has
6088 - Test code at the bottom for the service file reloading.
6089 * bus/test-main.c: (main):
6091 - added service reloading test.
6092 * dbus/dbus-sysdeps.c:
6093 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6095 2004-03-08 Michael Meeks <michael@ximian.com>
6097 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
6098 bail immediately if disconnected, to avoid busy loop.
6100 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6101 cleanup cut/paste/inefficiency.
6103 2004-03-01 David Zeuthen <david@fubar.dk>
6105 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6106 bug where args were used twice. This bug resulted in a segfault
6107 on a Debian/PPC system when starting the messagebus daemon. Include
6108 dbus-sysdeps.h for DBUS_VA_COPY
6110 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6112 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6113 appropriate va_copy implementation. From GLib
6115 2004-02-24 Joe Shaw <joe@ximian.com>
6117 * bus/services.c (bus_registry_acquire_service): We need to pass
6118 in the service name to dbus_set_error() to prevent a crash.
6120 2003-12-26 Anders Carlsson <andersca@gnome.org>
6122 * AUTHORS: Reveal my True identity.
6124 2003-12-17 Mikael Hallendal <micke@imendio.com>
6126 * dbus/dbus-message.c: (dbus_message_append_args_valist):
6127 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6129 2003-12-13 Mikael Hallendal <micke@imendio.com>
6131 * doc/TODO: Added not about better error check of configuration files.
6133 2003-12-02 Richard Hult <richard@imendio.com>
6135 * Update AFL version to 2.0 throughout the source files to reflect
6136 the update that was done a while ago.
6138 2003-12-02 Richard Hult <richard@imendio.com>
6140 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6141 wrote_dict_key to FALSE on the iter that the dict is appended to,
6142 just like when appending other types. Fixes a bug where a dict
6143 couldn't be put inside a dict.
6144 (dbus_message_iter_append_dict_key): Fix typo in warning message.
6145 (message_iter_test, _dbus_message_test): Add test case for dict
6148 2003-12-01 David Zeuthen <david@fubar.dk>
6150 * python/dbus.py: Add the actual message when calling the reciever
6151 of a signal such that parameters can be inspected. Add the method
6152 remove_signal_receiver
6154 2003-11-26 Mikael Hallendal <micke@imendio.com>
6158 * glib/*.[ch]: Made ref functions return the pointer
6160 2003-11-25 Zack Rusin <zack@kde.org>
6162 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6164 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
6167 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
6168 the Integrator and to better fit with the server,
6170 2003-11-24 Zack Rusin <zack@kde.org>
6172 * qt/connection.h, qt/connection.cpp: removing initDbus method since
6173 the integrator handles it now
6175 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6176 since QTimer wasn't really meant to be used the way DBusTimeout is
6178 2003-11-24 Zack Rusin <zack@kde.org>
6180 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
6181 Integrator class which integrates D-BUS with the Qt event loop,
6183 * qt/connection.h, qt/connection.cpp: Move all the code which
6184 was dealing with D-BUS integration to the Integrator class,
6185 and start using Integrator,
6187 2003-11-23 Zack Rusin <zack@kde.org>
6189 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
6192 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6193 switching namespaces to DBusQt, reworking the class,
6195 * Makefile.cvs: switching dependencies so that it matches KDE
6198 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
6201 2003-11-19 Havoc Pennington <hp@redhat.com>
6205 * configure.in: bump version to 0.20
6207 * configure.in (have_qt): add yet another place to look for qt
6208 (someone hand trolltech a .pc file...)
6210 2003-11-01 Havoc Pennington <hp@redhat.com>
6212 * doc/dbus-specification.xml: add state machine docs on the auth
6213 protocol; just a first draft, I'm sure it's wrong.
6215 2003-10-28 David Zeuthen <david@fubar.dk>
6217 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6218 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6220 2003-10-28 Havoc Pennington <hp@redhat.com>
6222 * dbus/dbus-message.c (get_next_field): delete unused function
6224 2003-10-28 Havoc Pennington <hp@redhat.com>
6226 * bus/expirelist.c (do_expiration_with_current_time): detect
6227 failure of the expire_func due to OOM
6229 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6231 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6232 NoReply error that's now created by the bus when the service exits
6234 2003-10-28 Havoc Pennington <hp@redhat.com>
6236 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6237 tests for set_path, set_interface, set_member, etc.
6239 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6241 * dbus/dbus-message.c (set_string_field): always just delete and
6242 re-append the field; accept NULL for deletion
6243 (re_align_fields_recurse): reimplement
6245 2003-10-26 Havoc Pennington <hp@redhat.com>
6247 * dbus/dbus-connection.c: fix docs to properly describe the
6248 disconnected message
6249 (_dbus_connection_notify_disconnected): remove this function;
6250 we can't synchronously add the disconnected message, we have to
6251 do it after we've queued any remaining real messages
6252 (_dbus_connection_get_dispatch_status_unlocked): queue the
6253 disconnect message only if the transport has finished queueing all
6254 its real messages and is disconnected.
6255 (dbus_connection_disconnect): update the dispatch status here
6257 2003-10-22 Havoc Pennington <hp@redhat.com>
6259 * bus/bus.c (bus_context_check_security_policy): fix up assertion
6261 * bus/connection.c (bus_transaction_send_from_driver): set the
6262 destination to the connection's base service
6264 2003-10-20 Havoc Pennington <hp@redhat.com>
6266 hmm, make check is currently not passing.
6268 * doc/dbus-specification.xml: add requirement that custom type
6269 names follow the same rules as interface names.
6271 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6272 duplication and allow 'c' to be 'custom'; dict is now 'm' for
6275 * doc/dbus-specification.xml: update type codes to match
6276 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6277 CUSTOM. Add type OBJECT_PATH to the spec.
6279 2003-10-17 Havoc Pennington <hp@redhat.com>
6281 * bus/driver.c (create_unique_client_name): use "." as separator
6282 in base service names instead of '-'
6284 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6285 byte at the end of the string
6287 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6288 optimization macros since string validation seems to be a slow
6291 * doc/dbus-specification.xml: restrict valid
6292 service/interface/member/error names. Add test suite code for the
6295 * dbus/dbus-string.c: limit service/interface/member/error names
6298 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6299 format arg to verbose spew
6301 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6302 memory, return instead of g_error
6304 * test/test-service.c (path_message_func): support emitting a
6307 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6308 activation bus type if DBUS_BUS_ACTIVATION was set; default to
6309 assuming the activation bus was the session bus so that services
6310 started manually will still register.
6311 (init_connections_unlocked): fix so that in OOM situation we get
6312 the same semantics when retrying the function
6314 * test/test-service.c (main): change to use path registration, to
6315 test those codepaths; register with DBUS_BUS_ACTIVATION rather
6316 than DBUS_BUS_SESSION
6318 2003-10-16 Havoc Pennington <hp@redhat.com>
6320 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6322 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6323 coverage of the tests
6324 (coverage-report.txt): don't move the .da and .bbg files around
6326 2003-10-16 Havoc Pennington <hp@redhat.com>
6328 * bus/bus.c (struct BusContext): remove struct field I didn't mean
6331 2003-10-16 Havoc Pennington <hp@redhat.com>
6333 * bus/connection.c (bus_pending_reply_expired): either cancel or
6335 (bus_connections_check_reply): use unlink, not remove_link, as we
6336 don't want to free the link; fixes double free mess
6338 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6339 where no reply was received
6341 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6344 * bus/signals.c (match_rule_matches): add special cases for the
6345 bus driver, so you can match on sender/destination for it.
6347 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6348 DBUS_PRINT_BACKTRACE is set
6350 * dbus/dbus-internals.c: add pid to assertion failure messages
6352 * dbus/dbus-connection.c: add message type code to the debug spew
6354 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6355 sender=foo not service=foo
6357 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6358 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
6359 DBUS_ACTIVATION_ADDRESS instead
6361 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6362 DBUS_SYSTEM_BUS_ADDRESS if appropriate
6364 * bus/bus.c (bus_context_new): handle OOM copying bus type into
6367 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6368 (dbus_message_iter_get_object_path_array): new function (half
6369 finished, disabled for the moment)
6371 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6372 DBUS_MESSAGE_TYPE_ERROR
6374 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6375 avoid redirecting stderr to /dev/null
6376 (babysit): close stdin if not doing the "exit_with_session" thing
6378 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6379 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6380 stdout/stdin, so things don't get confused
6382 * bus/system.conf.in: fix to allow replies, I modified .conf
6383 instead of .conf.in again.
6385 2003-10-14 David Zeuthen <david@fubar.dk>
6387 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6388 argtype to arg_type when raising unknown arg type exception.
6389 Changed type list to reflect the changes in dbus-protocol.h so
6390 the bindings actually work.
6392 2003-10-14 Havoc Pennington <hp@redhat.com>
6394 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6395 to have a bug keeping it from outputting the .da files sometimes
6396 (string_get_string): don't append garbage nul bytes to the string.
6398 2003-10-15 Seth Nickell <seth@gnome.org>
6400 * python/Makefile.am:
6402 Include dbus_h_wrapper.h in the dist tarball.
6404 2003-10-14 Havoc Pennington <hp@redhat.com>
6406 * bus/bus.c (bus_context_check_security_policy): revamp this to
6407 work more sanely with new policy-based requested reply setup
6409 * bus/connection.c (bus_transaction_send_from_driver): set bus
6410 driver messages as no reply
6412 * bus/policy.c (bus_client_policy_check_can_receive): handle a
6413 requested_reply attribute on allow/deny rules
6415 * bus/system.conf: add <allow requested_reply="true"/>
6417 * bus/driver.c (bus_driver_handle_message): fix check for replies
6418 sent to the bus driver, which was backward. How did this ever work
6419 at all though? I think I'm missing something.
6421 * dbus/dbus-message.c (decode_header_data): require error and
6422 method return messages to have a reply serial field to be valid
6423 (_dbus_message_loader_queue_messages): break up this function;
6424 validate that reply serial and plain serial are nonzero;
6425 clean up the OOM/error handling.
6426 (get_uint_field): don't return -1 from this
6427 (dbus_message_create_header): fix signed/unsigned bug
6429 * bus/connection.c (bus_connections_expect_reply): save serial of
6430 the incoming message, not reply serial
6432 2003-10-14 Havoc Pennington <hp@redhat.com>
6434 * bus/connection.c: implement pending reply tracking using
6437 * bus/bus.c (bus_context_check_security_policy): verify that a
6438 reply is pending in order to allow a reply to be sent. Deny
6439 messages of unknown type.
6441 * bus/dbus-daemon-1.1.in: update to mention new resource limits
6443 * bus/bus.c (bus_context_get_max_replies_per_connection): new
6444 (bus_context_get_reply_timeout): new
6446 2003-10-13 Seth Nickell <seth@gnome.org>
6448 * python/Makefile.am:
6450 Pass "make distcheck": remove a couple files from DIST_FILES
6451 that weren't included in the final version.
6453 2003-10-12 Havoc Pennington <hp@pobox.com>
6455 Added test code that 1) starts an actual bus daemon and 2) uses
6456 DBusGProxy; fixed bugs that were revealed by the test. Lots
6457 more testing possible, but this is the basic framework.
6459 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6460 empty proxy lists from the proxy list hash
6462 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6463 couple of return_if_fail checks
6465 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6466 to allocate, so everything is cleared to NULL as it should be.
6468 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6469 source as data to dbus_connection_set_timeout_functions() as the
6470 timeout functions expected
6472 * test/glib/run-test.sh: add a little script to start up a message
6473 bus and run tests using it
6475 * tools/dbus-launch.1: updates
6477 * tools/dbus-launch.c (main): add --config-file option
6479 * tools/dbus-launch.c (main): remove confusing else if (runprog)
6480 that could never be reached.
6482 * dbus/dbus-message.c (dbus_message_new_method_return)
6483 (dbus_message_new_error, dbus_message_new_signal): set the
6484 no-reply-expected flag on all these. Redundant, but may
6485 as well be consistent.
6487 2003-10-11 Havoc Pennington <hp@pobox.com>
6489 * test/decode-gcov.c (function_solve_graph): make broken block
6490 graph a nonfatal error since it seems to be broken. Need to debug
6493 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6494 can't just check type > INVALID < LAST anymore
6496 * dbus/dbus-message.c (dbus_message_get_signature): new function
6497 (dbus_message_has_signature): new function
6498 (struct DBusMessage): add signature field (right now it isn't sent
6499 over the wire, just generated on the fly)
6500 (dbus_message_copy): copy the signature, and init strings to
6501 proper length to avoid some reallocs
6502 (dbus_message_iter_init_array_iterator): return void, since it
6504 (dbus_message_iter_init_dict_iterator): return void since it can't fail
6505 (_dbus_message_loader_queue_messages): add silly temporary hack to
6506 fill in message->signature on load
6508 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6509 characters, so they are relatively human-readable.
6511 2003-10-11 Havoc Pennington <hp@pobox.com>
6513 * dbus/dbus-message.c (_dbus_message_test): add more test
6514 coverage, but #if 0 for now since they uncover a bug
6515 not fixed yet; I think in re_align_field_recurse()
6516 (re_align_field_recurse): add FIXME about broken assertion
6518 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6520 * bus/connection.c: share a couple code bits with expirelist.c
6522 * bus/expirelist.h, bus/expirelist.c: implement a generic
6523 expire-items-after-N-seconds facility, was going to share between
6524 expiring connections and replies, decided not to use for expiring
6525 connections for now.
6527 * COPYING: include AFL 2.0 (still need to change all the file headers)
6529 2003-10-09 Havoc Pennington <hp@redhat.com>
6531 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6532 gcc 3.3. Not that we do anything about it yet.
6534 * bus/signals.c (bus_match_rule_parse): impose max length on the
6537 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6539 2003-10-09 Havoc Pennington <hp@redhat.com>
6541 Make matching rules theoretically work (add parser).
6543 * bus/bus.c (bus_context_check_security_policy): fix up to handle
6544 the case where destination is explicitly specified as bus driver
6545 and someone else is eavesdropping.
6547 * bus/policy.c (bus_client_policy_check_can_receive): fix up
6548 definition of eavesdropping and assertion
6550 * tools/dbus-send.c (main): use dbus_message_type_from_string
6552 * bus/signals.c (bus_match_rule_parse): implement
6554 * dbus/dbus-message.c (dbus_message_type_from_string): new
6556 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6558 2003-10-02 Havoc Pennington <hp@pobox.com>
6560 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6561 dbus_gproxy_oneway_call
6563 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
6564 (dbus_server_setup_with_g_main): fix to allow calling them more
6565 than once on the same args
6566 (dbus_bus_get_with_g_main): new function
6568 2003-10-02 Havoc Pennington <hp@redhat.com>
6570 * doc/dbus-tutorial.xml: write some stuff
6572 2003-09-29 Havoc Pennington <hp@pobox.com>
6574 * configure.in: split checks for Doxygen from XML docs, check for
6577 * doc/Makefile.am: XML-ify all the docs, and add a blank
6580 2003-09-29 Havoc Pennington <hp@pobox.com>
6582 * Merge dbus-object-names branch. To see the entire patch
6583 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6584 it's huuuuge though.
6585 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6587 2003-09-28 Havoc Pennington <hp@pobox.com>
6589 * HACKING: update to reflect new server
6591 2003-09-26 Seth Nickell <seth@gnome.org>
6594 * python/examples/example-signals.py:
6596 Start implementing some notions of signals. The API
6597 is really terrible, but they sort of work (with the
6598 exception of being able to filter by service, and to
6599 transmit signals *as* a particular service). Need to
6600 figure out how to make messages come from the service
6603 * python/dbus_bindings.pyx.in:
6605 Removed duplicate message_handler callbacks.
6607 2003-09-25 Havoc Pennington <hp@redhat.com>
6609 * bus/session.conf.in: fix my mess
6611 2003-09-25 Havoc Pennington <hp@pobox.com>
6613 * bus/session.conf.in: fix security policy, reported by Seth Nickell
6615 2003-09-25 Seth Nickell <seth@gnome.org>
6617 * python/examples/example-service.py:
6619 Johan notices complete wrong code in example-service, but
6620 completely wrong in a way that works exactly the same (!).
6621 Johan is confused, how could this possibly work? Example
6622 code fails to serve purpose of making things clear.
6625 2003-09-25 Mark McLoughlin <mark@skynet.ie>
6627 * doc/dbus-specification.sgml: don't require header fields
6628 to be 4-byte aligned and specify that fields should be
6629 distinguished from padding by the fact that zero is not
6632 * doc/TODO: remove re-alignment item and add item to doc
6633 the OBJECT_PATH type.
6635 * dbus/dbus-message.c:
6636 (HeaderField): rename the original member to value_offset
6637 and introduce a name_offset member to keep track of where
6638 the field actually begins.
6639 (adjust_field_offsets): remove.
6640 (append_int_field), (append_uint_field),
6641 (append_string_field): don't align the start of the header
6642 field to a 4-byte boundary.
6643 (get_next_field): impl finding the next marhsalled field
6644 after a given field.
6645 (re_align_field_recurse): impl re-aligning a number of
6646 already marshalled fields.
6647 (delete_field): impl deleting a field of any type and
6648 re-aligning any following fields.
6649 (delete_int_or_uint_field), (delete_string_field): remove.
6650 (set_int_field), (set_uint_field): no need to re-check
6651 that we have the correct type for the field.
6652 (set_string_field): ditto and impl re-aligning any
6654 (decode_header_data): update to take into account that
6655 the fields aren't 4-byte aligned any more and the new
6656 way to distinguish padding from header fields. Also,
6657 don't exit when there is too much header padding.
6658 (process_test_subdir): print the directory.
6659 (_dbus_message_test): add test to make sure a following
6660 field is re-aligned correctly after field deletion.
6662 * dbus/dbus-string.[ch]:
6663 (_dbus_string_insert_bytes): rename from insert_byte and
6664 allow the insert of multiple bytes.
6665 (_dbus_string_test): test inserting multiple bytes.
6667 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6668 warning note to docs about having to re-align any
6669 marshalled values following the string.
6671 * dbus/dbus-message-builder.c:
6672 (append_string_field), (_dbus_message_data_load):
6673 don't align the header field.
6675 * dbus/dbus-auth.c: (process_test_subdir): print the
6678 * test/break-loader.c: (randomly_add_one_byte): upd. for
6681 * test/data/invalid-messages/bad-header-field-alignment.message:
6684 * test/data/valid-messages/unknown-header-field.message: shove
6685 a dict in the unknown field.
6687 2003-09-25 Seth Nickell <seth@gnome.org>
6690 * python/dbus_bindings.pyx.in:
6692 Handle return values.
6694 * python/examples/example-client.py:
6695 * python/examples/example-service.py:
6697 Pass back return values from the service to the client.
6699 2003-09-24 Seth Nickell <seth@gnome.org>
6703 Connect Object methods (when you are sharing an object) up... pass
6704 in a list of methods to be shared. Sharing all the methods just
6705 worked out too weird. You can now create nice Services over the
6708 * python/dbus_bindings.pyx.in:
6710 Keep references to user_data tuples passed into C functions so
6711 Python doesn't garbage collect on us.
6713 Implement MethodReturn and Error subclasses of Message for creating
6714 DBusMessage's of those types.
6716 * python/examples/example-client.py:
6717 * python/examples/example-service.py:
6719 Simple example code showing both how create DBus services and objects,
6720 and how to use them.
6722 2003-09-23 Havoc Pennington <hp@pobox.com>
6724 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6726 2003-09-23 Havoc Pennington <hp@redhat.com>
6728 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6729 (dbus_gproxy_disconnect_signal): implement
6730 (dbus_gproxy_manager_remove_signal_match): implement
6731 (dbus_gproxy_manager_add_signal_match): implement
6732 (dbus_gproxy_oneway_call): implement
6734 2003-09-23 Havoc Pennington <hp@pobox.com>
6736 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6737 subclass. This means dropping the transparent thread safety of the
6738 proxy; you now need a separate proxy per-thread, or your own
6739 locking on the proxy. Probably right anyway.
6740 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6742 2003-09-22 Havoc Pennington <hp@redhat.com>
6744 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6746 2003-09-21 Seth Nickell <seth@gnome.org>
6748 First checkin of the Python bindings.
6750 * python/.cvsignore:
6751 * python/Makefile.am:
6752 * python/dbus_bindings.pyx.in:
6753 * python/dbus_h_wrapper.h:
6755 Pieces for Pyrex to operate on, building a dbus_bindings.so
6756 python module for low-level access to the DBus APIs.
6760 High-level Python module for accessing DBus objects.
6765 Build stuff for the python bindings.
6769 Extra macro needed for finding the Python C header files.
6771 2003-09-21 Havoc Pennington <hp@pobox.com>
6773 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
6774 implementing the proxy manager, didn't get very far.
6776 * dbus/dbus-bus.c (dbus_bus_add_match): new
6777 (dbus_bus_remove_match): new
6779 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
6780 path_name argument; adjust the other not-yet-implemented
6781 gproxy constructors to be what I think they should be.
6783 2003-09-21 Havoc Pennington <hp@pobox.com>
6785 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
6786 by default for message bus connections.
6788 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
6789 exit_on_disconnect flag is set and we process the disconnected
6791 (dbus_connection_set_exit_on_disconnect): new function
6793 2003-09-21 Havoc Pennington <hp@pobox.com>
6795 Get matching rules mostly working in the bus; only actually
6796 parsing the rule text remains. However, the client side of
6797 "signal connections" hasn't been started, this patch is only the
6800 * dbus/dispatch.c: fix for the matching rules changes
6802 * bus/driver.c (bus_driver_handle_remove_match)
6803 (bus_driver_handle_add_match): send an ack reply from these
6806 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
6807 arguments, reported by Seth Nickell
6809 * bus/config-parser.c (append_rule_from_element): support
6810 eavesdrop=true|false attribute on policies so match rules
6811 can be prevented from snooping on the system bus.
6813 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
6814 and "destination" in attribute names; fix some docs bugs;
6815 add eavesdrop=true|false attribute
6817 * bus/driver.c (bus_driver_handle_add_match)
6818 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
6821 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
6822 rid of broadcast service concept, signals are just always broadcast
6824 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
6825 mostly implement matching rules stuff (currently only exposed as signal
6828 2003-09-21 Mark McLoughlin <mark@skynet.ie>
6830 * doc/dbus-specification.sgml: Change the header field name
6831 to be an enum and update the rest of the spec to reference
6832 the fields using the conventinal name.
6834 * dbus/dbus-protocol.h: update to reflect the spec.
6836 * doc/TODO: add item to remove the 4 byte alignment requirement.
6838 * dbus/dbus-message.c: Remove the code to generalise the
6839 header/body length and serial number header fields as named
6840 header fields so we can reference field names using the
6842 (append_int_field), (append_uint_field), (append_string_field):
6843 Append the field name as a byte rather than four chars.
6844 (delete_int_or_uint_field), (delete_string_field): reflect the
6845 fact that the field name and typecode now occupy 4 bytes instead
6847 (decode_string_field), (decode_header_data): update to reflect
6848 protocol changes and move the field specific encoding from
6849 decode_string_field() back into decode_header_data().
6851 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
6852 Add utility to aid debugging.
6854 * dbus/dbus-message-builder.c:
6855 (append_string_field), (_dbus_message_data_load): Update to
6856 reflect protocol changes; Change the FIELD_NAME directive
6857 to HEADER_FIELD and allow it to take the field's conventional
6858 name rather than the actual value.
6860 * test/data/*/*.message: Update to use HEADER_FIELD instead
6861 of FIELD_NAME; Always align the header on an 8 byte boundary
6862 *before* updating the header length.
6864 2003-09-15 Havoc Pennington <hp@pobox.com>
6866 * dbus/dbus-pending-call.c: add the get/set object data
6867 boilerplate as for DBusConnection, etc. Use generic object data
6868 for the notify callback.
6870 * glib/dbus-gparser.c (parse_node): parse child nodes
6872 * tools/dbus-viewer.c: more hacking on the dbus-viewer
6874 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
6875 contain functions shared between the convenience lib and the
6878 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
6879 -export-symbols-regex to the GLib library
6881 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
6882 fix the locking in here, and add a default handler for
6883 Introspect() that just returns sub-nodes.
6885 2003-09-14 Havoc Pennington <hp@pobox.com>
6887 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
6888 rather than gfoo consistent
6890 * glib/dbus-gproxy.h: delete for now, move contents to
6891 dbus-glib.h, because the include files don't work right since we
6892 aren't in the dbus/ subdir.
6894 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
6895 (dbus_gproxy_end_call): finish
6896 (dbus_gproxy_begin_call): finish
6898 * glib/dbus-gmain.c (dbus_set_g_error): new
6900 * glib/dbus-gobject.c (handle_introspect): include information
6901 about child nodes in the introspection
6903 * dbus/dbus-connection.c (dbus_connection_list_registered): new
6904 function to help in implementation of introspection
6906 * dbus/dbus-object-tree.c
6907 (_dbus_object_tree_list_registered_and_unlock): new function
6909 2003-09-12 Havoc Pennington <hp@pobox.com>
6911 * glib/dbus-gidl.h: add common base class for all the foo_info
6914 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
6917 * test/Makefile.am: try test srcdir -ef . in addition to test
6918 srcdir = ., one of them should work (yeah lame)
6920 * glib/Makefile.am: build the "idl" parser stuff as a convenience
6923 * glib/dbus-gparser.h: make description_load routines return
6924 NodeInfo* not Parser*
6926 * Makefile.am (SUBDIRS): build test dir after all library dirs
6928 * configure.in: add GTK+ detection
6930 2003-09-07 Havoc Pennington <hp@pobox.com>
6932 * Make Doxygen contented.
6934 2003-09-07 Havoc Pennington <hp@pobox.com>
6936 * doc/dbus-specification.sgml: more updates
6938 2003-09-06 Havoc Pennington <hp@pobox.com>
6940 * doc/dbus-specification.sgml: partial updates
6942 * bus/dbus-daemon-1.1.in: fix the config file docs for the
6943 zillionth time; hopefully I edited the right file this time.
6945 * bus/config-parser.c (append_rule_from_element): support
6946 send_type, send_path, receive_type, receive_path
6948 * bus/policy.c: add message type and path to the list of things
6949 that can be "firewalled"
6951 2003-09-06 Havoc Pennington <hp@pobox.com>
6953 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
6954 (dbus_connection_register_object_path): make this not handle
6955 messages to paths below the given path
6957 2003-09-03 Havoc Pennington <hp@pobox.com>
6959 * test/glib/Makefile.am: add this with random glib-linked test
6962 * glib/Makefile.am: remove the random test programs from here,
6963 leave only the unit tests
6965 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
6966 uscore/javacaps conversion, and fix
6967 (get_object_property, set_object_property): change to .NET
6968 convention for mapping props to methods, set_FooBar/get_FooBar,
6969 since one language has such a convention we may as well copy it.
6970 Plus real methods in either getFooBar or get_foo_bar style won't
6971 collide with this convention.
6973 2003-09-01 Havoc Pennington <hp@pobox.com>
6975 * glib/dbus-gparser.c: implement
6977 * glib/dbus-gobject.c: start implementing skeletons support
6979 * configure.in: when disabling checks/assert, also define
6980 G_DISABLE_ASSERT and G_DISABLE_CHECKS
6982 2003-09-01 Havoc Pennington <hp@pobox.com>
6984 * glib/Makefile.am: rearrange a bunch of files and get "make
6985 check" framework set up
6987 2003-08-31 Havoc Pennington <hp@pobox.com>
6989 * fix build with --disable-tests
6991 2003-08-30 Havoc Pennington <hp@pobox.com>
6993 * dbus/dbus-connection.c: purge DBusMessageHandler
6995 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
6996 use callbacks everywhere
6998 2003-08-30 Havoc Pennington <hp@pobox.com>
7000 * test/data/valid-config-files/system.d/test.conf: change to
7001 root for the user so warnings don't get printed
7003 * dbus/dbus-message.c: add dbus_message_get_path,
7004 dbus_message_set_path
7006 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7007 dispatching to a path
7009 * dbus/dbus-string.c (_dbus_string_validate_path): add
7011 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7012 (_dbus_marshal_object_path): implement
7014 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
7015 to contain the path to the target object
7016 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7017 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7019 2003-08-30 Havoc Pennington <hp@pobox.com>
7021 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7023 2003-08-29 Havoc Pennington <hp@pobox.com>
7025 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7027 (struct DBusObjectSubtree): shrink this
7028 a lot, since we may have a lot of them
7029 (_dbus_object_tree_free_all_unlocked): implement
7030 (_dbus_object_tree_dispatch_and_unlock): implement
7032 2003-08-29 Havoc Pennington <hp@pobox.com>
7034 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7036 2003-08-28 Havoc Pennington <hp@pobox.com>
7040 * dbus/dbus-connection.c: port to no ObjectID, create a
7041 DBusObjectTree, rename ObjectTree to ObjectPath in public API
7043 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
7044 everything except UnregisterFunction and MessageFunction
7046 * dbus/dbus-marshal.c: port away from DBusObjectID,
7047 add DBUS_TYPE_OBJECT_PATH
7049 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
7050 dbus/dbus-objectid.[hc]: remove these, we are moving to
7051 path-based object IDs
7053 2003-08-25 Havoc Pennington <hp@pobox.com>
7055 Just noticed that dbus_message_test is hosed, I wonder when I
7056 broke that. I thought make check was passing earlier...
7058 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
7059 container tree, will replace most of dbus-object-registry
7061 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7064 2003-08-19 Havoc Pennington <hp@pobox.com>
7066 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7067 (dbus_message_is_error): fix this function
7069 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7072 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7073 reflect clarified man page
7074 (bus_client_policy_check_can_send): ditto
7076 * bus/session.conf.in: fixup
7078 * bus/system.conf.in: fixup
7080 2003-08-18 Havoc Pennington <hp@redhat.com>
7082 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7084 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7085 dumb bug created earlier (wrong order of args to
7086 decode_header_data())
7088 * tools/dbus-send.c: port
7090 * tools/dbus-print-message.c (print_message): port
7092 * test/data/*messages: port all messages over
7094 * dbus/dbus-message-builder.c: support including
7097 * bus/driver.c: port over
7099 * bus/dispatch.c: port over to new stuff
7101 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7102 rename disconnect signal to "Disconnected"
7104 2003-08-17 Havoc Pennington <hp@pobox.com>
7106 This doesn't compile yet, but syncing up so I can hack on it from
7107 work. What are branches for if not broken code? ;-)
7109 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7110 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7111 DBUS_HEADER_FIELD_ERROR_NAME
7113 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7114 for the interface+member pairs
7115 (string_hash): change to use g_str_hash algorithm
7116 (find_direct_function, find_string_function): refactor these to
7119 * dbus/dbus-message.c: port all of this over to support
7120 interface/member fields instead of name field
7122 * dbus/dbus-object-registry.c: port over
7124 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7125 from _dbus_string_validate_name
7127 * bus/dbus-daemon-1.1: change file format for the
7128 <deny>/<allow> stuff to match new message naming scheme
7130 * bus/policy.c: port over
7132 * bus/config-parser.c: parse new format
7134 2003-08-16 Havoc Pennington <hp@pobox.com>
7136 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7139 * glib/dbus-gproxy.c: some hacking
7141 2003-08-15 Havoc Pennington <hp@redhat.com>
7143 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7145 * dbus/dbus-connection.c
7146 (dbus_connection_send_with_reply_and_block): factor out internals;
7147 change to convert any error replies to DBusError instead of
7148 returning them as a message
7150 2003-08-15 Havoc Pennington <hp@pobox.com>
7152 * dbus/dbus-connection.c,
7153 dbus/dbus-pending-call.c: Finish the pending call stuff
7155 2003-08-14 Havoc Pennington <hp@redhat.com>
7157 * dbus/dbus-pending-call.c: start on new object that will replace
7158 DBusMessageHandler and ReplyHandlerData for tracking outstanding
7161 * dbus/dbus-gproxy.c: start on proxy object used to communicate
7162 with remote interfaces
7164 * dbus/dbus-gidl.c: do the boring boilerplate in here
7166 2003-08-12 Havoc Pennington <hp@pobox.com>
7168 * bus/dispatch.c (bus_dispatch): make this return proper
7169 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7171 * dbus/dbus-errors.c (dbus_set_error): use
7172 _dbus_string_append_printf_valist
7174 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7175 (_dbus_string_append_printf): new
7177 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7180 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7181 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7182 message is unhandled.
7184 2003-08-11 Havoc Pennington <hp@pobox.com>
7186 * bus/test.c (client_disconnect_handler): change to return
7187 HANDLED (would have been REMOVE_MESSAGE)
7189 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7190 HANDLED/NOT_YET_HANDLED instead of
7191 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
7194 2003-08-10 Havoc Pennington <hp@pobox.com>
7196 * tools/dbus-send.c (main): add --type argument, for now
7197 supporting only method_call and signal types.
7199 * tools/dbus-print-message.c: print message type
7201 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7202 init connection->objects
7204 * doc/dbus-specification.sgml: fix sgml
7206 * bus/*.c: port over to object-instance API changes
7208 * test/test-service.c: ditto
7210 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7211 name, we will have to fix up the rest of the code to also handle
7213 (dbus_message_new): generic message-creation call
7214 (set_string_field): allow appending name field
7216 2003-08-06 Havoc Pennington <hp@pobox.com>
7218 * dbus/dbus-object-registry.c: implement signal connection
7221 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7223 * dbus/dbus-internals.c (_dbus_memdup): new function
7225 2003-08-02 Havoc Pennington <hp@pobox.com>
7227 * dbus/dbus-message.c (dbus_message_get_no_reply)
7228 (dbus_message_set_no_reply): add these and remove
7229 set_is_error/get_is_error
7231 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
7232 remove the ERROR flag, since there's now an ERROR type
7234 2003-08-01 Havoc Pennington <hp@pobox.com>
7236 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7239 * dbus/dbus-message.c (dbus_message_get_type): new function
7241 * doc/dbus-specification.sgml: add "type" byte to messages
7243 2003-08-01 Havoc Pennington <hp@pobox.com>
7245 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7246 a message type enum to distinguish kinds of message
7247 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
7248 that need not be replied to
7250 2003-08-01 Havoc Pennington <hp@pobox.com>
7252 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7253 (unpack_8_octets): fix no-64-bit-int bug
7255 * dbus/dbus-object-registry.c (validate_id): validate the
7256 connection ID bits, not just the instance ID.
7258 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7259 the connection-global 33 bits of the object ID
7261 * dbus/dbus-object-registry.c (info_from_entry): fill in
7262 object ID in the new way
7264 * dbus/dbus-objectid.h: rather than high/low bits, specifically
7265 define server/client/instance bits.
7267 2003-07-30 Havoc Pennington <hp@pobox.com>
7269 * dbus/dbus-connection.c (dbus_connection_register_object): fix
7272 2003-07-13 Havoc Pennington <hp@pobox.com>
7274 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7275 fields to DBusObjectVTable and DBusObjectInfo
7277 2003-07-12 Havoc Pennington <hp@pobox.com>
7279 * dbus/dbus-object-registry.c: implement unit test,
7280 fix bugs discovered in process
7282 * dbus/dbus-connection.c: remove handler_table and
7283 register_handler(), add DBusObjectRegistry usage
7285 * dbus/dbus-objectid.c (dbus_object_id_is_null)
7286 (dbus_object_id_set_null): new functions
7288 2003-07-08 Havoc Pennington <hp@pobox.com>
7290 * dbus/dbus-object.c: implement some of this
7292 * dbus/dbus-object-registry.c
7293 (_dbus_object_registry_add_and_unlock): fill in the object_id out
7295 (_dbus_object_registry_new): handle OOM
7297 2003-07-08 Havoc Pennington <hp@pobox.com>
7299 * dbus/dbus-object.h: sketch out an API for registering objects
7300 with a connection, that allows us to use as little as 24 bytes
7301 per object and lets application code represent an object in
7302 any conceivable way.
7304 * dbus/dbus-object-registry.c: implement the hard bits of the
7305 DBusConnection aspect of object API. Not yet wired up.
7307 2003-07-06 Havoc Pennington <hp@pobox.com>
7309 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7310 (_dbus_marshal_object_id): new
7311 (_dbus_demarshal_object_id): new
7312 (_dbus_marshal_get_arg_end_pos): support object ID type, and
7313 consolidate identical switch cases. Don't conditionalize handling
7314 of DBUS_TYPE_UINT64, need to handle the type always.
7315 (_dbus_marshal_validate_arg): consolidate identical cases, and
7316 handle DBUS_TYPE_OBJECT_ID
7318 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7320 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7322 2003-09-28 Havoc Pennington <hp@pobox.com>
7326 2003-09-28 Havoc Pennington <hp@pobox.com>
7328 * doc/Makefile.am (dbus-specification.html): testing a funky hack
7329 to work with Debian db2html
7331 2003-09-28 Havoc Pennington <hp@pobox.com>
7333 * configure.in: 0.13
7335 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7336 stylesheet-images for benefit of Debian
7338 Change back to using filesystem-linked sockets for the system
7339 bus, so only root can create the default system bus address.
7341 * bus/system.conf.in: change to use
7342 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7344 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7347 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7348 here, and AC_DEFINE DBUS_SYSTEM_PATH
7350 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7353 * doc/busconfig.dtd:
7356 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7358 * doc/dbus-specification.sgml:
7359 Add activation reply values.
7361 2003-08-05 Havoc Pennington <hp@redhat.com>
7363 * configure.in: 0.12
7365 2003-08-05 Anders Carlsson <andersca@codefactory.se>
7367 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7368 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7369 (add_watch), (remove_watch), (create_source):
7370 Refcount fds, fixes some reentrancy issues.
7372 2003-07-30 Havoc Pennington <hp@redhat.com>
7374 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7375 bus address to be abstract if we have abstract sockets
7379 2003-07-28 Havoc Pennington <hp@redhat.com>
7381 * bus/messagebus.in: fix to avoid processname/servicename
7382 confusion, from Michael Kearey
7383 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7385 2003-07-23 Havoc Pennington <hp@pobox.com>
7387 * dbus/dbus-message.c (dbus_message_iter_get_named):
7388 fix from Andy Hanton to remove broken "+1"
7390 2003-07-16 Havoc Pennington <hp@pobox.com>
7392 * tools/dbus-launch.c (babysit): close stdout/stderr in the
7393 babysitter process, as suggested by Thomas Leonard, so
7394 an "eval `dbus-launch --exit-with-session`" will actually
7397 2003-07-16 Havoc Pennington <hp@pobox.com>
7399 * configure.in: print out EXPANDED_* variables in the summary at
7400 the end; clean up the code that computes EXPANDED_ variables and
7401 get the ones using exec_prefix right. Should make things work
7402 when you build without --prefix
7404 2003-06-29 Havoc Pennington <hp@pobox.com>
7406 * mono/Test.cs (class Test): fire up a main loop and run it
7408 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7409 done once, the app has to do it
7411 2003-06-26 Havoc Pennington <hp@pobox.com>
7413 * mono/Connection.cs: set up connection with the glib main loop
7415 2003-07-01 Havoc Pennington <hp@redhat.com>
7417 * doc/dbus-specification.sgml: clarify the format of a type code,
7418 change suggested by Jim Blandy
7420 2003-06-29 Miloslav Trmac <mitr@volny.cz>
7423 * tools/Makefile.am: Don't assume srcdir == builddir.
7425 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7426 the allocated block.
7427 (_dbus_memory_test): New function.
7428 * dbus/dbus-test.h: Add _dbus_memory_test ().
7429 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7431 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7433 (dbus_message_new): Remove obsolete @todo.
7435 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7436 (_dbus_marshal_set_uint64): Fix comment.
7438 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7439 hardcode FIELD_REPLY_SERIAL.
7441 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7442 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7444 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7445 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7447 2003-06-24 Havoc Pennington <hp@pobox.com>
7449 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7451 2003-06-23 Anders Carlsson <andersca@codefactory.se>
7457 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7458 * gcj/org/.cvsignore:
7459 * gcj/org/Makefile.am:
7460 * gcj/org/freedesktop/.cvsignore:
7461 * gcj/org/freedesktop/Makefile.am:
7462 * gcj/org/freedesktop/dbus/.cvsignore:
7463 * gcj/org/freedesktop/dbus/Makefile.am:
7464 * gcj/org/freedesktop/dbus/Message.java: (Message),
7466 * gcj/org/freedesktop/dbus/natMessage.cc:
7467 Fix the build system.
7469 2003-06-22 Havoc Pennington <hp@pobox.com>
7471 * mono/Connection.cs: add more bindings
7473 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7476 2003-06-22 Havoc Pennington <hp@pobox.com>
7478 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7479 Start wrapping more stuff.
7481 2003-06-22 Havoc Pennington <hp@pobox.com>
7483 * mono/Message.cs: implement Message.Wrap() that ensures we only
7484 have a single C# wrapper per DBusMessage, assuming it works which
7485 it probably doesn't.
7487 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7488 (dbus_message_free_data_slot): new
7489 (dbus_message_set_data): new
7490 (dbus_message_get_data): new
7492 2003-06-22 Havoc Pennington <hp@pobox.com>
7494 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7495 (_dbus_data_slot_allocator_alloc): rework these to keep a
7496 reference count on each slot and automatically manage a global
7497 slot ID variable passed in by address
7499 * bus/bus.c: convert to new dataslot API
7501 * dbus/dbus-bus.c: convert to new dataslot API
7503 * dbus/dbus-connection.c: convert to new dataslot API
7505 * dbus/dbus-server.c: convert to new dataslot API
7507 * glib/dbus-gmain.c: ditto
7511 * bus/connection.c: ditto
7513 2003-06-22 Anders Carlsson <andersca@codefactory.se>
7515 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7516 after the gcj checks so that the correct configuration tags
7517 will be added to libtool.
7519 * dbus-glib-1.pc.in: No need to specify any includes since
7520 dbus-1.pc.in has those.
7522 2003-06-22 Havoc Pennington <hp@pobox.com>
7524 * mono/*, gcj/*, configure.in, Makefile.am:
7525 Check in makefiles and subdirs for mono and gcj bindings.
7526 Neither binding actually exists, just trying to get through
7527 all the build and other boring bits.
7529 2003-06-21 Philip Blundell <philb@gnu.org>
7531 * tools/dbus-monitor.1: Updated.
7533 * tools/dbus-send.1: Likewise.
7535 2003-06-20 Anders Carlsson <andersca@codefactory.se>
7537 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7538 for hangup and error after checking read so we won't discard
7539 pending data if both hangup and read are set.
7541 2003-06-19 Philip Blundell <philb@gnu.org>
7543 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7545 * tools/dbus-send.c: Accept both --system and --session.
7547 * tools/dbus-monitor.c: Same here.
7549 2003-06-19 Anders Carlsson <andersca@codefactory.se>
7551 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7552 from C++ (Patch by Miloslav Trmac).
7554 2003-06-15 Joe Shaw <joe@assbarn.com>
7556 * configure.in: Check for socklen_t.
7558 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7560 * test/test-segfault.c: Add #include <sys/time.h>
7562 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7563 dbus-launch needs it.
7565 2003-06-09 Havoc Pennington <hp@redhat.com>
7567 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7568 SUN_LEN, it breaks abstract socket usage
7570 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7573 2003-06-04 Havoc Pennington <hp@pobox.com>
7575 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7576 using unix:abstract=/foo, and when listening in a tmpdir
7577 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7579 * dbus/dbus-transport.c (_dbus_transport_open): support
7582 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7583 support abstract sockets
7585 * dbus/dbus-transport-unix.c
7586 (_dbus_transport_new_for_domain_socket): support abstract sockets
7588 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7589 toggle as an argument, implement abstract namespace support
7590 (_dbus_listen_unix_socket): ditto
7592 * configure.in: add --enable-abstract-sockets and implement
7593 a configure check for autodetection of the right value.
7595 2003-06-01 Havoc Pennington <hp@pobox.com>
7597 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7598 in /tmp (though on Linux this will end up being useless,
7599 when we add abstract namespace support)
7601 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7604 2003-05-28 Colin Walters <walters@verbum.org>
7606 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7608 2003-05-18 Anders Carlsson <andersca@codefactory.se>
7610 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7612 2003-05-17 Colin Walters <walters@gnu.org>
7614 * tools/dbus-send.c: Don't exit with an error code if --help was
7615 passed. Default to using the session bus instead of the system
7618 * tools/dbus-launch.c: Ditto.
7620 * tools/dbus-monitor.c: Ditto.
7622 * tools/dbus-send.1: Update with new arguments.
7624 * tools/dbus-launch.c: Emit code to export variables. New
7625 arguments -s and -c to specify shell syntax, and a bit of code to
7626 autodetect syntax. Also, allow specifying a program to run.
7628 * tools/dbus-launch.1: Update with new arguments.
7630 * tools/dbus-send.1: Ditto.
7632 * tools/dbus-monitor.1: Ditto.
7634 2003-05-17 Havoc Pennington <hp@pobox.com>
7636 * bus/config-parser.c (merge_included): merge in policies from
7637 child configuration file.
7639 * bus/policy.c (bus_policy_merge): function to merge two policies
7642 2003-05-16 Havoc Pennington <hp@redhat.com>
7644 * dbus/dbus-connection.c: disable verbose lock spew
7646 * tools/dbus-send.c: add --print-reply command line option
7648 * tools/dbus-print-message.h (print_message): new util function
7649 shared by dbus-send and dbus-monitor
7651 * tools/dbus-monitor.c (handler_func): exit on disconnect
7653 * dbus/dbus-transport-unix.c (do_reading): if the transport is
7654 disconnected, don't try to use the read_watch
7656 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7657 so we can find this bug more easily
7659 2003-05-16 Havoc Pennington <hp@redhat.com>
7661 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7662 NULL as DBusHashTable is annoyingly likely to do.
7664 2003-05-16 Colin Walters <walters@verbum.org>
7666 * tools/dbus-monitor.c: Add --session argument and usage()
7669 * tools/dbus-monitor.1: Update with new --session arg.
7671 * bus/Makefile.am (install-data-hook): Create
7672 $(libdir)/dbus-1.0/services so that the session bus is happy.
7674 2003-05-15 Havoc Pennington <hp@redhat.com>
7676 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7677 on non-x86. ifdef's are evil.
7679 2003-05-15 Havoc Pennington <hp@redhat.com>
7681 * configure.in: 0.11
7685 * bus/Makefile.am (initddir): apparently we are supposed to put
7686 init scripts in /etc/rc.d/init.d not /etc/init.d
7688 * bus/Makefile.am: remove the "you must --enable-tests to make
7689 check" as it broke distcheck
7691 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7693 2003-05-13 James Willcox <jwillcox@gnome.org>
7696 * bus/activation.c: (bus_activation_service_created),
7697 (bus_activation_activate_service):
7698 * bus/driver.c: (bus_driver_send_service_deleted),
7699 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7700 (bus_driver_send_service_acquired),
7701 (bus_driver_send_welcome_message),
7702 (bus_driver_handle_list_services):
7703 * bus/session.conf.in:
7704 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7705 (dbus_bus_service_exists), (dbus_bus_activate_service):
7708 Add some convenience API which lets you activate a service, and did a
7709 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7710 and dbus_message_get_args()
7712 2003-05-11 Havoc Pennington <hp@pobox.com>
7714 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7715 calling _dbus_marshal_validate_arg() for every byte in a byte
7718 * dbus/dbus-message-handler.c: use atomic reference counting to
7719 reduce number of locks slightly; the global lock in here sucks
7721 * dbus/dbus-connection.c
7722 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7723 update_dispatch_status that can be called with lock held; then use
7724 in a couple places to reduce locking/unlocking
7725 (dbus_connection_send): hold the lock over the whole function
7726 instead of acquiring it twice.
7728 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7730 * bus/connection.c (bus_connections_setup_connection): fix access
7731 to already-freed memory.
7733 * dbus/dbus-connection.c: keep a little cache of linked list
7734 nodes, to avoid using the global linked list alloc lock in the
7735 normal send-message case. Instead we just use the connection lock
7736 that we already have to take.
7738 * dbus/dbus-list.c (_dbus_list_find_last): new function
7740 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7741 change to use a struct for the atomic type; fix docs,
7742 they return value before increment, not after increment.
7744 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7745 (_dbus_string_append_8_aligned): new functions to try to
7746 microoptimize this operation.
7747 (reallocate_for_length): break this out of set_length(), to
7748 improve profile info, and also so we can consider inlining the
7751 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7752 strings with some preallocation, cuts down on our calls to realloc
7753 a fair bit. Though if we can get the "move entire string to empty
7754 string" optimization below to kick in here, it would be better.
7756 * dbus/dbus-string.c (_dbus_string_move): just call
7757 _dbus_string_move_len
7758 (_dbus_string_move_len): add a special case for moving
7759 an entire string into an empty string; we can just
7760 swap the string data instead of doing any reallocs.
7761 (_dbus_string_init_preallocated): new function
7763 2003-05-11 Havoc Pennington <hp@pobox.com>
7765 Write a "test-profile" that does echo client-server with threads;
7766 profile reveals lock contention, memcpy/realloc of buffers, and
7767 UTF-8 validation as hot spots. 20% of lock contention eliminated
7768 with dbus_atomic_inc/dec implementation on x86. Much remaining
7769 contention is global mempool locks for GList and DBusList.
7771 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
7774 * dbus/dbus-connection.c (struct DBusConnection): use
7775 dbus_atomic_t for the reference count
7777 * dbus/dbus-message.c (struct DBusMessage): declare
7778 dbus_atomic_t values as volatile
7780 * configure.in: code to detect ability to use atomic integer
7781 operations in assembly, from GLib patch
7783 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
7784 time, tired of it being wrong in threads and forked processes
7786 * glib/test-profile.c: a little program to bounce messages back
7787 and forth between threads and eat CPU
7789 * dbus/dbus-connection.c: add debug spew macros for debugging
7790 thread locks; include config.h at top; fix deadlock in
7791 dbus_connection_flush()
7793 2003-05-08 Havoc Pennington <hp@pobox.com>
7795 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
7796 data from getting written, and there wasn't a good reason to
7799 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
7800 dbus_verbose lines in test coverage
7801 (main): add list of functions sorted by # of untested blocks
7802 to the coverage report
7804 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
7806 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
7808 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
7809 extend test coverage
7811 * test/data/auth/cancel.auth-script: test canceling an
7814 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
7815 aren't used. in CVS history if we end up needing them.
7817 2003-05-04 Havoc Pennington <hp@pobox.com>
7819 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
7822 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
7823 function, which assumed length was in # of strings, not bytes
7825 * dbus/dbus-message.c (_dbus_message_test): add tests for some
7828 * dbus/dbus-connection.c
7829 (_dbus_connection_queue_received_message): disable function for
7830 now, we are only using it in test mode
7832 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7833 remove a mistaken FIXME
7835 2003-05-04 Havoc Pennington <hp@pobox.com>
7837 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
7838 unlock mutex on successful return, patch from Anders Gustafsson
7840 2003-05-04 Havoc Pennington <hp@pobox.com>
7842 * dbus-glib-1.pc.in (Requires): fix dependencies, from
7845 2003-05-04 Havoc Pennington <hp@pobox.com>
7847 * tools/dbus-launch.c: implement
7849 * bus/main.c (main), bus/bus.c (bus_context_new):
7850 implement --print-pid and --fork
7852 2003-05-03 Havoc Pennington <hp@redhat.com>
7854 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
7855 the address had no value, and add to test suite. Fix and
7856 regression test from Miloslav Trmac
7858 2003-05-03 Havoc Pennington <hp@pobox.com>
7860 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
7861 watch is invalid when handled
7863 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
7864 dbus-launch utility to launch the bus from a shell script. Didn't
7865 actually implement dbus-launch yet, it's just a placeholder still.
7867 2003-05-03 Havoc Pennington <hp@pobox.com>
7869 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
7870 daemon; also documents daemon config file, so replaces
7871 doc/config-file.txt. Corrected some stuff from config-file.txt in
7872 the process of moving it.
7874 2003-05-03 Havoc Pennington <hp@pobox.com>
7876 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
7879 2003-05-03 Colin Walters <walters@verbum.org>
7881 * dbus/dbus-sysdeps.c (fill_user_info): Test against
7882 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
7884 * Makefile.am: Update to use new .pc versioning scheme.
7886 2003-05-02 Havoc Pennington <hp@redhat.com>
7888 * bus/system.conf.in: allow send/receive to/from message bus
7891 2003-04-30 Havoc Pennington <hp@redhat.com>
7893 * configure.in: print a note when building with unit tests and
7896 2003-04-30 Havoc Pennington <hp@redhat.com>
7898 * Makefile.am: add a check-local that complains if you didn't
7899 configure with --enable-tests
7901 2003-04-29 Havoc Pennington <hp@redhat.com>
7903 * glib/dbus-gmain.c: docs cleanups
7905 * dbus/dbus-types.h: add docs on int64 types
7907 * dbus/dbus-memory.c: fix docs to avoid putting private API in
7908 public API docs section
7910 2003-04-29 Havoc Pennington <hp@redhat.com>
7912 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
7913 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
7914 parallel install API version, not with the D-BUS package version.
7916 * HACKING: move some of README over here
7918 * README: updates, and document API/ABI policy
7920 * configure.in: reindentation
7922 2003-04-29 Havoc Pennington <hp@redhat.com>
7924 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
7925 to use this library" to be sure people have the right
7928 2003-04-28 Havoc Pennington <hp@redhat.com>
7930 * configure.in: add --enable-docs which by default is auto yes if
7931 doxygen and db2html found, no otherwise; but can be forced on/off
7933 * doc/Makefile.am: conditionalize whether to build docs on
7936 2003-04-28 Havoc Pennington <hp@redhat.com>
7938 * configure.in: 0.10
7942 * bus/system.conf.in: add <includedir>system.d</includedir>
7944 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
7945 username was provided but not uid
7947 * bus/config-parser.c (struct BusConfigParser): keep track of
7948 whether the parser is toplevel or was included; change some
7949 of the error handling if it's included.
7951 2003-04-27 Havoc Pennington <hp@pobox.com>
7955 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
7956 report correct status if we finish processing authentication
7957 inside this function.
7959 * bus/activation.c (try_send_activation_failure): use
7960 bus_transaction_send_error_reply
7962 * bus/connection.c (bus_connection_get_groups): return an error
7963 explaining the problem
7965 * bus/bus.c (bus_context_check_security_policy): implement
7966 restriction here that inactive connections can only send the
7967 hello message. Also, allow bus driver to send anything to
7970 * bus/connection.c (bus_connection_complete): create the
7971 BusClientPolicy here instead of on-demand.
7972 (bus_connection_get_policy): don't return an error
7974 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
7975 sender field in message being replied to
7977 * bus/bus.c (bus_context_check_security_policy): fix silly typo
7978 causing it to return FALSE always
7980 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
7981 we checked sender rather than destination
7983 2003-04-25 Havoc Pennington <hp@redhat.com>
7985 test suite is slightly hosed at the moment, will fix soon
7987 * bus/connection.c (bus_connections_expire_incomplete): fix to
7988 properly disable the timeout when required
7989 (bus_connection_set_name): check whether we can remove incomplete
7990 connections timeout after we complete each connection.
7992 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
7993 probably still broken.
7995 * bus/services.c (bus_registry_acquire_service): implement max
7996 number of services owned, and honor allow/deny rules on which
7997 services a connection can own.
7999 * bus/connection.c (bus_connection_get_policy): report errors here
8001 * bus/activation.c: implement limit on number of pending
8004 2003-04-25 Havoc Pennington <hp@redhat.com>
8006 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8007 where we used >= 0 instead of != DBUS_UID_UNSET.
8009 2003-04-25 Havoc Pennington <hp@redhat.com>
8011 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8012 were toggled without add/remove, fix from Anders Gustafsson
8014 2003-04-24 Havoc Pennington <hp@redhat.com>
8016 * test/data/valid-config-files/basic.conf: add <limit> tags to
8019 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8020 <limit> tag in configuration file.
8022 2003-04-24 Havoc Pennington <hp@redhat.com>
8024 * bus/dispatch.c: somehow missed some name_is
8026 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8027 (_dbus_timeout_set_interval): new
8029 * bus/connection.c (bus_connections_setup_connection): record time
8030 when each connection is first set up, and expire them after the
8031 auth timeout passes.
8033 2003-04-24 Havoc Pennington <hp@redhat.com>
8035 * dbus/dbus-message.c (dbus_message_name_is): rename
8036 (dbus_message_service_is): rename
8037 (dbus_message_sender_is): rename
8038 (dbus_message_get_service): rename
8040 2003-04-24 Havoc Pennington <hp@redhat.com>
8042 * configure.in: add --enable-checks
8044 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8046 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8047 to use thread locks.
8048 (_dbus_connection_handler_destroyed_locked): move some private
8049 functions into proper docs group
8051 * dbus/dbus-internals.h: add _dbus_return_if_fail,
8052 _dbus_return_val_if_fail
8054 Throughout: use dbus_return_if_fail
8056 2003-04-23 James Willcox <jwillcox@gnome.org>
8059 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8060 (dbus_connection_setup_with_g_main),
8061 (dbus_server_setup_with_g_main):
8062 * glib/test-dbus-glib.c: (main):
8063 * glib/test-thread-client.c: (main):
8064 * glib/test-thread-server.c: (new_connection_callback), (main):
8065 * tools/dbus-monitor.c: (main):
8067 Added a GMainContext argument to dbus_connection_setup_with_g_main()
8068 and dbus_server_setup_with_g_main().
8070 2003-04-20 Havoc Pennington <hp@pobox.com>
8072 * doc/dbus-specification.sgml: document the restrictions on
8073 message and service names
8075 2003-04-22 Havoc Pennington <hp@redhat.com>
8077 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8078 support, and do some code cleanups to share more code and
8079 speed up array marshal/demarshal.
8081 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8083 * configure.in: generate dbus-arch-deps.h
8085 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8088 2003-04-22 Havoc Pennington <hp@redhat.com>
8090 * test/data/valid-messages/opposite-endian.message: fix test
8091 to use proper type for rply field
8093 * test/data/invalid-messages: add tests for below validation
8095 * dbus/dbus-message.c (decode_header_data): validate field types,
8096 and validate that named fields are valid names
8097 (decode_name_field): consider messages in the
8098 org.freedesktop.Local. namespace to be invalid.
8100 * dbus/dbus-string.c (_dbus_string_validate_name): new
8102 2003-04-19 Havoc Pennington <hp@pobox.com>
8104 * bus/driver.c (bus_driver_handle_hello): check limits and
8105 return an error if they are exceeded.
8107 * bus/connection.c: maintain separate lists of active and inactive
8108 connections, and a count of each. Maintain count of completed
8109 connections per user. Implement code to check connection limits.
8111 * dbus/dbus-list.c (_dbus_list_unlink): export
8113 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8114 number of bytes in the message queue for a connection
8116 2003-04-18 Havoc Pennington <hp@pobox.com>
8118 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8120 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8123 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8124 on realloc be sure to update the pointer in the keyring
8126 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8127 offset to avoid writing to unallocated memory
8129 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8130 try the next mechanism, so we properly handle OOM
8132 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8134 (_dbus_keyring_new): fix OOM bug
8135 (_dbus_keyring_new_homedir): always set error; impose a maximum
8136 number of keys we'll load from the file, mostly to speed up the
8137 test suite and make its OOM checks more useful, but also for
8140 * dbus/dbus-auth.c (process_error_server): reject authentication
8141 if we get an error from the client
8142 (process_cancel): on cancel, send REJECTED, per the spec
8143 (process_error_client): send CANCEL if we get an error from the
8146 2003-04-18 Havoc Pennington <hp@pobox.com>
8148 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8151 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8154 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8155 about DBUS_TEST_HOMEDIR once
8157 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8160 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8161 config file so we test the right thing
8163 Throughout: assorted docs improvements
8165 2003-04-18 Havoc Pennington <hp@pobox.com>
8167 * glib/dbus-gmain.c: adapt to watch changes
8169 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8171 * dbus/dbus-server.h: remove dbus_server_handle_watch
8173 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8175 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8176 like DBusTimeout, so we don't need dbus_connection_handle_watch
8179 2003-04-17 Havoc Pennington <hp@redhat.com>
8181 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8182 database usage so it all goes via the DBusUserDatabase cache.
8184 2003-04-17 Havoc Pennington <hp@redhat.com>
8186 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8187 there was an OOM watch we skipped, we always return TRUE so we
8188 iterate again to have a look at it again. Fixes test suite hang.
8189 Code rearrangement also lets us lose some memset and only iterate
8190 over callbacks once.
8192 * bus/driver.c (bus_driver_handle_message): sense of test for
8195 2003-04-16 Havoc Pennington <hp@pobox.com>
8197 * doc/dbus-specification.sgml: make spec say serials are unsigned
8199 * dbus/dbus-message.h: change message serials to unsigned
8201 * dbus/dbus-connection.c: adapt to message serials being unsigned
8203 2003-04-15 Havoc Pennington <hp@pobox.com>
8205 * bus/bus.c: create and keep around a shared DBusUserDatabase
8208 * bus/connection.c (bus_connection_get_groups): don't cache
8209 groups for user in the connection object, since user database
8210 object now does that.
8212 2003-04-16 Havoc Pennington <hp@redhat.com>
8214 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8215 list of size counters
8216 (_dbus_message_loader_putback_message_link): put back a popped link
8218 * dbus/dbus-connection.c
8219 (dbus_connection_set_max_live_messages_size): rename
8221 (dbus_connection_get_outgoing_size): get size of outgoing
8223 (_dbus_connection_set_connection_counter): remove this cruft
8225 2003-04-14 Havoc Pennington <hp@redhat.com>
8227 * dbus/dbus-userdb.c: user database abstraction, mostly to get
8228 caching, but at some point we might want to be able to use a
8231 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8232 SHA1 conf file to test the sha1 auth mechanism, since the regular
8233 test always uses EXTERNAL when available.
8236 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8237 add conf file that requires use of sha1 auth
8239 2003-04-13 Havoc Pennington <hp@pobox.com>
8241 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8242 from Philip Blundell to send messages and monitor them.
8244 2003-04-13 Havoc Pennington <hp@pobox.com>
8246 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8249 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8252 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8253 fix to only recover unused bytes if we're already authenticated
8254 (_dbus_transport_get_is_authenticated): fix to still mark us
8255 authenticated if there are unused bytes.
8257 * bus/dispatch.c: implement security policy checking
8259 * bus/connection.c (bus_transaction_send_from_driver): new
8261 * bus/bus.c (bus_context_check_security_policy): new
8263 * bus/dispatch.c (send_service_nonexistent_error): delete this,
8264 now we just set the DBusError and it gets converted to an error
8267 * bus/connection.c (allow_user_function): enable code using actual
8268 data from the config file
8270 * bus/policy.c (list_allows_user): handle wildcard rules for
8271 user/group connection perms
8273 2003-04-13 Havoc Pennington <hp@pobox.com>
8275 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8277 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8279 * bus/policy.c (bus_policy_append_mandatory_rule)
8280 (bus_policy_append_default_rule, bus_policy_append_user_rule)
8281 (bus_policy_append_group_rule): new functions
8283 2003-04-12 Havoc Pennington <hp@pobox.com>
8285 * bus/config-parser.c (bus_config_parser_new): fix a memleak
8287 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8288 the pid/gid/uid, just for paranoia.
8290 * test/break-loader.c (randomly_do_n_things): find a byte
8291 containing a type code, and randomly change it to a different
8294 2003-04-12 Havoc Pennington <hp@pobox.com>
8296 * bus/policy.h: change BusPolicy to be the thing from the config
8297 file, and rename old BusPolicy to BusClientPolicy
8299 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8300 match change in how policy works
8302 * dbus/dbus-internals.h: mark assert_not_reached as
8303 __attribute((noreturn))__
8305 2003-04-11 Havoc Pennington <hp@redhat.com>
8307 * doc/dbus-specification.sgml: fix a spot with the wrong name for
8308 the broadcast service. Use boolean return for ServiceExists.
8310 2003-04-11 Havoc Pennington <hp@redhat.com>
8312 * configure.in: add another directory to look for qt in.
8314 2003-04-11 Havoc Pennington <hp@redhat.com>
8316 * AUTHORS: add Colin Walters
8318 2003-04-11 Havoc Pennington <hp@redhat.com>
8324 2003-04-11 Havoc Pennington <hp@redhat.com>
8326 * bus/messagebus.in: remove pid file when stopping the
8327 message bus, since the bus won't have privileges to remove it
8330 2003-04-11 Havoc Pennington <hp@redhat.com>
8332 * bus/bus.c (bus_context_new): move credentials change after
8335 2003-04-11 Havoc Pennington <hp@pobox.com>
8337 * test/decode-gcov.c: add "below average functions" to the
8338 coverage report, and change how some of the code works.
8340 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8341 not in the coverage stats.
8343 * test/test-service.c (main): use _dbus_verbose not fprintf in a
8344 couple places so running the test suite doesn't result in megaspam.
8346 2003-04-11 Havoc Pennington <hp@pobox.com>
8348 * bus/dispatch.c (check_existent_service_activation): accept a no
8349 memory error in a place we didn't before
8351 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8352 in case the first one failed," since the test suite is less
8355 2003-04-10 Havoc Pennington <hp@pobox.com>
8357 * bus/dispatch.c (check_segfault_service_activation): add test
8358 for launching an executable that just crashes.
8360 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8361 don't leave a million cores. We'll see how portable this is.
8363 2003-04-10 Havoc Pennington <hp@pobox.com>
8365 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8366 the possible parent failures before we fork, so that we don't
8367 fail to create a babysitter after creating the child.
8369 * bus/activation.c (bus_activation_activate_service): kill child
8370 if we don't successfully complete the activation.
8372 2003-04-10 Havoc Pennington <hp@redhat.com>
8374 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8375 the connection if it's disconnected
8377 * bus/activation.c (bus_activation_service_created): use new
8378 transaction features to roll back removal of pending activation if
8379 we don't successfully create the service after all. Don't remove
8380 pending activation if the function fails.
8382 * dbus/dbus-list.c (_dbus_list_insert_before_link)
8383 (_dbus_list_insert_after_link): new code to facilitate
8386 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8387 new functionality, so we can preallocate the ability to insert
8390 * bus/connection.c (bus_transaction_add_cancel_hook): new function
8391 allowing us to put custom hooks in a transaction to be used for
8392 cancelling said transaction
8394 * doc/dbus-specification.sgml: add some discussion of secondary
8395 service owners, and disallow zero-length service names
8397 * bus/services.c (bus_registry_acquire_service): new function,
8398 splits out part of bus_driver_handle_acquire_service() and fixes
8399 a bug where we didn't remove the service doing the acquiring
8400 from the secondary queue if we failed to remove the current owner
8401 from the front of the queue.
8403 2003-04-10 Alexander Larsson <alexl@redhat.com>
8405 * doc/dbus-specification.sgml:
8406 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8408 2003-04-10 Alexander Larsson <alexl@redhat.com>
8413 Added files to cvsignore
8415 * dbus/dbus-message.h:
8416 * dbus/dbus-message.c: (dbus_message_iter_get_named):
8417 Make get_named() take two out argument and return a boolean.
8418 (dbus_message_iter_get_args_valist):
8419 Update usage of get_named().
8420 (dbus_message_iter_append_byte):
8422 (dbus_message_iter_append_named)
8424 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8427 2003-04-10 Alexander Larsson <alexl@redhat.com>
8429 * dbus/dbus-marshal.[ch]:
8430 Add array_type_pos argument to _dbus_marshal_validate_arg.
8431 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8433 * dbus/dbus-message.[ch]:
8434 Multi-dimensional arrays have full type specification in the
8435 outermost array. Iter code re-arranged to handle this.
8436 Added some more iter tests.
8438 * doc/dbus-specification.sgml:
8441 Update new array encoding description.
8442 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8444 * test/data/invalid-messages/array-with-mixed-types.message:
8445 * test/data/valid-messages/array-of-array-of-uint32.message:
8446 Change to the new array format.
8448 * test/data/invalid-messages/too-short-dict.message:
8451 * test/data/valid-messages/recursive-types.message:
8452 Fix up and extend test.
8454 2003-04-10 Havoc Pennington <hp@pobox.com>
8456 * bus/dispatch.c: lots of fixes
8458 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8459 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8460 that was crack, broke the test service.
8462 * dbus/dbus-transport.c (_dbus_transport_open): fix error
8463 handling to avoid piling up errors if we get a failure on the
8466 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8467 pid in assertion failures.
8469 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8470 to some fixed size of file descriptor array. Don't return TRUE
8471 anytime a timeout exists, that led to lots of busy loop silliness
8474 2003-04-09 Havoc Pennington <hp@redhat.com>
8476 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8477 I'd checked this in earlier but hadn't.
8479 2003-04-09 Havoc Pennington <hp@redhat.com>
8481 * bus/dispatch.c (bus_dispatch_test): get a bit further through
8482 the activation test (man this is getting old!)
8484 2003-04-09 Havoc Pennington <hp@redhat.com>
8486 * test/test-utils.c: use dispatch status function to fix this up
8488 * bus/connection.c (connection_watch_callback): don't dispatch
8490 (connection_timeout_callback): don't dispatch from here
8491 (bus_connections_setup_connection): set the dispatch status function
8492 (bus_connection_disconnected): unset it
8494 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8495 used to add a connection to be dispatched
8496 (_dbus_loop_iterate): do the dispatching at the end of each
8499 * dbus/dbus-connection.c
8500 (dbus_connection_set_dispatch_status_function): new function
8501 allowing us to fix up main loop usage
8502 (_dbus_connection_last_unref): free all the various function
8504 (dbus_connection_dispatch): call the DispatchStatusFunction
8505 whenever this function returns
8506 (dbus_connection_handle_watch): call DispatchStatusFunction
8507 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8508 (reply_handler_timeout): call DispatchStatusFunction
8509 (dbus_connection_flush): call DispatchStatusFunction
8511 2003-04-09 Havoc Pennington <hp@redhat.com>
8513 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8516 * bus/dispatch.c (check_service_activated): fix bug in test
8518 * dbus/dbus-mainloop.c (check_timeout): fix this up
8520 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8521 verbose output so we can sort out output from different processes,
8522 e.g. in the activation case.
8524 2003-04-08 Colin Walters <walters@gnu.org>
8526 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8528 (bus_context_new): Set it.
8529 (bus_context_unref): Use it to delete the pid file.
8531 2003-04-08 Havoc Pennington <hp@redhat.com>
8533 * test/data/invalid-messages/array-with-mixed-types.message:
8534 regression test that fails for the moment
8536 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8537 tests for convenience
8539 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8540 array of nil, it broke things.
8542 * test/data/invalid-messages/array-of-nil.message: regression test
8544 * test/data/valid-messages/array-of-array-of-uint32.message:
8545 happened to write this so added it to suite
8547 2003-04-08 Havoc Pennington <hp@redhat.com>
8549 * bus/driver.c (bus_driver_handle_acquire_service): init
8550 retval/reply before checking name
8552 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8553 recursion depth argument
8555 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8556 in the public struct for future extension
8558 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8561 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8564 * doc/dbus-specification.sgml: fix typo
8566 2003-04-08 Alexander Larsson <alexl@redhat.com>
8568 Implemented recursive types, named types and new-style iters
8571 * glib/test-thread-client.c: (thread_func):
8572 * glib/test-thread-server.c: (handle_test_message):
8573 * test/test-service.c: (handle_echo):
8582 * dbus/dbus-internals.c: (_dbus_type_to_string):
8583 Update for new types.
8585 * dbus/dbus-marshal.[ch]:
8586 Implement recursive types and the new marshalling format.
8587 Remove hardcoded dict marshalling.
8588 Marshal named types.
8590 * dbus/dbus-message-builder.c:
8592 Remove references to old types
8594 * dbus/dbus-message.[ch]:
8595 New non-refcounted iter API that supports recursive iters.
8596 Use iters for appending, including support for recursive
8598 Add byte and named type support.
8599 Update everything to new marshalling formats.
8600 Add tests for new API.
8602 * dbus/dbus-protocol.h:
8603 Remove old array types.
8604 Add types: BYTE, ARRAY, DICT, NAMED
8606 * dbus/dbus-string.c:
8607 * dbus/dbus-sysdeps.c:
8608 Make parse_double locale safe.
8610 * dbus/dbus-test-main.c:
8616 * doc/dbus-specification.sgml:
8619 * test/data/incomplete-messages/missing-body.message:
8620 * test/data/invalid-messages/bad-boolean.message:
8621 * test/data/invalid-messages/bad-boolean-array.message:
8622 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8623 * test/data/invalid-messages/boolean-has-no-value.message-raw:
8624 * test/data/invalid-messages/too-short-dict.message:
8625 * test/data/valid-messages/dict-simple.message:
8626 * test/data/valid-messages/dict.message:
8627 * test/data/valid-messages/emptiness.message:
8628 * test/data/valid-messages/lots-of-arguments.message:
8629 * test/data/valid-messages/no-padding.message:
8630 * test/data/valid-messages/recursive-types.message:
8631 Add missing NAME fields
8632 Fix up dicts & arrays
8634 * test/data/invalid-messages/dict-with-nil-value.message:
8635 Removed, this is not invalid anymore.
8637 * test/data/valid-messages/recursive-types.message:
8638 Add new test for deeply recursive types.
8640 2003-04-07 Havoc Pennington <hp@pobox.com>
8642 * bus/driver.c (bus_driver_handle_acquire_service): return an
8643 error if you try to acquire a service that starts with ':'
8645 2003-04-07 Havoc Pennington <hp@redhat.com>
8647 * doc/dbus-specification.sgml: require that base service names
8648 start with ':' and that the base service is created/deleted
8649 as first and last things a connection does on the bus
8651 * bus/dispatch.c (check_existent_service_activation): lots more
8652 work on the activation test; it doesn't fully pass yet...
8654 * test/test-service.c (main): fix so we don't memleak the
8655 connection to the message bus
8656 (filter_func): accept a message asking us to exit
8658 2003-04-06 Havoc Pennington <hp@pobox.com>
8660 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8663 * configure.in: fixes to Qt detection from Colin Walters
8665 * doc/Makefile.am: Only remove generated docbook dirs if they
8666 exist, from Colin Walters
8668 * dbus/dbus-bus.c: change how we set well-known connections to
8669 NULL, so that it works if a single connection is stored in
8670 two well-known array slots.
8672 * test/Makefile.am: remove a lot of stuff that isn't immediately
8673 useful, it's in CVS history if we want it.
8675 * test/test-service.c: use dbus-mainloop instead of that
8678 2003-04-06 Havoc Pennington <hp@pobox.com>
8680 * dbus/Makefile.am: split lists of sources into stuff that goes in
8681 the library, util functions that go in the lib and are also used
8682 elsewhere, and util functions that are used in tests/daemon but
8683 don't go in the lib.
8685 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8686 here so it can be used in test binaries also
8688 2003-04-06 Havoc Pennington <hp@pobox.com>
8690 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8691 here in the parent process, so we can return an error if it
8692 fails. Also, move some of the code into the child so the parent
8693 is less hosed if we fail midway through.
8695 * bus/bus.c (bus_context_new): move pidfile detection further up
8696 in the function, before we start overwriting sockets and such.
8698 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8700 * configure.in: add --with-system-pid-file and --with-system-socket
8702 2003-04-06 Colin Walters <walters@verbum.org>
8704 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8706 * bus/system.conf.in: Declare a pidfile.
8708 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8709 create one (if appropriate).
8711 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8712 (struct BusConfigParser) [pidfile]: New.
8713 (element_type_to_name, merge_included, start_busconfig_child)
8714 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8715 (bus_config_parser_unref): Free it.
8716 (bus_config_parser_get_pidfile): New function.
8718 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8720 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8722 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8724 * dbus/dbus-sysdeps.h: Prototype it.
8726 2003-04-06 Havoc Pennington <hp@pobox.com>
8728 * bus/bus.c (bus_context_new): print the address in here, rather
8729 than in main(), because we need to do it before forking the daemon
8731 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8732 on the service nonexistent error
8734 * bus/driver.c (bus_driver_handle_acquire_service): set the
8735 sender on the AcquireService reply
8737 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8738 server also listen on a UNIX socket so services can connect to it.
8740 2003-04-06 Havoc Pennington <hp@pobox.com>
8742 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8743 so it detects deadlocks and also we actually init threads when
8746 2003-04-06 Havoc Pennington <hp@pobox.com>
8748 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8749 save the domain socket name, and unlink it when we disconnect the
8750 server. Means that at least when we exit normally, we won't leave
8751 a bunch of junk in /tmp
8753 * dbus/dbus-transport-unix.c
8754 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8755 memory management). (I was making a real change here but then
8758 2003-04-06 Havoc Pennington <hp@pobox.com>
8760 * bus/bus.c (bus_context_new): fix wrong handling of
8761 server_data_slot_unref() in the error case.
8763 * dbus/dbus-internals.h (_dbus_assert): change so it passes
8764 "(condition) != 0" to _dbus_real_assert so that
8765 "_dbus_assert (pointer)" doesn't cause a warning
8767 * bus/main.c (main): accept --print-address option to print out
8768 the message bus address
8770 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
8772 * dbus/dbus-transport.c (_dbus_transport_open): special error for
8773 "tmpdir" option to unix: address on client side
8775 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
8778 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
8779 we can use to create sockets in the test suite.
8781 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
8782 cleanly. To be used for testing.
8784 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
8786 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
8788 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
8789 handle trying to call this when there's no servers active
8791 2003-04-05 Havoc Pennington <hp@pobox.com>
8797 2003-04-05 Havoc Pennington <hp@pobox.com>
8799 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
8800 crash on startup. Need to get "try starting the daemon"
8801 in the test suite I guess. ;-)
8803 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
8804 tracked the number of open connections; it's better done in
8805 application-specific code as you want it to span all servers etc.
8807 2003-04-05 Havoc Pennington <hp@pobox.com>
8809 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
8810 patch from Colin Walters
8812 2003-04-05 Havoc Pennington <hp@pobox.com>
8814 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
8815 reality; in fact multiple mechanisms are allowed.
8817 * dbus/dbus-internals.c (_dbus_real_assert)
8818 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
8819 _dbus_assert_not_reached() into functions, so that they don't show
8820 up in basic block counts for test coverage, and don't use up as
8821 much disk space. Does mean slower execution speed though, so
8822 assumes --disable-asserts is the normal production case.
8824 2003-04-05 Havoc Pennington <hp@pobox.com>
8826 * test/Makefile.am (dist-hook): also dist *.in files
8832 2003-04-05 Havoc Pennington <hp@pobox.com>
8834 * dbus/dbus-string.c: docs warning
8836 * dbus/dbus-spawn.c: missing docs
8838 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
8840 2003-04-05 Havoc Pennington <hp@pobox.com>
8842 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
8845 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
8846 to -1 once we've reaped the babysitter
8847 (_dbus_babysitter_handle_watch): do as much work as we can, not
8850 * bus/activation.c: add code using DBusBabysitter so that we
8851 handle it when a service fails to start up properly.
8852 (bus_activation_service_created): don't remove the activation
8853 entries as we go, just let them get removed when we free the pending
8854 activation. Unref reply messages after sending them.
8856 2003-04-05 Havoc Pennington <hp@pobox.com>
8858 * test/decode-gcov.c (main): print per-directory stats in the report
8860 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
8862 2003-04-05 Havoc Pennington <hp@pobox.com>
8864 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
8866 * test/decode-gcov.c: hack up a little program to suck data
8867 out of gcov files. Yes this is sort of silly.
8869 * configure.in: define something in config.h and do an
8870 AM_CONDITIONAL when gcov is enabled
8872 2003-04-04 Havoc Pennington <hp@redhat.com>
8874 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
8875 return a "babysitter" object that is used to monitor the status of
8876 the spawned process and reap it when required.
8878 * test/test-segfault.c, test/test-exit.c,
8879 test/test-sleep-forever.c: binaries that do various lame things,
8880 used in the test suite.
8882 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
8884 2003-04-03 Havoc Pennington <hp@pobox.com>
8886 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
8887 in preparation for modifying it, dbus-sysdeps is getting
8890 2003-04-03 Havoc Pennington <hp@redhat.com>
8892 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
8895 * bus/*.[hc]: adapt to mainloop change
8897 2003-04-03 Havoc Pennington <hp@redhat.com>
8899 * bus/activation.c (load_directory): fix up memleaks
8900 (bus_activation_entry_free): free the entry
8902 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
8903 we get one from the message bus; fix memleaks.
8905 * dbus/dbus-message.c (dbus_set_error_from_message): new function
8907 2003-04-03 Havoc Pennington <hp@pobox.com>
8909 * bus/config-parser.c (bus_config_parser_unref): free
8910 list of mechanisms, bug discovered by test suite enhancements
8911 (putting system.conf and session.conf into suite)
8913 * test/Makefile.am, test/test-service.c: add placeholder for a
8914 test service that we'll activate as part of test suite. Doesn't
8917 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
8918 setting NULL value, and use system malloc not dbus_malloc()
8919 when we have unavoidable memleakage.
8921 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
8922 didn't work, and support DBUS_BUS_ACTIVATION.
8924 * bus/activation.c (child_setup): pass our well-known bus type to
8927 * bus/config-parser.c: support <type> to specify well-known type
8929 * doc/dbus-specification.sgml: document the env variables to
8930 locate well-known buses and find service activator
8932 2003-04-02 Havoc Pennington <hp@redhat.com>
8934 * test/Makefile.am (all-local): add a rule to copy tests to
8935 builddir, so we can have generated tests. Use this to remove the
8936 silly hack for testing system.conf and session.conf. Will use this
8937 shortly to generate .service files pointing to test binaries.
8939 2003-04-02 Havoc Pennington <hp@redhat.com>
8941 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
8942 current alloc and needed new length, not max of the doubled
8943 allocation and needed new length. Also, when building tests,
8944 don't do the double-allocation stuff, just realloc every time.
8946 2003-04-02 Havoc Pennington <hp@redhat.com>
8948 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
8950 (_dbus_string_get_dirname): new
8951 (_dbus_sysdeps_test): new
8952 (_dbus_directory_open): include dirnames in error messages
8954 * bus/config-parser.c: interpret <include> and <includedir> and
8955 <servicedir> relative to config file location if the given
8956 filename is not absolute.
8958 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
8960 2003-04-02 Havoc Pennington <hp@redhat.com>
8962 * bus/connection.c (bus_transaction_send_error_reply): set sender
8963 service for the error, and unref the reply on success
8965 * bus/activation.c: convert to use BusTransaction so OOM can be
8967 (bus_activation_service_created): set sender of the message
8969 2003-04-01 Havoc Pennington <hp@redhat.com>
8971 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
8972 <includedir> (at least mostly)
8974 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
8975 first, then the user ID
8977 2003-04-01 Havoc Pennington <hp@pobox.com>
8979 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
8982 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
8984 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
8986 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
8987 socket 0777, and unlink any existing socket.
8989 * bus/bus.c (bus_context_new): change our UID/GID and fork if
8990 the configuration file so specifies; set up auth mechanism
8993 * bus/config-parser.c (bus_config_parser_content): add support
8994 for <fork> option and fill in code for <auth>
8996 * bus/system.conf.in: add <fork/> to default configuration,
8997 and limit auth mechanisms to EXTERNAL
8999 * doc/config-file.txt (Elements): add <fork>
9001 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9002 (_dbus_change_identity): new function
9004 2003-03-31 Havoc Pennington <hp@redhat.com>
9006 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9007 (_dbus_listen_unix_socket): fix off-by-one error in null
9008 termination spotted by Nalin
9010 2003-03-31 Havoc Pennington <hp@redhat.com>
9012 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9013 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9014 having a real home directory available.
9016 2003-03-31 Havoc Pennington <hp@redhat.com>
9018 * bus/Makefile.am (install-data-hook): create /var/run/dbus
9020 * bus/messagebus.in: add init script for Red Hat /etc/init.d
9022 * configure.in: add support for specifying a style of init script
9025 2003-03-31 Havoc Pennington <hp@redhat.com>
9027 Fix some annoying DBusString API and fix all affected code.
9029 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9031 (_dbus_string_get_data): change to return string instead of using
9033 (_dbus_string_get_const_data): ditto
9034 (_dbus_string_get_data_len): ditto
9035 (_dbus_string_get_const_data_len): ditto
9037 2003-03-31 Havoc Pennington <hp@redhat.com>
9039 * bus/main.c (main): fix up the command line arguments to be nicer
9041 2003-03-31 Havoc Pennington <hp@redhat.com>
9043 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9044 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9045 final location that lands in the config file
9047 * bus/config-loader-expat.c (bus_config_load): fix type of
9050 * doc/TODO: remove TODO item for dbus_bus_get()
9052 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9054 2003-03-31 Havoc Pennington <hp@pobox.com>
9056 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9057 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9058 argument since they are always client side
9060 * dbus/dbus-server.c (dbus_server_get_address): new function
9062 * bus/main.c (main): take the configuration file as an argument.
9064 * test/data/valid-config-files/debug-allow-all.conf: new file to
9065 use with dispatch.c tests for example
9067 * bus/test-main.c (main): require test data dir
9069 * bus/bus.c (bus_context_new): change this to take a
9070 configuration file name as argument
9072 * doc/config-file.txt (Elements): add <servicedir>
9074 * bus/system.conf, bus/session.conf: new files
9076 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9077 well-known socket if none set
9079 * configure.in: create system.conf and session.conf
9081 2003-03-30 Havoc Pennington <hp@pobox.com>
9083 * bus/config-parser.c: hacking
9085 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9086 to shut down, since it could cause weirdness with the DBusList
9089 * dbus/dbus-list.c (_dbus_list_test): add tests for the
9090 link-oriented stack routines
9091 (alloc_link): free the mempool if the first alloc from it fails
9093 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9095 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9097 (_dbus_string_skip_white): new
9099 * doc/config-file.txt (Elements): add <includedir>
9101 2003-03-28 Havoc Pennington <hp@pobox.com>
9103 * dbus/dbus-string.c (_dbus_string_copy_data_len)
9104 (_dbus_string_copy_data): new functions
9106 2003-03-28 Anders Carlsson <andersca@codefactory.se>
9108 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9112 * dbus/dbus-memory.c:
9115 2003-03-28 Havoc Pennington <hp@pobox.com>
9117 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9118 I think it may have just been superstition. Not sure.
9120 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9121 failures that were not being handled.
9123 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9125 * dbus/dbus-memory.c: add ability to set number of mallocs in a
9126 row that will fail on out-of-memory.
9128 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9129 function for testing out-of-memory handling.
9131 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9132 allocation functions, they do map exactly to the expat ones.
9134 2003-03-27 Havoc Pennington <hp@redhat.com>
9136 * bus/config-loader-libxml.c (bus_config_load): add another error
9139 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9142 Add note about automatic service activation.
9144 * doc/dbus-specification.sgml:
9145 Rename the specification and clarify a few things.
9147 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9150 * dbus/dbus-address.c:
9152 * dbus/dbus-marshal.c:
9153 * dbus/dbus-server-debug-pipe.c:
9154 * dbus/dbus-transport-unix.c:
9155 Fix documentation warnings.
9157 2003-03-26 Havoc Pennington <hp@pobox.com>
9159 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9160 after every test so it's quick and easy to see which leaked, and
9161 so we test multiple dbus_shutdown() calls
9163 * configure.in: change configure.in XML stuff to also support
9166 * config-loader-libxml.c: some hacking
9168 * config-loader-expat.c: some hacking
9170 * config-parser.c: some hacking, plus tests
9172 2003-03-25 Havoc Pennington <hp@redhat.com>
9174 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9176 * configure.in: add --with-xml option to specify XML library,
9177 right now only libxml is supported.
9179 * bus/config-loader-libxml.c, config-parser.c: sync some minor
9180 nonworking code between home and work, still just stubs
9182 2003-03-24 Havoc Pennington <hp@redhat.com>
9184 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9187 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9188 NULL argument for "message" if the error is a well-known one,
9189 fill in a generic message in this case.
9191 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9194 * bus/test.c (bus_test_flush_bus): add
9196 * bus/policy.c (bus_policy_test): test code stub
9198 2003-03-24 Havoc Pennington <hp@pobox.com>
9200 * bus/connection.c (bus_connections_setup_connection): set up
9201 the "can this user connect" function, but it always returns
9202 TRUE until we have a config file parser so we can have a config
9203 file that allows connections.
9205 2003-03-23 Havoc Pennington <hp@pobox.com>
9207 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9208 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9209 the mutex, so we can check for proper memory management
9212 * dbus/dbus-dataslot.c: remove the mutex from
9213 DBusDataSlotAllocator and lock it manually when using it,
9214 to simplify fitting it into the global slots framework.
9216 * dbus/dbus-threads.c (init_static_locks): rework how we're
9217 handling global locks so they are easily shut down.
9219 * bus/policy.c (bus_policy_append_rule): fix
9221 * bus/test-main.c (main): check for memleaks
9223 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9224 test suite check for memleaks
9226 * dbus/dbus-memory.c: add support in test mode for tracking
9227 number of outstanding blocks
9229 2003-03-23 Havoc Pennington <hp@pobox.com>
9231 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9234 * dbus/dbus-hash.h: add ULONG hash keys
9236 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9237 (_dbus_get_group_id): new function
9239 2003-03-20 Havoc Pennington <hp@redhat.com>
9241 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9243 (dbus_connection_get_unix_user): new function
9245 2003-03-20 Havoc Pennington <hp@pobox.com>
9247 * bus/connection.c (bus_connection_send_oom_error): assert that
9248 message has a sender
9249 (connection_execute_transaction): ditto
9250 (bus_connection_preallocate_oom_error): fix to set the sender, and
9251 set recipient to the destination service, not the bus driver
9253 * bus/policy.c: hacking
9255 * dbus/dbus-message.c (dbus_message_service_is): new function
9256 (dbus_message_sender_is): new
9258 2003-03-19 Havoc Pennington <hp@redhat.com>
9260 * bus/policy.c: start sketching code for policy restrictions on
9261 what connections can do.
9263 2003-03-18 Havoc Pennington <hp@redhat.com>
9265 * doc/TODO: some notes on high-level todo items. Little nitpick
9266 stuff is all in @todo, so no need to add it here.
9268 * doc/config-file.txt: some notes on how config file might look
9270 2003-03-18 Anders Carlsson <andersca@codefactory.se>
9276 2003-03-17 Havoc Pennington <hp@redhat.com>
9278 * dbus/dbus-internals.h: add gcc attributes so that
9279 our printf-style functions warn on bad arguments to
9282 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9285 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9288 2003-03-17 Havoc Pennington <hp@redhat.com>
9290 * bus/test-main.c (main): make it print something as it runs
9291 so make check doesn't look stuck
9293 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9294 from CVS, now obsolete
9296 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9298 * bus/dispatch.c: (bus_dispatch):
9299 Refetch the service name since it may have been reallocated
9300 when dbus_message_set_sender was called.
9302 * dbus/dbus-sysdeps.c: (_dbus_accept):
9303 Add address and address length variables and use them to stop
9304 valgrind from complaining.
9306 2003-03-17 Havoc Pennington <hp@pobox.com>
9308 All tests pass, no memleaks, no valgrind complaints.
9310 * bus/test.c: refcount handler_slot
9312 * bus/connection.c (bus_connections_new): refcount
9313 connection_data_slot
9315 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9316 bytes so that auth scripts pass.
9318 * bus/dispatch.c: init message_handler_slot so it gets allocated
9321 * bus/dispatch.c (message_handler_slot_ref): fix memleak
9323 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9324 dealloc server_pipe_hash when no longer used for benefit of
9327 * dbus/dbus-auth.c (process_command): memleak fix
9329 * bus/dispatch.c (check_hello_message): memleak fix
9331 2003-03-16 Havoc Pennington <hp@pobox.com>
9333 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9335 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9337 * bus/activation.c (bus_activation_activate_service): Append
9338 the pending activation entry to the list of pending activations.
9340 2003-03-16 Havoc Pennington <hp@pobox.com>
9342 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9345 * dbus/dbus-address.c (create_entry): fix OOM handling when
9346 failing to alloc entry->method
9348 2003-03-16 Havoc Pennington <hp@pobox.com>
9350 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9353 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9354 add some missing dbus_set_result
9356 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9357 alloc the DBusMessageHandler
9359 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9360 the transport here, since we call this from the finalizer; it
9361 resulted in a double-finalize.
9363 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9364 where we tried to use transport->connection that was NULL,
9365 happened when transport was disconnected early on due to OOM
9367 * bus/*.c: adapt to handle OOM for watches/timeouts
9369 * dbus/dbus-transport-unix.c: port to handle OOM during
9372 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9373 reference to unused bytes instead of a copy
9375 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9378 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9381 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9384 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9386 * doc/dbus-specification.sgml:
9387 Document reply message for ActivateService.
9389 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9391 * bus/activation.c: (bus_pending_activation_entry_free),
9392 (bus_pending_activation_free), (bus_activation_new),
9393 (bus_activation_unref), (bus_activation_service_created),
9394 (bus_activation_activate_service):
9396 * bus/bus.c: (bus_context_new):
9397 * bus/desktop-file.c: (new_section):
9398 * bus/driver.c: (bus_driver_send_service_deleted),
9399 (bus_driver_handle_activate_service):
9400 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9402 * dbus/dbus-connection.c:
9403 (dbus_connection_send_with_reply_and_block):
9404 * dbus/dbus-message.c: (dbus_message_append_args_valist):
9405 * dbus/dbus-protocol.h:
9406 Make activation work better. Now pending activations will be queued
9407 and the daemon won't try to activate services that are already registered.
9409 2003-03-16 Havoc Pennington <hp@pobox.com>
9411 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9414 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9415 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9417 2003-03-16 Havoc Pennington <hp@pobox.com>
9419 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9420 this. always run the test suite before commit...
9422 * bus/*: adapt to DBusConnection API changes
9424 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9425 requires renaming stuff to avoid dbus_connection_dispatch name
9428 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9431 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9432 separate from _dbus_message_loader_return_buffer()
9434 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9435 this, because it's now always broken to use; the number of
9436 messages in queue vs. the number still buffered by the message
9437 loader is undefined/meaningless. Should use
9438 dbus_connection_get_dispatch_state().
9439 (dbus_connection_dispatch): rename from
9440 dbus_connection_dispatch_message
9442 2003-03-16 Havoc Pennington <hp@pobox.com>
9444 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9447 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9449 * dbus/dbus-connection.c:
9450 (dbus_connection_send_with_reply_and_block):
9451 Decrease connection->n_incoming when removing an entry
9453 * dbus/dbus-dict.c: (dbus_dict_entry_free),
9454 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9455 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9456 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9457 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9458 (dbus_dict_get_byte_array):
9459 Handle NULL arrays and strings. Also add support for byte arrays.
9461 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9462 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9463 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9464 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9465 (_dbus_demarshal_dict), (demarshal_and_validate_len),
9466 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9467 * dbus/dbus-marshal.h:
9468 Add support for marshalling and demarshalling empty arrays and strings.
9470 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9471 (dbus_message_append_string_array),
9472 (dbus_message_iter_get_boolean),
9473 (dbus_message_iter_get_boolean_array),
9474 (dbus_message_iter_get_int32_array),
9475 (dbus_message_iter_get_uint32_array),
9476 (dbus_message_iter_get_double_array),
9477 (dbus_message_iter_get_byte_array),
9478 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9479 (check_message_handling):
9480 Add support for getting empty arrays and dicts.
9482 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9483 Don't do any validation at all for now, that's better than just checking
9486 * test/data/valid-messages/emptiness.message:
9487 New test message with lots of empty arrays.
9489 2003-03-16 Havoc Pennington <hp@pobox.com>
9491 * dbus/dbus-connection.c
9492 (_dbus_connection_queue_received_message_link): new function that
9493 can't fail due to OOM
9495 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9496 new function pops a message together with a list link
9499 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9500 message queuing functions to avoid needing to alloc memory
9502 2003-03-16 Havoc Pennington <hp@pobox.com>
9504 Oops - test code was only testing failure of around 30 of the
9505 mallocs in the test path, but it turns out there are 500+
9506 mallocs. I believe this was due to misguided linking setup such
9507 that there was one copy of dbus_malloc etc. in the daemon and one
9508 in the shared lib, and only daemon mallocs were tested. In any
9509 case, the test case now tests all 500+ mallocs, and doesn't pass
9510 yet, though there are lots of fixes in this patch.
9512 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9513 this so that it doesn't need to allocate memory, since it
9514 has no way of indicating failure due to OOM (and would be
9515 annoying if it did).
9517 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9519 * bus/Makefile.am: rearrange to create two self-contained
9520 libraries, to avoid having libraries with overlapping symbols.
9521 that was resulting in weirdness, e.g. I'm pretty sure there
9522 were two copies of global static variables.
9524 * dbus/dbus-internals.c: move the malloc debug stuff to
9527 * dbus/dbus-list.c (free_link): free list mempool if it becomes
9530 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9532 * dbus/dbus-address.c (dbus_parse_address): free list nodes
9535 * bus/dispatch.c (bus_dispatch_add_connection): free
9536 message_handler_slot when no longer using it, so
9537 memory leak checkers are happy for the test suite.
9539 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9541 * bus/bus.c (new_connection_callback): disconnect in here if
9542 bus_connections_setup_connection fails.
9544 * bus/connection.c (bus_connections_unref): fix to free the
9546 (bus_connections_setup_connection): if this fails, don't
9547 disconnect the connection, just be sure there are no side
9550 * dbus/dbus-string.c (undo_alignment): unbreak this
9552 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9554 (_dbus_auth_new): fix the order in which we free strings
9557 * bus/connection.c (bus_connection_disconnected): fix to
9558 not send ServiceDeleted multiple times in case of memory
9561 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9562 get the base service name
9563 (dbus_bus_register_client): don't return base service name,
9564 instead store it on the DBusConnection and have an accessor
9566 (dbus_bus_register_client): rename dbus_bus_register()
9568 * bus/dispatch.c (check_hello_message): verify that other
9569 connections on the bus also got the correct results, not
9570 just the one sending hello
9572 2003-03-15 Havoc Pennington <hp@pobox.com>
9574 Make it pass the Hello handling test including all OOM codepaths.
9575 Now to do other messages...
9577 * bus/services.c (bus_service_remove_owner): fix crash when
9578 removing owner from an empty list of owners
9579 (bus_registry_ensure): don't leave service in the list of
9580 a connection's owned services if we fail to put the service
9583 * bus/connection.c (bus_connection_preallocate_oom_error): set
9584 error flag on the OOM error.
9586 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9587 handle _dbus_transport_set_connection failure
9589 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9590 to create watches up front and simply enable/disable them as
9592 (unix_connection_set): this can now fail on OOM
9594 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9595 of enabling/disabling a watch or timeout.
9597 * bus/loop.c (bus_loop_iterate): don't touch disabled
9600 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9602 2003-03-15 Havoc Pennington <hp@pobox.com>
9604 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9605 write useful test code, after all that futzing around ;-)
9607 Test does not yet pass because we can't handle OOM in
9608 _dbus_transport_messages_pending (basically,
9609 dbus_connection_preallocate_send() does not prealloc the write
9610 watch). To fix this, I think we need to add new stuff to
9611 set_watch_functions, namely a SetEnabled function so we can alloc
9612 the watch earlier, then enable it later.
9614 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9615 dbus-memory.c to the convenience lib
9617 * bus/test.c: rename some static functions to keep them clearly
9618 distinct from stuff in connection.c. Handle client disconnection.
9620 2003-03-14 Havoc Pennington <hp@pobox.com>
9622 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9623 transport, tests more of the real codepath. Set up clients
9624 with bus_setup_debug_client.
9626 * bus/test.c (bus_setup_debug_client): function to set up debug
9627 "clients" on the main loop
9629 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9632 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9635 * dbus/dbus-server-debug.c: support a debug server based on pipes
9637 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9638 (_dbus_close): new function
9640 * configure.in: check for socketpair
9642 2003-03-14 Havoc Pennington <hp@redhat.com>
9644 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9647 * dbus/dbus-transport-debug.c: rework this a good bit to be
9648 less complicated. hopefully still works.
9650 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9653 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9656 * dbus/dbus-message.c (dbus_message_copy): rename from
9657 dbus_message_new_from_message, fix it up to copy
9658 all the message fields, add test case
9660 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9661 not quite passing yet
9663 2003-03-14 Havoc Pennington <hp@pobox.com>
9665 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9666 until no work remains" in test code. (the large diff here
9667 is just code movement, no actual changes)
9669 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9670 1, no point waiting around for test code.
9671 (_dbus_server_debug_accept_transport): unref the timeout
9672 after adding it (right?)
9674 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9676 2003-03-13 Havoc Pennington <hp@redhat.com>
9678 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9681 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9684 * dbus/dbus-connection.h: Make AddWatchFunction and
9685 AddTimeoutFunction return a bool so they can fail on out-of-memory
9687 * bus/bus.c (bus_context_new): set up timeout handlers
9689 * bus/connection.c (bus_connections_setup_connection): set up
9692 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9695 * bus/bus.c (bus_context_new): adapt to changes
9697 * bus/connection.c: adapt to changes
9699 * test/watch.c: adapt to DBusWatch changes
9701 * bus/dispatch.c (bus_dispatch_test): started adding this but
9704 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9706 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9708 2003-03-13 Havoc Pennington <hp@pobox.com>
9710 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9711 set up a test framework as for the library
9713 2003-03-12 Havoc Pennington <hp@pobox.com>
9715 Throughout: purge global variables, introduce BusActivation,
9716 BusConnections, BusRegistry, etc. objects instead.
9718 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9721 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9722 going to redo this a bit differently I think
9724 2003-03-12 Havoc Pennington <hp@redhat.com>
9726 Mega-patch that gets the message bus daemon initially handling
9727 out-of-memory. Work still needed. Also lots of random
9728 moving stuff to DBusError instead of ResultCode.
9730 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9732 * dbus/dbus-connection.c
9733 (dbus_connection_send_with_reply_and_block): use DBusError
9735 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9738 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9739 code here, as the only failure possible is OOM.
9741 * bus/connection.c (bus_connection_disconnect):
9742 rename bus_connection_disconnected as it's a notification only
9744 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9745 "name" on get_args failure, should be done by get_args;
9746 don't disconnect client for bad args, just return an error.
9747 (bus_driver_handle_service_exists): ditto
9749 * bus/services.c (bus_services_list): NULL-terminate returned array
9751 * bus/driver.c (bus_driver_send_service_lost)
9752 (bus_driver_send_service_acquired): send messages from driver to a
9753 specific client to the client's unique name, not to the broadcast
9756 * dbus/dbus-message.c (decode_header_data): reject messages that
9757 contain no name field
9758 (_dbus_message_get_client_serial): rename to
9759 dbus_message_get_serial and make public
9760 (_dbus_message_set_serial): rename from set_client_serial
9761 (_dbus_message_set_reply_serial): make public
9762 (_dbus_message_get_reply_serial): make public
9764 * bus/connection.c (bus_connection_foreach): allow stopping
9765 iteration by returning FALSE from foreach function.
9767 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
9768 (dbus_connection_free_preallocated_send)
9769 (dbus_connection_preallocate_send): new API for sending a message
9770 without possibility of malloc failure.
9771 (dbus_connection_send_message): rename to just
9772 dbus_connection_send (and same for whole function family)
9774 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
9776 * dbus/dbus-sysdeps.c (_dbus_exit): new function
9778 * bus/activation.c: handle/return errors
9780 * dbus/dbus-errors.h: add more DBUS_ERROR #define
9782 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
9783 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
9784 (_dbus_result_from_errno): move to this file
9786 2003-03-10 Anders Carlsson <andersca@codefactory.se>
9788 * dbus/dbus-marshal.c:
9789 (_dbus_marshal_set_string):
9790 Take a length argument so we can marshal the correct string
9793 (_dbus_marshal_dict), (_dbus_demarshal_dict),
9794 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
9795 (_dbus_marshal_test):
9796 * dbus/dbus-marshal.h:
9797 Add support for marshalling and demarshalling dicts.
9799 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
9800 Add support for TYPE DICT.
9802 * dbus/dbus-message.c: (set_string_field):
9803 Adjust header padding.
9805 (dbus_message_append_args_valist), (dbus_message_append_dict),
9806 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
9807 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
9808 (check_message_handling), (check_have_valid_message):
9809 * dbus/dbus-message.h:
9810 Add functions for setting and getting dicts.
9812 * dbus/dbus-protocol.h:
9818 * doc/dbus-specification.sgml:
9819 Add information about how dicts are marshalled.
9821 * test/data/invalid-messages/dict-with-nil-value.message:
9822 * test/data/invalid-messages/too-short-dict.message:
9823 * test/data/valid-messages/dict-simple.message:
9824 * test/data/valid-messages/dict.message:
9825 Add sample messages containing dicts.
9827 2003-03-08 Anders Carlsson <andersca@codefactory.se>
9829 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
9831 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9834 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9835 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
9836 (dbus_dict_set_int32), (dbus_dict_set_uint32),
9837 (dbus_dict_set_double), (dbus_dict_set_string),
9838 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9839 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9840 (dbus_dict_set_string_array), (_dbus_dict_test):
9842 Fix according to comments from Havoc.
9844 2003-03-06 Michael Meeks <michael@server.home>
9846 * configure.in: if we don't have kde-config, disable have_qt.
9848 2003-03-07 Anders Carlsson <andersca@codefactory.se>
9853 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
9854 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
9855 (dbus_dict_remove), (dbus_dict_get_value_type),
9856 (dbus_dict_get_keys), (dbus_dict_put_boolean),
9857 (dbus_dict_put_int32), (dbus_dict_put_uint32),
9858 (dbus_dict_put_double), (dbus_dict_put_string),
9859 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
9860 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
9861 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
9862 (dbus_dict_get_int32), (dbus_dict_get_uint32),
9863 (dbus_dict_get_double), (dbus_dict_get_string),
9864 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
9865 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
9866 (dbus_dict_get_string_array), (_dbus_dict_test):
9868 Add DBusDict implementation
9870 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
9874 2003-03-04 Havoc Pennington <hp@pobox.com>
9876 * test/data/auth/*: adapt to changes
9878 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
9879 USERID_BASE64 and change USERNAME_BASE64 to put in username not
9882 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
9883 more stuff from being in a context name, to make the protocol
9884 simpler to deal with
9886 * dbus/dbus-errors.c (dbus_error_has_name): new function
9887 (dbus_error_is_set): new function
9889 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
9890 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
9892 * dbus/dbus-connection.c (dbus_connection_flush): also read
9893 messages during a flush operation
9895 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
9897 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9899 * configure.in: Check for gethostbyname on Solaris.
9901 * dbus/dbus-transport.c: (_dbus_transport_open):
9902 Remove duplicate "tcp" entry.
9904 * doc/dbus-specification.sgml:
9905 Clarify some things.
9907 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9909 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
9910 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
9911 (_dbus_keyring_test):
9912 * dbus/dbus-md5.c: (_dbus_md5_compute):
9913 * dbus/dbus-sha.c: (_dbus_sha_compute):
9916 2003-03-05 Anders Carlsson <andersca@codefactory.se>
9918 * README: Add some things.
9920 2003-03-04 Anders Carlsson <andersca@codefactory.se>
9922 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
9923 after case DBUS_TYPE_BOOELAN.
9925 2003-03-02 Havoc Pennington <hp@pobox.com>
9927 * test/break-loader.c (randomly_set_extreme_ints): add test that
9928 sets really huge and small integers
9930 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
9931 that length of boolean array fits in the string, and that
9932 string has room for boolean value in single-bool case.
9934 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
9935 optional value to "ALIGN" command which is what to fill the
9938 * test/data/valid-messages/no-padding.message: add regression
9939 test for the message padding problem
9941 2003-03-02 Havoc Pennington <hp@pobox.com>
9943 * dbus/dbus-message.c (decode_header_data): fix to always init
9944 message_padding, from Benjamin Dauvergne
9946 2003-03-02 Havoc Pennington <hp@pobox.com>
9952 2003-03-01 Joe Shaw <joe@assbarn.com>
9954 * configure.in: Check for "struct cmsgcred" and try to access its
9955 members for BSD-like unices.
9957 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
9958 _dbus_read_credentials_unix_socket().
9959 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
9960 read() for reading the credential byte off the unix socket. Use
9961 struct cmsgcred on systems that support it.
9963 2003-02-27 Alexander Larsson <alexl@redhat.com>
9967 Make gthreads-2.0 dependency optional. Don't build thread test if
9970 2003-02-27 Havoc Pennington <hp@pobox.com>
9972 * dbus/dbus-connection.c
9973 (dbus_connection_send_message_with_reply_and_block): fix doh!
9974 doh! doh! bug that resulted in never removing a reply from the
9975 queue, no wonder we called get_reply_serial so much ;-)
9977 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
9978 and client serial instead of demarshaling them every time
9980 2003-02-27 Havoc Pennington <hp@pobox.com>
9982 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
9983 more inlined, using dbus-string-private.h, speeds things up
9986 * dbus/dbus-string.c (_dbus_string_free): apply align offset
9987 when freeing the string
9988 (_dbus_string_steal_data): fix for align offset
9989 (undo_alignment): new function
9991 2003-02-26 Havoc Pennington <hp@redhat.com>
9993 All kinds of audit fixes from Owen, plus initial attempt to
9994 handle unaligned memory returned from malloc.
9996 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
9997 leave room for align_offset and nul byte
9998 (fixup_alignment): function to track an align_offset and
9999 ensure real->str is aligned
10000 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10001 to allow a nul byte plus align offset
10002 (_dbus_string_lock): fix overflow issue
10003 (_dbus_string_init_const_len): add assertions on sanity of len,
10004 assign allocated to be ALLOCATION_PADDING larger than len
10005 (set_length): fixup the overflow handling
10006 (_dbus_string_get_data_len): fix overflow in assertion
10007 (open_gap): detect overflow in size of gap to be opened
10008 (_dbus_string_lengthen): add overflow check
10009 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10010 (_dbus_string_append): add overflow check
10011 (_dbus_string_append_unichar): overflow
10012 (_dbus_string_delete): fix overflow in assertion
10013 (_dbus_string_copy_len): overflow in assertion
10014 (_dbus_string_replace_len): overflows in assertions
10015 (_dbus_string_find): change to implement in terms of
10016 _dbus_string_find_to
10017 (_dbus_string_find_to): assorted fixage
10018 (_dbus_string_equal_c_str): assert c_str != NULL,
10019 fix logic so the function works
10020 (_dbus_string_ends_with_c_str): fix overflow thingy
10021 (_dbus_string_base64_encode): overflow fix
10022 (_dbus_string_validate_ascii): overflow
10023 (_dbus_string_validate_nul): overflow
10025 2003-02-26 Havoc Pennington <hp@redhat.com>
10027 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10029 2003-02-26 Alexander Larsson <alexl@redhat.com>
10032 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10034 * dbus/dbus-connection.c:
10035 * dbus/dbus-connection.h:
10036 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10037 Add dbus_connection_set_wakeup_main_function and use it when queueing
10038 incoming and outgoing messages.
10041 * dbus/dbus-dataslot.c:
10042 Threadsafe usage of DBusDataSlotAllocator
10044 * dbus/dbus-message.c: (dbus_message_get_args_iter):
10047 * dbus/dbus-server-unix.c:
10050 * glib/dbus-gmain.c:
10051 Implement the new wakeup functions for glib.
10053 * glib/Makefile.am:
10054 * glib/test-thread-client.c:
10055 * glib/test-thread-server.c:
10056 * glib/test-thread.h:
10057 Initial cut at some thread test code. Not really done yet.
10059 2003-02-26 Havoc Pennington <hp@pobox.com>
10061 * dbus/dbus-connection.c
10062 (dbus_connection_send_message_with_reply_and_block): fix crash
10063 where we ref'd the outgoing message instead of the returned reply
10065 * dbus/dbus-transport-unix.c (do_authentication): check read watch
10066 at the end of this function, so if we didn't need to read for
10067 authentication, we reinstall it for receiving messages
10069 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10070 a NULL sender for peer-to-peer case
10072 * dbus/dbus-transport-unix.c (check_read_watch): handle
10073 !authenticated case correctly
10075 * glib/dbus-gmain.c: add support for DBusServer
10077 * dbus/dbus-server.c: add data slot support
10079 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10080 return values and handle errors
10082 * dbus/dbus-dataslot.c: factor out the data slot stuff from
10085 * Doxyfile.in (INPUT): add glib subdir
10087 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10088 setup_with_g_main instead of hookup_with_g_main; write docs
10090 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10092 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10093 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10094 * dbus/dbus-message.c: (dbus_message_append_boolean),
10095 (dbus_message_append_boolean_array),
10096 (dbus_message_get_args_valist), (_dbus_message_test):
10097 * dbus/dbus-message.h:
10098 * doc/dbus-specification.sgml:
10099 Various fixes as pointed out by Havoc.
10101 * test/data/invalid-messages/bad-boolean-array.message:
10102 * test/data/invalid-messages/bad-boolean.message:
10103 Add invalid boolean value test cases.
10105 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10107 * dbus/dbus-internals.c: (_dbus_type_to_string):
10108 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10109 (_dbus_marshal_validate_arg):
10110 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10111 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10112 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10113 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10114 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10115 (dbus_message_iter_get_double),
10116 (dbus_message_iter_get_boolean_array), (message_iter_test):
10117 * dbus/dbus-message.h:
10118 * dbus/dbus-protocol.h:
10119 * doc/dbus-specification.sgml:
10120 * test/data/valid-messages/lots-of-arguments.message:
10121 Add support for boolean and boolean array types.
10123 2003-02-23 Havoc Pennington <hp@pobox.com>
10125 * dbus/dbus-keyring.c: finish most of this implementation and
10128 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10129 these barf if the error isn't cleared to NULL
10131 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10132 (_dbus_create_directory): new function
10134 * dbus/dbus-errors.c (dbus_set_error): fix warning
10136 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10137 (_dbus_string_hex_decode): new function
10138 (test_hex_roundtrip): test code
10140 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10142 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10144 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10145 the save-to-temp/rename trick to atomically write the new file
10146 (_dbus_string_parse_uint): new function
10148 2003-02-22 Havoc Pennington <hp@pobox.com>
10150 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10152 2003-02-22 Havoc Pennington <hp@pobox.com>
10154 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10155 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10157 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10159 * dbus/test/data/sha-1: add US government test suite for SHA-1
10161 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10163 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10164 Make string arrays NULL-terminated.
10166 * dbus/dbus-memory.c: (dbus_free_string_array):
10167 * dbus/dbus-memory.h:
10168 New function for freeing NULL-terminated string arrays.
10170 * dbus/dbus-message-builder.c: (append_quoted_string),
10171 (_dbus_message_data_load):
10172 Add support for array types.
10174 * dbus/dbus-message.c: (check_message_handling):
10175 Add more types as test cases.
10177 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10178 (_dbus_string_parse_double):
10179 Add the start offset to the end offset.
10181 * test/data/valid-messages/lots-of-arguments.message:
10182 New test message with lots of arguments.
10184 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10186 * dbus/dbus-message.c: (dbus_message_append_nil),
10187 (dbus_message_append_int32), (dbus_message_append_uint32),
10188 (dbus_message_append_double), (dbus_message_append_string),
10189 (dbus_message_append_int32_array),
10190 (dbus_message_append_uint32_array),
10191 (dbus_message_append_double_array),
10192 (dbus_message_append_byte_array),
10193 (dbus_message_append_string_array):
10194 Fix all out-of-memory handling in these functions.
10196 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10198 * dbus/dbus-message.c: (dbus_message_append_nil):
10201 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10203 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10204 (dbus_message_append_nil), (dbus_message_append_int32_array),
10205 (dbus_message_append_uint32_array),
10206 (dbus_message_append_double_array),
10207 (dbus_message_append_byte_array),
10208 (dbus_message_append_string_array), (dbus_message_get_args_valist),
10209 (dbus_message_iter_get_int32_array),
10210 (dbus_message_iter_get_uint32_array),
10211 (dbus_message_iter_get_double_array),
10212 (dbus_message_iter_get_byte_array),
10213 (dbus_message_iter_get_string_array):
10215 * dbus/dbus-message.h:
10216 Add functions for appending and getting arrays.
10218 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10220 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10221 element size at least 8 bytes, fixes mempool tests on
10224 2003-02-20 Alexander Larsson <alexl@redhat.com>
10226 * dbus/dbus-transport-unix.c (unix_do_iteration):
10227 Unlock the connection mutex during a blocking select call.
10228 Add todo about how we need a way to wake up the select.
10230 * dbus/dbus-connection-internal.h:
10231 * dbus/dbus-connection.c:
10232 Add _dbus_connection_lock and _dbus_connection_unlock.
10234 2003-02-19 Havoc Pennington <hp@pobox.com>
10236 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10237 Doxyfile.in, not Doxyfile
10239 * dbus/dbus-keyring.c: do some hacking on this
10241 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10243 * dbus/dbus-errors.c (dbus_set_error_const): do not call
10245 (dbus_set_error): remove dbus_error_init, check for message ==
10246 NULL *before* we sprintf into it, and add @todo about including
10247 system headers in this file
10249 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10251 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10253 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10254 get various bits of user information based on either username
10256 (_dbus_homedir_from_username): new function
10258 2003-02-19 Anders Carlsson <andersca@codefactory.se>
10261 Add check for nonposix getpwnam_r
10263 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10264 Align the pool element size to a sizeof (void *) boundary.
10266 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10267 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10268 General Solaris fixes.
10270 * test/data/valid-messages/simplest-manual.message:
10271 Explicitly state that we want little-endian packing.
10273 2003-02-19 Mikael Hallendal <micke@codefactory.se>
10275 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10277 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10278 Added to create a transport connecting using a tcp/ip socket.
10280 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10281 to a tcp socket at given host and port.
10282 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10285 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10287 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10288 Added to create a server listening on a TCP/IP socket.
10290 2003-02-19 Havoc Pennington <hp@pobox.com>
10292 Throughout: mop up all the Doxygen warnings and undocumented
10295 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10296 to search any paths.
10298 * dbus/dbus-threads.c: move global mutex initializers to
10299 dbus-internals.h, multiple prototypes was confusing doxygen
10300 besides being kind of ugly
10302 * Doxyfile (PREDEFINED): have Doxygen define
10303 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10304 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10305 (do not abuse the feature! it's for stuff like the autogenerated
10306 macros in dbus-md5.c, not just for things you don't feel like
10309 2003-02-18 Havoc Pennington <hp@pobox.com>
10311 * dbus/dbus-string.c (_dbus_string_zero): new function
10313 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10314 wrap it in some dbus-friendly API
10316 * dbus/dbus-types.h: add 16-bit types
10318 2003-02-18 Joe Shaw <joe@assbarn.com>
10320 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10321 credentials from our currently running process.
10322 (get_word): Fix a buglet where we were copying the entire length
10323 instead of relative to our position.
10325 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10326 keys on the stack... it's 640k of data.
10328 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10329 read the credentials byte off the socket, even if we don't have
10331 (_dbus_poll): Implement poll() using select() for systems which
10334 * glib/test-dbus-glib.c (main): Print out an error if no
10335 parameters are given.
10337 * test/data/auth/fallback.auth-script: Added. Tests that a client
10338 can fallback to a secondary auth mechanism if the first fails.
10340 2003-02-18 Havoc Pennington <hp@pobox.com>
10342 * AUTHORS: add Alex
10344 2003-02-17 Havoc Pennington <hp@pobox.com>
10346 * doc/dbus-specification.sgml: lots of cosmetic
10347 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10348 env variable to DBUS_BUS_ADDRESS, s/client/application/,
10349 s/server/bus/ (except in authentication section). Add a section
10350 "Message Bus Message Routing"
10352 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
10358 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10360 * doc/dbus-specification.sgml:
10361 Specification updates.
10363 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10365 * bus/activation.c: (bus_activation_init), (child_setup),
10366 (bus_activation_activate_service):
10367 * bus/activation.h:
10368 * bus/main.c: (main):
10369 Set DBUS_ADDRESS environment variable.
10371 * dbus/dbus-errors.c: (dbus_set_error):
10372 Don't use va_copy since that's a C99 feature.
10374 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10375 (_dbus_spawn_async):
10376 * dbus/dbus-sysdeps.h:
10377 Add child_setup_func to _dbus_spawn_async.
10379 * doc/dbus-specification.sgml:
10380 Update specification.
10382 * test/spawn-test.c: (setup_func), (main):
10385 2003-02-17 Alexander Larsson <alexl@redhat.com>
10387 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10390 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10394 * doc/dbus-test-plan.sgml:
10395 Add test plan document.
10397 * test/Makefile.am:
10400 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10402 * dbus/dbus-message.c: (decode_header_data),
10403 (_dbus_message_loader_return_buffer):
10404 Set the header padding amount when loading a message.
10406 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10408 * bus/dispatch.c: (send_one_message):
10409 Only send broadcast messages to registered connections.
10411 * dbus/dbus-message.c: (dbus_message_name_is):
10412 * dbus/dbus-message.h:
10413 New convenience function.
10415 * dbus/dbus-transport-debug.c: (do_reading):
10416 Only dispatch one message per run.
10418 * test/Makefile.am:
10419 * test/bus-test.c: (new_connection_callback), (die),
10420 (test_hello_client1_handler), (test_hello_client2_handler),
10421 (test_hello_replies), (main):
10423 * test/bus-test-loop.[ch]:
10426 2003-02-16 Havoc Pennington <hp@pobox.com>
10428 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10429 backward conditional
10431 2003-02-16 Alexander Larsson <alexl@redhat.com>
10433 * dbus/dbus-connection.c:
10434 Implement sent_message_with_reply. (with_reply_and block is still
10436 Made dispatch_message not lose message if OOM.
10438 * dbus/dbus-errors.h:
10439 Add NoReply error (for reply timeouts).
10441 2003-02-16 Alexander Larsson <alexl@redhat.com>
10443 * dbus/dbus-hash.c (_dbus_hash_table_unref):
10444 Actually free keys and values when destroying hashtable.
10446 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10448 * dbus/dbus-auth.c: (client_try_next_mechanism):
10451 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10452 Return TRUE if there's no thread implementation around.
10454 * glib/dbus-gmain.c: (free_source),
10455 (dbus_connection_hookup_with_g_main):
10456 Make sure to remove the GSource when the connection is finalized.
10458 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10460 * bus/dispatch.c: (bus_dispatch_message_handler):
10461 * dbus/dbus-errors.h:
10462 Return an error if someone tries to send a message to a service
10463 that doesn't exist.
10465 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10467 * bus/activation.c: (load_directory), (bus_activation_init),
10468 (bus_activation_activate_service):
10469 * bus/activation.h:
10471 (bus_driver_handle_activate_service), (bus_driver_handle_message):
10472 More work on the activation handling.
10474 * dbus/dbus-errors.h:
10475 Add some error messages
10477 * dbus/dbus-message.c: (dbus_message_new_error_reply):
10478 * dbus/dbus-message.h:
10479 New function that creates an error message.
10481 * dbus/dbus-protocol.h:
10482 Add ACTIVATE_SERVER message.
10484 * dbus/dbus-server-unix.c: (unix_handle_watch),
10485 (_dbus_server_new_for_domain_socket):
10486 Call _dbus_fd_set_close_on_exec.
10488 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10489 (_dbus_spawn_async), (_dbus_disable_sigpipe),
10490 (_dbus_fd_set_close_on_exec):
10491 * dbus/dbus-sysdeps.h:
10492 Add _dbus_fd_set_close_on exec function. Also add function that checks
10493 that all open fds are set to close-on-exec and warns otherwise.
10495 * dbus/dbus-transport-unix.c:
10496 (_dbus_transport_new_for_domain_socket):
10497 Call _dbus_fd_set_close_on_exec.
10499 2003-02-16 Havoc Pennington <hp@pobox.com>
10501 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10502 allow people to avoid setting SIGPIPE to SIG_IGN
10503 (_dbus_connection_new_for_transport): disable SIGPIPE unless
10504 we've been asked not to
10506 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10508 * dbus/dbus-list.c: (_dbus_list_append_link),
10509 (_dbus_list_prepend_link):
10510 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10514 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10517 * bus/activation.c: (bus_activation_entry_free),
10518 (add_desktop_file_entry), (load_directory), (bus_activation_init):
10519 * bus/activation.h:
10520 * bus/main.c: (main):
10521 Add simple activation support, doesn't work yet though.
10523 2003-02-15 Zack Rusin <zack@kde.org>
10525 * qt/dbus-qthread.cpp: small casting fix
10527 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10529 * dbus/dbus-errors.c: (dbus_set_error):
10530 * dbus/dbus-errors.h:
10531 Add a few errors and make dbus_set_error void.
10533 * dbus/dbus-sysdeps.c:
10534 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10535 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10536 * dbus/dbus-sysdeps.h:
10537 Add _dbus_spawn_async.
10539 * test/spawn-test.c: (main):
10540 Test for _dbus_spawn_async.
10542 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10544 * dbus/dbus-internals.h:
10545 Fix build without tests.
10547 * dbus/dbus-list.c: (alloc_link):
10548 Fix a segfault when a malloc fails.
10550 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10551 (dbus_malloc0), (dbus_realloc):
10552 Add support for malloc debugging.
10554 2003-02-15 Alexander Larsson <alexl@redhat.com>
10556 * dbus/dbus-threads.c:
10557 * dbus/dbus-threads.h:
10558 Add condvars. Remove static mutext from API.
10559 Implement static mutexes by initializing them from threads_init.
10561 * glib/dbus-gthread.c:
10562 * qt/dbus-qthread.cpp:
10563 Update with the thread api changes.
10566 * dbus/dbus-list.c:
10567 * dbus/dbus-list.h:
10568 Turn StaticMutex into normal mutex + init function.
10569 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10570 _dbus_list_append_link, _dbus_list_prepend_link
10573 * dbus/dbus-sysdeps.c:
10574 * dbus/dbus-sysdeps.h:
10575 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10576 _dbus_atomic_dec. Only slow fallback implementation at the moment.
10578 * dbus/dbus-protocol.h:
10579 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10581 * dbus/dbus-message.c:
10582 Make ref/unref atomic.
10585 * dbus/dbus-connection-internal.h:
10586 * dbus/dbus-connection.c:
10587 * dbus/dbus-connection.h:
10589 Change _peek to _borrow,_return & _steal_borrowed.
10590 Change disconnect callback to event.
10591 Make dbus_connection_dispatch_messages reentrant.
10593 * dbus/dbus-transport.c:
10594 Don't ref the connection on calls to the transport
10597 * dbus/dbus-message-handler.c:
10600 * glib/dbus-gmain.c:
10601 Don't use peek_message anymore
10603 * test/Makefile.am:
10604 * test/debug-thread.c:
10605 * test/debug-thread.h:
10606 Simple thread implementation that asserts() on deadlocks in
10607 single-threaded code.
10610 (main) Call debug_threads_init.
10613 Use disconnect message instead of disconnect callback.
10615 * bus/connection.c:
10616 * bus/connection.h:
10617 Don't call dbus_connection_set_disconnect_function. Instead export
10618 bus_connection_disconnect.
10621 Call bus_connection_disconnect when we get a disconnected message.
10623 2003-02-15 Havoc Pennington <hp@pobox.com>
10625 * dbus/dbus-message.c (dbus_message_new): fool around with the
10628 2003-02-14 Havoc Pennington <hp@pobox.com>
10630 * dbus/dbus-mempool.c: fail if the debug functions so indicate
10632 * dbus/dbus-memory.c: fail if the debug functions indicate we
10635 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10636 (_dbus_decrement_fail_alloc_counter): debug functions to
10637 simulate memory allocation failures
10639 2003-02-14 Havoc Pennington <hp@pobox.com>
10641 * dbus/dbus-errors.h (struct DBusError): add a word of padding
10644 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10646 * bus/driver.c: (bus_driver_handle_hello):
10648 * bus/services.c: (bus_service_lookup):
10649 Reorder message sending so we get a more sane order.
10651 * test/bus-test.c: (message_handler):
10654 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10656 * bus/driver.c: (bus_driver_send_service_deleted),
10657 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10658 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10659 (bus_driver_send_welcome_message),
10660 (bus_driver_handle_list_services),
10661 (bus_driver_handle_acquire_service),
10662 (bus_driver_handle_service_exists):
10663 * dbus/dbus-bus.c: (dbus_bus_register_client),
10664 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10665 * dbus/dbus-errors.c: (dbus_result_to_string):
10666 * dbus/dbus-errors.h:
10667 * dbus/dbus-message.c: (dbus_message_append_args),
10668 (dbus_message_append_args_valist), (dbus_message_get_args),
10669 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10670 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10671 (dbus_message_iter_get_byte_array),
10672 (dbus_message_iter_get_string_array), (message_iter_test),
10673 (check_message_handling), (_dbus_message_test):
10674 * dbus/dbus-message.h:
10675 * test/bus-test.c: (main):
10676 Change fields to arguments in messages, so that they won't be
10677 confused with header fields.
10679 * glib/test-dbus-glib.c: (main):
10680 Remove append_fields from hello message.
10682 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10684 * dbus/dbus-errors.c:
10685 * dbus/dbus-message.c:
10686 * dbus/dbus-string.c:
10687 Documentation fixes.
10689 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10691 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10693 Implement support for timeouts in dbus-glib.
10695 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10697 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10698 * dbus/dbus-message.c: (process_test_subdir):
10699 * test/break-loader.c: (find_breaks_based_on):
10700 Plug some memory leaks.
10702 2003-02-13 Richard Hult <rhult@codefactory.se>
10704 * bus/main.c: Fix build.
10706 * dbus/dbus-errors.h:
10707 * dbus/dbus-errors.c: Fix copyright for Anders.
10709 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10714 * bus/connection.c: (bus_connection_foreach):
10717 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10718 (unescape_string), (new_section), (parse_section_start),
10719 (parse_key_value), (report_error), (bus_desktop_file_load),
10720 (bus_desktop_file_get_string):
10721 * bus/desktop-file.h:
10722 Use DBusError for error reporting.
10724 * bus/dispatch.c: (send_one_message),
10725 (bus_dispatch_message_handler):
10726 * bus/driver.c: (bus_driver_send_service_deleted),
10727 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10728 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10729 (bus_driver_send_welcome_message),
10730 (bus_driver_handle_list_services),
10731 (bus_driver_handle_acquire_service),
10732 (bus_driver_handle_service_exists):
10733 * bus/loop.c: (bus_loop_run):
10735 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10737 * bus/utils.c: (bus_wait_for_memory):
10739 New files with general utility functions.
10741 * dbus/dbus-internals.h:
10742 Remove _DBUS_HANDLE_OOM.
10744 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10746 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10747 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10748 * dbus/dbus-errors.h:
10749 Add DBusError structure.
10751 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10753 * test/data/valid-messages/standard-acquire-service.message:
10754 * test/data/valid-messages/standard-hello.message:
10755 * test/data/valid-messages/standard-list-services.message:
10756 * test/data/valid-messages/standard-service-exists.message:
10757 Add some standard messages.
10759 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10761 * bus/driver.c: (bus_driver_send_welcome_message),
10762 (bus_driver_handle_list_services),
10763 (bus_driver_handle_acquire_service),
10764 (bus_driver_handle_service_exists), (bus_driver_handle_message):
10765 Update for API changes in libdbus.
10767 * dbus/dbus-message.c: (dbus_message_new_reply):
10768 * dbus/dbus-message.h:
10769 Remove the name argument. The spec states that replies shouldn't
10772 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10774 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
10775 (report_error), (bus_desktop_file_load), (lookup_section),
10776 (lookup_line), (bus_desktop_file_get_raw),
10777 (bus_desktop_file_get_string):
10778 * bus/desktop-file.h:
10779 Some fixes, and new functions for getting a key value from a section.
10781 2003-02-13 Havoc Pennington <hp@pobox.com>
10783 * test/data/auth/fail-after-n-attempts.auth-script: new test
10785 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
10788 2003-02-13 Havoc Pennington <hp@pobox.com>
10790 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
10791 dbus_credentials_match were backward
10793 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
10794 NO_CREDENTIALS and ROOT_CREDENTIALS
10796 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
10797 into here. Never process more commands after we've reached an
10798 end state; store further data as unused bytes.
10800 * test/data/auth/*: add more auth tests
10802 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
10803 command to match exact string and EXPECT_UNUSED to match unused
10806 * test/Makefile.am (dist-hook): fix to dist all the test stuff
10808 2003-02-12 Havoc Pennington <hp@pobox.com>
10810 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
10811 \r off of popped lines
10813 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
10816 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
10819 2003-02-12 Havoc Pennington <hp@pobox.com>
10821 * dbus/Makefile.am: remove break-loader from the build, since it
10824 * configure.in: add --enable-gcov to turn on coverage profiling
10825 flags and disable optimization
10827 2003-02-10 Havoc Pennington <hp@pobox.com>
10829 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
10830 initial cut at test framework for DBusAuth from laptop.
10831 Doesn't quite work yet but it compiles and I need to get
10832 it off the 266mhz laptop. ;-)
10834 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
10835 fix a memleak in error case
10837 2003-02-12 Anders Carlsson <andersca@codefactory.se>
10840 * bus/desktop-file.c:
10841 * bus/desktop-file.h:
10842 Add a desktop file parser.
10844 2003-02-11 Zack Rusin <zack@kde.org>
10846 * qt/message.[h|cpp]: sample implementation
10847 of the KDE wrapper for DBusMessage
10849 2003-02-09 Zack Rusin <zack@kde.org>
10851 * test/bus-test.c: make_it_compile
10852 * doc/dbus-specification.sgml: minimal semantic fix
10854 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10860 2003-02-06 Anders Carlsson <andersca@codefactory.se>
10862 * dbus/Makefile.am:
10863 * dbus/dbus-break-loader.c:
10864 * test/Makefile.am:
10865 * test/break-loader.c:
10866 Move dbus-break-loader to test/ and rename it to break-loader.
10868 2003-02-02 Havoc Pennington <hp@pobox.com>
10870 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
10871 for code to manage cookies in your home directory
10873 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
10875 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
10876 to authenticate, then disconnect the client.
10878 2003-02-03 Alexander Larsson <alexl@redhat.com>
10880 * dbus/dbus-message.c (dbus_message_append_fields):
10883 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10885 * doc/dbus-specification.sgml:
10886 Update address format section.
10888 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10890 * test/Makefile.am:
10891 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
10892 (message_handler), (new_connection_callback), (loop_quit),
10893 (loop_run), (main):
10896 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10898 * bus/driver.c: (bus_driver_handle_service_exists):
10899 Simplify the code a bit.
10901 * dbus/dbus-bus.c: (dbus_bus_service_exists):
10904 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10907 Add libdbus-daemon.la and link to it.
10909 2003-02-01 James Willcox <jwillcox@gnome.org>
10911 * bus/driver.c: (bus_driver_handle_own_service):
10912 Actually include the service reply code in the message.
10914 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10916 * bus/driver.c: (bus_driver_handle_service_exists):
10917 Don't unref the incoming message.
10919 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10921 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
10923 2003-02-02 Anders Carlsson <andersca@codefactory.se>
10925 * dbus/dbus-server.c: (dbus_server_listen):
10926 * dbus/dbus-transport.c: (_dbus_transport_open):
10927 ifdef out the calls to the debug transport and server.
10929 2003-02-02 Alexander Larsson <alexl@redhat.com>
10931 * dbus/dbus-watch.c (dbus_watch_get_flags):
10932 Add note in the docs that ERROR or HANGUP won't be returned
10933 and are assumed always on.
10935 * glib/dbus-gmain.c (add_watch):
10936 Always add IO_ERR | IO_HUP
10938 * dbus/dbus-message.h:
10939 Add semicolon after dbus_message_iter_get_string_array().
10940 Makes qt code build again
10942 2003-02-01 Anders Carlsson <andersca@codefactory.se>
10944 * bus/driver.c: (create_unique_client_name),
10945 (bus_driver_handle_hello):
10946 Don't take a name, just use a numeric id to identify
10949 * dbus/Makefile.am:
10950 * dbus/dbus-bus.c: (dbus_bus_register_client),
10951 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10953 Add new convenience functions for communicating with the bus.
10955 * dbus/dbus-message.h:
10957 * dbus/dbus-protocol.h:
10960 2003-02-01 Alexander Larsson <alexl@redhat.com>
10962 * dbus/dbus-message.c (dbus_message_append_fields):
10963 Add some more doc comments.
10965 2003-02-01 Havoc Pennington <hp@pobox.com>
10967 * dbus/dbus-break-loader.c (randomly_modify_length): change
10968 a 4-byte value in the message as if it were a length
10970 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
10971 execute bit on saved files
10973 2003-02-01 Havoc Pennington <hp@pobox.com>
10975 * dbus/dbus-break-loader.c (main): new program to find messages
10976 that break the loader.
10978 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
10979 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
10981 * dbus/dbus-string.c (_dbus_string_set_byte): new
10983 2003-01-31 Havoc Pennington <hp@pobox.com>
10985 * dbus/dbus-message.c: refactor the test code to be more general,
10986 in preparation for writing a "randomly permute test cases to
10987 try to break the loader" program.
10989 2003-01-31 Havoc Pennington <hp@pobox.com>
10991 * doc/dbus-specification.sgml: work on the specification
10993 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
10994 the protocol version of the message.
10996 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
10997 no longer specifies that.
10998 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11001 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11002 "break" for DBUS_TYPE_NIL, remove @todo
11004 2003-01-31 Havoc Pennington <hp@pobox.com>
11006 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11007 just set_is_error/get_is_error as this is a commonly-used
11008 function, and write docs.
11010 2003-01-31 Anders Carlsson <andersca@codefactory.se>
11012 * dbus/dbus-address.c: (dbus_address_entry_free):
11013 Free key and value lists.
11015 * dbus/dbus-internals.c: (_dbus_type_to_string):
11016 Add the types we didn't have.
11018 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11019 (_dbus_marshal_validate_arg):
11022 * dbus/dbus-message.c: (dbus_message_set_sender):
11023 Remove todo about being able to set sender to NULL.
11025 (dbus_message_set_is_error_reply),
11026 (dbus_message_get_is_error_reply):
11027 * dbus/dbus-message.h:
11030 * dbus/dbus-protocol.h:
11031 Add error reply flag.
11033 * test/data/valid-messages/opposite-endian.message:
11034 Add NIL type to test.
11036 2003-01-31 Havoc Pennington <hp@pobox.com>
11038 * doc/dbus-specification.sgml: fully specify the header. Add
11039 flags and major protocol version, and change header/body len to
11042 * dbus/dbus-message-builder.c (append_saved_length): append length
11045 * dbus/dbus-message.c (dbus_message_create_header): change header
11046 length and body length to unsigned. Add the new fields from the
11048 (_dbus_message_loader_return_buffer): unsigned header/body len
11050 2003-01-30 Havoc Pennington <hp@pobox.com>
11052 * dbus/dbus-auth.c: rework to use only REJECTED, no
11055 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11056 use REJECTED, suggested by Mark McLoughlin
11058 2003-01-30 Havoc Pennington <hp@pobox.com>
11060 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11061 a better way to report errors here. e.g. "unix address lacks
11062 path" or something. also "no such file" when the path doesn't
11065 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11067 (dbus_parse_address): add @todo about documenting address format,
11068 and allowing , and ; to be escaped
11070 2003-01-30 Anders Carlsson <andersca@codefactory.se>
11072 * dbus/Makefile.am:
11073 Add dbus-address.[ch]
11075 * dbus/dbus-address.c: (dbus_address_entry_free),
11076 (dbus_address_entries_free), (create_entry),
11077 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11078 (dbus_parse_address), (_dbus_address_test):
11079 * dbus/dbus-address.h:
11080 New files for dealing with address parsing.
11082 * dbus/dbus-connection.c:
11083 Document timeout functions.
11085 * dbus/dbus-message.c:
11086 Document dbus_message_new_from_message.
11088 * dbus/dbus-server-debug.c:
11091 * dbus/dbus-server.c: (dbus_server_listen):
11092 Parse address and use correct server implementation.
11094 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11095 * dbus/dbus-string.h:
11096 New function with test.
11098 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11099 * dbus/dbus-test.h:
11102 * dbus/dbus-transport-debug.c:
11105 * dbus/dbus-transport.c: (_dbus_transport_open):
11106 Parse address and use correct transport implementation.
11108 2003-01-30 Havoc Pennington <hp@pobox.com>
11110 * dbus/dbus-message.c: use message->byte_order instead of
11111 DBUS_COMPILER_BYTE_ORDER throughout.
11112 (dbus_message_create_header): pad header to align the
11113 start of the body of the message to 8-byte boundary
11115 * dbus/dbus-marshal.h: make all the demarshalers take const
11116 DBusString arguments.
11118 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11119 validate message args here, so we don't have to do slow validation
11120 later, and so we catch bad messages as they are incoming. Also add
11121 better checks on header_len and body_len. Also fill in
11122 message->byte_order
11124 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11125 implemented properly)
11126 (_dbus_string_validate_nul): new function to check all-nul
11128 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11129 get_arg_end_pos and remove all validation
11130 (_dbus_marshal_validate_arg): actually do validation here.
11132 2003-01-29 Havoc Pennington <hp@pobox.com>
11134 * dbus/dbus-message.c (check_message_handling): fix assertion
11135 failure on set_client_serial
11137 2003-01-28 Havoc Pennington <hp@pobox.com>
11139 * dbus/dbus-server-debug.c: Add doc section comments
11141 * dbus/dbus-transport-debug.c: add doc section comments
11143 2003-01-28 Havoc Pennington <hp@redhat.com>
11145 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11146 the reverse order from how I had it
11147 (_dbus_string_base64_encode): reverse encoding order. I was
11148 basically byteswapping everything during encoding.
11150 2003-01-28 Anders Carlsson <andersca@codefactory.se>
11152 * dbus/dbus-connection-internal.h:
11153 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11154 (_dbus_connection_remove_timeout):
11155 Add functions for adding and removing timeouts.
11157 * dbus/dbus-message.c: (dbus_message_new_from_message):
11158 Add new function that takes a message and creates an exact
11159 copy of it, but with the refcount set to 1.
11160 (check_message_handling):
11163 * dbus/dbus-server-protected.h:
11164 * dbus/dbus-server.c: (_dbus_server_init_base),
11165 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11166 (dbus_server_set_timeout_functions):
11167 (_dbus_server_remove_timeout):
11168 New functions so that a server can add and remove timeouts.
11170 (dbus_server_listen):
11171 Add commented out call to dbus_server_debug_new.
11173 * dbus/dbus-timeout.c: (_dbus_timeout_new):
11174 Actually set the handler, doh.
11176 * dbus/dbus-transport.c: (_dbus_transport_open):
11177 Add commented out call to dbus_transport_debug_client_new.
11179 * dbus/Makefile.am:
11180 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11182 2003-01-28 Havoc Pennington <hp@pobox.com>
11184 * dbus/dbus-message.c (check_message_handling): function to check
11185 on the loaded message, iterates over it etc.
11187 2003-01-28 Havoc Pennington <hp@pobox.com>
11189 * test/Makefile.am (dist-hook): fix make distdir
11191 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11193 2003-01-27 Havoc Pennington <hp@pobox.com>
11195 * dbus/dbus-mempool.c (time_for_size): replace printf with
11198 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11199 empty lines; fix the SAVE_LENGTH stuff to be
11200 START_LENGTH/END_LENGTH so it actually works; couple other
11203 * test/Makefile.am (dist-hook): add dist-hook for .message files
11205 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11206 can be constant or locked.
11207 (_dbus_string_free): allow freeing a const string as
11208 documented/intended
11210 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11212 * dbus/dbus-test-main.c (main): take an argument which is the
11213 directory containing test data
11215 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11216 argument to this and load all the messages in test/data/
11217 checking that they can be loaded or not loaded as appropriate.
11219 2003-01-27 Anders Carlsson <andersca@codefactory.se>
11221 * bus/dispatch.c: (bus_dispatch_message_handler):
11222 Dispatch messages sent to services.
11224 * bus/driver.c: (bus_driver_send_service_deleted),
11225 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11226 (bus_driver_send_service_acquired):
11227 Add helper functions for sending service related messages.
11229 (bus_driver_send_welcome_message):
11230 Send HELLO_REPLY instead of WELCOME.
11232 (bus_driver_handle_list_services):
11233 Send LIST_SERVICES_REPLY instead of SERVICES.
11235 (bus_driver_handle_own_service),
11236 (bus_driver_handle_service_exists):
11237 New message handlers.
11239 (bus_driver_handle_message):
11240 Invoke new message handlers.
11242 (bus_driver_remove_connection):
11243 Don't remove any services here since that's done automatically
11244 by bus_service_remove_owner now.
11247 New function signatures.
11249 * bus/services.c: (bus_service_add_owner):
11250 Send ServiceAcquired message if we're the only primary owner.
11252 (bus_service_remove_owner):
11253 Send ServiceAcquired/ServiceLost messages.
11255 (bus_service_set_prohibit_replacement),
11256 (bus_service_get_prohibit_replacement):
11257 Functions for setting prohibit replacement.
11259 (bus_service_has_owner):
11260 New function that checks if a connection is in the owner queue of
11264 Add new function signatures.
11266 * dbus/dbus-list.c: (_dbus_list_test):
11267 Add tests for _dbus_list_remove_last and traversing the list backwards.
11269 * dbus/dbus-list.h:
11270 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11271 go any further, so return NULL then.
11273 * dbus/dbus-protocol.h:
11274 Add new messages, service flags and service replies.
11276 2003-01-26 Havoc Pennington <hp@pobox.com>
11278 * dbus/dbus-message-builder.c: implement, completely untested.
11280 * test/data/*: add data to be used in testing.
11281 ".message" files are our simple loadable text format.
11282 ".message-raw" will be binary dumps of messages.
11284 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11286 2003-01-26 Havoc Pennington <hp@pobox.com>
11288 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11290 * dbus/dbus-errors.c (dbus_result_to_string): add
11293 * dbus/dbus-message-builder.c: new file, will contain code to load
11294 up messages from files. Not implemented yet.
11296 2003-01-26 Havoc Pennington <hp@pobox.com>
11298 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11299 the sender by setting to NULL
11301 2003-01-26 Havoc Pennington <hp@pobox.com>
11303 The unit tests pass, but otherwise untested. If it breaks, the
11304 tests should have been better. ;-)
11306 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11309 * dbus/dbus-message.c: redo everything so we maintain
11310 message->header as the only copy of the various fields.
11311 This avoids the possibility of out-of-memory in some cases,
11312 for example dbus_message_lock() can't run out of memory anymore,
11313 and avoids extra copying. Figured I may as well go ahead and do
11314 this since it was busted for dbus_message_lock to not return
11315 failure on OOM, and dbus_message_write_header was totally
11316 unchecked for OOM. Also fixed some random other bugs.
11318 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11319 that strings are nul-terminated. Also, end_pos can be equal
11320 to string length just not greater than, I think.
11321 (_dbus_marshal_set_int32): new function
11322 (_dbus_marshal_set_uint32): new function
11323 (_dbus_marshal_set_string): new function
11325 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11326 a warning, init timeout_list to NULL
11327 (dbus_connection_send_message): don't use uninitialized variable
11330 * dbus/dbus-string.c (_dbus_string_replace_len): new function
11332 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11334 * bus/driver.c: (bus_driver_handle_hello),
11335 (bus_driver_send_welcome_message):
11338 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11340 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11341 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11342 (dbus_connection_unref):
11343 * dbus/dbus-marshal.c: (_dbus_marshal_test):
11344 * dbus/dbus-message.c: (dbus_message_unref),
11347 (dbus_message_get_fields):
11348 Remove debugging printout.
11350 (_dbus_message_loader_return_buffer):
11351 Don't store the header string.
11353 (_dbus_message_test):
11356 2003-01-26 Richard Hult <rhult@codefactory.se>
11358 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11359 the file descriptor list, since it can change under us.
11361 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11363 * glib/dbus-gmain.c: (dbus_connection_prepare),
11364 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11365 (remove_watch), (dbus_connection_hookup_with_g_main):
11366 Rewrite the glib handling to use its own GSource instead of a
11367 GIOChannel so we can catch messages put in the queue while waiting
11370 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11373 * bus/connection.c: (connection_disconnect_handler),
11374 (connection_watch_callback), (bus_connection_setup):
11375 * bus/dispatch.c: (send_one_message),
11376 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11377 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11379 * bus/driver.c: (bus_driver_send_service_deleted),
11380 (bus_driver_send_service_created), (bus_driver_handle_hello),
11381 (bus_driver_send_welcome_message),
11382 (bus_driver_handle_list_services), (bus_driver_remove_connection),
11383 (bus_driver_handle_message):
11385 Refactor code, put the message dispatching in its own file. Use
11386 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11389 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11391 * dbus/dbus-internals.h:
11392 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11394 * dbus/dbus-message.c: (dbus_message_get_sender):
11395 * dbus/dbus-message.h:
11396 Implement dbus_message_get_sender.
11398 * dbus/dbus-protocol.h:
11399 Add message and service defines.
11401 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11403 * dbus/dbus-connection.c: (dbus_connection_send_message):
11404 * dbus/dbus-message-internal.h:
11405 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11406 (dbus_message_write_header):
11407 Remove _dbus_messag_unlock and don't set the client serial on a
11408 message if one already exists.
11410 2003-01-24 Havoc Pennington <hp@pobox.com>
11412 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11415 * bus/driver.c (bus_driver_handle_list_services): fix a leak
11418 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11420 * dbus/dbus-list.c: (alloc_link), (free_link):
11421 Use a memory pool for the links.
11423 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11425 * bus/connection.c: (bus_connection_foreach):
11426 * bus/connection.h:
11427 Add new bus_connection_foreach function.
11429 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11430 Add function that broadcasts a message to all clients.
11432 (bus_driver_send_service_created), (bus_driver_handle_hello),
11433 (bus_driver_send_welcome_message),
11434 (bus_driver_handle_list_services), (bus_driver_message_handler):
11435 Implement functions that take care of listing services, and notifying
11436 clients when new services are created.
11438 * bus/services.c: (bus_services_list):
11440 Add new function that returns an array of strings with the currently
11441 registered services.
11443 * glib/dbus-glib.h:
11444 * glib/dbus-gmain.c:
11445 Update copyright year.
11447 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11449 * dbus/dbus-connection.c: (dbus_connection_send_message):
11450 Unlock the message in case it was sent earlier.
11452 (dbus_connection_send_message_with_reply_and_block):
11453 Remove the reply message from the list.
11455 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11456 Set array_len and new_pos correctly.
11458 (_dbus_marshal_test):
11459 Remove debug output.
11461 * dbus/dbus-message-internal.h:
11462 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11463 New function that returns the reply serial.
11465 (_dbus_message_unlock):
11466 New function that unlocks a message and resets its header.
11468 (dbus_message_append_string_array),
11469 (dbus_message_get_fields_valist),
11470 (dbus_message_iter_get_field_type),
11471 (dbus_message_iter_get_string_array),
11472 (dbus_message_get_fields),
11473 (dbus_message_append_fields_valist):
11474 Handle string arrays.
11476 (dbus_message_set_sender):
11477 Make this function public since the bus daemon needs it.
11479 (decode_header_data):
11480 Set the reply serial to -1 initially.
11482 * dbus/dbus-message.h:
11483 Add dbus_message_set_sender.
11485 2003-01-24 Havoc Pennington <hp@pobox.com>
11487 * doc/dbus-specification.sgml: add some stuff
11489 2003-01-22 Havoc Pennington <hp@pobox.com>
11491 * doc/dbus-specification.sgml: Start to document the protocol.
11493 2003-01-22 Havoc Pennington <hp@pobox.com>
11495 * dbus/dbus-connection.c
11496 (dbus_connection_send_message_with_reply_and_block): add some @todo
11498 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11500 2003-01-21 Havoc Pennington <hp@pobox.com>
11502 (patch untested because can't compile)
11504 * bus/driver.c (create_unique_client_name): make this function
11505 never recycle client names. Also, caller should initialize
11508 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11510 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11512 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11513 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11514 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11515 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11516 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11517 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11518 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11519 * dbus/dbus-marshal.h:
11520 * dbus/dbus-protocol.h:
11521 Add support for marshalling and demarshalling integer, double
11524 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11529 * bus/connection.c: (connection_disconnect_handler):
11530 Remove the connection from the bus driver's list.
11532 (connection_watch_callback): Dispatch messages.
11534 (free_connection_data): Free connection name.
11536 (bus_connection_setup): Add connection to the bus driver's list.
11537 (bus_connection_remove_owned_service):
11538 (bus_connection_set_name), (bus_connection_get_name):
11539 Add functions for setting and getting the connection's name.
11541 * bus/connection.h:
11542 Add function headers.
11544 * bus/driver.c: (create_unique_client_name),
11545 (bus_driver_handle_hello_message),
11546 (bus_driver_send_welcome_message), (bus_driver_message_handler),
11547 (bus_driver_add_connection), (bus_driver_remove_connection):
11550 * bus/services.c: (bus_service_free):
11552 New file that handles communication and registreation with the bus
11555 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11557 * dbus/dbus-connection.c: (dbus_connection_send_message):
11558 Add a new client_serial parameter.
11560 (dbus_connection_send_message_with_reply):
11561 Remove a @todo since we've implemented the blocking function.
11563 (dbus_connection_send_message_with_reply_and_block):
11564 New function that sends a message and waits for a reply and
11565 then returns the reply.
11567 * dbus/dbus-connection.h:
11570 * dbus/dbus-errors.c: (dbus_result_to_string):
11571 * dbus/dbus-errors.h:
11572 Add new DBUS_RESULT.
11574 * dbus/dbus-message-internal.h:
11575 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11576 (_dbus_message_set_sender), (dbus_message_write_header),
11577 (dbus_message_new_reply), (decode_header_data),
11578 (_dbus_message_loader_return_buffer), (_dbus_message_test):
11579 * dbus/dbus-message.h:
11580 Add new functions that set the reply serial and sender.
11581 Also marshal and demarshal them correctly and add test.
11583 * dbus/dbus-protocol.h:
11584 Add new DBUS_MESSAGE_TYPE_SENDER.
11586 * glib/dbus-glib.h:
11587 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11588 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11589 (dbus_connection_hookup_with_g_main):
11590 * glib/test-dbus-glib.c: (main):
11591 Rewrite to use GIOChannel and remove the GSource crack.
11593 * test/echo-client.c: (main):
11594 * test/watch.c: (check_messages):
11595 Update for changed APIs
11597 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11599 * dbus/Makefile.am: Add dbus-timeout.[cħ]
11601 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11602 Create a DBusTimeoutList.
11603 (dbus_connection_set_timeout_functions): Add new function to
11604 set timeout callbacks
11606 * dbus/dbus-connection.h: Add public DBusTimeout API.
11608 * dbus/dbus-message.c: (dbus_message_get_service):
11609 * dbus/dbus-message.h: New function.
11611 * dbus/dbus-server.c: Fix small doc typo.
11613 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11615 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11617 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11618 of the string, just as long as specified.
11620 2003-01-19 Havoc Pennington <hp@pobox.com>
11622 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11625 * dbus/dbus-server.c (dbus_server_set_max_connections)
11626 (dbus_server_get_max_connections, dbus_server_get_n_connections):
11627 keep track of current number of connections, and add API for
11628 setting a max (but haven't implemented enforcing the max yet)
11630 2003-01-18 Havoc Pennington <hp@pobox.com>
11632 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11633 reading/writing if read_watch != NULL or write_watch != NULL.
11635 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11636 the message loader code to actually load message->header and
11637 message->body into the newly-created message.
11639 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11642 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11643 (dbus_connection_get_max_message_size)
11644 (dbus_connection_set_max_live_messages_size)
11645 (dbus_connection_get_max_live_messages_size): implement some
11646 resource limitation functions
11648 * dbus/dbus-resources.c: new file implementing some of the
11649 resource limits stuff
11651 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11652 missing docs, add @todo to handle OOM etc.
11654 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11657 2003-01-18 Havoc Pennington <hp@pobox.com>
11659 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11660 connection if it hasn't been already.
11662 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11663 replace with DisconnectFunction.
11665 2003-01-18 Havoc Pennington <hp@pobox.com>
11667 Building --disable-verbose-mode --disable-asserts --disable-tests
11668 cuts the library from 112K to 45K or so
11670 * configure.in: check for varargs macro support,
11671 add --enable-verbose-mode, --enable-asserts.
11673 * dbus/dbus-internals.h (_dbus_assert): support
11674 DBUS_DISABLE_ASSERT
11675 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11677 2003-01-18 Havoc Pennington <hp@pobox.com>
11679 * dbus/dbus-test.c: include config.h so that tests actually run
11681 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11682 so the failure mode when that assumption fails will be plenty
11685 2003-01-18 Havoc Pennington <hp@pobox.com>
11687 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11689 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11692 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11693 since we don't want to use those in make check
11695 2003-01-15 Havoc Pennington <hp@redhat.com>
11701 2003-01-15 Havoc Pennington <hp@redhat.com>
11703 * test/Makefile.am: fix so that test source code ends up in the
11704 distribution on make distcheck
11706 2003-01-15 Havoc Pennington <hp@redhat.com>
11712 2003-01-15 Havoc Pennington <hp@redhat.com>
11714 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11715 fix build when --disable-tests
11717 * Makefile.am (EXTRA_DIST): put HACKING in here
11719 * HACKING: document procedure for making a tarball release.
11721 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11723 * bus/connection.c: (connection_error_handler),
11724 (bus_connection_setup):
11725 * bus/main.c: (main):
11726 Make sure that the DBusConnectionData struct is NULLed
11727 out to prevent a segfault.
11729 * dbus/dbus-errors.c: (dbus_result_to_string):
11730 * dbus/dbus-errors.h:
11731 * dbus/dbus-message.c: (dbus_message_get_fields),
11732 (dbus_message_get_fields_valist), (_dbus_message_test):
11733 * dbus/dbus-message.h:
11734 Make dbus_message_get_fields return a result code so we can
11735 track invalid fields as well as oom.
11737 2003-01-11 Havoc Pennington <hp@pobox.com>
11739 * configure.in: change --enable-test/--enable-ansi action-if-given
11740 to enable_foo=$enableval instead of enable_foo=yes
11742 2003-01-08 Havoc Pennington <hp@pobox.com>
11744 * dbus/dbus-string.c (_dbus_string_align_length): new function
11746 * dbus/dbus-test-main.c: move main() for test app here
11748 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11749 symbol to run tests, because dbus-test isn't in the main
11752 Code review nitpicks.
11754 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11755 for people with narrow emacs ;-). Assert client_serial was filled
11756 in. Assert message->name != NULL.
11757 (dbus_message_append_fields): have "first_field_type" arg separate
11758 from va list, needed for C++ binding that also uses varargs IIRC
11759 and helps with type safety
11760 (dbus_message_new): add @todo about using DBusString to store
11761 service/name internally
11762 (dbus_message_new): don't leak ->service and ->name on OOM later
11764 (dbus_message_unref): free the service name
11765 (dbus_message_get_fields): same change to varargs
11766 i.e. first_field_type
11767 (_dbus_message_loader_return_buffer): assert that the message data
11768 is aligned (if not it's a bug in our code). Put in verbose griping
11769 about why we set corrupted = TRUE.
11770 (decode_header_data): add FIXME that char* is evil. Was going to
11771 add FIXME about evil locale-specific string.h strncmp, but just
11772 switched to wacky string-as-uint32 optimization. Move check for
11773 "no room for field name" above get_const_data_len() to avoid
11774 assertion failure in get_const_data_len if we have trailing 2
11775 bytes or the like. Check for service and name fields being
11776 provided twice. Don't leak service/name on error. Require field
11777 names to be aligned to 4 bytes.
11779 * dbus/dbus-marshal.c: move byte swap stuff to header
11780 (_dbus_pack_int32): uscore-prefix
11781 (_dbus_unpack_int32): uscore-prefix
11782 (_dbus_unpack_uint32): export
11783 (_dbus_demarshal_string): add @todo complaining about use of
11785 (_dbus_marshal_get_field_end_pos): add @todo about bad error
11786 handling allowing corrupt data to go unchecked
11788 2003-01-08 Havoc Pennington <hp@redhat.com>
11790 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
11791 to the select() as needed for authentication. (should be using
11792 _dbus_poll() not select, but for another day)
11794 * dbus/dbus.h: include dbus/dbus-protocol.h
11796 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11798 * dbus/Makefile.am (dbusinclude_HEADERS): Install
11801 2003-01-08 Anders Carlsson <andersca@codefactory.se>
11803 * dbus/dbus-internals.c: (_dbus_type_to_string):
11804 New function that returns a string describing a type.
11806 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
11807 * dbus/dbus-marshal.h:
11808 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
11809 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
11810 (dbus_message_iter_get_byte_array):
11811 * dbus/dbus-message.h:
11812 Add new convenience functions for appending and getting message fields.
11813 Also add demarshalling routines for byte arrays.
11815 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11817 * dbus/dbus-connection-internal.h:
11818 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11819 (_dbus_connection_get_next_client_serial),
11820 (dbus_connection_send_message):
11821 * dbus/dbus-internals.h:
11822 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
11823 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
11824 (_dbus_marshal_uint32), (_dbus_demarshal_double),
11825 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
11826 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
11827 (_dbus_verbose_bytes), (_dbus_marshal_test):
11828 * dbus/dbus-marshal.h:
11829 * dbus/dbus-message-internal.h:
11830 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
11831 (dbus_message_write_header), (_dbus_message_lock),
11832 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
11833 (dbus_message_get_name), (dbus_message_append_int32),
11834 (dbus_message_append_uint32), (dbus_message_append_double),
11835 (dbus_message_append_string), (dbus_message_append_byte_array),
11836 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
11837 (dbus_message_iter_unref), (dbus_message_iter_has_next),
11838 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
11839 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
11840 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
11841 (decode_header_data), (_dbus_message_loader_return_buffer),
11842 (message_iter_test), (_dbus_message_test):
11843 * dbus/dbus-message.h:
11844 * dbus/dbus-protocol.h:
11845 * dbus/dbus-test.c: (main):
11846 * dbus/dbus-test.h:
11847 * glib/test-dbus-glib.c: (message_handler), (main):
11848 * test/echo-client.c: (main):
11849 * test/watch.c: (check_messages):
11850 Make messages sendable and receivable for real.
11852 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11854 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11855 (_dbus_marshal_string), (_dbus_marshal_byte_array):
11856 * dbus/dbus-message.c: (dbus_message_append_int32),
11857 (dbus_message_append_uint32), (dbus_message_append_double),
11858 (dbus_message_append_string), (dbus_message_append_byte_array):
11859 Handle OOM restoration.
11861 2003-01-07 Anders Carlsson <andersca@codefactory.se>
11863 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11864 (_dbus_demarshal_string), (_dbus_marshal_test):
11865 * dbus/dbus-marshal.h:
11866 * dbus/dbus-message.c: (dbus_message_get_name),
11867 Document these functions.
11869 (dbus_message_append_int32), (dbus_message_append_uint32),
11870 (dbus_message_append_double), (dbus_message_append_string),
11871 (dbus_message_append_byte_array):
11872 * dbus/dbus-message.h:
11873 Add functions for adding message fields of different types.
11875 * dbus/dbus-protocol.h:
11876 Add the different types.
11878 2003-01-05 Havoc Pennington <hp@pobox.com>
11880 * bus/connection.c: implement routines for handling connections,
11881 first thing is keeping a list of owned services on each connection
11882 and setting up watches etc.
11884 * bus/services.c: implement a mapping from service names to lists
11887 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
11889 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
11890 to use static mutexes for global data
11892 * dbus/dbus-connection.c (dbus_connection_set_data): add new
11893 collection of functions to set/get application-specific data
11894 on the DBusConnection.
11896 2003-01-04 Havoc Pennington <hp@pobox.com>
11898 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
11899 (_dbus_poll): new function
11901 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
11904 * bus/loop.c: initial code for the daemon main loop
11906 2003-01-04 Havoc Pennington <hp@pobox.com>
11908 * test/watch.c (error_handler): make it safe if the error handler
11909 is called multiple times (if we s/error handler/disconnect
11910 handler/ we should just guarantee it's called only once)
11912 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
11913 error handler on disconnect (it's quite possible we should
11914 just change the error handler to a "disconnect handler," I'm
11915 not sure we have any other meaningful errors)
11917 * configure.in: check for getpwnam_r
11919 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
11920 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
11921 mechanism as in SASL spec, using socket credentials
11923 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
11924 (_dbus_send_credentials_unix_socket): new function
11926 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
11928 (_dbus_write): only check errno if <0 returned
11929 (_dbus_write_two): ditto
11931 2003-01-02 Anders Carlsson <andersca@codefactory.se>
11933 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
11934 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
11935 (_dbus_marshal_test):
11936 * dbus/dbus-marshal.h:
11937 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
11938 to _dbus_marshal_utf8_string. Also fix some tests.
11940 2002-12-28 Harri Porten <porten@kde.org>
11942 * configure.in: added check for C++ compiler and a very cheesy
11943 check for the Qt integration
11945 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
11947 * qt/Makefile.am: added
11949 * qt/.cvsignore: added
11951 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
11952 latter, added #ifdef QT_THREAD_SUPPORT guard.
11954 * dbus/Makefile.am: added missing headers for make dist
11956 2002-12-28 Kristian Rietveld <kris@gtk.org>
11958 * dbus/Makefile.am: fixup export-symbols-regex.
11960 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11962 * acinclude.m4: Add this file and put the
11963 PKG_CHECK_MODULE macro in it.
11965 2002-12-27 Anders Carlsson <andersca@codefactory.se>
11967 * dbus/dbus-marshal.c: (_dbus_marshal_string),
11968 (_dbus_demarshal_double), (_dbus_demarshal_int32),
11969 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
11970 (_dbus_marshal_test):
11971 Make the demarshalling routines align the pos argument.
11972 Add string marshalling tests and fix the obvious bugs
11975 2002-12-26 Havoc Pennington <hp@pobox.com>
11977 * dbus/dbus-auth.c: fixes fixes fixes
11979 * dbus/dbus-transport-unix.c: wire up support for
11980 encoding/decoding data on the wire
11982 * dbus/dbus-auth.c (_dbus_auth_encode_data)
11983 (_dbus_auth_decode_data): append to target string
11984 instead of nuking it.
11986 2002-12-26 Havoc Pennington <hp@pobox.com>
11988 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
11989 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
11992 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
11993 avoid swap_bytes() overhead (ignoring possible assembly stuff for
11994 now). Main point is because I wanted unpack_uint32 to implement
11995 _dbus_verbose_bytes
11996 (_dbus_verbose_bytes): new function
11998 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12000 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12001 mechanism to handle a corrupt message stream
12002 (_dbus_message_loader_new): fix preallocation to only prealloc,
12005 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12006 (_dbus_string_test): enhance tests for copy/move and fix the
12009 * dbus/dbus-transport-unix.c: Hold references in more places to
12010 avoid reentrancy problems
12012 * dbus/dbus-transport.c: ditto
12014 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12015 leak reference count in no-message case
12017 * test/watch.c (do_mainloop): handle adding/removing watches
12018 during iteration over the watches. Also, ref the connection/server
12019 stored on a watch, so we don't try to mangle a destroyed one.
12021 * dbus/dbus-transport-unix.c (do_authentication): perform
12024 * dbus/dbus-auth.c (get_state): add a state
12025 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12026 (_dbus_auth_get_unused_bytes): append the unused bytes
12027 to the passed in string, rather than prepend
12029 * dbus/dbus-transport.c (_dbus_transport_init_base): create
12030 the auth conversation DBusAuth
12032 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12033 (_dbus_transport_new_for_domain_socket): when creating a
12034 transport, pass in whether it's a client-side or server-side
12035 transport so we know which DBusAuth to create
12037 2002-12-03 Havoc Pennington <hp@pobox.com>
12039 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12040 _after_ finalizing the derived members
12041 (unix_connection_set): unref watch if we fail to add it
12043 * dbus/dbus-connection.c (dbus_connection_unref): delete the
12044 transport first, so that the connection owned by the
12045 transport will be valid as the transport finalizes.
12047 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12048 if necessary, and remove watches from the connection.
12050 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12052 2002-12-26 Anders Carlsson <andersca@codefactory.se>
12054 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12055 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12056 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12057 (_dbus_marshal_test):
12058 * dbus/dbus-marshal.h:
12059 Add string marshal functions and have the demarshal functions
12060 return the new position.
12062 2002-12-25 Havoc Pennington <hp@pobox.com>
12064 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12065 it is a simple protocol that just maps directly to SASL.
12067 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12068 initial implementation, not actually used yet.
12070 * dbus/dbus-string.c (_dbus_string_find): new function
12071 (_dbus_string_equal): new function
12072 (_dbus_string_base64_encode): new function
12073 (_dbus_string_base64_decode): new function
12075 2002-12-25 Anders Carlsson <andersca@codefactory.se>
12077 * dbus/Makefile.am:
12078 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12079 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12080 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12081 (_dbus_demarshal_uint32), (_dbus_marshal_test):
12082 * dbus/dbus-marshal.h:
12083 * dbus/dbus-protocol.h:
12084 * dbus/dbus-test.c: (main):
12085 * dbus/dbus-test.h:
12086 Add un-optimized marshalling/demarshalling routines.
12088 2002-12-25 Harri Porten <porten@kde.org>
12090 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12092 2002-12-24 Zack Rusin <zack@kde.org>
12094 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12095 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12098 2002-12-24 Havoc Pennington <hp@pobox.com>
12100 * glib/dbus-gthread.c: fix include
12102 * glib/dbus-glib.h: rename DBusMessageHandler for now.
12103 I think glib API needs to change, though, as you don't
12104 want to use DBusMessageFunction, you want to use the
12105 DBusMessageHandler object. Probably
12106 dbus_connection_open_with_g_main_loop()
12107 and dbus_connection_setup_g_main_loop() or something like that
12108 (but think of better names...) that just create a connection
12109 that has watch/timeout functions etc. already set up.
12111 * dbus/dbus-connection.c
12112 (dbus_connection_send_message_with_reply): new function just to
12113 show how the message handler helps us deal with replies.
12115 * dbus/dbus-list.c (_dbus_list_remove_last): new function
12117 * dbus/dbus-string.c (_dbus_string_test): free a string that
12120 * dbus/dbus-hash.c: use memory pools for the hash entries
12121 (rebuild_table): be more paranoid about overflow, and
12122 shrink table when we can
12123 (_dbus_hash_test): reduce number of sprintfs and write
12124 valid C89. Add tests for case where we grow and then
12125 shrink the hash table.
12127 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12129 * dbus/dbus-connection.c (dbus_connection_register_handler)
12130 (dbus_connection_unregister_handler): new functions
12132 * dbus/dbus-message.c (dbus_message_get_name): new
12134 * dbus/dbus-list.c: fix docs typo
12136 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12137 an object representing a handler for messages.
12139 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12141 * glib/dbus-glib.h:
12142 * glib/dbus-gthread.c: (dbus_gthread_init):
12143 Don't use the gdbus prefix for public functions.
12145 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12149 Add GLib checks and fixup .pc files
12151 * glib/Makefile.am:
12152 * glib/dbus-glib.h:
12153 * glib/dbus-gmain.c: (gdbus_connection_prepare),
12154 (gdbus_connection_check), (gdbus_connection_dispatch),
12155 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12156 (dbus_connection_gsource_new):
12157 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12158 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12159 * glib/test-dbus-glib.c: (message_handler), (main):
12162 2002-12-15 Harri Porten <porten@kde.org>
12164 * autogen.sh: check for libtoolize before attempting to use it
12166 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12169 * .cvsignore: ignore more stamp files
12171 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12173 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12174 without make install.
12176 2002-12-15 Havoc Pennington <hp@pobox.com>
12178 * dbus/dbus-threads.c: add thread stubs that a higher library
12179 layer can fill in. e.g. the GLib wrapper might fill them in with
12180 GThread stuff. We still need to use this thread API to
12181 thread-safe-ize the library.
12183 2002-12-12 Havoc Pennington <hp@pobox.com>
12185 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12186 below new interfaces and include fewer system headers.
12188 * dbus/dbus-sysdeps.c (_dbus_read): new function
12189 (_dbus_write): new function
12190 (_dbus_write_two): new function
12191 (_dbus_connect_unix_socket): new function
12192 (_dbus_listen_unix_socket): new function
12194 * dbus/dbus-message-internal.h: change interfaces to use
12197 2002-12-11 Havoc Pennington <hp@pobox.com>
12199 * dbus/dbus-types.h: add dbus_unichar
12201 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12203 * dbus/dbus-connection.c (dbus_connection_send_message): return
12206 * dbus/dbus-transport.c: include dbus-watch.h
12208 * dbus/dbus-connection.c: include dbus-message-internal.h
12210 * HACKING: add file with coding guidelines stuff.
12212 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12213 handling here, for security purposes (as in vsftpd). Not actually
12214 using this class yet.
12216 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12217 system/libc usage here, as in vsftpd, for ease of auditing (and
12218 should also simplify portability). Haven't actually moved all the
12219 system/libc usage into here yet.
12221 2002-11-25 Havoc Pennington <hp@pobox.com>
12223 * dbus/dbus-internals.c (_dbus_verbose): fix to not
12224 always print the first verbose message.
12226 2002-11-24 Havoc Pennington <hp@pobox.com>
12228 * test/echo-client.c, test/echo-server.c: cheesy test
12231 * configure.in (AC_CHECK_FUNCS): check for writev
12233 * dbus/dbus-message.c (_dbus_message_get_network_data): new
12236 * dbus/dbus-list.c (_dbus_list_foreach): new function
12238 * dbus/dbus-internals.c (_dbus_verbose): new function
12240 * dbus/dbus-server.c, dbus/dbus-server.h: public object
12241 representing a server that listens for connections.
12243 * dbus/.cvsignore: create
12245 * dbus/dbus-errors.h, dbus/dbus-errors.c:
12246 public API for reporting errors
12248 * dbus/dbus-connection.h, dbus/dbus-connection.c:
12249 public object representing a connection that
12250 sends/receives messages. (Same object used for
12251 both client and server.)
12253 * dbus/dbus-transport.h, dbus/dbus-transport.c:
12254 Basic abstraction for different kinds of stream
12255 that we might read/write messages from.
12257 2002-11-23 Havoc Pennington <hp@pobox.com>
12259 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12262 * dbus/dbus-test.c (main): add list test, and include
12263 dbus-test.h as intended
12265 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12266 (_dbus_hash_table_remove_int): return value indicates
12267 whether the entry existed to remove
12269 * dbus/dbus-list.c: add linked list utility class,
12270 with docs and tests
12272 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12275 2002-11-23 Havoc Pennington <hp@pobox.com>
12277 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12278 DBUS_END_DECLS to nothing, that should fix this once and for all
12280 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12282 * dbus/dbus-message.c, dbus/dbus-hash.c:
12283 add some missing @brief
12285 2002-11-23 Havoc Pennington <hp@pobox.com>
12287 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12288 to avoid confusing Doxygen
12290 * dbus/dbus-hash.c: @} not }@
12292 * dbus/dbus-message.c (struct DBusMessage): split out
12295 2002-11-23 Havoc Pennington <hp@pobox.com>
12297 * configure.in: pile on more warning flags if using gcc
12299 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12300 to document static functions
12302 * configure.in: add summary to end of configure so it
12303 looks nice and attractive
12305 * dbus/dbus-hash.c: finish implementation and write unit
12308 * configure.in: add --enable-tests to enable unit tests
12310 * dbus/dbus-test.c: test program to run unit tests
12311 for all files in dbus/*, initially runs a test for
12314 * dbus/dbus-internals.h: file to hold some internal utility stuff
12316 2002-11-22 Havoc Pennington <hp@redhat.com>
12318 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12319 "ported" away from Tcl
12321 * dbus/dbus-types.h: header for types such as dbus_bool_t
12323 2002-11-22 Havoc Pennington <hp@redhat.com>
12325 * dbus/dbus.h: fixups for doc warnings
12327 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12329 (QUIET): make it quiet so we can see warnings
12331 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12333 2002-11-22 Havoc Pennington <hp@redhat.com>
12335 * Makefile.am: include "Doxyfile" target in all-local
12337 * configure.in: generate the Doxyfile
12339 * Doxyfile.in: move Doxyfile here, so we can use
12340 configure to generate a Doxyfile with the right
12341 version number etc.
12343 2002-11-22 Havoc Pennington <hp@redhat.com>
12345 * dbus/dbus-message.c: move inline docs into .c file
12347 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12348 so all docs are under doc/
12349 (MAN_EXTENSION): generate man pages. Use extension
12350 ".3dbus" which matches ".3qt" on my system,
12351 I guess this is OK, I don't know really.
12352 (FILE_PATTERNS): look for .c files not .h, makes sense
12353 for plain C I think
12355 2002-11-22 Havoc Pennington <hp@pobox.com>
12357 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12358 because any app can be a server, and any app can be a client,
12359 the bus is a special kind of server.
12361 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
12363 * Doxyfile : adding. Still needs Makefile rules to be generated
12364 automatically (just run "doxygen" in the toplevel dir for now to
12367 * dbus/dbus-message.h : Adding sample docs (javadoc since
12368 resembles gtk-doc a little more)
12370 * dbus/dbus.h : Adding sample docs
12372 2002-11-21 Havoc Pennington <hp@redhat.com>
12374 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12375 so we can allow ourselves to include files directly,
12376 instead of having to use dbus.h
12378 * dbus/dbus.h: fill in
12380 * dbus/dbus-message.h: sketch out a sample header file.
12381 Include griping if you include it directly instead of
12384 * dbus/dbus-macros.h: new file with macros for extern "C",
12385 TRUE/FALSE, NULL, etc.
12387 * doc/file-boilerplate.c: put include guards in here
12389 2002-11-21 Havoc Pennington <hp@redhat.com>
12391 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12393 * COPYING: include the GPL as well, and license code
12394 under both AFL and GPL.
12396 2002-11-21 Havoc Pennington <hp@redhat.com>
12398 * acconfig.h: get rid of this
12400 * autogen.sh (run_configure): add --no-configure option
12402 * configure.in: remove AC_ARG_PROGRAM to make
12403 autoconf complain less. add AC_PREREQ.
12404 add AC_DEFINE third arg.
12406 2002-11-21 Anders Carlsson <andersca@codefactory.se>
12409 Fix references so we can distcheck.
12411 2002-11-21 Havoc Pennington <hp@redhat.com>
12413 * Initial module creation