1 2005-11-15 Robert McQueen <robot101@debian.org>
3 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
4 method to org.freedesktop.DBus to release a bus name or give up
5 waiting in the queue for it.
7 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
8 dbus_bus_release_name method to send the ReleaseName method calls.
9 Add constants for the return values to dbus/dbus-shared.h.
11 * doc/dbus-specification.xml: Document the new ReleaseName method
14 * python/dbus_bindings.pyx: Add a low-level python binding for the
17 * python/exceptions.py, python/service.py: Make freeing BusName
18 objects release the name. Add a NameExistsException, and fix a
19 bug with creating UnknownMethodException.
21 * test/python/test-client.py: Add tests for freeing BusName
22 objects causing names to be released.
24 2005-11-14 Robert McQueen <robot101@debian.org>
26 * python/service.py: Include the traceback in the error reply when we
27 send an exception over the bus. _BEST_ _PATCH_ _EVER_
29 2005-11-14 David Zeuthen <davidz@redhat.com>
31 Patch from Timo Hoenig <thoenig@suse.de>.
33 * bus/bus.c: I've recently investigated why the automatic reload
34 of configuration files does not work as expected.
36 Currently, reloading configuration files does only work when
37 running dbus-daemon with --nodaemon. If we are running as daemon
38 we're hitting a dnotify bug once we fork the process.
40 We're initializing the dnotify fds before calling fork(). Once
41 the child process forked it does still have the fds (and they
42 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
43 getting SIGIO as changes are made to the configuration files.
45 The attached patch moves the initialization of the dnotify fds to
46 process_config_postinit(). This is safe for all current code
47 paths and solves the dnotify disfunction. If we're running
48 dbus-daemon as daemon the fds for dnotify are now being
49 initialized after fork() for the child process.
51 * configure.in: The current configure.in check for dnotify probes
52 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
53 match for 'xlinux', too. Additionally I have adapted the configure
54 option's style to match with the others.
56 2005-11-14 Robert McQueen <robot101@debian.org>
58 * python/decorators.py, python/service.py: Add a new argument to the
59 dbus.service.method decorator called sender_keyword, which if set,
60 specifies the name of an argument which will be provided the bus
61 name of the method caller.
63 * test/python/test-client.py, test/python/test-service.py: Add a
64 method and test to check the sender_keyword functionality.
66 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
68 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
69 empty reply so blocking calls don't block forever (Patch from Sjoerd
70 Simons <sjoerd at luon.net>)
72 * AUTHORS: Add Robert McQueen for his work on the Python
73 Bindings and other parts of D-Bus
75 2005-11-07 Robert McQueen <robot101@debian.org>
77 * python/decorators.py: Change emit_signal function to use the
78 signature annotation of the signal when marhsalling the arguments from
79 the service. Fix a bug where the code checking signature length
80 against argument length referenced the wrong variable.
82 * python/introspect_parser.py: Avoid adding the type signature of
83 signal arguments to any methods which occur after them in the
84 introspection data (!) by making the parser a little more careful
85 about its current state.
87 * python/service.py: Remove debug prints from last commit (again :D).
89 * test/python/test-client.py, test/python/test-service.py: Add test
90 signals with signature decorators to test the strict marshalling code
91 gives errors at the right time. Could do with checking the signals
92 actually get emitted too, given that the test does nothing with
93 signals at the moment...
95 2005-11-07 Robert McQueen <robot101@debian.org>
97 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
98 instances to stop madness of creating new instances representing
99 the same bus connection all the time, rendering any tracking of
100 match rules and bus names quite meaningless. Caught a bug where
101 the private argument to SessionBus() and friends was being passed
102 in as use_default_mainloop by mistake. Still some problems with
103 multiple dbus_binding.Connection instances representing the same
104 low-level connection (eg when you use both SessionBus() and
105 StarterBus() in same process), but it's a lot better now than it
108 * python/dbus_bindings.pyx: Add constants with the return values
109 for bus_request_name().
111 * python/service.py: Store bus name instances in a per-dbus.Bus cache
112 and retrieve the same instances for the same name, so deletion can be
113 done with refcounting. Also now throws some kind of error if you
114 don't actually get the name you requested, unlike previously...
116 * test/python/test-client.py: Add tests for instance caching of buses
117 and bus name objects.
119 2005-11-04 Robert McQueen <robot101@debian.org>
121 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
122 marshalling of boolean values. Add some booleans to the values in
125 * python/decorators.py, python/service.py: Add an 'async_callbacks'
126 argument to the dbus.service.method decorator, which allows you to
127 name arguments to take two callback functions for replying with
128 return values or an exception.
130 * test/python/test-client.py, test/python/test-service.py: Add test
131 case using asynchronous method reply functions, both return values and
132 errors, and from within both the function itself and from a mainloop
135 * python/decorators.py, python/service.py: Perform checking that the
136 number of method/signal arguments matches the number of types in the
137 signature at class loading time, not when you first introspect the
140 * python/service.py: Remove debug print left by the last commit.
142 2005-11-03 Robert McQueen <robot101@debian.org>
144 * python/service.py: Heavy refactoring of method invocation, with
145 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
146 in favour of a new _message_cb that uses seperate functions for
147 looking up the method to call, marshalling the return values, and
148 sending exceptions as errors, and is easier to follow as a
149 consequence. Fixes some corner cases about returning things that
150 don't match your declared out_signature, allows exceptions to define
151 _dbus_error_name and have it be sent over the bus as the error name,
152 and paves the way for cool stuff like heeding the message no reply
153 flag, asynchronous method implementations, informing the method of the
154 sender, and including backtraces in the error messages.
156 * test/python/test-client.py: Catch and print exceptions thrown in the
157 async callback tests, rather than passing them to the low-level
158 bindings to be ignored in a noisy and frustrating manner.
160 2005-11-03 Robert McQueen <robot101@debian.org>
162 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
163 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
164 tweak others to be consistent.
166 * test/python/test-client.py: Tweak output of testInheritance.
168 2005-10-29 Robert McQueen <robot101@debian.org>
170 * python/service.py: Major changes to allow multiple inheritance
171 from classes that define D-Bus interfaces:
173 1. Create a new Interface class which is the parent class of
174 Object, and make the ObjectType metaclass into InterfaceType.
176 2. Patch written with Rob Taylor to replace use of method_vtable
177 with code that walks the class's __MRO__ (method resolution order)
178 to behave like Python does when invoking methods and allow
179 overriding as you'd expect. Code is quite tricky because
180 we have to find two methods, the one to invoke which has the
181 right name and isn't decorated with the /wrong/ interface,
182 and the one to pick up the signatures from which is decorated
183 with the right interface.
185 The same caveats apply as to normal multiple inheritance -
186 this has undefined behaviour if you try and inherit from two
187 classes that define a method with the same name but are
188 decorated with different interfaces. You should decorate
189 your overriding method with the interface you want.
191 3. Replace grungy introspection XML generation code in the metaclass
192 with dictionaries that cope correctly with multiple inheritance
193 and the overriding of methods. This also uses the signature
194 decorations to provide correct introspection data, including
195 the debut appearance of the types of your return values. :D
197 * test/python/test-client.py, test/python/test-service.py: Add a test
198 case to try invoking an method that overrides one inherited from a
199 D-Bus interface class.
201 2005-10-29 Robert McQueen <robot101@debian.org>
203 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
204 Add checking for the end of struct character when marshalling a
205 struct in MessageIter.append_strict.
207 * python/examples/example-service.py,
208 python/examples/gconf-proxy-service.py,
209 python/examples/gconf-proxy-service2.py: Update to use gobject
210 mainloop directly rather than appearing to depend on gtk.
212 * python/test/test-client.py, python/test/test-server.py: Remove
213 obsolete and broken test scripts for old bindings. We have up to date
214 and working tests in test/python/.
216 2005-10-29 Robert McQueen <robot101@debian.org>
218 * python/decorators.py: Add optional arguments to the method and
219 signal decorators to allow you to specify the signature of arguments
220 and return values. Preserve the doc strings of signal functions in the
221 decorated version, for pydoc and friends.
223 * python/dbus_bindings.pyx, python/proxies.py: Replace the
224 parse_signature_block function with an iterable dbus.Signature()
225 type. Fix a bug in MessageIter.append_strict where you could append
226 anything by claiming it was a string.
228 * python/service.py: Use the out_signature decoration on methods to
229 marshal return values, meaning you no longer require dbus.Array()
230 or dbus.Dictionary() to indicate the type when returning empty
231 arrays or dictionaries. Fix a bug where exceptions which are defined
232 in __main__ are not turned into error replies.
234 * test/python/test-client.py, test/python/test-service.py: Add test
235 for correct marshalling of return values according to out_signature.
236 Fix a bug in the async call test where the error_handler is missing a
239 2005-10-29 Robert McQueen <robot101@debian.org>
241 * glib/Makefile.am, glib/examples/Makefile.am,
242 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
243 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
245 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
247 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
248 from Ubuntu by Daniel Silverstone to allow specifying match rules on
251 2005-10-27 Ross Burton <ross@openedhand.com>
253 * dbus/dbus-marshal-header.c:
256 * glib/dbus-gobject.c:
257 Stop compiler warning.
259 2005-10-25 Ross Burton <ross@openedhand.com>
262 * dbus/dbus-server-unix.c:
263 * dbus/dbus-transport-unix.c:
265 * glib/dbus-gobject.c:
266 Add some const keywords.
268 2005-10-25 Ross Burton <ross@openedhand.com>
270 * doc/dbus-specification.xml:
271 Document the NoReply annotation.
273 * glib/dbus-binding-tool-glib.h:
274 * glib/dbus-binding-tool-glib.c:
275 Respect the NoReply annotation.
277 2005-10-24 Robert McQueen <robot101@debian.org>
279 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
280 derive from unicode instead of str, and encode/decode UTF-8 when
281 marshalling/unmarshalling bus messages
283 * python/introspect_parser.py: encode introspection data as UTF-8
284 before passing the buffer into libxml2
286 * test/python/test-client.py: add unicode test strings
288 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
289 ignore generated python test files
291 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
293 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
294 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
295 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
297 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
298 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
299 when constructing struct signatures
301 * python/_dbus.py (Bus): handle private connections using the
302 private keyword in the constructor. defaults to private=False
303 (Bus::close): new method to close a connection to the bus
305 * python/dbus_bindings.pyx (Connection::close): renamed method
306 was previously called disconnect
307 (bus_get): now supports getting a private connection
309 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
310 keyword is set to True. if it is, execute the method without waiting
312 (ProxyObject::_introspect_execute_queue): new method for executing
313 all the pending methods that were waiting for the introspect to
314 finish. this is called when introspect either succeeds or fails
315 (ProxyObject::_introspect_error_handler): call queued methods
317 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
319 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
320 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
322 * python/service.py (Object::_message_cb): handle exceptions correctly
323 by sending them over the wire to the calling app. This makes sure
324 the client returns immediately instead of waiting the 15 seconds to
327 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
328 Add a test to benchmark how long it takes to introspect a service and
329 call a method which returns a large element (pretty fast)
331 * test/python/test-service.py (TestObject::GetComplexArray): new test
332 method which pushes a lot of data
334 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
336 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
337 reclaim memory outside of the loop and use del istead of just setting
340 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
342 * python/service.py (ObjectType::_reflect_on_signal): Always close
343 signal tag even when there are no arguments
345 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
347 * configure.in: Set mono, mono-docs and Qt3 to default
348 to no instead of auto when building. These bindings do not
349 have full time maintainers and will not be supported for the
352 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
354 patches from Michael Krivoruchko <misha at sun.com>:
356 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
357 _dbus_connection_message_sent,
358 _dbus_connection_send_preallocated_unlocked_no_update,
359 _dbus_connection_pop_message_link_unlocked): handle the case when path
360 is NULL when calling _dbus_verbose
362 * configure.in: check for functions getpeerucred and getpeereid
364 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
365 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
366 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
367 Patch was only tested on Solaris 10 x86 so it might be issues
368 with other platforms (i.e. BSDs and MacOSX)
371 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
373 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
374 instead of marshal basic so we can handle recursive types in a variant
376 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
379 * test/glib/test-service-glib.c, test-service-glib.xml
380 (my_object_echo_variant [EchoVariant],
381 my_object_process_variant_of_array_of_ints123
382 [ProcessVariantOfArrayOfInts123]):
385 * python/introspect_parser.py: New module for parsing introspect
388 * python/dbus_bindings.pyx:
389 (various places): when throwing errors fix to use errormsg instead
390 of message local variable because Pyrex can get confused with other
391 message variables (initial patch by Robert McQueen
392 <robert.mcqueen at collabora.co.uk>)
393 (MessageIter::parse_signature_block): new method for getting the next
394 block in a signiture.
395 (MessageIter::append_strict): new method for appending values strictly
396 using the passed in signature instead of guessing at the type
397 (MessageItter:: append_dict, append_struct, append_array): use
398 signatures to marshal children if the signature is available
400 * python/exceptions.py (IntrospectionParserException): new exception
402 * python/proxies.py (ProxyMethod::__call__): Marshal args with
403 introspected signatures if available, else we fall back to the
404 old way of doing things.
405 (ProxyObject::_introspect_reply_handler ): parse introspection data
407 * python/service.py (ObjectType::_reflect_on_method): Properly
408 terminate <method> if there are no args in the reflection data
410 * test/python/test-client.py: add tests for talking with the GLib
411 test server. This gives us better coverage for introspection since
412 python to python will always generate arguments as variants. It also
413 allows us to test the robustness of the GLib bindings and interlanguage
417 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
419 * bus/driver.c (bus_driver_handle_introspect): Add signals
420 to the introspect data. (patch from Daniel P. Berrange
421 <dan at berrange.com>)
423 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
425 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
426 _dbus_connection_run_builtin_filters): Changed these to
427 be unlock_no_update functions and call
428 _dbus_connection_send_unlocked_no_update instead of
429 dbus_connection_send to avoid locking errors.
431 * doc/TODO: Removed the make Ping test TODO
433 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
435 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
436 We now copy the message from a DBusError and then free
437 the error object befor throwing the error
439 * glib/dbus-glib-tool.c: removed extra comma at the end of the
440 DBusBindingOutputMode enum which was causing a warning.
441 #include <time.h> so using time_t is explicitly defined
443 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
445 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
447 (internal_bus_get): new method that take over the heavy lifting
448 of dbus_bus_get and adds the ability to get a private connection
450 (dbus_bus_get): wrapper to internal_bus_get that provides the same
451 interface as in previous versions
452 (dbus_bus_get_private): new method that is a wrapper to
453 internal_bus_get to get a private connection to the bus
456 (dbus_bus_get_private): add as a public libdbus interface
458 - dbus-1.pc.in: output system_bus_default_address and
459 sysconfdir variables so apps can use them when compiling
461 2005-09-23 Harald Fernengel <harry@kdevelop.org>
462 * dbus/qt: New Qt bindings
464 2005-09-12 Waldo Bastian <bastian@kde.org>
466 * dbus/dbus-marshal-validate.c,
467 doc/dbus-specification.xml, test/Makefile.am,
468 test/test-names.c: allow hyphens in bus names.
470 2005-09-11 Mark McLoughlin <mark@skynet.ie>
472 * test/data/auth/fallback.auth-script: we don't
473 retry the EXTERNAL method when we know its going
476 2005-09-11 Mark McLoughlin <mark@skynet.ie>
478 * dbus/dbus-connection-internal.h: rename
479 (add|remove|toggle)_(watch|timeout) to unlocked()
481 * dbus/dbus-connection.c: ditto.
483 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
484 Update some callers for the renaming.
486 2005-09-10 Mark McLoughlin <mark@skynet.ie>
488 * dbus/dbus-auth.c: (record_mechanisms): don't
489 retry the first auth mechanism because we know
490 we're just going to get rejected again.
492 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
493 Fix thinko ... and what a nasty little bugger to
494 track down you were ...
496 * dbus/dbus-connection.c:
497 (_dbus_connection_add_watch),
498 (_dbus_connection_remove_watch): add note about
499 these needing the connection to be locked.
500 (_dbus_connection_get_dispatch_status_unlocked):
501 set status to DATA_REMAINS when we queue the
502 disconnected message.
505 (bus_dispatch): fix warning.
506 (check_existent_service_no_auto_start):
507 Expect ChildSignaled error too.
508 (check_existent_hello_from_self): fix another
511 2005-09-08 Joe Shaw <joeshaw@novell.com>
513 Patches from James Willcox <snorp@snorp.net>
515 * mono/Makefile.am: Add Int16.cs and UInt16.cs
517 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
518 support array "out" parameters.
520 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
521 for 16-bit int support.
523 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
527 * Patch from Steve Grubb:
528 - bus/activation.c (bus_activation_service_reload_test): clean up
530 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
531 - dbus/dbus-message-factory.c (generate_special): fix a couple of
532 buffer overflows in the test suite. This is non critical because
533 it can not be exploited and this code is only run when doing a
536 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
537 - configure.in: Don't check and link against kdecore, only qt headers
538 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
539 - gcj/org/freedesktop/dbus/Makefile.am:
540 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
541 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
542 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
543 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
544 - tools/Makefile.am: Add platform extentions to binaries
545 (i.e. .exe on windows)
548 - Make it so if no suitable version of python is found we only
549 disable building python instead of exiting the configure script
550 - Require version 2.4 of glib for glib bindings
553 * python/__init__.py: Sync version with libdbus to (0,50,0)
555 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
557 * dbus/dbus-object-tree.c (find_subtree_recurse):
558 a couple of optimizations (bug #710):
559 - do a binary search in the tree
560 - insert a new child at the right place directly, no need for
562 - do the "double alloc" thing when allocating children
564 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
566 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
568 * python/dbus_bindings.pyx: Memory management foo
569 (global): remove hacky _user_data_references global list
570 (GIL_safe_cunregister_function_handler): userdata now stuffed into
571 tuples. Unref user_data
572 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
573 (Connection::__del__): Remove and replace with __dealloc__ method
574 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
575 to keep tuple from being deallocated instead of the global var hack
576 (Connection::register_object_path): Stuff user_data into a tuple.
577 Use Py_INCREF to keep tuple from being deallocated instead of the
579 (Connection::register_fallback): Stuff user_data into a tuple.
580 Use Py_INCREF to keep tuple from being deallocated instead of the
582 (GIL_safe_pending_call_notification): Don't unref the message
583 because it gets unreffed when going out of scope. Py_XDECREF
585 (PendingCall::__del__): Remove and replace with __dealloc__ method
586 (PendingCall::set_notify): ref the pending call because we will
587 need it to stick around for when the notify callback gets called
588 (Message::__del__): Remove and replace with __dealloc__ method
590 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
591 gthreads_init to match up with the dbus call
593 * python/glib.py (init_threads): Changed to threads_init to match
594 up with gobject.threads_init(). init_threads is kept for backwards
595 compat but will most likely be deprecated in the future
597 * test/python/test-client.py:
598 - revamp to use Python's unittest functionality
599 - add async call tests
600 - setup threads in glib and dbus so we make sure locks are working
602 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
604 * python/dbus_bindings.pyx
605 (_pending_call_notification, cunregister_function_handler,
606 cmessage_function_handler): All callback functions have been rearranged
607 to workaround a bug in Pyrex when working with the GIL which is Python's
608 global lock when dealing with threads. They have been split into
609 a wrapper function (which assumes the name of the old function) and
610 a _GIL_safe_<function name> function which contains the functionality
611 of the old function. This ensures that Pyrex does not write code
612 the lock is released.
615 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
617 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
618 GIL global lock when calling back into Python
620 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
624 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
626 * bus/policy.c (bus_policy_allow_user): change default "user is
627 allowed" to be "user has same uid as the bus itself"; any
628 allow/deny rules will override.
630 * bus/session.conf.in: don't allow all users, since now by default
631 the user that ran the bus can connect.
633 2005-08-26 Colin Walters <walters@verbum.org>
635 * tools/dbus-print-message.c (print_message): Flush stdout
636 after printing a message, so that redirecting to a file, then
637 hitting Ctrl-C works.
639 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
641 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
642 (EmptyMessage): new class that subclasses Message. This is a workaround
643 to a Pyrex bug that fails to call __del__ when the Message object goes out
644 of scope. For some reason subclassing Message fixes this bug
645 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
646 - s/Message(_create=0)/EmptyMessage everywhere else
648 * test/python/test-{server|client}.py: add the python/.libs directory
649 to the lookup path so dbus_bindings and dbus_glib_bindings don't
650 get picked up from the system
652 2005-08-25 Colin Walters <walters@verbum.org>
654 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
655 to Ryan Lortie for the suggestion.
657 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
659 * test/python: Add python regression test
661 * configure.in: Add test/python/Makefile
663 * test/Makefile.am: Add the python directory to SUBDIRS
665 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
670 (Interface::connect_to_signal): propigate keywords for match on args
671 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
673 * python/proxies.py (ProxyObject::connect_to_signal):
674 propigate keywords for match on args
676 * Makefile.am: point everything to pyexecdir since python borks
679 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
683 2005-08-23 Colin Walters <walters@verbum.org>
685 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
687 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
689 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
690 to fix some wranings. We now use dbus_bindings.DBusConnection instead
691 of defining DBusConnection ourselves.
693 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
695 * python/dbus.pth: New path file to fix up problems when installing
696 c libraries to lib64 and python files to lib.
698 * python/Makefile.am: install dbus.pth in the correct spot
700 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
701 * ChangeLog: clean up my last entry a bit
703 * doc/introspect.xsl: New stylesheet for converting introspection data
704 into browser renderable xhtml. Contributed by Lennart Poettering.
706 * doc/introspect.dtd: Fixups in the introspect format from Lennart
709 * doc/dbus-tutorial.xml:
710 - Add Colin Walter to the Authors section for authoring the GLib
712 - Add descriptions of the new signature and type functionality
713 in the Python complex type mapping section
714 - Add a sidenote on the new args matching functionality in
716 - Fixed up some of the examples to use the gobject.MainLoop
720 (Bus::_create_args_dict): New. Converts a hash of arg matches
721 to a more useable format
722 (Bus::add_signal_receiver): add a **keywords parameter for catching
724 (Bus::remove_signal_receiver): add a **keywords parameter for catching
727 * python/matchrules.py:
728 (MatchTree::exec_matches): Check for arg matches
729 (SignalMatchRule::add_args_match): New method
730 (SignalMatchRule::execute): Added args_list parameter as an optimization
731 so we don't have to marshal the args more than once
732 (SignalMatchRule::match_args_from_list): New method that checks to see
733 if the rule's arg matches match an argument list. Only arguments
734 set in the rule are checked.
735 (SignalMatchRule::match_args_from_rule): New method that checks to see
736 if the rule's arg matches match another rule's. All args have to match
737 in order for this method to return true. If either rule has more args
738 then it is not a match.
739 (SignalMatchRule::is_match): Add args match
740 (SignalMatchRule::repr): Add args to the final output if they exist
742 2005-08-17 Ross Burton <ross@burtonini.com>
744 * glib/dbus-gproxy.c:
745 (dbus_g_proxy_call_no_reply): unref the message once sent.
746 (dbus_g_proxy_call): protect against NULL proxy.
748 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
750 * python/__init__.py: Version updated (0, 43, 0)
752 * python/dbus_bindings.pyx:
753 - Fixed type objects to have self passed into __init__
754 - Added the Variant type
755 - Add the ability to specify types or signatures for Array, Variant
757 (Connection::send_with_reply_handlers): return a PendingCall object
758 (_pending_call_notification): handle the case when an error is returned
759 without an error message in the body
760 (MessageIter::get_boolean): return True or False instead of an integer
761 (MessageIter::python_value_to_dbus_sig): add direct checking of types
762 and add checks for objects with embeded signatures or types (Array,
763 Variant and Dictionary)
764 (MessageIter::append_byte): handle case when the value is a dbus.Byte
765 (MessageIter::append_dict): handle embeded types or signatures
766 (MessageIter::append_array): handle embeded types or signatures
767 (MessageIter::append_variant): new method
770 (DeferedMethod): New. Dummy executable object used when queuing calls
771 blocking on introspection data
772 (ProxyMethod::__call__): add the timeout keyword for specifying longer
773 or shorter timeouts for method calls
774 (ProxyObject): Add first pass at an introspection state machine
775 (ProxyObject::__init__): Add introspect keyword for turing off an on
777 (ProxyObject::_Introspect): Internal Introspect call that bypasses
778 the usual mechanisms for sending messages. This is to avoid a deadlock
779 where the Intospect call would be queued waiting for the Introspect
781 (ProxyObject::_introspect_reply_handler): New. This method is called
782 when introspection returns with no error
783 (ProxyObject::_introspect_error_handler): New. This method is called
784 when introspection encounters an error
785 (ProxyObject::__getattr__): Code to handle different introspection
786 states. Queue async calls or block blocking calls if we are
787 introspecting. Pass through as normal if we are not or are done with
790 * python/service.py: Import signal and method from decorators.py
792 * python/types.py: Add Variant type
794 2005-08-16 Colin Walters <walters@verbum.org>
796 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
797 DBusError message is NULL.
799 2005-08-09 Havoc Pennington <hp@redhat.com>
801 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
802 malloc'd copy of the name parameter
804 2005-08-09 Havoc Pennington <hp@redhat.com>
806 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
807 warning if the reply serial is set to 0
809 2005-08-04 Colin Walters <walters@verbum.org>
811 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
812 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
813 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
814 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
815 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
816 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
817 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
818 * glib/dbus-gvalue.h (dbus_g_value_types_init)
819 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
820 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
822 Prefix name with _ to ensure they're not exported. All callers
825 * glib/dbus-gvalue.c (typecode_to_gtype)
826 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
827 (signature_iter_to_g_type_dict)
828 (signature_iter_to_g_type_array)
829 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
830 (dbus_gtypes_from_arg_signature):
831 Move to dbus-gsignature.c.
833 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
834 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
835 (dbus_binding_tool_output_glib_client): Ditto.
837 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
838 and dbus-gsignature.h
840 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
843 2005-08-03 Colin Walters <walters@verbum.org>
845 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
846 catch any incompatible changes accidentally made.
848 2005-08-03 Havoc Pennington <hp@redhat.com>
850 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
851 typo, from Julien Puydt
853 * bus/connection.c (bus_connection_disconnected): we were always
854 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
856 2005-08-01 Colin Walters <walters@verbum.org>
858 Patch from Joe Markus Clarke:
860 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
863 2005-08-01 Colin Walters <walters@verbum.org>
865 Patch from Joe Markus Clarke:
867 * tools/dbus-send.c (main):
869 Don't use C99 style initializers (bug #3933).
871 2005-08-01 Colin Walters <walters@verbum.org>
873 Patch from Joe Markus Clarke:
875 * glib/dbus-gvalue.c (dbus_g_value_types_init):
876 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
877 * glib/dbus-gobject.c (write_interface):
879 Don't use C99 style initializers (bug #3933).
881 2005-07-31 Havoc Pennington <hp@redhat.com>
883 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
884 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
886 2005-07-30 Havoc Pennington <hp@redhat.com>
888 * fix a bunch of Doxygen warnings and mistakes
890 2005-07-30 Havoc Pennington <hp@redhat.com>
892 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
893 DBUS_BUILD_TESTS since it's now used in production code
895 2005-07-29 Havoc Pennington <hp@redhat.com>
897 * test/glib/test-profile.c (write_junk): initialize the junk
898 buffer so valgrind doesn't have a breakdown
900 2005-07-29 Havoc Pennington <hp@redhat.com>
902 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
903 (match_rule_matches): remove unused arg
904 (test_matching): add tests for match_rule_matches()
906 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
907 do arg0='foo' arg5='bar' in the match rules
908 (match_rule_matches): don't match if the arg0='foo' doesn't match.
910 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
912 2005-07-29 Ross Burton <ross@openedhand.com>
914 * dbus/dbus-connection.c:
915 Don't create a DBusCondVar which is never used.
917 2005-07-27 Ross Burton <ross@openedhand.com>
919 * dbus/dbus-message.c:
920 Reduce the size of the maximum cached message to 10K.
922 2005-07-25 Ross Burton <ross@openedhand.com>
924 * glib/dbus-gproxy.c:
925 Remove matches when all proxies are unregistered.
927 2005-07-24 Colin Walters <walters@verbum.org>
929 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
930 typedata; recursive arrays won't have it.
932 * test/glib/test-dbus-glib.c:
933 * test/glib/test-service-glib.c:
934 * test/glib/test-service-glib.xml: Add recursive arrays tests.
936 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
938 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
939 proxies.py, service.py: Cleanup of code after running it through the
940 pyflakes code checker mostly dealing with undefined names.
941 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
943 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
945 * NEWS: Update to 0.35.2
947 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
949 * python/_dbus.py: Remove import of the dbus.services
950 module as it no longer exists (patch from Dimitur Kirov)
952 * python/service.py (Object::__init__): Fixed typo
953 s/name/bus_name (patch from Dimitur Kirov)
955 * python/examples/example-signal-emitter.py: import dbus.glib
956 to get the main loop and use glib mainloop instead of gtk so
957 X doesn't have to be running.
959 * python/examples/example-signal-recipient.py: import dbus.glib
960 to get the main loop and use glib mainloop instead of gtk so
961 X doesn't have to be running. Import the decorators module
964 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
965 didn't pick up on but are needed to build
967 * configure.in: upped version to 0.35.2
969 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
970 added Colin Walters' SELinux API rename patch from head
971 s/unix sercurity context/selinux security context/
973 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
975 * python/Makefile.am: dbus_binding.pxd.in should be included
976 in EXTRA_DIST not dbus_binding.pxd
977 fix up $(srcdir) hopefully for the last time
979 * NEWS: Update to 0.35.1
981 2005-07-16 Colin Walters <walters@verbum.org>
983 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
984 from bus_driver_handle_get_connection_unix_security_context. Update for
986 (message_handlers): Update for renames.
988 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
989 _dbus_string_init failure correctly.
990 (bus_selinux_append_context): Convert SID to context. Append it
992 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
995 * bus/selinux.h: Update prototype.
997 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
998 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1000 2005-07-15 Colin Walters <walters@verbum.org>
1002 * doc/TODO: Add note about convenience wrappers.
1004 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1006 * NEWS: Update to 0.35
1008 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1010 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1011 so distcheck doesn't fail
1013 * glib/examples/Makefile.am: Add example-service.xml and
1014 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1016 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1017 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1019 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1020 compiler looks in the right places during distcheck
1022 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1024 * glib/example/Makefile.am: Fix a typo which cause make distcheck
1027 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1029 * python/examples/example-service.py,
1030 python/examples/example-signal-emitter.py: Fixed up examples
1033 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1035 * python/__init__.py: Upped to version (0,42,0) because of
1038 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1040 * ChangeLog: fix date in last entry
1042 * configure.in, bus/system.conf.in: add the ability to configure
1043 the system bus user at compiletime with the --with-dbus-user flag
1044 (patch from Kristof Vansant)
1046 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1048 * bus/dispatch.c, test/test-service.c: Add testcase
1049 for sending messages to oneself (TODO item).
1051 * python/service.py (class Object): Swap ordering of bus_name
1052 and object_path parameters to better support inheritance.
1054 * doc/dbus-tutorial.xml: change Python docs to reflect change
1055 in parameter ordering and fix the inheritance section.
1057 * doc/TODO: remove sending message to oneself TODO item
1059 2005-07-15 Ross Burton <ross@openedhand.com>
1061 * glib/dbus-gproxy.c:
1062 Fix a leak when calling methods via the proxy.
1064 2005-07-15 Colin Walters <walters@verbum.org>
1066 * bus/selinux.c (bus_selinux_append_context): Wrap in
1069 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1071 * python/_dbus.py (Bus::remove_signal_receiver):
1072 don't add a callback to the match if none has been passed in
1074 * python/matchrules.py (SignalMatchTree::remove): if the rule
1075 being matched does not have a callback treat it as a wildcard
1078 * doc/dbus-tutorial.xml: Add Python tutorial
1080 2005-07-14 Colin Walters <walters@verbum.org>
1083 (bus_driver_handle_get_connection_unix_security_context): New function.
1084 (message_handlers): Add.
1086 * bus/selinux.c (bus_selinux_append_context): New function; appends
1087 security context to message.
1089 * bus/selinux.h: Prototype.
1091 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1093 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1095 * bus/activation.c: clean up all tabs to be 8 spaces
1096 (bus_activation_activate_service): make sure we clean up
1099 * bus/dispatch.c: clean up all tabs to be 8 spaces
1100 (check_shell_fail_service_auto_start): New function
1101 tests to make sure we get fail properly when trying to auto start a service
1102 with a faulty command line
1103 (check_shell_service_success_auto_start): New function tests to make sure
1104 auto started services get the arguments on the command line
1106 * test/test-shell-service.c: Added service for testing auto-starting with
1107 command line arguments
1109 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
1110 test/data/valid-service-files/debug-shell-echo-success.service.in:
1111 Added service files for testing auto-starting with command line arguments
1113 * */.cvsignore: added a bunch of generated files to various .cvsignore files
1115 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
1117 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1119 * dbus/Makefile.am: added new files to build.
1121 * bus/activation.c (bus_activation_activate_service): support
1122 activation commands with parameters.
1124 * test/shell-test.c: added test program for the shell parsing
1127 2005-07-13 David Zeuthen <davidz@redhat.com>
1129 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1130 64 bit signed and unsigned parameters
1132 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
1134 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1136 * python/service.py (class Name): renamed BusName to make it clearer
1137 what the object is for (a name on the bus)
1139 * python/examples/example-service.py,
1140 python/examples/example-signal-emitter.py: change the Name object to
1143 2005-07-12 Colin Walters <walters@verbum.org>
1145 Patch from Jim Gettys <Jim.Gettys@hp.com>.
1147 * tools/dbus-launch.c: Include sys/select.h.
1149 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
1150 * python/dbus_bindings.pyx.in: removed
1152 * python/dbus_bindings.pyx: Added.
1153 - Fixed some memleaks (patch from
1154 Sean Meiners <sean.meiners@linspireinc.com>)
1155 - Broke out the #include "dbus_h_wrapper.h" and put it in its
1156 own pxd file (Pyrex definition)
1157 - Broke out glib dependancies into its own pyx module
1159 * python/dbus_bindings.pdx: Added.
1160 - Defines C class Connection for exporting to other modules
1162 * python/dbus_glib_bindings.pyx: Added.
1163 - New module to handle lowlevel dbus-glib mainloop integration
1165 * python/glib.py: Added.
1166 - Registers the glib mainloop when you import this module
1168 * python/services.py: Removed (renamed to service.py)
1170 * python/service.py: Added.
1171 - (class Server): renamed Name
1173 * python/__init__.py: Bump ro version (0,41,0)
1174 -don't import the decorators or service module
1175 by default. These now reside in the dbus.service namespace
1177 * python/_dbus.py (Bus::__init__): Add code run the main loop
1178 setup function on creation
1180 * python/examples/example-service.py,
1181 python/examples/example-signal-emitter.py: update examples
1183 * python/examples/gconf-proxy-service.py,
1184 python/examples/gconf-proxy-service2.py: TODO fix these up
1186 * doc/TODO: Addition
1187 - Added a Python Bindings 1.0 section
1188 - added "Add match on args or match on details to match rules"
1191 2005-07-12 Colin Walters <walters@verbum.org>
1193 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
1194 (statemachine-glue.h):
1195 * glib/examples/Makefile.am (example-service-glue.h)
1196 (example-signal-emitter-glue.h):
1197 * glib/Makefile.am (dbus-glib-error-switch.h):
1198 Add libtool --mode=execute so we use the built library instead
1199 of any installed one.
1201 2005-07-11 Colin Walters <walters@verbum.org>
1203 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1204 (dbus_g_value_types_init): Remove assertion.
1205 (dbus_g_value_get_g_type, dbus_g_value_open)
1206 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1207 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1208 functions related to DBusGValue. Now we marshal/demarshal
1209 structures as GValueArray.
1210 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1212 (signature_iter_to_g_type_array): Don't call
1213 signature_iter_to_g_type_struct.
1214 (signature_iter_to_g_type_struct): Delete.
1215 (dbus_gvalue_to_signature): Delete.
1216 (dbus_gvalue_to_signature): New function with same name as other
1217 one; we can convert structures to signatures.
1218 (demarshal_valuearray): New function.
1219 (get_type_demarshaller): Use it.
1220 (demarshal_recurse): Delete.
1221 (marshal_proxy): New function.
1222 (marshal_map): Warn if we can't determine signature from type.
1223 (marshal_collection_ptrarray): Ditto.
1224 (marshal_collection_array): Ditto.
1225 (get_type_marshaller): Use marshal_valuearray.
1226 (marshal_recurse): Delete.
1227 (_dbus_gvalue_test): Add some tests.
1229 * dbus/dbus-glib.h (struct _DBusGValueIterator):
1230 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1231 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1232 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1233 (dbus_g_value_free): Remove prototypes.
1235 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1238 * glib/examples/example-service.c:
1239 * glib/examples/example-client.c: Implement GetTuple.
1241 * test/glib/test-dbus-glib.c:
1242 * test/glib/test-service-glib.c:
1243 * test/glib/test-service-glib.xml: Add structure tests.
1245 2005-07-10 Colin Walters <walters@verbum.org>
1247 * doc/TODO: Knock off some GLib items with this patch.
1249 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
1250 (_dbus_gvalue_signals_error): New functions.
1252 * glib/dbus-gvalue-utils.h: Prototype them.
1254 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1255 and change to not output const/retval flags for input args. All
1257 (invoke_object_method): Refactor to handle return values. Add
1258 some more comments in various places. Remove debug g_print.
1260 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1262 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1264 (compute_gsignature): New function; refactored from code from
1265 compute_marshaller and compute_marshaller_name. Enhance to
1266 handle return values and async ops more cleanly. Update for
1267 async ops returning NONE instead of BOOLEAN.
1268 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1269 and output appropriate string.
1270 (generate_glue): Handle return value annotation. Also don't dump
1271 constness flag for input arguments.
1273 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1274 files shared between installed library and utilities.
1275 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1276 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1277 binding tool can access gtype utility functions.
1279 * test/glib/test-service-glib.c:
1280 * test/glib/test-service-glib.xml:
1281 * test/glib/test-dbus-glib.c: Add some tests for return values.
1283 2005-07-09 Colin Walters <walters@verbum.org>
1285 * glib/dbus-gparser.c (parse_annotation): Add annotations to
1286 argument if available, not method.
1288 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1289 (invoke_object_method): First, remove some redundant
1290 GValues (object_value, error_value) in favor of working on
1291 array directly. Second, rework constness to be less buggy.
1292 Now we iterate directly over the argument metadata instead
1293 of parallel iterating over output signature and metadata.
1295 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1297 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1298 annotation on input args.
1300 2005-07-09 Colin Walters <walters@verbum.org>
1302 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1305 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1308 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1309 (method_dir_signature_from_object_info): Handle arg_iterate change.
1310 (write_interface): Ditto.
1311 (lookup_object_info): Don't barf if format_version is > 0.
1312 (invoke_object_method): Handle arg constness.
1314 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1315 (arg_info_new): Create.
1316 (arg_info_unref): Destroy.
1317 (arg_info_get_annotations, arg_info_get_annotation)
1318 (arg_info_add_annotation): New functions.
1320 * glib/dbus-gidl.h: Prototype them.
1322 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1323 args, disallow them in properties.
1324 (parse_annotation): Handle arg annotations.
1326 * test/glib/test-service-glib.xml:
1327 * test/glib/test-service-glib.c: Update to make some methods
1330 2005-07-08 Colin Walters <walters@verbum.org>
1332 * test/glib/test-service-glib.xml:
1333 * test/glib/test-service-glib.c:
1334 * test/glib/test-dbus-glib.c: Test a{sv}.
1336 * glib/examples/statemachine/statemachine.c:
1337 * glib/examples/statemachine/statemachine-server.c:
1338 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1339 add progress bar, etc.
1341 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1342 needed anymore due to generic array/map marshalling.
1343 (dbus_g_value_types_init): Don't register basic arrays or the
1345 (dbus_gtype_from_signature_iter): Don't try to recurse into
1347 (dbus_gtype_to_signature): Check collection/map before type
1349 (demarshal_garray_basic): Renamed to demarshal_collection_array.
1350 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1351 generic map creation/append functions instead of hash table
1353 (get_type_demarshaller): Handle maps.
1354 (demarshal_collection): Dispatch on collection type to either
1355 demarshal_collection_ptrarray or demarshal_collection_array.
1356 (get_type_marshaller): Handle maps.
1357 (marshal_collection): Dispatch collection type to either
1358 marshal_collection_ptrarray or marshal_collection_array.
1359 (_dbus_gvalue_test): New test.
1361 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1362 (hash_free_from_gtype): Use it to free GValues.
1363 (hashtable_append): New function.
1364 (ptrarray_append): Fix prototype.
1365 (slist_append): Ditto.
1366 (_dbus_gvalue_utils_test): Extend tests.
1368 * glib/dbus-gtype-specialized.c
1369 (dbus_g_type_specialized_init_append): Renamed from
1370 dbus_g_type_specialized_collection_init_append. Remove const from
1371 value, since we steal it.
1372 (dbus_g_type_specialized_map_append): New function.
1374 * glib/dbus-gtype-specialized.h: Update prototypes.
1375 Add DBusGTypeSpecializedMapAppendFunc.
1377 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1380 * glib/dbus-gtest.h: Prototype it.
1382 2005-07-08 Ross Burton <ross@openedhand.com>
1385 Add DBysGAsyncData for the async bindings.
1387 * glib/dbus-binding-tool-glib.c:
1388 Re-enable the async bindings.
1390 * test/glib/test-dbus-glib.c:
1391 Add a test for the generated async bindings.
1393 2005-07-08 Colin Walters <walters@verbum.org>
1395 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1398 2005-07-08 Colin Walters <walters@verbum.org>
1400 * tools/Makefile.am: Kill of print-introspect in favor of using
1401 dbus-send --print-reply=literal.
1403 * test/glib/test-service-glib.xml:
1404 * test/glib/test-service-glib.c (my_object_get_objs): New test
1407 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1408 (main): Test GetObjs.
1410 * glib/examples/statemachine/Makefile.am:
1411 * glib/examples/statemachine/sm-marshal.list:
1412 * glib/examples/statemachine/statemachine-client.c:
1413 * glib/examples/statemachine/statemachine-server.c:
1414 * glib/examples/statemachine/statemachine-server.xml:
1415 * glib/examples/statemachine/statemachine.c:
1416 * glib/examples/statemachine/statemachine.h:
1417 * glib/examples/statemachine/statemachine.xml:
1421 * glib/examples/example-service.c (main): Move invocation
1422 of dbus_g_object_type_install_info earlier, to emphasize it
1423 should only be done once.
1425 * glib/examples/example-signal-emitter.c (main): Ditto.
1427 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1429 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1430 (dbus_gvalue_marshal): Update prototypes.
1432 * glib/dbus-gvalue.c: Update all marshalling functions to take
1433 const GValue instead of GValue.
1434 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1436 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1438 (dbus_gtype_to_signature): Handle generic collecitons and maps.
1439 Return a newly-allocated string.
1440 (demarshal_proxy, demarshal_object_path, demarshal_object)
1441 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1442 we get the wrong types from message.
1443 (get_type_demarshaller): New function, extracted from
1444 dbus_gvalue_demarshal.
1445 (demarshal_collection): New function, demarshals generic
1447 (dbus_gvalue_demarshal): Just invoke result of
1448 get_type_demarshaller. Throw error if we don't have one.
1449 (marshal_garray_basic): Abort on OOM.
1450 (get_type_marshaller): New function, extracted from
1451 dbus_gvalue_marshal.
1452 (collection_marshal_iterator, marshal_collection): New functions;
1453 implements generic marshalling for an iteratable specialized
1455 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1457 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1459 (ptrarray_value_from_gvalue): Ditto.
1460 (ptrarray_append, ptrarray_free): New functions.
1461 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
1462 (slist_append, slist_end_append, slist_free): New functions.
1463 (dbus_g_type_specialized_builtins_init): Add append fuctions
1464 for GPtrArray and GSList. Register GSList.
1465 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1467 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1469 (dbus_g_type_specialized_collection_init_append)
1470 (dbus_g_type_specialized_collection_append)
1471 (dbus_g_type_specialized_collection_end_append): Prototype.
1472 (DBusGTypeSpecializedCollectionVtable): Add append_func and
1475 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
1476 (dbus_g_type_specialized_collection_append)
1477 (dbus_g_type_specialized_collection_end_append): New functions.
1478 (dbus_g_type_map_value_iterate): Take const GValue.
1479 (dbus_g_type_collection_value_iterate): Ditto.
1481 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1482 _dbus_gvalue_utils_test.
1484 * glib/dbus-gtest.h: Prototype it.
1486 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1487 using uninitialized owner_list.
1488 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1490 (dbus_g_proxy_end_call_internal): Update to use error set
1491 from dbus_gvalue_demarshal instead of setting it here.
1492 (dbus_g_proxy_begin_call): Move return_if_fail here.
1494 * glib/dbus-gobject.c (write_interface): Update for
1495 dbus_gtype_to_signature returning new string.
1497 * configure.in: Add glib/examples/statemachine.
1499 2005-07-08 Joe Shaw <joeshaw@novell.com>
1501 * configure.in: Add a configure option, --with-console-auth-dir
1503 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1504 new setting. Patch from Kay Sievers.
1506 2005-07-06 Colin Walters <walters@verbum.org>
1508 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1509 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1510 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1511 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1512 Delete in favor of dbus_g_proxy_begin_call and
1513 dbus_g_proxy_cancel_call.
1514 (DBusGProxyCall, DBusGProxyCallNotify): New.
1515 (dbus_g_proxy_begin_call): Change prototype to take callback, user
1516 data, and destroy function. This replaces
1517 dbus_g_pending_call_set_notify.
1518 (dbus_g_proxy_cancel_call): Prototype.
1519 (DBusGAsyncData): Delete, shouldn't be needed anymore.
1521 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1523 (struct _DBusGProxyManager): Add bus_proxy member, which is an
1524 internal proxy for calls to the bus. Remove
1525 pending_nameowner_calls, now the internal proxy keeps track.
1526 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1527 pending_nameowner_calls.
1528 (got_name_owner_cb): Update prototype, and use
1529 dbus_g_proxy_end_call.
1530 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1531 (dbus_g_proxy_manager_register): Delete directly libdbus code in
1532 favor of using internal proxy.
1533 (dbus_g_proxy_manager_unregister): Update to use
1534 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1535 (dbus_g_proxy_init): Initialize pending calls map.
1536 (dbus_g_proxy_constructor): New.
1537 (dbus_g_proxy_class_init): Add get/set property functions,
1538 constructor, and add NAME, PATH, and INTERFACE properties.
1539 (cancel_pending_call): New function.
1540 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1542 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1543 (GPendingNotifyClosure): New structure.
1544 (d_pending_call_notify, d_pending_call_free): Moved here from
1546 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1548 (manager_begin_bus_call): New internal function for talking to
1550 (dbus_g_proxy_new): Construct object using GObjet properties.
1551 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1552 Create closure of same, and insert call into map of pending calls.
1553 (dbus_g_proxy_end_call_internal): Take call id instead of pending
1554 call. Look up pending call in current set. Remove it when we've
1556 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1557 (dbus_g_proxy_begin_call): Change API to take callback, user data,
1558 and destroy function directly.
1559 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1560 (dbus_g_proxy_call): Invoke with NULL callback.
1561 (dbus_g_proxy_cancel_call): New function, replaces
1562 dbus_g_pending_call_cancel.
1564 * glib/dbus-gparser.c (validate_signature): Fix call to
1567 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1568 New quark for attaching metadata to GType.
1569 (info_hash): Delete.
1570 (lookup_object_info): Look up using quark.
1571 (dbus_g_object_type_install_info): Check that a type is classed,
1572 not that it's an object. Also just install type data using quark
1573 instead of using global hash.
1575 * glib/dbus-glib.c (dbus_g_pending_call_ref)
1576 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1577 (GPendingNotifyClosure): Delete.
1578 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1579 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1581 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1582 client method generation until we can fix it...
1584 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1585 (load_from_service_thread_func): Ditto.
1587 * tools/dbus-names-model.c (struct NamesModel): Hold
1589 (have_names_notify): Update prototype, use
1590 dbus_g_proxy_cancel_call.
1591 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1593 * tools/dbus-monitor.c (filter_func): Update for print_message
1596 * test/glib/test-dbus-glib.c: Add more tests for async
1597 invocations. Update many begin_call/end_call pairs to just use
1600 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
1601 allows us to dump print-introspect.c.
1603 * tools/dbus-print-message.h (print_message): Add literal argument
1604 to print_message which is intended to allow printing arguments without
1605 metadata like "string=".
1607 * tools/dbus-print-message.c (print_iter): Add literal argument.
1608 (print_message): Allow printing string messages literally.
1610 2005-07-05 Colin Walters <walters@verbum.org>
1612 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1613 Remove value refcount leak, original patch from Jorn Baayen
1614 <jorn@openedhand.com>. Also remove useless extra value in favor
1615 of prepending to value array directly.
1617 2005-07-02 Colin Walters <walters@verbum.org>
1619 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1621 2005-07-01 Colin Walters <walters@verbum.org>
1623 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1625 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1626 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1627 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1628 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1630 2005-06-30 Colin Walters <walters@verbum.org>
1632 * test/glib/test-dbus-glib.c:
1633 * test/glib/test-service-glib.c:
1634 * test/glib/test-service-glib.xml: Update tests for new error
1635 setting bits, also add async tests (patch from Ross Burton).
1637 * test/glib/Makefile.am (test_service_glib_LDADD): Add
1638 DBUS_GLIB_THREADS_LIBS.
1640 * glib/dbus-gproxy.c (get_name_owner)
1641 (dbus_g_pending_call_end_valist): Ditto.
1643 * glib/dbus-gobject.c (error_metadata): New mapping from GError
1644 domain (GQuark) to DBusGErrorInfo.
1645 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1646 quark in error_metadata. Take message interface as default
1647 error message interface.
1648 (gerror_to_dbus_error_message): Pass message interface.
1649 (dbus_set_g_error): Resurrected.
1650 (dbus_g_error_info_free): New function.
1651 (dbus_g_object_type_install_info): Use g_type_class_ref instead
1652 of _peek to actually create the object class if it hasn't been
1654 (dbus_g_error_domain_register): New function.
1656 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1658 * glib/dbus-gparser.c (validate_signature): Ditto.
1660 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1661 (dbus_g_error_domain_register): Prototype.
1663 * glib/dbus-glib.c (dbus_g_error_set): Delete.
1666 2005-06-29 Colin Walters <walters@verbum.org>
1668 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
1669 DBUS_TYPE_G_OBJECT_PATH.
1671 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1672 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1673 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
1674 (dbus_g_object_path_get_g_type): New function.
1675 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1676 to DBUS_TYPE_G_OBJECT_PATH by default.
1677 (demarshal_proxy): Remove unused name variable.
1678 (demarshal_object_path, marshal_object_path): New functions.
1679 (demarshal_proxy_array, marshal_proxy_array): Delete.
1681 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1682 DBUS_TYPE_G_OBJECT_PATH to char *.
1683 (dbus_g_type_get_lookup_function): Map builtin
1684 DBUS_TYPE_G_OBJECT_PATH.
1686 * test/glib/test-dbus-glib.c
1687 * test/glib/test-service-glib.c (my_object_objpath):
1688 Adapt tests to new object path marshalling.
1690 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
1692 * configure.in: force check for Python >= 2.4
1694 2005-06-29 Colin Walters <walters@verbum.org>
1696 Patch from Ross Burton <ross@openedhand.com>
1698 * glib/dbus-gobject.c (invoke_object_method): Unset object
1699 value in all cases, not only in async case.
1701 2005-06-29 Colin Walters <walters@verbum.org>
1703 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1704 name_call for keeping track of any outgoing GetNameOwner call.
1705 Also add for_owner and associated.
1706 (struct _DBusGProxyManager): Add owner_names, which is hash table
1707 that maps a base name to a list of names it owns (that we're
1708 interested in). Add pending_nameowner_calls which is a list of
1709 all outstanding GetNameOwner; avoids us having to iterate over
1710 every proxy. Add unassociated_proxies which keeps track of name
1711 proxies with no associated name owner.
1712 (dbus_g_proxy_manager_unref): Destroy owner_names.
1713 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1715 (find_name_in_info, name_owner_foreach)
1716 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1717 (dbus_g_proxy_manager_monitor_name_owner)
1718 (dbus_g_proxy_manager_unmonitor_name_owner)
1719 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1720 New functions; they manipulate the owner_names mapping.
1721 (got_name_owner_cb): New function.
1722 (get_name_owner): New function, extracted from
1723 dbus_g_proxy_new_for_name_owner.
1724 (dbus_g_proxy_manager_register): For now we need to keep track of
1725 all NameOwnerChanged. Also if the proxy is for a name, if we
1726 don't already know the name owner, queue a new GetNameOwner
1727 request and add it to our list of unassociated proxies. Otherwise
1729 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1730 cancel any pending GetNameOwner call, etc.
1731 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
1732 the owner_names mapping to look up the current names for the
1733 signal source, and dispatch to any proxies for that name.
1734 (dbus_g_proxy_new): Initialize new members.
1735 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1736 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1737 (dbus_g_pending_call_end_valist): New function, extracted from
1738 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
1739 but want to use the GLib infrastructure. Also note how many
1740 arguments in reply were over.
1741 (dbus_g_pending_call_end): New function, just call
1742 dbus_g_pending_call_end_valist.
1743 (dbus_g_proxy_end_call_internal): Just call
1744 dbus_g_pending_call_end_valist.
1746 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1747 of builtin marshaller for STRING_STRING_STRING.
1749 * test/glib/test-dbus-glib.c:
1750 * test/glib/test-service-glib.c:
1751 * test/glib/test-service-glib.xml:
1752 Extend tests to cover name proxies, destruction of owner proxies,
1755 * glib/examples/example-signal-recipient.c
1756 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1758 * tools/dbus-send.c (main): Print D-BUS error name in addition
1761 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
1763 * python/dbus_bindings.pyx.in (cunregister_function_handler,
1764 cmessage_function_handler): Patch from
1765 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1766 by using the Py_GILState_Ensure/Release to synchronize with the
1769 2005-06-28 Ray Strode <rstrode@redhat.com>
1771 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1772 babysitter helper process on last unref, bug #2813.
1774 2005-06-27 Colin Walters <walters@verbum.org>
1776 * test/glib/test-dbus-glib.c:
1777 * test/glib/test-service-glib.c:
1778 * test/glib/test-service-glib.xml:
1779 Test hash table signal emitting.
1781 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1782 types to their fundamental basis types, since this is what
1783 marshallers operate on. Also add an entry for VOID__BOXED.
1784 (dbus_g_object_register_marshaller_array): Convert to fundamental.
1786 2005-06-26 Havoc Pennington <hp@redhat.com>
1788 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1791 2005-06-26 Colin Walters <walters@verbum.org>
1793 * glib/dbus-glib.c (dbus_set_g_error): Delete.
1794 (dbus_g_error_set): New public function from its ashes; used by
1795 both service-side method implementation and GLib bindings
1797 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1798 (_dbus_glib_test): Add some tests.
1800 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1802 * test/glib/test-service-glib.c (my_object_throw_error): Use
1805 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1806 errors thrown by dbus_g_error_set.
1808 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1810 * glib/dbus-gparser.c (validate_signature): Ditto.
1812 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
1813 (dbus_g_proxy_end_call_internal): Ditto.
1815 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1816 converts DBUS_ERROR_x to DBUS_GERROR_x.
1817 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1819 * doc/TODO: Remove error TODO.
1821 * doc/dbus-tutorial.xml: Update with documentation about error
1824 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1825 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1826 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
1828 2005-06-22 Colin Walters <walters@verbum.org>
1830 Patch from Ross Burton <ross@openedhand.com>
1832 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1834 2005-06-20 Colin Walters <walters@verbum.org>
1836 * configure.in: Add glib/examples.
1838 * glib/Makefile.am: Add examples/
1840 * glib/examples/.cvsignore
1841 * glib/examples/Makefile.am
1842 * glib/examples/example-client.c
1843 * glib/examples/example-service.c
1844 * glib/examples/example-service.xml
1845 * glib/examples/example-signal-emitter.c
1846 * glib/examples/example-signal-emitter.xml
1847 * glib/examples/example-signal-recipient.c:
1848 New files; GLib binding examples, ported from
1851 2005-06-20 Colin Walters <walters@verbum.org>
1854 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
1857 * glib/dbus-binding-tool-glib.c:
1858 * doc/dbus-tutorial.xml:
1859 * test/glib/test-dbus-glib.c: Update for rename.
1861 2005-06-20 Colin Walters <walters@verbum.org>
1863 Patch suggested by Ross Burton <ross@openedhand.com>
1865 * glib/dbus-gobject.c (export_signals): Free signal name.
1866 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
1867 memory leak. Add a bit of documentation.
1868 (dbus_g_method_return_error): Free context, and note we do
1871 2005-06-18 Murray Cumming <murrayc@murrayc.com>
1874 * glib/dbus-gobject.c:
1875 * glib/dbus-gproxy.c:
1876 * glib/dbus-gvalue.c: Predeclare structs as
1877 typedef struct _Something Something instead of
1878 typedef struct Something Something, so we can
1879 redeclare the prototypes. Other GNOME libraries
1882 2005-06-17 Colin Walters <walters@verbum.org>
1884 * tools/dbus-names-model.c (have_names_notify): Fix call
1885 to dbus_g_proxy_end_call.
1887 2005-06-17 Colin Walters <walters@verbum.org>
1889 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
1890 spew warnings if we get malformed remote signals.
1892 * glib/dbus-gobject.c (propsig_iterate): New function.
1893 (lookup_object_info): New function, extracted from
1894 lookup_object_and_method.
1895 (introspect_properties, introspect_signals): Delete; these
1896 are merged into write_interface.
1897 (write_interface): Write out signals and properties here;
1898 dump the org.gtk.object stuff and use the interface given
1899 in the introspection data blob. Also fix up property XML.
1900 (lookup_values): New function.
1901 (introspect_interfaces): Gather a mapping from interface to a
1902 list of its methods, signals, and properties, then write out
1904 (lookup_object_and_method): Use lookup_object_info.
1905 (struct DBusGSignalClosure): Add interface.
1906 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
1907 we can just use the constant data.
1908 (dbus_g_signal_closure_finalize): Don't free signal name.
1909 (signal_emitter_marshaller): Use interface from signal closure.
1910 (export_signals): Only export signals mentioned in introspection
1912 (dbus_g_connection_register_g_object): Warn if we have no
1913 introspection data for an object.
1914 (funcsig_equal): Remove unused variable.
1915 (dbus_g_object_register_marshaller): Take varargs instead of
1917 (dbus_g_object_register_marshaller_array): New function,
1918 extracted from old dbus_g_object_register_marshaller.
1920 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
1921 signals and property data.
1922 (write_quoted_string): New function, extracted from generate_glue.
1923 (generate_glue): Write signals and properties to introspection
1926 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
1927 exported_signals and exported_properties.
1928 (dbus_g_object_register_marshaller): Update prototype.
1929 (dbus_g_object_register_marshaller_array): Prototype.
1931 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
1933 * test/glib/test-service-glib.c: Add new test signals and method
1936 * test/glib/test-service-glib.xml: Add some test signals.
1938 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
1939 and my-object-marshal.h
1940 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
1941 my-object-marshal.c.
1942 (my-object-marshal.c, my-object-marshal.h): Implement.
1944 * test/glib/.cvsignore: Update.
1946 * doc/TODO: Remove two GLib TODO items fixed by this
1949 2005-06-16 Colin Walters <walters@verbum.org>
1951 * doc/TODO: Update for GLib bindings.
1953 2005-06-16 Colin Walters <walters@verbum.org>
1955 * glib/dbus-binding-tool-glib.c:
1956 * glib/dbus-gobject.c:
1957 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
1958 from Ross Burton, for his GLib bindings work.
1960 2005-06-16 Colin Walters <walters@verbum.org>
1962 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
1963 to iterate instead of walking to G_TYPE_INVALID.
1965 Patch based on a patch from Ryan Gammon.
1967 2005-06-16 Colin Walters <walters@verbum.org>
1969 * bus/bus.c (bus_context_new): Set parser to NULL
1970 after we unref it (Patch from Chris Boscolo, #2174).
1972 2005-06-16 Colin Walters <walters@verbum.org>
1974 * python/dbus_bindings.pyx.in: Import size_t,
1975 __int64_t, __uint64_t, and __signed.
1977 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
1978 Define cmsg struct, output it.
1979 (_dbus_read_credentials_unix_socket):
1982 Patch from Joe Markus Clarke for FreeBSD support.
1984 2005-06-16 Colin Walters <walters@verbum.org>
1986 * tools/dbus-send.c (append_array): Use strtok.
1987 (append_dict): New function.
1988 (type_from_name): New function, extracted from main.
1989 (main): Handle sending dicts.
1991 * tools/dbus-print-message.c (print_iter): Print dict
1994 2005-06-16 Colin Walters <walters@verbum.org>
1996 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
1997 values as the empty string (#2948).
1999 2005-06-16 Colin Walters <walters@verbum.org>
2002 * mono/doc/Makefile.am:
2003 * test/glib/Makefile.am:
2005 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2007 2005-06-16 Colin Walters <walters@verbum.org>
2009 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2010 header byte order from expected byte order (Patch from Chris Wilson, #3475).
2012 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
2013 Increment pointer after swapping fixed array. Add assertion
2016 2005-06-15 Colin Walters <walters@verbum.org>
2018 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2019 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
2021 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2023 * NEWS: Update to 0.34
2025 2005-06-15 David Zeuthen <davidz@redhat.com>
2027 * configure.in (LT_CURRENT): Revert back to 1 as the library
2028 hasn't changed and we've certainly not committed to protocol
2029 stability yet. All this does is to break ABI. See commit note
2030 from hp@redhat.com 2005-05-05 for details.
2032 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2034 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
2035 (_dbus_connection_run_builtin_filters): New method
2036 (dbus_connection_dispatch): Run the builtin filters which in turn
2037 runs the peer filter which handles Ping messages.
2040 - Ping isn't handled: This patch fixes it
2042 - Add a test case for the Ping message: added TODO item
2044 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2046 * dbus/dbus-message.c:
2047 (dbus_message_has_path): New method
2048 (dbus_message_has_interface): New method
2049 (dbus_message_has_member): New method
2051 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2054 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
2055 the keyring directory is private to the user
2058 - The convenience functions in dbus-bus.h should perhaps have
2059 the signatures that they would have if they were autogenerated
2060 stubs. e.g. the acquire service function. We should also evaluate
2061 which of these functions to include, in light of the fact that
2062 GLib/Qt native stubs will probably also exist.: Punted
2064 - add dbus_message_has_path(), maybe has_member/interface:
2067 - in dbus-keyring.c, enforce that the keyring dir is not
2068 world readable/writable: Fixed in this patch
2070 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2072 * dbus/dbus-marshal-validate.h: Added a new validation
2073 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
2074 out of memory errors when validating signitures
2076 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2077 in places where we previously used DBUS_VALID and a FALSE return
2078 value to indicate OOM
2080 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2081 Use a stack to track the number of elements inside containers. The
2082 stack values are then used to validate that dict entries have only two
2083 elements within them.
2084 (validate_body_helper): check the reason for failure when validating
2087 * dbus/dbus-message.c (load_message): use
2088 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
2089 DBUS_VALID and a FALSE return value to indicate OOM
2091 * doc/TODO: remove "- validate dict entry number of fields" as this
2094 2005-06-14 David Zeuthen <davidz@redhat.com>
2096 * bus/bus.c (process_config_every_time): Drop existing conf-dir
2097 watches (if applicable) and add new watches
2099 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2100 (main): Setup SIGIO signal handler if using D_NOTIFY
2102 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2104 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2105 (merge_included): Also merge conf_dirs list
2106 (bus_config_parser_unref): Clear conf_dirs list
2107 (include_dir): Add directory to conf_dirs list
2108 (bus_config_parser_get_conf_dirs): New function
2110 * bus/dir-watch.[ch]: New files
2112 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2114 * configure.in: Add checks for D_NOTIFY on Linux
2116 2005-06-14 Colin Walters <walters@verbum.org>
2118 * glib/dbus-binding-tool-glib.c:
2119 * glib/dbus-gobject.c:
2120 * glib/dbus-gvalue.c: Fix indentation and brace style.
2122 2005-06-14 Ross Burton <ross@openedhand.com>.
2124 * glib/dbus-glib.h: Make DBusGMethodInvocation
2125 a private structure. Rearrange prototypes a bit.
2127 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2128 documentation for first_arg_type.
2130 * glib/dbus-gobject.c: Move DBusGMethodInvocation
2131 here, add documentation. Move dbus_g_method_return
2132 and dbus_g_method_return_error into public API
2135 2005-06-14 Colin Walters <walters@verbum.org>
2137 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2138 Add missing return statements, noticed by Ross Burton.
2140 2005-06-13 Ross Burton <ross@openedhand.com>.
2142 * glib/dbus-gobject.c: Handle errors on message
2143 demarshalling by sending error message back.
2144 * glib/dbus-gvalue.c: Initialize return variables.
2146 2005-06-13 Colin Walters <walters@verbum.org>
2148 * glib/Makefile.am: Fix thinko in last patch.
2150 2005-06-13 Colin Walters <walters@verbum.org>
2152 * glib/Makefile.am: Move dbus-gtype-specialized.c
2153 and dbus-gtype-specialized.h into a _HEADERS variable,
2156 2005-06-12 Colin Walters <walters@verbum.org>
2158 Async signals and various bugfixes and testing by
2159 Ross Burton <ross@openedhand.com>.
2161 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2162 (dbus_gvalue_genmarshal_name_from_type)
2163 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2164 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2165 (dbus_g_value_types_init, dbus_gtype_from_signature)
2166 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2167 (dbus_gtypes_from_arg_signature): New function prototypes.
2168 (dbus_gvalue_demarshal): Take context and error arguments.
2169 (dbus_gvalue_demarshal_variant): New function.
2170 (dbus_gvalue_demarshal_message): New function.
2171 (dbus_gvalue_store): Delete.
2173 * glib/dbus-gvalue.c:
2175 File has been almost entirely rewritten; now we special-case
2176 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2177 hash tables correctly, etc. Full support for recursive values
2178 is not yet complete.
2180 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2181 argument of signal to G_TYPE_POINTER since we now pass a
2183 (lookup_g_marshaller): Delete in favor of
2184 _dbus_gobject_lookup_marshaller.
2185 (marshal_dbus_message_to_g_marshaller): Use
2186 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2187 to handle remote signal callbacks.
2188 (dbus_g_proxy_new_from_proxy): New function; creates a new
2189 DBusGProxy by copying an existing one.
2190 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2191 (dbus_g_proxy_get_path): New functions.
2192 (dbus_g_proxy_marshal_args_to_message): New function;
2193 factored out of existing code.
2194 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2195 from a varargs array.
2196 (dbus_g_proxy_begin_call_internal): New function.
2197 (dbus_g_proxy_end_call_internal): New function.
2198 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2199 as arguments; simply invoke dbus_g_proxy_begin_call_internal
2200 after collecting args into value array.
2201 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2202 invoke dbus_g_proxy_end_call_internal.
2203 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2205 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2207 (array_free_all): New function.
2208 (dbus_g_proxy_add_signal): Take GTypes.
2210 * glib/dbus-gobject.h:
2211 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2212 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2215 * glib/dbus-gobject.c: Add a global marshal_table hash which
2216 stores mappings from type signatures to marshallers. Change lots
2217 of invocations of dbus_gtype_to_dbus_type to
2218 dbus_gtype_to_signature.
2219 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2220 (introspect_signals): Fix test for query.return_type.
2221 (set_object_property): Update invocation of dbus_gvalue_demarshal.
2222 (invoke_object_method): Many changes. Handle asynchronous
2223 invocations. Convert arguments with
2224 dbus_gvalue_demarshal_message. Handle errors. Use
2225 DBusSignatureIter instead of strlen on args. Handle all arguments
2226 generically. Special-case variants.
2227 (dbus_g_method_return, dbus_g_method_return_error): New function.
2228 (DBusGSignalClosure): New structure, closes over signal
2230 (dbus_g_signal_closure_new): New function.
2231 (dbus_g_signal_closure_finalize): New function.
2232 (signal_emitter_marshaller): New function; is special marshaller
2233 which emits signals on bus.
2234 (export_signals): New function; introspects object signals and
2236 (dbus_g_object_type_install_info): Take GType instead of
2238 (dbus_g_connection_register_g_object): Invoke export_signals.
2239 (dbus_g_connection_lookup_g_object): New function.
2240 (DBusGFuncSignature) New structure; used for mapping type
2241 signatures to marshallers.
2242 (funcsig_hash): New function; hashes DBusGFuncSignature.
2243 (funcsig_equal): New function; compares DBusGFuncSignature.
2244 (_dbus_gobject_lookup_marshaller): New function.
2245 (dbus_g_object_register_marshaller): New function; used to
2246 register a marshaller at runtime for a particular signature.
2248 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2250 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2251 which notes a server method implementation should be
2254 * glib/dbus-binding-tool-glib.c
2255 (dbus_binding_tool_output_glib_server): Call
2256 dbus_g_value_types_init.
2257 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
2259 (dbus_g_type_get_lookup_function): Turn GType into an invocation
2260 of a lookup function.
2261 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2262 (write_untyped_out_args): New method; write output arguments.
2263 (write_formal_declarations_for_direction): Function for
2265 (write_formal_parameters_for_direction): Function for
2266 writing implementations.
2267 (write_typed_args_for_direction): Function for writing
2268 arguments prefixed with GTypes.
2269 (write_async_method_client): Write out async version
2272 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2273 (dbus_g_type_get_marshal_name): Move mapping from GType
2274 to marshal name into here.
2275 (dbus_g_type_get_c_name): Move into here.
2276 (compute_marshaller): Convert signature to type with
2277 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2278 (compute_marshaller_name): Ditto.
2279 (compute_marshaller): Handle async signal annotations.
2280 (gather_marshallers): Return if we don't have a known
2282 (generate_glue): Collect introspection blob here, and
2283 write all of the blob at the end. This allows an object
2284 with multiple interfaces to work.
2285 Mark async methods in introspection blob.
2287 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2288 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2289 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2291 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2292 avoids people accidentally using DBUS_TYPE_* which should
2293 not be necessary anymore.
2294 Do include dbus-gtype-specialized.h, which are utilities
2295 for GLib container types.
2296 Add various #defines for types such as
2297 DBUS_TYPE_G_BOOLEAN_ARRAY.
2298 (DBusGValueIterator, DBusGValue): Define, not fully used
2300 (dbus_g_value_get_g_type): Type for recursive value.
2301 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2302 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2303 (dbus_g_value_free): Prototypes.
2304 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2305 (dbus_g_proxy_set_interface): Prototype.
2306 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2307 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2309 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2311 (DBusGAsyncData, DBusGMethodInvocation): Structures for
2312 doing async invocations.
2313 (dbus_g_method_return, dbus_g_method_return_error):
2315 * doc/dbus-tutorial.xml: Update GLib section.
2317 * tools/dbus-viewer.c (load_child_nodes): Update
2318 for new invocation type of dbus_g_proxy_end_call.
2319 (load_from_service_thread_func): Ditto.
2321 * tools/print-introspect.c (main): Ditto.
2323 * tools/dbus-names-model.c (have_names_notify)
2324 (names_model_reload, names_model_set_connection)
2327 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2328 needed since Python bindings use GLib bindings.
2330 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2331 Add --prefix argument.
2333 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
2334 unneeded --ignore-unsupported arg.
2336 * test/glib/test-service-glib.c:
2337 * test/glib/test-service-glib.xml:
2338 * test/glib/test-dbus-glib.c: Add many more tests.
2340 2005-06-06 David Zeuthen <davidz@redhat.com>
2342 * doc/TODO: Add item about need to remove deprecated functions.
2344 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2346 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2347 to repair the ABI which was broken with the last commit.
2349 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
2351 * dbus/dbus-connection.c, dbus/dbus-connection.h
2352 (dbus_connection_disconnect): renamed to dbus_connection_close
2353 for API symmetry with dbus_connection_open
2354 (_dbus_connection_open_internal):
2355 s/dbus_connection_disconnect/dbus_connection_close
2357 * dbus/dbus-bus.c (dbus_bus_get):
2358 s/dbus_connection_disconnect/dbus_connection_close
2360 * bus/connection.c (bus_connections_unref,
2361 bus_connections_setup_connection, bus_connections_expire_incomplete):
2362 s/dbus_connection_disconnect/dbus_connection_close
2364 * bus/dispatch.c (bus_dispatch, kill_client_connection,
2365 kill_client_connection_unchecked, check_hello_connection):
2366 s/dbus_connection_disconnect/dbus_connection_close
2368 * bus/bus.c (new_connection_callback):
2369 s/dbus_connection_disconnect/dbus_connection_close
2371 * tools/dbus-send.c (main):
2372 s/dbus_connection_disconnect/dbus_connection_close
2374 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2375 s/dbus_connection_disconnect/dbus_connection_close
2377 * test/test-service.c (path_message_func, filter_func):
2378 s/dbus_connection_disconnect/dbus_connection_close
2380 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
2382 2005-05-25 Colin Walters <walters@verbum.org>
2384 * dbus/dbus-protocol.h: Move various bus service #defines such
2385 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2387 * dbus/dbus-shared.h: Various defines moved here.
2388 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2390 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
2392 * python/__init__.py: Python bindings deserve a minor version
2393 update. Upped to (0, 40, 2)
2395 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
2397 * python/decorators.py: add explicitly_pass_message decorator
2398 for passing in the dbus message as keyword for edge case signal
2401 * python/matchrules.py (SignalMatchRule.__repr__): fix output
2402 to conform with what dbus expects for match rules
2403 (SignalMatchRule.execute): add the dbus message as a keyword
2404 if the signal handler has requested it
2406 * python/examples/example/signal-recipient.py: added some more
2407 examples on how to hook up to signals
2409 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
2411 * python/decorators.py: import dbus_bindings
2413 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
2414 SignalMatchNode): new classes that implement wildcard signal
2415 callback matching using a tree lookup. Heavily modified from a
2416 patch sent by Celso Pinto (fd.o bug #3241)
2418 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2419 use new match classes to handle signals.
2421 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
2423 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2425 2005-05-18 Havoc Pennington <hp@redhat.com>
2427 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2428 gettext. Not really worth requiring yet perhaps, but any
2429 production quality 1.0 would require it so we should go ahead and
2430 get things set up. We do have a couple token calls to
2431 bindtextdomain in the code already.
2433 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
2435 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2436 when using recursive g_main_loops
2438 * python/_dbus.py (class Bus): add the ProxyObjectClass
2439 alias for ProxyObject to make it easier for the Twisted
2440 networking framework to integrate dbus.
2442 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2443 alias for ProxyMethod to make it easier for the Twisted
2444 networking framework to integrate dbus.
2446 2005-05-11 Ross Burton <ross@openedhand.com>
2448 * glib/dbus-glib-tool.c: Add --prefix argument.
2449 * glib/dbus-binding-tool-glib.h: Add prefix argument.
2450 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2451 Add prefix argument.
2452 (generate_glue): Pass prefix argument down.
2453 (dbus_binding_tool_output_glib_server): Pass prefix to
2456 2005-05-11 Colin Walters <walters@verbum.org>
2458 * tools/dbus-send.c (append_array): New function.
2459 (append_arg): Broken out from main.
2460 (main): Add cheesy hack to send arrays and variants.
2462 * tools/dbus-print-message.c (print_iter): Broken out
2465 2005-05-11 Colin Walters <walters@verbum.org>
2467 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2468 New function, returns signature string for signature iter.
2469 * dbus/dbus-signature.h: Prototype it.
2470 * dbus/dbus-message.c (dbus_message_iter_get_signature):
2471 New function, returns signature string for message iter.
2472 (dbus_message_iter_get_array_len): New function, returns
2474 (dbus_message_iter_get_fixed_array): Fix assertion; this
2475 function should be used when the iter is pointing to the
2476 contents of an array
2477 * dbus/dbus-message.h: Prototypes.
2478 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2479 New function; returns length of an array.
2480 * dbus/dbus-marshal-recursive.h: Prototype it.
2482 2005-05-11 Colin Walters <walters@verbum.org>
2484 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2487 2005-05-08 Havoc Pennington <hp@redhat.com>
2489 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2490 daemon's pid, not the parent's pid, to the file descriptor.
2491 Reported by Taj Morton.
2493 2005-05-05 Havoc Pennington <hp@redhat.com>
2495 * configure.in (LT_*): add notes on how the libtool versioning
2496 works to save thinking. Increment soname to indicate protocol
2497 breakage (though really the library interface hasn't changed I
2500 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2501 verify the GUID received from server matches what we were
2502 expecting, if we had an expectation
2504 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2505 (_dbus_auth_get_guid_from_server): new function
2506 (send_begin): parse the OK args
2508 * doc/dbus-specification.xml: add GUID to the auth protocol
2510 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
2512 * Fix my name in previous changelog ;)
2514 * python/proxies.py (ProxyObject.__getattr__): add further patch
2515 from Anthony Baxter to throw an AttributeError when python
2516 __special__ functions are called instead of marshling them over
2517 the bus (Bug#1685 comment 3).
2519 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
2521 * python/Makefile.am: changed to use pyexecdir for the binding
2522 shared libraries (Bug#2494)
2524 * python/exceptions.py: bring exceptions over from the bindings
2525 so they can be used in applications (Bug#2036)
2526 Make all exceptions derive from DBusException
2528 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2529 of classes so that print obj doesn't throw an exception (Bug #1685)
2531 2005-05-03 Ross Burton <ross@openedhand.com>
2533 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2534 Return if we get an error during registration. Set up a
2535 weak reference on object to unregister if object is destroyed.
2536 (unregister_gobject): New function.
2538 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
2540 * python/dbus_bindings.pyx.in:
2541 - added new type classes for hinting to the marashaler what type
2542 to send over the wire
2543 - added int16 and uint16 marshalers
2544 - Fixed a bug in the type constants that caused int32 to go out
2545 as uint16 over the wire
2546 * python/dbus.py: split up into different files and renamed _dbus.py
2547 * python/__init__.py, python/_util.py, python/decorators.py,
2548 python/exceptions.py, python/proxies.py, python/services.py,
2549 python/types.py: new files split off from dbus.py
2550 * python/Makefile.am: Add new files, remove dbus.py and
2551 install all python files to <python module dir>/dbus
2552 * python/examples/*: Added #!/usr/bin/env python to the top of
2553 every example. Patch provided by Tatavarty Kalyan
2555 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2557 * NEWS: Update to 0.33
2559 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2561 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2562 method for doing async calls
2563 (_pending_call_notification): New C function for handling pendning call
2565 (set_notify): New method for setting pending call notification
2567 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2568 Async capabilities added to remote method calls
2569 (Sender): class removed
2570 (RemoteService): class removed
2571 (ObjectTree): class removed for now
2572 (RemoteObject): Renamed to ProxyObject
2573 (RemoteMethod): Renamed to ProxyMethod
2574 (method): Decorator added for decorating python methods as dbus methods
2575 (signal): Decorator added for decorating python methods as signal emitters
2576 (ObjectType): Metaclass added for generating introspection data and the
2577 method callback vtable
2578 (Interface): Wrapper class added to wrap objects in a dbus interface
2579 (Object): Uses ObjectType as its metaclass and exports Introspect
2580 of the org.freedesktop.DBus.Introspectable interface
2581 (ValidationException, UnknownMethodException): new exceptions
2583 * python/examples/*: Modified to fit with the new bindings
2585 2005-04-23 Havoc Pennington <hp@redhat.com>
2587 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2588 reported by Tony Houghton
2590 * test/test-service.c (main): test
2591 dbus_connection_get_object_path_data()
2593 * dbus/dbus-object-tree.c (find_handler): be sure we always init
2595 (_dbus_object_tree_get_user_data_unlocked): new function used by
2596 dbus_connection_get_object_path_data()
2597 (do_register): add assertion test for get_user_data_unlocked
2598 (object_tree_test_iteration): more tests
2600 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2601 new function from Dan Reed to let you get the user data from
2602 dbus_connection_register_object_path()
2604 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
2606 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2607 in numerous places that did not account for the NULL terminator
2608 (signature_from_seed): changed the manual string copy loop to
2609 just use strcpy instead
2610 make check should now pass
2612 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
2614 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2615 so that it allows messages that are not signals to pass in
2616 NULL as the interface.
2618 2005-04-18 David Zeuthen <davidz@redhat.com>
2620 * glib/dbus-gmain.c (io_handler_destroy_source):
2621 (timeout_handler_destroy_source, connection_setup_free):
2622 Also unref the source to avoid memory leaks.
2624 2005-04-13 David Zeuthen <davidz@redhat.com>
2626 * bus/config-parser.c (bus_config_parser_new): Bump this to a
2627 more reasonable, yet still totally arbitrary, value :-).
2629 2005-04-13 David Zeuthen <davidz@redhat.com>
2631 * doc/TODO: Added an "important for 1.0" item about selinux
2634 2005-04-13 David Zeuthen <davidz@redhat.com>
2636 * bus/selinux.c: Add c-file-style to top of file
2637 (log_audit_callback): Don't free the data here anymore
2638 (bus_selinux_check): Don't take spid and tpid since appending
2639 that to auxdata may OOM.
2640 (bus_selinux_allows_acquire_service): Handle OOM and signal back
2641 to the caller if we are OOM by taking an error object.
2642 (bus_selinux_allows_send): -do-
2644 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2645 and bus_selinux_allows_send
2647 * bus/bus.c (bus_context_check_security_policy): Pass error and
2648 pass on OOM thrown by bus_selinux_allows_send()
2650 * bus/services.c (bus_registry_acquire_service): Pass error and
2651 pass on OOM thrown by bus_selinux_allows_acquire_service()
2653 2005-04-13 Havoc Pennington <hp@redhat.com>
2655 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2656 message at a time to avoid monopolizing the main loop, bug
2657 #2953 from Benjamin Otte
2659 2005-04-09 Havoc Pennington <hp@redhat.com>
2661 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2662 possible overlap, fix from Daniel Reed
2663 (fixup_alignment): fix signedness warnings
2664 (_dbus_string_append_unichar): ditto
2666 2005-04-09 Havoc Pennington <hp@redhat.com>
2668 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2670 * glib/dbus-glib-tool.c (main): fix warning
2672 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2674 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2675 add a new function that can be used in simple applications that
2676 don't have a main loop and are willing to block
2678 2005-04-05 David Zeuthen <davidz@redhat.com>
2680 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2682 * glib/dbus-gmain.c:
2683 (io_handler_destroy_source): Remove from list of IO handlers
2684 of the ConnectionSetup object
2685 (timeout_handler_destroy_source): -do- for timeout handlers
2686 (io_handler_source_finalized): Don't remove from list since
2687 we now do that in io_handler_destroy_source(). Renamed from
2688 io_handler_source_destroyed
2689 (timeout_handler_source_destroyed): -do- for timeout handlers
2690 (connection_setup_free): It is now safe to iterate over all
2691 IO and timeout handlers as the _destroy_source removes them
2692 from the list synchronously
2694 2005-03-30 Havoc Pennington <hp@redhat.com>
2696 * configure.in: change check to gtk 2.4
2698 * tools/dbus-viewer.c (name_combo_changed_callback): remove
2699 gtk_combo_box_get_active_text() usage to decrement GTK requirement
2702 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2706 * HACKING: Fixed realease instructions. configure.in should be updated to
2707 the next release by the person who made the last release.
2709 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2711 * python/lvalue_cast_post_process.py - removed. Patch has been
2712 submitted to Pyrex maintainers that fixes gcc4.0 errors
2714 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2716 2005-03-24 Daniel Reed <n@ml.org>
2718 * tools/Makefile.am: Make print-introspect and
2719 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2721 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
2723 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2725 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
2726 had in Red Hat packages for a while but for some reason never
2728 (_dbus_is_a_number): New checks if a string
2729 can be converted to a number and does the conversion if it can
2730 (_dbus_user_database_lookup): Add check to see if the given username
2731 is a udi. This allows udi's to be used instead of usernames in the
2733 (_dbus_user_database_lookup_group): Add check to see if the given groupname
2734 is a gdi. This allows gdi's to be used instead of groupnames in the
2737 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
2739 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2740 code so that it compiles with gcc4.0
2742 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2743 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2744 results back to dbus_binding.c
2746 2005-03-20 Colin Walters <walters@verbum.org>
2748 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2750 * configure.in: Require GTK+ 2.6.
2752 2005-03-20 Colin Walters <walters@verbum.org>
2754 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2756 2005-03-17 Tom Parker <palfrey@tevp.net>
2758 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2759 print DBUS_UID_UNSET; instead print passed username. Also
2760 be sure to actually use gid looked up in cache.
2762 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2763 for DBUS_GID_UNSET and groupname.
2765 2005-03-17 Colin Walters <walters@verbum.org>
2767 * bus/print-introspect.c: Move to tools/.
2768 * bus/run-with-tmp-session-bus.sh: Ditto.
2770 * glib/Makefile.am (dbus-glib-bindings.h): Move
2771 generation to tools/Makefile.am.
2773 * test/glib/run-test.sh: Update to handle move
2774 of run-with-tmp-session-bus.sh.
2776 * test/glib/test-service-glib.c: Update to handle
2777 move of dbus-glib-bindings.h.
2779 * tools/print-introspect.c: Moved here
2780 from bus/, and ported to GLib bindings.
2782 * tools/run-with-tmp-session-bus.sh: Moved here
2785 * tools/Makefile.am: Generate dbus-glib-bindings.h
2786 and dbus-bus-introspect.xml here.
2788 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2791 2005-03-17 Colin Walters <walters@verbum.org>
2793 * bus/driver.c (write_args_for_direction): Use
2794 _dbus_string_get_const_data to retrieve string;
2795 _dbus_string_get_const_data_len doesn't actually return
2796 a NULL-terminated substring.
2798 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2799 (main): Change to use org_freedesktop_DBus_request_name
2800 instead of using g_proxy_begin_call/end_call.
2802 2005-03-15 Joe Shaw <joeshaw@novell.com>
2804 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2805 generating the finalizer. Fixes from Ben Maurer.
2807 2005-03-12 Joe Shaw <joeshaw@novell.com>
2809 * mono/BusDriver.cs: Update method names: ListServices
2810 becomes ListNames; GetOwner becomes GetNameOwner.
2812 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2813 onto the eval stack when removing the delegate.
2815 2005-03-12 Joe Shaw <joeshaw@novell.com>
2817 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2818 LT_CURRENT. Set it to the autoconf variable.
2820 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2821 classes that disconnects the signal handler delegate from the
2822 service object. Fixes a big leak of proxy objects on the
2823 client side of things. Patch from Ben Maurer
2824 <bmaurer@ximian.com>
2826 2005-03-12 Colin Walters <walters@verbum.org>
2828 * bus/driver.c (write_args_for_direction): New function,
2829 parses a type signature into arguments and outputs to
2831 (bus_driver_handle_introspect): Use it instead of
2832 hardcoding XML for certain signatures.
2834 * bus/Makefile.am (dbus-bus-introspect.xml): Add
2835 dependency on dbus-daemon.
2837 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2838 argument, pass it to dbus_binding_tool_output_glib_client.
2840 * glib/dbus-binding-tool-glib.c
2841 (generate_client_glue): Protect against multiple inclusion.
2842 (dbus_binding_tool_output_glib_client): Add
2843 G_BEGIN_DECLS/G_END_DECLS.
2845 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2846 Change to just take iface prefix directly.
2847 (write_formal_parameters): Clarify error message.
2848 (check_supported_parameters): New function; checks to see type
2849 signatures of method parameters are supported.
2850 (generate_client_glue): Handle ignore_unsupported flag.
2851 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
2854 * glib/Makefile.am (dbus-glib-bindings.h): Pass
2855 --ignore-unsupported by default until glib bindings
2858 2005-03-11 Colin Walters <walters@verbum.org>
2860 * glib/Makefile.am: Generate dbus-glib-bindings.h and
2863 * bus/print-introspect.c: New file; prints introspection
2864 data for a given name and object path.
2866 * bus/run-with-tmp-session-bus.sh: New file, refactored
2867 from test/glib/run-test.sh. Creates a temporary session
2868 bus and runs another program.
2870 * test/glib/run-test.sh: Refactor to invoke
2871 run-with-tmp-session-bus.sh.
2873 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
2874 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
2875 macros instead of hardcoding.
2877 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
2879 2005-03-11 Joe Shaw <joeshaw@novell.com>
2881 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
2882 this unref; it doesn't match up evenly in some codepaths.
2883 (_dbus_connection_block_pending_call): Unref at every exitpoint;
2884 this evenly matches with the ref near the top of this function.
2886 2005-03-09 Joe Shaw <joeshaw@novell.com>
2888 * dbus/dbus-object-tree.c
2889 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
2890 and we try to unregister a path that's not registered, still go
2891 through the process of unlocking and don't just return.
2893 2005-03-09 Colin Walters <walters@verbum.org>
2895 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
2896 to this are generated for client-side wrappers. Invokes a
2897 D-BUS method and returns reply values.
2899 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
2900 function; writes signature string for argument direction.
2901 (write_args_for_direction): Change to pass input values directly
2902 instead of via address, and fix indentation.
2903 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
2904 make generated wrappers inlineable.
2906 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
2907 note about using dbus_type_is_fixed.
2909 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
2910 dbus/dbus-signature.c as dbus_type_is_fixed.
2912 All callers updated.
2914 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
2915 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
2917 * dbus/dbus-signature.h: Prototype.
2919 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
2922 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
2923 appropriate instead of just freeing it.
2924 (main): Free returned strings using g_free.
2926 * test/glib/Makefile.am (test-service-glib-glue.h)
2927 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
2929 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
2930 simply maps a simple D-BUS type to GType.
2931 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
2933 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
2934 initialize the value with it.
2935 (dbus_gvalue_binding_type_from_type): Unused, delete.
2936 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
2937 various types instead of unmarshalling to value data directly.
2938 Remove can_convert boolean.
2939 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
2940 returning directly instead of using can_convert boolean.
2941 (dbus_gvalue_store): New function; not related to D-BUS per-se.
2942 Stores a GValue in a pointer to a value of its corresponding C
2945 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
2946 add dbus_gvalue_store.
2948 2005-03-08 Joe Shaw <joeshaw@novell.com>
2950 Fix a bunch of lifecycle and memory management problems
2951 in the mono bindings.
2953 * mono/Arguments.cs (Arguments): Implement IDisposable
2955 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
2956 strictly a static class.
2958 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
2959 delegates into this file.
2960 (Connection): Implement IDisposable.
2961 (Dispose): Disconnect the connection and set the raw connection
2962 pointer to IntPtr.Zero.
2963 (~Connection): Call Dispose().
2964 (RegisterObjectPath): Added. Manages the registration of object
2965 paths so we can cleanly disconnect them at dispose/finalize time.
2966 (UnregisterObjectPath): Ditto.
2967 (set_RawConnection): Unregister all of the object paths when
2968 changing the underlying DBusConnection. Add them back onto the
2969 new connection, if any.
2971 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
2972 more unmanaged resources anymore, so it's not necessary. Move all
2973 the DBusObjectPathVTable stuff out of here.
2974 (Handler): Save references to our delegates so that they don't get
2975 finalized. Call Connection.RegisterObjectPath() instead of
2976 dbus_connection_register_object_path() directly.
2977 (Message_Called): Dispose the message after we're finished with
2980 * mono/Message.cs (Message): Implement IDisposable.
2981 (Dispose): Dispose the Arguments, and set the RawMessage to
2983 (SendWithReplyAndBlock): We own the ref to the reply that comes
2984 back from dbus_connection_send_with_reply_and_block() so add a
2985 comment about that and unref it after we've constructed a managed
2986 MethodReturn class around it. Fixes a big, big leak.
2988 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
2990 (BuildSignalHandler): After we've sent the Signal message, dispose
2992 (BuildMethod): Dispose of the method call and reply messages after
2993 we've sent the message and extracted the data we want from the
2996 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
2998 (Service_FilterCalled): Dispose of the message after we're
3001 2005-03-08 Joe Shaw <joeshaw@novell.com>
3003 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3004 After we attach our pending call to the connection, unref
3007 * mono/Connection.cs (set_RawConnection): Disconnect our
3008 filter and match callbacks from the old connection and
3009 reconnect them to the new connection, if any.
3011 * mono/DBusType/Array.cs: "Code" is a static member, so
3012 don't use "this" to refer to it. Fix for stricter checking
3015 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3016 object path that we pass into unmanaged code.
3018 * mono/DBusType/String.cs (Append): Don't leak the string
3019 that we pass into unmanged code.
3021 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
3022 * NEWS: Update for 0.31
3024 * configure.in: Release 0.31
3025 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3027 * qt/Makefile.am: fixed build
3029 * dbus/Makefile.am: soname bump for libdbus
3031 * glib/Makefile.am: soname bump for libdbus-glib
3033 2005-03-05 Havoc Pennington <hp@redhat.com>
3035 * dbus/dbus-sysdeps.c:
3036 (pseudorandom_generate_random_bytes_buffer): fix to have no return
3038 (_dbus_generate_random_bytes_buffer): fix return value
3040 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3041 checks actually work, from Tom Parker <fdo@tevp.net>
3043 2005-03-01 Colin Walters <walters@verbum.org>
3045 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3046 functions copied from dbus-glib-tool.c.
3047 (main): Convert lots of error code to use them.
3048 Also add some testing for introspection bits.
3050 2005-03-01 Colin Walters <walters@verbum.org>
3052 * doc/TODO: Remove introspection signature TODO.
3054 2005-02-27 Colin Walters <walters@verbum.org>
3056 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3057 Change return value to const char * instead of int so we can do
3059 (struct PropertyInfo, struct ArgInfo): Store char *.
3060 (property_info_new, arg_info_new): Update parameters, strdup.
3061 (property_info_unref, arg_info_unref): Free.
3063 * glib/dbus-gidl.h: Update prototypes.
3065 * glib/dbus-gparser.c (basic_type_from_string): Delete.
3066 (validate_signature): New function, just validates signature and
3068 (parse_property, parse_arg): Invoke validate_signature. Store
3069 signature instead of just type code.
3071 * glib/dbus-gvalue.c (base_type_from_signature): New utility
3072 function to return a primary type for a signature, dropping
3073 information about types in container types.
3074 (dbus_gvalue_genmarshal_name_from_type)
3075 (dbus_gvalue_binding_type_from_type)
3076 (dbus_gvalue_ctype_from_type): Update to take full signature
3077 instead of type code.
3078 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3080 * glib/dbus-gvalue.h: Update prototypes for above.
3082 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3083 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3084 (introspect_properties, introspect_signals, write_interface):
3085 Update to handle signatures, and remove usage of
3086 _dbus_gutils_type_to_string.
3087 (handle_introspect): Print out type codes instead of e.g. "string"
3088 in hardcoded introspection XML; also use x_AS_STRING constants
3089 instead of hardcoding in string.
3091 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3092 to string. Remove usage of _dbus_gutils_type_to_string.
3094 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3096 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3099 * glib/dbus-binding-tool-glib.c (compute_marshaller)
3100 (compute_marshaller_name, generate_glue): Handle signature change
3102 (write_formal_parameters, write_args_for_direction): Ditto, and
3105 * tools/dbus-tree-view.c (type_to_string): Delete.
3106 (info_set_func_text): Update to print full signatures.
3108 * test/glib/test-service-glib.xml: Change types to new
3109 introspection format.
3111 2005-02-26 Havoc Pennington <hp@redhat.com>
3113 * doc/TODO: remove the "guid" item
3115 * test/glib/test-profile.c (no_bus_thread_func): use open_private
3116 (with_bus_thread_func): use open_private
3118 * dbus/dbus-connection.c (dbus_connection_open_private): new
3119 function that works like the old dbus_connection_open()
3120 (dbus_connection_open): now returns an existing connection if
3123 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3124 through the GUID to the transport
3126 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3127 GUID in hex-encoded form.
3129 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3130 pass GUID argument in to the transport
3132 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3135 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3137 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3139 2005-02-25 Havoc Pennington <hp@redhat.com>
3141 * doc/dbus-specification.xml: document the GUID thing
3143 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3144 globally unique ID for the server, and put a "guid=hexencoded"
3145 field in the address
3147 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3149 * dbus/dbus-message.c: ditto
3151 * dbus/dbus-dataslot.c: ditto
3153 * dbus/dbus-list.c: ditto
3155 * dbus/dbus-internals.h: wait, just include
3156 dbus-threads-internal.h here
3158 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3161 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3163 2005-02-24 Colin Walters <walters@verbum.org>
3165 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3167 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
3169 * glib/Makefile.am: added dbus-gobject.h to sources list
3170 so distcheck doesn't fail
3172 2005-02-24 Havoc Pennington <hp@redhat.com>
3174 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3175 you must disconnect before unref, since locking and other things
3176 are screwed up otherwise. Fix assorted other locking stuff.
3178 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3181 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3182 into a private header and don't export from the library
3184 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3186 2005-02-24 Colin Walters <walters@verbum.org>
3188 * dbus/dbus-signature.c: New file; implements various functions
3189 related to type signatures. Includes an interator for parsing,
3190 validation functions.
3191 (dbus_type_is_basic): Moved here from
3192 dbus-marshal-basic.c:_dbus_type_is_basic.
3193 (dbus_type_is_container): Moved here from
3194 dbus-marshal-basic.c:_dbus_type_is_container.
3196 All callers of _dbus_type_is_container and _dbus_type_is_basic
3197 updated, and include dbus-signature.h.
3199 * dbus/dbus-signature.h: New file; prototypes for the above.
3201 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3204 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3205 function factored out of _dbus_first_type_in_signature.
3206 (_dbus_first_type_in_signature_c_str): New function; returns first
3207 type code for a type signature character.
3209 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3210 handle function moves.
3212 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3214 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3215 function; skips to next complete type in type signature.
3216 Implemented using previous skip_one_complete_type. Now
3217 skip_one_complete_type just delegates to
3218 _dbus_type_signature_next.
3220 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3222 (_dbus_type_is_container): Ditto.
3224 * doc/dbus-specification.xml: Update introspection sample to
3225 use real type signatures.
3227 * dbus/dbus-test.h: Prototype signature test.
3229 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3232 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3234 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
3236 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3237 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3239 2005-02-21 Colin Walters <walters@verbum.org>
3241 * dbus/dbus-test-main.c (main): Take optional specific test
3244 * dbus/dbus-test.c (run_test): New function, runs a test function
3245 with no data directory.
3246 (run_data_test): Like above, but takes data directory.
3247 (dbus_internal_do_not_use_run_tests): Take
3248 specific test argument. Replace lots of cut n' paste code
3249 with run_test and run_data_test.
3251 * dbus/dbus-test.h: Update prototype for
3252 dbus_internal_do_not_use_run_tests.
3254 2005-02-20 Havoc Pennington <hp@redhat.com>
3256 Fix bugs reported by Daniel P. Berrange
3258 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3259 (protected_change_watch): new function
3260 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3261 (_dbus_server_add_watch): change to work like the
3262 dbus-connection.c equivalents; like those, probably kind of
3263 busted, but should at least mostly work for now
3264 (dbus_server_disconnect): drop the lock if we were already
3265 disconnected, patch from Daniel P. Berrange
3267 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
3268 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3271 * doc/TODO: todo about unscrewing this mess
3273 2005-02-19 Colin Walters <walters@verbum.org>
3275 * glib/dbus-binding-tool-glib.c
3276 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3278 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3279 as errno.h and sys/stat.h.
3280 (lose): New function, prints error with
3282 (lose_gerror): Similar, but takes GError for message.
3283 (main): Add --output argument to specify output file to write to,
3284 instead of always printing to stdout. In this mode, determine
3285 timestamps on source files to see whether any are newer than the
3286 target file. If not, exit. Also convert a number of error
3287 messages to use lose (since it's shorter), and switch to using
3288 g_io_channel_shutdown.
3290 2005-02-19 Havoc Pennington <hp@redhat.com>
3292 * glib/dbus-gobject.c
3293 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3295 * glib/dbus-glib.c: fix doxygen warnings
3297 * glib/dbus-gparser.c (parse_annotation): error if an annotation
3298 is found on an <arg>
3300 2005-02-17 Colin Walters <walters@verbum.org>
3302 * glib/dbus-gobject.h: Don't export
3303 _dbus_glib_marshal_dbus_message_to_gvalue_array.
3305 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3306 (invoke_object_method): Handle it.
3308 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3311 2005-02-17 Colin Walters <walters@verbum.org>
3313 * bus/.cvsignore, doc/.cvsignore
3314 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3317 2005-02-17 Colin Walters <walters@verbum.org>
3319 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3320 Rename to DBUS_SERVICE_DBUS.
3321 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3322 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3323 Change the value from "org.freedesktop.Local"
3324 to "org.freedesktop.DBus.Local".
3325 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3326 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3327 DBUS_INTERFACE_INTROSPECTABLE.
3328 Change the value from "org.freedesktop.Introspectable"
3329 to "org.freedesktop.DBus.Introspectable".
3330 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3331 DBUS_INTERFACE_PROPERTIES.
3332 Change the value from "org.freedesktop.Properties"
3333 to "org.freedesktop.DBus.Properties".
3334 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3335 DBUS_INTERFACE_PEER.
3336 Change the value from "org.freedesktop.Peer"
3337 to "org.freedesktop.DBus.Peer".
3338 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
3339 DBUS_INTERFACE_LOCAL.
3340 Change the value from "org.freedesktop.Local"
3341 to "org.freedesktop.DBus.Local".
3343 All other users of those constants have been changed.
3345 * bus/driver.c (bus_driver_handle_introspect): Use constants.
3347 * glib/dbus-gobject.c (handle_introspect): Use constants.
3349 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3351 2005-02-17 Colin Walters <walters@verbum.org>
3353 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3354 (parse_node, parse_interface, parse_method, parse_signal)
3355 (parse_property, parse_annotation): Lose if we're currently in an
3357 (parse_annotation): New function.
3358 (parser_start_element, parser_end_element): Handle annotation.
3359 (parse_method, parse_interface): Remove support for c_name attribute,
3360 switch to annotations.
3362 * glib/dbus-gidl.h (interface_info_get_binding_names)
3363 (method_info_get_binding_names)
3364 (interface_info_get_binding_name, method_info_get_binding_name)
3365 (interface_info_set_binding_name, method_info_set_binding_name):
3367 (interface_info_get_annotations, method_info_get_annotations)
3368 (interface_info_get_annotation, method_info_get_annotation)
3369 (interface_info_add_annotation, method_info_add_annotation):
3372 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3374 (struct MethodInfo): Ditto.
3375 Straightfoward conversion of binding methods into annotation methods
3378 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3380 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3382 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3383 Use new annotation API.
3385 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
3388 * doc/dbus-specification.xml: Discuss introspection annotations,
3389 include list of well-known annotations.
3391 * test/glib/test-service-glib.xml: Make validate against new DTD.
3393 2005-02-17 Colin Walters <walters@verbum.org>
3395 This patch is based on initial work from
3396 Paul Kuliniewicz <kuliniew@purdue.edu>.
3398 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3399 initialization of GValue from dbus type to here.
3400 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3401 for the "glib-genmarshal" program from a DBus type.
3402 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3403 into the C name for it we use in the glib bindings.
3404 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3405 glib C type (not GValue).
3406 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3408 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3409 from dbus-gobject.c.
3411 * glib/dbus-gutils.h: Prototype it.
3413 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3414 (marshal_dbus_message_to_g_marshaller): Use new shared function
3415 dbus_glib_marshal_dbus_message_to_gvalue_array.
3417 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3418 Will be changed once we have annotations.
3420 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3421 GStaticRWLock. Callers updated.
3422 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
3423 (string_table_next): New function for iterating over zero-terminated
3425 (string_table_lookup): New function; retrieves specific entry in
3427 (get_method_data): New function; look up method data in object data chunk.
3428 (object_error_domain_prefix_from_object_info)
3429 (object_error_code_from_object_info): New functions, but not implemented yet.
3430 (method_interface_from_object_info): New function; retrieve interface name.
3431 (method_name_from_object_info): New function; retrieve method name.
3432 (method_arg_info_from_object_info): New function; retrieve argument data.
3433 (arg_iterate): New function; iterates over serialized argument data.
3434 (method_dir_signature_from_object_info): New function; returns a
3435 GString holding type signature for arguments for just one
3436 direction (input or output).
3437 (method_input_signature_from_object_info)
3438 (method_output_signature_from_object_info): New functions.
3439 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3440 converts dbus message arguments into a GValue array. Used for both
3441 signal handling and method invocation.
3442 (struct DBusGlibWriteIterfaceData): New utility structure.
3443 (write_interface): New function; generate introspection XML for
3445 (introspect_interfaces): New function; gathers all interface->methods,
3446 generates introspection XML for them.
3447 (handle_introspect): Invoke introspect_interfaces.
3448 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3449 (lookup_object_and_method): New function; examines an incoming message
3450 and attempts to match it up (via interface, method name, and argument
3451 signature) with a known object and method.
3452 (gerror_domaincode_to_dbus_error_name): New function; converts a
3453 GError domain and code into a DBus error name. Needs GError data
3454 added to object introspection to work well.
3455 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3457 (invoke_object_method): New function to invoke an object method
3458 looked up via lookup_object_and_method. Parses the incoming
3459 message, turns it into a GValue array, then invokes the marshaller
3460 specified in the DBusGMethodInfo. Creates a new message with
3461 either return values or error message as appropriate.
3462 (gobject_message_function): Invoke lookup_object_and_method and
3463 invoke_object_method.
3465 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3466 (enum DBusBindingOutputMode): New enum for binding output modes.
3467 (pretty_print): Print binding names.
3468 (dbus_binding_tool_error_quark): GError bits.
3469 (version): Fix typo.
3470 (main): Create GIOChannel for output. Parse new --mode argument,
3471 possible values are "pretty-print", "glib-server", "glib-client".
3472 Use mode to invoke appropriate function.
3474 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3476 * glib/dbus-glib-tool.h: New header, just includes GError bits
3479 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3480 maps binding style to name.
3481 (struct MethodInfo): Ditto.
3482 (get_hash_keys, get_hash_key): Utility function, returns keys for
3484 (interface_info_new, method_info_new): Initialize bindings.
3485 (interface_info_unref, method_info_unref): Destroy bindings.
3486 (method_info_get_binding_names, method_info_get_binding_name)
3487 (interface_info_get_binding_names, interface_info_get_binding_name):
3488 Functions for retrieving binding names.
3489 (method_info_set_binding_name, interface_info_set_binding_name):
3490 Functions for setting binding names.
3492 * glib/dbus-binding-tool-glib.h: New file, has prototypes
3493 for glib binding generation.
3495 * glib/dbus-binding-tool-glib.c: New file, implements server-side
3496 and client-side glib glue generation.
3498 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3499 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3502 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3503 of using GClosureMarshal directly.
3504 (struct DBusGObjectInfo): Add n_infos member.
3506 * test/glib/test-service-glib.xml: New file; contains introspection data
3507 for MyTestObject used in test-service-glib.c.
3509 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3510 (my_object_do_nothing, my_object_increment, my_object_throw_error)
3511 (my_object_uppercase, my_object_many_args): New test methods.
3512 (main): Use dbus_g_object_class_install_info to include generated object
3515 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3516 as well as client-side bindings.
3518 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3519 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3520 using both the dbus_gproxy stuff directly as well as the generated bindings.
3522 2005-02-15 Havoc Pennington <hp@redhat.com>
3524 * dbus/dbus-connection.c (dbus_connection_dispatch): always
3525 complete a pending call, don't run filters first.
3527 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3528 dbus_pending_call_steal_reply
3530 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3531 _dbus_connection_block_pending_call
3532 (dbus_pending_call_get_reply): change to steal_reply and return a
3535 * dbus/dbus-connection.c
3536 (dbus_connection_send_with_reply_and_block): port to work in terms
3538 (_dbus_connection_block_pending_call): replace block_for_reply
3541 2005-02-14 Havoc Pennington <hp@redhat.com>
3543 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3544 properly handle looking up group information by name; fix
3547 2005-02-13 Havoc Pennington <hp@redhat.com>
3549 * dbus/dbus-connection.c (dbus_connection_return_message)
3550 (dbus_connection_borrow_message): hold dispatch lock while message
3552 (_dbus_connection_block_for_reply): hold dispatch lock while we
3553 block for the reply, so nobody steals our reply
3554 (dbus_connection_pop_message): hold the dispatch lock while we
3557 2005-02-13 Havoc Pennington <hp@redhat.com>
3559 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3560 (_dbus_connection_release_dispatch)
3561 (_dbus_connection_acquire_io_path)
3562 (_dbus_connection_release_io_path): make the mutex and condvar
3563 control access to the "acquired" flag. Drop the connection lock
3564 while waiting on the condvar. Hopefully these are baby steps in
3565 roughly the right direction.
3567 2005-02-13 Havoc Pennington <hp@redhat.com>
3569 * dbus/dbus-connection.c: use separate mutexes for the condition
3570 variables; this is some kind of baseline for sanity, but the
3571 condition variables still aren't used correctly afaict
3573 2005-02-13 Havoc Pennington <hp@redhat.com>
3575 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3578 * dbus/dbus-connection.c
3579 (_dbus_connection_detach_pending_call_unlocked): add this
3581 Initial semi-correct pass through to fix thread locking; there are
3582 still some issues with the condition variable paths I'm pretty
3585 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3588 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3589 rename to add _unlocked
3590 (struct DBusConnection): move "dispatch_acquired" and
3591 "io_path_acquired" to use only one bit each.
3592 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3593 (dbus_connection_set_watch_functions): hacky fix to reentrancy
3594 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
3595 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
3596 (_dbus_connection_remove_timeout)
3597 (_dbus_connection_toggle_timeout): drop lock when calling out to
3598 user functions; done in a hacky/bad way.
3599 (_dbus_connection_send_and_unlock): add a missing unlock
3600 (_dbus_connection_block_for_reply): add a missing unlock
3602 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3603 drop lock in a hacky probably unsafe way to call out to user
3606 2005-02-12 Havoc Pennington <hp@redhat.com>
3608 * tools/dbus-tree-view.c (info_set_func_text): display more
3611 * bus/driver.c (bus_driver_handle_list_services): list the bus
3614 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3616 * glib/dbus-gidl.c (signal_info_get_n_args): new function
3617 (method_info_get_n_args): new function
3619 2005-02-12 Havoc Pennington <hp@redhat.com>
3621 * bus/driver.c (bus_driver_handle_introspect): add introspection
3624 2005-02-12 Havoc Pennington <hp@redhat.com>
3626 * bus/driver.c: put the signature of each bus driver method in the
3627 table of handlers and check it on incoming calls; this isn't
3628 really useful, but going to add introspect support in a minute.
3630 2005-02-11 Joe Shaw <joeshaw@novell.com>
3632 * mono/Connection.cs: The unpredictability of finalizers in mono
3633 prevents us from deterministically disconnecting the filters from
3634 the Service class's finalizer, so move tracking of filters and
3635 matches here. Add API for that.
3637 * mono/Service.cs: Remove the code, add code which calls the
3638 methods now on the Connection class.
3640 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
3642 * python/dbus.py (class Sender): added to support dbus signals better
3643 (Bus::add_signal_receiver): added expand_args parameter which defaults
3644 to True. When expand args is True the signal handler will pass the
3645 message arguments as parameters to the signal handler. If False
3646 revert to previous behavior where the signal handler must get the
3647 argument list from the message. This is to help port applications
3648 like HAL that have a tendancy to send variable length argument lists.
3649 self._match_rule_to_receivers is now a dict of dicts.
3650 (Bus::remove_signal_receiver): pop handler off the dict intead of
3651 removing it from a list
3652 (Bus::_signal_func): change signal handlers so that interface,
3653 signal_name, service, path and message are packed into a Sender
3654 object and that is passed to the handler. If expand_args is True
3655 extract the args list from the message and append it to the parameter
3658 * python/dbus_bindings.pyx.in (class Signature): added to support
3660 (MessageIter::__init__): changed iteration limit to match D-BUS
3661 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
3662 STRUCT and VARIENT type support
3663 (MessageIter::python_value_to_dbus_sig): made recursive to support
3665 (MessageIter::append*): added Signature, dict, tuple
3668 * python/examples/example-client.py: added examples of getting tuples
3671 * python/examples/example-service.py: added examples of sending tuples
3674 * python/examples/example-signal-recipient.py: Fixed to handle new
3675 signal callback format
3677 2005-02-10 Havoc Pennington <hp@redhat.com>
3679 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3680 (call dbus_g_proxy_add_signal)
3682 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3684 (_dbus_server_new_for_domain_socket): escape the path
3686 * dbus/dbus-address.c (dbus_address_escape_value): new
3687 (dbus_address_unescape_value): new
3688 (dbus_parse_address): unescape values
3690 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3692 * doc/dbus-specification.xml: explain how to escape values in
3695 2005-02-10 Havoc Pennington <hp@redhat.com>
3697 * dbus/dbus-message-factory.c (generate_special): modify test to
3698 avoid using a non-basic dict key
3700 * dbus/dbus-marshal-validate-util.c: add test for the below
3702 * doc/dbus-specification.xml: require that dict keys are a basic
3705 * dbus/dbus-marshal-validate.c
3706 (_dbus_validate_signature_with_reason): require that dict key is a
3709 2005-02-10 Havoc Pennington <hp@redhat.com>
3711 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3712 change to be _and_unlock instead of _unlocked
3714 * dbus/dbus-connection.c
3715 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3716 have no_update so we can find this bug quickly in future
3718 2005-02-10 Havoc Pennington <hp@redhat.com>
3720 * dbus/dbus-message-util.c (verify_test_message): tests for string
3723 * dbus/dbus-message.c (dbus_message_append_args_valist): add
3724 support for arrays of string/signature/path
3726 2005-02-10 Joe Shaw <joeshaw@novell.com>
3728 * dbus/dbus-connection.c
3729 (_dbus_connection_queue_received_message_link,
3730 _dbus_connection_message_sent): Add the path to
3732 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
3733 _dbus_connection_send_preallocated_unlocked(), updated the
3734 dispatch status, and unlocks. Fixes a bug where certain
3735 situations (like a broken pipe) could cause a Disconnect message
3736 to not be sent, tricking the bus into thinking a service was still
3737 there when the process had quit.
3738 (_dbus_connection_send_preallocated): Call
3739 _dbus_connection_send_preallocated_and_unlock().
3740 (_dbus_connection_send_and_unlock): Added. Calls
3741 _dbus_connection_send_preallocated_and_unlock().
3742 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3743 (dbus_connection_send_with_reply): Update the dispatch status and
3746 * mono/Service.cs (~Service): Added. Removes the filter so that
3747 we don't get unmanaged code calling back into a GCed delegate.
3748 (RemoveFilter); Added.
3750 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
3752 * dbus/dbus-message.c (dbus_message_iter_open_container):
3753 - Removed check for iterator type being an array because
3754 get_arg_type does not work with writer iterators
3755 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3757 2005-02-07 Havoc Pennington <hp@redhat.com>
3759 * doc/dbus-specification.xml: some more language cleanups; add
3760 stuff about how to deal with invalid protocol and extension
3761 points; add _ to allowed chars in auth commands; add EXTENSION_
3764 2005-02-06 Havoc Pennington <hp@redhat.com>
3766 * s/expected/required/ in a couple places for clarity
3768 2005-02-07 Colin Walters <walters@verbum.org>
3770 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3771 sender or proposed_recipient.
3773 2005-02-06 Havoc Pennington <hp@redhat.com>
3775 * dbus/dbus-message-factory.c (generate_special): more tests
3777 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3778 array length that exceeds the maximum
3780 2005-02-05 Havoc Pennington <hp@redhat.com>
3782 * dbus/dbus-message-factory.c (generate_special): more test cases,
3785 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3786 reason why a signature was invalid
3788 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3789 skip the length of the string before we look at it in validation
3791 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3794 * dbus/dbus-message.c (_dbus_message_loader_new): default
3795 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3797 2005-02-05 Havoc Pennington <hp@redhat.com>
3799 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3800 if the signature of a variant was empty
3801 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3802 struct with no element type)
3804 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3805 mangled messages to break things
3807 2005-02-04 Havoc Pennington <hp@redhat.com>
3809 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3810 g_quark_try_string() so it actually can return 0
3811 (dbus_g_proxy_connect_signal): ditto
3813 2005-02-04 Havoc Pennington <hp@redhat.com>
3815 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3817 (tristring_from_message): assert cleanly on null path/interface
3818 (should not be possible though I decided later)
3819 (dbus_g_proxy_dispose): move proxy manager unregistration here
3820 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3821 g_return_if_fail() checks
3823 2005-02-04 Havoc Pennington <hp@redhat.com>
3825 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3827 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3828 (with some minor changes)
3830 * doc/dbus-specification.xml: add deprecated attribute to
3831 introspection format
3833 2005-01-31 Havoc Pennington <hp@redhat.com>
3835 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3836 think it's sort of right
3838 2005-01-30 Havoc Pennington <hp@redhat.com>
3840 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3842 2005-01-30 Havoc Pennington <hp@redhat.com>
3844 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3846 * autogen.sh: change to autotools 1.9
3848 * glib/dbus-gproxy.c: completely change how signals work
3849 (dbus_g_proxy_add_signal): new function to specify signature of a
3851 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
3852 and g_warning if the incoming message has the wrong signature.
3854 2005-01-30 Havoc Pennington <hp@redhat.com>
3856 * tools/dbus-names-model.c (have_names_notify): fix this
3858 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
3859 up the string array handling a bit
3861 2005-01-30 Havoc Pennington <hp@redhat.com>
3863 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
3864 (dbus_g_pending_call_cancel): new function
3866 * dbus/dbus-glib.h: move GType decls for connection/message here;
3867 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
3868 here, just kind of rationalizing how we handle all that
3870 * tools/dbus-names-model.c: new file for a tree model listing the
3873 * tools/dbus-tree-view.c (model_new): use proper typing on the
3876 2005-01-30 Havoc Pennington <hp@redhat.com>
3878 * glib/dbus-gmain.c: add a custom GSource back that just checks
3879 whether the message queue has anything in it; otherwise, there are
3880 cases where we won't see messages in the queue since there was no
3881 IO visible to the glib main loop
3883 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
3884 increase default message timeout to 25 seconds
3886 2005-01-30 Havoc Pennington <hp@redhat.com>
3888 * test/glib/test-profile.c (no_bus_stop_server): remove the
3889 warning about the g_warning that I just fixed
3891 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
3892 custom source, seems to be a lot easier to understand and work
3895 2005-01-30 Havoc Pennington <hp@redhat.com>
3897 I think this main loop thing is conceptually broken, but here are
3898 some band aids. I'll maybe rewrite it in a minute.
3900 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
3901 custom GSource, so don't pass it in; confusing
3902 (gsource_server_finalize, gsource_connection_finalize): add
3903 finalize handlers that remove all the watches.
3905 2005-01-30 Havoc Pennington <hp@redhat.com>
3907 * glib/dbus-gobject.c (introspect_properties): fix the XML
3910 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
3911 which effectively detects the use of freed messages
3913 * glib/dbus-gobject.c (handle_introspect): modify and return the
3914 reply message instead of the incoming message
3916 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
3917 gee, maybe it should SEND THE XML instead of just making a string
3918 and freeing it again ;-)
3920 * tools/dbus-print-message.c (print_message): improve printing of
3923 * configure.in: add debug-glib.service to the output
3925 2005-01-30 Havoc Pennington <hp@redhat.com>
3927 dbus-viewer introspected and displayed the bus driver
3929 * dbus/dbus-object-tree.c
3930 (object_tree_test_iteration): add tests for a handler registered on "/"
3932 * dbus/dbus-object-tree.c
3933 (_dbus_decompose_path): fix to handle path "/" properly
3934 (run_decompose_tests): add tests for path decomposition
3936 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
3939 * glib/dbus-gobject.c (handle_introspect): fix quotes
3941 * test/glib/run-test.sh: support launching the bus, then running
3944 * test/glib/test-service-glib.c (main): put in a trivial gobject
3945 subclass and register it on the connection
3947 * bus/driver.c (bus_driver_handle_introspect): implement
3948 introspection of the bus driver service
3950 * dbus/dbus-protocol.h: add #defines for the XML namespace,
3951 identifiers, doctype decl
3953 * bus/driver.c (bus_driver_handle_get_service_owner): handle
3954 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
3955 returning the service unchanged.
3956 (bus_driver_handle_message): remove old check for reply_serial in
3957 method calls, now the message type deals with that
3958 (bus_driver_handle_message): handle NULL interface
3960 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
3962 * glib/dbus-gloader-expat.c (description_load_from_string): allow
3965 * tools/dbus-viewer.c: add support for introspecting a service on
3968 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
3969 (dbus_g_pending_call_unref): add
3971 2005-01-29 Havoc Pennington <hp@redhat.com>
3973 * tools/dbus-tree-view.c: add support for displaying properties.
3974 (run dbus-viewer with an introspect xml file as arg, then resize
3975 the window so the tree elements show up, not sure what that is)
3977 * glib/dbus-gobject.c (handle_introspect): return
3978 org.freedesktop.Properties and org.freedesktop.Introspectable
3979 interfaces when we are introspected.
3981 * doc/dbus-specification.xml: allow empty interface name when
3984 2005-01-29 Havoc Pennington <hp@redhat.com>
3986 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
3987 though it uses glib, it could be extended for any binding in
3990 * glib/dbus-gobject.c (gobject_message_function): change to the
3991 new way properties work
3993 * dbus/dbus-protocol.h: add the new interfaces
3995 * doc/dbus-specification.xml: document the introspection format,
3996 Introspectable interface, and add an org.freedesktop.Properties
3999 * glib/dbus-gparser.c: add support for a <property> element
4001 * glib/dbus-gidl.c: add PropertyInfo
4003 * glib/dbus-gobject.c (handle_introspect): put the outermost
4004 <node> outside the signal and property descriptions.
4005 (introspect_properties): export properties as <property> rather
4006 than as method calls
4008 2005-01-28 Havoc Pennington <hp@redhat.com>
4010 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4011 related to authentication protocol
4013 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
4015 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4016 - BUS_ACTIVATION -> BUS_STARTER
4017 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4018 - class MessageIter (__init__): Added recursion checking
4019 so we throw a nice error instead of just disconnecting from the
4021 (get): Added arg_type parameter for recursion.
4022 Removed the nil type
4023 Added signiture type placeholder (not implemented)
4024 Added struct type placeholder (not implemented)
4025 Added varient type placeholder (not implemented)
4026 Commented out dict type for now
4027 (get_element_type): renamed from get_array_type
4028 (get_*): changed to use the dbus_message_iter_get_basic API
4029 (get_*_array): removed in favor of recursive get_array method
4030 (get_array): new recursive method which calls get to marshal
4031 the elements of the array
4032 (value_to_dbus_sig): New method returns the corrasponding
4033 dbus signiture to a python value
4034 (append): Comment out dict handling for now
4035 Handle lists with the new recursive API
4036 Comment out None handling for now
4037 (append_nil): removed
4038 (append_*): changed to use dbus_message_iter_append_basic API
4039 (append_*_array): removed in favor of recursive append_array
4041 (__str__): Make it easier to print out recursive iterators
4043 - class Message (__str__): moved type inspection to the
4044 MessageIter class' __str__ method
4045 (get_iter): Added an append parameter wich defaults to False
4046 If True use the new API's to create an append iterator
4048 * python/dbus.py: Update to use new bindings API
4049 - TYPE_ACTIVATION -> TYPE_STARTER
4050 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4051 - class ActivationBus -> class StarterBus
4052 - class RemoteObject (__call__): get an append iterator
4053 - (_dispatch_dbus_method_call): get an append iterator
4054 - class Object (emit_signal): get an append iterator
4056 * python/examples/: Fixed up the examples to work with the new API
4058 2005-01-28 Joe Shaw <joeshaw@novell.com>
4060 * configure.in: Bump version up to 0.30.
4062 * HACKING: Add a release item to bump the version number up after
4065 2005-01-28 Havoc Pennington <hp@redhat.com>
4067 * doc/dbus-specification.xml: update to describe 16-bit types and
4070 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4073 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4076 * dbus/dbus-marshal-recursive.c: implement
4078 2005-01-27 Havoc Pennington <hp@redhat.com>
4080 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4082 * configure.in: find the right type for 16 and 32 bit ints as well
4085 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4086 the 16-bit types so people don't have to stuff them in 32-bit or
4089 2005-01-27 Havoc Pennington <hp@redhat.com>
4091 * dbus/dbus-message.c: byteswap the message if you init an
4092 iterator to read/write from it
4094 * dbus/dbus-marshal-byteswap.c: new file implementing
4095 _dbus_marshal_byteswap()
4097 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4099 2005-01-26 Havoc Pennington <hp@redhat.com>
4101 * dbus/dbus-marshal-validate-util.c: break this out (and fix
4102 build, apparently - nobody noticed?)
4104 2005-01-26 Havoc Pennington <hp@redhat.com>
4106 * dbus/dbus-marshal-recursive.h: remove todo comment
4108 2005-01-25 Joe Shaw <joeshaw@novell.com>
4110 * Land the mono binding changes to conform to the new APIs.
4112 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4113 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4115 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
4116 type code as a string.
4117 (InitAppending): Rename dbus_message_append_iter_init() to
4118 dbus_message_iter_init_append().
4120 * mono/BusDriver.cs: Rename ServiceEventHandler to
4121 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
4122 Rename ServiceOwnerChanged to NameOwnerChanged.
4124 * mono/Connection.cs: Rename BaseService to UniqueName, and the
4127 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
4129 * mono/Service.cs: Rename Exists to HasOwner, internally rename
4130 dbus_bus_acquire_service() to dbus_bus_request_name().
4132 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4133 of Type.UnderlyingSystemType to get the correct element type for
4135 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4136 dbus_message_get_{element|arg}_type() instead of
4137 dbus_message_iter_init_array_iterator().
4138 (Append): Replace dbus_message_iter_append_array() with
4139 dbus_message_iter_open_container() and
4140 dbus_message_iter_close_container().
4142 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
4143 types have been removed.
4145 * mono/DBusType/*.cs: Replace calls of
4146 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4147 but specify the type in the DllImport extern declaration. Ditto
4148 for dbus_message_iter_append_[type]() ->
4149 dbus_message_iter_append_basic().
4151 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4152 NameOwnerChangedHandler.
4154 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
4156 * python/dbus_bindings.pyx.in: Rename of methods and bindings
4157 - get_base_service -> get_unique_name
4158 - bus_get_base_service -> bus_get_unique_name
4159 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4160 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
4161 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4162 - bus_activate_service -> bus_start_service_by_name
4163 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4164 - bus_acquire_service -> bus_request_name
4165 - dbus_bus_acquire_service -> dbus_bus_request_name
4166 - bus_service_exists -> bus_name_has_owner
4167 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4169 * python/dbus.py: Rename of methods
4170 - activate_service -> start_service_by_name
4171 - bus_acquire_service -> bus_request_name
4172 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
4173 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4176 2005-01-24 Joe Shaw <joeshaw@novell.com>
4178 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4179 signature for the method that can't be found.
4181 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4182 the message has any arguments, we need to call
4183 _dbus_type_reader_get_current_type(), not
4184 _dbus_type_reader_has_next().
4186 2005-01-24 Havoc Pennington <hp@redhat.com>
4188 * dbus/dbus-message-factory.c: more testing of message validation
4190 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4193 2005-01-23 Havoc Pennington <hp@redhat.com>
4195 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
4196 get this all working, not many tests in the framework yet though
4198 2005-01-22 Havoc Pennington <hp@redhat.com>
4200 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4201 tutorial, based on work from David Wheeler.
4203 2005-01-21 Havoc Pennington <hp@redhat.com>
4205 * dbus/dbus-bus.c: add more return_if_fail checks
4207 * dbus/dbus-message.c (load_message): have the "no validation"
4208 mode (have to edit the code to toggle the mode for now though)
4210 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4211 skips all validation; I want to use this at least for benchmark
4212 baseline, I'm not sure if it should be a publicly-available switch.
4214 2005-01-21 Havoc Pennington <hp@redhat.com>
4216 * glib/dbus-gmain.c: don't put the GLib bindings in the same
4217 toplevel doxygen group as the low-level API stuff
4219 * dbus/dbus.h: note that libdbus is the low-level API
4221 2005-01-20 Havoc Pennington <hp@redhat.com>
4223 * update-dbus-docs.sh: script to update docs on the web site, only
4224 works for me though. neener.
4226 2005-01-20 Havoc Pennington <hp@redhat.com>
4228 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4229 code can reveal bugs in it
4231 2005-01-20 Havoc Pennington <hp@redhat.com>
4233 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4234 select() version, patches from Tor Lillqvist
4236 2005-01-20 Havoc Pennington <hp@redhat.com>
4238 * doc/dbus-tutorial.xml: replace > with >
4240 * bus/services.c (bus_registry_acquire_service): validate the name
4241 and return a better error if it's no good.
4243 * doc/dbus-specification.xml: note NO_AUTO_START change
4245 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4246 from AUTO_START, we're toggling the default
4248 * bus/dispatch.c: adapt the tests to change of auto-start default
4250 2005-01-18 Havoc Pennington <hp@redhat.com>
4252 * rename dbus-daemon-1 to dbus-daemon throughout
4254 2005-01-18 Havoc Pennington <hp@redhat.com>
4256 * Throughout, grand renaming to strip out the use of "service",
4257 just say "name" instead (or "bus name" when ambiguous). Did not
4258 change the internal code of the message bus itself, only the
4259 programmer-facing API and messages.
4261 * doc/dbus-specification.xml: further update the message bus section
4263 * bus/config-parser.c (all_are_equiv): fix bug using freed string
4266 2005-01-17 Havoc Pennington <hp@redhat.com>
4268 * dbus/dbus-types.h: remove 16-bit types since we don't use them
4271 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4272 "invalid name character" not only non-ASCII
4274 * doc/dbus-specification.xml: further update spec, message bus
4275 parts are still out-of-date but the marshaling etc. stuff is now
4278 2005-01-17 Havoc Pennington <hp@redhat.com>
4280 * doc/dbus-specification.xml: partially update spec
4282 2005-01-17 Havoc Pennington <hp@redhat.com>
4284 * Throughout, align variant bodies according to the contained
4285 type, rather than always to 8. Should save a fair bit of space in
4288 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4289 fix handling of case where p == end
4291 * doc/TODO: remove the dbus_bool_t item and variant alignment items
4293 2005-01-17 Havoc Pennington <hp@redhat.com>
4295 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4297 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4298 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
4299 are marshaling/unmarshaling a boolean.
4301 2005-01-16 Havoc Pennington <hp@redhat.com>
4303 This is about it on what can be disabled/deleted from libdbus
4304 easily, back below 150K anyhow. Deeper cuts are more work than
4305 just turning the code off as I've done here.
4307 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4308 signed int convenience funcs
4310 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4313 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4314 things out of libdbus
4316 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4318 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4319 tests-enabled-only, though it should probably be deleted)
4321 * dbus/dbus-message-util.c: same stuff
4323 * dbus/dbus-auth-util.c: same stuff
4325 2005-01-16 Havoc Pennington <hp@redhat.com>
4327 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4329 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4330 way for stripping down dbus-userdb.c stuff included in libdbus.
4331 Rename _dbus_parse_uid for consistency.
4333 2005-01-16 Havoc Pennington <hp@redhat.com>
4335 * dbus/dbus-internals.c (_dbus_real_assert): print the function
4336 name the assertion failed in
4338 * dbus/dbus-internals.h (_dbus_return_if_fail)
4339 (_dbus_return_val_if_fail): assert that the name of the function
4340 containing the check doesn't start with '_', since we only want to
4341 use checks on public functions
4343 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4344 checks to assertions
4346 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4347 change checks to asserts for private function
4349 * dbus/dbus-message.c (_dbus_message_set_serial): checks
4350 to asserts for private function
4352 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4353 broken assertion that was breaking make check
4354 (_dbus_type_reader_array_is_empty): remove this rather than fix
4355 it, was only used in assertions
4357 2005-01-16 Havoc Pennington <hp@redhat.com>
4359 * test/unused-code-gc.py: hacky script to find code that's used
4360 only by the bus (not libdbus) or used only by tests or not used at
4361 all. It has some false alarms, but looks like we can clean up a
4362 lot of size from libdbus.
4364 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4365 dbus/Makefile.am: initially move 10K of binary size out of libdbus
4367 2005-01-16 Havoc Pennington <hp@redhat.com>
4369 * Add and fix docs according to Doxygen warnings throughout
4372 * dbus/dbus-marshal-recursive.c
4373 (_dbus_type_reader_array_is_empty): change this to just call
4374 array_reader_get_array_len() and make it static
4376 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4378 (dbus_message_iter_init_append): rename from append_iter_init
4380 * dbus/dbus-marshal-recursive.c
4381 (_dbus_type_reader_get_element_type): rename from
4382 _dbus_type_reader_get_array_type
4384 2005-01-15 Havoc Pennington <hp@redhat.com>
4386 * test/glib/test-profile.c (with_bus_server_filter): fix crash
4388 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4389 when DBUS_DISABLE_ASSERT
4390 (_dbus_marshal_set_basic): be sure we align for the string length
4392 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4395 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4396 inline macro version
4397 (_dbus_string_set_byte): provide inline macro version
4399 2005-01-15 Havoc Pennington <hp@redhat.com>
4401 * Land the new message args API and type system.
4403 This patch is huge, but the public API change is not
4404 really large. The set of D-BUS types has changed somewhat,
4405 and the arg "getters" are more geared toward language bindings;
4406 they don't make a copy, etc.
4408 There are also some known issues. See these emails for details
4410 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4411 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4413 * dbus/dbus-marshal-*: all the new stuff
4415 * dbus/dbus-message.c: basically rewritten
4417 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4418 freed blocks to be all non-nul bytes so using freed memory is less
4419 likely to work right
4421 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4422 DBUS_FAIL_MALLOC=N environment variable, so you can do
4423 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4424 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4427 * qt/message.cpp: port to the new message args API
4428 (operator<<): use str.utf8() rather than str.unicode()
4429 (pretty sure this is right from the Qt docs?)
4431 * glib/dbus-gvalue.c: port to the new message args API
4433 * bus/dispatch.c, bus/driver.c: port to the new message args API
4435 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4436 "locked" flag to TRUE and align_offset to 0; I guess we never
4437 looked at these anyhow, but seems cleaner.
4439 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4440 move allocation padding macro to this header; use it to implement
4441 (_DBUS_STRING_STATIC): ability to declare a static string.
4443 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4444 change to return TRUE if the interface is not set.
4446 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4447 to dbus-marshal-validate.[hc]
4449 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4452 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4453 to dbus-marshal-*.[hc]
4455 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4456 function here from dbus-marshal.c
4458 2005-01-12 Joe Shaw <joeshaw@novell.com>
4460 * NEWS: Update for 0.23.
4462 * configure.in: Release 0.23.
4464 2005-01-12 Joe Shaw <joeshaw@novell.com>
4466 * mono/Makefile.am, mono/example/Makefile.am: Always build the
4467 dbus DLL with --debug. Clean up after the .mdb files this leaves
4470 * mono/doc/Makefile.am: Need to uninstall the docs on "make
4473 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4474 is an enum, get the enum's underlying type. Another mono
4477 2005-01-11 Joe Shaw <joeshaw@novell.com>
4479 Patch from Sjoerd Simons <sjoerd@luon.net>
4481 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4482 DESTDIR. It breaks stuff.
4484 2005-01-11 Joe Shaw <joeshaw@novell.com>
4486 Patch from Tambet Ingo <tambet@ximian.com>
4488 * mono/DBusType/Array.cs (Get): Get the underlying element type by
4489 calling type.GetElementType(). The code previously depended on
4490 broken Mono behavior, which was fixed in Mono 1.1.3.
4492 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4493 Activator.CreateInstance() so that the class's constructor is
4494 called with the right parameters.
4496 2005-01-11 Joe Shaw <joeshaw@novell.com>
4498 Patch from Timo Teräs <ext-timo.teras@nokia.com>
4500 * dbus/dbus-connection.c
4501 (_dbus_connection_queue_received_message_link): Call
4502 _dbus_connection_remove_timeout() instead of the _locked()
4503 variant, since it's always called from
4504 _dbus_connection_handle_watch(), which handles the locking.
4505 Removed the _locked() variant since it's no longer used.
4507 2005-01-03 Havoc Pennington <hp@redhat.com>
4509 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4512 2004-12-26 Havoc Pennington <hp@redhat.com>
4514 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4516 2005-01-03 Havoc Pennington <hp@redhat.com>
4518 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4521 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4523 2005-01-02 Havoc Pennington <hp@redhat.com>
4525 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4527 2005-01-01 Havoc Pennington <hp@redhat.com>
4529 * configure.in: add -Wfloat-equal
4531 2005-01-01 Havoc Pennington <hp@redhat.com>
4533 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
4534 for a variety of reasons '==' doesn't do this.
4536 2004-12-31 Havoc Pennington <hp@redhat.com>
4538 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4539 I keep wishing I had
4541 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4543 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4545 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4547 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4548 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4549 dbus-protocol.h. Because they are defines and not enums they are not
4552 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
4554 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4555 dbus_bus_activate_service
4557 * python/dbus.py (Bus.activate_service): activate a service on the
4560 2004-12-24 Havoc Pennington <hp@redhat.com>
4562 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4563 file format has also changed and I haven't adapted to that yet
4565 * Makefile.am: load .gcno files from latest gcc
4567 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
4568 * Patch from Rob Taylor <robtaylor@fastmail.fm>
4570 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4573 * python/dbus.py (get_unix_user): Added binding to
4574 call dbus_bindings.bus_get_unix_user
4576 * python/extract.py: Modified the proto_pat regex to
4577 handle unsigned long
4579 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4581 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4582 better POSIX compliance.
4584 2004-12-19 Havoc Pennington <hp@redhat.com>
4586 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
4587 (_dbus_string_insert_8_aligned): new functions
4589 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4591 2004-12-18 Havoc Pennington <hp@redhat.com>
4593 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4596 * dbus/dbus-message.c: fix a comment, and add a still-unused
4597 not-implemented function
4599 * dbus/dbus-marshal.h: fix comment
4601 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4603 2004-12-17 Joe Shaw <joeshaw@novell.com>
4605 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4606 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4607 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4608 Type.UnderlyingSystemType to get the actual system type
4609 underneath. This code previously depended on the broken Mono
4610 behavior, which was fixed in 1.1.3.
4612 2004-11-27 Havoc Pennington <hp@redhat.com>
4614 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4616 (_dbus_string_get_const_data): inline when asserts are disabled
4618 * dbus/dbus-message.c: record the _dbus_current_generation of
4619 creation so we can complain if dbus_shutdown() is used improperly.
4620 Do this only if checks are enabled.
4622 * dbus/dbus-connection.c: ditto
4624 2004-11-26 Havoc Pennington <hp@redhat.com>
4626 * test/glib/test-profile.c: add with_bus mode to profile echoes
4627 that go through the bus.
4629 * test/glib/run-test.sh: add ability to run test-profile
4631 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4634 2004-11-26 Havoc Pennington <hp@redhat.com>
4636 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4637 thing was implemented
4639 2004-11-26 Havoc Pennington <hp@redhat.com>
4641 * test/glib/test-profile.c: tweak a bit, add support for some
4642 made-up minimal malloc overhead with plain sockets, since in
4643 real life some sort of buffers are unavoidable thus we could
4644 count them in the theoretical best case
4646 2004-11-26 Havoc Pennington <hp@redhat.com>
4648 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4649 where I was trying to cache one too many messages
4651 2004-11-26 Havoc Pennington <hp@redhat.com>
4653 * dbus/dbus-message.c: reimplement message cache as an array which
4654 makes the cache about twice as fast and saves maybe 1.5% overall
4656 2004-11-26 Havoc Pennington <hp@redhat.com>
4658 * dbus/dbus-threads.c (init_global_locks): forgot to put the
4659 message cache lock here
4661 2004-11-26 Havoc Pennington <hp@redhat.com>
4663 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4664 the "char byte_order" next to each other to save 4 bytes
4665 (dbus_message_new_empty_header): reduce preallocation, since the
4666 message cache should achieve a similar effect
4667 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4668 message cache that keeps a few DBusMessage around in a pool,
4669 another 8% speedup or so.
4671 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4673 2004-11-25 Havoc Pennington <hp@redhat.com>
4675 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4676 to write, without reading or blocking, try it before the poll()
4677 and skip the poll() if nothing remains to write. This is about a
4678 3% speedup in the echo client/server
4680 2004-11-25 Havoc Pennington <hp@redhat.com>
4682 The primary change here is to always write() once before adding
4683 the write watch, which gives us about a 10% performance increase.
4685 * dbus/dbus-transport-unix.c: a number of modifications to cope
4686 with removing messages_pending
4687 (check_write_watch): properly handle
4688 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4689 messages_pending stuff
4690 (check_read_watch): properly handle WAITING_FOR_MEMORY and
4692 (unix_handle_watch): after writing, see if the write watch can be
4694 (unix_do_iteration): assert that write_watch/read_watch are
4695 non-NULL rather than testing that they aren't, since they
4696 aren't allowed to be NULL. check_write_watch() at the end so
4697 we add the watch if we did not finish writing (e.g. got EAGAIN)
4699 * dbus/dbus-transport-protected.h: remove messages_pending call,
4700 since it resulted in too much inefficient watch adding/removing;
4701 instead we now require that the transport user does an iteration
4702 after queueing outgoing messages, and after trying the first
4703 write() we add a write watch if we got EAGAIN or exceeded our
4704 max bytes to write per iteration setting
4706 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4709 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4710 freed and then accessed, valgrind flagged this bug, fix it
4712 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4713 as the last valid field plus 1, where really it is equal to the
4714 last valid field. Corrects some message corruption issues.
4716 * dbus/dbus-mainloop.c: verbosity changes
4718 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4719 instead of aborting in one of the test codepaths
4721 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4722 caused not printing the pid ever again if a verbose was missing
4723 the newline at the end
4724 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4726 * dbus/dbus-connection.c: verbosity changes;
4727 (dbus_connection_has_messages_to_send): new function
4728 (_dbus_connection_message_sent): no longer call transport->messages_pending
4729 (_dbus_connection_send_preallocated_unlocked): do one iteration to
4730 try to write() immediately, so we can avoid the write watch. This
4731 is the core purpose of this patchset
4732 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4733 dump the outgoing message queue, so nobody will get confused
4734 trying to send them or thinking stuff is pending to be sent
4736 * bus/test.c: verbosity changes
4738 * bus/driver.c: verbosity/assertion changes
4740 * bus/dispatch.c: a bunch of little tweaks to get it working again
4741 because this patchset changes when/where you need to block.
4743 2004-11-23 Havoc Pennington <hp@redhat.com>
4745 * test/glib/test-profile.c: modify to accept a plain_sockets
4746 argument in which case it will bench plain sockets instead of
4747 libdbus, for comparison purposes.
4749 2004-11-22 Havoc Pennington <hp@redhat.com>
4751 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4752 threads for more time, so sysprof can get a grip on it.
4754 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4757 2004-11-13 Havoc Pennington <hp@redhat.com>
4759 * test/glib/test-profile.c: fix this thing up a bit
4761 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4762 preallocation sizes by a fair bit; not sure if this will be an
4763 overall performance win or not, but it does reduce reallocs.
4765 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4766 the test hack that forced constant realloc if asserts are
4767 disabled, so we can profile sanely. Sprinkle in some
4768 _DBUS_UNLIKELY() which are probably pointless, but before I
4769 noticed the real performance problem I put them in.
4770 (_dbus_string_validate_utf8): micro-optimize this thing a little
4771 bit, though callgrind says it didn't help; then special-case
4772 ascii, which did help a lot; then be sure we detect nul bytes as
4773 invalid, which is a bugfix.
4774 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4775 superstition; use memset to nul the padding instead of a manual
4777 (_dbus_string_get_length): inline this as a
4778 macro; it showed up in the profile because it's used for loop
4781 2004-11-10 Colin Walters <walters@verbum.org>
4783 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4786 2004-11-09 Colin Walters <walters@verbum.org>
4788 * dbus/dbus-string.c (_dbus_string_get_length): New
4789 function, writes DBusString to C buffer.
4791 * dbus/dbus-string.h: Prototype it.
4793 * dbus/dbus-message.c (dbus_message_type_to_string): New
4794 function, converts message type into C string.
4796 * dbus/dbus-message.h: Prototype it.
4798 * bus/selinux.c (bus_selinux_check): Take source pid,
4799 target pid, and audit data. Pass audit data to
4801 (log_audit_callback): New function, appends extra
4803 (bus_selinux_allows_acquire_service): Also take
4804 service name, add it to audit data.
4805 (bus_selinux_allows_send): Also take message
4806 type, interface, method member, error name,
4807 and destination, and add them to audit data.
4808 (log_cb): Initialize func_audit.
4810 * bus/selinux.h (bus_selinux_allows_acquire_service)
4811 (bus_selinux_allows_send): Update prototypes
4813 * bus/services.c (bus_registry_acquire_service): Pass
4814 service name to bus_selinux_allows_acquire_service.
4816 * bus/bus.c (bus_context_check_security_policy): Pass
4817 additional audit data. Move assignment of dest
4820 2004-11-07 Colin Walters <walters@verbum.org>
4822 * dbus/dbus-transport-unix.c (do_authentication): Always
4823 initialize auth_completed.
4825 2004-11-07 Colin Walters <walters@verbum.org>
4827 * bus/bus.c (load_config): Break into three
4828 separate functions: process_config_first_time_only,
4829 process_config_every_time, and process_config_postinit.
4830 (process_config_every_time): Move call of
4831 bus_registry_set_service_context_table into
4832 process_config_postinit.
4833 (process_config_postinit): New function, does
4834 any processing that needs to happen late
4835 in initialization (and also on reload).
4836 (bus_context_new): Instead of calling load_config,
4837 open config parser here and call process_config_first_time_only
4838 and process_config_every_time directly. Later, after
4839 we have forked but before changing UID,
4840 invoke bus_selinux_full_init, and then call
4841 process_config_postinit.
4842 (bus_context_reload_config): As in bus_context_new,
4843 load parse file inside here, and call process_config_every_time
4844 and process_config_postinit.
4846 * bus/services.h, bus/services.c
4847 (bus_registry_set_service_context_table): Rename
4848 from bus_registry_set_sid_table. Take string hash from config
4849 parser, and convert them here into SIDs.
4851 * bus/config-parser.c (struct BusConfigParser): Have
4852 config parser only store a mapping of service->context
4854 (merge_service_context_hash): New function.
4855 (merge_included): Merge context string hashes instead
4856 of using bus_selinux_id_table_union.
4857 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
4858 simply create a new string hash.
4859 (bus_config_parser_unref): Unref it.
4860 (start_selinux_child): Simply insert strings into hash,
4861 don't call bus_selinux_id_table_copy_over.
4863 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
4864 (bus_selinux_id_table_copy_over): Delete.
4866 2004-11-03 Colin Walters <walters@verbum.org>
4868 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
4871 2004-11-03 Colin Walters <walters@verbum.org>
4873 * bus/test-main.c (test_pre_hook): Fix test logic,
4874 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
4876 2004-11-02 Colin Walters <walters@redhat.com>
4878 * bus/selinux.c (bus_selinux_init): Split into two functions,
4879 bus_selinux_pre_init and bus_selinux_post_init.
4880 (bus_selinux_pre_init): Just determine whether SELinux is
4882 (bus_selinux_post_init): Do everything else.
4884 * bus/main.c (main): Call bus_selinux_pre_init before parsing
4885 config file, and bus_selinux_post_init after. This ensures that
4886 we don't lose the policyreload notification thread that
4887 bus_selinux_init created before forking previously.
4889 * bus/test-main.c (test_pre_hook): Update for split.
4891 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
4893 Patch from Johan Fischer <linux@fischaz.com>
4895 * mono/doc/Makefile.am (install-data-local): Added directory
4898 2004-10-29 Colin Walters <walters@redhat.com>
4900 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
4901 parameter for fd to write pid to.
4903 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
4905 * bus/bus.c (bus_context_new): Pass print_pid_fd
4906 to _dbus_become_daemon (bug #1720)
4908 2004-10-29 Colin Walters <walters@redhat.com>
4910 Patch from Ed Catmur <ed@catmur.co.uk>
4912 * mono/doc/Makefile.am (install-data-local): Handle
4915 2004-10-29 Colin Walters <walters@redhat.com>
4917 * bus/.cvsignore, qt/.cvsignore: Update.
4919 2004-10-29 Colin Walters <walters@redhat.com>
4921 Patch from Kristof Vansant <de_lupus@pandora.be>
4923 * configure.in: Detect Slackware.
4924 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
4925 * bus/rc.messagebus.in: New file.
4927 2004-10-29 Colin Walters <walters@redhat.com>
4929 * tools/dbus-monitor.c (filter_func): Return
4930 DBUS_HANDLER_RESULT_HANDLED in filter function
4932 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
4934 2004-10-29 Colin Walters <walters@redhat.com>
4936 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
4938 * bus/services.c (bus_registry_acquire_service):
4939 Correctly retrieve service name from DBusString
4942 2004-10-29 Colin Walters <walters@redhat.com>
4944 * dbus/dbus-glib.h: Update documentation to not
4945 refer to internal APIs.
4947 2004-10-27 Joe Shaw <joeshaw@novell.com>
4949 * mono/Arguments.cs (GetDBusTypeConstructor):
4950 type.UnderlyingSystemType will return "System.Byte" if you do it
4951 on "byte[]", which is not what we want. So check the type.IsArray
4952 property and use System.Array instead.
4954 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
4956 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
4957 the DBusUserInfo structure since this is passed into the function.
4958 This would cause a double free when the function that allocated
4959 the structure would try to free it when an error occured.
4961 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
4962 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
4963 for service activation to avoid 32bit/64bit parallel install issues
4965 2004-10-21 Colin Walters <walters@verbum.org>
4967 * AUTHORS: Fix my email address, the @gnu.org one
4968 has been bouncing for some time. Also add J5.
4970 2004-10-21 Colin Walters <walters@verbum.org>
4972 * dbus/dbus-transport-unix.c (do_authentication): Return
4973 authentication status to callers.
4974 (unix_handle_watch): If we completed authentication this round,
4975 don't do another read. Instead wait until the next iteration,
4976 after we've read any pending data in the auth buffer.
4977 (unix_do_iteration): Ditto.
4978 (unix_handle_watch): Updated for new do_authentication prototype.
4980 2004-10-18 Colin Walters <walters@verbum.org>
4982 * bus/selinux.c (bus_selinux_enabled): Handle
4983 --disable-selinux case.
4985 2004-10-18 Colin Walters <walters@verbum.org>
4987 * bus/selinux.h: Add bus_selinux_enabled.
4989 * bus/selinux.c (bus_selinux_enabled): Implement it.
4991 * bus/config-parser.c (struct include): Add
4992 if_selinux_enabled member.
4993 (start_busconfig_child): Parse if_selinux_enabled
4994 attribute for include.
4995 (bus_config_parser_content): Handle it.
4997 * bus/session.conf.in, bus/system.conf.in: Add
4998 inclusion of context mapping to default config files;
4999 conditional on SELinux being enabled.
5001 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5003 * test/data/invalid-config-files/badselinux-1.conf,
5004 test/data/invalid-config-files/badselinux-2.conf:
5005 Test files for bad syntax.
5007 2004-10-17 Colin Walters <walters@verbum.org>
5009 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5010 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5011 format specifier mismatches.
5013 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
5015 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5018 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5019 pointer (bug #1540, Leonardo Boiko).
5021 2004-09-28 Jon Trowbridge <trow@ximian.com>
5023 * mono/BusDriver.cs: Changed BusDriver struct to remove
5024 the ServiceCreated and ServiceDeleted events and replace them
5025 with the new ServiceOwnerChanged event.
5027 * mono/example/BusListener.cs: Added a new example program,
5028 which listens for and reports any ServiceOwnerChanged events
5031 * mono/example/Makefile.am (DESTDIR): Build changes for the
5032 new BusListener.cs example.
5034 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
5036 * bus/signals.c (bus_match_rule_parse): validate the components of
5037 match rules (bug #1439).
5039 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5041 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
5043 * doc/dbus-specification.xml: document ServiceOwnerChanged
5046 * bus/driver.c, bus/driver.h, bus/services.c: Use
5047 ServiceOwnerChanged signal instead of ServiceCreated and
5050 * bus/dispatch.c: update testcase for the new signal.
5052 2004-09-20 Jon Trowbridge <trow@ximian.com>
5054 Patch from Nat Friedman <nat@novell.com>
5056 * mono/Makefile.am: A number of small build fixes to allow "make
5057 distcheck" to succeed.
5059 * mono/example/Makefile.am: "make distcheck" fixes.
5061 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5064 * test/Makefile.am: "make distcheck" fixes.
5066 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5068 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5070 * doc/busconfig.dtd: update the DTD for the at_console attribute.
5072 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5073 messages after the first one (bug #1389).
5075 * bus/dispatch.c (check_double_hello_message): add a test case for
5076 the double hello message bug.
5077 (check_existent_service_activation): fix check of spawning error.
5079 2004-09-16 David Zeuthen <david@fubar.dk>
5081 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5083 2004-09-12 David Zeuthen <david@fubar.dk>
5085 Patch from Kay Sievers <kay.sievers@vrfy.org>
5087 * bus/bus.c (bus_context_new):
5089 * bus/main.c (usage)
5091 Add commandline option --nofork to override configuration file
5094 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5096 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5097 compilers don't like it (bug #974).
5099 2004-09-04 Harald Fernengel <harry@kdevelop.org>
5101 * qt/connection.*: Applied patch by Jérôme Lodewyck
5102 <lodewyck@clipper.ens.fr> to integrate an existing
5103 connection into the Qt eventloop
5105 2004-08-30 Jon Trowbridge <trow@ximian.com>
5107 * mono/BusDriver.cs: Added. This is a class for interacting with
5108 the org.freedesktop.DBus service.
5110 * mono/Message.cs: Added a mechanism to expose the message that is
5111 currently being dispatched via the static Message.Current
5112 property. Added Message.Sender and Message.Destination
5115 * mono/Handler.cs: Expose the dispatched message via
5116 Message.Current when handling method calls.
5118 * mono/Service.cs: Expose the dispatched message via
5119 Message.Current when handling signal emissions.
5121 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5122 Connection.BaseService property.
5124 2004-08-28 Havoc Pennington <hp@redhat.com>
5126 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5128 More fixes from Steve Grubb
5130 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5131 (_dbus_listen_tcp_socket): fix fd leak
5133 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5134 EINTR to a bit lower in the code
5136 2004-08-26 Jon Trowbridge <trow@ximian.com>
5138 * bus/driver.c (bus_driver_handle_service_exists): Respond with
5139 TRUE if we are inquiring about the existence of the built-in
5140 org.freedesktop.DBus service.
5142 2004-08-25 John Palmieri <johnp@redhat.com>
5143 * bus/config-parser.c:
5144 (struct PolicyType): Add POLICY_CONSOLE
5145 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5146 (start_busconfig_child): Sets up console element when
5147 <policy at_console=""> is encountered in a policy file
5148 (append_rule_from_element): Convert console elements to console
5152 (bus_policy_create_client_policy): Add console rules to the client
5153 policy based on if the client is at the console
5154 (bus_policy_append_console_rule): New function for adding a
5155 console rule to a policy
5156 (bus_policy_merge): Handle console rule merging
5158 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5159 where we check for console user files
5161 * dbus/dbus-sysdeps.c:
5162 (_dbus_file_exists): New function which checks if the given
5164 (_dbus_user_at_console): New function which does the system
5165 specific process of checking if the user is at the console
5167 * dbus/dbus-userdb.c:
5168 (_dbus_is_console_user): New function converts a UID to user name
5169 and then calls the system specific _dbus_user_at_console to
5170 see if the user is at the console and therefor a console user
5172 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
5174 * bus/config-parser.c (set_limit):
5175 * bus/dbus-daemon-1.1.in:
5176 * test/data/valid-config-files/many-rules.conf: set the
5177 max_match_rules_per_connection limt from the config file.
5179 * doc/busconfig.dtd: update the DTD.
5181 * bus/driver.c: remove some unused variables.
5183 2004-08-24 Mikael Hallendal <micke@imendio.com>
5185 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
5186 it's been replaced by dbus_g_bus_get
5188 2004-08-23 Colin Walters <walters@redhat.com>
5190 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5192 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5194 * bus/selinux.c: Create a thread for policy reload notification.
5195 (bus_selinux_get_policy_root): Implement.
5197 * bus/config-parser.c (start_busconfig_child)
5198 (bus_config_parser_content): Support SELinux-root relative
5201 * configure.in <HAVE_SELINUX>: Add -lpthread.
5203 * bus/test-main.c (test_pre_hook, test_post_hook): New.
5204 (test_post_hook): Move memory checking into here.
5205 (test_pre_hook, test_post_hook): Move SELinux checks in
5206 here, but conditional on a DBUS_TEST_SELINUX environment
5207 variable. Unfortunately we can't run the SELinux checks
5208 as a normal user, since they won't have any permissions
5209 for /selinux. So this will have to be tested manually
5210 for now, until we have virtualization for most of
5213 2004-08-23 Havoc Pennington <hp@redhat.com>
5215 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5216 drop supplementary groups, suggested by Steve Grubb
5218 2004-08-20 Colin Walters <walters@redhat.com>
5220 * bus/config-parser.c (start_busconfig_child): Remove some unused
5223 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5226 2004-08-17 Joe Shaw <joeshaw@novell.com>
5228 * configure.in: If --enable-mono is passed in, if we can't find
5231 * mono/Makefile.am: Use /gacutil to install assemblies into the
5234 2004-08-12 Havoc Pennington <hp@redhat.com>
5236 * NEWS: update for 0.22
5238 * configure.in: release 0.22
5240 2004-08-11 Colin Walters <walters@redhat.com>
5242 * tools/dbus-send.c (main, usage): Add --reply-timeout
5245 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
5247 * bus/bus.c (process_config_first_time_only): get rid of an unused
5248 DBusError that was causing a memoy leak (bug #989).
5250 * dbus/dbus-keyring.c, dbus/dbus-message.c:
5251 fix compilation on Solaris/Forte C (bug #974)
5253 * bus/main.c (main): plug two minuscule memleaks.
5255 2004-08-10 Havoc Pennington <hp@redhat.com>
5257 * doc/dbus-tutorial.xml: add some more info on GLib bindings
5259 2004-08-09 Havoc Pennington <hp@redhat.com>
5261 * COPYING: switch to Academic Free License version 2.1 instead of
5262 2.0, to resolve complaints about patent termination clause.
5264 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
5266 * README: added documentation for the --enable-python
5269 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5271 * bus/config-parser.c (bus_config_parser_new): fix an invalid
5272 _unref in the SELinux support.
5274 * doc/busconfig.dtd: update DTD for SELinux support.
5276 * bus/config-loader-libxml.c: fix error handler and parser
5277 initialisation/cleanup. OOM test now works with libxml2 HEAD.
5279 * configure.in: remove the warning about libxml2.
5281 * dbus/dbus-bus.c: silence doxygen warning.
5283 2004-07-31 Colin Walters <walters@redhat.com>
5285 * configure.in: Move #error in SELinux check to its own line.
5287 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5289 * dbus/dbus-internals.h (_DBUS_SET_OOM):
5290 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5293 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5294 broken by the change in the _SET_OOM macros.
5296 2004-07-31 Colin Walters <walters@redhat.com>
5298 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5301 2004-07-31 Colin Walters <walters@redhat.com>
5303 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5304 to correctly detect DBUS__ACQUIRE_SVC. Also add an
5307 2004-07-24 Havoc Pennington <hp@redhat.com>
5309 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5311 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5314 * configure.in: add --enable-selinux
5316 * bus/policy.c (bus_policy_merge): add FIXME to a comment
5318 * bus/main.c (main): initialize and shut down selinux
5320 * bus/connection.c: store SELinux ID on each connection, to avoid
5321 repeated getting of the string context and converting it into
5324 * bus/bus.c (bus_context_get_policy): new accessor, though it
5326 (bus_context_check_security_policy): check whether the security
5327 context of sender connection can send to the security context of
5328 recipient connection
5330 * bus/config-parser.c: add parsing for <selinux> and <associate>
5332 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5333 implement dbus_connection_get_unix_fd()
5335 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5336 function, used by the selinux stuff
5338 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
5340 * bus/config-loader-libxml.c: complete the implementation of
5341 libxml backend for config file loader. Doesn't work with full OOM
5344 * configure.in: change error when selecting libxml into a warning.
5346 * test/data/invalid-config-files: add two non-well-formed XML
5349 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5351 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5352 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5353 be necessary to read all the buffer. (bug #894)
5355 * bus/activation.c (bus_activation_activate_service): fix a
5356 potential assertion failure (bug #896). Small optimization in the
5357 case of auto-activation messages.
5359 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5360 add test case for byte-through-vararg bug (#901). patch by Kimmo
5363 2004-07-28 Anders Carlsson <andersca@gnome.org>
5366 * python/dbus_bindings.pyx.in:
5367 Add dbus.init_gthreads (), allow emit_signal to pass
5368 arguments to the signal.
5370 2004-07-24 Havoc Pennington <hp@redhat.com>
5372 * AUTHORS: add some people, not really comprehensively, let me
5373 know if I missed you
5375 2004-07-24 Havoc Pennington <hp@redhat.com>
5377 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5380 * test/Makefile.am (DIST_SUBDIRS): here also
5382 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5384 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5385 breaking build on Solaris, reported by Farhad Saberi on the ML.
5387 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5388 va_arg invocation to account for integer promotion in the case of
5389 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5391 * bus/services.c (bus_service_remove_owner): fix bug #902, use
5392 _dbus_list_get_first_link, not _dbus_list_get_first.
5394 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5396 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5397 handler functions so that the asserts in _dbus_object_subtree_unref
5400 * dbus/dbus-transport-unix.c (do_reading):
5401 _dbus_transport_queue_messages return value is of type
5402 dbus_bool_t, not DBusDispatchStatus.
5404 2004-07-19 David Zeuthen <david@fubar.dk>
5406 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5409 (check_get_connection_unix_user): Debug says GetProperty; but the
5410 method is called GetConnectionUnixUser
5411 (check_get_connection_unix_process_id): New function
5412 (bus_dispatch_test): Actually call check_get_connection_unix_user();
5413 also call check_get_connection_unix_process_id()
5416 (bus_driver_handle_get_connection_unix_process_id): New function,
5417 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5421 (handle_server_data_external_mech): Set pid from the credentials
5422 obtained from the socket
5424 * dbus/dbus-connection.c:
5425 (dbus_connection_get_unix_process_id): New function
5427 * dbus/dbus-connection.h:
5428 Add prototype for dbus_connection_get_unix_process_id
5430 * dbus/dbus-transport.c:
5431 (_dbus_transport_get_unix_process_id): New function
5433 * dbus/dbus-transport.h:
5434 Add prototype for _dbus_transport_get_unix_process_id
5436 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
5438 * dbus/dbus-message.c: Message counter fix, patch by Christian
5439 Hammond <chipx86@gnupdate.org>
5441 2004-07-18 Seth Nickell <seth@gnome.org>
5444 * python/dbus_bindings.pyx.in:
5445 * python/tests/test-client.py:
5447 Add dbus.ByteArray and dbus_bindings.ByteArray
5448 types so that byte streams can be passed back.
5450 Give jdahlin the heaps of credit that are so
5453 2004-07-12 Seth Nickell <seth@gnome.org>
5457 Add message argument to the default object_method_handler
5460 * python/dbus_bindings.pyx.in:
5462 Automatically return NIL when passed an empty list
5463 (we can't pass back a list since lists are typed
5464 and we don't have any idea what type the the client
5465 intended the list to be... :-( )
5467 2004-07-10 Seth Nickell <seth@gnome.org>
5469 * python/examples/Makefile.am:
5471 Fix distcheck breakage caused by new examples.
5473 2004-07-10 Seth Nickell <seth@gnome.org>
5477 Add "message" argument to service-side dbus.Object
5478 methods. This will break existing services written
5479 using the python bindings, but will allow extraction
5480 of all the message information (e.g. who its from).
5482 Add improved "object oriented" signal handling/emission.
5484 * python/examples/example-service.py:
5488 * python/examples/example-signal-emitter.py:
5489 * python/examples/example-signal-recipient.py:
5491 Two new examples that show how to emit and receive
5492 signals using the new APIs.
5494 * python/examples/example-signals.py:
5495 * python/examples/gconf-proxy-service.py:
5496 * python/examples/gconf-proxy-service2.py:
5498 Add "message" argument to service methods.
5500 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
5502 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5503 * dbus/bus.c (dbus_bus_get_unix_user)
5504 * doc/dbus-specification.xml: implement GetConnectionUnixUser
5505 method of org.freedesktop.DBus interface.
5507 * bus/dispatch.c: test case
5509 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
5511 * python/Makefile.am: switched include directory from glib/ to dbus/
5512 since dbus-glib.h moved
5514 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5516 * configure.in: prevent building the gcj stuff and libxml loader
5517 since they are broken.
5519 2004-06-20 Havoc Pennington <hp@redhat.com>
5521 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
5522 codes from the dbus error names
5524 * glib/dbus-glib.h: move to subdir dbus/ since it's included
5525 as dbus/dbus-glib.h and that breakage is now visible due to
5526 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5528 * glib/dbus-glib.h: s/gproxy/g_proxy/
5530 * dbus/dbus-shared.h: new header to hold stuff shared with
5533 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5536 * glib/dbus-glib.h (dbus_set_g_error): move to
5537 dbus-glib-lowlevel.h
5539 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5540 of stuff to enable this
5542 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5544 * a bunch of other changes with the same basic "separate glib
5545 bindings from dbus.h" theme
5547 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
5549 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5551 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5553 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5555 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5556 the reply value of the ServiceExists message.
5558 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
5560 * python/dbus_bindings.pyx.in: No longer need to parse path
5561 elements and pass them as arrays of strings. The C API now
5562 accepts plain path strings.
5563 (_build_parsed_path): removed
5565 2004-06-07 Havoc Pennington <hp@redhat.com>
5567 * doc/TODO: remove auto-activation item since it's done; sort
5568 items by importance/milestone
5570 2004-06-07 Havoc Pennington <hp@redhat.com>
5572 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5573 random signature when using REQUIRED_FIELDS (this hack won't work
5576 * dbus/dbus-message.c: change the signature to be a header field,
5577 instead of message->signature special-case string. Incremental
5578 step forward. Then we can fix up code to send the signature in the
5579 message, then fix up code to validate said signature, then fix up
5580 code to not put the typecodes inline, etc.
5581 (load_one_message): don't make up the signature after the fact
5582 (decode_header_data): require signature field for the known
5585 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5587 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5589 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
5591 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5593 * mono/Handler.cs: Updated to follow new path argument for
5594 (un-)registering objects.
5596 * mono/example/Makefile.am:
5598 * configure.in: Bumped required version for mono and use new -pkg
5601 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
5603 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5604 registration functions take the path argument as char* instead of
5607 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5608 split off the path decompostion part of
5609 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5612 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5614 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5616 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5617 machine approach. A state is implemented as a function that
5618 handles incoming events as specified for that state.
5620 * doc/dbus-specification.xml: Update auth protocol state machine
5621 specification to match implementation. Remove some leftover
5624 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5626 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5627 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5630 * Doxyfile.in: remove deprecated options.
5632 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5633 glib/test-thread.h, glib/test-thread-client.c,
5634 glib/test-thread-server.c, glib/test-profile.c,
5635 glib/test-dbus-glib.c: remove these unused files.
5637 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
5639 * dbus/dbus-object-tree.c
5640 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5641 non-fallback handlers (bug #684).
5642 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5643 (find_subtree_recurse): report wether the returned subtree is an
5644 exact match or a "fallback" match higher up in the tree.
5645 (object_tree_test_iteration): update test case.
5647 2004-06-01 Seth Nickell <seth@gnome.org>
5649 * python/dbus_bindings.pyx.in:
5650 * python/tests/test-client.py:
5652 Round off basic type support. Add dicts (yay!), and
5653 remaining array types.
5655 Make MessageIter more general so it works for dicts too.
5657 Mark all loop variables as C integers.
5659 2004-05-31 Havoc Pennington <hp@redhat.com>
5661 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5664 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5666 * glib/dbus-glib-tool.c (main): set up to have a --self-test
5667 option that runs the tests, and start filling in some code
5668 including for starters just dumping the interfaces to stdout
5670 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5672 * test/data/valid-introspection-files/lots-of-types.xml: test of
5673 an example introspection file
5675 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5678 2004-05-31 Seth Nickell <seth@gnome.org>
5680 * python/dbus_bindings.pyx.in:
5681 * python/tests/test-client.py:
5686 Fix string array memory trashing bug... oops...
5688 2004-05-30 Seth Nickell <seth@gnome.org>
5692 Add a nicer-but-less-flexible alternate API for handling
5693 calls to virtual objects in dbus.ObjectTree.
5695 Screw up the argument order to the dbus.Object constructor
5696 for consistency with dbus.ObjectTree (and to make dbus_methods
5697 optional for future extension)
5699 * python/examples/Makefile.am:
5700 * python/examples/gconf-proxy-service.py:
5701 * python/examples/gconf-proxy-service2.py:
5703 Alternate implementation of gconf-proxy-service using the
5704 nicer dbus.ObjectTree API.
5706 * python/examples/example-service.py:
5707 * python/tests/test-server.py
5709 Reverse the argument order to deal with dbus.Object constructor
5712 2004-05-30 Seth Nickell <seth@gnome.org>
5714 * python/examples/example-client.py:
5715 * python/examples/example-service.py:
5717 Take it back. Lists seem to work but they're broken
5718 in the test suite. Make the base examples use
5721 2004-05-30 Seth Nickell <seth@gnome.org>
5723 * python/dbus_bindings.pyx.in:
5724 * python/tests/test-client.py:
5726 Add some more tests and fix errors that crop up.
5727 Unfortunately, currently it seems like marshalling
5728 and unmarshalling of lists is completely broken :-(
5730 2004-05-30 Seth Nickell <seth@gnome.org>
5732 * python/dbus_bindings.pyx.in:
5734 Add support for ObjectPath type.
5738 Refactor message handling code to a common function.
5740 * python/tests/test-client.py:
5741 * python/tests/test-server.py:
5743 Add tests that check to make sure values of all types
5744 can be echoed from a service w/o mangling.
5746 2004-05-29 Seth Nickell <seth@gnome.org>
5750 Add ObjectTree class which allows implementation
5751 of trees of "virtual" objects. Basically the python
5752 wrapper for "register_fallback".
5754 * python/examples/Makefile.am
5755 * python/examples/gconf-proxy-client.py:
5756 * python/examples/gconf-proxy-service.py:
5758 Implement a simple GConf proxy service that supports
5759 get/set on string and int GConf keys using the ObjectTree.
5761 2004-05-29 Seth Nickell <seth@gnome.org>
5764 * python/examples/example-client.py:
5765 * python/examples/example-service.py:
5766 * python/examples/list-system-services.py:
5768 Add SessionBus, SystemBus and ActivationBus classes
5769 so you don't need to know the special little BUS_TYPE
5772 2004-05-29 Havoc Pennington <hp@redhat.com>
5774 * bus/config-parser.c (process_test_valid_subdir): temporarily
5775 stop testing config parser OOM handling, since expat has issues
5776 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5778 * bus/dbus-daemon-1.1.in: change requested_reply to
5779 send_requested_reply/receive_requested_reply so we can send the
5780 replies, not just receive them.
5782 * bus/config-parser.c: parse the new
5783 send_requested_reply/receive_requested_reply
5785 * bus/policy.c (bus_client_policy_check_can_send): add
5786 requested_reply argument and use it
5788 * bus/bus.c (bus_context_check_security_policy): pass through
5789 requested_reply status to message send check
5791 * bus/system.conf.in: adapt to requested_reply change
5793 2004-05-28 Havoc Pennington <hp@redhat.com>
5795 * test/glib/test-service-glib.c (main): remove unused variable
5797 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5799 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5800 from the enum, no longer in use.
5802 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5805 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5806 whether error_name passed in is a valid error name.
5808 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
5810 * dbus/dbus-message.c (dbus_message_get_args): Added support for
5811 OBJECT_PATH and OBJECT_PATH_ARRAY
5813 2004-05-28 Seth Nickell <seth@gnome.org>
5815 * python/examples/Makefile.am:
5817 Forget to add Makefile.am. Do not pass go.
5819 2004-05-28 Michael Meeks <michael@ximian.com>
5821 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
5824 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5826 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5827 (_dbus_message_iter_get_basic_type_array): impl.
5828 drastically simplify ~all relevant _get methods to use these.
5829 (_dbus_message_iter_append_basic_array),
5830 (dbus_message_iter_append_basic): impl
5831 drastically simplify ~all relevant _append methods to use these.
5833 * dbus/dbus-message-builder.c (parse_basic_type)
5834 (parse_basic_array, lookup_basic_type): impl.
5835 (_dbus_message_data_load): prune scads of duplicate /
5838 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
5839 (_dbus_demarshal_basic_type): implement,
5840 (demarshal_and_validate_len/arg): beef up debug.
5841 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5843 2004-05-27 Seth Nickell <seth@gnome.org>
5846 * python/Makefile.am:
5848 Include the example python apps in the tarball.
5850 * python/examples/list-system-services.py
5852 Add a python new example that fetches the list of services
5853 from the system bus.
5855 2004-05-27 Seth Nickell <seth@gnome.org>
5858 * python/dbus_bindings.pyx.in:
5860 Fix failure to notify that a signal was not handled,
5861 resulted in hung functions.
5863 2004-05-25 Colin Walters <walters@redhat.com>
5865 * tools/dbus-monitor.c (main): Monitor all types of messages.
5867 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
5869 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
5870 which unregisters the object path and disposes the handler.
5872 2004-05-23 Kristian Høgsberg <krh@redhat.com>
5874 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
5876 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
5877 operands to && so we call dbus_message_iter_next () for the last
5880 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
5882 * dbus/dbus-object-tree.c
5883 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
5884 children even if the requested path isn't registered.
5885 (object_tree_test_iteration): test object_tree_list_registered.
5887 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
5890 2004-05-20 Kristian Høgsberg <krh@redhat.com>
5892 * doc/TODO: Remove resolved items.
5894 * bus/expirelist.h (struct BusExpireList): remove unused n_items
5897 * bus/connection.c (bus_connections_expect_reply): Enforce the
5898 per-connection limit on pending replies.
5900 Patch from Jon Trowbridge <trow@ximian.com>:
5902 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
5903 up a watch that triggers a config reload when one end of the pipe
5905 (signal_handler): Instead of doing the config reload in our SIGHUP
5906 handler, just write to the reload pipe and let the associated
5907 watch handle the reload when control returns to the main loop.
5909 * bus/driver.c (bus_driver_handle_reload_config): Added.
5910 Implements a ReloadConfig method for requesting a configuration
5911 file reload via the bus driver.
5913 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
5915 * HACKING: Updated release instructions concerning the wiki page.
5917 2004-05-18 Kristian Høgsberg <krh@redhat.com>
5919 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
5920 filter against auth->allowed_mechs; we only add allowed mechs in
5921 record_mechanisms().
5923 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
5924 ALLOWED_MECHS to auth-script format so we can set the list of
5927 * data/auth/client-out-of-mechanisms.auth-script: New test to
5928 check client disconnects when it is out of mechanisms to try.
5930 * dbus/dbus-auth.c (process_command): Remove check for lines
5931 longer that 1 MB; we only buffer up maximum 16 kB.
5933 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
5934 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
5935 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
5936 assume there might be unused bytes.
5938 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
5939 client-out-of-mechs, it is handled in process_reject(). Move check
5940 for max failures to send_rejected(), as it's a server-only thing.
5942 * dbus/dbus-auth.c: Factor out protocol reply code into functions
5943 send_auth(), send_data(), send_rejected(), send_error(),
5944 send_ok(), send_begin() and send_cancel().
5946 2004-05-17 Kristian Høgsberg <krh@redhat.com>
5948 Remove base64 encoding, replace with hex encoding. Original patch
5949 from trow@ximian.com, added error handling.
5951 * dbus/dbus-string.c (_dbus_string_base64_encode)
5952 (_dbus_string_base64_decode): Remove.
5953 (_dbus_string_hex_decode): Add end_return argument so we can
5954 distinguish between OOM and invalid hex encoding.
5955 (_dbus_string_test): Remove base64 tests and add test case for
5958 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
5959 Replace base64 with hex.
5961 * test/data/auth/invalid-hex-encoding.auth-script: New test case
5962 for invalid hex encoded data in auth protocol.
5964 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5966 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
5969 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5971 * mono/dbus-sharp.dll.config.in: Added for GAC
5972 * mono/dbus-sharp.snk: Added for GAC
5973 * mono/Assembly.cs.in: Added for GAC
5974 * mono/Makefile.am: Changes for GAC installation
5975 * configure.in: Added refs for dbus-sharp.dll.config.in and
5976 Assembly.cs.in. More fixes for mono testing
5977 * mono/example/Makefile.am: Changed var to CSC
5978 * Makefile.am: Changed flag name to DBUS_USE_CSC
5980 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
5982 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
5983 * mono/doc/*: Added documentation framework
5984 * configure.in: Added monodoc check
5985 * README: Added description of mono configure flags
5987 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
5989 * doc/dbus-specification.xml: Added a "Required" column to the
5990 header fields table and changed the "zero or more" verbage in
5991 the above paragraph to read "The header must contain the required
5992 named header fields and zero or more of the optional named header
5994 * test/data/invalid-messages/*.message: Added the required PATH
5995 named header field to the tests so that they don't fail on
5996 'Missing path field'
5998 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
6000 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6001 the stack by implicitly defining variable and parameter types and
6002 removing the hack of defining C pointers as python objects and later
6005 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
6007 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6009 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
6011 * mono/DBusType/Dict.cs: Handle empty dicts
6012 * mono/DBusType/Array.cs: Handle empty arrays
6013 * mono/Arguments.cs: Handle empty arguments
6015 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
6017 * dbus-sharp.pc.in: Modified to include include Libs and Requires
6020 2004-04-25 Kristian Høgsberg <krh@redhat.com>
6022 * test/data/valid-messages/standard-*.message: Update message
6023 test scripts to new header field names.
6025 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
6027 * test/break-loader.c (randomly_do_n_things): tracked down buffer
6028 overflow to times_we_did_each_thing array which would chop off the
6029 first character of the failure_dir string. Increased the size of
6030 the array to 7 to reflect the number of random mutation functions
6033 2004-04-21 Kristian Høgsberg <krh@redhat.com>
6035 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6036 unix_server->watch here, it is unreffed in disconnect.
6037 (_dbus_server_new_for_tcp_socket): convert NULL host to
6038 "localhost" here so we don't append NULL to address.
6040 * dbus/dbus-server.c (_dbus_server_test): Add test case for
6041 various addresses, including tcp with no explicit host.
6043 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6045 * dbus/dbus-message.c (decode_header_data, decode_string_field):
6046 fix incorrect setting of .name_offset in the HeaderField (it was
6047 off by two bytes, positioned right after the name and typecode)
6049 * bus/bus.c (bus_context_new, bus_context_unref): test before
6050 calling dbus_server_free_data_slot and _dbus_user_database_unref
6051 in case of an error.
6053 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6056 2004-04-19 Kristian Høgsberg <krh@redhat.com>
6058 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6059 _dbus_poll() instead of select().
6061 2004-04-15 Jon Trowbridge <trow@ximian.com>
6063 * bus/main.c (signal_handler): Reload the configuration files
6065 (main): Set up our SIGHUP handler.
6067 * bus/bus.c (struct BusContext): Store the config file, user and
6068 fork flag in the BusContext.
6069 (process_config_first_time_only): Added. Contains the code
6070 (previously in bus_context_new) for setting up the BusContext from
6071 the BusConfigParser that should only be run the first time the
6072 config files are read.
6073 (process_config_every_time): Added. Contains the code (previously
6074 in bus_context_new) for setting up the BusContext from the
6075 BusConfigParser that should be run every time the config files are
6077 (load_config): Added. Builds a BusConfigParser from the config
6078 files and passes the resulting structure off to
6079 process_config_first_time_only (assuming this is the first time)
6080 and process_config_every_time.
6081 (bus_context_new): All of the config-related code has been moved
6082 to process_config_first_time_only and process_config_every_time.
6083 Now this function just does the non-config-related initializations
6084 and calls load_config.
6085 (bus_context_reload_config): Added.
6087 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
6089 * bus/driver.c (bus_driver_handle_get_service_owner):
6090 implement a GetServiceOwner method.
6091 * doc/dbus-specification.xml: document it.
6092 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6094 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6095 implement, using the bus GetServiceOwner method.
6097 * test/glib/test-dbus-glib.c:
6098 use dbus_gproxy_new_for_service_owner so that we can receive the
6101 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
6103 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6104 dbus/dbus-message.c, dbus/dbus-protocol.h
6105 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6107 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6108 dbus/dbus-message.c, dbus/dbus-protocol.h
6109 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6111 * dbus/dbus-internals.c (_dbus_header_field_to_string):
6112 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6113 DBUS_HEADER_FIELD_SENDER resolves to "sender"
6115 * doc/dbus-specification.xml (Header Fields Table):
6116 s/SERVICE/DESTINATION
6117 s/SENDER_SERVICE/SENDER
6120 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
6122 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6125 2004-04-13 Michael Meeks <michael@ximian.com>
6127 * glib/dbus-gobject.c (handle_introspect): split out
6128 (introspect_properties): this.
6129 (handle_introspect): implement this.
6131 * test/glib/Makefile.am: use the absolute path so the bus
6132 daemon's chdir ("/") doesn't kill us dead.
6134 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6136 2004-04-12 Jon Trowbridge <trow@ximian.com>
6138 * bus/config-parser.c (struct BusConfigParser): Added
6139 included_files field.
6140 (seen_include): Added. Checks whether or not a file has already
6141 been included by any parent BusConfigParser.
6142 (bus_config_parser_new): Copy the parent's included_files.
6143 (include_file): Track which files have been included, and fail on
6144 circular inclusions.
6145 (process_test_valid_subdir): Changed printf to report if we are
6146 testing valid or invalid conf files.
6147 (all_are_equiv): Changed printf to be a bit clearer about
6148 what we are actually doing.
6149 (bus_config_parser_test): Test invalid configuration files.
6151 2004-04-09 Jon Trowbridge <trow@ximian.com>
6153 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6154 argument. If non-null, the newly-constructed BusConfigParser will
6155 be initialized with the parent's BusLimits instead of the default
6157 (include_file): When including a config file, pass in
6158 the current parser as the parent and then copy the BusLimits
6159 from the included BusConfigParser pack to the current parser.
6160 (process_test_valid_subdir): Renamed from process_test_subdir.
6161 (process_test_equiv_subdir): Added. Walks through a directory,
6162 descending into each subdirectory and loading the config files
6163 it finds there. If any subdirectory contains two config files
6164 that don't produce identical BusConfigParser structs, fail.
6165 For now, the BusConfigParser's BusPolicies are not compared.
6166 (bus_config_parser_test): Call both process_test_valid_subdir and
6167 process_test_equiv_subdir.
6169 * bus/config-loader-libxml.c (bus_config_load): Take a parent
6170 argument and pass it along to the call to bus_config_parser_new.
6171 Also made a few small changes to allow this code to compile.
6173 * bus/config-loader-expat.c (bus_config_load): Take a parent
6174 argument and pass it along to the call to bus_config_parser_new.
6176 * bus/bus.c (bus_context_new): Load the config file
6177 with a NULL parent argument.
6179 2004-03-29 Michael Meeks <michael@ximian.com>
6181 * glib/dbus-gobject.c (introspect_properties): split
6182 out, fix mangled 'while' flow control.
6183 (introspect_signals): implement.
6184 (handle_introspect): update.
6186 2004-03-29 Michael Meeks <michael@ximian.com>
6188 * glib/dbus-gobject.c (set_object_property): split out /
6189 re-work, use the property type, and not the message type(!)
6190 (get_object_property): ditto.
6192 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6193 (dbus_gvalue_marshal): make this code re-usable, needed
6194 for signals too, also on both proxy and server side.
6195 Re-write for more efficiency / readability.
6197 2004-03-29 Michael Meeks <michael@ximian.com>
6199 * dbus/dbus-message.c
6200 (dbus_message_new_error_printf): impl.
6202 * dbus/dbus-connection.c
6203 (dbus_connection_unregister_object_path): fix warning.
6205 * configure.in: fix no-mono-installed situation.
6207 2004-03-27 Havoc Pennington <hp@redhat.com>
6209 Patch from Timo Teräs:
6211 * tools/dbus-send.c (main): if --print-reply, assume type is
6212 method call; support boolean type args
6214 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6215 bunch of memleak and logic bugs
6217 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6219 * mono/Arguments.cs:
6220 * mono/Introspector.cs:
6222 * mono/InterfaceProxy.cs:
6224 * mono/ProxyBuilder.cs:
6226 Added InterfaceProxy class to avoid building proxies for every
6230 * dbus-message.c (dbus_message_append_args_valist)
6231 (dbus_message_iter_get_object_path)
6232 (dbus_message_iter_get_object_path_array)
6233 (dbus_message_iter_append_object_path)
6234 (dbus_message_iter_append_object_path_array):
6235 Added object_path iter functions to handle OBJECT_PATH arguments
6237 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6239 First checkin of mono bindings.
6242 Build stuff for the bindings
6243 * dbus-sharp.pc.in: Added for pkgconfig
6245 2004-03-21 Havoc Pennington <hp@redhat.com>
6247 * test/test-service.c (main): remove debug spew
6249 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6251 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6254 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6255 (dbus_message_iter_init_array_iterator)
6256 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6257 indicate whether the iterator is empty
6259 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6262 2004-03-19 Havoc Pennington <hp@redhat.com>
6264 * NEWS: 0.21 updates
6266 * configure.in: 0.21
6268 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6270 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6271 you don't need pyrex to make dist
6273 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6276 2004-03-18 Richard Hult <richard@imendio.com>
6278 * dbus/dbus-message.c (dbus_message_get_auto_activation)
6279 (dbus_message_set_auto_activation): Add doxygen docs.
6281 2004-03-16 Richard Hult <richard@imendio.com>
6283 * bus/activation.c: (bus_activation_service_created),
6284 (bus_activation_send_pending_auto_activation_messages),
6285 (bus_activation_activate_service):
6287 * bus/dispatch.c: (bus_dispatch),
6288 (check_nonexistent_service_auto_activation),
6289 (check_service_auto_activated),
6290 (check_segfault_service_auto_activation),
6291 (check_existent_service_auto_activation), (bus_dispatch_test):
6292 * bus/driver.c: (bus_driver_handle_activate_service):
6293 * bus/services.c: (bus_registry_acquire_service):
6294 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6295 (dbus_message_get_auto_activation):
6296 * dbus/dbus-message.h:
6297 * dbus/dbus-protocol.h: Implement auto-activation.
6299 * doc/dbus-specification.xml: Add auto-activation to the spec.
6301 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
6303 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6304 fix a bug with CUSTOM types.
6306 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6307 a unit test for this bug (used to fail).
6309 2004-03-12 Mikael Hallendal <micke@imendio.com>
6312 (babysitter_watch_callback): notify all pending activations waiting for
6313 the same exec that the activation failed.
6314 (bus_activation_activate_service): shortcut the activation if we
6315 already waiting for the same executable to start up.
6317 2004-03-12 Mikael Hallendal <micke@imendio.com>
6320 - Added service file reloading.
6321 Each service files directory is kept in an hash table in
6322 BusActivation and each BusActivationEntry knows what .service-file it
6323 was read from. So when you try to activate a service the bus will
6324 check if it's been updated, removed or if new .service-files has
6326 - Test code at the bottom for the service file reloading.
6327 * bus/test-main.c: (main):
6329 - added service reloading test.
6330 * dbus/dbus-sysdeps.c:
6331 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6333 2004-03-08 Michael Meeks <michael@ximian.com>
6335 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
6336 bail immediately if disconnected, to avoid busy loop.
6338 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6339 cleanup cut/paste/inefficiency.
6341 2004-03-01 David Zeuthen <david@fubar.dk>
6343 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6344 bug where args were used twice. This bug resulted in a segfault
6345 on a Debian/PPC system when starting the messagebus daemon. Include
6346 dbus-sysdeps.h for DBUS_VA_COPY
6348 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6350 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6351 appropriate va_copy implementation. From GLib
6353 2004-02-24 Joe Shaw <joe@ximian.com>
6355 * bus/services.c (bus_registry_acquire_service): We need to pass
6356 in the service name to dbus_set_error() to prevent a crash.
6358 2003-12-26 Anders Carlsson <andersca@gnome.org>
6360 * AUTHORS: Reveal my True identity.
6362 2003-12-17 Mikael Hallendal <micke@imendio.com>
6364 * dbus/dbus-message.c: (dbus_message_append_args_valist):
6365 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6367 2003-12-13 Mikael Hallendal <micke@imendio.com>
6369 * doc/TODO: Added not about better error check of configuration files.
6371 2003-12-02 Richard Hult <richard@imendio.com>
6373 * Update AFL version to 2.0 throughout the source files to reflect
6374 the update that was done a while ago.
6376 2003-12-02 Richard Hult <richard@imendio.com>
6378 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6379 wrote_dict_key to FALSE on the iter that the dict is appended to,
6380 just like when appending other types. Fixes a bug where a dict
6381 couldn't be put inside a dict.
6382 (dbus_message_iter_append_dict_key): Fix typo in warning message.
6383 (message_iter_test, _dbus_message_test): Add test case for dict
6386 2003-12-01 David Zeuthen <david@fubar.dk>
6388 * python/dbus.py: Add the actual message when calling the reciever
6389 of a signal such that parameters can be inspected. Add the method
6390 remove_signal_receiver
6392 2003-11-26 Mikael Hallendal <micke@imendio.com>
6396 * glib/*.[ch]: Made ref functions return the pointer
6398 2003-11-25 Zack Rusin <zack@kde.org>
6400 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6402 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
6405 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
6406 the Integrator and to better fit with the server,
6408 2003-11-24 Zack Rusin <zack@kde.org>
6410 * qt/connection.h, qt/connection.cpp: removing initDbus method since
6411 the integrator handles it now
6413 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6414 since QTimer wasn't really meant to be used the way DBusTimeout is
6416 2003-11-24 Zack Rusin <zack@kde.org>
6418 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
6419 Integrator class which integrates D-BUS with the Qt event loop,
6421 * qt/connection.h, qt/connection.cpp: Move all the code which
6422 was dealing with D-BUS integration to the Integrator class,
6423 and start using Integrator,
6425 2003-11-23 Zack Rusin <zack@kde.org>
6427 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
6430 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6431 switching namespaces to DBusQt, reworking the class,
6433 * Makefile.cvs: switching dependencies so that it matches KDE
6436 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
6439 2003-11-19 Havoc Pennington <hp@redhat.com>
6443 * configure.in: bump version to 0.20
6445 * configure.in (have_qt): add yet another place to look for qt
6446 (someone hand trolltech a .pc file...)
6448 2003-11-01 Havoc Pennington <hp@redhat.com>
6450 * doc/dbus-specification.xml: add state machine docs on the auth
6451 protocol; just a first draft, I'm sure it's wrong.
6453 2003-10-28 David Zeuthen <david@fubar.dk>
6455 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6456 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6458 2003-10-28 Havoc Pennington <hp@redhat.com>
6460 * dbus/dbus-message.c (get_next_field): delete unused function
6462 2003-10-28 Havoc Pennington <hp@redhat.com>
6464 * bus/expirelist.c (do_expiration_with_current_time): detect
6465 failure of the expire_func due to OOM
6467 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6469 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6470 NoReply error that's now created by the bus when the service exits
6472 2003-10-28 Havoc Pennington <hp@redhat.com>
6474 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6475 tests for set_path, set_interface, set_member, etc.
6477 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6479 * dbus/dbus-message.c (set_string_field): always just delete and
6480 re-append the field; accept NULL for deletion
6481 (re_align_fields_recurse): reimplement
6483 2003-10-26 Havoc Pennington <hp@redhat.com>
6485 * dbus/dbus-connection.c: fix docs to properly describe the
6486 disconnected message
6487 (_dbus_connection_notify_disconnected): remove this function;
6488 we can't synchronously add the disconnected message, we have to
6489 do it after we've queued any remaining real messages
6490 (_dbus_connection_get_dispatch_status_unlocked): queue the
6491 disconnect message only if the transport has finished queueing all
6492 its real messages and is disconnected.
6493 (dbus_connection_disconnect): update the dispatch status here
6495 2003-10-22 Havoc Pennington <hp@redhat.com>
6497 * bus/bus.c (bus_context_check_security_policy): fix up assertion
6499 * bus/connection.c (bus_transaction_send_from_driver): set the
6500 destination to the connection's base service
6502 2003-10-20 Havoc Pennington <hp@redhat.com>
6504 hmm, make check is currently not passing.
6506 * doc/dbus-specification.xml: add requirement that custom type
6507 names follow the same rules as interface names.
6509 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6510 duplication and allow 'c' to be 'custom'; dict is now 'm' for
6513 * doc/dbus-specification.xml: update type codes to match
6514 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6515 CUSTOM. Add type OBJECT_PATH to the spec.
6517 2003-10-17 Havoc Pennington <hp@redhat.com>
6519 * bus/driver.c (create_unique_client_name): use "." as separator
6520 in base service names instead of '-'
6522 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6523 byte at the end of the string
6525 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6526 optimization macros since string validation seems to be a slow
6529 * doc/dbus-specification.xml: restrict valid
6530 service/interface/member/error names. Add test suite code for the
6533 * dbus/dbus-string.c: limit service/interface/member/error names
6536 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6537 format arg to verbose spew
6539 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6540 memory, return instead of g_error
6542 * test/test-service.c (path_message_func): support emitting a
6545 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6546 activation bus type if DBUS_BUS_ACTIVATION was set; default to
6547 assuming the activation bus was the session bus so that services
6548 started manually will still register.
6549 (init_connections_unlocked): fix so that in OOM situation we get
6550 the same semantics when retrying the function
6552 * test/test-service.c (main): change to use path registration, to
6553 test those codepaths; register with DBUS_BUS_ACTIVATION rather
6554 than DBUS_BUS_SESSION
6556 2003-10-16 Havoc Pennington <hp@redhat.com>
6558 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6560 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6561 coverage of the tests
6562 (coverage-report.txt): don't move the .da and .bbg files around
6564 2003-10-16 Havoc Pennington <hp@redhat.com>
6566 * bus/bus.c (struct BusContext): remove struct field I didn't mean
6569 2003-10-16 Havoc Pennington <hp@redhat.com>
6571 * bus/connection.c (bus_pending_reply_expired): either cancel or
6573 (bus_connections_check_reply): use unlink, not remove_link, as we
6574 don't want to free the link; fixes double free mess
6576 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6577 where no reply was received
6579 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6582 * bus/signals.c (match_rule_matches): add special cases for the
6583 bus driver, so you can match on sender/destination for it.
6585 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6586 DBUS_PRINT_BACKTRACE is set
6588 * dbus/dbus-internals.c: add pid to assertion failure messages
6590 * dbus/dbus-connection.c: add message type code to the debug spew
6592 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6593 sender=foo not service=foo
6595 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6596 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
6597 DBUS_ACTIVATION_ADDRESS instead
6599 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6600 DBUS_SYSTEM_BUS_ADDRESS if appropriate
6602 * bus/bus.c (bus_context_new): handle OOM copying bus type into
6605 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6606 (dbus_message_iter_get_object_path_array): new function (half
6607 finished, disabled for the moment)
6609 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6610 DBUS_MESSAGE_TYPE_ERROR
6612 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6613 avoid redirecting stderr to /dev/null
6614 (babysit): close stdin if not doing the "exit_with_session" thing
6616 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6617 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6618 stdout/stdin, so things don't get confused
6620 * bus/system.conf.in: fix to allow replies, I modified .conf
6621 instead of .conf.in again.
6623 2003-10-14 David Zeuthen <david@fubar.dk>
6625 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6626 argtype to arg_type when raising unknown arg type exception.
6627 Changed type list to reflect the changes in dbus-protocol.h so
6628 the bindings actually work.
6630 2003-10-14 Havoc Pennington <hp@redhat.com>
6632 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6633 to have a bug keeping it from outputting the .da files sometimes
6634 (string_get_string): don't append garbage nul bytes to the string.
6636 2003-10-15 Seth Nickell <seth@gnome.org>
6638 * python/Makefile.am:
6640 Include dbus_h_wrapper.h in the dist tarball.
6642 2003-10-14 Havoc Pennington <hp@redhat.com>
6644 * bus/bus.c (bus_context_check_security_policy): revamp this to
6645 work more sanely with new policy-based requested reply setup
6647 * bus/connection.c (bus_transaction_send_from_driver): set bus
6648 driver messages as no reply
6650 * bus/policy.c (bus_client_policy_check_can_receive): handle a
6651 requested_reply attribute on allow/deny rules
6653 * bus/system.conf: add <allow requested_reply="true"/>
6655 * bus/driver.c (bus_driver_handle_message): fix check for replies
6656 sent to the bus driver, which was backward. How did this ever work
6657 at all though? I think I'm missing something.
6659 * dbus/dbus-message.c (decode_header_data): require error and
6660 method return messages to have a reply serial field to be valid
6661 (_dbus_message_loader_queue_messages): break up this function;
6662 validate that reply serial and plain serial are nonzero;
6663 clean up the OOM/error handling.
6664 (get_uint_field): don't return -1 from this
6665 (dbus_message_create_header): fix signed/unsigned bug
6667 * bus/connection.c (bus_connections_expect_reply): save serial of
6668 the incoming message, not reply serial
6670 2003-10-14 Havoc Pennington <hp@redhat.com>
6672 * bus/connection.c: implement pending reply tracking using
6675 * bus/bus.c (bus_context_check_security_policy): verify that a
6676 reply is pending in order to allow a reply to be sent. Deny
6677 messages of unknown type.
6679 * bus/dbus-daemon-1.1.in: update to mention new resource limits
6681 * bus/bus.c (bus_context_get_max_replies_per_connection): new
6682 (bus_context_get_reply_timeout): new
6684 2003-10-13 Seth Nickell <seth@gnome.org>
6686 * python/Makefile.am:
6688 Pass "make distcheck": remove a couple files from DIST_FILES
6689 that weren't included in the final version.
6691 2003-10-12 Havoc Pennington <hp@pobox.com>
6693 Added test code that 1) starts an actual bus daemon and 2) uses
6694 DBusGProxy; fixed bugs that were revealed by the test. Lots
6695 more testing possible, but this is the basic framework.
6697 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6698 empty proxy lists from the proxy list hash
6700 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6701 couple of return_if_fail checks
6703 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6704 to allocate, so everything is cleared to NULL as it should be.
6706 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6707 source as data to dbus_connection_set_timeout_functions() as the
6708 timeout functions expected
6710 * test/glib/run-test.sh: add a little script to start up a message
6711 bus and run tests using it
6713 * tools/dbus-launch.1: updates
6715 * tools/dbus-launch.c (main): add --config-file option
6717 * tools/dbus-launch.c (main): remove confusing else if (runprog)
6718 that could never be reached.
6720 * dbus/dbus-message.c (dbus_message_new_method_return)
6721 (dbus_message_new_error, dbus_message_new_signal): set the
6722 no-reply-expected flag on all these. Redundant, but may
6723 as well be consistent.
6725 2003-10-11 Havoc Pennington <hp@pobox.com>
6727 * test/decode-gcov.c (function_solve_graph): make broken block
6728 graph a nonfatal error since it seems to be broken. Need to debug
6731 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6732 can't just check type > INVALID < LAST anymore
6734 * dbus/dbus-message.c (dbus_message_get_signature): new function
6735 (dbus_message_has_signature): new function
6736 (struct DBusMessage): add signature field (right now it isn't sent
6737 over the wire, just generated on the fly)
6738 (dbus_message_copy): copy the signature, and init strings to
6739 proper length to avoid some reallocs
6740 (dbus_message_iter_init_array_iterator): return void, since it
6742 (dbus_message_iter_init_dict_iterator): return void since it can't fail
6743 (_dbus_message_loader_queue_messages): add silly temporary hack to
6744 fill in message->signature on load
6746 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6747 characters, so they are relatively human-readable.
6749 2003-10-11 Havoc Pennington <hp@pobox.com>
6751 * dbus/dbus-message.c (_dbus_message_test): add more test
6752 coverage, but #if 0 for now since they uncover a bug
6753 not fixed yet; I think in re_align_field_recurse()
6754 (re_align_field_recurse): add FIXME about broken assertion
6756 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6758 * bus/connection.c: share a couple code bits with expirelist.c
6760 * bus/expirelist.h, bus/expirelist.c: implement a generic
6761 expire-items-after-N-seconds facility, was going to share between
6762 expiring connections and replies, decided not to use for expiring
6763 connections for now.
6765 * COPYING: include AFL 2.0 (still need to change all the file headers)
6767 2003-10-09 Havoc Pennington <hp@redhat.com>
6769 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6770 gcc 3.3. Not that we do anything about it yet.
6772 * bus/signals.c (bus_match_rule_parse): impose max length on the
6775 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6777 2003-10-09 Havoc Pennington <hp@redhat.com>
6779 Make matching rules theoretically work (add parser).
6781 * bus/bus.c (bus_context_check_security_policy): fix up to handle
6782 the case where destination is explicitly specified as bus driver
6783 and someone else is eavesdropping.
6785 * bus/policy.c (bus_client_policy_check_can_receive): fix up
6786 definition of eavesdropping and assertion
6788 * tools/dbus-send.c (main): use dbus_message_type_from_string
6790 * bus/signals.c (bus_match_rule_parse): implement
6792 * dbus/dbus-message.c (dbus_message_type_from_string): new
6794 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6796 2003-10-02 Havoc Pennington <hp@pobox.com>
6798 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6799 dbus_gproxy_oneway_call
6801 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
6802 (dbus_server_setup_with_g_main): fix to allow calling them more
6803 than once on the same args
6804 (dbus_bus_get_with_g_main): new function
6806 2003-10-02 Havoc Pennington <hp@redhat.com>
6808 * doc/dbus-tutorial.xml: write some stuff
6810 2003-09-29 Havoc Pennington <hp@pobox.com>
6812 * configure.in: split checks for Doxygen from XML docs, check for
6815 * doc/Makefile.am: XML-ify all the docs, and add a blank
6818 2003-09-29 Havoc Pennington <hp@pobox.com>
6820 * Merge dbus-object-names branch. To see the entire patch
6821 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6822 it's huuuuge though.
6823 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6825 2003-09-28 Havoc Pennington <hp@pobox.com>
6827 * HACKING: update to reflect new server
6829 2003-09-26 Seth Nickell <seth@gnome.org>
6832 * python/examples/example-signals.py:
6834 Start implementing some notions of signals. The API
6835 is really terrible, but they sort of work (with the
6836 exception of being able to filter by service, and to
6837 transmit signals *as* a particular service). Need to
6838 figure out how to make messages come from the service
6841 * python/dbus_bindings.pyx.in:
6843 Removed duplicate message_handler callbacks.
6845 2003-09-25 Havoc Pennington <hp@redhat.com>
6847 * bus/session.conf.in: fix my mess
6849 2003-09-25 Havoc Pennington <hp@pobox.com>
6851 * bus/session.conf.in: fix security policy, reported by Seth Nickell
6853 2003-09-25 Seth Nickell <seth@gnome.org>
6855 * python/examples/example-service.py:
6857 Johan notices complete wrong code in example-service, but
6858 completely wrong in a way that works exactly the same (!).
6859 Johan is confused, how could this possibly work? Example
6860 code fails to serve purpose of making things clear.
6863 2003-09-25 Mark McLoughlin <mark@skynet.ie>
6865 * doc/dbus-specification.sgml: don't require header fields
6866 to be 4-byte aligned and specify that fields should be
6867 distinguished from padding by the fact that zero is not
6870 * doc/TODO: remove re-alignment item and add item to doc
6871 the OBJECT_PATH type.
6873 * dbus/dbus-message.c:
6874 (HeaderField): rename the original member to value_offset
6875 and introduce a name_offset member to keep track of where
6876 the field actually begins.
6877 (adjust_field_offsets): remove.
6878 (append_int_field), (append_uint_field),
6879 (append_string_field): don't align the start of the header
6880 field to a 4-byte boundary.
6881 (get_next_field): impl finding the next marhsalled field
6882 after a given field.
6883 (re_align_field_recurse): impl re-aligning a number of
6884 already marshalled fields.
6885 (delete_field): impl deleting a field of any type and
6886 re-aligning any following fields.
6887 (delete_int_or_uint_field), (delete_string_field): remove.
6888 (set_int_field), (set_uint_field): no need to re-check
6889 that we have the correct type for the field.
6890 (set_string_field): ditto and impl re-aligning any
6892 (decode_header_data): update to take into account that
6893 the fields aren't 4-byte aligned any more and the new
6894 way to distinguish padding from header fields. Also,
6895 don't exit when there is too much header padding.
6896 (process_test_subdir): print the directory.
6897 (_dbus_message_test): add test to make sure a following
6898 field is re-aligned correctly after field deletion.
6900 * dbus/dbus-string.[ch]:
6901 (_dbus_string_insert_bytes): rename from insert_byte and
6902 allow the insert of multiple bytes.
6903 (_dbus_string_test): test inserting multiple bytes.
6905 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
6906 warning note to docs about having to re-align any
6907 marshalled values following the string.
6909 * dbus/dbus-message-builder.c:
6910 (append_string_field), (_dbus_message_data_load):
6911 don't align the header field.
6913 * dbus/dbus-auth.c: (process_test_subdir): print the
6916 * test/break-loader.c: (randomly_add_one_byte): upd. for
6919 * test/data/invalid-messages/bad-header-field-alignment.message:
6922 * test/data/valid-messages/unknown-header-field.message: shove
6923 a dict in the unknown field.
6925 2003-09-25 Seth Nickell <seth@gnome.org>
6928 * python/dbus_bindings.pyx.in:
6930 Handle return values.
6932 * python/examples/example-client.py:
6933 * python/examples/example-service.py:
6935 Pass back return values from the service to the client.
6937 2003-09-24 Seth Nickell <seth@gnome.org>
6941 Connect Object methods (when you are sharing an object) up... pass
6942 in a list of methods to be shared. Sharing all the methods just
6943 worked out too weird. You can now create nice Services over the
6946 * python/dbus_bindings.pyx.in:
6948 Keep references to user_data tuples passed into C functions so
6949 Python doesn't garbage collect on us.
6951 Implement MethodReturn and Error subclasses of Message for creating
6952 DBusMessage's of those types.
6954 * python/examples/example-client.py:
6955 * python/examples/example-service.py:
6957 Simple example code showing both how create DBus services and objects,
6958 and how to use them.
6960 2003-09-23 Havoc Pennington <hp@pobox.com>
6962 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
6964 2003-09-23 Havoc Pennington <hp@redhat.com>
6966 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
6967 (dbus_gproxy_disconnect_signal): implement
6968 (dbus_gproxy_manager_remove_signal_match): implement
6969 (dbus_gproxy_manager_add_signal_match): implement
6970 (dbus_gproxy_oneway_call): implement
6972 2003-09-23 Havoc Pennington <hp@pobox.com>
6974 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
6975 subclass. This means dropping the transparent thread safety of the
6976 proxy; you now need a separate proxy per-thread, or your own
6977 locking on the proxy. Probably right anyway.
6978 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
6980 2003-09-22 Havoc Pennington <hp@redhat.com>
6982 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
6984 2003-09-21 Seth Nickell <seth@gnome.org>
6986 First checkin of the Python bindings.
6988 * python/.cvsignore:
6989 * python/Makefile.am:
6990 * python/dbus_bindings.pyx.in:
6991 * python/dbus_h_wrapper.h:
6993 Pieces for Pyrex to operate on, building a dbus_bindings.so
6994 python module for low-level access to the DBus APIs.
6998 High-level Python module for accessing DBus objects.
7003 Build stuff for the python bindings.
7007 Extra macro needed for finding the Python C header files.
7009 2003-09-21 Havoc Pennington <hp@pobox.com>
7011 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7012 implementing the proxy manager, didn't get very far.
7014 * dbus/dbus-bus.c (dbus_bus_add_match): new
7015 (dbus_bus_remove_match): new
7017 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7018 path_name argument; adjust the other not-yet-implemented
7019 gproxy constructors to be what I think they should be.
7021 2003-09-21 Havoc Pennington <hp@pobox.com>
7023 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7024 by default for message bus connections.
7026 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7027 exit_on_disconnect flag is set and we process the disconnected
7029 (dbus_connection_set_exit_on_disconnect): new function
7031 2003-09-21 Havoc Pennington <hp@pobox.com>
7033 Get matching rules mostly working in the bus; only actually
7034 parsing the rule text remains. However, the client side of
7035 "signal connections" hasn't been started, this patch is only the
7038 * dbus/dispatch.c: fix for the matching rules changes
7040 * bus/driver.c (bus_driver_handle_remove_match)
7041 (bus_driver_handle_add_match): send an ack reply from these
7044 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7045 arguments, reported by Seth Nickell
7047 * bus/config-parser.c (append_rule_from_element): support
7048 eavesdrop=true|false attribute on policies so match rules
7049 can be prevented from snooping on the system bus.
7051 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7052 and "destination" in attribute names; fix some docs bugs;
7053 add eavesdrop=true|false attribute
7055 * bus/driver.c (bus_driver_handle_add_match)
7056 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7059 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7060 rid of broadcast service concept, signals are just always broadcast
7062 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7063 mostly implement matching rules stuff (currently only exposed as signal
7066 2003-09-21 Mark McLoughlin <mark@skynet.ie>
7068 * doc/dbus-specification.sgml: Change the header field name
7069 to be an enum and update the rest of the spec to reference
7070 the fields using the conventinal name.
7072 * dbus/dbus-protocol.h: update to reflect the spec.
7074 * doc/TODO: add item to remove the 4 byte alignment requirement.
7076 * dbus/dbus-message.c: Remove the code to generalise the
7077 header/body length and serial number header fields as named
7078 header fields so we can reference field names using the
7080 (append_int_field), (append_uint_field), (append_string_field):
7081 Append the field name as a byte rather than four chars.
7082 (delete_int_or_uint_field), (delete_string_field): reflect the
7083 fact that the field name and typecode now occupy 4 bytes instead
7085 (decode_string_field), (decode_header_data): update to reflect
7086 protocol changes and move the field specific encoding from
7087 decode_string_field() back into decode_header_data().
7089 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7090 Add utility to aid debugging.
7092 * dbus/dbus-message-builder.c:
7093 (append_string_field), (_dbus_message_data_load): Update to
7094 reflect protocol changes; Change the FIELD_NAME directive
7095 to HEADER_FIELD and allow it to take the field's conventional
7096 name rather than the actual value.
7098 * test/data/*/*.message: Update to use HEADER_FIELD instead
7099 of FIELD_NAME; Always align the header on an 8 byte boundary
7100 *before* updating the header length.
7102 2003-09-15 Havoc Pennington <hp@pobox.com>
7104 * dbus/dbus-pending-call.c: add the get/set object data
7105 boilerplate as for DBusConnection, etc. Use generic object data
7106 for the notify callback.
7108 * glib/dbus-gparser.c (parse_node): parse child nodes
7110 * tools/dbus-viewer.c: more hacking on the dbus-viewer
7112 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7113 contain functions shared between the convenience lib and the
7116 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7117 -export-symbols-regex to the GLib library
7119 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7120 fix the locking in here, and add a default handler for
7121 Introspect() that just returns sub-nodes.
7123 2003-09-14 Havoc Pennington <hp@pobox.com>
7125 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7126 rather than gfoo consistent
7128 * glib/dbus-gproxy.h: delete for now, move contents to
7129 dbus-glib.h, because the include files don't work right since we
7130 aren't in the dbus/ subdir.
7132 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7133 (dbus_gproxy_end_call): finish
7134 (dbus_gproxy_begin_call): finish
7136 * glib/dbus-gmain.c (dbus_set_g_error): new
7138 * glib/dbus-gobject.c (handle_introspect): include information
7139 about child nodes in the introspection
7141 * dbus/dbus-connection.c (dbus_connection_list_registered): new
7142 function to help in implementation of introspection
7144 * dbus/dbus-object-tree.c
7145 (_dbus_object_tree_list_registered_and_unlock): new function
7147 2003-09-12 Havoc Pennington <hp@pobox.com>
7149 * glib/dbus-gidl.h: add common base class for all the foo_info
7152 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7155 * test/Makefile.am: try test srcdir -ef . in addition to test
7156 srcdir = ., one of them should work (yeah lame)
7158 * glib/Makefile.am: build the "idl" parser stuff as a convenience
7161 * glib/dbus-gparser.h: make description_load routines return
7162 NodeInfo* not Parser*
7164 * Makefile.am (SUBDIRS): build test dir after all library dirs
7166 * configure.in: add GTK+ detection
7168 2003-09-07 Havoc Pennington <hp@pobox.com>
7170 * Make Doxygen contented.
7172 2003-09-07 Havoc Pennington <hp@pobox.com>
7174 * doc/dbus-specification.sgml: more updates
7176 2003-09-06 Havoc Pennington <hp@pobox.com>
7178 * doc/dbus-specification.sgml: partial updates
7180 * bus/dbus-daemon-1.1.in: fix the config file docs for the
7181 zillionth time; hopefully I edited the right file this time.
7183 * bus/config-parser.c (append_rule_from_element): support
7184 send_type, send_path, receive_type, receive_path
7186 * bus/policy.c: add message type and path to the list of things
7187 that can be "firewalled"
7189 2003-09-06 Havoc Pennington <hp@pobox.com>
7191 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7192 (dbus_connection_register_object_path): make this not handle
7193 messages to paths below the given path
7195 2003-09-03 Havoc Pennington <hp@pobox.com>
7197 * test/glib/Makefile.am: add this with random glib-linked test
7200 * glib/Makefile.am: remove the random test programs from here,
7201 leave only the unit tests
7203 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
7204 uscore/javacaps conversion, and fix
7205 (get_object_property, set_object_property): change to .NET
7206 convention for mapping props to methods, set_FooBar/get_FooBar,
7207 since one language has such a convention we may as well copy it.
7208 Plus real methods in either getFooBar or get_foo_bar style won't
7209 collide with this convention.
7211 2003-09-01 Havoc Pennington <hp@pobox.com>
7213 * glib/dbus-gparser.c: implement
7215 * glib/dbus-gobject.c: start implementing skeletons support
7217 * configure.in: when disabling checks/assert, also define
7218 G_DISABLE_ASSERT and G_DISABLE_CHECKS
7220 2003-09-01 Havoc Pennington <hp@pobox.com>
7222 * glib/Makefile.am: rearrange a bunch of files and get "make
7223 check" framework set up
7225 2003-08-31 Havoc Pennington <hp@pobox.com>
7227 * fix build with --disable-tests
7229 2003-08-30 Havoc Pennington <hp@pobox.com>
7231 * dbus/dbus-connection.c: purge DBusMessageHandler
7233 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
7234 use callbacks everywhere
7236 2003-08-30 Havoc Pennington <hp@pobox.com>
7238 * test/data/valid-config-files/system.d/test.conf: change to
7239 root for the user so warnings don't get printed
7241 * dbus/dbus-message.c: add dbus_message_get_path,
7242 dbus_message_set_path
7244 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7245 dispatching to a path
7247 * dbus/dbus-string.c (_dbus_string_validate_path): add
7249 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7250 (_dbus_marshal_object_path): implement
7252 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
7253 to contain the path to the target object
7254 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7255 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7257 2003-08-30 Havoc Pennington <hp@pobox.com>
7259 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7261 2003-08-29 Havoc Pennington <hp@pobox.com>
7263 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7265 (struct DBusObjectSubtree): shrink this
7266 a lot, since we may have a lot of them
7267 (_dbus_object_tree_free_all_unlocked): implement
7268 (_dbus_object_tree_dispatch_and_unlock): implement
7270 2003-08-29 Havoc Pennington <hp@pobox.com>
7272 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7274 2003-08-28 Havoc Pennington <hp@pobox.com>
7278 * dbus/dbus-connection.c: port to no ObjectID, create a
7279 DBusObjectTree, rename ObjectTree to ObjectPath in public API
7281 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
7282 everything except UnregisterFunction and MessageFunction
7284 * dbus/dbus-marshal.c: port away from DBusObjectID,
7285 add DBUS_TYPE_OBJECT_PATH
7287 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
7288 dbus/dbus-objectid.[hc]: remove these, we are moving to
7289 path-based object IDs
7291 2003-08-25 Havoc Pennington <hp@pobox.com>
7293 Just noticed that dbus_message_test is hosed, I wonder when I
7294 broke that. I thought make check was passing earlier...
7296 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
7297 container tree, will replace most of dbus-object-registry
7299 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7302 2003-08-19 Havoc Pennington <hp@pobox.com>
7304 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7305 (dbus_message_is_error): fix this function
7307 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7310 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7311 reflect clarified man page
7312 (bus_client_policy_check_can_send): ditto
7314 * bus/session.conf.in: fixup
7316 * bus/system.conf.in: fixup
7318 2003-08-18 Havoc Pennington <hp@redhat.com>
7320 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7322 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7323 dumb bug created earlier (wrong order of args to
7324 decode_header_data())
7326 * tools/dbus-send.c: port
7328 * tools/dbus-print-message.c (print_message): port
7330 * test/data/*messages: port all messages over
7332 * dbus/dbus-message-builder.c: support including
7335 * bus/driver.c: port over
7337 * bus/dispatch.c: port over to new stuff
7339 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7340 rename disconnect signal to "Disconnected"
7342 2003-08-17 Havoc Pennington <hp@pobox.com>
7344 This doesn't compile yet, but syncing up so I can hack on it from
7345 work. What are branches for if not broken code? ;-)
7347 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7348 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7349 DBUS_HEADER_FIELD_ERROR_NAME
7351 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7352 for the interface+member pairs
7353 (string_hash): change to use g_str_hash algorithm
7354 (find_direct_function, find_string_function): refactor these to
7357 * dbus/dbus-message.c: port all of this over to support
7358 interface/member fields instead of name field
7360 * dbus/dbus-object-registry.c: port over
7362 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7363 from _dbus_string_validate_name
7365 * bus/dbus-daemon-1.1: change file format for the
7366 <deny>/<allow> stuff to match new message naming scheme
7368 * bus/policy.c: port over
7370 * bus/config-parser.c: parse new format
7372 2003-08-16 Havoc Pennington <hp@pobox.com>
7374 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7377 * glib/dbus-gproxy.c: some hacking
7379 2003-08-15 Havoc Pennington <hp@redhat.com>
7381 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7383 * dbus/dbus-connection.c
7384 (dbus_connection_send_with_reply_and_block): factor out internals;
7385 change to convert any error replies to DBusError instead of
7386 returning them as a message
7388 2003-08-15 Havoc Pennington <hp@pobox.com>
7390 * dbus/dbus-connection.c,
7391 dbus/dbus-pending-call.c: Finish the pending call stuff
7393 2003-08-14 Havoc Pennington <hp@redhat.com>
7395 * dbus/dbus-pending-call.c: start on new object that will replace
7396 DBusMessageHandler and ReplyHandlerData for tracking outstanding
7399 * dbus/dbus-gproxy.c: start on proxy object used to communicate
7400 with remote interfaces
7402 * dbus/dbus-gidl.c: do the boring boilerplate in here
7404 2003-08-12 Havoc Pennington <hp@pobox.com>
7406 * bus/dispatch.c (bus_dispatch): make this return proper
7407 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7409 * dbus/dbus-errors.c (dbus_set_error): use
7410 _dbus_string_append_printf_valist
7412 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7413 (_dbus_string_append_printf): new
7415 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7418 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7419 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7420 message is unhandled.
7422 2003-08-11 Havoc Pennington <hp@pobox.com>
7424 * bus/test.c (client_disconnect_handler): change to return
7425 HANDLED (would have been REMOVE_MESSAGE)
7427 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7428 HANDLED/NOT_YET_HANDLED instead of
7429 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
7432 2003-08-10 Havoc Pennington <hp@pobox.com>
7434 * tools/dbus-send.c (main): add --type argument, for now
7435 supporting only method_call and signal types.
7437 * tools/dbus-print-message.c: print message type
7439 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7440 init connection->objects
7442 * doc/dbus-specification.sgml: fix sgml
7444 * bus/*.c: port over to object-instance API changes
7446 * test/test-service.c: ditto
7448 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7449 name, we will have to fix up the rest of the code to also handle
7451 (dbus_message_new): generic message-creation call
7452 (set_string_field): allow appending name field
7454 2003-08-06 Havoc Pennington <hp@pobox.com>
7456 * dbus/dbus-object-registry.c: implement signal connection
7459 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7461 * dbus/dbus-internals.c (_dbus_memdup): new function
7463 2003-08-02 Havoc Pennington <hp@pobox.com>
7465 * dbus/dbus-message.c (dbus_message_get_no_reply)
7466 (dbus_message_set_no_reply): add these and remove
7467 set_is_error/get_is_error
7469 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
7470 remove the ERROR flag, since there's now an ERROR type
7472 2003-08-01 Havoc Pennington <hp@pobox.com>
7474 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7477 * dbus/dbus-message.c (dbus_message_get_type): new function
7479 * doc/dbus-specification.sgml: add "type" byte to messages
7481 2003-08-01 Havoc Pennington <hp@pobox.com>
7483 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7484 a message type enum to distinguish kinds of message
7485 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
7486 that need not be replied to
7488 2003-08-01 Havoc Pennington <hp@pobox.com>
7490 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7491 (unpack_8_octets): fix no-64-bit-int bug
7493 * dbus/dbus-object-registry.c (validate_id): validate the
7494 connection ID bits, not just the instance ID.
7496 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7497 the connection-global 33 bits of the object ID
7499 * dbus/dbus-object-registry.c (info_from_entry): fill in
7500 object ID in the new way
7502 * dbus/dbus-objectid.h: rather than high/low bits, specifically
7503 define server/client/instance bits.
7505 2003-07-30 Havoc Pennington <hp@pobox.com>
7507 * dbus/dbus-connection.c (dbus_connection_register_object): fix
7510 2003-07-13 Havoc Pennington <hp@pobox.com>
7512 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7513 fields to DBusObjectVTable and DBusObjectInfo
7515 2003-07-12 Havoc Pennington <hp@pobox.com>
7517 * dbus/dbus-object-registry.c: implement unit test,
7518 fix bugs discovered in process
7520 * dbus/dbus-connection.c: remove handler_table and
7521 register_handler(), add DBusObjectRegistry usage
7523 * dbus/dbus-objectid.c (dbus_object_id_is_null)
7524 (dbus_object_id_set_null): new functions
7526 2003-07-08 Havoc Pennington <hp@pobox.com>
7528 * dbus/dbus-object.c: implement some of this
7530 * dbus/dbus-object-registry.c
7531 (_dbus_object_registry_add_and_unlock): fill in the object_id out
7533 (_dbus_object_registry_new): handle OOM
7535 2003-07-08 Havoc Pennington <hp@pobox.com>
7537 * dbus/dbus-object.h: sketch out an API for registering objects
7538 with a connection, that allows us to use as little as 24 bytes
7539 per object and lets application code represent an object in
7540 any conceivable way.
7542 * dbus/dbus-object-registry.c: implement the hard bits of the
7543 DBusConnection aspect of object API. Not yet wired up.
7545 2003-07-06 Havoc Pennington <hp@pobox.com>
7547 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7548 (_dbus_marshal_object_id): new
7549 (_dbus_demarshal_object_id): new
7550 (_dbus_marshal_get_arg_end_pos): support object ID type, and
7551 consolidate identical switch cases. Don't conditionalize handling
7552 of DBUS_TYPE_UINT64, need to handle the type always.
7553 (_dbus_marshal_validate_arg): consolidate identical cases, and
7554 handle DBUS_TYPE_OBJECT_ID
7556 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7558 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7560 2003-09-28 Havoc Pennington <hp@pobox.com>
7564 2003-09-28 Havoc Pennington <hp@pobox.com>
7566 * doc/Makefile.am (dbus-specification.html): testing a funky hack
7567 to work with Debian db2html
7569 2003-09-28 Havoc Pennington <hp@pobox.com>
7571 * configure.in: 0.13
7573 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7574 stylesheet-images for benefit of Debian
7576 Change back to using filesystem-linked sockets for the system
7577 bus, so only root can create the default system bus address.
7579 * bus/system.conf.in: change to use
7580 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7582 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7585 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7586 here, and AC_DEFINE DBUS_SYSTEM_PATH
7588 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7591 * doc/busconfig.dtd:
7594 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7596 * doc/dbus-specification.sgml:
7597 Add activation reply values.
7599 2003-08-05 Havoc Pennington <hp@redhat.com>
7601 * configure.in: 0.12
7603 2003-08-05 Anders Carlsson <andersca@codefactory.se>
7605 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7606 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7607 (add_watch), (remove_watch), (create_source):
7608 Refcount fds, fixes some reentrancy issues.
7610 2003-07-30 Havoc Pennington <hp@redhat.com>
7612 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7613 bus address to be abstract if we have abstract sockets
7617 2003-07-28 Havoc Pennington <hp@redhat.com>
7619 * bus/messagebus.in: fix to avoid processname/servicename
7620 confusion, from Michael Kearey
7621 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7623 2003-07-23 Havoc Pennington <hp@pobox.com>
7625 * dbus/dbus-message.c (dbus_message_iter_get_named):
7626 fix from Andy Hanton to remove broken "+1"
7628 2003-07-16 Havoc Pennington <hp@pobox.com>
7630 * tools/dbus-launch.c (babysit): close stdout/stderr in the
7631 babysitter process, as suggested by Thomas Leonard, so
7632 an "eval `dbus-launch --exit-with-session`" will actually
7635 2003-07-16 Havoc Pennington <hp@pobox.com>
7637 * configure.in: print out EXPANDED_* variables in the summary at
7638 the end; clean up the code that computes EXPANDED_ variables and
7639 get the ones using exec_prefix right. Should make things work
7640 when you build without --prefix
7642 2003-06-29 Havoc Pennington <hp@pobox.com>
7644 * mono/Test.cs (class Test): fire up a main loop and run it
7646 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7647 done once, the app has to do it
7649 2003-06-26 Havoc Pennington <hp@pobox.com>
7651 * mono/Connection.cs: set up connection with the glib main loop
7653 2003-07-01 Havoc Pennington <hp@redhat.com>
7655 * doc/dbus-specification.sgml: clarify the format of a type code,
7656 change suggested by Jim Blandy
7658 2003-06-29 Miloslav Trmac <mitr@volny.cz>
7661 * tools/Makefile.am: Don't assume srcdir == builddir.
7663 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7664 the allocated block.
7665 (_dbus_memory_test): New function.
7666 * dbus/dbus-test.h: Add _dbus_memory_test ().
7667 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7669 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7671 (dbus_message_new): Remove obsolete @todo.
7673 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7674 (_dbus_marshal_set_uint64): Fix comment.
7676 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7677 hardcode FIELD_REPLY_SERIAL.
7679 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7680 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7682 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7683 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7685 2003-06-24 Havoc Pennington <hp@pobox.com>
7687 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7689 2003-06-23 Anders Carlsson <andersca@codefactory.se>
7695 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7696 * gcj/org/.cvsignore:
7697 * gcj/org/Makefile.am:
7698 * gcj/org/freedesktop/.cvsignore:
7699 * gcj/org/freedesktop/Makefile.am:
7700 * gcj/org/freedesktop/dbus/.cvsignore:
7701 * gcj/org/freedesktop/dbus/Makefile.am:
7702 * gcj/org/freedesktop/dbus/Message.java: (Message),
7704 * gcj/org/freedesktop/dbus/natMessage.cc:
7705 Fix the build system.
7707 2003-06-22 Havoc Pennington <hp@pobox.com>
7709 * mono/Connection.cs: add more bindings
7711 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7714 2003-06-22 Havoc Pennington <hp@pobox.com>
7716 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7717 Start wrapping more stuff.
7719 2003-06-22 Havoc Pennington <hp@pobox.com>
7721 * mono/Message.cs: implement Message.Wrap() that ensures we only
7722 have a single C# wrapper per DBusMessage, assuming it works which
7723 it probably doesn't.
7725 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7726 (dbus_message_free_data_slot): new
7727 (dbus_message_set_data): new
7728 (dbus_message_get_data): new
7730 2003-06-22 Havoc Pennington <hp@pobox.com>
7732 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7733 (_dbus_data_slot_allocator_alloc): rework these to keep a
7734 reference count on each slot and automatically manage a global
7735 slot ID variable passed in by address
7737 * bus/bus.c: convert to new dataslot API
7739 * dbus/dbus-bus.c: convert to new dataslot API
7741 * dbus/dbus-connection.c: convert to new dataslot API
7743 * dbus/dbus-server.c: convert to new dataslot API
7745 * glib/dbus-gmain.c: ditto
7749 * bus/connection.c: ditto
7751 2003-06-22 Anders Carlsson <andersca@codefactory.se>
7753 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7754 after the gcj checks so that the correct configuration tags
7755 will be added to libtool.
7757 * dbus-glib-1.pc.in: No need to specify any includes since
7758 dbus-1.pc.in has those.
7760 2003-06-22 Havoc Pennington <hp@pobox.com>
7762 * mono/*, gcj/*, configure.in, Makefile.am:
7763 Check in makefiles and subdirs for mono and gcj bindings.
7764 Neither binding actually exists, just trying to get through
7765 all the build and other boring bits.
7767 2003-06-21 Philip Blundell <philb@gnu.org>
7769 * tools/dbus-monitor.1: Updated.
7771 * tools/dbus-send.1: Likewise.
7773 2003-06-20 Anders Carlsson <andersca@codefactory.se>
7775 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7776 for hangup and error after checking read so we won't discard
7777 pending data if both hangup and read are set.
7779 2003-06-19 Philip Blundell <philb@gnu.org>
7781 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7783 * tools/dbus-send.c: Accept both --system and --session.
7785 * tools/dbus-monitor.c: Same here.
7787 2003-06-19 Anders Carlsson <andersca@codefactory.se>
7789 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7790 from C++ (Patch by Miloslav Trmac).
7792 2003-06-15 Joe Shaw <joe@assbarn.com>
7794 * configure.in: Check for socklen_t.
7796 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7798 * test/test-segfault.c: Add #include <sys/time.h>
7800 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7801 dbus-launch needs it.
7803 2003-06-09 Havoc Pennington <hp@redhat.com>
7805 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7806 SUN_LEN, it breaks abstract socket usage
7808 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7811 2003-06-04 Havoc Pennington <hp@pobox.com>
7813 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7814 using unix:abstract=/foo, and when listening in a tmpdir
7815 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7817 * dbus/dbus-transport.c (_dbus_transport_open): support
7820 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7821 support abstract sockets
7823 * dbus/dbus-transport-unix.c
7824 (_dbus_transport_new_for_domain_socket): support abstract sockets
7826 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7827 toggle as an argument, implement abstract namespace support
7828 (_dbus_listen_unix_socket): ditto
7830 * configure.in: add --enable-abstract-sockets and implement
7831 a configure check for autodetection of the right value.
7833 2003-06-01 Havoc Pennington <hp@pobox.com>
7835 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7836 in /tmp (though on Linux this will end up being useless,
7837 when we add abstract namespace support)
7839 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7842 2003-05-28 Colin Walters <walters@verbum.org>
7844 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7846 2003-05-18 Anders Carlsson <andersca@codefactory.se>
7848 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
7850 2003-05-17 Colin Walters <walters@gnu.org>
7852 * tools/dbus-send.c: Don't exit with an error code if --help was
7853 passed. Default to using the session bus instead of the system
7856 * tools/dbus-launch.c: Ditto.
7858 * tools/dbus-monitor.c: Ditto.
7860 * tools/dbus-send.1: Update with new arguments.
7862 * tools/dbus-launch.c: Emit code to export variables. New
7863 arguments -s and -c to specify shell syntax, and a bit of code to
7864 autodetect syntax. Also, allow specifying a program to run.
7866 * tools/dbus-launch.1: Update with new arguments.
7868 * tools/dbus-send.1: Ditto.
7870 * tools/dbus-monitor.1: Ditto.
7872 2003-05-17 Havoc Pennington <hp@pobox.com>
7874 * bus/config-parser.c (merge_included): merge in policies from
7875 child configuration file.
7877 * bus/policy.c (bus_policy_merge): function to merge two policies
7880 2003-05-16 Havoc Pennington <hp@redhat.com>
7882 * dbus/dbus-connection.c: disable verbose lock spew
7884 * tools/dbus-send.c: add --print-reply command line option
7886 * tools/dbus-print-message.h (print_message): new util function
7887 shared by dbus-send and dbus-monitor
7889 * tools/dbus-monitor.c (handler_func): exit on disconnect
7891 * dbus/dbus-transport-unix.c (do_reading): if the transport is
7892 disconnected, don't try to use the read_watch
7894 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
7895 so we can find this bug more easily
7897 2003-05-16 Havoc Pennington <hp@redhat.com>
7899 * bus/policy.c (free_rule_list_func): avoid a crash when passed
7900 NULL as DBusHashTable is annoyingly likely to do.
7902 2003-05-16 Colin Walters <walters@verbum.org>
7904 * tools/dbus-monitor.c: Add --session argument and usage()
7907 * tools/dbus-monitor.1: Update with new --session arg.
7909 * bus/Makefile.am (install-data-hook): Create
7910 $(libdir)/dbus-1.0/services so that the session bus is happy.
7912 2003-05-15 Havoc Pennington <hp@redhat.com>
7914 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
7915 on non-x86. ifdef's are evil.
7917 2003-05-15 Havoc Pennington <hp@redhat.com>
7919 * configure.in: 0.11
7923 * bus/Makefile.am (initddir): apparently we are supposed to put
7924 init scripts in /etc/rc.d/init.d not /etc/init.d
7926 * bus/Makefile.am: remove the "you must --enable-tests to make
7927 check" as it broke distcheck
7929 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
7931 2003-05-13 James Willcox <jwillcox@gnome.org>
7934 * bus/activation.c: (bus_activation_service_created),
7935 (bus_activation_activate_service):
7936 * bus/driver.c: (bus_driver_send_service_deleted),
7937 (bus_driver_send_service_created), (bus_driver_send_service_lost),
7938 (bus_driver_send_service_acquired),
7939 (bus_driver_send_welcome_message),
7940 (bus_driver_handle_list_services):
7941 * bus/session.conf.in:
7942 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
7943 (dbus_bus_service_exists), (dbus_bus_activate_service):
7946 Add some convenience API which lets you activate a service, and did a
7947 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
7948 and dbus_message_get_args()
7950 2003-05-11 Havoc Pennington <hp@pobox.com>
7952 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
7953 calling _dbus_marshal_validate_arg() for every byte in a byte
7956 * dbus/dbus-message-handler.c: use atomic reference counting to
7957 reduce number of locks slightly; the global lock in here sucks
7959 * dbus/dbus-connection.c
7960 (_dbus_connection_update_dispatch_status_and_unlock): variant of
7961 update_dispatch_status that can be called with lock held; then use
7962 in a couple places to reduce locking/unlocking
7963 (dbus_connection_send): hold the lock over the whole function
7964 instead of acquiring it twice.
7966 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
7968 * bus/connection.c (bus_connections_setup_connection): fix access
7969 to already-freed memory.
7971 * dbus/dbus-connection.c: keep a little cache of linked list
7972 nodes, to avoid using the global linked list alloc lock in the
7973 normal send-message case. Instead we just use the connection lock
7974 that we already have to take.
7976 * dbus/dbus-list.c (_dbus_list_find_last): new function
7978 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
7979 change to use a struct for the atomic type; fix docs,
7980 they return value before increment, not after increment.
7982 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
7983 (_dbus_string_append_8_aligned): new functions to try to
7984 microoptimize this operation.
7985 (reallocate_for_length): break this out of set_length(), to
7986 improve profile info, and also so we can consider inlining the
7989 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
7990 strings with some preallocation, cuts down on our calls to realloc
7991 a fair bit. Though if we can get the "move entire string to empty
7992 string" optimization below to kick in here, it would be better.
7994 * dbus/dbus-string.c (_dbus_string_move): just call
7995 _dbus_string_move_len
7996 (_dbus_string_move_len): add a special case for moving
7997 an entire string into an empty string; we can just
7998 swap the string data instead of doing any reallocs.
7999 (_dbus_string_init_preallocated): new function
8001 2003-05-11 Havoc Pennington <hp@pobox.com>
8003 Write a "test-profile" that does echo client-server with threads;
8004 profile reveals lock contention, memcpy/realloc of buffers, and
8005 UTF-8 validation as hot spots. 20% of lock contention eliminated
8006 with dbus_atomic_inc/dec implementation on x86. Much remaining
8007 contention is global mempool locks for GList and DBusList.
8009 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8012 * dbus/dbus-connection.c (struct DBusConnection): use
8013 dbus_atomic_t for the reference count
8015 * dbus/dbus-message.c (struct DBusMessage): declare
8016 dbus_atomic_t values as volatile
8018 * configure.in: code to detect ability to use atomic integer
8019 operations in assembly, from GLib patch
8021 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8022 time, tired of it being wrong in threads and forked processes
8024 * glib/test-profile.c: a little program to bounce messages back
8025 and forth between threads and eat CPU
8027 * dbus/dbus-connection.c: add debug spew macros for debugging
8028 thread locks; include config.h at top; fix deadlock in
8029 dbus_connection_flush()
8031 2003-05-08 Havoc Pennington <hp@pobox.com>
8033 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8034 data from getting written, and there wasn't a good reason to
8037 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8038 dbus_verbose lines in test coverage
8039 (main): add list of functions sorted by # of untested blocks
8040 to the coverage report
8042 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8044 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8046 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8047 extend test coverage
8049 * test/data/auth/cancel.auth-script: test canceling an
8052 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8053 aren't used. in CVS history if we end up needing them.
8055 2003-05-04 Havoc Pennington <hp@pobox.com>
8057 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8060 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8061 function, which assumed length was in # of strings, not bytes
8063 * dbus/dbus-message.c (_dbus_message_test): add tests for some
8066 * dbus/dbus-connection.c
8067 (_dbus_connection_queue_received_message): disable function for
8068 now, we are only using it in test mode
8070 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8071 remove a mistaken FIXME
8073 2003-05-04 Havoc Pennington <hp@pobox.com>
8075 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8076 unlock mutex on successful return, patch from Anders Gustafsson
8078 2003-05-04 Havoc Pennington <hp@pobox.com>
8080 * dbus-glib-1.pc.in (Requires): fix dependencies, from
8083 2003-05-04 Havoc Pennington <hp@pobox.com>
8085 * tools/dbus-launch.c: implement
8087 * bus/main.c (main), bus/bus.c (bus_context_new):
8088 implement --print-pid and --fork
8090 2003-05-03 Havoc Pennington <hp@redhat.com>
8092 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8093 the address had no value, and add to test suite. Fix and
8094 regression test from Miloslav Trmac
8096 2003-05-03 Havoc Pennington <hp@pobox.com>
8098 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8099 watch is invalid when handled
8101 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8102 dbus-launch utility to launch the bus from a shell script. Didn't
8103 actually implement dbus-launch yet, it's just a placeholder still.
8105 2003-05-03 Havoc Pennington <hp@pobox.com>
8107 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8108 daemon; also documents daemon config file, so replaces
8109 doc/config-file.txt. Corrected some stuff from config-file.txt in
8110 the process of moving it.
8112 2003-05-03 Havoc Pennington <hp@pobox.com>
8114 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8117 2003-05-03 Colin Walters <walters@verbum.org>
8119 * dbus/dbus-sysdeps.c (fill_user_info): Test against
8120 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8122 * Makefile.am: Update to use new .pc versioning scheme.
8124 2003-05-02 Havoc Pennington <hp@redhat.com>
8126 * bus/system.conf.in: allow send/receive to/from message bus
8129 2003-04-30 Havoc Pennington <hp@redhat.com>
8131 * configure.in: print a note when building with unit tests and
8134 2003-04-30 Havoc Pennington <hp@redhat.com>
8136 * Makefile.am: add a check-local that complains if you didn't
8137 configure with --enable-tests
8139 2003-04-29 Havoc Pennington <hp@redhat.com>
8141 * glib/dbus-gmain.c: docs cleanups
8143 * dbus/dbus-types.h: add docs on int64 types
8145 * dbus/dbus-memory.c: fix docs to avoid putting private API in
8146 public API docs section
8148 2003-04-29 Havoc Pennington <hp@redhat.com>
8150 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8151 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8152 parallel install API version, not with the D-BUS package version.
8154 * HACKING: move some of README over here
8156 * README: updates, and document API/ABI policy
8158 * configure.in: reindentation
8160 2003-04-29 Havoc Pennington <hp@redhat.com>
8162 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8163 to use this library" to be sure people have the right
8166 2003-04-28 Havoc Pennington <hp@redhat.com>
8168 * configure.in: add --enable-docs which by default is auto yes if
8169 doxygen and db2html found, no otherwise; but can be forced on/off
8171 * doc/Makefile.am: conditionalize whether to build docs on
8174 2003-04-28 Havoc Pennington <hp@redhat.com>
8176 * configure.in: 0.10
8180 * bus/system.conf.in: add <includedir>system.d</includedir>
8182 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8183 username was provided but not uid
8185 * bus/config-parser.c (struct BusConfigParser): keep track of
8186 whether the parser is toplevel or was included; change some
8187 of the error handling if it's included.
8189 2003-04-27 Havoc Pennington <hp@pobox.com>
8193 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8194 report correct status if we finish processing authentication
8195 inside this function.
8197 * bus/activation.c (try_send_activation_failure): use
8198 bus_transaction_send_error_reply
8200 * bus/connection.c (bus_connection_get_groups): return an error
8201 explaining the problem
8203 * bus/bus.c (bus_context_check_security_policy): implement
8204 restriction here that inactive connections can only send the
8205 hello message. Also, allow bus driver to send anything to
8208 * bus/connection.c (bus_connection_complete): create the
8209 BusClientPolicy here instead of on-demand.
8210 (bus_connection_get_policy): don't return an error
8212 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8213 sender field in message being replied to
8215 * bus/bus.c (bus_context_check_security_policy): fix silly typo
8216 causing it to return FALSE always
8218 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8219 we checked sender rather than destination
8221 2003-04-25 Havoc Pennington <hp@redhat.com>
8223 test suite is slightly hosed at the moment, will fix soon
8225 * bus/connection.c (bus_connections_expire_incomplete): fix to
8226 properly disable the timeout when required
8227 (bus_connection_set_name): check whether we can remove incomplete
8228 connections timeout after we complete each connection.
8230 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8231 probably still broken.
8233 * bus/services.c (bus_registry_acquire_service): implement max
8234 number of services owned, and honor allow/deny rules on which
8235 services a connection can own.
8237 * bus/connection.c (bus_connection_get_policy): report errors here
8239 * bus/activation.c: implement limit on number of pending
8242 2003-04-25 Havoc Pennington <hp@redhat.com>
8244 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8245 where we used >= 0 instead of != DBUS_UID_UNSET.
8247 2003-04-25 Havoc Pennington <hp@redhat.com>
8249 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8250 were toggled without add/remove, fix from Anders Gustafsson
8252 2003-04-24 Havoc Pennington <hp@redhat.com>
8254 * test/data/valid-config-files/basic.conf: add <limit> tags to
8257 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8258 <limit> tag in configuration file.
8260 2003-04-24 Havoc Pennington <hp@redhat.com>
8262 * bus/dispatch.c: somehow missed some name_is
8264 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8265 (_dbus_timeout_set_interval): new
8267 * bus/connection.c (bus_connections_setup_connection): record time
8268 when each connection is first set up, and expire them after the
8269 auth timeout passes.
8271 2003-04-24 Havoc Pennington <hp@redhat.com>
8273 * dbus/dbus-message.c (dbus_message_name_is): rename
8274 (dbus_message_service_is): rename
8275 (dbus_message_sender_is): rename
8276 (dbus_message_get_service): rename
8278 2003-04-24 Havoc Pennington <hp@redhat.com>
8280 * configure.in: add --enable-checks
8282 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8284 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8285 to use thread locks.
8286 (_dbus_connection_handler_destroyed_locked): move some private
8287 functions into proper docs group
8289 * dbus/dbus-internals.h: add _dbus_return_if_fail,
8290 _dbus_return_val_if_fail
8292 Throughout: use dbus_return_if_fail
8294 2003-04-23 James Willcox <jwillcox@gnome.org>
8297 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8298 (dbus_connection_setup_with_g_main),
8299 (dbus_server_setup_with_g_main):
8300 * glib/test-dbus-glib.c: (main):
8301 * glib/test-thread-client.c: (main):
8302 * glib/test-thread-server.c: (new_connection_callback), (main):
8303 * tools/dbus-monitor.c: (main):
8305 Added a GMainContext argument to dbus_connection_setup_with_g_main()
8306 and dbus_server_setup_with_g_main().
8308 2003-04-20 Havoc Pennington <hp@pobox.com>
8310 * doc/dbus-specification.sgml: document the restrictions on
8311 message and service names
8313 2003-04-22 Havoc Pennington <hp@redhat.com>
8315 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8316 support, and do some code cleanups to share more code and
8317 speed up array marshal/demarshal.
8319 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8321 * configure.in: generate dbus-arch-deps.h
8323 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8326 2003-04-22 Havoc Pennington <hp@redhat.com>
8328 * test/data/valid-messages/opposite-endian.message: fix test
8329 to use proper type for rply field
8331 * test/data/invalid-messages: add tests for below validation
8333 * dbus/dbus-message.c (decode_header_data): validate field types,
8334 and validate that named fields are valid names
8335 (decode_name_field): consider messages in the
8336 org.freedesktop.Local. namespace to be invalid.
8338 * dbus/dbus-string.c (_dbus_string_validate_name): new
8340 2003-04-19 Havoc Pennington <hp@pobox.com>
8342 * bus/driver.c (bus_driver_handle_hello): check limits and
8343 return an error if they are exceeded.
8345 * bus/connection.c: maintain separate lists of active and inactive
8346 connections, and a count of each. Maintain count of completed
8347 connections per user. Implement code to check connection limits.
8349 * dbus/dbus-list.c (_dbus_list_unlink): export
8351 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8352 number of bytes in the message queue for a connection
8354 2003-04-18 Havoc Pennington <hp@pobox.com>
8356 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8358 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8361 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8362 on realloc be sure to update the pointer in the keyring
8364 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8365 offset to avoid writing to unallocated memory
8367 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8368 try the next mechanism, so we properly handle OOM
8370 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8372 (_dbus_keyring_new): fix OOM bug
8373 (_dbus_keyring_new_homedir): always set error; impose a maximum
8374 number of keys we'll load from the file, mostly to speed up the
8375 test suite and make its OOM checks more useful, but also for
8378 * dbus/dbus-auth.c (process_error_server): reject authentication
8379 if we get an error from the client
8380 (process_cancel): on cancel, send REJECTED, per the spec
8381 (process_error_client): send CANCEL if we get an error from the
8384 2003-04-18 Havoc Pennington <hp@pobox.com>
8386 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8389 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8392 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8393 about DBUS_TEST_HOMEDIR once
8395 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8398 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8399 config file so we test the right thing
8401 Throughout: assorted docs improvements
8403 2003-04-18 Havoc Pennington <hp@pobox.com>
8405 * glib/dbus-gmain.c: adapt to watch changes
8407 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8409 * dbus/dbus-server.h: remove dbus_server_handle_watch
8411 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8413 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8414 like DBusTimeout, so we don't need dbus_connection_handle_watch
8417 2003-04-17 Havoc Pennington <hp@redhat.com>
8419 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8420 database usage so it all goes via the DBusUserDatabase cache.
8422 2003-04-17 Havoc Pennington <hp@redhat.com>
8424 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8425 there was an OOM watch we skipped, we always return TRUE so we
8426 iterate again to have a look at it again. Fixes test suite hang.
8427 Code rearrangement also lets us lose some memset and only iterate
8428 over callbacks once.
8430 * bus/driver.c (bus_driver_handle_message): sense of test for
8433 2003-04-16 Havoc Pennington <hp@pobox.com>
8435 * doc/dbus-specification.sgml: make spec say serials are unsigned
8437 * dbus/dbus-message.h: change message serials to unsigned
8439 * dbus/dbus-connection.c: adapt to message serials being unsigned
8441 2003-04-15 Havoc Pennington <hp@pobox.com>
8443 * bus/bus.c: create and keep around a shared DBusUserDatabase
8446 * bus/connection.c (bus_connection_get_groups): don't cache
8447 groups for user in the connection object, since user database
8448 object now does that.
8450 2003-04-16 Havoc Pennington <hp@redhat.com>
8452 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8453 list of size counters
8454 (_dbus_message_loader_putback_message_link): put back a popped link
8456 * dbus/dbus-connection.c
8457 (dbus_connection_set_max_live_messages_size): rename
8459 (dbus_connection_get_outgoing_size): get size of outgoing
8461 (_dbus_connection_set_connection_counter): remove this cruft
8463 2003-04-14 Havoc Pennington <hp@redhat.com>
8465 * dbus/dbus-userdb.c: user database abstraction, mostly to get
8466 caching, but at some point we might want to be able to use a
8469 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8470 SHA1 conf file to test the sha1 auth mechanism, since the regular
8471 test always uses EXTERNAL when available.
8474 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8475 add conf file that requires use of sha1 auth
8477 2003-04-13 Havoc Pennington <hp@pobox.com>
8479 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8480 from Philip Blundell to send messages and monitor them.
8482 2003-04-13 Havoc Pennington <hp@pobox.com>
8484 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8487 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8490 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8491 fix to only recover unused bytes if we're already authenticated
8492 (_dbus_transport_get_is_authenticated): fix to still mark us
8493 authenticated if there are unused bytes.
8495 * bus/dispatch.c: implement security policy checking
8497 * bus/connection.c (bus_transaction_send_from_driver): new
8499 * bus/bus.c (bus_context_check_security_policy): new
8501 * bus/dispatch.c (send_service_nonexistent_error): delete this,
8502 now we just set the DBusError and it gets converted to an error
8505 * bus/connection.c (allow_user_function): enable code using actual
8506 data from the config file
8508 * bus/policy.c (list_allows_user): handle wildcard rules for
8509 user/group connection perms
8511 2003-04-13 Havoc Pennington <hp@pobox.com>
8513 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8515 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8517 * bus/policy.c (bus_policy_append_mandatory_rule)
8518 (bus_policy_append_default_rule, bus_policy_append_user_rule)
8519 (bus_policy_append_group_rule): new functions
8521 2003-04-12 Havoc Pennington <hp@pobox.com>
8523 * bus/config-parser.c (bus_config_parser_new): fix a memleak
8525 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8526 the pid/gid/uid, just for paranoia.
8528 * test/break-loader.c (randomly_do_n_things): find a byte
8529 containing a type code, and randomly change it to a different
8532 2003-04-12 Havoc Pennington <hp@pobox.com>
8534 * bus/policy.h: change BusPolicy to be the thing from the config
8535 file, and rename old BusPolicy to BusClientPolicy
8537 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8538 match change in how policy works
8540 * dbus/dbus-internals.h: mark assert_not_reached as
8541 __attribute((noreturn))__
8543 2003-04-11 Havoc Pennington <hp@redhat.com>
8545 * doc/dbus-specification.sgml: fix a spot with the wrong name for
8546 the broadcast service. Use boolean return for ServiceExists.
8548 2003-04-11 Havoc Pennington <hp@redhat.com>
8550 * configure.in: add another directory to look for qt in.
8552 2003-04-11 Havoc Pennington <hp@redhat.com>
8554 * AUTHORS: add Colin Walters
8556 2003-04-11 Havoc Pennington <hp@redhat.com>
8562 2003-04-11 Havoc Pennington <hp@redhat.com>
8564 * bus/messagebus.in: remove pid file when stopping the
8565 message bus, since the bus won't have privileges to remove it
8568 2003-04-11 Havoc Pennington <hp@redhat.com>
8570 * bus/bus.c (bus_context_new): move credentials change after
8573 2003-04-11 Havoc Pennington <hp@pobox.com>
8575 * test/decode-gcov.c: add "below average functions" to the
8576 coverage report, and change how some of the code works.
8578 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8579 not in the coverage stats.
8581 * test/test-service.c (main): use _dbus_verbose not fprintf in a
8582 couple places so running the test suite doesn't result in megaspam.
8584 2003-04-11 Havoc Pennington <hp@pobox.com>
8586 * bus/dispatch.c (check_existent_service_activation): accept a no
8587 memory error in a place we didn't before
8589 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8590 in case the first one failed," since the test suite is less
8593 2003-04-10 Havoc Pennington <hp@pobox.com>
8595 * bus/dispatch.c (check_segfault_service_activation): add test
8596 for launching an executable that just crashes.
8598 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8599 don't leave a million cores. We'll see how portable this is.
8601 2003-04-10 Havoc Pennington <hp@pobox.com>
8603 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8604 the possible parent failures before we fork, so that we don't
8605 fail to create a babysitter after creating the child.
8607 * bus/activation.c (bus_activation_activate_service): kill child
8608 if we don't successfully complete the activation.
8610 2003-04-10 Havoc Pennington <hp@redhat.com>
8612 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8613 the connection if it's disconnected
8615 * bus/activation.c (bus_activation_service_created): use new
8616 transaction features to roll back removal of pending activation if
8617 we don't successfully create the service after all. Don't remove
8618 pending activation if the function fails.
8620 * dbus/dbus-list.c (_dbus_list_insert_before_link)
8621 (_dbus_list_insert_after_link): new code to facilitate
8624 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8625 new functionality, so we can preallocate the ability to insert
8628 * bus/connection.c (bus_transaction_add_cancel_hook): new function
8629 allowing us to put custom hooks in a transaction to be used for
8630 cancelling said transaction
8632 * doc/dbus-specification.sgml: add some discussion of secondary
8633 service owners, and disallow zero-length service names
8635 * bus/services.c (bus_registry_acquire_service): new function,
8636 splits out part of bus_driver_handle_acquire_service() and fixes
8637 a bug where we didn't remove the service doing the acquiring
8638 from the secondary queue if we failed to remove the current owner
8639 from the front of the queue.
8641 2003-04-10 Alexander Larsson <alexl@redhat.com>
8643 * doc/dbus-specification.sgml:
8644 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8646 2003-04-10 Alexander Larsson <alexl@redhat.com>
8651 Added files to cvsignore
8653 * dbus/dbus-message.h:
8654 * dbus/dbus-message.c: (dbus_message_iter_get_named):
8655 Make get_named() take two out argument and return a boolean.
8656 (dbus_message_iter_get_args_valist):
8657 Update usage of get_named().
8658 (dbus_message_iter_append_byte):
8660 (dbus_message_iter_append_named)
8662 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8665 2003-04-10 Alexander Larsson <alexl@redhat.com>
8667 * dbus/dbus-marshal.[ch]:
8668 Add array_type_pos argument to _dbus_marshal_validate_arg.
8669 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8671 * dbus/dbus-message.[ch]:
8672 Multi-dimensional arrays have full type specification in the
8673 outermost array. Iter code re-arranged to handle this.
8674 Added some more iter tests.
8676 * doc/dbus-specification.sgml:
8679 Update new array encoding description.
8680 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8682 * test/data/invalid-messages/array-with-mixed-types.message:
8683 * test/data/valid-messages/array-of-array-of-uint32.message:
8684 Change to the new array format.
8686 * test/data/invalid-messages/too-short-dict.message:
8689 * test/data/valid-messages/recursive-types.message:
8690 Fix up and extend test.
8692 2003-04-10 Havoc Pennington <hp@pobox.com>
8694 * bus/dispatch.c: lots of fixes
8696 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8697 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8698 that was crack, broke the test service.
8700 * dbus/dbus-transport.c (_dbus_transport_open): fix error
8701 handling to avoid piling up errors if we get a failure on the
8704 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8705 pid in assertion failures.
8707 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8708 to some fixed size of file descriptor array. Don't return TRUE
8709 anytime a timeout exists, that led to lots of busy loop silliness
8712 2003-04-09 Havoc Pennington <hp@redhat.com>
8714 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8715 I'd checked this in earlier but hadn't.
8717 2003-04-09 Havoc Pennington <hp@redhat.com>
8719 * bus/dispatch.c (bus_dispatch_test): get a bit further through
8720 the activation test (man this is getting old!)
8722 2003-04-09 Havoc Pennington <hp@redhat.com>
8724 * test/test-utils.c: use dispatch status function to fix this up
8726 * bus/connection.c (connection_watch_callback): don't dispatch
8728 (connection_timeout_callback): don't dispatch from here
8729 (bus_connections_setup_connection): set the dispatch status function
8730 (bus_connection_disconnected): unset it
8732 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8733 used to add a connection to be dispatched
8734 (_dbus_loop_iterate): do the dispatching at the end of each
8737 * dbus/dbus-connection.c
8738 (dbus_connection_set_dispatch_status_function): new function
8739 allowing us to fix up main loop usage
8740 (_dbus_connection_last_unref): free all the various function
8742 (dbus_connection_dispatch): call the DispatchStatusFunction
8743 whenever this function returns
8744 (dbus_connection_handle_watch): call DispatchStatusFunction
8745 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8746 (reply_handler_timeout): call DispatchStatusFunction
8747 (dbus_connection_flush): call DispatchStatusFunction
8749 2003-04-09 Havoc Pennington <hp@redhat.com>
8751 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8754 * bus/dispatch.c (check_service_activated): fix bug in test
8756 * dbus/dbus-mainloop.c (check_timeout): fix this up
8758 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8759 verbose output so we can sort out output from different processes,
8760 e.g. in the activation case.
8762 2003-04-08 Colin Walters <walters@gnu.org>
8764 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8766 (bus_context_new): Set it.
8767 (bus_context_unref): Use it to delete the pid file.
8769 2003-04-08 Havoc Pennington <hp@redhat.com>
8771 * test/data/invalid-messages/array-with-mixed-types.message:
8772 regression test that fails for the moment
8774 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8775 tests for convenience
8777 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8778 array of nil, it broke things.
8780 * test/data/invalid-messages/array-of-nil.message: regression test
8782 * test/data/valid-messages/array-of-array-of-uint32.message:
8783 happened to write this so added it to suite
8785 2003-04-08 Havoc Pennington <hp@redhat.com>
8787 * bus/driver.c (bus_driver_handle_acquire_service): init
8788 retval/reply before checking name
8790 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8791 recursion depth argument
8793 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8794 in the public struct for future extension
8796 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8799 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8802 * doc/dbus-specification.sgml: fix typo
8804 2003-04-08 Alexander Larsson <alexl@redhat.com>
8806 Implemented recursive types, named types and new-style iters
8809 * glib/test-thread-client.c: (thread_func):
8810 * glib/test-thread-server.c: (handle_test_message):
8811 * test/test-service.c: (handle_echo):
8820 * dbus/dbus-internals.c: (_dbus_type_to_string):
8821 Update for new types.
8823 * dbus/dbus-marshal.[ch]:
8824 Implement recursive types and the new marshalling format.
8825 Remove hardcoded dict marshalling.
8826 Marshal named types.
8828 * dbus/dbus-message-builder.c:
8830 Remove references to old types
8832 * dbus/dbus-message.[ch]:
8833 New non-refcounted iter API that supports recursive iters.
8834 Use iters for appending, including support for recursive
8836 Add byte and named type support.
8837 Update everything to new marshalling formats.
8838 Add tests for new API.
8840 * dbus/dbus-protocol.h:
8841 Remove old array types.
8842 Add types: BYTE, ARRAY, DICT, NAMED
8844 * dbus/dbus-string.c:
8845 * dbus/dbus-sysdeps.c:
8846 Make parse_double locale safe.
8848 * dbus/dbus-test-main.c:
8854 * doc/dbus-specification.sgml:
8857 * test/data/incomplete-messages/missing-body.message:
8858 * test/data/invalid-messages/bad-boolean.message:
8859 * test/data/invalid-messages/bad-boolean-array.message:
8860 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
8861 * test/data/invalid-messages/boolean-has-no-value.message-raw:
8862 * test/data/invalid-messages/too-short-dict.message:
8863 * test/data/valid-messages/dict-simple.message:
8864 * test/data/valid-messages/dict.message:
8865 * test/data/valid-messages/emptiness.message:
8866 * test/data/valid-messages/lots-of-arguments.message:
8867 * test/data/valid-messages/no-padding.message:
8868 * test/data/valid-messages/recursive-types.message:
8869 Add missing NAME fields
8870 Fix up dicts & arrays
8872 * test/data/invalid-messages/dict-with-nil-value.message:
8873 Removed, this is not invalid anymore.
8875 * test/data/valid-messages/recursive-types.message:
8876 Add new test for deeply recursive types.
8878 2003-04-07 Havoc Pennington <hp@pobox.com>
8880 * bus/driver.c (bus_driver_handle_acquire_service): return an
8881 error if you try to acquire a service that starts with ':'
8883 2003-04-07 Havoc Pennington <hp@redhat.com>
8885 * doc/dbus-specification.sgml: require that base service names
8886 start with ':' and that the base service is created/deleted
8887 as first and last things a connection does on the bus
8889 * bus/dispatch.c (check_existent_service_activation): lots more
8890 work on the activation test; it doesn't fully pass yet...
8892 * test/test-service.c (main): fix so we don't memleak the
8893 connection to the message bus
8894 (filter_func): accept a message asking us to exit
8896 2003-04-06 Havoc Pennington <hp@pobox.com>
8898 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
8901 * configure.in: fixes to Qt detection from Colin Walters
8903 * doc/Makefile.am: Only remove generated docbook dirs if they
8904 exist, from Colin Walters
8906 * dbus/dbus-bus.c: change how we set well-known connections to
8907 NULL, so that it works if a single connection is stored in
8908 two well-known array slots.
8910 * test/Makefile.am: remove a lot of stuff that isn't immediately
8911 useful, it's in CVS history if we want it.
8913 * test/test-service.c: use dbus-mainloop instead of that
8916 2003-04-06 Havoc Pennington <hp@pobox.com>
8918 * dbus/Makefile.am: split lists of sources into stuff that goes in
8919 the library, util functions that go in the lib and are also used
8920 elsewhere, and util functions that are used in tests/daemon but
8921 don't go in the lib.
8923 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
8924 here so it can be used in test binaries also
8926 2003-04-06 Havoc Pennington <hp@pobox.com>
8928 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
8929 here in the parent process, so we can return an error if it
8930 fails. Also, move some of the code into the child so the parent
8931 is less hosed if we fail midway through.
8933 * bus/bus.c (bus_context_new): move pidfile detection further up
8934 in the function, before we start overwriting sockets and such.
8936 * bus/messagebus.in: adjust this a bit, not sure if it will work.
8938 * configure.in: add --with-system-pid-file and --with-system-socket
8940 2003-04-06 Colin Walters <walters@verbum.org>
8942 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
8944 * bus/system.conf.in: Declare a pidfile.
8946 * bus/bus.c (bus_context_new): Test for an existing pid file, and
8947 create one (if appropriate).
8949 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
8950 (struct BusConfigParser) [pidfile]: New.
8951 (element_type_to_name, merge_included, start_busconfig_child)
8952 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
8953 (bus_config_parser_unref): Free it.
8954 (bus_config_parser_get_pidfile): New function.
8956 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
8958 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
8960 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
8962 * dbus/dbus-sysdeps.h: Prototype it.
8964 2003-04-06 Havoc Pennington <hp@pobox.com>
8966 * bus/bus.c (bus_context_new): print the address in here, rather
8967 than in main(), because we need to do it before forking the daemon
8969 * bus/dispatch.c (send_service_nonexistent_error): set the sender
8970 on the service nonexistent error
8972 * bus/driver.c (bus_driver_handle_acquire_service): set the
8973 sender on the AcquireService reply
8975 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
8976 server also listen on a UNIX socket so services can connect to it.
8978 2003-04-06 Havoc Pennington <hp@pobox.com>
8980 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
8981 so it detects deadlocks and also we actually init threads when
8984 2003-04-06 Havoc Pennington <hp@pobox.com>
8986 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8987 save the domain socket name, and unlink it when we disconnect the
8988 server. Means that at least when we exit normally, we won't leave
8989 a bunch of junk in /tmp
8991 * dbus/dbus-transport-unix.c
8992 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
8993 memory management). (I was making a real change here but then
8996 2003-04-06 Havoc Pennington <hp@pobox.com>
8998 * bus/bus.c (bus_context_new): fix wrong handling of
8999 server_data_slot_unref() in the error case.
9001 * dbus/dbus-internals.h (_dbus_assert): change so it passes
9002 "(condition) != 0" to _dbus_real_assert so that
9003 "_dbus_assert (pointer)" doesn't cause a warning
9005 * bus/main.c (main): accept --print-address option to print out
9006 the message bus address
9008 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9010 * dbus/dbus-transport.c (_dbus_transport_open): special error for
9011 "tmpdir" option to unix: address on client side
9013 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9016 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9017 we can use to create sockets in the test suite.
9019 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9020 cleanly. To be used for testing.
9022 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9024 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9026 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9027 handle trying to call this when there's no servers active
9029 2003-04-05 Havoc Pennington <hp@pobox.com>
9035 2003-04-05 Havoc Pennington <hp@pobox.com>
9037 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9038 crash on startup. Need to get "try starting the daemon"
9039 in the test suite I guess. ;-)
9041 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9042 tracked the number of open connections; it's better done in
9043 application-specific code as you want it to span all servers etc.
9045 2003-04-05 Havoc Pennington <hp@pobox.com>
9047 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9048 patch from Colin Walters
9050 2003-04-05 Havoc Pennington <hp@pobox.com>
9052 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9053 reality; in fact multiple mechanisms are allowed.
9055 * dbus/dbus-internals.c (_dbus_real_assert)
9056 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9057 _dbus_assert_not_reached() into functions, so that they don't show
9058 up in basic block counts for test coverage, and don't use up as
9059 much disk space. Does mean slower execution speed though, so
9060 assumes --disable-asserts is the normal production case.
9062 2003-04-05 Havoc Pennington <hp@pobox.com>
9064 * test/Makefile.am (dist-hook): also dist *.in files
9070 2003-04-05 Havoc Pennington <hp@pobox.com>
9072 * dbus/dbus-string.c: docs warning
9074 * dbus/dbus-spawn.c: missing docs
9076 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9078 2003-04-05 Havoc Pennington <hp@pobox.com>
9080 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9083 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9084 to -1 once we've reaped the babysitter
9085 (_dbus_babysitter_handle_watch): do as much work as we can, not
9088 * bus/activation.c: add code using DBusBabysitter so that we
9089 handle it when a service fails to start up properly.
9090 (bus_activation_service_created): don't remove the activation
9091 entries as we go, just let them get removed when we free the pending
9092 activation. Unref reply messages after sending them.
9094 2003-04-05 Havoc Pennington <hp@pobox.com>
9096 * test/decode-gcov.c (main): print per-directory stats in the report
9098 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9100 2003-04-05 Havoc Pennington <hp@pobox.com>
9102 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9104 * test/decode-gcov.c: hack up a little program to suck data
9105 out of gcov files. Yes this is sort of silly.
9107 * configure.in: define something in config.h and do an
9108 AM_CONDITIONAL when gcov is enabled
9110 2003-04-04 Havoc Pennington <hp@redhat.com>
9112 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9113 return a "babysitter" object that is used to monitor the status of
9114 the spawned process and reap it when required.
9116 * test/test-segfault.c, test/test-exit.c,
9117 test/test-sleep-forever.c: binaries that do various lame things,
9118 used in the test suite.
9120 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9122 2003-04-03 Havoc Pennington <hp@pobox.com>
9124 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9125 in preparation for modifying it, dbus-sysdeps is getting
9128 2003-04-03 Havoc Pennington <hp@redhat.com>
9130 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9133 * bus/*.[hc]: adapt to mainloop change
9135 2003-04-03 Havoc Pennington <hp@redhat.com>
9137 * bus/activation.c (load_directory): fix up memleaks
9138 (bus_activation_entry_free): free the entry
9140 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9141 we get one from the message bus; fix memleaks.
9143 * dbus/dbus-message.c (dbus_set_error_from_message): new function
9145 2003-04-03 Havoc Pennington <hp@pobox.com>
9147 * bus/config-parser.c (bus_config_parser_unref): free
9148 list of mechanisms, bug discovered by test suite enhancements
9149 (putting system.conf and session.conf into suite)
9151 * test/Makefile.am, test/test-service.c: add placeholder for a
9152 test service that we'll activate as part of test suite. Doesn't
9155 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9156 setting NULL value, and use system malloc not dbus_malloc()
9157 when we have unavoidable memleakage.
9159 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9160 didn't work, and support DBUS_BUS_ACTIVATION.
9162 * bus/activation.c (child_setup): pass our well-known bus type to
9165 * bus/config-parser.c: support <type> to specify well-known type
9167 * doc/dbus-specification.sgml: document the env variables to
9168 locate well-known buses and find service activator
9170 2003-04-02 Havoc Pennington <hp@redhat.com>
9172 * test/Makefile.am (all-local): add a rule to copy tests to
9173 builddir, so we can have generated tests. Use this to remove the
9174 silly hack for testing system.conf and session.conf. Will use this
9175 shortly to generate .service files pointing to test binaries.
9177 2003-04-02 Havoc Pennington <hp@redhat.com>
9179 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9180 current alloc and needed new length, not max of the doubled
9181 allocation and needed new length. Also, when building tests,
9182 don't do the double-allocation stuff, just realloc every time.
9184 2003-04-02 Havoc Pennington <hp@redhat.com>
9186 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9188 (_dbus_string_get_dirname): new
9189 (_dbus_sysdeps_test): new
9190 (_dbus_directory_open): include dirnames in error messages
9192 * bus/config-parser.c: interpret <include> and <includedir> and
9193 <servicedir> relative to config file location if the given
9194 filename is not absolute.
9196 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9198 2003-04-02 Havoc Pennington <hp@redhat.com>
9200 * bus/connection.c (bus_transaction_send_error_reply): set sender
9201 service for the error, and unref the reply on success
9203 * bus/activation.c: convert to use BusTransaction so OOM can be
9205 (bus_activation_service_created): set sender of the message
9207 2003-04-01 Havoc Pennington <hp@redhat.com>
9209 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9210 <includedir> (at least mostly)
9212 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9213 first, then the user ID
9215 2003-04-01 Havoc Pennington <hp@pobox.com>
9217 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9220 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9222 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9224 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9225 socket 0777, and unlink any existing socket.
9227 * bus/bus.c (bus_context_new): change our UID/GID and fork if
9228 the configuration file so specifies; set up auth mechanism
9231 * bus/config-parser.c (bus_config_parser_content): add support
9232 for <fork> option and fill in code for <auth>
9234 * bus/system.conf.in: add <fork/> to default configuration,
9235 and limit auth mechanisms to EXTERNAL
9237 * doc/config-file.txt (Elements): add <fork>
9239 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9240 (_dbus_change_identity): new function
9242 2003-03-31 Havoc Pennington <hp@redhat.com>
9244 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9245 (_dbus_listen_unix_socket): fix off-by-one error in null
9246 termination spotted by Nalin
9248 2003-03-31 Havoc Pennington <hp@redhat.com>
9250 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9251 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9252 having a real home directory available.
9254 2003-03-31 Havoc Pennington <hp@redhat.com>
9256 * bus/Makefile.am (install-data-hook): create /var/run/dbus
9258 * bus/messagebus.in: add init script for Red Hat /etc/init.d
9260 * configure.in: add support for specifying a style of init script
9263 2003-03-31 Havoc Pennington <hp@redhat.com>
9265 Fix some annoying DBusString API and fix all affected code.
9267 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9269 (_dbus_string_get_data): change to return string instead of using
9271 (_dbus_string_get_const_data): ditto
9272 (_dbus_string_get_data_len): ditto
9273 (_dbus_string_get_const_data_len): ditto
9275 2003-03-31 Havoc Pennington <hp@redhat.com>
9277 * bus/main.c (main): fix up the command line arguments to be nicer
9279 2003-03-31 Havoc Pennington <hp@redhat.com>
9281 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9282 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9283 final location that lands in the config file
9285 * bus/config-loader-expat.c (bus_config_load): fix type of
9288 * doc/TODO: remove TODO item for dbus_bus_get()
9290 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9292 2003-03-31 Havoc Pennington <hp@pobox.com>
9294 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9295 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9296 argument since they are always client side
9298 * dbus/dbus-server.c (dbus_server_get_address): new function
9300 * bus/main.c (main): take the configuration file as an argument.
9302 * test/data/valid-config-files/debug-allow-all.conf: new file to
9303 use with dispatch.c tests for example
9305 * bus/test-main.c (main): require test data dir
9307 * bus/bus.c (bus_context_new): change this to take a
9308 configuration file name as argument
9310 * doc/config-file.txt (Elements): add <servicedir>
9312 * bus/system.conf, bus/session.conf: new files
9314 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9315 well-known socket if none set
9317 * configure.in: create system.conf and session.conf
9319 2003-03-30 Havoc Pennington <hp@pobox.com>
9321 * bus/config-parser.c: hacking
9323 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9324 to shut down, since it could cause weirdness with the DBusList
9327 * dbus/dbus-list.c (_dbus_list_test): add tests for the
9328 link-oriented stack routines
9329 (alloc_link): free the mempool if the first alloc from it fails
9331 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9333 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9335 (_dbus_string_skip_white): new
9337 * doc/config-file.txt (Elements): add <includedir>
9339 2003-03-28 Havoc Pennington <hp@pobox.com>
9341 * dbus/dbus-string.c (_dbus_string_copy_data_len)
9342 (_dbus_string_copy_data): new functions
9344 2003-03-28 Anders Carlsson <andersca@codefactory.se>
9346 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9350 * dbus/dbus-memory.c:
9353 2003-03-28 Havoc Pennington <hp@pobox.com>
9355 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9356 I think it may have just been superstition. Not sure.
9358 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9359 failures that were not being handled.
9361 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9363 * dbus/dbus-memory.c: add ability to set number of mallocs in a
9364 row that will fail on out-of-memory.
9366 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9367 function for testing out-of-memory handling.
9369 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9370 allocation functions, they do map exactly to the expat ones.
9372 2003-03-27 Havoc Pennington <hp@redhat.com>
9374 * bus/config-loader-libxml.c (bus_config_load): add another error
9377 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9380 Add note about automatic service activation.
9382 * doc/dbus-specification.sgml:
9383 Rename the specification and clarify a few things.
9385 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9388 * dbus/dbus-address.c:
9390 * dbus/dbus-marshal.c:
9391 * dbus/dbus-server-debug-pipe.c:
9392 * dbus/dbus-transport-unix.c:
9393 Fix documentation warnings.
9395 2003-03-26 Havoc Pennington <hp@pobox.com>
9397 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9398 after every test so it's quick and easy to see which leaked, and
9399 so we test multiple dbus_shutdown() calls
9401 * configure.in: change configure.in XML stuff to also support
9404 * config-loader-libxml.c: some hacking
9406 * config-loader-expat.c: some hacking
9408 * config-parser.c: some hacking, plus tests
9410 2003-03-25 Havoc Pennington <hp@redhat.com>
9412 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9414 * configure.in: add --with-xml option to specify XML library,
9415 right now only libxml is supported.
9417 * bus/config-loader-libxml.c, config-parser.c: sync some minor
9418 nonworking code between home and work, still just stubs
9420 2003-03-24 Havoc Pennington <hp@redhat.com>
9422 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9425 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9426 NULL argument for "message" if the error is a well-known one,
9427 fill in a generic message in this case.
9429 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9432 * bus/test.c (bus_test_flush_bus): add
9434 * bus/policy.c (bus_policy_test): test code stub
9436 2003-03-24 Havoc Pennington <hp@pobox.com>
9438 * bus/connection.c (bus_connections_setup_connection): set up
9439 the "can this user connect" function, but it always returns
9440 TRUE until we have a config file parser so we can have a config
9441 file that allows connections.
9443 2003-03-23 Havoc Pennington <hp@pobox.com>
9445 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9446 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9447 the mutex, so we can check for proper memory management
9450 * dbus/dbus-dataslot.c: remove the mutex from
9451 DBusDataSlotAllocator and lock it manually when using it,
9452 to simplify fitting it into the global slots framework.
9454 * dbus/dbus-threads.c (init_static_locks): rework how we're
9455 handling global locks so they are easily shut down.
9457 * bus/policy.c (bus_policy_append_rule): fix
9459 * bus/test-main.c (main): check for memleaks
9461 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9462 test suite check for memleaks
9464 * dbus/dbus-memory.c: add support in test mode for tracking
9465 number of outstanding blocks
9467 2003-03-23 Havoc Pennington <hp@pobox.com>
9469 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9472 * dbus/dbus-hash.h: add ULONG hash keys
9474 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9475 (_dbus_get_group_id): new function
9477 2003-03-20 Havoc Pennington <hp@redhat.com>
9479 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9481 (dbus_connection_get_unix_user): new function
9483 2003-03-20 Havoc Pennington <hp@pobox.com>
9485 * bus/connection.c (bus_connection_send_oom_error): assert that
9486 message has a sender
9487 (connection_execute_transaction): ditto
9488 (bus_connection_preallocate_oom_error): fix to set the sender, and
9489 set recipient to the destination service, not the bus driver
9491 * bus/policy.c: hacking
9493 * dbus/dbus-message.c (dbus_message_service_is): new function
9494 (dbus_message_sender_is): new
9496 2003-03-19 Havoc Pennington <hp@redhat.com>
9498 * bus/policy.c: start sketching code for policy restrictions on
9499 what connections can do.
9501 2003-03-18 Havoc Pennington <hp@redhat.com>
9503 * doc/TODO: some notes on high-level todo items. Little nitpick
9504 stuff is all in @todo, so no need to add it here.
9506 * doc/config-file.txt: some notes on how config file might look
9508 2003-03-18 Anders Carlsson <andersca@codefactory.se>
9514 2003-03-17 Havoc Pennington <hp@redhat.com>
9516 * dbus/dbus-internals.h: add gcc attributes so that
9517 our printf-style functions warn on bad arguments to
9520 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9523 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9526 2003-03-17 Havoc Pennington <hp@redhat.com>
9528 * bus/test-main.c (main): make it print something as it runs
9529 so make check doesn't look stuck
9531 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9532 from CVS, now obsolete
9534 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9536 * bus/dispatch.c: (bus_dispatch):
9537 Refetch the service name since it may have been reallocated
9538 when dbus_message_set_sender was called.
9540 * dbus/dbus-sysdeps.c: (_dbus_accept):
9541 Add address and address length variables and use them to stop
9542 valgrind from complaining.
9544 2003-03-17 Havoc Pennington <hp@pobox.com>
9546 All tests pass, no memleaks, no valgrind complaints.
9548 * bus/test.c: refcount handler_slot
9550 * bus/connection.c (bus_connections_new): refcount
9551 connection_data_slot
9553 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9554 bytes so that auth scripts pass.
9556 * bus/dispatch.c: init message_handler_slot so it gets allocated
9559 * bus/dispatch.c (message_handler_slot_ref): fix memleak
9561 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9562 dealloc server_pipe_hash when no longer used for benefit of
9565 * dbus/dbus-auth.c (process_command): memleak fix
9567 * bus/dispatch.c (check_hello_message): memleak fix
9569 2003-03-16 Havoc Pennington <hp@pobox.com>
9571 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9573 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9575 * bus/activation.c (bus_activation_activate_service): Append
9576 the pending activation entry to the list of pending activations.
9578 2003-03-16 Havoc Pennington <hp@pobox.com>
9580 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9583 * dbus/dbus-address.c (create_entry): fix OOM handling when
9584 failing to alloc entry->method
9586 2003-03-16 Havoc Pennington <hp@pobox.com>
9588 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9591 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9592 add some missing dbus_set_result
9594 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9595 alloc the DBusMessageHandler
9597 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9598 the transport here, since we call this from the finalizer; it
9599 resulted in a double-finalize.
9601 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9602 where we tried to use transport->connection that was NULL,
9603 happened when transport was disconnected early on due to OOM
9605 * bus/*.c: adapt to handle OOM for watches/timeouts
9607 * dbus/dbus-transport-unix.c: port to handle OOM during
9610 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9611 reference to unused bytes instead of a copy
9613 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9616 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9619 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9622 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9624 * doc/dbus-specification.sgml:
9625 Document reply message for ActivateService.
9627 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9629 * bus/activation.c: (bus_pending_activation_entry_free),
9630 (bus_pending_activation_free), (bus_activation_new),
9631 (bus_activation_unref), (bus_activation_service_created),
9632 (bus_activation_activate_service):
9634 * bus/bus.c: (bus_context_new):
9635 * bus/desktop-file.c: (new_section):
9636 * bus/driver.c: (bus_driver_send_service_deleted),
9637 (bus_driver_handle_activate_service):
9638 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9640 * dbus/dbus-connection.c:
9641 (dbus_connection_send_with_reply_and_block):
9642 * dbus/dbus-message.c: (dbus_message_append_args_valist):
9643 * dbus/dbus-protocol.h:
9644 Make activation work better. Now pending activations will be queued
9645 and the daemon won't try to activate services that are already registered.
9647 2003-03-16 Havoc Pennington <hp@pobox.com>
9649 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9652 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9653 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9655 2003-03-16 Havoc Pennington <hp@pobox.com>
9657 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9658 this. always run the test suite before commit...
9660 * bus/*: adapt to DBusConnection API changes
9662 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9663 requires renaming stuff to avoid dbus_connection_dispatch name
9666 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9669 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9670 separate from _dbus_message_loader_return_buffer()
9672 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9673 this, because it's now always broken to use; the number of
9674 messages in queue vs. the number still buffered by the message
9675 loader is undefined/meaningless. Should use
9676 dbus_connection_get_dispatch_state().
9677 (dbus_connection_dispatch): rename from
9678 dbus_connection_dispatch_message
9680 2003-03-16 Havoc Pennington <hp@pobox.com>
9682 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9685 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9687 * dbus/dbus-connection.c:
9688 (dbus_connection_send_with_reply_and_block):
9689 Decrease connection->n_incoming when removing an entry
9691 * dbus/dbus-dict.c: (dbus_dict_entry_free),
9692 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9693 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9694 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9695 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9696 (dbus_dict_get_byte_array):
9697 Handle NULL arrays and strings. Also add support for byte arrays.
9699 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9700 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9701 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9702 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9703 (_dbus_demarshal_dict), (demarshal_and_validate_len),
9704 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9705 * dbus/dbus-marshal.h:
9706 Add support for marshalling and demarshalling empty arrays and strings.
9708 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9709 (dbus_message_append_string_array),
9710 (dbus_message_iter_get_boolean),
9711 (dbus_message_iter_get_boolean_array),
9712 (dbus_message_iter_get_int32_array),
9713 (dbus_message_iter_get_uint32_array),
9714 (dbus_message_iter_get_double_array),
9715 (dbus_message_iter_get_byte_array),
9716 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9717 (check_message_handling):
9718 Add support for getting empty arrays and dicts.
9720 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9721 Don't do any validation at all for now, that's better than just checking
9724 * test/data/valid-messages/emptiness.message:
9725 New test message with lots of empty arrays.
9727 2003-03-16 Havoc Pennington <hp@pobox.com>
9729 * dbus/dbus-connection.c
9730 (_dbus_connection_queue_received_message_link): new function that
9731 can't fail due to OOM
9733 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9734 new function pops a message together with a list link
9737 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9738 message queuing functions to avoid needing to alloc memory
9740 2003-03-16 Havoc Pennington <hp@pobox.com>
9742 Oops - test code was only testing failure of around 30 of the
9743 mallocs in the test path, but it turns out there are 500+
9744 mallocs. I believe this was due to misguided linking setup such
9745 that there was one copy of dbus_malloc etc. in the daemon and one
9746 in the shared lib, and only daemon mallocs were tested. In any
9747 case, the test case now tests all 500+ mallocs, and doesn't pass
9748 yet, though there are lots of fixes in this patch.
9750 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9751 this so that it doesn't need to allocate memory, since it
9752 has no way of indicating failure due to OOM (and would be
9753 annoying if it did).
9755 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9757 * bus/Makefile.am: rearrange to create two self-contained
9758 libraries, to avoid having libraries with overlapping symbols.
9759 that was resulting in weirdness, e.g. I'm pretty sure there
9760 were two copies of global static variables.
9762 * dbus/dbus-internals.c: move the malloc debug stuff to
9765 * dbus/dbus-list.c (free_link): free list mempool if it becomes
9768 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9770 * dbus/dbus-address.c (dbus_parse_address): free list nodes
9773 * bus/dispatch.c (bus_dispatch_add_connection): free
9774 message_handler_slot when no longer using it, so
9775 memory leak checkers are happy for the test suite.
9777 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9779 * bus/bus.c (new_connection_callback): disconnect in here if
9780 bus_connections_setup_connection fails.
9782 * bus/connection.c (bus_connections_unref): fix to free the
9784 (bus_connections_setup_connection): if this fails, don't
9785 disconnect the connection, just be sure there are no side
9788 * dbus/dbus-string.c (undo_alignment): unbreak this
9790 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9792 (_dbus_auth_new): fix the order in which we free strings
9795 * bus/connection.c (bus_connection_disconnected): fix to
9796 not send ServiceDeleted multiple times in case of memory
9799 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9800 get the base service name
9801 (dbus_bus_register_client): don't return base service name,
9802 instead store it on the DBusConnection and have an accessor
9804 (dbus_bus_register_client): rename dbus_bus_register()
9806 * bus/dispatch.c (check_hello_message): verify that other
9807 connections on the bus also got the correct results, not
9808 just the one sending hello
9810 2003-03-15 Havoc Pennington <hp@pobox.com>
9812 Make it pass the Hello handling test including all OOM codepaths.
9813 Now to do other messages...
9815 * bus/services.c (bus_service_remove_owner): fix crash when
9816 removing owner from an empty list of owners
9817 (bus_registry_ensure): don't leave service in the list of
9818 a connection's owned services if we fail to put the service
9821 * bus/connection.c (bus_connection_preallocate_oom_error): set
9822 error flag on the OOM error.
9824 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9825 handle _dbus_transport_set_connection failure
9827 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9828 to create watches up front and simply enable/disable them as
9830 (unix_connection_set): this can now fail on OOM
9832 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9833 of enabling/disabling a watch or timeout.
9835 * bus/loop.c (bus_loop_iterate): don't touch disabled
9838 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9840 2003-03-15 Havoc Pennington <hp@pobox.com>
9842 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9843 write useful test code, after all that futzing around ;-)
9845 Test does not yet pass because we can't handle OOM in
9846 _dbus_transport_messages_pending (basically,
9847 dbus_connection_preallocate_send() does not prealloc the write
9848 watch). To fix this, I think we need to add new stuff to
9849 set_watch_functions, namely a SetEnabled function so we can alloc
9850 the watch earlier, then enable it later.
9852 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
9853 dbus-memory.c to the convenience lib
9855 * bus/test.c: rename some static functions to keep them clearly
9856 distinct from stuff in connection.c. Handle client disconnection.
9858 2003-03-14 Havoc Pennington <hp@pobox.com>
9860 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
9861 transport, tests more of the real codepath. Set up clients
9862 with bus_setup_debug_client.
9864 * bus/test.c (bus_setup_debug_client): function to set up debug
9865 "clients" on the main loop
9867 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
9870 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
9873 * dbus/dbus-server-debug.c: support a debug server based on pipes
9875 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
9876 (_dbus_close): new function
9878 * configure.in: check for socketpair
9880 2003-03-14 Havoc Pennington <hp@redhat.com>
9882 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
9885 * dbus/dbus-transport-debug.c: rework this a good bit to be
9886 less complicated. hopefully still works.
9888 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
9891 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
9894 * dbus/dbus-message.c (dbus_message_copy): rename from
9895 dbus_message_new_from_message, fix it up to copy
9896 all the message fields, add test case
9898 * bus/dispatch.c (bus_dispatch_test): add some more test code,
9899 not quite passing yet
9901 2003-03-14 Havoc Pennington <hp@pobox.com>
9903 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
9904 until no work remains" in test code. (the large diff here
9905 is just code movement, no actual changes)
9907 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
9908 1, no point waiting around for test code.
9909 (_dbus_server_debug_accept_transport): unref the timeout
9910 after adding it (right?)
9912 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
9914 2003-03-13 Havoc Pennington <hp@redhat.com>
9916 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
9919 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
9922 * dbus/dbus-connection.h: Make AddWatchFunction and
9923 AddTimeoutFunction return a bool so they can fail on out-of-memory
9925 * bus/bus.c (bus_context_new): set up timeout handlers
9927 * bus/connection.c (bus_connections_setup_connection): set up
9930 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
9933 * bus/bus.c (bus_context_new): adapt to changes
9935 * bus/connection.c: adapt to changes
9937 * test/watch.c: adapt to DBusWatch changes
9939 * bus/dispatch.c (bus_dispatch_test): started adding this but
9942 2003-03-14 Anders Carlsson <andersca@codefactory.se>
9944 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
9946 2003-03-13 Havoc Pennington <hp@pobox.com>
9948 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
9949 set up a test framework as for the library
9951 2003-03-12 Havoc Pennington <hp@pobox.com>
9953 Throughout: purge global variables, introduce BusActivation,
9954 BusConnections, BusRegistry, etc. objects instead.
9956 * bus/bus.h, bus/bus.c: introduce BusContext as a global
9959 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
9960 going to redo this a bit differently I think
9962 2003-03-12 Havoc Pennington <hp@redhat.com>
9964 Mega-patch that gets the message bus daemon initially handling
9965 out-of-memory. Work still needed. Also lots of random
9966 moving stuff to DBusError instead of ResultCode.
9968 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
9970 * dbus/dbus-connection.c
9971 (dbus_connection_send_with_reply_and_block): use DBusError
9973 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
9976 * dbus/dbus-connection.c (dbus_connection_send): drop the result
9977 code here, as the only failure possible is OOM.
9979 * bus/connection.c (bus_connection_disconnect):
9980 rename bus_connection_disconnected as it's a notification only
9982 * bus/driver.c (bus_driver_handle_acquire_service): don't free
9983 "name" on get_args failure, should be done by get_args;
9984 don't disconnect client for bad args, just return an error.
9985 (bus_driver_handle_service_exists): ditto
9987 * bus/services.c (bus_services_list): NULL-terminate returned array
9989 * bus/driver.c (bus_driver_send_service_lost)
9990 (bus_driver_send_service_acquired): send messages from driver to a
9991 specific client to the client's unique name, not to the broadcast
9994 * dbus/dbus-message.c (decode_header_data): reject messages that
9995 contain no name field
9996 (_dbus_message_get_client_serial): rename to
9997 dbus_message_get_serial and make public
9998 (_dbus_message_set_serial): rename from set_client_serial
9999 (_dbus_message_set_reply_serial): make public
10000 (_dbus_message_get_reply_serial): make public
10002 * bus/connection.c (bus_connection_foreach): allow stopping
10003 iteration by returning FALSE from foreach function.
10005 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10006 (dbus_connection_free_preallocated_send)
10007 (dbus_connection_preallocate_send): new API for sending a message
10008 without possibility of malloc failure.
10009 (dbus_connection_send_message): rename to just
10010 dbus_connection_send (and same for whole function family)
10012 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10014 * dbus/dbus-sysdeps.c (_dbus_exit): new function
10016 * bus/activation.c: handle/return errors
10018 * dbus/dbus-errors.h: add more DBUS_ERROR #define
10020 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10021 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10022 (_dbus_result_from_errno): move to this file
10024 2003-03-10 Anders Carlsson <andersca@codefactory.se>
10026 * dbus/dbus-marshal.c:
10027 (_dbus_marshal_set_string):
10028 Take a length argument so we can marshal the correct string
10031 (_dbus_marshal_dict), (_dbus_demarshal_dict),
10032 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10033 (_dbus_marshal_test):
10034 * dbus/dbus-marshal.h:
10035 Add support for marshalling and demarshalling dicts.
10037 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10038 Add support for TYPE DICT.
10040 * dbus/dbus-message.c: (set_string_field):
10041 Adjust header padding.
10043 (dbus_message_append_args_valist), (dbus_message_append_dict),
10044 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10045 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10046 (check_message_handling), (check_have_valid_message):
10047 * dbus/dbus-message.h:
10048 Add functions for setting and getting dicts.
10050 * dbus/dbus-protocol.h:
10051 Add DBUS_TYPE_DICT.
10056 * doc/dbus-specification.sgml:
10057 Add information about how dicts are marshalled.
10059 * test/data/invalid-messages/dict-with-nil-value.message:
10060 * test/data/invalid-messages/too-short-dict.message:
10061 * test/data/valid-messages/dict-simple.message:
10062 * test/data/valid-messages/dict.message:
10063 Add sample messages containing dicts.
10065 2003-03-08 Anders Carlsson <andersca@codefactory.se>
10067 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10069 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10071 * dbus/Makefile.am:
10072 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10073 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10074 (dbus_dict_set_int32), (dbus_dict_set_uint32),
10075 (dbus_dict_set_double), (dbus_dict_set_string),
10076 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10077 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10078 (dbus_dict_set_string_array), (_dbus_dict_test):
10079 * dbus/dbus-dict.h:
10080 Fix according to comments from Havoc.
10082 2003-03-06 Michael Meeks <michael@server.home>
10084 * configure.in: if we don't have kde-config, disable have_qt.
10086 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10088 * dbus/Makefile.am:
10091 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10092 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10093 (dbus_dict_remove), (dbus_dict_get_value_type),
10094 (dbus_dict_get_keys), (dbus_dict_put_boolean),
10095 (dbus_dict_put_int32), (dbus_dict_put_uint32),
10096 (dbus_dict_put_double), (dbus_dict_put_string),
10097 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10098 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10099 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10100 (dbus_dict_get_int32), (dbus_dict_get_uint32),
10101 (dbus_dict_get_double), (dbus_dict_get_string),
10102 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10103 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10104 (dbus_dict_get_string_array), (_dbus_dict_test):
10105 * dbus/dbus-dict.h:
10106 Add DBusDict implementation
10108 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10109 * dbus/dbus-test.h:
10110 Add _dbus_dict_test
10112 2003-03-04 Havoc Pennington <hp@pobox.com>
10114 * test/data/auth/*: adapt to changes
10116 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10117 USERID_BASE64 and change USERNAME_BASE64 to put in username not
10120 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10121 more stuff from being in a context name, to make the protocol
10122 simpler to deal with
10124 * dbus/dbus-errors.c (dbus_error_has_name): new function
10125 (dbus_error_is_set): new function
10127 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10128 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10130 * dbus/dbus-connection.c (dbus_connection_flush): also read
10131 messages during a flush operation
10133 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10135 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10137 * configure.in: Check for gethostbyname on Solaris.
10139 * dbus/dbus-transport.c: (_dbus_transport_open):
10140 Remove duplicate "tcp" entry.
10142 * doc/dbus-specification.sgml:
10143 Clarify some things.
10145 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10147 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10148 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10149 (_dbus_keyring_test):
10150 * dbus/dbus-md5.c: (_dbus_md5_compute):
10151 * dbus/dbus-sha.c: (_dbus_sha_compute):
10154 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10156 * README: Add some things.
10158 2003-03-04 Anders Carlsson <andersca@codefactory.se>
10160 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10161 after case DBUS_TYPE_BOOELAN.
10163 2003-03-02 Havoc Pennington <hp@pobox.com>
10165 * test/break-loader.c (randomly_set_extreme_ints): add test that
10166 sets really huge and small integers
10168 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10169 that length of boolean array fits in the string, and that
10170 string has room for boolean value in single-bool case.
10172 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10173 optional value to "ALIGN" command which is what to fill the
10176 * test/data/valid-messages/no-padding.message: add regression
10177 test for the message padding problem
10179 2003-03-02 Havoc Pennington <hp@pobox.com>
10181 * dbus/dbus-message.c (decode_header_data): fix to always init
10182 message_padding, from Benjamin Dauvergne
10184 2003-03-02 Havoc Pennington <hp@pobox.com>
10186 * configure.in: 0.5
10190 2003-03-01 Joe Shaw <joe@assbarn.com>
10192 * configure.in: Check for "struct cmsgcred" and try to access its
10193 members for BSD-like unices.
10195 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10196 _dbus_read_credentials_unix_socket().
10197 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10198 read() for reading the credential byte off the unix socket. Use
10199 struct cmsgcred on systems that support it.
10201 2003-02-27 Alexander Larsson <alexl@redhat.com>
10203 * glib/Makefile.am:
10205 Make gthreads-2.0 dependency optional. Don't build thread test if
10208 2003-02-27 Havoc Pennington <hp@pobox.com>
10210 * dbus/dbus-connection.c
10211 (dbus_connection_send_message_with_reply_and_block): fix doh!
10212 doh! doh! bug that resulted in never removing a reply from the
10213 queue, no wonder we called get_reply_serial so much ;-)
10215 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10216 and client serial instead of demarshaling them every time
10218 2003-02-27 Havoc Pennington <hp@pobox.com>
10220 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10221 more inlined, using dbus-string-private.h, speeds things up
10224 * dbus/dbus-string.c (_dbus_string_free): apply align offset
10225 when freeing the string
10226 (_dbus_string_steal_data): fix for align offset
10227 (undo_alignment): new function
10229 2003-02-26 Havoc Pennington <hp@redhat.com>
10231 All kinds of audit fixes from Owen, plus initial attempt to
10232 handle unaligned memory returned from malloc.
10234 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10235 leave room for align_offset and nul byte
10236 (fixup_alignment): function to track an align_offset and
10237 ensure real->str is aligned
10238 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10239 to allow a nul byte plus align offset
10240 (_dbus_string_lock): fix overflow issue
10241 (_dbus_string_init_const_len): add assertions on sanity of len,
10242 assign allocated to be ALLOCATION_PADDING larger than len
10243 (set_length): fixup the overflow handling
10244 (_dbus_string_get_data_len): fix overflow in assertion
10245 (open_gap): detect overflow in size of gap to be opened
10246 (_dbus_string_lengthen): add overflow check
10247 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10248 (_dbus_string_append): add overflow check
10249 (_dbus_string_append_unichar): overflow
10250 (_dbus_string_delete): fix overflow in assertion
10251 (_dbus_string_copy_len): overflow in assertion
10252 (_dbus_string_replace_len): overflows in assertions
10253 (_dbus_string_find): change to implement in terms of
10254 _dbus_string_find_to
10255 (_dbus_string_find_to): assorted fixage
10256 (_dbus_string_equal_c_str): assert c_str != NULL,
10257 fix logic so the function works
10258 (_dbus_string_ends_with_c_str): fix overflow thingy
10259 (_dbus_string_base64_encode): overflow fix
10260 (_dbus_string_validate_ascii): overflow
10261 (_dbus_string_validate_nul): overflow
10263 2003-02-26 Havoc Pennington <hp@redhat.com>
10265 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10267 2003-02-26 Alexander Larsson <alexl@redhat.com>
10270 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10272 * dbus/dbus-connection.c:
10273 * dbus/dbus-connection.h:
10274 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10275 Add dbus_connection_set_wakeup_main_function and use it when queueing
10276 incoming and outgoing messages.
10279 * dbus/dbus-dataslot.c:
10280 Threadsafe usage of DBusDataSlotAllocator
10282 * dbus/dbus-message.c: (dbus_message_get_args_iter):
10285 * dbus/dbus-server-unix.c:
10288 * glib/dbus-gmain.c:
10289 Implement the new wakeup functions for glib.
10291 * glib/Makefile.am:
10292 * glib/test-thread-client.c:
10293 * glib/test-thread-server.c:
10294 * glib/test-thread.h:
10295 Initial cut at some thread test code. Not really done yet.
10297 2003-02-26 Havoc Pennington <hp@pobox.com>
10299 * dbus/dbus-connection.c
10300 (dbus_connection_send_message_with_reply_and_block): fix crash
10301 where we ref'd the outgoing message instead of the returned reply
10303 * dbus/dbus-transport-unix.c (do_authentication): check read watch
10304 at the end of this function, so if we didn't need to read for
10305 authentication, we reinstall it for receiving messages
10307 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10308 a NULL sender for peer-to-peer case
10310 * dbus/dbus-transport-unix.c (check_read_watch): handle
10311 !authenticated case correctly
10313 * glib/dbus-gmain.c: add support for DBusServer
10315 * dbus/dbus-server.c: add data slot support
10317 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10318 return values and handle errors
10320 * dbus/dbus-dataslot.c: factor out the data slot stuff from
10323 * Doxyfile.in (INPUT): add glib subdir
10325 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10326 setup_with_g_main instead of hookup_with_g_main; write docs
10328 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10330 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10331 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10332 * dbus/dbus-message.c: (dbus_message_append_boolean),
10333 (dbus_message_append_boolean_array),
10334 (dbus_message_get_args_valist), (_dbus_message_test):
10335 * dbus/dbus-message.h:
10336 * doc/dbus-specification.sgml:
10337 Various fixes as pointed out by Havoc.
10339 * test/data/invalid-messages/bad-boolean-array.message:
10340 * test/data/invalid-messages/bad-boolean.message:
10341 Add invalid boolean value test cases.
10343 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10345 * dbus/dbus-internals.c: (_dbus_type_to_string):
10346 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10347 (_dbus_marshal_validate_arg):
10348 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10349 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10350 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10351 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10352 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10353 (dbus_message_iter_get_double),
10354 (dbus_message_iter_get_boolean_array), (message_iter_test):
10355 * dbus/dbus-message.h:
10356 * dbus/dbus-protocol.h:
10357 * doc/dbus-specification.sgml:
10358 * test/data/valid-messages/lots-of-arguments.message:
10359 Add support for boolean and boolean array types.
10361 2003-02-23 Havoc Pennington <hp@pobox.com>
10363 * dbus/dbus-keyring.c: finish most of this implementation and
10366 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10367 these barf if the error isn't cleared to NULL
10369 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10370 (_dbus_create_directory): new function
10372 * dbus/dbus-errors.c (dbus_set_error): fix warning
10374 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10375 (_dbus_string_hex_decode): new function
10376 (test_hex_roundtrip): test code
10378 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10380 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10382 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10383 the save-to-temp/rename trick to atomically write the new file
10384 (_dbus_string_parse_uint): new function
10386 2003-02-22 Havoc Pennington <hp@pobox.com>
10388 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10390 2003-02-22 Havoc Pennington <hp@pobox.com>
10392 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10393 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10395 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10397 * dbus/test/data/sha-1: add US government test suite for SHA-1
10399 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10401 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10402 Make string arrays NULL-terminated.
10404 * dbus/dbus-memory.c: (dbus_free_string_array):
10405 * dbus/dbus-memory.h:
10406 New function for freeing NULL-terminated string arrays.
10408 * dbus/dbus-message-builder.c: (append_quoted_string),
10409 (_dbus_message_data_load):
10410 Add support for array types.
10412 * dbus/dbus-message.c: (check_message_handling):
10413 Add more types as test cases.
10415 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10416 (_dbus_string_parse_double):
10417 Add the start offset to the end offset.
10419 * test/data/valid-messages/lots-of-arguments.message:
10420 New test message with lots of arguments.
10422 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10424 * dbus/dbus-message.c: (dbus_message_append_nil),
10425 (dbus_message_append_int32), (dbus_message_append_uint32),
10426 (dbus_message_append_double), (dbus_message_append_string),
10427 (dbus_message_append_int32_array),
10428 (dbus_message_append_uint32_array),
10429 (dbus_message_append_double_array),
10430 (dbus_message_append_byte_array),
10431 (dbus_message_append_string_array):
10432 Fix all out-of-memory handling in these functions.
10434 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10436 * dbus/dbus-message.c: (dbus_message_append_nil):
10439 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10441 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10442 (dbus_message_append_nil), (dbus_message_append_int32_array),
10443 (dbus_message_append_uint32_array),
10444 (dbus_message_append_double_array),
10445 (dbus_message_append_byte_array),
10446 (dbus_message_append_string_array), (dbus_message_get_args_valist),
10447 (dbus_message_iter_get_int32_array),
10448 (dbus_message_iter_get_uint32_array),
10449 (dbus_message_iter_get_double_array),
10450 (dbus_message_iter_get_byte_array),
10451 (dbus_message_iter_get_string_array):
10453 * dbus/dbus-message.h:
10454 Add functions for appending and getting arrays.
10456 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10458 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10459 element size at least 8 bytes, fixes mempool tests on
10462 2003-02-20 Alexander Larsson <alexl@redhat.com>
10464 * dbus/dbus-transport-unix.c (unix_do_iteration):
10465 Unlock the connection mutex during a blocking select call.
10466 Add todo about how we need a way to wake up the select.
10468 * dbus/dbus-connection-internal.h:
10469 * dbus/dbus-connection.c:
10470 Add _dbus_connection_lock and _dbus_connection_unlock.
10472 2003-02-19 Havoc Pennington <hp@pobox.com>
10474 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10475 Doxyfile.in, not Doxyfile
10477 * dbus/dbus-keyring.c: do some hacking on this
10479 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10481 * dbus/dbus-errors.c (dbus_set_error_const): do not call
10483 (dbus_set_error): remove dbus_error_init, check for message ==
10484 NULL *before* we sprintf into it, and add @todo about including
10485 system headers in this file
10487 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10489 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10491 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10492 get various bits of user information based on either username
10494 (_dbus_homedir_from_username): new function
10496 2003-02-19 Anders Carlsson <andersca@codefactory.se>
10499 Add check for nonposix getpwnam_r
10501 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10502 Align the pool element size to a sizeof (void *) boundary.
10504 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10505 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10506 General Solaris fixes.
10508 * test/data/valid-messages/simplest-manual.message:
10509 Explicitly state that we want little-endian packing.
10511 2003-02-19 Mikael Hallendal <micke@codefactory.se>
10513 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10515 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10516 Added to create a transport connecting using a tcp/ip socket.
10518 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10519 to a tcp socket at given host and port.
10520 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10523 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10525 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10526 Added to create a server listening on a TCP/IP socket.
10528 2003-02-19 Havoc Pennington <hp@pobox.com>
10530 Throughout: mop up all the Doxygen warnings and undocumented
10533 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10534 to search any paths.
10536 * dbus/dbus-threads.c: move global mutex initializers to
10537 dbus-internals.h, multiple prototypes was confusing doxygen
10538 besides being kind of ugly
10540 * Doxyfile (PREDEFINED): have Doxygen define
10541 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10542 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10543 (do not abuse the feature! it's for stuff like the autogenerated
10544 macros in dbus-md5.c, not just for things you don't feel like
10547 2003-02-18 Havoc Pennington <hp@pobox.com>
10549 * dbus/dbus-string.c (_dbus_string_zero): new function
10551 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10552 wrap it in some dbus-friendly API
10554 * dbus/dbus-types.h: add 16-bit types
10556 2003-02-18 Joe Shaw <joe@assbarn.com>
10558 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10559 credentials from our currently running process.
10560 (get_word): Fix a buglet where we were copying the entire length
10561 instead of relative to our position.
10563 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10564 keys on the stack... it's 640k of data.
10566 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10567 read the credentials byte off the socket, even if we don't have
10569 (_dbus_poll): Implement poll() using select() for systems which
10572 * glib/test-dbus-glib.c (main): Print out an error if no
10573 parameters are given.
10575 * test/data/auth/fallback.auth-script: Added. Tests that a client
10576 can fallback to a secondary auth mechanism if the first fails.
10578 2003-02-18 Havoc Pennington <hp@pobox.com>
10580 * AUTHORS: add Alex
10582 2003-02-17 Havoc Pennington <hp@pobox.com>
10584 * doc/dbus-specification.sgml: lots of cosmetic
10585 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10586 env variable to DBUS_BUS_ADDRESS, s/client/application/,
10587 s/server/bus/ (except in authentication section). Add a section
10588 "Message Bus Message Routing"
10590 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
10596 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10598 * doc/dbus-specification.sgml:
10599 Specification updates.
10601 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10603 * bus/activation.c: (bus_activation_init), (child_setup),
10604 (bus_activation_activate_service):
10605 * bus/activation.h:
10606 * bus/main.c: (main):
10607 Set DBUS_ADDRESS environment variable.
10609 * dbus/dbus-errors.c: (dbus_set_error):
10610 Don't use va_copy since that's a C99 feature.
10612 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10613 (_dbus_spawn_async):
10614 * dbus/dbus-sysdeps.h:
10615 Add child_setup_func to _dbus_spawn_async.
10617 * doc/dbus-specification.sgml:
10618 Update specification.
10620 * test/spawn-test.c: (setup_func), (main):
10623 2003-02-17 Alexander Larsson <alexl@redhat.com>
10625 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10628 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10632 * doc/dbus-test-plan.sgml:
10633 Add test plan document.
10635 * test/Makefile.am:
10638 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10640 * dbus/dbus-message.c: (decode_header_data),
10641 (_dbus_message_loader_return_buffer):
10642 Set the header padding amount when loading a message.
10644 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10646 * bus/dispatch.c: (send_one_message):
10647 Only send broadcast messages to registered connections.
10649 * dbus/dbus-message.c: (dbus_message_name_is):
10650 * dbus/dbus-message.h:
10651 New convenience function.
10653 * dbus/dbus-transport-debug.c: (do_reading):
10654 Only dispatch one message per run.
10656 * test/Makefile.am:
10657 * test/bus-test.c: (new_connection_callback), (die),
10658 (test_hello_client1_handler), (test_hello_client2_handler),
10659 (test_hello_replies), (main):
10661 * test/bus-test-loop.[ch]:
10664 2003-02-16 Havoc Pennington <hp@pobox.com>
10666 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10667 backward conditional
10669 2003-02-16 Alexander Larsson <alexl@redhat.com>
10671 * dbus/dbus-connection.c:
10672 Implement sent_message_with_reply. (with_reply_and block is still
10674 Made dispatch_message not lose message if OOM.
10676 * dbus/dbus-errors.h:
10677 Add NoReply error (for reply timeouts).
10679 2003-02-16 Alexander Larsson <alexl@redhat.com>
10681 * dbus/dbus-hash.c (_dbus_hash_table_unref):
10682 Actually free keys and values when destroying hashtable.
10684 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10686 * dbus/dbus-auth.c: (client_try_next_mechanism):
10689 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10690 Return TRUE if there's no thread implementation around.
10692 * glib/dbus-gmain.c: (free_source),
10693 (dbus_connection_hookup_with_g_main):
10694 Make sure to remove the GSource when the connection is finalized.
10696 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10698 * bus/dispatch.c: (bus_dispatch_message_handler):
10699 * dbus/dbus-errors.h:
10700 Return an error if someone tries to send a message to a service
10701 that doesn't exist.
10703 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10705 * bus/activation.c: (load_directory), (bus_activation_init),
10706 (bus_activation_activate_service):
10707 * bus/activation.h:
10709 (bus_driver_handle_activate_service), (bus_driver_handle_message):
10710 More work on the activation handling.
10712 * dbus/dbus-errors.h:
10713 Add some error messages
10715 * dbus/dbus-message.c: (dbus_message_new_error_reply):
10716 * dbus/dbus-message.h:
10717 New function that creates an error message.
10719 * dbus/dbus-protocol.h:
10720 Add ACTIVATE_SERVER message.
10722 * dbus/dbus-server-unix.c: (unix_handle_watch),
10723 (_dbus_server_new_for_domain_socket):
10724 Call _dbus_fd_set_close_on_exec.
10726 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10727 (_dbus_spawn_async), (_dbus_disable_sigpipe),
10728 (_dbus_fd_set_close_on_exec):
10729 * dbus/dbus-sysdeps.h:
10730 Add _dbus_fd_set_close_on exec function. Also add function that checks
10731 that all open fds are set to close-on-exec and warns otherwise.
10733 * dbus/dbus-transport-unix.c:
10734 (_dbus_transport_new_for_domain_socket):
10735 Call _dbus_fd_set_close_on_exec.
10737 2003-02-16 Havoc Pennington <hp@pobox.com>
10739 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10740 allow people to avoid setting SIGPIPE to SIG_IGN
10741 (_dbus_connection_new_for_transport): disable SIGPIPE unless
10742 we've been asked not to
10744 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10746 * dbus/dbus-list.c: (_dbus_list_append_link),
10747 (_dbus_list_prepend_link):
10748 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10752 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10755 * bus/activation.c: (bus_activation_entry_free),
10756 (add_desktop_file_entry), (load_directory), (bus_activation_init):
10757 * bus/activation.h:
10758 * bus/main.c: (main):
10759 Add simple activation support, doesn't work yet though.
10761 2003-02-15 Zack Rusin <zack@kde.org>
10763 * qt/dbus-qthread.cpp: small casting fix
10765 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10767 * dbus/dbus-errors.c: (dbus_set_error):
10768 * dbus/dbus-errors.h:
10769 Add a few errors and make dbus_set_error void.
10771 * dbus/dbus-sysdeps.c:
10772 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10773 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10774 * dbus/dbus-sysdeps.h:
10775 Add _dbus_spawn_async.
10777 * test/spawn-test.c: (main):
10778 Test for _dbus_spawn_async.
10780 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10782 * dbus/dbus-internals.h:
10783 Fix build without tests.
10785 * dbus/dbus-list.c: (alloc_link):
10786 Fix a segfault when a malloc fails.
10788 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10789 (dbus_malloc0), (dbus_realloc):
10790 Add support for malloc debugging.
10792 2003-02-15 Alexander Larsson <alexl@redhat.com>
10794 * dbus/dbus-threads.c:
10795 * dbus/dbus-threads.h:
10796 Add condvars. Remove static mutext from API.
10797 Implement static mutexes by initializing them from threads_init.
10799 * glib/dbus-gthread.c:
10800 * qt/dbus-qthread.cpp:
10801 Update with the thread api changes.
10804 * dbus/dbus-list.c:
10805 * dbus/dbus-list.h:
10806 Turn StaticMutex into normal mutex + init function.
10807 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10808 _dbus_list_append_link, _dbus_list_prepend_link
10811 * dbus/dbus-sysdeps.c:
10812 * dbus/dbus-sysdeps.h:
10813 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10814 _dbus_atomic_dec. Only slow fallback implementation at the moment.
10816 * dbus/dbus-protocol.h:
10817 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10819 * dbus/dbus-message.c:
10820 Make ref/unref atomic.
10823 * dbus/dbus-connection-internal.h:
10824 * dbus/dbus-connection.c:
10825 * dbus/dbus-connection.h:
10827 Change _peek to _borrow,_return & _steal_borrowed.
10828 Change disconnect callback to event.
10829 Make dbus_connection_dispatch_messages reentrant.
10831 * dbus/dbus-transport.c:
10832 Don't ref the connection on calls to the transport
10835 * dbus/dbus-message-handler.c:
10838 * glib/dbus-gmain.c:
10839 Don't use peek_message anymore
10841 * test/Makefile.am:
10842 * test/debug-thread.c:
10843 * test/debug-thread.h:
10844 Simple thread implementation that asserts() on deadlocks in
10845 single-threaded code.
10848 (main) Call debug_threads_init.
10851 Use disconnect message instead of disconnect callback.
10853 * bus/connection.c:
10854 * bus/connection.h:
10855 Don't call dbus_connection_set_disconnect_function. Instead export
10856 bus_connection_disconnect.
10859 Call bus_connection_disconnect when we get a disconnected message.
10861 2003-02-15 Havoc Pennington <hp@pobox.com>
10863 * dbus/dbus-message.c (dbus_message_new): fool around with the
10866 2003-02-14 Havoc Pennington <hp@pobox.com>
10868 * dbus/dbus-mempool.c: fail if the debug functions so indicate
10870 * dbus/dbus-memory.c: fail if the debug functions indicate we
10873 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
10874 (_dbus_decrement_fail_alloc_counter): debug functions to
10875 simulate memory allocation failures
10877 2003-02-14 Havoc Pennington <hp@pobox.com>
10879 * dbus/dbus-errors.h (struct DBusError): add a word of padding
10882 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10884 * bus/driver.c: (bus_driver_handle_hello):
10886 * bus/services.c: (bus_service_lookup):
10887 Reorder message sending so we get a more sane order.
10889 * test/bus-test.c: (message_handler):
10892 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10894 * bus/driver.c: (bus_driver_send_service_deleted),
10895 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10896 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10897 (bus_driver_send_welcome_message),
10898 (bus_driver_handle_list_services),
10899 (bus_driver_handle_acquire_service),
10900 (bus_driver_handle_service_exists):
10901 * dbus/dbus-bus.c: (dbus_bus_register_client),
10902 (dbus_bus_acquire_service), (dbus_bus_service_exists):
10903 * dbus/dbus-errors.c: (dbus_result_to_string):
10904 * dbus/dbus-errors.h:
10905 * dbus/dbus-message.c: (dbus_message_append_args),
10906 (dbus_message_append_args_valist), (dbus_message_get_args),
10907 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
10908 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
10909 (dbus_message_iter_get_byte_array),
10910 (dbus_message_iter_get_string_array), (message_iter_test),
10911 (check_message_handling), (_dbus_message_test):
10912 * dbus/dbus-message.h:
10913 * test/bus-test.c: (main):
10914 Change fields to arguments in messages, so that they won't be
10915 confused with header fields.
10917 * glib/test-dbus-glib.c: (main):
10918 Remove append_fields from hello message.
10920 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10922 * dbus/dbus-errors.c:
10923 * dbus/dbus-message.c:
10924 * dbus/dbus-string.c:
10925 Documentation fixes.
10927 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10929 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
10931 Implement support for timeouts in dbus-glib.
10933 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10935 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10936 * dbus/dbus-message.c: (process_test_subdir):
10937 * test/break-loader.c: (find_breaks_based_on):
10938 Plug some memory leaks.
10940 2003-02-13 Richard Hult <rhult@codefactory.se>
10942 * bus/main.c: Fix build.
10944 * dbus/dbus-errors.h:
10945 * dbus/dbus-errors.c: Fix copyright for Anders.
10947 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10952 * bus/connection.c: (bus_connection_foreach):
10955 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
10956 (unescape_string), (new_section), (parse_section_start),
10957 (parse_key_value), (report_error), (bus_desktop_file_load),
10958 (bus_desktop_file_get_string):
10959 * bus/desktop-file.h:
10960 Use DBusError for error reporting.
10962 * bus/dispatch.c: (send_one_message),
10963 (bus_dispatch_message_handler):
10964 * bus/driver.c: (bus_driver_send_service_deleted),
10965 (bus_driver_send_service_created), (bus_driver_send_service_lost),
10966 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
10967 (bus_driver_send_welcome_message),
10968 (bus_driver_handle_list_services),
10969 (bus_driver_handle_acquire_service),
10970 (bus_driver_handle_service_exists):
10971 * bus/loop.c: (bus_loop_run):
10973 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
10975 * bus/utils.c: (bus_wait_for_memory):
10977 New files with general utility functions.
10979 * dbus/dbus-internals.h:
10980 Remove _DBUS_HANDLE_OOM.
10982 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10984 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
10985 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
10986 * dbus/dbus-errors.h:
10987 Add DBusError structure.
10989 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10991 * test/data/valid-messages/standard-acquire-service.message:
10992 * test/data/valid-messages/standard-hello.message:
10993 * test/data/valid-messages/standard-list-services.message:
10994 * test/data/valid-messages/standard-service-exists.message:
10995 Add some standard messages.
10997 2003-02-13 Anders Carlsson <andersca@codefactory.se>
10999 * bus/driver.c: (bus_driver_send_welcome_message),
11000 (bus_driver_handle_list_services),
11001 (bus_driver_handle_acquire_service),
11002 (bus_driver_handle_service_exists), (bus_driver_handle_message):
11003 Update for API changes in libdbus.
11005 * dbus/dbus-message.c: (dbus_message_new_reply):
11006 * dbus/dbus-message.h:
11007 Remove the name argument. The spec states that replies shouldn't
11010 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11012 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11013 (report_error), (bus_desktop_file_load), (lookup_section),
11014 (lookup_line), (bus_desktop_file_get_raw),
11015 (bus_desktop_file_get_string):
11016 * bus/desktop-file.h:
11017 Some fixes, and new functions for getting a key value from a section.
11019 2003-02-13 Havoc Pennington <hp@pobox.com>
11021 * test/data/auth/fail-after-n-attempts.auth-script: new test
11023 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11026 2003-02-13 Havoc Pennington <hp@pobox.com>
11028 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11029 dbus_credentials_match were backward
11031 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11032 NO_CREDENTIALS and ROOT_CREDENTIALS
11034 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11035 into here. Never process more commands after we've reached an
11036 end state; store further data as unused bytes.
11038 * test/data/auth/*: add more auth tests
11040 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11041 command to match exact string and EXPECT_UNUSED to match unused
11044 * test/Makefile.am (dist-hook): fix to dist all the test stuff
11046 2003-02-12 Havoc Pennington <hp@pobox.com>
11048 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11049 \r off of popped lines
11051 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11054 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11057 2003-02-12 Havoc Pennington <hp@pobox.com>
11059 * dbus/Makefile.am: remove break-loader from the build, since it
11062 * configure.in: add --enable-gcov to turn on coverage profiling
11063 flags and disable optimization
11065 2003-02-10 Havoc Pennington <hp@pobox.com>
11067 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11068 initial cut at test framework for DBusAuth from laptop.
11069 Doesn't quite work yet but it compiles and I need to get
11070 it off the 266mhz laptop. ;-)
11072 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11073 fix a memleak in error case
11075 2003-02-12 Anders Carlsson <andersca@codefactory.se>
11078 * bus/desktop-file.c:
11079 * bus/desktop-file.h:
11080 Add a desktop file parser.
11082 2003-02-11 Zack Rusin <zack@kde.org>
11084 * qt/message.[h|cpp]: sample implementation
11085 of the KDE wrapper for DBusMessage
11087 2003-02-09 Zack Rusin <zack@kde.org>
11089 * test/bus-test.c: make_it_compile
11090 * doc/dbus-specification.sgml: minimal semantic fix
11092 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11098 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11100 * dbus/Makefile.am:
11101 * dbus/dbus-break-loader.c:
11102 * test/Makefile.am:
11103 * test/break-loader.c:
11104 Move dbus-break-loader to test/ and rename it to break-loader.
11106 2003-02-02 Havoc Pennington <hp@pobox.com>
11108 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11109 for code to manage cookies in your home directory
11111 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11113 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11114 to authenticate, then disconnect the client.
11116 2003-02-03 Alexander Larsson <alexl@redhat.com>
11118 * dbus/dbus-message.c (dbus_message_append_fields):
11121 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11123 * doc/dbus-specification.sgml:
11124 Update address format section.
11126 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11128 * test/Makefile.am:
11129 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11130 (message_handler), (new_connection_callback), (loop_quit),
11131 (loop_run), (main):
11134 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11136 * bus/driver.c: (bus_driver_handle_service_exists):
11137 Simplify the code a bit.
11139 * dbus/dbus-bus.c: (dbus_bus_service_exists):
11142 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11145 Add libdbus-daemon.la and link to it.
11147 2003-02-01 James Willcox <jwillcox@gnome.org>
11149 * bus/driver.c: (bus_driver_handle_own_service):
11150 Actually include the service reply code in the message.
11152 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11154 * bus/driver.c: (bus_driver_handle_service_exists):
11155 Don't unref the incoming message.
11157 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11159 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11161 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11163 * dbus/dbus-server.c: (dbus_server_listen):
11164 * dbus/dbus-transport.c: (_dbus_transport_open):
11165 ifdef out the calls to the debug transport and server.
11167 2003-02-02 Alexander Larsson <alexl@redhat.com>
11169 * dbus/dbus-watch.c (dbus_watch_get_flags):
11170 Add note in the docs that ERROR or HANGUP won't be returned
11171 and are assumed always on.
11173 * glib/dbus-gmain.c (add_watch):
11174 Always add IO_ERR | IO_HUP
11176 * dbus/dbus-message.h:
11177 Add semicolon after dbus_message_iter_get_string_array().
11178 Makes qt code build again
11180 2003-02-01 Anders Carlsson <andersca@codefactory.se>
11182 * bus/driver.c: (create_unique_client_name),
11183 (bus_driver_handle_hello):
11184 Don't take a name, just use a numeric id to identify
11187 * dbus/Makefile.am:
11188 * dbus/dbus-bus.c: (dbus_bus_register_client),
11189 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11191 Add new convenience functions for communicating with the bus.
11193 * dbus/dbus-message.h:
11195 * dbus/dbus-protocol.h:
11198 2003-02-01 Alexander Larsson <alexl@redhat.com>
11200 * dbus/dbus-message.c (dbus_message_append_fields):
11201 Add some more doc comments.
11203 2003-02-01 Havoc Pennington <hp@pobox.com>
11205 * dbus/dbus-break-loader.c (randomly_modify_length): change
11206 a 4-byte value in the message as if it were a length
11208 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11209 execute bit on saved files
11211 2003-02-01 Havoc Pennington <hp@pobox.com>
11213 * dbus/dbus-break-loader.c (main): new program to find messages
11214 that break the loader.
11216 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11217 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11219 * dbus/dbus-string.c (_dbus_string_set_byte): new
11221 2003-01-31 Havoc Pennington <hp@pobox.com>
11223 * dbus/dbus-message.c: refactor the test code to be more general,
11224 in preparation for writing a "randomly permute test cases to
11225 try to break the loader" program.
11227 2003-01-31 Havoc Pennington <hp@pobox.com>
11229 * doc/dbus-specification.sgml: work on the specification
11231 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11232 the protocol version of the message.
11234 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11235 no longer specifies that.
11236 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11239 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11240 "break" for DBUS_TYPE_NIL, remove @todo
11242 2003-01-31 Havoc Pennington <hp@pobox.com>
11244 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11245 just set_is_error/get_is_error as this is a commonly-used
11246 function, and write docs.
11248 2003-01-31 Anders Carlsson <andersca@codefactory.se>
11250 * dbus/dbus-address.c: (dbus_address_entry_free):
11251 Free key and value lists.
11253 * dbus/dbus-internals.c: (_dbus_type_to_string):
11254 Add the types we didn't have.
11256 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11257 (_dbus_marshal_validate_arg):
11260 * dbus/dbus-message.c: (dbus_message_set_sender):
11261 Remove todo about being able to set sender to NULL.
11263 (dbus_message_set_is_error_reply),
11264 (dbus_message_get_is_error_reply):
11265 * dbus/dbus-message.h:
11268 * dbus/dbus-protocol.h:
11269 Add error reply flag.
11271 * test/data/valid-messages/opposite-endian.message:
11272 Add NIL type to test.
11274 2003-01-31 Havoc Pennington <hp@pobox.com>
11276 * doc/dbus-specification.sgml: fully specify the header. Add
11277 flags and major protocol version, and change header/body len to
11280 * dbus/dbus-message-builder.c (append_saved_length): append length
11283 * dbus/dbus-message.c (dbus_message_create_header): change header
11284 length and body length to unsigned. Add the new fields from the
11286 (_dbus_message_loader_return_buffer): unsigned header/body len
11288 2003-01-30 Havoc Pennington <hp@pobox.com>
11290 * dbus/dbus-auth.c: rework to use only REJECTED, no
11293 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11294 use REJECTED, suggested by Mark McLoughlin
11296 2003-01-30 Havoc Pennington <hp@pobox.com>
11298 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11299 a better way to report errors here. e.g. "unix address lacks
11300 path" or something. also "no such file" when the path doesn't
11303 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11305 (dbus_parse_address): add @todo about documenting address format,
11306 and allowing , and ; to be escaped
11308 2003-01-30 Anders Carlsson <andersca@codefactory.se>
11310 * dbus/Makefile.am:
11311 Add dbus-address.[ch]
11313 * dbus/dbus-address.c: (dbus_address_entry_free),
11314 (dbus_address_entries_free), (create_entry),
11315 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11316 (dbus_parse_address), (_dbus_address_test):
11317 * dbus/dbus-address.h:
11318 New files for dealing with address parsing.
11320 * dbus/dbus-connection.c:
11321 Document timeout functions.
11323 * dbus/dbus-message.c:
11324 Document dbus_message_new_from_message.
11326 * dbus/dbus-server-debug.c:
11329 * dbus/dbus-server.c: (dbus_server_listen):
11330 Parse address and use correct server implementation.
11332 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11333 * dbus/dbus-string.h:
11334 New function with test.
11336 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11337 * dbus/dbus-test.h:
11340 * dbus/dbus-transport-debug.c:
11343 * dbus/dbus-transport.c: (_dbus_transport_open):
11344 Parse address and use correct transport implementation.
11346 2003-01-30 Havoc Pennington <hp@pobox.com>
11348 * dbus/dbus-message.c: use message->byte_order instead of
11349 DBUS_COMPILER_BYTE_ORDER throughout.
11350 (dbus_message_create_header): pad header to align the
11351 start of the body of the message to 8-byte boundary
11353 * dbus/dbus-marshal.h: make all the demarshalers take const
11354 DBusString arguments.
11356 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11357 validate message args here, so we don't have to do slow validation
11358 later, and so we catch bad messages as they are incoming. Also add
11359 better checks on header_len and body_len. Also fill in
11360 message->byte_order
11362 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11363 implemented properly)
11364 (_dbus_string_validate_nul): new function to check all-nul
11366 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11367 get_arg_end_pos and remove all validation
11368 (_dbus_marshal_validate_arg): actually do validation here.
11370 2003-01-29 Havoc Pennington <hp@pobox.com>
11372 * dbus/dbus-message.c (check_message_handling): fix assertion
11373 failure on set_client_serial
11375 2003-01-28 Havoc Pennington <hp@pobox.com>
11377 * dbus/dbus-server-debug.c: Add doc section comments
11379 * dbus/dbus-transport-debug.c: add doc section comments
11381 2003-01-28 Havoc Pennington <hp@redhat.com>
11383 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11384 the reverse order from how I had it
11385 (_dbus_string_base64_encode): reverse encoding order. I was
11386 basically byteswapping everything during encoding.
11388 2003-01-28 Anders Carlsson <andersca@codefactory.se>
11390 * dbus/dbus-connection-internal.h:
11391 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11392 (_dbus_connection_remove_timeout):
11393 Add functions for adding and removing timeouts.
11395 * dbus/dbus-message.c: (dbus_message_new_from_message):
11396 Add new function that takes a message and creates an exact
11397 copy of it, but with the refcount set to 1.
11398 (check_message_handling):
11401 * dbus/dbus-server-protected.h:
11402 * dbus/dbus-server.c: (_dbus_server_init_base),
11403 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11404 (dbus_server_set_timeout_functions):
11405 (_dbus_server_remove_timeout):
11406 New functions so that a server can add and remove timeouts.
11408 (dbus_server_listen):
11409 Add commented out call to dbus_server_debug_new.
11411 * dbus/dbus-timeout.c: (_dbus_timeout_new):
11412 Actually set the handler, doh.
11414 * dbus/dbus-transport.c: (_dbus_transport_open):
11415 Add commented out call to dbus_transport_debug_client_new.
11417 * dbus/Makefile.am:
11418 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11420 2003-01-28 Havoc Pennington <hp@pobox.com>
11422 * dbus/dbus-message.c (check_message_handling): function to check
11423 on the loaded message, iterates over it etc.
11425 2003-01-28 Havoc Pennington <hp@pobox.com>
11427 * test/Makefile.am (dist-hook): fix make distdir
11429 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11431 2003-01-27 Havoc Pennington <hp@pobox.com>
11433 * dbus/dbus-mempool.c (time_for_size): replace printf with
11436 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11437 empty lines; fix the SAVE_LENGTH stuff to be
11438 START_LENGTH/END_LENGTH so it actually works; couple other
11441 * test/Makefile.am (dist-hook): add dist-hook for .message files
11443 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11444 can be constant or locked.
11445 (_dbus_string_free): allow freeing a const string as
11446 documented/intended
11448 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11450 * dbus/dbus-test-main.c (main): take an argument which is the
11451 directory containing test data
11453 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11454 argument to this and load all the messages in test/data/
11455 checking that they can be loaded or not loaded as appropriate.
11457 2003-01-27 Anders Carlsson <andersca@codefactory.se>
11459 * bus/dispatch.c: (bus_dispatch_message_handler):
11460 Dispatch messages sent to services.
11462 * bus/driver.c: (bus_driver_send_service_deleted),
11463 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11464 (bus_driver_send_service_acquired):
11465 Add helper functions for sending service related messages.
11467 (bus_driver_send_welcome_message):
11468 Send HELLO_REPLY instead of WELCOME.
11470 (bus_driver_handle_list_services):
11471 Send LIST_SERVICES_REPLY instead of SERVICES.
11473 (bus_driver_handle_own_service),
11474 (bus_driver_handle_service_exists):
11475 New message handlers.
11477 (bus_driver_handle_message):
11478 Invoke new message handlers.
11480 (bus_driver_remove_connection):
11481 Don't remove any services here since that's done automatically
11482 by bus_service_remove_owner now.
11485 New function signatures.
11487 * bus/services.c: (bus_service_add_owner):
11488 Send ServiceAcquired message if we're the only primary owner.
11490 (bus_service_remove_owner):
11491 Send ServiceAcquired/ServiceLost messages.
11493 (bus_service_set_prohibit_replacement),
11494 (bus_service_get_prohibit_replacement):
11495 Functions for setting prohibit replacement.
11497 (bus_service_has_owner):
11498 New function that checks if a connection is in the owner queue of
11502 Add new function signatures.
11504 * dbus/dbus-list.c: (_dbus_list_test):
11505 Add tests for _dbus_list_remove_last and traversing the list backwards.
11507 * dbus/dbus-list.h:
11508 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11509 go any further, so return NULL then.
11511 * dbus/dbus-protocol.h:
11512 Add new messages, service flags and service replies.
11514 2003-01-26 Havoc Pennington <hp@pobox.com>
11516 * dbus/dbus-message-builder.c: implement, completely untested.
11518 * test/data/*: add data to be used in testing.
11519 ".message" files are our simple loadable text format.
11520 ".message-raw" will be binary dumps of messages.
11522 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11524 2003-01-26 Havoc Pennington <hp@pobox.com>
11526 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11528 * dbus/dbus-errors.c (dbus_result_to_string): add
11531 * dbus/dbus-message-builder.c: new file, will contain code to load
11532 up messages from files. Not implemented yet.
11534 2003-01-26 Havoc Pennington <hp@pobox.com>
11536 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11537 the sender by setting to NULL
11539 2003-01-26 Havoc Pennington <hp@pobox.com>
11541 The unit tests pass, but otherwise untested. If it breaks, the
11542 tests should have been better. ;-)
11544 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11547 * dbus/dbus-message.c: redo everything so we maintain
11548 message->header as the only copy of the various fields.
11549 This avoids the possibility of out-of-memory in some cases,
11550 for example dbus_message_lock() can't run out of memory anymore,
11551 and avoids extra copying. Figured I may as well go ahead and do
11552 this since it was busted for dbus_message_lock to not return
11553 failure on OOM, and dbus_message_write_header was totally
11554 unchecked for OOM. Also fixed some random other bugs.
11556 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11557 that strings are nul-terminated. Also, end_pos can be equal
11558 to string length just not greater than, I think.
11559 (_dbus_marshal_set_int32): new function
11560 (_dbus_marshal_set_uint32): new function
11561 (_dbus_marshal_set_string): new function
11563 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11564 a warning, init timeout_list to NULL
11565 (dbus_connection_send_message): don't use uninitialized variable
11568 * dbus/dbus-string.c (_dbus_string_replace_len): new function
11570 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11572 * bus/driver.c: (bus_driver_handle_hello),
11573 (bus_driver_send_welcome_message):
11576 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11578 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11579 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11580 (dbus_connection_unref):
11581 * dbus/dbus-marshal.c: (_dbus_marshal_test):
11582 * dbus/dbus-message.c: (dbus_message_unref),
11585 (dbus_message_get_fields):
11586 Remove debugging printout.
11588 (_dbus_message_loader_return_buffer):
11589 Don't store the header string.
11591 (_dbus_message_test):
11594 2003-01-26 Richard Hult <rhult@codefactory.se>
11596 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11597 the file descriptor list, since it can change under us.
11599 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11601 * glib/dbus-gmain.c: (dbus_connection_prepare),
11602 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11603 (remove_watch), (dbus_connection_hookup_with_g_main):
11604 Rewrite the glib handling to use its own GSource instead of a
11605 GIOChannel so we can catch messages put in the queue while waiting
11608 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11611 * bus/connection.c: (connection_disconnect_handler),
11612 (connection_watch_callback), (bus_connection_setup):
11613 * bus/dispatch.c: (send_one_message),
11614 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11615 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11617 * bus/driver.c: (bus_driver_send_service_deleted),
11618 (bus_driver_send_service_created), (bus_driver_handle_hello),
11619 (bus_driver_send_welcome_message),
11620 (bus_driver_handle_list_services), (bus_driver_remove_connection),
11621 (bus_driver_handle_message):
11623 Refactor code, put the message dispatching in its own file. Use
11624 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11627 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11629 * dbus/dbus-internals.h:
11630 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11632 * dbus/dbus-message.c: (dbus_message_get_sender):
11633 * dbus/dbus-message.h:
11634 Implement dbus_message_get_sender.
11636 * dbus/dbus-protocol.h:
11637 Add message and service defines.
11639 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11641 * dbus/dbus-connection.c: (dbus_connection_send_message):
11642 * dbus/dbus-message-internal.h:
11643 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11644 (dbus_message_write_header):
11645 Remove _dbus_messag_unlock and don't set the client serial on a
11646 message if one already exists.
11648 2003-01-24 Havoc Pennington <hp@pobox.com>
11650 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11653 * bus/driver.c (bus_driver_handle_list_services): fix a leak
11656 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11658 * dbus/dbus-list.c: (alloc_link), (free_link):
11659 Use a memory pool for the links.
11661 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11663 * bus/connection.c: (bus_connection_foreach):
11664 * bus/connection.h:
11665 Add new bus_connection_foreach function.
11667 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11668 Add function that broadcasts a message to all clients.
11670 (bus_driver_send_service_created), (bus_driver_handle_hello),
11671 (bus_driver_send_welcome_message),
11672 (bus_driver_handle_list_services), (bus_driver_message_handler):
11673 Implement functions that take care of listing services, and notifying
11674 clients when new services are created.
11676 * bus/services.c: (bus_services_list):
11678 Add new function that returns an array of strings with the currently
11679 registered services.
11681 * glib/dbus-glib.h:
11682 * glib/dbus-gmain.c:
11683 Update copyright year.
11685 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11687 * dbus/dbus-connection.c: (dbus_connection_send_message):
11688 Unlock the message in case it was sent earlier.
11690 (dbus_connection_send_message_with_reply_and_block):
11691 Remove the reply message from the list.
11693 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11694 Set array_len and new_pos correctly.
11696 (_dbus_marshal_test):
11697 Remove debug output.
11699 * dbus/dbus-message-internal.h:
11700 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11701 New function that returns the reply serial.
11703 (_dbus_message_unlock):
11704 New function that unlocks a message and resets its header.
11706 (dbus_message_append_string_array),
11707 (dbus_message_get_fields_valist),
11708 (dbus_message_iter_get_field_type),
11709 (dbus_message_iter_get_string_array),
11710 (dbus_message_get_fields),
11711 (dbus_message_append_fields_valist):
11712 Handle string arrays.
11714 (dbus_message_set_sender):
11715 Make this function public since the bus daemon needs it.
11717 (decode_header_data):
11718 Set the reply serial to -1 initially.
11720 * dbus/dbus-message.h:
11721 Add dbus_message_set_sender.
11723 2003-01-24 Havoc Pennington <hp@pobox.com>
11725 * doc/dbus-specification.sgml: add some stuff
11727 2003-01-22 Havoc Pennington <hp@pobox.com>
11729 * doc/dbus-specification.sgml: Start to document the protocol.
11731 2003-01-22 Havoc Pennington <hp@pobox.com>
11733 * dbus/dbus-connection.c
11734 (dbus_connection_send_message_with_reply_and_block): add some @todo
11736 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11738 2003-01-21 Havoc Pennington <hp@pobox.com>
11740 (patch untested because can't compile)
11742 * bus/driver.c (create_unique_client_name): make this function
11743 never recycle client names. Also, caller should initialize
11746 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11748 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11750 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11751 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11752 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11753 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11754 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11755 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11756 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11757 * dbus/dbus-marshal.h:
11758 * dbus/dbus-protocol.h:
11759 Add support for marshalling and demarshalling integer, double
11762 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11767 * bus/connection.c: (connection_disconnect_handler):
11768 Remove the connection from the bus driver's list.
11770 (connection_watch_callback): Dispatch messages.
11772 (free_connection_data): Free connection name.
11774 (bus_connection_setup): Add connection to the bus driver's list.
11775 (bus_connection_remove_owned_service):
11776 (bus_connection_set_name), (bus_connection_get_name):
11777 Add functions for setting and getting the connection's name.
11779 * bus/connection.h:
11780 Add function headers.
11782 * bus/driver.c: (create_unique_client_name),
11783 (bus_driver_handle_hello_message),
11784 (bus_driver_send_welcome_message), (bus_driver_message_handler),
11785 (bus_driver_add_connection), (bus_driver_remove_connection):
11788 * bus/services.c: (bus_service_free):
11790 New file that handles communication and registreation with the bus
11793 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11795 * dbus/dbus-connection.c: (dbus_connection_send_message):
11796 Add a new client_serial parameter.
11798 (dbus_connection_send_message_with_reply):
11799 Remove a @todo since we've implemented the blocking function.
11801 (dbus_connection_send_message_with_reply_and_block):
11802 New function that sends a message and waits for a reply and
11803 then returns the reply.
11805 * dbus/dbus-connection.h:
11808 * dbus/dbus-errors.c: (dbus_result_to_string):
11809 * dbus/dbus-errors.h:
11810 Add new DBUS_RESULT.
11812 * dbus/dbus-message-internal.h:
11813 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11814 (_dbus_message_set_sender), (dbus_message_write_header),
11815 (dbus_message_new_reply), (decode_header_data),
11816 (_dbus_message_loader_return_buffer), (_dbus_message_test):
11817 * dbus/dbus-message.h:
11818 Add new functions that set the reply serial and sender.
11819 Also marshal and demarshal them correctly and add test.
11821 * dbus/dbus-protocol.h:
11822 Add new DBUS_MESSAGE_TYPE_SENDER.
11824 * glib/dbus-glib.h:
11825 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11826 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11827 (dbus_connection_hookup_with_g_main):
11828 * glib/test-dbus-glib.c: (main):
11829 Rewrite to use GIOChannel and remove the GSource crack.
11831 * test/echo-client.c: (main):
11832 * test/watch.c: (check_messages):
11833 Update for changed APIs
11835 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11837 * dbus/Makefile.am: Add dbus-timeout.[cħ]
11839 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11840 Create a DBusTimeoutList.
11841 (dbus_connection_set_timeout_functions): Add new function to
11842 set timeout callbacks
11844 * dbus/dbus-connection.h: Add public DBusTimeout API.
11846 * dbus/dbus-message.c: (dbus_message_get_service):
11847 * dbus/dbus-message.h: New function.
11849 * dbus/dbus-server.c: Fix small doc typo.
11851 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
11853 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11855 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
11856 of the string, just as long as specified.
11858 2003-01-19 Havoc Pennington <hp@pobox.com>
11860 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
11863 * dbus/dbus-server.c (dbus_server_set_max_connections)
11864 (dbus_server_get_max_connections, dbus_server_get_n_connections):
11865 keep track of current number of connections, and add API for
11866 setting a max (but haven't implemented enforcing the max yet)
11868 2003-01-18 Havoc Pennington <hp@pobox.com>
11870 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
11871 reading/writing if read_watch != NULL or write_watch != NULL.
11873 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
11874 the message loader code to actually load message->header and
11875 message->body into the newly-created message.
11877 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
11880 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
11881 (dbus_connection_get_max_message_size)
11882 (dbus_connection_set_max_live_messages_size)
11883 (dbus_connection_get_max_live_messages_size): implement some
11884 resource limitation functions
11886 * dbus/dbus-resources.c: new file implementing some of the
11887 resource limits stuff
11889 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
11890 missing docs, add @todo to handle OOM etc.
11892 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
11895 2003-01-18 Havoc Pennington <hp@pobox.com>
11897 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
11898 connection if it hasn't been already.
11900 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
11901 replace with DisconnectFunction.
11903 2003-01-18 Havoc Pennington <hp@pobox.com>
11905 Building --disable-verbose-mode --disable-asserts --disable-tests
11906 cuts the library from 112K to 45K or so
11908 * configure.in: check for varargs macro support,
11909 add --enable-verbose-mode, --enable-asserts.
11911 * dbus/dbus-internals.h (_dbus_assert): support
11912 DBUS_DISABLE_ASSERT
11913 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
11915 2003-01-18 Havoc Pennington <hp@pobox.com>
11917 * dbus/dbus-test.c: include config.h so that tests actually run
11919 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
11920 so the failure mode when that assumption fails will be plenty
11923 2003-01-18 Havoc Pennington <hp@pobox.com>
11925 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
11927 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
11930 * test/Makefile.am: don't use special variable "TESTS" for echo-*
11931 since we don't want to use those in make check
11933 2003-01-15 Havoc Pennington <hp@redhat.com>
11939 2003-01-15 Havoc Pennington <hp@redhat.com>
11941 * test/Makefile.am: fix so that test source code ends up in the
11942 distribution on make distcheck
11944 2003-01-15 Havoc Pennington <hp@redhat.com>
11950 2003-01-15 Havoc Pennington <hp@redhat.com>
11952 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
11953 fix build when --disable-tests
11955 * Makefile.am (EXTRA_DIST): put HACKING in here
11957 * HACKING: document procedure for making a tarball release.
11959 2003-01-14 Anders Carlsson <andersca@codefactory.se>
11961 * bus/connection.c: (connection_error_handler),
11962 (bus_connection_setup):
11963 * bus/main.c: (main):
11964 Make sure that the DBusConnectionData struct is NULLed
11965 out to prevent a segfault.
11967 * dbus/dbus-errors.c: (dbus_result_to_string):
11968 * dbus/dbus-errors.h:
11969 * dbus/dbus-message.c: (dbus_message_get_fields),
11970 (dbus_message_get_fields_valist), (_dbus_message_test):
11971 * dbus/dbus-message.h:
11972 Make dbus_message_get_fields return a result code so we can
11973 track invalid fields as well as oom.
11975 2003-01-11 Havoc Pennington <hp@pobox.com>
11977 * configure.in: change --enable-test/--enable-ansi action-if-given
11978 to enable_foo=$enableval instead of enable_foo=yes
11980 2003-01-08 Havoc Pennington <hp@pobox.com>
11982 * dbus/dbus-string.c (_dbus_string_align_length): new function
11984 * dbus/dbus-test-main.c: move main() for test app here
11986 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
11987 symbol to run tests, because dbus-test isn't in the main
11990 Code review nitpicks.
11992 * dbus/dbus-message.c (dbus_message_write_header): add newlines
11993 for people with narrow emacs ;-). Assert client_serial was filled
11994 in. Assert message->name != NULL.
11995 (dbus_message_append_fields): have "first_field_type" arg separate
11996 from va list, needed for C++ binding that also uses varargs IIRC
11997 and helps with type safety
11998 (dbus_message_new): add @todo about using DBusString to store
11999 service/name internally
12000 (dbus_message_new): don't leak ->service and ->name on OOM later
12002 (dbus_message_unref): free the service name
12003 (dbus_message_get_fields): same change to varargs
12004 i.e. first_field_type
12005 (_dbus_message_loader_return_buffer): assert that the message data
12006 is aligned (if not it's a bug in our code). Put in verbose griping
12007 about why we set corrupted = TRUE.
12008 (decode_header_data): add FIXME that char* is evil. Was going to
12009 add FIXME about evil locale-specific string.h strncmp, but just
12010 switched to wacky string-as-uint32 optimization. Move check for
12011 "no room for field name" above get_const_data_len() to avoid
12012 assertion failure in get_const_data_len if we have trailing 2
12013 bytes or the like. Check for service and name fields being
12014 provided twice. Don't leak service/name on error. Require field
12015 names to be aligned to 4 bytes.
12017 * dbus/dbus-marshal.c: move byte swap stuff to header
12018 (_dbus_pack_int32): uscore-prefix
12019 (_dbus_unpack_int32): uscore-prefix
12020 (_dbus_unpack_uint32): export
12021 (_dbus_demarshal_string): add @todo complaining about use of
12023 (_dbus_marshal_get_field_end_pos): add @todo about bad error
12024 handling allowing corrupt data to go unchecked
12026 2003-01-08 Havoc Pennington <hp@redhat.com>
12028 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12029 to the select() as needed for authentication. (should be using
12030 _dbus_poll() not select, but for another day)
12032 * dbus/dbus.h: include dbus/dbus-protocol.h
12034 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12036 * dbus/Makefile.am (dbusinclude_HEADERS): Install
12039 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12041 * dbus/dbus-internals.c: (_dbus_type_to_string):
12042 New function that returns a string describing a type.
12044 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12045 * dbus/dbus-marshal.h:
12046 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12047 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12048 (dbus_message_iter_get_byte_array):
12049 * dbus/dbus-message.h:
12050 Add new convenience functions for appending and getting message fields.
12051 Also add demarshalling routines for byte arrays.
12053 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12055 * dbus/dbus-connection-internal.h:
12056 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12057 (_dbus_connection_get_next_client_serial),
12058 (dbus_connection_send_message):
12059 * dbus/dbus-internals.h:
12060 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12061 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12062 (_dbus_marshal_uint32), (_dbus_demarshal_double),
12063 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12064 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12065 (_dbus_verbose_bytes), (_dbus_marshal_test):
12066 * dbus/dbus-marshal.h:
12067 * dbus/dbus-message-internal.h:
12068 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12069 (dbus_message_write_header), (_dbus_message_lock),
12070 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12071 (dbus_message_get_name), (dbus_message_append_int32),
12072 (dbus_message_append_uint32), (dbus_message_append_double),
12073 (dbus_message_append_string), (dbus_message_append_byte_array),
12074 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12075 (dbus_message_iter_unref), (dbus_message_iter_has_next),
12076 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12077 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12078 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12079 (decode_header_data), (_dbus_message_loader_return_buffer),
12080 (message_iter_test), (_dbus_message_test):
12081 * dbus/dbus-message.h:
12082 * dbus/dbus-protocol.h:
12083 * dbus/dbus-test.c: (main):
12084 * dbus/dbus-test.h:
12085 * glib/test-dbus-glib.c: (message_handler), (main):
12086 * test/echo-client.c: (main):
12087 * test/watch.c: (check_messages):
12088 Make messages sendable and receivable for real.
12090 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12092 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12093 (_dbus_marshal_string), (_dbus_marshal_byte_array):
12094 * dbus/dbus-message.c: (dbus_message_append_int32),
12095 (dbus_message_append_uint32), (dbus_message_append_double),
12096 (dbus_message_append_string), (dbus_message_append_byte_array):
12097 Handle OOM restoration.
12099 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12101 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12102 (_dbus_demarshal_string), (_dbus_marshal_test):
12103 * dbus/dbus-marshal.h:
12104 * dbus/dbus-message.c: (dbus_message_get_name),
12105 Document these functions.
12107 (dbus_message_append_int32), (dbus_message_append_uint32),
12108 (dbus_message_append_double), (dbus_message_append_string),
12109 (dbus_message_append_byte_array):
12110 * dbus/dbus-message.h:
12111 Add functions for adding message fields of different types.
12113 * dbus/dbus-protocol.h:
12114 Add the different types.
12116 2003-01-05 Havoc Pennington <hp@pobox.com>
12118 * bus/connection.c: implement routines for handling connections,
12119 first thing is keeping a list of owned services on each connection
12120 and setting up watches etc.
12122 * bus/services.c: implement a mapping from service names to lists
12125 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12127 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12128 to use static mutexes for global data
12130 * dbus/dbus-connection.c (dbus_connection_set_data): add new
12131 collection of functions to set/get application-specific data
12132 on the DBusConnection.
12134 2003-01-04 Havoc Pennington <hp@pobox.com>
12136 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12137 (_dbus_poll): new function
12139 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12142 * bus/loop.c: initial code for the daemon main loop
12144 2003-01-04 Havoc Pennington <hp@pobox.com>
12146 * test/watch.c (error_handler): make it safe if the error handler
12147 is called multiple times (if we s/error handler/disconnect
12148 handler/ we should just guarantee it's called only once)
12150 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12151 error handler on disconnect (it's quite possible we should
12152 just change the error handler to a "disconnect handler," I'm
12153 not sure we have any other meaningful errors)
12155 * configure.in: check for getpwnam_r
12157 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12158 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12159 mechanism as in SASL spec, using socket credentials
12161 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12162 (_dbus_send_credentials_unix_socket): new function
12164 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12166 (_dbus_write): only check errno if <0 returned
12167 (_dbus_write_two): ditto
12169 2003-01-02 Anders Carlsson <andersca@codefactory.se>
12171 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12172 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12173 (_dbus_marshal_test):
12174 * dbus/dbus-marshal.h:
12175 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12176 to _dbus_marshal_utf8_string. Also fix some tests.
12178 2002-12-28 Harri Porten <porten@kde.org>
12180 * configure.in: added check for C++ compiler and a very cheesy
12181 check for the Qt integration
12183 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12185 * qt/Makefile.am: added
12187 * qt/.cvsignore: added
12189 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12190 latter, added #ifdef QT_THREAD_SUPPORT guard.
12192 * dbus/Makefile.am: added missing headers for make dist
12194 2002-12-28 Kristian Rietveld <kris@gtk.org>
12196 * dbus/Makefile.am: fixup export-symbols-regex.
12198 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12200 * acinclude.m4: Add this file and put the
12201 PKG_CHECK_MODULE macro in it.
12203 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12205 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12206 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12207 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12208 (_dbus_marshal_test):
12209 Make the demarshalling routines align the pos argument.
12210 Add string marshalling tests and fix the obvious bugs
12213 2002-12-26 Havoc Pennington <hp@pobox.com>
12215 * dbus/dbus-auth.c: fixes fixes fixes
12217 * dbus/dbus-transport-unix.c: wire up support for
12218 encoding/decoding data on the wire
12220 * dbus/dbus-auth.c (_dbus_auth_encode_data)
12221 (_dbus_auth_decode_data): append to target string
12222 instead of nuking it.
12224 2002-12-26 Havoc Pennington <hp@pobox.com>
12226 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12227 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12230 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12231 avoid swap_bytes() overhead (ignoring possible assembly stuff for
12232 now). Main point is because I wanted unpack_uint32 to implement
12233 _dbus_verbose_bytes
12234 (_dbus_verbose_bytes): new function
12236 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12238 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12239 mechanism to handle a corrupt message stream
12240 (_dbus_message_loader_new): fix preallocation to only prealloc,
12243 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12244 (_dbus_string_test): enhance tests for copy/move and fix the
12247 * dbus/dbus-transport-unix.c: Hold references in more places to
12248 avoid reentrancy problems
12250 * dbus/dbus-transport.c: ditto
12252 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12253 leak reference count in no-message case
12255 * test/watch.c (do_mainloop): handle adding/removing watches
12256 during iteration over the watches. Also, ref the connection/server
12257 stored on a watch, so we don't try to mangle a destroyed one.
12259 * dbus/dbus-transport-unix.c (do_authentication): perform
12262 * dbus/dbus-auth.c (get_state): add a state
12263 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12264 (_dbus_auth_get_unused_bytes): append the unused bytes
12265 to the passed in string, rather than prepend
12267 * dbus/dbus-transport.c (_dbus_transport_init_base): create
12268 the auth conversation DBusAuth
12270 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12271 (_dbus_transport_new_for_domain_socket): when creating a
12272 transport, pass in whether it's a client-side or server-side
12273 transport so we know which DBusAuth to create
12275 2002-12-03 Havoc Pennington <hp@pobox.com>
12277 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12278 _after_ finalizing the derived members
12279 (unix_connection_set): unref watch if we fail to add it
12281 * dbus/dbus-connection.c (dbus_connection_unref): delete the
12282 transport first, so that the connection owned by the
12283 transport will be valid as the transport finalizes.
12285 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12286 if necessary, and remove watches from the connection.
12288 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12290 2002-12-26 Anders Carlsson <andersca@codefactory.se>
12292 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12293 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12294 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12295 (_dbus_marshal_test):
12296 * dbus/dbus-marshal.h:
12297 Add string marshal functions and have the demarshal functions
12298 return the new position.
12300 2002-12-25 Havoc Pennington <hp@pobox.com>
12302 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12303 it is a simple protocol that just maps directly to SASL.
12305 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12306 initial implementation, not actually used yet.
12308 * dbus/dbus-string.c (_dbus_string_find): new function
12309 (_dbus_string_equal): new function
12310 (_dbus_string_base64_encode): new function
12311 (_dbus_string_base64_decode): new function
12313 2002-12-25 Anders Carlsson <andersca@codefactory.se>
12315 * dbus/Makefile.am:
12316 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12317 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12318 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12319 (_dbus_demarshal_uint32), (_dbus_marshal_test):
12320 * dbus/dbus-marshal.h:
12321 * dbus/dbus-protocol.h:
12322 * dbus/dbus-test.c: (main):
12323 * dbus/dbus-test.h:
12324 Add un-optimized marshalling/demarshalling routines.
12326 2002-12-25 Harri Porten <porten@kde.org>
12328 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12330 2002-12-24 Zack Rusin <zack@kde.org>
12332 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12333 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12336 2002-12-24 Havoc Pennington <hp@pobox.com>
12338 * glib/dbus-gthread.c: fix include
12340 * glib/dbus-glib.h: rename DBusMessageHandler for now.
12341 I think glib API needs to change, though, as you don't
12342 want to use DBusMessageFunction, you want to use the
12343 DBusMessageHandler object. Probably
12344 dbus_connection_open_with_g_main_loop()
12345 and dbus_connection_setup_g_main_loop() or something like that
12346 (but think of better names...) that just create a connection
12347 that has watch/timeout functions etc. already set up.
12349 * dbus/dbus-connection.c
12350 (dbus_connection_send_message_with_reply): new function just to
12351 show how the message handler helps us deal with replies.
12353 * dbus/dbus-list.c (_dbus_list_remove_last): new function
12355 * dbus/dbus-string.c (_dbus_string_test): free a string that
12358 * dbus/dbus-hash.c: use memory pools for the hash entries
12359 (rebuild_table): be more paranoid about overflow, and
12360 shrink table when we can
12361 (_dbus_hash_test): reduce number of sprintfs and write
12362 valid C89. Add tests for case where we grow and then
12363 shrink the hash table.
12365 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12367 * dbus/dbus-connection.c (dbus_connection_register_handler)
12368 (dbus_connection_unregister_handler): new functions
12370 * dbus/dbus-message.c (dbus_message_get_name): new
12372 * dbus/dbus-list.c: fix docs typo
12374 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12375 an object representing a handler for messages.
12377 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12379 * glib/dbus-glib.h:
12380 * glib/dbus-gthread.c: (dbus_gthread_init):
12381 Don't use the gdbus prefix for public functions.
12383 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12387 Add GLib checks and fixup .pc files
12389 * glib/Makefile.am:
12390 * glib/dbus-glib.h:
12391 * glib/dbus-gmain.c: (gdbus_connection_prepare),
12392 (gdbus_connection_check), (gdbus_connection_dispatch),
12393 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12394 (dbus_connection_gsource_new):
12395 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12396 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12397 * glib/test-dbus-glib.c: (message_handler), (main):
12400 2002-12-15 Harri Porten <porten@kde.org>
12402 * autogen.sh: check for libtoolize before attempting to use it
12404 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12407 * .cvsignore: ignore more stamp files
12409 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12411 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12412 without make install.
12414 2002-12-15 Havoc Pennington <hp@pobox.com>
12416 * dbus/dbus-threads.c: add thread stubs that a higher library
12417 layer can fill in. e.g. the GLib wrapper might fill them in with
12418 GThread stuff. We still need to use this thread API to
12419 thread-safe-ize the library.
12421 2002-12-12 Havoc Pennington <hp@pobox.com>
12423 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12424 below new interfaces and include fewer system headers.
12426 * dbus/dbus-sysdeps.c (_dbus_read): new function
12427 (_dbus_write): new function
12428 (_dbus_write_two): new function
12429 (_dbus_connect_unix_socket): new function
12430 (_dbus_listen_unix_socket): new function
12432 * dbus/dbus-message-internal.h: change interfaces to use
12435 2002-12-11 Havoc Pennington <hp@pobox.com>
12437 * dbus/dbus-types.h: add dbus_unichar
12439 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12441 * dbus/dbus-connection.c (dbus_connection_send_message): return
12444 * dbus/dbus-transport.c: include dbus-watch.h
12446 * dbus/dbus-connection.c: include dbus-message-internal.h
12448 * HACKING: add file with coding guidelines stuff.
12450 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12451 handling here, for security purposes (as in vsftpd). Not actually
12452 using this class yet.
12454 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12455 system/libc usage here, as in vsftpd, for ease of auditing (and
12456 should also simplify portability). Haven't actually moved all the
12457 system/libc usage into here yet.
12459 2002-11-25 Havoc Pennington <hp@pobox.com>
12461 * dbus/dbus-internals.c (_dbus_verbose): fix to not
12462 always print the first verbose message.
12464 2002-11-24 Havoc Pennington <hp@pobox.com>
12466 * test/echo-client.c, test/echo-server.c: cheesy test
12469 * configure.in (AC_CHECK_FUNCS): check for writev
12471 * dbus/dbus-message.c (_dbus_message_get_network_data): new
12474 * dbus/dbus-list.c (_dbus_list_foreach): new function
12476 * dbus/dbus-internals.c (_dbus_verbose): new function
12478 * dbus/dbus-server.c, dbus/dbus-server.h: public object
12479 representing a server that listens for connections.
12481 * dbus/.cvsignore: create
12483 * dbus/dbus-errors.h, dbus/dbus-errors.c:
12484 public API for reporting errors
12486 * dbus/dbus-connection.h, dbus/dbus-connection.c:
12487 public object representing a connection that
12488 sends/receives messages. (Same object used for
12489 both client and server.)
12491 * dbus/dbus-transport.h, dbus/dbus-transport.c:
12492 Basic abstraction for different kinds of stream
12493 that we might read/write messages from.
12495 2002-11-23 Havoc Pennington <hp@pobox.com>
12497 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12500 * dbus/dbus-test.c (main): add list test, and include
12501 dbus-test.h as intended
12503 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12504 (_dbus_hash_table_remove_int): return value indicates
12505 whether the entry existed to remove
12507 * dbus/dbus-list.c: add linked list utility class,
12508 with docs and tests
12510 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12513 2002-11-23 Havoc Pennington <hp@pobox.com>
12515 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12516 DBUS_END_DECLS to nothing, that should fix this once and for all
12518 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12520 * dbus/dbus-message.c, dbus/dbus-hash.c:
12521 add some missing @brief
12523 2002-11-23 Havoc Pennington <hp@pobox.com>
12525 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12526 to avoid confusing Doxygen
12528 * dbus/dbus-hash.c: @} not }@
12530 * dbus/dbus-message.c (struct DBusMessage): split out
12533 2002-11-23 Havoc Pennington <hp@pobox.com>
12535 * configure.in: pile on more warning flags if using gcc
12537 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12538 to document static functions
12540 * configure.in: add summary to end of configure so it
12541 looks nice and attractive
12543 * dbus/dbus-hash.c: finish implementation and write unit
12546 * configure.in: add --enable-tests to enable unit tests
12548 * dbus/dbus-test.c: test program to run unit tests
12549 for all files in dbus/*, initially runs a test for
12552 * dbus/dbus-internals.h: file to hold some internal utility stuff
12554 2002-11-22 Havoc Pennington <hp@redhat.com>
12556 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12557 "ported" away from Tcl
12559 * dbus/dbus-types.h: header for types such as dbus_bool_t
12561 2002-11-22 Havoc Pennington <hp@redhat.com>
12563 * dbus/dbus.h: fixups for doc warnings
12565 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12567 (QUIET): make it quiet so we can see warnings
12569 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12571 2002-11-22 Havoc Pennington <hp@redhat.com>
12573 * Makefile.am: include "Doxyfile" target in all-local
12575 * configure.in: generate the Doxyfile
12577 * Doxyfile.in: move Doxyfile here, so we can use
12578 configure to generate a Doxyfile with the right
12579 version number etc.
12581 2002-11-22 Havoc Pennington <hp@redhat.com>
12583 * dbus/dbus-message.c: move inline docs into .c file
12585 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12586 so all docs are under doc/
12587 (MAN_EXTENSION): generate man pages. Use extension
12588 ".3dbus" which matches ".3qt" on my system,
12589 I guess this is OK, I don't know really.
12590 (FILE_PATTERNS): look for .c files not .h, makes sense
12591 for plain C I think
12593 2002-11-22 Havoc Pennington <hp@pobox.com>
12595 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12596 because any app can be a server, and any app can be a client,
12597 the bus is a special kind of server.
12599 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
12601 * Doxyfile : adding. Still needs Makefile rules to be generated
12602 automatically (just run "doxygen" in the toplevel dir for now to
12605 * dbus/dbus-message.h : Adding sample docs (javadoc since
12606 resembles gtk-doc a little more)
12608 * dbus/dbus.h : Adding sample docs
12610 2002-11-21 Havoc Pennington <hp@redhat.com>
12612 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12613 so we can allow ourselves to include files directly,
12614 instead of having to use dbus.h
12616 * dbus/dbus.h: fill in
12618 * dbus/dbus-message.h: sketch out a sample header file.
12619 Include griping if you include it directly instead of
12622 * dbus/dbus-macros.h: new file with macros for extern "C",
12623 TRUE/FALSE, NULL, etc.
12625 * doc/file-boilerplate.c: put include guards in here
12627 2002-11-21 Havoc Pennington <hp@redhat.com>
12629 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12631 * COPYING: include the GPL as well, and license code
12632 under both AFL and GPL.
12634 2002-11-21 Havoc Pennington <hp@redhat.com>
12636 * acconfig.h: get rid of this
12638 * autogen.sh (run_configure): add --no-configure option
12640 * configure.in: remove AC_ARG_PROGRAM to make
12641 autoconf complain less. add AC_PREREQ.
12642 add AC_DEFINE third arg.
12644 2002-11-21 Anders Carlsson <andersca@codefactory.se>
12647 Fix references so we can distcheck.
12649 2002-11-21 Havoc Pennington <hp@redhat.com>
12651 * Initial module creation