1 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
3 * mono/doc/Makefile.am: Fix parallel make problem with mono-doc
4 (Bug #4213) Patch from Doug Goldstein <cardoe at gentoo.org>
6 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
8 * bus/connection.c (bus_connections_expect_reply): Make
9 pending reply limit not common to all connections (Bug #5416)
10 Patch from Kimmo Hämäläinen <kimmo.hamalainen at nokia.com>
12 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
14 * tools/dbus-launch.c: Fixed csh syntax output (Bug #5720)
16 2006-02-10 John (J5) Palmieri <johnp@redhat.com>
18 * gcj/Makefile.am: point to correct jar command (Bug #4529)
19 patch from Doug Goldstein <cardoe at gentoo.org>
21 2006-02-09 Joe Shaw <joeshaw@novell.com>
23 * mono/Arguments.cs: Fix a magic number in the mono bindings
24 that doesn't work on 64 bit arches. Patch from Peter Johanson.
26 2006-01-27 Robert McQueen <robot101@debian.org>
28 * glib/dbus-binding-tool-glib.[ch]: Patch based on Ricardo Kekki's
29 patch to use an annotation org.freedesktop.DBus.GLib.ClientCSymbol
30 when generating the client-side methods, instead of overloading
31 CSymbol which broke everything horribly. My apologies.
33 2006-01-27 Robert McQueen <robot101@debian.org>
35 * glib/dbus-gtype-specialized.[ch], glib/dbus-gvalue-utils.c: Patch
36 by me and Rob Taylor to add a simple_free function to D-Bus map
37 and collection types, which allows those types which can be freed
38 with a GDestroyNotify (such as GHashTables and GArrays, but not
39 GPtrArrays) to be stored as the values in hashtables.
41 * test/glib/test-dbus-glib.c, test/glib/test-service-glib.{c,xml}:
42 Patch by Rob Taylor to add nested dicts to the glib tests to check
43 the above code works, and appears not to leak when called repeatedly.
45 2006-01-27 Robert McQueen <robot101@debian.org>
47 * glib/dbus-gvalue.c (demarshal_valuearray): Patch from Rob Taylor
48 to free a D-Bus allocated string with dbus_free () instead of
51 2006-01-27 Iain Holmes <iain@openedhand.com>
53 * glib/dbus-gproxy.c (dbus_g_proxy_dispose): Protect the dispose
54 method from being called multiple times.
56 2006-01-19 Robert McQueen <robot101@debian.org>
58 * glib/dbus-binding-tool-glib.c: Patch from Rob Taylor
59 <rob.taylor@collabora.co.uk> to add support for generating bindings
60 to arrays that are represented as GPtrArrays rather than GArrays (ie
61 size-variable things, such as strings, objects, structs, etc).
63 2006-01-05 Robert McQueen <robot101@debian.org>
65 * dbus/dbus-glib.h, glib/dbus-gproxy.c: Patch from Ricardo Kekki
66 <ricardo.kekki@movial.fi> to make it possible to inherit from
67 DBusGProxy, by splitting the DBusGProxy struct into a public part and
68 a private part, and moving the setting of the DBusGProxyManager into a
69 connection property, allowing proper GObject construction.
71 2006-01-05 Robert McQueen <robot101@debian.org>
73 * glib/dbus-binding-tool-glib.c: Patch from Ricardo Kekki
74 <ricardo.kekki@movial.fi> to make dbus-binding-tool heed C symbol name
75 annotations when generating glib client bindings.
77 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
79 * dbus/dbus-shared.h: Call it shared constants instead of shared macros
81 * dbus/dbus-protocol.h: add DOxygen markup to quiet warnings
83 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
85 * dbus/dbus-shared.h: add DOxygen markup to quiet warnings
87 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
89 * dbus/dbus-macros.h: correct DOxygen end of section (s/}@/@})
91 2005-12-19 Ross Burton <ross@openedhand.com>
93 * doc/dbus-tutorial.xml:
94 Document the Glib client-side bindings, and list all possible annotations.
96 2005-12-19 John (J5) Palmieri <johnp@redhat.com>
98 * dbus/bus.c (dbus_bus_release_name): Add documentation
100 2005-12-06 Robert McQueen <robot101@debian.org>
102 * python/service.py: s/sucessful/successful/ so we're allocating to
103 and reading from the same variable. Oops.
105 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
109 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
111 * test/qt/Makefile.am: build from srcdir
113 * qt/qtconnection.cpp (requestName): Changed PROHIBIT_REPLACE to ALLOW_REPLACE
114 Note - this code is wrong and needs to be fixed by the Qt binding
115 developers. The flags should be treated as bitfields and not enums.
117 * qt/qtconnection.h: Change ProhibitReplace to AllowReplace
119 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
121 * dbus/dbus-list.c (_dbus_list_insert_after_link, _dbus_list_insert_after,
122 link_after): remove #ifdef DBUS_BUILD_TESTS since we use these methods
125 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
127 * dbus/dbus-connection.c (dbus_connection_read_write): Add new
128 method for getting messages off the bus in the absence of a
129 mainloop. This method is much like
130 dbus_connection_read_write_dispatch except it does not dispatch
131 the messages to a registered filter function. Instead it
132 allows a developer to process messages by directly popping
135 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
137 * bus/desktop-file.c (parse_key_value): Ignore locales allowing
138 the parser to continue instead of returning error
139 (bus_desktop_file_load): Do not free parser data when
140 parse_section_start or parse_key_value fails because it was
141 already freed by parser_free (patch from Carlos Garcia Campos
142 <carlosgc at gnome.org>)
144 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
146 * dbus/dbus-auth.c, dbus/dbus-connection.c, dbus/dbus-keyring.c,
147 dbus/dbus-server-debug-pipe.c, glib/dbus-binding-tool-glib.c
148 glib/dbus-glib-tool.c, glib/dbus-gparser.c, glib/dbus-gproxy.c
149 test/test-segfault.c, test/test-utils.c,
150 test/glib/test-dbus-glib.c, tools/dbus-cleanup-sockets.c
151 tools/dbus-launch.c, tools/dbus-tree-view.c, tools/dbus-viewer.c:
152 Various cleanup of dead code and compiler warnings (patch from
153 Kjartan Maraas <kmaraas at gnome.org>)
155 2005-11-30 John (J5) Palmieri <johnp@redhat.com>
157 * glib/dbus-gmain.c (connection_setup_add_watch): plugged a leak
158 (patch from Carlos Garnacho Parro <carlosg at gnome.org>
160 2005-11-27 Robert McQueen <robot101@debian.org>
162 * python/dbus_bindings.pyx: Repair my previous commit which reverted
163 part of the preceding one. Oops. Merge patch by Johan Hedberg
164 <johan.hedberg@nokia.com> to fix marshalling of 16-bit integer values
165 on big-endian platforms.
167 * test/python/test-client.py: Add some 16-bit integers to the test
170 2005-11-27 Carlos Garcia Campos <carlosgc@gnome.org>
172 * glib/dbus-gobject.c: Append a GValue instead of a basic type in
173 method return message for property getters
175 2005-11-27 Robert McQueen <robot101@debian.org>
177 * python/dbus_bindings.pyx: Fix a bug where doing a strict append
178 with type v of an instance of dbus.Variant(foo, type='x') caused
179 it to be boxed twice before sending over the bus.
181 * python/dbus_bindings.pyx, python/service.py,
182 test/python/test-client.py: Update the constants for the new
183 request_name flags, and update comments/test cases now that queueing
184 is the default action.
186 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
189 - Change version to 0.60 for impending release
190 - upped the sonames because of ABI and API breakage
192 2005-11-22 John (J5) Palmieri <johnp@redhat.com>
194 * configure.in: Add test/name-test/Makefile to the generated
197 * dbus/dbus-shared.h (#define DBUS_NAME_FLAG_ALLOW_REPLACEMENT):
198 New flag which replaces DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT
199 (#define DBUS_NAME_FLAG_DO_NOT_QUEUE): New flag for specifying
200 not to queue an ower if it can't be the primary owner
202 * bus/bus.h: Add new internal BusOwner struct
204 * bus/driver.c (bus_driver_handle_hello): Send flags (0 for default)
205 to bus_registry_ensure and don't set the prohibit_replacement flag
206 since they are now set per BusOwner and not per name.
207 (bus_driver_handle_list_queued_owners): bus method (ListQueuedOwners)
208 that returns the list of connections in a name's connection queue
210 * bus/services.c (struct BusService): remove prohibit_replacement field
211 (struct BusOwner): new struct for keeping track of queued connections
212 and their associated flags for the queue
213 (struct BusRegistry): add a BusOwner memory pool
214 (bus_registry_new): initialize the BusOwner memory pool
215 (bus_registry_unref): free the BusOwner memory pool
216 (_bus_service_find_owner_link): new internal method for
217 searching the queue for a specific connection
218 (bus_owner_set_flags): new method for adding setting the flags on a
220 (bus_owner_new): new method that creates a BusOwner object from the
221 pool and sets its flags
222 (bus_owner_ref, bus_owner_unref): ref counting for BusOwner objects
223 (bus_registry_ensure): Add the flags parameter
224 (bus_registry_acquire_service): Switch from using raw connections to
225 using the BusOwner struct
226 Add new state machine for dealing with the new set of flags
227 (bus_registry_set_service_context_table, struct OwnershipCancelData,
228 cancel_ownership, free_ownership_cancel_data,
229 add_cancel_ownership_to_transaction, struct OwnershipRestoreData,
230 restore_ownership, free_ownership_restore_data,
231 add_restore_ownership_to_transaction): Switch to using BusOwner
232 instead of raw connections
233 (bus_service_add_owner): Add flags parameter
234 Switch to using BusOwner instead of raw connections
235 Add state machine for dealing with the new set of flags
236 (bus_service_swap_owner): Swaps the first and second owners in the
237 queue. Used to make sure proper signals are sent when a service looses
238 or gains primary ownership. We never insert an owner at the top of the
239 queue. Instead we insert it in the second position and then swap.
240 (bus_service_remove_owner): Remove the owner from the queue sending
241 out the NameLost and NameOwnerChanged signals if the we were the
243 (bus_service_get_primary_owners_connection): New method that extracts
244 the connection from the primary owner
245 (bus_service_get_primary_owner): Returns the BusOwner instead of the
247 (bus_service_get_allow_replacement): Changed from the old
248 bus_service_get_prohibit_replacement method. Checks the flags of the
249 primary owner and returns if it can be replaced or not
250 (bus_service_set_prohibit_replacement): removed
251 (bus_service_has_owner): returns TRUE if and owner with
252 the specified connection exists in the queue
254 * dbus/dbus-bus.c (dbus_bus_connection_get_unique_name): New helper
255 method that only compiles if tests are enabled. Allows us to get the
256 unique name of a connection so we can check it against the queue when
257 doing regression tests
259 * bus/activation.c (bus_activation_send_pending_auto_activate),
260 bus/dispatch.c (bus_dispatch),
261 bus/driver.c (bus_driver_handle_get_service_owner,
262 bus_driver_handle_get_connection_unix_user,
263 bus_driver_handle_get_connection_unix_process_id,
264 bus_driver_handle_get_connection_selinux_security_context),
265 bus/signals.c (connection_is_primary_owner):
266 use bus_service_get_primary_owners_connection instead of
267 bus_service_get_primary_owner
269 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket,
270 _dbus_listen_unix_socket): Calculate the length of the socket
271 path and use that instead of using a fixed length which was
272 causing socket names to contain many trailing Nul bytes.
274 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c
275 (dbus_g_method_get_sender): New method for extracting the sender
276 from a DBusGMethodInvocation
277 (dbus_g_method_return_get_reply): changed name to
278 dbus_g_method_get_reply
279 (dbus_g_method_return_send_reply): changed name to
280 dbus_g_method_send reply
282 * doc/dbus-specification.xml: New docs that describe how the new
283 queueing system works and talks about the changes to the how
284 we specify socket names
286 * glib/examples/example-service.c,
287 glib/examples/example-signal-emitter.c,
288 glib/examples/statemachine/statemachine-server.c:
289 Changed the RequestName flags to the new system
291 * test/name-test/ (test-names.c, run-test.sh, Makefile.am): New
292 regression test suite for testing various states of the new
295 2005-11-15 Robert McQueen <robot101@debian.org>
297 * dbus/dbus-glib-lowlevel.h, glib/dbus-gobject.c: Patch from Rob
298 Taylor to add two methods, dbus_g_method_return_get_reply and
299 dbus_g_method_return_send_reply, to allow you to get the reply
300 message from a DBusGMethodInvocation, append arbitrary stuff to it,
301 and send it. The GLib bindings can't marshal a return value of
302 something like a(s) if the array is empty - ultimately they should be
303 made to heed the signature of the out arguments as the Python bindings
304 now can, but this is a workable interim solution which might have
307 2005-11-15 Robert McQueen <robot101@debian.org>
309 * bus/driver.c, bus/services.c, bus/services.h: Add a ReleaseName
310 method to org.freedesktop.DBus to release a bus name or give up
311 waiting in the queue for it.
313 * dbus/dbus-bus.c, dbus/dbus-bus.h, dbus/dbus-shared.h: Add a
314 dbus_bus_release_name method to send the ReleaseName method calls.
315 Add constants for the return values to dbus/dbus-shared.h.
317 * doc/dbus-specification.xml: Document the new ReleaseName method
318 in the specification.
320 * python/dbus_bindings.pyx: Add a low-level python binding for the
323 * python/exceptions.py, python/service.py: Make freeing BusName
324 objects release the name. Add a NameExistsException, and fix a
325 bug with creating UnknownMethodException.
327 * test/python/test-client.py: Add tests for freeing BusName
328 objects causing names to be released.
330 2005-11-14 Robert McQueen <robot101@debian.org>
332 * python/service.py: Include the traceback in the error reply when we
333 send an exception over the bus. _BEST_ _PATCH_ _EVER_
335 2005-11-14 David Zeuthen <davidz@redhat.com>
337 Patch from Timo Hoenig <thoenig@suse.de>.
339 * bus/bus.c: I've recently investigated why the automatic reload
340 of configuration files does not work as expected.
342 Currently, reloading configuration files does only work when
343 running dbus-daemon with --nodaemon. If we are running as daemon
344 we're hitting a dnotify bug once we fork the process.
346 We're initializing the dnotify fds before calling fork(). Once
347 the child process forked it does still have the fds (and they
348 still show up in /proc/`pidof dbus-daemon`/fd/) but we're not
349 getting SIGIO as changes are made to the configuration files.
351 The attached patch moves the initialization of the dnotify fds to
352 process_config_postinit(). This is safe for all current code
353 paths and solves the dnotify disfunction. If we're running
354 dbus-daemon as daemon the fds for dnotify are now being
355 initialized after fork() for the child process.
357 * configure.in: The current configure.in check for dnotify probes
358 'x$target_os' for being 'xlinux-gnu'. I've changed the check to
359 match for 'xlinux', too. Additionally I have adapted the configure
360 option's style to match with the others.
362 2005-11-14 Robert McQueen <robot101@debian.org>
364 * python/decorators.py, python/service.py: Add a new argument to the
365 dbus.service.method decorator called sender_keyword, which if set,
366 specifies the name of an argument which will be provided the bus
367 name of the method caller.
369 * test/python/test-client.py, test/python/test-service.py: Add a
370 method and test to check the sender_keyword functionality.
372 2005-11-07 John (J5) Palmieri <johnp@redhat.com>
374 * bus/driver.c (bus_driver_handle_reload_config): Make sure we send an
375 empty reply so blocking calls don't block forever (Patch from Sjoerd
376 Simons <sjoerd at luon.net>)
378 * AUTHORS: Add Robert McQueen for his work on the Python
379 Bindings and other parts of D-Bus
381 2005-11-07 Robert McQueen <robot101@debian.org>
383 * python/decorators.py: Change emit_signal function to use the
384 signature annotation of the signal when marhsalling the arguments from
385 the service. Fix a bug where the code checking signature length
386 against argument length referenced the wrong variable.
388 * python/introspect_parser.py: Avoid adding the type signature of
389 signal arguments to any methods which occur after them in the
390 introspection data (!) by making the parser a little more careful
391 about its current state.
393 * python/service.py: Remove debug prints from last commit (again :D).
395 * test/python/test-client.py, test/python/test-service.py: Add test
396 signals with signature decorators to test the strict marshalling code
397 gives errors at the right time. Could do with checking the signals
398 actually get emitted too, given that the test does nothing with
399 signals at the moment...
401 2005-11-07 Robert McQueen <robot101@debian.org>
403 * python/_dbus.py: Add WeakReferenceDictionary cache of dbus.Bus
404 instances to stop madness of creating new instances representing
405 the same bus connection all the time, rendering any tracking of
406 match rules and bus names quite meaningless. Caught a bug where
407 the private argument to SessionBus() and friends was being passed
408 in as use_default_mainloop by mistake. Still some problems with
409 multiple dbus_binding.Connection instances representing the same
410 low-level connection (eg when you use both SessionBus() and
411 StarterBus() in same process), but it's a lot better now than it
414 * python/dbus_bindings.pyx: Add constants with the return values
415 for bus_request_name().
417 * python/service.py: Store bus name instances in a per-dbus.Bus cache
418 and retrieve the same instances for the same name, so deletion can be
419 done with refcounting. Also now throws some kind of error if you
420 don't actually get the name you requested, unlike previously...
422 * test/python/test-client.py: Add tests for instance caching of buses
423 and bus name objects.
425 2005-11-04 Robert McQueen <robot101@debian.org>
427 * python/dbus_bindings.pyx, test/python/test-client.py: Fix
428 marshalling of boolean values. Add some booleans to the values in
431 * python/decorators.py, python/service.py: Add an 'async_callbacks'
432 argument to the dbus.service.method decorator, which allows you to
433 name arguments to take two callback functions for replying with
434 return values or an exception.
436 * test/python/test-client.py, test/python/test-service.py: Add test
437 case using asynchronous method reply functions, both return values and
438 errors, and from within both the function itself and from a mainloop
441 * python/decorators.py, python/service.py: Perform checking that the
442 number of method/signal arguments matches the number of types in the
443 signature at class loading time, not when you first introspect the
446 * python/service.py: Remove debug print left by the last commit.
448 2005-11-03 Robert McQueen <robot101@debian.org>
450 * python/service.py: Heavy refactoring of method invocation, with
451 hopefully no effect on functionality. Nuked _dispatch_dbus_method_call
452 in favour of a new _message_cb that uses seperate functions for
453 looking up the method to call, marshalling the return values, and
454 sending exceptions as errors, and is easier to follow as a
455 consequence. Fixes some corner cases about returning things that
456 don't match your declared out_signature, allows exceptions to define
457 _dbus_error_name and have it be sent over the bus as the error name,
458 and paves the way for cool stuff like heeding the message no reply
459 flag, asynchronous method implementations, informing the method of the
460 sender, and including backtraces in the error messages.
462 * test/python/test-client.py: Catch and print exceptions thrown in the
463 async callback tests, rather than passing them to the low-level
464 bindings to be ignored in a noisy and frustrating manner.
466 2005-11-03 Robert McQueen <robot101@debian.org>
468 * python/_dbus.py, python/proxies.py, python/service.py: Add __repr__
469 functions to dbus.Bus, dbus.service.BusName and dbus.service.Object,
470 tweak others to be consistent.
472 * test/python/test-client.py: Tweak output of testInheritance.
474 2005-10-29 Robert McQueen <robot101@debian.org>
476 * python/service.py: Major changes to allow multiple inheritance
477 from classes that define D-Bus interfaces:
479 1. Create a new Interface class which is the parent class of
480 Object, and make the ObjectType metaclass into InterfaceType.
482 2. Patch written with Rob Taylor to replace use of method_vtable
483 with code that walks the class's __MRO__ (method resolution order)
484 to behave like Python does when invoking methods and allow
485 overriding as you'd expect. Code is quite tricky because
486 we have to find two methods, the one to invoke which has the
487 right name and isn't decorated with the /wrong/ interface,
488 and the one to pick up the signatures from which is decorated
489 with the right interface.
491 The same caveats apply as to normal multiple inheritance -
492 this has undefined behaviour if you try and inherit from two
493 classes that define a method with the same name but are
494 decorated with different interfaces. You should decorate
495 your overriding method with the interface you want.
497 3. Replace grungy introspection XML generation code in the metaclass
498 with dictionaries that cope correctly with multiple inheritance
499 and the overriding of methods. This also uses the signature
500 decorations to provide correct introspection data, including
501 the debut appearance of the types of your return values. :D
503 * test/python/test-client.py, test/python/test-service.py: Add a test
504 case to try invoking an method that overrides one inherited from a
505 D-Bus interface class.
507 2005-10-29 Robert McQueen <robot101@debian.org>
509 * python/dbus_bindings.pyx: Tweak 'raise AssertionError' to assert().
510 Add checking for the end of struct character when marshalling a
511 struct in MessageIter.append_strict.
513 * python/examples/example-service.py,
514 python/examples/gconf-proxy-service.py,
515 python/examples/gconf-proxy-service2.py: Update to use gobject
516 mainloop directly rather than appearing to depend on gtk.
518 * python/test/test-client.py, python/test/test-server.py: Remove
519 obsolete and broken test scripts for old bindings. We have up to date
520 and working tests in test/python/.
522 2005-10-29 Robert McQueen <robot101@debian.org>
524 * python/decorators.py: Add optional arguments to the method and
525 signal decorators to allow you to specify the signature of arguments
526 and return values. Preserve the doc strings of signal functions in the
527 decorated version, for pydoc and friends.
529 * python/dbus_bindings.pyx, python/proxies.py: Replace the
530 parse_signature_block function with an iterable dbus.Signature()
531 type. Fix a bug in MessageIter.append_strict where you could append
532 anything by claiming it was a string.
534 * python/service.py: Use the out_signature decoration on methods to
535 marshal return values, meaning you no longer require dbus.Array()
536 or dbus.Dictionary() to indicate the type when returning empty
537 arrays or dictionaries. Fix a bug where exceptions which are defined
538 in __main__ are not turned into error replies.
540 * test/python/test-client.py, test/python/test-service.py: Add test
541 for correct marshalling of return values according to out_signature.
542 Fix a bug in the async call test where the error_handler is missing a
545 2005-10-29 Robert McQueen <robot101@debian.org>
547 * glib/Makefile.am, glib/examples/Makefile.am,
548 glib/examples/statemachine/Makefile.am: Merge patch from Ubuntu by
549 Daniel Stone to replace explicit calls to libtool with $(LIBTOOL).
551 * test/python/.cvsignore: Add run-with-tmp-session-bus.conf.
553 * tools/dbus-monitor.1, tools/dbus-monitor.c: Merge dbus-monitor patch
554 from Ubuntu by Daniel Silverstone to allow specifying match rules on
557 2005-10-27 Ross Burton <ross@openedhand.com>
559 * dbus/dbus-marshal-header.c:
562 * glib/dbus-gobject.c:
563 Stop compiler warning.
565 2005-10-25 Ross Burton <ross@openedhand.com>
568 * dbus/dbus-server-unix.c:
569 * dbus/dbus-transport-unix.c:
571 * glib/dbus-gobject.c:
572 Add some const keywords.
574 2005-10-25 Ross Burton <ross@openedhand.com>
576 * doc/dbus-specification.xml:
577 Document the NoReply annotation.
579 * glib/dbus-binding-tool-glib.h:
580 * glib/dbus-binding-tool-glib.c:
581 Respect the NoReply annotation.
583 2005-10-24 Robert McQueen <robot101@debian.org>
585 * python/dbus_bindings.pyx (String, MessageIter): make D-Bus strings
586 derive from unicode instead of str, and encode/decode UTF-8 when
587 marshalling/unmarshalling bus messages
589 * python/introspect_parser.py: encode introspection data as UTF-8
590 before passing the buffer into libxml2
592 * test/python/test-client.py: add unicode test strings
594 * test/data/valid-service-files/.cvsignore, test/python/.cvsignore:
595 ignore generated python test files
597 2005-10-17 John (J5) Palmieri <johnp@redhat.com>
599 * glib/dbus-gvalue-utils.c (hash_free_from_gtype): handle gdouble
600 and G_TYPE_VALUE_ARRAY (DBUS_TYPE_STRUCT)
601 (gvalue_from_hash_value, hash_value_from_gvalue): handle gdouble
603 * glib/dbus-gvalue.c (dbus_gvalue_to_signature): add missing
604 DBUS_STRUCT_BEGIN_CHAR and DBUS_STRUCT_END_CHAR charaters
605 when constructing struct signatures
607 * python/_dbus.py (Bus): handle private connections using the
608 private keyword in the constructor. defaults to private=False
609 (Bus::close): new method to close a connection to the bus
611 * python/dbus_bindings.pyx (Connection::close): renamed method
612 was previously called disconnect
613 (bus_get): now supports getting a private connection
615 * python/proxies.py (ProxyMethod::__call__): check if ignore_reply
616 keyword is set to True. if it is, execute the method without waiting
618 (ProxyObject::_introspect_execute_queue): new method for executing
619 all the pending methods that were waiting for the introspect to
620 finish. this is called when introspect either succeeds or fails
621 (ProxyObject::_introspect_error_handler): call queued methods
623 2005-10-14 John (J5) Palmieri <johnp@redhat.com>
625 * python/dbus_bindings.pyx (MessageIter::append_strict): check for
626 STRUCT_BEGIN not TYPE_STRUCT in indicate we are marshalling a struct
628 * python/service.py (Object::_message_cb): handle exceptions correctly
629 by sending them over the wire to the calling app. This makes sure
630 the client returns immediately instead of waiting the 15 seconds to
633 * test/python/test-client.py (TestDBusBindings::testBenchmarkIntrospect):
634 Add a test to benchmark how long it takes to introspect a service and
635 call a method which returns a large element (pretty fast)
637 * test/python/test-service.py (TestObject::GetComplexArray): new test
638 method which pushes a lot of data
640 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
642 * python/service.py(ObjectType::_reflect_on_signal, _reflect_on_method):
643 reclaim memory outside of the loop and use del istead of just setting
646 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
648 * python/service.py (ObjectType::_reflect_on_signal): Always close
649 signal tag even when there are no arguments
651 2005-10-13 John (J5) Palmieri <johnp@redhat.com>
653 * configure.in: Set mono, mono-docs and Qt3 to default
654 to no instead of auto when building. These bindings do not
655 have full time maintainers and will not be supported for the
658 2005-10-12 John (J5) Palmieri <johnp@redhat.com>
660 patches from Michael Krivoruchko <misha at sun.com>:
662 * dbus/dbus-connection.c (_dbus_connection_queue_received_message_link,
663 _dbus_connection_message_sent,
664 _dbus_connection_send_preallocated_unlocked_no_update,
665 _dbus_connection_pop_message_link_unlocked): handle the case when path
666 is NULL when calling _dbus_verbose
668 * configure.in: check for functions getpeerucred and getpeereid
670 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): provides
671 support of auth EXTERNAL on Solaris 10+ (getpeerucred), FreeBSD 4.6+,
672 OpenBSD 3.0+ and FreeBSD 5.0+ as well as MacOSX 10.2+ (getpeereid).
673 Patch was only tested on Solaris 10 x86 so it might be issues
674 with other platforms (i.e. BSDs and MacOSX)
677 2005-10-05 John (J5) Palmieri <johnp@redhat.com>
679 * glib/dbus-gvalue.c (marshal_variant): call _dbus_gvalue_marshal
680 instead of marshal basic so we can handle recursive types in a variant
682 * test/glib/test-dbus-glib.c: Add test for marshaling recurive types
685 * test/glib/test-service-glib.c, test-service-glib.xml
686 (my_object_echo_variant [EchoVariant],
687 my_object_process_variant_of_array_of_ints123
688 [ProcessVariantOfArrayOfInts123]):
691 * python/introspect_parser.py: New module for parsing introspect
694 * python/dbus_bindings.pyx:
695 (various places): when throwing errors fix to use errormsg instead
696 of message local variable because Pyrex can get confused with other
697 message variables (initial patch by Robert McQueen
698 <robert.mcqueen at collabora.co.uk>)
699 (MessageIter::parse_signature_block): new method for getting the next
700 block in a signiture.
701 (MessageIter::append_strict): new method for appending values strictly
702 using the passed in signature instead of guessing at the type
703 (MessageItter:: append_dict, append_struct, append_array): use
704 signatures to marshal children if the signature is available
706 * python/exceptions.py (IntrospectionParserException): new exception
708 * python/proxies.py (ProxyMethod::__call__): Marshal args with
709 introspected signatures if available, else we fall back to the
710 old way of doing things.
711 (ProxyObject::_introspect_reply_handler ): parse introspection data
713 * python/service.py (ObjectType::_reflect_on_method): Properly
714 terminate <method> if there are no args in the reflection data
716 * test/python/test-client.py: add tests for talking with the GLib
717 test server. This gives us better coverage for introspection since
718 python to python will always generate arguments as variants. It also
719 allows us to test the robustness of the GLib bindings and interlanguage
723 2005-10-03 John (J5) Palmieri <johnp@redhat.com>
725 * bus/driver.c (bus_driver_handle_introspect): Add signals
726 to the introspect data. (patch from Daniel P. Berrange
727 <dan at berrange.com>)
729 * bus/dispatch.c (check_existent_ping): Add testcase for Ping
731 * dbus/dbus-connection.c (_dbus_connection_peer_filter,
732 _dbus_connection_run_builtin_filters): Changed these to
733 be unlock_no_update functions and call
734 _dbus_connection_send_unlocked_no_update instead of
735 dbus_connection_send to avoid locking errors.
737 * doc/TODO: Removed the make Ping test TODO
739 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
741 * dbus/Python.pyx: Fixed memory leaks when throwing errors.
742 We now copy the message from a DBusError and then free
743 the error object befor throwing the error
745 * glib/dbus-glib-tool.c: removed extra comma at the end of the
746 DBusBindingOutputMode enum which was causing a warning.
747 #include <time.h> so using time_t is explicitly defined
749 2005-09-26 John (J5) Palmieri <johnp@redhat.com>
751 * Integrate patches from Lennart Poettering <mzsqb at 0pointer.de>:
753 (internal_bus_get): new method that take over the heavy lifting
754 of dbus_bus_get and adds the ability to get a private connection
756 (dbus_bus_get): wrapper to internal_bus_get that provides the same
757 interface as in previous versions
758 (dbus_bus_get_private): new method that is a wrapper to
759 internal_bus_get to get a private connection to the bus
762 (dbus_bus_get_private): add as a public libdbus interface
764 - dbus-1.pc.in: output system_bus_default_address and
765 sysconfdir variables so apps can use them when compiling
767 2005-09-23 Harald Fernengel <harry@kdevelop.org>
768 * dbus/qt: New Qt bindings
770 2005-09-12 Waldo Bastian <bastian@kde.org>
772 * dbus/dbus-marshal-validate.c,
773 doc/dbus-specification.xml, test/Makefile.am,
774 test/test-names.c: allow hyphens in bus names.
776 2005-09-11 Mark McLoughlin <mark@skynet.ie>
778 * test/data/auth/fallback.auth-script: we don't
779 retry the EXTERNAL method when we know its going
782 2005-09-11 Mark McLoughlin <mark@skynet.ie>
784 * dbus/dbus-connection-internal.h: rename
785 (add|remove|toggle)_(watch|timeout) to unlocked()
787 * dbus/dbus-connection.c: ditto.
789 * dbus/dbus-timeout.c, dbus/dbus-transport-unix.c:
790 Update some callers for the renaming.
792 2005-09-10 Mark McLoughlin <mark@skynet.ie>
794 * dbus/dbus-auth.c: (record_mechanisms): don't
795 retry the first auth mechanism because we know
796 we're just going to get rejected again.
798 * dbus/dbus-keyring.c: (_dbus_keyring_reload):
799 Fix thinko ... and what a nasty little bugger to
800 track down you were ...
802 * dbus/dbus-connection.c:
803 (_dbus_connection_add_watch),
804 (_dbus_connection_remove_watch): add note about
805 these needing the connection to be locked.
806 (_dbus_connection_get_dispatch_status_unlocked):
807 set status to DATA_REMAINS when we queue the
808 disconnected message.
811 (bus_dispatch): fix warning.
812 (check_existent_service_no_auto_start):
813 Expect ChildSignaled error too.
814 (check_existent_hello_from_self): fix another
817 2005-09-08 Joe Shaw <joeshaw@novell.com>
819 Patches from James Willcox <snorp@snorp.net>
821 * mono/Makefile.am: Add Int16.cs and UInt16.cs
823 * mono/DBusType/Array.cs: Handle multidimensional arrays, and
824 support array "out" parameters.
826 * mono/DBusType/Int16.cs, mono/DBusType/UInt16.cs: New files,
827 for 16-bit int support.
829 2005-09-06 John (J5) Palmieri <johnp@redhat.com>
833 * Patch from Steve Grubb:
834 - bus/activation.c (bus_activation_service_reload_test): clean up
836 - dbus/dbus-keyring.c (_dbus_keyring_reload): fix conditional
837 - dbus/dbus-message-factory.c (generate_special): fix a couple of
838 buffer overflows in the test suite. This is non critical because
839 it can not be exploited and this code is only run when doing a
842 * Patch from Yaakov Selkowitz: Build fixes for Cygwin
843 - configure.in: Don't check and link against kdecore, only qt headers
844 - dbus/Makefile.am: Add -no-undefined to libdbus_1_la_LDFLAGS
845 - gcj/org/freedesktop/dbus/Makefile.am:
846 add libdbus_gcj_1_la_LDFLAGS = -no-undefined
847 - glib/Makefile.am: Add -no-undefined to libdbus_glib_1_la_LDFLAGS
848 and $(DBUS_GLIB_LIBS) to dbus_binding_tool_LDADD
849 - qt/Makefile.am: Add -no-undefined to libdbus_qt_1_la_LDFLAGS
850 - tools/Makefile.am: Add platform extentions to binaries
851 (i.e. .exe on windows)
854 - Make it so if no suitable version of python is found we only
855 disable building python instead of exiting the configure script
856 - Require version 2.4 of glib for glib bindings
859 * python/__init__.py: Sync version with libdbus to (0,50,0)
861 2005-09-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
863 * dbus/dbus-object-tree.c (find_subtree_recurse):
864 a couple of optimizations (bug #710):
865 - do a binary search in the tree
866 - insert a new child at the right place directly, no need for
868 - do the "double alloc" thing when allocating children
870 2005-08-31 John (J5) Palmieri <johnp@redhat.com>
872 * python/Makefile.am: Break on pyrexc errors instead of ignoring them
874 * python/dbus_bindings.pyx: Memory management foo
875 (global): remove hacky _user_data_references global list
876 (GIL_safe_cunregister_function_handler): userdata now stuffed into
877 tuples. Unref user_data
878 (GIL_safe_cmessage_function_handler): userdata now stuffed into tuples
879 (Connection::__del__): Remove and replace with __dealloc__ method
880 (Connection::add_filter): Stuff user_data into a tuple. Use Py_INCREF
881 to keep tuple from being deallocated instead of the global var hack
882 (Connection::register_object_path): Stuff user_data into a tuple.
883 Use Py_INCREF to keep tuple from being deallocated instead of the
885 (Connection::register_fallback): Stuff user_data into a tuple.
886 Use Py_INCREF to keep tuple from being deallocated instead of the
888 (GIL_safe_pending_call_notification): Don't unref the message
889 because it gets unreffed when going out of scope. Py_XDECREF
891 (PendingCall::__del__): Remove and replace with __dealloc__ method
892 (PendingCall::set_notify): ref the pending call because we will
893 need it to stick around for when the notify callback gets called
894 (Message::__del__): Remove and replace with __dealloc__ method
896 * python/dbus_glib_bindings.pyx (init_gthreads): Changed to
897 gthreads_init to match up with the dbus call
899 * python/glib.py (init_threads): Changed to threads_init to match
900 up with gobject.threads_init(). init_threads is kept for backwards
901 compat but will most likely be deprecated in the future
903 * test/python/test-client.py:
904 - revamp to use Python's unittest functionality
905 - add async call tests
906 - setup threads in glib and dbus so we make sure locks are working
908 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
910 * python/dbus_bindings.pyx
911 (_pending_call_notification, cunregister_function_handler,
912 cmessage_function_handler): All callback functions have been rearranged
913 to workaround a bug in Pyrex when working with the GIL which is Python's
914 global lock when dealing with threads. They have been split into
915 a wrapper function (which assumes the name of the old function) and
916 a _GIL_safe_<function name> function which contains the functionality
917 of the old function. This ensures that Pyrex does not write code
918 the lock is released.
921 2005-08-30 John (J5) Palmieri <johnp@redhat.com>
923 * python/dbus_bindings.pyx (_pending_call_notification): Obtain the
924 GIL global lock when calling back into Python
926 2005-08-29 John (J5) Palmieri <johnp@redhat.com>
930 * Add Havoc's patch that never got applied to HEAD (Bug #2436):
932 * bus/policy.c (bus_policy_allow_user): change default "user is
933 allowed" to be "user has same uid as the bus itself"; any
934 allow/deny rules will override.
936 * bus/session.conf.in: don't allow all users, since now by default
937 the user that ran the bus can connect.
939 2005-08-26 Colin Walters <walters@verbum.org>
941 * tools/dbus-print-message.c (print_message): Flush stdout
942 after printing a message, so that redirecting to a file, then
943 hitting Ctrl-C works.
945 2005-08-25 John (J5) Palmieri <johnp@redhat.com>
947 * python/dbus_bindings.pyx: Tracked down a major memleak and fixed it
948 (EmptyMessage): new class that subclasses Message. This is a workaround
949 to a Pyrex bug that fails to call __del__ when the Message object goes out
950 of scope. For some reason subclassing Message fixes this bug
951 (Bus::send_with_reply_and_block): use EmptyMessage instead of Message
952 - s/Message(_create=0)/EmptyMessage everywhere else
954 * test/python/test-{server|client}.py: add the python/.libs directory
955 to the lookup path so dbus_bindings and dbus_glib_bindings don't
956 get picked up from the system
958 2005-08-25 Colin Walters <walters@verbum.org>
960 * glib/dbus-gproxy.c (dbus_g_proxy_call): Doc update, thanks
961 to Ryan Lortie for the suggestion.
963 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
965 * test/python: Add python regression test
967 * configure.in: Add test/python/Makefile
969 * test/Makefile.am: Add the python directory to SUBDIRS
971 2005-08-24 John (J5) Palmieri <johnp@redhat.com>
976 (Interface::connect_to_signal): propigate keywords for match on args
977 (Bus::add_signal_receiver): Fix typo s/dbus_inteface/dbus_interface
979 * python/proxies.py (ProxyObject::connect_to_signal):
980 propigate keywords for match on args
982 * Makefile.am: point everything to pyexecdir since python borks
985 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
989 2005-08-23 Colin Walters <walters@verbum.org>
991 * test/glib/Makefile.am: Don't multiply-define EXTRA_DIST.
993 2005-08-23 John (J5) Palmieri <johnp@redhat.com>
995 * python/dbus_glib_bindings.pyx: reorder imports and c definitions
996 to fix some wranings. We now use dbus_bindings.DBusConnection instead
997 of defining DBusConnection ourselves.
999 2005-08-18 John (J5) Palmieri <johnp@redhat.com>
1001 * python/dbus.pth: New path file to fix up problems when installing
1002 c libraries to lib64 and python files to lib.
1004 * python/Makefile.am: install dbus.pth in the correct spot
1006 2005-08-17 John (J5) Palmieri <johnp@redhat.com>
1007 * ChangeLog: clean up my last entry a bit
1009 * doc/introspect.xsl: New stylesheet for converting introspection data
1010 into browser renderable xhtml. Contributed by Lennart Poettering.
1012 * doc/introspect.dtd: Fixups in the introspect format from Lennart
1015 * doc/dbus-tutorial.xml:
1016 - Add Colin Walter to the Authors section for authoring the GLib
1018 - Add descriptions of the new signature and type functionality
1019 in the Python complex type mapping section
1020 - Add a sidenote on the new args matching functionality in
1022 - Fixed up some of the examples to use the gobject.MainLoop
1026 (Bus::_create_args_dict): New. Converts a hash of arg matches
1027 to a more useable format
1028 (Bus::add_signal_receiver): add a **keywords parameter for catching
1029 arg match parameters
1030 (Bus::remove_signal_receiver): add a **keywords parameter for catching
1031 arg match parameters
1033 * python/matchrules.py:
1034 (MatchTree::exec_matches): Check for arg matches
1035 (SignalMatchRule::add_args_match): New method
1036 (SignalMatchRule::execute): Added args_list parameter as an optimization
1037 so we don't have to marshal the args more than once
1038 (SignalMatchRule::match_args_from_list): New method that checks to see
1039 if the rule's arg matches match an argument list. Only arguments
1040 set in the rule are checked.
1041 (SignalMatchRule::match_args_from_rule): New method that checks to see
1042 if the rule's arg matches match another rule's. All args have to match
1043 in order for this method to return true. If either rule has more args
1044 then it is not a match.
1045 (SignalMatchRule::is_match): Add args match
1046 (SignalMatchRule::repr): Add args to the final output if they exist
1048 2005-08-17 Ross Burton <ross@burtonini.com>
1050 * glib/dbus-gproxy.c:
1051 (dbus_g_proxy_call_no_reply): unref the message once sent.
1052 (dbus_g_proxy_call): protect against NULL proxy.
1054 2005-08-16 John (J5) Palmieri <johnp@redhat.com>
1056 * python/__init__.py: Version updated (0, 43, 0)
1058 * python/dbus_bindings.pyx:
1059 - Fixed type objects to have self passed into __init__
1060 - Added the Variant type
1061 - Add the ability to specify types or signatures for Array, Variant
1063 (Connection::send_with_reply_handlers): return a PendingCall object
1064 (_pending_call_notification): handle the case when an error is returned
1065 without an error message in the body
1066 (MessageIter::get_boolean): return True or False instead of an integer
1067 (MessageIter::python_value_to_dbus_sig): add direct checking of types
1068 and add checks for objects with embeded signatures or types (Array,
1069 Variant and Dictionary)
1070 (MessageIter::append_byte): handle case when the value is a dbus.Byte
1071 (MessageIter::append_dict): handle embeded types or signatures
1072 (MessageIter::append_array): handle embeded types or signatures
1073 (MessageIter::append_variant): new method
1075 * python/proxies.py:
1076 (DeferedMethod): New. Dummy executable object used when queuing calls
1077 blocking on introspection data
1078 (ProxyMethod::__call__): add the timeout keyword for specifying longer
1079 or shorter timeouts for method calls
1080 (ProxyObject): Add first pass at an introspection state machine
1081 (ProxyObject::__init__): Add introspect keyword for turing off an on
1083 (ProxyObject::_Introspect): Internal Introspect call that bypasses
1084 the usual mechanisms for sending messages. This is to avoid a deadlock
1085 where the Intospect call would be queued waiting for the Introspect
1087 (ProxyObject::_introspect_reply_handler): New. This method is called
1088 when introspection returns with no error
1089 (ProxyObject::_introspect_error_handler): New. This method is called
1090 when introspection encounters an error
1091 (ProxyObject::__getattr__): Code to handle different introspection
1092 states. Queue async calls or block blocking calls if we are
1093 introspecting. Pass through as normal if we are not or are done with
1096 * python/service.py: Import signal and method from decorators.py
1098 * python/types.py: Add Variant type
1100 2005-08-16 Colin Walters <walters@verbum.org>
1102 * glib/dbus-gobject.c (dbus_set_g_error): Don't lose if the
1103 DBusError message is NULL.
1105 2005-08-09 Havoc Pennington <hp@redhat.com>
1107 * dbus/dbus-errors.c: apply patch from Timo Teras to make a
1108 malloc'd copy of the name parameter
1110 2005-08-09 Havoc Pennington <hp@redhat.com>
1112 * dbus/dbus-message.c (dbus_message_set_reply_serial): print
1113 warning if the reply serial is set to 0
1115 2005-08-04 Colin Walters <walters@verbum.org>
1117 * glib/dbus-gvalue-utils.h (_dbus_g_type_specialized_builtins_init)
1118 (dbus_g_type_is_fixed, dbus_g_type_fixed_get_size)
1119 (dbus_gvalue_set_from_pointer, dbus_g_hash_table_value_foreach)
1120 (dbus_g_hash_table_insert_values, dbus_g_hash_table_insert_steal_values)
1121 (dbus_gtype_is_valid_hash_key, dbus_gtype_is_valid_hash_value)
1122 (dbus_g_hash_func_from_gtype, dbus_g_hash_free_from_gtype)
1123 (dbus_g_hash_equal_from_gtype, dbus_gvalue_stor, dbus_gvalue_take):
1124 * glib/dbus-gvalue.h (dbus_g_value_types_init)
1125 (dbus_gvalue_demarshal, dbus_gvalue_demarshal_variant)
1126 (dbus_gvalue_demarshal_message, dbus_gvalue_marshal):
1128 Prefix name with _ to ensure they're not exported. All callers
1131 * glib/dbus-gvalue.c (typecode_to_gtype)
1132 (dbus_typecode_maps_to_basic, basic_typecode_to_gtype)
1133 (signature_iter_to_g_type_dict)
1134 (signature_iter_to_g_type_array)
1135 (dbus_gtype_from_signature_iter, dbus_gtype_from_signature)
1136 (dbus_gtypes_from_arg_signature):
1137 Move to dbus-gsignature.c.
1139 * glib/dbus-binding-tool-glib.c (dbus_binding_tool_output_glib_server): Call
1140 dbus_g_type_specialized_builtins_init instead of dbus_g_value_types_init.
1141 (dbus_binding_tool_output_glib_client): Ditto.
1143 * glib/Makefile.am (DBUS_GLIB_INTERNALS): Add dbus-gsignature.c
1144 and dbus-gsignature.h
1146 * test/glib/test-service-glib.c (my_object_rec_arrays): Delete
1149 2005-08-03 Colin Walters <walters@verbum.org>
1151 * glib/dbus-gobject.c: Add tests on hardcoded object info; this should
1152 catch any incompatible changes accidentally made.
1154 2005-08-03 Havoc Pennington <hp@redhat.com>
1156 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): fix
1157 typo, from Julien Puydt
1159 * bus/connection.c (bus_connection_disconnected): we were always
1160 doing a wait_for_memory due to a buggy loop, found by Timo Hoenig
1162 2005-08-01 Colin Walters <walters@verbum.org>
1164 Patch from Joe Markus Clarke:
1166 * glib/dbus-gidl.c (property_info_unref, arg_info_unref): Fix
1169 2005-08-01 Colin Walters <walters@verbum.org>
1171 Patch from Joe Markus Clarke:
1173 * tools/dbus-send.c (main):
1175 Don't use C99 style initializers (bug #3933).
1177 2005-08-01 Colin Walters <walters@verbum.org>
1179 Patch from Joe Markus Clarke:
1181 * glib/dbus-gvalue.c (dbus_g_value_types_init):
1182 * glib/dbus-gvalue-utils.c (dbus_g_type_specialized_builtins_init)
1183 * glib/dbus-gobject.c (write_interface):
1185 Don't use C99 style initializers (bug #3933).
1187 2005-07-31 Havoc Pennington <hp@redhat.com>
1189 * tools/dbus-viewer.c (load_child_nodes): fix invocation of
1190 dbus_g_proxy_call, fix from Piotr Zielinski bug #3920
1192 2005-07-30 Havoc Pennington <hp@redhat.com>
1194 * fix a bunch of Doxygen warnings and mistakes
1196 2005-07-30 Havoc Pennington <hp@redhat.com>
1198 * dbus/dbus-sysdeps.c (_dbus_string_parse_uint): remove #ifdef
1199 DBUS_BUILD_TESTS since it's now used in production code
1201 2005-07-29 Havoc Pennington <hp@redhat.com>
1203 * test/glib/test-profile.c (write_junk): initialize the junk
1204 buffer so valgrind doesn't have a breakdown
1206 2005-07-29 Havoc Pennington <hp@redhat.com>
1208 * bus/signals.c (bus_signals_test): add match_rule_equal() tests
1209 (match_rule_matches): remove unused arg
1210 (test_matching): add tests for match_rule_matches()
1212 * bus/signals.c (bus_match_rule_parse_arg_match): add ability to
1213 do arg0='foo' arg5='bar' in the match rules
1214 (match_rule_matches): don't match if the arg0='foo' doesn't match.
1216 * dbus/dbus-protocol.h (DBUS_MAXIMUM_MATCH_RULE_ARG_NUMBER): add this
1218 2005-07-29 Ross Burton <ross@openedhand.com>
1220 * dbus/dbus-connection.c:
1221 Don't create a DBusCondVar which is never used.
1223 2005-07-27 Ross Burton <ross@openedhand.com>
1225 * dbus/dbus-message.c:
1226 Reduce the size of the maximum cached message to 10K.
1228 2005-07-25 Ross Burton <ross@openedhand.com>
1230 * glib/dbus-gproxy.c:
1231 Remove matches when all proxies are unregistered.
1233 2005-07-24 Colin Walters <walters@verbum.org>
1235 * glib/dbus-gvalue.c (signature_iter_to_g_type_array): Don't require
1236 typedata; recursive arrays won't have it.
1238 * test/glib/test-dbus-glib.c:
1239 * test/glib/test-service-glib.c:
1240 * test/glib/test-service-glib.xml: Add recursive arrays tests.
1242 2005-07-20 John (J5) Palmieir <johnp@redhat.com>
1244 * python/_dbus.py, _util.py, decorators.py, extract.py, matchrules.py.
1245 proxies.py, service.py: Cleanup of code after running it through the
1246 pyflakes code checker mostly dealing with undefined names.
1247 (Bug #3828, Patch from Anthony Baxter <anthony@interlink.com.au>)
1249 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1251 * NEWS: Update to 0.35.2
1253 2005-07-17 John (J5) Palmieri <johnp@redhat.com>
1255 * python/_dbus.py: Remove import of the dbus.services
1256 module as it no longer exists (patch from Dimitur Kirov)
1258 * python/service.py (Object::__init__): Fixed typo
1259 s/name/bus_name (patch from Dimitur Kirov)
1261 * python/examples/example-signal-emitter.py: import dbus.glib
1262 to get the main loop and use glib mainloop instead of gtk so
1263 X doesn't have to be running.
1265 * python/examples/example-signal-recipient.py: import dbus.glib
1266 to get the main loop and use glib mainloop instead of gtk so
1267 X doesn't have to be running. Import the decorators module
1270 * test/glib/Makefile.am: Added DIST_EXTRA files that distcheck
1271 didn't pick up on but are needed to build
1273 * configure.in: upped version to 0.35.2
1275 * bus/driver.c, bus/selinux.c, bus/selinux.h, dbus/dbus-protocol.h:
1276 added Colin Walters' SELinux API rename patch from head
1277 s/unix sercurity context/selinux security context/
1279 2005-07-16 John (J5) Palmieri <johnp@redhat.com>
1281 * python/Makefile.am: dbus_binding.pxd.in should be included
1282 in EXTRA_DIST not dbus_binding.pxd
1283 fix up $(srcdir) hopefully for the last time
1285 * NEWS: Update to 0.35.1
1287 2005-07-16 Colin Walters <walters@verbum.org>
1289 * bus/driver.c (bus_driver_handle_get_connection_selinux_security_context): Renamed
1290 from bus_driver_handle_get_connection_unix_security_context. Update for
1292 (message_handlers): Update for renames.
1294 * bus/selinux.c (bus_selinux_allows_send): Handle OOM on
1295 _dbus_string_init failure correctly.
1296 (bus_selinux_append_context): Convert SID to context. Append it
1298 (bus_selinux_shutdown): Handle the case where bus_selinux_full_init
1301 * bus/selinux.h: Update prototype.
1303 * dbus/dbus-protocol.h (DBUS_ERROR_SELINUX_SECURITY_CONTEXT_UNKNOWN): Renamed
1304 from DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN.
1306 2005-07-15 Colin Walters <walters@verbum.org>
1308 * doc/TODO: Add note about convenience wrappers.
1310 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1312 * NEWS: Update to 0.35
1314 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1316 * glib/Makefile.am: Add make-dbus-glib-error-switch.sh to EXTRA_DIST
1317 so distcheck doesn't fail
1319 * glib/examples/Makefile.am: Add example-service.xml and
1320 example-signal-emitter.xml to EXTRA_DIST so distcheck doesn't fail
1322 * glib/examples/statemachine/Makefile.am: Add statemachine.xml and
1323 statemachine-server.xml to EXTRA_DIST so distcheck doesn't fail
1325 * python/Makefile.am: Preprend $(srcdir)/ to source files so the
1326 compiler looks in the right places during distcheck
1328 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1330 * glib/example/Makefile.am: Fix a typo which cause make distcheck
1333 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1335 * python/examples/example-service.py,
1336 python/examples/example-signal-emitter.py: Fixed up examples
1339 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1341 * python/__init__.py: Upped to version (0,42,0) because of
1344 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1346 * ChangeLog: fix date in last entry
1348 * configure.in, bus/system.conf.in: add the ability to configure
1349 the system bus user at compiletime with the --with-dbus-user flag
1350 (patch from Kristof Vansant)
1352 2005-07-15 John (J5) Palmieri <johnp@redhat.com>
1354 * bus/dispatch.c, test/test-service.c: Add testcase
1355 for sending messages to oneself (TODO item).
1357 * python/service.py (class Object): Swap ordering of bus_name
1358 and object_path parameters to better support inheritance.
1360 * doc/dbus-tutorial.xml: change Python docs to reflect change
1361 in parameter ordering and fix the inheritance section.
1363 * doc/TODO: remove sending message to oneself TODO item
1365 2005-07-15 Ross Burton <ross@openedhand.com>
1367 * glib/dbus-gproxy.c:
1368 Fix a leak when calling methods via the proxy.
1370 2005-07-15 Colin Walters <walters@verbum.org>
1372 * bus/selinux.c (bus_selinux_append_context): Wrap in
1375 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1377 * python/_dbus.py (Bus::remove_signal_receiver):
1378 don't add a callback to the match if none has been passed in
1380 * python/matchrules.py (SignalMatchTree::remove): if the rule
1381 being matched does not have a callback treat it as a wildcard
1384 * doc/dbus-tutorial.xml: Add Python tutorial
1386 2005-07-14 Colin Walters <walters@verbum.org>
1389 (bus_driver_handle_get_connection_unix_security_context): New function.
1390 (message_handlers): Add.
1392 * bus/selinux.c (bus_selinux_append_context): New function; appends
1393 security context to message.
1395 * bus/selinux.h: Prototype.
1397 * dbus/dbus-protocol.h (DBUS_ERROR_UNIX_SECURITY_CONTEXT_UNKNOWN): New.
1399 2005-07-14 John (J5) Palmieri <johnp@redhat.com>
1401 * bus/activation.c: clean up all tabs to be 8 spaces
1402 (bus_activation_activate_service): make sure we clean up
1405 * bus/dispatch.c: clean up all tabs to be 8 spaces
1406 (check_shell_fail_service_auto_start): New function
1407 tests to make sure we get fail properly when trying to auto start a service
1408 with a faulty command line
1409 (check_shell_service_success_auto_start): New function tests to make sure
1410 auto started services get the arguments on the command line
1412 * test/test-shell-service.c: Added service for testing auto-starting with
1413 command line arguments
1415 * test/data/valid-service-files/debug-shell-echo-fail.service.in,
1416 test/data/valid-service-files/debug-shell-echo-success.service.in:
1417 Added service files for testing auto-starting with command line arguments
1419 * */.cvsignore: added a bunch of generated files to various .cvsignore files
1421 2005-07-14 Rodrigo Moya <rodrigo@novell.com>
1423 * dbus/dbus-shell.[ch]: copy/pasted code from GLib.
1425 * dbus/Makefile.am: added new files to build.
1427 * bus/activation.c (bus_activation_activate_service): support
1428 activation commands with parameters.
1430 * test/shell-test.c: added test program for the shell parsing
1433 2005-07-13 David Zeuthen <davidz@redhat.com>
1435 * tools/dbus-send.c (append_arg, type_from_name): Also support 16 and
1436 64 bit signed and unsigned parameters
1438 2005-07-13 John (J5) Palmieri <johnp@redhat.com>
1440 * python/.cvsignore: remove dbus_bindings.pyx, add dbus_bindings.pxd
1442 * python/service.py (class Name): renamed BusName to make it clearer
1443 what the object is for (a name on the bus)
1445 * python/examples/example-service.py,
1446 python/examples/example-signal-emitter.py: change the Name object to
1449 2005-07-12 Colin Walters <walters@verbum.org>
1451 Patch from Jim Gettys <Jim.Gettys@hp.com>.
1453 * tools/dbus-launch.c: Include sys/select.h.
1455 2005-07-12 John (J5) Palmieri <johnp@redhat.com>
1456 * python/dbus_bindings.pyx.in: removed
1458 * python/dbus_bindings.pyx: Added.
1459 - Fixed some memleaks (patch from
1460 Sean Meiners <sean.meiners@linspireinc.com>)
1461 - Broke out the #include "dbus_h_wrapper.h" and put it in its
1462 own pxd file (Pyrex definition)
1463 - Broke out glib dependancies into its own pyx module
1465 * python/dbus_bindings.pdx: Added.
1466 - Defines C class Connection for exporting to other modules
1468 * python/dbus_glib_bindings.pyx: Added.
1469 - New module to handle lowlevel dbus-glib mainloop integration
1471 * python/glib.py: Added.
1472 - Registers the glib mainloop when you import this module
1474 * python/services.py: Removed (renamed to service.py)
1476 * python/service.py: Added.
1477 - (class Server): renamed Name
1479 * python/__init__.py: Bump ro version (0,41,0)
1480 -don't import the decorators or service module
1481 by default. These now reside in the dbus.service namespace
1483 * python/_dbus.py (Bus::__init__): Add code run the main loop
1484 setup function on creation
1486 * python/examples/example-service.py,
1487 python/examples/example-signal-emitter.py: update examples
1489 * python/examples/gconf-proxy-service.py,
1490 python/examples/gconf-proxy-service2.py: TODO fix these up
1492 * doc/TODO: Addition
1493 - Added a Python Bindings 1.0 section
1494 - added "Add match on args or match on details to match rules"
1497 2005-07-12 Colin Walters <walters@verbum.org>
1499 * glib/examples/statemachine/Makefile.am (statemachine-server-glue.h)
1500 (statemachine-glue.h):
1501 * glib/examples/Makefile.am (example-service-glue.h)
1502 (example-signal-emitter-glue.h):
1503 * glib/Makefile.am (dbus-glib-error-switch.h):
1504 Add libtool --mode=execute so we use the built library instead
1505 of any installed one.
1507 2005-07-11 Colin Walters <walters@verbum.org>
1509 * glib/dbus-gvalue.c (struct _DBusGValue): Delete.
1510 (dbus_g_value_types_init): Remove assertion.
1511 (dbus_g_value_get_g_type, dbus_g_value_open)
1512 (dbus_g_value_iterator_get_values, dbus_g_value_get_signature)
1513 (dbus_g_value_copy, dbus_g_value_free): Delete unimplemented
1514 functions related to DBusGValue. Now we marshal/demarshal
1515 structures as GValueArray.
1516 (dbus_gtype_from_signature_iter): Return G_TYPE_VALUE_ARRAY for
1518 (signature_iter_to_g_type_array): Don't call
1519 signature_iter_to_g_type_struct.
1520 (signature_iter_to_g_type_struct): Delete.
1521 (dbus_gvalue_to_signature): Delete.
1522 (dbus_gvalue_to_signature): New function with same name as other
1523 one; we can convert structures to signatures.
1524 (demarshal_valuearray): New function.
1525 (get_type_demarshaller): Use it.
1526 (demarshal_recurse): Delete.
1527 (marshal_proxy): New function.
1528 (marshal_map): Warn if we can't determine signature from type.
1529 (marshal_collection_ptrarray): Ditto.
1530 (marshal_collection_array): Ditto.
1531 (get_type_marshaller): Use marshal_valuearray.
1532 (marshal_recurse): Delete.
1533 (_dbus_gvalue_test): Add some tests.
1535 * dbus/dbus-glib.h (struct _DBusGValueIterator):
1536 (dbus_g_value_get_g_type, DBUS_TYPE_G_VALUE)
1537 (dbus_g_value_open, dbus_g_value_iterator_get_value)
1538 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
1539 (dbus_g_value_free): Remove prototypes.
1541 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_lookup_function): Handle
1544 * glib/examples/example-service.c:
1545 * glib/examples/example-client.c: Implement GetTuple.
1547 * test/glib/test-dbus-glib.c:
1548 * test/glib/test-service-glib.c:
1549 * test/glib/test-service-glib.xml: Add structure tests.
1551 2005-07-10 Colin Walters <walters@verbum.org>
1553 * doc/TODO: Knock off some GLib items with this patch.
1555 * glib/dbus-gvalue-utils.c (_dbus_gtype_can_signal_error)
1556 (_dbus_gvalue_signals_error): New functions.
1558 * glib/dbus-gvalue-utils.h: Prototype them.
1560 * glib/dbus-gobject.c (arg_iterate): Update to handle return vals
1561 and change to not output const/retval flags for input args. All
1563 (invoke_object_method): Refactor to handle return values. Add
1564 some more comments in various places. Remove debug g_print.
1566 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_RETURNVAL): New.
1568 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_marshal_name):
1570 (compute_gsignature): New function; refactored from code from
1571 compute_marshaller and compute_marshaller_name. Enhance to
1572 handle return values and async ops more cleanly. Update for
1573 async ops returning NONE instead of BOOLEAN.
1574 (compute_marshaller, compute_marshaller_name): Call compute_gsignature
1575 and output appropriate string.
1576 (generate_glue): Handle return value annotation. Also don't dump
1577 constness flag for input arguments.
1579 * glib/Makefile.am (DBUS_GLIB_INTERNALS): New variable; contains
1580 files shared between installed library and utilities.
1581 (libdbus_glib_1_la_SOURCES): Move some stuf into DBUS_GLIB_INTERNALS.
1582 (libdbus_gtool_la_SOURCES): Suck in DBUS_GLIB_INTERNALS so the
1583 binding tool can access gtype utility functions.
1585 * test/glib/test-service-glib.c:
1586 * test/glib/test-service-glib.xml:
1587 * test/glib/test-dbus-glib.c: Add some tests for return values.
1589 2005-07-09 Colin Walters <walters@verbum.org>
1591 * glib/dbus-gparser.c (parse_annotation): Add annotations to
1592 argument if available, not method.
1594 * glib/dbus-gobject.c (arg_iterate): More verbose warnings.
1595 (invoke_object_method): First, remove some redundant
1596 GValues (object_value, error_value) in favor of working on
1597 array directly. Second, rework constness to be less buggy.
1598 Now we iterate directly over the argument metadata instead
1599 of parallel iterating over output signature and metadata.
1601 * glib/dbus-glib-tool.h: Add INVALID_ANNOTATION error.
1603 * glib/dbus-binding-tool-glib.c (generate_glue): Barf on const
1604 annotation on input args.
1606 2005-07-09 Colin Walters <walters@verbum.org>
1608 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_CONST):
1611 * glib/dbus-binding-tool-glib.c (generate_glue): Handle Const
1614 * glib/dbus-gobject.c (arg_iterate): Update to parse constval too.
1615 (method_dir_signature_from_object_info): Handle arg_iterate change.
1616 (write_interface): Ditto.
1617 (lookup_object_info): Don't barf if format_version is > 0.
1618 (invoke_object_method): Handle arg constness.
1620 * glib/dbus-gidl.c (struct ArgInfo): Add annotations.
1621 (arg_info_new): Create.
1622 (arg_info_unref): Destroy.
1623 (arg_info_get_annotations, arg_info_get_annotation)
1624 (arg_info_add_annotation): New functions.
1626 * glib/dbus-gidl.h: Prototype them.
1628 * glib/dbus-gparser.c (parse_annotation): Allow annotations in
1629 args, disallow them in properties.
1630 (parse_annotation): Handle arg annotations.
1632 * test/glib/test-service-glib.xml:
1633 * test/glib/test-service-glib.c: Update to make some methods
1636 2005-07-08 Colin Walters <walters@verbum.org>
1638 * test/glib/test-service-glib.xml:
1639 * test/glib/test-service-glib.c:
1640 * test/glib/test-dbus-glib.c: Test a{sv}.
1642 * glib/examples/statemachine/statemachine.c:
1643 * glib/examples/statemachine/statemachine-server.c:
1644 * glib/examples/statemachine/statemachine-client.c: Fix some bugs,
1645 add progress bar, etc.
1647 * glib/dbus-gvalue.c (register_array, register_dict): Delete; not
1648 needed anymore due to generic array/map marshalling.
1649 (dbus_g_value_types_init): Don't register basic arrays or the
1651 (dbus_gtype_from_signature_iter): Don't try to recurse into
1653 (dbus_gtype_to_signature): Check collection/map before type
1655 (demarshal_garray_basic): Renamed to demarshal_collection_array.
1656 (demarshal_ghashtable): Renamed to demarshal_map; fix to use new
1657 generic map creation/append functions instead of hash table
1659 (get_type_demarshaller): Handle maps.
1660 (demarshal_collection): Dispatch on collection type to either
1661 demarshal_collection_ptrarray or demarshal_collection_array.
1662 (get_type_marshaller): Handle maps.
1663 (marshal_collection): Dispatch collection type to either
1664 marshal_collection_ptrarray or marshal_collection_array.
1665 (_dbus_gvalue_test): New test.
1667 * glib/dbus-gvalue-utils.c (unset_and_free_g_value): New function.
1668 (hash_free_from_gtype): Use it to free GValues.
1669 (hashtable_append): New function.
1670 (ptrarray_append): Fix prototype.
1671 (slist_append): Ditto.
1672 (_dbus_gvalue_utils_test): Extend tests.
1674 * glib/dbus-gtype-specialized.c
1675 (dbus_g_type_specialized_init_append): Renamed from
1676 dbus_g_type_specialized_collection_init_append. Remove const from
1677 value, since we steal it.
1678 (dbus_g_type_specialized_map_append): New function.
1680 * glib/dbus-gtype-specialized.h: Update prototypes.
1681 Add DBusGTypeSpecializedMapAppendFunc.
1683 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1686 * glib/dbus-gtest.h: Prototype it.
1688 2005-07-08 Ross Burton <ross@openedhand.com>
1691 Add DBysGAsyncData for the async bindings.
1693 * glib/dbus-binding-tool-glib.c:
1694 Re-enable the async bindings.
1696 * test/glib/test-dbus-glib.c:
1697 Add a test for the generated async bindings.
1699 2005-07-08 Colin Walters <walters@verbum.org>
1701 * doc/TODO: Update GLib todo bits, also add a post-1.0 TODO for a
1704 2005-07-08 Colin Walters <walters@verbum.org>
1706 * tools/Makefile.am: Kill of print-introspect in favor of using
1707 dbus-send --print-reply=literal.
1709 * test/glib/test-service-glib.xml:
1710 * test/glib/test-service-glib.c (my_object_get_objs): New test
1713 * test/glib/test-dbus-glib.c (echo_received_cb): Free echo data.
1714 (main): Test GetObjs.
1716 * glib/examples/statemachine/Makefile.am:
1717 * glib/examples/statemachine/sm-marshal.list:
1718 * glib/examples/statemachine/statemachine-client.c:
1719 * glib/examples/statemachine/statemachine-server.c:
1720 * glib/examples/statemachine/statemachine-server.xml:
1721 * glib/examples/statemachine/statemachine.c:
1722 * glib/examples/statemachine/statemachine.h:
1723 * glib/examples/statemachine/statemachine.xml:
1727 * glib/examples/example-service.c (main): Move invocation
1728 of dbus_g_object_type_install_info earlier, to emphasize it
1729 should only be done once.
1731 * glib/examples/example-signal-emitter.c (main): Ditto.
1733 * glib/examples/Makefile.am (SUBDIRS): Include statemachine.
1735 * glib/dbus-gvalue.h (dbus_gtype_to_signature)
1736 (dbus_gvalue_marshal): Update prototypes.
1738 * glib/dbus-gvalue.c: Update all marshalling functions to take
1739 const GValue instead of GValue.
1740 (signature_iter_to_g_type_array): Return a GPtrArray for nonfixed
1742 (dbus_gvalue_to_signature): Update for dbus_gtype_to_signature
1744 (dbus_gtype_to_signature): Handle generic collecitons and maps.
1745 Return a newly-allocated string.
1746 (demarshal_proxy, demarshal_object_path, demarshal_object)
1747 (demarshal_strv, demarshal_ghashtable): Set error, don't assert if
1748 we get the wrong types from message.
1749 (get_type_demarshaller): New function, extracted from
1750 dbus_gvalue_demarshal.
1751 (demarshal_collection): New function, demarshals generic
1753 (dbus_gvalue_demarshal): Just invoke result of
1754 get_type_demarshaller. Throw error if we don't have one.
1755 (marshal_garray_basic): Abort on OOM.
1756 (get_type_marshaller): New function, extracted from
1757 dbus_gvalue_marshal.
1758 (collection_marshal_iterator, marshal_collection): New functions;
1759 implements generic marshalling for an iteratable specialized
1761 (dbus_gvalue_marshal): Just invoke result of get_type_marshaller.
1763 * glib/dbus-gvalue-utils.c (gvalue_from_ptrarray_value): Handle
1765 (ptrarray_value_from_gvalue): Ditto.
1766 (ptrarray_append, ptrarray_free): New functions.
1767 (slist_constructor, slist_iterator, slist_copy_elt, slist_copy)
1768 (slist_append, slist_end_append, slist_free): New functions.
1769 (dbus_g_type_specialized_builtins_init): Add append fuctions
1770 for GPtrArray and GSList. Register GSList.
1771 (test_specialized_hash, _dbus_gvalue_utils_test): New functions.
1773 * glib/dbus-gtype-specialized.h (DBusGTypeSpecializedAppendContext):
1775 (dbus_g_type_specialized_collection_init_append)
1776 (dbus_g_type_specialized_collection_append)
1777 (dbus_g_type_specialized_collection_end_append): Prototype.
1778 (DBusGTypeSpecializedCollectionVtable): Add append_func and
1781 * glib/dbus-gtype-specialized.c (dbus_g_type_specialized_collection_init_append)
1782 (dbus_g_type_specialized_collection_append)
1783 (dbus_g_type_specialized_collection_end_append): New functions.
1784 (dbus_g_type_map_value_iterate): Take const GValue.
1785 (dbus_g_type_collection_value_iterate): Ditto.
1787 * glib/dbus-gtest.c (dbus_glib_internal_do_not_use_run_tests): Run
1788 _dbus_gvalue_utils_test.
1790 * glib/dbus-gtest.h: Prototype it.
1792 * glib/dbus-gproxy.c (dbus_g_proxy_manager_filter): Avoid
1793 using uninitialized owner_list.
1794 (dbus_g_proxy_begin_call_internal): Move return_if_fail to
1796 (dbus_g_proxy_end_call_internal): Update to use error set
1797 from dbus_gvalue_demarshal instead of setting it here.
1798 (dbus_g_proxy_begin_call): Move return_if_fail here.
1800 * glib/dbus-gobject.c (write_interface): Update for
1801 dbus_gtype_to_signature returning new string.
1803 * configure.in: Add glib/examples/statemachine.
1805 2005-07-08 Joe Shaw <joeshaw@novell.com>
1807 * configure.in: Add a configure option, --with-console-auth-dir
1809 * dbus/dbus-sysdeps-util.c (_dbus_user_at_console): Use the
1810 new setting. Patch from Kay Sievers.
1812 2005-07-06 Colin Walters <walters@verbum.org>
1814 * dbus/dbus-glib.h (DBusGPendingCall, DBusGPendingCallNotify)
1815 (DBUS_TYPE_G_PENDING_CALL, dbus_g_pending_call_get_g_type)
1816 (dbus_g_pending_call_ref, dbus_g_pending_call_unref): Delete.
1817 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel):
1818 Delete in favor of dbus_g_proxy_begin_call and
1819 dbus_g_proxy_cancel_call.
1820 (DBusGProxyCall, DBusGProxyCallNotify): New.
1821 (dbus_g_proxy_begin_call): Change prototype to take callback, user
1822 data, and destroy function. This replaces
1823 dbus_g_pending_call_set_notify.
1824 (dbus_g_proxy_cancel_call): Prototype.
1825 (DBusGAsyncData): Delete, shouldn't be needed anymore.
1827 * glib/dbus-gproxy.c (struct _DBusGProxy): Add call_id_counter and
1829 (struct _DBusGProxyManager): Add bus_proxy member, which is an
1830 internal proxy for calls to the bus. Remove
1831 pending_nameowner_calls, now the internal proxy keeps track.
1832 (dbus_g_proxy_manager_unref): Unref bus proxy, remove reference to
1833 pending_nameowner_calls.
1834 (got_name_owner_cb): Update prototype, and use
1835 dbus_g_proxy_end_call.
1836 (got_name_owner_cb): Remove reference to pending_nameowner_calls.
1837 (dbus_g_proxy_manager_register): Delete directly libdbus code in
1838 favor of using internal proxy.
1839 (dbus_g_proxy_manager_unregister): Update to use
1840 dbus_g_proxy_cancel_call for any pending GetNameOwner call.
1841 (dbus_g_proxy_init): Initialize pending calls map.
1842 (dbus_g_proxy_constructor): New.
1843 (dbus_g_proxy_class_init): Add get/set property functions,
1844 constructor, and add NAME, PATH, and INTERFACE properties.
1845 (cancel_pending_call): New function.
1846 (dbus_g_proxy_dispose): Iterate over any outstanding calls and
1848 (dbus_g_proxy_set_property, dbus_g_proxy_get_property): New.
1849 (GPendingNotifyClosure): New structure.
1850 (d_pending_call_notify, d_pending_call_free): Moved here from
1852 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Moved around to satisfy function
1854 (manager_begin_bus_call): New internal function for talking to
1856 (dbus_g_proxy_new): Construct object using GObjet properties.
1857 (dbus_g_proxy_begin_call_internal): Update to take user data, etc.
1858 Create closure of same, and insert call into map of pending calls.
1859 (dbus_g_proxy_end_call_internal): Take call id instead of pending
1860 call. Look up pending call in current set. Remove it when we've
1862 (dbus_g_pending_call_end, dbus_g_proxy_end_call_internal): Delete.
1863 (dbus_g_proxy_begin_call): Change API to take callback, user data,
1864 and destroy function directly.
1865 (dbus_g_proxy_end_call): Update to take DBusGProxyCall.
1866 (dbus_g_proxy_call): Invoke with NULL callback.
1867 (dbus_g_proxy_cancel_call): New function, replaces
1868 dbus_g_pending_call_cancel.
1870 * glib/dbus-gparser.c (validate_signature): Fix call to
1873 * glib/dbus-gobject.c (dbus_g_object_type_dbus_metadata_quark):
1874 New quark for attaching metadata to GType.
1875 (info_hash): Delete.
1876 (lookup_object_info): Look up using quark.
1877 (dbus_g_object_type_install_info): Check that a type is classed,
1878 not that it's an object. Also just install type data using quark
1879 instead of using global hash.
1881 * glib/dbus-glib.c (dbus_g_pending_call_ref)
1882 (dbus_g_pending_call_unref, dbus_pending_call_get_g_type)
1883 (GPendingNotifyClosure): Delete.
1884 (d_pending_call_notify, d_pending_call_free): Move to dbus-gproxy.c.
1885 (dbus_g_pending_call_set_notify, dbus_g_pending_call_cancel): Delete.
1887 * glib/dbus-binding-tool-glib.c (generate_client_glue): Disable async
1888 client method generation until we can fix it...
1890 * tools/dbus-viewer.c (load_child_nodes): Use dbus_g_proxy_call.
1891 (load_from_service_thread_func): Ditto.
1893 * tools/dbus-names-model.c (struct NamesModel): Hold
1895 (have_names_notify): Update prototype, use
1896 dbus_g_proxy_cancel_call.
1897 (names_model_reload): Update for new dbus_g_proxy_begin_call API.
1899 * tools/dbus-monitor.c (filter_func): Update for print_message
1902 * test/glib/test-dbus-glib.c: Add more tests for async
1903 invocations. Update many begin_call/end_call pairs to just use
1906 * tools/dbus-send.c (main): Add --print-reply=literal mode. This
1907 allows us to dump print-introspect.c.
1909 * tools/dbus-print-message.h (print_message): Add literal argument
1910 to print_message which is intended to allow printing arguments without
1911 metadata like "string=".
1913 * tools/dbus-print-message.c (print_iter): Add literal argument.
1914 (print_message): Allow printing string messages literally.
1916 2005-07-05 Colin Walters <walters@verbum.org>
1918 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
1919 Remove value refcount leak, original patch from Jorn Baayen
1920 <jorn@openedhand.com>. Also remove useless extra value in favor
1921 of prepending to value array directly.
1923 2005-07-02 Colin Walters <walters@verbum.org>
1925 * glib/dbus-gmain.c (_dbus_gmain_test): Fix test.
1927 2005-07-01 Colin Walters <walters@verbum.org>
1929 Patch from Jonathan Matthew <jonathan@kaolin.hn.org>
1931 * glib/dbus-gvalue.c (basic_typecode_to_gtype): Fix return type.
1932 (dbus_g_value_types_init): Marshal G_TYPE_CHAR as DBUS_TYPE_BYTE,
1933 G_TYPE_LONG as DBUS_TYPE_INT32, G_TYPE_ULONG as DBUS_TYPE_UINT32,
1934 and G_TYPE_FLOAT as DBUS_TYPE_DOUBLE.
1936 2005-06-30 Colin Walters <walters@verbum.org>
1938 * test/glib/test-dbus-glib.c:
1939 * test/glib/test-service-glib.c:
1940 * test/glib/test-service-glib.xml: Update tests for new error
1941 setting bits, also add async tests (patch from Ross Burton).
1943 * test/glib/Makefile.am (test_service_glib_LDADD): Add
1944 DBUS_GLIB_THREADS_LIBS.
1946 * glib/dbus-gproxy.c (get_name_owner)
1947 (dbus_g_pending_call_end_valist): Ditto.
1949 * glib/dbus-gobject.c (error_metadata): New mapping from GError
1950 domain (GQuark) to DBusGErrorInfo.
1951 (gerror_domaincode_to_dbus_error_name): Attempt to look up error
1952 quark in error_metadata. Take message interface as default
1953 error message interface.
1954 (gerror_to_dbus_error_message): Pass message interface.
1955 (dbus_set_g_error): Resurrected.
1956 (dbus_g_error_info_free): New function.
1957 (dbus_g_object_type_install_info): Use g_type_class_ref instead
1958 of _peek to actually create the object class if it hasn't been
1960 (dbus_g_error_domain_register): New function.
1962 * glib/dbus-gmain.c (dbus_g_bus_get): Switch to dbus_set_g_error.
1964 * glib/dbus-gparser.c (validate_signature): Ditto.
1966 * dbus/dbus-glib.h (dbus_g_error_set): Delete.
1967 (dbus_g_error_domain_register): Prototype.
1969 * glib/dbus-glib.c (dbus_g_error_set): Delete.
1972 2005-06-29 Colin Walters <walters@verbum.org>
1974 * dbus/dbus-glib.h: Delete DBUS_TYPE_G_PROXY_ARRAY. Add
1975 DBUS_TYPE_G_OBJECT_PATH.
1977 * glib/dbus-gvalue.c (dbus_g_value_types_init): Remove marshallers
1978 for G_TYPE_OBJECT and DBUS_TYPE_G_PROXY_ARRAY (the latter should
1979 be handled more generically). Add DBUS_TYPE_G_OBJECT_PATH.
1980 (dbus_g_object_path_get_g_type): New function.
1981 (dbus_gtype_from_signature_iter): Map DBUS_TYPE_OBJECT_PATH
1982 to DBUS_TYPE_G_OBJECT_PATH by default.
1983 (demarshal_proxy): Remove unused name variable.
1984 (demarshal_object_path, marshal_object_path): New functions.
1985 (demarshal_proxy_array, marshal_proxy_array): Delete.
1987 * glib/dbus-binding-tool-glib.c (dbus_g_type_get_c_name): Map
1988 DBUS_TYPE_G_OBJECT_PATH to char *.
1989 (dbus_g_type_get_lookup_function): Map builtin
1990 DBUS_TYPE_G_OBJECT_PATH.
1992 * test/glib/test-dbus-glib.c
1993 * test/glib/test-service-glib.c (my_object_objpath):
1994 Adapt tests to new object path marshalling.
1996 2005-06-29 John (J5) Palmieri <johnp@redhat.com>
1998 * configure.in: force check for Python >= 2.4
2000 2005-06-29 Colin Walters <walters@verbum.org>
2002 Patch from Ross Burton <ross@openedhand.com>
2004 * glib/dbus-gobject.c (invoke_object_method): Unset object
2005 value in all cases, not only in async case.
2007 2005-06-29 Colin Walters <walters@verbum.org>
2009 * glib/dbus-gproxy.c (struct _DBusGProxy): Add new member
2010 name_call for keeping track of any outgoing GetNameOwner call.
2011 Also add for_owner and associated.
2012 (struct _DBusGProxyManager): Add owner_names, which is hash table
2013 that maps a base name to a list of names it owns (that we're
2014 interested in). Add pending_nameowner_calls which is a list of
2015 all outstanding GetNameOwner; avoids us having to iterate over
2016 every proxy. Add unassociated_proxies which keeps track of name
2017 proxies with no associated name owner.
2018 (dbus_g_proxy_manager_unref): Destroy owner_names.
2019 (struct DBusGProxyNameOwnerInfo): New struct for keeping track of
2021 (find_name_in_info, name_owner_foreach)
2022 (dbus_g_proxy_manager_lookup_name_owner, insert_nameinfo)
2023 (dbus_g_proxy_manager_monitor_name_owner)
2024 (dbus_g_proxy_manager_unmonitor_name_owner)
2025 (unassociate_proxies, dbus_g_proxy_manager_replace_name_owner):
2026 New functions; they manipulate the owner_names mapping.
2027 (got_name_owner_cb): New function.
2028 (get_name_owner): New function, extracted from
2029 dbus_g_proxy_new_for_name_owner.
2030 (dbus_g_proxy_manager_register): For now we need to keep track of
2031 all NameOwnerChanged. Also if the proxy is for a name, if we
2032 don't already know the name owner, queue a new GetNameOwner
2033 request and add it to our list of unassociated proxies. Otherwise
2035 (dbus_g_proxy_manager_unregister): If this proxy is for a name,
2036 cancel any pending GetNameOwner call, etc.
2037 (dbus_g_proxy_manager_filter): Handle NameOwnerChanged. Also use
2038 the owner_names mapping to look up the current names for the
2039 signal source, and dispatch to any proxies for that name.
2040 (dbus_g_proxy_new): Initialize new members.
2041 (dbus_g_proxy_new_for_name): Delete unused proxy variable.
2042 (dbus_g_proxy_new_for_name_owner): Use get_name_owner.
2043 (dbus_g_pending_call_end_valist): New function, extracted from
2044 dbus_g_proxy_end_call_internal. Useful when we don't have a proxy
2045 but want to use the GLib infrastructure. Also note how many
2046 arguments in reply were over.
2047 (dbus_g_pending_call_end): New function, just call
2048 dbus_g_pending_call_end_valist.
2049 (dbus_g_proxy_end_call_internal): Just call
2050 dbus_g_pending_call_end_valist.
2052 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Fix lookup
2053 of builtin marshaller for STRING_STRING_STRING.
2055 * test/glib/test-dbus-glib.c:
2056 * test/glib/test-service-glib.c:
2057 * test/glib/test-service-glib.xml:
2058 Extend tests to cover name proxies, destruction of owner proxies,
2061 * glib/examples/example-signal-recipient.c
2062 (dbus_g_proxy_new_for_name_owner): Create a name proxy.
2064 * tools/dbus-send.c (main): Print D-BUS error name in addition
2067 2005-06-28 John (J5) Palmieri <johnp@redhat.com>
2069 * python/dbus_bindings.pyx.in (cunregister_function_handler,
2070 cmessage_function_handler): Patch from
2071 Anthony Baxter <anthony@interlink.com.au> fixes threading problems
2072 by using the Py_GILState_Ensure/Release to synchronize with the
2075 2005-06-28 Ray Strode <rstrode@redhat.com>
2077 * dbus/dbus-spawn.c (_dbus_babysitter_unref): kill
2078 babysitter helper process on last unref, bug #2813.
2080 2005-06-27 Colin Walters <walters@verbum.org>
2082 * test/glib/test-dbus-glib.c:
2083 * test/glib/test-service-glib.c:
2084 * test/glib/test-service-glib.xml:
2085 Test hash table signal emitting.
2087 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller): Convert
2088 types to their fundamental basis types, since this is what
2089 marshallers operate on. Also add an entry for VOID__BOXED.
2090 (dbus_g_object_register_marshaller_array): Convert to fundamental.
2092 2005-06-26 Havoc Pennington <hp@redhat.com>
2094 * doc/dbus-tutorial.xml: fix names of interface/service/path, fix
2097 2005-06-26 Colin Walters <walters@verbum.org>
2099 * glib/dbus-glib.c (dbus_set_g_error): Delete.
2100 (dbus_g_error_set): New public function from its ashes; used by
2101 both service-side method implementation and GLib bindings
2103 (dbus_g_error_has_name, dbus_g_error_get_name): New function.
2104 (_dbus_glib_test): Add some tests.
2106 * test/glib/test-dbus-glib.c (main): Test dbus_g_error_has_name.
2108 * test/glib/test-service-glib.c (my_object_throw_error): Use
2111 * glib/dbus-gobject.c (gerror_to_dbus_error_message): Handle
2112 errors thrown by dbus_g_error_set.
2114 * glib/dbus-gmain.c (dbus_g_bus_get): Change to dbus_g_error_set.
2116 * glib/dbus-gparser.c (validate_signature): Ditto.
2118 * glib/dbus-gproxy.c (dbus_g_proxy_new_for_name_owner)
2119 (dbus_g_proxy_end_call_internal): Ditto.
2121 * glib/Makefile.am: Generate dbus-glib-error-switch.h, which
2122 converts DBUS_ERROR_x to DBUS_GERROR_x.
2123 (libdbus_glib_1_la_SOURCES, BUILT_SOURCES, CLEANFILES): Add it.
2125 * doc/TODO: Remove error TODO.
2127 * doc/dbus-tutorial.xml: Update with documentation about error
2130 * dbus/make-dbus-glib-error-enum.sh: Tighten up regexp to make
2131 sure we only change DBUS_ERROR to DBUS_GERROR, not all ERROR to
2132 GERROR. Also add DBUS_GERROR_REMOTE_EXCEPTION.
2134 2005-06-22 Colin Walters <walters@verbum.org>
2136 Patch from Ross Burton <ross@openedhand.com>
2138 * glib/dbus-gobject.c (dbus_g_method_return): Free out_sig.
2140 2005-06-20 Colin Walters <walters@verbum.org>
2142 * configure.in: Add glib/examples.
2144 * glib/Makefile.am: Add examples/
2146 * glib/examples/.cvsignore
2147 * glib/examples/Makefile.am
2148 * glib/examples/example-client.c
2149 * glib/examples/example-service.c
2150 * glib/examples/example-service.xml
2151 * glib/examples/example-signal-emitter.c
2152 * glib/examples/example-signal-emitter.xml
2153 * glib/examples/example-signal-recipient.c:
2154 New files; GLib binding examples, ported from
2157 2005-06-20 Colin Walters <walters@verbum.org>
2160 * glib/dbus-gproxy.c: Rename dbus_g_proxy_invoke to
2163 * glib/dbus-binding-tool-glib.c:
2164 * doc/dbus-tutorial.xml:
2165 * test/glib/test-dbus-glib.c: Update for rename.
2167 2005-06-20 Colin Walters <walters@verbum.org>
2169 Patch suggested by Ross Burton <ross@openedhand.com>
2171 * glib/dbus-gobject.c (export_signals): Free signal name.
2172 (g_value_init): Use G_VALUE_NOCOPY_CONTENTS to plug
2173 memory leak. Add a bit of documentation.
2174 (dbus_g_method_return_error): Free context, and note we do
2177 2005-06-18 Murray Cumming <murrayc@murrayc.com>
2180 * glib/dbus-gobject.c:
2181 * glib/dbus-gproxy.c:
2182 * glib/dbus-gvalue.c: Predeclare structs as
2183 typedef struct _Something Something instead of
2184 typedef struct Something Something, so we can
2185 redeclare the prototypes. Other GNOME libraries
2188 2005-06-17 Colin Walters <walters@verbum.org>
2190 * tools/dbus-names-model.c (have_names_notify): Fix call
2191 to dbus_g_proxy_end_call.
2193 2005-06-17 Colin Walters <walters@verbum.org>
2195 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): Don't
2196 spew warnings if we get malformed remote signals.
2198 * glib/dbus-gobject.c (propsig_iterate): New function.
2199 (lookup_object_info): New function, extracted from
2200 lookup_object_and_method.
2201 (introspect_properties, introspect_signals): Delete; these
2202 are merged into write_interface.
2203 (write_interface): Write out signals and properties here;
2204 dump the org.gtk.object stuff and use the interface given
2205 in the introspection data blob. Also fix up property XML.
2206 (lookup_values): New function.
2207 (introspect_interfaces): Gather a mapping from interface to a
2208 list of its methods, signals, and properties, then write out
2210 (lookup_object_and_method): Use lookup_object_info.
2211 (struct DBusGSignalClosure): Add interface.
2212 (dbus_g_signal_closure_new): Add interface. Don't dup signame;
2213 we can just use the constant data.
2214 (dbus_g_signal_closure_finalize): Don't free signal name.
2215 (signal_emitter_marshaller): Use interface from signal closure.
2216 (export_signals): Only export signals mentioned in introspection
2218 (dbus_g_connection_register_g_object): Warn if we have no
2219 introspection data for an object.
2220 (funcsig_equal): Remove unused variable.
2221 (dbus_g_object_register_marshaller): Take varargs instead of
2223 (dbus_g_object_register_marshaller_array): New function,
2224 extracted from old dbus_g_object_register_marshaller.
2226 * glib/dbus-binding-tool-glib.c (struct DBusBindingToolCData): Add
2227 signals and property data.
2228 (write_quoted_string): New function, extracted from generate_glue.
2229 (generate_glue): Write signals and properties to introspection
2232 * dbus/dbus-glib.h (struct DBusGObjectInfo): Include
2233 exported_signals and exported_properties.
2234 (dbus_g_object_register_marshaller): Update prototype.
2235 (dbus_g_object_register_marshaller_array): Prototype.
2237 * test/glib/test-dbus-glib.c: Extend testing to cover new signals.
2239 * test/glib/test-service-glib.c: Add new test signals and method
2242 * test/glib/test-service-glib.xml: Add some test signals.
2244 * test/glib/Makefile.am (BUILT_SOURCES): Add my-object-marshal.c
2245 and my-object-marshal.h
2246 (test_service_glib_SOURCES, test_dbus_glib_SOURCES): Add
2247 my-object-marshal.c.
2248 (my-object-marshal.c, my-object-marshal.h): Implement.
2250 * test/glib/.cvsignore: Update.
2252 * doc/TODO: Remove two GLib TODO items fixed by this
2255 2005-06-16 Colin Walters <walters@verbum.org>
2257 * doc/TODO: Update for GLib bindings.
2259 2005-06-16 Colin Walters <walters@verbum.org>
2261 * glib/dbus-binding-tool-glib.c:
2262 * glib/dbus-gobject.c:
2263 * glib/dbus-gproxy.c: Add Nokia copyright; Patch
2264 from Ross Burton, for his GLib bindings work.
2266 2005-06-16 Colin Walters <walters@verbum.org>
2268 * glib/dbus-gobject.c (funcsig_hash, funcsig_equal): Use n_params
2269 to iterate instead of walking to G_TYPE_INVALID.
2271 Patch based on a patch from Ryan Gammon.
2273 2005-06-16 Colin Walters <walters@verbum.org>
2275 * bus/bus.c (bus_context_new): Set parser to NULL
2276 after we unref it (Patch from Chris Boscolo, #2174).
2278 2005-06-16 Colin Walters <walters@verbum.org>
2280 * python/dbus_bindings.pyx.in: Import size_t,
2281 __int64_t, __uint64_t, and __signed.
2283 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (write_credentials_byte):
2284 Define cmsg struct, output it.
2285 (_dbus_read_credentials_unix_socket):
2288 Patch from Joe Markus Clarke for FreeBSD support.
2290 2005-06-16 Colin Walters <walters@verbum.org>
2292 * tools/dbus-send.c (append_array): Use strtok.
2293 (append_dict): New function.
2294 (type_from_name): New function, extracted from main.
2295 (main): Handle sending dicts.
2297 * tools/dbus-print-message.c (print_iter): Print dict
2300 2005-06-16 Colin Walters <walters@verbum.org>
2302 * glib/dbus-gvalue.c (marshal_basic): Marshal NULL string
2303 values as the empty string (#2948).
2305 2005-06-16 Colin Walters <walters@verbum.org>
2308 * mono/doc/Makefile.am:
2309 * test/glib/Makefile.am:
2311 Fix srcdir != builddir issues (Patch from Chris Wilson, #3477)
2313 2005-06-16 Colin Walters <walters@verbum.org>
2315 * dbus/dbus-marshal-header.c (_dbus_header_load): Set
2316 header byte order from expected byte order (Patch from Chris Wilson, #3475).
2318 * dbus/dbus-marshal-byteswap.c (byteswap_body_helper):
2319 Increment pointer after swapping fixed array. Add assertion
2322 2005-06-15 Colin Walters <walters@verbum.org>
2324 * dbus/dbus-sysdeps.c <HAVE_CMSGCRED> (_dbus_read_credentials_unix_socket):
2325 Fix call to dbus_set_error. (Patch from Michael Banck, #3461)
2327 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2329 * NEWS: Update to 0.34
2331 2005-06-15 David Zeuthen <davidz@redhat.com>
2333 * configure.in (LT_CURRENT): Revert back to 1 as the library
2334 hasn't changed and we've certainly not committed to protocol
2335 stability yet. All this does is to break ABI. See commit note
2336 from hp@redhat.com 2005-05-05 for details.
2338 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2340 * dbus/dbus-connection.c (_dbus_connection_peer_filter): New method
2341 (_dbus_connection_run_builtin_filters): New method
2342 (dbus_connection_dispatch): Run the builtin filters which in turn
2343 runs the peer filter which handles Ping messages.
2346 - Ping isn't handled: This patch fixes it
2348 - Add a test case for the Ping message: added TODO item
2350 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2352 * dbus/dbus-message.c:
2353 (dbus_message_has_path): New method
2354 (dbus_message_has_interface): New method
2355 (dbus_message_has_member): New method
2357 * dbus/dbus/dbus-sysdeps.c (_dbus_check_dir_is_private_to_user):
2360 * dbus/dbus-keyring.c (_dbus_keyring_reload): Check to see that
2361 the keyring directory is private to the user
2364 - The convenience functions in dbus-bus.h should perhaps have
2365 the signatures that they would have if they were autogenerated
2366 stubs. e.g. the acquire service function. We should also evaluate
2367 which of these functions to include, in light of the fact that
2368 GLib/Qt native stubs will probably also exist.: Punted
2370 - add dbus_message_has_path(), maybe has_member/interface:
2373 - in dbus-keyring.c, enforce that the keyring dir is not
2374 world readable/writable: Fixed in this patch
2376 2005-06-15 John (J5) Palmieri <johnp@redhat.com>
2378 * dbus/dbus-marshal-validate.h: Added a new validation
2379 error code DBUS_VALIDITY_UNKNOWN_OOM_ERROR = -4 for
2380 out of memory errors when validating signitures
2382 * dbus/dbus-marshal-header.c: use DBUS_VALIDITY_UNKNOWN_OOM_ERROR
2383 in places where we previously used DBUS_VALID and a FALSE return
2384 value to indicate OOM
2386 * dbus/dbus-marshal-validate.c (_dbus_validate_signature_with_reason):
2387 Use a stack to track the number of elements inside containers. The
2388 stack values are then used to validate that dict entries have only two
2389 elements within them.
2390 (validate_body_helper): check the reason for failure when validating
2393 * dbus/dbus-message.c (load_message): use
2394 DBUS_VALIDITY_UNKNOWN_OOM_ERROR in places where we previously used
2395 DBUS_VALID and a FALSE return value to indicate OOM
2397 * doc/TODO: remove "- validate dict entry number of fields" as this
2400 2005-06-14 David Zeuthen <davidz@redhat.com>
2402 * bus/bus.c (process_config_every_time): Drop existing conf-dir
2403 watches (if applicable) and add new watches
2405 * bus/main.c (signal_handler): Handle SIGIO if using D_NOTIFY
2406 (main): Setup SIGIO signal handler if using D_NOTIFY
2408 * bus/config-parser.h: Add prototype bus_config_parser_get_conf_dirs
2410 * bus/config-parser.c (struct BusConfigParser): Add conf_dirs list
2411 (merge_included): Also merge conf_dirs list
2412 (bus_config_parser_unref): Clear conf_dirs list
2413 (include_dir): Add directory to conf_dirs list
2414 (bus_config_parser_get_conf_dirs): New function
2416 * bus/dir-watch.[ch]: New files
2418 * bus/Makefile.am (BUS_SOURCES): Add dir-watch.[ch]
2420 * configure.in: Add checks for D_NOTIFY on Linux
2422 2005-06-14 Colin Walters <walters@verbum.org>
2424 * glib/dbus-binding-tool-glib.c:
2425 * glib/dbus-gobject.c:
2426 * glib/dbus-gvalue.c: Fix indentation and brace style.
2428 2005-06-14 Ross Burton <ross@openedhand.com>.
2430 * glib/dbus-glib.h: Make DBusGMethodInvocation
2431 a private structure. Rearrange prototypes a bit.
2433 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): Add
2434 documentation for first_arg_type.
2436 * glib/dbus-gobject.c: Move DBusGMethodInvocation
2437 here, add documentation. Move dbus_g_method_return
2438 and dbus_g_method_return_error into public API
2441 2005-06-14 Colin Walters <walters@verbum.org>
2443 * glib/dbus-gobject.c (_dbus_gobject_lookup_marshaller):
2444 Add missing return statements, noticed by Ross Burton.
2446 2005-06-13 Ross Burton <ross@openedhand.com>.
2448 * glib/dbus-gobject.c: Handle errors on message
2449 demarshalling by sending error message back.
2450 * glib/dbus-gvalue.c: Initialize return variables.
2452 2005-06-13 Colin Walters <walters@verbum.org>
2454 * glib/Makefile.am: Fix thinko in last patch.
2456 2005-06-13 Colin Walters <walters@verbum.org>
2458 * glib/Makefile.am: Move dbus-gtype-specialized.c
2459 and dbus-gtype-specialized.h into a _HEADERS variable,
2462 2005-06-12 Colin Walters <walters@verbum.org>
2464 Async signals and various bugfixes and testing by
2465 Ross Burton <ross@openedhand.com>.
2467 * glib/dbus-gvalue.h: (struct DBusBasicGValue): Delete.
2468 (dbus_gvalue_genmarshal_name_from_type)
2469 (dbus_gvalue_ctype_from_type): Moved to dbus-binding-tool-glib.c.
2470 (dbus_gtype_to_dbus_type): Renamed to dbus_gtype_from_signature.
2471 (dbus_g_value_types_init, dbus_gtype_from_signature)
2472 (dbus_gtype_from_signature_iter, dbus_gtype_to_signature)
2473 (dbus_gtypes_from_arg_signature): New function prototypes.
2474 (dbus_gvalue_demarshal): Take context and error arguments.
2475 (dbus_gvalue_demarshal_variant): New function.
2476 (dbus_gvalue_demarshal_message): New function.
2477 (dbus_gvalue_store): Delete.
2479 * glib/dbus-gvalue.c:
2481 File has been almost entirely rewritten; now we special-case
2482 more types such as DBUS_TYPE_SIGNATURE, handle arrays and
2483 hash tables correctly, etc. Full support for recursive values
2484 is not yet complete.
2486 * glib/dbus-gproxy.c (dbus_g_proxy_class_init): Change last
2487 argument of signal to G_TYPE_POINTER since we now pass a
2489 (lookup_g_marshaller): Delete in favor of
2490 _dbus_gobject_lookup_marshaller.
2491 (marshal_dbus_message_to_g_marshaller): Use
2492 _dbus_gobject_lookup_marshaller and dbus_gvalue_demarshal_message
2493 to handle remote signal callbacks.
2494 (dbus_g_proxy_new_from_proxy): New function; creates a new
2495 DBusGProxy by copying an existing one.
2496 (dbus_g_proxy_get_interface, dbus_g_proxy_set_interface)
2497 (dbus_g_proxy_get_path): New functions.
2498 (dbus_g_proxy_marshal_args_to_message): New function;
2499 factored out of existing code.
2500 (DBUS_G_VALUE_ARRAY_COLLECT_ALL): Collect all arguments
2501 from a varargs array.
2502 (dbus_g_proxy_begin_call_internal): New function.
2503 (dbus_g_proxy_end_call_internal): New function.
2504 (dbus_g_proxy_begin_call): Take GTypes instead of DBus types
2505 as arguments; simply invoke dbus_g_proxy_begin_call_internal
2506 after collecting args into value array.
2507 (dbus_g_proxy_end_call): Take GTypes instead of DBus types;
2508 invoke dbus_g_proxy_end_call_internal.
2509 (dbus_g_proxy_invoke): Simply invoke begin_call_interanl and
2511 (dbus_g_proxy_call_no_reply): Take GTypes instead of DBus
2513 (array_free_all): New function.
2514 (dbus_g_proxy_add_signal): Take GTypes.
2516 * glib/dbus-gobject.h:
2517 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2518 (_dbus_gobject_get_path, _dbus_gobject_lookup_marshaller):
2521 * glib/dbus-gobject.c: Add a global marshal_table hash which
2522 stores mappings from type signatures to marshallers. Change lots
2523 of invocations of dbus_gtype_to_dbus_type to
2524 dbus_gtype_to_signature.
2525 (_dbus_glib_marshal_dbus_message_to_gvalue_array): Delete.
2526 (introspect_signals): Fix test for query.return_type.
2527 (set_object_property): Update invocation of dbus_gvalue_demarshal.
2528 (invoke_object_method): Many changes. Handle asynchronous
2529 invocations. Convert arguments with
2530 dbus_gvalue_demarshal_message. Handle errors. Use
2531 DBusSignatureIter instead of strlen on args. Handle all arguments
2532 generically. Special-case variants.
2533 (dbus_g_method_return, dbus_g_method_return_error): New function.
2534 (DBusGSignalClosure): New structure, closes over signal
2536 (dbus_g_signal_closure_new): New function.
2537 (dbus_g_signal_closure_finalize): New function.
2538 (signal_emitter_marshaller): New function; is special marshaller
2539 which emits signals on bus.
2540 (export_signals): New function; introspects object signals and
2542 (dbus_g_object_type_install_info): Take GType instead of
2544 (dbus_g_connection_register_g_object): Invoke export_signals.
2545 (dbus_g_connection_lookup_g_object): New function.
2546 (DBusGFuncSignature) New structure; used for mapping type
2547 signatures to marshallers.
2548 (funcsig_hash): New function; hashes DBusGFuncSignature.
2549 (funcsig_equal): New function; compares DBusGFuncSignature.
2550 (_dbus_gobject_lookup_marshaller): New function.
2551 (dbus_g_object_register_marshaller): New function; used to
2552 register a marshaller at runtime for a particular signature.
2554 * glib/dbus-gmain.c (_dbus_gmain_test): Add various tests.
2556 * glib/dbus-binding-tool-glib.h: Add DBUS_GLIB_ANNOTATION_ASYNC
2557 which notes a server method implementation should be
2560 * glib/dbus-binding-tool-glib.c
2561 (dbus_binding_tool_output_glib_server): Call
2562 dbus_g_value_types_init.
2563 (write_formal_parameters): Use dbus_gtype_from_signature. Handle
2565 (dbus_g_type_get_lookup_function): Turn GType into an invocation
2566 of a lookup function.
2567 (write_args_for_direction): Use dbus_g_type_get_lookup_function.
2568 (write_untyped_out_args): New method; write output arguments.
2569 (write_formal_declarations_for_direction): Function for
2571 (write_formal_parameters_for_direction): Function for
2572 writing implementations.
2573 (write_typed_args_for_direction): Function for writing
2574 arguments prefixed with GTypes.
2575 (write_async_method_client): Write out async version
2578 * glib/dbus-binding-tool-glib.c: Include dbus-gvalue-utils.h.
2579 (dbus_g_type_get_marshal_name): Move mapping from GType
2580 to marshal name into here.
2581 (dbus_g_type_get_c_name): Move into here.
2582 (compute_marshaller): Convert signature to type with
2583 dbus_gtype_from_signature, use dbus_g_type_get_marshal_name.
2584 (compute_marshaller_name): Ditto.
2585 (compute_marshaller): Handle async signal annotations.
2586 (gather_marshallers): Return if we don't have a known
2588 (generate_glue): Collect introspection blob here, and
2589 write all of the blob at the end. This allows an object
2590 with multiple interfaces to work.
2591 Mark async methods in introspection blob.
2593 * glib/Makefile.am (libdbus_glib_1_la_SOURCES): Add
2594 dbus-gtype-specialized.c, dbus-gtype-specialized.h,
2595 dbus-gvalue-utils.h, dbus-gvalue-utils.c.
2597 * dbus/dbus-glib.h: Don't include dbus-protocol.h; this
2598 avoids people accidentally using DBUS_TYPE_* which should
2599 not be necessary anymore.
2600 Do include dbus-gtype-specialized.h, which are utilities
2601 for GLib container types.
2602 Add various #defines for types such as
2603 DBUS_TYPE_G_BOOLEAN_ARRAY.
2604 (DBusGValueIterator, DBusGValue): Define, not fully used
2606 (dbus_g_value_get_g_type): Type for recursive value.
2607 (dbus_g_value_open, dbus_g_value_iterator_get_value)
2608 (dbus_g_value_iterator_get_values, dbus_g_value_iterator_recurse)
2609 (dbus_g_value_free): Prototypes.
2610 (dbus_g_object_register_marshaller, dbus_g_proxy_new_from_proxy): Prototype.
2611 (dbus_g_proxy_set_interface): Prototype.
2612 (dbus_g_proxy_begin_call, dbus_g_proxy_end_call)
2613 (dbus_g_proxy_call_no_reply): Take GLib types instead of DBus
2615 (dbus_g_proxy_get_path, dbus_g_proxy_get_interface):
2617 (DBusGAsyncData, DBusGMethodInvocation): Structures for
2618 doing async invocations.
2619 (dbus_g_method_return, dbus_g_method_return_error):
2621 * doc/dbus-tutorial.xml: Update GLib section.
2623 * tools/dbus-viewer.c (load_child_nodes): Update
2624 for new invocation type of dbus_g_proxy_end_call.
2625 (load_from_service_thread_func): Ditto.
2627 * tools/print-introspect.c (main): Ditto.
2629 * tools/dbus-names-model.c (have_names_notify)
2630 (names_model_reload, names_model_set_connection)
2633 * python/Makefile.am (INCLUDES): Define DBUS_COMPILATION,
2634 needed since Python bindings use GLib bindings.
2636 * test/glib/Makefile.am (INCLUDES): Define DBUS_COMPILATION.
2637 Add --prefix argument.
2639 * tools/Makefile.am: Define DBUS_COMPILATION. Remove
2640 unneeded --ignore-unsupported arg.
2642 * test/glib/test-service-glib.c:
2643 * test/glib/test-service-glib.xml:
2644 * test/glib/test-dbus-glib.c: Add many more tests.
2646 2005-06-06 David Zeuthen <davidz@redhat.com>
2648 * doc/TODO: Add item about need to remove deprecated functions.
2650 * dbus/dbus-connection.h: Add prototype for dbus_connection_disconnect
2652 * dbus/dbus-connection.c (dbus_connection_disconnect): New function
2653 to repair the ABI which was broken with the last commit.
2655 2005-06-02 John (J5) Palmieri <johnp@redhat.com>
2657 * dbus/dbus-connection.c, dbus/dbus-connection.h
2658 (dbus_connection_disconnect): renamed to dbus_connection_close
2659 for API symmetry with dbus_connection_open
2660 (_dbus_connection_open_internal):
2661 s/dbus_connection_disconnect/dbus_connection_close
2663 * dbus/dbus-bus.c (dbus_bus_get):
2664 s/dbus_connection_disconnect/dbus_connection_close
2666 * bus/connection.c (bus_connections_unref,
2667 bus_connections_setup_connection, bus_connections_expire_incomplete):
2668 s/dbus_connection_disconnect/dbus_connection_close
2670 * bus/dispatch.c (bus_dispatch, kill_client_connection,
2671 kill_client_connection_unchecked, check_hello_connection):
2672 s/dbus_connection_disconnect/dbus_connection_close
2674 * bus/bus.c (new_connection_callback):
2675 s/dbus_connection_disconnect/dbus_connection_close
2677 * tools/dbus-send.c (main):
2678 s/dbus_connection_disconnect/dbus_connection_close
2680 * test/glib/test-profile.c (no_bus_thread_func, with_bus_thread_func):
2681 s/dbus_connection_disconnect/dbus_connection_close
2683 * test/test-service.c (path_message_func, filter_func):
2684 s/dbus_connection_disconnect/dbus_connection_close
2686 * doc/TODO: remove connection_open/connection_disconnect lacks symmetry item that was just fixed
2688 2005-05-25 Colin Walters <walters@verbum.org>
2690 * dbus/dbus-protocol.h: Move various bus service #defines such
2691 as DBUS_SERVICE_DBUS and DBUS_NAME_FLAG_PROHIBIT_REPLACEMENT to
2693 * dbus/dbus-shared.h: Various defines moved here.
2694 * dbus/dbus-marshal-header.c: Include dbus-shared.h.
2696 2005-05-25 John (J5) Palmieri <johnp@redhat.com>
2698 * python/__init__.py: Python bindings deserve a minor version
2699 update. Upped to (0, 40, 2)
2701 2005-05-24 John (J5) Palmieri <johnp@redhat.com>
2703 * python/decorators.py: add explicitly_pass_message decorator
2704 for passing in the dbus message as keyword for edge case signal
2707 * python/matchrules.py (SignalMatchRule.__repr__): fix output
2708 to conform with what dbus expects for match rules
2709 (SignalMatchRule.execute): add the dbus message as a keyword
2710 if the signal handler has requested it
2712 * python/examples/example/signal-recipient.py: added some more
2713 examples on how to hook up to signals
2715 2005-05-23 John (J5) Palmieri <johnp@redhat.com>
2717 * python/decorators.py: import dbus_bindings
2719 * python/matchrules.py (SignalMatchRule, SignalMatchTree,
2720 SignalMatchNode): new classes that implement wildcard signal
2721 callback matching using a tree lookup. Heavily modified from a
2722 patch sent by Celso Pinto (fd.o bug #3241)
2724 * _dbus.py (add_signal_receiver, remove_signal_receiver, _signal_func):
2725 use new match classes to handle signals.
2727 2005-05-19 John (J5) Palmieri <johnp@redhat.com>
2729 * python/dbus_bindings.pyx.in: s/TYPE_PATH/TYPE_OBJECT_PATH
2731 2005-05-18 Havoc Pennington <hp@redhat.com>
2733 * configure.in: use GLIB_GNU_GETTEXT to get INTLLIBS and require
2734 gettext. Not really worth requiring yet perhaps, but any
2735 production quality 1.0 would require it so we should go ahead and
2736 get things set up. We do have a couple token calls to
2737 bindtextdomain in the code already.
2739 2005-05-16 John (J5) Palmieri <johnp@redhat.com>
2741 * glib/dbus-gmain.c (io_handler_dispatch): fix deadlock
2742 when using recursive g_main_loops
2744 * python/_dbus.py (class Bus): add the ProxyObjectClass
2745 alias for ProxyObject to make it easier for the Twisted
2746 networking framework to integrate dbus.
2748 * python/proxies.py (class ProxyObject): add the ProxyMethodClass
2749 alias for ProxyMethod to make it easier for the Twisted
2750 networking framework to integrate dbus.
2752 2005-05-11 Ross Burton <ross@openedhand.com>
2754 * glib/dbus-glib-tool.c: Add --prefix argument.
2755 * glib/dbus-binding-tool-glib.h: Add prefix argument.
2756 * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
2757 Add prefix argument.
2758 (generate_glue): Pass prefix argument down.
2759 (dbus_binding_tool_output_glib_server): Pass prefix to
2762 2005-05-11 Colin Walters <walters@verbum.org>
2764 * tools/dbus-send.c (append_array): New function.
2765 (append_arg): Broken out from main.
2766 (main): Add cheesy hack to send arrays and variants.
2768 * tools/dbus-print-message.c (print_iter): Broken out
2771 2005-05-11 Colin Walters <walters@verbum.org>
2773 * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
2774 New function, returns signature string for signature iter.
2775 * dbus/dbus-signature.h: Prototype it.
2776 * dbus/dbus-message.c (dbus_message_iter_get_signature):
2777 New function, returns signature string for message iter.
2778 (dbus_message_iter_get_array_len): New function, returns
2780 (dbus_message_iter_get_fixed_array): Fix assertion; this
2781 function should be used when the iter is pointing to the
2782 contents of an array
2783 * dbus/dbus-message.h: Prototypes.
2784 * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
2785 New function; returns length of an array.
2786 * dbus/dbus-marshal-recursive.h: Prototype it.
2788 2005-05-11 Colin Walters <walters@verbum.org>
2790 * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
2793 2005-05-08 Havoc Pennington <hp@redhat.com>
2795 * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
2796 daemon's pid, not the parent's pid, to the file descriptor.
2797 Reported by Taj Morton.
2799 2005-05-05 Havoc Pennington <hp@redhat.com>
2801 * configure.in (LT_*): add notes on how the libtool versioning
2802 works to save thinking. Increment soname to indicate protocol
2803 breakage (though really the library interface hasn't changed I
2806 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
2807 verify the GUID received from server matches what we were
2808 expecting, if we had an expectation
2810 * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
2811 (_dbus_auth_get_guid_from_server): new function
2812 (send_begin): parse the OK args
2814 * doc/dbus-specification.xml: add GUID to the auth protocol
2816 2005-05-05 John (J5) Palmieri <johnp@redhat.com>
2818 * Fix my name in previous changelog ;)
2820 * python/proxies.py (ProxyObject.__getattr__): add further patch
2821 from Anthony Baxter to throw an AttributeError when python
2822 __special__ functions are called instead of marshling them over
2823 the bus (Bug#1685 comment 3).
2825 2005-05-04 John (J5) Palmieri <johnp@redhat.com>
2827 * python/Makefile.am: changed to use pyexecdir for the binding
2828 shared libraries (Bug#2494)
2830 * python/exceptions.py: bring exceptions over from the bindings
2831 so they can be used in applications (Bug#2036)
2832 Make all exceptions derive from DBusException
2834 * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
2835 of classes so that print obj doesn't throw an exception (Bug #1685)
2837 2005-05-03 Ross Burton <ross@openedhand.com>
2839 * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
2840 Return if we get an error during registration. Set up a
2841 weak reference on object to unregister if object is destroyed.
2842 (unregister_gobject): New function.
2844 2005-05-01 John (J5) Palmieri <johnp@redhat.com>
2846 * python/dbus_bindings.pyx.in:
2847 - added new type classes for hinting to the marashaler what type
2848 to send over the wire
2849 - added int16 and uint16 marshalers
2850 - Fixed a bug in the type constants that caused int32 to go out
2851 as uint16 over the wire
2852 * python/dbus.py: split up into different files and renamed _dbus.py
2853 * python/__init__.py, python/_util.py, python/decorators.py,
2854 python/exceptions.py, python/proxies.py, python/services.py,
2855 python/types.py: new files split off from dbus.py
2856 * python/Makefile.am: Add new files, remove dbus.py and
2857 install all python files to <python module dir>/dbus
2858 * python/examples/*: Added #!/usr/bin/env python to the top of
2859 every example. Patch provided by Tatavarty Kalyan
2861 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2863 * NEWS: Update to 0.33
2865 2005-04-25 John (J5) Palmieri <johnp@redhat.com>
2867 * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
2868 method for doing async calls
2869 (_pending_call_notification): New C function for handling pendning call
2871 (set_notify): New method for setting pending call notification
2873 * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
2874 Async capabilities added to remote method calls
2875 (Sender): class removed
2876 (RemoteService): class removed
2877 (ObjectTree): class removed for now
2878 (RemoteObject): Renamed to ProxyObject
2879 (RemoteMethod): Renamed to ProxyMethod
2880 (method): Decorator added for decorating python methods as dbus methods
2881 (signal): Decorator added for decorating python methods as signal emitters
2882 (ObjectType): Metaclass added for generating introspection data and the
2883 method callback vtable
2884 (Interface): Wrapper class added to wrap objects in a dbus interface
2885 (Object): Uses ObjectType as its metaclass and exports Introspect
2886 of the org.freedesktop.DBus.Introspectable interface
2887 (ValidationException, UnknownMethodException): new exceptions
2889 * python/examples/*: Modified to fit with the new bindings
2891 2005-04-23 Havoc Pennington <hp@redhat.com>
2893 * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
2894 reported by Tony Houghton
2896 * test/test-service.c (main): test
2897 dbus_connection_get_object_path_data()
2899 * dbus/dbus-object-tree.c (find_handler): be sure we always init
2901 (_dbus_object_tree_get_user_data_unlocked): new function used by
2902 dbus_connection_get_object_path_data()
2903 (do_register): add assertion test for get_user_data_unlocked
2904 (object_tree_test_iteration): more tests
2906 * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
2907 new function from Dan Reed to let you get the user data from
2908 dbus_connection_register_object_path()
2910 2005-04-23 John (J5) Palmieri <johnp@redhat.com>
2912 * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
2913 in numerous places that did not account for the NULL terminator
2914 (signature_from_seed): changed the manual string copy loop to
2915 just use strcpy instead
2916 make check should now pass
2918 2005-04-19 John (J5) Palmieri <johnp@redhat.com>
2920 * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
2921 so that it allows messages that are not signals to pass in
2922 NULL as the interface.
2924 2005-04-18 David Zeuthen <davidz@redhat.com>
2926 * glib/dbus-gmain.c (io_handler_destroy_source):
2927 (timeout_handler_destroy_source, connection_setup_free):
2928 Also unref the source to avoid memory leaks.
2930 2005-04-13 David Zeuthen <davidz@redhat.com>
2932 * bus/config-parser.c (bus_config_parser_new): Bump this to a
2933 more reasonable, yet still totally arbitrary, value :-).
2935 2005-04-13 David Zeuthen <davidz@redhat.com>
2937 * doc/TODO: Added an "important for 1.0" item about selinux
2940 2005-04-13 David Zeuthen <davidz@redhat.com>
2942 * bus/selinux.c: Add c-file-style to top of file
2943 (log_audit_callback): Don't free the data here anymore
2944 (bus_selinux_check): Don't take spid and tpid since appending
2945 that to auxdata may OOM.
2946 (bus_selinux_allows_acquire_service): Handle OOM and signal back
2947 to the caller if we are OOM by taking an error object.
2948 (bus_selinux_allows_send): -do-
2950 * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
2951 and bus_selinux_allows_send
2953 * bus/bus.c (bus_context_check_security_policy): Pass error and
2954 pass on OOM thrown by bus_selinux_allows_send()
2956 * bus/services.c (bus_registry_acquire_service): Pass error and
2957 pass on OOM thrown by bus_selinux_allows_acquire_service()
2959 2005-04-13 Havoc Pennington <hp@redhat.com>
2961 * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
2962 message at a time to avoid monopolizing the main loop, bug
2963 #2953 from Benjamin Otte
2965 2005-04-09 Havoc Pennington <hp@redhat.com>
2967 * dbus/dbus-string.c (copy): change a memcpy to memmove due to
2968 possible overlap, fix from Daniel Reed
2969 (fixup_alignment): fix signedness warnings
2970 (_dbus_string_append_unichar): ditto
2972 2005-04-09 Havoc Pennington <hp@redhat.com>
2974 * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
2976 * glib/dbus-glib-tool.c (main): fix warning
2978 * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
2980 * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
2981 add a new function that can be used in simple applications that
2982 don't have a main loop and are willing to block
2984 2005-04-05 David Zeuthen <davidz@redhat.com>
2986 Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
2988 * glib/dbus-gmain.c:
2989 (io_handler_destroy_source): Remove from list of IO handlers
2990 of the ConnectionSetup object
2991 (timeout_handler_destroy_source): -do- for timeout handlers
2992 (io_handler_source_finalized): Don't remove from list since
2993 we now do that in io_handler_destroy_source(). Renamed from
2994 io_handler_source_destroyed
2995 (timeout_handler_source_destroyed): -do- for timeout handlers
2996 (connection_setup_free): It is now safe to iterate over all
2997 IO and timeout handlers as the _destroy_source removes them
2998 from the list synchronously
3000 2005-03-30 Havoc Pennington <hp@redhat.com>
3002 * configure.in: change check to gtk 2.4
3004 * tools/dbus-viewer.c (name_combo_changed_callback): remove
3005 gtk_combo_box_get_active_text() usage to decrement GTK requirement
3008 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3012 * HACKING: Fixed realease instructions. configure.in should be updated to
3013 the next release by the person who made the last release.
3015 2005-03-29 John (J5) Palmieri <johnp@redhat.com>
3017 * python/lvalue_cast_post_process.py - removed. Patch has been
3018 submitted to Pyrex maintainers that fixes gcc4.0 errors
3020 * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
3022 2005-03-24 Daniel Reed <n@ml.org>
3024 * tools/Makefile.am: Make print-introspect and
3025 dbus-bus-introspect.xml building conditional on HAVE_GLIB.
3027 2005-03-22 John (J5) Palmieri <johnp@redhat.com>
3029 * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
3031 * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have
3032 had in Red Hat packages for a while but for some reason never
3034 (_dbus_is_a_number): New checks if a string
3035 can be converted to a number and does the conversion if it can
3036 (_dbus_user_database_lookup): Add check to see if the given username
3037 is a udi. This allows udi's to be used instead of usernames in the
3039 (_dbus_user_database_lookup_group): Add check to see if the given groupname
3040 is a gdi. This allows gdi's to be used instead of groupnames in the
3043 2005-03-21 John (J5) Palmieri <johnp@redhat.com>
3045 * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
3046 code so that it compiles with gcc4.0
3048 * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
3049 run dbus_bindings.c through lvalue_cast_post_process.py and copy the
3050 results back to dbus_binding.c
3052 2005-03-20 Colin Walters <walters@verbum.org>
3054 Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
3056 * configure.in: Require GTK+ 2.6.
3058 2005-03-20 Colin Walters <walters@verbum.org>
3060 * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
3062 2005-03-17 Tom Parker <palfrey@tevp.net>
3064 * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
3065 print DBUS_UID_UNSET; instead print passed username. Also
3066 be sure to actually use gid looked up in cache.
3068 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
3069 for DBUS_GID_UNSET and groupname.
3071 2005-03-17 Colin Walters <walters@verbum.org>
3073 * bus/print-introspect.c: Move to tools/.
3074 * bus/run-with-tmp-session-bus.sh: Ditto.
3076 * glib/Makefile.am (dbus-glib-bindings.h): Move
3077 generation to tools/Makefile.am.
3079 * test/glib/run-test.sh: Update to handle move
3080 of run-with-tmp-session-bus.sh.
3082 * test/glib/test-service-glib.c: Update to handle
3083 move of dbus-glib-bindings.h.
3085 * tools/print-introspect.c: Moved here
3086 from bus/, and ported to GLib bindings.
3088 * tools/run-with-tmp-session-bus.sh: Moved here
3091 * tools/Makefile.am: Generate dbus-glib-bindings.h
3092 and dbus-bus-introspect.xml here.
3094 * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
3097 2005-03-17 Colin Walters <walters@verbum.org>
3099 * bus/driver.c (write_args_for_direction): Use
3100 _dbus_string_get_const_data to retrieve string;
3101 _dbus_string_get_const_data_len doesn't actually return
3102 a NULL-terminated substring.
3104 * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
3105 (main): Change to use org_freedesktop_DBus_request_name
3106 instead of using g_proxy_begin_call/end_call.
3108 2005-03-15 Joe Shaw <joeshaw@novell.com>
3110 * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
3111 generating the finalizer. Fixes from Ben Maurer.
3113 2005-03-12 Joe Shaw <joeshaw@novell.com>
3115 * mono/BusDriver.cs: Update method names: ListServices
3116 becomes ListNames; GetOwner becomes GetNameOwner.
3118 * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
3119 onto the eval stack when removing the delegate.
3121 2005-03-12 Joe Shaw <joeshaw@novell.com>
3123 * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
3124 LT_CURRENT. Set it to the autoconf variable.
3126 * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
3127 classes that disconnects the signal handler delegate from the
3128 service object. Fixes a big leak of proxy objects on the
3129 client side of things. Patch from Ben Maurer
3130 <bmaurer@ximian.com>
3132 2005-03-12 Colin Walters <walters@verbum.org>
3134 * bus/driver.c (write_args_for_direction): New function,
3135 parses a type signature into arguments and outputs to
3137 (bus_driver_handle_introspect): Use it instead of
3138 hardcoding XML for certain signatures.
3140 * bus/Makefile.am (dbus-bus-introspect.xml): Add
3141 dependency on dbus-daemon.
3143 * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
3144 argument, pass it to dbus_binding_tool_output_glib_client.
3146 * glib/dbus-binding-tool-glib.c
3147 (generate_client_glue): Protect against multiple inclusion.
3148 (dbus_binding_tool_output_glib_client): Add
3149 G_BEGIN_DECLS/G_END_DECLS.
3151 * glib/dbus-binding-tool-glib.c (compute_client_method_name):
3152 Change to just take iface prefix directly.
3153 (write_formal_parameters): Clarify error message.
3154 (check_supported_parameters): New function; checks to see type
3155 signatures of method parameters are supported.
3156 (generate_client_glue): Handle ignore_unsupported flag.
3157 (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
3160 * glib/Makefile.am (dbus-glib-bindings.h): Pass
3161 --ignore-unsupported by default until glib bindings
3164 2005-03-11 Colin Walters <walters@verbum.org>
3166 * glib/Makefile.am: Generate dbus-glib-bindings.h and
3169 * bus/print-introspect.c: New file; prints introspection
3170 data for a given name and object path.
3172 * bus/run-with-tmp-session-bus.sh: New file, refactored
3173 from test/glib/run-test.sh. Creates a temporary session
3174 bus and runs another program.
3176 * test/glib/run-test.sh: Refactor to invoke
3177 run-with-tmp-session-bus.sh.
3179 * bus/driver.c (bus_driver_handle_introspect): Fix to print new
3180 introspection format. Also change to use DBUS_TYPE_x_AS_STRING
3181 macros instead of hardcoding.
3183 * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
3185 2005-03-11 Joe Shaw <joeshaw@novell.com>
3187 * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
3188 this unref; it doesn't match up evenly in some codepaths.
3189 (_dbus_connection_block_pending_call): Unref at every exitpoint;
3190 this evenly matches with the ref near the top of this function.
3192 2005-03-09 Joe Shaw <joeshaw@novell.com>
3194 * dbus/dbus-object-tree.c
3195 (_dbus_object_tree_unregister_and_unlock): If checks are enabled
3196 and we try to unregister a path that's not registered, still go
3197 through the process of unlocking and don't just return.
3199 2005-03-09 Colin Walters <walters@verbum.org>
3201 * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
3202 to this are generated for client-side wrappers. Invokes a
3203 D-BUS method and returns reply values.
3205 * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
3206 function; writes signature string for argument direction.
3207 (write_args_for_direction): Change to pass input values directly
3208 instead of via address, and fix indentation.
3209 (generate_client_glue): Change to invoke dbus_g_proxy_invoke. Also
3210 make generated wrappers inlineable.
3212 * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
3213 note about using dbus_type_is_fixed.
3215 * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
3216 dbus/dbus-signature.c as dbus_type_is_fixed.
3218 All callers updated.
3220 * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
3221 from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
3223 * dbus/dbus-signature.h: Prototype.
3225 * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
3228 * test/glib/test-dbus-glib.c (main): Be sure to clear error as
3229 appropriate instead of just freeing it.
3230 (main): Free returned strings using g_free.
3232 * test/glib/Makefile.am (test-service-glib-glue.h)
3233 (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
3235 * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
3236 simply maps a simple D-BUS type to GType.
3237 (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
3239 (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
3240 initialize the value with it.
3241 (dbus_gvalue_binding_type_from_type): Unused, delete.
3242 (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
3243 various types instead of unmarshalling to value data directly.
3244 Remove can_convert boolean.
3245 (dbus_gvalue_marshal): Remove duplicate initialization; switch to
3246 returning directly instead of using can_convert boolean.
3247 (dbus_gvalue_store): New function; not related to D-BUS per-se.
3248 Stores a GValue in a pointer to a value of its corresponding C
3251 * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
3252 add dbus_gvalue_store.
3254 2005-03-08 Joe Shaw <joeshaw@novell.com>
3256 Fix a bunch of lifecycle and memory management problems
3257 in the mono bindings.
3259 * mono/Arguments.cs (Arguments): Implement IDisposable
3261 * mono/Bus.cs (Bus): Don't allow public instantiation. This is
3262 strictly a static class.
3264 * mono/Connection.cs: Move the DBusObjectPathVTable and associated
3265 delegates into this file.
3266 (Connection): Implement IDisposable.
3267 (Dispose): Disconnect the connection and set the raw connection
3268 pointer to IntPtr.Zero.
3269 (~Connection): Call Dispose().
3270 (RegisterObjectPath): Added. Manages the registration of object
3271 paths so we can cleanly disconnect them at dispose/finalize time.
3272 (UnregisterObjectPath): Ditto.
3273 (set_RawConnection): Unregister all of the object paths when
3274 changing the underlying DBusConnection. Add them back onto the
3275 new connection, if any.
3277 * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
3278 more unmanaged resources anymore, so it's not necessary. Move all
3279 the DBusObjectPathVTable stuff out of here.
3280 (Handler): Save references to our delegates so that they don't get
3281 finalized. Call Connection.RegisterObjectPath() instead of
3282 dbus_connection_register_object_path() directly.
3283 (Message_Called): Dispose the message after we're finished with
3286 * mono/Message.cs (Message): Implement IDisposable.
3287 (Dispose): Dispose the Arguments, and set the RawMessage to
3289 (SendWithReplyAndBlock): We own the ref to the reply that comes
3290 back from dbus_connection_send_with_reply_and_block() so add a
3291 comment about that and unref it after we've constructed a managed
3292 MethodReturn class around it. Fixes a big, big leak.
3294 * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
3296 (BuildSignalHandler): After we've sent the Signal message, dispose
3298 (BuildMethod): Dispose of the method call and reply messages after
3299 we've sent the message and extracted the data we want from the
3302 * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
3304 (Service_FilterCalled): Dispose of the message after we're
3307 2005-03-08 Joe Shaw <joeshaw@novell.com>
3309 * dbus/dbus-connection.c (dbus_connection_send_with_reply):
3310 After we attach our pending call to the connection, unref
3313 * mono/Connection.cs (set_RawConnection): Disconnect our
3314 filter and match callbacks from the old connection and
3315 reconnect them to the new connection, if any.
3317 * mono/DBusType/Array.cs: "Code" is a static member, so
3318 don't use "this" to refer to it. Fix for stricter checking
3321 * mono/DBusType/ObjectPath.cs (Append): Don't leak the
3322 object path that we pass into unmanaged code.
3324 * mono/DBusType/String.cs (Append): Don't leak the string
3325 that we pass into unmanged code.
3327 2005-03-07 John (J5) Palmieri <johnp@redhat.com>
3328 * NEWS: Update for 0.31
3330 * configure.in: Release 0.31
3331 add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
3333 * qt/Makefile.am: fixed build
3335 * dbus/Makefile.am: soname bump for libdbus
3337 * glib/Makefile.am: soname bump for libdbus-glib
3339 2005-03-05 Havoc Pennington <hp@redhat.com>
3341 * dbus/dbus-sysdeps.c:
3342 (pseudorandom_generate_random_bytes_buffer): fix to have no return
3344 (_dbus_generate_random_bytes_buffer): fix return value
3346 * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
3347 checks actually work, from Tom Parker <fdo@tevp.net>
3349 2005-03-01 Colin Walters <walters@verbum.org>
3351 * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
3352 functions copied from dbus-glib-tool.c.
3353 (main): Convert lots of error code to use them.
3354 Also add some testing for introspection bits.
3356 2005-03-01 Colin Walters <walters@verbum.org>
3358 * doc/TODO: Remove introspection signature TODO.
3360 2005-02-27 Colin Walters <walters@verbum.org>
3362 * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
3363 Change return value to const char * instead of int so we can do
3365 (struct PropertyInfo, struct ArgInfo): Store char *.
3366 (property_info_new, arg_info_new): Update parameters, strdup.
3367 (property_info_unref, arg_info_unref): Free.
3369 * glib/dbus-gidl.h: Update prototypes.
3371 * glib/dbus-gparser.c (basic_type_from_string): Delete.
3372 (validate_signature): New function, just validates signature and
3374 (parse_property, parse_arg): Invoke validate_signature. Store
3375 signature instead of just type code.
3377 * glib/dbus-gvalue.c (base_type_from_signature): New utility
3378 function to return a primary type for a signature, dropping
3379 information about types in container types.
3380 (dbus_gvalue_genmarshal_name_from_type)
3381 (dbus_gvalue_binding_type_from_type)
3382 (dbus_gvalue_ctype_from_type): Update to take full signature
3383 instead of type code.
3384 (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
3386 * glib/dbus-gvalue.h: Update prototypes for above.
3388 * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
3389 glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
3390 (introspect_properties, introspect_signals, write_interface):
3391 Update to handle signatures, and remove usage of
3392 _dbus_gutils_type_to_string.
3393 (handle_introspect): Print out type codes instead of e.g. "string"
3394 in hardcoded introspection XML; also use x_AS_STRING constants
3395 instead of hardcoding in string.
3397 * glib/dbus-glib-tool.c (pretty_print): Handle signature change
3398 to string. Remove usage of _dbus_gutils_type_to_string.
3400 * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
3402 * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
3405 * glib/dbus-binding-tool-glib.c (compute_marshaller)
3406 (compute_marshaller_name, generate_glue): Handle signature change
3408 (write_formal_parameters, write_args_for_direction): Ditto, and
3411 * tools/dbus-tree-view.c (type_to_string): Delete.
3412 (info_set_func_text): Update to print full signatures.
3414 * test/glib/test-service-glib.xml: Change types to new
3415 introspection format.
3417 2005-02-26 Havoc Pennington <hp@redhat.com>
3419 * doc/TODO: remove the "guid" item
3421 * test/glib/test-profile.c (no_bus_thread_func): use open_private
3422 (with_bus_thread_func): use open_private
3424 * dbus/dbus-connection.c (dbus_connection_open_private): new
3425 function that works like the old dbus_connection_open()
3426 (dbus_connection_open): now returns an existing connection if
3429 * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
3430 through the GUID to the transport
3432 * dbus/dbus-server.c (_dbus_server_init_base): keep around the
3433 GUID in hex-encoded form.
3435 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
3436 pass GUID argument in to the transport
3438 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
3441 * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
3443 * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
3445 2005-02-25 Havoc Pennington <hp@redhat.com>
3447 * doc/dbus-specification.xml: document the GUID thing
3449 * dbus/dbus-server.c (_dbus_server_init_base): initialize a
3450 globally unique ID for the server, and put a "guid=hexencoded"
3451 field in the address
3453 * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
3455 * dbus/dbus-message.c: ditto
3457 * dbus/dbus-dataslot.c: ditto
3459 * dbus/dbus-list.c: ditto
3461 * dbus/dbus-internals.h: wait, just include
3462 dbus-threads-internal.h here
3464 * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
3467 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
3469 2005-02-24 Colin Walters <walters@verbum.org>
3471 * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
3473 2005-02-24 John (J5) Palmieir <johnp@redhat.com>
3475 * glib/Makefile.am: added dbus-gobject.h to sources list
3476 so distcheck doesn't fail
3478 2005-02-24 Havoc Pennington <hp@redhat.com>
3480 * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
3481 you must disconnect before unref, since locking and other things
3482 are screwed up otherwise. Fix assorted other locking stuff.
3484 * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
3487 * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
3488 into a private header and don't export from the library
3490 * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
3492 2005-02-24 Colin Walters <walters@verbum.org>
3494 * dbus/dbus-signature.c: New file; implements various functions
3495 related to type signatures. Includes an interator for parsing,
3496 validation functions.
3497 (dbus_type_is_basic): Moved here from
3498 dbus-marshal-basic.c:_dbus_type_is_basic.
3499 (dbus_type_is_container): Moved here from
3500 dbus-marshal-basic.c:_dbus_type_is_container.
3502 All callers of _dbus_type_is_container and _dbus_type_is_basic
3503 updated, and include dbus-signature.h.
3505 * dbus/dbus-signature.h: New file; prototypes for the above.
3507 * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
3510 * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
3511 function factored out of _dbus_first_type_in_signature.
3512 (_dbus_first_type_in_signature_c_str): New function; returns first
3513 type code for a type signature character.
3515 * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
3516 handle function moves.
3518 * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
3520 * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
3521 function; skips to next complete type in type signature.
3522 Implemented using previous skip_one_complete_type. Now
3523 skip_one_complete_type just delegates to
3524 _dbus_type_signature_next.
3526 * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
3528 (_dbus_type_is_container): Ditto.
3530 * doc/dbus-specification.xml: Update introspection sample to
3531 use real type signatures.
3533 * dbus/dbus-test.h: Prototype signature test.
3535 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
3538 * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
3540 2005-02-23 John (J5) Palmieri <johnp@redhat.com>
3542 * python/dbus_bindings.pyx.in (PendingCall::get_reply):
3543 s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
3545 2005-02-21 Colin Walters <walters@verbum.org>
3547 * dbus/dbus-test-main.c (main): Take optional specific test
3550 * dbus/dbus-test.c (run_test): New function, runs a test function
3551 with no data directory.
3552 (run_data_test): Like above, but takes data directory.
3553 (dbus_internal_do_not_use_run_tests): Take
3554 specific test argument. Replace lots of cut n' paste code
3555 with run_test and run_data_test.
3557 * dbus/dbus-test.h: Update prototype for
3558 dbus_internal_do_not_use_run_tests.
3560 2005-02-20 Havoc Pennington <hp@redhat.com>
3562 Fix bugs reported by Daniel P. Berrange
3564 * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
3565 (protected_change_watch): new function
3566 (_dbus_server_toggle_watch, _dbus_server_remove_watch)
3567 (_dbus_server_add_watch): change to work like the
3568 dbus-connection.c equivalents; like those, probably kind of
3569 busted, but should at least mostly work for now
3570 (dbus_server_disconnect): drop the lock if we were already
3571 disconnected, patch from Daniel P. Berrange
3573 * dbus/dbus-server.c (_dbus_server_toggle_timeout)
3574 (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
3577 * doc/TODO: todo about unscrewing this mess
3579 2005-02-19 Colin Walters <walters@verbum.org>
3581 * glib/dbus-binding-tool-glib.c
3582 (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
3584 * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
3585 as errno.h and sys/stat.h.
3586 (lose): New function, prints error with
3588 (lose_gerror): Similar, but takes GError for message.
3589 (main): Add --output argument to specify output file to write to,
3590 instead of always printing to stdout. In this mode, determine
3591 timestamps on source files to see whether any are newer than the
3592 target file. If not, exit. Also convert a number of error
3593 messages to use lose (since it's shorter), and switch to using
3594 g_io_channel_shutdown.
3596 2005-02-19 Havoc Pennington <hp@redhat.com>
3598 * glib/dbus-gobject.c
3599 (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
3601 * glib/dbus-glib.c: fix doxygen warnings
3603 * glib/dbus-gparser.c (parse_annotation): error if an annotation
3604 is found on an <arg>
3606 2005-02-17 Colin Walters <walters@verbum.org>
3608 * glib/dbus-gobject.h: Don't export
3609 _dbus_glib_marshal_dbus_message_to_gvalue_array.
3611 * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
3612 (invoke_object_method): Handle it.
3614 * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
3617 2005-02-17 Colin Walters <walters@verbum.org>
3619 * bus/.cvsignore, doc/.cvsignore
3620 * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
3623 2005-02-17 Colin Walters <walters@verbum.org>
3625 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
3626 Rename to DBUS_SERVICE_DBUS.
3627 (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
3628 (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
3629 Change the value from "org.freedesktop.Local"
3630 to "org.freedesktop.DBus.Local".
3631 (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
3632 (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
3633 DBUS_INTERFACE_INTROSPECTABLE.
3634 Change the value from "org.freedesktop.Introspectable"
3635 to "org.freedesktop.DBus.Introspectable".
3636 (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
3637 DBUS_INTERFACE_PROPERTIES.
3638 Change the value from "org.freedesktop.Properties"
3639 to "org.freedesktop.DBus.Properties".
3640 (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
3641 DBUS_INTERFACE_PEER.
3642 Change the value from "org.freedesktop.Peer"
3643 to "org.freedesktop.DBus.Peer".
3644 (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL):
3645 DBUS_INTERFACE_LOCAL.
3646 Change the value from "org.freedesktop.Local"
3647 to "org.freedesktop.DBus.Local".
3649 All other users of those constants have been changed.
3651 * bus/driver.c (bus_driver_handle_introspect): Use constants.
3653 * glib/dbus-gobject.c (handle_introspect): Use constants.
3655 * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
3657 2005-02-17 Colin Walters <walters@verbum.org>
3659 * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
3660 (parse_node, parse_interface, parse_method, parse_signal)
3661 (parse_property, parse_annotation): Lose if we're currently in an
3663 (parse_annotation): New function.
3664 (parser_start_element, parser_end_element): Handle annotation.
3665 (parse_method, parse_interface): Remove support for c_name attribute,
3666 switch to annotations.
3668 * glib/dbus-gidl.h (interface_info_get_binding_names)
3669 (method_info_get_binding_names)
3670 (interface_info_get_binding_name, method_info_get_binding_name)
3671 (interface_info_set_binding_name, method_info_set_binding_name):
3673 (interface_info_get_annotations, method_info_get_annotations)
3674 (interface_info_get_annotation, method_info_get_annotation)
3675 (interface_info_add_annotation, method_info_add_annotation):
3678 * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
3680 (struct MethodInfo): Ditto.
3681 Straightfoward conversion of binding methods into annotation methods
3684 * glib/dbus-glib-tool.c (pretty_print): Print annotations.
3686 * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
3688 * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
3689 Use new annotation API.
3691 * doc/introspect.dtd: Fix a number of DTD syntax errors. Add
3694 * doc/dbus-specification.xml: Discuss introspection annotations,
3695 include list of well-known annotations.
3697 * test/glib/test-service-glib.xml: Make validate against new DTD.
3699 2005-02-17 Colin Walters <walters@verbum.org>
3701 This patch is based on initial work from
3702 Paul Kuliniewicz <kuliniew@purdue.edu>.
3704 * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
3705 initialization of GValue from dbus type to here.
3706 (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
3707 for the "glib-genmarshal" program from a DBus type.
3708 (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
3709 into the C name for it we use in the glib bindings.
3710 (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
3711 glib C type (not GValue).
3712 (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
3714 * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
3715 from dbus-gobject.c.
3717 * glib/dbus-gutils.h: Prototype it.
3719 * glib/dbus-gproxy.c: Include new dbus-gobject.h.
3720 (marshal_dbus_message_to_g_marshaller): Use new shared function
3721 dbus_glib_marshal_dbus_message_to_gvalue_array.
3723 * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
3724 Will be changed once we have annotations.
3726 * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
3727 GStaticRWLock. Callers updated.
3728 (wincaps_to_uscore): Move to dbus-gutils.c. Callers updated.
3729 (string_table_next): New function for iterating over zero-terminated
3731 (string_table_lookup): New function; retrieves specific entry in
3733 (get_method_data): New function; look up method data in object data chunk.
3734 (object_error_domain_prefix_from_object_info)
3735 (object_error_code_from_object_info): New functions, but not implemented yet.
3736 (method_interface_from_object_info): New function; retrieve interface name.
3737 (method_name_from_object_info): New function; retrieve method name.
3738 (method_arg_info_from_object_info): New function; retrieve argument data.
3739 (arg_iterate): New function; iterates over serialized argument data.
3740 (method_dir_signature_from_object_info): New function; returns a
3741 GString holding type signature for arguments for just one
3742 direction (input or output).
3743 (method_input_signature_from_object_info)
3744 (method_output_signature_from_object_info): New functions.
3745 (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
3746 converts dbus message arguments into a GValue array. Used for both
3747 signal handling and method invocation.
3748 (struct DBusGlibWriteIterfaceData): New utility structure.
3749 (write_interface): New function; generate introspection XML for
3751 (introspect_interfaces): New function; gathers all interface->methods,
3752 generates introspection XML for them.
3753 (handle_introspect): Invoke introspect_interfaces.
3754 (get_object_property): Be sure to zero-initalize stack-allocated GValue.
3755 (lookup_object_and_method): New function; examines an incoming message
3756 and attempts to match it up (via interface, method name, and argument
3757 signature) with a known object and method.
3758 (gerror_domaincode_to_dbus_error_name): New function; converts a
3759 GError domain and code into a DBus error name. Needs GError data
3760 added to object introspection to work well.
3761 (gerror_to_dbus_error_message): Creates a DBusMessage error return from
3763 (invoke_object_method): New function to invoke an object method
3764 looked up via lookup_object_and_method. Parses the incoming
3765 message, turns it into a GValue array, then invokes the marshaller
3766 specified in the DBusGMethodInfo. Creates a new message with
3767 either return values or error message as appropriate.
3768 (gobject_message_function): Invoke lookup_object_and_method and
3769 invoke_object_method.
3771 * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
3772 (enum DBusBindingOutputMode): New enum for binding output modes.
3773 (pretty_print): Print binding names.
3774 (dbus_binding_tool_error_quark): GError bits.
3775 (version): Fix typo.
3776 (main): Create GIOChannel for output. Parse new --mode argument,
3777 possible values are "pretty-print", "glib-server", "glib-client".
3778 Use mode to invoke appropriate function.
3780 * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
3782 * glib/dbus-glib-tool.h: New header, just includes GError bits
3785 * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
3786 maps binding style to name.
3787 (struct MethodInfo): Ditto.
3788 (get_hash_keys, get_hash_key): Utility function, returns keys for
3790 (interface_info_new, method_info_new): Initialize bindings.
3791 (interface_info_unref, method_info_unref): Destroy bindings.
3792 (method_info_get_binding_names, method_info_get_binding_name)
3793 (interface_info_get_binding_names, interface_info_get_binding_name):
3794 Functions for retrieving binding names.
3795 (method_info_set_binding_name, interface_info_set_binding_name):
3796 Functions for setting binding names.
3798 * glib/dbus-binding-tool-glib.h: New file, has prototypes
3799 for glib binding generation.
3801 * glib/dbus-binding-tool-glib.c: New file, implements server-side
3802 and client-side glib glue generation.
3804 * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
3805 dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
3808 * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
3809 of using GClosureMarshal directly.
3810 (struct DBusGObjectInfo): Add n_infos member.
3812 * test/glib/test-service-glib.xml: New file; contains introspection data
3813 for MyTestObject used in test-service-glib.c.
3815 * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
3816 (my_object_do_nothing, my_object_increment, my_object_throw_error)
3817 (my_object_uppercase, my_object_many_args): New test methods.
3818 (main): Use dbus_g_object_class_install_info to include generated object
3821 * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
3822 as well as client-side bindings.
3824 * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
3825 (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
3826 using both the dbus_gproxy stuff directly as well as the generated bindings.
3828 2005-02-15 Havoc Pennington <hp@redhat.com>
3830 * dbus/dbus-connection.c (dbus_connection_dispatch): always
3831 complete a pending call, don't run filters first.
3833 * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
3834 dbus_pending_call_steal_reply
3836 * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
3837 _dbus_connection_block_pending_call
3838 (dbus_pending_call_get_reply): change to steal_reply and return a
3841 * dbus/dbus-connection.c
3842 (dbus_connection_send_with_reply_and_block): port to work in terms
3844 (_dbus_connection_block_pending_call): replace block_for_reply
3847 2005-02-14 Havoc Pennington <hp@redhat.com>
3849 * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
3850 properly handle looking up group information by name; fix
3853 2005-02-13 Havoc Pennington <hp@redhat.com>
3855 * dbus/dbus-connection.c (dbus_connection_return_message)
3856 (dbus_connection_borrow_message): hold dispatch lock while message
3858 (_dbus_connection_block_for_reply): hold dispatch lock while we
3859 block for the reply, so nobody steals our reply
3860 (dbus_connection_pop_message): hold the dispatch lock while we
3863 2005-02-13 Havoc Pennington <hp@redhat.com>
3865 * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
3866 (_dbus_connection_release_dispatch)
3867 (_dbus_connection_acquire_io_path)
3868 (_dbus_connection_release_io_path): make the mutex and condvar
3869 control access to the "acquired" flag. Drop the connection lock
3870 while waiting on the condvar. Hopefully these are baby steps in
3871 roughly the right direction.
3873 2005-02-13 Havoc Pennington <hp@redhat.com>
3875 * dbus/dbus-connection.c: use separate mutexes for the condition
3876 variables; this is some kind of baseline for sanity, but the
3877 condition variables still aren't used correctly afaict
3879 2005-02-13 Havoc Pennington <hp@redhat.com>
3881 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
3884 * dbus/dbus-connection.c
3885 (_dbus_connection_detach_pending_call_unlocked): add this
3887 Initial semi-correct pass through to fix thread locking; there are
3888 still some issues with the condition variable paths I'm pretty
3891 * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
3894 * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
3895 rename to add _unlocked
3896 (struct DBusConnection): move "dispatch_acquired" and
3897 "io_path_acquired" to use only one bit each.
3898 (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
3899 (dbus_connection_set_watch_functions): hacky fix to reentrancy
3900 (_dbus_connection_add_watch, _dbus_connection_remove_watch)
3901 (_dbus_connection_toggle_watch, _dbus_connection_add_timeout)
3902 (_dbus_connection_remove_timeout)
3903 (_dbus_connection_toggle_timeout): drop lock when calling out to
3904 user functions; done in a hacky/bad way.
3905 (_dbus_connection_send_and_unlock): add a missing unlock
3906 (_dbus_connection_block_for_reply): add a missing unlock
3908 * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
3909 drop lock in a hacky probably unsafe way to call out to user
3912 2005-02-12 Havoc Pennington <hp@redhat.com>
3914 * tools/dbus-tree-view.c (info_set_func_text): display more
3917 * bus/driver.c (bus_driver_handle_list_services): list the bus
3920 * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
3922 * glib/dbus-gidl.c (signal_info_get_n_args): new function
3923 (method_info_get_n_args): new function
3925 2005-02-12 Havoc Pennington <hp@redhat.com>
3927 * bus/driver.c (bus_driver_handle_introspect): add introspection
3930 2005-02-12 Havoc Pennington <hp@redhat.com>
3932 * bus/driver.c: put the signature of each bus driver method in the
3933 table of handlers and check it on incoming calls; this isn't
3934 really useful, but going to add introspect support in a minute.
3936 2005-02-11 Joe Shaw <joeshaw@novell.com>
3938 * mono/Connection.cs: The unpredictability of finalizers in mono
3939 prevents us from deterministically disconnecting the filters from
3940 the Service class's finalizer, so move tracking of filters and
3941 matches here. Add API for that.
3943 * mono/Service.cs: Remove the code, add code which calls the
3944 methods now on the Connection class.
3946 2005-02-11 John (J5) Palmieri <johnp@redhat.com>
3948 * python/dbus.py (class Sender): added to support dbus signals better
3949 (Bus::add_signal_receiver): added expand_args parameter which defaults
3950 to True. When expand args is True the signal handler will pass the
3951 message arguments as parameters to the signal handler. If False
3952 revert to previous behavior where the signal handler must get the
3953 argument list from the message. This is to help port applications
3954 like HAL that have a tendancy to send variable length argument lists.
3955 self._match_rule_to_receivers is now a dict of dicts.
3956 (Bus::remove_signal_receiver): pop handler off the dict intead of
3957 removing it from a list
3958 (Bus::_signal_func): change signal handlers so that interface,
3959 signal_name, service, path and message are packed into a Sender
3960 object and that is passed to the handler. If expand_args is True
3961 extract the args list from the message and append it to the parameter
3964 * python/dbus_bindings.pyx.in (class Signature): added to support
3966 (MessageIter::__init__): changed iteration limit to match D-BUS
3967 (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY,
3968 STRUCT and VARIENT type support
3969 (MessageIter::python_value_to_dbus_sig): made recursive to support
3971 (MessageIter::append*): added Signature, dict, tuple
3974 * python/examples/example-client.py: added examples of getting tuples
3977 * python/examples/example-service.py: added examples of sending tuples
3980 * python/examples/example-signal-recipient.py: Fixed to handle new
3981 signal callback format
3983 2005-02-10 Havoc Pennington <hp@redhat.com>
3985 * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
3986 (call dbus_g_proxy_add_signal)
3988 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
3990 (_dbus_server_new_for_domain_socket): escape the path
3992 * dbus/dbus-address.c (dbus_address_escape_value): new
3993 (dbus_address_unescape_value): new
3994 (dbus_parse_address): unescape values
3996 * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
3998 * doc/dbus-specification.xml: explain how to escape values in
4001 2005-02-10 Havoc Pennington <hp@redhat.com>
4003 * dbus/dbus-message-factory.c (generate_special): modify test to
4004 avoid using a non-basic dict key
4006 * dbus/dbus-marshal-validate-util.c: add test for the below
4008 * doc/dbus-specification.xml: require that dict keys are a basic
4011 * dbus/dbus-marshal-validate.c
4012 (_dbus_validate_signature_with_reason): require that dict key is a
4015 2005-02-10 Havoc Pennington <hp@redhat.com>
4017 * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
4018 change to be _and_unlock instead of _unlocked
4020 * dbus/dbus-connection.c
4021 (_dbus_connection_send_preallocated_unlocked_no_update): rename to
4022 have no_update so we can find this bug quickly in future
4024 2005-02-10 Havoc Pennington <hp@redhat.com>
4026 * dbus/dbus-message-util.c (verify_test_message): tests for string
4029 * dbus/dbus-message.c (dbus_message_append_args_valist): add
4030 support for arrays of string/signature/path
4032 2005-02-10 Joe Shaw <joeshaw@novell.com>
4034 * dbus/dbus-connection.c
4035 (_dbus_connection_queue_received_message_link,
4036 _dbus_connection_message_sent): Add the path to
4038 (_dbus_connection_send_preallocated_and_unlock): Added. Calls
4039 _dbus_connection_send_preallocated_unlocked(), updated the
4040 dispatch status, and unlocks. Fixes a bug where certain
4041 situations (like a broken pipe) could cause a Disconnect message
4042 to not be sent, tricking the bus into thinking a service was still
4043 there when the process had quit.
4044 (_dbus_connection_send_preallocated): Call
4045 _dbus_connection_send_preallocated_and_unlock().
4046 (_dbus_connection_send_and_unlock): Added. Calls
4047 _dbus_connection_send_preallocated_and_unlock().
4048 (dbus_connection_send): Call _dbus_connection_send_and_unlock().
4049 (dbus_connection_send_with_reply): Update the dispatch status and
4052 * mono/Service.cs (~Service): Added. Removes the filter so that
4053 we don't get unmanaged code calling back into a GCed delegate.
4054 (RemoveFilter); Added.
4056 2005-02-09 John (J5) Palmieri <johnp@redhat.com>
4058 * dbus/dbus-message.c (dbus_message_iter_open_container):
4059 - Removed check for iterator type being an array because
4060 get_arg_type does not work with writer iterators
4061 - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
4063 2005-02-07 Havoc Pennington <hp@redhat.com>
4065 * doc/dbus-specification.xml: some more language cleanups; add
4066 stuff about how to deal with invalid protocol and extension
4067 points; add _ to allowed chars in auth commands; add EXTENSION_
4070 2005-02-06 Havoc Pennington <hp@redhat.com>
4072 * s/expected/required/ in a couple places for clarity
4074 2005-02-07 Colin Walters <walters@verbum.org>
4076 * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
4077 sender or proposed_recipient.
4079 2005-02-06 Havoc Pennington <hp@redhat.com>
4081 * dbus/dbus-message-factory.c (generate_special): more tests
4083 * dbus/dbus-marshal-validate.c (validate_body_helper): detect
4084 array length that exceeds the maximum
4086 2005-02-05 Havoc Pennington <hp@redhat.com>
4088 * dbus/dbus-message-factory.c (generate_special): more test cases,
4091 * dbus/dbus-marshal-validate.c (validate_body_helper): return the
4092 reason why a signature was invalid
4094 * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
4095 skip the length of the string before we look at it in validation
4097 * dbus/dbus-string-util.c (_dbus_string_test): add tests for
4100 * dbus/dbus-message.c (_dbus_message_loader_new): default
4101 max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
4103 2005-02-05 Havoc Pennington <hp@redhat.com>
4105 * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
4106 if the signature of a variant was empty
4107 (_dbus_validate_signature_with_reason): catch "(a)" (array inside
4108 struct with no element type)
4110 * dbus/dbus-message-factory.c (generate_uint32_changed): add more
4111 mangled messages to break things
4113 2005-02-04 Havoc Pennington <hp@redhat.com>
4115 * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
4116 g_quark_try_string() so it actually can return 0
4117 (dbus_g_proxy_connect_signal): ditto
4119 2005-02-04 Havoc Pennington <hp@redhat.com>
4121 * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
4123 (tristring_from_message): assert cleanly on null path/interface
4124 (should not be possible though I decided later)
4125 (dbus_g_proxy_dispose): move proxy manager unregistration here
4126 (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
4127 g_return_if_fail() checks
4129 2005-02-04 Havoc Pennington <hp@redhat.com>
4131 * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
4133 * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
4134 (with some minor changes)
4136 * doc/dbus-specification.xml: add deprecated attribute to
4137 introspection format
4139 2005-01-31 Havoc Pennington <hp@redhat.com>
4141 * glib/dbus-gproxy.c: rewrite how signals work again, this time I
4142 think it's sort of right
4144 2005-01-30 Havoc Pennington <hp@redhat.com>
4146 * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
4148 2005-01-30 Havoc Pennington <hp@redhat.com>
4150 * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
4152 * autogen.sh: change to autotools 1.9
4154 * glib/dbus-gproxy.c: completely change how signals work
4155 (dbus_g_proxy_add_signal): new function to specify signature of a
4157 (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
4158 and g_warning if the incoming message has the wrong signature.
4160 2005-01-30 Havoc Pennington <hp@redhat.com>
4162 * tools/dbus-names-model.c (have_names_notify): fix this
4164 * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
4165 up the string array handling a bit
4167 2005-01-30 Havoc Pennington <hp@redhat.com>
4169 * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
4170 (dbus_g_pending_call_cancel): new function
4172 * dbus/dbus-glib.h: move GType decls for connection/message here;
4173 * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
4174 here, just kind of rationalizing how we handle all that
4176 * tools/dbus-names-model.c: new file for a tree model listing the
4179 * tools/dbus-tree-view.c (model_new): use proper typing on the
4182 2005-01-30 Havoc Pennington <hp@redhat.com>
4184 * glib/dbus-gmain.c: add a custom GSource back that just checks
4185 whether the message queue has anything in it; otherwise, there are
4186 cases where we won't see messages in the queue since there was no
4187 IO visible to the glib main loop
4189 * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
4190 increase default message timeout to 25 seconds
4192 2005-01-30 Havoc Pennington <hp@redhat.com>
4194 * test/glib/test-profile.c (no_bus_stop_server): remove the
4195 warning about the g_warning that I just fixed
4197 * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
4198 custom source, seems to be a lot easier to understand and work
4201 2005-01-30 Havoc Pennington <hp@redhat.com>
4203 I think this main loop thing is conceptually broken, but here are
4204 some band aids. I'll maybe rewrite it in a minute.
4206 * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
4207 custom GSource, so don't pass it in; confusing
4208 (gsource_server_finalize, gsource_connection_finalize): add
4209 finalize handlers that remove all the watches.
4211 2005-01-30 Havoc Pennington <hp@redhat.com>
4213 * glib/dbus-gobject.c (introspect_properties): fix the XML
4216 * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
4217 which effectively detects the use of freed messages
4219 * glib/dbus-gobject.c (handle_introspect): modify and return the
4220 reply message instead of the incoming message
4222 * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
4223 gee, maybe it should SEND THE XML instead of just making a string
4224 and freeing it again ;-)
4226 * tools/dbus-print-message.c (print_message): improve printing of
4229 * configure.in: add debug-glib.service to the output
4231 2005-01-30 Havoc Pennington <hp@redhat.com>
4233 dbus-viewer introspected and displayed the bus driver
4235 * dbus/dbus-object-tree.c
4236 (object_tree_test_iteration): add tests for a handler registered on "/"
4238 * dbus/dbus-object-tree.c
4239 (_dbus_decompose_path): fix to handle path "/" properly
4240 (run_decompose_tests): add tests for path decomposition
4242 * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
4245 * glib/dbus-gobject.c (handle_introspect): fix quotes
4247 * test/glib/run-test.sh: support launching the bus, then running
4250 * test/glib/test-service-glib.c (main): put in a trivial gobject
4251 subclass and register it on the connection
4253 * bus/driver.c (bus_driver_handle_introspect): implement
4254 introspection of the bus driver service
4256 * dbus/dbus-protocol.h: add #defines for the XML namespace,
4257 identifiers, doctype decl
4259 * bus/driver.c (bus_driver_handle_get_service_owner): handle
4260 attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by
4261 returning the service unchanged.
4262 (bus_driver_handle_message): remove old check for reply_serial in
4263 method calls, now the message type deals with that
4264 (bus_driver_handle_message): handle NULL interface
4266 * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
4268 * glib/dbus-gloader-expat.c (description_load_from_string): allow
4271 * tools/dbus-viewer.c: add support for introspecting a service on
4274 * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
4275 (dbus_g_pending_call_unref): add
4277 2005-01-29 Havoc Pennington <hp@redhat.com>
4279 * tools/dbus-tree-view.c: add support for displaying properties.
4280 (run dbus-viewer with an introspect xml file as arg, then resize
4281 the window so the tree elements show up, not sure what that is)
4283 * glib/dbus-gobject.c (handle_introspect): return
4284 org.freedesktop.Properties and org.freedesktop.Introspectable
4285 interfaces when we are introspected.
4287 * doc/dbus-specification.xml: allow empty interface name when
4290 2005-01-29 Havoc Pennington <hp@redhat.com>
4292 * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
4293 though it uses glib, it could be extended for any binding in
4296 * glib/dbus-gobject.c (gobject_message_function): change to the
4297 new way properties work
4299 * dbus/dbus-protocol.h: add the new interfaces
4301 * doc/dbus-specification.xml: document the introspection format,
4302 Introspectable interface, and add an org.freedesktop.Properties
4305 * glib/dbus-gparser.c: add support for a <property> element
4307 * glib/dbus-gidl.c: add PropertyInfo
4309 * glib/dbus-gobject.c (handle_introspect): put the outermost
4310 <node> outside the signal and property descriptions.
4311 (introspect_properties): export properties as <property> rather
4312 than as method calls
4314 2005-01-28 Havoc Pennington <hp@redhat.com>
4316 * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
4317 related to authentication protocol
4319 2005-01-28 John (J5) Palmieri <johnp@redhat.com>
4321 * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
4322 - BUS_ACTIVATION -> BUS_STARTER
4323 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
4324 - class MessageIter (__init__): Added recursion checking
4325 so we throw a nice error instead of just disconnecting from the
4327 (get): Added arg_type parameter for recursion.
4328 Removed the nil type
4329 Added signiture type placeholder (not implemented)
4330 Added struct type placeholder (not implemented)
4331 Added varient type placeholder (not implemented)
4332 Commented out dict type for now
4333 (get_element_type): renamed from get_array_type
4334 (get_*): changed to use the dbus_message_iter_get_basic API
4335 (get_*_array): removed in favor of recursive get_array method
4336 (get_array): new recursive method which calls get to marshal
4337 the elements of the array
4338 (value_to_dbus_sig): New method returns the corrasponding
4339 dbus signiture to a python value
4340 (append): Comment out dict handling for now
4341 Handle lists with the new recursive API
4342 Comment out None handling for now
4343 (append_nil): removed
4344 (append_*): changed to use dbus_message_iter_append_basic API
4345 (append_*_array): removed in favor of recursive append_array
4347 (__str__): Make it easier to print out recursive iterators
4349 - class Message (__str__): moved type inspection to the
4350 MessageIter class' __str__ method
4351 (get_iter): Added an append parameter wich defaults to False
4352 If True use the new API's to create an append iterator
4354 * python/dbus.py: Update to use new bindings API
4355 - TYPE_ACTIVATION -> TYPE_STARTER
4356 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
4357 - class ActivationBus -> class StarterBus
4358 - class RemoteObject (__call__): get an append iterator
4359 - (_dispatch_dbus_method_call): get an append iterator
4360 - class Object (emit_signal): get an append iterator
4362 * python/examples/: Fixed up the examples to work with the new API
4364 2005-01-28 Joe Shaw <joeshaw@novell.com>
4366 * configure.in: Bump version up to 0.30.
4368 * HACKING: Add a release item to bump the version number up after
4371 2005-01-28 Havoc Pennington <hp@redhat.com>
4373 * doc/dbus-specification.xml: update to describe 16-bit types and
4376 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
4379 * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
4382 * dbus/dbus-marshal-recursive.c: implement
4384 2005-01-27 Havoc Pennington <hp@redhat.com>
4386 * dbus/dbus-arch-deps.h.in: add 16/32-bit types
4388 * configure.in: find the right type for 16 and 32 bit ints as well
4391 * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
4392 the 16-bit types so people don't have to stuff them in 32-bit or
4395 2005-01-27 Havoc Pennington <hp@redhat.com>
4397 * dbus/dbus-message.c: byteswap the message if you init an
4398 iterator to read/write from it
4400 * dbus/dbus-marshal-byteswap.c: new file implementing
4401 _dbus_marshal_byteswap()
4403 * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
4405 2005-01-26 Havoc Pennington <hp@redhat.com>
4407 * dbus/dbus-marshal-validate-util.c: break this out (and fix
4408 build, apparently - nobody noticed?)
4410 2005-01-26 Havoc Pennington <hp@redhat.com>
4412 * dbus/dbus-marshal-recursive.h: remove todo comment
4414 2005-01-25 Joe Shaw <joeshaw@novell.com>
4416 * Land the mono binding changes to conform to the new APIs.
4418 * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
4419 DBusType/Dict.cs, and DBusType/Nil.cs from the build.
4421 * mono/Arguments.cs (GetCodeAsString): Added. Returns the dbus
4422 type code as a string.
4423 (InitAppending): Rename dbus_message_append_iter_init() to
4424 dbus_message_iter_init_append().
4426 * mono/BusDriver.cs: Rename ServiceEventHandler to
4427 NameOwnerChangedHandler. Rename GetServiceOwner to GetOwner.
4428 Rename ServiceOwnerChanged to NameOwnerChanged.
4430 * mono/Connection.cs: Rename BaseService to UniqueName, and the
4433 * mono/Custom.cs: Removed. The CUSTOM type has been removed.
4435 * mono/Service.cs: Rename Exists to HasOwner, internally rename
4436 dbus_bus_acquire_service() to dbus_bus_request_name().
4438 * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
4439 of Type.UnderlyingSystemType to get the correct element type for
4441 (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
4442 dbus_message_get_{element|arg}_type() instead of
4443 dbus_message_iter_init_array_iterator().
4444 (Append): Replace dbus_message_iter_append_array() with
4445 dbus_message_iter_open_container() and
4446 dbus_message_iter_close_container().
4448 * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed. These
4449 types have been removed.
4451 * mono/DBusType/*.cs: Replace calls of
4452 dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
4453 but specify the type in the DllImport extern declaration. Ditto
4454 for dbus_message_iter_append_[type]() ->
4455 dbus_message_iter_append_basic().
4457 * mono/example/BusListener.cs: Update for ServiceEventHandler ->
4458 NameOwnerChangedHandler.
4460 2005-01-25 John (J5) Palmieri <johnp@redhat.com>
4462 * python/dbus_bindings.pyx.in: Rename of methods and bindings
4463 - get_base_service -> get_unique_name
4464 - bus_get_base_service -> bus_get_unique_name
4465 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
4466 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS
4467 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
4468 - bus_activate_service -> bus_start_service_by_name
4469 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
4470 - bus_acquire_service -> bus_request_name
4471 - dbus_bus_acquire_service -> dbus_bus_request_name
4472 - bus_service_exists -> bus_name_has_owner
4473 - dbus_bus_service_exists -> dbus_bus_name_has_owner
4475 * python/dbus.py: Rename of methods
4476 - activate_service -> start_service_by_name
4477 - bus_acquire_service -> bus_request_name
4478 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS
4479 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
4482 2005-01-24 Joe Shaw <joeshaw@novell.com>
4484 * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
4485 signature for the method that can't be found.
4487 * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
4488 the message has any arguments, we need to call
4489 _dbus_type_reader_get_current_type(), not
4490 _dbus_type_reader_has_next().
4492 2005-01-24 Havoc Pennington <hp@redhat.com>
4494 * dbus/dbus-message-factory.c: more testing of message validation
4496 * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
4499 2005-01-23 Havoc Pennington <hp@redhat.com>
4501 * dbus/dbus-message-factory.c, dbus/dbus-message-util.c:
4502 get this all working, not many tests in the framework yet though
4504 2005-01-22 Havoc Pennington <hp@redhat.com>
4506 * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
4507 tutorial, based on work from David Wheeler.
4509 2005-01-21 Havoc Pennington <hp@redhat.com>
4511 * dbus/dbus-bus.c: add more return_if_fail checks
4513 * dbus/dbus-message.c (load_message): have the "no validation"
4514 mode (have to edit the code to toggle the mode for now though)
4516 * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
4517 skips all validation; I want to use this at least for benchmark
4518 baseline, I'm not sure if it should be a publicly-available switch.
4520 2005-01-21 Havoc Pennington <hp@redhat.com>
4522 * glib/dbus-gmain.c: don't put the GLib bindings in the same
4523 toplevel doxygen group as the low-level API stuff
4525 * dbus/dbus.h: note that libdbus is the low-level API
4527 2005-01-20 Havoc Pennington <hp@redhat.com>
4529 * update-dbus-docs.sh: script to update docs on the web site, only
4530 works for me though. neener.
4532 2005-01-20 Havoc Pennington <hp@redhat.com>
4534 * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
4535 code can reveal bugs in it
4537 2005-01-20 Havoc Pennington <hp@redhat.com>
4539 * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
4540 select() version, patches from Tor Lillqvist
4542 2005-01-20 Havoc Pennington <hp@redhat.com>
4544 * doc/dbus-tutorial.xml: replace > with >
4546 * bus/services.c (bus_registry_acquire_service): validate the name
4547 and return a better error if it's no good.
4549 * doc/dbus-specification.xml: note NO_AUTO_START change
4551 * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
4552 from AUTO_START, we're toggling the default
4554 * bus/dispatch.c: adapt the tests to change of auto-start default
4556 2005-01-18 Havoc Pennington <hp@redhat.com>
4558 * rename dbus-daemon-1 to dbus-daemon throughout
4560 2005-01-18 Havoc Pennington <hp@redhat.com>
4562 * Throughout, grand renaming to strip out the use of "service",
4563 just say "name" instead (or "bus name" when ambiguous). Did not
4564 change the internal code of the message bus itself, only the
4565 programmer-facing API and messages.
4567 * doc/dbus-specification.xml: further update the message bus section
4569 * bus/config-parser.c (all_are_equiv): fix bug using freed string
4572 2005-01-17 Havoc Pennington <hp@redhat.com>
4574 * dbus/dbus-types.h: remove 16-bit types since we don't use them
4577 * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
4578 "invalid name character" not only non-ASCII
4580 * doc/dbus-specification.xml: further update spec, message bus
4581 parts are still out-of-date but the marshaling etc. stuff is now
4584 2005-01-17 Havoc Pennington <hp@redhat.com>
4586 * doc/dbus-specification.xml: partially update spec
4588 2005-01-17 Havoc Pennington <hp@redhat.com>
4590 * Throughout, align variant bodies according to the contained
4591 type, rather than always to 8. Should save a fair bit of space in
4594 * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
4595 fix handling of case where p == end
4597 * doc/TODO: remove the dbus_bool_t item and variant alignment items
4599 2005-01-17 Havoc Pennington <hp@redhat.com>
4601 * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
4603 * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
4604 of an 8-bit type. Now dbus_bool_t is the type to use whenever you
4605 are marshaling/unmarshaling a boolean.
4607 2005-01-16 Havoc Pennington <hp@redhat.com>
4609 This is about it on what can be disabled/deleted from libdbus
4610 easily, back below 150K anyhow. Deeper cuts are more work than
4611 just turning the code off as I've done here.
4613 * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
4614 signed int convenience funcs
4616 * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
4619 * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
4620 things out of libdbus
4622 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
4624 * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
4625 tests-enabled-only, though it should probably be deleted)
4627 * dbus/dbus-message-util.c: same stuff
4629 * dbus/dbus-auth-util.c: same stuff
4631 2005-01-16 Havoc Pennington <hp@redhat.com>
4633 * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
4635 * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
4636 way for stripping down dbus-userdb.c stuff included in libdbus.
4637 Rename _dbus_parse_uid for consistency.
4639 2005-01-16 Havoc Pennington <hp@redhat.com>
4641 * dbus/dbus-internals.c (_dbus_real_assert): print the function
4642 name the assertion failed in
4644 * dbus/dbus-internals.h (_dbus_return_if_fail)
4645 (_dbus_return_val_if_fail): assert that the name of the function
4646 containing the check doesn't start with '_', since we only want to
4647 use checks on public functions
4649 * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
4650 checks to assertions
4652 * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
4653 change checks to asserts for private function
4655 * dbus/dbus-message.c (_dbus_message_set_serial): checks
4656 to asserts for private function
4658 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
4659 broken assertion that was breaking make check
4660 (_dbus_type_reader_array_is_empty): remove this rather than fix
4661 it, was only used in assertions
4663 2005-01-16 Havoc Pennington <hp@redhat.com>
4665 * test/unused-code-gc.py: hacky script to find code that's used
4666 only by the bus (not libdbus) or used only by tests or not used at
4667 all. It has some false alarms, but looks like we can clean up a
4668 lot of size from libdbus.
4670 * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
4671 dbus/Makefile.am: initially move 10K of binary size out of libdbus
4673 2005-01-16 Havoc Pennington <hp@redhat.com>
4675 * Add and fix docs according to Doxygen warnings throughout
4678 * dbus/dbus-marshal-recursive.c
4679 (_dbus_type_reader_array_is_empty): change this to just call
4680 array_reader_get_array_len() and make it static
4682 * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
4684 (dbus_message_iter_init_append): rename from append_iter_init
4686 * dbus/dbus-marshal-recursive.c
4687 (_dbus_type_reader_get_element_type): rename from
4688 _dbus_type_reader_get_array_type
4690 2005-01-15 Havoc Pennington <hp@redhat.com>
4692 * test/glib/test-profile.c (with_bus_server_filter): fix crash
4694 * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
4695 when DBUS_DISABLE_ASSERT
4696 (_dbus_marshal_set_basic): be sure we align for the string length
4698 * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
4701 * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
4702 inline macro version
4703 (_dbus_string_set_byte): provide inline macro version
4705 2005-01-15 Havoc Pennington <hp@redhat.com>
4707 * Land the new message args API and type system.
4709 This patch is huge, but the public API change is not
4710 really large. The set of D-BUS types has changed somewhat,
4711 and the arg "getters" are more geared toward language bindings;
4712 they don't make a copy, etc.
4714 There are also some known issues. See these emails for details
4716 http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
4717 http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
4719 * dbus/dbus-marshal-*: all the new stuff
4721 * dbus/dbus-message.c: basically rewritten
4723 * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
4724 freed blocks to be all non-nul bytes so using freed memory is less
4725 likely to work right
4727 * dbus/dbus-internals.c (_dbus_test_oom_handling): add
4728 DBUS_FAIL_MALLOC=N environment variable, so you can do
4729 DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
4730 DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
4733 * qt/message.cpp: port to the new message args API
4734 (operator<<): use str.utf8() rather than str.unicode()
4735 (pretty sure this is right from the Qt docs?)
4737 * glib/dbus-gvalue.c: port to the new message args API
4739 * bus/dispatch.c, bus/driver.c: port to the new message args API
4741 * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
4742 "locked" flag to TRUE and align_offset to 0; I guess we never
4743 looked at these anyhow, but seems cleaner.
4745 * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
4746 move allocation padding macro to this header; use it to implement
4747 (_DBUS_STRING_STATIC): ability to declare a static string.
4749 * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
4750 change to return TRUE if the interface is not set.
4752 * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
4753 to dbus-marshal-validate.[hc]
4755 * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
4758 * dbus/Makefile.am: cut over from dbus-marshal.[hc]
4759 to dbus-marshal-*.[hc]
4761 * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
4762 function here from dbus-marshal.c
4764 2005-01-12 Joe Shaw <joeshaw@novell.com>
4766 * NEWS: Update for 0.23.
4768 * configure.in: Release 0.23.
4770 2005-01-12 Joe Shaw <joeshaw@novell.com>
4772 * mono/Makefile.am, mono/example/Makefile.am: Always build the
4773 dbus DLL with --debug. Clean up after the .mdb files this leaves
4776 * mono/doc/Makefile.am: Need to uninstall the docs on "make
4779 * mono/Arguments.cs (GetDBusTypeConstructor): If the type
4780 is an enum, get the enum's underlying type. Another mono
4783 2005-01-11 Joe Shaw <joeshaw@novell.com>
4785 Patch from Sjoerd Simons <sjoerd@luon.net>
4787 * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
4788 DESTDIR. It breaks stuff.
4790 2005-01-11 Joe Shaw <joeshaw@novell.com>
4792 Patch from Tambet Ingo <tambet@ximian.com>
4794 * mono/DBusType/Array.cs (Get): Get the underlying element type by
4795 calling type.GetElementType(). The code previously depended on
4796 broken Mono behavior, which was fixed in Mono 1.1.3.
4798 * mono/DBusType/Dict.cs (constructor): Fix the parameters for
4799 Activator.CreateInstance() so that the class's constructor is
4800 called with the right parameters.
4802 2005-01-11 Joe Shaw <joeshaw@novell.com>
4804 Patch from Timo Teräs <ext-timo.teras@nokia.com>
4806 * dbus/dbus-connection.c
4807 (_dbus_connection_queue_received_message_link): Call
4808 _dbus_connection_remove_timeout() instead of the _locked()
4809 variant, since it's always called from
4810 _dbus_connection_handle_watch(), which handles the locking.
4811 Removed the _locked() variant since it's no longer used.
4813 2005-01-03 Havoc Pennington <hp@redhat.com>
4815 * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
4818 2004-12-26 Havoc Pennington <hp@redhat.com>
4820 * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
4822 2005-01-03 Havoc Pennington <hp@redhat.com>
4824 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
4827 * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
4829 2005-01-02 Havoc Pennington <hp@redhat.com>
4831 * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
4833 2005-01-01 Havoc Pennington <hp@redhat.com>
4835 * configure.in: add -Wfloat-equal
4837 2005-01-01 Havoc Pennington <hp@redhat.com>
4839 * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro,
4840 for a variety of reasons '==' doesn't do this.
4842 2004-12-31 Havoc Pennington <hp@redhat.com>
4844 * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
4845 I keep wishing I had
4847 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4849 * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
4851 2004-12-30 John (J5) Palmieri <johnp@redhat.com>
4853 * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
4854 and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
4855 dbus-protocol.h. Because they are defines and not enums they are not
4858 2004-12-26 John (J5) Palmieri <johnp@redhat.com>
4860 * python/dbus_bindings.pyx.in (bus_activate_service): Bind
4861 dbus_bus_activate_service
4863 * python/dbus.py (Bus.activate_service): activate a service on the
4866 2004-12-24 Havoc Pennington <hp@redhat.com>
4868 * test/decode-gcov.c: change to use .gcno and .gcda files, but the
4869 file format has also changed and I haven't adapted to that yet
4871 * Makefile.am: load .gcno files from latest gcc
4873 2004-12-23 John (J5) Palmieri <johnp@redhat.com>
4874 * Patch from Rob Taylor <robtaylor@fastmail.fm>
4876 * python/dbus_bindings.pyx.in (bus_get_unix_user): New
4879 * python/dbus.py (get_unix_user): Added binding to
4880 call dbus_bindings.bus_get_unix_user
4882 * python/extract.py: Modified the proto_pat regex to
4883 handle unsigned long
4885 2004-12-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
4887 * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
4888 better POSIX compliance.
4890 2004-12-19 Havoc Pennington <hp@redhat.com>
4892 * dbus/dbus-string.c (_dbus_string_insert_4_aligned)
4893 (_dbus_string_insert_8_aligned): new functions
4895 * dbus/dbus-string.c (_dbus_string_alloc_space): new function
4897 2004-12-18 Havoc Pennington <hp@redhat.com>
4899 * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
4902 * dbus/dbus-message.c: fix a comment, and add a still-unused
4903 not-implemented function
4905 * dbus/dbus-marshal.h: fix comment
4907 * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
4909 2004-12-17 Joe Shaw <joeshaw@novell.com>
4911 * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
4912 mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
4913 mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
4914 Type.UnderlyingSystemType to get the actual system type
4915 underneath. This code previously depended on the broken Mono
4916 behavior, which was fixed in 1.1.3.
4918 2004-11-27 Havoc Pennington <hp@redhat.com>
4920 * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
4922 (_dbus_string_get_const_data): inline when asserts are disabled
4924 * dbus/dbus-message.c: record the _dbus_current_generation of
4925 creation so we can complain if dbus_shutdown() is used improperly.
4926 Do this only if checks are enabled.
4928 * dbus/dbus-connection.c: ditto
4930 2004-11-26 Havoc Pennington <hp@redhat.com>
4932 * test/glib/test-profile.c: add with_bus mode to profile echoes
4933 that go through the bus.
4935 * test/glib/run-test.sh: add ability to run test-profile
4937 * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
4940 2004-11-26 Havoc Pennington <hp@redhat.com>
4942 * test/glib/test-profile.c: clean up how the fake_malloc_overhead
4943 thing was implemented
4945 2004-11-26 Havoc Pennington <hp@redhat.com>
4947 * test/glib/test-profile.c: tweak a bit, add support for some
4948 made-up minimal malloc overhead with plain sockets, since in
4949 real life some sort of buffers are unavoidable thus we could
4950 count them in the theoretical best case
4952 2004-11-26 Havoc Pennington <hp@redhat.com>
4954 * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
4955 where I was trying to cache one too many messages
4957 2004-11-26 Havoc Pennington <hp@redhat.com>
4959 * dbus/dbus-message.c: reimplement message cache as an array which
4960 makes the cache about twice as fast and saves maybe 1.5% overall
4962 2004-11-26 Havoc Pennington <hp@redhat.com>
4964 * dbus/dbus-threads.c (init_global_locks): forgot to put the
4965 message cache lock here
4967 2004-11-26 Havoc Pennington <hp@redhat.com>
4969 * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
4970 the "char byte_order" next to each other to save 4 bytes
4971 (dbus_message_new_empty_header): reduce preallocation, since the
4972 message cache should achieve a similar effect
4973 (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
4974 message cache that keeps a few DBusMessage around in a pool,
4975 another 8% speedup or so.
4977 * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
4979 2004-11-25 Havoc Pennington <hp@redhat.com>
4981 * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
4982 to write, without reading or blocking, try it before the poll()
4983 and skip the poll() if nothing remains to write. This is about a
4984 3% speedup in the echo client/server
4986 2004-11-25 Havoc Pennington <hp@redhat.com>
4988 The primary change here is to always write() once before adding
4989 the write watch, which gives us about a 10% performance increase.
4991 * dbus/dbus-transport-unix.c: a number of modifications to cope
4992 with removing messages_pending
4993 (check_write_watch): properly handle
4994 DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
4995 messages_pending stuff
4996 (check_read_watch): properly handle WAITING_FOR_MEMORY and
4998 (unix_handle_watch): after writing, see if the write watch can be
5000 (unix_do_iteration): assert that write_watch/read_watch are
5001 non-NULL rather than testing that they aren't, since they
5002 aren't allowed to be NULL. check_write_watch() at the end so
5003 we add the watch if we did not finish writing (e.g. got EAGAIN)
5005 * dbus/dbus-transport-protected.h: remove messages_pending call,
5006 since it resulted in too much inefficient watch adding/removing;
5007 instead we now require that the transport user does an iteration
5008 after queueing outgoing messages, and after trying the first
5009 write() we add a write watch if we got EAGAIN or exceeded our
5010 max bytes to write per iteration setting
5012 * dbus/dbus-string.c (_dbus_string_validate_signature): add this
5015 * dbus/dbus-server-unix.c (unix_finalize): the socket name was
5016 freed and then accessed, valgrind flagged this bug, fix it
5018 * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
5019 as the last valid field plus 1, where really it is equal to the
5020 last valid field. Corrects some message corruption issues.
5022 * dbus/dbus-mainloop.c: verbosity changes
5024 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
5025 instead of aborting in one of the test codepaths
5027 * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
5028 caused not printing the pid ever again if a verbose was missing
5029 the newline at the end
5030 (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
5032 * dbus/dbus-connection.c: verbosity changes;
5033 (dbus_connection_has_messages_to_send): new function
5034 (_dbus_connection_message_sent): no longer call transport->messages_pending
5035 (_dbus_connection_send_preallocated_unlocked): do one iteration to
5036 try to write() immediately, so we can avoid the write watch. This
5037 is the core purpose of this patchset
5038 (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
5039 dump the outgoing message queue, so nobody will get confused
5040 trying to send them or thinking stuff is pending to be sent
5042 * bus/test.c: verbosity changes
5044 * bus/driver.c: verbosity/assertion changes
5046 * bus/dispatch.c: a bunch of little tweaks to get it working again
5047 because this patchset changes when/where you need to block.
5049 2004-11-23 Havoc Pennington <hp@redhat.com>
5051 * test/glib/test-profile.c: modify to accept a plain_sockets
5052 argument in which case it will bench plain sockets instead of
5053 libdbus, for comparison purposes.
5055 2004-11-22 Havoc Pennington <hp@redhat.com>
5057 * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
5058 threads for more time, so sysprof can get a grip on it.
5060 * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
5063 2004-11-13 Havoc Pennington <hp@redhat.com>
5065 * test/glib/test-profile.c: fix this thing up a bit
5067 * dbus/dbus-message.c (dbus_message_new_empty_header): increase
5068 preallocation sizes by a fair bit; not sure if this will be an
5069 overall performance win or not, but it does reduce reallocs.
5071 * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
5072 the test hack that forced constant realloc if asserts are
5073 disabled, so we can profile sanely. Sprinkle in some
5074 _DBUS_UNLIKELY() which are probably pointless, but before I
5075 noticed the real performance problem I put them in.
5076 (_dbus_string_validate_utf8): micro-optimize this thing a little
5077 bit, though callgrind says it didn't help; then special-case
5078 ascii, which did help a lot; then be sure we detect nul bytes as
5079 invalid, which is a bugfix.
5080 (align_length_then_lengthen): add some more _DBUS_UNLIKELY
5081 superstition; use memset to nul the padding instead of a manual
5083 (_dbus_string_get_length): inline this as a
5084 macro; it showed up in the profile because it's used for loop
5087 2004-11-10 Colin Walters <walters@verbum.org>
5089 * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
5092 2004-11-09 Colin Walters <walters@verbum.org>
5094 * dbus/dbus-string.c (_dbus_string_get_length): New
5095 function, writes DBusString to C buffer.
5097 * dbus/dbus-string.h: Prototype it.
5099 * dbus/dbus-message.c (dbus_message_type_to_string): New
5100 function, converts message type into C string.
5102 * dbus/dbus-message.h: Prototype it.
5104 * bus/selinux.c (bus_selinux_check): Take source pid,
5105 target pid, and audit data. Pass audit data to
5107 (log_audit_callback): New function, appends extra
5109 (bus_selinux_allows_acquire_service): Also take
5110 service name, add it to audit data.
5111 (bus_selinux_allows_send): Also take message
5112 type, interface, method member, error name,
5113 and destination, and add them to audit data.
5114 (log_cb): Initialize func_audit.
5116 * bus/selinux.h (bus_selinux_allows_acquire_service)
5117 (bus_selinux_allows_send): Update prototypes
5119 * bus/services.c (bus_registry_acquire_service): Pass
5120 service name to bus_selinux_allows_acquire_service.
5122 * bus/bus.c (bus_context_check_security_policy): Pass
5123 additional audit data. Move assignment of dest
5126 2004-11-07 Colin Walters <walters@verbum.org>
5128 * dbus/dbus-transport-unix.c (do_authentication): Always
5129 initialize auth_completed.
5131 2004-11-07 Colin Walters <walters@verbum.org>
5133 * bus/bus.c (load_config): Break into three
5134 separate functions: process_config_first_time_only,
5135 process_config_every_time, and process_config_postinit.
5136 (process_config_every_time): Move call of
5137 bus_registry_set_service_context_table into
5138 process_config_postinit.
5139 (process_config_postinit): New function, does
5140 any processing that needs to happen late
5141 in initialization (and also on reload).
5142 (bus_context_new): Instead of calling load_config,
5143 open config parser here and call process_config_first_time_only
5144 and process_config_every_time directly. Later, after
5145 we have forked but before changing UID,
5146 invoke bus_selinux_full_init, and then call
5147 process_config_postinit.
5148 (bus_context_reload_config): As in bus_context_new,
5149 load parse file inside here, and call process_config_every_time
5150 and process_config_postinit.
5152 * bus/services.h, bus/services.c
5153 (bus_registry_set_service_context_table): Rename
5154 from bus_registry_set_sid_table. Take string hash from config
5155 parser, and convert them here into SIDs.
5157 * bus/config-parser.c (struct BusConfigParser): Have
5158 config parser only store a mapping of service->context
5160 (merge_service_context_hash): New function.
5161 (merge_included): Merge context string hashes instead
5162 of using bus_selinux_id_table_union.
5163 (bus_config_parser_new): Don't use bus_selinux_id_table_new;
5164 simply create a new string hash.
5165 (bus_config_parser_unref): Unref it.
5166 (start_selinux_child): Simply insert strings into hash,
5167 don't call bus_selinux_id_table_copy_over.
5169 * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
5170 (bus_selinux_id_table_copy_over): Delete.
5172 2004-11-03 Colin Walters <walters@verbum.org>
5174 * bus/selinux.c (bus_selinux_pre_init): Kill some unused
5177 2004-11-03 Colin Walters <walters@verbum.org>
5179 * bus/test-main.c (test_pre_hook): Fix test logic,
5180 thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
5182 2004-11-02 Colin Walters <walters@redhat.com>
5184 * bus/selinux.c (bus_selinux_init): Split into two functions,
5185 bus_selinux_pre_init and bus_selinux_post_init.
5186 (bus_selinux_pre_init): Just determine whether SELinux is
5188 (bus_selinux_post_init): Do everything else.
5190 * bus/main.c (main): Call bus_selinux_pre_init before parsing
5191 config file, and bus_selinux_post_init after. This ensures that
5192 we don't lose the policyreload notification thread that
5193 bus_selinux_init created before forking previously.
5195 * bus/test-main.c (test_pre_hook): Update for split.
5197 2004-10-31 Owen Fraser-Green <owen@discobabe.net>
5199 Patch from Johan Fischer <linux@fischaz.com>
5201 * mono/doc/Makefile.am (install-data-local): Added directory
5204 2004-10-29 Colin Walters <walters@redhat.com>
5206 * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
5207 parameter for fd to write pid to.
5209 * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
5211 * bus/bus.c (bus_context_new): Pass print_pid_fd
5212 to _dbus_become_daemon (bug #1720)
5214 2004-10-29 Colin Walters <walters@redhat.com>
5216 Patch from Ed Catmur <ed@catmur.co.uk>
5218 * mono/doc/Makefile.am (install-data-local): Handle
5221 2004-10-29 Colin Walters <walters@redhat.com>
5223 * bus/.cvsignore, qt/.cvsignore: Update.
5225 2004-10-29 Colin Walters <walters@redhat.com>
5227 Patch from Kristof Vansant <de_lupus@pandora.be>
5229 * configure.in: Detect Slackware.
5230 * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
5231 * bus/rc.messagebus.in: New file.
5233 2004-10-29 Colin Walters <walters@redhat.com>
5235 * tools/dbus-monitor.c (filter_func): Return
5236 DBUS_HANDLER_RESULT_HANDLED in filter function
5238 http://freedesktop.org/pipermail/dbus/2004-August/001433.html
5240 2004-10-29 Colin Walters <walters@redhat.com>
5242 Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
5244 * bus/services.c (bus_registry_acquire_service):
5245 Correctly retrieve service name from DBusString
5248 2004-10-29 Colin Walters <walters@redhat.com>
5250 * dbus/dbus-glib.h: Update documentation to not
5251 refer to internal APIs.
5253 2004-10-27 Joe Shaw <joeshaw@novell.com>
5255 * mono/Arguments.cs (GetDBusTypeConstructor):
5256 type.UnderlyingSystemType will return "System.Byte" if you do it
5257 on "byte[]", which is not what we want. So check the type.IsArray
5258 property and use System.Array instead.
5260 2004-10-25 John (J5) Palmieri <johnp@redhat.com>
5262 * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
5263 the DBusUserInfo structure since this is passed into the function.
5264 This would cause a double free when the function that allocated
5265 the structure would try to free it when an error occured.
5267 * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
5268 use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
5269 for service activation to avoid 32bit/64bit parallel install issues
5271 2004-10-21 Colin Walters <walters@verbum.org>
5273 * AUTHORS: Fix my email address, the @gnu.org one
5274 has been bouncing for some time. Also add J5.
5276 2004-10-21 Colin Walters <walters@verbum.org>
5278 * dbus/dbus-transport-unix.c (do_authentication): Return
5279 authentication status to callers.
5280 (unix_handle_watch): If we completed authentication this round,
5281 don't do another read. Instead wait until the next iteration,
5282 after we've read any pending data in the auth buffer.
5283 (unix_do_iteration): Ditto.
5284 (unix_handle_watch): Updated for new do_authentication prototype.
5286 2004-10-18 Colin Walters <walters@verbum.org>
5288 * bus/selinux.c (bus_selinux_enabled): Handle
5289 --disable-selinux case.
5291 2004-10-18 Colin Walters <walters@verbum.org>
5293 * bus/selinux.h: Add bus_selinux_enabled.
5295 * bus/selinux.c (bus_selinux_enabled): Implement it.
5297 * bus/config-parser.c (struct include): Add
5298 if_selinux_enabled member.
5299 (start_busconfig_child): Parse if_selinux_enabled
5300 attribute for include.
5301 (bus_config_parser_content): Handle it.
5303 * bus/session.conf.in, bus/system.conf.in: Add
5304 inclusion of context mapping to default config files;
5305 conditional on SELinux being enabled.
5307 * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
5309 * test/data/invalid-config-files/badselinux-1.conf,
5310 test/data/invalid-config-files/badselinux-2.conf:
5311 Test files for bad syntax.
5313 2004-10-17 Colin Walters <walters@verbum.org>
5315 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
5316 (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
5317 format specifier mismatches.
5319 2004-10-07 Olivier Andrieu <oliv__a@users.sourceforge.net>
5321 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
5324 * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
5325 pointer (bug #1540, Leonardo Boiko).
5327 2004-09-28 Jon Trowbridge <trow@ximian.com>
5329 * mono/BusDriver.cs: Changed BusDriver struct to remove
5330 the ServiceCreated and ServiceDeleted events and replace them
5331 with the new ServiceOwnerChanged event.
5333 * mono/example/BusListener.cs: Added a new example program,
5334 which listens for and reports any ServiceOwnerChanged events
5337 * mono/example/Makefile.am (DESTDIR): Build changes for the
5338 new BusListener.cs example.
5340 2004-09-27 Olivier Andrieu <oliv__a@users.sourceforge.net>
5342 * bus/signals.c (bus_match_rule_parse): validate the components of
5343 match rules (bug #1439).
5345 * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
5347 2004-09-24 Olivier Andrieu <oliv__a@users.sourceforge.net>
5349 * doc/dbus-specification.xml: document ServiceOwnerChanged
5352 * bus/driver.c, bus/driver.h, bus/services.c: Use
5353 ServiceOwnerChanged signal instead of ServiceCreated and
5356 * bus/dispatch.c: update testcase for the new signal.
5358 2004-09-20 Jon Trowbridge <trow@ximian.com>
5360 Patch from Nat Friedman <nat@novell.com>
5362 * mono/Makefile.am: A number of small build fixes to allow "make
5363 distcheck" to succeed.
5365 * mono/example/Makefile.am: "make distcheck" fixes.
5367 * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
5370 * test/Makefile.am: "make distcheck" fixes.
5372 2004-09-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
5374 * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
5376 * doc/busconfig.dtd: update the DTD for the at_console attribute.
5378 * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
5379 messages after the first one (bug #1389).
5381 * bus/dispatch.c (check_double_hello_message): add a test case for
5382 the double hello message bug.
5383 (check_existent_service_activation): fix check of spawning error.
5385 2004-09-16 David Zeuthen <david@fubar.dk>
5387 * python/dbus_bindings.pyx.in: Add support for int64 and uint64
5389 2004-09-12 David Zeuthen <david@fubar.dk>
5391 Patch from Kay Sievers <kay.sievers@vrfy.org>
5393 * bus/bus.c (bus_context_new):
5395 * bus/main.c (usage)
5397 Add commandline option --nofork to override configuration file
5400 2004-09-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5402 * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
5403 compilers don't like it (bug #974).
5405 2004-09-04 Harald Fernengel <harry@kdevelop.org>
5407 * qt/connection.*: Applied patch by Jérôme Lodewyck
5408 <lodewyck@clipper.ens.fr> to integrate an existing
5409 connection into the Qt eventloop
5411 2004-08-30 Jon Trowbridge <trow@ximian.com>
5413 * mono/BusDriver.cs: Added. This is a class for interacting with
5414 the org.freedesktop.DBus service.
5416 * mono/Message.cs: Added a mechanism to expose the message that is
5417 currently being dispatched via the static Message.Current
5418 property. Added Message.Sender and Message.Destination
5421 * mono/Handler.cs: Expose the dispatched message via
5422 Message.Current when handling method calls.
5424 * mono/Service.cs: Expose the dispatched message via
5425 Message.Current when handling signal emissions.
5427 * mono/Connection.cs: Bind dbus_bus_get_base_service via the
5428 Connection.BaseService property.
5430 2004-08-28 Havoc Pennington <hp@redhat.com>
5432 * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
5434 More fixes from Steve Grubb
5436 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
5437 (_dbus_listen_tcp_socket): fix fd leak
5439 * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
5440 EINTR to a bit lower in the code
5442 2004-08-26 Jon Trowbridge <trow@ximian.com>
5444 * bus/driver.c (bus_driver_handle_service_exists): Respond with
5445 TRUE if we are inquiring about the existence of the built-in
5446 org.freedesktop.DBus service.
5448 2004-08-25 John Palmieri <johnp@redhat.com>
5449 * bus/config-parser.c:
5450 (struct PolicyType): Add POLICY_CONSOLE
5451 (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
5452 (start_busconfig_child): Sets up console element when
5453 <policy at_console=""> is encountered in a policy file
5454 (append_rule_from_element): Convert console elements to console
5458 (bus_policy_create_client_policy): Add console rules to the client
5459 policy based on if the client is at the console
5460 (bus_policy_append_console_rule): New function for adding a
5461 console rule to a policy
5462 (bus_policy_merge): Handle console rule merging
5464 * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
5465 where we check for console user files
5467 * dbus/dbus-sysdeps.c:
5468 (_dbus_file_exists): New function which checks if the given
5470 (_dbus_user_at_console): New function which does the system
5471 specific process of checking if the user is at the console
5473 * dbus/dbus-userdb.c:
5474 (_dbus_is_console_user): New function converts a UID to user name
5475 and then calls the system specific _dbus_user_at_console to
5476 see if the user is at the console and therefor a console user
5478 2004-08-25 Olivier Andrieu <oliv__a@users.sourceforge.net>
5480 * bus/config-parser.c (set_limit):
5481 * bus/dbus-daemon-1.1.in:
5482 * test/data/valid-config-files/many-rules.conf: set the
5483 max_match_rules_per_connection limt from the config file.
5485 * doc/busconfig.dtd: update the DTD.
5487 * bus/driver.c: remove some unused variables.
5489 2004-08-24 Mikael Hallendal <micke@imendio.com>
5491 * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since
5492 it's been replaced by dbus_g_bus_get
5494 2004-08-23 Colin Walters <walters@redhat.com>
5496 Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5498 * bus/selinux.h: Prototype bus_selinux_get_policy_root.
5500 * bus/selinux.c: Create a thread for policy reload notification.
5501 (bus_selinux_get_policy_root): Implement.
5503 * bus/config-parser.c (start_busconfig_child)
5504 (bus_config_parser_content): Support SELinux-root relative
5507 * configure.in <HAVE_SELINUX>: Add -lpthread.
5509 * bus/test-main.c (test_pre_hook, test_post_hook): New.
5510 (test_post_hook): Move memory checking into here.
5511 (test_pre_hook, test_post_hook): Move SELinux checks in
5512 here, but conditional on a DBUS_TEST_SELINUX environment
5513 variable. Unfortunately we can't run the SELinux checks
5514 as a normal user, since they won't have any permissions
5515 for /selinux. So this will have to be tested manually
5516 for now, until we have virtualization for most of
5519 2004-08-23 Havoc Pennington <hp@redhat.com>
5521 * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
5522 drop supplementary groups, suggested by Steve Grubb
5524 2004-08-20 Colin Walters <walters@redhat.com>
5526 * bus/config-parser.c (start_busconfig_child): Remove some unused
5529 * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
5532 2004-08-17 Joe Shaw <joeshaw@novell.com>
5534 * configure.in: If --enable-mono is passed in, if we can't find
5537 * mono/Makefile.am: Use /gacutil to install assemblies into the
5540 2004-08-12 Havoc Pennington <hp@redhat.com>
5542 * NEWS: update for 0.22
5544 * configure.in: release 0.22
5546 2004-08-11 Colin Walters <walters@redhat.com>
5548 * tools/dbus-send.c (main, usage): Add --reply-timeout
5551 2004-08-10 Olivier Andrieu <oliv__a@users.sourceforge.net>
5553 * bus/bus.c (process_config_first_time_only): get rid of an unused
5554 DBusError that was causing a memoy leak (bug #989).
5556 * dbus/dbus-keyring.c, dbus/dbus-message.c:
5557 fix compilation on Solaris/Forte C (bug #974)
5559 * bus/main.c (main): plug two minuscule memleaks.
5561 2004-08-10 Havoc Pennington <hp@redhat.com>
5563 * doc/dbus-tutorial.xml: add some more info on GLib bindings
5565 2004-08-09 Havoc Pennington <hp@redhat.com>
5567 * COPYING: switch to Academic Free License version 2.1 instead of
5568 2.0, to resolve complaints about patent termination clause.
5570 2004-07-31 John (J5) Palmieri <johnp@redhat.com>
5572 * README: added documentation for the --enable-python
5575 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5577 * bus/config-parser.c (bus_config_parser_new): fix an invalid
5578 _unref in the SELinux support.
5580 * doc/busconfig.dtd: update DTD for SELinux support.
5582 * bus/config-loader-libxml.c: fix error handler and parser
5583 initialisation/cleanup. OOM test now works with libxml2 HEAD.
5585 * configure.in: remove the warning about libxml2.
5587 * dbus/dbus-bus.c: silence doxygen warning.
5589 2004-07-31 Colin Walters <walters@redhat.com>
5591 * configure.in: Move #error in SELinux check to its own line.
5593 2004-07-31 Olivier Andrieu <oliv__a@users.sourceforge.net>
5595 * dbus/dbus-internals.h (_DBUS_SET_OOM):
5596 * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
5599 * bus/dispatch.c (check_send_exit_to_service): fix the test case,
5600 broken by the change in the _SET_OOM macros.
5602 2004-07-31 Colin Walters <walters@redhat.com>
5604 * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
5607 2004-07-31 Colin Walters <walters@redhat.com>
5609 * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
5610 to correctly detect DBUS__ACQUIRE_SVC. Also add an
5613 2004-07-24 Havoc Pennington <hp@redhat.com>
5615 SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
5617 * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
5620 * configure.in: add --enable-selinux
5622 * bus/policy.c (bus_policy_merge): add FIXME to a comment
5624 * bus/main.c (main): initialize and shut down selinux
5626 * bus/connection.c: store SELinux ID on each connection, to avoid
5627 repeated getting of the string context and converting it into
5630 * bus/bus.c (bus_context_get_policy): new accessor, though it
5632 (bus_context_check_security_policy): check whether the security
5633 context of sender connection can send to the security context of
5634 recipient connection
5636 * bus/config-parser.c: add parsing for <selinux> and <associate>
5638 * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
5639 implement dbus_connection_get_unix_fd()
5641 * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
5642 function, used by the selinux stuff
5644 2004-07-29 Olivier Andrieu <oliv__a@users.sourceforge.net>
5646 * bus/config-loader-libxml.c: complete the implementation of
5647 libxml backend for config file loader. Doesn't work with full OOM
5650 * configure.in: change error when selecting libxml into a warning.
5652 * test/data/invalid-config-files: add two non-well-formed XML
5655 * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
5657 * dbus/dbus-transport-unix.c (unix_handle_watch): do not
5658 disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
5659 be necessary to read all the buffer. (bug #894)
5661 * bus/activation.c (bus_activation_activate_service): fix a
5662 potential assertion failure (bug #896). Small optimization in the
5663 case of auto-activation messages.
5665 * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
5666 add test case for byte-through-vararg bug (#901). patch by Kimmo
5669 2004-07-28 Anders Carlsson <andersca@gnome.org>
5672 * python/dbus_bindings.pyx.in:
5673 Add dbus.init_gthreads (), allow emit_signal to pass
5674 arguments to the signal.
5676 2004-07-24 Havoc Pennington <hp@redhat.com>
5678 * AUTHORS: add some people, not really comprehensively, let me
5679 know if I missed you
5681 2004-07-24 Havoc Pennington <hp@redhat.com>
5683 * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
5686 * test/Makefile.am (DIST_SUBDIRS): here also
5688 2004-07-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5690 * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
5691 breaking build on Solaris, reported by Farhad Saberi on the ML.
5693 * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
5694 va_arg invocation to account for integer promotion in the case of
5695 DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
5697 * bus/services.c (bus_service_remove_owner): fix bug #902, use
5698 _dbus_list_get_first_link, not _dbus_list_get_first.
5700 * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
5702 * dbus/dbus-object-tree.c (free_subtree_recurse): always null
5703 handler functions so that the asserts in _dbus_object_subtree_unref
5706 * dbus/dbus-transport-unix.c (do_reading):
5707 _dbus_transport_queue_messages return value is of type
5708 dbus_bool_t, not DBusDispatchStatus.
5710 2004-07-19 David Zeuthen <david@fubar.dk>
5712 * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
5715 (check_get_connection_unix_user): Debug says GetProperty; but the
5716 method is called GetConnectionUnixUser
5717 (check_get_connection_unix_process_id): New function
5718 (bus_dispatch_test): Actually call check_get_connection_unix_user();
5719 also call check_get_connection_unix_process_id()
5722 (bus_driver_handle_get_connection_unix_process_id): New function,
5723 handles GetConnectionUnixProcessID on the org.freedesktop.DBus
5727 (handle_server_data_external_mech): Set pid from the credentials
5728 obtained from the socket
5730 * dbus/dbus-connection.c:
5731 (dbus_connection_get_unix_process_id): New function
5733 * dbus/dbus-connection.h:
5734 Add prototype for dbus_connection_get_unix_process_id
5736 * dbus/dbus-transport.c:
5737 (_dbus_transport_get_unix_process_id): New function
5739 * dbus/dbus-transport.h:
5740 Add prototype for _dbus_transport_get_unix_process_id
5742 2004-07-19 Olivier Andrieu <oliv__a@users.sourceforge.net>
5744 * dbus/dbus-message.c: Message counter fix, patch by Christian
5745 Hammond <chipx86@gnupdate.org>
5747 2004-07-18 Seth Nickell <seth@gnome.org>
5750 * python/dbus_bindings.pyx.in:
5751 * python/tests/test-client.py:
5753 Add dbus.ByteArray and dbus_bindings.ByteArray
5754 types so that byte streams can be passed back.
5756 Give jdahlin the heaps of credit that are so
5759 2004-07-12 Seth Nickell <seth@gnome.org>
5763 Add message argument to the default object_method_handler
5766 * python/dbus_bindings.pyx.in:
5768 Automatically return NIL when passed an empty list
5769 (we can't pass back a list since lists are typed
5770 and we don't have any idea what type the the client
5771 intended the list to be... :-( )
5773 2004-07-10 Seth Nickell <seth@gnome.org>
5775 * python/examples/Makefile.am:
5777 Fix distcheck breakage caused by new examples.
5779 2004-07-10 Seth Nickell <seth@gnome.org>
5783 Add "message" argument to service-side dbus.Object
5784 methods. This will break existing services written
5785 using the python bindings, but will allow extraction
5786 of all the message information (e.g. who its from).
5788 Add improved "object oriented" signal handling/emission.
5790 * python/examples/example-service.py:
5794 * python/examples/example-signal-emitter.py:
5795 * python/examples/example-signal-recipient.py:
5797 Two new examples that show how to emit and receive
5798 signals using the new APIs.
5800 * python/examples/example-signals.py:
5801 * python/examples/gconf-proxy-service.py:
5802 * python/examples/gconf-proxy-service2.py:
5804 Add "message" argument to service methods.
5806 2004-06-28 Kay Sievers <kay.sievers@vrfy.org>
5808 * bus/driver.c (bus_driver_handle_get_connection_unix_user)
5809 * dbus/bus.c (dbus_bus_get_unix_user)
5810 * doc/dbus-specification.xml: implement GetConnectionUnixUser
5811 method of org.freedesktop.DBus interface.
5813 * bus/dispatch.c: test case
5815 2004-06-23 John (J5) Palmieri <johnp@redhat.com>
5817 * python/Makefile.am: switched include directory from glib/ to dbus/
5818 since dbus-glib.h moved
5820 2004-06-22 Olivier Andrieu <oliv__a@users.sourceforge.net>
5822 * configure.in: prevent building the gcj stuff and libxml loader
5823 since they are broken.
5825 2004-06-20 Havoc Pennington <hp@redhat.com>
5827 * dbus/dbus-glib-error-enum.h: autogenerate the GError enum
5828 codes from the dbus error names
5830 * glib/dbus-glib.h: move to subdir dbus/ since it's included
5831 as dbus/dbus-glib.h and that breakage is now visible due to
5832 including dbus/dbus-glib.h in dbus-glib-lowlevel.h
5834 * glib/dbus-glib.h: s/gproxy/g_proxy/
5836 * dbus/dbus-shared.h: new header to hold stuff shared with
5839 * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
5842 * glib/dbus-glib.h (dbus_set_g_error): move to
5843 dbus-glib-lowlevel.h
5845 * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
5846 of stuff to enable this
5848 * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
5850 * a bunch of other changes with the same basic "separate glib
5851 bindings from dbus.h" theme
5853 2004-06-10 Owen Fraser-Green <owen@discobabe.net>
5855 * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
5857 * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
5859 2004-06-09 Olivier Andrieu <oliv__a@users.sourceforge.net>
5861 * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
5862 the reply value of the ServiceExists message.
5864 2004-06-07 John (J5) Palmieri <johnp@redhat.com>
5866 * python/dbus_bindings.pyx.in: No longer need to parse path
5867 elements and pass them as arrays of strings. The C API now
5868 accepts plain path strings.
5869 (_build_parsed_path): removed
5871 2004-06-07 Havoc Pennington <hp@redhat.com>
5873 * doc/TODO: remove auto-activation item since it's done; sort
5874 items by importance/milestone
5876 2004-06-07 Havoc Pennington <hp@redhat.com>
5878 * dbus/dbus-message-builder.c (_dbus_message_data_load): append
5879 random signature when using REQUIRED_FIELDS (this hack won't work
5882 * dbus/dbus-message.c: change the signature to be a header field,
5883 instead of message->signature special-case string. Incremental
5884 step forward. Then we can fix up code to send the signature in the
5885 message, then fix up code to validate said signature, then fix up
5886 code to not put the typecodes inline, etc.
5887 (load_one_message): don't make up the signature after the fact
5888 (decode_header_data): require signature field for the known
5891 * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
5893 * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
5895 2004-06-07 Owen Fraser-Green <owen@discobabe.net>
5897 * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
5899 * mono/Handler.cs: Updated to follow new path argument for
5900 (un-)registering objects.
5902 * mono/example/Makefile.am:
5904 * configure.in: Bumped required version for mono and use new -pkg
5907 2004-06-05 Olivier Andrieu <oliv__a@users.sourceforge.net>
5909 * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
5910 registration functions take the path argument as char* instead of
5913 * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
5914 split off the path decompostion part of
5915 _dbus_demarshal_object_path. Some misc. fixes to silence compiler
5918 * glib/dbus-gobject.c, test/test-service.c: update accordingly.
5920 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5922 * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
5923 machine approach. A state is implemented as a function that
5924 handles incoming events as specified for that state.
5926 * doc/dbus-specification.xml: Update auth protocol state machine
5927 specification to match implementation. Remove some leftover
5930 2004-06-02 Kristian Høgsberg <krh@redhat.com>
5932 * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
5933 dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
5936 * Doxyfile.in: remove deprecated options.
5938 * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
5939 glib/test-thread.h, glib/test-thread-client.c,
5940 glib/test-thread-server.c, glib/test-profile.c,
5941 glib/test-dbus-glib.c: remove these unused files.
5943 2004-06-01 Olivier Andrieu <oliv__a@users.sourceforge.net>
5945 * dbus/dbus-object-tree.c
5946 (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
5947 non-fallback handlers (bug #684).
5948 (_dbus_object_subtree_new): initialize invoke_as_fallback field.
5949 (find_subtree_recurse): report wether the returned subtree is an
5950 exact match or a "fallback" match higher up in the tree.
5951 (object_tree_test_iteration): update test case.
5953 2004-06-01 Seth Nickell <seth@gnome.org>
5955 * python/dbus_bindings.pyx.in:
5956 * python/tests/test-client.py:
5958 Round off basic type support. Add dicts (yay!), and
5959 remaining array types.
5961 Make MessageIter more general so it works for dicts too.
5963 Mark all loop variables as C integers.
5965 2004-05-31 Havoc Pennington <hp@redhat.com>
5967 * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
5970 * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
5972 * glib/dbus-glib-tool.c (main): set up to have a --self-test
5973 option that runs the tests, and start filling in some code
5974 including for starters just dumping the interfaces to stdout
5976 * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
5978 * test/data/valid-introspection-files/lots-of-types.xml: test of
5979 an example introspection file
5981 * glib/dbus-gparser.c (parser_check_doctype): doctype should be
5984 2004-05-31 Seth Nickell <seth@gnome.org>
5986 * python/dbus_bindings.pyx.in:
5987 * python/tests/test-client.py:
5992 Fix string array memory trashing bug... oops...
5994 2004-05-30 Seth Nickell <seth@gnome.org>
5998 Add a nicer-but-less-flexible alternate API for handling
5999 calls to virtual objects in dbus.ObjectTree.
6001 Screw up the argument order to the dbus.Object constructor
6002 for consistency with dbus.ObjectTree (and to make dbus_methods
6003 optional for future extension)
6005 * python/examples/Makefile.am:
6006 * python/examples/gconf-proxy-service.py:
6007 * python/examples/gconf-proxy-service2.py:
6009 Alternate implementation of gconf-proxy-service using the
6010 nicer dbus.ObjectTree API.
6012 * python/examples/example-service.py:
6013 * python/tests/test-server.py
6015 Reverse the argument order to deal with dbus.Object constructor
6018 2004-05-30 Seth Nickell <seth@gnome.org>
6020 * python/examples/example-client.py:
6021 * python/examples/example-service.py:
6023 Take it back. Lists seem to work but they're broken
6024 in the test suite. Make the base examples use
6027 2004-05-30 Seth Nickell <seth@gnome.org>
6029 * python/dbus_bindings.pyx.in:
6030 * python/tests/test-client.py:
6032 Add some more tests and fix errors that crop up.
6033 Unfortunately, currently it seems like marshalling
6034 and unmarshalling of lists is completely broken :-(
6036 2004-05-30 Seth Nickell <seth@gnome.org>
6038 * python/dbus_bindings.pyx.in:
6040 Add support for ObjectPath type.
6044 Refactor message handling code to a common function.
6046 * python/tests/test-client.py:
6047 * python/tests/test-server.py:
6049 Add tests that check to make sure values of all types
6050 can be echoed from a service w/o mangling.
6052 2004-05-29 Seth Nickell <seth@gnome.org>
6056 Add ObjectTree class which allows implementation
6057 of trees of "virtual" objects. Basically the python
6058 wrapper for "register_fallback".
6060 * python/examples/Makefile.am
6061 * python/examples/gconf-proxy-client.py:
6062 * python/examples/gconf-proxy-service.py:
6064 Implement a simple GConf proxy service that supports
6065 get/set on string and int GConf keys using the ObjectTree.
6067 2004-05-29 Seth Nickell <seth@gnome.org>
6070 * python/examples/example-client.py:
6071 * python/examples/example-service.py:
6072 * python/examples/list-system-services.py:
6074 Add SessionBus, SystemBus and ActivationBus classes
6075 so you don't need to know the special little BUS_TYPE
6078 2004-05-29 Havoc Pennington <hp@redhat.com>
6080 * bus/config-parser.c (process_test_valid_subdir): temporarily
6081 stop testing config parser OOM handling, since expat has issues
6082 http://freedesktop.org/pipermail/dbus/2004-May/001153.html
6084 * bus/dbus-daemon-1.1.in: change requested_reply to
6085 send_requested_reply/receive_requested_reply so we can send the
6086 replies, not just receive them.
6088 * bus/config-parser.c: parse the new
6089 send_requested_reply/receive_requested_reply
6091 * bus/policy.c (bus_client_policy_check_can_send): add
6092 requested_reply argument and use it
6094 * bus/bus.c (bus_context_check_security_policy): pass through
6095 requested_reply status to message send check
6097 * bus/system.conf.in: adapt to requested_reply change
6099 2004-05-28 Havoc Pennington <hp@redhat.com>
6101 * test/glib/test-service-glib.c (main): remove unused variable
6103 * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
6105 * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
6106 from the enum, no longer in use.
6108 * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
6111 * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
6112 whether error_name passed in is a valid error name.
6114 2004-05-28 John (J5) Palmieri <johnp@redhat.com>
6116 * dbus/dbus-message.c (dbus_message_get_args): Added support for
6117 OBJECT_PATH and OBJECT_PATH_ARRAY
6119 2004-05-28 Seth Nickell <seth@gnome.org>
6121 * python/examples/Makefile.am:
6123 Forget to add Makefile.am. Do not pass go.
6125 2004-05-28 Michael Meeks <michael@ximian.com>
6127 * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal):
6130 * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
6132 * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
6133 (_dbus_message_iter_get_basic_type_array): impl.
6134 drastically simplify ~all relevant _get methods to use these.
6135 (_dbus_message_iter_append_basic_array),
6136 (dbus_message_iter_append_basic): impl
6137 drastically simplify ~all relevant _append methods to use these.
6139 * dbus/dbus-message-builder.c (parse_basic_type)
6140 (parse_basic_array, lookup_basic_type): impl.
6141 (_dbus_message_data_load): prune scads of duplicate /
6144 * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array)
6145 (_dbus_demarshal_basic_type): implement,
6146 (demarshal_and_validate_len/arg): beef up debug.
6147 (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
6149 2004-05-27 Seth Nickell <seth@gnome.org>
6152 * python/Makefile.am:
6154 Include the example python apps in the tarball.
6156 * python/examples/list-system-services.py
6158 Add a python new example that fetches the list of services
6159 from the system bus.
6161 2004-05-27 Seth Nickell <seth@gnome.org>
6164 * python/dbus_bindings.pyx.in:
6166 Fix failure to notify that a signal was not handled,
6167 resulted in hung functions.
6169 2004-05-25 Colin Walters <walters@redhat.com>
6171 * tools/dbus-monitor.c (main): Monitor all types of messages.
6173 2004-05-23 Owen Fraser-Green <owen@discobabe.net>
6175 * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
6176 which unregisters the object path and disposes the handler.
6178 2004-05-23 Kristian Høgsberg <krh@redhat.com>
6180 Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
6182 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
6183 operands to && so we call dbus_message_iter_next () for the last
6186 2004-05-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6188 * dbus/dbus-object-tree.c
6189 (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
6190 children even if the requested path isn't registered.
6191 (object_tree_test_iteration): test object_tree_list_registered.
6193 * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
6196 2004-05-20 Kristian Høgsberg <krh@redhat.com>
6198 * doc/TODO: Remove resolved items.
6200 * bus/expirelist.h (struct BusExpireList): remove unused n_items
6203 * bus/connection.c (bus_connections_expect_reply): Enforce the
6204 per-connection limit on pending replies.
6206 Patch from Jon Trowbridge <trow@ximian.com>:
6208 * bus/main.c (setup_reload_pipe): Added. Creates a pipe and sets
6209 up a watch that triggers a config reload when one end of the pipe
6211 (signal_handler): Instead of doing the config reload in our SIGHUP
6212 handler, just write to the reload pipe and let the associated
6213 watch handle the reload when control returns to the main loop.
6215 * bus/driver.c (bus_driver_handle_reload_config): Added.
6216 Implements a ReloadConfig method for requesting a configuration
6217 file reload via the bus driver.
6219 2004-05-19 Owen Fraser-Green <owen@discobabe.net>
6221 * HACKING: Updated release instructions concerning the wiki page.
6223 2004-05-18 Kristian Høgsberg <krh@redhat.com>
6225 * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
6226 filter against auth->allowed_mechs; we only add allowed mechs in
6227 record_mechanisms().
6229 * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
6230 ALLOWED_MECHS to auth-script format so we can set the list of
6233 * data/auth/client-out-of-mechanisms.auth-script: New test to
6234 check client disconnects when it is out of mechanisms to try.
6236 * dbus/dbus-auth.c (process_command): Remove check for lines
6237 longer that 1 MB; we only buffer up maximum 16 kB.
6239 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
6240 dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
6241 Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
6242 assume there might be unused bytes.
6244 * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
6245 client-out-of-mechs, it is handled in process_reject(). Move check
6246 for max failures to send_rejected(), as it's a server-only thing.
6248 * dbus/dbus-auth.c: Factor out protocol reply code into functions
6249 send_auth(), send_data(), send_rejected(), send_error(),
6250 send_ok(), send_begin() and send_cancel().
6252 2004-05-17 Kristian Høgsberg <krh@redhat.com>
6254 Remove base64 encoding, replace with hex encoding. Original patch
6255 from trow@ximian.com, added error handling.
6257 * dbus/dbus-string.c (_dbus_string_base64_encode)
6258 (_dbus_string_base64_decode): Remove.
6259 (_dbus_string_hex_decode): Add end_return argument so we can
6260 distinguish between OOM and invalid hex encoding.
6261 (_dbus_string_test): Remove base64 tests and add test case for
6264 * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
6265 Replace base64 with hex.
6267 * test/data/auth/invalid-hex-encoding.auth-script: New test case
6268 for invalid hex encoded data in auth protocol.
6270 2004-05-17 Olivier Andrieu <oliv__a@users.sourceforge.net>
6272 * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
6275 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6277 * mono/dbus-sharp.dll.config.in: Added for GAC
6278 * mono/dbus-sharp.snk: Added for GAC
6279 * mono/Assembly.cs.in: Added for GAC
6280 * mono/Makefile.am: Changes for GAC installation
6281 * configure.in: Added refs for dbus-sharp.dll.config.in and
6282 Assembly.cs.in. More fixes for mono testing
6283 * mono/example/Makefile.am: Changed var to CSC
6284 * Makefile.am: Changed flag name to DBUS_USE_CSC
6286 2004-05-15 Owen Fraser-Green <owen@discobabe.net>
6288 * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
6289 * mono/doc/*: Added documentation framework
6290 * configure.in: Added monodoc check
6291 * README: Added description of mono configure flags
6293 2004-05-11 John (J5) Palmieri <johnp@redhat.com>:
6295 * doc/dbus-specification.xml: Added a "Required" column to the
6296 header fields table and changed the "zero or more" verbage in
6297 the above paragraph to read "The header must contain the required
6298 named header fields and zero or more of the optional named header
6300 * test/data/invalid-messages/*.message: Added the required PATH
6301 named header field to the tests so that they don't fail on
6302 'Missing path field'
6304 2004-05-07 John (J5) Palmieri <johnp@redhat.com>
6306 * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
6307 the stack by implicitly defining variable and parameter types and
6308 removing the hack of defining C pointers as python objects and later
6311 2004-05-02 Owen Fraser-Green <owen@discobabe.net>
6313 * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
6315 2004-05-01 Owen Fraser-Green <owen@discobabe.net>
6317 * mono/DBusType/Dict.cs: Handle empty dicts
6318 * mono/DBusType/Array.cs: Handle empty arrays
6319 * mono/Arguments.cs: Handle empty arguments
6321 2004-04-30 Owen Fraser-Green <owen@discobabe.net>
6323 * dbus-sharp.pc.in: Modified to include include Libs and Requires
6326 2004-04-25 Kristian Høgsberg <krh@redhat.com>
6328 * test/data/valid-messages/standard-*.message: Update message
6329 test scripts to new header field names.
6331 2004-04-22 John (J5) Palmieri <johnp@redhat.com>
6333 * test/break-loader.c (randomly_do_n_things): tracked down buffer
6334 overflow to times_we_did_each_thing array which would chop off the
6335 first character of the failure_dir string. Increased the size of
6336 the array to 7 to reflect the number of random mutation functions
6339 2004-04-21 Kristian Høgsberg <krh@redhat.com>
6341 * dbus/dbus-server-unix.c (unix_finalize): Don't unref
6342 unix_server->watch here, it is unreffed in disconnect.
6343 (_dbus_server_new_for_tcp_socket): convert NULL host to
6344 "localhost" here so we don't append NULL to address.
6346 * dbus/dbus-server.c (_dbus_server_test): Add test case for
6347 various addresses, including tcp with no explicit host.
6349 2004-04-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6351 * dbus/dbus-message.c (decode_header_data, decode_string_field):
6352 fix incorrect setting of .name_offset in the HeaderField (it was
6353 off by two bytes, positioned right after the name and typecode)
6355 * bus/bus.c (bus_context_new, bus_context_unref): test before
6356 calling dbus_server_free_data_slot and _dbus_user_database_unref
6357 in case of an error.
6359 * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
6362 2004-04-19 Kristian Høgsberg <krh@redhat.com>
6364 * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
6365 _dbus_poll() instead of select().
6367 2004-04-15 Jon Trowbridge <trow@ximian.com>
6369 * bus/main.c (signal_handler): Reload the configuration files
6371 (main): Set up our SIGHUP handler.
6373 * bus/bus.c (struct BusContext): Store the config file, user and
6374 fork flag in the BusContext.
6375 (process_config_first_time_only): Added. Contains the code
6376 (previously in bus_context_new) for setting up the BusContext from
6377 the BusConfigParser that should only be run the first time the
6378 config files are read.
6379 (process_config_every_time): Added. Contains the code (previously
6380 in bus_context_new) for setting up the BusContext from the
6381 BusConfigParser that should be run every time the config files are
6383 (load_config): Added. Builds a BusConfigParser from the config
6384 files and passes the resulting structure off to
6385 process_config_first_time_only (assuming this is the first time)
6386 and process_config_every_time.
6387 (bus_context_new): All of the config-related code has been moved
6388 to process_config_first_time_only and process_config_every_time.
6389 Now this function just does the non-config-related initializations
6390 and calls load_config.
6391 (bus_context_reload_config): Added.
6393 2004-04-15 Olivier Andrieu <oliv__a@users.sourceforge.net>
6395 * bus/driver.c (bus_driver_handle_get_service_owner):
6396 implement a GetServiceOwner method.
6397 * doc/dbus-specification.xml: document it.
6398 * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
6400 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
6401 implement, using the bus GetServiceOwner method.
6403 * test/glib/test-dbus-glib.c:
6404 use dbus_gproxy_new_for_service_owner so that we can receive the
6407 2004-04-15 John (J5) Palmieri <johnp@redhat.com>
6409 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6410 dbus/dbus-message.c, dbus/dbus-protocol.h
6411 (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
6413 * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
6414 dbus/dbus-message.c, dbus/dbus-protocol.h
6415 (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
6417 * dbus/dbus-internals.c (_dbus_header_field_to_string):
6418 DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
6419 DBUS_HEADER_FIELD_SENDER resolves to "sender"
6421 * doc/dbus-specification.xml (Header Fields Table):
6422 s/SERVICE/DESTINATION
6423 s/SENDER_SERVICE/SENDER
6426 2004-04-14 Olivier Andrieu <oliv__a@users.sourceforge.net>
6428 * test/glib/test-dbus-glib.c (timed_exit): fail the test after
6431 2004-04-13 Michael Meeks <michael@ximian.com>
6433 * glib/dbus-gobject.c (handle_introspect): split out
6434 (introspect_properties): this.
6435 (handle_introspect): implement this.
6437 * test/glib/Makefile.am: use the absolute path so the bus
6438 daemon's chdir ("/") doesn't kill us dead.
6440 * configure.in: subst ABSOLUTE_TOP_BUILDDIR
6442 2004-04-12 Jon Trowbridge <trow@ximian.com>
6444 * bus/config-parser.c (struct BusConfigParser): Added
6445 included_files field.
6446 (seen_include): Added. Checks whether or not a file has already
6447 been included by any parent BusConfigParser.
6448 (bus_config_parser_new): Copy the parent's included_files.
6449 (include_file): Track which files have been included, and fail on
6450 circular inclusions.
6451 (process_test_valid_subdir): Changed printf to report if we are
6452 testing valid or invalid conf files.
6453 (all_are_equiv): Changed printf to be a bit clearer about
6454 what we are actually doing.
6455 (bus_config_parser_test): Test invalid configuration files.
6457 2004-04-09 Jon Trowbridge <trow@ximian.com>
6459 * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
6460 argument. If non-null, the newly-constructed BusConfigParser will
6461 be initialized with the parent's BusLimits instead of the default
6463 (include_file): When including a config file, pass in
6464 the current parser as the parent and then copy the BusLimits
6465 from the included BusConfigParser pack to the current parser.
6466 (process_test_valid_subdir): Renamed from process_test_subdir.
6467 (process_test_equiv_subdir): Added. Walks through a directory,
6468 descending into each subdirectory and loading the config files
6469 it finds there. If any subdirectory contains two config files
6470 that don't produce identical BusConfigParser structs, fail.
6471 For now, the BusConfigParser's BusPolicies are not compared.
6472 (bus_config_parser_test): Call both process_test_valid_subdir and
6473 process_test_equiv_subdir.
6475 * bus/config-loader-libxml.c (bus_config_load): Take a parent
6476 argument and pass it along to the call to bus_config_parser_new.
6477 Also made a few small changes to allow this code to compile.
6479 * bus/config-loader-expat.c (bus_config_load): Take a parent
6480 argument and pass it along to the call to bus_config_parser_new.
6482 * bus/bus.c (bus_context_new): Load the config file
6483 with a NULL parent argument.
6485 2004-03-29 Michael Meeks <michael@ximian.com>
6487 * glib/dbus-gobject.c (introspect_properties): split
6488 out, fix mangled 'while' flow control.
6489 (introspect_signals): implement.
6490 (handle_introspect): update.
6492 2004-03-29 Michael Meeks <michael@ximian.com>
6494 * glib/dbus-gobject.c (set_object_property): split out /
6495 re-work, use the property type, and not the message type(!)
6496 (get_object_property): ditto.
6498 * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
6499 (dbus_gvalue_marshal): make this code re-usable, needed
6500 for signals too, also on both proxy and server side.
6501 Re-write for more efficiency / readability.
6503 2004-03-29 Michael Meeks <michael@ximian.com>
6505 * dbus/dbus-message.c
6506 (dbus_message_new_error_printf): impl.
6508 * dbus/dbus-connection.c
6509 (dbus_connection_unregister_object_path): fix warning.
6511 * configure.in: fix no-mono-installed situation.
6513 2004-03-27 Havoc Pennington <hp@redhat.com>
6515 Patch from Timo Teräs:
6517 * tools/dbus-send.c (main): if --print-reply, assume type is
6518 method call; support boolean type args
6520 * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
6521 bunch of memleak and logic bugs
6523 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6525 * mono/Arguments.cs:
6526 * mono/Introspector.cs:
6528 * mono/InterfaceProxy.cs:
6530 * mono/ProxyBuilder.cs:
6532 Added InterfaceProxy class to avoid building proxies for every
6536 * dbus-message.c (dbus_message_append_args_valist)
6537 (dbus_message_iter_get_object_path)
6538 (dbus_message_iter_get_object_path_array)
6539 (dbus_message_iter_append_object_path)
6540 (dbus_message_iter_append_object_path_array):
6541 Added object_path iter functions to handle OBJECT_PATH arguments
6543 2004-03-23 Owen Fraser-Green <owen@discobabe.net>
6545 First checkin of mono bindings.
6548 Build stuff for the bindings
6549 * dbus-sharp.pc.in: Added for pkgconfig
6551 2004-03-21 Havoc Pennington <hp@redhat.com>
6553 * test/test-service.c (main): remove debug spew
6555 2004-03-21 Olivier Andrieu <oliv__a@users.sourceforge.net>
6557 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
6560 * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
6561 (dbus_message_iter_init_array_iterator)
6562 (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
6563 indicate whether the iterator is empty
6565 * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
6568 2004-03-19 Havoc Pennington <hp@redhat.com>
6570 * NEWS: 0.21 updates
6572 * configure.in: 0.21
6574 * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
6576 * python/Makefile.am: change to avoid dist of dbus_bindings.c so
6577 you don't need pyrex to make dist
6579 * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
6582 2004-03-18 Richard Hult <richard@imendio.com>
6584 * dbus/dbus-message.c (dbus_message_get_auto_activation)
6585 (dbus_message_set_auto_activation): Add doxygen docs.
6587 2004-03-16 Richard Hult <richard@imendio.com>
6589 * bus/activation.c: (bus_activation_service_created),
6590 (bus_activation_send_pending_auto_activation_messages),
6591 (bus_activation_activate_service):
6593 * bus/dispatch.c: (bus_dispatch),
6594 (check_nonexistent_service_auto_activation),
6595 (check_service_auto_activated),
6596 (check_segfault_service_auto_activation),
6597 (check_existent_service_auto_activation), (bus_dispatch_test):
6598 * bus/driver.c: (bus_driver_handle_activate_service):
6599 * bus/services.c: (bus_registry_acquire_service):
6600 * dbus/dbus-message.c: (dbus_message_set_auto_activation),
6601 (dbus_message_get_auto_activation):
6602 * dbus/dbus-message.h:
6603 * dbus/dbus-protocol.h: Implement auto-activation.
6605 * doc/dbus-specification.xml: Add auto-activation to the spec.
6607 2004-03-12 Olivier Andrieu <oliv__a@users.sourceforge.net>
6609 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
6610 fix a bug with CUSTOM types.
6612 * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
6613 a unit test for this bug (used to fail).
6615 2004-03-12 Mikael Hallendal <micke@imendio.com>
6618 (babysitter_watch_callback): notify all pending activations waiting for
6619 the same exec that the activation failed.
6620 (bus_activation_activate_service): shortcut the activation if we
6621 already waiting for the same executable to start up.
6623 2004-03-12 Mikael Hallendal <micke@imendio.com>
6626 - Added service file reloading.
6627 Each service files directory is kept in an hash table in
6628 BusActivation and each BusActivationEntry knows what .service-file it
6629 was read from. So when you try to activate a service the bus will
6630 check if it's been updated, removed or if new .service-files has
6632 - Test code at the bottom for the service file reloading.
6633 * bus/test-main.c: (main):
6635 - added service reloading test.
6636 * dbus/dbus-sysdeps.c:
6637 * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
6639 2004-03-08 Michael Meeks <michael@ximian.com>
6641 * dbus/dbus-connection.c (_dbus_connection_block_for_reply):
6642 bail immediately if disconnected, to avoid busy loop.
6644 * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
6645 cleanup cut/paste/inefficiency.
6647 2004-03-01 David Zeuthen <david@fubar.dk>
6649 * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
6650 bug where args were used twice. This bug resulted in a segfault
6651 on a Debian/PPC system when starting the messagebus daemon. Include
6652 dbus-sysdeps.h for DBUS_VA_COPY
6654 * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
6656 * configure.in: Check for va_copy; define DBUS_VA_COPY to the
6657 appropriate va_copy implementation. From GLib
6659 2004-02-24 Joe Shaw <joe@ximian.com>
6661 * bus/services.c (bus_registry_acquire_service): We need to pass
6662 in the service name to dbus_set_error() to prevent a crash.
6664 2003-12-26 Anders Carlsson <andersca@gnome.org>
6666 * AUTHORS: Reveal my True identity.
6668 2003-12-17 Mikael Hallendal <micke@imendio.com>
6670 * dbus/dbus-message.c: (dbus_message_append_args_valist):
6671 - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
6673 2003-12-13 Mikael Hallendal <micke@imendio.com>
6675 * doc/TODO: Added not about better error check of configuration files.
6677 2003-12-02 Richard Hult <richard@imendio.com>
6679 * Update AFL version to 2.0 throughout the source files to reflect
6680 the update that was done a while ago.
6682 2003-12-02 Richard Hult <richard@imendio.com>
6684 * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
6685 wrote_dict_key to FALSE on the iter that the dict is appended to,
6686 just like when appending other types. Fixes a bug where a dict
6687 couldn't be put inside a dict.
6688 (dbus_message_iter_append_dict_key): Fix typo in warning message.
6689 (message_iter_test, _dbus_message_test): Add test case for dict
6692 2003-12-01 David Zeuthen <david@fubar.dk>
6694 * python/dbus.py: Add the actual message when calling the reciever
6695 of a signal such that parameters can be inspected. Add the method
6696 remove_signal_receiver
6698 2003-11-26 Mikael Hallendal <micke@imendio.com>
6702 * glib/*.[ch]: Made ref functions return the pointer
6704 2003-11-25 Zack Rusin <zack@kde.org>
6706 * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
6708 * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer
6711 * qt/connection.h, qt/connection.cpp: Adjusting to changes in
6712 the Integrator and to better fit with the server,
6714 2003-11-24 Zack Rusin <zack@kde.org>
6716 * qt/connection.h, qt/connection.cpp: removing initDbus method since
6717 the integrator handles it now
6719 * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
6720 since QTimer wasn't really meant to be used the way DBusTimeout is
6722 2003-11-24 Zack Rusin <zack@kde.org>
6724 * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding
6725 Integrator class which integrates D-BUS with the Qt event loop,
6727 * qt/connection.h, qt/connection.cpp: Move all the code which
6728 was dealing with D-BUS integration to the Integrator class,
6729 and start using Integrator,
6731 2003-11-23 Zack Rusin <zack@kde.org>
6733 * qt/connection.h, qt/connection.cpp: Adding the DBusConnection
6736 * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
6737 switching namespaces to DBusQt, reworking the class,
6739 * Makefile.cvs: switching dependencies so that it matches KDE
6742 * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to
6745 2003-11-19 Havoc Pennington <hp@redhat.com>
6749 * configure.in: bump version to 0.20
6751 * configure.in (have_qt): add yet another place to look for qt
6752 (someone hand trolltech a .pc file...)
6754 2003-11-01 Havoc Pennington <hp@redhat.com>
6756 * doc/dbus-specification.xml: add state machine docs on the auth
6757 protocol; just a first draft, I'm sure it's wrong.
6759 2003-10-28 David Zeuthen <david@fubar.dk>
6761 * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
6762 return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
6764 2003-10-28 Havoc Pennington <hp@redhat.com>
6766 * dbus/dbus-message.c (get_next_field): delete unused function
6768 2003-10-28 Havoc Pennington <hp@redhat.com>
6770 * bus/expirelist.c (do_expiration_with_current_time): detect
6771 failure of the expire_func due to OOM
6773 * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
6775 * bus/dispatch.c (check_send_exit_to_service): fix to handle the
6776 NoReply error that's now created by the bus when the service exits
6778 2003-10-28 Havoc Pennington <hp@redhat.com>
6780 * dbus/dbus-message.c (_dbus_message_test): enable and fix the
6781 tests for set_path, set_interface, set_member, etc.
6783 * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
6785 * dbus/dbus-message.c (set_string_field): always just delete and
6786 re-append the field; accept NULL for deletion
6787 (re_align_fields_recurse): reimplement
6789 2003-10-26 Havoc Pennington <hp@redhat.com>
6791 * dbus/dbus-connection.c: fix docs to properly describe the
6792 disconnected message
6793 (_dbus_connection_notify_disconnected): remove this function;
6794 we can't synchronously add the disconnected message, we have to
6795 do it after we've queued any remaining real messages
6796 (_dbus_connection_get_dispatch_status_unlocked): queue the
6797 disconnect message only if the transport has finished queueing all
6798 its real messages and is disconnected.
6799 (dbus_connection_disconnect): update the dispatch status here
6801 2003-10-22 Havoc Pennington <hp@redhat.com>
6803 * bus/bus.c (bus_context_check_security_policy): fix up assertion
6805 * bus/connection.c (bus_transaction_send_from_driver): set the
6806 destination to the connection's base service
6808 2003-10-20 Havoc Pennington <hp@redhat.com>
6810 hmm, make check is currently not passing.
6812 * doc/dbus-specification.xml: add requirement that custom type
6813 names follow the same rules as interface names.
6815 * dbus/dbus-protocol.h: change some of the byte codes, to avoid
6816 duplication and allow 'c' to be 'custom'; dict is now 'm' for
6819 * doc/dbus-specification.xml: update type codes to match
6820 dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
6821 CUSTOM. Add type OBJECT_PATH to the spec.
6823 2003-10-17 Havoc Pennington <hp@redhat.com>
6825 * bus/driver.c (create_unique_client_name): use "." as separator
6826 in base service names instead of '-'
6828 * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
6829 byte at the end of the string
6831 * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
6832 optimization macros since string validation seems to be a slow
6835 * doc/dbus-specification.xml: restrict valid
6836 service/interface/member/error names. Add test suite code for the
6839 * dbus/dbus-string.c: limit service/interface/member/error names
6842 * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
6843 format arg to verbose spew
6845 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
6846 memory, return instead of g_error
6848 * test/test-service.c (path_message_func): support emitting a
6851 * dbus/dbus-bus.c (init_connections_unlocked): only fill in
6852 activation bus type if DBUS_BUS_ACTIVATION was set; default to
6853 assuming the activation bus was the session bus so that services
6854 started manually will still register.
6855 (init_connections_unlocked): fix so that in OOM situation we get
6856 the same semantics when retrying the function
6858 * test/test-service.c (main): change to use path registration, to
6859 test those codepaths; register with DBUS_BUS_ACTIVATION rather
6860 than DBUS_BUS_SESSION
6862 2003-10-16 Havoc Pennington <hp@redhat.com>
6864 * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
6866 * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
6867 coverage of the tests
6868 (coverage-report.txt): don't move the .da and .bbg files around
6870 2003-10-16 Havoc Pennington <hp@redhat.com>
6872 * bus/bus.c (struct BusContext): remove struct field I didn't mean
6875 2003-10-16 Havoc Pennington <hp@redhat.com>
6877 * bus/connection.c (bus_pending_reply_expired): either cancel or
6879 (bus_connections_check_reply): use unlink, not remove_link, as we
6880 don't want to free the link; fixes double free mess
6882 * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
6883 where no reply was received
6885 * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
6888 * bus/signals.c (match_rule_matches): add special cases for the
6889 bus driver, so you can match on sender/destination for it.
6891 * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
6892 DBUS_PRINT_BACKTRACE is set
6894 * dbus/dbus-internals.c: add pid to assertion failure messages
6896 * dbus/dbus-connection.c: add message type code to the debug spew
6898 * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
6899 sender=foo not service=foo
6901 * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
6902 session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use
6903 DBUS_ACTIVATION_ADDRESS instead
6905 * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
6906 DBUS_SYSTEM_BUS_ADDRESS if appropriate
6908 * bus/bus.c (bus_context_new): handle OOM copying bus type into
6911 * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
6912 (dbus_message_iter_get_object_path_array): new function (half
6913 finished, disabled for the moment)
6915 * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
6916 DBUS_MESSAGE_TYPE_ERROR
6918 * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
6919 avoid redirecting stderr to /dev/null
6920 (babysit): close stdin if not doing the "exit_with_session" thing
6922 * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
6923 debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
6924 stdout/stdin, so things don't get confused
6926 * bus/system.conf.in: fix to allow replies, I modified .conf
6927 instead of .conf.in again.
6929 2003-10-14 David Zeuthen <david@fubar.dk>
6931 * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
6932 argtype to arg_type when raising unknown arg type exception.
6933 Changed type list to reflect the changes in dbus-protocol.h so
6934 the bindings actually work.
6936 2003-10-14 Havoc Pennington <hp@redhat.com>
6938 * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
6939 to have a bug keeping it from outputting the .da files sometimes
6940 (string_get_string): don't append garbage nul bytes to the string.
6942 2003-10-15 Seth Nickell <seth@gnome.org>
6944 * python/Makefile.am:
6946 Include dbus_h_wrapper.h in the dist tarball.
6948 2003-10-14 Havoc Pennington <hp@redhat.com>
6950 * bus/bus.c (bus_context_check_security_policy): revamp this to
6951 work more sanely with new policy-based requested reply setup
6953 * bus/connection.c (bus_transaction_send_from_driver): set bus
6954 driver messages as no reply
6956 * bus/policy.c (bus_client_policy_check_can_receive): handle a
6957 requested_reply attribute on allow/deny rules
6959 * bus/system.conf: add <allow requested_reply="true"/>
6961 * bus/driver.c (bus_driver_handle_message): fix check for replies
6962 sent to the bus driver, which was backward. How did this ever work
6963 at all though? I think I'm missing something.
6965 * dbus/dbus-message.c (decode_header_data): require error and
6966 method return messages to have a reply serial field to be valid
6967 (_dbus_message_loader_queue_messages): break up this function;
6968 validate that reply serial and plain serial are nonzero;
6969 clean up the OOM/error handling.
6970 (get_uint_field): don't return -1 from this
6971 (dbus_message_create_header): fix signed/unsigned bug
6973 * bus/connection.c (bus_connections_expect_reply): save serial of
6974 the incoming message, not reply serial
6976 2003-10-14 Havoc Pennington <hp@redhat.com>
6978 * bus/connection.c: implement pending reply tracking using
6981 * bus/bus.c (bus_context_check_security_policy): verify that a
6982 reply is pending in order to allow a reply to be sent. Deny
6983 messages of unknown type.
6985 * bus/dbus-daemon-1.1.in: update to mention new resource limits
6987 * bus/bus.c (bus_context_get_max_replies_per_connection): new
6988 (bus_context_get_reply_timeout): new
6990 2003-10-13 Seth Nickell <seth@gnome.org>
6992 * python/Makefile.am:
6994 Pass "make distcheck": remove a couple files from DIST_FILES
6995 that weren't included in the final version.
6997 2003-10-12 Havoc Pennington <hp@pobox.com>
6999 Added test code that 1) starts an actual bus daemon and 2) uses
7000 DBusGProxy; fixed bugs that were revealed by the test. Lots
7001 more testing possible, but this is the basic framework.
7003 * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
7004 empty proxy lists from the proxy list hash
7006 * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
7007 couple of return_if_fail checks
7009 * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
7010 to allocate, so everything is cleared to NULL as it should be.
7012 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
7013 source as data to dbus_connection_set_timeout_functions() as the
7014 timeout functions expected
7016 * test/glib/run-test.sh: add a little script to start up a message
7017 bus and run tests using it
7019 * tools/dbus-launch.1: updates
7021 * tools/dbus-launch.c (main): add --config-file option
7023 * tools/dbus-launch.c (main): remove confusing else if (runprog)
7024 that could never be reached.
7026 * dbus/dbus-message.c (dbus_message_new_method_return)
7027 (dbus_message_new_error, dbus_message_new_signal): set the
7028 no-reply-expected flag on all these. Redundant, but may
7029 as well be consistent.
7031 2003-10-11 Havoc Pennington <hp@pobox.com>
7033 * test/decode-gcov.c (function_solve_graph): make broken block
7034 graph a nonfatal error since it seems to be broken. Need to debug
7037 * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
7038 can't just check type > INVALID < LAST anymore
7040 * dbus/dbus-message.c (dbus_message_get_signature): new function
7041 (dbus_message_has_signature): new function
7042 (struct DBusMessage): add signature field (right now it isn't sent
7043 over the wire, just generated on the fly)
7044 (dbus_message_copy): copy the signature, and init strings to
7045 proper length to avoid some reallocs
7046 (dbus_message_iter_init_array_iterator): return void, since it
7048 (dbus_message_iter_init_dict_iterator): return void since it can't fail
7049 (_dbus_message_loader_queue_messages): add silly temporary hack to
7050 fill in message->signature on load
7052 * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
7053 characters, so they are relatively human-readable.
7055 2003-10-11 Havoc Pennington <hp@pobox.com>
7057 * dbus/dbus-message.c (_dbus_message_test): add more test
7058 coverage, but #if 0 for now since they uncover a bug
7059 not fixed yet; I think in re_align_field_recurse()
7060 (re_align_field_recurse): add FIXME about broken assertion
7062 * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
7064 * bus/connection.c: share a couple code bits with expirelist.c
7066 * bus/expirelist.h, bus/expirelist.c: implement a generic
7067 expire-items-after-N-seconds facility, was going to share between
7068 expiring connections and replies, decided not to use for expiring
7069 connections for now.
7071 * COPYING: include AFL 2.0 (still need to change all the file headers)
7073 2003-10-09 Havoc Pennington <hp@redhat.com>
7075 * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
7076 gcc 3.3. Not that we do anything about it yet.
7078 * bus/signals.c (bus_match_rule_parse): impose max length on the
7081 * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
7083 2003-10-09 Havoc Pennington <hp@redhat.com>
7085 Make matching rules theoretically work (add parser).
7087 * bus/bus.c (bus_context_check_security_policy): fix up to handle
7088 the case where destination is explicitly specified as bus driver
7089 and someone else is eavesdropping.
7091 * bus/policy.c (bus_client_policy_check_can_receive): fix up
7092 definition of eavesdropping and assertion
7094 * tools/dbus-send.c (main): use dbus_message_type_from_string
7096 * bus/signals.c (bus_match_rule_parse): implement
7098 * dbus/dbus-message.c (dbus_message_type_from_string): new
7100 * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
7102 2003-10-02 Havoc Pennington <hp@pobox.com>
7104 * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
7105 dbus_gproxy_oneway_call
7107 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main)
7108 (dbus_server_setup_with_g_main): fix to allow calling them more
7109 than once on the same args
7110 (dbus_bus_get_with_g_main): new function
7112 2003-10-02 Havoc Pennington <hp@redhat.com>
7114 * doc/dbus-tutorial.xml: write some stuff
7116 2003-09-29 Havoc Pennington <hp@pobox.com>
7118 * configure.in: split checks for Doxygen from XML docs, check for
7121 * doc/Makefile.am: XML-ify all the docs, and add a blank
7124 2003-09-29 Havoc Pennington <hp@pobox.com>
7126 * Merge dbus-object-names branch. To see the entire patch
7127 do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
7128 it's huuuuge though.
7129 To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
7131 2003-09-28 Havoc Pennington <hp@pobox.com>
7133 * HACKING: update to reflect new server
7135 2003-09-26 Seth Nickell <seth@gnome.org>
7138 * python/examples/example-signals.py:
7140 Start implementing some notions of signals. The API
7141 is really terrible, but they sort of work (with the
7142 exception of being able to filter by service, and to
7143 transmit signals *as* a particular service). Need to
7144 figure out how to make messages come from the service
7147 * python/dbus_bindings.pyx.in:
7149 Removed duplicate message_handler callbacks.
7151 2003-09-25 Havoc Pennington <hp@redhat.com>
7153 * bus/session.conf.in: fix my mess
7155 2003-09-25 Havoc Pennington <hp@pobox.com>
7157 * bus/session.conf.in: fix security policy, reported by Seth Nickell
7159 2003-09-25 Seth Nickell <seth@gnome.org>
7161 * python/examples/example-service.py:
7163 Johan notices complete wrong code in example-service, but
7164 completely wrong in a way that works exactly the same (!).
7165 Johan is confused, how could this possibly work? Example
7166 code fails to serve purpose of making things clear.
7169 2003-09-25 Mark McLoughlin <mark@skynet.ie>
7171 * doc/dbus-specification.sgml: don't require header fields
7172 to be 4-byte aligned and specify that fields should be
7173 distinguished from padding by the fact that zero is not
7176 * doc/TODO: remove re-alignment item and add item to doc
7177 the OBJECT_PATH type.
7179 * dbus/dbus-message.c:
7180 (HeaderField): rename the original member to value_offset
7181 and introduce a name_offset member to keep track of where
7182 the field actually begins.
7183 (adjust_field_offsets): remove.
7184 (append_int_field), (append_uint_field),
7185 (append_string_field): don't align the start of the header
7186 field to a 4-byte boundary.
7187 (get_next_field): impl finding the next marhsalled field
7188 after a given field.
7189 (re_align_field_recurse): impl re-aligning a number of
7190 already marshalled fields.
7191 (delete_field): impl deleting a field of any type and
7192 re-aligning any following fields.
7193 (delete_int_or_uint_field), (delete_string_field): remove.
7194 (set_int_field), (set_uint_field): no need to re-check
7195 that we have the correct type for the field.
7196 (set_string_field): ditto and impl re-aligning any
7198 (decode_header_data): update to take into account that
7199 the fields aren't 4-byte aligned any more and the new
7200 way to distinguish padding from header fields. Also,
7201 don't exit when there is too much header padding.
7202 (process_test_subdir): print the directory.
7203 (_dbus_message_test): add test to make sure a following
7204 field is re-aligned correctly after field deletion.
7206 * dbus/dbus-string.[ch]:
7207 (_dbus_string_insert_bytes): rename from insert_byte and
7208 allow the insert of multiple bytes.
7209 (_dbus_string_test): test inserting multiple bytes.
7211 * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
7212 warning note to docs about having to re-align any
7213 marshalled values following the string.
7215 * dbus/dbus-message-builder.c:
7216 (append_string_field), (_dbus_message_data_load):
7217 don't align the header field.
7219 * dbus/dbus-auth.c: (process_test_subdir): print the
7222 * test/break-loader.c: (randomly_add_one_byte): upd. for
7225 * test/data/invalid-messages/bad-header-field-alignment.message:
7228 * test/data/valid-messages/unknown-header-field.message: shove
7229 a dict in the unknown field.
7231 2003-09-25 Seth Nickell <seth@gnome.org>
7234 * python/dbus_bindings.pyx.in:
7236 Handle return values.
7238 * python/examples/example-client.py:
7239 * python/examples/example-service.py:
7241 Pass back return values from the service to the client.
7243 2003-09-24 Seth Nickell <seth@gnome.org>
7247 Connect Object methods (when you are sharing an object) up... pass
7248 in a list of methods to be shared. Sharing all the methods just
7249 worked out too weird. You can now create nice Services over the
7252 * python/dbus_bindings.pyx.in:
7254 Keep references to user_data tuples passed into C functions so
7255 Python doesn't garbage collect on us.
7257 Implement MethodReturn and Error subclasses of Message for creating
7258 DBusMessage's of those types.
7260 * python/examples/example-client.py:
7261 * python/examples/example-service.py:
7263 Simple example code showing both how create DBus services and objects,
7264 and how to use them.
7266 2003-09-23 Havoc Pennington <hp@pobox.com>
7268 * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
7270 2003-09-23 Havoc Pennington <hp@redhat.com>
7272 * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
7273 (dbus_gproxy_disconnect_signal): implement
7274 (dbus_gproxy_manager_remove_signal_match): implement
7275 (dbus_gproxy_manager_add_signal_match): implement
7276 (dbus_gproxy_oneway_call): implement
7278 2003-09-23 Havoc Pennington <hp@pobox.com>
7280 * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
7281 subclass. This means dropping the transparent thread safety of the
7282 proxy; you now need a separate proxy per-thread, or your own
7283 locking on the proxy. Probably right anyway.
7284 (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
7286 2003-09-22 Havoc Pennington <hp@redhat.com>
7288 * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
7290 2003-09-21 Seth Nickell <seth@gnome.org>
7292 First checkin of the Python bindings.
7294 * python/.cvsignore:
7295 * python/Makefile.am:
7296 * python/dbus_bindings.pyx.in:
7297 * python/dbus_h_wrapper.h:
7299 Pieces for Pyrex to operate on, building a dbus_bindings.so
7300 python module for low-level access to the DBus APIs.
7304 High-level Python module for accessing DBus objects.
7309 Build stuff for the python bindings.
7313 Extra macro needed for finding the Python C header files.
7315 2003-09-21 Havoc Pennington <hp@pobox.com>
7317 * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
7318 implementing the proxy manager, didn't get very far.
7320 * dbus/dbus-bus.c (dbus_bus_add_match): new
7321 (dbus_bus_remove_match): new
7323 * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
7324 path_name argument; adjust the other not-yet-implemented
7325 gproxy constructors to be what I think they should be.
7327 2003-09-21 Havoc Pennington <hp@pobox.com>
7329 * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
7330 by default for message bus connections.
7332 * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
7333 exit_on_disconnect flag is set and we process the disconnected
7335 (dbus_connection_set_exit_on_disconnect): new function
7337 2003-09-21 Havoc Pennington <hp@pobox.com>
7339 Get matching rules mostly working in the bus; only actually
7340 parsing the rule text remains. However, the client side of
7341 "signal connections" hasn't been started, this patch is only the
7344 * dbus/dispatch.c: fix for the matching rules changes
7346 * bus/driver.c (bus_driver_handle_remove_match)
7347 (bus_driver_handle_add_match): send an ack reply from these
7350 * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
7351 arguments, reported by Seth Nickell
7353 * bus/config-parser.c (append_rule_from_element): support
7354 eavesdrop=true|false attribute on policies so match rules
7355 can be prevented from snooping on the system bus.
7357 * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
7358 and "destination" in attribute names; fix some docs bugs;
7359 add eavesdrop=true|false attribute
7361 * bus/driver.c (bus_driver_handle_add_match)
7362 (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
7365 * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
7366 rid of broadcast service concept, signals are just always broadcast
7368 * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
7369 mostly implement matching rules stuff (currently only exposed as signal
7372 2003-09-21 Mark McLoughlin <mark@skynet.ie>
7374 * doc/dbus-specification.sgml: Change the header field name
7375 to be an enum and update the rest of the spec to reference
7376 the fields using the conventinal name.
7378 * dbus/dbus-protocol.h: update to reflect the spec.
7380 * doc/TODO: add item to remove the 4 byte alignment requirement.
7382 * dbus/dbus-message.c: Remove the code to generalise the
7383 header/body length and serial number header fields as named
7384 header fields so we can reference field names using the
7386 (append_int_field), (append_uint_field), (append_string_field):
7387 Append the field name as a byte rather than four chars.
7388 (delete_int_or_uint_field), (delete_string_field): reflect the
7389 fact that the field name and typecode now occupy 4 bytes instead
7391 (decode_string_field), (decode_header_data): update to reflect
7392 protocol changes and move the field specific encoding from
7393 decode_string_field() back into decode_header_data().
7395 * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
7396 Add utility to aid debugging.
7398 * dbus/dbus-message-builder.c:
7399 (append_string_field), (_dbus_message_data_load): Update to
7400 reflect protocol changes; Change the FIELD_NAME directive
7401 to HEADER_FIELD and allow it to take the field's conventional
7402 name rather than the actual value.
7404 * test/data/*/*.message: Update to use HEADER_FIELD instead
7405 of FIELD_NAME; Always align the header on an 8 byte boundary
7406 *before* updating the header length.
7408 2003-09-15 Havoc Pennington <hp@pobox.com>
7410 * dbus/dbus-pending-call.c: add the get/set object data
7411 boilerplate as for DBusConnection, etc. Use generic object data
7412 for the notify callback.
7414 * glib/dbus-gparser.c (parse_node): parse child nodes
7416 * tools/dbus-viewer.c: more hacking on the dbus-viewer
7418 * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
7419 contain functions shared between the convenience lib and the
7422 * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
7423 -export-symbols-regex to the GLib library
7425 * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
7426 fix the locking in here, and add a default handler for
7427 Introspect() that just returns sub-nodes.
7429 2003-09-14 Havoc Pennington <hp@pobox.com>
7431 * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
7432 rather than gfoo consistent
7434 * glib/dbus-gproxy.h: delete for now, move contents to
7435 dbus-glib.h, because the include files don't work right since we
7436 aren't in the dbus/ subdir.
7438 * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
7439 (dbus_gproxy_end_call): finish
7440 (dbus_gproxy_begin_call): finish
7442 * glib/dbus-gmain.c (dbus_set_g_error): new
7444 * glib/dbus-gobject.c (handle_introspect): include information
7445 about child nodes in the introspection
7447 * dbus/dbus-connection.c (dbus_connection_list_registered): new
7448 function to help in implementation of introspection
7450 * dbus/dbus-object-tree.c
7451 (_dbus_object_tree_list_registered_and_unlock): new function
7453 2003-09-12 Havoc Pennington <hp@pobox.com>
7455 * glib/dbus-gidl.h: add common base class for all the foo_info
7458 * tools/dbus-viewer.c: add GTK-based introspection UI thingy
7461 * test/Makefile.am: try test srcdir -ef . in addition to test
7462 srcdir = ., one of them should work (yeah lame)
7464 * glib/Makefile.am: build the "idl" parser stuff as a convenience
7467 * glib/dbus-gparser.h: make description_load routines return
7468 NodeInfo* not Parser*
7470 * Makefile.am (SUBDIRS): build test dir after all library dirs
7472 * configure.in: add GTK+ detection
7474 2003-09-07 Havoc Pennington <hp@pobox.com>
7476 * Make Doxygen contented.
7478 2003-09-07 Havoc Pennington <hp@pobox.com>
7480 * doc/dbus-specification.sgml: more updates
7482 2003-09-06 Havoc Pennington <hp@pobox.com>
7484 * doc/dbus-specification.sgml: partial updates
7486 * bus/dbus-daemon-1.1.in: fix the config file docs for the
7487 zillionth time; hopefully I edited the right file this time.
7489 * bus/config-parser.c (append_rule_from_element): support
7490 send_type, send_path, receive_type, receive_path
7492 * bus/policy.c: add message type and path to the list of things
7493 that can be "firewalled"
7495 2003-09-06 Havoc Pennington <hp@pobox.com>
7497 * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
7498 (dbus_connection_register_object_path): make this not handle
7499 messages to paths below the given path
7501 2003-09-03 Havoc Pennington <hp@pobox.com>
7503 * test/glib/Makefile.am: add this with random glib-linked test
7506 * glib/Makefile.am: remove the random test programs from here,
7507 leave only the unit tests
7509 * glib/dbus-gobject.c (_dbus_gobject_test): add test for
7510 uscore/javacaps conversion, and fix
7511 (get_object_property, set_object_property): change to .NET
7512 convention for mapping props to methods, set_FooBar/get_FooBar,
7513 since one language has such a convention we may as well copy it.
7514 Plus real methods in either getFooBar or get_foo_bar style won't
7515 collide with this convention.
7517 2003-09-01 Havoc Pennington <hp@pobox.com>
7519 * glib/dbus-gparser.c: implement
7521 * glib/dbus-gobject.c: start implementing skeletons support
7523 * configure.in: when disabling checks/assert, also define
7524 G_DISABLE_ASSERT and G_DISABLE_CHECKS
7526 2003-09-01 Havoc Pennington <hp@pobox.com>
7528 * glib/Makefile.am: rearrange a bunch of files and get "make
7529 check" framework set up
7531 2003-08-31 Havoc Pennington <hp@pobox.com>
7533 * fix build with --disable-tests
7535 2003-08-30 Havoc Pennington <hp@pobox.com>
7537 * dbus/dbus-connection.c: purge DBusMessageHandler
7539 * dbus/dbus-message-handler.c: remove DBusMessageHandler, just
7540 use callbacks everywhere
7542 2003-08-30 Havoc Pennington <hp@pobox.com>
7544 * test/data/valid-config-files/system.d/test.conf: change to
7545 root for the user so warnings don't get printed
7547 * dbus/dbus-message.c: add dbus_message_get_path,
7548 dbus_message_set_path
7550 * dbus/dbus-object-tree.c (do_test_dispatch): add test of
7551 dispatching to a path
7553 * dbus/dbus-string.c (_dbus_string_validate_path): add
7555 * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
7556 (_dbus_marshal_object_path): implement
7558 * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field
7559 to contain the path to the target object
7560 (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
7561 DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
7563 2003-08-30 Havoc Pennington <hp@pobox.com>
7565 * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
7567 2003-08-29 Havoc Pennington <hp@pobox.com>
7569 * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
7571 (struct DBusObjectSubtree): shrink this
7572 a lot, since we may have a lot of them
7573 (_dbus_object_tree_free_all_unlocked): implement
7574 (_dbus_object_tree_dispatch_and_unlock): implement
7576 2003-08-29 Havoc Pennington <hp@pobox.com>
7578 * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
7580 2003-08-28 Havoc Pennington <hp@pobox.com>
7584 * dbus/dbus-connection.c: port to no ObjectID, create a
7585 DBusObjectTree, rename ObjectTree to ObjectPath in public API
7587 * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete
7588 everything except UnregisterFunction and MessageFunction
7590 * dbus/dbus-marshal.c: port away from DBusObjectID,
7591 add DBUS_TYPE_OBJECT_PATH
7593 * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc],
7594 dbus/dbus-objectid.[hc]: remove these, we are moving to
7595 path-based object IDs
7597 2003-08-25 Havoc Pennington <hp@pobox.com>
7599 Just noticed that dbus_message_test is hosed, I wonder when I
7600 broke that. I thought make check was passing earlier...
7602 * dbus/dbus-object-tree.c: add new "object tree" to match DCOP
7603 container tree, will replace most of dbus-object-registry
7605 * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
7608 2003-08-19 Havoc Pennington <hp@pobox.com>
7610 * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
7611 (dbus_message_is_error): fix this function
7613 * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
7616 * bus/policy.c (bus_client_policy_check_can_receive): fix code to
7617 reflect clarified man page
7618 (bus_client_policy_check_can_send): ditto
7620 * bus/session.conf.in: fixup
7622 * bus/system.conf.in: fixup
7624 2003-08-18 Havoc Pennington <hp@redhat.com>
7626 * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
7628 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7629 dumb bug created earlier (wrong order of args to
7630 decode_header_data())
7632 * tools/dbus-send.c: port
7634 * tools/dbus-print-message.c (print_message): port
7636 * test/data/*messages: port all messages over
7638 * dbus/dbus-message-builder.c: support including
7641 * bus/driver.c: port over
7643 * bus/dispatch.c: port over to new stuff
7645 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7646 rename disconnect signal to "Disconnected"
7648 2003-08-17 Havoc Pennington <hp@pobox.com>
7650 This doesn't compile yet, but syncing up so I can hack on it from
7651 work. What are branches for if not broken code? ;-)
7653 * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
7654 DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
7655 DBUS_HEADER_FIELD_ERROR_NAME
7657 * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
7658 for the interface+member pairs
7659 (string_hash): change to use g_str_hash algorithm
7660 (find_direct_function, find_string_function): refactor these to
7663 * dbus/dbus-message.c: port all of this over to support
7664 interface/member fields instead of name field
7666 * dbus/dbus-object-registry.c: port over
7668 * dbus/dbus-string.c (_dbus_string_validate_interface): rename
7669 from _dbus_string_validate_name
7671 * bus/dbus-daemon-1.1: change file format for the
7672 <deny>/<allow> stuff to match new message naming scheme
7674 * bus/policy.c: port over
7676 * bus/config-parser.c: parse new format
7678 2003-08-16 Havoc Pennington <hp@pobox.com>
7680 * dbus/dbus-object-registry.c (add_and_remove_objects): remove
7683 * glib/dbus-gproxy.c: some hacking
7685 2003-08-15 Havoc Pennington <hp@redhat.com>
7687 * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
7689 * dbus/dbus-connection.c
7690 (dbus_connection_send_with_reply_and_block): factor out internals;
7691 change to convert any error replies to DBusError instead of
7692 returning them as a message
7694 2003-08-15 Havoc Pennington <hp@pobox.com>
7696 * dbus/dbus-connection.c,
7697 dbus/dbus-pending-call.c: Finish the pending call stuff
7699 2003-08-14 Havoc Pennington <hp@redhat.com>
7701 * dbus/dbus-pending-call.c: start on new object that will replace
7702 DBusMessageHandler and ReplyHandlerData for tracking outstanding
7705 * dbus/dbus-gproxy.c: start on proxy object used to communicate
7706 with remote interfaces
7708 * dbus/dbus-gidl.c: do the boring boilerplate in here
7710 2003-08-12 Havoc Pennington <hp@pobox.com>
7712 * bus/dispatch.c (bus_dispatch): make this return proper
7713 DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
7715 * dbus/dbus-errors.c (dbus_set_error): use
7716 _dbus_string_append_printf_valist
7718 * dbus/dbus-string.c (_dbus_string_append_printf_valist)
7719 (_dbus_string_append_printf): new
7721 * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
7724 * dbus/dbus-connection.c (dbus_connection_dispatch): handle
7725 DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
7726 message is unhandled.
7728 2003-08-11 Havoc Pennington <hp@pobox.com>
7730 * bus/test.c (client_disconnect_handler): change to return
7731 HANDLED (would have been REMOVE_MESSAGE)
7733 * dbus/dbus-object.h (enum DBusHandlerResult): rename to
7734 HANDLED/NOT_YET_HANDLED instead of
7735 REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it
7738 2003-08-10 Havoc Pennington <hp@pobox.com>
7740 * tools/dbus-send.c (main): add --type argument, for now
7741 supporting only method_call and signal types.
7743 * tools/dbus-print-message.c: print message type
7745 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7746 init connection->objects
7748 * doc/dbus-specification.sgml: fix sgml
7750 * bus/*.c: port over to object-instance API changes
7752 * test/test-service.c: ditto
7754 * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
7755 name, we will have to fix up the rest of the code to also handle
7757 (dbus_message_new): generic message-creation call
7758 (set_string_field): allow appending name field
7760 2003-08-06 Havoc Pennington <hp@pobox.com>
7762 * dbus/dbus-object-registry.c: implement signal connection
7765 * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
7767 * dbus/dbus-internals.c (_dbus_memdup): new function
7769 2003-08-02 Havoc Pennington <hp@pobox.com>
7771 * dbus/dbus-message.c (dbus_message_get_no_reply)
7772 (dbus_message_set_no_reply): add these and remove
7773 set_is_error/get_is_error
7775 * dbus/dbus-protocol.h, doc/dbus-specification.sgml:
7776 remove the ERROR flag, since there's now an ERROR type
7778 2003-08-01 Havoc Pennington <hp@pobox.com>
7780 * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
7783 * dbus/dbus-message.c (dbus_message_get_type): new function
7785 * doc/dbus-specification.sgml: add "type" byte to messages
7787 2003-08-01 Havoc Pennington <hp@pobox.com>
7789 * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
7790 a message type enum to distinguish kinds of message
7791 (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message
7792 that need not be replied to
7794 2003-08-01 Havoc Pennington <hp@pobox.com>
7796 * dbus/dbus-marshal.c: adapt to DBusObjectID changes
7797 (unpack_8_octets): fix no-64-bit-int bug
7799 * dbus/dbus-object-registry.c (validate_id): validate the
7800 connection ID bits, not just the instance ID.
7802 * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
7803 the connection-global 33 bits of the object ID
7805 * dbus/dbus-object-registry.c (info_from_entry): fill in
7806 object ID in the new way
7808 * dbus/dbus-objectid.h: rather than high/low bits, specifically
7809 define server/client/instance bits.
7811 2003-07-30 Havoc Pennington <hp@pobox.com>
7813 * dbus/dbus-connection.c (dbus_connection_register_object): fix
7816 2003-07-13 Havoc Pennington <hp@pobox.com>
7818 * dbus/dbus-object.h (struct DBusObjectVTable): add padding
7819 fields to DBusObjectVTable and DBusObjectInfo
7821 2003-07-12 Havoc Pennington <hp@pobox.com>
7823 * dbus/dbus-object-registry.c: implement unit test,
7824 fix bugs discovered in process
7826 * dbus/dbus-connection.c: remove handler_table and
7827 register_handler(), add DBusObjectRegistry usage
7829 * dbus/dbus-objectid.c (dbus_object_id_is_null)
7830 (dbus_object_id_set_null): new functions
7832 2003-07-08 Havoc Pennington <hp@pobox.com>
7834 * dbus/dbus-object.c: implement some of this
7836 * dbus/dbus-object-registry.c
7837 (_dbus_object_registry_add_and_unlock): fill in the object_id out
7839 (_dbus_object_registry_new): handle OOM
7841 2003-07-08 Havoc Pennington <hp@pobox.com>
7843 * dbus/dbus-object.h: sketch out an API for registering objects
7844 with a connection, that allows us to use as little as 24 bytes
7845 per object and lets application code represent an object in
7846 any conceivable way.
7848 * dbus/dbus-object-registry.c: implement the hard bits of the
7849 DBusConnection aspect of object API. Not yet wired up.
7851 2003-07-06 Havoc Pennington <hp@pobox.com>
7853 * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
7854 (_dbus_marshal_object_id): new
7855 (_dbus_demarshal_object_id): new
7856 (_dbus_marshal_get_arg_end_pos): support object ID type, and
7857 consolidate identical switch cases. Don't conditionalize handling
7858 of DBUS_TYPE_UINT64, need to handle the type always.
7859 (_dbus_marshal_validate_arg): consolidate identical cases, and
7860 handle DBUS_TYPE_OBJECT_ID
7862 * dbus/dbus-objectid.c: new file with DBusObjectID data type.
7864 * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
7866 2003-09-28 Havoc Pennington <hp@pobox.com>
7870 2003-09-28 Havoc Pennington <hp@pobox.com>
7872 * doc/Makefile.am (dbus-specification.html): testing a funky hack
7873 to work with Debian db2html
7875 2003-09-28 Havoc Pennington <hp@pobox.com>
7877 * configure.in: 0.13
7879 * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
7880 stylesheet-images for benefit of Debian
7882 Change back to using filesystem-linked sockets for the system
7883 bus, so only root can create the default system bus address.
7885 * bus/system.conf.in: change to use
7886 DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7888 * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
7891 * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
7892 here, and AC_DEFINE DBUS_SYSTEM_PATH
7894 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7897 * doc/busconfig.dtd:
7900 2003-08-09 Anders Carlsson <andersca@codefactory.se>
7902 * doc/dbus-specification.sgml:
7903 Add activation reply values.
7905 2003-08-05 Havoc Pennington <hp@redhat.com>
7907 * configure.in: 0.12
7909 2003-08-05 Anders Carlsson <andersca@codefactory.se>
7911 * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
7912 (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
7913 (add_watch), (remove_watch), (create_source):
7914 Refcount fds, fixes some reentrancy issues.
7916 2003-07-30 Havoc Pennington <hp@redhat.com>
7918 * dbus/dbus-bus.c (init_connections_unlocked): fix default system
7919 bus address to be abstract if we have abstract sockets
7923 2003-07-28 Havoc Pennington <hp@redhat.com>
7925 * bus/messagebus.in: fix to avoid processname/servicename
7926 confusion, from Michael Kearey
7927 https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
7929 2003-07-23 Havoc Pennington <hp@pobox.com>
7931 * dbus/dbus-message.c (dbus_message_iter_get_named):
7932 fix from Andy Hanton to remove broken "+1"
7934 2003-07-16 Havoc Pennington <hp@pobox.com>
7936 * tools/dbus-launch.c (babysit): close stdout/stderr in the
7937 babysitter process, as suggested by Thomas Leonard, so
7938 an "eval `dbus-launch --exit-with-session`" will actually
7941 2003-07-16 Havoc Pennington <hp@pobox.com>
7943 * configure.in: print out EXPANDED_* variables in the summary at
7944 the end; clean up the code that computes EXPANDED_ variables and
7945 get the ones using exec_prefix right. Should make things work
7946 when you build without --prefix
7948 2003-06-29 Havoc Pennington <hp@pobox.com>
7950 * mono/Test.cs (class Test): fire up a main loop and run it
7952 * mono/DBus.cs (DBus): don't g_thread_init since it can only be
7953 done once, the app has to do it
7955 2003-06-26 Havoc Pennington <hp@pobox.com>
7957 * mono/Connection.cs: set up connection with the glib main loop
7959 2003-07-01 Havoc Pennington <hp@redhat.com>
7961 * doc/dbus-specification.sgml: clarify the format of a type code,
7962 change suggested by Jim Blandy
7964 2003-06-29 Miloslav Trmac <mitr@volny.cz>
7967 * tools/Makefile.am: Don't assume srcdir == builddir.
7969 * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
7970 the allocated block.
7971 (_dbus_memory_test): New function.
7972 * dbus/dbus-test.h: Add _dbus_memory_test ().
7973 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
7975 * dbus/dbus-message.c (decode_header_data): Use %.4s instead
7977 (dbus_message_new): Remove obsolete @todo.
7979 * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
7980 (_dbus_marshal_set_uint64): Fix comment.
7982 * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
7983 hardcode FIELD_REPLY_SERIAL.
7985 * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
7986 (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
7988 * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
7989 and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
7991 2003-06-24 Havoc Pennington <hp@pobox.com>
7993 * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
7995 2003-06-23 Anders Carlsson <andersca@codefactory.se>
8001 * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
8002 * gcj/org/.cvsignore:
8003 * gcj/org/Makefile.am:
8004 * gcj/org/freedesktop/.cvsignore:
8005 * gcj/org/freedesktop/Makefile.am:
8006 * gcj/org/freedesktop/dbus/.cvsignore:
8007 * gcj/org/freedesktop/dbus/Makefile.am:
8008 * gcj/org/freedesktop/dbus/Message.java: (Message),
8010 * gcj/org/freedesktop/dbus/natMessage.cc:
8011 Fix the build system.
8013 2003-06-22 Havoc Pennington <hp@pobox.com>
8015 * mono/Connection.cs: add more bindings
8017 * dbus/dbus-threads.c (dbus_threads_init): allow calling this
8020 2003-06-22 Havoc Pennington <hp@pobox.com>
8022 * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
8023 Start wrapping more stuff.
8025 2003-06-22 Havoc Pennington <hp@pobox.com>
8027 * mono/Message.cs: implement Message.Wrap() that ensures we only
8028 have a single C# wrapper per DBusMessage, assuming it works which
8029 it probably doesn't.
8031 * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
8032 (dbus_message_free_data_slot): new
8033 (dbus_message_set_data): new
8034 (dbus_message_get_data): new
8036 2003-06-22 Havoc Pennington <hp@pobox.com>
8038 * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
8039 (_dbus_data_slot_allocator_alloc): rework these to keep a
8040 reference count on each slot and automatically manage a global
8041 slot ID variable passed in by address
8043 * bus/bus.c: convert to new dataslot API
8045 * dbus/dbus-bus.c: convert to new dataslot API
8047 * dbus/dbus-connection.c: convert to new dataslot API
8049 * dbus/dbus-server.c: convert to new dataslot API
8051 * glib/dbus-gmain.c: ditto
8055 * bus/connection.c: ditto
8057 2003-06-22 Anders Carlsson <andersca@codefactory.se>
8059 * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
8060 after the gcj checks so that the correct configuration tags
8061 will be added to libtool.
8063 * dbus-glib-1.pc.in: No need to specify any includes since
8064 dbus-1.pc.in has those.
8066 2003-06-22 Havoc Pennington <hp@pobox.com>
8068 * mono/*, gcj/*, configure.in, Makefile.am:
8069 Check in makefiles and subdirs for mono and gcj bindings.
8070 Neither binding actually exists, just trying to get through
8071 all the build and other boring bits.
8073 2003-06-21 Philip Blundell <philb@gnu.org>
8075 * tools/dbus-monitor.1: Updated.
8077 * tools/dbus-send.1: Likewise.
8079 2003-06-20 Anders Carlsson <andersca@codefactory.se>
8081 * dbus/dbus-transport-unix.c (unix_handle_watch): Check
8082 for hangup and error after checking read so we won't discard
8083 pending data if both hangup and read are set.
8085 2003-06-19 Philip Blundell <philb@gnu.org>
8087 * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
8089 * tools/dbus-send.c: Accept both --system and --session.
8091 * tools/dbus-monitor.c: Same here.
8093 2003-06-19 Anders Carlsson <andersca@codefactory.se>
8095 * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
8096 from C++ (Patch by Miloslav Trmac).
8098 2003-06-15 Joe Shaw <joe@assbarn.com>
8100 * configure.in: Check for socklen_t.
8102 * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
8104 * test/test-segfault.c: Add #include <sys/time.h>
8106 * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
8107 dbus-launch needs it.
8109 2003-06-09 Havoc Pennington <hp@redhat.com>
8111 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
8112 SUN_LEN, it breaks abstract socket usage
8114 * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
8117 2003-06-04 Havoc Pennington <hp@pobox.com>
8119 * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
8120 using unix:abstract=/foo, and when listening in a tmpdir
8121 i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
8123 * dbus/dbus-transport.c (_dbus_transport_open): support
8126 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
8127 support abstract sockets
8129 * dbus/dbus-transport-unix.c
8130 (_dbus_transport_new_for_domain_socket): support abstract sockets
8132 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
8133 toggle as an argument, implement abstract namespace support
8134 (_dbus_listen_unix_socket): ditto
8136 * configure.in: add --enable-abstract-sockets and implement
8137 a configure check for autodetection of the right value.
8139 2003-06-01 Havoc Pennington <hp@pobox.com>
8141 * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
8142 in /tmp (though on Linux this will end up being useless,
8143 when we add abstract namespace support)
8145 * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
8148 2003-05-28 Colin Walters <walters@verbum.org>
8150 * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
8152 2003-05-18 Anders Carlsson <andersca@codefactory.se>
8154 * dbus/dbus-message.c (dbus_message_new): Remove @todo.
8156 2003-05-17 Colin Walters <walters@gnu.org>
8158 * tools/dbus-send.c: Don't exit with an error code if --help was
8159 passed. Default to using the session bus instead of the system
8162 * tools/dbus-launch.c: Ditto.
8164 * tools/dbus-monitor.c: Ditto.
8166 * tools/dbus-send.1: Update with new arguments.
8168 * tools/dbus-launch.c: Emit code to export variables. New
8169 arguments -s and -c to specify shell syntax, and a bit of code to
8170 autodetect syntax. Also, allow specifying a program to run.
8172 * tools/dbus-launch.1: Update with new arguments.
8174 * tools/dbus-send.1: Ditto.
8176 * tools/dbus-monitor.1: Ditto.
8178 2003-05-17 Havoc Pennington <hp@pobox.com>
8180 * bus/config-parser.c (merge_included): merge in policies from
8181 child configuration file.
8183 * bus/policy.c (bus_policy_merge): function to merge two policies
8186 2003-05-16 Havoc Pennington <hp@redhat.com>
8188 * dbus/dbus-connection.c: disable verbose lock spew
8190 * tools/dbus-send.c: add --print-reply command line option
8192 * tools/dbus-print-message.h (print_message): new util function
8193 shared by dbus-send and dbus-monitor
8195 * tools/dbus-monitor.c (handler_func): exit on disconnect
8197 * dbus/dbus-transport-unix.c (do_reading): if the transport is
8198 disconnected, don't try to use the read_watch
8200 * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
8201 so we can find this bug more easily
8203 2003-05-16 Havoc Pennington <hp@redhat.com>
8205 * bus/policy.c (free_rule_list_func): avoid a crash when passed
8206 NULL as DBusHashTable is annoyingly likely to do.
8208 2003-05-16 Colin Walters <walters@verbum.org>
8210 * tools/dbus-monitor.c: Add --session argument and usage()
8213 * tools/dbus-monitor.1: Update with new --session arg.
8215 * bus/Makefile.am (install-data-hook): Create
8216 $(libdir)/dbus-1.0/services so that the session bus is happy.
8218 2003-05-15 Havoc Pennington <hp@redhat.com>
8220 * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
8221 on non-x86. ifdef's are evil.
8223 2003-05-15 Havoc Pennington <hp@redhat.com>
8225 * configure.in: 0.11
8229 * bus/Makefile.am (initddir): apparently we are supposed to put
8230 init scripts in /etc/rc.d/init.d not /etc/init.d
8232 * bus/Makefile.am: remove the "you must --enable-tests to make
8233 check" as it broke distcheck
8235 * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
8237 2003-05-13 James Willcox <jwillcox@gnome.org>
8240 * bus/activation.c: (bus_activation_service_created),
8241 (bus_activation_activate_service):
8242 * bus/driver.c: (bus_driver_send_service_deleted),
8243 (bus_driver_send_service_created), (bus_driver_send_service_lost),
8244 (bus_driver_send_service_acquired),
8245 (bus_driver_send_welcome_message),
8246 (bus_driver_handle_list_services):
8247 * bus/session.conf.in:
8248 * dbus/dbus-bus.c: (dbus_bus_acquire_service),
8249 (dbus_bus_service_exists), (dbus_bus_activate_service):
8252 Add some convenience API which lets you activate a service, and did a
8253 bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
8254 and dbus_message_get_args()
8256 2003-05-11 Havoc Pennington <hp@pobox.com>
8258 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
8259 calling _dbus_marshal_validate_arg() for every byte in a byte
8262 * dbus/dbus-message-handler.c: use atomic reference counting to
8263 reduce number of locks slightly; the global lock in here sucks
8265 * dbus/dbus-connection.c
8266 (_dbus_connection_update_dispatch_status_and_unlock): variant of
8267 update_dispatch_status that can be called with lock held; then use
8268 in a couple places to reduce locking/unlocking
8269 (dbus_connection_send): hold the lock over the whole function
8270 instead of acquiring it twice.
8272 * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
8274 * bus/connection.c (bus_connections_setup_connection): fix access
8275 to already-freed memory.
8277 * dbus/dbus-connection.c: keep a little cache of linked list
8278 nodes, to avoid using the global linked list alloc lock in the
8279 normal send-message case. Instead we just use the connection lock
8280 that we already have to take.
8282 * dbus/dbus-list.c (_dbus_list_find_last): new function
8284 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
8285 change to use a struct for the atomic type; fix docs,
8286 they return value before increment, not after increment.
8288 * dbus/dbus-string.c (_dbus_string_append_4_aligned)
8289 (_dbus_string_append_8_aligned): new functions to try to
8290 microoptimize this operation.
8291 (reallocate_for_length): break this out of set_length(), to
8292 improve profile info, and also so we can consider inlining the
8295 * dbus/dbus-message.c (dbus_message_new_empty_header): init data
8296 strings with some preallocation, cuts down on our calls to realloc
8297 a fair bit. Though if we can get the "move entire string to empty
8298 string" optimization below to kick in here, it would be better.
8300 * dbus/dbus-string.c (_dbus_string_move): just call
8301 _dbus_string_move_len
8302 (_dbus_string_move_len): add a special case for moving
8303 an entire string into an empty string; we can just
8304 swap the string data instead of doing any reallocs.
8305 (_dbus_string_init_preallocated): new function
8307 2003-05-11 Havoc Pennington <hp@pobox.com>
8309 Write a "test-profile" that does echo client-server with threads;
8310 profile reveals lock contention, memcpy/realloc of buffers, and
8311 UTF-8 validation as hot spots. 20% of lock contention eliminated
8312 with dbus_atomic_inc/dec implementation on x86. Much remaining
8313 contention is global mempool locks for GList and DBusList.
8315 * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
8318 * dbus/dbus-connection.c (struct DBusConnection): use
8319 dbus_atomic_t for the reference count
8321 * dbus/dbus-message.c (struct DBusMessage): declare
8322 dbus_atomic_t values as volatile
8324 * configure.in: code to detect ability to use atomic integer
8325 operations in assembly, from GLib patch
8327 * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
8328 time, tired of it being wrong in threads and forked processes
8330 * glib/test-profile.c: a little program to bounce messages back
8331 and forth between threads and eat CPU
8333 * dbus/dbus-connection.c: add debug spew macros for debugging
8334 thread locks; include config.h at top; fix deadlock in
8335 dbus_connection_flush()
8337 2003-05-08 Havoc Pennington <hp@pobox.com>
8339 * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
8340 data from getting written, and there wasn't a good reason to
8343 * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
8344 dbus_verbose lines in test coverage
8345 (main): add list of functions sorted by # of untested blocks
8346 to the coverage report
8348 * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
8350 * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
8352 * dbus/dbus-message-handler.c (_dbus_message_handler_test):
8353 extend test coverage
8355 * test/data/auth/cancel.auth-script: test canceling an
8358 * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
8359 aren't used. in CVS history if we end up needing them.
8361 2003-05-04 Havoc Pennington <hp@pobox.com>
8363 * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
8366 * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
8367 function, which assumed length was in # of strings, not bytes
8369 * dbus/dbus-message.c (_dbus_message_test): add tests for some
8372 * dbus/dbus-connection.c
8373 (_dbus_connection_queue_received_message): disable function for
8374 now, we are only using it in test mode
8376 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
8377 remove a mistaken FIXME
8379 2003-05-04 Havoc Pennington <hp@pobox.com>
8381 * dbus/dbus-connection.c (dbus_connection_preallocate_send):
8382 unlock mutex on successful return, patch from Anders Gustafsson
8384 2003-05-04 Havoc Pennington <hp@pobox.com>
8386 * dbus-glib-1.pc.in (Requires): fix dependencies, from
8389 2003-05-04 Havoc Pennington <hp@pobox.com>
8391 * tools/dbus-launch.c: implement
8393 * bus/main.c (main), bus/bus.c (bus_context_new):
8394 implement --print-pid and --fork
8396 2003-05-03 Havoc Pennington <hp@redhat.com>
8398 * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
8399 the address had no value, and add to test suite. Fix and
8400 regression test from Miloslav Trmac
8402 2003-05-03 Havoc Pennington <hp@pobox.com>
8404 * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
8405 watch is invalid when handled
8407 * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
8408 dbus-launch utility to launch the bus from a shell script. Didn't
8409 actually implement dbus-launch yet, it's just a placeholder still.
8411 2003-05-03 Havoc Pennington <hp@pobox.com>
8413 * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
8414 daemon; also documents daemon config file, so replaces
8415 doc/config-file.txt. Corrected some stuff from config-file.txt in
8416 the process of moving it.
8418 2003-05-03 Havoc Pennington <hp@pobox.com>
8420 * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
8423 2003-05-03 Colin Walters <walters@verbum.org>
8425 * dbus/dbus-sysdeps.c (fill_user_info): Test against
8426 DBUS_UID_UNSET to determine whether to do a uid lookup or not.
8428 * Makefile.am: Update to use new .pc versioning scheme.
8430 2003-05-02 Havoc Pennington <hp@redhat.com>
8432 * bus/system.conf.in: allow send/receive to/from message bus
8435 2003-04-30 Havoc Pennington <hp@redhat.com>
8437 * configure.in: print a note when building with unit tests and
8440 2003-04-30 Havoc Pennington <hp@redhat.com>
8442 * Makefile.am: add a check-local that complains if you didn't
8443 configure with --enable-tests
8445 2003-04-29 Havoc Pennington <hp@redhat.com>
8447 * glib/dbus-gmain.c: docs cleanups
8449 * dbus/dbus-types.h: add docs on int64 types
8451 * dbus/dbus-memory.c: fix docs to avoid putting private API in
8452 public API docs section
8454 2003-04-29 Havoc Pennington <hp@redhat.com>
8456 * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
8457 dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
8458 parallel install API version, not with the D-BUS package version.
8460 * HACKING: move some of README over here
8462 * README: updates, and document API/ABI policy
8464 * configure.in: reindentation
8466 2003-04-29 Havoc Pennington <hp@redhat.com>
8468 * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
8469 to use this library" to be sure people have the right
8472 2003-04-28 Havoc Pennington <hp@redhat.com>
8474 * configure.in: add --enable-docs which by default is auto yes if
8475 doxygen and db2html found, no otherwise; but can be forced on/off
8477 * doc/Makefile.am: conditionalize whether to build docs on
8480 2003-04-28 Havoc Pennington <hp@redhat.com>
8482 * configure.in: 0.10
8486 * bus/system.conf.in: add <includedir>system.d</includedir>
8488 * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
8489 username was provided but not uid
8491 * bus/config-parser.c (struct BusConfigParser): keep track of
8492 whether the parser is toplevel or was included; change some
8493 of the error handling if it's included.
8495 2003-04-27 Havoc Pennington <hp@pobox.com>
8499 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8500 report correct status if we finish processing authentication
8501 inside this function.
8503 * bus/activation.c (try_send_activation_failure): use
8504 bus_transaction_send_error_reply
8506 * bus/connection.c (bus_connection_get_groups): return an error
8507 explaining the problem
8509 * bus/bus.c (bus_context_check_security_policy): implement
8510 restriction here that inactive connections can only send the
8511 hello message. Also, allow bus driver to send anything to
8514 * bus/connection.c (bus_connection_complete): create the
8515 BusClientPolicy here instead of on-demand.
8516 (bus_connection_get_policy): don't return an error
8518 * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
8519 sender field in message being replied to
8521 * bus/bus.c (bus_context_check_security_policy): fix silly typo
8522 causing it to return FALSE always
8524 * bus/policy.c (bus_client_policy_check_can_send): fix bug where
8525 we checked sender rather than destination
8527 2003-04-25 Havoc Pennington <hp@redhat.com>
8529 test suite is slightly hosed at the moment, will fix soon
8531 * bus/connection.c (bus_connections_expire_incomplete): fix to
8532 properly disable the timeout when required
8533 (bus_connection_set_name): check whether we can remove incomplete
8534 connections timeout after we complete each connection.
8536 * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
8537 probably still broken.
8539 * bus/services.c (bus_registry_acquire_service): implement max
8540 number of services owned, and honor allow/deny rules on which
8541 services a connection can own.
8543 * bus/connection.c (bus_connection_get_policy): report errors here
8545 * bus/activation.c: implement limit on number of pending
8548 2003-04-25 Havoc Pennington <hp@redhat.com>
8550 * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
8551 where we used >= 0 instead of != DBUS_UID_UNSET.
8553 2003-04-25 Havoc Pennington <hp@redhat.com>
8555 * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
8556 were toggled without add/remove, fix from Anders Gustafsson
8558 2003-04-24 Havoc Pennington <hp@redhat.com>
8560 * test/data/valid-config-files/basic.conf: add <limit> tags to
8563 * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
8564 <limit> tag in configuration file.
8566 2003-04-24 Havoc Pennington <hp@redhat.com>
8568 * bus/dispatch.c: somehow missed some name_is
8570 * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
8571 (_dbus_timeout_set_interval): new
8573 * bus/connection.c (bus_connections_setup_connection): record time
8574 when each connection is first set up, and expire them after the
8575 auth timeout passes.
8577 2003-04-24 Havoc Pennington <hp@redhat.com>
8579 * dbus/dbus-message.c (dbus_message_name_is): rename
8580 (dbus_message_service_is): rename
8581 (dbus_message_sender_is): rename
8582 (dbus_message_get_service): rename
8584 2003-04-24 Havoc Pennington <hp@redhat.com>
8586 * configure.in: add --enable-checks
8588 * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
8590 * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
8591 to use thread locks.
8592 (_dbus_connection_handler_destroyed_locked): move some private
8593 functions into proper docs group
8595 * dbus/dbus-internals.h: add _dbus_return_if_fail,
8596 _dbus_return_val_if_fail
8598 Throughout: use dbus_return_if_fail
8600 2003-04-23 James Willcox <jwillcox@gnome.org>
8603 * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
8604 (dbus_connection_setup_with_g_main),
8605 (dbus_server_setup_with_g_main):
8606 * glib/test-dbus-glib.c: (main):
8607 * glib/test-thread-client.c: (main):
8608 * glib/test-thread-server.c: (new_connection_callback), (main):
8609 * tools/dbus-monitor.c: (main):
8611 Added a GMainContext argument to dbus_connection_setup_with_g_main()
8612 and dbus_server_setup_with_g_main().
8614 2003-04-20 Havoc Pennington <hp@pobox.com>
8616 * doc/dbus-specification.sgml: document the restrictions on
8617 message and service names
8619 2003-04-22 Havoc Pennington <hp@redhat.com>
8621 * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
8622 support, and do some code cleanups to share more code and
8623 speed up array marshal/demarshal.
8625 * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
8627 * configure.in: generate dbus-arch-deps.h
8629 * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
8632 2003-04-22 Havoc Pennington <hp@redhat.com>
8634 * test/data/valid-messages/opposite-endian.message: fix test
8635 to use proper type for rply field
8637 * test/data/invalid-messages: add tests for below validation
8639 * dbus/dbus-message.c (decode_header_data): validate field types,
8640 and validate that named fields are valid names
8641 (decode_name_field): consider messages in the
8642 org.freedesktop.Local. namespace to be invalid.
8644 * dbus/dbus-string.c (_dbus_string_validate_name): new
8646 2003-04-19 Havoc Pennington <hp@pobox.com>
8648 * bus/driver.c (bus_driver_handle_hello): check limits and
8649 return an error if they are exceeded.
8651 * bus/connection.c: maintain separate lists of active and inactive
8652 connections, and a count of each. Maintain count of completed
8653 connections per user. Implement code to check connection limits.
8655 * dbus/dbus-list.c (_dbus_list_unlink): export
8657 * bus/bus.c (bus_context_check_security_policy): enforce a maximum
8658 number of bytes in the message queue for a connection
8660 2003-04-18 Havoc Pennington <hp@pobox.com>
8662 * dbus/dbus-auth.c (record_mechanisms): memleak fixes
8664 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
8667 * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
8668 on realloc be sure to update the pointer in the keyring
8670 * dbus/dbus-string.c (_dbus_string_zero): compensate for align
8671 offset to avoid writing to unallocated memory
8673 * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
8674 try the next mechanism, so we properly handle OOM
8676 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
8678 (_dbus_keyring_new): fix OOM bug
8679 (_dbus_keyring_new_homedir): always set error; impose a maximum
8680 number of keys we'll load from the file, mostly to speed up the
8681 test suite and make its OOM checks more useful, but also for
8684 * dbus/dbus-auth.c (process_error_server): reject authentication
8685 if we get an error from the client
8686 (process_cancel): on cancel, send REJECTED, per the spec
8687 (process_error_client): send CANCEL if we get an error from the
8690 2003-04-18 Havoc Pennington <hp@pobox.com>
8692 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
8695 * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
8698 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
8699 about DBUS_TEST_HOMEDIR once
8701 * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
8704 * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
8705 config file so we test the right thing
8707 Throughout: assorted docs improvements
8709 2003-04-18 Havoc Pennington <hp@pobox.com>
8711 * glib/dbus-gmain.c: adapt to watch changes
8713 * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
8715 * dbus/dbus-server.h: remove dbus_server_handle_watch
8717 * dbus/dbus-connection.h: remove dbus_connection_handle_watch
8719 * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
8720 like DBusTimeout, so we don't need dbus_connection_handle_watch
8723 2003-04-17 Havoc Pennington <hp@redhat.com>
8725 * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
8726 database usage so it all goes via the DBusUserDatabase cache.
8728 2003-04-17 Havoc Pennington <hp@redhat.com>
8730 * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
8731 there was an OOM watch we skipped, we always return TRUE so we
8732 iterate again to have a look at it again. Fixes test suite hang.
8733 Code rearrangement also lets us lose some memset and only iterate
8734 over callbacks once.
8736 * bus/driver.c (bus_driver_handle_message): sense of test for
8739 2003-04-16 Havoc Pennington <hp@pobox.com>
8741 * doc/dbus-specification.sgml: make spec say serials are unsigned
8743 * dbus/dbus-message.h: change message serials to unsigned
8745 * dbus/dbus-connection.c: adapt to message serials being unsigned
8747 2003-04-15 Havoc Pennington <hp@pobox.com>
8749 * bus/bus.c: create and keep around a shared DBusUserDatabase
8752 * bus/connection.c (bus_connection_get_groups): don't cache
8753 groups for user in the connection object, since user database
8754 object now does that.
8756 2003-04-16 Havoc Pennington <hp@redhat.com>
8758 * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
8759 list of size counters
8760 (_dbus_message_loader_putback_message_link): put back a popped link
8762 * dbus/dbus-connection.c
8763 (dbus_connection_set_max_live_messages_size): rename
8765 (dbus_connection_get_outgoing_size): get size of outgoing
8767 (_dbus_connection_set_connection_counter): remove this cruft
8769 2003-04-14 Havoc Pennington <hp@redhat.com>
8771 * dbus/dbus-userdb.c: user database abstraction, mostly to get
8772 caching, but at some point we might want to be able to use a
8775 * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
8776 SHA1 conf file to test the sha1 auth mechanism, since the regular
8777 test always uses EXTERNAL when available.
8780 test/data/valid-config-files/debug-allow-all-sha1.conf.in:
8781 add conf file that requires use of sha1 auth
8783 2003-04-13 Havoc Pennington <hp@pobox.com>
8785 * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
8786 from Philip Blundell to send messages and monitor them.
8788 2003-04-13 Havoc Pennington <hp@pobox.com>
8790 * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
8793 * test/data/valid-config-files/debug-allow-all.conf.in: allow all
8796 * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
8797 fix to only recover unused bytes if we're already authenticated
8798 (_dbus_transport_get_is_authenticated): fix to still mark us
8799 authenticated if there are unused bytes.
8801 * bus/dispatch.c: implement security policy checking
8803 * bus/connection.c (bus_transaction_send_from_driver): new
8805 * bus/bus.c (bus_context_check_security_policy): new
8807 * bus/dispatch.c (send_service_nonexistent_error): delete this,
8808 now we just set the DBusError and it gets converted to an error
8811 * bus/connection.c (allow_user_function): enable code using actual
8812 data from the config file
8814 * bus/policy.c (list_allows_user): handle wildcard rules for
8815 user/group connection perms
8817 2003-04-13 Havoc Pennington <hp@pobox.com>
8819 * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
8821 * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
8823 * bus/policy.c (bus_policy_append_mandatory_rule)
8824 (bus_policy_append_default_rule, bus_policy_append_user_rule)
8825 (bus_policy_append_group_rule): new functions
8827 2003-04-12 Havoc Pennington <hp@pobox.com>
8829 * bus/config-parser.c (bus_config_parser_new): fix a memleak
8831 * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
8832 the pid/gid/uid, just for paranoia.
8834 * test/break-loader.c (randomly_do_n_things): find a byte
8835 containing a type code, and randomly change it to a different
8838 2003-04-12 Havoc Pennington <hp@pobox.com>
8840 * bus/policy.h: change BusPolicy to be the thing from the config
8841 file, and rename old BusPolicy to BusClientPolicy
8843 * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
8844 match change in how policy works
8846 * dbus/dbus-internals.h: mark assert_not_reached as
8847 __attribute((noreturn))__
8849 2003-04-11 Havoc Pennington <hp@redhat.com>
8851 * doc/dbus-specification.sgml: fix a spot with the wrong name for
8852 the broadcast service. Use boolean return for ServiceExists.
8854 2003-04-11 Havoc Pennington <hp@redhat.com>
8856 * configure.in: add another directory to look for qt in.
8858 2003-04-11 Havoc Pennington <hp@redhat.com>
8860 * AUTHORS: add Colin Walters
8862 2003-04-11 Havoc Pennington <hp@redhat.com>
8868 2003-04-11 Havoc Pennington <hp@redhat.com>
8870 * bus/messagebus.in: remove pid file when stopping the
8871 message bus, since the bus won't have privileges to remove it
8874 2003-04-11 Havoc Pennington <hp@redhat.com>
8876 * bus/bus.c (bus_context_new): move credentials change after
8879 2003-04-11 Havoc Pennington <hp@pobox.com>
8881 * test/decode-gcov.c: add "below average functions" to the
8882 coverage report, and change how some of the code works.
8884 * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
8885 not in the coverage stats.
8887 * test/test-service.c (main): use _dbus_verbose not fprintf in a
8888 couple places so running the test suite doesn't result in megaspam.
8890 2003-04-11 Havoc Pennington <hp@pobox.com>
8892 * bus/dispatch.c (check_existent_service_activation): accept a no
8893 memory error in a place we didn't before
8895 * bus/test.c (bus_test_run_everything): remove hacky "do it twice
8896 in case the first one failed," since the test suite is less
8899 2003-04-10 Havoc Pennington <hp@pobox.com>
8901 * bus/dispatch.c (check_segfault_service_activation): add test
8902 for launching an executable that just crashes.
8904 * test/test-segfault.c (main): try setting coredumpsize to 0 so we
8905 don't leave a million cores. We'll see how portable this is.
8907 2003-04-10 Havoc Pennington <hp@pobox.com>
8909 * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
8910 the possible parent failures before we fork, so that we don't
8911 fail to create a babysitter after creating the child.
8913 * bus/activation.c (bus_activation_activate_service): kill child
8914 if we don't successfully complete the activation.
8916 2003-04-10 Havoc Pennington <hp@redhat.com>
8918 * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
8919 the connection if it's disconnected
8921 * bus/activation.c (bus_activation_service_created): use new
8922 transaction features to roll back removal of pending activation if
8923 we don't successfully create the service after all. Don't remove
8924 pending activation if the function fails.
8926 * dbus/dbus-list.c (_dbus_list_insert_before_link)
8927 (_dbus_list_insert_after_link): new code to facilitate
8930 * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
8931 new functionality, so we can preallocate the ability to insert
8934 * bus/connection.c (bus_transaction_add_cancel_hook): new function
8935 allowing us to put custom hooks in a transaction to be used for
8936 cancelling said transaction
8938 * doc/dbus-specification.sgml: add some discussion of secondary
8939 service owners, and disallow zero-length service names
8941 * bus/services.c (bus_registry_acquire_service): new function,
8942 splits out part of bus_driver_handle_acquire_service() and fixes
8943 a bug where we didn't remove the service doing the acquiring
8944 from the secondary queue if we failed to remove the current owner
8945 from the front of the queue.
8947 2003-04-10 Alexander Larsson <alexl@redhat.com>
8949 * doc/dbus-specification.sgml:
8950 s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
8952 2003-04-10 Alexander Larsson <alexl@redhat.com>
8957 Added files to cvsignore
8959 * dbus/dbus-message.h:
8960 * dbus/dbus-message.c: (dbus_message_iter_get_named):
8961 Make get_named() take two out argument and return a boolean.
8962 (dbus_message_iter_get_args_valist):
8963 Update usage of get_named().
8964 (dbus_message_iter_append_byte):
8966 (dbus_message_iter_append_named)
8968 (message_iter_test), (check_message_handling_type), (_dbus_message_test):
8971 2003-04-10 Alexander Larsson <alexl@redhat.com>
8973 * dbus/dbus-marshal.[ch]:
8974 Add array_type_pos argument to _dbus_marshal_validate_arg.
8975 Let you pass a NULL end_pos to _dbus_marshal_validate_type.
8977 * dbus/dbus-message.[ch]:
8978 Multi-dimensional arrays have full type specification in the
8979 outermost array. Iter code re-arranged to handle this.
8980 Added some more iter tests.
8982 * doc/dbus-specification.sgml:
8985 Update new array encoding description.
8986 Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
8988 * test/data/invalid-messages/array-with-mixed-types.message:
8989 * test/data/valid-messages/array-of-array-of-uint32.message:
8990 Change to the new array format.
8992 * test/data/invalid-messages/too-short-dict.message:
8995 * test/data/valid-messages/recursive-types.message:
8996 Fix up and extend test.
8998 2003-04-10 Havoc Pennington <hp@pobox.com>
9000 * bus/dispatch.c: lots of fixes
9002 * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
9003 (_dbus_loop_iterate): remove old "quit if no callbacks" code,
9004 that was crack, broke the test service.
9006 * dbus/dbus-transport.c (_dbus_transport_open): fix error
9007 handling to avoid piling up errors if we get a failure on the
9010 * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
9011 pid in assertion failures.
9013 * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
9014 to some fixed size of file descriptor array. Don't return TRUE
9015 anytime a timeout exists, that led to lots of busy loop silliness
9018 2003-04-09 Havoc Pennington <hp@redhat.com>
9020 * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
9021 I'd checked this in earlier but hadn't.
9023 2003-04-09 Havoc Pennington <hp@redhat.com>
9025 * bus/dispatch.c (bus_dispatch_test): get a bit further through
9026 the activation test (man this is getting old!)
9028 2003-04-09 Havoc Pennington <hp@redhat.com>
9030 * test/test-utils.c: use dispatch status function to fix this up
9032 * bus/connection.c (connection_watch_callback): don't dispatch
9034 (connection_timeout_callback): don't dispatch from here
9035 (bus_connections_setup_connection): set the dispatch status function
9036 (bus_connection_disconnected): unset it
9038 * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
9039 used to add a connection to be dispatched
9040 (_dbus_loop_iterate): do the dispatching at the end of each
9043 * dbus/dbus-connection.c
9044 (dbus_connection_set_dispatch_status_function): new function
9045 allowing us to fix up main loop usage
9046 (_dbus_connection_last_unref): free all the various function
9048 (dbus_connection_dispatch): call the DispatchStatusFunction
9049 whenever this function returns
9050 (dbus_connection_handle_watch): call DispatchStatusFunction
9051 (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
9052 (reply_handler_timeout): call DispatchStatusFunction
9053 (dbus_connection_flush): call DispatchStatusFunction
9055 2003-04-09 Havoc Pennington <hp@redhat.com>
9057 * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
9060 * bus/dispatch.c (check_service_activated): fix bug in test
9062 * dbus/dbus-mainloop.c (check_timeout): fix this up
9064 * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
9065 verbose output so we can sort out output from different processes,
9066 e.g. in the activation case.
9068 2003-04-08 Colin Walters <walters@gnu.org>
9070 * bus/bus.c (struct BusContext) [pidfile]: New member, to store
9072 (bus_context_new): Set it.
9073 (bus_context_unref): Use it to delete the pid file.
9075 2003-04-08 Havoc Pennington <hp@redhat.com>
9077 * test/data/invalid-messages/array-with-mixed-types.message:
9078 regression test that fails for the moment
9080 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
9081 tests for convenience
9083 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
9084 array of nil, it broke things.
9086 * test/data/invalid-messages/array-of-nil.message: regression test
9088 * test/data/valid-messages/array-of-array-of-uint32.message:
9089 happened to write this so added it to suite
9091 2003-04-08 Havoc Pennington <hp@redhat.com>
9093 * bus/driver.c (bus_driver_handle_acquire_service): init
9094 retval/reply before checking name
9096 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
9097 recursion depth argument
9099 * dbus/dbus-message.h (struct DBusMessageIter): put some padding
9100 in the public struct for future extension
9102 * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
9105 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
9108 * doc/dbus-specification.sgml: fix typo
9110 2003-04-08 Alexander Larsson <alexl@redhat.com>
9112 Implemented recursive types, named types and new-style iters
9115 * glib/test-thread-client.c: (thread_func):
9116 * glib/test-thread-server.c: (handle_test_message):
9117 * test/test-service.c: (handle_echo):
9126 * dbus/dbus-internals.c: (_dbus_type_to_string):
9127 Update for new types.
9129 * dbus/dbus-marshal.[ch]:
9130 Implement recursive types and the new marshalling format.
9131 Remove hardcoded dict marshalling.
9132 Marshal named types.
9134 * dbus/dbus-message-builder.c:
9136 Remove references to old types
9138 * dbus/dbus-message.[ch]:
9139 New non-refcounted iter API that supports recursive iters.
9140 Use iters for appending, including support for recursive
9142 Add byte and named type support.
9143 Update everything to new marshalling formats.
9144 Add tests for new API.
9146 * dbus/dbus-protocol.h:
9147 Remove old array types.
9148 Add types: BYTE, ARRAY, DICT, NAMED
9150 * dbus/dbus-string.c:
9151 * dbus/dbus-sysdeps.c:
9152 Make parse_double locale safe.
9154 * dbus/dbus-test-main.c:
9160 * doc/dbus-specification.sgml:
9163 * test/data/incomplete-messages/missing-body.message:
9164 * test/data/invalid-messages/bad-boolean.message:
9165 * test/data/invalid-messages/bad-boolean-array.message:
9166 * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
9167 * test/data/invalid-messages/boolean-has-no-value.message-raw:
9168 * test/data/invalid-messages/too-short-dict.message:
9169 * test/data/valid-messages/dict-simple.message:
9170 * test/data/valid-messages/dict.message:
9171 * test/data/valid-messages/emptiness.message:
9172 * test/data/valid-messages/lots-of-arguments.message:
9173 * test/data/valid-messages/no-padding.message:
9174 * test/data/valid-messages/recursive-types.message:
9175 Add missing NAME fields
9176 Fix up dicts & arrays
9178 * test/data/invalid-messages/dict-with-nil-value.message:
9179 Removed, this is not invalid anymore.
9181 * test/data/valid-messages/recursive-types.message:
9182 Add new test for deeply recursive types.
9184 2003-04-07 Havoc Pennington <hp@pobox.com>
9186 * bus/driver.c (bus_driver_handle_acquire_service): return an
9187 error if you try to acquire a service that starts with ':'
9189 2003-04-07 Havoc Pennington <hp@redhat.com>
9191 * doc/dbus-specification.sgml: require that base service names
9192 start with ':' and that the base service is created/deleted
9193 as first and last things a connection does on the bus
9195 * bus/dispatch.c (check_existent_service_activation): lots more
9196 work on the activation test; it doesn't fully pass yet...
9198 * test/test-service.c (main): fix so we don't memleak the
9199 connection to the message bus
9200 (filter_func): accept a message asking us to exit
9202 2003-04-06 Havoc Pennington <hp@pobox.com>
9204 * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
9207 * configure.in: fixes to Qt detection from Colin Walters
9209 * doc/Makefile.am: Only remove generated docbook dirs if they
9210 exist, from Colin Walters
9212 * dbus/dbus-bus.c: change how we set well-known connections to
9213 NULL, so that it works if a single connection is stored in
9214 two well-known array slots.
9216 * test/Makefile.am: remove a lot of stuff that isn't immediately
9217 useful, it's in CVS history if we want it.
9219 * test/test-service.c: use dbus-mainloop instead of that
9222 2003-04-06 Havoc Pennington <hp@pobox.com>
9224 * dbus/Makefile.am: split lists of sources into stuff that goes in
9225 the library, util functions that go in the lib and are also used
9226 elsewhere, and util functions that are used in tests/daemon but
9227 don't go in the lib.
9229 * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
9230 here so it can be used in test binaries also
9232 2003-04-06 Havoc Pennington <hp@pobox.com>
9234 * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
9235 here in the parent process, so we can return an error if it
9236 fails. Also, move some of the code into the child so the parent
9237 is less hosed if we fail midway through.
9239 * bus/bus.c (bus_context_new): move pidfile detection further up
9240 in the function, before we start overwriting sockets and such.
9242 * bus/messagebus.in: adjust this a bit, not sure if it will work.
9244 * configure.in: add --with-system-pid-file and --with-system-socket
9246 2003-04-06 Colin Walters <walters@verbum.org>
9248 * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
9250 * bus/system.conf.in: Declare a pidfile.
9252 * bus/bus.c (bus_context_new): Test for an existing pid file, and
9253 create one (if appropriate).
9255 * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
9256 (struct BusConfigParser) [pidfile]: New.
9257 (element_type_to_name, merge_included, start_busconfig_child)
9258 (bus_config_parser_end_element, bus_config_parser_content): Handle it.
9259 (bus_config_parser_unref): Free it.
9260 (bus_config_parser_get_pidfile): New function.
9262 * bus/config-parser.h (_dbus_write_pid_file): Prototype.
9264 * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
9266 * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
9268 * dbus/dbus-sysdeps.h: Prototype it.
9270 2003-04-06 Havoc Pennington <hp@pobox.com>
9272 * bus/bus.c (bus_context_new): print the address in here, rather
9273 than in main(), because we need to do it before forking the daemon
9275 * bus/dispatch.c (send_service_nonexistent_error): set the sender
9276 on the service nonexistent error
9278 * bus/driver.c (bus_driver_handle_acquire_service): set the
9279 sender on the AcquireService reply
9281 * test/data/valid-config-files/debug-allow-all.conf.in: Make test
9282 server also listen on a UNIX socket so services can connect to it.
9284 2003-04-06 Havoc Pennington <hp@pobox.com>
9286 * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
9287 so it detects deadlocks and also we actually init threads when
9290 2003-04-06 Havoc Pennington <hp@pobox.com>
9292 * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
9293 save the domain socket name, and unlink it when we disconnect the
9294 server. Means that at least when we exit normally, we won't leave
9295 a bunch of junk in /tmp
9297 * dbus/dbus-transport-unix.c
9298 (_dbus_transport_new_for_domain_socket): code cleanup (nicer
9299 memory management). (I was making a real change here but then
9302 2003-04-06 Havoc Pennington <hp@pobox.com>
9304 * bus/bus.c (bus_context_new): fix wrong handling of
9305 server_data_slot_unref() in the error case.
9307 * dbus/dbus-internals.h (_dbus_assert): change so it passes
9308 "(condition) != 0" to _dbus_real_assert so that
9309 "_dbus_assert (pointer)" doesn't cause a warning
9311 * bus/main.c (main): accept --print-address option to print out
9312 the message bus address
9314 * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
9316 * dbus/dbus-transport.c (_dbus_transport_open): special error for
9317 "tmpdir" option to unix: address on client side
9319 * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
9322 * configure.in (TEST_SOCKET_DIR): locate a temporary directory
9323 we can use to create sockets in the test suite.
9325 * bus/main.c (signal_handler): on SIGTERM, exit the daemon
9326 cleanly. To be used for testing.
9328 * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
9330 * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
9332 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9333 handle trying to call this when there's no servers active
9335 2003-04-05 Havoc Pennington <hp@pobox.com>
9341 2003-04-05 Havoc Pennington <hp@pobox.com>
9343 * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
9344 crash on startup. Need to get "try starting the daemon"
9345 in the test suite I guess. ;-)
9347 * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
9348 tracked the number of open connections; it's better done in
9349 application-specific code as you want it to span all servers etc.
9351 2003-04-05 Havoc Pennington <hp@pobox.com>
9353 * bus/Makefile.am (install-data-hook): add missing DESTDIR,
9354 patch from Colin Walters
9356 2003-04-05 Havoc Pennington <hp@pobox.com>
9358 * doc/config-file.txt (Elements): fix docs of <auth> to reflect
9359 reality; in fact multiple mechanisms are allowed.
9361 * dbus/dbus-internals.c (_dbus_real_assert)
9362 (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
9363 _dbus_assert_not_reached() into functions, so that they don't show
9364 up in basic block counts for test coverage, and don't use up as
9365 much disk space. Does mean slower execution speed though, so
9366 assumes --disable-asserts is the normal production case.
9368 2003-04-05 Havoc Pennington <hp@pobox.com>
9370 * test/Makefile.am (dist-hook): also dist *.in files
9376 2003-04-05 Havoc Pennington <hp@pobox.com>
9378 * dbus/dbus-string.c: docs warning
9380 * dbus/dbus-spawn.c: missing docs
9382 * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
9384 2003-04-05 Havoc Pennington <hp@pobox.com>
9386 * bus/loop.c (bus_loop_iterate): fix the timeout code, using
9389 * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
9390 to -1 once we've reaped the babysitter
9391 (_dbus_babysitter_handle_watch): do as much work as we can, not
9394 * bus/activation.c: add code using DBusBabysitter so that we
9395 handle it when a service fails to start up properly.
9396 (bus_activation_service_created): don't remove the activation
9397 entries as we go, just let them get removed when we free the pending
9398 activation. Unref reply messages after sending them.
9400 2003-04-05 Havoc Pennington <hp@pobox.com>
9402 * test/decode-gcov.c (main): print per-directory stats in the report
9404 * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
9406 2003-04-05 Havoc Pennington <hp@pobox.com>
9408 * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
9410 * test/decode-gcov.c: hack up a little program to suck data
9411 out of gcov files. Yes this is sort of silly.
9413 * configure.in: define something in config.h and do an
9414 AM_CONDITIONAL when gcov is enabled
9416 2003-04-04 Havoc Pennington <hp@redhat.com>
9418 * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
9419 return a "babysitter" object that is used to monitor the status of
9420 the spawned process and reap it when required.
9422 * test/test-segfault.c, test/test-exit.c,
9423 test/test-sleep-forever.c: binaries that do various lame things,
9424 used in the test suite.
9426 * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
9428 2003-04-03 Havoc Pennington <hp@pobox.com>
9430 * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
9431 in preparation for modifying it, dbus-sysdeps is getting
9434 2003-04-03 Havoc Pennington <hp@redhat.com>
9436 * bus/loop.h, bus/loop.c: make the mainloop an object so we can
9439 * bus/*.[hc]: adapt to mainloop change
9441 2003-04-03 Havoc Pennington <hp@redhat.com>
9443 * bus/activation.c (load_directory): fix up memleaks
9444 (bus_activation_entry_free): free the entry
9446 * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
9447 we get one from the message bus; fix memleaks.
9449 * dbus/dbus-message.c (dbus_set_error_from_message): new function
9451 2003-04-03 Havoc Pennington <hp@pobox.com>
9453 * bus/config-parser.c (bus_config_parser_unref): free
9454 list of mechanisms, bug discovered by test suite enhancements
9455 (putting system.conf and session.conf into suite)
9457 * test/Makefile.am, test/test-service.c: add placeholder for a
9458 test service that we'll activate as part of test suite. Doesn't
9461 * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
9462 setting NULL value, and use system malloc not dbus_malloc()
9463 when we have unavoidable memleakage.
9465 * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
9466 didn't work, and support DBUS_BUS_ACTIVATION.
9468 * bus/activation.c (child_setup): pass our well-known bus type to
9471 * bus/config-parser.c: support <type> to specify well-known type
9473 * doc/dbus-specification.sgml: document the env variables to
9474 locate well-known buses and find service activator
9476 2003-04-02 Havoc Pennington <hp@redhat.com>
9478 * test/Makefile.am (all-local): add a rule to copy tests to
9479 builddir, so we can have generated tests. Use this to remove the
9480 silly hack for testing system.conf and session.conf. Will use this
9481 shortly to generate .service files pointing to test binaries.
9483 2003-04-02 Havoc Pennington <hp@redhat.com>
9485 * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
9486 current alloc and needed new length, not max of the doubled
9487 allocation and needed new length. Also, when building tests,
9488 don't do the double-allocation stuff, just realloc every time.
9490 2003-04-02 Havoc Pennington <hp@redhat.com>
9492 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
9494 (_dbus_string_get_dirname): new
9495 (_dbus_sysdeps_test): new
9496 (_dbus_directory_open): include dirnames in error messages
9498 * bus/config-parser.c: interpret <include> and <includedir> and
9499 <servicedir> relative to config file location if the given
9500 filename is not absolute.
9502 * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
9504 2003-04-02 Havoc Pennington <hp@redhat.com>
9506 * bus/connection.c (bus_transaction_send_error_reply): set sender
9507 service for the error, and unref the reply on success
9509 * bus/activation.c: convert to use BusTransaction so OOM can be
9511 (bus_activation_service_created): set sender of the message
9513 2003-04-01 Havoc Pennington <hp@redhat.com>
9515 * bus/config-parser.c, bus/bus.c: implement <servicedir> and
9516 <includedir> (at least mostly)
9518 * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
9519 first, then the user ID
9521 2003-04-01 Havoc Pennington <hp@pobox.com>
9523 * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
9526 * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
9528 * dbus/dbus-internals.c (_dbus_dup_string_array): new function
9530 * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
9531 socket 0777, and unlink any existing socket.
9533 * bus/bus.c (bus_context_new): change our UID/GID and fork if
9534 the configuration file so specifies; set up auth mechanism
9537 * bus/config-parser.c (bus_config_parser_content): add support
9538 for <fork> option and fill in code for <auth>
9540 * bus/system.conf.in: add <fork/> to default configuration,
9541 and limit auth mechanisms to EXTERNAL
9543 * doc/config-file.txt (Elements): add <fork>
9545 * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
9546 (_dbus_change_identity): new function
9548 2003-03-31 Havoc Pennington <hp@redhat.com>
9550 * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
9551 (_dbus_listen_unix_socket): fix off-by-one error in null
9552 termination spotted by Nalin
9554 2003-03-31 Havoc Pennington <hp@redhat.com>
9556 * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
9557 DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
9558 having a real home directory available.
9560 2003-03-31 Havoc Pennington <hp@redhat.com>
9562 * bus/Makefile.am (install-data-hook): create /var/run/dbus
9564 * bus/messagebus.in: add init script for Red Hat /etc/init.d
9566 * configure.in: add support for specifying a style of init script
9569 2003-03-31 Havoc Pennington <hp@redhat.com>
9571 Fix some annoying DBusString API and fix all affected code.
9573 * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
9575 (_dbus_string_get_data): change to return string instead of using
9577 (_dbus_string_get_const_data): ditto
9578 (_dbus_string_get_data_len): ditto
9579 (_dbus_string_get_const_data_len): ditto
9581 2003-03-31 Havoc Pennington <hp@redhat.com>
9583 * bus/main.c (main): fix up the command line arguments to be nicer
9585 2003-03-31 Havoc Pennington <hp@redhat.com>
9587 * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
9588 define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
9589 final location that lands in the config file
9591 * bus/config-loader-expat.c (bus_config_load): fix type of
9594 * doc/TODO: remove TODO item for dbus_bus_get()
9596 * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
9598 2003-03-31 Havoc Pennington <hp@pobox.com>
9600 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
9601 (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
9602 argument since they are always client side
9604 * dbus/dbus-server.c (dbus_server_get_address): new function
9606 * bus/main.c (main): take the configuration file as an argument.
9608 * test/data/valid-config-files/debug-allow-all.conf: new file to
9609 use with dispatch.c tests for example
9611 * bus/test-main.c (main): require test data dir
9613 * bus/bus.c (bus_context_new): change this to take a
9614 configuration file name as argument
9616 * doc/config-file.txt (Elements): add <servicedir>
9618 * bus/system.conf, bus/session.conf: new files
9620 * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
9621 well-known socket if none set
9623 * configure.in: create system.conf and session.conf
9625 2003-03-30 Havoc Pennington <hp@pobox.com>
9627 * bus/config-parser.c: hacking
9629 * dbus/dbus-memory.c: don't use DBusList for the list of stuff
9630 to shut down, since it could cause weirdness with the DBusList
9633 * dbus/dbus-list.c (_dbus_list_test): add tests for the
9634 link-oriented stack routines
9635 (alloc_link): free the mempool if the first alloc from it fails
9637 * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
9639 * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
9641 (_dbus_string_skip_white): new
9643 * doc/config-file.txt (Elements): add <includedir>
9645 2003-03-28 Havoc Pennington <hp@pobox.com>
9647 * dbus/dbus-string.c (_dbus_string_copy_data_len)
9648 (_dbus_string_copy_data): new functions
9650 2003-03-28 Anders Carlsson <andersca@codefactory.se>
9652 * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
9656 * dbus/dbus-memory.c:
9659 2003-03-28 Havoc Pennington <hp@pobox.com>
9661 * bus/test.c (bus_test_flush_bus): remove the sleep from here,
9662 I think it may have just been superstition. Not sure.
9664 * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
9665 failures that were not being handled.
9667 * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
9669 * dbus/dbus-memory.c: add ability to set number of mallocs in a
9670 row that will fail on out-of-memory.
9672 * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
9673 function for testing out-of-memory handling.
9675 * bus/config-loader-expat.c (memsuite): don't wrap the dbus
9676 allocation functions, they do map exactly to the expat ones.
9678 2003-03-27 Havoc Pennington <hp@redhat.com>
9680 * bus/config-loader-libxml.c (bus_config_load): add another error
9683 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9686 Add note about automatic service activation.
9688 * doc/dbus-specification.sgml:
9689 Rename the specification and clarify a few things.
9691 2003-03-26 Anders Carlsson <andersca@codefactory.se>
9694 * dbus/dbus-address.c:
9696 * dbus/dbus-marshal.c:
9697 * dbus/dbus-server-debug-pipe.c:
9698 * dbus/dbus-transport-unix.c:
9699 Fix documentation warnings.
9701 2003-03-26 Havoc Pennington <hp@pobox.com>
9703 * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
9704 after every test so it's quick and easy to see which leaked, and
9705 so we test multiple dbus_shutdown() calls
9707 * configure.in: change configure.in XML stuff to also support
9710 * config-loader-libxml.c: some hacking
9712 * config-loader-expat.c: some hacking
9714 * config-parser.c: some hacking, plus tests
9716 2003-03-25 Havoc Pennington <hp@redhat.com>
9718 * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
9720 * configure.in: add --with-xml option to specify XML library,
9721 right now only libxml is supported.
9723 * bus/config-loader-libxml.c, config-parser.c: sync some minor
9724 nonworking code between home and work, still just stubs
9726 2003-03-24 Havoc Pennington <hp@redhat.com>
9728 * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
9731 * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
9732 NULL argument for "message" if the error is a well-known one,
9733 fill in a generic message in this case.
9735 * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
9738 * bus/test.c (bus_test_flush_bus): add
9740 * bus/policy.c (bus_policy_test): test code stub
9742 2003-03-24 Havoc Pennington <hp@pobox.com>
9744 * bus/connection.c (bus_connections_setup_connection): set up
9745 the "can this user connect" function, but it always returns
9746 TRUE until we have a config file parser so we can have a config
9747 file that allows connections.
9749 2003-03-23 Havoc Pennington <hp@pobox.com>
9751 * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
9752 DBUS_BUILD_TESTS, actually alloc/free a block of memory for
9753 the mutex, so we can check for proper memory management
9756 * dbus/dbus-dataslot.c: remove the mutex from
9757 DBusDataSlotAllocator and lock it manually when using it,
9758 to simplify fitting it into the global slots framework.
9760 * dbus/dbus-threads.c (init_static_locks): rework how we're
9761 handling global locks so they are easily shut down.
9763 * bus/policy.c (bus_policy_append_rule): fix
9765 * bus/test-main.c (main): check for memleaks
9767 * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
9768 test suite check for memleaks
9770 * dbus/dbus-memory.c: add support in test mode for tracking
9771 number of outstanding blocks
9773 2003-03-23 Havoc Pennington <hp@pobox.com>
9775 * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
9778 * dbus/dbus-hash.h: add ULONG hash keys
9780 * dbus/dbus-sysdeps.c (_dbus_get_groups): new
9781 (_dbus_get_group_id): new function
9783 2003-03-20 Havoc Pennington <hp@redhat.com>
9785 * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
9787 (dbus_connection_get_unix_user): new function
9789 2003-03-20 Havoc Pennington <hp@pobox.com>
9791 * bus/connection.c (bus_connection_send_oom_error): assert that
9792 message has a sender
9793 (connection_execute_transaction): ditto
9794 (bus_connection_preallocate_oom_error): fix to set the sender, and
9795 set recipient to the destination service, not the bus driver
9797 * bus/policy.c: hacking
9799 * dbus/dbus-message.c (dbus_message_service_is): new function
9800 (dbus_message_sender_is): new
9802 2003-03-19 Havoc Pennington <hp@redhat.com>
9804 * bus/policy.c: start sketching code for policy restrictions on
9805 what connections can do.
9807 2003-03-18 Havoc Pennington <hp@redhat.com>
9809 * doc/TODO: some notes on high-level todo items. Little nitpick
9810 stuff is all in @todo, so no need to add it here.
9812 * doc/config-file.txt: some notes on how config file might look
9814 2003-03-18 Anders Carlsson <andersca@codefactory.se>
9820 2003-03-17 Havoc Pennington <hp@redhat.com>
9822 * dbus/dbus-internals.h: add gcc attributes so that
9823 our printf-style functions warn on bad arguments to
9826 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
9829 * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
9832 2003-03-17 Havoc Pennington <hp@redhat.com>
9834 * bus/test-main.c (main): make it print something as it runs
9835 so make check doesn't look stuck
9837 * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
9838 from CVS, now obsolete
9840 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9842 * bus/dispatch.c: (bus_dispatch):
9843 Refetch the service name since it may have been reallocated
9844 when dbus_message_set_sender was called.
9846 * dbus/dbus-sysdeps.c: (_dbus_accept):
9847 Add address and address length variables and use them to stop
9848 valgrind from complaining.
9850 2003-03-17 Havoc Pennington <hp@pobox.com>
9852 All tests pass, no memleaks, no valgrind complaints.
9854 * bus/test.c: refcount handler_slot
9856 * bus/connection.c (bus_connections_new): refcount
9857 connection_data_slot
9859 * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
9860 bytes so that auth scripts pass.
9862 * bus/dispatch.c: init message_handler_slot so it gets allocated
9865 * bus/dispatch.c (message_handler_slot_ref): fix memleak
9867 * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
9868 dealloc server_pipe_hash when no longer used for benefit of
9871 * dbus/dbus-auth.c (process_command): memleak fix
9873 * bus/dispatch.c (check_hello_message): memleak fix
9875 2003-03-16 Havoc Pennington <hp@pobox.com>
9877 * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
9879 2003-03-17 Anders Carlsson <andersca@codefactory.se>
9881 * bus/activation.c (bus_activation_activate_service): Append
9882 the pending activation entry to the list of pending activations.
9884 2003-03-16 Havoc Pennington <hp@pobox.com>
9886 * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
9889 * dbus/dbus-address.c (create_entry): fix OOM handling when
9890 failing to alloc entry->method
9892 2003-03-16 Havoc Pennington <hp@pobox.com>
9894 * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
9897 * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
9898 add some missing dbus_set_result
9900 * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
9901 alloc the DBusMessageHandler
9903 * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
9904 the transport here, since we call this from the finalizer; it
9905 resulted in a double-finalize.
9907 * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
9908 where we tried to use transport->connection that was NULL,
9909 happened when transport was disconnected early on due to OOM
9911 * bus/*.c: adapt to handle OOM for watches/timeouts
9913 * dbus/dbus-transport-unix.c: port to handle OOM during
9916 * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
9917 reference to unused bytes instead of a copy
9919 * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
9922 * dbus/dbus-connection.c (dbus_connection_handle_watch): return
9925 * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
9928 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9930 * doc/dbus-specification.sgml:
9931 Document reply message for ActivateService.
9933 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9935 * bus/activation.c: (bus_pending_activation_entry_free),
9936 (bus_pending_activation_free), (bus_activation_new),
9937 (bus_activation_unref), (bus_activation_service_created),
9938 (bus_activation_activate_service):
9940 * bus/bus.c: (bus_context_new):
9941 * bus/desktop-file.c: (new_section):
9942 * bus/driver.c: (bus_driver_send_service_deleted),
9943 (bus_driver_handle_activate_service):
9944 * bus/services.c: (bus_registry_new), (bus_registry_ensure):
9946 * dbus/dbus-connection.c:
9947 (dbus_connection_send_with_reply_and_block):
9948 * dbus/dbus-message.c: (dbus_message_append_args_valist):
9949 * dbus/dbus-protocol.h:
9950 Make activation work better. Now pending activations will be queued
9951 and the daemon won't try to activate services that are already registered.
9953 2003-03-16 Havoc Pennington <hp@pobox.com>
9955 * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
9958 * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
9959 DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
9961 2003-03-16 Havoc Pennington <hp@pobox.com>
9963 * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
9964 this. always run the test suite before commit...
9966 * bus/*: adapt to DBusConnection API changes
9968 * glib/dbus-gmain.c: adapt to DBusConnection API changes,
9969 requires renaming stuff to avoid dbus_connection_dispatch name
9972 * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
9975 * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
9976 separate from _dbus_message_loader_return_buffer()
9978 * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
9979 this, because it's now always broken to use; the number of
9980 messages in queue vs. the number still buffered by the message
9981 loader is undefined/meaningless. Should use
9982 dbus_connection_get_dispatch_state().
9983 (dbus_connection_dispatch): rename from
9984 dbus_connection_dispatch_message
9986 2003-03-16 Havoc Pennington <hp@pobox.com>
9988 * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
9991 2003-03-16 Anders Carlsson <andersca@codefactory.se>
9993 * dbus/dbus-connection.c:
9994 (dbus_connection_send_with_reply_and_block):
9995 Decrease connection->n_incoming when removing an entry
9997 * dbus/dbus-dict.c: (dbus_dict_entry_free),
9998 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
9999 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10000 (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
10001 (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
10002 (dbus_dict_get_byte_array):
10003 Handle NULL arrays and strings. Also add support for byte arrays.
10005 * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
10006 (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
10007 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
10008 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
10009 (_dbus_demarshal_dict), (demarshal_and_validate_len),
10010 (_dbus_marshal_validate_arg), (_dbus_marshal_test):
10011 * dbus/dbus-marshal.h:
10012 Add support for marshalling and demarshalling empty arrays and strings.
10014 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10015 (dbus_message_append_string_array),
10016 (dbus_message_iter_get_boolean),
10017 (dbus_message_iter_get_boolean_array),
10018 (dbus_message_iter_get_int32_array),
10019 (dbus_message_iter_get_uint32_array),
10020 (dbus_message_iter_get_double_array),
10021 (dbus_message_iter_get_byte_array),
10022 (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
10023 (check_message_handling):
10024 Add support for getting empty arrays and dicts.
10026 * dbus/dbus-string.c: (_dbus_string_validate_utf8):
10027 Don't do any validation at all for now, that's better than just checking
10030 * test/data/valid-messages/emptiness.message:
10031 New test message with lots of empty arrays.
10033 2003-03-16 Havoc Pennington <hp@pobox.com>
10035 * dbus/dbus-connection.c
10036 (_dbus_connection_queue_received_message_link): new function that
10037 can't fail due to OOM
10039 * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
10040 new function pops a message together with a list link
10043 * dbus/dbus-transport-unix.c (queue_messages): use new link-based
10044 message queuing functions to avoid needing to alloc memory
10046 2003-03-16 Havoc Pennington <hp@pobox.com>
10048 Oops - test code was only testing failure of around 30 of the
10049 mallocs in the test path, but it turns out there are 500+
10050 mallocs. I believe this was due to misguided linking setup such
10051 that there was one copy of dbus_malloc etc. in the daemon and one
10052 in the shared lib, and only daemon mallocs were tested. In any
10053 case, the test case now tests all 500+ mallocs, and doesn't pass
10054 yet, though there are lots of fixes in this patch.
10056 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10057 this so that it doesn't need to allocate memory, since it
10058 has no way of indicating failure due to OOM (and would be
10059 annoying if it did).
10061 * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
10063 * bus/Makefile.am: rearrange to create two self-contained
10064 libraries, to avoid having libraries with overlapping symbols.
10065 that was resulting in weirdness, e.g. I'm pretty sure there
10066 were two copies of global static variables.
10068 * dbus/dbus-internals.c: move the malloc debug stuff to
10071 * dbus/dbus-list.c (free_link): free list mempool if it becomes
10074 * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
10076 * dbus/dbus-address.c (dbus_parse_address): free list nodes
10079 * bus/dispatch.c (bus_dispatch_add_connection): free
10080 message_handler_slot when no longer using it, so
10081 memory leak checkers are happy for the test suite.
10083 * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
10085 * bus/bus.c (new_connection_callback): disconnect in here if
10086 bus_connections_setup_connection fails.
10088 * bus/connection.c (bus_connections_unref): fix to free the
10090 (bus_connections_setup_connection): if this fails, don't
10091 disconnect the connection, just be sure there are no side
10094 * dbus/dbus-string.c (undo_alignment): unbreak this
10096 * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
10098 (_dbus_auth_new): fix the order in which we free strings
10101 * bus/connection.c (bus_connection_disconnected): fix to
10102 not send ServiceDeleted multiple times in case of memory
10105 * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
10106 get the base service name
10107 (dbus_bus_register_client): don't return base service name,
10108 instead store it on the DBusConnection and have an accessor
10110 (dbus_bus_register_client): rename dbus_bus_register()
10112 * bus/dispatch.c (check_hello_message): verify that other
10113 connections on the bus also got the correct results, not
10114 just the one sending hello
10116 2003-03-15 Havoc Pennington <hp@pobox.com>
10118 Make it pass the Hello handling test including all OOM codepaths.
10119 Now to do other messages...
10121 * bus/services.c (bus_service_remove_owner): fix crash when
10122 removing owner from an empty list of owners
10123 (bus_registry_ensure): don't leave service in the list of
10124 a connection's owned services if we fail to put the service
10127 * bus/connection.c (bus_connection_preallocate_oom_error): set
10128 error flag on the OOM error.
10130 * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
10131 handle _dbus_transport_set_connection failure
10133 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
10134 to create watches up front and simply enable/disable them as
10136 (unix_connection_set): this can now fail on OOM
10138 * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
10139 of enabling/disabling a watch or timeout.
10141 * bus/loop.c (bus_loop_iterate): don't touch disabled
10144 * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
10146 2003-03-15 Havoc Pennington <hp@pobox.com>
10148 * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
10149 write useful test code, after all that futzing around ;-)
10151 Test does not yet pass because we can't handle OOM in
10152 _dbus_transport_messages_pending (basically,
10153 dbus_connection_preallocate_send() does not prealloc the write
10154 watch). To fix this, I think we need to add new stuff to
10155 set_watch_functions, namely a SetEnabled function so we can alloc
10156 the watch earlier, then enable it later.
10158 * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
10159 dbus-memory.c to the convenience lib
10161 * bus/test.c: rename some static functions to keep them clearly
10162 distinct from stuff in connection.c. Handle client disconnection.
10164 2003-03-14 Havoc Pennington <hp@pobox.com>
10166 * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
10167 transport, tests more of the real codepath. Set up clients
10168 with bus_setup_debug_client.
10170 * bus/test.c (bus_setup_debug_client): function to set up debug
10171 "clients" on the main loop
10173 * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
10176 * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
10179 * dbus/dbus-server-debug.c: support a debug server based on pipes
10181 * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
10182 (_dbus_close): new function
10184 * configure.in: check for socketpair
10186 2003-03-14 Havoc Pennington <hp@redhat.com>
10188 * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
10191 * dbus/dbus-transport-debug.c: rework this a good bit to be
10192 less complicated. hopefully still works.
10194 * dbus/dbus-server-debug.c (handle_new_client): remove timeout
10197 * glib/dbus-gmain.c (timeout_handler): don't remove timeout
10200 * dbus/dbus-message.c (dbus_message_copy): rename from
10201 dbus_message_new_from_message, fix it up to copy
10202 all the message fields, add test case
10204 * bus/dispatch.c (bus_dispatch_test): add some more test code,
10205 not quite passing yet
10207 2003-03-14 Havoc Pennington <hp@pobox.com>
10209 * bus/loop.c (bus_loop_iterate): add this so we can "run loop
10210 until no work remains" in test code. (the large diff here
10211 is just code movement, no actual changes)
10213 * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
10214 1, no point waiting around for test code.
10215 (_dbus_server_debug_accept_transport): unref the timeout
10216 after adding it (right?)
10218 * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
10220 2003-03-13 Havoc Pennington <hp@redhat.com>
10222 * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
10225 * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
10228 * dbus/dbus-connection.h: Make AddWatchFunction and
10229 AddTimeoutFunction return a bool so they can fail on out-of-memory
10231 * bus/bus.c (bus_context_new): set up timeout handlers
10233 * bus/connection.c (bus_connections_setup_connection): set up
10236 * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
10239 * bus/bus.c (bus_context_new): adapt to changes
10241 * bus/connection.c: adapt to changes
10243 * test/watch.c: adapt to DBusWatch changes
10245 * bus/dispatch.c (bus_dispatch_test): started adding this but
10248 2003-03-14 Anders Carlsson <andersca@codefactory.se>
10250 * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
10252 2003-03-13 Havoc Pennington <hp@pobox.com>
10254 * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
10255 set up a test framework as for the library
10257 2003-03-12 Havoc Pennington <hp@pobox.com>
10259 Throughout: purge global variables, introduce BusActivation,
10260 BusConnections, BusRegistry, etc. objects instead.
10262 * bus/bus.h, bus/bus.c: introduce BusContext as a global
10265 * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
10266 going to redo this a bit differently I think
10268 2003-03-12 Havoc Pennington <hp@redhat.com>
10270 Mega-patch that gets the message bus daemon initially handling
10271 out-of-memory. Work still needed. Also lots of random
10272 moving stuff to DBusError instead of ResultCode.
10274 * dbus/dbus-list.c (_dbus_list_length_is_one): new function
10276 * dbus/dbus-connection.c
10277 (dbus_connection_send_with_reply_and_block): use DBusError
10279 * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
10282 * dbus/dbus-connection.c (dbus_connection_send): drop the result
10283 code here, as the only failure possible is OOM.
10285 * bus/connection.c (bus_connection_disconnect):
10286 rename bus_connection_disconnected as it's a notification only
10288 * bus/driver.c (bus_driver_handle_acquire_service): don't free
10289 "name" on get_args failure, should be done by get_args;
10290 don't disconnect client for bad args, just return an error.
10291 (bus_driver_handle_service_exists): ditto
10293 * bus/services.c (bus_services_list): NULL-terminate returned array
10295 * bus/driver.c (bus_driver_send_service_lost)
10296 (bus_driver_send_service_acquired): send messages from driver to a
10297 specific client to the client's unique name, not to the broadcast
10300 * dbus/dbus-message.c (decode_header_data): reject messages that
10301 contain no name field
10302 (_dbus_message_get_client_serial): rename to
10303 dbus_message_get_serial and make public
10304 (_dbus_message_set_serial): rename from set_client_serial
10305 (_dbus_message_set_reply_serial): make public
10306 (_dbus_message_get_reply_serial): make public
10308 * bus/connection.c (bus_connection_foreach): allow stopping
10309 iteration by returning FALSE from foreach function.
10311 * dbus/dbus-connection.c (dbus_connection_send_preallocated)
10312 (dbus_connection_free_preallocated_send)
10313 (dbus_connection_preallocate_send): new API for sending a message
10314 without possibility of malloc failure.
10315 (dbus_connection_send_message): rename to just
10316 dbus_connection_send (and same for whole function family)
10318 * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
10320 * dbus/dbus-sysdeps.c (_dbus_exit): new function
10322 * bus/activation.c: handle/return errors
10324 * dbus/dbus-errors.h: add more DBUS_ERROR #define
10326 * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
10327 (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
10328 (_dbus_result_from_errno): move to this file
10330 2003-03-10 Anders Carlsson <andersca@codefactory.se>
10332 * dbus/dbus-marshal.c:
10333 (_dbus_marshal_set_string):
10334 Take a length argument so we can marshal the correct string
10337 (_dbus_marshal_dict), (_dbus_demarshal_dict),
10338 (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
10339 (_dbus_marshal_test):
10340 * dbus/dbus-marshal.h:
10341 Add support for marshalling and demarshalling dicts.
10343 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10344 Add support for TYPE DICT.
10346 * dbus/dbus-message.c: (set_string_field):
10347 Adjust header padding.
10349 (dbus_message_append_args_valist), (dbus_message_append_dict),
10350 (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
10351 (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
10352 (check_message_handling), (check_have_valid_message):
10353 * dbus/dbus-message.h:
10354 Add functions for setting and getting dicts.
10356 * dbus/dbus-protocol.h:
10357 Add DBUS_TYPE_DICT.
10362 * doc/dbus-specification.sgml:
10363 Add information about how dicts are marshalled.
10365 * test/data/invalid-messages/dict-with-nil-value.message:
10366 * test/data/invalid-messages/too-short-dict.message:
10367 * test/data/valid-messages/dict-simple.message:
10368 * test/data/valid-messages/dict.message:
10369 Add sample messages containing dicts.
10371 2003-03-08 Anders Carlsson <andersca@codefactory.se>
10373 * dbus/dbus-dict.h: Add DBUS_END_DECLS.
10375 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10377 * dbus/Makefile.am:
10378 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10379 (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
10380 (dbus_dict_set_int32), (dbus_dict_set_uint32),
10381 (dbus_dict_set_double), (dbus_dict_set_string),
10382 (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
10383 (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
10384 (dbus_dict_set_string_array), (_dbus_dict_test):
10385 * dbus/dbus-dict.h:
10386 Fix according to comments from Havoc.
10388 2003-03-06 Michael Meeks <michael@server.home>
10390 * configure.in: if we don't have kde-config, disable have_qt.
10392 2003-03-07 Anders Carlsson <andersca@codefactory.se>
10394 * dbus/Makefile.am:
10397 * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
10398 (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
10399 (dbus_dict_remove), (dbus_dict_get_value_type),
10400 (dbus_dict_get_keys), (dbus_dict_put_boolean),
10401 (dbus_dict_put_int32), (dbus_dict_put_uint32),
10402 (dbus_dict_put_double), (dbus_dict_put_string),
10403 (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
10404 (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
10405 (dbus_dict_put_string_array), (dbus_dict_get_boolean),
10406 (dbus_dict_get_int32), (dbus_dict_get_uint32),
10407 (dbus_dict_get_double), (dbus_dict_get_string),
10408 (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
10409 (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
10410 (dbus_dict_get_string_array), (_dbus_dict_test):
10411 * dbus/dbus-dict.h:
10412 Add DBusDict implementation
10414 * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
10415 * dbus/dbus-test.h:
10416 Add _dbus_dict_test
10418 2003-03-04 Havoc Pennington <hp@pobox.com>
10420 * test/data/auth/*: adapt to changes
10422 * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
10423 USERID_BASE64 and change USERNAME_BASE64 to put in username not
10426 * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
10427 more stuff from being in a context name, to make the protocol
10428 simpler to deal with
10430 * dbus/dbus-errors.c (dbus_error_has_name): new function
10431 (dbus_error_is_set): new function
10433 * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
10434 with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
10436 * dbus/dbus-connection.c (dbus_connection_flush): also read
10437 messages during a flush operation
10439 * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
10441 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10443 * configure.in: Check for gethostbyname on Solaris.
10445 * dbus/dbus-transport.c: (_dbus_transport_open):
10446 Remove duplicate "tcp" entry.
10448 * doc/dbus-specification.sgml:
10449 Clarify some things.
10451 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10453 * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
10454 * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
10455 (_dbus_keyring_test):
10456 * dbus/dbus-md5.c: (_dbus_md5_compute):
10457 * dbus/dbus-sha.c: (_dbus_sha_compute):
10460 2003-03-05 Anders Carlsson <andersca@codefactory.se>
10462 * README: Add some things.
10464 2003-03-04 Anders Carlsson <andersca@codefactory.se>
10466 * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
10467 after case DBUS_TYPE_BOOELAN.
10469 2003-03-02 Havoc Pennington <hp@pobox.com>
10471 * test/break-loader.c (randomly_set_extreme_ints): add test that
10472 sets really huge and small integers
10474 * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
10475 that length of boolean array fits in the string, and that
10476 string has room for boolean value in single-bool case.
10478 * dbus/dbus-message-builder.c (_dbus_message_data_load): add
10479 optional value to "ALIGN" command which is what to fill the
10482 * test/data/valid-messages/no-padding.message: add regression
10483 test for the message padding problem
10485 2003-03-02 Havoc Pennington <hp@pobox.com>
10487 * dbus/dbus-message.c (decode_header_data): fix to always init
10488 message_padding, from Benjamin Dauvergne
10490 2003-03-02 Havoc Pennington <hp@pobox.com>
10492 * configure.in: 0.5
10496 2003-03-01 Joe Shaw <joe@assbarn.com>
10498 * configure.in: Check for "struct cmsgcred" and try to access its
10499 members for BSD-like unices.
10501 * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
10502 _dbus_read_credentials_unix_socket().
10503 (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
10504 read() for reading the credential byte off the unix socket. Use
10505 struct cmsgcred on systems that support it.
10507 2003-02-27 Alexander Larsson <alexl@redhat.com>
10509 * glib/Makefile.am:
10511 Make gthreads-2.0 dependency optional. Don't build thread test if
10514 2003-02-27 Havoc Pennington <hp@pobox.com>
10516 * dbus/dbus-connection.c
10517 (dbus_connection_send_message_with_reply_and_block): fix doh!
10518 doh! doh! bug that resulted in never removing a reply from the
10519 queue, no wonder we called get_reply_serial so much ;-)
10521 * dbus/dbus-message.c (struct DBusMessage): cache reply serial
10522 and client serial instead of demarshaling them every time
10524 2003-02-27 Havoc Pennington <hp@pobox.com>
10526 * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
10527 more inlined, using dbus-string-private.h, speeds things up
10530 * dbus/dbus-string.c (_dbus_string_free): apply align offset
10531 when freeing the string
10532 (_dbus_string_steal_data): fix for align offset
10533 (undo_alignment): new function
10535 2003-02-26 Havoc Pennington <hp@redhat.com>
10537 All kinds of audit fixes from Owen, plus initial attempt to
10538 handle unaligned memory returned from malloc.
10540 * dbus/dbus-string.c (_dbus_string_init): clamp max length to
10541 leave room for align_offset and nul byte
10542 (fixup_alignment): function to track an align_offset and
10543 ensure real->str is aligned
10544 (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
10545 to allow a nul byte plus align offset
10546 (_dbus_string_lock): fix overflow issue
10547 (_dbus_string_init_const_len): add assertions on sanity of len,
10548 assign allocated to be ALLOCATION_PADDING larger than len
10549 (set_length): fixup the overflow handling
10550 (_dbus_string_get_data_len): fix overflow in assertion
10551 (open_gap): detect overflow in size of gap to be opened
10552 (_dbus_string_lengthen): add overflow check
10553 (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
10554 (_dbus_string_append): add overflow check
10555 (_dbus_string_append_unichar): overflow
10556 (_dbus_string_delete): fix overflow in assertion
10557 (_dbus_string_copy_len): overflow in assertion
10558 (_dbus_string_replace_len): overflows in assertions
10559 (_dbus_string_find): change to implement in terms of
10560 _dbus_string_find_to
10561 (_dbus_string_find_to): assorted fixage
10562 (_dbus_string_equal_c_str): assert c_str != NULL,
10563 fix logic so the function works
10564 (_dbus_string_ends_with_c_str): fix overflow thingy
10565 (_dbus_string_base64_encode): overflow fix
10566 (_dbus_string_validate_ascii): overflow
10567 (_dbus_string_validate_nul): overflow
10569 2003-02-26 Havoc Pennington <hp@redhat.com>
10571 * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
10573 2003-02-26 Alexander Larsson <alexl@redhat.com>
10576 Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
10578 * dbus/dbus-connection.c:
10579 * dbus/dbus-connection.h:
10580 Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
10581 Add dbus_connection_set_wakeup_main_function and use it when queueing
10582 incoming and outgoing messages.
10585 * dbus/dbus-dataslot.c:
10586 Threadsafe usage of DBusDataSlotAllocator
10588 * dbus/dbus-message.c: (dbus_message_get_args_iter):
10591 * dbus/dbus-server-unix.c:
10594 * glib/dbus-gmain.c:
10595 Implement the new wakeup functions for glib.
10597 * glib/Makefile.am:
10598 * glib/test-thread-client.c:
10599 * glib/test-thread-server.c:
10600 * glib/test-thread.h:
10601 Initial cut at some thread test code. Not really done yet.
10603 2003-02-26 Havoc Pennington <hp@pobox.com>
10605 * dbus/dbus-connection.c
10606 (dbus_connection_send_message_with_reply_and_block): fix crash
10607 where we ref'd the outgoing message instead of the returned reply
10609 * dbus/dbus-transport-unix.c (do_authentication): check read watch
10610 at the end of this function, so if we didn't need to read for
10611 authentication, we reinstall it for receiving messages
10613 * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
10614 a NULL sender for peer-to-peer case
10616 * dbus/dbus-transport-unix.c (check_read_watch): handle
10617 !authenticated case correctly
10619 * glib/dbus-gmain.c: add support for DBusServer
10621 * dbus/dbus-server.c: add data slot support
10623 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
10624 return values and handle errors
10626 * dbus/dbus-dataslot.c: factor out the data slot stuff from
10629 * Doxyfile.in (INPUT): add glib subdir
10631 * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
10632 setup_with_g_main instead of hookup_with_g_main; write docs
10634 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10636 * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
10637 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10638 * dbus/dbus-message.c: (dbus_message_append_boolean),
10639 (dbus_message_append_boolean_array),
10640 (dbus_message_get_args_valist), (_dbus_message_test):
10641 * dbus/dbus-message.h:
10642 * doc/dbus-specification.sgml:
10643 Various fixes as pointed out by Havoc.
10645 * test/data/invalid-messages/bad-boolean-array.message:
10646 * test/data/invalid-messages/bad-boolean.message:
10647 Add invalid boolean value test cases.
10649 2003-02-24 Anders Carlsson <andersca@codefactory.se>
10651 * dbus/dbus-internals.c: (_dbus_type_to_string):
10652 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
10653 (_dbus_marshal_validate_arg):
10654 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
10655 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10656 (dbus_message_append_boolean), (dbus_message_append_boolean_array),
10657 (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
10658 (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
10659 (dbus_message_iter_get_double),
10660 (dbus_message_iter_get_boolean_array), (message_iter_test):
10661 * dbus/dbus-message.h:
10662 * dbus/dbus-protocol.h:
10663 * doc/dbus-specification.sgml:
10664 * test/data/valid-messages/lots-of-arguments.message:
10665 Add support for boolean and boolean array types.
10667 2003-02-23 Havoc Pennington <hp@pobox.com>
10669 * dbus/dbus-keyring.c: finish most of this implementation and
10672 * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
10673 these barf if the error isn't cleared to NULL
10675 * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
10676 (_dbus_create_directory): new function
10678 * dbus/dbus-errors.c (dbus_set_error): fix warning
10680 * dbus/dbus-string.c (_dbus_string_hex_encode): new function
10681 (_dbus_string_hex_decode): new function
10682 (test_hex_roundtrip): test code
10684 * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
10686 * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
10688 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
10689 the save-to-temp/rename trick to atomically write the new file
10690 (_dbus_string_parse_uint): new function
10692 2003-02-22 Havoc Pennington <hp@pobox.com>
10694 * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
10696 2003-02-22 Havoc Pennington <hp@pobox.com>
10698 * dbus/dbus-message.c (dbus_message_iter_get_string_array):
10699 (dbus_message_iter_get_byte_array): Fix up doxygen warnings
10701 * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
10703 * dbus/test/data/sha-1: add US government test suite for SHA-1
10705 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10707 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
10708 Make string arrays NULL-terminated.
10710 * dbus/dbus-memory.c: (dbus_free_string_array):
10711 * dbus/dbus-memory.h:
10712 New function for freeing NULL-terminated string arrays.
10714 * dbus/dbus-message-builder.c: (append_quoted_string),
10715 (_dbus_message_data_load):
10716 Add support for array types.
10718 * dbus/dbus-message.c: (check_message_handling):
10719 Add more types as test cases.
10721 * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
10722 (_dbus_string_parse_double):
10723 Add the start offset to the end offset.
10725 * test/data/valid-messages/lots-of-arguments.message:
10726 New test message with lots of arguments.
10728 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10730 * dbus/dbus-message.c: (dbus_message_append_nil),
10731 (dbus_message_append_int32), (dbus_message_append_uint32),
10732 (dbus_message_append_double), (dbus_message_append_string),
10733 (dbus_message_append_int32_array),
10734 (dbus_message_append_uint32_array),
10735 (dbus_message_append_double_array),
10736 (dbus_message_append_byte_array),
10737 (dbus_message_append_string_array):
10738 Fix all out-of-memory handling in these functions.
10740 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10742 * dbus/dbus-message.c: (dbus_message_append_nil):
10745 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10747 * dbus/dbus-message.c: (dbus_message_append_args_valist),
10748 (dbus_message_append_nil), (dbus_message_append_int32_array),
10749 (dbus_message_append_uint32_array),
10750 (dbus_message_append_double_array),
10751 (dbus_message_append_byte_array),
10752 (dbus_message_append_string_array), (dbus_message_get_args_valist),
10753 (dbus_message_iter_get_int32_array),
10754 (dbus_message_iter_get_uint32_array),
10755 (dbus_message_iter_get_double_array),
10756 (dbus_message_iter_get_byte_array),
10757 (dbus_message_iter_get_string_array):
10759 * dbus/dbus-message.h:
10760 Add functions for appending and getting arrays.
10762 2003-02-21 Anders Carlsson <andersca@codefactory.se>
10764 * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
10765 element size at least 8 bytes, fixes mempool tests on
10768 2003-02-20 Alexander Larsson <alexl@redhat.com>
10770 * dbus/dbus-transport-unix.c (unix_do_iteration):
10771 Unlock the connection mutex during a blocking select call.
10772 Add todo about how we need a way to wake up the select.
10774 * dbus/dbus-connection-internal.h:
10775 * dbus/dbus-connection.c:
10776 Add _dbus_connection_lock and _dbus_connection_unlock.
10778 2003-02-19 Havoc Pennington <hp@pobox.com>
10780 * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
10781 Doxyfile.in, not Doxyfile
10783 * dbus/dbus-keyring.c: do some hacking on this
10785 * dbus/dbus-sysdeps.c (_dbus_delete_file): new
10787 * dbus/dbus-errors.c (dbus_set_error_const): do not call
10789 (dbus_set_error): remove dbus_error_init, check for message ==
10790 NULL *before* we sprintf into it, and add @todo about including
10791 system headers in this file
10793 * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
10795 * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
10797 * dbus/dbus-sysdeps.c (get_user_info): break this function out to
10798 get various bits of user information based on either username
10800 (_dbus_homedir_from_username): new function
10802 2003-02-19 Anders Carlsson <andersca@codefactory.se>
10805 Add check for nonposix getpwnam_r
10807 * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
10808 Align the pool element size to a sizeof (void *) boundary.
10810 * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
10811 (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
10812 General Solaris fixes.
10814 * test/data/valid-messages/simplest-manual.message:
10815 Explicitly state that we want little-endian packing.
10817 2003-02-19 Mikael Hallendal <micke@codefactory.se>
10819 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10821 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
10822 Added to create a transport connecting using a tcp/ip socket.
10824 * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
10825 to a tcp socket at given host and port.
10826 (_dbus_listen_tcp_socket): added to listen on tcp socket for given
10829 * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
10831 * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
10832 Added to create a server listening on a TCP/IP socket.
10834 2003-02-19 Havoc Pennington <hp@pobox.com>
10836 Throughout: mop up all the Doxygen warnings and undocumented
10839 * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
10840 to search any paths.
10842 * dbus/dbus-threads.c: move global mutex initializers to
10843 dbus-internals.h, multiple prototypes was confusing doxygen
10844 besides being kind of ugly
10846 * Doxyfile (PREDEFINED): have Doxygen define
10847 DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
10848 docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
10849 (do not abuse the feature! it's for stuff like the autogenerated
10850 macros in dbus-md5.c, not just for things you don't feel like
10853 2003-02-18 Havoc Pennington <hp@pobox.com>
10855 * dbus/dbus-string.c (_dbus_string_zero): new function
10857 * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
10858 wrap it in some dbus-friendly API
10860 * dbus/dbus-types.h: add 16-bit types
10862 2003-02-18 Joe Shaw <joe@assbarn.com>
10864 * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
10865 credentials from our currently running process.
10866 (get_word): Fix a buglet where we were copying the entire length
10867 instead of relative to our position.
10869 * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
10870 keys on the stack... it's 640k of data.
10872 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
10873 read the credentials byte off the socket, even if we don't have
10875 (_dbus_poll): Implement poll() using select() for systems which
10878 * glib/test-dbus-glib.c (main): Print out an error if no
10879 parameters are given.
10881 * test/data/auth/fallback.auth-script: Added. Tests that a client
10882 can fallback to a secondary auth mechanism if the first fails.
10884 2003-02-18 Havoc Pennington <hp@pobox.com>
10886 * AUTHORS: add Alex
10888 2003-02-17 Havoc Pennington <hp@pobox.com>
10890 * doc/dbus-specification.sgml: lots of cosmetic
10891 cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
10892 env variable to DBUS_BUS_ADDRESS, s/client/application/,
10893 s/server/bus/ (except in authentication section). Add a section
10894 "Message Bus Message Routing"
10896 2003-02-17 Anders Carlsson <andersca@codefactory.se.>
10902 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10904 * doc/dbus-specification.sgml:
10905 Specification updates.
10907 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10909 * bus/activation.c: (bus_activation_init), (child_setup),
10910 (bus_activation_activate_service):
10911 * bus/activation.h:
10912 * bus/main.c: (main):
10913 Set DBUS_ADDRESS environment variable.
10915 * dbus/dbus-errors.c: (dbus_set_error):
10916 Don't use va_copy since that's a C99 feature.
10918 * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
10919 (_dbus_spawn_async):
10920 * dbus/dbus-sysdeps.h:
10921 Add child_setup_func to _dbus_spawn_async.
10923 * doc/dbus-specification.sgml:
10924 Update specification.
10926 * test/spawn-test.c: (setup_func), (main):
10929 2003-02-17 Alexander Larsson <alexl@redhat.com>
10931 * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
10934 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10938 * doc/dbus-test-plan.sgml:
10939 Add test plan document.
10941 * test/Makefile.am:
10944 2003-02-17 Anders Carlsson <andersca@codefactory.se>
10946 * dbus/dbus-message.c: (decode_header_data),
10947 (_dbus_message_loader_return_buffer):
10948 Set the header padding amount when loading a message.
10950 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10952 * bus/dispatch.c: (send_one_message):
10953 Only send broadcast messages to registered connections.
10955 * dbus/dbus-message.c: (dbus_message_name_is):
10956 * dbus/dbus-message.h:
10957 New convenience function.
10959 * dbus/dbus-transport-debug.c: (do_reading):
10960 Only dispatch one message per run.
10962 * test/Makefile.am:
10963 * test/bus-test.c: (new_connection_callback), (die),
10964 (test_hello_client1_handler), (test_hello_client2_handler),
10965 (test_hello_replies), (main):
10967 * test/bus-test-loop.[ch]:
10970 2003-02-16 Havoc Pennington <hp@pobox.com>
10972 * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
10973 backward conditional
10975 2003-02-16 Alexander Larsson <alexl@redhat.com>
10977 * dbus/dbus-connection.c:
10978 Implement sent_message_with_reply. (with_reply_and block is still
10980 Made dispatch_message not lose message if OOM.
10982 * dbus/dbus-errors.h:
10983 Add NoReply error (for reply timeouts).
10985 2003-02-16 Alexander Larsson <alexl@redhat.com>
10987 * dbus/dbus-hash.c (_dbus_hash_table_unref):
10988 Actually free keys and values when destroying hashtable.
10990 2003-02-16 Anders Carlsson <andersca@codefactory.se>
10992 * dbus/dbus-auth.c: (client_try_next_mechanism):
10995 * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
10996 Return TRUE if there's no thread implementation around.
10998 * glib/dbus-gmain.c: (free_source),
10999 (dbus_connection_hookup_with_g_main):
11000 Make sure to remove the GSource when the connection is finalized.
11002 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11004 * bus/dispatch.c: (bus_dispatch_message_handler):
11005 * dbus/dbus-errors.h:
11006 Return an error if someone tries to send a message to a service
11007 that doesn't exist.
11009 2003-02-16 Anders Carlsson <andersca@codefactory.se>
11011 * bus/activation.c: (load_directory), (bus_activation_init),
11012 (bus_activation_activate_service):
11013 * bus/activation.h:
11015 (bus_driver_handle_activate_service), (bus_driver_handle_message):
11016 More work on the activation handling.
11018 * dbus/dbus-errors.h:
11019 Add some error messages
11021 * dbus/dbus-message.c: (dbus_message_new_error_reply):
11022 * dbus/dbus-message.h:
11023 New function that creates an error message.
11025 * dbus/dbus-protocol.h:
11026 Add ACTIVATE_SERVER message.
11028 * dbus/dbus-server-unix.c: (unix_handle_watch),
11029 (_dbus_server_new_for_domain_socket):
11030 Call _dbus_fd_set_close_on_exec.
11032 * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
11033 (_dbus_spawn_async), (_dbus_disable_sigpipe),
11034 (_dbus_fd_set_close_on_exec):
11035 * dbus/dbus-sysdeps.h:
11036 Add _dbus_fd_set_close_on exec function. Also add function that checks
11037 that all open fds are set to close-on-exec and warns otherwise.
11039 * dbus/dbus-transport-unix.c:
11040 (_dbus_transport_new_for_domain_socket):
11041 Call _dbus_fd_set_close_on_exec.
11043 2003-02-16 Havoc Pennington <hp@pobox.com>
11045 * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
11046 allow people to avoid setting SIGPIPE to SIG_IGN
11047 (_dbus_connection_new_for_transport): disable SIGPIPE unless
11048 we've been asked not to
11050 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11052 * dbus/dbus-list.c: (_dbus_list_append_link),
11053 (_dbus_list_prepend_link):
11054 * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
11058 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11061 * bus/activation.c: (bus_activation_entry_free),
11062 (add_desktop_file_entry), (load_directory), (bus_activation_init):
11063 * bus/activation.h:
11064 * bus/main.c: (main):
11065 Add simple activation support, doesn't work yet though.
11067 2003-02-15 Zack Rusin <zack@kde.org>
11069 * qt/dbus-qthread.cpp: small casting fix
11071 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11073 * dbus/dbus-errors.c: (dbus_set_error):
11074 * dbus/dbus-errors.h:
11075 Add a few errors and make dbus_set_error void.
11077 * dbus/dbus-sysdeps.c:
11078 (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
11079 (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
11080 * dbus/dbus-sysdeps.h:
11081 Add _dbus_spawn_async.
11083 * test/spawn-test.c: (main):
11084 Test for _dbus_spawn_async.
11086 2003-02-15 Anders Carlsson <andersca@codefactory.se>
11088 * dbus/dbus-internals.h:
11089 Fix build without tests.
11091 * dbus/dbus-list.c: (alloc_link):
11092 Fix a segfault when a malloc fails.
11094 * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
11095 (dbus_malloc0), (dbus_realloc):
11096 Add support for malloc debugging.
11098 2003-02-15 Alexander Larsson <alexl@redhat.com>
11100 * dbus/dbus-threads.c:
11101 * dbus/dbus-threads.h:
11102 Add condvars. Remove static mutext from API.
11103 Implement static mutexes by initializing them from threads_init.
11105 * glib/dbus-gthread.c:
11106 * qt/dbus-qthread.cpp:
11107 Update with the thread api changes.
11110 * dbus/dbus-list.c:
11111 * dbus/dbus-list.h:
11112 Turn StaticMutex into normal mutex + init function.
11113 Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
11114 _dbus_list_append_link, _dbus_list_prepend_link
11117 * dbus/dbus-sysdeps.c:
11118 * dbus/dbus-sysdeps.h:
11119 New type dbus_atomic_t, and new functions _dbus_atomic_inc,
11120 _dbus_atomic_dec. Only slow fallback implementation at the moment.
11122 * dbus/dbus-protocol.h:
11123 Add DBUS_MESSAGE_LOCAL_DISCONNECT define
11125 * dbus/dbus-message.c:
11126 Make ref/unref atomic.
11129 * dbus/dbus-connection-internal.h:
11130 * dbus/dbus-connection.c:
11131 * dbus/dbus-connection.h:
11133 Change _peek to _borrow,_return & _steal_borrowed.
11134 Change disconnect callback to event.
11135 Make dbus_connection_dispatch_messages reentrant.
11137 * dbus/dbus-transport.c:
11138 Don't ref the connection on calls to the transport
11141 * dbus/dbus-message-handler.c:
11144 * glib/dbus-gmain.c:
11145 Don't use peek_message anymore
11147 * test/Makefile.am:
11148 * test/debug-thread.c:
11149 * test/debug-thread.h:
11150 Simple thread implementation that asserts() on deadlocks in
11151 single-threaded code.
11154 (main) Call debug_threads_init.
11157 Use disconnect message instead of disconnect callback.
11159 * bus/connection.c:
11160 * bus/connection.h:
11161 Don't call dbus_connection_set_disconnect_function. Instead export
11162 bus_connection_disconnect.
11165 Call bus_connection_disconnect when we get a disconnected message.
11167 2003-02-15 Havoc Pennington <hp@pobox.com>
11169 * dbus/dbus-message.c (dbus_message_new): fool around with the
11172 2003-02-14 Havoc Pennington <hp@pobox.com>
11174 * dbus/dbus-mempool.c: fail if the debug functions so indicate
11176 * dbus/dbus-memory.c: fail if the debug functions indicate we
11179 * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
11180 (_dbus_decrement_fail_alloc_counter): debug functions to
11181 simulate memory allocation failures
11183 2003-02-14 Havoc Pennington <hp@pobox.com>
11185 * dbus/dbus-errors.h (struct DBusError): add a word of padding
11188 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11190 * bus/driver.c: (bus_driver_handle_hello):
11192 * bus/services.c: (bus_service_lookup):
11193 Reorder message sending so we get a more sane order.
11195 * test/bus-test.c: (message_handler):
11198 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11200 * bus/driver.c: (bus_driver_send_service_deleted),
11201 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11202 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11203 (bus_driver_send_welcome_message),
11204 (bus_driver_handle_list_services),
11205 (bus_driver_handle_acquire_service),
11206 (bus_driver_handle_service_exists):
11207 * dbus/dbus-bus.c: (dbus_bus_register_client),
11208 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11209 * dbus/dbus-errors.c: (dbus_result_to_string):
11210 * dbus/dbus-errors.h:
11211 * dbus/dbus-message.c: (dbus_message_append_args),
11212 (dbus_message_append_args_valist), (dbus_message_get_args),
11213 (dbus_message_get_args_valist), (dbus_message_get_args_iter),
11214 (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
11215 (dbus_message_iter_get_byte_array),
11216 (dbus_message_iter_get_string_array), (message_iter_test),
11217 (check_message_handling), (_dbus_message_test):
11218 * dbus/dbus-message.h:
11219 * test/bus-test.c: (main):
11220 Change fields to arguments in messages, so that they won't be
11221 confused with header fields.
11223 * glib/test-dbus-glib.c: (main):
11224 Remove append_fields from hello message.
11226 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11228 * dbus/dbus-errors.c:
11229 * dbus/dbus-message.c:
11230 * dbus/dbus-string.c:
11231 Documentation fixes.
11233 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11235 * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
11237 Implement support for timeouts in dbus-glib.
11239 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11241 * dbus/dbus-message-builder.c: (_dbus_message_data_load):
11242 * dbus/dbus-message.c: (process_test_subdir):
11243 * test/break-loader.c: (find_breaks_based_on):
11244 Plug some memory leaks.
11246 2003-02-13 Richard Hult <rhult@codefactory.se>
11248 * bus/main.c: Fix build.
11250 * dbus/dbus-errors.h:
11251 * dbus/dbus-errors.c: Fix copyright for Anders.
11253 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11258 * bus/connection.c: (bus_connection_foreach):
11261 * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
11262 (unescape_string), (new_section), (parse_section_start),
11263 (parse_key_value), (report_error), (bus_desktop_file_load),
11264 (bus_desktop_file_get_string):
11265 * bus/desktop-file.h:
11266 Use DBusError for error reporting.
11268 * bus/dispatch.c: (send_one_message),
11269 (bus_dispatch_message_handler):
11270 * bus/driver.c: (bus_driver_send_service_deleted),
11271 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11272 (bus_driver_send_service_acquired), (bus_driver_handle_hello),
11273 (bus_driver_send_welcome_message),
11274 (bus_driver_handle_list_services),
11275 (bus_driver_handle_acquire_service),
11276 (bus_driver_handle_service_exists):
11277 * bus/loop.c: (bus_loop_run):
11279 Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
11281 * bus/utils.c: (bus_wait_for_memory):
11283 New files with general utility functions.
11285 * dbus/dbus-internals.h:
11286 Remove _DBUS_HANDLE_OOM.
11288 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11290 * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
11291 (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
11292 * dbus/dbus-errors.h:
11293 Add DBusError structure.
11295 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11297 * test/data/valid-messages/standard-acquire-service.message:
11298 * test/data/valid-messages/standard-hello.message:
11299 * test/data/valid-messages/standard-list-services.message:
11300 * test/data/valid-messages/standard-service-exists.message:
11301 Add some standard messages.
11303 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11305 * bus/driver.c: (bus_driver_send_welcome_message),
11306 (bus_driver_handle_list_services),
11307 (bus_driver_handle_acquire_service),
11308 (bus_driver_handle_service_exists), (bus_driver_handle_message):
11309 Update for API changes in libdbus.
11311 * dbus/dbus-message.c: (dbus_message_new_reply):
11312 * dbus/dbus-message.h:
11313 Remove the name argument. The spec states that replies shouldn't
11316 2003-02-13 Anders Carlsson <andersca@codefactory.se>
11318 * bus/desktop-file.c: (parse_section_start), (parse_key_value),
11319 (report_error), (bus_desktop_file_load), (lookup_section),
11320 (lookup_line), (bus_desktop_file_get_raw),
11321 (bus_desktop_file_get_string):
11322 * bus/desktop-file.h:
11323 Some fixes, and new functions for getting a key value from a section.
11325 2003-02-13 Havoc Pennington <hp@pobox.com>
11327 * test/data/auth/fail-after-n-attempts.auth-script: new test
11329 * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
11332 2003-02-13 Havoc Pennington <hp@pobox.com>
11334 * dbus/dbus-auth.c (handle_server_data_external_mech): args to
11335 dbus_credentials_match were backward
11337 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
11338 NO_CREDENTIALS and ROOT_CREDENTIALS
11340 * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
11341 into here. Never process more commands after we've reached an
11342 end state; store further data as unused bytes.
11344 * test/data/auth/*: add more auth tests
11346 * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
11347 command to match exact string and EXPECT_UNUSED to match unused
11350 * test/Makefile.am (dist-hook): fix to dist all the test stuff
11352 2003-02-12 Havoc Pennington <hp@pobox.com>
11354 * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
11355 \r off of popped lines
11357 * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
11360 * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
11363 2003-02-12 Havoc Pennington <hp@pobox.com>
11365 * dbus/Makefile.am: remove break-loader from the build, since it
11368 * configure.in: add --enable-gcov to turn on coverage profiling
11369 flags and disable optimization
11371 2003-02-10 Havoc Pennington <hp@pobox.com>
11373 * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
11374 initial cut at test framework for DBusAuth from laptop.
11375 Doesn't quite work yet but it compiles and I need to get
11376 it off the 266mhz laptop. ;-)
11378 * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
11379 fix a memleak in error case
11381 2003-02-12 Anders Carlsson <andersca@codefactory.se>
11384 * bus/desktop-file.c:
11385 * bus/desktop-file.h:
11386 Add a desktop file parser.
11388 2003-02-11 Zack Rusin <zack@kde.org>
11390 * qt/message.[h|cpp]: sample implementation
11391 of the KDE wrapper for DBusMessage
11393 2003-02-09 Zack Rusin <zack@kde.org>
11395 * test/bus-test.c: make_it_compile
11396 * doc/dbus-specification.sgml: minimal semantic fix
11398 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11404 2003-02-06 Anders Carlsson <andersca@codefactory.se>
11406 * dbus/Makefile.am:
11407 * dbus/dbus-break-loader.c:
11408 * test/Makefile.am:
11409 * test/break-loader.c:
11410 Move dbus-break-loader to test/ and rename it to break-loader.
11412 2003-02-02 Havoc Pennington <hp@pobox.com>
11414 * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
11415 for code to manage cookies in your home directory
11417 * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
11419 * dbus/dbus-auth.c (get_state): impose a maximum number of tries
11420 to authenticate, then disconnect the client.
11422 2003-02-03 Alexander Larsson <alexl@redhat.com>
11424 * dbus/dbus-message.c (dbus_message_append_fields):
11427 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11429 * doc/dbus-specification.sgml:
11430 Update address format section.
11432 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11434 * test/Makefile.am:
11435 * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
11436 (message_handler), (new_connection_callback), (loop_quit),
11437 (loop_run), (main):
11440 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11442 * bus/driver.c: (bus_driver_handle_service_exists):
11443 Simplify the code a bit.
11445 * dbus/dbus-bus.c: (dbus_bus_service_exists):
11448 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11451 Add libdbus-daemon.la and link to it.
11453 2003-02-01 James Willcox <jwillcox@gnome.org>
11455 * bus/driver.c: (bus_driver_handle_own_service):
11456 Actually include the service reply code in the message.
11458 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11460 * bus/driver.c: (bus_driver_handle_service_exists):
11461 Don't unref the incoming message.
11463 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11465 * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
11467 2003-02-02 Anders Carlsson <andersca@codefactory.se>
11469 * dbus/dbus-server.c: (dbus_server_listen):
11470 * dbus/dbus-transport.c: (_dbus_transport_open):
11471 ifdef out the calls to the debug transport and server.
11473 2003-02-02 Alexander Larsson <alexl@redhat.com>
11475 * dbus/dbus-watch.c (dbus_watch_get_flags):
11476 Add note in the docs that ERROR or HANGUP won't be returned
11477 and are assumed always on.
11479 * glib/dbus-gmain.c (add_watch):
11480 Always add IO_ERR | IO_HUP
11482 * dbus/dbus-message.h:
11483 Add semicolon after dbus_message_iter_get_string_array().
11484 Makes qt code build again
11486 2003-02-01 Anders Carlsson <andersca@codefactory.se>
11488 * bus/driver.c: (create_unique_client_name),
11489 (bus_driver_handle_hello):
11490 Don't take a name, just use a numeric id to identify
11493 * dbus/Makefile.am:
11494 * dbus/dbus-bus.c: (dbus_bus_register_client),
11495 (dbus_bus_acquire_service), (dbus_bus_service_exists):
11497 Add new convenience functions for communicating with the bus.
11499 * dbus/dbus-message.h:
11501 * dbus/dbus-protocol.h:
11504 2003-02-01 Alexander Larsson <alexl@redhat.com>
11506 * dbus/dbus-message.c (dbus_message_append_fields):
11507 Add some more doc comments.
11509 2003-02-01 Havoc Pennington <hp@pobox.com>
11511 * dbus/dbus-break-loader.c (randomly_modify_length): change
11512 a 4-byte value in the message as if it were a length
11514 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
11515 execute bit on saved files
11517 2003-02-01 Havoc Pennington <hp@pobox.com>
11519 * dbus/dbus-break-loader.c (main): new program to find messages
11520 that break the loader.
11522 * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
11523 * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
11525 * dbus/dbus-string.c (_dbus_string_set_byte): new
11527 2003-01-31 Havoc Pennington <hp@pobox.com>
11529 * dbus/dbus-message.c: refactor the test code to be more general,
11530 in preparation for writing a "randomly permute test cases to
11531 try to break the loader" program.
11533 2003-01-31 Havoc Pennington <hp@pobox.com>
11535 * doc/dbus-specification.sgml: work on the specification
11537 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
11538 the protocol version of the message.
11540 * dbus/dbus-protocol.h: drop special _REPLY names, the spec
11541 no longer specifies that.
11542 (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
11545 * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
11546 "break" for DBUS_TYPE_NIL, remove @todo
11548 2003-01-31 Havoc Pennington <hp@pobox.com>
11550 * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
11551 just set_is_error/get_is_error as this is a commonly-used
11552 function, and write docs.
11554 2003-01-31 Anders Carlsson <andersca@codefactory.se>
11556 * dbus/dbus-address.c: (dbus_address_entry_free):
11557 Free key and value lists.
11559 * dbus/dbus-internals.c: (_dbus_type_to_string):
11560 Add the types we didn't have.
11562 * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
11563 (_dbus_marshal_validate_arg):
11566 * dbus/dbus-message.c: (dbus_message_set_sender):
11567 Remove todo about being able to set sender to NULL.
11569 (dbus_message_set_is_error_reply),
11570 (dbus_message_get_is_error_reply):
11571 * dbus/dbus-message.h:
11574 * dbus/dbus-protocol.h:
11575 Add error reply flag.
11577 * test/data/valid-messages/opposite-endian.message:
11578 Add NIL type to test.
11580 2003-01-31 Havoc Pennington <hp@pobox.com>
11582 * doc/dbus-specification.sgml: fully specify the header. Add
11583 flags and major protocol version, and change header/body len to
11586 * dbus/dbus-message-builder.c (append_saved_length): append length
11589 * dbus/dbus-message.c (dbus_message_create_header): change header
11590 length and body length to unsigned. Add the new fields from the
11592 (_dbus_message_loader_return_buffer): unsigned header/body len
11594 2003-01-30 Havoc Pennington <hp@pobox.com>
11596 * dbus/dbus-auth.c: rework to use only REJECTED, no
11599 * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
11600 use REJECTED, suggested by Mark McLoughlin
11602 2003-01-30 Havoc Pennington <hp@pobox.com>
11604 * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
11605 a better way to report errors here. e.g. "unix address lacks
11606 path" or something. also "no such file" when the path doesn't
11609 * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
11611 (dbus_parse_address): add @todo about documenting address format,
11612 and allowing , and ; to be escaped
11614 2003-01-30 Anders Carlsson <andersca@codefactory.se>
11616 * dbus/Makefile.am:
11617 Add dbus-address.[ch]
11619 * dbus/dbus-address.c: (dbus_address_entry_free),
11620 (dbus_address_entries_free), (create_entry),
11621 (dbus_address_entry_get_method), (dbus_address_entry_get_value),
11622 (dbus_parse_address), (_dbus_address_test):
11623 * dbus/dbus-address.h:
11624 New files for dealing with address parsing.
11626 * dbus/dbus-connection.c:
11627 Document timeout functions.
11629 * dbus/dbus-message.c:
11630 Document dbus_message_new_from_message.
11632 * dbus/dbus-server-debug.c:
11635 * dbus/dbus-server.c: (dbus_server_listen):
11636 Parse address and use correct server implementation.
11638 * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
11639 * dbus/dbus-string.h:
11640 New function with test.
11642 * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
11643 * dbus/dbus-test.h:
11646 * dbus/dbus-transport-debug.c:
11649 * dbus/dbus-transport.c: (_dbus_transport_open):
11650 Parse address and use correct transport implementation.
11652 2003-01-30 Havoc Pennington <hp@pobox.com>
11654 * dbus/dbus-message.c: use message->byte_order instead of
11655 DBUS_COMPILER_BYTE_ORDER throughout.
11656 (dbus_message_create_header): pad header to align the
11657 start of the body of the message to 8-byte boundary
11659 * dbus/dbus-marshal.h: make all the demarshalers take const
11660 DBusString arguments.
11662 * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
11663 validate message args here, so we don't have to do slow validation
11664 later, and so we catch bad messages as they are incoming. Also add
11665 better checks on header_len and body_len. Also fill in
11666 message->byte_order
11668 * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
11669 implemented properly)
11670 (_dbus_string_validate_nul): new function to check all-nul
11672 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
11673 get_arg_end_pos and remove all validation
11674 (_dbus_marshal_validate_arg): actually do validation here.
11676 2003-01-29 Havoc Pennington <hp@pobox.com>
11678 * dbus/dbus-message.c (check_message_handling): fix assertion
11679 failure on set_client_serial
11681 2003-01-28 Havoc Pennington <hp@pobox.com>
11683 * dbus/dbus-server-debug.c: Add doc section comments
11685 * dbus/dbus-transport-debug.c: add doc section comments
11687 2003-01-28 Havoc Pennington <hp@redhat.com>
11689 * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
11690 the reverse order from how I had it
11691 (_dbus_string_base64_encode): reverse encoding order. I was
11692 basically byteswapping everything during encoding.
11694 2003-01-28 Anders Carlsson <andersca@codefactory.se>
11696 * dbus/dbus-connection-internal.h:
11697 * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
11698 (_dbus_connection_remove_timeout):
11699 Add functions for adding and removing timeouts.
11701 * dbus/dbus-message.c: (dbus_message_new_from_message):
11702 Add new function that takes a message and creates an exact
11703 copy of it, but with the refcount set to 1.
11704 (check_message_handling):
11707 * dbus/dbus-server-protected.h:
11708 * dbus/dbus-server.c: (_dbus_server_init_base),
11709 (_dbus_server_finalize_base), (_dbus_server_add_timeout),
11710 (dbus_server_set_timeout_functions):
11711 (_dbus_server_remove_timeout):
11712 New functions so that a server can add and remove timeouts.
11714 (dbus_server_listen):
11715 Add commented out call to dbus_server_debug_new.
11717 * dbus/dbus-timeout.c: (_dbus_timeout_new):
11718 Actually set the handler, doh.
11720 * dbus/dbus-transport.c: (_dbus_transport_open):
11721 Add commented out call to dbus_transport_debug_client_new.
11723 * dbus/Makefile.am:
11724 Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
11726 2003-01-28 Havoc Pennington <hp@pobox.com>
11728 * dbus/dbus-message.c (check_message_handling): function to check
11729 on the loaded message, iterates over it etc.
11731 2003-01-28 Havoc Pennington <hp@pobox.com>
11733 * test/Makefile.am (dist-hook): fix make distdir
11735 * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
11737 2003-01-27 Havoc Pennington <hp@pobox.com>
11739 * dbus/dbus-mempool.c (time_for_size): replace printf with
11742 * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
11743 empty lines; fix the SAVE_LENGTH stuff to be
11744 START_LENGTH/END_LENGTH so it actually works; couple other
11747 * test/Makefile.am (dist-hook): add dist-hook for .message files
11749 * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
11750 can be constant or locked.
11751 (_dbus_string_free): allow freeing a const string as
11752 documented/intended
11754 * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
11756 * dbus/dbus-test-main.c (main): take an argument which is the
11757 directory containing test data
11759 * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
11760 argument to this and load all the messages in test/data/
11761 checking that they can be loaded or not loaded as appropriate.
11763 2003-01-27 Anders Carlsson <andersca@codefactory.se>
11765 * bus/dispatch.c: (bus_dispatch_message_handler):
11766 Dispatch messages sent to services.
11768 * bus/driver.c: (bus_driver_send_service_deleted),
11769 (bus_driver_send_service_created), (bus_driver_send_service_lost),
11770 (bus_driver_send_service_acquired):
11771 Add helper functions for sending service related messages.
11773 (bus_driver_send_welcome_message):
11774 Send HELLO_REPLY instead of WELCOME.
11776 (bus_driver_handle_list_services):
11777 Send LIST_SERVICES_REPLY instead of SERVICES.
11779 (bus_driver_handle_own_service),
11780 (bus_driver_handle_service_exists):
11781 New message handlers.
11783 (bus_driver_handle_message):
11784 Invoke new message handlers.
11786 (bus_driver_remove_connection):
11787 Don't remove any services here since that's done automatically
11788 by bus_service_remove_owner now.
11791 New function signatures.
11793 * bus/services.c: (bus_service_add_owner):
11794 Send ServiceAcquired message if we're the only primary owner.
11796 (bus_service_remove_owner):
11797 Send ServiceAcquired/ServiceLost messages.
11799 (bus_service_set_prohibit_replacement),
11800 (bus_service_get_prohibit_replacement):
11801 Functions for setting prohibit replacement.
11803 (bus_service_has_owner):
11804 New function that checks if a connection is in the owner queue of
11808 Add new function signatures.
11810 * dbus/dbus-list.c: (_dbus_list_test):
11811 Add tests for _dbus_list_remove_last and traversing the list backwards.
11813 * dbus/dbus-list.h:
11814 Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
11815 go any further, so return NULL then.
11817 * dbus/dbus-protocol.h:
11818 Add new messages, service flags and service replies.
11820 2003-01-26 Havoc Pennington <hp@pobox.com>
11822 * dbus/dbus-message-builder.c: implement, completely untested.
11824 * test/data/*: add data to be used in testing.
11825 ".message" files are our simple loadable text format.
11826 ".message-raw" will be binary dumps of messages.
11828 * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
11830 2003-01-26 Havoc Pennington <hp@pobox.com>
11832 * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
11834 * dbus/dbus-errors.c (dbus_result_to_string): add
11837 * dbus/dbus-message-builder.c: new file, will contain code to load
11838 up messages from files. Not implemented yet.
11840 2003-01-26 Havoc Pennington <hp@pobox.com>
11842 * dbus/dbus-message.c (dbus_message_set_sender): support deleting
11843 the sender by setting to NULL
11845 2003-01-26 Havoc Pennington <hp@pobox.com>
11847 The unit tests pass, but otherwise untested. If it breaks, the
11848 tests should have been better. ;-)
11850 * bus/driver.c (bus_driver_handle_hello): return if we disconnect
11853 * dbus/dbus-message.c: redo everything so we maintain
11854 message->header as the only copy of the various fields.
11855 This avoids the possibility of out-of-memory in some cases,
11856 for example dbus_message_lock() can't run out of memory anymore,
11857 and avoids extra copying. Figured I may as well go ahead and do
11858 this since it was busted for dbus_message_lock to not return
11859 failure on OOM, and dbus_message_write_header was totally
11860 unchecked for OOM. Also fixed some random other bugs.
11862 * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
11863 that strings are nul-terminated. Also, end_pos can be equal
11864 to string length just not greater than, I think.
11865 (_dbus_marshal_set_int32): new function
11866 (_dbus_marshal_set_uint32): new function
11867 (_dbus_marshal_set_string): new function
11869 * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
11870 a warning, init timeout_list to NULL
11871 (dbus_connection_send_message): don't use uninitialized variable
11874 * dbus/dbus-string.c (_dbus_string_replace_len): new function
11876 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11878 * bus/driver.c: (bus_driver_handle_hello),
11879 (bus_driver_send_welcome_message):
11882 2003-01-26 Anders Carlsson <andersca@codefactory.se>
11884 * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
11885 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
11886 (dbus_connection_unref):
11887 * dbus/dbus-marshal.c: (_dbus_marshal_test):
11888 * dbus/dbus-message.c: (dbus_message_unref),
11891 (dbus_message_get_fields):
11892 Remove debugging printout.
11894 (_dbus_message_loader_return_buffer):
11895 Don't store the header string.
11897 (_dbus_message_test):
11900 2003-01-26 Richard Hult <rhult@codefactory.se>
11902 * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
11903 the file descriptor list, since it can change under us.
11905 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11907 * glib/dbus-gmain.c: (dbus_connection_prepare),
11908 (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
11909 (remove_watch), (dbus_connection_hookup_with_g_main):
11910 Rewrite the glib handling to use its own GSource instead of a
11911 GIOChannel so we can catch messages put in the queue while waiting
11914 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11917 * bus/connection.c: (connection_disconnect_handler),
11918 (connection_watch_callback), (bus_connection_setup):
11919 * bus/dispatch.c: (send_one_message),
11920 (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
11921 (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
11923 * bus/driver.c: (bus_driver_send_service_deleted),
11924 (bus_driver_send_service_created), (bus_driver_handle_hello),
11925 (bus_driver_send_welcome_message),
11926 (bus_driver_handle_list_services), (bus_driver_remove_connection),
11927 (bus_driver_handle_message):
11929 Refactor code, put the message dispatching in its own file. Use
11930 _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
11933 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11935 * dbus/dbus-internals.h:
11936 Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
11938 * dbus/dbus-message.c: (dbus_message_get_sender):
11939 * dbus/dbus-message.h:
11940 Implement dbus_message_get_sender.
11942 * dbus/dbus-protocol.h:
11943 Add message and service defines.
11945 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11947 * dbus/dbus-connection.c: (dbus_connection_send_message):
11948 * dbus/dbus-message-internal.h:
11949 * dbus/dbus-message.c: (_dbus_message_get_client_serial),
11950 (dbus_message_write_header):
11951 Remove _dbus_messag_unlock and don't set the client serial on a
11952 message if one already exists.
11954 2003-01-24 Havoc Pennington <hp@pobox.com>
11956 * dbus/dbus-list.c (alloc_link): put a thread lock on the global
11959 * bus/driver.c (bus_driver_handle_list_services): fix a leak
11962 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11964 * dbus/dbus-list.c: (alloc_link), (free_link):
11965 Use a memory pool for the links.
11967 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11969 * bus/connection.c: (bus_connection_foreach):
11970 * bus/connection.h:
11971 Add new bus_connection_foreach function.
11973 * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
11974 Add function that broadcasts a message to all clients.
11976 (bus_driver_send_service_created), (bus_driver_handle_hello),
11977 (bus_driver_send_welcome_message),
11978 (bus_driver_handle_list_services), (bus_driver_message_handler):
11979 Implement functions that take care of listing services, and notifying
11980 clients when new services are created.
11982 * bus/services.c: (bus_services_list):
11984 Add new function that returns an array of strings with the currently
11985 registered services.
11987 * glib/dbus-glib.h:
11988 * glib/dbus-gmain.c:
11989 Update copyright year.
11991 2003-01-25 Anders Carlsson <andersca@codefactory.se>
11993 * dbus/dbus-connection.c: (dbus_connection_send_message):
11994 Unlock the message in case it was sent earlier.
11996 (dbus_connection_send_message_with_reply_and_block):
11997 Remove the reply message from the list.
11999 * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
12000 Set array_len and new_pos correctly.
12002 (_dbus_marshal_test):
12003 Remove debug output.
12005 * dbus/dbus-message-internal.h:
12006 * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
12007 New function that returns the reply serial.
12009 (_dbus_message_unlock):
12010 New function that unlocks a message and resets its header.
12012 (dbus_message_append_string_array),
12013 (dbus_message_get_fields_valist),
12014 (dbus_message_iter_get_field_type),
12015 (dbus_message_iter_get_string_array),
12016 (dbus_message_get_fields),
12017 (dbus_message_append_fields_valist):
12018 Handle string arrays.
12020 (dbus_message_set_sender):
12021 Make this function public since the bus daemon needs it.
12023 (decode_header_data):
12024 Set the reply serial to -1 initially.
12026 * dbus/dbus-message.h:
12027 Add dbus_message_set_sender.
12029 2003-01-24 Havoc Pennington <hp@pobox.com>
12031 * doc/dbus-specification.sgml: add some stuff
12033 2003-01-22 Havoc Pennington <hp@pobox.com>
12035 * doc/dbus-specification.sgml: Start to document the protocol.
12037 2003-01-22 Havoc Pennington <hp@pobox.com>
12039 * dbus/dbus-connection.c
12040 (dbus_connection_send_message_with_reply_and_block): add some @todo
12042 * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
12044 2003-01-21 Havoc Pennington <hp@pobox.com>
12046 (patch untested because can't compile)
12048 * bus/driver.c (create_unique_client_name): make this function
12049 never recycle client names. Also, caller should initialize
12052 * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
12054 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12056 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12057 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12058 (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
12059 (_dbus_marshal_double_array), (_dbus_marshal_string_array),
12060 (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
12061 (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
12062 (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
12063 * dbus/dbus-marshal.h:
12064 * dbus/dbus-protocol.h:
12065 Add support for marshalling and demarshalling integer, double
12068 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12073 * bus/connection.c: (connection_disconnect_handler):
12074 Remove the connection from the bus driver's list.
12076 (connection_watch_callback): Dispatch messages.
12078 (free_connection_data): Free connection name.
12080 (bus_connection_setup): Add connection to the bus driver's list.
12081 (bus_connection_remove_owned_service):
12082 (bus_connection_set_name), (bus_connection_get_name):
12083 Add functions for setting and getting the connection's name.
12085 * bus/connection.h:
12086 Add function headers.
12088 * bus/driver.c: (create_unique_client_name),
12089 (bus_driver_handle_hello_message),
12090 (bus_driver_send_welcome_message), (bus_driver_message_handler),
12091 (bus_driver_add_connection), (bus_driver_remove_connection):
12094 * bus/services.c: (bus_service_free):
12096 New file that handles communication and registreation with the bus
12099 2003-01-21 Anders Carlsson <andersca@codefactory.se>
12101 * dbus/dbus-connection.c: (dbus_connection_send_message):
12102 Add a new client_serial parameter.
12104 (dbus_connection_send_message_with_reply):
12105 Remove a @todo since we've implemented the blocking function.
12107 (dbus_connection_send_message_with_reply_and_block):
12108 New function that sends a message and waits for a reply and
12109 then returns the reply.
12111 * dbus/dbus-connection.h:
12114 * dbus/dbus-errors.c: (dbus_result_to_string):
12115 * dbus/dbus-errors.h:
12116 Add new DBUS_RESULT.
12118 * dbus/dbus-message-internal.h:
12119 * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
12120 (_dbus_message_set_sender), (dbus_message_write_header),
12121 (dbus_message_new_reply), (decode_header_data),
12122 (_dbus_message_loader_return_buffer), (_dbus_message_test):
12123 * dbus/dbus-message.h:
12124 Add new functions that set the reply serial and sender.
12125 Also marshal and demarshal them correctly and add test.
12127 * dbus/dbus-protocol.h:
12128 Add new DBUS_MESSAGE_TYPE_SENDER.
12130 * glib/dbus-glib.h:
12131 * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
12132 (add_watch), (remove_watch), (add_timeout), (remove_timeout),
12133 (dbus_connection_hookup_with_g_main):
12134 * glib/test-dbus-glib.c: (main):
12135 Rewrite to use GIOChannel and remove the GSource crack.
12137 * test/echo-client.c: (main):
12138 * test/watch.c: (check_messages):
12139 Update for changed APIs
12141 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12143 * dbus/Makefile.am: Add dbus-timeout.[cħ]
12145 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
12146 Create a DBusTimeoutList.
12147 (dbus_connection_set_timeout_functions): Add new function to
12148 set timeout callbacks
12150 * dbus/dbus-connection.h: Add public DBusTimeout API.
12152 * dbus/dbus-message.c: (dbus_message_get_service):
12153 * dbus/dbus-message.h: New function.
12155 * dbus/dbus-server.c: Fix small doc typo.
12157 * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
12159 2003-01-19 Anders Carlsson <andersca@codefactory.se>
12161 * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
12162 of the string, just as long as specified.
12164 2003-01-19 Havoc Pennington <hp@pobox.com>
12166 * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
12169 * dbus/dbus-server.c (dbus_server_set_max_connections)
12170 (dbus_server_get_max_connections, dbus_server_get_n_connections):
12171 keep track of current number of connections, and add API for
12172 setting a max (but haven't implemented enforcing the max yet)
12174 2003-01-18 Havoc Pennington <hp@pobox.com>
12176 * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
12177 reading/writing if read_watch != NULL or write_watch != NULL.
12179 * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
12180 the message loader code to actually load message->header and
12181 message->body into the newly-created message.
12183 * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
12186 * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
12187 (dbus_connection_get_max_message_size)
12188 (dbus_connection_set_max_live_messages_size)
12189 (dbus_connection_get_max_live_messages_size): implement some
12190 resource limitation functions
12192 * dbus/dbus-resources.c: new file implementing some of the
12193 resource limits stuff
12195 * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
12196 missing docs, add @todo to handle OOM etc.
12198 * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
12201 2003-01-18 Havoc Pennington <hp@pobox.com>
12203 * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
12204 connection if it hasn't been already.
12206 * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
12207 replace with DisconnectFunction.
12209 2003-01-18 Havoc Pennington <hp@pobox.com>
12211 Building --disable-verbose-mode --disable-asserts --disable-tests
12212 cuts the library from 112K to 45K or so
12214 * configure.in: check for varargs macro support,
12215 add --enable-verbose-mode, --enable-asserts.
12217 * dbus/dbus-internals.h (_dbus_assert): support
12218 DBUS_DISABLE_ASSERT
12219 (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
12221 2003-01-18 Havoc Pennington <hp@pobox.com>
12223 * dbus/dbus-test.c: include config.h so that tests actually run
12225 * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
12226 so the failure mode when that assumption fails will be plenty
12229 2003-01-18 Havoc Pennington <hp@pobox.com>
12231 * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
12233 * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
12236 * test/Makefile.am: don't use special variable "TESTS" for echo-*
12237 since we don't want to use those in make check
12239 2003-01-15 Havoc Pennington <hp@redhat.com>
12245 2003-01-15 Havoc Pennington <hp@redhat.com>
12247 * test/Makefile.am: fix so that test source code ends up in the
12248 distribution on make distcheck
12250 2003-01-15 Havoc Pennington <hp@redhat.com>
12256 2003-01-15 Havoc Pennington <hp@redhat.com>
12258 * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
12259 fix build when --disable-tests
12261 * Makefile.am (EXTRA_DIST): put HACKING in here
12263 * HACKING: document procedure for making a tarball release.
12265 2003-01-14 Anders Carlsson <andersca@codefactory.se>
12267 * bus/connection.c: (connection_error_handler),
12268 (bus_connection_setup):
12269 * bus/main.c: (main):
12270 Make sure that the DBusConnectionData struct is NULLed
12271 out to prevent a segfault.
12273 * dbus/dbus-errors.c: (dbus_result_to_string):
12274 * dbus/dbus-errors.h:
12275 * dbus/dbus-message.c: (dbus_message_get_fields),
12276 (dbus_message_get_fields_valist), (_dbus_message_test):
12277 * dbus/dbus-message.h:
12278 Make dbus_message_get_fields return a result code so we can
12279 track invalid fields as well as oom.
12281 2003-01-11 Havoc Pennington <hp@pobox.com>
12283 * configure.in: change --enable-test/--enable-ansi action-if-given
12284 to enable_foo=$enableval instead of enable_foo=yes
12286 2003-01-08 Havoc Pennington <hp@pobox.com>
12288 * dbus/dbus-string.c (_dbus_string_align_length): new function
12290 * dbus/dbus-test-main.c: move main() for test app here
12292 (dbus_internal_symbol_do_not_use_run_tests): we have to export a
12293 symbol to run tests, because dbus-test isn't in the main
12296 Code review nitpicks.
12298 * dbus/dbus-message.c (dbus_message_write_header): add newlines
12299 for people with narrow emacs ;-). Assert client_serial was filled
12300 in. Assert message->name != NULL.
12301 (dbus_message_append_fields): have "first_field_type" arg separate
12302 from va list, needed for C++ binding that also uses varargs IIRC
12303 and helps with type safety
12304 (dbus_message_new): add @todo about using DBusString to store
12305 service/name internally
12306 (dbus_message_new): don't leak ->service and ->name on OOM later
12308 (dbus_message_unref): free the service name
12309 (dbus_message_get_fields): same change to varargs
12310 i.e. first_field_type
12311 (_dbus_message_loader_return_buffer): assert that the message data
12312 is aligned (if not it's a bug in our code). Put in verbose griping
12313 about why we set corrupted = TRUE.
12314 (decode_header_data): add FIXME that char* is evil. Was going to
12315 add FIXME about evil locale-specific string.h strncmp, but just
12316 switched to wacky string-as-uint32 optimization. Move check for
12317 "no room for field name" above get_const_data_len() to avoid
12318 assertion failure in get_const_data_len if we have trailing 2
12319 bytes or the like. Check for service and name fields being
12320 provided twice. Don't leak service/name on error. Require field
12321 names to be aligned to 4 bytes.
12323 * dbus/dbus-marshal.c: move byte swap stuff to header
12324 (_dbus_pack_int32): uscore-prefix
12325 (_dbus_unpack_int32): uscore-prefix
12326 (_dbus_unpack_uint32): export
12327 (_dbus_demarshal_string): add @todo complaining about use of
12329 (_dbus_marshal_get_field_end_pos): add @todo about bad error
12330 handling allowing corrupt data to go unchecked
12332 2003-01-08 Havoc Pennington <hp@redhat.com>
12334 * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
12335 to the select() as needed for authentication. (should be using
12336 _dbus_poll() not select, but for another day)
12338 * dbus/dbus.h: include dbus/dbus-protocol.h
12340 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12342 * dbus/Makefile.am (dbusinclude_HEADERS): Install
12345 2003-01-08 Anders Carlsson <andersca@codefactory.se>
12347 * dbus/dbus-internals.c: (_dbus_type_to_string):
12348 New function that returns a string describing a type.
12350 * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
12351 * dbus/dbus-marshal.h:
12352 * dbus/dbus-message.c: (dbus_message_get_fields_valist),
12353 (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
12354 (dbus_message_iter_get_byte_array):
12355 * dbus/dbus-message.h:
12356 Add new convenience functions for appending and getting message fields.
12357 Also add demarshalling routines for byte arrays.
12359 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12361 * dbus/dbus-connection-internal.h:
12362 * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
12363 (_dbus_connection_get_next_client_serial),
12364 (dbus_connection_send_message):
12365 * dbus/dbus-internals.h:
12366 * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
12367 (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
12368 (_dbus_marshal_uint32), (_dbus_demarshal_double),
12369 (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
12370 (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
12371 (_dbus_verbose_bytes), (_dbus_marshal_test):
12372 * dbus/dbus-marshal.h:
12373 * dbus/dbus-message-internal.h:
12374 * dbus/dbus-message.c: (_dbus_message_set_client_serial),
12375 (dbus_message_write_header), (_dbus_message_lock),
12376 (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
12377 (dbus_message_get_name), (dbus_message_append_int32),
12378 (dbus_message_append_uint32), (dbus_message_append_double),
12379 (dbus_message_append_string), (dbus_message_append_byte_array),
12380 (dbus_message_get_fields_iter), (dbus_message_iter_ref),
12381 (dbus_message_iter_unref), (dbus_message_iter_has_next),
12382 (dbus_message_iter_next), (dbus_message_iter_get_field_type),
12383 (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
12384 (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
12385 (decode_header_data), (_dbus_message_loader_return_buffer),
12386 (message_iter_test), (_dbus_message_test):
12387 * dbus/dbus-message.h:
12388 * dbus/dbus-protocol.h:
12389 * dbus/dbus-test.c: (main):
12390 * dbus/dbus-test.h:
12391 * glib/test-dbus-glib.c: (message_handler), (main):
12392 * test/echo-client.c: (main):
12393 * test/watch.c: (check_messages):
12394 Make messages sendable and receivable for real.
12396 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12398 * dbus/dbus-marshal.c: (_dbus_marshal_double),
12399 (_dbus_marshal_string), (_dbus_marshal_byte_array):
12400 * dbus/dbus-message.c: (dbus_message_append_int32),
12401 (dbus_message_append_uint32), (dbus_message_append_double),
12402 (dbus_message_append_string), (dbus_message_append_byte_array):
12403 Handle OOM restoration.
12405 2003-01-07 Anders Carlsson <andersca@codefactory.se>
12407 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12408 (_dbus_demarshal_string), (_dbus_marshal_test):
12409 * dbus/dbus-marshal.h:
12410 * dbus/dbus-message.c: (dbus_message_get_name),
12411 Document these functions.
12413 (dbus_message_append_int32), (dbus_message_append_uint32),
12414 (dbus_message_append_double), (dbus_message_append_string),
12415 (dbus_message_append_byte_array):
12416 * dbus/dbus-message.h:
12417 Add functions for adding message fields of different types.
12419 * dbus/dbus-protocol.h:
12420 Add the different types.
12422 2003-01-05 Havoc Pennington <hp@pobox.com>
12424 * bus/connection.c: implement routines for handling connections,
12425 first thing is keeping a list of owned services on each connection
12426 and setting up watches etc.
12428 * bus/services.c: implement a mapping from service names to lists
12431 * dbus/dbus-hash.c: add DBUS_HASH_POINTER
12433 * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
12434 to use static mutexes for global data
12436 * dbus/dbus-connection.c (dbus_connection_set_data): add new
12437 collection of functions to set/get application-specific data
12438 on the DBusConnection.
12440 2003-01-04 Havoc Pennington <hp@pobox.com>
12442 * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
12443 (_dbus_poll): new function
12445 * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
12448 * bus/loop.c: initial code for the daemon main loop
12450 2003-01-04 Havoc Pennington <hp@pobox.com>
12452 * test/watch.c (error_handler): make it safe if the error handler
12453 is called multiple times (if we s/error handler/disconnect
12454 handler/ we should just guarantee it's called only once)
12456 * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
12457 error handler on disconnect (it's quite possible we should
12458 just change the error handler to a "disconnect handler," I'm
12459 not sure we have any other meaningful errors)
12461 * configure.in: check for getpwnam_r
12463 * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
12464 dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
12465 mechanism as in SASL spec, using socket credentials
12467 * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
12468 (_dbus_send_credentials_unix_socket): new function
12470 * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
12472 (_dbus_write): only check errno if <0 returned
12473 (_dbus_write_two): ditto
12475 2003-01-02 Anders Carlsson <andersca@codefactory.se>
12477 * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
12478 (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
12479 (_dbus_marshal_test):
12480 * dbus/dbus-marshal.h:
12481 Add _dbus_marshal_byte_array and rename _dbus_marshal_string
12482 to _dbus_marshal_utf8_string. Also fix some tests.
12484 2002-12-28 Harri Porten <porten@kde.org>
12486 * configure.in: added check for C++ compiler and a very cheesy
12487 check for the Qt integration
12489 * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
12491 * qt/Makefile.am: added
12493 * qt/.cvsignore: added
12495 * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
12496 latter, added #ifdef QT_THREAD_SUPPORT guard.
12498 * dbus/Makefile.am: added missing headers for make dist
12500 2002-12-28 Kristian Rietveld <kris@gtk.org>
12502 * dbus/Makefile.am: fixup export-symbols-regex.
12504 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12506 * acinclude.m4: Add this file and put the
12507 PKG_CHECK_MODULE macro in it.
12509 2002-12-27 Anders Carlsson <andersca@codefactory.se>
12511 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12512 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12513 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12514 (_dbus_marshal_test):
12515 Make the demarshalling routines align the pos argument.
12516 Add string marshalling tests and fix the obvious bugs
12519 2002-12-26 Havoc Pennington <hp@pobox.com>
12521 * dbus/dbus-auth.c: fixes fixes fixes
12523 * dbus/dbus-transport-unix.c: wire up support for
12524 encoding/decoding data on the wire
12526 * dbus/dbus-auth.c (_dbus_auth_encode_data)
12527 (_dbus_auth_decode_data): append to target string
12528 instead of nuking it.
12530 2002-12-26 Havoc Pennington <hp@pobox.com>
12532 * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
12533 WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
12536 * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
12537 avoid swap_bytes() overhead (ignoring possible assembly stuff for
12538 now). Main point is because I wanted unpack_uint32 to implement
12539 _dbus_verbose_bytes
12540 (_dbus_verbose_bytes): new function
12542 * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
12544 * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
12545 mechanism to handle a corrupt message stream
12546 (_dbus_message_loader_new): fix preallocation to only prealloc,
12549 * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
12550 (_dbus_string_test): enhance tests for copy/move and fix the
12553 * dbus/dbus-transport-unix.c: Hold references in more places to
12554 avoid reentrancy problems
12556 * dbus/dbus-transport.c: ditto
12558 * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
12559 leak reference count in no-message case
12561 * test/watch.c (do_mainloop): handle adding/removing watches
12562 during iteration over the watches. Also, ref the connection/server
12563 stored on a watch, so we don't try to mangle a destroyed one.
12565 * dbus/dbus-transport-unix.c (do_authentication): perform
12568 * dbus/dbus-auth.c (get_state): add a state
12569 AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
12570 (_dbus_auth_get_unused_bytes): append the unused bytes
12571 to the passed in string, rather than prepend
12573 * dbus/dbus-transport.c (_dbus_transport_init_base): create
12574 the auth conversation DBusAuth
12576 * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
12577 (_dbus_transport_new_for_domain_socket): when creating a
12578 transport, pass in whether it's a client-side or server-side
12579 transport so we know which DBusAuth to create
12581 2002-12-03 Havoc Pennington <hp@pobox.com>
12583 * dbus/dbus-transport-unix.c (unix_finalize): finalize base
12584 _after_ finalizing the derived members
12585 (unix_connection_set): unref watch if we fail to add it
12587 * dbus/dbus-connection.c (dbus_connection_unref): delete the
12588 transport first, so that the connection owned by the
12589 transport will be valid as the transport finalizes.
12591 * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
12592 if necessary, and remove watches from the connection.
12594 * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
12596 2002-12-26 Anders Carlsson <andersca@codefactory.se>
12598 * dbus/dbus-marshal.c: (_dbus_marshal_string),
12599 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12600 (_dbus_demarshal_uint32), (_dbus_demarshal_string),
12601 (_dbus_marshal_test):
12602 * dbus/dbus-marshal.h:
12603 Add string marshal functions and have the demarshal functions
12604 return the new position.
12606 2002-12-25 Havoc Pennington <hp@pobox.com>
12608 * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
12609 it is a simple protocol that just maps directly to SASL.
12611 * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
12612 initial implementation, not actually used yet.
12614 * dbus/dbus-string.c (_dbus_string_find): new function
12615 (_dbus_string_equal): new function
12616 (_dbus_string_base64_encode): new function
12617 (_dbus_string_base64_decode): new function
12619 2002-12-25 Anders Carlsson <andersca@codefactory.se>
12621 * dbus/Makefile.am:
12622 * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
12623 (_dbus_marshal_int32), (_dbus_marshal_uint32),
12624 (_dbus_demarshal_double), (_dbus_demarshal_int32),
12625 (_dbus_demarshal_uint32), (_dbus_marshal_test):
12626 * dbus/dbus-marshal.h:
12627 * dbus/dbus-protocol.h:
12628 * dbus/dbus-test.c: (main):
12629 * dbus/dbus-test.h:
12630 Add un-optimized marshalling/demarshalling routines.
12632 2002-12-25 Harri Porten <porten@kde.org>
12634 * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
12636 2002-12-24 Zack Rusin <zack@kde.org>
12638 * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
12639 * qt/dbus-qt.h: skeleton with two sample implemenatation of the
12642 2002-12-24 Havoc Pennington <hp@pobox.com>
12644 * glib/dbus-gthread.c: fix include
12646 * glib/dbus-glib.h: rename DBusMessageHandler for now.
12647 I think glib API needs to change, though, as you don't
12648 want to use DBusMessageFunction, you want to use the
12649 DBusMessageHandler object. Probably
12650 dbus_connection_open_with_g_main_loop()
12651 and dbus_connection_setup_g_main_loop() or something like that
12652 (but think of better names...) that just create a connection
12653 that has watch/timeout functions etc. already set up.
12655 * dbus/dbus-connection.c
12656 (dbus_connection_send_message_with_reply): new function just to
12657 show how the message handler helps us deal with replies.
12659 * dbus/dbus-list.c (_dbus_list_remove_last): new function
12661 * dbus/dbus-string.c (_dbus_string_test): free a string that
12664 * dbus/dbus-hash.c: use memory pools for the hash entries
12665 (rebuild_table): be more paranoid about overflow, and
12666 shrink table when we can
12667 (_dbus_hash_test): reduce number of sprintfs and write
12668 valid C89. Add tests for case where we grow and then
12669 shrink the hash table.
12671 * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
12673 * dbus/dbus-connection.c (dbus_connection_register_handler)
12674 (dbus_connection_unregister_handler): new functions
12676 * dbus/dbus-message.c (dbus_message_get_name): new
12678 * dbus/dbus-list.c: fix docs typo
12680 * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
12681 an object representing a handler for messages.
12683 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12685 * glib/dbus-glib.h:
12686 * glib/dbus-gthread.c: (dbus_gthread_init):
12687 Don't use the gdbus prefix for public functions.
12689 2002-12-16 Anders Carlsson <andersca@codefactory.se>
12693 Add GLib checks and fixup .pc files
12695 * glib/Makefile.am:
12696 * glib/dbus-glib.h:
12697 * glib/dbus-gmain.c: (gdbus_connection_prepare),
12698 (gdbus_connection_check), (gdbus_connection_dispatch),
12699 (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
12700 (dbus_connection_gsource_new):
12701 * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
12702 (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
12703 * glib/test-dbus-glib.c: (message_handler), (main):
12706 2002-12-15 Harri Porten <porten@kde.org>
12708 * autogen.sh: check for libtoolize before attempting to use it
12710 * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
12713 * .cvsignore: ignore more stamp files
12715 * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
12717 * test/Makefile.am: added -I$(top_srcdir) to be able to compile
12718 without make install.
12720 2002-12-15 Havoc Pennington <hp@pobox.com>
12722 * dbus/dbus-threads.c: add thread stubs that a higher library
12723 layer can fill in. e.g. the GLib wrapper might fill them in with
12724 GThread stuff. We still need to use this thread API to
12725 thread-safe-ize the library.
12727 2002-12-12 Havoc Pennington <hp@pobox.com>
12729 * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
12730 below new interfaces and include fewer system headers.
12732 * dbus/dbus-sysdeps.c (_dbus_read): new function
12733 (_dbus_write): new function
12734 (_dbus_write_two): new function
12735 (_dbus_connect_unix_socket): new function
12736 (_dbus_listen_unix_socket): new function
12738 * dbus/dbus-message-internal.h: change interfaces to use
12741 2002-12-11 Havoc Pennington <hp@pobox.com>
12743 * dbus/dbus-types.h: add dbus_unichar
12745 * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
12747 * dbus/dbus-connection.c (dbus_connection_send_message): return
12750 * dbus/dbus-transport.c: include dbus-watch.h
12752 * dbus/dbus-connection.c: include dbus-message-internal.h
12754 * HACKING: add file with coding guidelines stuff.
12756 * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
12757 handling here, for security purposes (as in vsftpd). Not actually
12758 using this class yet.
12760 * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
12761 system/libc usage here, as in vsftpd, for ease of auditing (and
12762 should also simplify portability). Haven't actually moved all the
12763 system/libc usage into here yet.
12765 2002-11-25 Havoc Pennington <hp@pobox.com>
12767 * dbus/dbus-internals.c (_dbus_verbose): fix to not
12768 always print the first verbose message.
12770 2002-11-24 Havoc Pennington <hp@pobox.com>
12772 * test/echo-client.c, test/echo-server.c: cheesy test
12775 * configure.in (AC_CHECK_FUNCS): check for writev
12777 * dbus/dbus-message.c (_dbus_message_get_network_data): new
12780 * dbus/dbus-list.c (_dbus_list_foreach): new function
12782 * dbus/dbus-internals.c (_dbus_verbose): new function
12784 * dbus/dbus-server.c, dbus/dbus-server.h: public object
12785 representing a server that listens for connections.
12787 * dbus/.cvsignore: create
12789 * dbus/dbus-errors.h, dbus/dbus-errors.c:
12790 public API for reporting errors
12792 * dbus/dbus-connection.h, dbus/dbus-connection.c:
12793 public object representing a connection that
12794 sends/receives messages. (Same object used for
12795 both client and server.)
12797 * dbus/dbus-transport.h, dbus/dbus-transport.c:
12798 Basic abstraction for different kinds of stream
12799 that we might read/write messages from.
12801 2002-11-23 Havoc Pennington <hp@pobox.com>
12803 * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
12806 * dbus/dbus-test.c (main): add list test, and include
12807 dbus-test.h as intended
12809 * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
12810 (_dbus_hash_table_remove_int): return value indicates
12811 whether the entry existed to remove
12813 * dbus/dbus-list.c: add linked list utility class,
12814 with docs and tests
12816 * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
12819 2002-11-23 Havoc Pennington <hp@pobox.com>
12821 * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
12822 DBUS_END_DECLS to nothing, that should fix this once and for all
12824 * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
12826 * dbus/dbus-message.c, dbus/dbus-hash.c:
12827 add some missing @brief
12829 2002-11-23 Havoc Pennington <hp@pobox.com>
12831 * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
12832 to avoid confusing Doxygen
12834 * dbus/dbus-hash.c: @} not }@
12836 * dbus/dbus-message.c (struct DBusMessage): split out
12839 2002-11-23 Havoc Pennington <hp@pobox.com>
12841 * configure.in: pile on more warning flags if using gcc
12843 * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
12844 to document static functions
12846 * configure.in: add summary to end of configure so it
12847 looks nice and attractive
12849 * dbus/dbus-hash.c: finish implementation and write unit
12852 * configure.in: add --enable-tests to enable unit tests
12854 * dbus/dbus-test.c: test program to run unit tests
12855 for all files in dbus/*, initially runs a test for
12858 * dbus/dbus-internals.h: file to hold some internal utility stuff
12860 2002-11-22 Havoc Pennington <hp@redhat.com>
12862 * dbus/dbus-hash.c: copy in Tcl hash table, not yet
12863 "ported" away from Tcl
12865 * dbus/dbus-types.h: header for types such as dbus_bool_t
12867 2002-11-22 Havoc Pennington <hp@redhat.com>
12869 * dbus/dbus.h: fixups for doc warnings
12871 * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
12873 (QUIET): make it quiet so we can see warnings
12875 * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
12877 2002-11-22 Havoc Pennington <hp@redhat.com>
12879 * Makefile.am: include "Doxyfile" target in all-local
12881 * configure.in: generate the Doxyfile
12883 * Doxyfile.in: move Doxyfile here, so we can use
12884 configure to generate a Doxyfile with the right
12885 version number etc.
12887 2002-11-22 Havoc Pennington <hp@redhat.com>
12889 * dbus/dbus-message.c: move inline docs into .c file
12891 * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
12892 so all docs are under doc/
12893 (MAN_EXTENSION): generate man pages. Use extension
12894 ".3dbus" which matches ".3qt" on my system,
12895 I guess this is OK, I don't know really.
12896 (FILE_PATTERNS): look for .c files not .h, makes sense
12897 for plain C I think
12899 2002-11-22 Havoc Pennington <hp@pobox.com>
12901 * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
12902 because any app can be a server, and any app can be a client,
12903 the bus is a special kind of server.
12905 Thu Nov 21 23:35:31 2002 Zack Rusin <zack@kde.org>
12907 * Doxyfile : adding. Still needs Makefile rules to be generated
12908 automatically (just run "doxygen" in the toplevel dir for now to
12911 * dbus/dbus-message.h : Adding sample docs (javadoc since
12912 resembles gtk-doc a little more)
12914 * dbus/dbus.h : Adding sample docs
12916 2002-11-21 Havoc Pennington <hp@redhat.com>
12918 * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
12919 so we can allow ourselves to include files directly,
12920 instead of having to use dbus.h
12922 * dbus/dbus.h: fill in
12924 * dbus/dbus-message.h: sketch out a sample header file.
12925 Include griping if you include it directly instead of
12928 * dbus/dbus-macros.h: new file with macros for extern "C",
12929 TRUE/FALSE, NULL, etc.
12931 * doc/file-boilerplate.c: put include guards in here
12933 2002-11-21 Havoc Pennington <hp@redhat.com>
12935 * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
12937 * COPYING: include the GPL as well, and license code
12938 under both AFL and GPL.
12940 2002-11-21 Havoc Pennington <hp@redhat.com>
12942 * acconfig.h: get rid of this
12944 * autogen.sh (run_configure): add --no-configure option
12946 * configure.in: remove AC_ARG_PROGRAM to make
12947 autoconf complain less. add AC_PREREQ.
12948 add AC_DEFINE third arg.
12950 2002-11-21 Anders Carlsson <andersca@codefactory.se>
12953 Fix references so we can distcheck.
12955 2002-11-21 Havoc Pennington <hp@redhat.com>
12957 * Initial module creation