1 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
3 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
4 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
6 2005-11-27 Robert McQueen <robot101@debian.org>
8 * python/dbus_bindings.pyx: Repair my previous commit which reverted
9 part of the preceding one. Oops. Merge patch by Johan Hedberg
10 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
11 on big-endian platforms.
13 * test/python/test-client.py: Add some 16-bit integers to the test
16 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
18 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
19 method return message for property getters
21 2005-11-27 Robert McQueen <robot101@debian.org>
23 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
24 with type v of an instance of dbus.Variant(foo, type='x') caused
25 it to be boxed twice before sending over the bus.
27 * python/dbus_bindings.pyx, python/service.py,
28 test/python/test-client.py: Update the constants for the new
29 request_name flags, and update comments/test cases now that queueing
30 is the default action.
32 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
35 - Change version to 0.60 for impending release
36 - upped the sonames because of ABI and API breakage
38 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
40 * configure.in: Add test/name-test/Makefile to the generated
43 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
44 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
45 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
46 not to queue an ower if it can't be the primary owner
48 * bus/bus.h: Add new internal BusOwner struct
50 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
51 to bus_registry_ensure and don't set the prohibit_replacement flag
52 since they are now set per BusOwner and not per name.
53 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
54 that returns the list of connections in a name's connection queue
56 * bus/services.c (struct BusService): remove prohibit_replacement field
57 (struct BusOwner): new struct for keeping track of queued connections
58 and their associated flags for the queue
59 (struct BusRegistry): add a BusOwner memory pool
60 (bus_registry_new): initialize the BusOwner memory pool
61 (bus_registry_unref): free the BusOwner memory pool
62 (_bus_service_find_owner_link): new internal method for
63 searching the queue for a specific connection
64 (bus_owner_set_flags): new method for adding setting the flags on a
66 (bus_owner_new): new method that creates a BusOwner object from the
67 pool and sets its flags
68 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
69 (bus_registry_ensure): Add the flags parameter
70 (bus_registry_acquire_service): Switch from using raw connections to
71 using the BusOwner struct
72 Add new state machine for dealing with the new set of flags
73 (bus_registry_set_service_context_table, struct OwnershipCancelData,
74 cancel_ownership, free_ownership_cancel_data,
75 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
76 restore_ownership, free_ownership_restore_data,
77 add_restore_ownership_to_transaction): Switch to using BusOwner
78 instead of raw connections
79 (bus_service_add_owner): Add flags parameter
80 Switch to using BusOwner instead of raw connections
81 Add state machine for dealing with the new set of flags
82 (bus_service_swap_owner): Swaps the first and second owners in the
83 queue. Used to make sure proper signals are sent when a service looses
84 or gains primary ownership. We never insert an owner at the top of the
85 queue. Instead we insert it in the second position and then swap.
86 (bus_service_remove_owner): Remove the owner from the queue sending
87 out the NameLost and NameOwnerChanged signals if the we were the
89 (bus_service_get_primary_owners_connection): New method that extracts
90 the connection from the primary owner
91 (bus_service_get_primary_owner): Returns the BusOwner instead of the
93 (bus_service_get_allow_replacement): Changed from the old
94 bus_service_get_prohibit_replacement method. Checks the flags of the
95 primary owner and returns if it can be replaced or not
96 (bus_service_set_prohibit_replacement): removed
97 (bus_service_has_owner): returns TRUE if and owner with
98 the specified connection exists in the queue
100 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
101 method that only compiles if tests are enabled. Allows us to get the
102 unique name of a connection so we can check it against the queue when
103 doing regression tests
105 * bus/activation.c (bus_activation_send_pending_auto_activate),
106 bus/dispatch.c (bus_dispatch),
107 bus/driver.c (bus_driver_handle_get_service_owner,
108 bus_driver_handle_get_connection_unix_user,
109 bus_driver_handle_get_connection_unix_process_id,
110 bus_driver_handle_get_connection_selinux_security_context),
111 bus/signals.c (connection_is_primary_owner):
112 use bus_service_get_primary_owners_connection instead of
113 bus_service_get_primary_owner
115 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
116 _dbus_listen_unix_socket): Calculate the length of the socket
117 path and use that instead of using a fixed length which was
118 causing socket names to contain many trailing Nul bytes.
120 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
121 (dbus_g_method_get_sender): New method for extracting the sender
122 from a DBusGMethodInvocation
123 (dbus_g_method_return_get_reply): changed name to
124 dbus_g_method_get_reply
125 (dbus_g_method_return_send_reply): changed name to
126 dbus_g_method_send reply
128 * doc/dbus-specification.xml: New docs that describe how the new
129 queueing system works and talks about the changes to the how
130 we specify socket names
132 * glib/examples/example-service.c,
133 glib/examples/example-signal-emitter.c,
134 glib/examples/statemachine/statemachine-server.c:
135 Changed the RequestName flags to the new system
137 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
138 regression test suite for testing various states of the new
141 2005-11-15 Robert McQueen <robot101@debian.org>
143 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
144 Taylor to add two methods, dbus_g_method_return_get_reply and
145 dbus_g_method_return_send_reply, to allow you to get the reply
146 message from a DBusGMethodInvocation, append arbitrary stuff to it,
147 and send it. The GLib bindings can't marshal a return value of
148 something like a(s) if the array is empty - ultimately they should be
149 made to heed the signature of the out arguments as the Python bindings
150 now can, but this is a workable interim solution which might have
153 2005-11-15 Robert McQueen <robot101@debian.org>
155 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
156 method to org.freedesktop.DBus to release a bus name or give up
157 waiting in the queue for it.
159 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
160 dbus_bus_release_name method to send the ReleaseName method calls.
161 Add constants for the return values to dbus/dbus-shared.h.
163 * doc/dbus-specification.xml: Document the new ReleaseName method
164 in the specification.
166 * python/dbus_bindings.pyx: Add a low-level python binding for the
169 * python/exceptions.py, python/service.py: Make freeing BusName
170 objects release the name. Add a NameExistsException, and fix a
171 bug with creating UnknownMethodException.
173 * test/python/test-client.py: Add tests for freeing BusName
174 objects causing names to be released.
176 2005-11-14 Robert McQueen <robot101@debian.org>
178 * python/service.py: Include the traceback in the error reply when we
179 send an exception over the bus. _BEST_ _PATCH_ _EVER_
181 2005-11-14 David Zeuthen <davidz@redhat.com>
183 Patch from Timo Hoenig <thoenig@suse.de>.
185 * bus/bus.c: I've recently investigated why the automatic reload
186 of configuration files does not work as expected.
188 Currently, reloading configuration files does only work when
189 running dbus-daemon with --nodaemon. If we are running as daemon
190 we're hitting a dnotify bug once we fork the process.
192 We're initializing the dnotify fds before calling fork(). Once
193 the child process forked it does still have the fds (and they
194 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
195 getting SIGIO as changes are made to the configuration files.
197 The attached patch moves the initialization of the dnotify fds to
198 process_config_postinit(). This is safe for all current code
199 paths and solves the dnotify disfunction. If we're running
200 dbus-daemon as daemon the fds for dnotify are now being
201 initialized after fork() for the child process.
203 * configure.in: The current configure.in check for dnotify probes
204 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
205 match for 'xlinux', too. Additionally I have adapted the configure
206 option's style to match with the others.
208 2005-11-14 Robert McQueen <robot101@debian.org>
210 * python/decorators.py, python/service.py: Add a new argument to the
211 dbus.service.method decorator called sender_keyword, which if set,
212 specifies the name of an argument which will be provided the bus
213 name of the method caller.
215 * test/python/test-client.py, test/python/test-service.py: Add a
216 method and test to check the sender_keyword functionality.
218 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
220 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
221 empty reply so blocking calls don't block forever (Patch from Sjoerd
222 Simons <sjoerd at luon.net>)
224 * AUTHORS: Add Robert McQueen for his work on the Python
225 Bindings and other parts of D-Bus
227 2005-11-07 Robert McQueen <robot101@debian.org>
229 * python/decorators.py: Change emit_signal function to use the
230 signature annotation of the signal when marhsalling the arguments from
231 the service. Fix a bug where the code checking signature length
232 against argument length referenced the wrong variable.
234 * python/introspect_parser.py: Avoid adding the type signature of
235 signal arguments to any methods which occur after them in the
236 introspection data (!) by making the parser a little more careful
237 about its current state.
239 * python/service.py: Remove debug prints from last commit (again :D).
241 * test/python/test-client.py, test/python/test-service.py: Add test
242 signals with signature decorators to test the strict marshalling code
243 gives errors at the right time. Could do with checking the signals
244 actually get emitted too, given that the test does nothing with
245 signals at the moment...
247 2005-11-07 Robert McQueen <robot101@debian.org>
249 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
250 instances to stop madness of creating new instances representing
251 the same bus connection all the time, rendering any tracking of
252 match rules and bus names quite meaningless. Caught a bug where
253 the private argument to SessionBus() and friends was being passed
254 in as use_default_mainloop by mistake. Still some problems with
255 multiple dbus_binding.Connection instances representing the same
256 low-level connection (eg when you use both SessionBus() and
257 StarterBus() in same process), but it's a lot better now than it
260 * python/dbus_bindings.pyx: Add constants with the return values
261 for bus_request_name().
263 * python/service.py: Store bus name instances in a per-dbus.Bus cache
264 and retrieve the same instances for the same name, so deletion can be
265 done with refcounting. Also now throws some kind of error if you
266 don't actually get the name you requested, unlike previously...
268 * test/python/test-client.py: Add tests for instance caching of buses
269 and bus name objects.
271 2005-11-04 Robert McQueen <robot101@debian.org>
273 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
274 marshalling of boolean values. Add some booleans to the values in
277 * python/decorators.py, python/service.py: Add an 'async_callbacks'
278 argument to the dbus.service.method decorator, which allows you to
279 name arguments to take two callback functions for replying with
280 return values or an exception.
282 * test/python/test-client.py, test/python/test-service.py: Add test
283 case using asynchronous method reply functions, both return values and
284 errors, and from within both the function itself and from a mainloop
287 * python/decorators.py, python/service.py: Perform checking that the
288 number of method/signal arguments matches the number of types in the
289 signature at class loading time, not when you first introspect the
292 * python/service.py: Remove debug print left by the last commit.
294 2005-11-03 Robert McQueen <robot101@debian.org>
296 * python/service.py: Heavy refactoring of method invocation, with
297 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
298 in favour of a new _message_cb that uses seperate functions for
299 looking up the method to call, marshalling the return values, and
300 sending exceptions as errors, and is easier to follow as a
301 consequence. Fixes some corner cases about returning things that
302 don't match your declared out_signature, allows exceptions to define
303 _dbus_error_name and have it be sent over the bus as the error name,
304 and paves the way for cool stuff like heeding the message no reply
305 flag, asynchronous method implementations, informing the method of the
306 sender, and including backtraces in the error messages.
308 * test/python/test-client.py: Catch and print exceptions thrown in the
309 async callback tests, rather than passing them to the low-level
310 bindings to be ignored in a noisy and frustrating manner.
312 2005-11-03 Robert McQueen <robot101@debian.org>
314 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
315 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
316 tweak others to be consistent.
318 * test/python/test-client.py: Tweak output of testInheritance.
320 2005-10-29 Robert McQueen <robot101@debian.org>
322 * python/service.py: Major changes to allow multiple inheritance
323 from classes that define D-Bus interfaces:
325 1. Create a new Interface class which is the parent class of
326 Object, and make the ObjectType metaclass into InterfaceType.
328 2. Patch written with Rob Taylor to replace use of method_vtable
329 with code that walks the class's __MRO__ (method resolution order)
330 to behave like Python does when invoking methods and allow
331 overriding as you'd expect. Code is quite tricky because
332 we have to find two methods, the one to invoke which has the
333 right name and isn't decorated with the /wrong/ interface,
334 and the one to pick up the signatures from which is decorated
335 with the right interface.
337 The same caveats apply as to normal multiple inheritance -
338 this has undefined behaviour if you try and inherit from two
339 classes that define a method with the same name but are
340 decorated with different interfaces. You should decorate
341 your overriding method with the interface you want.
343 3. Replace grungy introspection XML generation code in the metaclass
344 with dictionaries that cope correctly with multiple inheritance
345 and the overriding of methods. This also uses the signature
346 decorations to provide correct introspection data, including
347 the debut appearance of the types of your return values. :D
349 * test/python/test-client.py, test/python/test-service.py: Add a test
350 case to try invoking an method that overrides one inherited from a
351 D-Bus interface class.
353 2005-10-29 Robert McQueen <robot101@debian.org>
355 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
356 Add checking for the end of struct character when marshalling a
357 struct in MessageIter.append_strict.
359 * python/examples/example-service.py,
360 python/examples/gconf-proxy-service.py,
361 python/examples/gconf-proxy-service2.py: Update to use gobject
362 mainloop directly rather than appearing to depend on gtk.
364 * python/test/test-client.py, python/test/test-server.py: Remove
365 obsolete and broken test scripts for old bindings. We have up to date
366 and working tests in test/python/.
368 2005-10-29 Robert McQueen <robot101@debian.org>
370 * python/decorators.py: Add optional arguments to the method and
371 signal decorators to allow you to specify the signature of arguments
372 and return values. Preserve the doc strings of signal functions in the
373 decorated version, for pydoc and friends.
375 * python/dbus_bindings.pyx, python/proxies.py: Replace the
376 parse_signature_block function with an iterable dbus.Signature()
377 type. Fix a bug in MessageIter.append_strict where you could append
378 anything by claiming it was a string.
380 * python/service.py: Use the out_signature decoration on methods to
381 marshal return values, meaning you no longer require dbus.Array()
382 or dbus.Dictionary() to indicate the type when returning empty
383 arrays or dictionaries. Fix a bug where exceptions which are defined
384 in __main__ are not turned into error replies.
386 * test/python/test-client.py, test/python/test-service.py: Add test
387 for correct marshalling of return values according to out_signature.
388 Fix a bug in the async call test where the error_handler is missing a
391 2005-10-29 Robert McQueen <robot101@debian.org>
393 * glib/Makefile.am, glib/examples/Makefile.am,
394 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
395 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
397 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
399 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
400 from Ubuntu by Daniel Silverstone to allow specifying match rules on
403 2005-10-27 Ross Burton <ross@openedhand.com>
405 * dbus/dbus-marshal-header.c:
408 * glib/dbus-gobject.c:
409 Stop compiler warning.
411 2005-10-25 Ross Burton <ross@openedhand.com>
414 * dbus/dbus-server-unix.c:
415 * dbus/dbus-transport-unix.c:
417 * glib/dbus-gobject.c:
418 Add some const keywords.
420 2005-10-25 Ross Burton <ross@openedhand.com>
422 * doc/dbus-specification.xml:
423 Document the NoReply annotation.
425 * glib/dbus-binding-tool-glib.h:
426 * glib/dbus-binding-tool-glib.c:
427 Respect the NoReply annotation.
429 2005-10-24 Robert McQueen <robot101@debian.org>
431 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
432 derive from unicode instead of str, and encode/decode UTF-8 when
433 marshalling/unmarshalling bus messages
435 * python/introspect_parser.py: encode introspection data as UTF-8
436 before passing the buffer into libxml2
438 * test/python/test-client.py: add unicode test strings
440 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
441 ignore generated python test files
443 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
445 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
446 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
447 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
449 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
450 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
451 when constructing struct signatures
453 * python/_dbus.py (Bus): handle private connections using the
454 private keyword in the constructor. defaults to private=False
455 (Bus::close): new method to close a connection to the bus
457 * python/dbus_bindings.pyx (Connection::close): renamed method
458 was previously called disconnect
459 (bus_get): now supports getting a private connection
461 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
462 keyword is set to True. if it is, execute the method without waiting
464 (ProxyObject::_introspect_execute_queue): new method for executing
465 all the pending methods that were waiting for the introspect to
466 finish. this is called when introspect either succeeds or fails
467 (ProxyObject::_introspect_error_handler): call queued methods
469 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
471 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
472 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
474 * python/service.py (Object::_message_cb): handle exceptions correctly
475 by sending them over the wire to the calling app. This makes sure
476 the client returns immediately instead of waiting the 15 seconds to
479 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
480 Add a test to benchmark how long it takes to introspect a service and
481 call a method which returns a large element (pretty fast)
483 * test/python/test-service.py (TestObject::GetComplexArray): new test
484 method which pushes a lot of data
486 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
488 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
489 reclaim memory outside of the loop and use del istead of just setting
492 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
494 * python/service.py (ObjectType::_reflect_on_signal): Always close
495 signal tag even when there are no arguments
497 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
499 * configure.in: Set mono, mono-docs and Qt3 to default
500 to no instead of auto when building. These bindings do not
501 have full time maintainers and will not be supported for the
504 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
506 patches from Michael Krivoruchko <misha at sun.com>:
508 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
509 _dbus_connection_message_sent,
510 _dbus_connection_send_preallocated_unlocked_no_update,
511 _dbus_connection_pop_message_link_unlocked): handle the case when path
512 is NULL when calling _dbus_verbose
514 * configure.in: check for functions getpeerucred and getpeereid
516 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
517 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
518 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
519 Patch was only tested on Solaris 10 x86 so it might be issues
520 with other platforms (i.e. BSDs and MacOSX)
523 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
525 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
526 instead of marshal basic so we can handle recursive types in a variant
528 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
531 * test/glib/test-service-glib.c, test-service-glib.xml
532 (my_object_echo_variant [EchoVariant],
533 my_object_process_variant_of_array_of_ints123
534 [ProcessVariantOfArrayOfInts123]):
537 * python/introspect_parser.py: New module for parsing introspect
540 * python/dbus_bindings.pyx:
541 (various places): when throwing errors fix to use errormsg instead
542 of message local variable because Pyrex can get confused with other
543 message variables (initial patch by Robert McQueen
544 <robert.mcqueen at collabora.co.uk>)
545 (MessageIter::parse_signature_block): new method for getting the next
546 block in a signiture.
547 (MessageIter::append_strict): new method for appending values strictly
548 using the passed in signature instead of guessing at the type
549 (MessageItter:: append_dict, append_struct, append_array): use
550 signatures to marshal children if the signature is available
552 * python/exceptions.py (IntrospectionParserException): new exception
554 * python/proxies.py (ProxyMethod::__call__): Marshal args with
555 introspected signatures if available, else we fall back to the
556 old way of doing things.
557 (ProxyObject::_introspect_reply_handler ): parse introspection data
559 * python/service.py (ObjectType::_reflect_on_method): Properly
560 terminate <method> if there are no args in the reflection data
562 * test/python/test-client.py: add tests for talking with the GLib
563 test server. This gives us better coverage for introspection since
564 python to python will always generate arguments as variants. It also
565 allows us to test the robustness of the GLib bindings and interlanguage
569 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
571 * bus/driver.c (bus_driver_handle_introspect): Add signals
572 to the introspect data. (patch from Daniel P. Berrange
573 <dan at berrange.com>)
575 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
577 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
578 _dbus_connection_run_builtin_filters): Changed these to
579 be unlock_no_update functions and call
580 _dbus_connection_send_unlocked_no_update instead of
581 dbus_connection_send to avoid locking errors.
583 * doc/TODO: Removed the make Ping test TODO
585 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
587 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
588 We now copy the message from a DBusError and then free
589 the error object befor throwing the error
591 * glib/dbus-glib-tool.c: removed extra comma at the end of the
592 DBusBindingOutputMode enum which was causing a warning.
593 #include <time.h> so using time_t is explicitly defined
595 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
597 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
599 (internal_bus_get): new method that take over the heavy lifting
600 of dbus_bus_get and adds the ability to get a private connection
602 (dbus_bus_get): wrapper to internal_bus_get that provides the same
603 interface as in previous versions
604 (dbus_bus_get_private): new method that is a wrapper to
605 internal_bus_get to get a private connection to the bus
608 (dbus_bus_get_private): add as a public libdbus interface
610 - dbus-1.pc.in: output system_bus_default_address and
611 sysconfdir variables so apps can use them when compiling
613 2005-09-23 Harald Fernengel <harry@kdevelop.org>
614 * dbus/qt: New Qt bindings
616 2005-09-12 Waldo Bastian <bastian@kde.org>
618 * dbus/dbus-marshal-validate.c,
619 doc/dbus-specification.xml, test/Makefile.am,
620 test/test-names.c: allow hyphens in bus names.
622 2005-09-11 Mark McLoughlin <mark@skynet.ie>
624 * test/data/auth/fallback.auth-script: we don't
625 retry the EXTERNAL method when we know its going
628 2005-09-11 Mark McLoughlin <mark@skynet.ie>
630 * dbus/dbus-connection-internal.h: rename
631 (add|remove|toggle)_(watch|timeout) to unlocked()
633 * dbus/dbus-connection.c: ditto.
635 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
636 Update some callers for the renaming.
638 2005-09-10 Mark McLoughlin <mark@skynet.ie>
640 * dbus/dbus-auth.c: (record_mechanisms): don't
641 retry the first auth mechanism because we know
642 we're just going to get rejected again.
644 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
645 Fix thinko ... and what a nasty little bugger to
646 track down you were ...
648 * dbus/dbus-connection.c:
649 (_dbus_connection_add_watch),
650 (_dbus_connection_remove_watch): add note about
651 these needing the connection to be locked.
652 (_dbus_connection_get_dispatch_status_unlocked):
653 set status to DATA_REMAINS when we queue the
654 disconnected message.
657 (bus_dispatch): fix warning.
658 (check_existent_service_no_auto_start):
659 Expect ChildSignaled error too.
660 (check_existent_hello_from_self): fix another
663 2005-09-08 Joe Shaw <joeshaw@novell.com>
665 Patches from James Willcox <snorp@snorp.net>
667 * mono/Makefile.am: Add Int16.cs and UInt16.cs
669 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
670 support array "out" parameters.
672 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
673 for 16-bit int support.
675 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
679 * Patch from Steve Grubb:
680 - bus/activation.c (bus_activation_service_reload_test): clean up
682 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
683 - dbus/dbus-message-factory.c (generate_special): fix a couple of
684 buffer overflows in the test suite. This is non critical because
685 it can not be exploited and this code is only run when doing a
688 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
689 - configure.in: Don't check and link against kdecore, only qt headers
690 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
691 - gcj/org/freedesktop/dbus/Makefile.am:
692 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
693 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
694 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
695 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
696 - tools/Makefile.am: Add platform extentions to binaries
697 (i.e. .exe on windows)
700 - Make it so if no suitable version of python is found we only
701 disable building python instead of exiting the configure script
702 - Require version 2.4 of glib for glib bindings
705 * python/__init__.py: Sync version with libdbus to (0,50,0)
707 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
709 * dbus/dbus-object-tree.c (find_subtree_recurse):
710 a couple of optimizations (bug #710):
711 - do a binary search in the tree
712 - insert a new child at the right place directly, no need for
714 - do the "double alloc" thing when allocating children
716 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
718 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
720 * python/dbus_bindings.pyx: Memory management foo
721 (global): remove hacky _user_data_references global list
722 (GIL_safe_cunregister_function_handler): userdata now stuffed into
723 tuples. Unref user_data
724 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
725 (Connection::__del__): Remove and replace with __dealloc__ method
726 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
727 to keep tuple from being deallocated instead of the global var hack
728 (Connection::register_object_path): Stuff user_data into a tuple.
729 Use Py_INCREF to keep tuple from being deallocated instead of the
731 (Connection::register_fallback): Stuff user_data into a tuple.
732 Use Py_INCREF to keep tuple from being deallocated instead of the
734 (GIL_safe_pending_call_notification): Don't unref the message
735 because it gets unreffed when going out of scope. Py_XDECREF
737 (PendingCall::__del__): Remove and replace with __dealloc__ method
738 (PendingCall::set_notify): ref the pending call because we will
739 need it to stick around for when the notify callback gets called
740 (Message::__del__): Remove and replace with __dealloc__ method
742 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
743 gthreads_init to match up with the dbus call
745 * python/glib.py (init_threads): Changed to threads_init to match
746 up with gobject.threads_init(). init_threads is kept for backwards
747 compat but will most likely be deprecated in the future
749 * test/python/test-client.py:
750 - revamp to use Python's unittest functionality
751 - add async call tests
752 - setup threads in glib and dbus so we make sure locks are working
754 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
756 * python/dbus_bindings.pyx
757 (_pending_call_notification, cunregister_function_handler,
758 cmessage_function_handler): All callback functions have been rearranged
759 to workaround a bug in Pyrex when working with the GIL which is Python's
760 global lock when dealing with threads. They have been split into
761 a wrapper function (which assumes the name of the old function) and
762 a _GIL_safe_<function name> function which contains the functionality
763 of the old function. This ensures that Pyrex does not write code
764 the lock is released.
767 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
769 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
770 GIL global lock when calling back into Python
772 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
776 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
778 * bus/policy.c (bus_policy_allow_user): change default "user is
779 allowed" to be "user has same uid as the bus itself"; any
780 allow/deny rules will override.
782 * bus/session.conf.in: don't allow all users, since now by default
783 the user that ran the bus can connect.
785 2005-08-26 Colin Walters <walters@verbum.org>
787 * tools/dbus-print-message.c (print_message): Flush stdout
788 after printing a message, so that redirecting to a file, then
789 hitting Ctrl-C works.
791 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
793 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
794 (EmptyMessage): new class that subclasses Message. This is a workaround
795 to a Pyrex bug that fails to call __del__ when the Message object goes out
796 of scope. For some reason subclassing Message fixes this bug
797 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
798 - s/Message(_create=0)/EmptyMessage everywhere else
800 * test/python/test-{server|client}.py: add the python/.libs directory
801 to the lookup path so dbus_bindings and dbus_glib_bindings don't
802 get picked up from the system
804 2005-08-25 Colin Walters <walters@verbum.org>
806 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
807 to Ryan Lortie for the suggestion.
809 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
811 * test/python: Add python regression test
813 * configure.in: Add test/python/Makefile
815 * test/Makefile.am: Add the python directory to SUBDIRS
817 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
822 (Interface::connect_to_signal): propigate keywords for match on args
823 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
825 * python/proxies.py (ProxyObject::connect_to_signal):
826 propigate keywords for match on args
828 * Makefile.am: point everything to pyexecdir since python borks
831 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
835 2005-08-23 Colin Walters <walters@verbum.org>
837 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
839 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
841 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
842 to fix some wranings. We now use dbus_bindings.DBusConnection instead
843 of defining DBusConnection ourselves.
845 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
847 * python/dbus.pth: New path file to fix up problems when installing
848 c libraries to lib64 and python files to lib.
850 * python/Makefile.am: install dbus.pth in the correct spot
852 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
853 * ChangeLog: clean up my last entry a bit
855 * doc/introspect.xsl: New stylesheet for converting introspection data
856 into browser renderable xhtml. Contributed by Lennart Poettering.
858 * doc/introspect.dtd: Fixups in the introspect format from Lennart
861 * doc/dbus-tutorial.xml:
862 - Add Colin Walter to the Authors section for authoring the GLib
864 - Add descriptions of the new signature and type functionality
865 in the Python complex type mapping section
866 - Add a sidenote on the new args matching functionality in
868 - Fixed up some of the examples to use the gobject.MainLoop
872 (Bus::_create_args_dict): New. Converts a hash of arg matches
873 to a more useable format
874 (Bus::add_signal_receiver): add a **keywords parameter for catching
876 (Bus::remove_signal_receiver): add a **keywords parameter for catching
879 * python/matchrules.py:
880 (MatchTree::exec_matches): Check for arg matches
881 (SignalMatchRule::add_args_match): New method
882 (SignalMatchRule::execute): Added args_list parameter as an optimization
883 so we don't have to marshal the args more than once
884 (SignalMatchRule::match_args_from_list): New method that checks to see
885 if the rule's arg matches match an argument list. Only arguments
886 set in the rule are checked.
887 (SignalMatchRule::match_args_from_rule): New method that checks to see
888 if the rule's arg matches match another rule's. All args have to match
889 in order for this method to return true. If either rule has more args
890 then it is not a match.
891 (SignalMatchRule::is_match): Add args match
892 (SignalMatchRule::repr): Add args to the final output if they exist
894 2005-08-17 Ross Burton <ross@burtonini.com>
896 * glib/dbus-gproxy.c:
897 (dbus_g_proxy_call_no_reply): unref the message once sent.
898 (dbus_g_proxy_call): protect against NULL proxy.
900 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
902 * python/__init__.py: Version updated (0, 43, 0)
904 * python/dbus_bindings.pyx:
905 - Fixed type objects to have self passed into __init__
906 - Added the Variant type
907 - Add the ability to specify types or signatures for Array, Variant
909 (Connection::send_with_reply_handlers): return a PendingCall object
910 (_pending_call_notification): handle the case when an error is returned
911 without an error message in the body
912 (MessageIter::get_boolean): return True or False instead of an integer
913 (MessageIter::python_value_to_dbus_sig): add direct checking of types
914 and add checks for objects with embeded signatures or types (Array,
915 Variant and Dictionary)
916 (MessageIter::append_byte): handle case when the value is a dbus.Byte
917 (MessageIter::append_dict): handle embeded types or signatures
918 (MessageIter::append_array): handle embeded types or signatures
919 (MessageIter::append_variant): new method
922 (DeferedMethod): New. Dummy executable object used when queuing calls
923 blocking on introspection data
924 (ProxyMethod::__call__): add the timeout keyword for specifying longer
925 or shorter timeouts for method calls
926 (ProxyObject): Add first pass at an introspection state machine
927 (ProxyObject::__init__): Add introspect keyword for turing off an on
929 (ProxyObject::_Introspect): Internal Introspect call that bypasses
930 the usual mechanisms for sending messages. This is to avoid a deadlock
931 where the Intospect call would be queued waiting for the Introspect
933 (ProxyObject::_introspect_reply_handler): New. This method is called
934 when introspection returns with no error
935 (ProxyObject::_introspect_error_handler): New. This method is called
936 when introspection encounters an error
937 (ProxyObject::__getattr__): Code to handle different introspection
938 states. Queue async calls or block blocking calls if we are
939 introspecting. Pass through as normal if we are not or are done with
942 * python/service.py: Import signal and method from decorators.py
944 * python/types.py: Add Variant type
946 2005-08-16 Colin Walters <walters@verbum.org>
948 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
949 DBusError message is NULL.
951 2005-08-09 Havoc Pennington <hp@redhat.com>
953 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
954 malloc'd copy of the name parameter
956 2005-08-09 Havoc Pennington <hp@redhat.com>
958 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
959 warning if the reply serial is set to 0
961 2005-08-04 Colin Walters <walters@verbum.org>
963 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
964 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
965 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
966 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
967 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
968 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
969 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
970 * glib/dbus-gvalue.h (dbus_g_value_types_init)
971 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
972 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
974 Prefix name with _ to ensure they're not exported. All callers
977 * glib/dbus-gvalue.c (typecode_to_gtype)
978 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
979 (signature_iter_to_g_type_dict)
980 (signature_iter_to_g_type_array)
981 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
982 (dbus_gtypes_from_arg_signature):
983 Move to dbus-gsignature.c.
985 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
986 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
987 (dbus_binding_tool_output_glib_client): Ditto.
989 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
990 and dbus-gsignature.h
992 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
995 2005-08-03 Colin Walters <walters@verbum.org>
997 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
998 catch any incompatible changes accidentally made.
1000 2005-08-03 Havoc Pennington <hp@redhat.com>
1002 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1003 typo, from Julien Puydt
1005 * bus/connection.c (bus_connection_disconnected): we were always
1006 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1008 2005-08-01 Colin Walters <walters@verbum.org>
1010 Patch from Joe Markus Clarke:
1012 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1015 2005-08-01 Colin Walters <walters@verbum.org>
1017 Patch from Joe Markus Clarke:
1019 * tools/dbus-send.c (main):
1021 Don't use C99 style initializers (bug #3933).
1023 2005-08-01 Colin Walters <walters@verbum.org>
1025 Patch from Joe Markus Clarke:
1027 * glib/dbus-gvalue.c (dbus_g_value_types_init):
1028 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
1029 * glib/dbus-gobject.c (write_interface):
1031 Don't use C99 style initializers (bug #3933).
1033 2005-07-31 Havoc Pennington <hp@redhat.com>
1035 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1036 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1038 2005-07-30 Havoc Pennington <hp@redhat.com>
1040 * fix a bunch of Doxygen warnings and mistakes
1042 2005-07-30 Havoc Pennington <hp@redhat.com>
1044 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1045 DBUS_BUILD_TESTS since it's now used in production code
1047 2005-07-29 Havoc Pennington <hp@redhat.com>
1049 * test/glib/test-profile.c (write_junk): initialize the junk
1050 buffer so valgrind doesn't have a breakdown
1052 2005-07-29 Havoc Pennington <hp@redhat.com>
1054 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1055 (match_rule_matches): remove unused arg
1056 (test_matching): add tests for match_rule_matches()
1058 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1059 do arg0='foo' arg5='bar' in the match rules
1060 (match_rule_matches): don't match if the arg0='foo' doesn't match.
1062 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1064 2005-07-29 Ross Burton <ross@openedhand.com>
1066 * dbus/dbus-connection.c:
1067 Don't create a DBusCondVar which is never used.
1069 2005-07-27 Ross Burton <ross@openedhand.com>
1071 * dbus/dbus-message.c:
1072 Reduce the size of the maximum cached message to 10K.
1074 2005-07-25 Ross Burton <ross@openedhand.com>
1076 * glib/dbus-gproxy.c:
1077 Remove matches when all proxies are unregistered.
1079 2005-07-24 Colin Walters <walters@verbum.org>
1081 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1082 typedata; recursive arrays won't have it.
1084 * test/glib/test-dbus-glib.c:
1085 * test/glib/test-service-glib.c:
1086 * test/glib/test-service-glib.xml: Add recursive arrays tests.
1088 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
1090 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1091 proxies.py, service.py: Cleanup of code after running it through the
1092 pyflakes code checker mostly dealing with undefined names.
1093 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1095 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1097 * NEWS: Update to 0.35.2
1099 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1101 * python/_dbus.py: Remove import of the dbus.services
1102 module as it no longer exists (patch from Dimitur Kirov)
1104 * python/service.py (Object::__init__): Fixed typo
1105 s/name/bus_name (patch from Dimitur Kirov)
1107 * python/examples/example-signal-emitter.py: import dbus.glib
1108 to get the main loop and use glib mainloop instead of gtk so
1109 X doesn't have to be running.
1111 * python/examples/example-signal-recipient.py: import dbus.glib
1112 to get the main loop and use glib mainloop instead of gtk so
1113 X doesn't have to be running. Import the decorators module
1116 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
1117 didn't pick up on but are needed to build
1119 * configure.in: upped version to 0.35.2
1121 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1122 added Colin Walters' SELinux API rename patch from head
1123 s/unix sercurity context/selinux security context/
1125 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
1127 * python/Makefile.am: dbus_binding.pxd.in should be included
1128 in EXTRA_DIST not dbus_binding.pxd
1129 fix up $(srcdir) hopefully for the last time
1131 * NEWS: Update to 0.35.1
1133 2005-07-16 Colin Walters <walters@verbum.org>
1135 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1136 from bus_driver_handle_get_connection_unix_security_context. Update for
1138 (message_handlers): Update for renames.
1140 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1141 _dbus_string_init failure correctly.
1142 (bus_selinux_append_context): Convert SID to context. Append it
1144 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1147 * bus/selinux.h: Update prototype.
1149 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1150 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1152 2005-07-15 Colin Walters <walters@verbum.org>
1154 * doc/TODO: Add note about convenience wrappers.
1156 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1158 * NEWS: Update to 0.35
1160 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1162 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1163 so distcheck doesn't fail
1165 * glib/examples/Makefile.am: Add example-service.xml and
1166 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1168 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1169 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1171 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1172 compiler looks in the right places during distcheck
1174 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1176 * glib/example/Makefile.am: Fix a typo which cause make distcheck
1179 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1181 * python/examples/example-service.py,
1182 python/examples/example-signal-emitter.py: Fixed up examples
1185 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1187 * python/__init__.py: Upped to version (0,42,0) because of
1190 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1192 * ChangeLog: fix date in last entry
1194 * configure.in, bus/system.conf.in: add the ability to configure
1195 the system bus user at compiletime with the --with-dbus-user flag
1196 (patch from Kristof Vansant)
1198 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1200 * bus/dispatch.c, test/test-service.c: Add testcase
1201 for sending messages to oneself (TODO item).
1203 * python/service.py (class Object): Swap ordering of bus_name
1204 and object_path parameters to better support inheritance.
1206 * doc/dbus-tutorial.xml: change Python docs to reflect change
1207 in parameter ordering and fix the inheritance section.
1209 * doc/TODO: remove sending message to oneself TODO item
1211 2005-07-15 Ross Burton <ross@openedhand.com>
1213 * glib/dbus-gproxy.c:
1214 Fix a leak when calling methods via the proxy.
1216 2005-07-15 Colin Walters <walters@verbum.org>
1218 * bus/selinux.c (bus_selinux_append_context): Wrap in
1221 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1223 * python/_dbus.py (Bus::remove_signal_receiver):
1224 don't add a callback to the match if none has been passed in
1226 * python/matchrules.py (SignalMatchTree::remove): if the rule
1227 being matched does not have a callback treat it as a wildcard
1230 * doc/dbus-tutorial.xml: Add Python tutorial
1232 2005-07-14 Colin Walters <walters@verbum.org>
1235 (bus_driver_handle_get_connection_unix_security_context): New function.
1236 (message_handlers): Add.
1238 * bus/selinux.c (bus_selinux_append_context): New function; appends
1239 security context to message.
1241 * bus/selinux.h: Prototype.
1243 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1245 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1247 * bus/activation.c: clean up all tabs to be 8 spaces
1248 (bus_activation_activate_service): make sure we clean up
1251 * bus/dispatch.c: clean up all tabs to be 8 spaces
1252 (check_shell_fail_service_auto_start): New function
1253 tests to make sure we get fail properly when trying to auto start a service
1254 with a faulty command line
1255 (check_shell_service_success_auto_start): New function tests to make sure
1256 auto started services get the arguments on the command line
1258 * test/test-shell-service.c: Added service for testing auto-starting with
1259 command line arguments
1261 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
1262 test/data/valid-service-files/debug-shell-echo-success.service.in:
1263 Added service files for testing auto-starting with command line arguments
1265 * */.cvsignore: added a bunch of generated files to various .cvsignore files
1267 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
1269 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1271 * dbus/Makefile.am: added new files to build.
1273 * bus/activation.c (bus_activation_activate_service): support
1274 activation commands with parameters.
1276 * test/shell-test.c: added test program for the shell parsing
1279 2005-07-13 David Zeuthen <davidz@redhat.com>
1281 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1282 64 bit signed and unsigned parameters
1284 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
1286 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1288 * python/service.py (class Name): renamed BusName to make it clearer
1289 what the object is for (a name on the bus)
1291 * python/examples/example-service.py,
1292 python/examples/example-signal-emitter.py: change the Name object to
1295 2005-07-12 Colin Walters <walters@verbum.org>
1297 Patch from Jim Gettys <Jim.Gettys@hp.com>.
1299 * tools/dbus-launch.c: Include sys/select.h.
1301 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
1302 * python/dbus_bindings.pyx.in: removed
1304 * python/dbus_bindings.pyx: Added.
1305 - Fixed some memleaks (patch from
1306 Sean Meiners <sean.meiners@linspireinc.com>)
1307 - Broke out the #include "dbus_h_wrapper.h" and put it in its
1308 own pxd file (Pyrex definition)
1309 - Broke out glib dependancies into its own pyx module
1311 * python/dbus_bindings.pdx: Added.
1312 - Defines C class Connection for exporting to other modules
1314 * python/dbus_glib_bindings.pyx: Added.
1315 - New module to handle lowlevel dbus-glib mainloop integration
1317 * python/glib.py: Added.
1318 - Registers the glib mainloop when you import this module
1320 * python/services.py: Removed (renamed to service.py)
1322 * python/service.py: Added.
1323 - (class Server): renamed Name
1325 * python/__init__.py: Bump ro version (0,41,0)
1326 -don't import the decorators or service module
1327 by default. These now reside in the dbus.service namespace
1329 * python/_dbus.py (Bus::__init__): Add code run the main loop
1330 setup function on creation
1332 * python/examples/example-service.py,
1333 python/examples/example-signal-emitter.py: update examples
1335 * python/examples/gconf-proxy-service.py,
1336 python/examples/gconf-proxy-service2.py: TODO fix these up
1338 * doc/TODO: Addition
1339 - Added a Python Bindings 1.0 section
1340 - added "Add match on args or match on details to match rules"
1343 2005-07-12 Colin Walters <walters@verbum.org>
1345 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
1346 (statemachine-glue.h):
1347 * glib/examples/Makefile.am (example-service-glue.h)
1348 (example-signal-emitter-glue.h):
1349 * glib/Makefile.am (dbus-glib-error-switch.h):
1350 Add libtool --mode=execute so we use the built library instead
1351 of any installed one.
1353 2005-07-11 Colin Walters <walters@verbum.org>
1355 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1356 (dbus_g_value_types_init): Remove assertion.
1357 (dbus_g_value_get_g_type, dbus_g_value_open)
1358 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1359 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1360 functions related to DBusGValue. Now we marshal/demarshal
1361 structures as GValueArray.
1362 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1364 (signature_iter_to_g_type_array): Don't call
1365 signature_iter_to_g_type_struct.
1366 (signature_iter_to_g_type_struct): Delete.
1367 (dbus_gvalue_to_signature): Delete.
1368 (dbus_gvalue_to_signature): New function with same name as other
1369 one; we can convert structures to signatures.
1370 (demarshal_valuearray): New function.
1371 (get_type_demarshaller): Use it.
1372 (demarshal_recurse): Delete.
1373 (marshal_proxy): New function.
1374 (marshal_map): Warn if we can't determine signature from type.
1375 (marshal_collection_ptrarray): Ditto.
1376 (marshal_collection_array): Ditto.
1377 (get_type_marshaller): Use marshal_valuearray.
1378 (marshal_recurse): Delete.
1379 (_dbus_gvalue_test): Add some tests.
1381 * dbus/dbus-glib.h (struct _DBusGValueIterator):
1382 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1383 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1384 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1385 (dbus_g_value_free): Remove prototypes.
1387 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1390 * glib/examples/example-service.c:
1391 * glib/examples/example-client.c: Implement GetTuple.
1393 * test/glib/test-dbus-glib.c:
1394 * test/glib/test-service-glib.c:
1395 * test/glib/test-service-glib.xml: Add structure tests.
1397 2005-07-10 Colin Walters <walters@verbum.org>
1399 * doc/TODO: Knock off some GLib items with this patch.
1401 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
1402 (_dbus_gvalue_signals_error): New functions.
1404 * glib/dbus-gvalue-utils.h: Prototype them.
1406 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1407 and change to not output const/retval flags for input args. All
1409 (invoke_object_method): Refactor to handle return values. Add
1410 some more comments in various places. Remove debug g_print.
1412 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1414 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1416 (compute_gsignature): New function; refactored from code from
1417 compute_marshaller and compute_marshaller_name. Enhance to
1418 handle return values and async ops more cleanly. Update for
1419 async ops returning NONE instead of BOOLEAN.
1420 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1421 and output appropriate string.
1422 (generate_glue): Handle return value annotation. Also don't dump
1423 constness flag for input arguments.
1425 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1426 files shared between installed library and utilities.
1427 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1428 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1429 binding tool can access gtype utility functions.
1431 * test/glib/test-service-glib.c:
1432 * test/glib/test-service-glib.xml:
1433 * test/glib/test-dbus-glib.c: Add some tests for return values.
1435 2005-07-09 Colin Walters <walters@verbum.org>
1437 * glib/dbus-gparser.c (parse_annotation): Add annotations to
1438 argument if available, not method.
1440 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1441 (invoke_object_method): First, remove some redundant
1442 GValues (object_value, error_value) in favor of working on
1443 array directly. Second, rework constness to be less buggy.
1444 Now we iterate directly over the argument metadata instead
1445 of parallel iterating over output signature and metadata.
1447 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1449 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1450 annotation on input args.
1452 2005-07-09 Colin Walters <walters@verbum.org>
1454 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1457 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1460 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1461 (method_dir_signature_from_object_info): Handle arg_iterate change.
1462 (write_interface): Ditto.
1463 (lookup_object_info): Don't barf if format_version is > 0.
1464 (invoke_object_method): Handle arg constness.
1466 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1467 (arg_info_new): Create.
1468 (arg_info_unref): Destroy.
1469 (arg_info_get_annotations, arg_info_get_annotation)
1470 (arg_info_add_annotation): New functions.
1472 * glib/dbus-gidl.h: Prototype them.
1474 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1475 args, disallow them in properties.
1476 (parse_annotation): Handle arg annotations.
1478 * test/glib/test-service-glib.xml:
1479 * test/glib/test-service-glib.c: Update to make some methods
1482 2005-07-08 Colin Walters <walters@verbum.org>
1484 * test/glib/test-service-glib.xml:
1485 * test/glib/test-service-glib.c:
1486 * test/glib/test-dbus-glib.c: Test a{sv}.
1488 * glib/examples/statemachine/statemachine.c:
1489 * glib/examples/statemachine/statemachine-server.c:
1490 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1491 add progress bar, etc.
1493 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1494 needed anymore due to generic array/map marshalling.
1495 (dbus_g_value_types_init): Don't register basic arrays or the
1497 (dbus_gtype_from_signature_iter): Don't try to recurse into
1499 (dbus_gtype_to_signature): Check collection/map before type
1501 (demarshal_garray_basic): Renamed to demarshal_collection_array.
1502 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1503 generic map creation/append functions instead of hash table
1505 (get_type_demarshaller): Handle maps.
1506 (demarshal_collection): Dispatch on collection type to either
1507 demarshal_collection_ptrarray or demarshal_collection_array.
1508 (get_type_marshaller): Handle maps.
1509 (marshal_collection): Dispatch collection type to either
1510 marshal_collection_ptrarray or marshal_collection_array.
1511 (_dbus_gvalue_test): New test.
1513 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1514 (hash_free_from_gtype): Use it to free GValues.
1515 (hashtable_append): New function.
1516 (ptrarray_append): Fix prototype.
1517 (slist_append): Ditto.
1518 (_dbus_gvalue_utils_test): Extend tests.
1520 * glib/dbus-gtype-specialized.c
1521 (dbus_g_type_specialized_init_append): Renamed from
1522 dbus_g_type_specialized_collection_init_append. Remove const from
1523 value, since we steal it.
1524 (dbus_g_type_specialized_map_append): New function.
1526 * glib/dbus-gtype-specialized.h: Update prototypes.
1527 Add DBusGTypeSpecializedMapAppendFunc.
1529 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1532 * glib/dbus-gtest.h: Prototype it.
1534 2005-07-08 Ross Burton <ross@openedhand.com>
1537 Add DBysGAsyncData for the async bindings.
1539 * glib/dbus-binding-tool-glib.c:
1540 Re-enable the async bindings.
1542 * test/glib/test-dbus-glib.c:
1543 Add a test for the generated async bindings.
1545 2005-07-08 Colin Walters <walters@verbum.org>
1547 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1550 2005-07-08 Colin Walters <walters@verbum.org>
1552 * tools/Makefile.am: Kill of print-introspect in favor of using
1553 dbus-send --print-reply=literal.
1555 * test/glib/test-service-glib.xml:
1556 * test/glib/test-service-glib.c (my_object_get_objs): New test
1559 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1560 (main): Test GetObjs.
1562 * glib/examples/statemachine/Makefile.am:
1563 * glib/examples/statemachine/sm-marshal.list:
1564 * glib/examples/statemachine/statemachine-client.c:
1565 * glib/examples/statemachine/statemachine-server.c:
1566 * glib/examples/statemachine/statemachine-server.xml:
1567 * glib/examples/statemachine/statemachine.c:
1568 * glib/examples/statemachine/statemachine.h:
1569 * glib/examples/statemachine/statemachine.xml:
1573 * glib/examples/example-service.c (main): Move invocation
1574 of dbus_g_object_type_install_info earlier, to emphasize it
1575 should only be done once.
1577 * glib/examples/example-signal-emitter.c (main): Ditto.
1579 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1581 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1582 (dbus_gvalue_marshal): Update prototypes.
1584 * glib/dbus-gvalue.c: Update all marshalling functions to take
1585 const GValue instead of GValue.
1586 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1588 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1590 (dbus_gtype_to_signature): Handle generic collecitons and maps.
1591 Return a newly-allocated string.
1592 (demarshal_proxy, demarshal_object_path, demarshal_object)
1593 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1594 we get the wrong types from message.
1595 (get_type_demarshaller): New function, extracted from
1596 dbus_gvalue_demarshal.
1597 (demarshal_collection): New function, demarshals generic
1599 (dbus_gvalue_demarshal): Just invoke result of
1600 get_type_demarshaller. Throw error if we don't have one.
1601 (marshal_garray_basic): Abort on OOM.
1602 (get_type_marshaller): New function, extracted from
1603 dbus_gvalue_marshal.
1604 (collection_marshal_iterator, marshal_collection): New functions;
1605 implements generic marshalling for an iteratable specialized
1607 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1609 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1611 (ptrarray_value_from_gvalue): Ditto.
1612 (ptrarray_append, ptrarray_free): New functions.
1613 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
1614 (slist_append, slist_end_append, slist_free): New functions.
1615 (dbus_g_type_specialized_builtins_init): Add append fuctions
1616 for GPtrArray and GSList. Register GSList.
1617 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1619 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1621 (dbus_g_type_specialized_collection_init_append)
1622 (dbus_g_type_specialized_collection_append)
1623 (dbus_g_type_specialized_collection_end_append): Prototype.
1624 (DBusGTypeSpecializedCollectionVtable): Add append_func and
1627 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
1628 (dbus_g_type_specialized_collection_append)
1629 (dbus_g_type_specialized_collection_end_append): New functions.
1630 (dbus_g_type_map_value_iterate): Take const GValue.
1631 (dbus_g_type_collection_value_iterate): Ditto.
1633 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1634 _dbus_gvalue_utils_test.
1636 * glib/dbus-gtest.h: Prototype it.
1638 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1639 using uninitialized owner_list.
1640 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1642 (dbus_g_proxy_end_call_internal): Update to use error set
1643 from dbus_gvalue_demarshal instead of setting it here.
1644 (dbus_g_proxy_begin_call): Move return_if_fail here.
1646 * glib/dbus-gobject.c (write_interface): Update for
1647 dbus_gtype_to_signature returning new string.
1649 * configure.in: Add glib/examples/statemachine.
1651 2005-07-08 Joe Shaw <joeshaw@novell.com>
1653 * configure.in: Add a configure option, --with-console-auth-dir
1655 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1656 new setting. Patch from Kay Sievers.
1658 2005-07-06 Colin Walters <walters@verbum.org>
1660 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1661 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1662 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1663 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1664 Delete in favor of dbus_g_proxy_begin_call and
1665 dbus_g_proxy_cancel_call.
1666 (DBusGProxyCall, DBusGProxyCallNotify): New.
1667 (dbus_g_proxy_begin_call): Change prototype to take callback, user
1668 data, and destroy function. This replaces
1669 dbus_g_pending_call_set_notify.
1670 (dbus_g_proxy_cancel_call): Prototype.
1671 (DBusGAsyncData): Delete, shouldn't be needed anymore.
1673 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1675 (struct _DBusGProxyManager): Add bus_proxy member, which is an
1676 internal proxy for calls to the bus. Remove
1677 pending_nameowner_calls, now the internal proxy keeps track.
1678 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1679 pending_nameowner_calls.
1680 (got_name_owner_cb): Update prototype, and use
1681 dbus_g_proxy_end_call.
1682 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1683 (dbus_g_proxy_manager_register): Delete directly libdbus code in
1684 favor of using internal proxy.
1685 (dbus_g_proxy_manager_unregister): Update to use
1686 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1687 (dbus_g_proxy_init): Initialize pending calls map.
1688 (dbus_g_proxy_constructor): New.
1689 (dbus_g_proxy_class_init): Add get/set property functions,
1690 constructor, and add NAME, PATH, and INTERFACE properties.
1691 (cancel_pending_call): New function.
1692 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1694 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1695 (GPendingNotifyClosure): New structure.
1696 (d_pending_call_notify, d_pending_call_free): Moved here from
1698 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1700 (manager_begin_bus_call): New internal function for talking to
1702 (dbus_g_proxy_new): Construct object using GObjet properties.
1703 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1704 Create closure of same, and insert call into map of pending calls.
1705 (dbus_g_proxy_end_call_internal): Take call id instead of pending
1706 call. Look up pending call in current set. Remove it when we've
1708 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1709 (dbus_g_proxy_begin_call): Change API to take callback, user data,
1710 and destroy function directly.
1711 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1712 (dbus_g_proxy_call): Invoke with NULL callback.
1713 (dbus_g_proxy_cancel_call): New function, replaces
1714 dbus_g_pending_call_cancel.
1716 * glib/dbus-gparser.c (validate_signature): Fix call to
1719 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1720 New quark for attaching metadata to GType.
1721 (info_hash): Delete.
1722 (lookup_object_info): Look up using quark.
1723 (dbus_g_object_type_install_info): Check that a type is classed,
1724 not that it's an object. Also just install type data using quark
1725 instead of using global hash.
1727 * glib/dbus-glib.c (dbus_g_pending_call_ref)
1728 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1729 (GPendingNotifyClosure): Delete.
1730 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1731 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1733 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1734 client method generation until we can fix it...
1736 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1737 (load_from_service_thread_func): Ditto.
1739 * tools/dbus-names-model.c (struct NamesModel): Hold
1741 (have_names_notify): Update prototype, use
1742 dbus_g_proxy_cancel_call.
1743 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1745 * tools/dbus-monitor.c (filter_func): Update for print_message
1748 * test/glib/test-dbus-glib.c: Add more tests for async
1749 invocations. Update many begin_call/end_call pairs to just use
1752 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
1753 allows us to dump print-introspect.c.
1755 * tools/dbus-print-message.h (print_message): Add literal argument
1756 to print_message which is intended to allow printing arguments without
1757 metadata like "string=".
1759 * tools/dbus-print-message.c (print_iter): Add literal argument.
1760 (print_message): Allow printing string messages literally.
1762 2005-07-05 Colin Walters <walters@verbum.org>
1764 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1765 Remove value refcount leak, original patch from Jorn Baayen
1766 <jorn@openedhand.com>. Also remove useless extra value in favor
1767 of prepending to value array directly.
1769 2005-07-02 Colin Walters <walters@verbum.org>
1771 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1773 2005-07-01 Colin Walters <walters@verbum.org>
1775 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1777 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1778 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1779 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1780 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1782 2005-06-30 Colin Walters <walters@verbum.org>
1784 * test/glib/test-dbus-glib.c:
1785 * test/glib/test-service-glib.c:
1786 * test/glib/test-service-glib.xml: Update tests for new error
1787 setting bits, also add async tests (patch from Ross Burton).
1789 * test/glib/Makefile.am (test_service_glib_LDADD): Add
1790 DBUS_GLIB_THREADS_LIBS.
1792 * glib/dbus-gproxy.c (get_name_owner)
1793 (dbus_g_pending_call_end_valist): Ditto.
1795 * glib/dbus-gobject.c (error_metadata): New mapping from GError
1796 domain (GQuark) to DBusGErrorInfo.
1797 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1798 quark in error_metadata. Take message interface as default
1799 error message interface.
1800 (gerror_to_dbus_error_message): Pass message interface.
1801 (dbus_set_g_error): Resurrected.
1802 (dbus_g_error_info_free): New function.
1803 (dbus_g_object_type_install_info): Use g_type_class_ref instead
1804 of _peek to actually create the object class if it hasn't been
1806 (dbus_g_error_domain_register): New function.
1808 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1810 * glib/dbus-gparser.c (validate_signature): Ditto.
1812 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1813 (dbus_g_error_domain_register): Prototype.
1815 * glib/dbus-glib.c (dbus_g_error_set): Delete.
1818 2005-06-29 Colin Walters <walters@verbum.org>
1820 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
1821 DBUS_TYPE_G_OBJECT_PATH.
1823 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1824 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1825 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
1826 (dbus_g_object_path_get_g_type): New function.
1827 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1828 to DBUS_TYPE_G_OBJECT_PATH by default.
1829 (demarshal_proxy): Remove unused name variable.
1830 (demarshal_object_path, marshal_object_path): New functions.
1831 (demarshal_proxy_array, marshal_proxy_array): Delete.
1833 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1834 DBUS_TYPE_G_OBJECT_PATH to char *.
1835 (dbus_g_type_get_lookup_function): Map builtin
1836 DBUS_TYPE_G_OBJECT_PATH.
1838 * test/glib/test-dbus-glib.c
1839 * test/glib/test-service-glib.c (my_object_objpath):
1840 Adapt tests to new object path marshalling.
1842 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
1844 * configure.in: force check for Python >= 2.4
1846 2005-06-29 Colin Walters <walters@verbum.org>
1848 Patch from Ross Burton <ross@openedhand.com>
1850 * glib/dbus-gobject.c (invoke_object_method): Unset object
1851 value in all cases, not only in async case.
1853 2005-06-29 Colin Walters <walters@verbum.org>
1855 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
1856 name_call for keeping track of any outgoing GetNameOwner call.
1857 Also add for_owner and associated.
1858 (struct _DBusGProxyManager): Add owner_names, which is hash table
1859 that maps a base name to a list of names it owns (that we're
1860 interested in). Add pending_nameowner_calls which is a list of
1861 all outstanding GetNameOwner; avoids us having to iterate over
1862 every proxy. Add unassociated_proxies which keeps track of name
1863 proxies with no associated name owner.
1864 (dbus_g_proxy_manager_unref): Destroy owner_names.
1865 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
1867 (find_name_in_info, name_owner_foreach)
1868 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
1869 (dbus_g_proxy_manager_monitor_name_owner)
1870 (dbus_g_proxy_manager_unmonitor_name_owner)
1871 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
1872 New functions; they manipulate the owner_names mapping.
1873 (got_name_owner_cb): New function.
1874 (get_name_owner): New function, extracted from
1875 dbus_g_proxy_new_for_name_owner.
1876 (dbus_g_proxy_manager_register): For now we need to keep track of
1877 all NameOwnerChanged. Also if the proxy is for a name, if we
1878 don't already know the name owner, queue a new GetNameOwner
1879 request and add it to our list of unassociated proxies. Otherwise
1881 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
1882 cancel any pending GetNameOwner call, etc.
1883 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
1884 the owner_names mapping to look up the current names for the
1885 signal source, and dispatch to any proxies for that name.
1886 (dbus_g_proxy_new): Initialize new members.
1887 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
1888 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
1889 (dbus_g_pending_call_end_valist): New function, extracted from
1890 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
1891 but want to use the GLib infrastructure. Also note how many
1892 arguments in reply were over.
1893 (dbus_g_pending_call_end): New function, just call
1894 dbus_g_pending_call_end_valist.
1895 (dbus_g_proxy_end_call_internal): Just call
1896 dbus_g_pending_call_end_valist.
1898 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
1899 of builtin marshaller for STRING_STRING_STRING.
1901 * test/glib/test-dbus-glib.c:
1902 * test/glib/test-service-glib.c:
1903 * test/glib/test-service-glib.xml:
1904 Extend tests to cover name proxies, destruction of owner proxies,
1907 * glib/examples/example-signal-recipient.c
1908 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
1910 * tools/dbus-send.c (main): Print D-BUS error name in addition
1913 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
1915 * python/dbus_bindings.pyx.in (cunregister_function_handler,
1916 cmessage_function_handler): Patch from
1917 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
1918 by using the Py_GILState_Ensure/Release to synchronize with the
1921 2005-06-28 Ray Strode <rstrode@redhat.com>
1923 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
1924 babysitter helper process on last unref, bug #2813.
1926 2005-06-27 Colin Walters <walters@verbum.org>
1928 * test/glib/test-dbus-glib.c:
1929 * test/glib/test-service-glib.c:
1930 * test/glib/test-service-glib.xml:
1931 Test hash table signal emitting.
1933 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
1934 types to their fundamental basis types, since this is what
1935 marshallers operate on. Also add an entry for VOID__BOXED.
1936 (dbus_g_object_register_marshaller_array): Convert to fundamental.
1938 2005-06-26 Havoc Pennington <hp@redhat.com>
1940 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
1943 2005-06-26 Colin Walters <walters@verbum.org>
1945 * glib/dbus-glib.c (dbus_set_g_error): Delete.
1946 (dbus_g_error_set): New public function from its ashes; used by
1947 both service-side method implementation and GLib bindings
1949 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
1950 (_dbus_glib_test): Add some tests.
1952 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
1954 * test/glib/test-service-glib.c (my_object_throw_error): Use
1957 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
1958 errors thrown by dbus_g_error_set.
1960 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
1962 * glib/dbus-gparser.c (validate_signature): Ditto.
1964 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
1965 (dbus_g_proxy_end_call_internal): Ditto.
1967 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
1968 converts DBUS_ERROR_x to DBUS_GERROR_x.
1969 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
1971 * doc/TODO: Remove error TODO.
1973 * doc/dbus-tutorial.xml: Update with documentation about error
1976 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
1977 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
1978 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
1980 2005-06-22 Colin Walters <walters@verbum.org>
1982 Patch from Ross Burton <ross@openedhand.com>
1984 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
1986 2005-06-20 Colin Walters <walters@verbum.org>
1988 * configure.in: Add glib/examples.
1990 * glib/Makefile.am: Add examples/
1992 * glib/examples/.cvsignore
1993 * glib/examples/Makefile.am
1994 * glib/examples/example-client.c
1995 * glib/examples/example-service.c
1996 * glib/examples/example-service.xml
1997 * glib/examples/example-signal-emitter.c
1998 * glib/examples/example-signal-emitter.xml
1999 * glib/examples/example-signal-recipient.c:
2000 New files; GLib binding examples, ported from
2003 2005-06-20 Colin Walters <walters@verbum.org>
2006 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2009 * glib/dbus-binding-tool-glib.c:
2010 * doc/dbus-tutorial.xml:
2011 * test/glib/test-dbus-glib.c: Update for rename.
2013 2005-06-20 Colin Walters <walters@verbum.org>
2015 Patch suggested by Ross Burton <ross@openedhand.com>
2017 * glib/dbus-gobject.c (export_signals): Free signal name.
2018 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2019 memory leak. Add a bit of documentation.
2020 (dbus_g_method_return_error): Free context, and note we do
2023 2005-06-18 Murray Cumming <murrayc@murrayc.com>
2026 * glib/dbus-gobject.c:
2027 * glib/dbus-gproxy.c:
2028 * glib/dbus-gvalue.c: Predeclare structs as
2029 typedef struct _Something Something instead of
2030 typedef struct Something Something, so we can
2031 redeclare the prototypes. Other GNOME libraries
2034 2005-06-17 Colin Walters <walters@verbum.org>
2036 * tools/dbus-names-model.c (have_names_notify): Fix call
2037 to dbus_g_proxy_end_call.
2039 2005-06-17 Colin Walters <walters@verbum.org>
2041 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2042 spew warnings if we get malformed remote signals.
2044 * glib/dbus-gobject.c (propsig_iterate): New function.
2045 (lookup_object_info): New function, extracted from
2046 lookup_object_and_method.
2047 (introspect_properties, introspect_signals): Delete; these
2048 are merged into write_interface.
2049 (write_interface): Write out signals and properties here;
2050 dump the org.gtk.object stuff and use the interface given
2051 in the introspection data blob. Also fix up property XML.
2052 (lookup_values): New function.
2053 (introspect_interfaces): Gather a mapping from interface to a
2054 list of its methods, signals, and properties, then write out
2056 (lookup_object_and_method): Use lookup_object_info.
2057 (struct DBusGSignalClosure): Add interface.
2058 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2059 we can just use the constant data.
2060 (dbus_g_signal_closure_finalize): Don't free signal name.
2061 (signal_emitter_marshaller): Use interface from signal closure.
2062 (export_signals): Only export signals mentioned in introspection
2064 (dbus_g_connection_register_g_object): Warn if we have no
2065 introspection data for an object.
2066 (funcsig_equal): Remove unused variable.
2067 (dbus_g_object_register_marshaller): Take varargs instead of
2069 (dbus_g_object_register_marshaller_array): New function,
2070 extracted from old dbus_g_object_register_marshaller.
2072 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2073 signals and property data.
2074 (write_quoted_string): New function, extracted from generate_glue.
2075 (generate_glue): Write signals and properties to introspection
2078 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2079 exported_signals and exported_properties.
2080 (dbus_g_object_register_marshaller): Update prototype.
2081 (dbus_g_object_register_marshaller_array): Prototype.
2083 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2085 * test/glib/test-service-glib.c: Add new test signals and method
2088 * test/glib/test-service-glib.xml: Add some test signals.
2090 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2091 and my-object-marshal.h
2092 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2093 my-object-marshal.c.
2094 (my-object-marshal.c, my-object-marshal.h): Implement.
2096 * test/glib/.cvsignore: Update.
2098 * doc/TODO: Remove two GLib TODO items fixed by this
2101 2005-06-16 Colin Walters <walters@verbum.org>
2103 * doc/TODO: Update for GLib bindings.
2105 2005-06-16 Colin Walters <walters@verbum.org>
2107 * glib/dbus-binding-tool-glib.c:
2108 * glib/dbus-gobject.c:
2109 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
2110 from Ross Burton, for his GLib bindings work.
2112 2005-06-16 Colin Walters <walters@verbum.org>
2114 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2115 to iterate instead of walking to G_TYPE_INVALID.
2117 Patch based on a patch from Ryan Gammon.
2119 2005-06-16 Colin Walters <walters@verbum.org>
2121 * bus/bus.c (bus_context_new): Set parser to NULL
2122 after we unref it (Patch from Chris Boscolo, #2174).
2124 2005-06-16 Colin Walters <walters@verbum.org>
2126 * python/dbus_bindings.pyx.in: Import size_t,
2127 __int64_t, __uint64_t, and __signed.
2129 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2130 Define cmsg struct, output it.
2131 (_dbus_read_credentials_unix_socket):
2134 Patch from Joe Markus Clarke for FreeBSD support.
2136 2005-06-16 Colin Walters <walters@verbum.org>
2138 * tools/dbus-send.c (append_array): Use strtok.
2139 (append_dict): New function.
2140 (type_from_name): New function, extracted from main.
2141 (main): Handle sending dicts.
2143 * tools/dbus-print-message.c (print_iter): Print dict
2146 2005-06-16 Colin Walters <walters@verbum.org>
2148 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2149 values as the empty string (#2948).
2151 2005-06-16 Colin Walters <walters@verbum.org>
2154 * mono/doc/Makefile.am:
2155 * test/glib/Makefile.am:
2157 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2159 2005-06-16 Colin Walters <walters@verbum.org>
2161 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2162 header byte order from expected byte order (Patch from Chris Wilson, #3475).
2164 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
2165 Increment pointer after swapping fixed array. Add assertion
2168 2005-06-15 Colin Walters <walters@verbum.org>
2170 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2171 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
2173 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2175 * NEWS: Update to 0.34
2177 2005-06-15 David Zeuthen <davidz@redhat.com>
2179 * configure.in (LT_CURRENT): Revert back to 1 as the library
2180 hasn't changed and we've certainly not committed to protocol
2181 stability yet. All this does is to break ABI. See commit note
2182 from hp@redhat.com 2005-05-05 for details.
2184 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2186 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
2187 (_dbus_connection_run_builtin_filters): New method
2188 (dbus_connection_dispatch): Run the builtin filters which in turn
2189 runs the peer filter which handles Ping messages.
2192 - Ping isn't handled: This patch fixes it
2194 - Add a test case for the Ping message: added TODO item
2196 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2198 * dbus/dbus-message.c:
2199 (dbus_message_has_path): New method
2200 (dbus_message_has_interface): New method
2201 (dbus_message_has_member): New method
2203 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2206 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
2207 the keyring directory is private to the user
2210 - The convenience functions in dbus-bus.h should perhaps have
2211 the signatures that they would have if they were autogenerated
2212 stubs. e.g. the acquire service function. We should also evaluate
2213 which of these functions to include, in light of the fact that
2214 GLib/Qt native stubs will probably also exist.: Punted
2216 - add dbus_message_has_path(), maybe has_member/interface:
2219 - in dbus-keyring.c, enforce that the keyring dir is not
2220 world readable/writable: Fixed in this patch
2222 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2224 * dbus/dbus-marshal-validate.h: Added a new validation
2225 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
2226 out of memory errors when validating signitures
2228 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2229 in places where we previously used DBUS_VALID and a FALSE return
2230 value to indicate OOM
2232 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2233 Use a stack to track the number of elements inside containers. The
2234 stack values are then used to validate that dict entries have only two
2235 elements within them.
2236 (validate_body_helper): check the reason for failure when validating
2239 * dbus/dbus-message.c (load_message): use
2240 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
2241 DBUS_VALID and a FALSE return value to indicate OOM
2243 * doc/TODO: remove "- validate dict entry number of fields" as this
2246 2005-06-14 David Zeuthen <davidz@redhat.com>
2248 * bus/bus.c (process_config_every_time): Drop existing conf-dir
2249 watches (if applicable) and add new watches
2251 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2252 (main): Setup SIGIO signal handler if using D_NOTIFY
2254 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2256 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2257 (merge_included): Also merge conf_dirs list
2258 (bus_config_parser_unref): Clear conf_dirs list
2259 (include_dir): Add directory to conf_dirs list
2260 (bus_config_parser_get_conf_dirs): New function
2262 * bus/dir-watch.[ch]: New files
2264 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2266 * configure.in: Add checks for D_NOTIFY on Linux
2268 2005-06-14 Colin Walters <walters@verbum.org>
2270 * glib/dbus-binding-tool-glib.c:
2271 * glib/dbus-gobject.c:
2272 * glib/dbus-gvalue.c: Fix indentation and brace style.
2274 2005-06-14 Ross Burton <ross@openedhand.com>.
2276 * glib/dbus-glib.h: Make DBusGMethodInvocation
2277 a private structure. Rearrange prototypes a bit.
2279 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2280 documentation for first_arg_type.
2282 * glib/dbus-gobject.c: Move DBusGMethodInvocation
2283 here, add documentation. Move dbus_g_method_return
2284 and dbus_g_method_return_error into public API
2287 2005-06-14 Colin Walters <walters@verbum.org>
2289 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2290 Add missing return statements, noticed by Ross Burton.
2292 2005-06-13 Ross Burton <ross@openedhand.com>.
2294 * glib/dbus-gobject.c: Handle errors on message
2295 demarshalling by sending error message back.
2296 * glib/dbus-gvalue.c: Initialize return variables.
2298 2005-06-13 Colin Walters <walters@verbum.org>
2300 * glib/Makefile.am: Fix thinko in last patch.
2302 2005-06-13 Colin Walters <walters@verbum.org>
2304 * glib/Makefile.am: Move dbus-gtype-specialized.c
2305 and dbus-gtype-specialized.h into a _HEADERS variable,
2308 2005-06-12 Colin Walters <walters@verbum.org>
2310 Async signals and various bugfixes and testing by
2311 Ross Burton <ross@openedhand.com>.
2313 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2314 (dbus_gvalue_genmarshal_name_from_type)
2315 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2316 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2317 (dbus_g_value_types_init, dbus_gtype_from_signature)
2318 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2319 (dbus_gtypes_from_arg_signature): New function prototypes.
2320 (dbus_gvalue_demarshal): Take context and error arguments.
2321 (dbus_gvalue_demarshal_variant): New function.
2322 (dbus_gvalue_demarshal_message): New function.
2323 (dbus_gvalue_store): Delete.
2325 * glib/dbus-gvalue.c:
2327 File has been almost entirely rewritten; now we special-case
2328 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2329 hash tables correctly, etc. Full support for recursive values
2330 is not yet complete.
2332 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2333 argument of signal to G_TYPE_POINTER since we now pass a
2335 (lookup_g_marshaller): Delete in favor of
2336 _dbus_gobject_lookup_marshaller.
2337 (marshal_dbus_message_to_g_marshaller): Use
2338 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2339 to handle remote signal callbacks.
2340 (dbus_g_proxy_new_from_proxy): New function; creates a new
2341 DBusGProxy by copying an existing one.
2342 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2343 (dbus_g_proxy_get_path): New functions.
2344 (dbus_g_proxy_marshal_args_to_message): New function;
2345 factored out of existing code.
2346 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2347 from a varargs array.
2348 (dbus_g_proxy_begin_call_internal): New function.
2349 (dbus_g_proxy_end_call_internal): New function.
2350 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2351 as arguments; simply invoke dbus_g_proxy_begin_call_internal
2352 after collecting args into value array.
2353 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2354 invoke dbus_g_proxy_end_call_internal.
2355 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2357 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2359 (array_free_all): New function.
2360 (dbus_g_proxy_add_signal): Take GTypes.
2362 * glib/dbus-gobject.h:
2363 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2364 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2367 * glib/dbus-gobject.c: Add a global marshal_table hash which
2368 stores mappings from type signatures to marshallers. Change lots
2369 of invocations of dbus_gtype_to_dbus_type to
2370 dbus_gtype_to_signature.
2371 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2372 (introspect_signals): Fix test for query.return_type.
2373 (set_object_property): Update invocation of dbus_gvalue_demarshal.
2374 (invoke_object_method): Many changes. Handle asynchronous
2375 invocations. Convert arguments with
2376 dbus_gvalue_demarshal_message. Handle errors. Use
2377 DBusSignatureIter instead of strlen on args. Handle all arguments
2378 generically. Special-case variants.
2379 (dbus_g_method_return, dbus_g_method_return_error): New function.
2380 (DBusGSignalClosure): New structure, closes over signal
2382 (dbus_g_signal_closure_new): New function.
2383 (dbus_g_signal_closure_finalize): New function.
2384 (signal_emitter_marshaller): New function; is special marshaller
2385 which emits signals on bus.
2386 (export_signals): New function; introspects object signals and
2388 (dbus_g_object_type_install_info): Take GType instead of
2390 (dbus_g_connection_register_g_object): Invoke export_signals.
2391 (dbus_g_connection_lookup_g_object): New function.
2392 (DBusGFuncSignature) New structure; used for mapping type
2393 signatures to marshallers.
2394 (funcsig_hash): New function; hashes DBusGFuncSignature.
2395 (funcsig_equal): New function; compares DBusGFuncSignature.
2396 (_dbus_gobject_lookup_marshaller): New function.
2397 (dbus_g_object_register_marshaller): New function; used to
2398 register a marshaller at runtime for a particular signature.
2400 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2402 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2403 which notes a server method implementation should be
2406 * glib/dbus-binding-tool-glib.c
2407 (dbus_binding_tool_output_glib_server): Call
2408 dbus_g_value_types_init.
2409 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
2411 (dbus_g_type_get_lookup_function): Turn GType into an invocation
2412 of a lookup function.
2413 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2414 (write_untyped_out_args): New method; write output arguments.
2415 (write_formal_declarations_for_direction): Function for
2417 (write_formal_parameters_for_direction): Function for
2418 writing implementations.
2419 (write_typed_args_for_direction): Function for writing
2420 arguments prefixed with GTypes.
2421 (write_async_method_client): Write out async version
2424 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2425 (dbus_g_type_get_marshal_name): Move mapping from GType
2426 to marshal name into here.
2427 (dbus_g_type_get_c_name): Move into here.
2428 (compute_marshaller): Convert signature to type with
2429 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2430 (compute_marshaller_name): Ditto.
2431 (compute_marshaller): Handle async signal annotations.
2432 (gather_marshallers): Return if we don't have a known
2434 (generate_glue): Collect introspection blob here, and
2435 write all of the blob at the end. This allows an object
2436 with multiple interfaces to work.
2437 Mark async methods in introspection blob.
2439 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2440 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2441 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2443 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2444 avoids people accidentally using DBUS_TYPE_* which should
2445 not be necessary anymore.
2446 Do include dbus-gtype-specialized.h, which are utilities
2447 for GLib container types.
2448 Add various #defines for types such as
2449 DBUS_TYPE_G_BOOLEAN_ARRAY.
2450 (DBusGValueIterator, DBusGValue): Define, not fully used
2452 (dbus_g_value_get_g_type): Type for recursive value.
2453 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2454 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2455 (dbus_g_value_free): Prototypes.
2456 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2457 (dbus_g_proxy_set_interface): Prototype.
2458 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2459 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2461 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2463 (DBusGAsyncData, DBusGMethodInvocation): Structures for
2464 doing async invocations.
2465 (dbus_g_method_return, dbus_g_method_return_error):
2467 * doc/dbus-tutorial.xml: Update GLib section.
2469 * tools/dbus-viewer.c (load_child_nodes): Update
2470 for new invocation type of dbus_g_proxy_end_call.
2471 (load_from_service_thread_func): Ditto.
2473 * tools/print-introspect.c (main): Ditto.
2475 * tools/dbus-names-model.c (have_names_notify)
2476 (names_model_reload, names_model_set_connection)
2479 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2480 needed since Python bindings use GLib bindings.
2482 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2483 Add --prefix argument.
2485 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
2486 unneeded --ignore-unsupported arg.
2488 * test/glib/test-service-glib.c:
2489 * test/glib/test-service-glib.xml:
2490 * test/glib/test-dbus-glib.c: Add many more tests.
2492 2005-06-06 David Zeuthen <davidz@redhat.com>
2494 * doc/TODO: Add item about need to remove deprecated functions.
2496 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2498 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2499 to repair the ABI which was broken with the last commit.
2501 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
2503 * dbus/dbus-connection.c, dbus/dbus-connection.h
2504 (dbus_connection_disconnect): renamed to dbus_connection_close
2505 for API symmetry with dbus_connection_open
2506 (_dbus_connection_open_internal):
2507 s/dbus_connection_disconnect/dbus_connection_close
2509 * dbus/dbus-bus.c (dbus_bus_get):
2510 s/dbus_connection_disconnect/dbus_connection_close
2512 * bus/connection.c (bus_connections_unref,
2513 bus_connections_setup_connection, bus_connections_expire_incomplete):
2514 s/dbus_connection_disconnect/dbus_connection_close
2516 * bus/dispatch.c (bus_dispatch, kill_client_connection,
2517 kill_client_connection_unchecked, check_hello_connection):
2518 s/dbus_connection_disconnect/dbus_connection_close
2520 * bus/bus.c (new_connection_callback):
2521 s/dbus_connection_disconnect/dbus_connection_close
2523 * tools/dbus-send.c (main):
2524 s/dbus_connection_disconnect/dbus_connection_close
2526 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2527 s/dbus_connection_disconnect/dbus_connection_close
2529 * test/test-service.c (path_message_func, filter_func):
2530 s/dbus_connection_disconnect/dbus_connection_close
2532 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
2534 2005-05-25 Colin Walters <walters@verbum.org>
2536 * dbus/dbus-protocol.h: Move various bus service #defines such
2537 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2539 * dbus/dbus-shared.h: Various defines moved here.
2540 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2542 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
2544 * python/__init__.py: Python bindings deserve a minor version
2545 update. Upped to (0, 40, 2)
2547 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
2549 * python/decorators.py: add explicitly_pass_message decorator
2550 for passing in the dbus message as keyword for edge case signal
2553 * python/matchrules.py (SignalMatchRule.__repr__): fix output
2554 to conform with what dbus expects for match rules
2555 (SignalMatchRule.execute): add the dbus message as a keyword
2556 if the signal handler has requested it
2558 * python/examples/example/signal-recipient.py: added some more
2559 examples on how to hook up to signals
2561 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
2563 * python/decorators.py: import dbus_bindings
2565 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
2566 SignalMatchNode): new classes that implement wildcard signal
2567 callback matching using a tree lookup. Heavily modified from a
2568 patch sent by Celso Pinto (fd.o bug #3241)
2570 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2571 use new match classes to handle signals.
2573 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
2575 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2577 2005-05-18 Havoc Pennington <hp@redhat.com>
2579 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2580 gettext. Not really worth requiring yet perhaps, but any
2581 production quality 1.0 would require it so we should go ahead and
2582 get things set up. We do have a couple token calls to
2583 bindtextdomain in the code already.
2585 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
2587 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2588 when using recursive g_main_loops
2590 * python/_dbus.py (class Bus): add the ProxyObjectClass
2591 alias for ProxyObject to make it easier for the Twisted
2592 networking framework to integrate dbus.
2594 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2595 alias for ProxyMethod to make it easier for the Twisted
2596 networking framework to integrate dbus.
2598 2005-05-11 Ross Burton <ross@openedhand.com>
2600 * glib/dbus-glib-tool.c: Add --prefix argument.
2601 * glib/dbus-binding-tool-glib.h: Add prefix argument.
2602 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2603 Add prefix argument.
2604 (generate_glue): Pass prefix argument down.
2605 (dbus_binding_tool_output_glib_server): Pass prefix to
2608 2005-05-11 Colin Walters <walters@verbum.org>
2610 * tools/dbus-send.c (append_array): New function.
2611 (append_arg): Broken out from main.
2612 (main): Add cheesy hack to send arrays and variants.
2614 * tools/dbus-print-message.c (print_iter): Broken out
2617 2005-05-11 Colin Walters <walters@verbum.org>
2619 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2620 New function, returns signature string for signature iter.
2621 * dbus/dbus-signature.h: Prototype it.
2622 * dbus/dbus-message.c (dbus_message_iter_get_signature):
2623 New function, returns signature string for message iter.
2624 (dbus_message_iter_get_array_len): New function, returns
2626 (dbus_message_iter_get_fixed_array): Fix assertion; this
2627 function should be used when the iter is pointing to the
2628 contents of an array
2629 * dbus/dbus-message.h: Prototypes.
2630 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2631 New function; returns length of an array.
2632 * dbus/dbus-marshal-recursive.h: Prototype it.
2634 2005-05-11 Colin Walters <walters@verbum.org>
2636 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2639 2005-05-08 Havoc Pennington <hp@redhat.com>
2641 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2642 daemon's pid, not the parent's pid, to the file descriptor.
2643 Reported by Taj Morton.
2645 2005-05-05 Havoc Pennington <hp@redhat.com>
2647 * configure.in (LT_*): add notes on how the libtool versioning
2648 works to save thinking. Increment soname to indicate protocol
2649 breakage (though really the library interface hasn't changed I
2652 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2653 verify the GUID received from server matches what we were
2654 expecting, if we had an expectation
2656 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2657 (_dbus_auth_get_guid_from_server): new function
2658 (send_begin): parse the OK args
2660 * doc/dbus-specification.xml: add GUID to the auth protocol
2662 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
2664 * Fix my name in previous changelog ;)
2666 * python/proxies.py (ProxyObject.__getattr__): add further patch
2667 from Anthony Baxter to throw an AttributeError when python
2668 __special__ functions are called instead of marshling them over
2669 the bus (Bug#1685 comment 3).
2671 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
2673 * python/Makefile.am: changed to use pyexecdir for the binding
2674 shared libraries (Bug#2494)
2676 * python/exceptions.py: bring exceptions over from the bindings
2677 so they can be used in applications (Bug#2036)
2678 Make all exceptions derive from DBusException
2680 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2681 of classes so that print obj doesn't throw an exception (Bug #1685)
2683 2005-05-03 Ross Burton <ross@openedhand.com>
2685 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2686 Return if we get an error during registration. Set up a
2687 weak reference on object to unregister if object is destroyed.
2688 (unregister_gobject): New function.
2690 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
2692 * python/dbus_bindings.pyx.in:
2693 - added new type classes for hinting to the marashaler what type
2694 to send over the wire
2695 - added int16 and uint16 marshalers
2696 - Fixed a bug in the type constants that caused int32 to go out
2697 as uint16 over the wire
2698 * python/dbus.py: split up into different files and renamed _dbus.py
2699 * python/__init__.py, python/_util.py, python/decorators.py,
2700 python/exceptions.py, python/proxies.py, python/services.py,
2701 python/types.py: new files split off from dbus.py
2702 * python/Makefile.am: Add new files, remove dbus.py and
2703 install all python files to <python module dir>/dbus
2704 * python/examples/*: Added #!/usr/bin/env python to the top of
2705 every example. Patch provided by Tatavarty Kalyan
2707 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2709 * NEWS: Update to 0.33
2711 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2713 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2714 method for doing async calls
2715 (_pending_call_notification): New C function for handling pendning call
2717 (set_notify): New method for setting pending call notification
2719 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2720 Async capabilities added to remote method calls
2721 (Sender): class removed
2722 (RemoteService): class removed
2723 (ObjectTree): class removed for now
2724 (RemoteObject): Renamed to ProxyObject
2725 (RemoteMethod): Renamed to ProxyMethod
2726 (method): Decorator added for decorating python methods as dbus methods
2727 (signal): Decorator added for decorating python methods as signal emitters
2728 (ObjectType): Metaclass added for generating introspection data and the
2729 method callback vtable
2730 (Interface): Wrapper class added to wrap objects in a dbus interface
2731 (Object): Uses ObjectType as its metaclass and exports Introspect
2732 of the org.freedesktop.DBus.Introspectable interface
2733 (ValidationException, UnknownMethodException): new exceptions
2735 * python/examples/*: Modified to fit with the new bindings
2737 2005-04-23 Havoc Pennington <hp@redhat.com>
2739 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2740 reported by Tony Houghton
2742 * test/test-service.c (main): test
2743 dbus_connection_get_object_path_data()
2745 * dbus/dbus-object-tree.c (find_handler): be sure we always init
2747 (_dbus_object_tree_get_user_data_unlocked): new function used by
2748 dbus_connection_get_object_path_data()
2749 (do_register): add assertion test for get_user_data_unlocked
2750 (object_tree_test_iteration): more tests
2752 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2753 new function from Dan Reed to let you get the user data from
2754 dbus_connection_register_object_path()
2756 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
2758 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2759 in numerous places that did not account for the NULL terminator
2760 (signature_from_seed): changed the manual string copy loop to
2761 just use strcpy instead
2762 make check should now pass
2764 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
2766 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2767 so that it allows messages that are not signals to pass in
2768 NULL as the interface.
2770 2005-04-18 David Zeuthen <davidz@redhat.com>
2772 * glib/dbus-gmain.c (io_handler_destroy_source):
2773 (timeout_handler_destroy_source, connection_setup_free):
2774 Also unref the source to avoid memory leaks.
2776 2005-04-13 David Zeuthen <davidz@redhat.com>
2778 * bus/config-parser.c (bus_config_parser_new): Bump this to a
2779 more reasonable, yet still totally arbitrary, value :-).
2781 2005-04-13 David Zeuthen <davidz@redhat.com>
2783 * doc/TODO: Added an "important for 1.0" item about selinux
2786 2005-04-13 David Zeuthen <davidz@redhat.com>
2788 * bus/selinux.c: Add c-file-style to top of file
2789 (log_audit_callback): Don't free the data here anymore
2790 (bus_selinux_check): Don't take spid and tpid since appending
2791 that to auxdata may OOM.
2792 (bus_selinux_allows_acquire_service): Handle OOM and signal back
2793 to the caller if we are OOM by taking an error object.
2794 (bus_selinux_allows_send): -do-
2796 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2797 and bus_selinux_allows_send
2799 * bus/bus.c (bus_context_check_security_policy): Pass error and
2800 pass on OOM thrown by bus_selinux_allows_send()
2802 * bus/services.c (bus_registry_acquire_service): Pass error and
2803 pass on OOM thrown by bus_selinux_allows_acquire_service()
2805 2005-04-13 Havoc Pennington <hp@redhat.com>
2807 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2808 message at a time to avoid monopolizing the main loop, bug
2809 #2953 from Benjamin Otte
2811 2005-04-09 Havoc Pennington <hp@redhat.com>
2813 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2814 possible overlap, fix from Daniel Reed
2815 (fixup_alignment): fix signedness warnings
2816 (_dbus_string_append_unichar): ditto
2818 2005-04-09 Havoc Pennington <hp@redhat.com>
2820 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2822 * glib/dbus-glib-tool.c (main): fix warning
2824 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2826 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2827 add a new function that can be used in simple applications that
2828 don't have a main loop and are willing to block
2830 2005-04-05 David Zeuthen <davidz@redhat.com>
2832 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2834 * glib/dbus-gmain.c:
2835 (io_handler_destroy_source): Remove from list of IO handlers
2836 of the ConnectionSetup object
2837 (timeout_handler_destroy_source): -do- for timeout handlers
2838 (io_handler_source_finalized): Don't remove from list since
2839 we now do that in io_handler_destroy_source(). Renamed from
2840 io_handler_source_destroyed
2841 (timeout_handler_source_destroyed): -do- for timeout handlers
2842 (connection_setup_free): It is now safe to iterate over all
2843 IO and timeout handlers as the _destroy_source removes them
2844 from the list synchronously
2846 2005-03-30 Havoc Pennington <hp@redhat.com>
2848 * configure.in: change check to gtk 2.4
2850 * tools/dbus-viewer.c (name_combo_changed_callback): remove
2851 gtk_combo_box_get_active_text() usage to decrement GTK requirement
2854 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2858 * HACKING: Fixed realease instructions. configure.in should be updated to
2859 the next release by the person who made the last release.
2861 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
2863 * python/lvalue_cast_post_process.py - removed. Patch has been
2864 submitted to Pyrex maintainers that fixes gcc4.0 errors
2866 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
2868 2005-03-24 Daniel Reed <n@ml.org>
2870 * tools/Makefile.am: Make print-introspect and
2871 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
2873 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
2875 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
2877 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
2878 had in Red Hat packages for a while but for some reason never
2880 (_dbus_is_a_number): New checks if a string
2881 can be converted to a number and does the conversion if it can
2882 (_dbus_user_database_lookup): Add check to see if the given username
2883 is a udi. This allows udi's to be used instead of usernames in the
2885 (_dbus_user_database_lookup_group): Add check to see if the given groupname
2886 is a gdi. This allows gdi's to be used instead of groupnames in the
2889 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
2891 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
2892 code so that it compiles with gcc4.0
2894 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
2895 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
2896 results back to dbus_binding.c
2898 2005-03-20 Colin Walters <walters@verbum.org>
2900 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
2902 * configure.in: Require GTK+ 2.6.
2904 2005-03-20 Colin Walters <walters@verbum.org>
2906 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
2908 2005-03-17 Tom Parker <palfrey@tevp.net>
2910 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
2911 print DBUS_UID_UNSET; instead print passed username. Also
2912 be sure to actually use gid looked up in cache.
2914 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
2915 for DBUS_GID_UNSET and groupname.
2917 2005-03-17 Colin Walters <walters@verbum.org>
2919 * bus/print-introspect.c: Move to tools/.
2920 * bus/run-with-tmp-session-bus.sh: Ditto.
2922 * glib/Makefile.am (dbus-glib-bindings.h): Move
2923 generation to tools/Makefile.am.
2925 * test/glib/run-test.sh: Update to handle move
2926 of run-with-tmp-session-bus.sh.
2928 * test/glib/test-service-glib.c: Update to handle
2929 move of dbus-glib-bindings.h.
2931 * tools/print-introspect.c: Moved here
2932 from bus/, and ported to GLib bindings.
2934 * tools/run-with-tmp-session-bus.sh: Moved here
2937 * tools/Makefile.am: Generate dbus-glib-bindings.h
2938 and dbus-bus-introspect.xml here.
2940 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
2943 2005-03-17 Colin Walters <walters@verbum.org>
2945 * bus/driver.c (write_args_for_direction): Use
2946 _dbus_string_get_const_data to retrieve string;
2947 _dbus_string_get_const_data_len doesn't actually return
2948 a NULL-terminated substring.
2950 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
2951 (main): Change to use org_freedesktop_DBus_request_name
2952 instead of using g_proxy_begin_call/end_call.
2954 2005-03-15 Joe Shaw <joeshaw@novell.com>
2956 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
2957 generating the finalizer. Fixes from Ben Maurer.
2959 2005-03-12 Joe Shaw <joeshaw@novell.com>
2961 * mono/BusDriver.cs: Update method names: ListServices
2962 becomes ListNames; GetOwner becomes GetNameOwner.
2964 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
2965 onto the eval stack when removing the delegate.
2967 2005-03-12 Joe Shaw <joeshaw@novell.com>
2969 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
2970 LT_CURRENT. Set it to the autoconf variable.
2972 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
2973 classes that disconnects the signal handler delegate from the
2974 service object. Fixes a big leak of proxy objects on the
2975 client side of things. Patch from Ben Maurer
2976 <bmaurer@ximian.com>
2978 2005-03-12 Colin Walters <walters@verbum.org>
2980 * bus/driver.c (write_args_for_direction): New function,
2981 parses a type signature into arguments and outputs to
2983 (bus_driver_handle_introspect): Use it instead of
2984 hardcoding XML for certain signatures.
2986 * bus/Makefile.am (dbus-bus-introspect.xml): Add
2987 dependency on dbus-daemon.
2989 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
2990 argument, pass it to dbus_binding_tool_output_glib_client.
2992 * glib/dbus-binding-tool-glib.c
2993 (generate_client_glue): Protect against multiple inclusion.
2994 (dbus_binding_tool_output_glib_client): Add
2995 G_BEGIN_DECLS/G_END_DECLS.
2997 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
2998 Change to just take iface prefix directly.
2999 (write_formal_parameters): Clarify error message.
3000 (check_supported_parameters): New function; checks to see type
3001 signatures of method parameters are supported.
3002 (generate_client_glue): Handle ignore_unsupported flag.
3003 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3006 * glib/Makefile.am (dbus-glib-bindings.h): Pass
3007 --ignore-unsupported by default until glib bindings
3010 2005-03-11 Colin Walters <walters@verbum.org>
3012 * glib/Makefile.am: Generate dbus-glib-bindings.h and
3015 * bus/print-introspect.c: New file; prints introspection
3016 data for a given name and object path.
3018 * bus/run-with-tmp-session-bus.sh: New file, refactored
3019 from test/glib/run-test.sh. Creates a temporary session
3020 bus and runs another program.
3022 * test/glib/run-test.sh: Refactor to invoke
3023 run-with-tmp-session-bus.sh.
3025 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3026 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
3027 macros instead of hardcoding.
3029 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3031 2005-03-11 Joe Shaw <joeshaw@novell.com>
3033 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3034 this unref; it doesn't match up evenly in some codepaths.
3035 (_dbus_connection_block_pending_call): Unref at every exitpoint;
3036 this evenly matches with the ref near the top of this function.
3038 2005-03-09 Joe Shaw <joeshaw@novell.com>
3040 * dbus/dbus-object-tree.c
3041 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3042 and we try to unregister a path that's not registered, still go
3043 through the process of unlocking and don't just return.
3045 2005-03-09 Colin Walters <walters@verbum.org>
3047 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3048 to this are generated for client-side wrappers. Invokes a
3049 D-BUS method and returns reply values.
3051 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3052 function; writes signature string for argument direction.
3053 (write_args_for_direction): Change to pass input values directly
3054 instead of via address, and fix indentation.
3055 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
3056 make generated wrappers inlineable.
3058 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3059 note about using dbus_type_is_fixed.
3061 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3062 dbus/dbus-signature.c as dbus_type_is_fixed.
3064 All callers updated.
3066 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3067 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3069 * dbus/dbus-signature.h: Prototype.
3071 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3074 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3075 appropriate instead of just freeing it.
3076 (main): Free returned strings using g_free.
3078 * test/glib/Makefile.am (test-service-glib-glue.h)
3079 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3081 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3082 simply maps a simple D-BUS type to GType.
3083 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3085 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3086 initialize the value with it.
3087 (dbus_gvalue_binding_type_from_type): Unused, delete.
3088 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3089 various types instead of unmarshalling to value data directly.
3090 Remove can_convert boolean.
3091 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3092 returning directly instead of using can_convert boolean.
3093 (dbus_gvalue_store): New function; not related to D-BUS per-se.
3094 Stores a GValue in a pointer to a value of its corresponding C
3097 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3098 add dbus_gvalue_store.
3100 2005-03-08 Joe Shaw <joeshaw@novell.com>
3102 Fix a bunch of lifecycle and memory management problems
3103 in the mono bindings.
3105 * mono/Arguments.cs (Arguments): Implement IDisposable
3107 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
3108 strictly a static class.
3110 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3111 delegates into this file.
3112 (Connection): Implement IDisposable.
3113 (Dispose): Disconnect the connection and set the raw connection
3114 pointer to IntPtr.Zero.
3115 (~Connection): Call Dispose().
3116 (RegisterObjectPath): Added. Manages the registration of object
3117 paths so we can cleanly disconnect them at dispose/finalize time.
3118 (UnregisterObjectPath): Ditto.
3119 (set_RawConnection): Unregister all of the object paths when
3120 changing the underlying DBusConnection. Add them back onto the
3121 new connection, if any.
3123 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3124 more unmanaged resources anymore, so it's not necessary. Move all
3125 the DBusObjectPathVTable stuff out of here.
3126 (Handler): Save references to our delegates so that they don't get
3127 finalized. Call Connection.RegisterObjectPath() instead of
3128 dbus_connection_register_object_path() directly.
3129 (Message_Called): Dispose the message after we're finished with
3132 * mono/Message.cs (Message): Implement IDisposable.
3133 (Dispose): Dispose the Arguments, and set the RawMessage to
3135 (SendWithReplyAndBlock): We own the ref to the reply that comes
3136 back from dbus_connection_send_with_reply_and_block() so add a
3137 comment about that and unref it after we've constructed a managed
3138 MethodReturn class around it. Fixes a big, big leak.
3140 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3142 (BuildSignalHandler): After we've sent the Signal message, dispose
3144 (BuildMethod): Dispose of the method call and reply messages after
3145 we've sent the message and extracted the data we want from the
3148 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3150 (Service_FilterCalled): Dispose of the message after we're
3153 2005-03-08 Joe Shaw <joeshaw@novell.com>
3155 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3156 After we attach our pending call to the connection, unref
3159 * mono/Connection.cs (set_RawConnection): Disconnect our
3160 filter and match callbacks from the old connection and
3161 reconnect them to the new connection, if any.
3163 * mono/DBusType/Array.cs: "Code" is a static member, so
3164 don't use "this" to refer to it. Fix for stricter checking
3167 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3168 object path that we pass into unmanaged code.
3170 * mono/DBusType/String.cs (Append): Don't leak the string
3171 that we pass into unmanged code.
3173 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
3174 * NEWS: Update for 0.31
3176 * configure.in: Release 0.31
3177 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3179 * qt/Makefile.am: fixed build
3181 * dbus/Makefile.am: soname bump for libdbus
3183 * glib/Makefile.am: soname bump for libdbus-glib
3185 2005-03-05 Havoc Pennington <hp@redhat.com>
3187 * dbus/dbus-sysdeps.c:
3188 (pseudorandom_generate_random_bytes_buffer): fix to have no return
3190 (_dbus_generate_random_bytes_buffer): fix return value
3192 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3193 checks actually work, from Tom Parker <fdo@tevp.net>
3195 2005-03-01 Colin Walters <walters@verbum.org>
3197 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3198 functions copied from dbus-glib-tool.c.
3199 (main): Convert lots of error code to use them.
3200 Also add some testing for introspection bits.
3202 2005-03-01 Colin Walters <walters@verbum.org>
3204 * doc/TODO: Remove introspection signature TODO.
3206 2005-02-27 Colin Walters <walters@verbum.org>
3208 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3209 Change return value to const char * instead of int so we can do
3211 (struct PropertyInfo, struct ArgInfo): Store char *.
3212 (property_info_new, arg_info_new): Update parameters, strdup.
3213 (property_info_unref, arg_info_unref): Free.
3215 * glib/dbus-gidl.h: Update prototypes.
3217 * glib/dbus-gparser.c (basic_type_from_string): Delete.
3218 (validate_signature): New function, just validates signature and
3220 (parse_property, parse_arg): Invoke validate_signature. Store
3221 signature instead of just type code.
3223 * glib/dbus-gvalue.c (base_type_from_signature): New utility
3224 function to return a primary type for a signature, dropping
3225 information about types in container types.
3226 (dbus_gvalue_genmarshal_name_from_type)
3227 (dbus_gvalue_binding_type_from_type)
3228 (dbus_gvalue_ctype_from_type): Update to take full signature
3229 instead of type code.
3230 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3232 * glib/dbus-gvalue.h: Update prototypes for above.
3234 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3235 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3236 (introspect_properties, introspect_signals, write_interface):
3237 Update to handle signatures, and remove usage of
3238 _dbus_gutils_type_to_string.
3239 (handle_introspect): Print out type codes instead of e.g. "string"
3240 in hardcoded introspection XML; also use x_AS_STRING constants
3241 instead of hardcoding in string.
3243 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3244 to string. Remove usage of _dbus_gutils_type_to_string.
3246 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3248 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3251 * glib/dbus-binding-tool-glib.c (compute_marshaller)
3252 (compute_marshaller_name, generate_glue): Handle signature change
3254 (write_formal_parameters, write_args_for_direction): Ditto, and
3257 * tools/dbus-tree-view.c (type_to_string): Delete.
3258 (info_set_func_text): Update to print full signatures.
3260 * test/glib/test-service-glib.xml: Change types to new
3261 introspection format.
3263 2005-02-26 Havoc Pennington <hp@redhat.com>
3265 * doc/TODO: remove the "guid" item
3267 * test/glib/test-profile.c (no_bus_thread_func): use open_private
3268 (with_bus_thread_func): use open_private
3270 * dbus/dbus-connection.c (dbus_connection_open_private): new
3271 function that works like the old dbus_connection_open()
3272 (dbus_connection_open): now returns an existing connection if
3275 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3276 through the GUID to the transport
3278 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3279 GUID in hex-encoded form.
3281 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3282 pass GUID argument in to the transport
3284 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3287 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3289 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3291 2005-02-25 Havoc Pennington <hp@redhat.com>
3293 * doc/dbus-specification.xml: document the GUID thing
3295 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3296 globally unique ID for the server, and put a "guid=hexencoded"
3297 field in the address
3299 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3301 * dbus/dbus-message.c: ditto
3303 * dbus/dbus-dataslot.c: ditto
3305 * dbus/dbus-list.c: ditto
3307 * dbus/dbus-internals.h: wait, just include
3308 dbus-threads-internal.h here
3310 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3313 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3315 2005-02-24 Colin Walters <walters@verbum.org>
3317 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3319 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
3321 * glib/Makefile.am: added dbus-gobject.h to sources list
3322 so distcheck doesn't fail
3324 2005-02-24 Havoc Pennington <hp@redhat.com>
3326 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3327 you must disconnect before unref, since locking and other things
3328 are screwed up otherwise. Fix assorted other locking stuff.
3330 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3333 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3334 into a private header and don't export from the library
3336 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3338 2005-02-24 Colin Walters <walters@verbum.org>
3340 * dbus/dbus-signature.c: New file; implements various functions
3341 related to type signatures. Includes an interator for parsing,
3342 validation functions.
3343 (dbus_type_is_basic): Moved here from
3344 dbus-marshal-basic.c:_dbus_type_is_basic.
3345 (dbus_type_is_container): Moved here from
3346 dbus-marshal-basic.c:_dbus_type_is_container.
3348 All callers of _dbus_type_is_container and _dbus_type_is_basic
3349 updated, and include dbus-signature.h.
3351 * dbus/dbus-signature.h: New file; prototypes for the above.
3353 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3356 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3357 function factored out of _dbus_first_type_in_signature.
3358 (_dbus_first_type_in_signature_c_str): New function; returns first
3359 type code for a type signature character.
3361 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3362 handle function moves.
3364 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3366 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3367 function; skips to next complete type in type signature.
3368 Implemented using previous skip_one_complete_type. Now
3369 skip_one_complete_type just delegates to
3370 _dbus_type_signature_next.
3372 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3374 (_dbus_type_is_container): Ditto.
3376 * doc/dbus-specification.xml: Update introspection sample to
3377 use real type signatures.
3379 * dbus/dbus-test.h: Prototype signature test.
3381 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3384 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3386 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
3388 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3389 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3391 2005-02-21 Colin Walters <walters@verbum.org>
3393 * dbus/dbus-test-main.c (main): Take optional specific test
3396 * dbus/dbus-test.c (run_test): New function, runs a test function
3397 with no data directory.
3398 (run_data_test): Like above, but takes data directory.
3399 (dbus_internal_do_not_use_run_tests): Take
3400 specific test argument. Replace lots of cut n' paste code
3401 with run_test and run_data_test.
3403 * dbus/dbus-test.h: Update prototype for
3404 dbus_internal_do_not_use_run_tests.
3406 2005-02-20 Havoc Pennington <hp@redhat.com>
3408 Fix bugs reported by Daniel P. Berrange
3410 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3411 (protected_change_watch): new function
3412 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3413 (_dbus_server_add_watch): change to work like the
3414 dbus-connection.c equivalents; like those, probably kind of
3415 busted, but should at least mostly work for now
3416 (dbus_server_disconnect): drop the lock if we were already
3417 disconnected, patch from Daniel P. Berrange
3419 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
3420 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3423 * doc/TODO: todo about unscrewing this mess
3425 2005-02-19 Colin Walters <walters@verbum.org>
3427 * glib/dbus-binding-tool-glib.c
3428 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3430 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3431 as errno.h and sys/stat.h.
3432 (lose): New function, prints error with
3434 (lose_gerror): Similar, but takes GError for message.
3435 (main): Add --output argument to specify output file to write to,
3436 instead of always printing to stdout. In this mode, determine
3437 timestamps on source files to see whether any are newer than the
3438 target file. If not, exit. Also convert a number of error
3439 messages to use lose (since it's shorter), and switch to using
3440 g_io_channel_shutdown.
3442 2005-02-19 Havoc Pennington <hp@redhat.com>
3444 * glib/dbus-gobject.c
3445 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3447 * glib/dbus-glib.c: fix doxygen warnings
3449 * glib/dbus-gparser.c (parse_annotation): error if an annotation
3450 is found on an <arg>
3452 2005-02-17 Colin Walters <walters@verbum.org>
3454 * glib/dbus-gobject.h: Don't export
3455 _dbus_glib_marshal_dbus_message_to_gvalue_array.
3457 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3458 (invoke_object_method): Handle it.
3460 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3463 2005-02-17 Colin Walters <walters@verbum.org>
3465 * bus/.cvsignore, doc/.cvsignore
3466 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3469 2005-02-17 Colin Walters <walters@verbum.org>
3471 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3472 Rename to DBUS_SERVICE_DBUS.
3473 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3474 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3475 Change the value from "org.freedesktop.Local"
3476 to "org.freedesktop.DBus.Local".
3477 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3478 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3479 DBUS_INTERFACE_INTROSPECTABLE.
3480 Change the value from "org.freedesktop.Introspectable"
3481 to "org.freedesktop.DBus.Introspectable".
3482 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3483 DBUS_INTERFACE_PROPERTIES.
3484 Change the value from "org.freedesktop.Properties"
3485 to "org.freedesktop.DBus.Properties".
3486 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3487 DBUS_INTERFACE_PEER.
3488 Change the value from "org.freedesktop.Peer"
3489 to "org.freedesktop.DBus.Peer".
3490 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
3491 DBUS_INTERFACE_LOCAL.
3492 Change the value from "org.freedesktop.Local"
3493 to "org.freedesktop.DBus.Local".
3495 All other users of those constants have been changed.
3497 * bus/driver.c (bus_driver_handle_introspect): Use constants.
3499 * glib/dbus-gobject.c (handle_introspect): Use constants.
3501 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3503 2005-02-17 Colin Walters <walters@verbum.org>
3505 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3506 (parse_node, parse_interface, parse_method, parse_signal)
3507 (parse_property, parse_annotation): Lose if we're currently in an
3509 (parse_annotation): New function.
3510 (parser_start_element, parser_end_element): Handle annotation.
3511 (parse_method, parse_interface): Remove support for c_name attribute,
3512 switch to annotations.
3514 * glib/dbus-gidl.h (interface_info_get_binding_names)
3515 (method_info_get_binding_names)
3516 (interface_info_get_binding_name, method_info_get_binding_name)
3517 (interface_info_set_binding_name, method_info_set_binding_name):
3519 (interface_info_get_annotations, method_info_get_annotations)
3520 (interface_info_get_annotation, method_info_get_annotation)
3521 (interface_info_add_annotation, method_info_add_annotation):
3524 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3526 (struct MethodInfo): Ditto.
3527 Straightfoward conversion of binding methods into annotation methods
3530 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3532 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3534 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3535 Use new annotation API.
3537 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
3540 * doc/dbus-specification.xml: Discuss introspection annotations,
3541 include list of well-known annotations.
3543 * test/glib/test-service-glib.xml: Make validate against new DTD.
3545 2005-02-17 Colin Walters <walters@verbum.org>
3547 This patch is based on initial work from
3548 Paul Kuliniewicz <kuliniew@purdue.edu>.
3550 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3551 initialization of GValue from dbus type to here.
3552 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3553 for the "glib-genmarshal" program from a DBus type.
3554 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3555 into the C name for it we use in the glib bindings.
3556 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3557 glib C type (not GValue).
3558 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3560 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3561 from dbus-gobject.c.
3563 * glib/dbus-gutils.h: Prototype it.
3565 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3566 (marshal_dbus_message_to_g_marshaller): Use new shared function
3567 dbus_glib_marshal_dbus_message_to_gvalue_array.
3569 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3570 Will be changed once we have annotations.
3572 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3573 GStaticRWLock. Callers updated.
3574 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
3575 (string_table_next): New function for iterating over zero-terminated
3577 (string_table_lookup): New function; retrieves specific entry in
3579 (get_method_data): New function; look up method data in object data chunk.
3580 (object_error_domain_prefix_from_object_info)
3581 (object_error_code_from_object_info): New functions, but not implemented yet.
3582 (method_interface_from_object_info): New function; retrieve interface name.
3583 (method_name_from_object_info): New function; retrieve method name.
3584 (method_arg_info_from_object_info): New function; retrieve argument data.
3585 (arg_iterate): New function; iterates over serialized argument data.
3586 (method_dir_signature_from_object_info): New function; returns a
3587 GString holding type signature for arguments for just one
3588 direction (input or output).
3589 (method_input_signature_from_object_info)
3590 (method_output_signature_from_object_info): New functions.
3591 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3592 converts dbus message arguments into a GValue array. Used for both
3593 signal handling and method invocation.
3594 (struct DBusGlibWriteIterfaceData): New utility structure.
3595 (write_interface): New function; generate introspection XML for
3597 (introspect_interfaces): New function; gathers all interface->methods,
3598 generates introspection XML for them.
3599 (handle_introspect): Invoke introspect_interfaces.
3600 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3601 (lookup_object_and_method): New function; examines an incoming message
3602 and attempts to match it up (via interface, method name, and argument
3603 signature) with a known object and method.
3604 (gerror_domaincode_to_dbus_error_name): New function; converts a
3605 GError domain and code into a DBus error name. Needs GError data
3606 added to object introspection to work well.
3607 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3609 (invoke_object_method): New function to invoke an object method
3610 looked up via lookup_object_and_method. Parses the incoming
3611 message, turns it into a GValue array, then invokes the marshaller
3612 specified in the DBusGMethodInfo. Creates a new message with
3613 either return values or error message as appropriate.
3614 (gobject_message_function): Invoke lookup_object_and_method and
3615 invoke_object_method.
3617 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3618 (enum DBusBindingOutputMode): New enum for binding output modes.
3619 (pretty_print): Print binding names.
3620 (dbus_binding_tool_error_quark): GError bits.
3621 (version): Fix typo.
3622 (main): Create GIOChannel for output. Parse new --mode argument,
3623 possible values are "pretty-print", "glib-server", "glib-client".
3624 Use mode to invoke appropriate function.
3626 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3628 * glib/dbus-glib-tool.h: New header, just includes GError bits
3631 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3632 maps binding style to name.
3633 (struct MethodInfo): Ditto.
3634 (get_hash_keys, get_hash_key): Utility function, returns keys for
3636 (interface_info_new, method_info_new): Initialize bindings.
3637 (interface_info_unref, method_info_unref): Destroy bindings.
3638 (method_info_get_binding_names, method_info_get_binding_name)
3639 (interface_info_get_binding_names, interface_info_get_binding_name):
3640 Functions for retrieving binding names.
3641 (method_info_set_binding_name, interface_info_set_binding_name):
3642 Functions for setting binding names.
3644 * glib/dbus-binding-tool-glib.h: New file, has prototypes
3645 for glib binding generation.
3647 * glib/dbus-binding-tool-glib.c: New file, implements server-side
3648 and client-side glib glue generation.
3650 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3651 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3654 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3655 of using GClosureMarshal directly.
3656 (struct DBusGObjectInfo): Add n_infos member.
3658 * test/glib/test-service-glib.xml: New file; contains introspection data
3659 for MyTestObject used in test-service-glib.c.
3661 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3662 (my_object_do_nothing, my_object_increment, my_object_throw_error)
3663 (my_object_uppercase, my_object_many_args): New test methods.
3664 (main): Use dbus_g_object_class_install_info to include generated object
3667 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3668 as well as client-side bindings.
3670 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3671 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3672 using both the dbus_gproxy stuff directly as well as the generated bindings.
3674 2005-02-15 Havoc Pennington <hp@redhat.com>
3676 * dbus/dbus-connection.c (dbus_connection_dispatch): always
3677 complete a pending call, don't run filters first.
3679 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3680 dbus_pending_call_steal_reply
3682 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3683 _dbus_connection_block_pending_call
3684 (dbus_pending_call_get_reply): change to steal_reply and return a
3687 * dbus/dbus-connection.c
3688 (dbus_connection_send_with_reply_and_block): port to work in terms
3690 (_dbus_connection_block_pending_call): replace block_for_reply
3693 2005-02-14 Havoc Pennington <hp@redhat.com>
3695 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3696 properly handle looking up group information by name; fix
3699 2005-02-13 Havoc Pennington <hp@redhat.com>
3701 * dbus/dbus-connection.c (dbus_connection_return_message)
3702 (dbus_connection_borrow_message): hold dispatch lock while message
3704 (_dbus_connection_block_for_reply): hold dispatch lock while we
3705 block for the reply, so nobody steals our reply
3706 (dbus_connection_pop_message): hold the dispatch lock while we
3709 2005-02-13 Havoc Pennington <hp@redhat.com>
3711 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3712 (_dbus_connection_release_dispatch)
3713 (_dbus_connection_acquire_io_path)
3714 (_dbus_connection_release_io_path): make the mutex and condvar
3715 control access to the "acquired" flag. Drop the connection lock
3716 while waiting on the condvar. Hopefully these are baby steps in
3717 roughly the right direction.
3719 2005-02-13 Havoc Pennington <hp@redhat.com>
3721 * dbus/dbus-connection.c: use separate mutexes for the condition
3722 variables; this is some kind of baseline for sanity, but the
3723 condition variables still aren't used correctly afaict
3725 2005-02-13 Havoc Pennington <hp@redhat.com>
3727 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3730 * dbus/dbus-connection.c
3731 (_dbus_connection_detach_pending_call_unlocked): add this
3733 Initial semi-correct pass through to fix thread locking; there are
3734 still some issues with the condition variable paths I'm pretty
3737 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3740 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3741 rename to add _unlocked
3742 (struct DBusConnection): move "dispatch_acquired" and
3743 "io_path_acquired" to use only one bit each.
3744 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3745 (dbus_connection_set_watch_functions): hacky fix to reentrancy
3746 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
3747 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
3748 (_dbus_connection_remove_timeout)
3749 (_dbus_connection_toggle_timeout): drop lock when calling out to
3750 user functions; done in a hacky/bad way.
3751 (_dbus_connection_send_and_unlock): add a missing unlock
3752 (_dbus_connection_block_for_reply): add a missing unlock
3754 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3755 drop lock in a hacky probably unsafe way to call out to user
3758 2005-02-12 Havoc Pennington <hp@redhat.com>
3760 * tools/dbus-tree-view.c (info_set_func_text): display more
3763 * bus/driver.c (bus_driver_handle_list_services): list the bus
3766 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3768 * glib/dbus-gidl.c (signal_info_get_n_args): new function
3769 (method_info_get_n_args): new function
3771 2005-02-12 Havoc Pennington <hp@redhat.com>
3773 * bus/driver.c (bus_driver_handle_introspect): add introspection
3776 2005-02-12 Havoc Pennington <hp@redhat.com>
3778 * bus/driver.c: put the signature of each bus driver method in the
3779 table of handlers and check it on incoming calls; this isn't
3780 really useful, but going to add introspect support in a minute.
3782 2005-02-11 Joe Shaw <joeshaw@novell.com>
3784 * mono/Connection.cs: The unpredictability of finalizers in mono
3785 prevents us from deterministically disconnecting the filters from
3786 the Service class's finalizer, so move tracking of filters and
3787 matches here. Add API for that.
3789 * mono/Service.cs: Remove the code, add code which calls the
3790 methods now on the Connection class.
3792 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
3794 * python/dbus.py (class Sender): added to support dbus signals better
3795 (Bus::add_signal_receiver): added expand_args parameter which defaults
3796 to True. When expand args is True the signal handler will pass the
3797 message arguments as parameters to the signal handler. If False
3798 revert to previous behavior where the signal handler must get the
3799 argument list from the message. This is to help port applications
3800 like HAL that have a tendancy to send variable length argument lists.
3801 self._match_rule_to_receivers is now a dict of dicts.
3802 (Bus::remove_signal_receiver): pop handler off the dict intead of
3803 removing it from a list
3804 (Bus::_signal_func): change signal handlers so that interface,
3805 signal_name, service, path and message are packed into a Sender
3806 object and that is passed to the handler. If expand_args is True
3807 extract the args list from the message and append it to the parameter
3810 * python/dbus_bindings.pyx.in (class Signature): added to support
3812 (MessageIter::__init__): changed iteration limit to match D-BUS
3813 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
3814 STRUCT and VARIENT type support
3815 (MessageIter::python_value_to_dbus_sig): made recursive to support
3817 (MessageIter::append*): added Signature, dict, tuple
3820 * python/examples/example-client.py: added examples of getting tuples
3823 * python/examples/example-service.py: added examples of sending tuples
3826 * python/examples/example-signal-recipient.py: Fixed to handle new
3827 signal callback format
3829 2005-02-10 Havoc Pennington <hp@redhat.com>
3831 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3832 (call dbus_g_proxy_add_signal)
3834 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3836 (_dbus_server_new_for_domain_socket): escape the path
3838 * dbus/dbus-address.c (dbus_address_escape_value): new
3839 (dbus_address_unescape_value): new
3840 (dbus_parse_address): unescape values
3842 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3844 * doc/dbus-specification.xml: explain how to escape values in
3847 2005-02-10 Havoc Pennington <hp@redhat.com>
3849 * dbus/dbus-message-factory.c (generate_special): modify test to
3850 avoid using a non-basic dict key
3852 * dbus/dbus-marshal-validate-util.c: add test for the below
3854 * doc/dbus-specification.xml: require that dict keys are a basic
3857 * dbus/dbus-marshal-validate.c
3858 (_dbus_validate_signature_with_reason): require that dict key is a
3861 2005-02-10 Havoc Pennington <hp@redhat.com>
3863 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3864 change to be _and_unlock instead of _unlocked
3866 * dbus/dbus-connection.c
3867 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
3868 have no_update so we can find this bug quickly in future
3870 2005-02-10 Havoc Pennington <hp@redhat.com>
3872 * dbus/dbus-message-util.c (verify_test_message): tests for string
3875 * dbus/dbus-message.c (dbus_message_append_args_valist): add
3876 support for arrays of string/signature/path
3878 2005-02-10 Joe Shaw <joeshaw@novell.com>
3880 * dbus/dbus-connection.c
3881 (_dbus_connection_queue_received_message_link,
3882 _dbus_connection_message_sent): Add the path to
3884 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
3885 _dbus_connection_send_preallocated_unlocked(), updated the
3886 dispatch status, and unlocks. Fixes a bug where certain
3887 situations (like a broken pipe) could cause a Disconnect message
3888 to not be sent, tricking the bus into thinking a service was still
3889 there when the process had quit.
3890 (_dbus_connection_send_preallocated): Call
3891 _dbus_connection_send_preallocated_and_unlock().
3892 (_dbus_connection_send_and_unlock): Added. Calls
3893 _dbus_connection_send_preallocated_and_unlock().
3894 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
3895 (dbus_connection_send_with_reply): Update the dispatch status and
3898 * mono/Service.cs (~Service): Added. Removes the filter so that
3899 we don't get unmanaged code calling back into a GCed delegate.
3900 (RemoveFilter); Added.
3902 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
3904 * dbus/dbus-message.c (dbus_message_iter_open_container):
3905 - Removed check for iterator type being an array because
3906 get_arg_type does not work with writer iterators
3907 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
3909 2005-02-07 Havoc Pennington <hp@redhat.com>
3911 * doc/dbus-specification.xml: some more language cleanups; add
3912 stuff about how to deal with invalid protocol and extension
3913 points; add _ to allowed chars in auth commands; add EXTENSION_
3916 2005-02-06 Havoc Pennington <hp@redhat.com>
3918 * s/expected/required/ in a couple places for clarity
3920 2005-02-07 Colin Walters <walters@verbum.org>
3922 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
3923 sender or proposed_recipient.
3925 2005-02-06 Havoc Pennington <hp@redhat.com>
3927 * dbus/dbus-message-factory.c (generate_special): more tests
3929 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
3930 array length that exceeds the maximum
3932 2005-02-05 Havoc Pennington <hp@redhat.com>
3934 * dbus/dbus-message-factory.c (generate_special): more test cases,
3937 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
3938 reason why a signature was invalid
3940 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
3941 skip the length of the string before we look at it in validation
3943 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
3946 * dbus/dbus-message.c (_dbus_message_loader_new): default
3947 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
3949 2005-02-05 Havoc Pennington <hp@redhat.com>
3951 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
3952 if the signature of a variant was empty
3953 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
3954 struct with no element type)
3956 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
3957 mangled messages to break things
3959 2005-02-04 Havoc Pennington <hp@redhat.com>
3961 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
3962 g_quark_try_string() so it actually can return 0
3963 (dbus_g_proxy_connect_signal): ditto
3965 2005-02-04 Havoc Pennington <hp@redhat.com>
3967 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
3969 (tristring_from_message): assert cleanly on null path/interface
3970 (should not be possible though I decided later)
3971 (dbus_g_proxy_dispose): move proxy manager unregistration here
3972 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
3973 g_return_if_fail() checks
3975 2005-02-04 Havoc Pennington <hp@redhat.com>
3977 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
3979 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
3980 (with some minor changes)
3982 * doc/dbus-specification.xml: add deprecated attribute to
3983 introspection format
3985 2005-01-31 Havoc Pennington <hp@redhat.com>
3987 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
3988 think it's sort of right
3990 2005-01-30 Havoc Pennington <hp@redhat.com>
3992 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
3994 2005-01-30 Havoc Pennington <hp@redhat.com>
3996 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
3998 * autogen.sh: change to autotools 1.9
4000 * glib/dbus-gproxy.c: completely change how signals work
4001 (dbus_g_proxy_add_signal): new function to specify signature of a
4003 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4004 and g_warning if the incoming message has the wrong signature.
4006 2005-01-30 Havoc Pennington <hp@redhat.com>
4008 * tools/dbus-names-model.c (have_names_notify): fix this
4010 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4011 up the string array handling a bit
4013 2005-01-30 Havoc Pennington <hp@redhat.com>
4015 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4016 (dbus_g_pending_call_cancel): new function
4018 * dbus/dbus-glib.h: move GType decls for connection/message here;
4019 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4020 here, just kind of rationalizing how we handle all that
4022 * tools/dbus-names-model.c: new file for a tree model listing the
4025 * tools/dbus-tree-view.c (model_new): use proper typing on the
4028 2005-01-30 Havoc Pennington <hp@redhat.com>
4030 * glib/dbus-gmain.c: add a custom GSource back that just checks
4031 whether the message queue has anything in it; otherwise, there are
4032 cases where we won't see messages in the queue since there was no
4033 IO visible to the glib main loop
4035 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4036 increase default message timeout to 25 seconds
4038 2005-01-30 Havoc Pennington <hp@redhat.com>
4040 * test/glib/test-profile.c (no_bus_stop_server): remove the
4041 warning about the g_warning that I just fixed
4043 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4044 custom source, seems to be a lot easier to understand and work
4047 2005-01-30 Havoc Pennington <hp@redhat.com>
4049 I think this main loop thing is conceptually broken, but here are
4050 some band aids. I'll maybe rewrite it in a minute.
4052 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4053 custom GSource, so don't pass it in; confusing
4054 (gsource_server_finalize, gsource_connection_finalize): add
4055 finalize handlers that remove all the watches.
4057 2005-01-30 Havoc Pennington <hp@redhat.com>
4059 * glib/dbus-gobject.c (introspect_properties): fix the XML
4062 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4063 which effectively detects the use of freed messages
4065 * glib/dbus-gobject.c (handle_introspect): modify and return the
4066 reply message instead of the incoming message
4068 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4069 gee, maybe it should SEND THE XML instead of just making a string
4070 and freeing it again ;-)
4072 * tools/dbus-print-message.c (print_message): improve printing of
4075 * configure.in: add debug-glib.service to the output
4077 2005-01-30 Havoc Pennington <hp@redhat.com>
4079 dbus-viewer introspected and displayed the bus driver
4081 * dbus/dbus-object-tree.c
4082 (object_tree_test_iteration): add tests for a handler registered on "/"
4084 * dbus/dbus-object-tree.c
4085 (_dbus_decompose_path): fix to handle path "/" properly
4086 (run_decompose_tests): add tests for path decomposition
4088 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4091 * glib/dbus-gobject.c (handle_introspect): fix quotes
4093 * test/glib/run-test.sh: support launching the bus, then running
4096 * test/glib/test-service-glib.c (main): put in a trivial gobject
4097 subclass and register it on the connection
4099 * bus/driver.c (bus_driver_handle_introspect): implement
4100 introspection of the bus driver service
4102 * dbus/dbus-protocol.h: add #defines for the XML namespace,
4103 identifiers, doctype decl
4105 * bus/driver.c (bus_driver_handle_get_service_owner): handle
4106 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
4107 returning the service unchanged.
4108 (bus_driver_handle_message): remove old check for reply_serial in
4109 method calls, now the message type deals with that
4110 (bus_driver_handle_message): handle NULL interface
4112 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4114 * glib/dbus-gloader-expat.c (description_load_from_string): allow
4117 * tools/dbus-viewer.c: add support for introspecting a service on
4120 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4121 (dbus_g_pending_call_unref): add
4123 2005-01-29 Havoc Pennington <hp@redhat.com>
4125 * tools/dbus-tree-view.c: add support for displaying properties.
4126 (run dbus-viewer with an introspect xml file as arg, then resize
4127 the window so the tree elements show up, not sure what that is)
4129 * glib/dbus-gobject.c (handle_introspect): return
4130 org.freedesktop.Properties and org.freedesktop.Introspectable
4131 interfaces when we are introspected.
4133 * doc/dbus-specification.xml: allow empty interface name when
4136 2005-01-29 Havoc Pennington <hp@redhat.com>
4138 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4139 though it uses glib, it could be extended for any binding in
4142 * glib/dbus-gobject.c (gobject_message_function): change to the
4143 new way properties work
4145 * dbus/dbus-protocol.h: add the new interfaces
4147 * doc/dbus-specification.xml: document the introspection format,
4148 Introspectable interface, and add an org.freedesktop.Properties
4151 * glib/dbus-gparser.c: add support for a <property> element
4153 * glib/dbus-gidl.c: add PropertyInfo
4155 * glib/dbus-gobject.c (handle_introspect): put the outermost
4156 <node> outside the signal and property descriptions.
4157 (introspect_properties): export properties as <property> rather
4158 than as method calls
4160 2005-01-28 Havoc Pennington <hp@redhat.com>
4162 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4163 related to authentication protocol
4165 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
4167 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4168 - BUS_ACTIVATION -> BUS_STARTER
4169 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4170 - class MessageIter (__init__): Added recursion checking
4171 so we throw a nice error instead of just disconnecting from the
4173 (get): Added arg_type parameter for recursion.
4174 Removed the nil type
4175 Added signiture type placeholder (not implemented)
4176 Added struct type placeholder (not implemented)
4177 Added varient type placeholder (not implemented)
4178 Commented out dict type for now
4179 (get_element_type): renamed from get_array_type
4180 (get_*): changed to use the dbus_message_iter_get_basic API
4181 (get_*_array): removed in favor of recursive get_array method
4182 (get_array): new recursive method which calls get to marshal
4183 the elements of the array
4184 (value_to_dbus_sig): New method returns the corrasponding
4185 dbus signiture to a python value
4186 (append): Comment out dict handling for now
4187 Handle lists with the new recursive API
4188 Comment out None handling for now
4189 (append_nil): removed
4190 (append_*): changed to use dbus_message_iter_append_basic API
4191 (append_*_array): removed in favor of recursive append_array
4193 (__str__): Make it easier to print out recursive iterators
4195 - class Message (__str__): moved type inspection to the
4196 MessageIter class' __str__ method
4197 (get_iter): Added an append parameter wich defaults to False
4198 If True use the new API's to create an append iterator
4200 * python/dbus.py: Update to use new bindings API
4201 - TYPE_ACTIVATION -> TYPE_STARTER
4202 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4203 - class ActivationBus -> class StarterBus
4204 - class RemoteObject (__call__): get an append iterator
4205 - (_dispatch_dbus_method_call): get an append iterator
4206 - class Object (emit_signal): get an append iterator
4208 * python/examples/: Fixed up the examples to work with the new API
4210 2005-01-28 Joe Shaw <joeshaw@novell.com>
4212 * configure.in: Bump version up to 0.30.
4214 * HACKING: Add a release item to bump the version number up after
4217 2005-01-28 Havoc Pennington <hp@redhat.com>
4219 * doc/dbus-specification.xml: update to describe 16-bit types and
4222 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4225 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4228 * dbus/dbus-marshal-recursive.c: implement
4230 2005-01-27 Havoc Pennington <hp@redhat.com>
4232 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4234 * configure.in: find the right type for 16 and 32 bit ints as well
4237 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4238 the 16-bit types so people don't have to stuff them in 32-bit or
4241 2005-01-27 Havoc Pennington <hp@redhat.com>
4243 * dbus/dbus-message.c: byteswap the message if you init an
4244 iterator to read/write from it
4246 * dbus/dbus-marshal-byteswap.c: new file implementing
4247 _dbus_marshal_byteswap()
4249 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4251 2005-01-26 Havoc Pennington <hp@redhat.com>
4253 * dbus/dbus-marshal-validate-util.c: break this out (and fix
4254 build, apparently - nobody noticed?)
4256 2005-01-26 Havoc Pennington <hp@redhat.com>
4258 * dbus/dbus-marshal-recursive.h: remove todo comment
4260 2005-01-25 Joe Shaw <joeshaw@novell.com>
4262 * Land the mono binding changes to conform to the new APIs.
4264 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4265 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4267 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
4268 type code as a string.
4269 (InitAppending): Rename dbus_message_append_iter_init() to
4270 dbus_message_iter_init_append().
4272 * mono/BusDriver.cs: Rename ServiceEventHandler to
4273 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
4274 Rename ServiceOwnerChanged to NameOwnerChanged.
4276 * mono/Connection.cs: Rename BaseService to UniqueName, and the
4279 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
4281 * mono/Service.cs: Rename Exists to HasOwner, internally rename
4282 dbus_bus_acquire_service() to dbus_bus_request_name().
4284 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4285 of Type.UnderlyingSystemType to get the correct element type for
4287 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4288 dbus_message_get_{element|arg}_type() instead of
4289 dbus_message_iter_init_array_iterator().
4290 (Append): Replace dbus_message_iter_append_array() with
4291 dbus_message_iter_open_container() and
4292 dbus_message_iter_close_container().
4294 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
4295 types have been removed.
4297 * mono/DBusType/*.cs: Replace calls of
4298 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4299 but specify the type in the DllImport extern declaration. Ditto
4300 for dbus_message_iter_append_[type]() ->
4301 dbus_message_iter_append_basic().
4303 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4304 NameOwnerChangedHandler.
4306 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
4308 * python/dbus_bindings.pyx.in: Rename of methods and bindings
4309 - get_base_service -> get_unique_name
4310 - bus_get_base_service -> bus_get_unique_name
4311 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4312 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
4313 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4314 - bus_activate_service -> bus_start_service_by_name
4315 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4316 - bus_acquire_service -> bus_request_name
4317 - dbus_bus_acquire_service -> dbus_bus_request_name
4318 - bus_service_exists -> bus_name_has_owner
4319 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4321 * python/dbus.py: Rename of methods
4322 - activate_service -> start_service_by_name
4323 - bus_acquire_service -> bus_request_name
4324 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
4325 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4328 2005-01-24 Joe Shaw <joeshaw@novell.com>
4330 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4331 signature for the method that can't be found.
4333 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4334 the message has any arguments, we need to call
4335 _dbus_type_reader_get_current_type(), not
4336 _dbus_type_reader_has_next().
4338 2005-01-24 Havoc Pennington <hp@redhat.com>
4340 * dbus/dbus-message-factory.c: more testing of message validation
4342 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4345 2005-01-23 Havoc Pennington <hp@redhat.com>
4347 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
4348 get this all working, not many tests in the framework yet though
4350 2005-01-22 Havoc Pennington <hp@redhat.com>
4352 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4353 tutorial, based on work from David Wheeler.
4355 2005-01-21 Havoc Pennington <hp@redhat.com>
4357 * dbus/dbus-bus.c: add more return_if_fail checks
4359 * dbus/dbus-message.c (load_message): have the "no validation"
4360 mode (have to edit the code to toggle the mode for now though)
4362 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4363 skips all validation; I want to use this at least for benchmark
4364 baseline, I'm not sure if it should be a publicly-available switch.
4366 2005-01-21 Havoc Pennington <hp@redhat.com>
4368 * glib/dbus-gmain.c: don't put the GLib bindings in the same
4369 toplevel doxygen group as the low-level API stuff
4371 * dbus/dbus.h: note that libdbus is the low-level API
4373 2005-01-20 Havoc Pennington <hp@redhat.com>
4375 * update-dbus-docs.sh: script to update docs on the web site, only
4376 works for me though. neener.
4378 2005-01-20 Havoc Pennington <hp@redhat.com>
4380 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4381 code can reveal bugs in it
4383 2005-01-20 Havoc Pennington <hp@redhat.com>
4385 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4386 select() version, patches from Tor Lillqvist
4388 2005-01-20 Havoc Pennington <hp@redhat.com>
4390 * doc/dbus-tutorial.xml: replace > with >
4392 * bus/services.c (bus_registry_acquire_service): validate the name
4393 and return a better error if it's no good.
4395 * doc/dbus-specification.xml: note NO_AUTO_START change
4397 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4398 from AUTO_START, we're toggling the default
4400 * bus/dispatch.c: adapt the tests to change of auto-start default
4402 2005-01-18 Havoc Pennington <hp@redhat.com>
4404 * rename dbus-daemon-1 to dbus-daemon throughout
4406 2005-01-18 Havoc Pennington <hp@redhat.com>
4408 * Throughout, grand renaming to strip out the use of "service",
4409 just say "name" instead (or "bus name" when ambiguous). Did not
4410 change the internal code of the message bus itself, only the
4411 programmer-facing API and messages.
4413 * doc/dbus-specification.xml: further update the message bus section
4415 * bus/config-parser.c (all_are_equiv): fix bug using freed string
4418 2005-01-17 Havoc Pennington <hp@redhat.com>
4420 * dbus/dbus-types.h: remove 16-bit types since we don't use them
4423 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4424 "invalid name character" not only non-ASCII
4426 * doc/dbus-specification.xml: further update spec, message bus
4427 parts are still out-of-date but the marshaling etc. stuff is now
4430 2005-01-17 Havoc Pennington <hp@redhat.com>
4432 * doc/dbus-specification.xml: partially update spec
4434 2005-01-17 Havoc Pennington <hp@redhat.com>
4436 * Throughout, align variant bodies according to the contained
4437 type, rather than always to 8. Should save a fair bit of space in
4440 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4441 fix handling of case where p == end
4443 * doc/TODO: remove the dbus_bool_t item and variant alignment items
4445 2005-01-17 Havoc Pennington <hp@redhat.com>
4447 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4449 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4450 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
4451 are marshaling/unmarshaling a boolean.
4453 2005-01-16 Havoc Pennington <hp@redhat.com>
4455 This is about it on what can be disabled/deleted from libdbus
4456 easily, back below 150K anyhow. Deeper cuts are more work than
4457 just turning the code off as I've done here.
4459 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4460 signed int convenience funcs
4462 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4465 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4466 things out of libdbus
4468 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4470 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4471 tests-enabled-only, though it should probably be deleted)
4473 * dbus/dbus-message-util.c: same stuff
4475 * dbus/dbus-auth-util.c: same stuff
4477 2005-01-16 Havoc Pennington <hp@redhat.com>
4479 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4481 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4482 way for stripping down dbus-userdb.c stuff included in libdbus.
4483 Rename _dbus_parse_uid for consistency.
4485 2005-01-16 Havoc Pennington <hp@redhat.com>
4487 * dbus/dbus-internals.c (_dbus_real_assert): print the function
4488 name the assertion failed in
4490 * dbus/dbus-internals.h (_dbus_return_if_fail)
4491 (_dbus_return_val_if_fail): assert that the name of the function
4492 containing the check doesn't start with '_', since we only want to
4493 use checks on public functions
4495 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4496 checks to assertions
4498 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4499 change checks to asserts for private function
4501 * dbus/dbus-message.c (_dbus_message_set_serial): checks
4502 to asserts for private function
4504 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4505 broken assertion that was breaking make check
4506 (_dbus_type_reader_array_is_empty): remove this rather than fix
4507 it, was only used in assertions
4509 2005-01-16 Havoc Pennington <hp@redhat.com>
4511 * test/unused-code-gc.py: hacky script to find code that's used
4512 only by the bus (not libdbus) or used only by tests or not used at
4513 all. It has some false alarms, but looks like we can clean up a
4514 lot of size from libdbus.
4516 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4517 dbus/Makefile.am: initially move 10K of binary size out of libdbus
4519 2005-01-16 Havoc Pennington <hp@redhat.com>
4521 * Add and fix docs according to Doxygen warnings throughout
4524 * dbus/dbus-marshal-recursive.c
4525 (_dbus_type_reader_array_is_empty): change this to just call
4526 array_reader_get_array_len() and make it static
4528 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4530 (dbus_message_iter_init_append): rename from append_iter_init
4532 * dbus/dbus-marshal-recursive.c
4533 (_dbus_type_reader_get_element_type): rename from
4534 _dbus_type_reader_get_array_type
4536 2005-01-15 Havoc Pennington <hp@redhat.com>
4538 * test/glib/test-profile.c (with_bus_server_filter): fix crash
4540 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4541 when DBUS_DISABLE_ASSERT
4542 (_dbus_marshal_set_basic): be sure we align for the string length
4544 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4547 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4548 inline macro version
4549 (_dbus_string_set_byte): provide inline macro version
4551 2005-01-15 Havoc Pennington <hp@redhat.com>
4553 * Land the new message args API and type system.
4555 This patch is huge, but the public API change is not
4556 really large. The set of D-BUS types has changed somewhat,
4557 and the arg "getters" are more geared toward language bindings;
4558 they don't make a copy, etc.
4560 There are also some known issues. See these emails for details
4562 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4563 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4565 * dbus/dbus-marshal-*: all the new stuff
4567 * dbus/dbus-message.c: basically rewritten
4569 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4570 freed blocks to be all non-nul bytes so using freed memory is less
4571 likely to work right
4573 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4574 DBUS_FAIL_MALLOC=N environment variable, so you can do
4575 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4576 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4579 * qt/message.cpp: port to the new message args API
4580 (operator<<): use str.utf8() rather than str.unicode()
4581 (pretty sure this is right from the Qt docs?)
4583 * glib/dbus-gvalue.c: port to the new message args API
4585 * bus/dispatch.c, bus/driver.c: port to the new message args API
4587 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4588 "locked" flag to TRUE and align_offset to 0; I guess we never
4589 looked at these anyhow, but seems cleaner.
4591 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4592 move allocation padding macro to this header; use it to implement
4593 (_DBUS_STRING_STATIC): ability to declare a static string.
4595 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4596 change to return TRUE if the interface is not set.
4598 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4599 to dbus-marshal-validate.[hc]
4601 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4604 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4605 to dbus-marshal-*.[hc]
4607 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4608 function here from dbus-marshal.c
4610 2005-01-12 Joe Shaw <joeshaw@novell.com>
4612 * NEWS: Update for 0.23.
4614 * configure.in: Release 0.23.
4616 2005-01-12 Joe Shaw <joeshaw@novell.com>
4618 * mono/Makefile.am, mono/example/Makefile.am: Always build the
4619 dbus DLL with --debug. Clean up after the .mdb files this leaves
4622 * mono/doc/Makefile.am: Need to uninstall the docs on "make
4625 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4626 is an enum, get the enum's underlying type. Another mono
4629 2005-01-11 Joe Shaw <joeshaw@novell.com>
4631 Patch from Sjoerd Simons <sjoerd@luon.net>
4633 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4634 DESTDIR. It breaks stuff.
4636 2005-01-11 Joe Shaw <joeshaw@novell.com>
4638 Patch from Tambet Ingo <tambet@ximian.com>
4640 * mono/DBusType/Array.cs (Get): Get the underlying element type by
4641 calling type.GetElementType(). The code previously depended on
4642 broken Mono behavior, which was fixed in Mono 1.1.3.
4644 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4645 Activator.CreateInstance() so that the class's constructor is
4646 called with the right parameters.
4648 2005-01-11 Joe Shaw <joeshaw@novell.com>
4650 Patch from Timo Teräs <ext-timo.teras@nokia.com>
4652 * dbus/dbus-connection.c
4653 (_dbus_connection_queue_received_message_link): Call
4654 _dbus_connection_remove_timeout() instead of the _locked()
4655 variant, since it's always called from
4656 _dbus_connection_handle_watch(), which handles the locking.
4657 Removed the _locked() variant since it's no longer used.
4659 2005-01-03 Havoc Pennington <hp@redhat.com>
4661 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4664 2004-12-26 Havoc Pennington <hp@redhat.com>
4666 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4668 2005-01-03 Havoc Pennington <hp@redhat.com>
4670 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4673 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4675 2005-01-02 Havoc Pennington <hp@redhat.com>
4677 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4679 2005-01-01 Havoc Pennington <hp@redhat.com>
4681 * configure.in: add -Wfloat-equal
4683 2005-01-01 Havoc Pennington <hp@redhat.com>
4685 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
4686 for a variety of reasons '==' doesn't do this.
4688 2004-12-31 Havoc Pennington <hp@redhat.com>
4690 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4691 I keep wishing I had
4693 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4695 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4697 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4699 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4700 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4701 dbus-protocol.h. Because they are defines and not enums they are not
4704 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
4706 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4707 dbus_bus_activate_service
4709 * python/dbus.py (Bus.activate_service): activate a service on the
4712 2004-12-24 Havoc Pennington <hp@redhat.com>
4714 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4715 file format has also changed and I haven't adapted to that yet
4717 * Makefile.am: load .gcno files from latest gcc
4719 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
4720 * Patch from Rob Taylor <robtaylor@fastmail.fm>
4722 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4725 * python/dbus.py (get_unix_user): Added binding to
4726 call dbus_bindings.bus_get_unix_user
4728 * python/extract.py: Modified the proto_pat regex to
4729 handle unsigned long
4731 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4733 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4734 better POSIX compliance.
4736 2004-12-19 Havoc Pennington <hp@redhat.com>
4738 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
4739 (_dbus_string_insert_8_aligned): new functions
4741 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4743 2004-12-18 Havoc Pennington <hp@redhat.com>
4745 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4748 * dbus/dbus-message.c: fix a comment, and add a still-unused
4749 not-implemented function
4751 * dbus/dbus-marshal.h: fix comment
4753 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4755 2004-12-17 Joe Shaw <joeshaw@novell.com>
4757 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4758 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4759 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4760 Type.UnderlyingSystemType to get the actual system type
4761 underneath. This code previously depended on the broken Mono
4762 behavior, which was fixed in 1.1.3.
4764 2004-11-27 Havoc Pennington <hp@redhat.com>
4766 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4768 (_dbus_string_get_const_data): inline when asserts are disabled
4770 * dbus/dbus-message.c: record the _dbus_current_generation of
4771 creation so we can complain if dbus_shutdown() is used improperly.
4772 Do this only if checks are enabled.
4774 * dbus/dbus-connection.c: ditto
4776 2004-11-26 Havoc Pennington <hp@redhat.com>
4778 * test/glib/test-profile.c: add with_bus mode to profile echoes
4779 that go through the bus.
4781 * test/glib/run-test.sh: add ability to run test-profile
4783 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4786 2004-11-26 Havoc Pennington <hp@redhat.com>
4788 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4789 thing was implemented
4791 2004-11-26 Havoc Pennington <hp@redhat.com>
4793 * test/glib/test-profile.c: tweak a bit, add support for some
4794 made-up minimal malloc overhead with plain sockets, since in
4795 real life some sort of buffers are unavoidable thus we could
4796 count them in the theoretical best case
4798 2004-11-26 Havoc Pennington <hp@redhat.com>
4800 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4801 where I was trying to cache one too many messages
4803 2004-11-26 Havoc Pennington <hp@redhat.com>
4805 * dbus/dbus-message.c: reimplement message cache as an array which
4806 makes the cache about twice as fast and saves maybe 1.5% overall
4808 2004-11-26 Havoc Pennington <hp@redhat.com>
4810 * dbus/dbus-threads.c (init_global_locks): forgot to put the
4811 message cache lock here
4813 2004-11-26 Havoc Pennington <hp@redhat.com>
4815 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4816 the "char byte_order" next to each other to save 4 bytes
4817 (dbus_message_new_empty_header): reduce preallocation, since the
4818 message cache should achieve a similar effect
4819 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4820 message cache that keeps a few DBusMessage around in a pool,
4821 another 8% speedup or so.
4823 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4825 2004-11-25 Havoc Pennington <hp@redhat.com>
4827 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4828 to write, without reading or blocking, try it before the poll()
4829 and skip the poll() if nothing remains to write. This is about a
4830 3% speedup in the echo client/server
4832 2004-11-25 Havoc Pennington <hp@redhat.com>
4834 The primary change here is to always write() once before adding
4835 the write watch, which gives us about a 10% performance increase.
4837 * dbus/dbus-transport-unix.c: a number of modifications to cope
4838 with removing messages_pending
4839 (check_write_watch): properly handle
4840 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4841 messages_pending stuff
4842 (check_read_watch): properly handle WAITING_FOR_MEMORY and
4844 (unix_handle_watch): after writing, see if the write watch can be
4846 (unix_do_iteration): assert that write_watch/read_watch are
4847 non-NULL rather than testing that they aren't, since they
4848 aren't allowed to be NULL. check_write_watch() at the end so
4849 we add the watch if we did not finish writing (e.g. got EAGAIN)
4851 * dbus/dbus-transport-protected.h: remove messages_pending call,
4852 since it resulted in too much inefficient watch adding/removing;
4853 instead we now require that the transport user does an iteration
4854 after queueing outgoing messages, and after trying the first
4855 write() we add a write watch if we got EAGAIN or exceeded our
4856 max bytes to write per iteration setting
4858 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
4861 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
4862 freed and then accessed, valgrind flagged this bug, fix it
4864 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
4865 as the last valid field plus 1, where really it is equal to the
4866 last valid field. Corrects some message corruption issues.
4868 * dbus/dbus-mainloop.c: verbosity changes
4870 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
4871 instead of aborting in one of the test codepaths
4873 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
4874 caused not printing the pid ever again if a verbose was missing
4875 the newline at the end
4876 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
4878 * dbus/dbus-connection.c: verbosity changes;
4879 (dbus_connection_has_messages_to_send): new function
4880 (_dbus_connection_message_sent): no longer call transport->messages_pending
4881 (_dbus_connection_send_preallocated_unlocked): do one iteration to
4882 try to write() immediately, so we can avoid the write watch. This
4883 is the core purpose of this patchset
4884 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
4885 dump the outgoing message queue, so nobody will get confused
4886 trying to send them or thinking stuff is pending to be sent
4888 * bus/test.c: verbosity changes
4890 * bus/driver.c: verbosity/assertion changes
4892 * bus/dispatch.c: a bunch of little tweaks to get it working again
4893 because this patchset changes when/where you need to block.
4895 2004-11-23 Havoc Pennington <hp@redhat.com>
4897 * test/glib/test-profile.c: modify to accept a plain_sockets
4898 argument in which case it will bench plain sockets instead of
4899 libdbus, for comparison purposes.
4901 2004-11-22 Havoc Pennington <hp@redhat.com>
4903 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
4904 threads for more time, so sysprof can get a grip on it.
4906 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
4909 2004-11-13 Havoc Pennington <hp@redhat.com>
4911 * test/glib/test-profile.c: fix this thing up a bit
4913 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
4914 preallocation sizes by a fair bit; not sure if this will be an
4915 overall performance win or not, but it does reduce reallocs.
4917 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
4918 the test hack that forced constant realloc if asserts are
4919 disabled, so we can profile sanely. Sprinkle in some
4920 _DBUS_UNLIKELY() which are probably pointless, but before I
4921 noticed the real performance problem I put them in.
4922 (_dbus_string_validate_utf8): micro-optimize this thing a little
4923 bit, though callgrind says it didn't help; then special-case
4924 ascii, which did help a lot; then be sure we detect nul bytes as
4925 invalid, which is a bugfix.
4926 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
4927 superstition; use memset to nul the padding instead of a manual
4929 (_dbus_string_get_length): inline this as a
4930 macro; it showed up in the profile because it's used for loop
4933 2004-11-10 Colin Walters <walters@verbum.org>
4935 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
4938 2004-11-09 Colin Walters <walters@verbum.org>
4940 * dbus/dbus-string.c (_dbus_string_get_length): New
4941 function, writes DBusString to C buffer.
4943 * dbus/dbus-string.h: Prototype it.
4945 * dbus/dbus-message.c (dbus_message_type_to_string): New
4946 function, converts message type into C string.
4948 * dbus/dbus-message.h: Prototype it.
4950 * bus/selinux.c (bus_selinux_check): Take source pid,
4951 target pid, and audit data. Pass audit data to
4953 (log_audit_callback): New function, appends extra
4955 (bus_selinux_allows_acquire_service): Also take
4956 service name, add it to audit data.
4957 (bus_selinux_allows_send): Also take message
4958 type, interface, method member, error name,
4959 and destination, and add them to audit data.
4960 (log_cb): Initialize func_audit.
4962 * bus/selinux.h (bus_selinux_allows_acquire_service)
4963 (bus_selinux_allows_send): Update prototypes
4965 * bus/services.c (bus_registry_acquire_service): Pass
4966 service name to bus_selinux_allows_acquire_service.
4968 * bus/bus.c (bus_context_check_security_policy): Pass
4969 additional audit data. Move assignment of dest
4972 2004-11-07 Colin Walters <walters@verbum.org>
4974 * dbus/dbus-transport-unix.c (do_authentication): Always
4975 initialize auth_completed.
4977 2004-11-07 Colin Walters <walters@verbum.org>
4979 * bus/bus.c (load_config): Break into three
4980 separate functions: process_config_first_time_only,
4981 process_config_every_time, and process_config_postinit.
4982 (process_config_every_time): Move call of
4983 bus_registry_set_service_context_table into
4984 process_config_postinit.
4985 (process_config_postinit): New function, does
4986 any processing that needs to happen late
4987 in initialization (and also on reload).
4988 (bus_context_new): Instead of calling load_config,
4989 open config parser here and call process_config_first_time_only
4990 and process_config_every_time directly. Later, after
4991 we have forked but before changing UID,
4992 invoke bus_selinux_full_init, and then call
4993 process_config_postinit.
4994 (bus_context_reload_config): As in bus_context_new,
4995 load parse file inside here, and call process_config_every_time
4996 and process_config_postinit.
4998 * bus/services.h, bus/services.c
4999 (bus_registry_set_service_context_table): Rename
5000 from bus_registry_set_sid_table. Take string hash from config
5001 parser, and convert them here into SIDs.
5003 * bus/config-parser.c (struct BusConfigParser): Have
5004 config parser only store a mapping of service->context
5006 (merge_service_context_hash): New function.
5007 (merge_included): Merge context string hashes instead
5008 of using bus_selinux_id_table_union.
5009 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5010 simply create a new string hash.
5011 (bus_config_parser_unref): Unref it.
5012 (start_selinux_child): Simply insert strings into hash,
5013 don't call bus_selinux_id_table_copy_over.
5015 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5016 (bus_selinux_id_table_copy_over): Delete.
5018 2004-11-03 Colin Walters <walters@verbum.org>
5020 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5023 2004-11-03 Colin Walters <walters@verbum.org>
5025 * bus/test-main.c (test_pre_hook): Fix test logic,
5026 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5028 2004-11-02 Colin Walters <walters@redhat.com>
5030 * bus/selinux.c (bus_selinux_init): Split into two functions,
5031 bus_selinux_pre_init and bus_selinux_post_init.
5032 (bus_selinux_pre_init): Just determine whether SELinux is
5034 (bus_selinux_post_init): Do everything else.
5036 * bus/main.c (main): Call bus_selinux_pre_init before parsing
5037 config file, and bus_selinux_post_init after. This ensures that
5038 we don't lose the policyreload notification thread that
5039 bus_selinux_init created before forking previously.
5041 * bus/test-main.c (test_pre_hook): Update for split.
5043 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
5045 Patch from Johan Fischer <linux@fischaz.com>
5047 * mono/doc/Makefile.am (install-data-local): Added directory
5050 2004-10-29 Colin Walters <walters@redhat.com>
5052 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5053 parameter for fd to write pid to.
5055 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5057 * bus/bus.c (bus_context_new): Pass print_pid_fd
5058 to _dbus_become_daemon (bug #1720)
5060 2004-10-29 Colin Walters <walters@redhat.com>
5062 Patch from Ed Catmur <ed@catmur.co.uk>
5064 * mono/doc/Makefile.am (install-data-local): Handle
5067 2004-10-29 Colin Walters <walters@redhat.com>
5069 * bus/.cvsignore, qt/.cvsignore: Update.
5071 2004-10-29 Colin Walters <walters@redhat.com>
5073 Patch from Kristof Vansant <de_lupus@pandora.be>
5075 * configure.in: Detect Slackware.
5076 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5077 * bus/rc.messagebus.in: New file.
5079 2004-10-29 Colin Walters <walters@redhat.com>
5081 * tools/dbus-monitor.c (filter_func): Return
5082 DBUS_HANDLER_RESULT_HANDLED in filter function
5084 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5086 2004-10-29 Colin Walters <walters@redhat.com>
5088 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5090 * bus/services.c (bus_registry_acquire_service):
5091 Correctly retrieve service name from DBusString
5094 2004-10-29 Colin Walters <walters@redhat.com>
5096 * dbus/dbus-glib.h: Update documentation to not
5097 refer to internal APIs.
5099 2004-10-27 Joe Shaw <joeshaw@novell.com>
5101 * mono/Arguments.cs (GetDBusTypeConstructor):
5102 type.UnderlyingSystemType will return "System.Byte" if you do it
5103 on "byte[]", which is not what we want. So check the type.IsArray
5104 property and use System.Array instead.
5106 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
5108 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5109 the DBusUserInfo structure since this is passed into the function.
5110 This would cause a double free when the function that allocated
5111 the structure would try to free it when an error occured.
5113 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5114 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5115 for service activation to avoid 32bit/64bit parallel install issues
5117 2004-10-21 Colin Walters <walters@verbum.org>
5119 * AUTHORS: Fix my email address, the @gnu.org one
5120 has been bouncing for some time. Also add J5.
5122 2004-10-21 Colin Walters <walters@verbum.org>
5124 * dbus/dbus-transport-unix.c (do_authentication): Return
5125 authentication status to callers.
5126 (unix_handle_watch): If we completed authentication this round,
5127 don't do another read. Instead wait until the next iteration,
5128 after we've read any pending data in the auth buffer.
5129 (unix_do_iteration): Ditto.
5130 (unix_handle_watch): Updated for new do_authentication prototype.
5132 2004-10-18 Colin Walters <walters@verbum.org>
5134 * bus/selinux.c (bus_selinux_enabled): Handle
5135 --disable-selinux case.
5137 2004-10-18 Colin Walters <walters@verbum.org>
5139 * bus/selinux.h: Add bus_selinux_enabled.
5141 * bus/selinux.c (bus_selinux_enabled): Implement it.
5143 * bus/config-parser.c (struct include): Add
5144 if_selinux_enabled member.
5145 (start_busconfig_child): Parse if_selinux_enabled
5146 attribute for include.
5147 (bus_config_parser_content): Handle it.
5149 * bus/session.conf.in, bus/system.conf.in: Add
5150 inclusion of context mapping to default config files;
5151 conditional on SELinux being enabled.
5153 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5155 * test/data/invalid-config-files/badselinux-1.conf,
5156 test/data/invalid-config-files/badselinux-2.conf:
5157 Test files for bad syntax.
5159 2004-10-17 Colin Walters <walters@verbum.org>
5161 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5162 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5163 format specifier mismatches.
5165 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
5167 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5170 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5171 pointer (bug #1540, Leonardo Boiko).
5173 2004-09-28 Jon Trowbridge <trow@ximian.com>
5175 * mono/BusDriver.cs: Changed BusDriver struct to remove
5176 the ServiceCreated and ServiceDeleted events and replace them
5177 with the new ServiceOwnerChanged event.
5179 * mono/example/BusListener.cs: Added a new example program,
5180 which listens for and reports any ServiceOwnerChanged events
5183 * mono/example/Makefile.am (DESTDIR): Build changes for the
5184 new BusListener.cs example.
5186 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
5188 * bus/signals.c (bus_match_rule_parse): validate the components of
5189 match rules (bug #1439).
5191 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5193 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
5195 * doc/dbus-specification.xml: document ServiceOwnerChanged
5198 * bus/driver.c, bus/driver.h, bus/services.c: Use
5199 ServiceOwnerChanged signal instead of ServiceCreated and
5202 * bus/dispatch.c: update testcase for the new signal.
5204 2004-09-20 Jon Trowbridge <trow@ximian.com>
5206 Patch from Nat Friedman <nat@novell.com>
5208 * mono/Makefile.am: A number of small build fixes to allow "make
5209 distcheck" to succeed.
5211 * mono/example/Makefile.am: "make distcheck" fixes.
5213 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5216 * test/Makefile.am: "make distcheck" fixes.
5218 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5220 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5222 * doc/busconfig.dtd: update the DTD for the at_console attribute.
5224 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5225 messages after the first one (bug #1389).
5227 * bus/dispatch.c (check_double_hello_message): add a test case for
5228 the double hello message bug.
5229 (check_existent_service_activation): fix check of spawning error.
5231 2004-09-16 David Zeuthen <david@fubar.dk>
5233 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5235 2004-09-12 David Zeuthen <david@fubar.dk>
5237 Patch from Kay Sievers <kay.sievers@vrfy.org>
5239 * bus/bus.c (bus_context_new):
5241 * bus/main.c (usage)
5243 Add commandline option --nofork to override configuration file
5246 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5248 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5249 compilers don't like it (bug #974).
5251 2004-09-04 Harald Fernengel <harry@kdevelop.org>
5253 * qt/connection.*: Applied patch by Jérôme Lodewyck
5254 <lodewyck@clipper.ens.fr> to integrate an existing
5255 connection into the Qt eventloop
5257 2004-08-30 Jon Trowbridge <trow@ximian.com>
5259 * mono/BusDriver.cs: Added. This is a class for interacting with
5260 the org.freedesktop.DBus service.
5262 * mono/Message.cs: Added a mechanism to expose the message that is
5263 currently being dispatched via the static Message.Current
5264 property. Added Message.Sender and Message.Destination
5267 * mono/Handler.cs: Expose the dispatched message via
5268 Message.Current when handling method calls.
5270 * mono/Service.cs: Expose the dispatched message via
5271 Message.Current when handling signal emissions.
5273 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5274 Connection.BaseService property.
5276 2004-08-28 Havoc Pennington <hp@redhat.com>
5278 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5280 More fixes from Steve Grubb
5282 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5283 (_dbus_listen_tcp_socket): fix fd leak
5285 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5286 EINTR to a bit lower in the code
5288 2004-08-26 Jon Trowbridge <trow@ximian.com>
5290 * bus/driver.c (bus_driver_handle_service_exists): Respond with
5291 TRUE if we are inquiring about the existence of the built-in
5292 org.freedesktop.DBus service.
5294 2004-08-25 John Palmieri <johnp@redhat.com>
5295 * bus/config-parser.c:
5296 (struct PolicyType): Add POLICY_CONSOLE
5297 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5298 (start_busconfig_child): Sets up console element when
5299 <policy at_console=""> is encountered in a policy file
5300 (append_rule_from_element): Convert console elements to console
5304 (bus_policy_create_client_policy): Add console rules to the client
5305 policy based on if the client is at the console
5306 (bus_policy_append_console_rule): New function for adding a
5307 console rule to a policy
5308 (bus_policy_merge): Handle console rule merging
5310 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5311 where we check for console user files
5313 * dbus/dbus-sysdeps.c:
5314 (_dbus_file_exists): New function which checks if the given
5316 (_dbus_user_at_console): New function which does the system
5317 specific process of checking if the user is at the console
5319 * dbus/dbus-userdb.c:
5320 (_dbus_is_console_user): New function converts a UID to user name
5321 and then calls the system specific _dbus_user_at_console to
5322 see if the user is at the console and therefor a console user
5324 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
5326 * bus/config-parser.c (set_limit):
5327 * bus/dbus-daemon-1.1.in:
5328 * test/data/valid-config-files/many-rules.conf: set the
5329 max_match_rules_per_connection limt from the config file.
5331 * doc/busconfig.dtd: update the DTD.
5333 * bus/driver.c: remove some unused variables.
5335 2004-08-24 Mikael Hallendal <micke@imendio.com>
5337 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
5338 it's been replaced by dbus_g_bus_get
5340 2004-08-23 Colin Walters <walters@redhat.com>
5342 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5344 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5346 * bus/selinux.c: Create a thread for policy reload notification.
5347 (bus_selinux_get_policy_root): Implement.
5349 * bus/config-parser.c (start_busconfig_child)
5350 (bus_config_parser_content): Support SELinux-root relative
5353 * configure.in <HAVE_SELINUX>: Add -lpthread.
5355 * bus/test-main.c (test_pre_hook, test_post_hook): New.
5356 (test_post_hook): Move memory checking into here.
5357 (test_pre_hook, test_post_hook): Move SELinux checks in
5358 here, but conditional on a DBUS_TEST_SELINUX environment
5359 variable. Unfortunately we can't run the SELinux checks
5360 as a normal user, since they won't have any permissions
5361 for /selinux. So this will have to be tested manually
5362 for now, until we have virtualization for most of
5365 2004-08-23 Havoc Pennington <hp@redhat.com>
5367 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5368 drop supplementary groups, suggested by Steve Grubb
5370 2004-08-20 Colin Walters <walters@redhat.com>
5372 * bus/config-parser.c (start_busconfig_child): Remove some unused
5375 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5378 2004-08-17 Joe Shaw <joeshaw@novell.com>
5380 * configure.in: If --enable-mono is passed in, if we can't find
5383 * mono/Makefile.am: Use /gacutil to install assemblies into the
5386 2004-08-12 Havoc Pennington <hp@redhat.com>
5388 * NEWS: update for 0.22
5390 * configure.in: release 0.22
5392 2004-08-11 Colin Walters <walters@redhat.com>
5394 * tools/dbus-send.c (main, usage): Add --reply-timeout
5397 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
5399 * bus/bus.c (process_config_first_time_only): get rid of an unused
5400 DBusError that was causing a memoy leak (bug #989).
5402 * dbus/dbus-keyring.c, dbus/dbus-message.c:
5403 fix compilation on Solaris/Forte C (bug #974)
5405 * bus/main.c (main): plug two minuscule memleaks.
5407 2004-08-10 Havoc Pennington <hp@redhat.com>
5409 * doc/dbus-tutorial.xml: add some more info on GLib bindings
5411 2004-08-09 Havoc Pennington <hp@redhat.com>
5413 * COPYING: switch to Academic Free License version 2.1 instead of
5414 2.0, to resolve complaints about patent termination clause.
5416 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
5418 * README: added documentation for the --enable-python
5421 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5423 * bus/config-parser.c (bus_config_parser_new): fix an invalid
5424 _unref in the SELinux support.
5426 * doc/busconfig.dtd: update DTD for SELinux support.
5428 * bus/config-loader-libxml.c: fix error handler and parser
5429 initialisation/cleanup. OOM test now works with libxml2 HEAD.
5431 * configure.in: remove the warning about libxml2.
5433 * dbus/dbus-bus.c: silence doxygen warning.
5435 2004-07-31 Colin Walters <walters@redhat.com>
5437 * configure.in: Move #error in SELinux check to its own line.
5439 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5441 * dbus/dbus-internals.h (_DBUS_SET_OOM):
5442 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5445 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5446 broken by the change in the _SET_OOM macros.
5448 2004-07-31 Colin Walters <walters@redhat.com>
5450 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5453 2004-07-31 Colin Walters <walters@redhat.com>
5455 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5456 to correctly detect DBUS__ACQUIRE_SVC. Also add an
5459 2004-07-24 Havoc Pennington <hp@redhat.com>
5461 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5463 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5466 * configure.in: add --enable-selinux
5468 * bus/policy.c (bus_policy_merge): add FIXME to a comment
5470 * bus/main.c (main): initialize and shut down selinux
5472 * bus/connection.c: store SELinux ID on each connection, to avoid
5473 repeated getting of the string context and converting it into
5476 * bus/bus.c (bus_context_get_policy): new accessor, though it
5478 (bus_context_check_security_policy): check whether the security
5479 context of sender connection can send to the security context of
5480 recipient connection
5482 * bus/config-parser.c: add parsing for <selinux> and <associate>
5484 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5485 implement dbus_connection_get_unix_fd()
5487 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5488 function, used by the selinux stuff
5490 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
5492 * bus/config-loader-libxml.c: complete the implementation of
5493 libxml backend for config file loader. Doesn't work with full OOM
5496 * configure.in: change error when selecting libxml into a warning.
5498 * test/data/invalid-config-files: add two non-well-formed XML
5501 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5503 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5504 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5505 be necessary to read all the buffer. (bug #894)
5507 * bus/activation.c (bus_activation_activate_service): fix a
5508 potential assertion failure (bug #896). Small optimization in the
5509 case of auto-activation messages.
5511 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5512 add test case for byte-through-vararg bug (#901). patch by Kimmo
5515 2004-07-28 Anders Carlsson <andersca@gnome.org>
5518 * python/dbus_bindings.pyx.in:
5519 Add dbus.init_gthreads (), allow emit_signal to pass
5520 arguments to the signal.
5522 2004-07-24 Havoc Pennington <hp@redhat.com>
5524 * AUTHORS: add some people, not really comprehensively, let me
5525 know if I missed you
5527 2004-07-24 Havoc Pennington <hp@redhat.com>
5529 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5532 * test/Makefile.am (DIST_SUBDIRS): here also
5534 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5536 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5537 breaking build on Solaris, reported by Farhad Saberi on the ML.
5539 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5540 va_arg invocation to account for integer promotion in the case of
5541 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5543 * bus/services.c (bus_service_remove_owner): fix bug #902, use
5544 _dbus_list_get_first_link, not _dbus_list_get_first.
5546 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5548 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5549 handler functions so that the asserts in _dbus_object_subtree_unref
5552 * dbus/dbus-transport-unix.c (do_reading):
5553 _dbus_transport_queue_messages return value is of type
5554 dbus_bool_t, not DBusDispatchStatus.
5556 2004-07-19 David Zeuthen <david@fubar.dk>
5558 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5561 (check_get_connection_unix_user): Debug says GetProperty; but the
5562 method is called GetConnectionUnixUser
5563 (check_get_connection_unix_process_id): New function
5564 (bus_dispatch_test): Actually call check_get_connection_unix_user();
5565 also call check_get_connection_unix_process_id()
5568 (bus_driver_handle_get_connection_unix_process_id): New function,
5569 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5573 (handle_server_data_external_mech): Set pid from the credentials
5574 obtained from the socket
5576 * dbus/dbus-connection.c:
5577 (dbus_connection_get_unix_process_id): New function
5579 * dbus/dbus-connection.h:
5580 Add prototype for dbus_connection_get_unix_process_id
5582 * dbus/dbus-transport.c:
5583 (_dbus_transport_get_unix_process_id): New function
5585 * dbus/dbus-transport.h:
5586 Add prototype for _dbus_transport_get_unix_process_id
5588 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
5590 * dbus/dbus-message.c: Message counter fix, patch by Christian
5591 Hammond <chipx86@gnupdate.org>
5593 2004-07-18 Seth Nickell <seth@gnome.org>
5596 * python/dbus_bindings.pyx.in:
5597 * python/tests/test-client.py:
5599 Add dbus.ByteArray and dbus_bindings.ByteArray
5600 types so that byte streams can be passed back.
5602 Give jdahlin the heaps of credit that are so
5605 2004-07-12 Seth Nickell <seth@gnome.org>
5609 Add message argument to the default object_method_handler
5612 * python/dbus_bindings.pyx.in:
5614 Automatically return NIL when passed an empty list
5615 (we can't pass back a list since lists are typed
5616 and we don't have any idea what type the the client
5617 intended the list to be... :-( )
5619 2004-07-10 Seth Nickell <seth@gnome.org>
5621 * python/examples/Makefile.am:
5623 Fix distcheck breakage caused by new examples.
5625 2004-07-10 Seth Nickell <seth@gnome.org>
5629 Add "message" argument to service-side dbus.Object
5630 methods. This will break existing services written
5631 using the python bindings, but will allow extraction
5632 of all the message information (e.g. who its from).
5634 Add improved "object oriented" signal handling/emission.
5636 * python/examples/example-service.py:
5640 * python/examples/example-signal-emitter.py:
5641 * python/examples/example-signal-recipient.py:
5643 Two new examples that show how to emit and receive
5644 signals using the new APIs.
5646 * python/examples/example-signals.py:
5647 * python/examples/gconf-proxy-service.py:
5648 * python/examples/gconf-proxy-service2.py:
5650 Add "message" argument to service methods.
5652 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
5654 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5655 * dbus/bus.c (dbus_bus_get_unix_user)
5656 * doc/dbus-specification.xml: implement GetConnectionUnixUser
5657 method of org.freedesktop.DBus interface.
5659 * bus/dispatch.c: test case
5661 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
5663 * python/Makefile.am: switched include directory from glib/ to dbus/
5664 since dbus-glib.h moved
5666 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5668 * configure.in: prevent building the gcj stuff and libxml loader
5669 since they are broken.
5671 2004-06-20 Havoc Pennington <hp@redhat.com>
5673 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
5674 codes from the dbus error names
5676 * glib/dbus-glib.h: move to subdir dbus/ since it's included
5677 as dbus/dbus-glib.h and that breakage is now visible due to
5678 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5680 * glib/dbus-glib.h: s/gproxy/g_proxy/
5682 * dbus/dbus-shared.h: new header to hold stuff shared with
5685 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5688 * glib/dbus-glib.h (dbus_set_g_error): move to
5689 dbus-glib-lowlevel.h
5691 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5692 of stuff to enable this
5694 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5696 * a bunch of other changes with the same basic "separate glib
5697 bindings from dbus.h" theme
5699 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
5701 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5703 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5705 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5707 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5708 the reply value of the ServiceExists message.
5710 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
5712 * python/dbus_bindings.pyx.in: No longer need to parse path
5713 elements and pass them as arrays of strings. The C API now
5714 accepts plain path strings.
5715 (_build_parsed_path): removed
5717 2004-06-07 Havoc Pennington <hp@redhat.com>
5719 * doc/TODO: remove auto-activation item since it's done; sort
5720 items by importance/milestone
5722 2004-06-07 Havoc Pennington <hp@redhat.com>
5724 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5725 random signature when using REQUIRED_FIELDS (this hack won't work
5728 * dbus/dbus-message.c: change the signature to be a header field,
5729 instead of message->signature special-case string. Incremental
5730 step forward. Then we can fix up code to send the signature in the
5731 message, then fix up code to validate said signature, then fix up
5732 code to not put the typecodes inline, etc.
5733 (load_one_message): don't make up the signature after the fact
5734 (decode_header_data): require signature field for the known
5737 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5739 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5741 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
5743 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5745 * mono/Handler.cs: Updated to follow new path argument for
5746 (un-)registering objects.
5748 * mono/example/Makefile.am:
5750 * configure.in: Bumped required version for mono and use new -pkg
5753 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
5755 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5756 registration functions take the path argument as char* instead of
5759 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5760 split off the path decompostion part of
5761 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5764 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5766 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5768 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5769 machine approach. A state is implemented as a function that
5770 handles incoming events as specified for that state.
5772 * doc/dbus-specification.xml: Update auth protocol state machine
5773 specification to match implementation. Remove some leftover
5776 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5778 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5779 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5782 * Doxyfile.in: remove deprecated options.
5784 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5785 glib/test-thread.h, glib/test-thread-client.c,
5786 glib/test-thread-server.c, glib/test-profile.c,
5787 glib/test-dbus-glib.c: remove these unused files.
5789 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
5791 * dbus/dbus-object-tree.c
5792 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5793 non-fallback handlers (bug #684).
5794 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5795 (find_subtree_recurse): report wether the returned subtree is an
5796 exact match or a "fallback" match higher up in the tree.
5797 (object_tree_test_iteration): update test case.
5799 2004-06-01 Seth Nickell <seth@gnome.org>
5801 * python/dbus_bindings.pyx.in:
5802 * python/tests/test-client.py:
5804 Round off basic type support. Add dicts (yay!), and
5805 remaining array types.
5807 Make MessageIter more general so it works for dicts too.
5809 Mark all loop variables as C integers.
5811 2004-05-31 Havoc Pennington <hp@redhat.com>
5813 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5816 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5818 * glib/dbus-glib-tool.c (main): set up to have a --self-test
5819 option that runs the tests, and start filling in some code
5820 including for starters just dumping the interfaces to stdout
5822 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5824 * test/data/valid-introspection-files/lots-of-types.xml: test of
5825 an example introspection file
5827 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5830 2004-05-31 Seth Nickell <seth@gnome.org>
5832 * python/dbus_bindings.pyx.in:
5833 * python/tests/test-client.py:
5838 Fix string array memory trashing bug... oops...
5840 2004-05-30 Seth Nickell <seth@gnome.org>
5844 Add a nicer-but-less-flexible alternate API for handling
5845 calls to virtual objects in dbus.ObjectTree.
5847 Screw up the argument order to the dbus.Object constructor
5848 for consistency with dbus.ObjectTree (and to make dbus_methods
5849 optional for future extension)
5851 * python/examples/Makefile.am:
5852 * python/examples/gconf-proxy-service.py:
5853 * python/examples/gconf-proxy-service2.py:
5855 Alternate implementation of gconf-proxy-service using the
5856 nicer dbus.ObjectTree API.
5858 * python/examples/example-service.py:
5859 * python/tests/test-server.py
5861 Reverse the argument order to deal with dbus.Object constructor
5864 2004-05-30 Seth Nickell <seth@gnome.org>
5866 * python/examples/example-client.py:
5867 * python/examples/example-service.py:
5869 Take it back. Lists seem to work but they're broken
5870 in the test suite. Make the base examples use
5873 2004-05-30 Seth Nickell <seth@gnome.org>
5875 * python/dbus_bindings.pyx.in:
5876 * python/tests/test-client.py:
5878 Add some more tests and fix errors that crop up.
5879 Unfortunately, currently it seems like marshalling
5880 and unmarshalling of lists is completely broken :-(
5882 2004-05-30 Seth Nickell <seth@gnome.org>
5884 * python/dbus_bindings.pyx.in:
5886 Add support for ObjectPath type.
5890 Refactor message handling code to a common function.
5892 * python/tests/test-client.py:
5893 * python/tests/test-server.py:
5895 Add tests that check to make sure values of all types
5896 can be echoed from a service w/o mangling.
5898 2004-05-29 Seth Nickell <seth@gnome.org>
5902 Add ObjectTree class which allows implementation
5903 of trees of "virtual" objects. Basically the python
5904 wrapper for "register_fallback".
5906 * python/examples/Makefile.am
5907 * python/examples/gconf-proxy-client.py:
5908 * python/examples/gconf-proxy-service.py:
5910 Implement a simple GConf proxy service that supports
5911 get/set on string and int GConf keys using the ObjectTree.
5913 2004-05-29 Seth Nickell <seth@gnome.org>
5916 * python/examples/example-client.py:
5917 * python/examples/example-service.py:
5918 * python/examples/list-system-services.py:
5920 Add SessionBus, SystemBus and ActivationBus classes
5921 so you don't need to know the special little BUS_TYPE
5924 2004-05-29 Havoc Pennington <hp@redhat.com>
5926 * bus/config-parser.c (process_test_valid_subdir): temporarily
5927 stop testing config parser OOM handling, since expat has issues
5928 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
5930 * bus/dbus-daemon-1.1.in: change requested_reply to
5931 send_requested_reply/receive_requested_reply so we can send the
5932 replies, not just receive them.
5934 * bus/config-parser.c: parse the new
5935 send_requested_reply/receive_requested_reply
5937 * bus/policy.c (bus_client_policy_check_can_send): add
5938 requested_reply argument and use it
5940 * bus/bus.c (bus_context_check_security_policy): pass through
5941 requested_reply status to message send check
5943 * bus/system.conf.in: adapt to requested_reply change
5945 2004-05-28 Havoc Pennington <hp@redhat.com>
5947 * test/glib/test-service-glib.c (main): remove unused variable
5949 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
5951 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
5952 from the enum, no longer in use.
5954 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
5957 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
5958 whether error_name passed in is a valid error name.
5960 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
5962 * dbus/dbus-message.c (dbus_message_get_args): Added support for
5963 OBJECT_PATH and OBJECT_PATH_ARRAY
5965 2004-05-28 Seth Nickell <seth@gnome.org>
5967 * python/examples/Makefile.am:
5969 Forget to add Makefile.am. Do not pass go.
5971 2004-05-28 Michael Meeks <michael@ximian.com>
5973 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
5976 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
5978 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
5979 (_dbus_message_iter_get_basic_type_array): impl.
5980 drastically simplify ~all relevant _get methods to use these.
5981 (_dbus_message_iter_append_basic_array),
5982 (dbus_message_iter_append_basic): impl
5983 drastically simplify ~all relevant _append methods to use these.
5985 * dbus/dbus-message-builder.c (parse_basic_type)
5986 (parse_basic_array, lookup_basic_type): impl.
5987 (_dbus_message_data_load): prune scads of duplicate /
5990 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
5991 (_dbus_demarshal_basic_type): implement,
5992 (demarshal_and_validate_len/arg): beef up debug.
5993 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
5995 2004-05-27 Seth Nickell <seth@gnome.org>
5998 * python/Makefile.am:
6000 Include the example python apps in the tarball.
6002 * python/examples/list-system-services.py
6004 Add a python new example that fetches the list of services
6005 from the system bus.
6007 2004-05-27 Seth Nickell <seth@gnome.org>
6010 * python/dbus_bindings.pyx.in:
6012 Fix failure to notify that a signal was not handled,
6013 resulted in hung functions.
6015 2004-05-25 Colin Walters <walters@redhat.com>
6017 * tools/dbus-monitor.c (main): Monitor all types of messages.
6019 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
6021 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6022 which unregisters the object path and disposes the handler.
6024 2004-05-23 Kristian Høgsberg <krh@redhat.com>
6026 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6028 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6029 operands to && so we call dbus_message_iter_next () for the last
6032 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6034 * dbus/dbus-object-tree.c
6035 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6036 children even if the requested path isn't registered.
6037 (object_tree_test_iteration): test object_tree_list_registered.
6039 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6042 2004-05-20 Kristian Høgsberg <krh@redhat.com>
6044 * doc/TODO: Remove resolved items.
6046 * bus/expirelist.h (struct BusExpireList): remove unused n_items
6049 * bus/connection.c (bus_connections_expect_reply): Enforce the
6050 per-connection limit on pending replies.
6052 Patch from Jon Trowbridge <trow@ximian.com>:
6054 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
6055 up a watch that triggers a config reload when one end of the pipe
6057 (signal_handler): Instead of doing the config reload in our SIGHUP
6058 handler, just write to the reload pipe and let the associated
6059 watch handle the reload when control returns to the main loop.
6061 * bus/driver.c (bus_driver_handle_reload_config): Added.
6062 Implements a ReloadConfig method for requesting a configuration
6063 file reload via the bus driver.
6065 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
6067 * HACKING: Updated release instructions concerning the wiki page.
6069 2004-05-18 Kristian Høgsberg <krh@redhat.com>
6071 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6072 filter against auth->allowed_mechs; we only add allowed mechs in
6073 record_mechanisms().
6075 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6076 ALLOWED_MECHS to auth-script format so we can set the list of
6079 * data/auth/client-out-of-mechanisms.auth-script: New test to
6080 check client disconnects when it is out of mechanisms to try.
6082 * dbus/dbus-auth.c (process_command): Remove check for lines
6083 longer that 1 MB; we only buffer up maximum 16 kB.
6085 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6086 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6087 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6088 assume there might be unused bytes.
6090 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6091 client-out-of-mechs, it is handled in process_reject(). Move check
6092 for max failures to send_rejected(), as it's a server-only thing.
6094 * dbus/dbus-auth.c: Factor out protocol reply code into functions
6095 send_auth(), send_data(), send_rejected(), send_error(),
6096 send_ok(), send_begin() and send_cancel().
6098 2004-05-17 Kristian Høgsberg <krh@redhat.com>
6100 Remove base64 encoding, replace with hex encoding. Original patch
6101 from trow@ximian.com, added error handling.
6103 * dbus/dbus-string.c (_dbus_string_base64_encode)
6104 (_dbus_string_base64_decode): Remove.
6105 (_dbus_string_hex_decode): Add end_return argument so we can
6106 distinguish between OOM and invalid hex encoding.
6107 (_dbus_string_test): Remove base64 tests and add test case for
6110 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6111 Replace base64 with hex.
6113 * test/data/auth/invalid-hex-encoding.auth-script: New test case
6114 for invalid hex encoded data in auth protocol.
6116 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6118 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6121 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6123 * mono/dbus-sharp.dll.config.in: Added for GAC
6124 * mono/dbus-sharp.snk: Added for GAC
6125 * mono/Assembly.cs.in: Added for GAC
6126 * mono/Makefile.am: Changes for GAC installation
6127 * configure.in: Added refs for dbus-sharp.dll.config.in and
6128 Assembly.cs.in. More fixes for mono testing
6129 * mono/example/Makefile.am: Changed var to CSC
6130 * Makefile.am: Changed flag name to DBUS_USE_CSC
6132 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6134 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6135 * mono/doc/*: Added documentation framework
6136 * configure.in: Added monodoc check
6137 * README: Added description of mono configure flags
6139 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
6141 * doc/dbus-specification.xml: Added a "Required" column to the
6142 header fields table and changed the "zero or more" verbage in
6143 the above paragraph to read "The header must contain the required
6144 named header fields and zero or more of the optional named header
6146 * test/data/invalid-messages/*.message: Added the required PATH
6147 named header field to the tests so that they don't fail on
6148 'Missing path field'
6150 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
6152 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6153 the stack by implicitly defining variable and parameter types and
6154 removing the hack of defining C pointers as python objects and later
6157 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
6159 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6161 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
6163 * mono/DBusType/Dict.cs: Handle empty dicts
6164 * mono/DBusType/Array.cs: Handle empty arrays
6165 * mono/Arguments.cs: Handle empty arguments
6167 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
6169 * dbus-sharp.pc.in: Modified to include include Libs and Requires
6172 2004-04-25 Kristian Høgsberg <krh@redhat.com>
6174 * test/data/valid-messages/standard-*.message: Update message
6175 test scripts to new header field names.
6177 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
6179 * test/break-loader.c (randomly_do_n_things): tracked down buffer
6180 overflow to times_we_did_each_thing array which would chop off the
6181 first character of the failure_dir string. Increased the size of
6182 the array to 7 to reflect the number of random mutation functions
6185 2004-04-21 Kristian Høgsberg <krh@redhat.com>
6187 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6188 unix_server->watch here, it is unreffed in disconnect.
6189 (_dbus_server_new_for_tcp_socket): convert NULL host to
6190 "localhost" here so we don't append NULL to address.
6192 * dbus/dbus-server.c (_dbus_server_test): Add test case for
6193 various addresses, including tcp with no explicit host.
6195 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6197 * dbus/dbus-message.c (decode_header_data, decode_string_field):
6198 fix incorrect setting of .name_offset in the HeaderField (it was
6199 off by two bytes, positioned right after the name and typecode)
6201 * bus/bus.c (bus_context_new, bus_context_unref): test before
6202 calling dbus_server_free_data_slot and _dbus_user_database_unref
6203 in case of an error.
6205 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6208 2004-04-19 Kristian Høgsberg <krh@redhat.com>
6210 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6211 _dbus_poll() instead of select().
6213 2004-04-15 Jon Trowbridge <trow@ximian.com>
6215 * bus/main.c (signal_handler): Reload the configuration files
6217 (main): Set up our SIGHUP handler.
6219 * bus/bus.c (struct BusContext): Store the config file, user and
6220 fork flag in the BusContext.
6221 (process_config_first_time_only): Added. Contains the code
6222 (previously in bus_context_new) for setting up the BusContext from
6223 the BusConfigParser that should only be run the first time the
6224 config files are read.
6225 (process_config_every_time): Added. Contains the code (previously
6226 in bus_context_new) for setting up the BusContext from the
6227 BusConfigParser that should be run every time the config files are
6229 (load_config): Added. Builds a BusConfigParser from the config
6230 files and passes the resulting structure off to
6231 process_config_first_time_only (assuming this is the first time)
6232 and process_config_every_time.
6233 (bus_context_new): All of the config-related code has been moved
6234 to process_config_first_time_only and process_config_every_time.
6235 Now this function just does the non-config-related initializations
6236 and calls load_config.
6237 (bus_context_reload_config): Added.
6239 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
6241 * bus/driver.c (bus_driver_handle_get_service_owner):
6242 implement a GetServiceOwner method.
6243 * doc/dbus-specification.xml: document it.
6244 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6246 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6247 implement, using the bus GetServiceOwner method.
6249 * test/glib/test-dbus-glib.c:
6250 use dbus_gproxy_new_for_service_owner so that we can receive the
6253 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
6255 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6256 dbus/dbus-message.c, dbus/dbus-protocol.h
6257 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6259 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6260 dbus/dbus-message.c, dbus/dbus-protocol.h
6261 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6263 * dbus/dbus-internals.c (_dbus_header_field_to_string):
6264 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6265 DBUS_HEADER_FIELD_SENDER resolves to "sender"
6267 * doc/dbus-specification.xml (Header Fields Table):
6268 s/SERVICE/DESTINATION
6269 s/SENDER_SERVICE/SENDER
6272 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
6274 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6277 2004-04-13 Michael Meeks <michael@ximian.com>
6279 * glib/dbus-gobject.c (handle_introspect): split out
6280 (introspect_properties): this.
6281 (handle_introspect): implement this.
6283 * test/glib/Makefile.am: use the absolute path so the bus
6284 daemon's chdir ("/") doesn't kill us dead.
6286 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6288 2004-04-12 Jon Trowbridge <trow@ximian.com>
6290 * bus/config-parser.c (struct BusConfigParser): Added
6291 included_files field.
6292 (seen_include): Added. Checks whether or not a file has already
6293 been included by any parent BusConfigParser.
6294 (bus_config_parser_new): Copy the parent's included_files.
6295 (include_file): Track which files have been included, and fail on
6296 circular inclusions.
6297 (process_test_valid_subdir): Changed printf to report if we are
6298 testing valid or invalid conf files.
6299 (all_are_equiv): Changed printf to be a bit clearer about
6300 what we are actually doing.
6301 (bus_config_parser_test): Test invalid configuration files.
6303 2004-04-09 Jon Trowbridge <trow@ximian.com>
6305 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6306 argument. If non-null, the newly-constructed BusConfigParser will
6307 be initialized with the parent's BusLimits instead of the default
6309 (include_file): When including a config file, pass in
6310 the current parser as the parent and then copy the BusLimits
6311 from the included BusConfigParser pack to the current parser.
6312 (process_test_valid_subdir): Renamed from process_test_subdir.
6313 (process_test_equiv_subdir): Added. Walks through a directory,
6314 descending into each subdirectory and loading the config files
6315 it finds there. If any subdirectory contains two config files
6316 that don't produce identical BusConfigParser structs, fail.
6317 For now, the BusConfigParser's BusPolicies are not compared.
6318 (bus_config_parser_test): Call both process_test_valid_subdir and
6319 process_test_equiv_subdir.
6321 * bus/config-loader-libxml.c (bus_config_load): Take a parent
6322 argument and pass it along to the call to bus_config_parser_new.
6323 Also made a few small changes to allow this code to compile.
6325 * bus/config-loader-expat.c (bus_config_load): Take a parent
6326 argument and pass it along to the call to bus_config_parser_new.
6328 * bus/bus.c (bus_context_new): Load the config file
6329 with a NULL parent argument.
6331 2004-03-29 Michael Meeks <michael@ximian.com>
6333 * glib/dbus-gobject.c (introspect_properties): split
6334 out, fix mangled 'while' flow control.
6335 (introspect_signals): implement.
6336 (handle_introspect): update.
6338 2004-03-29 Michael Meeks <michael@ximian.com>
6340 * glib/dbus-gobject.c (set_object_property): split out /
6341 re-work, use the property type, and not the message type(!)
6342 (get_object_property): ditto.
6344 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6345 (dbus_gvalue_marshal): make this code re-usable, needed
6346 for signals too, also on both proxy and server side.
6347 Re-write for more efficiency / readability.
6349 2004-03-29 Michael Meeks <michael@ximian.com>
6351 * dbus/dbus-message.c
6352 (dbus_message_new_error_printf): impl.
6354 * dbus/dbus-connection.c
6355 (dbus_connection_unregister_object_path): fix warning.
6357 * configure.in: fix no-mono-installed situation.
6359 2004-03-27 Havoc Pennington <hp@redhat.com>
6361 Patch from Timo Teräs:
6363 * tools/dbus-send.c (main): if --print-reply, assume type is
6364 method call; support boolean type args
6366 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6367 bunch of memleak and logic bugs
6369 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6371 * mono/Arguments.cs:
6372 * mono/Introspector.cs:
6374 * mono/InterfaceProxy.cs:
6376 * mono/ProxyBuilder.cs:
6378 Added InterfaceProxy class to avoid building proxies for every
6382 * dbus-message.c (dbus_message_append_args_valist)
6383 (dbus_message_iter_get_object_path)
6384 (dbus_message_iter_get_object_path_array)
6385 (dbus_message_iter_append_object_path)
6386 (dbus_message_iter_append_object_path_array):
6387 Added object_path iter functions to handle OBJECT_PATH arguments
6389 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6391 First checkin of mono bindings.
6394 Build stuff for the bindings
6395 * dbus-sharp.pc.in: Added for pkgconfig
6397 2004-03-21 Havoc Pennington <hp@redhat.com>
6399 * test/test-service.c (main): remove debug spew
6401 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6403 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6406 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6407 (dbus_message_iter_init_array_iterator)
6408 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6409 indicate whether the iterator is empty
6411 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6414 2004-03-19 Havoc Pennington <hp@redhat.com>
6416 * NEWS: 0.21 updates
6418 * configure.in: 0.21
6420 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6422 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6423 you don't need pyrex to make dist
6425 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6428 2004-03-18 Richard Hult <richard@imendio.com>
6430 * dbus/dbus-message.c (dbus_message_get_auto_activation)
6431 (dbus_message_set_auto_activation): Add doxygen docs.
6433 2004-03-16 Richard Hult <richard@imendio.com>
6435 * bus/activation.c: (bus_activation_service_created),
6436 (bus_activation_send_pending_auto_activation_messages),
6437 (bus_activation_activate_service):
6439 * bus/dispatch.c: (bus_dispatch),
6440 (check_nonexistent_service_auto_activation),
6441 (check_service_auto_activated),
6442 (check_segfault_service_auto_activation),
6443 (check_existent_service_auto_activation), (bus_dispatch_test):
6444 * bus/driver.c: (bus_driver_handle_activate_service):
6445 * bus/services.c: (bus_registry_acquire_service):
6446 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6447 (dbus_message_get_auto_activation):
6448 * dbus/dbus-message.h:
6449 * dbus/dbus-protocol.h: Implement auto-activation.
6451 * doc/dbus-specification.xml: Add auto-activation to the spec.
6453 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
6455 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6456 fix a bug with CUSTOM types.
6458 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6459 a unit test for this bug (used to fail).
6461 2004-03-12 Mikael Hallendal <micke@imendio.com>
6464 (babysitter_watch_callback): notify all pending activations waiting for
6465 the same exec that the activation failed.
6466 (bus_activation_activate_service): shortcut the activation if we
6467 already waiting for the same executable to start up.
6469 2004-03-12 Mikael Hallendal <micke@imendio.com>
6472 - Added service file reloading.
6473 Each service files directory is kept in an hash table in
6474 BusActivation and each BusActivationEntry knows what .service-file it
6475 was read from. So when you try to activate a service the bus will
6476 check if it's been updated, removed or if new .service-files has
6478 - Test code at the bottom for the service file reloading.
6479 * bus/test-main.c: (main):
6481 - added service reloading test.
6482 * dbus/dbus-sysdeps.c:
6483 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6485 2004-03-08 Michael Meeks <michael@ximian.com>
6487 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
6488 bail immediately if disconnected, to avoid busy loop.
6490 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6491 cleanup cut/paste/inefficiency.
6493 2004-03-01 David Zeuthen <david@fubar.dk>
6495 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6496 bug where args were used twice. This bug resulted in a segfault
6497 on a Debian/PPC system when starting the messagebus daemon. Include
6498 dbus-sysdeps.h for DBUS_VA_COPY
6500 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6502 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6503 appropriate va_copy implementation. From GLib
6505 2004-02-24 Joe Shaw <joe@ximian.com>
6507 * bus/services.c (bus_registry_acquire_service): We need to pass
6508 in the service name to dbus_set_error() to prevent a crash.
6510 2003-12-26 Anders Carlsson <andersca@gnome.org>
6512 * AUTHORS: Reveal my True identity.
6514 2003-12-17 Mikael Hallendal <micke@imendio.com>
6516 * dbus/dbus-message.c: (dbus_message_append_args_valist):
6517 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6519 2003-12-13 Mikael Hallendal <micke@imendio.com>
6521 * doc/TODO: Added not about better error check of configuration files.
6523 2003-12-02 Richard Hult <richard@imendio.com>
6525 * Update AFL version to 2.0 throughout the source files to reflect
6526 the update that was done a while ago.
6528 2003-12-02 Richard Hult <richard@imendio.com>
6530 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6531 wrote_dict_key to FALSE on the iter that the dict is appended to,
6532 just like when appending other types. Fixes a bug where a dict
6533 couldn't be put inside a dict.
6534 (dbus_message_iter_append_dict_key): Fix typo in warning message.
6535 (message_iter_test, _dbus_message_test): Add test case for dict
6538 2003-12-01 David Zeuthen <david@fubar.dk>
6540 * python/dbus.py: Add the actual message when calling the reciever
6541 of a signal such that parameters can be inspected. Add the method
6542 remove_signal_receiver
6544 2003-11-26 Mikael Hallendal <micke@imendio.com>
6548 * glib/*.[ch]: Made ref functions return the pointer
6550 2003-11-25 Zack Rusin <zack@kde.org>
6552 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6554 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
6557 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
6558 the Integrator and to better fit with the server,
6560 2003-11-24 Zack Rusin <zack@kde.org>
6562 * qt/connection.h, qt/connection.cpp: removing initDbus method since
6563 the integrator handles it now
6565 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6566 since QTimer wasn't really meant to be used the way DBusTimeout is
6568 2003-11-24 Zack Rusin <zack@kde.org>
6570 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
6571 Integrator class which integrates D-BUS with the Qt event loop,
6573 * qt/connection.h, qt/connection.cpp: Move all the code which
6574 was dealing with D-BUS integration to the Integrator class,
6575 and start using Integrator,
6577 2003-11-23 Zack Rusin <zack@kde.org>
6579 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
6582 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6583 switching namespaces to DBusQt, reworking the class,
6585 * Makefile.cvs: switching dependencies so that it matches KDE
6588 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
6591 2003-11-19 Havoc Pennington <hp@redhat.com>
6595 * configure.in: bump version to 0.20
6597 * configure.in (have_qt): add yet another place to look for qt
6598 (someone hand trolltech a .pc file...)
6600 2003-11-01 Havoc Pennington <hp@redhat.com>
6602 * doc/dbus-specification.xml: add state machine docs on the auth
6603 protocol; just a first draft, I'm sure it's wrong.
6605 2003-10-28 David Zeuthen <david@fubar.dk>
6607 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6608 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6610 2003-10-28 Havoc Pennington <hp@redhat.com>
6612 * dbus/dbus-message.c (get_next_field): delete unused function
6614 2003-10-28 Havoc Pennington <hp@redhat.com>
6616 * bus/expirelist.c (do_expiration_with_current_time): detect
6617 failure of the expire_func due to OOM
6619 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6621 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6622 NoReply error that's now created by the bus when the service exits
6624 2003-10-28 Havoc Pennington <hp@redhat.com>
6626 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6627 tests for set_path, set_interface, set_member, etc.
6629 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6631 * dbus/dbus-message.c (set_string_field): always just delete and
6632 re-append the field; accept NULL for deletion
6633 (re_align_fields_recurse): reimplement
6635 2003-10-26 Havoc Pennington <hp@redhat.com>
6637 * dbus/dbus-connection.c: fix docs to properly describe the
6638 disconnected message
6639 (_dbus_connection_notify_disconnected): remove this function;
6640 we can't synchronously add the disconnected message, we have to
6641 do it after we've queued any remaining real messages
6642 (_dbus_connection_get_dispatch_status_unlocked): queue the
6643 disconnect message only if the transport has finished queueing all
6644 its real messages and is disconnected.
6645 (dbus_connection_disconnect): update the dispatch status here
6647 2003-10-22 Havoc Pennington <hp@redhat.com>
6649 * bus/bus.c (bus_context_check_security_policy): fix up assertion
6651 * bus/connection.c (bus_transaction_send_from_driver): set the
6652 destination to the connection's base service
6654 2003-10-20 Havoc Pennington <hp@redhat.com>
6656 hmm, make check is currently not passing.
6658 * doc/dbus-specification.xml: add requirement that custom type
6659 names follow the same rules as interface names.
6661 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6662 duplication and allow 'c' to be 'custom'; dict is now 'm' for
6665 * doc/dbus-specification.xml: update type codes to match
6666 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6667 CUSTOM. Add type OBJECT_PATH to the spec.
6669 2003-10-17 Havoc Pennington <hp@redhat.com>
6671 * bus/driver.c (create_unique_client_name): use "." as separator
6672 in base service names instead of '-'
6674 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6675 byte at the end of the string
6677 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6678 optimization macros since string validation seems to be a slow
6681 * doc/dbus-specification.xml: restrict valid
6682 service/interface/member/error names. Add test suite code for the
6685 * dbus/dbus-string.c: limit service/interface/member/error names
6688 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6689 format arg to verbose spew
6691 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6692 memory, return instead of g_error
6694 * test/test-service.c (path_message_func): support emitting a
6697 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6698 activation bus type if DBUS_BUS_ACTIVATION was set; default to
6699 assuming the activation bus was the session bus so that services
6700 started manually will still register.
6701 (init_connections_unlocked): fix so that in OOM situation we get
6702 the same semantics when retrying the function
6704 * test/test-service.c (main): change to use path registration, to
6705 test those codepaths; register with DBUS_BUS_ACTIVATION rather
6706 than DBUS_BUS_SESSION
6708 2003-10-16 Havoc Pennington <hp@redhat.com>
6710 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6712 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6713 coverage of the tests
6714 (coverage-report.txt): don't move the .da and .bbg files around
6716 2003-10-16 Havoc Pennington <hp@redhat.com>
6718 * bus/bus.c (struct BusContext): remove struct field I didn't mean
6721 2003-10-16 Havoc Pennington <hp@redhat.com>
6723 * bus/connection.c (bus_pending_reply_expired): either cancel or
6725 (bus_connections_check_reply): use unlink, not remove_link, as we
6726 don't want to free the link; fixes double free mess
6728 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6729 where no reply was received
6731 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6734 * bus/signals.c (match_rule_matches): add special cases for the
6735 bus driver, so you can match on sender/destination for it.
6737 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6738 DBUS_PRINT_BACKTRACE is set
6740 * dbus/dbus-internals.c: add pid to assertion failure messages
6742 * dbus/dbus-connection.c: add message type code to the debug spew
6744 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6745 sender=foo not service=foo
6747 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6748 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
6749 DBUS_ACTIVATION_ADDRESS instead
6751 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6752 DBUS_SYSTEM_BUS_ADDRESS if appropriate
6754 * bus/bus.c (bus_context_new): handle OOM copying bus type into
6757 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6758 (dbus_message_iter_get_object_path_array): new function (half
6759 finished, disabled for the moment)
6761 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6762 DBUS_MESSAGE_TYPE_ERROR
6764 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6765 avoid redirecting stderr to /dev/null
6766 (babysit): close stdin if not doing the "exit_with_session" thing
6768 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6769 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6770 stdout/stdin, so things don't get confused
6772 * bus/system.conf.in: fix to allow replies, I modified .conf
6773 instead of .conf.in again.
6775 2003-10-14 David Zeuthen <david@fubar.dk>
6777 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6778 argtype to arg_type when raising unknown arg type exception.
6779 Changed type list to reflect the changes in dbus-protocol.h so
6780 the bindings actually work.
6782 2003-10-14 Havoc Pennington <hp@redhat.com>
6784 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6785 to have a bug keeping it from outputting the .da files sometimes
6786 (string_get_string): don't append garbage nul bytes to the string.
6788 2003-10-15 Seth Nickell <seth@gnome.org>
6790 * python/Makefile.am:
6792 Include dbus_h_wrapper.h in the dist tarball.
6794 2003-10-14 Havoc Pennington <hp@redhat.com>
6796 * bus/bus.c (bus_context_check_security_policy): revamp this to
6797 work more sanely with new policy-based requested reply setup
6799 * bus/connection.c (bus_transaction_send_from_driver): set bus
6800 driver messages as no reply
6802 * bus/policy.c (bus_client_policy_check_can_receive): handle a
6803 requested_reply attribute on allow/deny rules
6805 * bus/system.conf: add <allow requested_reply="true"/>
6807 * bus/driver.c (bus_driver_handle_message): fix check for replies
6808 sent to the bus driver, which was backward. How did this ever work
6809 at all though? I think I'm missing something.
6811 * dbus/dbus-message.c (decode_header_data): require error and
6812 method return messages to have a reply serial field to be valid
6813 (_dbus_message_loader_queue_messages): break up this function;
6814 validate that reply serial and plain serial are nonzero;
6815 clean up the OOM/error handling.
6816 (get_uint_field): don't return -1 from this
6817 (dbus_message_create_header): fix signed/unsigned bug
6819 * bus/connection.c (bus_connections_expect_reply): save serial of
6820 the incoming message, not reply serial
6822 2003-10-14 Havoc Pennington <hp@redhat.com>
6824 * bus/connection.c: implement pending reply tracking using
6827 * bus/bus.c (bus_context_check_security_policy): verify that a
6828 reply is pending in order to allow a reply to be sent. Deny
6829 messages of unknown type.
6831 * bus/dbus-daemon-1.1.in: update to mention new resource limits
6833 * bus/bus.c (bus_context_get_max_replies_per_connection): new
6834 (bus_context_get_reply_timeout): new
6836 2003-10-13 Seth Nickell <seth@gnome.org>
6838 * python/Makefile.am:
6840 Pass "make distcheck": remove a couple files from DIST_FILES
6841 that weren't included in the final version.
6843 2003-10-12 Havoc Pennington <hp@pobox.com>
6845 Added test code that 1) starts an actual bus daemon and 2) uses
6846 DBusGProxy; fixed bugs that were revealed by the test. Lots
6847 more testing possible, but this is the basic framework.
6849 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
6850 empty proxy lists from the proxy list hash
6852 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
6853 couple of return_if_fail checks
6855 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
6856 to allocate, so everything is cleared to NULL as it should be.
6858 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
6859 source as data to dbus_connection_set_timeout_functions() as the
6860 timeout functions expected
6862 * test/glib/run-test.sh: add a little script to start up a message
6863 bus and run tests using it
6865 * tools/dbus-launch.1: updates
6867 * tools/dbus-launch.c (main): add --config-file option
6869 * tools/dbus-launch.c (main): remove confusing else if (runprog)
6870 that could never be reached.
6872 * dbus/dbus-message.c (dbus_message_new_method_return)
6873 (dbus_message_new_error, dbus_message_new_signal): set the
6874 no-reply-expected flag on all these. Redundant, but may
6875 as well be consistent.
6877 2003-10-11 Havoc Pennington <hp@pobox.com>
6879 * test/decode-gcov.c (function_solve_graph): make broken block
6880 graph a nonfatal error since it seems to be broken. Need to debug
6883 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
6884 can't just check type > INVALID < LAST anymore
6886 * dbus/dbus-message.c (dbus_message_get_signature): new function
6887 (dbus_message_has_signature): new function
6888 (struct DBusMessage): add signature field (right now it isn't sent
6889 over the wire, just generated on the fly)
6890 (dbus_message_copy): copy the signature, and init strings to
6891 proper length to avoid some reallocs
6892 (dbus_message_iter_init_array_iterator): return void, since it
6894 (dbus_message_iter_init_dict_iterator): return void since it can't fail
6895 (_dbus_message_loader_queue_messages): add silly temporary hack to
6896 fill in message->signature on load
6898 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
6899 characters, so they are relatively human-readable.
6901 2003-10-11 Havoc Pennington <hp@pobox.com>
6903 * dbus/dbus-message.c (_dbus_message_test): add more test
6904 coverage, but #if 0 for now since they uncover a bug
6905 not fixed yet; I think in re_align_field_recurse()
6906 (re_align_field_recurse): add FIXME about broken assertion
6908 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
6910 * bus/connection.c: share a couple code bits with expirelist.c
6912 * bus/expirelist.h, bus/expirelist.c: implement a generic
6913 expire-items-after-N-seconds facility, was going to share between
6914 expiring connections and replies, decided not to use for expiring
6915 connections for now.
6917 * COPYING: include AFL 2.0 (still need to change all the file headers)
6919 2003-10-09 Havoc Pennington <hp@redhat.com>
6921 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
6922 gcc 3.3. Not that we do anything about it yet.
6924 * bus/signals.c (bus_match_rule_parse): impose max length on the
6927 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
6929 2003-10-09 Havoc Pennington <hp@redhat.com>
6931 Make matching rules theoretically work (add parser).
6933 * bus/bus.c (bus_context_check_security_policy): fix up to handle
6934 the case where destination is explicitly specified as bus driver
6935 and someone else is eavesdropping.
6937 * bus/policy.c (bus_client_policy_check_can_receive): fix up
6938 definition of eavesdropping and assertion
6940 * tools/dbus-send.c (main): use dbus_message_type_from_string
6942 * bus/signals.c (bus_match_rule_parse): implement
6944 * dbus/dbus-message.c (dbus_message_type_from_string): new
6946 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
6948 2003-10-02 Havoc Pennington <hp@pobox.com>
6950 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
6951 dbus_gproxy_oneway_call
6953 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
6954 (dbus_server_setup_with_g_main): fix to allow calling them more
6955 than once on the same args
6956 (dbus_bus_get_with_g_main): new function
6958 2003-10-02 Havoc Pennington <hp@redhat.com>
6960 * doc/dbus-tutorial.xml: write some stuff
6962 2003-09-29 Havoc Pennington <hp@pobox.com>
6964 * configure.in: split checks for Doxygen from XML docs, check for
6967 * doc/Makefile.am: XML-ify all the docs, and add a blank
6970 2003-09-29 Havoc Pennington <hp@pobox.com>
6972 * Merge dbus-object-names branch. To see the entire patch
6973 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
6974 it's huuuuge though.
6975 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
6977 2003-09-28 Havoc Pennington <hp@pobox.com>
6979 * HACKING: update to reflect new server
6981 2003-09-26 Seth Nickell <seth@gnome.org>
6984 * python/examples/example-signals.py:
6986 Start implementing some notions of signals. The API
6987 is really terrible, but they sort of work (with the
6988 exception of being able to filter by service, and to
6989 transmit signals *as* a particular service). Need to
6990 figure out how to make messages come from the service
6993 * python/dbus_bindings.pyx.in:
6995 Removed duplicate message_handler callbacks.
6997 2003-09-25 Havoc Pennington <hp@redhat.com>
6999 * bus/session.conf.in: fix my mess
7001 2003-09-25 Havoc Pennington <hp@pobox.com>
7003 * bus/session.conf.in: fix security policy, reported by Seth Nickell
7005 2003-09-25 Seth Nickell <seth@gnome.org>
7007 * python/examples/example-service.py:
7009 Johan notices complete wrong code in example-service, but
7010 completely wrong in a way that works exactly the same (!).
7011 Johan is confused, how could this possibly work? Example
7012 code fails to serve purpose of making things clear.
7015 2003-09-25 Mark McLoughlin <mark@skynet.ie>
7017 * doc/dbus-specification.sgml: don't require header fields
7018 to be 4-byte aligned and specify that fields should be
7019 distinguished from padding by the fact that zero is not
7022 * doc/TODO: remove re-alignment item and add item to doc
7023 the OBJECT_PATH type.
7025 * dbus/dbus-message.c:
7026 (HeaderField): rename the original member to value_offset
7027 and introduce a name_offset member to keep track of where
7028 the field actually begins.
7029 (adjust_field_offsets): remove.
7030 (append_int_field), (append_uint_field),
7031 (append_string_field): don't align the start of the header
7032 field to a 4-byte boundary.
7033 (get_next_field): impl finding the next marhsalled field
7034 after a given field.
7035 (re_align_field_recurse): impl re-aligning a number of
7036 already marshalled fields.
7037 (delete_field): impl deleting a field of any type and
7038 re-aligning any following fields.
7039 (delete_int_or_uint_field), (delete_string_field): remove.
7040 (set_int_field), (set_uint_field): no need to re-check
7041 that we have the correct type for the field.
7042 (set_string_field): ditto and impl re-aligning any
7044 (decode_header_data): update to take into account that
7045 the fields aren't 4-byte aligned any more and the new
7046 way to distinguish padding from header fields. Also,
7047 don't exit when there is too much header padding.
7048 (process_test_subdir): print the directory.
7049 (_dbus_message_test): add test to make sure a following
7050 field is re-aligned correctly after field deletion.
7052 * dbus/dbus-string.[ch]:
7053 (_dbus_string_insert_bytes): rename from insert_byte and
7054 allow the insert of multiple bytes.
7055 (_dbus_string_test): test inserting multiple bytes.
7057 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7058 warning note to docs about having to re-align any
7059 marshalled values following the string.
7061 * dbus/dbus-message-builder.c:
7062 (append_string_field), (_dbus_message_data_load):
7063 don't align the header field.
7065 * dbus/dbus-auth.c: (process_test_subdir): print the
7068 * test/break-loader.c: (randomly_add_one_byte): upd. for
7071 * test/data/invalid-messages/bad-header-field-alignment.message:
7074 * test/data/valid-messages/unknown-header-field.message: shove
7075 a dict in the unknown field.
7077 2003-09-25 Seth Nickell <seth@gnome.org>
7080 * python/dbus_bindings.pyx.in:
7082 Handle return values.
7084 * python/examples/example-client.py:
7085 * python/examples/example-service.py:
7087 Pass back return values from the service to the client.
7089 2003-09-24 Seth Nickell <seth@gnome.org>
7093 Connect Object methods (when you are sharing an object) up... pass
7094 in a list of methods to be shared. Sharing all the methods just
7095 worked out too weird. You can now create nice Services over the
7098 * python/dbus_bindings.pyx.in:
7100 Keep references to user_data tuples passed into C functions so
7101 Python doesn't garbage collect on us.
7103 Implement MethodReturn and Error subclasses of Message for creating
7104 DBusMessage's of those types.
7106 * python/examples/example-client.py:
7107 * python/examples/example-service.py:
7109 Simple example code showing both how create DBus services and objects,
7110 and how to use them.
7112 2003-09-23 Havoc Pennington <hp@pobox.com>
7114 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7116 2003-09-23 Havoc Pennington <hp@redhat.com>
7118 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7119 (dbus_gproxy_disconnect_signal): implement
7120 (dbus_gproxy_manager_remove_signal_match): implement
7121 (dbus_gproxy_manager_add_signal_match): implement
7122 (dbus_gproxy_oneway_call): implement
7124 2003-09-23 Havoc Pennington <hp@pobox.com>
7126 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7127 subclass. This means dropping the transparent thread safety of the
7128 proxy; you now need a separate proxy per-thread, or your own
7129 locking on the proxy. Probably right anyway.
7130 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7132 2003-09-22 Havoc Pennington <hp@redhat.com>
7134 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7136 2003-09-21 Seth Nickell <seth@gnome.org>
7138 First checkin of the Python bindings.
7140 * python/.cvsignore:
7141 * python/Makefile.am:
7142 * python/dbus_bindings.pyx.in:
7143 * python/dbus_h_wrapper.h:
7145 Pieces for Pyrex to operate on, building a dbus_bindings.so
7146 python module for low-level access to the DBus APIs.
7150 High-level Python module for accessing DBus objects.
7155 Build stuff for the python bindings.
7159 Extra macro needed for finding the Python C header files.
7161 2003-09-21 Havoc Pennington <hp@pobox.com>
7163 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7164 implementing the proxy manager, didn't get very far.
7166 * dbus/dbus-bus.c (dbus_bus_add_match): new
7167 (dbus_bus_remove_match): new
7169 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7170 path_name argument; adjust the other not-yet-implemented
7171 gproxy constructors to be what I think they should be.
7173 2003-09-21 Havoc Pennington <hp@pobox.com>
7175 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7176 by default for message bus connections.
7178 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7179 exit_on_disconnect flag is set and we process the disconnected
7181 (dbus_connection_set_exit_on_disconnect): new function
7183 2003-09-21 Havoc Pennington <hp@pobox.com>
7185 Get matching rules mostly working in the bus; only actually
7186 parsing the rule text remains. However, the client side of
7187 "signal connections" hasn't been started, this patch is only the
7190 * dbus/dispatch.c: fix for the matching rules changes
7192 * bus/driver.c (bus_driver_handle_remove_match)
7193 (bus_driver_handle_add_match): send an ack reply from these
7196 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7197 arguments, reported by Seth Nickell
7199 * bus/config-parser.c (append_rule_from_element): support
7200 eavesdrop=true|false attribute on policies so match rules
7201 can be prevented from snooping on the system bus.
7203 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7204 and "destination" in attribute names; fix some docs bugs;
7205 add eavesdrop=true|false attribute
7207 * bus/driver.c (bus_driver_handle_add_match)
7208 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7211 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7212 rid of broadcast service concept, signals are just always broadcast
7214 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7215 mostly implement matching rules stuff (currently only exposed as signal
7218 2003-09-21 Mark McLoughlin <mark@skynet.ie>
7220 * doc/dbus-specification.sgml: Change the header field name
7221 to be an enum and update the rest of the spec to reference
7222 the fields using the conventinal name.
7224 * dbus/dbus-protocol.h: update to reflect the spec.
7226 * doc/TODO: add item to remove the 4 byte alignment requirement.
7228 * dbus/dbus-message.c: Remove the code to generalise the
7229 header/body length and serial number header fields as named
7230 header fields so we can reference field names using the
7232 (append_int_field), (append_uint_field), (append_string_field):
7233 Append the field name as a byte rather than four chars.
7234 (delete_int_or_uint_field), (delete_string_field): reflect the
7235 fact that the field name and typecode now occupy 4 bytes instead
7237 (decode_string_field), (decode_header_data): update to reflect
7238 protocol changes and move the field specific encoding from
7239 decode_string_field() back into decode_header_data().
7241 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7242 Add utility to aid debugging.
7244 * dbus/dbus-message-builder.c:
7245 (append_string_field), (_dbus_message_data_load): Update to
7246 reflect protocol changes; Change the FIELD_NAME directive
7247 to HEADER_FIELD and allow it to take the field's conventional
7248 name rather than the actual value.
7250 * test/data/*/*.message: Update to use HEADER_FIELD instead
7251 of FIELD_NAME; Always align the header on an 8 byte boundary
7252 *before* updating the header length.
7254 2003-09-15 Havoc Pennington <hp@pobox.com>
7256 * dbus/dbus-pending-call.c: add the get/set object data
7257 boilerplate as for DBusConnection, etc. Use generic object data
7258 for the notify callback.
7260 * glib/dbus-gparser.c (parse_node): parse child nodes
7262 * tools/dbus-viewer.c: more hacking on the dbus-viewer
7264 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7265 contain functions shared between the convenience lib and the
7268 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7269 -export-symbols-regex to the GLib library
7271 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7272 fix the locking in here, and add a default handler for
7273 Introspect() that just returns sub-nodes.
7275 2003-09-14 Havoc Pennington <hp@pobox.com>
7277 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7278 rather than gfoo consistent
7280 * glib/dbus-gproxy.h: delete for now, move contents to
7281 dbus-glib.h, because the include files don't work right since we
7282 aren't in the dbus/ subdir.
7284 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7285 (dbus_gproxy_end_call): finish
7286 (dbus_gproxy_begin_call): finish
7288 * glib/dbus-gmain.c (dbus_set_g_error): new
7290 * glib/dbus-gobject.c (handle_introspect): include information
7291 about child nodes in the introspection
7293 * dbus/dbus-connection.c (dbus_connection_list_registered): new
7294 function to help in implementation of introspection
7296 * dbus/dbus-object-tree.c
7297 (_dbus_object_tree_list_registered_and_unlock): new function
7299 2003-09-12 Havoc Pennington <hp@pobox.com>
7301 * glib/dbus-gidl.h: add common base class for all the foo_info
7304 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7307 * test/Makefile.am: try test srcdir -ef . in addition to test
7308 srcdir = ., one of them should work (yeah lame)
7310 * glib/Makefile.am: build the "idl" parser stuff as a convenience
7313 * glib/dbus-gparser.h: make description_load routines return
7314 NodeInfo* not Parser*
7316 * Makefile.am (SUBDIRS): build test dir after all library dirs
7318 * configure.in: add GTK+ detection
7320 2003-09-07 Havoc Pennington <hp@pobox.com>
7322 * Make Doxygen contented.
7324 2003-09-07 Havoc Pennington <hp@pobox.com>
7326 * doc/dbus-specification.sgml: more updates
7328 2003-09-06 Havoc Pennington <hp@pobox.com>
7330 * doc/dbus-specification.sgml: partial updates
7332 * bus/dbus-daemon-1.1.in: fix the config file docs for the
7333 zillionth time; hopefully I edited the right file this time.
7335 * bus/config-parser.c (append_rule_from_element): support
7336 send_type, send_path, receive_type, receive_path
7338 * bus/policy.c: add message type and path to the list of things
7339 that can be "firewalled"
7341 2003-09-06 Havoc Pennington <hp@pobox.com>
7343 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7344 (dbus_connection_register_object_path): make this not handle
7345 messages to paths below the given path
7347 2003-09-03 Havoc Pennington <hp@pobox.com>
7349 * test/glib/Makefile.am: add this with random glib-linked test
7352 * glib/Makefile.am: remove the random test programs from here,
7353 leave only the unit tests
7355 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
7356 uscore/javacaps conversion, and fix
7357 (get_object_property, set_object_property): change to .NET
7358 convention for mapping props to methods, set_FooBar/get_FooBar,
7359 since one language has such a convention we may as well copy it.
7360 Plus real methods in either getFooBar or get_foo_bar style won't
7361 collide with this convention.
7363 2003-09-01 Havoc Pennington <hp@pobox.com>
7365 * glib/dbus-gparser.c: implement
7367 * glib/dbus-gobject.c: start implementing skeletons support
7369 * configure.in: when disabling checks/assert, also define
7370 G_DISABLE_ASSERT and G_DISABLE_CHECKS
7372 2003-09-01 Havoc Pennington <hp@pobox.com>
7374 * glib/Makefile.am: rearrange a bunch of files and get "make
7375 check" framework set up
7377 2003-08-31 Havoc Pennington <hp@pobox.com>
7379 * fix build with --disable-tests
7381 2003-08-30 Havoc Pennington <hp@pobox.com>
7383 * dbus/dbus-connection.c: purge DBusMessageHandler
7385 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
7386 use callbacks everywhere
7388 2003-08-30 Havoc Pennington <hp@pobox.com>
7390 * test/data/valid-config-files/system.d/test.conf: change to
7391 root for the user so warnings don't get printed
7393 * dbus/dbus-message.c: add dbus_message_get_path,
7394 dbus_message_set_path
7396 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7397 dispatching to a path
7399 * dbus/dbus-string.c (_dbus_string_validate_path): add
7401 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7402 (_dbus_marshal_object_path): implement
7404 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
7405 to contain the path to the target object
7406 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7407 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7409 2003-08-30 Havoc Pennington <hp@pobox.com>
7411 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7413 2003-08-29 Havoc Pennington <hp@pobox.com>
7415 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7417 (struct DBusObjectSubtree): shrink this
7418 a lot, since we may have a lot of them
7419 (_dbus_object_tree_free_all_unlocked): implement
7420 (_dbus_object_tree_dispatch_and_unlock): implement
7422 2003-08-29 Havoc Pennington <hp@pobox.com>
7424 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7426 2003-08-28 Havoc Pennington <hp@pobox.com>
7430 * dbus/dbus-connection.c: port to no ObjectID, create a
7431 DBusObjectTree, rename ObjectTree to ObjectPath in public API
7433 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
7434 everything except UnregisterFunction and MessageFunction
7436 * dbus/dbus-marshal.c: port away from DBusObjectID,
7437 add DBUS_TYPE_OBJECT_PATH
7439 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
7440 dbus/dbus-objectid.[hc]: remove these, we are moving to
7441 path-based object IDs
7443 2003-08-25 Havoc Pennington <hp@pobox.com>
7445 Just noticed that dbus_message_test is hosed, I wonder when I
7446 broke that. I thought make check was passing earlier...
7448 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
7449 container tree, will replace most of dbus-object-registry
7451 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7454 2003-08-19 Havoc Pennington <hp@pobox.com>
7456 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7457 (dbus_message_is_error): fix this function
7459 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7462 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7463 reflect clarified man page
7464 (bus_client_policy_check_can_send): ditto
7466 * bus/session.conf.in: fixup
7468 * bus/system.conf.in: fixup
7470 2003-08-18 Havoc Pennington <hp@redhat.com>
7472 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7474 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7475 dumb bug created earlier (wrong order of args to
7476 decode_header_data())
7478 * tools/dbus-send.c: port
7480 * tools/dbus-print-message.c (print_message): port
7482 * test/data/*messages: port all messages over
7484 * dbus/dbus-message-builder.c: support including
7487 * bus/driver.c: port over
7489 * bus/dispatch.c: port over to new stuff
7491 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7492 rename disconnect signal to "Disconnected"
7494 2003-08-17 Havoc Pennington <hp@pobox.com>
7496 This doesn't compile yet, but syncing up so I can hack on it from
7497 work. What are branches for if not broken code? ;-)
7499 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7500 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7501 DBUS_HEADER_FIELD_ERROR_NAME
7503 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7504 for the interface+member pairs
7505 (string_hash): change to use g_str_hash algorithm
7506 (find_direct_function, find_string_function): refactor these to
7509 * dbus/dbus-message.c: port all of this over to support
7510 interface/member fields instead of name field
7512 * dbus/dbus-object-registry.c: port over
7514 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7515 from _dbus_string_validate_name
7517 * bus/dbus-daemon-1.1: change file format for the
7518 <deny>/<allow> stuff to match new message naming scheme
7520 * bus/policy.c: port over
7522 * bus/config-parser.c: parse new format
7524 2003-08-16 Havoc Pennington <hp@pobox.com>
7526 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7529 * glib/dbus-gproxy.c: some hacking
7531 2003-08-15 Havoc Pennington <hp@redhat.com>
7533 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7535 * dbus/dbus-connection.c
7536 (dbus_connection_send_with_reply_and_block): factor out internals;
7537 change to convert any error replies to DBusError instead of
7538 returning them as a message
7540 2003-08-15 Havoc Pennington <hp@pobox.com>
7542 * dbus/dbus-connection.c,
7543 dbus/dbus-pending-call.c: Finish the pending call stuff
7545 2003-08-14 Havoc Pennington <hp@redhat.com>
7547 * dbus/dbus-pending-call.c: start on new object that will replace
7548 DBusMessageHandler and ReplyHandlerData for tracking outstanding
7551 * dbus/dbus-gproxy.c: start on proxy object used to communicate
7552 with remote interfaces
7554 * dbus/dbus-gidl.c: do the boring boilerplate in here
7556 2003-08-12 Havoc Pennington <hp@pobox.com>
7558 * bus/dispatch.c (bus_dispatch): make this return proper
7559 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7561 * dbus/dbus-errors.c (dbus_set_error): use
7562 _dbus_string_append_printf_valist
7564 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7565 (_dbus_string_append_printf): new
7567 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7570 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7571 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7572 message is unhandled.
7574 2003-08-11 Havoc Pennington <hp@pobox.com>
7576 * bus/test.c (client_disconnect_handler): change to return
7577 HANDLED (would have been REMOVE_MESSAGE)
7579 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7580 HANDLED/NOT_YET_HANDLED instead of
7581 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
7584 2003-08-10 Havoc Pennington <hp@pobox.com>
7586 * tools/dbus-send.c (main): add --type argument, for now
7587 supporting only method_call and signal types.
7589 * tools/dbus-print-message.c: print message type
7591 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7592 init connection->objects
7594 * doc/dbus-specification.sgml: fix sgml
7596 * bus/*.c: port over to object-instance API changes
7598 * test/test-service.c: ditto
7600 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7601 name, we will have to fix up the rest of the code to also handle
7603 (dbus_message_new): generic message-creation call
7604 (set_string_field): allow appending name field
7606 2003-08-06 Havoc Pennington <hp@pobox.com>
7608 * dbus/dbus-object-registry.c: implement signal connection
7611 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7613 * dbus/dbus-internals.c (_dbus_memdup): new function
7615 2003-08-02 Havoc Pennington <hp@pobox.com>
7617 * dbus/dbus-message.c (dbus_message_get_no_reply)
7618 (dbus_message_set_no_reply): add these and remove
7619 set_is_error/get_is_error
7621 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
7622 remove the ERROR flag, since there's now an ERROR type
7624 2003-08-01 Havoc Pennington <hp@pobox.com>
7626 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7629 * dbus/dbus-message.c (dbus_message_get_type): new function
7631 * doc/dbus-specification.sgml: add "type" byte to messages
7633 2003-08-01 Havoc Pennington <hp@pobox.com>
7635 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7636 a message type enum to distinguish kinds of message
7637 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
7638 that need not be replied to
7640 2003-08-01 Havoc Pennington <hp@pobox.com>
7642 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7643 (unpack_8_octets): fix no-64-bit-int bug
7645 * dbus/dbus-object-registry.c (validate_id): validate the
7646 connection ID bits, not just the instance ID.
7648 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7649 the connection-global 33 bits of the object ID
7651 * dbus/dbus-object-registry.c (info_from_entry): fill in
7652 object ID in the new way
7654 * dbus/dbus-objectid.h: rather than high/low bits, specifically
7655 define server/client/instance bits.
7657 2003-07-30 Havoc Pennington <hp@pobox.com>
7659 * dbus/dbus-connection.c (dbus_connection_register_object): fix
7662 2003-07-13 Havoc Pennington <hp@pobox.com>
7664 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7665 fields to DBusObjectVTable and DBusObjectInfo
7667 2003-07-12 Havoc Pennington <hp@pobox.com>
7669 * dbus/dbus-object-registry.c: implement unit test,
7670 fix bugs discovered in process
7672 * dbus/dbus-connection.c: remove handler_table and
7673 register_handler(), add DBusObjectRegistry usage
7675 * dbus/dbus-objectid.c (dbus_object_id_is_null)
7676 (dbus_object_id_set_null): new functions
7678 2003-07-08 Havoc Pennington <hp@pobox.com>
7680 * dbus/dbus-object.c: implement some of this
7682 * dbus/dbus-object-registry.c
7683 (_dbus_object_registry_add_and_unlock): fill in the object_id out
7685 (_dbus_object_registry_new): handle OOM
7687 2003-07-08 Havoc Pennington <hp@pobox.com>
7689 * dbus/dbus-object.h: sketch out an API for registering objects
7690 with a connection, that allows us to use as little as 24 bytes
7691 per object and lets application code represent an object in
7692 any conceivable way.
7694 * dbus/dbus-object-registry.c: implement the hard bits of the
7695 DBusConnection aspect of object API. Not yet wired up.
7697 2003-07-06 Havoc Pennington <hp@pobox.com>
7699 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7700 (_dbus_marshal_object_id): new
7701 (_dbus_demarshal_object_id): new
7702 (_dbus_marshal_get_arg_end_pos): support object ID type, and
7703 consolidate identical switch cases. Don't conditionalize handling
7704 of DBUS_TYPE_UINT64, need to handle the type always.
7705 (_dbus_marshal_validate_arg): consolidate identical cases, and
7706 handle DBUS_TYPE_OBJECT_ID
7708 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7710 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7712 2003-09-28 Havoc Pennington <hp@pobox.com>
7716 2003-09-28 Havoc Pennington <hp@pobox.com>
7718 * doc/Makefile.am (dbus-specification.html): testing a funky hack
7719 to work with Debian db2html
7721 2003-09-28 Havoc Pennington <hp@pobox.com>
7723 * configure.in: 0.13
7725 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7726 stylesheet-images for benefit of Debian
7728 Change back to using filesystem-linked sockets for the system
7729 bus, so only root can create the default system bus address.
7731 * bus/system.conf.in: change to use
7732 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7734 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7737 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7738 here, and AC_DEFINE DBUS_SYSTEM_PATH
7740 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7743 * doc/busconfig.dtd:
7746 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7748 * doc/dbus-specification.sgml:
7749 Add activation reply values.
7751 2003-08-05 Havoc Pennington <hp@redhat.com>
7753 * configure.in: 0.12
7755 2003-08-05 Anders Carlsson <andersca@codefactory.se>
7757 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7758 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7759 (add_watch), (remove_watch), (create_source):
7760 Refcount fds, fixes some reentrancy issues.
7762 2003-07-30 Havoc Pennington <hp@redhat.com>
7764 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7765 bus address to be abstract if we have abstract sockets
7769 2003-07-28 Havoc Pennington <hp@redhat.com>
7771 * bus/messagebus.in: fix to avoid processname/servicename
7772 confusion, from Michael Kearey
7773 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7775 2003-07-23 Havoc Pennington <hp@pobox.com>
7777 * dbus/dbus-message.c (dbus_message_iter_get_named):
7778 fix from Andy Hanton to remove broken "+1"
7780 2003-07-16 Havoc Pennington <hp@pobox.com>
7782 * tools/dbus-launch.c (babysit): close stdout/stderr in the
7783 babysitter process, as suggested by Thomas Leonard, so
7784 an "eval `dbus-launch --exit-with-session`" will actually
7787 2003-07-16 Havoc Pennington <hp@pobox.com>
7789 * configure.in: print out EXPANDED_* variables in the summary at
7790 the end; clean up the code that computes EXPANDED_ variables and
7791 get the ones using exec_prefix right. Should make things work
7792 when you build without --prefix
7794 2003-06-29 Havoc Pennington <hp@pobox.com>
7796 * mono/Test.cs (class Test): fire up a main loop and run it
7798 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7799 done once, the app has to do it
7801 2003-06-26 Havoc Pennington <hp@pobox.com>
7803 * mono/Connection.cs: set up connection with the glib main loop
7805 2003-07-01 Havoc Pennington <hp@redhat.com>
7807 * doc/dbus-specification.sgml: clarify the format of a type code,
7808 change suggested by Jim Blandy
7810 2003-06-29 Miloslav Trmac <mitr@volny.cz>
7813 * tools/Makefile.am: Don't assume srcdir == builddir.
7815 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7816 the allocated block.
7817 (_dbus_memory_test): New function.
7818 * dbus/dbus-test.h: Add _dbus_memory_test ().
7819 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7821 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7823 (dbus_message_new): Remove obsolete @todo.
7825 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7826 (_dbus_marshal_set_uint64): Fix comment.
7828 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7829 hardcode FIELD_REPLY_SERIAL.
7831 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7832 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7834 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7835 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7837 2003-06-24 Havoc Pennington <hp@pobox.com>
7839 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7841 2003-06-23 Anders Carlsson <andersca@codefactory.se>
7847 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
7848 * gcj/org/.cvsignore:
7849 * gcj/org/Makefile.am:
7850 * gcj/org/freedesktop/.cvsignore:
7851 * gcj/org/freedesktop/Makefile.am:
7852 * gcj/org/freedesktop/dbus/.cvsignore:
7853 * gcj/org/freedesktop/dbus/Makefile.am:
7854 * gcj/org/freedesktop/dbus/Message.java: (Message),
7856 * gcj/org/freedesktop/dbus/natMessage.cc:
7857 Fix the build system.
7859 2003-06-22 Havoc Pennington <hp@pobox.com>
7861 * mono/Connection.cs: add more bindings
7863 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
7866 2003-06-22 Havoc Pennington <hp@pobox.com>
7868 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
7869 Start wrapping more stuff.
7871 2003-06-22 Havoc Pennington <hp@pobox.com>
7873 * mono/Message.cs: implement Message.Wrap() that ensures we only
7874 have a single C# wrapper per DBusMessage, assuming it works which
7875 it probably doesn't.
7877 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
7878 (dbus_message_free_data_slot): new
7879 (dbus_message_set_data): new
7880 (dbus_message_get_data): new
7882 2003-06-22 Havoc Pennington <hp@pobox.com>
7884 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
7885 (_dbus_data_slot_allocator_alloc): rework these to keep a
7886 reference count on each slot and automatically manage a global
7887 slot ID variable passed in by address
7889 * bus/bus.c: convert to new dataslot API
7891 * dbus/dbus-bus.c: convert to new dataslot API
7893 * dbus/dbus-connection.c: convert to new dataslot API
7895 * dbus/dbus-server.c: convert to new dataslot API
7897 * glib/dbus-gmain.c: ditto
7901 * bus/connection.c: ditto
7903 2003-06-22 Anders Carlsson <andersca@codefactory.se>
7905 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
7906 after the gcj checks so that the correct configuration tags
7907 will be added to libtool.
7909 * dbus-glib-1.pc.in: No need to specify any includes since
7910 dbus-1.pc.in has those.
7912 2003-06-22 Havoc Pennington <hp@pobox.com>
7914 * mono/*, gcj/*, configure.in, Makefile.am:
7915 Check in makefiles and subdirs for mono and gcj bindings.
7916 Neither binding actually exists, just trying to get through
7917 all the build and other boring bits.
7919 2003-06-21 Philip Blundell <philb@gnu.org>
7921 * tools/dbus-monitor.1: Updated.
7923 * tools/dbus-send.1: Likewise.
7925 2003-06-20 Anders Carlsson <andersca@codefactory.se>
7927 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
7928 for hangup and error after checking read so we won't discard
7929 pending data if both hangup and read are set.
7931 2003-06-19 Philip Blundell <philb@gnu.org>
7933 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
7935 * tools/dbus-send.c: Accept both --system and --session.
7937 * tools/dbus-monitor.c: Same here.
7939 2003-06-19 Anders Carlsson <andersca@codefactory.se>
7941 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
7942 from C++ (Patch by Miloslav Trmac).
7944 2003-06-15 Joe Shaw <joe@assbarn.com>
7946 * configure.in: Check for socklen_t.
7948 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
7950 * test/test-segfault.c: Add #include <sys/time.h>
7952 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
7953 dbus-launch needs it.
7955 2003-06-09 Havoc Pennington <hp@redhat.com>
7957 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
7958 SUN_LEN, it breaks abstract socket usage
7960 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
7963 2003-06-04 Havoc Pennington <hp@pobox.com>
7965 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
7966 using unix:abstract=/foo, and when listening in a tmpdir
7967 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
7969 * dbus/dbus-transport.c (_dbus_transport_open): support
7972 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
7973 support abstract sockets
7975 * dbus/dbus-transport-unix.c
7976 (_dbus_transport_new_for_domain_socket): support abstract sockets
7978 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
7979 toggle as an argument, implement abstract namespace support
7980 (_dbus_listen_unix_socket): ditto
7982 * configure.in: add --enable-abstract-sockets and implement
7983 a configure check for autodetection of the right value.
7985 2003-06-01 Havoc Pennington <hp@pobox.com>
7987 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
7988 in /tmp (though on Linux this will end up being useless,
7989 when we add abstract namespace support)
7991 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
7994 2003-05-28 Colin Walters <walters@verbum.org>
7996 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
7998 2003-05-18 Anders Carlsson <andersca@codefactory.se>
8000 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8002 2003-05-17 Colin Walters <walters@gnu.org>
8004 * tools/dbus-send.c: Don't exit with an error code if --help was
8005 passed. Default to using the session bus instead of the system
8008 * tools/dbus-launch.c: Ditto.
8010 * tools/dbus-monitor.c: Ditto.
8012 * tools/dbus-send.1: Update with new arguments.
8014 * tools/dbus-launch.c: Emit code to export variables. New
8015 arguments -s and -c to specify shell syntax, and a bit of code to
8016 autodetect syntax. Also, allow specifying a program to run.
8018 * tools/dbus-launch.1: Update with new arguments.
8020 * tools/dbus-send.1: Ditto.
8022 * tools/dbus-monitor.1: Ditto.
8024 2003-05-17 Havoc Pennington <hp@pobox.com>
8026 * bus/config-parser.c (merge_included): merge in policies from
8027 child configuration file.
8029 * bus/policy.c (bus_policy_merge): function to merge two policies
8032 2003-05-16 Havoc Pennington <hp@redhat.com>
8034 * dbus/dbus-connection.c: disable verbose lock spew
8036 * tools/dbus-send.c: add --print-reply command line option
8038 * tools/dbus-print-message.h (print_message): new util function
8039 shared by dbus-send and dbus-monitor
8041 * tools/dbus-monitor.c (handler_func): exit on disconnect
8043 * dbus/dbus-transport-unix.c (do_reading): if the transport is
8044 disconnected, don't try to use the read_watch
8046 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8047 so we can find this bug more easily
8049 2003-05-16 Havoc Pennington <hp@redhat.com>
8051 * bus/policy.c (free_rule_list_func): avoid a crash when passed
8052 NULL as DBusHashTable is annoyingly likely to do.
8054 2003-05-16 Colin Walters <walters@verbum.org>
8056 * tools/dbus-monitor.c: Add --session argument and usage()
8059 * tools/dbus-monitor.1: Update with new --session arg.
8061 * bus/Makefile.am (install-data-hook): Create
8062 $(libdir)/dbus-1.0/services so that the session bus is happy.
8064 2003-05-15 Havoc Pennington <hp@redhat.com>
8066 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8067 on non-x86. ifdef's are evil.
8069 2003-05-15 Havoc Pennington <hp@redhat.com>
8071 * configure.in: 0.11
8075 * bus/Makefile.am (initddir): apparently we are supposed to put
8076 init scripts in /etc/rc.d/init.d not /etc/init.d
8078 * bus/Makefile.am: remove the "you must --enable-tests to make
8079 check" as it broke distcheck
8081 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8083 2003-05-13 James Willcox <jwillcox@gnome.org>
8086 * bus/activation.c: (bus_activation_service_created),
8087 (bus_activation_activate_service):
8088 * bus/driver.c: (bus_driver_send_service_deleted),
8089 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8090 (bus_driver_send_service_acquired),
8091 (bus_driver_send_welcome_message),
8092 (bus_driver_handle_list_services):
8093 * bus/session.conf.in:
8094 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8095 (dbus_bus_service_exists), (dbus_bus_activate_service):
8098 Add some convenience API which lets you activate a service, and did a
8099 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8100 and dbus_message_get_args()
8102 2003-05-11 Havoc Pennington <hp@pobox.com>
8104 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8105 calling _dbus_marshal_validate_arg() for every byte in a byte
8108 * dbus/dbus-message-handler.c: use atomic reference counting to
8109 reduce number of locks slightly; the global lock in here sucks
8111 * dbus/dbus-connection.c
8112 (_dbus_connection_update_dispatch_status_and_unlock): variant of
8113 update_dispatch_status that can be called with lock held; then use
8114 in a couple places to reduce locking/unlocking
8115 (dbus_connection_send): hold the lock over the whole function
8116 instead of acquiring it twice.
8118 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8120 * bus/connection.c (bus_connections_setup_connection): fix access
8121 to already-freed memory.
8123 * dbus/dbus-connection.c: keep a little cache of linked list
8124 nodes, to avoid using the global linked list alloc lock in the
8125 normal send-message case. Instead we just use the connection lock
8126 that we already have to take.
8128 * dbus/dbus-list.c (_dbus_list_find_last): new function
8130 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8131 change to use a struct for the atomic type; fix docs,
8132 they return value before increment, not after increment.
8134 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8135 (_dbus_string_append_8_aligned): new functions to try to
8136 microoptimize this operation.
8137 (reallocate_for_length): break this out of set_length(), to
8138 improve profile info, and also so we can consider inlining the
8141 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8142 strings with some preallocation, cuts down on our calls to realloc
8143 a fair bit. Though if we can get the "move entire string to empty
8144 string" optimization below to kick in here, it would be better.
8146 * dbus/dbus-string.c (_dbus_string_move): just call
8147 _dbus_string_move_len
8148 (_dbus_string_move_len): add a special case for moving
8149 an entire string into an empty string; we can just
8150 swap the string data instead of doing any reallocs.
8151 (_dbus_string_init_preallocated): new function
8153 2003-05-11 Havoc Pennington <hp@pobox.com>
8155 Write a "test-profile" that does echo client-server with threads;
8156 profile reveals lock contention, memcpy/realloc of buffers, and
8157 UTF-8 validation as hot spots. 20% of lock contention eliminated
8158 with dbus_atomic_inc/dec implementation on x86. Much remaining
8159 contention is global mempool locks for GList and DBusList.
8161 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8164 * dbus/dbus-connection.c (struct DBusConnection): use
8165 dbus_atomic_t for the reference count
8167 * dbus/dbus-message.c (struct DBusMessage): declare
8168 dbus_atomic_t values as volatile
8170 * configure.in: code to detect ability to use atomic integer
8171 operations in assembly, from GLib patch
8173 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8174 time, tired of it being wrong in threads and forked processes
8176 * glib/test-profile.c: a little program to bounce messages back
8177 and forth between threads and eat CPU
8179 * dbus/dbus-connection.c: add debug spew macros for debugging
8180 thread locks; include config.h at top; fix deadlock in
8181 dbus_connection_flush()
8183 2003-05-08 Havoc Pennington <hp@pobox.com>
8185 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8186 data from getting written, and there wasn't a good reason to
8189 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8190 dbus_verbose lines in test coverage
8191 (main): add list of functions sorted by # of untested blocks
8192 to the coverage report
8194 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8196 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8198 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8199 extend test coverage
8201 * test/data/auth/cancel.auth-script: test canceling an
8204 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8205 aren't used. in CVS history if we end up needing them.
8207 2003-05-04 Havoc Pennington <hp@pobox.com>
8209 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8212 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8213 function, which assumed length was in # of strings, not bytes
8215 * dbus/dbus-message.c (_dbus_message_test): add tests for some
8218 * dbus/dbus-connection.c
8219 (_dbus_connection_queue_received_message): disable function for
8220 now, we are only using it in test mode
8222 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8223 remove a mistaken FIXME
8225 2003-05-04 Havoc Pennington <hp@pobox.com>
8227 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8228 unlock mutex on successful return, patch from Anders Gustafsson
8230 2003-05-04 Havoc Pennington <hp@pobox.com>
8232 * dbus-glib-1.pc.in (Requires): fix dependencies, from
8235 2003-05-04 Havoc Pennington <hp@pobox.com>
8237 * tools/dbus-launch.c: implement
8239 * bus/main.c (main), bus/bus.c (bus_context_new):
8240 implement --print-pid and --fork
8242 2003-05-03 Havoc Pennington <hp@redhat.com>
8244 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8245 the address had no value, and add to test suite. Fix and
8246 regression test from Miloslav Trmac
8248 2003-05-03 Havoc Pennington <hp@pobox.com>
8250 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8251 watch is invalid when handled
8253 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8254 dbus-launch utility to launch the bus from a shell script. Didn't
8255 actually implement dbus-launch yet, it's just a placeholder still.
8257 2003-05-03 Havoc Pennington <hp@pobox.com>
8259 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8260 daemon; also documents daemon config file, so replaces
8261 doc/config-file.txt. Corrected some stuff from config-file.txt in
8262 the process of moving it.
8264 2003-05-03 Havoc Pennington <hp@pobox.com>
8266 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8269 2003-05-03 Colin Walters <walters@verbum.org>
8271 * dbus/dbus-sysdeps.c (fill_user_info): Test against
8272 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8274 * Makefile.am: Update to use new .pc versioning scheme.
8276 2003-05-02 Havoc Pennington <hp@redhat.com>
8278 * bus/system.conf.in: allow send/receive to/from message bus
8281 2003-04-30 Havoc Pennington <hp@redhat.com>
8283 * configure.in: print a note when building with unit tests and
8286 2003-04-30 Havoc Pennington <hp@redhat.com>
8288 * Makefile.am: add a check-local that complains if you didn't
8289 configure with --enable-tests
8291 2003-04-29 Havoc Pennington <hp@redhat.com>
8293 * glib/dbus-gmain.c: docs cleanups
8295 * dbus/dbus-types.h: add docs on int64 types
8297 * dbus/dbus-memory.c: fix docs to avoid putting private API in
8298 public API docs section
8300 2003-04-29 Havoc Pennington <hp@redhat.com>
8302 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8303 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8304 parallel install API version, not with the D-BUS package version.
8306 * HACKING: move some of README over here
8308 * README: updates, and document API/ABI policy
8310 * configure.in: reindentation
8312 2003-04-29 Havoc Pennington <hp@redhat.com>
8314 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8315 to use this library" to be sure people have the right
8318 2003-04-28 Havoc Pennington <hp@redhat.com>
8320 * configure.in: add --enable-docs which by default is auto yes if
8321 doxygen and db2html found, no otherwise; but can be forced on/off
8323 * doc/Makefile.am: conditionalize whether to build docs on
8326 2003-04-28 Havoc Pennington <hp@redhat.com>
8328 * configure.in: 0.10
8332 * bus/system.conf.in: add <includedir>system.d</includedir>
8334 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8335 username was provided but not uid
8337 * bus/config-parser.c (struct BusConfigParser): keep track of
8338 whether the parser is toplevel or was included; change some
8339 of the error handling if it's included.
8341 2003-04-27 Havoc Pennington <hp@pobox.com>
8345 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8346 report correct status if we finish processing authentication
8347 inside this function.
8349 * bus/activation.c (try_send_activation_failure): use
8350 bus_transaction_send_error_reply
8352 * bus/connection.c (bus_connection_get_groups): return an error
8353 explaining the problem
8355 * bus/bus.c (bus_context_check_security_policy): implement
8356 restriction here that inactive connections can only send the
8357 hello message. Also, allow bus driver to send anything to
8360 * bus/connection.c (bus_connection_complete): create the
8361 BusClientPolicy here instead of on-demand.
8362 (bus_connection_get_policy): don't return an error
8364 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8365 sender field in message being replied to
8367 * bus/bus.c (bus_context_check_security_policy): fix silly typo
8368 causing it to return FALSE always
8370 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8371 we checked sender rather than destination
8373 2003-04-25 Havoc Pennington <hp@redhat.com>
8375 test suite is slightly hosed at the moment, will fix soon
8377 * bus/connection.c (bus_connections_expire_incomplete): fix to
8378 properly disable the timeout when required
8379 (bus_connection_set_name): check whether we can remove incomplete
8380 connections timeout after we complete each connection.
8382 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8383 probably still broken.
8385 * bus/services.c (bus_registry_acquire_service): implement max
8386 number of services owned, and honor allow/deny rules on which
8387 services a connection can own.
8389 * bus/connection.c (bus_connection_get_policy): report errors here
8391 * bus/activation.c: implement limit on number of pending
8394 2003-04-25 Havoc Pennington <hp@redhat.com>
8396 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8397 where we used >= 0 instead of != DBUS_UID_UNSET.
8399 2003-04-25 Havoc Pennington <hp@redhat.com>
8401 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8402 were toggled without add/remove, fix from Anders Gustafsson
8404 2003-04-24 Havoc Pennington <hp@redhat.com>
8406 * test/data/valid-config-files/basic.conf: add <limit> tags to
8409 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8410 <limit> tag in configuration file.
8412 2003-04-24 Havoc Pennington <hp@redhat.com>
8414 * bus/dispatch.c: somehow missed some name_is
8416 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8417 (_dbus_timeout_set_interval): new
8419 * bus/connection.c (bus_connections_setup_connection): record time
8420 when each connection is first set up, and expire them after the
8421 auth timeout passes.
8423 2003-04-24 Havoc Pennington <hp@redhat.com>
8425 * dbus/dbus-message.c (dbus_message_name_is): rename
8426 (dbus_message_service_is): rename
8427 (dbus_message_sender_is): rename
8428 (dbus_message_get_service): rename
8430 2003-04-24 Havoc Pennington <hp@redhat.com>
8432 * configure.in: add --enable-checks
8434 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8436 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8437 to use thread locks.
8438 (_dbus_connection_handler_destroyed_locked): move some private
8439 functions into proper docs group
8441 * dbus/dbus-internals.h: add _dbus_return_if_fail,
8442 _dbus_return_val_if_fail
8444 Throughout: use dbus_return_if_fail
8446 2003-04-23 James Willcox <jwillcox@gnome.org>
8449 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8450 (dbus_connection_setup_with_g_main),
8451 (dbus_server_setup_with_g_main):
8452 * glib/test-dbus-glib.c: (main):
8453 * glib/test-thread-client.c: (main):
8454 * glib/test-thread-server.c: (new_connection_callback), (main):
8455 * tools/dbus-monitor.c: (main):
8457 Added a GMainContext argument to dbus_connection_setup_with_g_main()
8458 and dbus_server_setup_with_g_main().
8460 2003-04-20 Havoc Pennington <hp@pobox.com>
8462 * doc/dbus-specification.sgml: document the restrictions on
8463 message and service names
8465 2003-04-22 Havoc Pennington <hp@redhat.com>
8467 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8468 support, and do some code cleanups to share more code and
8469 speed up array marshal/demarshal.
8471 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8473 * configure.in: generate dbus-arch-deps.h
8475 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8478 2003-04-22 Havoc Pennington <hp@redhat.com>
8480 * test/data/valid-messages/opposite-endian.message: fix test
8481 to use proper type for rply field
8483 * test/data/invalid-messages: add tests for below validation
8485 * dbus/dbus-message.c (decode_header_data): validate field types,
8486 and validate that named fields are valid names
8487 (decode_name_field): consider messages in the
8488 org.freedesktop.Local. namespace to be invalid.
8490 * dbus/dbus-string.c (_dbus_string_validate_name): new
8492 2003-04-19 Havoc Pennington <hp@pobox.com>
8494 * bus/driver.c (bus_driver_handle_hello): check limits and
8495 return an error if they are exceeded.
8497 * bus/connection.c: maintain separate lists of active and inactive
8498 connections, and a count of each. Maintain count of completed
8499 connections per user. Implement code to check connection limits.
8501 * dbus/dbus-list.c (_dbus_list_unlink): export
8503 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8504 number of bytes in the message queue for a connection
8506 2003-04-18 Havoc Pennington <hp@pobox.com>
8508 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8510 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8513 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8514 on realloc be sure to update the pointer in the keyring
8516 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8517 offset to avoid writing to unallocated memory
8519 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8520 try the next mechanism, so we properly handle OOM
8522 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8524 (_dbus_keyring_new): fix OOM bug
8525 (_dbus_keyring_new_homedir): always set error; impose a maximum
8526 number of keys we'll load from the file, mostly to speed up the
8527 test suite and make its OOM checks more useful, but also for
8530 * dbus/dbus-auth.c (process_error_server): reject authentication
8531 if we get an error from the client
8532 (process_cancel): on cancel, send REJECTED, per the spec
8533 (process_error_client): send CANCEL if we get an error from the
8536 2003-04-18 Havoc Pennington <hp@pobox.com>
8538 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8541 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8544 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8545 about DBUS_TEST_HOMEDIR once
8547 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8550 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8551 config file so we test the right thing
8553 Throughout: assorted docs improvements
8555 2003-04-18 Havoc Pennington <hp@pobox.com>
8557 * glib/dbus-gmain.c: adapt to watch changes
8559 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8561 * dbus/dbus-server.h: remove dbus_server_handle_watch
8563 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8565 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8566 like DBusTimeout, so we don't need dbus_connection_handle_watch
8569 2003-04-17 Havoc Pennington <hp@redhat.com>
8571 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8572 database usage so it all goes via the DBusUserDatabase cache.
8574 2003-04-17 Havoc Pennington <hp@redhat.com>
8576 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8577 there was an OOM watch we skipped, we always return TRUE so we
8578 iterate again to have a look at it again. Fixes test suite hang.
8579 Code rearrangement also lets us lose some memset and only iterate
8580 over callbacks once.
8582 * bus/driver.c (bus_driver_handle_message): sense of test for
8585 2003-04-16 Havoc Pennington <hp@pobox.com>
8587 * doc/dbus-specification.sgml: make spec say serials are unsigned
8589 * dbus/dbus-message.h: change message serials to unsigned
8591 * dbus/dbus-connection.c: adapt to message serials being unsigned
8593 2003-04-15 Havoc Pennington <hp@pobox.com>
8595 * bus/bus.c: create and keep around a shared DBusUserDatabase
8598 * bus/connection.c (bus_connection_get_groups): don't cache
8599 groups for user in the connection object, since user database
8600 object now does that.
8602 2003-04-16 Havoc Pennington <hp@redhat.com>
8604 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8605 list of size counters
8606 (_dbus_message_loader_putback_message_link): put back a popped link
8608 * dbus/dbus-connection.c
8609 (dbus_connection_set_max_live_messages_size): rename
8611 (dbus_connection_get_outgoing_size): get size of outgoing
8613 (_dbus_connection_set_connection_counter): remove this cruft
8615 2003-04-14 Havoc Pennington <hp@redhat.com>
8617 * dbus/dbus-userdb.c: user database abstraction, mostly to get
8618 caching, but at some point we might want to be able to use a
8621 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8622 SHA1 conf file to test the sha1 auth mechanism, since the regular
8623 test always uses EXTERNAL when available.
8626 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8627 add conf file that requires use of sha1 auth
8629 2003-04-13 Havoc Pennington <hp@pobox.com>
8631 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8632 from Philip Blundell to send messages and monitor them.
8634 2003-04-13 Havoc Pennington <hp@pobox.com>
8636 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8639 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8642 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8643 fix to only recover unused bytes if we're already authenticated
8644 (_dbus_transport_get_is_authenticated): fix to still mark us
8645 authenticated if there are unused bytes.
8647 * bus/dispatch.c: implement security policy checking
8649 * bus/connection.c (bus_transaction_send_from_driver): new
8651 * bus/bus.c (bus_context_check_security_policy): new
8653 * bus/dispatch.c (send_service_nonexistent_error): delete this,
8654 now we just set the DBusError and it gets converted to an error
8657 * bus/connection.c (allow_user_function): enable code using actual
8658 data from the config file
8660 * bus/policy.c (list_allows_user): handle wildcard rules for
8661 user/group connection perms
8663 2003-04-13 Havoc Pennington <hp@pobox.com>
8665 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8667 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8669 * bus/policy.c (bus_policy_append_mandatory_rule)
8670 (bus_policy_append_default_rule, bus_policy_append_user_rule)
8671 (bus_policy_append_group_rule): new functions
8673 2003-04-12 Havoc Pennington <hp@pobox.com>
8675 * bus/config-parser.c (bus_config_parser_new): fix a memleak
8677 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8678 the pid/gid/uid, just for paranoia.
8680 * test/break-loader.c (randomly_do_n_things): find a byte
8681 containing a type code, and randomly change it to a different
8684 2003-04-12 Havoc Pennington <hp@pobox.com>
8686 * bus/policy.h: change BusPolicy to be the thing from the config
8687 file, and rename old BusPolicy to BusClientPolicy
8689 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8690 match change in how policy works
8692 * dbus/dbus-internals.h: mark assert_not_reached as
8693 __attribute((noreturn))__
8695 2003-04-11 Havoc Pennington <hp@redhat.com>
8697 * doc/dbus-specification.sgml: fix a spot with the wrong name for
8698 the broadcast service. Use boolean return for ServiceExists.
8700 2003-04-11 Havoc Pennington <hp@redhat.com>
8702 * configure.in: add another directory to look for qt in.
8704 2003-04-11 Havoc Pennington <hp@redhat.com>
8706 * AUTHORS: add Colin Walters
8708 2003-04-11 Havoc Pennington <hp@redhat.com>
8714 2003-04-11 Havoc Pennington <hp@redhat.com>
8716 * bus/messagebus.in: remove pid file when stopping the
8717 message bus, since the bus won't have privileges to remove it
8720 2003-04-11 Havoc Pennington <hp@redhat.com>
8722 * bus/bus.c (bus_context_new): move credentials change after
8725 2003-04-11 Havoc Pennington <hp@pobox.com>
8727 * test/decode-gcov.c: add "below average functions" to the
8728 coverage report, and change how some of the code works.
8730 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8731 not in the coverage stats.
8733 * test/test-service.c (main): use _dbus_verbose not fprintf in a
8734 couple places so running the test suite doesn't result in megaspam.
8736 2003-04-11 Havoc Pennington <hp@pobox.com>
8738 * bus/dispatch.c (check_existent_service_activation): accept a no
8739 memory error in a place we didn't before
8741 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8742 in case the first one failed," since the test suite is less
8745 2003-04-10 Havoc Pennington <hp@pobox.com>
8747 * bus/dispatch.c (check_segfault_service_activation): add test
8748 for launching an executable that just crashes.
8750 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8751 don't leave a million cores. We'll see how portable this is.
8753 2003-04-10 Havoc Pennington <hp@pobox.com>
8755 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8756 the possible parent failures before we fork, so that we don't
8757 fail to create a babysitter after creating the child.
8759 * bus/activation.c (bus_activation_activate_service): kill child
8760 if we don't successfully complete the activation.
8762 2003-04-10 Havoc Pennington <hp@redhat.com>
8764 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8765 the connection if it's disconnected
8767 * bus/activation.c (bus_activation_service_created): use new
8768 transaction features to roll back removal of pending activation if
8769 we don't successfully create the service after all. Don't remove
8770 pending activation if the function fails.
8772 * dbus/dbus-list.c (_dbus_list_insert_before_link)
8773 (_dbus_list_insert_after_link): new code to facilitate
8776 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8777 new functionality, so we can preallocate the ability to insert
8780 * bus/connection.c (bus_transaction_add_cancel_hook): new function
8781 allowing us to put custom hooks in a transaction to be used for
8782 cancelling said transaction
8784 * doc/dbus-specification.sgml: add some discussion of secondary
8785 service owners, and disallow zero-length service names
8787 * bus/services.c (bus_registry_acquire_service): new function,
8788 splits out part of bus_driver_handle_acquire_service() and fixes
8789 a bug where we didn't remove the service doing the acquiring
8790 from the secondary queue if we failed to remove the current owner
8791 from the front of the queue.
8793 2003-04-10 Alexander Larsson <alexl@redhat.com>
8795 * doc/dbus-specification.sgml:
8796 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8798 2003-04-10 Alexander Larsson <alexl@redhat.com>
8803 Added files to cvsignore
8805 * dbus/dbus-message.h:
8806 * dbus/dbus-message.c: (dbus_message_iter_get_named):
8807 Make get_named() take two out argument and return a boolean.
8808 (dbus_message_iter_get_args_valist):
8809 Update usage of get_named().
8810 (dbus_message_iter_append_byte):
8812 (dbus_message_iter_append_named)
8814 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8817 2003-04-10 Alexander Larsson <alexl@redhat.com>
8819 * dbus/dbus-marshal.[ch]:
8820 Add array_type_pos argument to _dbus_marshal_validate_arg.
8821 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8823 * dbus/dbus-message.[ch]:
8824 Multi-dimensional arrays have full type specification in the
8825 outermost array. Iter code re-arranged to handle this.
8826 Added some more iter tests.
8828 * doc/dbus-specification.sgml:
8831 Update new array encoding description.
8832 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8834 * test/data/invalid-messages/array-with-mixed-types.message:
8835 * test/data/valid-messages/array-of-array-of-uint32.message:
8836 Change to the new array format.
8838 * test/data/invalid-messages/too-short-dict.message:
8841 * test/data/valid-messages/recursive-types.message:
8842 Fix up and extend test.
8844 2003-04-10 Havoc Pennington <hp@pobox.com>
8846 * bus/dispatch.c: lots of fixes
8848 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
8849 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
8850 that was crack, broke the test service.
8852 * dbus/dbus-transport.c (_dbus_transport_open): fix error
8853 handling to avoid piling up errors if we get a failure on the
8856 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
8857 pid in assertion failures.
8859 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
8860 to some fixed size of file descriptor array. Don't return TRUE
8861 anytime a timeout exists, that led to lots of busy loop silliness
8864 2003-04-09 Havoc Pennington <hp@redhat.com>
8866 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
8867 I'd checked this in earlier but hadn't.
8869 2003-04-09 Havoc Pennington <hp@redhat.com>
8871 * bus/dispatch.c (bus_dispatch_test): get a bit further through
8872 the activation test (man this is getting old!)
8874 2003-04-09 Havoc Pennington <hp@redhat.com>
8876 * test/test-utils.c: use dispatch status function to fix this up
8878 * bus/connection.c (connection_watch_callback): don't dispatch
8880 (connection_timeout_callback): don't dispatch from here
8881 (bus_connections_setup_connection): set the dispatch status function
8882 (bus_connection_disconnected): unset it
8884 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
8885 used to add a connection to be dispatched
8886 (_dbus_loop_iterate): do the dispatching at the end of each
8889 * dbus/dbus-connection.c
8890 (dbus_connection_set_dispatch_status_function): new function
8891 allowing us to fix up main loop usage
8892 (_dbus_connection_last_unref): free all the various function
8894 (dbus_connection_dispatch): call the DispatchStatusFunction
8895 whenever this function returns
8896 (dbus_connection_handle_watch): call DispatchStatusFunction
8897 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
8898 (reply_handler_timeout): call DispatchStatusFunction
8899 (dbus_connection_flush): call DispatchStatusFunction
8901 2003-04-09 Havoc Pennington <hp@redhat.com>
8903 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
8906 * bus/dispatch.c (check_service_activated): fix bug in test
8908 * dbus/dbus-mainloop.c (check_timeout): fix this up
8910 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
8911 verbose output so we can sort out output from different processes,
8912 e.g. in the activation case.
8914 2003-04-08 Colin Walters <walters@gnu.org>
8916 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
8918 (bus_context_new): Set it.
8919 (bus_context_unref): Use it to delete the pid file.
8921 2003-04-08 Havoc Pennington <hp@redhat.com>
8923 * test/data/invalid-messages/array-with-mixed-types.message:
8924 regression test that fails for the moment
8926 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
8927 tests for convenience
8929 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
8930 array of nil, it broke things.
8932 * test/data/invalid-messages/array-of-nil.message: regression test
8934 * test/data/valid-messages/array-of-array-of-uint32.message:
8935 happened to write this so added it to suite
8937 2003-04-08 Havoc Pennington <hp@redhat.com>
8939 * bus/driver.c (bus_driver_handle_acquire_service): init
8940 retval/reply before checking name
8942 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
8943 recursion depth argument
8945 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
8946 in the public struct for future extension
8948 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
8951 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
8954 * doc/dbus-specification.sgml: fix typo
8956 2003-04-08 Alexander Larsson <alexl@redhat.com>
8958 Implemented recursive types, named types and new-style iters
8961 * glib/test-thread-client.c: (thread_func):
8962 * glib/test-thread-server.c: (handle_test_message):
8963 * test/test-service.c: (handle_echo):
8972 * dbus/dbus-internals.c: (_dbus_type_to_string):
8973 Update for new types.
8975 * dbus/dbus-marshal.[ch]:
8976 Implement recursive types and the new marshalling format.
8977 Remove hardcoded dict marshalling.
8978 Marshal named types.
8980 * dbus/dbus-message-builder.c:
8982 Remove references to old types
8984 * dbus/dbus-message.[ch]:
8985 New non-refcounted iter API that supports recursive iters.
8986 Use iters for appending, including support for recursive
8988 Add byte and named type support.
8989 Update everything to new marshalling formats.
8990 Add tests for new API.
8992 * dbus/dbus-protocol.h:
8993 Remove old array types.
8994 Add types: BYTE, ARRAY, DICT, NAMED
8996 * dbus/dbus-string.c:
8997 * dbus/dbus-sysdeps.c:
8998 Make parse_double locale safe.
9000 * dbus/dbus-test-main.c:
9006 * doc/dbus-specification.sgml:
9009 * test/data/incomplete-messages/missing-body.message:
9010 * test/data/invalid-messages/bad-boolean.message:
9011 * test/data/invalid-messages/bad-boolean-array.message:
9012 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9013 * test/data/invalid-messages/boolean-has-no-value.message-raw:
9014 * test/data/invalid-messages/too-short-dict.message:
9015 * test/data/valid-messages/dict-simple.message:
9016 * test/data/valid-messages/dict.message:
9017 * test/data/valid-messages/emptiness.message:
9018 * test/data/valid-messages/lots-of-arguments.message:
9019 * test/data/valid-messages/no-padding.message:
9020 * test/data/valid-messages/recursive-types.message:
9021 Add missing NAME fields
9022 Fix up dicts & arrays
9024 * test/data/invalid-messages/dict-with-nil-value.message:
9025 Removed, this is not invalid anymore.
9027 * test/data/valid-messages/recursive-types.message:
9028 Add new test for deeply recursive types.
9030 2003-04-07 Havoc Pennington <hp@pobox.com>
9032 * bus/driver.c (bus_driver_handle_acquire_service): return an
9033 error if you try to acquire a service that starts with ':'
9035 2003-04-07 Havoc Pennington <hp@redhat.com>
9037 * doc/dbus-specification.sgml: require that base service names
9038 start with ':' and that the base service is created/deleted
9039 as first and last things a connection does on the bus
9041 * bus/dispatch.c (check_existent_service_activation): lots more
9042 work on the activation test; it doesn't fully pass yet...
9044 * test/test-service.c (main): fix so we don't memleak the
9045 connection to the message bus
9046 (filter_func): accept a message asking us to exit
9048 2003-04-06 Havoc Pennington <hp@pobox.com>
9050 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9053 * configure.in: fixes to Qt detection from Colin Walters
9055 * doc/Makefile.am: Only remove generated docbook dirs if they
9056 exist, from Colin Walters
9058 * dbus/dbus-bus.c: change how we set well-known connections to
9059 NULL, so that it works if a single connection is stored in
9060 two well-known array slots.
9062 * test/Makefile.am: remove a lot of stuff that isn't immediately
9063 useful, it's in CVS history if we want it.
9065 * test/test-service.c: use dbus-mainloop instead of that
9068 2003-04-06 Havoc Pennington <hp@pobox.com>
9070 * dbus/Makefile.am: split lists of sources into stuff that goes in
9071 the library, util functions that go in the lib and are also used
9072 elsewhere, and util functions that are used in tests/daemon but
9073 don't go in the lib.
9075 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9076 here so it can be used in test binaries also
9078 2003-04-06 Havoc Pennington <hp@pobox.com>
9080 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9081 here in the parent process, so we can return an error if it
9082 fails. Also, move some of the code into the child so the parent
9083 is less hosed if we fail midway through.
9085 * bus/bus.c (bus_context_new): move pidfile detection further up
9086 in the function, before we start overwriting sockets and such.
9088 * bus/messagebus.in: adjust this a bit, not sure if it will work.
9090 * configure.in: add --with-system-pid-file and --with-system-socket
9092 2003-04-06 Colin Walters <walters@verbum.org>
9094 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9096 * bus/system.conf.in: Declare a pidfile.
9098 * bus/bus.c (bus_context_new): Test for an existing pid file, and
9099 create one (if appropriate).
9101 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9102 (struct BusConfigParser) [pidfile]: New.
9103 (element_type_to_name, merge_included, start_busconfig_child)
9104 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9105 (bus_config_parser_unref): Free it.
9106 (bus_config_parser_get_pidfile): New function.
9108 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9110 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9112 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9114 * dbus/dbus-sysdeps.h: Prototype it.
9116 2003-04-06 Havoc Pennington <hp@pobox.com>
9118 * bus/bus.c (bus_context_new): print the address in here, rather
9119 than in main(), because we need to do it before forking the daemon
9121 * bus/dispatch.c (send_service_nonexistent_error): set the sender
9122 on the service nonexistent error
9124 * bus/driver.c (bus_driver_handle_acquire_service): set the
9125 sender on the AcquireService reply
9127 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9128 server also listen on a UNIX socket so services can connect to it.
9130 2003-04-06 Havoc Pennington <hp@pobox.com>
9132 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9133 so it detects deadlocks and also we actually init threads when
9136 2003-04-06 Havoc Pennington <hp@pobox.com>
9138 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9139 save the domain socket name, and unlink it when we disconnect the
9140 server. Means that at least when we exit normally, we won't leave
9141 a bunch of junk in /tmp
9143 * dbus/dbus-transport-unix.c
9144 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9145 memory management). (I was making a real change here but then
9148 2003-04-06 Havoc Pennington <hp@pobox.com>
9150 * bus/bus.c (bus_context_new): fix wrong handling of
9151 server_data_slot_unref() in the error case.
9153 * dbus/dbus-internals.h (_dbus_assert): change so it passes
9154 "(condition) != 0" to _dbus_real_assert so that
9155 "_dbus_assert (pointer)" doesn't cause a warning
9157 * bus/main.c (main): accept --print-address option to print out
9158 the message bus address
9160 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9162 * dbus/dbus-transport.c (_dbus_transport_open): special error for
9163 "tmpdir" option to unix: address on client side
9165 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9168 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9169 we can use to create sockets in the test suite.
9171 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9172 cleanly. To be used for testing.
9174 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9176 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9178 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9179 handle trying to call this when there's no servers active
9181 2003-04-05 Havoc Pennington <hp@pobox.com>
9187 2003-04-05 Havoc Pennington <hp@pobox.com>
9189 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9190 crash on startup. Need to get "try starting the daemon"
9191 in the test suite I guess. ;-)
9193 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9194 tracked the number of open connections; it's better done in
9195 application-specific code as you want it to span all servers etc.
9197 2003-04-05 Havoc Pennington <hp@pobox.com>
9199 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9200 patch from Colin Walters
9202 2003-04-05 Havoc Pennington <hp@pobox.com>
9204 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9205 reality; in fact multiple mechanisms are allowed.
9207 * dbus/dbus-internals.c (_dbus_real_assert)
9208 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9209 _dbus_assert_not_reached() into functions, so that they don't show
9210 up in basic block counts for test coverage, and don't use up as
9211 much disk space. Does mean slower execution speed though, so
9212 assumes --disable-asserts is the normal production case.
9214 2003-04-05 Havoc Pennington <hp@pobox.com>
9216 * test/Makefile.am (dist-hook): also dist *.in files
9222 2003-04-05 Havoc Pennington <hp@pobox.com>
9224 * dbus/dbus-string.c: docs warning
9226 * dbus/dbus-spawn.c: missing docs
9228 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9230 2003-04-05 Havoc Pennington <hp@pobox.com>
9232 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9235 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9236 to -1 once we've reaped the babysitter
9237 (_dbus_babysitter_handle_watch): do as much work as we can, not
9240 * bus/activation.c: add code using DBusBabysitter so that we
9241 handle it when a service fails to start up properly.
9242 (bus_activation_service_created): don't remove the activation
9243 entries as we go, just let them get removed when we free the pending
9244 activation. Unref reply messages after sending them.
9246 2003-04-05 Havoc Pennington <hp@pobox.com>
9248 * test/decode-gcov.c (main): print per-directory stats in the report
9250 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9252 2003-04-05 Havoc Pennington <hp@pobox.com>
9254 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9256 * test/decode-gcov.c: hack up a little program to suck data
9257 out of gcov files. Yes this is sort of silly.
9259 * configure.in: define something in config.h and do an
9260 AM_CONDITIONAL when gcov is enabled
9262 2003-04-04 Havoc Pennington <hp@redhat.com>
9264 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9265 return a "babysitter" object that is used to monitor the status of
9266 the spawned process and reap it when required.
9268 * test/test-segfault.c, test/test-exit.c,
9269 test/test-sleep-forever.c: binaries that do various lame things,
9270 used in the test suite.
9272 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9274 2003-04-03 Havoc Pennington <hp@pobox.com>
9276 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9277 in preparation for modifying it, dbus-sysdeps is getting
9280 2003-04-03 Havoc Pennington <hp@redhat.com>
9282 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9285 * bus/*.[hc]: adapt to mainloop change
9287 2003-04-03 Havoc Pennington <hp@redhat.com>
9289 * bus/activation.c (load_directory): fix up memleaks
9290 (bus_activation_entry_free): free the entry
9292 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9293 we get one from the message bus; fix memleaks.
9295 * dbus/dbus-message.c (dbus_set_error_from_message): new function
9297 2003-04-03 Havoc Pennington <hp@pobox.com>
9299 * bus/config-parser.c (bus_config_parser_unref): free
9300 list of mechanisms, bug discovered by test suite enhancements
9301 (putting system.conf and session.conf into suite)
9303 * test/Makefile.am, test/test-service.c: add placeholder for a
9304 test service that we'll activate as part of test suite. Doesn't
9307 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9308 setting NULL value, and use system malloc not dbus_malloc()
9309 when we have unavoidable memleakage.
9311 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9312 didn't work, and support DBUS_BUS_ACTIVATION.
9314 * bus/activation.c (child_setup): pass our well-known bus type to
9317 * bus/config-parser.c: support <type> to specify well-known type
9319 * doc/dbus-specification.sgml: document the env variables to
9320 locate well-known buses and find service activator
9322 2003-04-02 Havoc Pennington <hp@redhat.com>
9324 * test/Makefile.am (all-local): add a rule to copy tests to
9325 builddir, so we can have generated tests. Use this to remove the
9326 silly hack for testing system.conf and session.conf. Will use this
9327 shortly to generate .service files pointing to test binaries.
9329 2003-04-02 Havoc Pennington <hp@redhat.com>
9331 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9332 current alloc and needed new length, not max of the doubled
9333 allocation and needed new length. Also, when building tests,
9334 don't do the double-allocation stuff, just realloc every time.
9336 2003-04-02 Havoc Pennington <hp@redhat.com>
9338 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9340 (_dbus_string_get_dirname): new
9341 (_dbus_sysdeps_test): new
9342 (_dbus_directory_open): include dirnames in error messages
9344 * bus/config-parser.c: interpret <include> and <includedir> and
9345 <servicedir> relative to config file location if the given
9346 filename is not absolute.
9348 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9350 2003-04-02 Havoc Pennington <hp@redhat.com>
9352 * bus/connection.c (bus_transaction_send_error_reply): set sender
9353 service for the error, and unref the reply on success
9355 * bus/activation.c: convert to use BusTransaction so OOM can be
9357 (bus_activation_service_created): set sender of the message
9359 2003-04-01 Havoc Pennington <hp@redhat.com>
9361 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9362 <includedir> (at least mostly)
9364 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9365 first, then the user ID
9367 2003-04-01 Havoc Pennington <hp@pobox.com>
9369 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9372 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9374 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9376 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9377 socket 0777, and unlink any existing socket.
9379 * bus/bus.c (bus_context_new): change our UID/GID and fork if
9380 the configuration file so specifies; set up auth mechanism
9383 * bus/config-parser.c (bus_config_parser_content): add support
9384 for <fork> option and fill in code for <auth>
9386 * bus/system.conf.in: add <fork/> to default configuration,
9387 and limit auth mechanisms to EXTERNAL
9389 * doc/config-file.txt (Elements): add <fork>
9391 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9392 (_dbus_change_identity): new function
9394 2003-03-31 Havoc Pennington <hp@redhat.com>
9396 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9397 (_dbus_listen_unix_socket): fix off-by-one error in null
9398 termination spotted by Nalin
9400 2003-03-31 Havoc Pennington <hp@redhat.com>
9402 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9403 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9404 having a real home directory available.
9406 2003-03-31 Havoc Pennington <hp@redhat.com>
9408 * bus/Makefile.am (install-data-hook): create /var/run/dbus
9410 * bus/messagebus.in: add init script for Red Hat /etc/init.d
9412 * configure.in: add support for specifying a style of init script
9415 2003-03-31 Havoc Pennington <hp@redhat.com>
9417 Fix some annoying DBusString API and fix all affected code.
9419 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9421 (_dbus_string_get_data): change to return string instead of using
9423 (_dbus_string_get_const_data): ditto
9424 (_dbus_string_get_data_len): ditto
9425 (_dbus_string_get_const_data_len): ditto
9427 2003-03-31 Havoc Pennington <hp@redhat.com>
9429 * bus/main.c (main): fix up the command line arguments to be nicer
9431 2003-03-31 Havoc Pennington <hp@redhat.com>
9433 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9434 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9435 final location that lands in the config file
9437 * bus/config-loader-expat.c (bus_config_load): fix type of
9440 * doc/TODO: remove TODO item for dbus_bus_get()
9442 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9444 2003-03-31 Havoc Pennington <hp@pobox.com>
9446 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9447 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9448 argument since they are always client side
9450 * dbus/dbus-server.c (dbus_server_get_address): new function
9452 * bus/main.c (main): take the configuration file as an argument.
9454 * test/data/valid-config-files/debug-allow-all.conf: new file to
9455 use with dispatch.c tests for example
9457 * bus/test-main.c (main): require test data dir
9459 * bus/bus.c (bus_context_new): change this to take a
9460 configuration file name as argument
9462 * doc/config-file.txt (Elements): add <servicedir>
9464 * bus/system.conf, bus/session.conf: new files
9466 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9467 well-known socket if none set
9469 * configure.in: create system.conf and session.conf
9471 2003-03-30 Havoc Pennington <hp@pobox.com>
9473 * bus/config-parser.c: hacking
9475 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9476 to shut down, since it could cause weirdness with the DBusList
9479 * dbus/dbus-list.c (_dbus_list_test): add tests for the
9480 link-oriented stack routines
9481 (alloc_link): free the mempool if the first alloc from it fails
9483 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9485 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9487 (_dbus_string_skip_white): new
9489 * doc/config-file.txt (Elements): add <includedir>
9491 2003-03-28 Havoc Pennington <hp@pobox.com>
9493 * dbus/dbus-string.c (_dbus_string_copy_data_len)
9494 (_dbus_string_copy_data): new functions
9496 2003-03-28 Anders Carlsson <andersca@codefactory.se>
9498 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9502 * dbus/dbus-memory.c:
9505 2003-03-28 Havoc Pennington <hp@pobox.com>
9507 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9508 I think it may have just been superstition. Not sure.
9510 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9511 failures that were not being handled.
9513 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9515 * dbus/dbus-memory.c: add ability to set number of mallocs in a
9516 row that will fail on out-of-memory.
9518 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9519 function for testing out-of-memory handling.
9521 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9522 allocation functions, they do map exactly to the expat ones.
9524 2003-03-27 Havoc Pennington <hp@redhat.com>
9526 * bus/config-loader-libxml.c (bus_config_load): add another error
9529 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9532 Add note about automatic service activation.
9534 * doc/dbus-specification.sgml:
9535 Rename the specification and clarify a few things.
9537 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9540 * dbus/dbus-address.c:
9542 * dbus/dbus-marshal.c:
9543 * dbus/dbus-server-debug-pipe.c:
9544 * dbus/dbus-transport-unix.c:
9545 Fix documentation warnings.
9547 2003-03-26 Havoc Pennington <hp@pobox.com>
9549 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9550 after every test so it's quick and easy to see which leaked, and
9551 so we test multiple dbus_shutdown() calls
9553 * configure.in: change configure.in XML stuff to also support
9556 * config-loader-libxml.c: some hacking
9558 * config-loader-expat.c: some hacking
9560 * config-parser.c: some hacking, plus tests
9562 2003-03-25 Havoc Pennington <hp@redhat.com>
9564 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9566 * configure.in: add --with-xml option to specify XML library,
9567 right now only libxml is supported.
9569 * bus/config-loader-libxml.c, config-parser.c: sync some minor
9570 nonworking code between home and work, still just stubs
9572 2003-03-24 Havoc Pennington <hp@redhat.com>
9574 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9577 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9578 NULL argument for "message" if the error is a well-known one,
9579 fill in a generic message in this case.
9581 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9584 * bus/test.c (bus_test_flush_bus): add
9586 * bus/policy.c (bus_policy_test): test code stub
9588 2003-03-24 Havoc Pennington <hp@pobox.com>
9590 * bus/connection.c (bus_connections_setup_connection): set up
9591 the "can this user connect" function, but it always returns
9592 TRUE until we have a config file parser so we can have a config
9593 file that allows connections.
9595 2003-03-23 Havoc Pennington <hp@pobox.com>
9597 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9598 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9599 the mutex, so we can check for proper memory management
9602 * dbus/dbus-dataslot.c: remove the mutex from
9603 DBusDataSlotAllocator and lock it manually when using it,
9604 to simplify fitting it into the global slots framework.
9606 * dbus/dbus-threads.c (init_static_locks): rework how we're
9607 handling global locks so they are easily shut down.
9609 * bus/policy.c (bus_policy_append_rule): fix
9611 * bus/test-main.c (main): check for memleaks
9613 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9614 test suite check for memleaks
9616 * dbus/dbus-memory.c: add support in test mode for tracking
9617 number of outstanding blocks
9619 2003-03-23 Havoc Pennington <hp@pobox.com>
9621 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9624 * dbus/dbus-hash.h: add ULONG hash keys
9626 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9627 (_dbus_get_group_id): new function
9629 2003-03-20 Havoc Pennington <hp@redhat.com>
9631 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9633 (dbus_connection_get_unix_user): new function
9635 2003-03-20 Havoc Pennington <hp@pobox.com>
9637 * bus/connection.c (bus_connection_send_oom_error): assert that
9638 message has a sender
9639 (connection_execute_transaction): ditto
9640 (bus_connection_preallocate_oom_error): fix to set the sender, and
9641 set recipient to the destination service, not the bus driver
9643 * bus/policy.c: hacking
9645 * dbus/dbus-message.c (dbus_message_service_is): new function
9646 (dbus_message_sender_is): new
9648 2003-03-19 Havoc Pennington <hp@redhat.com>
9650 * bus/policy.c: start sketching code for policy restrictions on
9651 what connections can do.
9653 2003-03-18 Havoc Pennington <hp@redhat.com>
9655 * doc/TODO: some notes on high-level todo items. Little nitpick
9656 stuff is all in @todo, so no need to add it here.
9658 * doc/config-file.txt: some notes on how config file might look
9660 2003-03-18 Anders Carlsson <andersca@codefactory.se>
9666 2003-03-17 Havoc Pennington <hp@redhat.com>
9668 * dbus/dbus-internals.h: add gcc attributes so that
9669 our printf-style functions warn on bad arguments to
9672 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9675 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9678 2003-03-17 Havoc Pennington <hp@redhat.com>
9680 * bus/test-main.c (main): make it print something as it runs
9681 so make check doesn't look stuck
9683 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9684 from CVS, now obsolete
9686 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9688 * bus/dispatch.c: (bus_dispatch):
9689 Refetch the service name since it may have been reallocated
9690 when dbus_message_set_sender was called.
9692 * dbus/dbus-sysdeps.c: (_dbus_accept):
9693 Add address and address length variables and use them to stop
9694 valgrind from complaining.
9696 2003-03-17 Havoc Pennington <hp@pobox.com>
9698 All tests pass, no memleaks, no valgrind complaints.
9700 * bus/test.c: refcount handler_slot
9702 * bus/connection.c (bus_connections_new): refcount
9703 connection_data_slot
9705 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9706 bytes so that auth scripts pass.
9708 * bus/dispatch.c: init message_handler_slot so it gets allocated
9711 * bus/dispatch.c (message_handler_slot_ref): fix memleak
9713 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9714 dealloc server_pipe_hash when no longer used for benefit of
9717 * dbus/dbus-auth.c (process_command): memleak fix
9719 * bus/dispatch.c (check_hello_message): memleak fix
9721 2003-03-16 Havoc Pennington <hp@pobox.com>
9723 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9725 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9727 * bus/activation.c (bus_activation_activate_service): Append
9728 the pending activation entry to the list of pending activations.
9730 2003-03-16 Havoc Pennington <hp@pobox.com>
9732 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9735 * dbus/dbus-address.c (create_entry): fix OOM handling when
9736 failing to alloc entry->method
9738 2003-03-16 Havoc Pennington <hp@pobox.com>
9740 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9743 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9744 add some missing dbus_set_result
9746 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9747 alloc the DBusMessageHandler
9749 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9750 the transport here, since we call this from the finalizer; it
9751 resulted in a double-finalize.
9753 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9754 where we tried to use transport->connection that was NULL,
9755 happened when transport was disconnected early on due to OOM
9757 * bus/*.c: adapt to handle OOM for watches/timeouts
9759 * dbus/dbus-transport-unix.c: port to handle OOM during
9762 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9763 reference to unused bytes instead of a copy
9765 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9768 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9771 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9774 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9776 * doc/dbus-specification.sgml:
9777 Document reply message for ActivateService.
9779 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9781 * bus/activation.c: (bus_pending_activation_entry_free),
9782 (bus_pending_activation_free), (bus_activation_new),
9783 (bus_activation_unref), (bus_activation_service_created),
9784 (bus_activation_activate_service):
9786 * bus/bus.c: (bus_context_new):
9787 * bus/desktop-file.c: (new_section):
9788 * bus/driver.c: (bus_driver_send_service_deleted),
9789 (bus_driver_handle_activate_service):
9790 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9792 * dbus/dbus-connection.c:
9793 (dbus_connection_send_with_reply_and_block):
9794 * dbus/dbus-message.c: (dbus_message_append_args_valist):
9795 * dbus/dbus-protocol.h:
9796 Make activation work better. Now pending activations will be queued
9797 and the daemon won't try to activate services that are already registered.
9799 2003-03-16 Havoc Pennington <hp@pobox.com>
9801 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9804 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9805 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9807 2003-03-16 Havoc Pennington <hp@pobox.com>
9809 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9810 this. always run the test suite before commit...
9812 * bus/*: adapt to DBusConnection API changes
9814 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9815 requires renaming stuff to avoid dbus_connection_dispatch name
9818 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9821 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9822 separate from _dbus_message_loader_return_buffer()
9824 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9825 this, because it's now always broken to use; the number of
9826 messages in queue vs. the number still buffered by the message
9827 loader is undefined/meaningless. Should use
9828 dbus_connection_get_dispatch_state().
9829 (dbus_connection_dispatch): rename from
9830 dbus_connection_dispatch_message
9832 2003-03-16 Havoc Pennington <hp@pobox.com>
9834 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9837 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9839 * dbus/dbus-connection.c:
9840 (dbus_connection_send_with_reply_and_block):
9841 Decrease connection->n_incoming when removing an entry
9843 * dbus/dbus-dict.c: (dbus_dict_entry_free),
9844 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9845 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
9846 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
9847 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
9848 (dbus_dict_get_byte_array):
9849 Handle NULL arrays and strings. Also add support for byte arrays.
9851 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
9852 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
9853 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9854 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9855 (_dbus_demarshal_dict), (demarshal_and_validate_len),
9856 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
9857 * dbus/dbus-marshal.h:
9858 Add support for marshalling and demarshalling empty arrays and strings.
9860 * dbus/dbus-message.c: (dbus_message_append_args_valist),
9861 (dbus_message_append_string_array),
9862 (dbus_message_iter_get_boolean),
9863 (dbus_message_iter_get_boolean_array),
9864 (dbus_message_iter_get_int32_array),
9865 (dbus_message_iter_get_uint32_array),
9866 (dbus_message_iter_get_double_array),
9867 (dbus_message_iter_get_byte_array),
9868 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
9869 (check_message_handling):
9870 Add support for getting empty arrays and dicts.
9872 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
9873 Don't do any validation at all for now, that's better than just checking
9876 * test/data/valid-messages/emptiness.message:
9877 New test message with lots of empty arrays.
9879 2003-03-16 Havoc Pennington <hp@pobox.com>
9881 * dbus/dbus-connection.c
9882 (_dbus_connection_queue_received_message_link): new function that
9883 can't fail due to OOM
9885 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
9886 new function pops a message together with a list link
9889 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
9890 message queuing functions to avoid needing to alloc memory
9892 2003-03-16 Havoc Pennington <hp@pobox.com>
9894 Oops - test code was only testing failure of around 30 of the
9895 mallocs in the test path, but it turns out there are 500+
9896 mallocs. I believe this was due to misguided linking setup such
9897 that there was one copy of dbus_malloc etc. in the daemon and one
9898 in the shared lib, and only daemon mallocs were tested. In any
9899 case, the test case now tests all 500+ mallocs, and doesn't pass
9900 yet, though there are lots of fixes in this patch.
9902 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
9903 this so that it doesn't need to allocate memory, since it
9904 has no way of indicating failure due to OOM (and would be
9905 annoying if it did).
9907 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
9909 * bus/Makefile.am: rearrange to create two self-contained
9910 libraries, to avoid having libraries with overlapping symbols.
9911 that was resulting in weirdness, e.g. I'm pretty sure there
9912 were two copies of global static variables.
9914 * dbus/dbus-internals.c: move the malloc debug stuff to
9917 * dbus/dbus-list.c (free_link): free list mempool if it becomes
9920 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
9922 * dbus/dbus-address.c (dbus_parse_address): free list nodes
9925 * bus/dispatch.c (bus_dispatch_add_connection): free
9926 message_handler_slot when no longer using it, so
9927 memory leak checkers are happy for the test suite.
9929 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
9931 * bus/bus.c (new_connection_callback): disconnect in here if
9932 bus_connections_setup_connection fails.
9934 * bus/connection.c (bus_connections_unref): fix to free the
9936 (bus_connections_setup_connection): if this fails, don't
9937 disconnect the connection, just be sure there are no side
9940 * dbus/dbus-string.c (undo_alignment): unbreak this
9942 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
9944 (_dbus_auth_new): fix the order in which we free strings
9947 * bus/connection.c (bus_connection_disconnected): fix to
9948 not send ServiceDeleted multiple times in case of memory
9951 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
9952 get the base service name
9953 (dbus_bus_register_client): don't return base service name,
9954 instead store it on the DBusConnection and have an accessor
9956 (dbus_bus_register_client): rename dbus_bus_register()
9958 * bus/dispatch.c (check_hello_message): verify that other
9959 connections on the bus also got the correct results, not
9960 just the one sending hello
9962 2003-03-15 Havoc Pennington <hp@pobox.com>
9964 Make it pass the Hello handling test including all OOM codepaths.
9965 Now to do other messages...
9967 * bus/services.c (bus_service_remove_owner): fix crash when
9968 removing owner from an empty list of owners
9969 (bus_registry_ensure): don't leave service in the list of
9970 a connection's owned services if we fail to put the service
9973 * bus/connection.c (bus_connection_preallocate_oom_error): set
9974 error flag on the OOM error.
9976 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
9977 handle _dbus_transport_set_connection failure
9979 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
9980 to create watches up front and simply enable/disable them as
9982 (unix_connection_set): this can now fail on OOM
9984 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
9985 of enabling/disabling a watch or timeout.
9987 * bus/loop.c (bus_loop_iterate): don't touch disabled
9990 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
9992 2003-03-15 Havoc Pennington <hp@pobox.com>
9994 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
9995 write useful test code, after all that futzing around ;-)
9997 Test does not yet pass because we can't handle OOM in
9998 _dbus_transport_messages_pending (basically,
9999 dbus_connection_preallocate_send() does not prealloc the write
10000 watch). To fix this, I think we need to add new stuff to
10001 set_watch_functions, namely a SetEnabled function so we can alloc
10002 the watch earlier, then enable it later.
10004 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10005 dbus-memory.c to the convenience lib
10007 * bus/test.c: rename some static functions to keep them clearly
10008 distinct from stuff in connection.c. Handle client disconnection.
10010 2003-03-14 Havoc Pennington <hp@pobox.com>
10012 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10013 transport, tests more of the real codepath. Set up clients
10014 with bus_setup_debug_client.
10016 * bus/test.c (bus_setup_debug_client): function to set up debug
10017 "clients" on the main loop
10019 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10022 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10025 * dbus/dbus-server-debug.c: support a debug server based on pipes
10027 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10028 (_dbus_close): new function
10030 * configure.in: check for socketpair
10032 2003-03-14 Havoc Pennington <hp@redhat.com>
10034 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10037 * dbus/dbus-transport-debug.c: rework this a good bit to be
10038 less complicated. hopefully still works.
10040 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10043 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10046 * dbus/dbus-message.c (dbus_message_copy): rename from
10047 dbus_message_new_from_message, fix it up to copy
10048 all the message fields, add test case
10050 * bus/dispatch.c (bus_dispatch_test): add some more test code,
10051 not quite passing yet
10053 2003-03-14 Havoc Pennington <hp@pobox.com>
10055 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10056 until no work remains" in test code. (the large diff here
10057 is just code movement, no actual changes)
10059 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10060 1, no point waiting around for test code.
10061 (_dbus_server_debug_accept_transport): unref the timeout
10062 after adding it (right?)
10064 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10066 2003-03-13 Havoc Pennington <hp@redhat.com>
10068 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10071 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10074 * dbus/dbus-connection.h: Make AddWatchFunction and
10075 AddTimeoutFunction return a bool so they can fail on out-of-memory
10077 * bus/bus.c (bus_context_new): set up timeout handlers
10079 * bus/connection.c (bus_connections_setup_connection): set up
10082 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10085 * bus/bus.c (bus_context_new): adapt to changes
10087 * bus/connection.c: adapt to changes
10089 * test/watch.c: adapt to DBusWatch changes
10091 * bus/dispatch.c (bus_dispatch_test): started adding this but
10094 2003-03-14 Anders Carlsson <andersca@codefactory.se>
10096 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10098 2003-03-13 Havoc Pennington <hp@pobox.com>
10100 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10101 set up a test framework as for the library
10103 2003-03-12 Havoc Pennington <hp@pobox.com>
10105 Throughout: purge global variables, introduce BusActivation,
10106 BusConnections, BusRegistry, etc. objects instead.
10108 * bus/bus.h, bus/bus.c: introduce BusContext as a global
10111 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10112 going to redo this a bit differently I think
10114 2003-03-12 Havoc Pennington <hp@redhat.com>
10116 Mega-patch that gets the message bus daemon initially handling
10117 out-of-memory. Work still needed. Also lots of random
10118 moving stuff to DBusError instead of ResultCode.
10120 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10122 * dbus/dbus-connection.c
10123 (dbus_connection_send_with_reply_and_block): use DBusError
10125 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10128 * dbus/dbus-connection.c (dbus_connection_send): drop the result
10129 code here, as the only failure possible is OOM.
10131 * bus/connection.c (bus_connection_disconnect):
10132 rename bus_connection_disconnected as it's a notification only
10134 * bus/driver.c (bus_driver_handle_acquire_service): don't free
10135 "name" on get_args failure, should be done by get_args;
10136 don't disconnect client for bad args, just return an error.
10137 (bus_driver_handle_service_exists): ditto
10139 * bus/services.c (bus_services_list): NULL-terminate returned array
10141 * bus/driver.c (bus_driver_send_service_lost)
10142 (bus_driver_send_service_acquired): send messages from driver to a
10143 specific client to the client's unique name, not to the broadcast
10146 * dbus/dbus-message.c (decode_header_data): reject messages that
10147 contain no name field
10148 (_dbus_message_get_client_serial): rename to
10149 dbus_message_get_serial and make public
10150 (_dbus_message_set_serial): rename from set_client_serial
10151 (_dbus_message_set_reply_serial): make public
10152 (_dbus_message_get_reply_serial): make public
10154 * bus/connection.c (bus_connection_foreach): allow stopping
10155 iteration by returning FALSE from foreach function.
10157 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10158 (dbus_connection_free_preallocated_send)
10159 (dbus_connection_preallocate_send): new API for sending a message
10160 without possibility of malloc failure.
10161 (dbus_connection_send_message): rename to just
10162 dbus_connection_send (and same for whole function family)
10164 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10166 * dbus/dbus-sysdeps.c (_dbus_exit): new function
10168 * bus/activation.c: handle/return errors
10170 * dbus/dbus-errors.h: add more DBUS_ERROR #define
10172 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10173 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10174 (_dbus_result_from_errno): move to this file
10176 2003-03-10 Anders Carlsson <andersca@codefactory.se>
10178 * dbus/dbus-marshal.c:
10179 (_dbus_marshal_set_string):
10180 Take a length argument so we can marshal the correct string
10183 (_dbus_marshal_dict), (_dbus_demarshal_dict),
10184 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10185 (_dbus_marshal_test):
10186 * dbus/dbus-marshal.h:
10187 Add support for marshalling and demarshalling dicts.
10189 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10190 Add support for TYPE DICT.
10192 * dbus/dbus-message.c: (set_string_field):
10193 Adjust header padding.
10195 (dbus_message_append_args_valist), (dbus_message_append_dict),
10196 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10197 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10198 (check_message_handling), (check_have_valid_message):
10199 * dbus/dbus-message.h:
10200 Add functions for setting and getting dicts.
10202 * dbus/dbus-protocol.h:
10203 Add DBUS_TYPE_DICT.
10208 * doc/dbus-specification.sgml:
10209 Add information about how dicts are marshalled.
10211 * test/data/invalid-messages/dict-with-nil-value.message:
10212 * test/data/invalid-messages/too-short-dict.message:
10213 * test/data/valid-messages/dict-simple.message:
10214 * test/data/valid-messages/dict.message:
10215 Add sample messages containing dicts.
10217 2003-03-08 Anders Carlsson <andersca@codefactory.se>
10219 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10221 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10223 * dbus/Makefile.am:
10224 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10225 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10226 (dbus_dict_set_int32), (dbus_dict_set_uint32),
10227 (dbus_dict_set_double), (dbus_dict_set_string),
10228 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10229 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10230 (dbus_dict_set_string_array), (_dbus_dict_test):
10231 * dbus/dbus-dict.h:
10232 Fix according to comments from Havoc.
10234 2003-03-06 Michael Meeks <michael@server.home>
10236 * configure.in: if we don't have kde-config, disable have_qt.
10238 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10240 * dbus/Makefile.am:
10243 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10244 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10245 (dbus_dict_remove), (dbus_dict_get_value_type),
10246 (dbus_dict_get_keys), (dbus_dict_put_boolean),
10247 (dbus_dict_put_int32), (dbus_dict_put_uint32),
10248 (dbus_dict_put_double), (dbus_dict_put_string),
10249 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10250 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10251 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10252 (dbus_dict_get_int32), (dbus_dict_get_uint32),
10253 (dbus_dict_get_double), (dbus_dict_get_string),
10254 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10255 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10256 (dbus_dict_get_string_array), (_dbus_dict_test):
10257 * dbus/dbus-dict.h:
10258 Add DBusDict implementation
10260 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10261 * dbus/dbus-test.h:
10262 Add _dbus_dict_test
10264 2003-03-04 Havoc Pennington <hp@pobox.com>
10266 * test/data/auth/*: adapt to changes
10268 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10269 USERID_BASE64 and change USERNAME_BASE64 to put in username not
10272 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10273 more stuff from being in a context name, to make the protocol
10274 simpler to deal with
10276 * dbus/dbus-errors.c (dbus_error_has_name): new function
10277 (dbus_error_is_set): new function
10279 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10280 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10282 * dbus/dbus-connection.c (dbus_connection_flush): also read
10283 messages during a flush operation
10285 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10287 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10289 * configure.in: Check for gethostbyname on Solaris.
10291 * dbus/dbus-transport.c: (_dbus_transport_open):
10292 Remove duplicate "tcp" entry.
10294 * doc/dbus-specification.sgml:
10295 Clarify some things.
10297 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10299 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10300 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10301 (_dbus_keyring_test):
10302 * dbus/dbus-md5.c: (_dbus_md5_compute):
10303 * dbus/dbus-sha.c: (_dbus_sha_compute):
10306 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10308 * README: Add some things.
10310 2003-03-04 Anders Carlsson <andersca@codefactory.se>
10312 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10313 after case DBUS_TYPE_BOOELAN.
10315 2003-03-02 Havoc Pennington <hp@pobox.com>
10317 * test/break-loader.c (randomly_set_extreme_ints): add test that
10318 sets really huge and small integers
10320 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10321 that length of boolean array fits in the string, and that
10322 string has room for boolean value in single-bool case.
10324 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10325 optional value to "ALIGN" command which is what to fill the
10328 * test/data/valid-messages/no-padding.message: add regression
10329 test for the message padding problem
10331 2003-03-02 Havoc Pennington <hp@pobox.com>
10333 * dbus/dbus-message.c (decode_header_data): fix to always init
10334 message_padding, from Benjamin Dauvergne
10336 2003-03-02 Havoc Pennington <hp@pobox.com>
10338 * configure.in: 0.5
10342 2003-03-01 Joe Shaw <joe@assbarn.com>
10344 * configure.in: Check for "struct cmsgcred" and try to access its
10345 members for BSD-like unices.
10347 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10348 _dbus_read_credentials_unix_socket().
10349 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10350 read() for reading the credential byte off the unix socket. Use
10351 struct cmsgcred on systems that support it.
10353 2003-02-27 Alexander Larsson <alexl@redhat.com>
10355 * glib/Makefile.am:
10357 Make gthreads-2.0 dependency optional. Don't build thread test if
10360 2003-02-27 Havoc Pennington <hp@pobox.com>
10362 * dbus/dbus-connection.c
10363 (dbus_connection_send_message_with_reply_and_block): fix doh!
10364 doh! doh! bug that resulted in never removing a reply from the
10365 queue, no wonder we called get_reply_serial so much ;-)
10367 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10368 and client serial instead of demarshaling them every time
10370 2003-02-27 Havoc Pennington <hp@pobox.com>
10372 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10373 more inlined, using dbus-string-private.h, speeds things up
10376 * dbus/dbus-string.c (_dbus_string_free): apply align offset
10377 when freeing the string
10378 (_dbus_string_steal_data): fix for align offset
10379 (undo_alignment): new function
10381 2003-02-26 Havoc Pennington <hp@redhat.com>
10383 All kinds of audit fixes from Owen, plus initial attempt to
10384 handle unaligned memory returned from malloc.
10386 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10387 leave room for align_offset and nul byte
10388 (fixup_alignment): function to track an align_offset and
10389 ensure real->str is aligned
10390 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10391 to allow a nul byte plus align offset
10392 (_dbus_string_lock): fix overflow issue
10393 (_dbus_string_init_const_len): add assertions on sanity of len,
10394 assign allocated to be ALLOCATION_PADDING larger than len
10395 (set_length): fixup the overflow handling
10396 (_dbus_string_get_data_len): fix overflow in assertion
10397 (open_gap): detect overflow in size of gap to be opened
10398 (_dbus_string_lengthen): add overflow check
10399 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10400 (_dbus_string_append): add overflow check
10401 (_dbus_string_append_unichar): overflow
10402 (_dbus_string_delete): fix overflow in assertion
10403 (_dbus_string_copy_len): overflow in assertion
10404 (_dbus_string_replace_len): overflows in assertions
10405 (_dbus_string_find): change to implement in terms of
10406 _dbus_string_find_to
10407 (_dbus_string_find_to): assorted fixage
10408 (_dbus_string_equal_c_str): assert c_str != NULL,
10409 fix logic so the function works
10410 (_dbus_string_ends_with_c_str): fix overflow thingy
10411 (_dbus_string_base64_encode): overflow fix
10412 (_dbus_string_validate_ascii): overflow
10413 (_dbus_string_validate_nul): overflow
10415 2003-02-26 Havoc Pennington <hp@redhat.com>
10417 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10419 2003-02-26 Alexander Larsson <alexl@redhat.com>
10422 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10424 * dbus/dbus-connection.c:
10425 * dbus/dbus-connection.h:
10426 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10427 Add dbus_connection_set_wakeup_main_function and use it when queueing
10428 incoming and outgoing messages.
10431 * dbus/dbus-dataslot.c:
10432 Threadsafe usage of DBusDataSlotAllocator
10434 * dbus/dbus-message.c: (dbus_message_get_args_iter):
10437 * dbus/dbus-server-unix.c:
10440 * glib/dbus-gmain.c:
10441 Implement the new wakeup functions for glib.
10443 * glib/Makefile.am:
10444 * glib/test-thread-client.c:
10445 * glib/test-thread-server.c:
10446 * glib/test-thread.h:
10447 Initial cut at some thread test code. Not really done yet.
10449 2003-02-26 Havoc Pennington <hp@pobox.com>
10451 * dbus/dbus-connection.c
10452 (dbus_connection_send_message_with_reply_and_block): fix crash
10453 where we ref'd the outgoing message instead of the returned reply
10455 * dbus/dbus-transport-unix.c (do_authentication): check read watch
10456 at the end of this function, so if we didn't need to read for
10457 authentication, we reinstall it for receiving messages
10459 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10460 a NULL sender for peer-to-peer case
10462 * dbus/dbus-transport-unix.c (check_read_watch): handle
10463 !authenticated case correctly
10465 * glib/dbus-gmain.c: add support for DBusServer
10467 * dbus/dbus-server.c: add data slot support
10469 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10470 return values and handle errors
10472 * dbus/dbus-dataslot.c: factor out the data slot stuff from
10475 * Doxyfile.in (INPUT): add glib subdir
10477 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10478 setup_with_g_main instead of hookup_with_g_main; write docs
10480 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10482 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10483 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10484 * dbus/dbus-message.c: (dbus_message_append_boolean),
10485 (dbus_message_append_boolean_array),
10486 (dbus_message_get_args_valist), (_dbus_message_test):
10487 * dbus/dbus-message.h:
10488 * doc/dbus-specification.sgml:
10489 Various fixes as pointed out by Havoc.
10491 * test/data/invalid-messages/bad-boolean-array.message:
10492 * test/data/invalid-messages/bad-boolean.message:
10493 Add invalid boolean value test cases.
10495 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10497 * dbus/dbus-internals.c: (_dbus_type_to_string):
10498 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10499 (_dbus_marshal_validate_arg):
10500 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10501 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10502 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10503 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10504 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10505 (dbus_message_iter_get_double),
10506 (dbus_message_iter_get_boolean_array), (message_iter_test):
10507 * dbus/dbus-message.h:
10508 * dbus/dbus-protocol.h:
10509 * doc/dbus-specification.sgml:
10510 * test/data/valid-messages/lots-of-arguments.message:
10511 Add support for boolean and boolean array types.
10513 2003-02-23 Havoc Pennington <hp@pobox.com>
10515 * dbus/dbus-keyring.c: finish most of this implementation and
10518 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10519 these barf if the error isn't cleared to NULL
10521 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10522 (_dbus_create_directory): new function
10524 * dbus/dbus-errors.c (dbus_set_error): fix warning
10526 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10527 (_dbus_string_hex_decode): new function
10528 (test_hex_roundtrip): test code
10530 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10532 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10534 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10535 the save-to-temp/rename trick to atomically write the new file
10536 (_dbus_string_parse_uint): new function
10538 2003-02-22 Havoc Pennington <hp@pobox.com>
10540 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10542 2003-02-22 Havoc Pennington <hp@pobox.com>
10544 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10545 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10547 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10549 * dbus/test/data/sha-1: add US government test suite for SHA-1
10551 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10553 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10554 Make string arrays NULL-terminated.
10556 * dbus/dbus-memory.c: (dbus_free_string_array):
10557 * dbus/dbus-memory.h:
10558 New function for freeing NULL-terminated string arrays.
10560 * dbus/dbus-message-builder.c: (append_quoted_string),
10561 (_dbus_message_data_load):
10562 Add support for array types.
10564 * dbus/dbus-message.c: (check_message_handling):
10565 Add more types as test cases.
10567 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10568 (_dbus_string_parse_double):
10569 Add the start offset to the end offset.
10571 * test/data/valid-messages/lots-of-arguments.message:
10572 New test message with lots of arguments.
10574 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10576 * dbus/dbus-message.c: (dbus_message_append_nil),
10577 (dbus_message_append_int32), (dbus_message_append_uint32),
10578 (dbus_message_append_double), (dbus_message_append_string),
10579 (dbus_message_append_int32_array),
10580 (dbus_message_append_uint32_array),
10581 (dbus_message_append_double_array),
10582 (dbus_message_append_byte_array),
10583 (dbus_message_append_string_array):
10584 Fix all out-of-memory handling in these functions.
10586 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10588 * dbus/dbus-message.c: (dbus_message_append_nil):
10591 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10593 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10594 (dbus_message_append_nil), (dbus_message_append_int32_array),
10595 (dbus_message_append_uint32_array),
10596 (dbus_message_append_double_array),
10597 (dbus_message_append_byte_array),
10598 (dbus_message_append_string_array), (dbus_message_get_args_valist),
10599 (dbus_message_iter_get_int32_array),
10600 (dbus_message_iter_get_uint32_array),
10601 (dbus_message_iter_get_double_array),
10602 (dbus_message_iter_get_byte_array),
10603 (dbus_message_iter_get_string_array):
10605 * dbus/dbus-message.h:
10606 Add functions for appending and getting arrays.
10608 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10610 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10611 element size at least 8 bytes, fixes mempool tests on
10614 2003-02-20 Alexander Larsson <alexl@redhat.com>
10616 * dbus/dbus-transport-unix.c (unix_do_iteration):
10617 Unlock the connection mutex during a blocking select call.
10618 Add todo about how we need a way to wake up the select.
10620 * dbus/dbus-connection-internal.h:
10621 * dbus/dbus-connection.c:
10622 Add _dbus_connection_lock and _dbus_connection_unlock.
10624 2003-02-19 Havoc Pennington <hp@pobox.com>
10626 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10627 Doxyfile.in, not Doxyfile
10629 * dbus/dbus-keyring.c: do some hacking on this
10631 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10633 * dbus/dbus-errors.c (dbus_set_error_const): do not call
10635 (dbus_set_error): remove dbus_error_init, check for message ==
10636 NULL *before* we sprintf into it, and add @todo about including
10637 system headers in this file
10639 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10641 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10643 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10644 get various bits of user information based on either username
10646 (_dbus_homedir_from_username): new function
10648 2003-02-19 Anders Carlsson <andersca@codefactory.se>
10651 Add check for nonposix getpwnam_r
10653 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10654 Align the pool element size to a sizeof (void *) boundary.
10656 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10657 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10658 General Solaris fixes.
10660 * test/data/valid-messages/simplest-manual.message:
10661 Explicitly state that we want little-endian packing.
10663 2003-02-19 Mikael Hallendal <micke@codefactory.se>
10665 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10667 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10668 Added to create a transport connecting using a tcp/ip socket.
10670 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10671 to a tcp socket at given host and port.
10672 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10675 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10677 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10678 Added to create a server listening on a TCP/IP socket.
10680 2003-02-19 Havoc Pennington <hp@pobox.com>
10682 Throughout: mop up all the Doxygen warnings and undocumented
10685 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10686 to search any paths.
10688 * dbus/dbus-threads.c: move global mutex initializers to
10689 dbus-internals.h, multiple prototypes was confusing doxygen
10690 besides being kind of ugly
10692 * Doxyfile (PREDEFINED): have Doxygen define
10693 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10694 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10695 (do not abuse the feature! it's for stuff like the autogenerated
10696 macros in dbus-md5.c, not just for things you don't feel like
10699 2003-02-18 Havoc Pennington <hp@pobox.com>
10701 * dbus/dbus-string.c (_dbus_string_zero): new function
10703 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10704 wrap it in some dbus-friendly API
10706 * dbus/dbus-types.h: add 16-bit types
10708 2003-02-18 Joe Shaw <joe@assbarn.com>
10710 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10711 credentials from our currently running process.
10712 (get_word): Fix a buglet where we were copying the entire length
10713 instead of relative to our position.
10715 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10716 keys on the stack... it's 640k of data.
10718 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10719 read the credentials byte off the socket, even if we don't have
10721 (_dbus_poll): Implement poll() using select() for systems which
10724 * glib/test-dbus-glib.c (main): Print out an error if no
10725 parameters are given.
10727 * test/data/auth/fallback.auth-script: Added. Tests that a client
10728 can fallback to a secondary auth mechanism if the first fails.
10730 2003-02-18 Havoc Pennington <hp@pobox.com>
10732 * AUTHORS: add Alex
10734 2003-02-17 Havoc Pennington <hp@pobox.com>
10736 * doc/dbus-specification.sgml: lots of cosmetic
10737 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10738 env variable to DBUS_BUS_ADDRESS, s/client/application/,
10739 s/server/bus/ (except in authentication section). Add a section
10740 "Message Bus Message Routing"
10742 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
10748 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10750 * doc/dbus-specification.sgml:
10751 Specification updates.
10753 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10755 * bus/activation.c: (bus_activation_init), (child_setup),
10756 (bus_activation_activate_service):
10757 * bus/activation.h:
10758 * bus/main.c: (main):
10759 Set DBUS_ADDRESS environment variable.
10761 * dbus/dbus-errors.c: (dbus_set_error):
10762 Don't use va_copy since that's a C99 feature.
10764 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10765 (_dbus_spawn_async):
10766 * dbus/dbus-sysdeps.h:
10767 Add child_setup_func to _dbus_spawn_async.
10769 * doc/dbus-specification.sgml:
10770 Update specification.
10772 * test/spawn-test.c: (setup_func), (main):
10775 2003-02-17 Alexander Larsson <alexl@redhat.com>
10777 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10780 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10784 * doc/dbus-test-plan.sgml:
10785 Add test plan document.
10787 * test/Makefile.am:
10790 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10792 * dbus/dbus-message.c: (decode_header_data),
10793 (_dbus_message_loader_return_buffer):
10794 Set the header padding amount when loading a message.
10796 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10798 * bus/dispatch.c: (send_one_message):
10799 Only send broadcast messages to registered connections.
10801 * dbus/dbus-message.c: (dbus_message_name_is):
10802 * dbus/dbus-message.h:
10803 New convenience function.
10805 * dbus/dbus-transport-debug.c: (do_reading):
10806 Only dispatch one message per run.
10808 * test/Makefile.am:
10809 * test/bus-test.c: (new_connection_callback), (die),
10810 (test_hello_client1_handler), (test_hello_client2_handler),
10811 (test_hello_replies), (main):
10813 * test/bus-test-loop.[ch]:
10816 2003-02-16 Havoc Pennington <hp@pobox.com>
10818 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10819 backward conditional
10821 2003-02-16 Alexander Larsson <alexl@redhat.com>
10823 * dbus/dbus-connection.c:
10824 Implement sent_message_with_reply. (with_reply_and block is still
10826 Made dispatch_message not lose message if OOM.
10828 * dbus/dbus-errors.h:
10829 Add NoReply error (for reply timeouts).
10831 2003-02-16 Alexander Larsson <alexl@redhat.com>
10833 * dbus/dbus-hash.c (_dbus_hash_table_unref):
10834 Actually free keys and values when destroying hashtable.
10836 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10838 * dbus/dbus-auth.c: (client_try_next_mechanism):
10841 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10842 Return TRUE if there's no thread implementation around.
10844 * glib/dbus-gmain.c: (free_source),
10845 (dbus_connection_hookup_with_g_main):
10846 Make sure to remove the GSource when the connection is finalized.
10848 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10850 * bus/dispatch.c: (bus_dispatch_message_handler):
10851 * dbus/dbus-errors.h:
10852 Return an error if someone tries to send a message to a service
10853 that doesn't exist.
10855 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10857 * bus/activation.c: (load_directory), (bus_activation_init),
10858 (bus_activation_activate_service):
10859 * bus/activation.h:
10861 (bus_driver_handle_activate_service), (bus_driver_handle_message):
10862 More work on the activation handling.
10864 * dbus/dbus-errors.h:
10865 Add some error messages
10867 * dbus/dbus-message.c: (dbus_message_new_error_reply):
10868 * dbus/dbus-message.h:
10869 New function that creates an error message.
10871 * dbus/dbus-protocol.h:
10872 Add ACTIVATE_SERVER message.
10874 * dbus/dbus-server-unix.c: (unix_handle_watch),
10875 (_dbus_server_new_for_domain_socket):
10876 Call _dbus_fd_set_close_on_exec.
10878 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
10879 (_dbus_spawn_async), (_dbus_disable_sigpipe),
10880 (_dbus_fd_set_close_on_exec):
10881 * dbus/dbus-sysdeps.h:
10882 Add _dbus_fd_set_close_on exec function. Also add function that checks
10883 that all open fds are set to close-on-exec and warns otherwise.
10885 * dbus/dbus-transport-unix.c:
10886 (_dbus_transport_new_for_domain_socket):
10887 Call _dbus_fd_set_close_on_exec.
10889 2003-02-16 Havoc Pennington <hp@pobox.com>
10891 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
10892 allow people to avoid setting SIGPIPE to SIG_IGN
10893 (_dbus_connection_new_for_transport): disable SIGPIPE unless
10894 we've been asked not to
10896 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10898 * dbus/dbus-list.c: (_dbus_list_append_link),
10899 (_dbus_list_prepend_link):
10900 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
10904 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10907 * bus/activation.c: (bus_activation_entry_free),
10908 (add_desktop_file_entry), (load_directory), (bus_activation_init):
10909 * bus/activation.h:
10910 * bus/main.c: (main):
10911 Add simple activation support, doesn't work yet though.
10913 2003-02-15 Zack Rusin <zack@kde.org>
10915 * qt/dbus-qthread.cpp: small casting fix
10917 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10919 * dbus/dbus-errors.c: (dbus_set_error):
10920 * dbus/dbus-errors.h:
10921 Add a few errors and make dbus_set_error void.
10923 * dbus/dbus-sysdeps.c:
10924 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
10925 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
10926 * dbus/dbus-sysdeps.h:
10927 Add _dbus_spawn_async.
10929 * test/spawn-test.c: (main):
10930 Test for _dbus_spawn_async.
10932 2003-02-15 Anders Carlsson <andersca@codefactory.se>
10934 * dbus/dbus-internals.h:
10935 Fix build without tests.
10937 * dbus/dbus-list.c: (alloc_link):
10938 Fix a segfault when a malloc fails.
10940 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
10941 (dbus_malloc0), (dbus_realloc):
10942 Add support for malloc debugging.
10944 2003-02-15 Alexander Larsson <alexl@redhat.com>
10946 * dbus/dbus-threads.c:
10947 * dbus/dbus-threads.h:
10948 Add condvars. Remove static mutext from API.
10949 Implement static mutexes by initializing them from threads_init.
10951 * glib/dbus-gthread.c:
10952 * qt/dbus-qthread.cpp:
10953 Update with the thread api changes.
10956 * dbus/dbus-list.c:
10957 * dbus/dbus-list.h:
10958 Turn StaticMutex into normal mutex + init function.
10959 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
10960 _dbus_list_append_link, _dbus_list_prepend_link
10963 * dbus/dbus-sysdeps.c:
10964 * dbus/dbus-sysdeps.h:
10965 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
10966 _dbus_atomic_dec. Only slow fallback implementation at the moment.
10968 * dbus/dbus-protocol.h:
10969 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
10971 * dbus/dbus-message.c:
10972 Make ref/unref atomic.
10975 * dbus/dbus-connection-internal.h:
10976 * dbus/dbus-connection.c:
10977 * dbus/dbus-connection.h:
10979 Change _peek to _borrow,_return & _steal_borrowed.
10980 Change disconnect callback to event.
10981 Make dbus_connection_dispatch_messages reentrant.
10983 * dbus/dbus-transport.c:
10984 Don't ref the connection on calls to the transport
10987 * dbus/dbus-message-handler.c:
10990 * glib/dbus-gmain.c:
10991 Don't use peek_message anymore
10993 * test/Makefile.am:
10994 * test/debug-thread.c:
10995 * test/debug-thread.h:
10996 Simple thread implementation that asserts() on deadlocks in
10997 single-threaded code.
11000 (main) Call debug_threads_init.
11003 Use disconnect message instead of disconnect callback.
11005 * bus/connection.c:
11006 * bus/connection.h:
11007 Don't call dbus_connection_set_disconnect_function. Instead export
11008 bus_connection_disconnect.
11011 Call bus_connection_disconnect when we get a disconnected message.
11013 2003-02-15 Havoc Pennington <hp@pobox.com>
11015 * dbus/dbus-message.c (dbus_message_new): fool around with the
11018 2003-02-14 Havoc Pennington <hp@pobox.com>
11020 * dbus/dbus-mempool.c: fail if the debug functions so indicate
11022 * dbus/dbus-memory.c: fail if the debug functions indicate we
11025 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11026 (_dbus_decrement_fail_alloc_counter): debug functions to
11027 simulate memory allocation failures
11029 2003-02-14 Havoc Pennington <hp@pobox.com>
11031 * dbus/dbus-errors.h (struct DBusError): add a word of padding
11034 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11036 * bus/driver.c: (bus_driver_handle_hello):
11038 * bus/services.c: (bus_service_lookup):
11039 Reorder message sending so we get a more sane order.
11041 * test/bus-test.c: (message_handler):
11044 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11046 * bus/driver.c: (bus_driver_send_service_deleted),
11047 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11048 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11049 (bus_driver_send_welcome_message),
11050 (bus_driver_handle_list_services),
11051 (bus_driver_handle_acquire_service),
11052 (bus_driver_handle_service_exists):
11053 * dbus/dbus-bus.c: (dbus_bus_register_client),
11054 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11055 * dbus/dbus-errors.c: (dbus_result_to_string):
11056 * dbus/dbus-errors.h:
11057 * dbus/dbus-message.c: (dbus_message_append_args),
11058 (dbus_message_append_args_valist), (dbus_message_get_args),
11059 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11060 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11061 (dbus_message_iter_get_byte_array),
11062 (dbus_message_iter_get_string_array), (message_iter_test),
11063 (check_message_handling), (_dbus_message_test):
11064 * dbus/dbus-message.h:
11065 * test/bus-test.c: (main):
11066 Change fields to arguments in messages, so that they won't be
11067 confused with header fields.
11069 * glib/test-dbus-glib.c: (main):
11070 Remove append_fields from hello message.
11072 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11074 * dbus/dbus-errors.c:
11075 * dbus/dbus-message.c:
11076 * dbus/dbus-string.c:
11077 Documentation fixes.
11079 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11081 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11083 Implement support for timeouts in dbus-glib.
11085 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11087 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11088 * dbus/dbus-message.c: (process_test_subdir):
11089 * test/break-loader.c: (find_breaks_based_on):
11090 Plug some memory leaks.
11092 2003-02-13 Richard Hult <rhult@codefactory.se>
11094 * bus/main.c: Fix build.
11096 * dbus/dbus-errors.h:
11097 * dbus/dbus-errors.c: Fix copyright for Anders.
11099 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11104 * bus/connection.c: (bus_connection_foreach):
11107 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11108 (unescape_string), (new_section), (parse_section_start),
11109 (parse_key_value), (report_error), (bus_desktop_file_load),
11110 (bus_desktop_file_get_string):
11111 * bus/desktop-file.h:
11112 Use DBusError for error reporting.
11114 * bus/dispatch.c: (send_one_message),
11115 (bus_dispatch_message_handler):
11116 * bus/driver.c: (bus_driver_send_service_deleted),
11117 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11118 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11119 (bus_driver_send_welcome_message),
11120 (bus_driver_handle_list_services),
11121 (bus_driver_handle_acquire_service),
11122 (bus_driver_handle_service_exists):
11123 * bus/loop.c: (bus_loop_run):
11125 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11127 * bus/utils.c: (bus_wait_for_memory):
11129 New files with general utility functions.
11131 * dbus/dbus-internals.h:
11132 Remove _DBUS_HANDLE_OOM.
11134 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11136 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11137 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11138 * dbus/dbus-errors.h:
11139 Add DBusError structure.
11141 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11143 * test/data/valid-messages/standard-acquire-service.message:
11144 * test/data/valid-messages/standard-hello.message:
11145 * test/data/valid-messages/standard-list-services.message:
11146 * test/data/valid-messages/standard-service-exists.message:
11147 Add some standard messages.
11149 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11151 * bus/driver.c: (bus_driver_send_welcome_message),
11152 (bus_driver_handle_list_services),
11153 (bus_driver_handle_acquire_service),
11154 (bus_driver_handle_service_exists), (bus_driver_handle_message):
11155 Update for API changes in libdbus.
11157 * dbus/dbus-message.c: (dbus_message_new_reply):
11158 * dbus/dbus-message.h:
11159 Remove the name argument. The spec states that replies shouldn't
11162 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11164 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11165 (report_error), (bus_desktop_file_load), (lookup_section),
11166 (lookup_line), (bus_desktop_file_get_raw),
11167 (bus_desktop_file_get_string):
11168 * bus/desktop-file.h:
11169 Some fixes, and new functions for getting a key value from a section.
11171 2003-02-13 Havoc Pennington <hp@pobox.com>
11173 * test/data/auth/fail-after-n-attempts.auth-script: new test
11175 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11178 2003-02-13 Havoc Pennington <hp@pobox.com>
11180 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11181 dbus_credentials_match were backward
11183 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11184 NO_CREDENTIALS and ROOT_CREDENTIALS
11186 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11187 into here. Never process more commands after we've reached an
11188 end state; store further data as unused bytes.
11190 * test/data/auth/*: add more auth tests
11192 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11193 command to match exact string and EXPECT_UNUSED to match unused
11196 * test/Makefile.am (dist-hook): fix to dist all the test stuff
11198 2003-02-12 Havoc Pennington <hp@pobox.com>
11200 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11201 \r off of popped lines
11203 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11206 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11209 2003-02-12 Havoc Pennington <hp@pobox.com>
11211 * dbus/Makefile.am: remove break-loader from the build, since it
11214 * configure.in: add --enable-gcov to turn on coverage profiling
11215 flags and disable optimization
11217 2003-02-10 Havoc Pennington <hp@pobox.com>
11219 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11220 initial cut at test framework for DBusAuth from laptop.
11221 Doesn't quite work yet but it compiles and I need to get
11222 it off the 266mhz laptop. ;-)
11224 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11225 fix a memleak in error case
11227 2003-02-12 Anders Carlsson <andersca@codefactory.se>
11230 * bus/desktop-file.c:
11231 * bus/desktop-file.h:
11232 Add a desktop file parser.
11234 2003-02-11 Zack Rusin <zack@kde.org>
11236 * qt/message.[h|cpp]: sample implementation
11237 of the KDE wrapper for DBusMessage
11239 2003-02-09 Zack Rusin <zack@kde.org>
11241 * test/bus-test.c: make_it_compile
11242 * doc/dbus-specification.sgml: minimal semantic fix
11244 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11250 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11252 * dbus/Makefile.am:
11253 * dbus/dbus-break-loader.c:
11254 * test/Makefile.am:
11255 * test/break-loader.c:
11256 Move dbus-break-loader to test/ and rename it to break-loader.
11258 2003-02-02 Havoc Pennington <hp@pobox.com>
11260 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11261 for code to manage cookies in your home directory
11263 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11265 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11266 to authenticate, then disconnect the client.
11268 2003-02-03 Alexander Larsson <alexl@redhat.com>
11270 * dbus/dbus-message.c (dbus_message_append_fields):
11273 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11275 * doc/dbus-specification.sgml:
11276 Update address format section.
11278 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11280 * test/Makefile.am:
11281 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11282 (message_handler), (new_connection_callback), (loop_quit),
11283 (loop_run), (main):
11286 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11288 * bus/driver.c: (bus_driver_handle_service_exists):
11289 Simplify the code a bit.
11291 * dbus/dbus-bus.c: (dbus_bus_service_exists):
11294 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11297 Add libdbus-daemon.la and link to it.
11299 2003-02-01 James Willcox <jwillcox@gnome.org>
11301 * bus/driver.c: (bus_driver_handle_own_service):
11302 Actually include the service reply code in the message.
11304 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11306 * bus/driver.c: (bus_driver_handle_service_exists):
11307 Don't unref the incoming message.
11309 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11311 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11313 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11315 * dbus/dbus-server.c: (dbus_server_listen):
11316 * dbus/dbus-transport.c: (_dbus_transport_open):
11317 ifdef out the calls to the debug transport and server.
11319 2003-02-02 Alexander Larsson <alexl@redhat.com>
11321 * dbus/dbus-watch.c (dbus_watch_get_flags):
11322 Add note in the docs that ERROR or HANGUP won't be returned
11323 and are assumed always on.
11325 * glib/dbus-gmain.c (add_watch):
11326 Always add IO_ERR | IO_HUP
11328 * dbus/dbus-message.h:
11329 Add semicolon after dbus_message_iter_get_string_array().
11330 Makes qt code build again
11332 2003-02-01 Anders Carlsson <andersca@codefactory.se>
11334 * bus/driver.c: (create_unique_client_name),
11335 (bus_driver_handle_hello):
11336 Don't take a name, just use a numeric id to identify
11339 * dbus/Makefile.am:
11340 * dbus/dbus-bus.c: (dbus_bus_register_client),
11341 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11343 Add new convenience functions for communicating with the bus.
11345 * dbus/dbus-message.h:
11347 * dbus/dbus-protocol.h:
11350 2003-02-01 Alexander Larsson <alexl@redhat.com>
11352 * dbus/dbus-message.c (dbus_message_append_fields):
11353 Add some more doc comments.
11355 2003-02-01 Havoc Pennington <hp@pobox.com>
11357 * dbus/dbus-break-loader.c (randomly_modify_length): change
11358 a 4-byte value in the message as if it were a length
11360 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11361 execute bit on saved files
11363 2003-02-01 Havoc Pennington <hp@pobox.com>
11365 * dbus/dbus-break-loader.c (main): new program to find messages
11366 that break the loader.
11368 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11369 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11371 * dbus/dbus-string.c (_dbus_string_set_byte): new
11373 2003-01-31 Havoc Pennington <hp@pobox.com>
11375 * dbus/dbus-message.c: refactor the test code to be more general,
11376 in preparation for writing a "randomly permute test cases to
11377 try to break the loader" program.
11379 2003-01-31 Havoc Pennington <hp@pobox.com>
11381 * doc/dbus-specification.sgml: work on the specification
11383 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11384 the protocol version of the message.
11386 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11387 no longer specifies that.
11388 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11391 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11392 "break" for DBUS_TYPE_NIL, remove @todo
11394 2003-01-31 Havoc Pennington <hp@pobox.com>
11396 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11397 just set_is_error/get_is_error as this is a commonly-used
11398 function, and write docs.
11400 2003-01-31 Anders Carlsson <andersca@codefactory.se>
11402 * dbus/dbus-address.c: (dbus_address_entry_free):
11403 Free key and value lists.
11405 * dbus/dbus-internals.c: (_dbus_type_to_string):
11406 Add the types we didn't have.
11408 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11409 (_dbus_marshal_validate_arg):
11412 * dbus/dbus-message.c: (dbus_message_set_sender):
11413 Remove todo about being able to set sender to NULL.
11415 (dbus_message_set_is_error_reply),
11416 (dbus_message_get_is_error_reply):
11417 * dbus/dbus-message.h:
11420 * dbus/dbus-protocol.h:
11421 Add error reply flag.
11423 * test/data/valid-messages/opposite-endian.message:
11424 Add NIL type to test.
11426 2003-01-31 Havoc Pennington <hp@pobox.com>
11428 * doc/dbus-specification.sgml: fully specify the header. Add
11429 flags and major protocol version, and change header/body len to
11432 * dbus/dbus-message-builder.c (append_saved_length): append length
11435 * dbus/dbus-message.c (dbus_message_create_header): change header
11436 length and body length to unsigned. Add the new fields from the
11438 (_dbus_message_loader_return_buffer): unsigned header/body len
11440 2003-01-30 Havoc Pennington <hp@pobox.com>
11442 * dbus/dbus-auth.c: rework to use only REJECTED, no
11445 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11446 use REJECTED, suggested by Mark McLoughlin
11448 2003-01-30 Havoc Pennington <hp@pobox.com>
11450 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11451 a better way to report errors here. e.g. "unix address lacks
11452 path" or something. also "no such file" when the path doesn't
11455 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11457 (dbus_parse_address): add @todo about documenting address format,
11458 and allowing , and ; to be escaped
11460 2003-01-30 Anders Carlsson <andersca@codefactory.se>
11462 * dbus/Makefile.am:
11463 Add dbus-address.[ch]
11465 * dbus/dbus-address.c: (dbus_address_entry_free),
11466 (dbus_address_entries_free), (create_entry),
11467 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11468 (dbus_parse_address), (_dbus_address_test):
11469 * dbus/dbus-address.h:
11470 New files for dealing with address parsing.
11472 * dbus/dbus-connection.c:
11473 Document timeout functions.
11475 * dbus/dbus-message.c:
11476 Document dbus_message_new_from_message.
11478 * dbus/dbus-server-debug.c:
11481 * dbus/dbus-server.c: (dbus_server_listen):
11482 Parse address and use correct server implementation.
11484 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11485 * dbus/dbus-string.h:
11486 New function with test.
11488 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11489 * dbus/dbus-test.h:
11492 * dbus/dbus-transport-debug.c:
11495 * dbus/dbus-transport.c: (_dbus_transport_open):
11496 Parse address and use correct transport implementation.
11498 2003-01-30 Havoc Pennington <hp@pobox.com>
11500 * dbus/dbus-message.c: use message->byte_order instead of
11501 DBUS_COMPILER_BYTE_ORDER throughout.
11502 (dbus_message_create_header): pad header to align the
11503 start of the body of the message to 8-byte boundary
11505 * dbus/dbus-marshal.h: make all the demarshalers take const
11506 DBusString arguments.
11508 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11509 validate message args here, so we don't have to do slow validation
11510 later, and so we catch bad messages as they are incoming. Also add
11511 better checks on header_len and body_len. Also fill in
11512 message->byte_order
11514 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11515 implemented properly)
11516 (_dbus_string_validate_nul): new function to check all-nul
11518 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11519 get_arg_end_pos and remove all validation
11520 (_dbus_marshal_validate_arg): actually do validation here.
11522 2003-01-29 Havoc Pennington <hp@pobox.com>
11524 * dbus/dbus-message.c (check_message_handling): fix assertion
11525 failure on set_client_serial
11527 2003-01-28 Havoc Pennington <hp@pobox.com>
11529 * dbus/dbus-server-debug.c: Add doc section comments
11531 * dbus/dbus-transport-debug.c: add doc section comments
11533 2003-01-28 Havoc Pennington <hp@redhat.com>
11535 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11536 the reverse order from how I had it
11537 (_dbus_string_base64_encode): reverse encoding order. I was
11538 basically byteswapping everything during encoding.
11540 2003-01-28 Anders Carlsson <andersca@codefactory.se>
11542 * dbus/dbus-connection-internal.h:
11543 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11544 (_dbus_connection_remove_timeout):
11545 Add functions for adding and removing timeouts.
11547 * dbus/dbus-message.c: (dbus_message_new_from_message):
11548 Add new function that takes a message and creates an exact
11549 copy of it, but with the refcount set to 1.
11550 (check_message_handling):
11553 * dbus/dbus-server-protected.h:
11554 * dbus/dbus-server.c: (_dbus_server_init_base),
11555 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11556 (dbus_server_set_timeout_functions):
11557 (_dbus_server_remove_timeout):
11558 New functions so that a server can add and remove timeouts.
11560 (dbus_server_listen):
11561 Add commented out call to dbus_server_debug_new.
11563 * dbus/dbus-timeout.c: (_dbus_timeout_new):
11564 Actually set the handler, doh.
11566 * dbus/dbus-transport.c: (_dbus_transport_open):
11567 Add commented out call to dbus_transport_debug_client_new.
11569 * dbus/Makefile.am:
11570 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11572 2003-01-28 Havoc Pennington <hp@pobox.com>
11574 * dbus/dbus-message.c (check_message_handling): function to check
11575 on the loaded message, iterates over it etc.
11577 2003-01-28 Havoc Pennington <hp@pobox.com>
11579 * test/Makefile.am (dist-hook): fix make distdir
11581 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11583 2003-01-27 Havoc Pennington <hp@pobox.com>
11585 * dbus/dbus-mempool.c (time_for_size): replace printf with
11588 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11589 empty lines; fix the SAVE_LENGTH stuff to be
11590 START_LENGTH/END_LENGTH so it actually works; couple other
11593 * test/Makefile.am (dist-hook): add dist-hook for .message files
11595 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11596 can be constant or locked.
11597 (_dbus_string_free): allow freeing a const string as
11598 documented/intended
11600 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11602 * dbus/dbus-test-main.c (main): take an argument which is the
11603 directory containing test data
11605 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11606 argument to this and load all the messages in test/data/
11607 checking that they can be loaded or not loaded as appropriate.
11609 2003-01-27 Anders Carlsson <andersca@codefactory.se>
11611 * bus/dispatch.c: (bus_dispatch_message_handler):
11612 Dispatch messages sent to services.
11614 * bus/driver.c: (bus_driver_send_service_deleted),
11615 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11616 (bus_driver_send_service_acquired):
11617 Add helper functions for sending service related messages.
11619 (bus_driver_send_welcome_message):
11620 Send HELLO_REPLY instead of WELCOME.
11622 (bus_driver_handle_list_services):
11623 Send LIST_SERVICES_REPLY instead of SERVICES.
11625 (bus_driver_handle_own_service),
11626 (bus_driver_handle_service_exists):
11627 New message handlers.
11629 (bus_driver_handle_message):
11630 Invoke new message handlers.
11632 (bus_driver_remove_connection):
11633 Don't remove any services here since that's done automatically
11634 by bus_service_remove_owner now.
11637 New function signatures.
11639 * bus/services.c: (bus_service_add_owner):
11640 Send ServiceAcquired message if we're the only primary owner.
11642 (bus_service_remove_owner):
11643 Send ServiceAcquired/ServiceLost messages.
11645 (bus_service_set_prohibit_replacement),
11646 (bus_service_get_prohibit_replacement):
11647 Functions for setting prohibit replacement.
11649 (bus_service_has_owner):
11650 New function that checks if a connection is in the owner queue of
11654 Add new function signatures.
11656 * dbus/dbus-list.c: (_dbus_list_test):
11657 Add tests for _dbus_list_remove_last and traversing the list backwards.
11659 * dbus/dbus-list.h:
11660 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11661 go any further, so return NULL then.
11663 * dbus/dbus-protocol.h:
11664 Add new messages, service flags and service replies.
11666 2003-01-26 Havoc Pennington <hp@pobox.com>
11668 * dbus/dbus-message-builder.c: implement, completely untested.
11670 * test/data/*: add data to be used in testing.
11671 ".message" files are our simple loadable text format.
11672 ".message-raw" will be binary dumps of messages.
11674 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11676 2003-01-26 Havoc Pennington <hp@pobox.com>
11678 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11680 * dbus/dbus-errors.c (dbus_result_to_string): add
11683 * dbus/dbus-message-builder.c: new file, will contain code to load
11684 up messages from files. Not implemented yet.
11686 2003-01-26 Havoc Pennington <hp@pobox.com>
11688 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11689 the sender by setting to NULL
11691 2003-01-26 Havoc Pennington <hp@pobox.com>
11693 The unit tests pass, but otherwise untested. If it breaks, the
11694 tests should have been better. ;-)
11696 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11699 * dbus/dbus-message.c: redo everything so we maintain
11700 message->header as the only copy of the various fields.
11701 This avoids the possibility of out-of-memory in some cases,
11702 for example dbus_message_lock() can't run out of memory anymore,
11703 and avoids extra copying. Figured I may as well go ahead and do
11704 this since it was busted for dbus_message_lock to not return
11705 failure on OOM, and dbus_message_write_header was totally
11706 unchecked for OOM. Also fixed some random other bugs.
11708 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11709 that strings are nul-terminated. Also, end_pos can be equal
11710 to string length just not greater than, I think.
11711 (_dbus_marshal_set_int32): new function
11712 (_dbus_marshal_set_uint32): new function
11713 (_dbus_marshal_set_string): new function
11715 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11716 a warning, init timeout_list to NULL
11717 (dbus_connection_send_message): don't use uninitialized variable
11720 * dbus/dbus-string.c (_dbus_string_replace_len): new function
11722 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11724 * bus/driver.c: (bus_driver_handle_hello),
11725 (bus_driver_send_welcome_message):
11728 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11730 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11731 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11732 (dbus_connection_unref):
11733 * dbus/dbus-marshal.c: (_dbus_marshal_test):
11734 * dbus/dbus-message.c: (dbus_message_unref),
11737 (dbus_message_get_fields):
11738 Remove debugging printout.
11740 (_dbus_message_loader_return_buffer):
11741 Don't store the header string.
11743 (_dbus_message_test):
11746 2003-01-26 Richard Hult <rhult@codefactory.se>
11748 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11749 the file descriptor list, since it can change under us.
11751 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11753 * glib/dbus-gmain.c: (dbus_connection_prepare),
11754 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11755 (remove_watch), (dbus_connection_hookup_with_g_main):
11756 Rewrite the glib handling to use its own GSource instead of a
11757 GIOChannel so we can catch messages put in the queue while waiting
11760 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11763 * bus/connection.c: (connection_disconnect_handler),
11764 (connection_watch_callback), (bus_connection_setup):
11765 * bus/dispatch.c: (send_one_message),
11766 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11767 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11769 * bus/driver.c: (bus_driver_send_service_deleted),
11770 (bus_driver_send_service_created), (bus_driver_handle_hello),
11771 (bus_driver_send_welcome_message),
11772 (bus_driver_handle_list_services), (bus_driver_remove_connection),
11773 (bus_driver_handle_message):
11775 Refactor code, put the message dispatching in its own file. Use
11776 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11779 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11781 * dbus/dbus-internals.h:
11782 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11784 * dbus/dbus-message.c: (dbus_message_get_sender):
11785 * dbus/dbus-message.h:
11786 Implement dbus_message_get_sender.
11788 * dbus/dbus-protocol.h:
11789 Add message and service defines.
11791 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11793 * dbus/dbus-connection.c: (dbus_connection_send_message):
11794 * dbus/dbus-message-internal.h:
11795 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11796 (dbus_message_write_header):
11797 Remove _dbus_messag_unlock and don't set the client serial on a
11798 message if one already exists.
11800 2003-01-24 Havoc Pennington <hp@pobox.com>
11802 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11805 * bus/driver.c (bus_driver_handle_list_services): fix a leak
11808 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11810 * dbus/dbus-list.c: (alloc_link), (free_link):
11811 Use a memory pool for the links.
11813 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11815 * bus/connection.c: (bus_connection_foreach):
11816 * bus/connection.h:
11817 Add new bus_connection_foreach function.
11819 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11820 Add function that broadcasts a message to all clients.
11822 (bus_driver_send_service_created), (bus_driver_handle_hello),
11823 (bus_driver_send_welcome_message),
11824 (bus_driver_handle_list_services), (bus_driver_message_handler):
11825 Implement functions that take care of listing services, and notifying
11826 clients when new services are created.
11828 * bus/services.c: (bus_services_list):
11830 Add new function that returns an array of strings with the currently
11831 registered services.
11833 * glib/dbus-glib.h:
11834 * glib/dbus-gmain.c:
11835 Update copyright year.
11837 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11839 * dbus/dbus-connection.c: (dbus_connection_send_message):
11840 Unlock the message in case it was sent earlier.
11842 (dbus_connection_send_message_with_reply_and_block):
11843 Remove the reply message from the list.
11845 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
11846 Set array_len and new_pos correctly.
11848 (_dbus_marshal_test):
11849 Remove debug output.
11851 * dbus/dbus-message-internal.h:
11852 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
11853 New function that returns the reply serial.
11855 (_dbus_message_unlock):
11856 New function that unlocks a message and resets its header.
11858 (dbus_message_append_string_array),
11859 (dbus_message_get_fields_valist),
11860 (dbus_message_iter_get_field_type),
11861 (dbus_message_iter_get_string_array),
11862 (dbus_message_get_fields),
11863 (dbus_message_append_fields_valist):
11864 Handle string arrays.
11866 (dbus_message_set_sender):
11867 Make this function public since the bus daemon needs it.
11869 (decode_header_data):
11870 Set the reply serial to -1 initially.
11872 * dbus/dbus-message.h:
11873 Add dbus_message_set_sender.
11875 2003-01-24 Havoc Pennington <hp@pobox.com>
11877 * doc/dbus-specification.sgml: add some stuff
11879 2003-01-22 Havoc Pennington <hp@pobox.com>
11881 * doc/dbus-specification.sgml: Start to document the protocol.
11883 2003-01-22 Havoc Pennington <hp@pobox.com>
11885 * dbus/dbus-connection.c
11886 (dbus_connection_send_message_with_reply_and_block): add some @todo
11888 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
11890 2003-01-21 Havoc Pennington <hp@pobox.com>
11892 (patch untested because can't compile)
11894 * bus/driver.c (create_unique_client_name): make this function
11895 never recycle client names. Also, caller should initialize
11898 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
11900 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11902 * dbus/dbus-marshal.c: (_dbus_marshal_double),
11903 (_dbus_marshal_int32), (_dbus_marshal_uint32),
11904 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
11905 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
11906 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
11907 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
11908 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
11909 * dbus/dbus-marshal.h:
11910 * dbus/dbus-protocol.h:
11911 Add support for marshalling and demarshalling integer, double
11914 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11919 * bus/connection.c: (connection_disconnect_handler):
11920 Remove the connection from the bus driver's list.
11922 (connection_watch_callback): Dispatch messages.
11924 (free_connection_data): Free connection name.
11926 (bus_connection_setup): Add connection to the bus driver's list.
11927 (bus_connection_remove_owned_service):
11928 (bus_connection_set_name), (bus_connection_get_name):
11929 Add functions for setting and getting the connection's name.
11931 * bus/connection.h:
11932 Add function headers.
11934 * bus/driver.c: (create_unique_client_name),
11935 (bus_driver_handle_hello_message),
11936 (bus_driver_send_welcome_message), (bus_driver_message_handler),
11937 (bus_driver_add_connection), (bus_driver_remove_connection):
11940 * bus/services.c: (bus_service_free):
11942 New file that handles communication and registreation with the bus
11945 2003-01-21 Anders Carlsson <andersca@codefactory.se>
11947 * dbus/dbus-connection.c: (dbus_connection_send_message):
11948 Add a new client_serial parameter.
11950 (dbus_connection_send_message_with_reply):
11951 Remove a @todo since we've implemented the blocking function.
11953 (dbus_connection_send_message_with_reply_and_block):
11954 New function that sends a message and waits for a reply and
11955 then returns the reply.
11957 * dbus/dbus-connection.h:
11960 * dbus/dbus-errors.c: (dbus_result_to_string):
11961 * dbus/dbus-errors.h:
11962 Add new DBUS_RESULT.
11964 * dbus/dbus-message-internal.h:
11965 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
11966 (_dbus_message_set_sender), (dbus_message_write_header),
11967 (dbus_message_new_reply), (decode_header_data),
11968 (_dbus_message_loader_return_buffer), (_dbus_message_test):
11969 * dbus/dbus-message.h:
11970 Add new functions that set the reply serial and sender.
11971 Also marshal and demarshal them correctly and add test.
11973 * dbus/dbus-protocol.h:
11974 Add new DBUS_MESSAGE_TYPE_SENDER.
11976 * glib/dbus-glib.h:
11977 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
11978 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
11979 (dbus_connection_hookup_with_g_main):
11980 * glib/test-dbus-glib.c: (main):
11981 Rewrite to use GIOChannel and remove the GSource crack.
11983 * test/echo-client.c: (main):
11984 * test/watch.c: (check_messages):
11985 Update for changed APIs
11987 2003-01-19 Anders Carlsson <andersca@codefactory.se>
11989 * dbus/Makefile.am: Add dbus-timeout.[cħ]
11991 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
11992 Create a DBusTimeoutList.
11993 (dbus_connection_set_timeout_functions): Add new function to
11994 set timeout callbacks
11996 * dbus/dbus-connection.h: Add public DBusTimeout API.
11998 * dbus/dbus-message.c: (dbus_message_get_service):
11999 * dbus/dbus-message.h: New function.
12001 * dbus/dbus-server.c: Fix small doc typo.
12003 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12005 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12007 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12008 of the string, just as long as specified.
12010 2003-01-19 Havoc Pennington <hp@pobox.com>
12012 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12015 * dbus/dbus-server.c (dbus_server_set_max_connections)
12016 (dbus_server_get_max_connections, dbus_server_get_n_connections):
12017 keep track of current number of connections, and add API for
12018 setting a max (but haven't implemented enforcing the max yet)
12020 2003-01-18 Havoc Pennington <hp@pobox.com>
12022 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12023 reading/writing if read_watch != NULL or write_watch != NULL.
12025 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12026 the message loader code to actually load message->header and
12027 message->body into the newly-created message.
12029 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12032 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12033 (dbus_connection_get_max_message_size)
12034 (dbus_connection_set_max_live_messages_size)
12035 (dbus_connection_get_max_live_messages_size): implement some
12036 resource limitation functions
12038 * dbus/dbus-resources.c: new file implementing some of the
12039 resource limits stuff
12041 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12042 missing docs, add @todo to handle OOM etc.
12044 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12047 2003-01-18 Havoc Pennington <hp@pobox.com>
12049 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12050 connection if it hasn't been already.
12052 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12053 replace with DisconnectFunction.
12055 2003-01-18 Havoc Pennington <hp@pobox.com>
12057 Building --disable-verbose-mode --disable-asserts --disable-tests
12058 cuts the library from 112K to 45K or so
12060 * configure.in: check for varargs macro support,
12061 add --enable-verbose-mode, --enable-asserts.
12063 * dbus/dbus-internals.h (_dbus_assert): support
12064 DBUS_DISABLE_ASSERT
12065 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12067 2003-01-18 Havoc Pennington <hp@pobox.com>
12069 * dbus/dbus-test.c: include config.h so that tests actually run
12071 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12072 so the failure mode when that assumption fails will be plenty
12075 2003-01-18 Havoc Pennington <hp@pobox.com>
12077 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12079 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12082 * test/Makefile.am: don't use special variable "TESTS" for echo-*
12083 since we don't want to use those in make check
12085 2003-01-15 Havoc Pennington <hp@redhat.com>
12091 2003-01-15 Havoc Pennington <hp@redhat.com>
12093 * test/Makefile.am: fix so that test source code ends up in the
12094 distribution on make distcheck
12096 2003-01-15 Havoc Pennington <hp@redhat.com>
12102 2003-01-15 Havoc Pennington <hp@redhat.com>
12104 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12105 fix build when --disable-tests
12107 * Makefile.am (EXTRA_DIST): put HACKING in here
12109 * HACKING: document procedure for making a tarball release.
12111 2003-01-14 Anders Carlsson <andersca@codefactory.se>
12113 * bus/connection.c: (connection_error_handler),
12114 (bus_connection_setup):
12115 * bus/main.c: (main):
12116 Make sure that the DBusConnectionData struct is NULLed
12117 out to prevent a segfault.
12119 * dbus/dbus-errors.c: (dbus_result_to_string):
12120 * dbus/dbus-errors.h:
12121 * dbus/dbus-message.c: (dbus_message_get_fields),
12122 (dbus_message_get_fields_valist), (_dbus_message_test):
12123 * dbus/dbus-message.h:
12124 Make dbus_message_get_fields return a result code so we can
12125 track invalid fields as well as oom.
12127 2003-01-11 Havoc Pennington <hp@pobox.com>
12129 * configure.in: change --enable-test/--enable-ansi action-if-given
12130 to enable_foo=$enableval instead of enable_foo=yes
12132 2003-01-08 Havoc Pennington <hp@pobox.com>
12134 * dbus/dbus-string.c (_dbus_string_align_length): new function
12136 * dbus/dbus-test-main.c: move main() for test app here
12138 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12139 symbol to run tests, because dbus-test isn't in the main
12142 Code review nitpicks.
12144 * dbus/dbus-message.c (dbus_message_write_header): add newlines
12145 for people with narrow emacs ;-). Assert client_serial was filled
12146 in. Assert message->name != NULL.
12147 (dbus_message_append_fields): have "first_field_type" arg separate
12148 from va list, needed for C++ binding that also uses varargs IIRC
12149 and helps with type safety
12150 (dbus_message_new): add @todo about using DBusString to store
12151 service/name internally
12152 (dbus_message_new): don't leak ->service and ->name on OOM later
12154 (dbus_message_unref): free the service name
12155 (dbus_message_get_fields): same change to varargs
12156 i.e. first_field_type
12157 (_dbus_message_loader_return_buffer): assert that the message data
12158 is aligned (if not it's a bug in our code). Put in verbose griping
12159 about why we set corrupted = TRUE.
12160 (decode_header_data): add FIXME that char* is evil. Was going to
12161 add FIXME about evil locale-specific string.h strncmp, but just
12162 switched to wacky string-as-uint32 optimization. Move check for
12163 "no room for field name" above get_const_data_len() to avoid
12164 assertion failure in get_const_data_len if we have trailing 2
12165 bytes or the like. Check for service and name fields being
12166 provided twice. Don't leak service/name on error. Require field
12167 names to be aligned to 4 bytes.
12169 * dbus/dbus-marshal.c: move byte swap stuff to header
12170 (_dbus_pack_int32): uscore-prefix
12171 (_dbus_unpack_int32): uscore-prefix
12172 (_dbus_unpack_uint32): export
12173 (_dbus_demarshal_string): add @todo complaining about use of
12175 (_dbus_marshal_get_field_end_pos): add @todo about bad error
12176 handling allowing corrupt data to go unchecked
12178 2003-01-08 Havoc Pennington <hp@redhat.com>
12180 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12181 to the select() as needed for authentication. (should be using
12182 _dbus_poll() not select, but for another day)
12184 * dbus/dbus.h: include dbus/dbus-protocol.h
12186 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12188 * dbus/Makefile.am (dbusinclude_HEADERS): Install
12191 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12193 * dbus/dbus-internals.c: (_dbus_type_to_string):
12194 New function that returns a string describing a type.
12196 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12197 * dbus/dbus-marshal.h:
12198 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12199 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12200 (dbus_message_iter_get_byte_array):
12201 * dbus/dbus-message.h:
12202 Add new convenience functions for appending and getting message fields.
12203 Also add demarshalling routines for byte arrays.
12205 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12207 * dbus/dbus-connection-internal.h:
12208 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12209 (_dbus_connection_get_next_client_serial),
12210 (dbus_connection_send_message):
12211 * dbus/dbus-internals.h:
12212 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12213 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12214 (_dbus_marshal_uint32), (_dbus_demarshal_double),
12215 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12216 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12217 (_dbus_verbose_bytes), (_dbus_marshal_test):
12218 * dbus/dbus-marshal.h:
12219 * dbus/dbus-message-internal.h:
12220 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12221 (dbus_message_write_header), (_dbus_message_lock),
12222 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12223 (dbus_message_get_name), (dbus_message_append_int32),
12224 (dbus_message_append_uint32), (dbus_message_append_double),
12225 (dbus_message_append_string), (dbus_message_append_byte_array),
12226 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12227 (dbus_message_iter_unref), (dbus_message_iter_has_next),
12228 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12229 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12230 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12231 (decode_header_data), (_dbus_message_loader_return_buffer),
12232 (message_iter_test), (_dbus_message_test):
12233 * dbus/dbus-message.h:
12234 * dbus/dbus-protocol.h:
12235 * dbus/dbus-test.c: (main):
12236 * dbus/dbus-test.h:
12237 * glib/test-dbus-glib.c: (message_handler), (main):
12238 * test/echo-client.c: (main):
12239 * test/watch.c: (check_messages):
12240 Make messages sendable and receivable for real.
12242 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12244 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12245 (_dbus_marshal_string), (_dbus_marshal_byte_array):
12246 * dbus/dbus-message.c: (dbus_message_append_int32),
12247 (dbus_message_append_uint32), (dbus_message_append_double),
12248 (dbus_message_append_string), (dbus_message_append_byte_array):
12249 Handle OOM restoration.
12251 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12253 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12254 (_dbus_demarshal_string), (_dbus_marshal_test):
12255 * dbus/dbus-marshal.h:
12256 * dbus/dbus-message.c: (dbus_message_get_name),
12257 Document these functions.
12259 (dbus_message_append_int32), (dbus_message_append_uint32),
12260 (dbus_message_append_double), (dbus_message_append_string),
12261 (dbus_message_append_byte_array):
12262 * dbus/dbus-message.h:
12263 Add functions for adding message fields of different types.
12265 * dbus/dbus-protocol.h:
12266 Add the different types.
12268 2003-01-05 Havoc Pennington <hp@pobox.com>
12270 * bus/connection.c: implement routines for handling connections,
12271 first thing is keeping a list of owned services on each connection
12272 and setting up watches etc.
12274 * bus/services.c: implement a mapping from service names to lists
12277 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12279 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12280 to use static mutexes for global data
12282 * dbus/dbus-connection.c (dbus_connection_set_data): add new
12283 collection of functions to set/get application-specific data
12284 on the DBusConnection.
12286 2003-01-04 Havoc Pennington <hp@pobox.com>
12288 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12289 (_dbus_poll): new function
12291 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12294 * bus/loop.c: initial code for the daemon main loop
12296 2003-01-04 Havoc Pennington <hp@pobox.com>
12298 * test/watch.c (error_handler): make it safe if the error handler
12299 is called multiple times (if we s/error handler/disconnect
12300 handler/ we should just guarantee it's called only once)
12302 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12303 error handler on disconnect (it's quite possible we should
12304 just change the error handler to a "disconnect handler," I'm
12305 not sure we have any other meaningful errors)
12307 * configure.in: check for getpwnam_r
12309 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12310 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12311 mechanism as in SASL spec, using socket credentials
12313 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12314 (_dbus_send_credentials_unix_socket): new function
12316 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12318 (_dbus_write): only check errno if <0 returned
12319 (_dbus_write_two): ditto
12321 2003-01-02 Anders Carlsson <andersca@codefactory.se>
12323 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12324 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12325 (_dbus_marshal_test):
12326 * dbus/dbus-marshal.h:
12327 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12328 to _dbus_marshal_utf8_string. Also fix some tests.
12330 2002-12-28 Harri Porten <porten@kde.org>
12332 * configure.in: added check for C++ compiler and a very cheesy
12333 check for the Qt integration
12335 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12337 * qt/Makefile.am: added
12339 * qt/.cvsignore: added
12341 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12342 latter, added #ifdef QT_THREAD_SUPPORT guard.
12344 * dbus/Makefile.am: added missing headers for make dist
12346 2002-12-28 Kristian Rietveld <kris@gtk.org>
12348 * dbus/Makefile.am: fixup export-symbols-regex.
12350 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12352 * acinclude.m4: Add this file and put the
12353 PKG_CHECK_MODULE macro in it.
12355 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12357 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12358 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12359 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12360 (_dbus_marshal_test):
12361 Make the demarshalling routines align the pos argument.
12362 Add string marshalling tests and fix the obvious bugs
12365 2002-12-26 Havoc Pennington <hp@pobox.com>
12367 * dbus/dbus-auth.c: fixes fixes fixes
12369 * dbus/dbus-transport-unix.c: wire up support for
12370 encoding/decoding data on the wire
12372 * dbus/dbus-auth.c (_dbus_auth_encode_data)
12373 (_dbus_auth_decode_data): append to target string
12374 instead of nuking it.
12376 2002-12-26 Havoc Pennington <hp@pobox.com>
12378 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12379 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12382 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12383 avoid swap_bytes() overhead (ignoring possible assembly stuff for
12384 now). Main point is because I wanted unpack_uint32 to implement
12385 _dbus_verbose_bytes
12386 (_dbus_verbose_bytes): new function
12388 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12390 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12391 mechanism to handle a corrupt message stream
12392 (_dbus_message_loader_new): fix preallocation to only prealloc,
12395 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12396 (_dbus_string_test): enhance tests for copy/move and fix the
12399 * dbus/dbus-transport-unix.c: Hold references in more places to
12400 avoid reentrancy problems
12402 * dbus/dbus-transport.c: ditto
12404 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12405 leak reference count in no-message case
12407 * test/watch.c (do_mainloop): handle adding/removing watches
12408 during iteration over the watches. Also, ref the connection/server
12409 stored on a watch, so we don't try to mangle a destroyed one.
12411 * dbus/dbus-transport-unix.c (do_authentication): perform
12414 * dbus/dbus-auth.c (get_state): add a state
12415 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12416 (_dbus_auth_get_unused_bytes): append the unused bytes
12417 to the passed in string, rather than prepend
12419 * dbus/dbus-transport.c (_dbus_transport_init_base): create
12420 the auth conversation DBusAuth
12422 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12423 (_dbus_transport_new_for_domain_socket): when creating a
12424 transport, pass in whether it's a client-side or server-side
12425 transport so we know which DBusAuth to create
12427 2002-12-03 Havoc Pennington <hp@pobox.com>
12429 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12430 _after_ finalizing the derived members
12431 (unix_connection_set): unref watch if we fail to add it
12433 * dbus/dbus-connection.c (dbus_connection_unref): delete the
12434 transport first, so that the connection owned by the
12435 transport will be valid as the transport finalizes.
12437 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12438 if necessary, and remove watches from the connection.
12440 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12442 2002-12-26 Anders Carlsson <andersca@codefactory.se>
12444 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12445 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12446 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12447 (_dbus_marshal_test):
12448 * dbus/dbus-marshal.h:
12449 Add string marshal functions and have the demarshal functions
12450 return the new position.
12452 2002-12-25 Havoc Pennington <hp@pobox.com>
12454 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12455 it is a simple protocol that just maps directly to SASL.
12457 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12458 initial implementation, not actually used yet.
12460 * dbus/dbus-string.c (_dbus_string_find): new function
12461 (_dbus_string_equal): new function
12462 (_dbus_string_base64_encode): new function
12463 (_dbus_string_base64_decode): new function
12465 2002-12-25 Anders Carlsson <andersca@codefactory.se>
12467 * dbus/Makefile.am:
12468 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12469 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12470 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12471 (_dbus_demarshal_uint32), (_dbus_marshal_test):
12472 * dbus/dbus-marshal.h:
12473 * dbus/dbus-protocol.h:
12474 * dbus/dbus-test.c: (main):
12475 * dbus/dbus-test.h:
12476 Add un-optimized marshalling/demarshalling routines.
12478 2002-12-25 Harri Porten <porten@kde.org>
12480 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12482 2002-12-24 Zack Rusin <zack@kde.org>
12484 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12485 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12488 2002-12-24 Havoc Pennington <hp@pobox.com>
12490 * glib/dbus-gthread.c: fix include
12492 * glib/dbus-glib.h: rename DBusMessageHandler for now.
12493 I think glib API needs to change, though, as you don't
12494 want to use DBusMessageFunction, you want to use the
12495 DBusMessageHandler object. Probably
12496 dbus_connection_open_with_g_main_loop()
12497 and dbus_connection_setup_g_main_loop() or something like that
12498 (but think of better names...) that just create a connection
12499 that has watch/timeout functions etc. already set up.
12501 * dbus/dbus-connection.c
12502 (dbus_connection_send_message_with_reply): new function just to
12503 show how the message handler helps us deal with replies.
12505 * dbus/dbus-list.c (_dbus_list_remove_last): new function
12507 * dbus/dbus-string.c (_dbus_string_test): free a string that
12510 * dbus/dbus-hash.c: use memory pools for the hash entries
12511 (rebuild_table): be more paranoid about overflow, and
12512 shrink table when we can
12513 (_dbus_hash_test): reduce number of sprintfs and write
12514 valid C89. Add tests for case where we grow and then
12515 shrink the hash table.
12517 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12519 * dbus/dbus-connection.c (dbus_connection_register_handler)
12520 (dbus_connection_unregister_handler): new functions
12522 * dbus/dbus-message.c (dbus_message_get_name): new
12524 * dbus/dbus-list.c: fix docs typo
12526 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12527 an object representing a handler for messages.
12529 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12531 * glib/dbus-glib.h:
12532 * glib/dbus-gthread.c: (dbus_gthread_init):
12533 Don't use the gdbus prefix for public functions.
12535 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12539 Add GLib checks and fixup .pc files
12541 * glib/Makefile.am:
12542 * glib/dbus-glib.h:
12543 * glib/dbus-gmain.c: (gdbus_connection_prepare),
12544 (gdbus_connection_check), (gdbus_connection_dispatch),
12545 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12546 (dbus_connection_gsource_new):
12547 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12548 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12549 * glib/test-dbus-glib.c: (message_handler), (main):
12552 2002-12-15 Harri Porten <porten@kde.org>
12554 * autogen.sh: check for libtoolize before attempting to use it
12556 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12559 * .cvsignore: ignore more stamp files
12561 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12563 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12564 without make install.
12566 2002-12-15 Havoc Pennington <hp@pobox.com>
12568 * dbus/dbus-threads.c: add thread stubs that a higher library
12569 layer can fill in. e.g. the GLib wrapper might fill them in with
12570 GThread stuff. We still need to use this thread API to
12571 thread-safe-ize the library.
12573 2002-12-12 Havoc Pennington <hp@pobox.com>
12575 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12576 below new interfaces and include fewer system headers.
12578 * dbus/dbus-sysdeps.c (_dbus_read): new function
12579 (_dbus_write): new function
12580 (_dbus_write_two): new function
12581 (_dbus_connect_unix_socket): new function
12582 (_dbus_listen_unix_socket): new function
12584 * dbus/dbus-message-internal.h: change interfaces to use
12587 2002-12-11 Havoc Pennington <hp@pobox.com>
12589 * dbus/dbus-types.h: add dbus_unichar
12591 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12593 * dbus/dbus-connection.c (dbus_connection_send_message): return
12596 * dbus/dbus-transport.c: include dbus-watch.h
12598 * dbus/dbus-connection.c: include dbus-message-internal.h
12600 * HACKING: add file with coding guidelines stuff.
12602 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12603 handling here, for security purposes (as in vsftpd). Not actually
12604 using this class yet.
12606 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12607 system/libc usage here, as in vsftpd, for ease of auditing (and
12608 should also simplify portability). Haven't actually moved all the
12609 system/libc usage into here yet.
12611 2002-11-25 Havoc Pennington <hp@pobox.com>
12613 * dbus/dbus-internals.c (_dbus_verbose): fix to not
12614 always print the first verbose message.
12616 2002-11-24 Havoc Pennington <hp@pobox.com>
12618 * test/echo-client.c, test/echo-server.c: cheesy test
12621 * configure.in (AC_CHECK_FUNCS): check for writev
12623 * dbus/dbus-message.c (_dbus_message_get_network_data): new
12626 * dbus/dbus-list.c (_dbus_list_foreach): new function
12628 * dbus/dbus-internals.c (_dbus_verbose): new function
12630 * dbus/dbus-server.c, dbus/dbus-server.h: public object
12631 representing a server that listens for connections.
12633 * dbus/.cvsignore: create
12635 * dbus/dbus-errors.h, dbus/dbus-errors.c:
12636 public API for reporting errors
12638 * dbus/dbus-connection.h, dbus/dbus-connection.c:
12639 public object representing a connection that
12640 sends/receives messages. (Same object used for
12641 both client and server.)
12643 * dbus/dbus-transport.h, dbus/dbus-transport.c:
12644 Basic abstraction for different kinds of stream
12645 that we might read/write messages from.
12647 2002-11-23 Havoc Pennington <hp@pobox.com>
12649 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12652 * dbus/dbus-test.c (main): add list test, and include
12653 dbus-test.h as intended
12655 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12656 (_dbus_hash_table_remove_int): return value indicates
12657 whether the entry existed to remove
12659 * dbus/dbus-list.c: add linked list utility class,
12660 with docs and tests
12662 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12665 2002-11-23 Havoc Pennington <hp@pobox.com>
12667 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12668 DBUS_END_DECLS to nothing, that should fix this once and for all
12670 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12672 * dbus/dbus-message.c, dbus/dbus-hash.c:
12673 add some missing @brief
12675 2002-11-23 Havoc Pennington <hp@pobox.com>
12677 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12678 to avoid confusing Doxygen
12680 * dbus/dbus-hash.c: @} not }@
12682 * dbus/dbus-message.c (struct DBusMessage): split out
12685 2002-11-23 Havoc Pennington <hp@pobox.com>
12687 * configure.in: pile on more warning flags if using gcc
12689 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12690 to document static functions
12692 * configure.in: add summary to end of configure so it
12693 looks nice and attractive
12695 * dbus/dbus-hash.c: finish implementation and write unit
12698 * configure.in: add --enable-tests to enable unit tests
12700 * dbus/dbus-test.c: test program to run unit tests
12701 for all files in dbus/*, initially runs a test for
12704 * dbus/dbus-internals.h: file to hold some internal utility stuff
12706 2002-11-22 Havoc Pennington <hp@redhat.com>
12708 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12709 "ported" away from Tcl
12711 * dbus/dbus-types.h: header for types such as dbus_bool_t
12713 2002-11-22 Havoc Pennington <hp@redhat.com>
12715 * dbus/dbus.h: fixups for doc warnings
12717 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12719 (QUIET): make it quiet so we can see warnings
12721 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12723 2002-11-22 Havoc Pennington <hp@redhat.com>
12725 * Makefile.am: include "Doxyfile" target in all-local
12727 * configure.in: generate the Doxyfile
12729 * Doxyfile.in: move Doxyfile here, so we can use
12730 configure to generate a Doxyfile with the right
12731 version number etc.
12733 2002-11-22 Havoc Pennington <hp@redhat.com>
12735 * dbus/dbus-message.c: move inline docs into .c file
12737 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12738 so all docs are under doc/
12739 (MAN_EXTENSION): generate man pages. Use extension
12740 ".3dbus" which matches ".3qt" on my system,
12741 I guess this is OK, I don't know really.
12742 (FILE_PATTERNS): look for .c files not .h, makes sense
12743 for plain C I think
12745 2002-11-22 Havoc Pennington <hp@pobox.com>
12747 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12748 because any app can be a server, and any app can be a client,
12749 the bus is a special kind of server.
12751 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
12753 * Doxyfile : adding. Still needs Makefile rules to be generated
12754 automatically (just run "doxygen" in the toplevel dir for now to
12757 * dbus/dbus-message.h : Adding sample docs (javadoc since
12758 resembles gtk-doc a little more)
12760 * dbus/dbus.h : Adding sample docs
12762 2002-11-21 Havoc Pennington <hp@redhat.com>
12764 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12765 so we can allow ourselves to include files directly,
12766 instead of having to use dbus.h
12768 * dbus/dbus.h: fill in
12770 * dbus/dbus-message.h: sketch out a sample header file.
12771 Include griping if you include it directly instead of
12774 * dbus/dbus-macros.h: new file with macros for extern "C",
12775 TRUE/FALSE, NULL, etc.
12777 * doc/file-boilerplate.c: put include guards in here
12779 2002-11-21 Havoc Pennington <hp@redhat.com>
12781 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12783 * COPYING: include the GPL as well, and license code
12784 under both AFL and GPL.
12786 2002-11-21 Havoc Pennington <hp@redhat.com>
12788 * acconfig.h: get rid of this
12790 * autogen.sh (run_configure): add --no-configure option
12792 * configure.in: remove AC_ARG_PROGRAM to make
12793 autoconf complain less. add AC_PREREQ.
12794 add AC_DEFINE third arg.
12796 2002-11-21 Anders Carlsson <andersca@codefactory.se>
12799 Fix references so we can distcheck.
12801 2002-11-21 Havoc Pennington <hp@redhat.com>
12803 * Initial module creation